←2011-05 2011-06 2011-07→ ↑2011 ↑all
2011-06-01
00:03:49 <CakeProphet> elliott_: how does ghci handle the IO monad?
00:03:54 <CakeProphet> I cannot remember.
00:05:47 <elliott_> CakeProphet: Whaddya mean?
00:06:02 <CakeProphet> does it execute IO actions if they're top level?
00:06:23 <elliott_> Yes, it acts like a "do" block in the IO monad.
00:06:27 <CakeProphet> for instance, will it modify IOrefs if you tell it to.
00:06:29 <CakeProphet> ah okay.
00:06:35 <elliott_> Except you can also put expressions in.
00:06:42 <elliott_> > x <- ...
00:06:42 <CakeProphet> gotcha
00:06:42 <lambdabot> <no location info>: parse error on input `...'
00:06:43 <elliott_> works, etc.
00:11:25 <CakeProphet> hmmm
00:12:02 <CakeProphet> I was thiking one improvement to these demonstrations would be a way to pass around mutable IOref parameters to these sound generators.
00:12:05 <CakeProphet> and then change those.
00:12:20 <CakeProphet> but I think that would greatly complicate the syntax.
00:13:16 <CakeProphet> @hoogle (:=)
00:13:16 <lambdabot> Control.Parallel.Strategies (:=) :: a -> b -> Assoc a b
00:13:28 <CakeProphet> @hoogle (::=)
00:13:28 <lambdabot> No results found
00:13:56 <CakeProphet> hoogle (~+)
00:15:14 <CakeProphet> @hoogle (~+)
00:15:14 <lambdabot> No results found
00:15:59 <elliott_> CakeProphet: what are you looking for
00:16:11 <elliott_> and what you demonstrated looked totally pure
00:16:15 <elliott_> why force it into the IO monad?
00:18:34 <CakeProphet> elliott_: no I was referring to yaxu.org
00:18:45 <elliott_> oh
00:18:49 <Sgeo> I hope what I just posted to the LSL list wasn't downright stupid
00:19:02 <elliott_> Sgeo: the odds are not on your side.
00:19:05 <CakeProphet> elliott_: and I was seeing what other operators looked like that, as I was thinking of my own operators to use.
00:20:40 -!- aloril has joined.
00:20:55 <Sgeo> http://pastie.org/private/60bknz58chvetmttccch0w
00:21:48 <CakeProphet> elliott_: though with his emacs interface he really doesn't need to use IOref. He just changes the parameters by hand and reloads it via some black magic.
00:21:59 <CakeProphet> s/interface/mode/
00:23:33 <CakeProphet> I wish Google could search for non-alphanumeric characters better.
00:23:52 <CakeProphet> "haskell ($)" gives me nothing about ($)
00:24:27 <elliott_> CakeProphet: it's IORef not IOref btw
00:24:29 <elliott_> and use hoogle :P
00:24:36 <elliott_> <CakeProphet> elliott_: and I was seeing what other operators looked like that, as I was thinking of my own operators to use.
00:24:39 <elliott_> you can't use :
00:24:43 <elliott_> it's reserved for types and type constructors
00:24:46 <elliott_> kind of like Uppercase is
00:24:57 <elliott_> s/type constructors/constructors/
00:25:01 <CakeProphet> ah that's right.
00:26:29 <CakeProphet> elliott_: Hoogle doesn't show the fixity declaration though, which is what I'm looking for.
00:27:10 <CakeProphet> oh but hey
00:27:11 <CakeProphet> I foudn it
00:27:15 <elliott_> > (0$0$)
00:27:15 <lambdabot> The operator `GHC.Base.$' [infixr 0] of a section
00:27:16 <lambdabot> must have lower prec...
00:27:24 <CakeProphet> the actual hoogle website has it.
00:27:31 <elliott_> oerjan knows the proper trick for that
00:27:33 <elliott_> > (0$0+)
00:27:33 <lambdabot> The operator `GHC.Num.+' [infixl 6] of a section
00:27:33 <lambdabot> must have lower prece...
00:27:37 <elliott_> hm maybe this is the trick
00:27:37 <elliott_> yeah it is
00:27:39 <elliott_> > (0$0/)
00:27:40 <lambdabot> The operator `GHC.Real./' [infixl 7] of a section
00:27:40 <lambdabot> must have lower prec...
00:27:48 <elliott_> CakeProphet: also
00:27:52 <elliott_> Prelude> :info ($)
00:27:52 <elliott_> ($) :: (a -> b) -> a -> b -- Defined in GHC.Base
00:27:52 <elliott_> infixr 0 $
00:28:14 <CakeProphet> I wonder if Haskell will let me define a negative precedence level. :3
00:28:49 <CakeProphet> for fancy assignment-like operators
00:29:41 <elliott_> no
00:29:48 <elliott_> actually using 0 is a bad idea...
00:29:53 <elliott_> because it will stop people using $
00:29:55 <elliott_> use one at the most :P
00:29:58 <elliott_> or... at the least
00:30:13 <CakeProphet> but I want
00:30:33 <CakeProphet> "name" := someUngodlyFunction $ someUngodlyParameters ...
00:30:48 <CakeProphet> replace the := with something else
00:31:06 <CakeProphet> ah well I guess I'll just have to settle with parenthesis
00:31:13 <CakeProphet> or, you know, I might not even implement something like that at all.
00:31:14 <elliott_> "name"?
00:31:18 <elliott_> seriously? /strings/?
00:31:30 <CakeProphet> that's how I roll, dog.
00:31:33 * Sgeo is impatient for a reply
00:31:44 <elliott_> CakeProphet: enjoy creating the worst haskell library of all time :x
00:31:49 <elliott_> type safety, who needs it
00:32:16 <CakeProphet> don't worry, I haven't created anything yet.
00:32:33 <Sgeo> Is Haskell's printf type-safe? I mean, it type-checks just fine, but
00:33:13 <elliott_> Sgeo: no
00:33:16 <elliott_> nobody uses it though :)
00:33:20 <elliott_> and there's a way to do much the same thing safely
00:33:40 <elliott_> it just looks like: printf ("foo " $$ str $$ " bar") "abc"
00:33:42 <elliott_> instead
00:33:42 <elliott_> or e.g.
00:34:00 <CakeProphet> the thought was that in a live coding environment the less typing you have to do the better. Also, being able to put everything in one line is a place. Anything besides string requires previous setup of some kind. If I can do that and have it not be a pain then I'll use that approach, but otherwise I am using strings and you will hate it. :P
00:34:02 <elliott_> printf ("foo " $$ (int % pad0 9) $$ " bar") "abc"
00:34:04 <elliott_> erm
00:34:06 <elliott_> printf ("foo " $$ (int % pad0 9) $$ " bar") 9
00:34:07 <elliott_> etc.
00:34:10 <elliott_> which is easier to read anyway.
00:34:29 <elliott_> CakeProphet: then don't use haskell
00:34:40 <elliott_> CakeProphet: besides
00:34:43 <elliott_> CakeProphet: variables need initial values
00:34:46 <elliott_> what will you do?
00:34:57 <elliott_> default all integers to 0 and lists to [] and the like with a typeclass? ahahaha
00:35:17 <CakeProphet> er, no. The idea is that the names refer specifically to one type. a sound generator of some kind.
00:35:26 <elliott_> so what initial value
00:35:39 <CakeProphet> whatever you set it to initially?
00:35:45 <elliott_> so you need to declare it?
00:35:51 <elliott_> i thought you didn't want that which was why you were using strings.
00:36:52 <CakeProphet> I just wanted to use strings as names in, perhaps, a mutable map or something, instead of passing around IO refs. It's one option of many.
00:37:12 <elliott_> I'm just saying that strings, apart from being totally type-unsafe and ugly and not even giving you any kind of error for using an undefined variable,
00:37:20 <elliott_> don't absolve you of the need to initialise -- i.e. declare -- variables
00:38:02 <CakeProphet> right, but they save you effort in that they're effectively global throughout IO, without the need to pass around the reference. I'll probably end up using IORef if anything for mutable parameters.
00:38:08 <pikhq_> Man. For coming from the guy who brought us PulseAudio, systemd actually seems like a sane, intelligent design.
00:38:13 <elliott_> pikhq_: it's not
00:38:15 <elliott_> fucking ini files
00:38:18 <elliott_> no sh
00:38:42 <pikhq_> elliott_: Are there any non-aesthetic complaints you have?
00:38:52 <elliott_> those are technical complaints
00:38:58 <elliott_> ini files are terrible, especially the way it uses them
00:39:02 <pikhq_> How so?
00:39:13 <elliott_> and the only reason it exists is because Poettering hates sh
00:39:32 <elliott_> if Lennart Poettering is behind it, you can basically assume it'll be horrible shit and also, that he'll be a jackass about it
00:39:59 <elliott_> IIRC he responded to a criticism of -- was it systemd? -- at a presentation, by accusing the criticiser of hating disabled people :)
00:40:19 <pikhq_> At least how sh is used *currently* in init, sh seems to suck for the purpose.
00:40:31 <pikhq_> That is a motherfucking *fuckton* of boilerplate.
00:40:39 <elliott_> when did i say that was a good idea
00:40:53 <elliott_> but his whole goal is "omg sh should never be called during boot"
00:41:00 <pikhq_> You seemed to say that "no sh" was a technical complaint against systemd.
00:41:15 <elliott_> yes, because it means you can't do tons of shit easily
00:41:16 <elliott_> i never said
00:41:21 <elliott_> "i want sh exactly like it is in current init omg"
00:41:46 <pikhq_> Admittedly, it's probably a good idea to also have a more flexible language in your init system.
00:41:55 <pikhq_> By all means, make it so the common case is easily configurable.
00:41:57 <CakeProphet> like Java.
00:42:02 <elliott_> CakeProphet: lol
00:42:12 <CakeProphet> all init should be in java.
00:42:18 <pikhq_> But you should make the easy bits easy and the hard bits possible.
00:42:18 <elliott_> pikhq_: the people in #musl know more about systemd than me anyway, but i heard enough to make me dislike it
00:42:28 <elliott_> (note: going in to #musl to ask about systemd may not be a good idea :P)
00:42:29 <pikhq_> Rather than the easy bits easy and the hard bits akin to getting raped.
00:42:31 <CakeProphet> pikhq_: so you're saying init should be in Perl?
00:42:45 <pikhq_> CakeProphet: No, no, just in *a* flexible language.
00:42:51 <pikhq_> sh is not terrible for the purpose.
00:43:05 <pikhq_> If you can get rid of the pointless, irritating boilerplate.
00:43:14 -!- Gregorzilla has quit (Quit: Leaving).
00:43:18 <elliott_> how is there any boilerplate in starting e.g. an httpd with sh
00:43:21 <elliott_> it's one line
00:43:32 <elliott_> nobody is advocating /etc/init.d here, that is a strawman
00:43:54 <pikhq_> elliott_: Obviously, the means of getting rid of boilerplate is not necessarily getting rid of sh.
00:44:07 <elliott_> there is no boilerplate to get rid of
00:44:17 <elliott_> that's assuming we're all talking from the "systemv init" frame of reference
00:44:19 <elliott_> which guess what, we're not
00:44:36 <pikhq_> Just making it so that you literally don't have to stick the basic, barebones logic of the *entire* init system in the configuration files for it.
00:44:42 <CakeProphet> so, I'm little murky on the differences between sh, bash, and dash. Can someone enlighten me?
00:44:47 <pikhq_> elliott_: I have been talking from a systemv init frame of reference.
00:44:56 <elliott_> well that's your problem
00:45:04 <pikhq_> If we talk from other frames of reference, there may well be little to no boilerplate.
00:45:13 <elliott_> CakeProphet: sh is too vague to define, be more specific; bash is GNU's shell
00:45:27 <elliott_> dash is the Debian Almquist shell
00:45:29 <pikhq_> Certainly, there's no boilerplate to: for /etc/services.d/*;do sh $i;done
00:45:39 <CakeProphet> as in, is sh just the name for the system's shell program, whatever it may be?
00:45:39 <elliott_> a descendent of NetBSD's version of the Almquist shell
00:45:55 <elliott_> CakeProphet: yes. POSIX defines what sh has to be, but it's a rather minimal specification.
00:45:55 <pikhq_> CakeProphet: The system's *Bourne-like* shell.
00:46:05 <CakeProphet> ah okay.
00:46:21 <pikhq_> CakeProphet: There's a few requirements on that beyond "it can spawn processes"... In practice, though, that means "any shell but csh and tcsh".
00:46:26 <CakeProphet> I notice when I "man sh" I get a page for dash, when originally I thought sh was bash on Ubuntu.
00:46:44 <pikhq_> sh is now dash on the Debian family distros.
00:46:54 <CakeProphet> is there like, a huge difference I should note?
00:47:00 <elliott_> CakeProphet: No.
00:47:08 <elliott_> Unless you use bash's advanced features.
00:47:14 <elliott_> (Hint: You probably don't. Not in your scripts anyway.)
00:47:26 <CakeProphet> yes I doubt it. I don't even know what those are.
00:47:29 <elliott_> ((I mean really advanced, not "the advanced section of My First Bash Script".)
00:47:30 <elliott_> )
00:48:00 <pikhq_> Yeah, a barebones Bourne shell offers like 99% of what *anyone* uses in shell scripting.
00:48:10 <CakeProphet> I think the most obscure thing I've used so far is the ${foo%bar} thing
00:48:45 <pikhq_> Yeah, that's Bourne, I'm pretty sure.
00:48:46 <CakeProphet> to rename a file extension
00:49:10 <CakeProphet> so, bash > dash?
00:49:21 <CakeProphet> or just... different?
00:49:29 <CakeProphet> in some tiny ways.
00:49:38 <elliott_> dash is quicker and leaner for scripts
00:49:42 <pikhq_> Bash is a superset of the capabilities of the Bourne shell.
00:49:44 <elliott_> and using bash for scripts leads you into the trap of using bash-only features
00:49:47 <elliott_> which makes your scripts non-portable
00:49:52 <elliott_> pikhq_: so is dash.
00:50:07 <pikhq_> elliott_: Oh, is it? Hmm.
00:50:14 <elliott_> CakeProphet: basically: obviously you don't want to use dash for interactive use.
00:50:24 <elliott_> but if you are writing scripts then dash will probably do you fine, and will produce more portable scripts.
00:50:29 <elliott_> i say probably
00:50:31 <elliott_> it really will do you fine
00:50:35 <elliott_> you will not notice any difference
00:50:40 <CakeProphet> when I'm using terminal in Ubuntu I'm using dash right?
00:50:46 <elliott_> um
00:50:47 <elliott_> no
00:50:55 <pikhq_> Aaah, the language that dash supports is POSIX *and* a few BSD extensions.
00:50:56 <CakeProphet> oh, well good.
00:51:18 <elliott_> $ help
00:51:19 <elliott_> GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)
00:51:31 <pikhq_> (which, being extensions that made their way into Korn, are essentially ubiquitous, anyways)
00:51:56 <CakeProphet> okay, thank you for the enlightenment.
00:52:15 <pikhq_> The Bourne shell itself, BTW, is basically the first UNIX shell that was reasonably useful for programming.
00:52:39 <pikhq_> And replaced the Thompson shell in V7.
00:53:26 <pikhq_> Which itself was the first shell ever, and only really had pipes and file redirection.
00:54:47 <pikhq_> Huh. rc and mk were originally written for UNIX.
00:54:54 <pikhq_> And part of V10.
00:54:56 <elliott_> yes
00:55:04 <pikhq_> Neat.
00:56:19 <pikhq_> Shame rc's not ubiquitous; it's got such a better language.
00:57:00 <coppro> hrm
01:00:50 <elliott_> ?unpl (f . g) x
01:00:50 <lambdabot> (f (g x))
01:01:39 <pikhq_> And would you look at that. Sabotage, that distro using musl as its libc, builds with mk.
01:04:34 <elliott_> isn't it a heap of shell scripts mostly :)
01:04:52 <Lymia> /o/
01:04:52 <myndzi> |
01:04:52 <myndzi> /<
01:05:03 <Lymia> \o/
01:05:03 <myndzi> |
01:05:04 <myndzi> /'\
01:05:08 <pikhq_> elliott_: Well, yes, probably.
01:05:16 <Lymia> That ' in the middle looks suspicious.
01:05:28 <Lymia> I can't help but laugh when myndzi does that to Perl code.
01:05:38 <Sgeo> elliott_, do you think CoffeeScript is a decent language?
01:10:46 <pikhq_> elliott_: Inquiry: what do you think is an actually decent init system?
01:10:53 <pikhq_> (if anything)
01:11:49 <elliott_> pikhq_: @ :P
01:12:03 <elliott_> But uh, runit is pretty good.
01:18:30 <pikhq_> Hey, non-revolting use of sh.
01:19:45 -!- pikhq has joined.
01:23:19 -!- pikhq_ has quit (Ping timeout: 260 seconds).
01:26:39 -!- Mannerisk has joined.
01:27:12 -!- Mannerisk has left.
01:27:32 -!- jwest has joined.
01:28:29 <jwest> Hi, could anyone give me an idea on how you'd, go backwards in the data list in brainfuck until a counter is 0?
01:28:42 <jwest> not sure where else to ask
01:30:31 <elliott_> you mean like
01:30:35 <elliott_> n=9 <<<<<<<<<
01:30:40 <elliott_> where n is in a cell?
01:30:54 <elliott_> i.e. "repeat < the number of times as indicated in the current cell"
01:30:59 <jwest> yep
01:31:02 <jwest> but n being an input
01:31:04 <jwest> not constant
01:31:20 <elliott_> that is not possible
01:31:24 <jwest> oh...
01:31:27 <jwest> kk
01:31:31 <jwest> that's a shame
01:31:33 <elliott_> jwest: you may be interested in an array type solution
01:31:39 <elliott_> cells look like
01:31:47 <elliott_> 1 | element | 1 | element | 1 | element | 0
01:31:51 <elliott_> starting on the first one
01:31:52 <elliott_> you can do
01:31:53 <elliott_> [>>]
01:31:56 <elliott_> to seek to the end
01:31:57 <elliott_> and things like that
01:32:03 <elliott_> making it very convenient to seek around, etc.
01:32:11 <elliott_> and you can use these "indicator" cells to pass around a counter
01:32:16 <elliott_> letting you move N places in the array, etc.
01:32:29 <jwest> ooh
01:32:31 <jwest> right
01:33:01 <jwest> yeah i'll look into that
01:33:39 <pikhq> http://1.bp.blogspot.com/-HU3XrGrDAZ4/TeVGS5sea-I/AAAAAAAAADk/r4hnr1X5YKQ/s1600/Netflix%2BPerformance%2Bon%2BTop%2BISPs%2B-%2BUSA.png This makes me sad.
01:33:44 <jwest> thanks elliott_
01:33:45 <pikhq> Note the units on the graph.
01:34:15 <elliott_> jwest: http://esolangs.org/wiki/Brainfuck_algorithms is sometimes helpful
01:34:33 <elliott_> oh wow, the netfuck saga continues
01:34:49 <elliott_> he can write interpreters in qbasic and has developed simple chats over nullmodem :o
01:35:08 <pikhq> elliott_: ... Wut?
01:35:08 <jwest> what do the temp1 etc things in the example code mean?
01:35:44 <elliott_> jwest: see top of page
01:35:53 <elliott_> pikhq: "I still don't get your problem. This is so petty and you search every error in my sentense to critisize me... I have already written a full functional interpreter in QBasic and developed simple chats over nullmodem, so I don't really see why NF should be so worse in your opinion. --87.165.166.97 00:34, 1 June 2011 (UTC)"
01:36:14 <jwest> oh right, sorry
01:36:18 <jwest> thanks for your help
01:36:24 <elliott_> jwest: :)
01:36:37 <Lymia> elliott_, link?
01:37:31 <elliott_> Lymia: talk:netfuck on the wiki
01:38:13 <pikhq> Hmmm. Maybe I should actually upload all my code somewhere again.
01:38:38 <Lymia> elliott_, link?
01:38:44 <Lymia> I've failed to find it.
01:38:51 <elliott_> see recent changes, i have a headache and closed the tab
01:38:53 <elliott_> pikhq: I have a VPS I'm doing nothing with that runs thttpd :P
01:39:05 <elliott_> (Note: I am an unreliable person.)
01:39:11 <elliott_> pikhq: ooh, do the NetFuck challenge and you'll get
01:39:13 <elliott_> FREE
01:39:13 <elliott_> AD-FREE
01:39:14 <elliott_> WEB
01:39:14 <elliott_> SPACE
01:39:17 <elliott_> the best prize
01:39:22 <pikhq> elliott_: I was thinking more like one of those git hosting sites.
01:39:34 <elliott_> HOW BORING AND MODERN
01:39:51 <Lymia> elliott_, uh.
01:39:51 <Lymia> So.
01:39:52 <pikhq> Be nice to have dimensifuck up somewhere.
01:39:58 <pikhq> And PEBBLE and PFUCK.
01:40:02 <Lymia> This is Brainfuck... with support for two IO channels?
01:40:03 <elliott_> pikhq: I was going to go "GIT :( USE DARCS" but then I realised that the darcs hosting sites suck.
01:40:07 <pikhq> And other random snippets.
01:40:13 <elliott_> Well, darcsden is alright but it's... barebones.
01:40:28 <elliott_> oh hm, it seems to have been made less barebones as of late, nice
01:42:36 <pikhq> Opinions on git hosters?
01:43:17 <elliott_> pikhq: If you're looking to be ais-style obnoxiously legalistic and principled about things, something that isn't GitHub. Otherwise, seriously, just use GitHub.
01:43:45 <pikhq> elliott_: What negatives exist at all?
01:44:37 <elliott_> pikhq: Uhh... their terms of use once disallowed people to block ads on the site (note that GitHub has never even had ads, and this clause is now long-gone). Also, things like issues, the wiki system, and pull requests are "lock-in" features in that they're not implemented with any standard protocol and don't interoperate with non-GitHub sites.
01:44:48 <elliott_> Oh, and the issue system requires JS.
01:45:02 <elliott_> But it's a well-designed, fast site with lots of good functionality, and it's incredibly popular /shrug
01:45:22 <elliott_> And the inability to use the pull request system directly if the person who made the changes doesn't use GitHub is... not the biggest issue ever.
01:45:38 <pikhq> Mmkay, then I suppose GitHub, then.
01:45:46 <elliott_> GitHub is the only host which offers dynamic tarball downloads of the tip too I think, which is nice because you can link to them.
01:45:47 <pikhq> If I don't like it, well, it's not hard to migrate elsewhere with git.
01:46:28 <elliott_> Honestly, in my mcmap development I look at exactly two things on GitHub:
01:46:35 <coppro> mcmap?
01:46:36 <elliott_> - The commit list (and the commits themselves)
01:46:37 <elliott_> - The issue tracker
01:46:40 <elliott_> coppro: Minecraft thing.
01:46:46 <coppro> ah
01:47:14 <elliott_> Developed by fizzie; I wrote some parts.
01:47:31 <pikhq> Un momento; time to use ssh-agent again.
01:47:32 -!- pikhq has quit (Quit: leaving).
01:48:11 -!- pikhq has joined.
01:52:49 <jwest> Hey, just one more question, does the fact that brainfuck is turing complete mean that anything written in another turing complete language can be written in brainfuck? I suspect not.
01:53:01 <Lymia> jwest, it does.
01:53:23 <jwest> :o
01:53:28 <pikhq> jwest: That is *precisely* what Turing completeness means.
01:53:32 <jwest> haha, good
01:53:36 <jwest> it's just hard to believe
01:53:38 <Lymia> Note that Turning Complete only considers computational power.
01:53:48 <Lymia> Things like IO, Networking, etc are not covered.
01:53:52 <jwest> i guess i should look it up and study it a bit
01:53:52 <jwest> yeah
01:54:30 <Lymia> jwest, you could, for example, write an x86 emulator in Brainfuck.
01:54:34 <Lymia> This has obvious implications.
01:56:39 <CakeProphet> finding a well-documented low-level audio playback library in Haskell is proving difficult.
01:56:45 -!- TeruFSX has quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.).
01:57:01 <elliott_> portaudio
01:57:08 <jwest> ohh, kk
01:57:17 <jwest> Lymia: does the 30000 byte limit stop this at all?
01:57:26 <jwest> (assuming that is taken as necessary)
01:57:36 <CakeProphet> elliott_: perfect :)
01:57:37 <Lymia> jwest, yes.
01:57:43 <Lymia> Turning Complete, assuming infinite memory.
01:57:47 <jwest> ah kk
01:58:04 <Lymia> Actually.
01:58:14 <Lymia> Does the C spec break down with infinite memory, and infinite word size?
01:59:14 <CakeProphet> break down in what way?
02:00:33 <CakeProphet> I assume the only problem the C spec would have with infinite memory would be addressing it all. With infinite word size, that wouldn't be a problem.
02:01:16 <Patashu> Infinitely long typecasts would be a problem
02:01:33 <Lymia> Wait.
02:01:36 <Lymia> With infinite word size...
02:01:38 <Lymia> What is sizeof(int)
02:02:27 <CakeProphet> Lymia: presumably infinity.
02:02:29 <Patashu> If everything is infinitely large then sizeof() is useless
02:02:48 <jwest> i gotta go, thanks for the help and interesting info, see ya
02:02:51 -!- jwest has quit (Quit: Page closed).
02:03:22 <Lymia> Patashu, but what would sizeof(int) return?
02:03:28 <Lymia> All ones?
02:03:59 <Patashu> How would you express negative numbers? The most infinite bit is set to 1? But infinity has no last bit
02:04:19 <Lymia> You don't use twos compartment.
02:04:31 <Lymia> You could use sign and magnitude, right?
02:04:42 <CakeProphet> malloc(sizeof(int)) would return the starting address of the infinite memory you just allocated in your infinite memory heap... which I'm pretty sure wouldn't terminate.
02:04:42 <Patashu> Sign could be first, sure
02:05:07 <CakeProphet> but then again, I don't really know how malloc works.
02:05:07 <Lymia> Would infinite memory C be a Deathstation 9000?
02:05:34 <Lymia> Patashu, wait.
02:05:43 <CakeProphet> C with infinite memory is possible, provided you address memory with bignums. However, infinite word size makes things difficult, it seems.
02:05:46 <Lymia> What about the various undefined interactions?
02:05:57 <Lymia> undefined behavior, etc.
02:07:54 <Patashu> How are you going to make this work with the guarantee that you are able to touch every bit in memory, e.g. chars are consecutive and leave nothing out
02:08:31 <CakeProphet> I don't really understand what you mean exactly.
02:08:37 <Patashu> Me or lymia
02:08:42 <CakeProphet> you
02:09:36 <CakeProphet> hmmm, well. you could have a floating point addressing scheme.
02:09:46 <CakeProphet> (I think I understand what you mean now)
02:09:55 <Patashu> Let me see if I can find it
02:11:04 <Patashu> Hmm I don't know where it is, but I know that the C programming language guarantees that chars are consecutive and allow you to touch every bit of memory
02:11:07 <CakeProphet> ptr+1 points to the next char in the string, and all of the bytes of the infinite width char are represented as decimal points (but then they become uncountable, which is another problem I think)
02:11:14 <Patashu> How do you reconcile this with words being infinitely large?
02:11:24 <Patashu> It doesn't make sense to have an infinity after an infinity, I guess
02:11:30 <CakeProphet> sure it does.
02:11:42 <CakeProphet> that's how the real numbers work
02:12:09 <pikhq> Hmmmm. What else should go up?
02:12:26 <Lymia> Question is.
02:12:32 <Lymia> Does C break down when you do crap like that?
02:13:49 <Patashu> Can I address memory in smaller than infinitely large chunks, e.g. 8 bit chunks?
02:14:04 <Patashu> If so, what is the address of the 8 bit chunk at the start of the third infinitely large chunk?
02:14:09 <CakeProphet> well, yes. as it currently stands, I think every implementation of C would not be able to handle infinite memory. Especially considering that no physical computer can do that.
02:14:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
02:15:21 <Lymia> So.
02:15:28 <Lymia> Basic question is, does the C spec hold up under infinity.
02:15:35 <Lymia> Patashu, I dunno.
02:15:44 <Lymia> The word size is infinitely large, right?
02:17:01 <CakeProphet> to have infinite memory and word size, the cardinality of our set of memory addresses has to equal that of the real numbers. For finite word size and infinite memory, that would be the same cardinality as the natural numbers.
02:18:13 <CakeProphet> so basically, if you ask "what's the second bit in the fourth word of our computer memory", there is no answer...
02:18:29 <CakeProphet> it would be like asking, what's the next real number after 4?
02:18:40 <CakeProphet> (I think)
02:18:59 <Lymia> Guh.
02:19:01 <Lymia> Brain hurt.
02:19:08 <pikhq> Mmkay, a few bits of code are now up on git. Whooo.
02:19:18 <pikhq> Erm, github. XD
02:20:25 <CakeProphet> Lymia: but, let's assuming you have a arithmetic processing unit that can handle addition of infinite words. Then you don't need to reference those bits individually, you just have your miraculous device perform basic arithmetic for you.
02:20:57 <CakeProphet> and to get the next word in memory, you just say char_ptr+1
02:22:11 <pikhq> https://github.com/pikhq A handful of things.
02:22:14 <CakeProphet> and because you can refer to consecutive words, you can make assertions such as "an integer is 4 words long"
02:23:14 <CakeProphet> and sizeof(int) would simply be 4 words.
02:23:40 <CakeProphet> which malloc can happily allocate, most likely.
02:24:10 <CakeProphet> with its magic algorithm, operating on magical infinite-sized words.
02:24:16 <Patashu> But what do I do if I want to reference memory in smaller chunks than a word
02:24:17 <Patashu> I can't?
02:24:21 <Patashu> I guess I wouldn't really need to
02:24:23 <CakeProphet> not really no
02:24:26 <CakeProphet> and yes, no need.
02:24:27 <Patashu> If I needed byte arithmetic I can fake it with modulus
02:24:33 <Patashu> And my copmuter is apparently infinitely fast now
02:24:54 <CakeProphet> I don't see how it would be possible for bitwise operations, including arithmetic, to ever terminate on an infinite word, however.
02:26:41 <CakeProphet> well, to contain infinite memory I think a computer would need to occupy infinite space.
02:27:25 <CakeProphet> so if you have an infinitely large ALU with infinite circuitry to handle infinite bytes, etc...
02:28:02 <CakeProphet> then we don't have to worry about "terminating" in the algorithmic sense because we have an endless supply of physical space to simultaneously move electrons around.
02:30:08 <CakeProphet> ...though I can't imagine what that adder circuit would look like. You'd need a "..." in the schematic.
02:31:20 <CakeProphet> or, of course, an infinite schematic. :P
02:35:05 <CakeProphet> I think that's enough speculation for me tonight...
02:43:43 <pikhq> For the first time in ages, I actually have a place to shove code at.
02:43:54 <pikhq> Yay.
02:44:02 -!- Patashu has quit (Ping timeout: 240 seconds).
02:49:17 <pikhq> https://github.com/pikhq/pebble Anyone give a fuck?
02:49:22 <pikhq> No?
02:49:24 <pikhq> Didn't think so.
02:50:17 <CakeProphet> not familiar with what that is.
02:50:43 <CakeProphet> oh but look, a language spec.
02:52:31 -!- copumpkin has joined.
02:52:47 <pikhq> Something I wrote back in 2006 through 2007, due to boredom with classes in high schoo.
02:52:56 <CakeProphet> pikhq: so it's a high level brainfuck of sorts?
02:53:06 <pikhq> Macro language for Brainfuck, rather.
02:53:24 <pikhq> It directly targets Brainfuck.
02:54:07 <CakeProphet> so lastloc is for debugging?
02:54:34 <pikhq> Yeah.
02:54:44 -!- Patashu has joined.
02:55:48 <CakeProphet> so whatever happened to giving brainfuck better IO capabilities?
02:56:10 <pikhq> Fuck that shit.
02:56:28 <CakeProphet> heh, bash is brainfucks advanced IO platform? :D
02:57:25 <CakeProphet> this is cool though. It's like a high-level assembler for BF. :)
02:57:55 <pikhq> Yeah, it was pretty fun to write.
02:58:08 <CakeProphet> can you mix brainfuck code into the language?
02:58:16 <pikhq> https://github.com/pikhq/pfuck You might be interested in this.
02:58:29 <pikhq> You *could*, but it'd break on non-Brainfuck backends.
02:58:53 <CakeProphet> er, what do you mean?
02:59:05 <CakeProphet> oh
02:59:11 <CakeProphet> it's not intended to be used only for BF?
02:59:37 <pikhq> It also has a C backend, and an interpreter.
02:59:47 <CakeProphet> ah
03:00:34 <CakeProphet> I like pebble because I could write complex code, compile it, and then claim I wrote it all in brainfuck.
03:00:37 <CakeProphet> :)
03:01:49 <Sgeo> CakeProphet, does PSOX count for your better IO capabilities purposes?
03:02:38 <CakeProphet> I'm not sure..
03:02:51 <CakeProphet> I still never really learned how it worked.
03:36:29 -!- azaq23 has quit (Ping timeout: 276 seconds).
03:37:17 -!- azaq23 has joined.
03:43:22 -!- comex has quit (Quit: ZNC - http://znc.sourceforge.net).
04:18:39 -!- Sgeo has quit (Ping timeout: 255 seconds).
04:22:03 <elliott_> <Lymia> Wait.
04:22:03 <elliott_> <Lymia> With infinite word size...
04:22:03 <elliott_> <Lymia> What is sizeof(int)
04:22:08 <elliott_> we've been over this a thousand times
04:22:10 <elliott_> <CakeProphet> Lymia: presumably infinity.
04:22:17 <elliott_> infinity is not a valid value for size_t in any C system
04:22:20 <Lymia> Ah.
04:22:21 <elliott_> and sizeof must return a size_t
04:22:26 <elliott_> well, be typed as
04:22:29 <elliott_> no "returning"
04:22:38 <elliott_> Lymia: <Lymia> Patashu, but what would sizeof(int) return?
04:22:41 <elliott_> it cannot
04:22:55 <elliott_> Lymia: but you can have char be a bignum
04:22:58 <elliott_> then sizeof everything is one
04:23:25 <Patashu> Yeah, that's what we ended up deciding on
04:23:26 <elliott_> <Lymia> So.
04:23:27 <elliott_> <Lymia> Basic question is, does the C spec hold up under infinity.
04:23:28 <elliott_> what?
04:23:30 <Patashu> The minimum word size is (infinity)
04:23:36 <Patashu> This somehow works
04:23:42 <elliott_> im mostly skipping all of this since its a rehash of a discussion we've had about a hundredtimes
04:24:09 <elliott_> oh, and note that you can't have a hosted (= with stdlib) C with bignum char
04:24:10 <elliott_> because of CHAR_BIT
04:24:26 <Patashu> Aha
04:24:50 <elliott_> but file IO lets you be tc
04:25:04 <elliott_> because ftell and the like are explicitly allowed to just fail if you're too far in to the file to represent in an int
04:25:17 <elliott_> so you can just have an infinite disk
04:25:18 <elliott_> voila
04:25:34 <Patashu> Wait, so what do you do in C for managing files over 4GB
04:25:51 <elliott_> For a start, you still use a thirty-two bit computer?
04:25:57 <Patashu> Oh, right
04:25:58 <Patashu> My bad
04:26:04 <elliott_> For a second, it's actually two gigs (int is signed)
04:26:10 <elliott_> For a third, you keep track of your own file position :P
04:26:19 <elliott_> With a bignum or whatever.
04:28:25 <CakeProphet> aren't things like int defined by word size though? So sizeof(int) would be the same number of words as before.
04:28:41 <Patashu> yeah
04:28:56 <elliott_> CakeProphet: no
04:29:00 <pikhq> CakeProphet: No, things like int simply must be a multiple of char sized.
04:29:07 <elliott_> sizeof(t) is equal to the number of chars you need to store a t, basically
04:29:26 <pikhq> There is absolutely, positively no guarantee that an int is a system word.
04:29:56 <pikhq> In fact, there is at least one system in common use where int isn't a system word.
04:30:11 <Gregor> x86_64
04:30:12 <pikhq> On most x86_64 system, sizeof(int) is 4.
04:30:23 <pikhq> sizeof(void*), however, is 8.
04:30:37 <Gregor> On most 64-bit systems, sizeof(int) is 4, as otherwise there aren't enough type names to cover 1, 2 and 4 :P
04:34:32 <elliott_> happy june
04:35:04 <pikhq> Actually, I should specify. On most x86_64 systems, sizeof(void*) is 4.
04:35:48 <pikhq> There's a set of toolchain patches floating around to give you x86_64 with 32-bit pointers as an ABI on a Linux system.
04:36:23 <pikhq> Lemme see if I can find it again...
04:37:42 <pikhq> https://sites.google.com/site/x32abi/ Thar we go.
04:38:46 <elliott_> what a silly abi :)
04:39:07 <copumpkin> you get the extra registers without the extra pointer overhead
04:39:15 <elliott_> oh noes overhead
04:39:16 <copumpkin> if you're short on memory, it's not bad
04:39:26 <elliott_> you also don't have to deal with the pesky additional address space <:)
04:39:27 <copumpkin> it's very noticeable in certain haskell code I run often
04:39:39 <copumpkin> elliott_: in my case, I have 4G of RAM
04:39:39 <elliott_> well yeah but haskell is really pointer-heavy
04:39:46 <elliott_> probably because of []'s unfortunate ubiquity
04:39:46 <copumpkin> and my program was getting killed at 3G for allocating more than that
04:39:51 <copumpkin> so I recompiled it with the 64-bit GHC
04:40:02 <pikhq> Saving space on pointers can really help with cache.
04:40:07 <copumpkin> and now it swaps and exceeds 4 and doesn't terminate in any reasonable amount of time
04:40:20 <copumpkin> elliott_: not cause of lists
04:40:30 <copumpkin> just cause of enormous terms in memory
04:40:33 <elliott_> copumpkin: to be fair, in that case your only recourse without changing the program is to buy more ram :P
04:40:41 <copumpkin> elliott_: macbook air! yay
04:40:50 <elliott_> coppro: macbook air sbuddies /hifive
04:40:54 <elliott_> shittiest laptop ever
04:40:56 <elliott_> ;D
04:41:02 <copumpkin> I like it a lot
04:41:16 <elliott_> well it's nice... apart from the fact that the fan is ridiculously noisy and goes on whenever you do anything
04:41:25 <elliott_> and also the terrible linux support although that isn't really apple's fault :)
04:41:33 <copumpkin> the new one or the old one?
04:41:34 <elliott_> also the BREAKING NUMBER KEYS, that's the worst feature imo
04:41:36 <copumpkin> cause my fan is quiet
04:41:42 <elliott_> copumpkin: it's the newest of the new.
04:41:50 <copumpkin> maybe that fan just sucks?
04:41:55 <copumpkin> mine isn't noisy at all
04:41:56 <elliott_> copumpkin: I have really obnoxious standards for fan noise.
04:42:15 <copumpkin> I can't argue with that, then
04:42:20 <elliott_> It doesn't sound "broken" or anything, but it's a lot louder than the fan on my previous laptop
04:42:27 <elliott_> Which was, admittedly, an ULV processor
04:42:29 <copumpkin> anyway, it's great
04:42:42 <elliott_> It probably is great if you use OS X :)
04:42:46 <pikhq> elliott_: There should be at least *some* better support in Linux 3.0.
04:42:54 <elliott_> pikhq: I thought it had no new features :)
04:43:26 <pikhq> elliott_: Bug workarounds are not new features. :P
04:44:25 <elliott_> copumpkin: Really, I got it because (a) the specifications are quite decently above what I had before and (b) it's not a fragile plastic piece of crap like [insert large PC manufacturer here]
04:44:37 <elliott_> If they still made ThinkPads like they used to, the choice would have been obvious :)
04:45:14 <pikhq> There wouldn't have been a choice, really.
04:46:27 <copumpkin> meh
04:46:55 <copumpkin> people say apple is a a cult :P
04:47:29 <elliott_> I tried to be an Apple fanboy but they were too crap, whoops
04:48:00 <copumpkin> I just mean to say that thinkpad-of-olde worshippers aren't much better :P
04:48:38 <elliott_> copumpkin: At least with ThinkPads the reputation is well-deserved >:)
04:48:46 <elliott_> OHHHH SNAPPPPPPPPPPPPPPPPPPPPPPPPPPPP ok that wasn't actually much of a snap
04:48:58 * copumpkin washes hands
04:49:05 <copumpkin> I don't really care that much, just commenting :)
04:49:09 <elliott_> impossible ive caught you in my snap now
04:49:23 <elliott_> http://www.thinkwiki.org/wiki/PC110 best thinkpad
04:49:26 <elliott_> Weight 1.3 lbs (630g)
04:49:29 <elliott_> AHEAD OF THE TIME
05:05:37 -!- Zwaarddijk has quit (Ping timeout: 248 seconds).
05:13:07 -!- Zwaarddijk has joined.
05:20:33 <elliott_> "In true academic style they define the problem and exhaustively test its parameters. Let's just build something quick and hacky that usually works :)"
05:20:35 <elliott_> hahahahaha
05:20:54 <elliott_> are advice dog derivatives dead yet? can we make Terrible Programmer?
05:21:02 <elliott_> FIND DETAILED PAPER ON THING YOU'RE TRYING TO IMPLEMENT
05:21:02 <elliott_>
05:21:04 <elliott_> WHO CARES
05:26:37 <CakeProphet> no they're not dead.
05:27:33 -!- oerjan has joined.
05:27:39 <elliott_> CakeProphet: really? damn
05:28:39 <CakeProphet> I mean, I don't see why they need to be dead in order for you to do that.
05:29:41 <elliott_> CakeProphet: no i'd just like them to be dead because they are terrible
05:29:45 <oerjan> 17:10:17 <elliott_> hm maybe this is the trick
05:29:56 <CakeProphet> I don't know some of Courage Wolf is good.
05:30:52 <oerjan> er wait that was right, or...
05:31:00 <oerjan> yes
05:31:51 <oerjan> 17:12:28 <elliott_> actually using 0 is a bad idea...
05:31:51 <oerjan> 17:12:33 <elliott_> because it will stop people using $
05:32:05 <oerjan> indeed that annoyed me about parsec's <?>
05:32:31 <elliott_> admittedly, in this case (a := b) would never be a function, so $ would not be so useful :)
05:32:39 <oerjan> (even that _could_ have worked well if they had switched the arguments of <?>)
05:33:24 <oerjan> > (0$0 <?>) -- is it in lambdabot?
05:33:25 <lambdabot> Not in scope: `<?>'
05:33:56 <oerjan> :t (0$0 Text.Parsec.<?>) -- is it in lambdabot?
05:33:57 <lambdabot> Couldn't find qualified module.
05:34:09 <oerjan> :t (0$0 Text.ParserCombinators.Parsec.<?>) -- is it in lambdabot?
05:34:09 <lambdabot> The operator `Text.ParserCombinators.Parsec.Prim.<?>' [infix 0] of a section
05:34:10 <lambdabot> must have lower precedence than that of the operand,
05:34:10 <lambdabot> namely `$' [infixr 0]
05:34:11 <elliott_> :t (0$0 Text.ParserCombinators.Parsec.<?>)
05:34:11 <lambdabot> The operator `Text.ParserCombinators.Parsec.Prim.<?>' [infix 0] of a section
05:34:11 <lambdabot> must have lower precedence than that of the operand,
05:34:11 <lambdabot> namely `$' [infixr 0]
05:34:13 <elliott_> oerjan: hifive
05:34:58 <oerjan> infixr 0 and switched arguments, and it would have mixed well with $
05:36:12 <coppro> elliott_: I chose the thinkpad
05:36:38 <elliott_> coppro: there's no way i'm buying a thinkpad since about the time they went widescreen
05:36:51 <coppro> are they related?
05:36:56 <oerjan> 17:13:13 <CakeProphet> "name" := someUngodlyFunction $ someUngodlyParameters ...
05:36:59 <oerjan> 17:13:28 <CakeProphet> replace the := with something else
05:37:07 <elliott_> coppro: well, I am not the biggest fan of widescreen formats, but no, that isn't the /reason/
05:37:16 <elliott_> coppro: that was about the time when Lenovo started making new models of their own, though
05:37:25 <oerjan> that too would also have worked with infixr 0, although := is a constructor not a function
05:37:32 <elliott_> this isn't like "zomg chinese maek bad computar" or anything, they're just not as well-designed or constructed IMO
05:38:08 <coppro> elliott_: fair
05:38:21 <coppro> they're still, in my opinion, some of the better constructed ones out there
05:38:24 <coppro> and they have mouse nibs
05:38:39 <elliott_> oh, they're one of the better-constructed ones, yeah, I just have a pretty low tolerance for this stuff
05:38:49 -!- lambdabot has quit (Read error: Connection reset by peer).
05:39:11 <oerjan> WHAT DID YOU DO TO HER
05:39:24 <elliott_> mwahaha
05:39:45 <CakeProphet> DO. NOT. WANT.
05:40:13 <elliott_> its hould be illegal to type wrods
05:40:16 <oerjan> 17:15:13 <Sgeo> Is Haskell's printf type-safe? I mean, it type-checks just fine, but
05:40:17 <elliott_> siduscsss
05:40:20 <elliott_> oerjan: i answered
05:40:20 <oerjan> 17:15:53 <elliott_> Sgeo: no
05:40:22 <elliott_> don't answer
05:40:33 <elliott_> was that an answer via quote :D
05:40:46 <oerjan> um it was your answer
05:40:51 <oerjan> which is afair wrong
05:40:59 <elliott_> no, it's correct
05:41:01 <oerjan> unless you have a strange definition of type-safe
05:41:25 <elliott_> Prelude Text.Printf> :t printf "%d" "abc"
05:41:25 <elliott_> printf "%d" "abc" :: PrintfType t => t
05:41:25 <elliott_> Prelude Text.Printf> printf "%d" "abc"
05:41:25 <elliott_> *** Exception: Printf.printf: bad argument
05:41:31 <elliott_> it's not type-safe in the way sgeo means
05:41:36 <elliott_> as he says, "it type-checks just fine"
05:41:40 <elliott_> but it does not ensure type-/safety/
05:41:49 <oerjan> oh right the type-checking is dynamic
05:41:51 <elliott_> it is easy to commit a type error that is only caught at runtime
05:41:58 <elliott_> which means it's not a type-safe method of doing formatted printing
05:42:47 <elliott_> I should write an ``industrial-strength'' library for the kind I described later, I think Oleg's even done it :P
05:42:57 <elliott_> it would be easy and distract me from the horrors I've been coding lately
05:46:36 <oerjan> elliott_: which reminds me, programming in haskell's type system is essentially dynamic typed >:)
05:46:43 <oerjan> *ally
05:46:50 <elliott_> oerjan: indeed, although if you do
05:46:58 <elliott_> class (Result r) => Blah a b r | ...
05:47:05 <elliott_> then it does some "compile-time" checking
05:47:09 <elliott_> and I think you can apply it to the arguments too
05:47:12 <elliott_> basically you can't say
05:47:13 <elliott_> e.g.
05:47:15 <elliott_> imagine
05:47:19 <elliott_> class (Foo r) => Blah a r | a -> r
05:47:20 <elliott_> you can't say
05:47:27 <elliott_> instance Blah (SpecialThing r) r
05:47:28 <elliott_> you have to say
05:47:31 <elliott_> instance (Foo r) => Blah (SpecialThing r) r
05:47:39 <elliott_> but if you recurse it's all ok and works out
05:47:39 <elliott_> so
05:47:42 <elliott_> there is some sort of typing
05:47:44 <elliott_> but it's kind of weak
05:47:49 <oerjan> heh
05:47:52 <elliott_> but yeah, it is essentially dynamically typed
05:48:38 <CakeProphet> are there ducks?
05:49:08 <oerjan> a pair of them
05:49:48 <elliott_> ducks are telling me to go to sleep, they are standing here and saying it
05:49:49 <elliott_> ha ha ha
05:49:50 <elliott_> silly ducks
05:49:52 <elliott_> what do THEY know
05:50:06 <CakeProphet> I'm just glad I'm not a 3 oz. bag anymore.
05:50:24 <CakeProphet> I digested so it's all harmonized now.
05:51:02 <elliott_> your all doing really badly at telling me to go to bed
05:52:42 <CakeProphet> this isn't my all.
05:52:53 <CakeProphet> but I think he's offended now.
05:56:18 <oerjan> offended effendi
05:56:39 <elliott_> ha ha ha
05:56:40 <elliott_> you
05:56:40 <elliott_> fell
05:56:41 <elliott_> in
05:56:41 <elliott_> to
05:56:42 <elliott_> my
05:56:43 <elliott_> trap
05:56:48 <elliott_> youre falling was delightful
05:58:13 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
05:58:43 * oerjan has a cold but is out of iced coffee :(
05:58:57 <elliott_> i read as "is cold"
05:58:58 -!- copumpkin has joined.
05:59:01 <elliott_> ICED COFFEE WARMS MY SOUL
05:59:23 <oerjan> mine too
05:59:26 * pikhq has a glass of wine, and it is pleasant.
05:59:33 <elliott_> i kind of want a http://www.thinkwiki.org/wiki/PC110 now as shitty as it is :D
05:59:35 <elliott_> pikhq: insert trolling
06:02:21 <elliott_> just tried to ?tell someone something
06:02:22 <elliott_> rip lambdabot
06:02:25 <elliott_> :'(
06:02:30 * elliott_ crying
06:03:36 <elliott_> oerjan doesn't appreciate my pain
06:03:42 <elliott_> hes insensitive and bad
06:04:46 <oerjan> and has a runny nose
06:04:53 <elliott_> and is a a bad person
06:05:17 <oerjan> also, memoserv
06:05:24 <elliott_> im not loggged in
06:05:29 <elliott_> http://www.writemypapers.org/examples-and-samples/essay-about-friendship.html oh googling keyboard bashes is productive... this really amuses me
06:05:29 <elliott_> was
06:05:32 <elliott_> this written by a human??
06:05:44 <elliott_> "I got used to believe that friendship is an everlasting phenomenon and it is truly forever. I stick to the opinion, that true friendship is never-ending. Life is unpredictable and we never know what may happen tomorrow. I’ve a lot of friends but only few of them are real. We’ve gone through many difficulties together and now my heart is aching at the thought that we are living in different countr
06:05:45 <elliott_> ies because of life circumstances."
06:05:47 <elliott_> it doesn't... sound real
06:06:14 <elliott_> oerjan non-human did you write this . . .
06:06:29 <oerjan> elliott_: why the heck don't you register elliott_. or change nick.
06:06:37 <elliott_> oerjan: if i changed nick
06:06:41 <elliott_> id have to type the password for elliott
06:06:44 <elliott_> which
06:06:47 <elliott_> involves a number
06:06:52 <elliott_> which involves googling that number to copy it........
06:07:00 <elliott_> : (
06:07:25 <oerjan> when i log in, freenode remembers i logged in even if i change my nick
06:07:57 <monqy> change your password or fix your keyboard
06:08:15 <oerjan> i guess the initial automated login won't work if i'm not on one my nicks
06:09:02 -!- CakeProphet has changed nick to Kallisti.
06:09:08 -!- Kallisti has changed nick to CakeProphet.
06:09:08 <monqy> my automated login works even when I'm not on one of my nicks. I'm too lazy to do it properly, though; maybe it wouldn't work, then
06:09:32 <elliott_> -MemoServ- You are not logged in.
06:09:35 <elliott_> ;p[lsordf09gj
06:09:39 <monqy> well log in
06:09:41 <elliott_> thats my opinoin on swastikas
06:09:46 <elliott_> http://esolangs.org/wiki/Special:Recentchanges
06:09:47 <elliott_> http://esolangs.org/wiki/Special:Recentchanges
06:09:48 <elliott_> woah
06:09:49 <elliott_> Requested Range Not Satisfiable
06:09:58 <monqy> what range
06:10:04 <elliott_> http://esolangs.org/wiki/Special:Recentchanges
06:10:09 <monqy> works fine for me
06:10:23 <elliott_> me too in fx
06:10:23 <elliott_> http://esolangs.org/wiki/User_talk:Ian/LARSA_Interpreter
06:10:30 <elliott_> quality wiki comments from Maharba
06:13:37 <CakeProphet> your moms vast range is also not satisfiable.
06:14:04 <elliott_> range corporations
06:14:08 <elliott_> dfgjofhoifgivnigfjioinogvj fpoohignkjbcfiovncixodnvbjidb fnjhfb nvjhbnjhb uiob uib huib hu
06:14:16 <elliott_> im badass cuz i type without words
06:14:20 <elliott_> i call it avant typing
06:14:34 <CakeProphet> so step one in signal processing...
06:14:50 <elliott_> no please everybody, please, back off, i cannot serve you all at once
06:14:50 <CakeProphet> is a sane base structure that can represent any kind of time varying signal.
06:14:55 <elliott_> my awesomeness is rate-limited
06:15:00 <elliott_> CakeProphet: flavours of frp...
06:15:07 <elliott_> CakeProphet: but um, (Time -> Value) IS A PRETTY GOOD STRUCTURE
06:15:14 <elliott_> time can be a double or just any member of fractional or whatever
06:15:22 <CakeProphet> yes that's what I was going to do.
06:15:36 <elliott_> i mean come on, a sine wave... what's sin... oh yeah a function over the reals :)
06:15:37 <CakeProphet> and then have derived structures for things like repeating patterns by specifying some kind of period or something.
06:16:08 <CakeProphet> though it may be unecessary.. actually.
06:16:16 <CakeProphet> +n
06:16:47 <CakeProphet> also should probably carry around some information about samplerate.
06:17:27 <monqy> http://esolangs.org/wiki/Talk:NetFuck oh god this is great
06:17:36 <elliott_> monqy: hes so upset with our insults
06:17:47 <elliott_> monqy: HE HAS A DEGREE IN COMPUTER SCIENCE
06:17:51 <elliott_> monqy: HE HAS WRITTEN A QBASIC CHAT CLIENT
06:17:53 <elliott_> AND HE HAS
06:17:53 <CakeProphet> oh but wait, if I just specify time -> value then I don't really need to worry about sample rate because all sample rate will do is vary the input numbers...
06:17:55 <elliott_> AD-FREE
06:17:55 <elliott_> WEB
06:17:56 <elliott_> SPACE
06:17:57 <elliott_> TO OFFER
06:18:02 <elliott_> CakeProphet: yeah
06:18:29 <elliott_> CakeProphet: It would be nice if you could use rationals as time for that extra imaginary "precision" and slowness, but
06:18:29 <CakeProphet> so... that's pretty much it.
06:18:30 <elliott_> :t sin
06:18:33 <elliott_> ugh
06:18:35 <elliott_> lambdabot is gone
06:18:40 <elliott_> Prelude> :t sin
06:18:40 <elliott_> sin :: Floating a => a -> a
06:18:46 <elliott_> CakeProphet: So I'd pretty much just fix it to Double
06:18:59 <elliott_> CakeProphet: hmm, samples are actually fractional too, aren't they?
06:19:06 <CakeProphet> yes they can be.
06:19:09 <elliott_> You just map a certain range to N bits to actually quantise it
06:19:11 <CakeProphet> so... yes they are. :P
06:19:14 <elliott_> So you just have (Double -> Double)
06:19:16 <elliott_> Which is nice
06:19:34 <CakeProphet> right, but not everything is a double necessarily.
06:19:36 <CakeProphet> maybe for time.
06:19:52 <elliott_> CakeProphet: Well, you want to be able to use sin, right?
06:19:57 <elliott_> sin :: Floating a => a -> a
06:20:01 <CakeProphet> right, Double -> Double is the usual case.
06:20:02 <elliott_> Rationals aren't an instance of Floating
06:20:06 <elliott_> So I dunno what else you would use
06:20:24 <CakeProphet> but, for example, if you just have an on/off signal controlling some sample, then that would be Double -> Bool
06:20:34 <elliott_> CakeProphet: ah, but that wouldn't be a signal itself
06:20:46 -!- Vorpal has joined.
06:20:48 <CakeProphet> (or Double -> Double if you just have the result wave as the amplitude, 0 for off, 1 for full)
06:21:24 <elliott_> well, the Double result would be [0,one] right?
06:21:37 <elliott_> so Bool is just it restricted to 0 and 1 :P
06:21:50 <CakeProphet> in the case of a volume on/off signal, yes.
06:22:08 <elliott_> CakeProphet: Erm, in the case of a sample result too, no?
06:22:32 <elliott_> Sixteen-bit or whatever is just a way of mapping a reduced range of [0,1] to some bits
06:22:34 <CakeProphet> well, yes. You could have a [0,1] trigger a sample when it's non-zero, or one, or however you want to do it.
06:22:41 <elliott_> um
06:22:44 <elliott_> I don't think you understand
06:22:45 <elliott_> I mean samples themselves
06:22:51 <CakeProphet> oh, right. :P
06:22:51 <elliott_> not the volume on/off signal
06:22:52 <elliott_> actual audio
06:23:06 <CakeProphet> well.... erm.
06:23:07 <elliott_> oh hey nice, scaling is
06:23:09 <elliott_> scale scl f x = f x * scl x
06:23:14 <elliott_> you can just make Signal an instance of Num
06:23:17 <CakeProphet> if you normalize it, then yes it would be [0,1]
06:23:32 <elliott_> CakeProphet: wouldn't you want to do that, so that programs would be sample size independent? :)
06:23:42 <CakeProphet> yes, to prevent aliasing.
06:24:58 <oerjan> what worries me conceptually about Double -> Double without a sample rating is that it cannot be serialized in a reasonable time...
06:25:06 <CakeProphet> for a sampler trigger though multiplying by an on-off signal isn't enough. You would want a True event to trigger the sample to play at that point in time.
06:25:13 <elliott_> CakeProphet: http://sprunge.us/jNQZ
06:25:21 <elliott_> right, a trigger is different
06:25:26 <elliott_> but that's not really related to signals
06:25:33 <CakeProphet> it, can be. :D
06:25:39 <elliott_> oerjan: um yes it does
06:25:41 <CakeProphet> csound does shit like that, if I recall.
06:25:52 <elliott_> oerjan: for N khz, just call with sequential values at appropriate precision
06:25:57 <elliott_> scale the resulting doubles to your sample size
06:25:58 <elliott_> done
06:26:13 <oerjan> elliott_: um that's setting a sample rate in order to serialize, surely?
06:26:16 <elliott_> oerjan: well yes
06:26:18 <elliott_> what else do you expect?
06:26:28 <oerjan> oh well
06:26:31 <elliott_> I'm not sure what you would prefer, nothing else would be this flexible
06:26:33 <elliott_> or this pure :P
06:26:47 <elliott_> oerjan: it is kind of like saying the Fran (Coords -> Colour) images are not serialisable in that sense
06:26:53 <elliott_> they're not, but that's where their power comes from
06:27:01 <elliott_> and if you want the "serialisation"... it's the program's source
06:27:27 <CakeProphet> yeah.. I don't really see why it would be a problem to ignore sample rate until you actually want digital audio.
06:28:49 <CakeProphet> but... -ahem- I might end up mucking all of this purity up in IO.
06:28:54 <CakeProphet> we'll see.
06:29:00 <elliott_> what? there is no reason for a signal to have an IO result type
06:29:10 <elliott_> that is terrible, ruins the entire thing, and is completely pointless :)
06:29:55 <CakeProphet> well, not entirely. Let's say I'm modulating a sound generator with parameters that I want to be able to mutate later on, anywhere else.
06:30:06 <CakeProphet> IORefs, essentially.
06:30:09 <elliott_> yes but that is an _environment_ thing
06:30:21 <elliott_> you really want the "performance" file format to be something else entirely
06:30:24 <elliott_> like yaxu's emacs mode stuff
06:31:16 <CakeProphet> I'll have to wait until I get there I guess. I agree it's best to keep a least the basic processing units pure.
06:31:33 <CakeProphet> and then a more complex "synthesizer" could mess around with IORefs and IO in general.
06:31:38 <CakeProphet> to do, whatever the hell it needs to do.
06:32:30 <elliott_> i'm tempted to mess around with this now
06:32:34 <elliott_> already did the image version
06:32:59 <CakeProphet> well, I'll be starting sometime tomorrow maybe.
06:33:09 <elliott_> bah, who cares about _your_ code
06:33:16 <CakeProphet> I took like 8 mg of melatonin so I should be passing out soon. It's only 2:33 AM here though..
06:33:28 <CakeProphet> elliott_: my code will be awesome you don't even KNOW.
06:33:32 <elliott_> 8 mg?!?!?!?!?!?!
06:33:39 <CakeProphet> yep.
06:33:47 <pikhq> CakeProphet: If you're using IO and not interacting with the outside world, you're doing it wrong.
06:33:57 <elliott_> that's a rather insanely excessive dose, dude
06:34:04 <elliott_> also pikhq is right, if you just want references you want ST
06:34:07 <Vorpal> elliott_, hi!
06:34:09 <elliott_> and STRefs
06:34:16 <elliott_> but the topic is now you taking way too much melatonin
06:34:18 <elliott_> Vorpal: hi, i'm going to bed
06:34:29 <Vorpal> elliott_, oh :(
06:34:35 -!- oerjan has quit (Quit: Argh).
06:34:37 <elliott_> Vorpal: what
06:34:38 <CakeProphet> elliott_: well, in the future having both mutable references and interaction with the outside world would be a benefit, so, IO I'd say.
06:34:46 <pikhq> CakeProphet: BEAT BEAT BEAT
06:34:50 <pikhq> CakeProphet: DON'T BE STUPID
06:34:55 <elliott_> CakeProphet: my professional opinion is that you don't know what the hell you're talking about :)
06:35:08 <CakeProphet> ...uh, okay.
06:35:16 <Vorpal> elliott_, I finished the last exam before the summer holidays. Now it is time to turn my focus towards 1) driving exam 2) ordering that computer
06:35:17 <pikhq> In Haskell, good style involves IO being minimal.
06:35:21 <elliott_> MY CODE WILL THEREFORE BE BETTER NIH TIME
06:35:23 <pikhq> Ideally, 1 line of code.
06:35:24 <Vorpal> elliott_, :)
06:35:34 <elliott_> Vorpal: try driving a lot, driving is great
06:35:38 <CakeProphet> yes I know all about that. You seem to think I'm just going to fill my code with IO now.
06:35:42 <elliott_> computers are terrible they crash and break a lot
06:35:44 <CakeProphet> but that's not what I intend.
06:35:48 <elliott_> CakeProphet: you're proposing putting every signal into io :)
06:35:48 <Vorpal> elliott_, haha
06:35:57 <elliott_> Vorpal: when do cars break? nevre.
06:36:00 <elliott_> never.
06:36:17 <pikhq> CakeProphet: To a Haskellian, you are.
06:36:25 <Vorpal> elliott_, hm I should invite you to planet Earth sometime
06:36:26 <elliott_> "haskellian"
06:36:28 <elliott_> please stop talking
06:36:32 <elliott_> Vorpal: it sounds shit
06:36:32 <Vorpal> might be fun to see your reaction
06:36:37 <Vorpal> elliott_, yes, it is.
06:36:42 <pikhq> Perhaps I should sleep.
06:36:47 <elliott_> me too
06:36:51 <elliott_> what time is it there pikhq
06:36:59 <pikhq> T00:37
06:37:06 <elliott_> thanks for clarifying with that t
06:37:12 <CakeProphet> elliott_: no, I propose putting IO around the code that operates on signals. I think that's a bit more reasonable, since, you know, they have to play audio and stuff. And maybe pull data from websites or files, etc.
06:37:14 <Vorpal> elliott_, wait what, you are still awake?
06:37:18 <elliott_> id assume you meant the zeroth day of the thirty-seventh month otherwise
06:37:32 <elliott_> Vorpal: no this is just an illusion
06:37:34 <elliott_> wake up
06:37:35 <elliott_> WAKE UP
06:37:36 <pikhq> CakeProphet: NO, NO, NO THEY DO NOT.
06:37:37 <Vorpal> elliott_, oh okay
06:37:42 <Vorpal> elliott_, carry on then.
06:37:59 <CakeProphet> pikhq: hey you don't know what I plan to do.
06:38:09 <pikhq> CakeProphet: To play audio, you take the output from them and then interact with it in IO.
06:38:14 <CakeProphet> correct.
06:38:25 <pikhq> You don't need your signals to be IN IO for that.
06:38:27 <CakeProphet> I fail to see how we're talking about different things.
06:38:30 <CakeProphet> that's not what I said.
06:38:32 <pikhq> You just need your signals to be pure functions.
06:38:35 <pikhq> YES IT IS.
06:38:43 <pikhq> If it's not what you mean, say what you mean, please.
06:38:45 <elliott_> IF YOU TALK ANGRILY IN CAPS THAT FUCKWIT WILL LISTEN TO YOU.
06:38:46 <elliott_> RAAAAAAAAAAAARGH
06:38:53 <CakeProphet> pikhq: I said what I mean, see above.
06:39:04 <pikhq> So, then you claim what you said isn't what you said.
06:39:08 <pikhq> Please, elucidate.
06:39:11 <elliott_> oh god
06:39:13 <elliott_> everyone shut up
06:39:15 <elliott_> as prime minister
06:39:16 <elliott_> of thsi channel
06:39:18 <CakeProphet> as in, the very most recent lines of text. my attention span is somewhat short since I'm drugged and all. :P
06:39:20 <elliott_> im declaring a ten minute silence
06:39:26 <elliott_> no more talking starting from now
06:39:29 <elliott_> offenders will be murdered
06:40:00 <Vorpal> elliott_, you broke it yourself :P
06:40:05 <pikhq> I have infinite health.
06:40:06 <elliott_> Vorpal: goodbye
06:40:10 <elliott_> pikhq: rip
06:40:31 <pikhq> You cannot defeat me, I have Single Player Commands!
06:40:43 <elliott_> are you fucking suicidal you idiot youre going to die
06:40:48 <Vorpal> hm
06:41:07 <Vorpal> elliott_, this should give you plenty of time to research computer components!
06:41:19 <elliott_> Vorpal: why would i make a computer for a dead man
06:41:20 <elliott_> get real
06:41:40 <CakeProphet> elliott_: be rational
06:41:43 <Vorpal> elliott_, well, since when did that stop anyone? Just look at discworld
06:41:47 <elliott_> CakeProphet: ARE YOU ALL
06:41:48 <elliott_> FUCKING
06:41:49 <elliott_> IDIOTS
06:41:55 <elliott_> I AM GOING TO FUCKING RIP OUT YOUR SKULLS
06:41:58 <elliott_> EVERYONE
06:41:59 <elliott_> WILL
06:42:00 <elliott_> PERISH
06:42:07 <CakeProphet> !simpleacro
06:42:07 <elliott_> YOU WILL HAVE TO FUCKING CODE IN NETFUCK
06:42:09 <elliott_> FOR THE REST
06:42:10 <elliott_> OF YOUR FUCKING
06:42:11 <elliott_> LIVES
06:42:12 <elliott_> WHICH WILL END
06:42:13 <EgoBot> ​QM
06:42:13 <elliott_> SWIFTLY
06:42:16 <elliott_> BUT THE AFTERLIFE TOO
06:42:19 <elliott_> EgoBot: SHUT
06:42:21 <elliott_> THE
06:42:21 <elliott_> FUCK
06:42:23 <elliott_> UP
06:42:30 <elliott_> I AM TAKING CONTROL OF THIS CHANNEL
06:42:31 <Vorpal> elliott_, you yourself spoke during this period of silence.
06:42:38 <elliott_> Vorpal: I'M ABOVE THE FUCKING LAW.
06:42:38 <Vorpal> so you have to kill yourself.
06:42:47 -!- elliott_ has set topic: TRANSITIONARY MILITARY GOVERNMENT | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
06:42:49 <CakeProphet> I'm not entirely sure why elliott is screaming at me right now.
06:42:57 <elliott_> CakeProphet: TALKING IS DISALLOWED
06:43:02 <elliott_> THIS IS A TEN MINUTE SILENCE
06:43:03 <CakeProphet> k.
06:43:10 <Vorpal> CakeProphet, I think it is because he is sleep deprived.
06:43:13 <elliott_> THE LOUDEST TEN MINUTE SILENCE EVER THANKS TO ME
06:43:19 <elliott_> Vorpal: no, you're all just being really stupid right now.
06:43:28 <elliott_> i'm still awake for various complicated reasons
06:43:33 <elliott_> that mostly involve time management
06:43:37 <elliott_> anyway im going to go to bed
06:43:42 <elliott_> and if you
06:43:44 <Vorpal> good
06:43:59 <Vorpal> we will fill the log for you to read when you wake up
06:44:00 <elliott_> talk
06:44:03 <elliott_> then i will kill you all
06:44:46 <Vorpal> elliott_, the supreme court find that this period of silence is unconstitutional!
06:44:53 <CakeProphet> pikhq: so anyways, perhaps I explained poorly, but I wasn't suggesting that the signal generators themselves have anything to do with IO, just the code that uses it for whatever nefarious purpose.
06:44:59 <elliott_> CakeProphet: ahem
06:45:11 <monqy> hi
06:45:34 <CakeProphet> elliott_: you're making lambdabot cry in heaven.
06:45:55 <elliott_> monqy: yo
06:46:26 <pikhq> CakeProphet: If they do IO, they should be in IO.
06:46:33 <pikhq> If they do not do IO, they should not be.
06:46:38 <elliott_> I REIMPOSE THE SILENCE
06:46:48 <elliott_> ok right its like
06:46:49 <elliott_> this time when
06:46:51 <elliott_> i close the laptop
06:46:53 <elliott_> and all the stupid people
06:46:54 <Vorpal> hm
06:46:55 <elliott_> disappear
06:46:57 <elliott_> thats a really good time
06:47:00 <elliott_> its going to happen now
06:47:03 <elliott_> can you feel it about to happen
06:47:03 <Vorpal> cya
06:47:04 <elliott_> its happening
06:47:06 -!- elliott_ has quit (Quit: now).
06:47:11 <Vorpal> phew
06:48:37 <fizzie> Let's not count our chickens before they hatch; if you say something sufficiently outrageous, it's possible he'll be log-snooping and rejoining just to reply.
06:48:47 <Vorpal> heh
06:48:52 <Vorpal> true
06:49:05 <Vorpal> lets see...
06:49:22 <Vorpal> what about this one: <elliott> Haskell would be better with side-effects.
06:49:38 <CakeProphet> my aliens have run amuck. Good night.
06:49:42 <Vorpal> CakeProphet, cya
06:49:57 <Vorpal> fizzie, doesn't seem to have worked. Oh well.
06:50:34 <fizzie> Vorpal: In other news, http://users.ics.tkk.fi/htkallas/prague-congress-hall.jpg
06:51:12 <Vorpal> fizzie, hm needs some vertical control lines
06:51:19 <Vorpal> fizzie, otherwise: nice
06:51:29 <fizzie> There's a bit of parallax problems in the chairs nearby, but that's just to be expected.
06:51:31 <Vorpal> err... s/otherwise/other than that/
06:51:59 <Vorpal> fizzie, adding some vertical lines on wall features would help a lot
06:52:27 <Vorpal> probably
06:52:30 <fizzie> Yes; I'll try that when at home some point.
06:52:42 <Vorpal> fizzie, oh where are you now?
06:52:59 <fizzie> At work; it's almost 10am already here.
06:53:07 <Vorpal> oh right
06:53:34 <Vorpal> fizzie, weird they added an extra chair there, there isn't any lack of free seats
06:53:58 <fizzie> The guy in the chair has a video camera on a tripod in front of him; not very clear from the picture.
06:53:58 <Vorpal> or wait, is he recording the thing?
06:54:01 <fizzie> Yes.
06:54:01 <Vorpal> ah
06:54:20 <fizzie> They showed the speaker video on that smaller (rightmost) screen.
06:54:27 <fizzie> And probably archived it somewhere too.
06:54:37 <Vorpal> fizzie, and what is the thin vertical screen for?
06:55:09 <fizzie> I think that's just a lit-up painted piece of cloth/paper with the conference logo fixed on it.
06:55:18 <fizzie> So that we wouldn't forget where we were.
06:55:19 <Vorpal> ah
06:55:23 <Vorpal> heh
06:56:06 <Vorpal> fizzie, ever played ultima 7?
06:56:44 <Vorpal> I tried it out a few days ago... Interesting. Though the interface is annoying to say the least.
06:56:47 <fizzie> Very little; some moments with exult, that's all.
06:56:54 <Vorpal> fizzie, yes I used exult too
07:02:17 <Vorpal> whoa, lyx has an option "--without-included-boost"
07:02:20 <Vorpal> this scares me
07:02:41 <Vorpal> that anyone would embed a copy of boost that is.
07:03:08 <fizzie> There's that one site about craziness in Ultima 7; e.g. http://www.it-he.org/ultima7.htm#gambling
07:03:25 <fizzie> (It's an unfortunately messy page.)
07:03:59 <pikhq> ... *Embed a copy of Boost*?
07:04:02 <pikhq> Jesus that's scary.
07:04:19 <Vorpal> pikhq, in the source yes...
07:04:44 <pikhq> That is fucking scary.
07:04:55 <Vorpal> ~/src/lyx/lyx-2.0.0 $ du -sh boost/
07:04:55 <Vorpal> 15M boost/
07:05:06 <Vorpal> not the whole thing I guess
07:05:09 <Vorpal> but still
07:06:38 <pikhq> KKK counterprotesting Westboro Baptist.
07:06:49 <Vorpal> wait a second....
07:06:57 <Vorpal> pikhq, aren't they roughly on the same side?
07:07:06 <pikhq> Vorpal: Not quite.
07:07:11 <Vorpal> pikhq, oh?
07:07:19 <pikhq> Westboro Baptist is convinced that America is horribly evil.
07:07:26 <pikhq> The KKK is hypernationalist.
07:07:44 <pikhq> And Westboro Baptist protests the military quite extensively.
07:07:49 <pikhq> Which the KKK considers almost holy.
07:08:17 <Vorpal> ah
07:08:45 <pikhq> Y'know you're bad when a hate group is protesting your hate. :P
07:08:51 <Vorpal> heh
07:10:08 * Vorpal wonders how to get data out a RAID-1ed disk of a shut down computer with just one external hd cabinet. Without declaring one disk failed first that is
07:10:25 <Vorpal> I'm only interested in read access... I wonder if it is possible
07:10:26 <Vorpal> hm
07:10:45 <pikhq> RAID-1? Uh, just treat it like a single drive.
07:11:06 <Vorpal> pikhq, yes well it is mdraid
07:11:21 <Vorpal> pikhq, I doubt linux will be all that happy to mount it without both disks accessible
07:11:40 <pikhq> You can just mount it directly.
07:11:50 <pikhq> Seriously.
07:11:56 <Vorpal> pikhq, how? some device mapper thingy to skip the mdraid metadata block at the start?
07:12:06 <Vorpal> or wait, was it at the end
07:12:44 <Vorpal> besides it is lvm2 on top of mdraid, and blindly ignoring the metadata block there sounds... dangerous...
07:13:48 <pikhq> Are you going to write to it?
07:13:53 <Vorpal> pikhq, nope
07:14:02 <pikhq> Then there is nothing that can possibly go wrong.
07:14:42 <Vorpal> pikhq, what about the metadata block for mdraid? Won't you need to somehow map it out
07:15:13 <Vorpal> oh hm mdadm has --run to assemble it seems
07:15:17 <Vorpal> might do what I need
07:16:02 <pikhq> Eh, just start the RAID up. It'll work just fine off a single disk, since it *is* RAID-1.
07:16:02 <Vorpal> wait, wrong mode
07:16:17 <Vorpal> pikhq, yes but when I put these back together, won't it complain hm
07:16:34 <Vorpal> pikhq, even if I mount read only I'm not sure lvm will not touch anything
07:17:02 <pikhq> LVM will only touch things if you directly modify things.
07:17:19 <pikhq> Say, by creating a new volume.
07:17:37 <Vorpal> pikhq, so no updating of last timestamps in metadata blocks or such?
07:18:01 <pikhq> There are no timestamps in the LVM metadata.
07:18:09 <Vorpal> ah good
07:18:22 <Vorpal> pikhq, well if this doesn't work I know who to blame :P
07:18:25 <pikhq> Nor any means of updating the LVM metadata without directly executing one of the LVM utils, for that matter.
07:19:03 <Vorpal> pikhq, well I will need to execute vgscan and vgchange to detect and enable/disable the vg
07:19:44 <pikhq> Yeah, those only read, so...
07:20:11 <Vorpal> right
07:21:06 <Vorpal> I wonder what use this screwdriver is... the flat head is less than a mm wide
07:21:27 <Vorpal> marked as 0.6 mm wide
07:22:31 <olsner> for driving 0.6mm screws, of course
07:23:08 <fizzie> The metadata block's at the end of the disk, so you can use it "directly" too; it's just that the default lvm.conf sets md_component_detection = 1, so it will ignore partitions that have md superblocks in order to not be confused when it sees the same physical volume three (or more) times.
07:23:08 <Vorpal> olsner, yeah but come on, even the screws on glasses aren't that small. They are usually 1 mm
07:23:22 <Vorpal> fizzie, heh
07:23:30 <pikhq> fizzie: Oh, that's nice and sane.
07:23:44 <Vorpal> pikhq, was that sarcastic?
07:23:49 <pikhq> Vorpal: Nope.
07:23:55 <Vorpal> ah
07:24:29 <pikhq> Makes sense with how LVM literally scans all attached volumes for LVM physical volumes...
07:25:24 <Vorpal> annoying... I need to remove the AGP card to be able to get the hdd out. Sigh
07:26:04 <Vorpal> makes you wonder how they managed to fit those huge old ISA cards...
07:27:05 <pikhq> Well, you could use an IBM XT in lieu of cinderblocks.
07:27:14 <Vorpal> hah
07:28:19 <fizzie> If you want to be extra careful, mdadm has a --readonly command that you can use to mark an array read-only, before running any LVM ops.
07:29:03 <fizzie> The md superblock has a timestamp, but as far as I know it isn't touched unless you do a write request on the array.
07:29:09 <Vorpal> ah
07:35:10 -!- azaq23 has quit (Quit: Leaving.).
07:36:22 <Vorpal> what
07:36:24 <Vorpal> the fuck?
07:36:56 <Vorpal> I wonder if this external cabinet handles large disks correctly
07:41:34 <Vorpal> okay it works now
07:41:35 <Vorpal> wtf
08:05:01 <Vorpal> fizzie, another thing that annoys me with Ultima 7: The font.
08:05:10 <Vorpal> sure it looks all nice. But it *is* hard to read.
08:05:28 <Vorpal> I'd much rather have a boring sans-serif
08:08:16 -!- MigoMipo has joined.
08:21:31 <Vorpal> why did cdparanoia decide to rip at 1x
08:22:13 <fizzie> It makes the experience more authentic.
08:22:53 <Vorpal> fizzie, well, sometimes it rip at 8x
08:23:05 <Vorpal> I just don't understand how it decides what speed to use
08:24:49 <Vorpal> considering the cd is almost full this is indeed annoying
08:38:12 -!- pikhq_ has joined.
08:38:24 -!- pikhq has quit (Ping timeout: 250 seconds).
08:43:26 -!- monqy has quit (Quit: hello).
09:19:56 -!- Lymia_ has joined.
09:20:00 -!- Lymia has quit (Disconnected by services).
09:20:02 -!- Lymia_ has changed nick to Lymia.
09:20:06 -!- Lymia has quit (Changing host).
09:20:06 -!- Lymia has joined.
09:41:42 -!- Phantom_Hoover has joined.
09:51:21 <Phantom_Hoover> Sgeo.
09:51:24 <Phantom_Hoover> No, he is not here.
09:51:27 <Phantom_Hoover> elliott.
09:51:29 <Phantom_Hoover> Is also not here.
09:51:30 <Phantom_Hoover> Dammit.
09:51:49 <Phantom_Hoover> Who am I meant to discuss the Homestuck update with?
09:52:06 * Phantom_Hoover remembers that he has an exam in a couple of hours with the guy in his school who reads it.
09:53:34 <Vorpal> Phantom_Hoover, good luck. Yesterday I finished my last exam for a while.
09:53:42 <Vorpal> Well apart from the driving one in a few weeks
09:54:00 <Phantom_Hoover> I cannot imagine you failing to drivve.
09:54:02 <Phantom_Hoover> *drive
09:54:27 <Phantom_Hoover> It is exactly the kind of boring procedural thing you do with an air of infuriating smugness.
09:54:30 <Vorpal> Phantom_Hoover, oh? Well I heard that Sweden have amongst the hardest driving exams in the world
09:54:59 <Phantom_Hoover> You're taking the exam in a few weeks and all you have is international gossip to go on?
09:55:18 <Phantom_Hoover> Wait have you seen today's Homestuck update.
09:55:26 <Vorpal> Phantom_Hoover, well I think I will manage it. The theoretical part should not pose any issue.
09:55:32 <Vorpal> Phantom_Hoover, no.
09:56:07 <Phantom_Hoover> Also: new album out.
09:56:17 <Phantom_Hoover> Album*s*.
09:56:51 <Vorpal> Phantom_Hoover, atm I'm playing Ultima VII. My main issue with that game is that the font used for dialogs and so seems to be "Old English" or such.
09:56:57 <Vorpal> rather hard to read anyway
09:57:17 <Phantom_Hoover> *Olde English
09:57:29 <Phantom_Hoover> pikhq_ will verify that this is the correct spelling.
09:57:55 <Vorpal> Phantom_Hoover, are you sure how that typeface is spelled?
09:58:12 <Phantom_Hoover> No, that is the name of the language.
09:58:15 <Vorpal> Phantom_Hoover, because iirc the typeface I'm referring to is named "Old English"
09:58:25 <Vorpal> Phantom_Hoover, I'm referring to the typeface, not the language
09:58:35 <Phantom_Hoover> They're spelling it wrong.
09:58:43 <Vorpal> maybe.
09:58:56 <Phantom_Hoover> Oh my god this album is so good.
09:59:18 <Vorpal> Phantom_Hoover, oh and some signs use god damn runes. And no this isn't just a case of your character doing a lore check like in D&D to decode it... The manual has a mapping table
09:59:23 <Vorpal> the rest... is up to you.
09:59:55 <Vorpal> Phantom_Hoover, oh and it uses "thou" and so on instead of "you". The language is fake Olde English.
10:01:04 <Vorpal> Phantom_Hoover, example of the typeface: http://www.it-he.org/u7/u7_bpot2.gif
10:01:24 -!- MigoMipo has quit (Read error: Connection reset by peer).
10:01:53 <Vorpal> while it looks great.... it is harder to read. If it was just the occasional bit of text it wouldn't matter. But every single in game text is either that sort of font, or runes.
10:09:30 <Phantom_Hoover> http://www.reddit.com/r/todayilearned/comments/hnzwx/til_that_a_majority_of_biologists_believe_earth/c1wxejf
10:09:54 <Phantom_Hoover> This is getting confusing.
10:15:18 <fizzie> I've heard the same gossip w.r.t. the US/UK driver's license tests, in the sense that the UK is notably more difficult. I don't really know where other countries fall in that spectrum.
10:15:44 <fizzie> At least failing it is not considered especially surprising in Finland; though on the other hand passing it on the first try isn't particularly rare either.
10:16:34 <Vorpal> fizzie, sounds like Sweden there
10:16:40 <Phantom_Hoover> fizzie, the impression from people at my school doing the test isn't one of insurmountable difficulty, but I wasn't really paying attention to the people taking it.
10:17:22 <fizzie> Vorpal: Do you have night-driving/winter-driving sessions in the training part?
10:17:53 <Vorpal> fizzie, the latter at least. And you get the former during winter automatically :P
10:18:20 <fizzie> We do it in a special track when it's summer.
10:18:30 <Vorpal> fizzie, well, the latter we do on a special track.
10:18:35 <fizzie> Right.
10:18:56 <Vorpal> fizzie, I did it during autumn. They put some bio-degradable oil on the track to simulate slippery surface.
10:19:15 <fizzie> I don't know what they used here, some sort of liquid anyway.
10:21:14 <Phantom_Hoover> fizzie, ah, over here when the roads get slippery we smear them with salt and act like it's unusual.
10:21:36 <Vorpal> Phantom_Hoover, well, over here that isn't realistic :P
10:21:36 <Phantom_Hoover> (There was grit on the path in front of my school until well into spring.)
10:21:49 <Vorpal> grit? Not sand?
10:22:07 <Phantom_Hoover> Yes.
10:22:59 <Phantom_Hoover> The particles are larger, and there's a lot of salt in it.
10:23:07 <Vorpal> Phantom_Hoover, well we do put sand, and salt on roads. Well salt mostly on the highways and other large roads.
10:23:17 <fizzie> The thing they use for "sanding" (which is what it's called if you just translate literally) is quite a coarse mixture too.
10:23:35 <Phantom_Hoover> I suppose it's just an arbitrary choice.
10:23:40 <Phantom_Hoover> http://homestuck.bandcamp.com/track/lifdoff
10:23:44 <Lymia> fizzie, where do you live?
10:23:47 <Vorpal> I have never looked closely of what it is made of, but it is called "sanda" in Swedish, so I assumed it was indeed sand
10:23:47 <Phantom_Hoover> Oh my god this needs to be used.
10:23:49 <Phantom_Hoover> Lymia, Finland.
10:23:53 <Phantom_Hoover> Land of fins.
10:23:54 <Lymia> Phantom_Hoover, lowers the freezing tempature, right?
10:23:56 <Vorpal> Lymia, and Sweden for me
10:24:00 <Lymia> salt lowers*
10:24:06 <Phantom_Hoover> Lymia, yes.
10:24:14 <Vorpal> yes
10:24:19 <Vorpal> not nearly enough though
10:24:25 <Vorpal> iirc it stops working below -15 C or so
10:24:48 <Lymia> How did I accidentally omit a subjcet?
10:24:50 <Vorpal> or was it -20 C?
10:24:51 <Lymia> subject*
10:24:54 <Vorpal> well.. anyway
10:24:57 <Phantom_Hoover> Although according to WP CaCl_2 is preferred since it dissolves exothermically.
10:25:27 <Vorpal> hm
10:25:56 <Vorpal> "While salt was once a scarce commodity in history, industrialized production has now made salt plentiful. Approximately 51% of world output is now used by cold countries to de-ice roads in winter, both in grit bins and spread by winter service vehicles." <-- heh, 51%... that is quite a bit
10:26:50 * Lymia thinks Japanese is getting to her brain, even though she doesn't really know that much
10:26:54 <Lymia> Guh. What's with my k key.
10:27:21 <Phantom_Hoover> According to WP it's -21°C theoretically, although you can practically go down to -22°.
10:27:30 <Vorpal> ah
10:27:38 <Lymia> Can you make it go lower with other chemicals?
10:27:44 <Phantom_Hoover> Probably.
10:27:44 <Lymia> Antifreeze?
10:27:48 <Vorpal> Phantom_Hoover, that is unusual. Often the theoretically limit is further out than the practical one!
10:28:10 <Phantom_Hoover> Lymia, antifreeze is toxic as hell though.
10:28:14 <Vorpal> Lymia, you mean like glycol?
10:28:18 <Phantom_Hoover> And difficult to acquire in large quantities.
10:28:38 <Phantom_Hoover> While salt... I think we get it mostly from a mine in Ireland here.
10:28:50 <Vorpal> Phantom_Hoover, yeah you don't need much.
10:30:07 <Vorpal> Phantom_Hoover, I mean, aren't there palms in south UK iirc. Not native, but as far as I heard, they survive along the south coast in some places.
10:30:11 <Vorpal> not sure if this is true
10:32:57 <Vorpal> Phantom_Hoover, btw, they do use antifreeze on runways sometimes. And on the outside of planes
10:33:25 <Vorpal> specifically ethylene glycol
10:33:38 <Lymia> Phantom_Hoover, if antifreeze doesn't work, wood + fire will.
10:33:45 <Lymia> Or maybe not.
10:33:54 <Vorpal> Lymia, where do /you/ live?
10:34:12 <Vorpal> somewhere hot probably
10:34:22 <Vorpal> because that idea is outright silly for deicing roads.
10:35:18 <Lymia> Vorpal, it's a joke.
10:35:23 <Vorpal> oh okay
10:35:41 <Lymia> Burning stuff on the roads is never a good idea, don't you think?
10:35:42 <Lymia> You know.
10:35:46 <Lymia> Because roads are near houses.
10:36:03 <Vorpal> Lymia, only sometimes. Most of the time roads are next to forests rather
10:36:17 <Lymia> That's better?
10:36:21 <Vorpal> Lymia, plus of course it would block the road for non-fireproof cars
10:36:32 <Lymia> Vorpal, screw that.
10:36:35 <Lymia> All cars should be fireproof.
10:36:36 <Vorpal> Lymia, yes, quickly defrosts a large area. There might be side effects
10:36:43 <Vorpal> such as wildfires
10:37:19 <Vorpal> but I doubt wildfires are likely during winter. The snow would melt ant quickly put it out.
10:37:29 <Lymia> If fire doesn't work, use bombers.
10:37:38 <Vorpal> Lymia, how would that help?
10:37:42 <Vorpal> napalm?
10:37:44 <Lymia> By blowing up the ice.
10:37:47 <Lymia> Doh.
10:37:50 <Vorpal> oh
10:37:54 <Lymia> Explosions always, help, right.
10:37:58 <Lymia> always help*
10:38:02 <Lymia> Uh.. the road being damaged?
10:38:08 <Lymia> Acceptable collateral damage.
10:38:21 <Vorpal> Lymia, what when the ice is the road though?
10:38:43 <Vorpal> Lymia, we have some lake roads during winter when the ice is thick enough to drive a car on.
10:39:00 <Vorpal> I think Finland have a few of those too
10:40:34 <Lymia> Vorpal, apply napalm.
10:40:50 <Vorpal> Lymia, that would make the road non-functional :P
10:42:33 <Lymia> Vorpal, well.
10:42:34 <Lymia> Who cares.
10:42:37 <Lymia> The goal is deicing, right?
10:42:52 <Vorpal> hm this one looks like it is in bad condition... http://en.wikipedia.org/wiki/File:Ice_road_saimaa.JPG
10:43:18 <Lymia> Hah.
10:43:26 <Lymia> People actually use shortcuts like that often?
10:43:39 <Lymia> Vorpal, the solution to that is a sander.
10:43:39 <Lymia> :)
10:43:41 <Vorpal> Lymia, mostly they go to islands that have ferry services during summer.
10:43:56 <Lymia> So during winter...
10:44:07 <Vorpal> Lymia, I heard they use hovercrafts during the periods neither cars nor boats can pass them.
10:44:17 <Vorpal> Lymia, coolest school bus ever.
10:44:20 <Vorpal> (hovercraft that is)
10:44:24 <Lymia> Technology to the rescue..
10:44:33 <Lymia> Why don't they use hovercrafts when boats work?
10:44:55 <Vorpal> you mean, even during the periods when cars work?
10:45:12 <Vorpal> expensive I think
10:45:19 <Lymia> Vorpal, no.
10:45:24 <Lymia> Even during the periods when the boats work.
10:45:40 <Lymia> How much more expensive is it?
10:45:49 <Vorpal> Lymia, more expensive. Besides I don't we have many gigantic hovercrafts in Sweden. While there are quite a lot of ships.
10:46:09 <Vorpal> and there are always the ubiquitous yellow public service free ferries.
10:48:09 <Phantom_Hoover> <Lymia> Why don't they use hovercrafts when boats work?
10:48:18 <Phantom_Hoover> Yeah, expense.
10:48:19 <Vorpal> Lymia, typical Swedish ferry: http://sv.wikipedia.org/wiki/Fil:MSFredrika.jpg
10:48:36 <Phantom_Hoover> You need to run the fans on the bottom, and they can't be very fuel-efficient.
10:49:02 <Vorpal> Phantom_Hoover, I know for a fact that they use hovercraft for schoolbus service during the period neither boats nor cars work on an island some 30-40 km from here.
10:49:11 <Phantom_Hoover> Although we did have one going across the Firth of Forth for 12 days, apparently.
10:49:50 <Phantom_Hoover> Which is odder still, since there are not one but two perfectly functional bridges going across it already at about the same place.
10:49:53 <Vorpal> Phantom_Hoover, for 12 days? Not a long term investment there
10:50:46 <Phantom_Hoover> (Well, OK, it cut out a large U-turn between Portobello and Kirkaldy, so it was probably faster.)
10:50:52 <Phantom_Hoover> Vorpal, experiment.
10:51:03 <Vorpal> http://sv.wikipedia.org/wiki/Fil:By%C3%A4lvan1.JPG<
10:51:05 <Vorpal> err
10:51:06 <Vorpal> s/<//
10:51:07 <Vorpal> WHY
10:51:15 <Vorpal> come a bridge there would be cheap
10:52:26 <fizzie> We do have ice roads, too; though only four official ones, and they're all pretty short.
10:52:39 <Vorpal> fizzie, I think we have some 8-12 or so
10:53:10 <Lymia> We have 0.
10:53:10 <Lymia> :<
10:53:26 <Vorpal> Lymia, which country? You never told me when I asked above.
10:53:31 <fizzie> The Vuonislahti/Koli one is quite a shortcut, though; it drops the Lieksa-Koli trip from 92 km to 41 km, even though the road itself is short.
10:53:36 <Lymia> US.
10:53:52 <Vorpal> Lymia, really? I would have expected some in Alaska
10:54:05 <Vorpal> Lymia, wikipedia claims Canada have a few though
10:54:05 <Lymia> I'm currently in China on a visit to family.
10:54:27 <fizzie> Aw, Google Maps doesn't show the ice roads.
10:54:39 <Lymia> fizzie, does it use it in instructions?
10:54:57 <fizzie> No; at least not now.
10:55:03 <fizzie> Maybe they alter the maps when it's open.
10:55:03 <Vorpal> heh
10:55:18 <fizzie> OpenStreetMap has a line for it.
10:55:30 <fizzie> http://osm.org/go/02NwdNs--
10:56:22 <fizzie> Sounds like university entrace exams out there.
10:56:24 <Vorpal> fizzie, no ferry service during summer?
10:56:38 <fizzie> There's a ferry service directly to Lieksa.
10:56:45 <fizzie> For some reason it's only shown one zoom-level deeper.
10:57:07 <fizzie> Or maybe that dashed line is something else.
10:57:08 <Phantom_Hoover> Lymia, did *you* read the latest Homestuck update?
10:57:11 <fizzie> There's a ferry, anyway.
10:57:21 <Lymia> Homestuckは何?
10:57:27 <Vorpal> the island named "Vinön" on here http://osm.org/go/0ZoOVcB has a winter road
10:57:32 <Vorpal> not marked though
10:58:02 <fizzie> Vorpal: http://p.zem.fi/mzt7 -- Google Maps has the ferry line.
10:58:14 <Vorpal> Did you mean:
10:58:14 <Vorpal>
10:58:14 <Vorpal> Vuonislahti, 81590 Lieksa, Finland to Koli
10:58:14 <Vorpal> Lieksa, Vuonislahti, Finland to Koli
10:58:15 <Vorpal> err
10:58:34 * Phantom_Hoover → exam
10:58:35 <fizzie> Oh, it must not know all the context in the link or something.
10:58:35 <Vorpal> weird, worked when I retried it
10:58:43 <Lymia> Does Google still tell you to swim to China?
10:58:53 <Vorpal> no idea
10:59:11 <Lymia> Actually.
10:59:18 <fizzie> They removed the "swim across the Atlantic Ocean" one, but I think they left the "kayak across the Pacific" in.
10:59:32 <Lymia> fizzie, so.
10:59:37 <Vorpal> fizzie, the link for the ferry line prefers the line route
10:59:58 <Lymia> Does it path things that would have been "swim across the Atlantic" across the Pacific now?
11:00:05 <Vorpal> "We could not calculate directioWe could not calculate directions between Westminster, London, UK and Beijing, China.ns between Westminster, London, UK and Beijing, China." <--- aww
11:00:24 <Vorpal> wtf
11:00:27 <Vorpal> at the copy and paste
11:00:42 <Vorpal> hm "We could not calculate directions between Westminster, London, UK and Beijing, China." now it worked
11:00:56 <Vorpal> why did it not work properly first time, and no I didn't double paste
11:01:21 <fizzie> Lymia: I think it does say "can't route" to some. But if you ask for driving directions from, say, San Francisco to somewhere in Japan, it'll say "Kayak across the Pacific Ocean (6243 km)" as one step.
11:01:57 <fizzie> "We could not calculate directions between New York, NY and Helsinki, Finland." :/
11:02:03 <Vorpal> hm
11:02:37 <Patashu> I wonder if the 'swim across the ocean' thing is a google joke
11:02:47 <Lymia> It must be.
11:02:48 <fizzie> San Francisco, CA, United States → Nagoya, Aichi Prefecture, Japan gives you a nice 35-day trip, though.
11:02:57 <Patashu> It was giving directions that made you go across the ocean, or it was found that it could
11:03:00 <Patashu> And so it was written in
11:03:04 <Lymia> fizzie, Alaska->Daiichi?
11:03:15 <fizzie> It also does "Kayak across the Pacific Ocean" twice; first to Hawaii, then from there on.
11:03:24 <Vorpal> fizzie, gah you beat me to that.
11:04:07 <Vorpal> fizzie, it doesn't seem to follow great-circle paths though hm
11:04:37 <fizzie> I assume they've added single ferry-line style "kayak across" links there.
11:04:44 <Vorpal> heh
11:04:47 <fizzie> Instead of being able to just kayak everywhere.
11:04:54 <Lymia> fizzie, dunno.
11:04:58 <fizzie> It doesn't route me from Anchorage, Alaska to Japan at all.
11:05:02 <Lymia> If I was a programmer, I would add in code for that just for the lulz.
11:05:14 <Lymia> Cacluate a few roads of minimum kayak distance.
11:05:16 <Lymia> Route to them.
11:05:23 <Lymia> Add paths.
11:05:26 <Vorpal> fizzie, since it doesn't go from SF directly out, but first up to Seattle, I think you are right
11:05:47 <fizzie> It also doesn't route you through the Bering Strait at all.
11:05:51 <Vorpal> http://maps.google.com/maps?f=q&source=s_q&hl=sv&geocode=FVJmQAIdKAe0-CkhAGkAbZqFgDH_rXbwZxNQSg%3BFRCUIAIduoZTCCnnVy7whxtdYDGJG1cii2EBLg&q=San+Francisco,+Kalifornien,+USA+till+Tokyo,+Japan&aq=&sll=37.714245,-122.500305&sspn=0.646385,1.466675&ie=UTF8&ll=47.6468,-122.341089&spn=0.017203,0.045834&z=15&saddr=San+Francisco,+Kalifornien,+USA&daddr=Tokyo,+Japan
11:05:54 <Vorpal> nice loop
11:06:41 <fizzie> You sometimes get ridiculous-looking walking directions since it considers taking a ferry "walking", and those don't count in the distance. I think I had a screenshot and/or link somewhere.
11:07:39 <Vorpal> fizzie, wait it suggested water scooter from Japan to china!!
11:07:52 <fizzie> Yes, I thought there was some third one like that.
11:08:16 <fizzie> http://zem.fi/~fis/google-walk.png -- from Copenhagen to Amsterdam, the best way to walk is via two cities in Norway and one in the UK.
11:08:27 <Vorpal> fizzie, :D
11:08:45 <fizzie> At least you'll see the sights.
11:09:07 <Vorpal> fizzie, did you actually want those walking directions=
11:09:09 <Vorpal> s/=/?/
11:09:32 <fizzie> I wanted train routes, but it didn't do trains at that point.
11:09:33 <Lymia> Why does Google not have a warning asking "are you sure you want walking directions?"
11:09:40 <Vorpal> fizzie, does it now?
11:09:44 <fizzie> The driving directions were a better approximation, though.
11:10:18 <fizzie> It does public transit, but only in a very limited set of locations.
11:10:22 <fizzie> "Your search for transit directions from Copenhagen, Denmark to Amsterdam, Netherlands appears to be outside our current coverage area. Please consult our list of participating public transit agencies."
11:10:49 <Vorpal> heh
11:11:13 <fizzie> I think it only does intra-city public transportation, mostly.
11:11:21 <Vorpal> ah
11:11:57 <fizzie> Helsinki and Oslo have "transit layer" maps, but no schedules; nothing in Sweden.
11:14:29 <fizzie> The "transit layer" for Helsinki seems pretty pointless, too. From what I can tell, it has our single subway line, and then a map of the tram network but not even the routes designated, just the tracks in single color.
11:14:51 <Vorpal> heh
11:15:10 <fizzie> Oh, if you zoom in enough it shows the tram stops too.
11:15:15 <fizzie> But the tooltips are in Japanese.
11:15:21 <Vorpal> fizzie, what?!
11:15:38 <Vorpal> fizzie, link?
11:15:51 <fizzie> I wonder if that's because the first thing I did this session was the driving directions from Nagoya, Japan to the US.
11:15:57 <fizzie> Maybe it remembers that.
11:16:24 <Vorpal> could be...
11:16:49 <fizzie> http://maps.google.com/maps?f=d&source=s_d&hl=en&mra=ls&noexp=0&noal=0&sort=def&sll=51.628248,-0.241699&sspn=1.239506,2.458191&ie=UTF8&ll=60.161593,24.945188&spn=0.007762,0.019205&z=16&lci=transit_comp&start=0
11:17:02 <fizzie> I think that should open Helsinki and the transit layer too after a moment.
11:17:19 <Vorpal> Japanse busstop tooltips for me yea
11:17:21 <Vorpal> yeah*
11:17:24 <fizzie> Heh.
11:17:27 <fizzie> That's the weird.
11:17:39 <fizzie> Opening them gives the proper (Finnish) name of the stop, as well as list of trams that stop there.
11:17:51 <Vorpal> fizzie, report the bug?
11:18:38 -!- FireFly has joined.
11:18:46 <fizzie> One tooltip is with the Cyrillic alphabet.
11:18:52 <fizzie> One's in Finnish.
11:19:41 <fizzie> Too amusing to report.
11:19:58 <Vorpal> fizzie, cyrillic too? heh
11:20:35 -!- Sgeo has joined.
11:20:58 <Vorpal> Lymia, wikipedia says there is an ice road in mainland US
11:21:09 <Vorpal> on Lake Superior.
11:22:14 <fizzie> What an egoistic name for a lake.
11:22:17 <Vorpal> and at least two in Alaska
11:22:24 <fizzie> What, it's better than all the other lakes, huh?
11:22:46 <Vorpal> fizzie, http://en.wikipedia.org/wiki/Lake_Superior#Name
11:22:56 <Vorpal> short answer: yes
11:23:04 <Vorpal> or at least that is the reason for the name
11:25:12 <fizzie> Admittedly it's quite big.
11:25:24 <fizzie> Something like three times the surface area of the Gulf of Finland; and something like 20% of the Baltic Sea.
11:25:32 <Vorpal> yes
11:25:36 <fizzie> To put it in more familiar context as seen from this end of the world.
11:26:06 <Vorpal> yes
11:27:18 <fizzie> (18.7 times the size of the largest lake in Finland.)
11:29:07 <Lymia> "Lake Superior is the largest freshwater lake in the world by surface area"
11:29:11 <Lymia> Well.
11:29:17 <Lymia> At least it isn't a misleading name.
11:29:54 -!- BeholdMyGlory has joined.
11:31:52 <fizzie> It's not the size of the lake, it's... uh, how you... use it? Anyway. It's still a pompous name.
11:35:33 -!- Sgeo has quit (Read error: Connection reset by peer).
11:36:03 -!- Sgeo has joined.
11:36:14 -!- cheater_ has quit (Ping timeout: 258 seconds).
11:36:20 <Sgeo> Why _shouldn't_ I randomly lose my Internet connection?
11:36:27 <Vorpal> Lymia, what about volume?
11:36:34 <Lymia> Dunno.
11:36:40 <Lymia> How deep is it?
11:36:44 <Vorpal> no clue
11:36:54 <fizzie> "Water volume 2,900 cu mi (12,000 km3)"
11:36:55 <Vorpal> Lymia, besides you can't model a lake as a rectangular box.
11:36:59 <fizzie> Wigibedia knows.
11:37:05 <fizzie> Sounds like a bit rounded figure.
11:37:20 <Vorpal> fizzie, slipped on the keyboard?
11:37:39 <Lymia> Vorpal, no, but it is a good estimation.
11:37:44 <Lymia> As long as they provide average depth.
11:38:10 <Lymia> Actually, isn't average depth*surface area equal to the total volume
11:38:11 <Vorpal> hm
11:38:39 <Vorpal> Lymia, how do you define average depth? sampling lots of points on a regular grid and taking the mean value?
11:39:02 <fizzie> Integrating over the lake, obviously.
11:39:23 <Vorpal> fizzie, hm... was that a joke?
11:39:29 <Lymia> Vorpal, I was talking more mathematically, but that works as an approximation, I guess.
11:39:53 <fizzie> That's funny; the Lake Superior article is inconsistent. In the intro paragraph it says "It is the second largest freshwater lake in the world by surface area, after Lake Michigan-Huron (which though traditionally considered two lakes is hydrologically one lake),[2][3][4] and is the world's third-largest freshwater lake by volume.[5]"; while inside the article it says: "Lake Superior is the largest freshwater lake in the world by surface area, and empties into
11:39:53 <fizzie> Lake Huron via the St. Marys River and the Soo Locks. Lake Baikal in Russia is larger by volume, as is Lake Tanganyika."
11:40:11 <Vorpal> ah
11:40:56 <Lymia> By surface area vs volume.
11:41:05 <Vorpal> Lymia, even so they manage to confuse that
11:41:14 <Patashu> what if I want to go 1D and compare them by perimeter
11:41:42 <fizzie> The "by volume" part is consistent -- "third largest" and lists two larger ones in the article itself.
11:41:57 <Vorpal> Patashu, you have a fractal issue then
11:42:05 <fizzie> But the "by surface area" part is not; it can't be both the second largest and the largest by surface area.
11:42:27 <Lymia> (which though traditionally considered two lakes is hydrologically one lake)
11:42:30 <Lymia> Dunno.
11:43:39 <fizzie> The data table has a "Shore length is not a well-defined measure" footnote for the perimeter, though it does list a number there.
11:43:42 <Vorpal> Patashu, basically depending on if you follow the contour of every stone along the lake's edge or measure it as a number of straight line segments of longer length you will get different results.
11:43:57 <Vorpal> Patashu, the latter is what measuring it on a map would give you
11:44:01 <Patashu> That's the joke
11:45:23 <Vorpal> fizzie, it is if you give the algorithm used for it. Say, the perimeter of inscribed polygon that encloses the largest surface area where the length of each polygonal segment is 10 meters.
11:45:34 <Vorpal> I *think* that should be well defined
11:45:41 <Vorpal> how useful it is is another matter
11:46:21 <Vorpal> oh and you should be able to give upper and lower bound by listing the same value but with minimal area and the lake inscribed in the polygon
11:46:42 <Vorpal> I'm not sure how tricky this would be to calculate though...
11:47:21 <fizzie> That wouldn't give you an upper bound for the perimeter.
11:47:31 <Vorpal> hm true
11:47:35 <Vorpal> it wouldn't
11:47:40 <Vorpal> would just give me lower bounds
11:47:51 <fizzie> You can have a lower bound by taking the straight-line segments of any arbitrary subset of points on the boundary.
11:48:23 <fizzie> The exact boundary gets a bit ambiguous down there, though; especially if you have rivers that flow in/out the lake.
11:48:30 <Patashu> people would argue lividly about which length for polygon segments should be used, because they want their lake to be longer
11:48:32 <Vorpal> fizzie, true
11:48:33 <fizzie> (That's a problem for the surface area/volume measures too.)
11:48:45 <Vorpal> Patashu, well sure 1 cm works fine
11:48:58 <Patashu> but if you lower it to 1mm my country's lake will be bigger than yours
11:49:02 <Patashu> and I want that spot in the record books
11:49:12 <Patashu> so we get tourism for 'lake with the biggest perimeter in the world'
11:49:22 <Patashu> not catchy but we'll work on it
11:49:24 <Vorpal> Patashu, all lakes would have to use the same length for the values to be comparable
11:49:25 <fizzie> "Lake with the least amount of sense".
11:49:47 <Patashu> what I'm saying is that lake X might have perimeter > Y for 1 cm, but the opposite might be true for 1mm
11:49:56 <Vorpal> fizzie, upper bound isn't infinite though, is it? After all the universe is not infinitely dividable
11:49:57 <Patashu> e.g. if you remeasured both this way
11:50:11 <Vorpal> true
11:50:22 <Vorpal> Patashu, they are only lower bounds though
11:50:48 <fizzie> Vorpal: It's probably even harder to say where exactly the boundary of the lake goes when you start shuffling single particles, I would assume.
11:52:46 <Vorpal> heh
11:54:04 <Vorpal> Sweden has the third largest lake in Europe, and the 29th in the world. http://sv.wikipedia.org/wiki/V%C3%A4nern It is unclear if it is volume or surface area.
11:55:16 <fizzie> Surface area is my guess; it's the most usual measurement.
11:55:49 <fizzie> Our Saimaa is the fourth largest; a bit less than 80% of Vänern.
11:55:53 <Vorpal> it says it is Sweden's largest lake both when it comes to surface and when it comes to volume
11:55:58 <fizzie> (Fourth largest in Europe.)
11:56:08 <fizzie> (80% of surface area.)
11:56:14 <fizzie> (More clarifications.)
11:56:57 <Vorpal> fizzie, it seems the top two lakes in Sweden get the same ordering for volume and for surface
11:57:13 <fizzie> Your lake is more single-blob-ish[1] though. [1] Single-blob-ish is not a well-defined measure.
11:57:29 <Vorpal> link to photo of your one from above
11:57:31 <Vorpal> or map
11:57:37 <fizzie> http://en.wikipedia.org/wiki/File:GreaterSaimaa.gif
11:57:42 <fizzie> That's a highlighted satellite photo.
11:58:03 <Vorpal> yeah that looks like two ones at least
11:58:11 <Vorpal> are you sure they are connected there in the middle?
11:58:23 <fizzie> Officially it's one.
11:58:27 <Vorpal> hm
11:58:56 <fizzie> It's connected, though the connections are pretty narrow at points.
11:59:14 <fizzie> "Most of the lake is spotted with islands, and narrow canals divide the lake in many parts, each having their own names (major basins include Suur-Saimaa, Orivesi, Puruvesi, Haukivesi, Yövesi, Pihlajavesi, and Pyhäselkä)."
11:59:29 <Vorpal> fizzie, this one is tricky, it is connected (through central Stockholm) to the sea: http://sv.wikipedia.org/wiki/M%C3%A4laren
12:00:14 <Vorpal> it is fresh water however
12:00:23 <fizzie> "Finland is known as The Land of the Thousand Lakes, (actually there are 187,888 lakes in Finland, of which 60,000 are large),[7] and the U.S. state of Minnesota is known as The Land of Ten Thousand Lakes. The license plates of the Canadian province of Manitoba used to claim 100,000 lakes[8] as one-upmanship on Minnesota, whose license plates boast of its 10,000 lakes.[9]"
12:00:31 <fizzie> Everyone wants a piece of the "most lakes" action.
12:00:46 <Vorpal> fizzie, is "large" well defined there?
12:01:31 <fizzie> There is a rather arbitrary threshold that's often used; it's not mentioned there, but maybe [7] itself mentions it.
12:02:12 <fizzie> Heh, [7] just links to the front page of Statistics Finland, the national institution of statistics and stuff.
12:02:30 <fizzie> Anyway, I've heard that number earlier; can't recall what constituted "large" there.
12:02:34 <Vorpal> fizzie, check the link, maybe they moved things around and it redirects everything to the front page
12:02:35 <Vorpal> that happens
12:02:56 <fizzie> Nope, it's directly to /index_en.html in the Wiki side too.
12:03:01 <Vorpal> huh
12:03:16 <Vorpal> hm an image that is 24,576×24,576 pixels. I don't think I will open that one in a browser
12:03:17 <fizzie> The Lake page does already talk of the vagueness between lake and pond, though.
12:05:11 <fizzie> http://en.wikipedia.org/wiki/Lake#Notable_lakes sorts by coastline length too, without mentioning how it was measured.
12:05:19 <Patashu> I told you guys that there was big money in lakes
12:05:30 <fizzie> "Lake Manitou, located on Manitoulin Island, is the largest lake on an island in a freshwater lake."
12:05:44 <fizzie> How about the largest lake on an island in a lake on an island in a freshwater lake?
12:05:53 <Patashu> Is that even possible?
12:05:56 <Patashu> Hmm, I guess it is
12:06:11 <Patashu> Except to have an island with a lake on it wouldn't it then be surrounded by a -sea-
12:06:22 -!- wareya has quit (Read error: Connection reset by peer).
12:07:17 -!- wareya has joined.
12:07:39 <fizzie> I guess that depends on the definition; many would insist on saline water for seas.
12:08:20 <Patashu> Ah, that's true
12:08:57 <Vorpal> what about semi-saline ones?
12:09:02 <fizzie> There's at least one recursive island -- an island in a lake (probably pretty small one) on an island, which in this case I think is in the sea -- somewhere here nearby, though I've forgotten where.
12:09:10 <fizzie> That's either a "lea" or a "sake".
12:09:19 <fizzie> (Okay, not really.)
12:09:24 <Vorpal> heh
12:10:03 <fizzie> http://blog.toddstadler.com/entry/711 -- related.
12:10:12 <fizzie> That's the same Manitoulin island mentioned above.
12:11:32 <Lymia> fizzie, recursive islands?
12:12:06 <Lymia> Fun
12:12:59 <Patashu> Hah, that's cool
12:13:00 <Patashu> Okay, I submit
12:15:41 <fizzie> Google's zoomed-in satellite photo of Suvisaaristo (a group of islands near the cost here) is... subpar: http://maps.google.com/?ie=UTF8&ll=60.102339,24.711342&spn=0.124411,0.307274&t=h&z=12
12:16:02 <Vorpal> fizzie, just clouds?
12:16:28 <fizzie> Yes; if you zoom one level out it uses a different, cloudless photo.
12:16:55 <Vorpal> what is the difference between continents and islands
12:17:18 <Vorpal> I know australia is a continent and greenland an island
12:17:28 <fizzie> "They [continents] are generally identified by convention rather than any strict criteria, with seven regions commonly regarded as continents --"
12:17:38 <Vorpal> ah
12:25:10 <Sgeo> I'm a bit weirded out by Europe and Asia being considered separate continents
12:29:52 -!- azaq23 has joined.
12:31:25 -!- aloril has quit (Ping timeout: 246 seconds).
12:31:47 <Vorpal> Sgeo, generally they aren't
12:32:25 <Vorpal> Sgeo, Eurasia is quite common name on it. Sometimes even Africa is considered part of it (and would be except for a channel)
12:32:41 <Vorpal> same as North and South America is really one single continent
12:44:42 -!- aloril has joined.
12:58:49 -!- cheater_ has joined.
13:06:54 -!- azaq23 has quit (Quit: Leaving.).
13:23:57 -!- MigoMipo has joined.
13:55:15 -!- ralc has joined.
14:04:52 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:05:41 -!- Ycros has quit (Quit: No Ping reply in 180 seconds.).
14:05:47 -!- Ycros has joined.
14:10:04 -!- ais523 has joined.
14:10:47 -!- TOGoS has joined.
14:10:57 -!- TOGoS has left.
14:14:43 -!- MigoMipo_ has joined.
14:14:44 -!- MigoMipo_ has quit (Client Quit).
14:17:37 -!- MigoMipo has quit (Ping timeout: 248 seconds).
14:22:14 -!- ais523 has quit (Remote host closed the connection).
14:24:48 -!- ais523 has joined.
14:27:01 -!- ais523 has quit (Excess Flood).
14:29:12 -!- copumpkin has joined.
14:30:35 -!- ais523 has joined.
14:34:36 -!- ais523 has quit (Excess Flood).
14:37:03 -!- ais523 has joined.
14:37:06 -!- ais523 has quit (Client Quit).
14:39:30 -!- ais523 has joined.
14:39:33 -!- ais523 has quit (Client Quit).
14:40:58 -!- ais523 has joined.
14:41:59 -!- esowiki has joined.
14:42:50 -!- esowiki has joined.
14:44:30 -!- glogbot has joined.
14:44:31 -!- ais523 has quit (Excess Flood).
14:45:55 -!- ais523 has joined.
14:45:56 -!- ais523 has quit (Remote host closed the connection).
14:46:51 -!- cheater_ has quit (Ping timeout: 252 seconds).
14:48:08 -!- cheater_ has joined.
14:48:41 -!- lambdabot has joined.
14:54:15 -!- ais523 has joined.
14:54:26 <ais523> Is this working yet?
14:54:42 <Sgeo> wHAT IS THIS?
14:55:09 <ais523> There seems something rather wrong with my connection
14:55:20 <ais523> wow this is laggy
14:55:27 <ais523> I'm on a connection that's normally very reliable
14:57:56 <ais523> and the only connection I'm making is this IRC one via telnet, together with some standard stuff like NTP
14:57:56 <ais523> I've seen no response for over a minute from a simple PING command
14:59:02 <ais523> ah, there it is
15:03:38 -!- ais523 has quit (Ping timeout: 250 seconds).
15:03:39 <Phantom_Hoover> <Sgeo> wHAT IS THIS?
15:03:49 <Phantom_Hoover> Sgeo has finally accepted that he is Tavros.
15:15:01 -!- ais523 has joined.
15:15:16 <ais523> that's better, I think
15:15:26 <ais523> it seems that the wireless router here had decided to give both me, and someone else here, the same IP
15:15:29 <ais523> for reasons I don't fully understand
15:16:10 <CakeProphet> ais523: maybe IPv4 ran out of address space.
15:16:19 <ais523> CakeProphet: it's on 192.168
15:16:26 <ais523> and that has plenty enough space for two computers
15:16:26 <CakeProphet> SO?
15:16:29 <ais523> (it's actually being NATted)
15:16:34 <CakeProphet> YOU DON'T KNOW
15:16:38 <CakeProphet> THERE ARE LOTS OF COMPUTERS MAAAN
15:17:32 <ais523> IRC and email are being sane now, at least
15:17:35 <ais523> let's see if HTTP is too
15:17:44 <Vorpal> ais523, what happened before then?
15:18:05 <Vorpal> ais523, also you should probably file a bug about that dupe ip thingy
15:18:16 <ais523> Vorpal: well, it was like the network was being really buggy
15:18:27 <ais523> it was full of duplicate packets, out-of-order packets, connections dropping, lag...
15:18:35 <Vorpal> heh
15:18:37 <ais523> and there was a huge spate of stuff being blocked by the firewall
15:18:46 <Vorpal> ais523, was there a MAC collision?
15:18:52 <ais523> I traced the IP in the end, it was HTTP responses from Facebook that were being sent to my computer
15:18:54 <ais523> and I doubt it
15:18:54 <Vorpal> they aren't actually that unique in practise
15:19:01 <ais523> I could check the MAC at the other side to make sure
15:19:26 <Vorpal> well if there was a MAC collision it would explain it all
15:20:01 <ais523> I don't think there's one
15:20:05 <Vorpal> hm
15:20:08 <ais523> also, this doesn't explain why the same thing happened after rebooting the router
15:20:17 <Vorpal> ais523, uh indeed. File a bug.
15:20:22 <Vorpal> ais523, is this at university?
15:20:30 <ais523> I fixed it by repeatedly bringing my own network interface down and up until it got a different IP over DHCP
15:20:33 <ais523> and no, it's at a friend's house
15:20:38 <Vorpal> ais523, ah
15:20:55 <Vorpal> ais523, well... maybe the other computer is configured for static ip
15:20:55 <ais523> and the router is just a supplied one with default settings (other than password because we're not that stupid)
15:21:05 <ais523> the other computer is dynamic IP too
15:21:09 <Vorpal> huh
15:21:17 <Vorpal> ais523, report a bug definitely then
15:21:27 <Vorpal> ais523, unless there is a MAC collision that is
15:21:28 <ais523> and complained about an IP collision for a bit, then decided everything was fine when we clicked the more-info button (it runs Windows)
15:21:41 <Vorpal> ais523, heh
15:22:16 <Vorpal> ais523, well checking MAC should be a high priority, and if no collision report a bug
15:29:17 <ais523> how do you check MAC under Windows?
15:29:39 <ais523> also, can you just "report a bug" against a commercial home router that's completely uncustomized? it's not like it's one of those crazy DD-WRT things
15:39:17 <olsner> if you have WINDOWS it's not MAC
16:12:37 <Gregor> We have free deluxe soda here at Mozilla. The brand is "Natural Brew". It's easily the worst soda I have ever had the displeasure of trying.
16:13:59 <ais523> Gregor: you work for both Microsoft and Mozilla now?
16:14:13 <Gregor> ais523: Yup. Gonna get Google in there and have the trifecta.
16:14:18 -!- cheater_ has quit (Ping timeout: 244 seconds).
16:14:58 <Phantom_Hoover> Huh, 'diamond' has the same origin as 'adamantine'.
16:15:24 <Phantom_Hoover> Gregor, well yeah, but your judgement can't be trusted, other than on matters of fnarf.
16:17:11 -!- cheater_ has joined.
16:17:48 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
16:30:48 <Vorpal> <ais523> how do you check MAC under Windows? <-- network interface details iirc
16:31:01 <ais523> I was trying just ipconfig, but it didn't show up there
16:31:36 <Vorpal> ais523, well if it is xp go to network iirc, find the interface, click status. Should get you a dialog with two tabs and some buttons. iirc there is a button on the second tab for it
16:32:06 <Vorpal> ais523, if you have the network card interface symbol in the corner next to the clock you can click on that iirc
16:32:10 <Vorpal> again, this is for XP
16:32:16 <Vorpal> no idea for later versions
16:37:04 * Phantom_Hoover wonders which of the new tracks will be the end of act flash.
16:37:57 <Phantom_Hoover> One of them probably will.
16:39:13 <Phantom_Hoover> Oh god another Doctor remix.
16:40:43 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
16:43:01 <Phantom_Hoover> XD
16:43:12 <Phantom_Hoover> One of the songs is the music from *http://mspaintadventures.com/?s=6&p=002655*
16:43:48 <Phantom_Hoover> That's at *least* a year and around 11 albums until it was released.
16:44:30 -!- FireFly has quit (Quit: swatted to death).
16:55:11 -!- cheater_ has quit (Ping timeout: 252 seconds).
16:56:57 -!- cheater_ has joined.
17:03:41 <Sgeo> Phantom_Hoover, funnily enough, guess what part of the year I was born
17:08:20 <cheater_> hm
17:08:27 <cheater_> would a 1V5 tube deliver 300V?
17:13:21 <CakeProphet> so is irssi what all the cool kids use?
17:15:00 <cheater_> no
17:18:49 <CakeProphet> aw, so I'm not a cool kid? damn..
17:20:19 -!- cheater_ has quit (Ping timeout: 240 seconds).
17:20:42 -!- ralc has quit (Remote host closed the connection).
17:31:50 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
17:37:04 -!- cheater_ has joined.
18:06:24 -!- oerjan has joined.
18:12:16 -!- monqy has joined.
18:20:03 <oerjan> <CakeProphet> so is irssi what all the cool kids use?
18:20:06 <oerjan> ABSOLUTELY
18:24:22 <oerjan> zeus, lan a canal, suez
18:24:29 <oerjan> SO CLOSE
18:29:17 * oerjan laughs at today's http://www.mezzacotta.net/postcard/
18:53:22 -!- wareya has quit (Ping timeout: 260 seconds).
18:54:00 -!- TeruFSX has joined.
19:10:19 -!- wareya has joined.
19:16:21 <pikhq_> *Gaaah*, libtool.
19:16:26 <pikhq_> It actually installs .la files.
19:17:00 <pikhq_> Which, BTW, do something vaguely similar to pkgconfig --libs. ... If you link all your programs with libtool.
19:20:58 -!- Phantom_Hoover has joined.
19:27:33 -!- elliott has joined.
19:35:46 <elliott> 07:02:17: <Vorpal> whoa, lyx has an option "--without-included-boost"
19:35:54 <elliott> Vorpal: you're _meant_ to use boost by including the header files in your source tree
19:36:17 <Vorpal> elliott, about 15 MB of boost included. plus some library parts of it
19:36:25 <Vorpal> headers plus*
19:37:05 <oerjan> templates for disaster
19:38:40 <pikhq_> elliott: GAG
19:39:22 <pikhq_> I *despise* embedding libraries in a package's source tree.
19:39:30 <pikhq_> In UNIX land, it is always the Wrong Thing.
19:39:45 <elliott> pikhq_: Yeah but this is Boost, it doesn't even have object files. :p
19:39:51 <elliott> It is literally composed of headers.
19:40:07 <pikhq_> ... Which makes that even more pointless, TBH.
19:42:40 <Phantom_Hoover> elliott, wait, I thought that was a cardinal sin?
19:43:44 <pikhq_> Phantom_Hoover: It is a cardinal sin many people are guilty of.
19:43:51 <Phantom_Hoover> pikhq_, ...why?
19:44:01 <pikhq_> Some packages even go out of their way to make it difficult to do otherwise.
19:44:06 <pikhq_> (looking at *you*, ffmpeg)
19:44:26 <pikhq_> Phantom_Hoover: I think in part because it's standard practice in Windows development.
19:49:35 -!- pikhq has joined.
19:52:35 -!- pikhq_ has quit (Ping timeout: 252 seconds).
20:01:18 <elliott> http://pedrocr.net/text/how-much-gnu-in-gnu-linux
20:01:20 <elliott> WHAT'S THIS
20:01:26 <elliott> DESKTOP LINUX SYSTEMS CONTAIN NOT ACTUALLY THAT MUCH GNU???
20:01:28 <elliott> OMFG
20:01:42 <elliott> Clearly Stallman will now change his nomenclature to KDE/Linux.
20:03:02 <elliott> "/Some/ of Linux code can be built with toolchains other than GCC (e.g. clang). But surely, other portions of it depend on nonstandard GCC extensions and are useless (or require rewrite) without GCC."
20:03:04 <elliott> pikhq: hehehehehehehehe
20:03:06 <elliott> reddit sure is stupid
20:09:22 <pikhq> elliott: Yeah, nowadays I'm of the opinion that there's just no good way of referring to various distributions of a conglomeration of various bits and pieces into an OS, with Linux as the kernel.
20:10:20 <pikhq> Just "Linux" is a misnomer, and GNU really isn't a more important part, and, uh... Yeah.
20:10:26 <pikhq> There's just no good nomenclature for it.
20:11:10 <elliott> "Linux system" is good enough :P
20:11:23 <elliott> It's common and not entirely inaccurate, so.
20:11:37 <pikhq> I dislike that nomenclature, too, though it at least has common use in favor of it.
20:12:48 <pikhq> It's particularly confusing to the ignorant, as Linux really isn't The Defining Feature in the various Unix-likes built on top of Linux.
20:13:05 <pikhq> It can be replaced, just like every other piece.
20:13:22 <elliott> Yeah but nobody really gives a shit about that. :p
20:13:46 <elliott> I mean, most people who use "Linux" don't even know what Linux is or what a kernel is, so it's fairly irrelevant to them.
20:14:03 <elliott> pikhq: But really, "Unix-alike" is... ugly and inaccurate, but decent.
20:14:30 <elliott> Only useful for the technical-minded, but then the non-technical-minded don't give a shit, just say "Ubuntu" or whatever you're installing for them :P
20:14:57 <pikhq> Yeah, if a specific distro is being discussed, then nomenclature gets really, really easy.
20:15:05 <ais523> elliott: I thought both clang and icc had implemented enough gcc extensions that they could do huge amounts of linux, possibly even the whole thing
20:15:21 <Deewiant> clang can't do the whole thing, at least
20:15:24 <elliott> ais523: Obviously I quoted that and then commented on the ignorance of redditors to show that I agreed with them :P
20:15:31 <pikhq> ais523: I think there's one or two bits that prevent it still.
20:15:31 <elliott> Oh right, it's icc that got a bootable kernel.
20:15:40 <olsner> didn't clang compile the linux kernel already? or was that just a BSD kernel?
20:15:43 <elliott> bsd
20:15:55 <pikhq> Something to do with clang not supporting *all* of the embedded ASM that Linux uses.
20:17:38 <pikhq> Ah, it's possible to build most of Linux with clang, but there's still a few bits broken.
20:17:51 <Deewiant> http://llvm.org/bugs/show_bug.cgi?id=9254 is a WONTFIX that Linux depends on
20:18:05 <pikhq> Module loading straight-up doesn't work, and the VDSO and boot stuff don't build right.
20:18:40 <pikhq> Building the VDSO and boot with GCC gets you a booting Linux kernel, though some non-essential subsystems won't work.
20:18:51 <pikhq> Source: http://lists.cs.uiuc.edu/pipermail/cfe-dev/2010-October/011711.html
20:19:00 <elliott> 'variable length
20:19:00 <elliott> array in structure' extension will never be supported
20:19:02 <elliott> really?
20:19:05 <elliott> oh wait
20:19:06 <elliott> right
20:19:09 <elliott> I thought e.g.
20:19:11 <elliott> int foo[];
20:19:14 <elliott> was WONTFIX
20:19:39 <elliott> "I agree. This an nested functions are two things we really really don't want
20:19:39 <elliott> to implement."
20:19:44 <elliott> Deewiant: clang isn't implementing nested functions?
20:19:47 <elliott> x_X
20:19:56 <Deewiant> Sounds like it, don't ask me
20:20:15 <pikhq> Nested functions are a total bitch to support right, and GCC's support for it is an epic hack, TBH.
20:21:46 <TeruFSX> hey um
20:22:06 <TeruFSX> this might be the wrong place to ask but do you know where I could find somebody who can use CDC Cyber BASIC
20:26:55 <elliott> ?pl \f g x -> f x + g x
20:26:55 <lambdabot> liftM2 (+)
20:32:55 <elliott> ?hoogle RealFrac
20:32:55 <lambdabot> Prelude class (Real a, Fractional a) => RealFrac a
20:33:13 <elliott> does anything actually use RealFrac...
20:33:25 <elliott> oh wait, RealFloat requires it, ugh
20:36:27 <elliott> hmm
20:36:42 <elliott> isIEEE seems like it should be a constant
20:39:35 <ais523> I seem to remember that Algol 68's standard prelude defines + in terms of -
20:41:09 <elliott> ais523: weird
20:41:28 <elliott> http://hackage.haskell.org/package/portaudio-0.0.1 ;; bleh, this is rather incomplete
20:41:46 * elliott looks at the other bindings
20:42:34 <elliott> *Main> length (second (sin :: Signal Double))
20:42:35 <elliott> 44001
20:42:38 <elliott> hmm, that's an off-by-one, isn't it?
20:45:03 <oerjan> :t floor
20:45:04 <lambdabot> forall a b. (RealFrac a, Integral b) => a -> b
20:45:28 <elliott> oerjan: I'm defining instances for functions, so all my RealFrac functions are const (error "...") :P
20:46:22 <oerjan> > isIEEE (undefined :: Double) -- as close to constant as you can get
20:46:23 <lambdabot> True
20:47:07 <elliott> I've just done
20:47:07 <elliott> isIEEE f = isIEEE (f 0) -- ???
20:47:25 <elliott> ?pl \f -> isIEEE (f 0)
20:47:25 <lambdabot> isIEEE . ($ 0)
20:47:31 <oerjan> i believe not looking at the argument is a requirement for that function
20:47:36 <elliott> Now all my instance functions are point-free ;D
20:47:50 <elliott> oerjan: Hmm
20:48:01 <elliott> oerjan: So I should do "isIEEE _ = isIEEE (undefined :: a)"?
20:48:04 <elliott> With ScopedTypeVariables.
20:48:15 <oerjan> heh
20:48:22 <elliott> Oh, don't even need ScopedTypeVariables.
20:50:18 <oerjan> @hoogle range
20:50:18 <lambdabot> Data.Ix range :: Ix a => (a, a) -> [a]
20:50:19 <lambdabot> Language.Haskell.TH data Range
20:50:19 <lambdabot> Language.Haskell.TH.Syntax data Range
20:50:35 <oerjan> @hoogle genRange
20:50:35 <lambdabot> System.Random genRange :: RandomGen g => g -> (Int, Int)
20:50:49 <oerjan> > genRange (undefined :: StdGen)
20:50:50 <lambdabot> (0,2147483562)
20:50:58 <elliott> I wish they used Tagged instead
20:51:36 <oerjan> i guess that wasn't invented
20:52:08 <elliott> It's an obvious invention :P
21:10:43 -!- Tritonio has joined.
21:14:16 <Phantom_Hoover> http://www.mspaintadventures.com/?s=6&p=002015
21:14:30 <Phantom_Hoover> Esolangs just asking to be invented.
21:14:53 <elliott> Disasterisk sounds like a metal band.
21:15:00 <elliott> DISASTER + RISK = DISASTERISK
21:15:20 <oerjan> disasterix the gaol
21:20:50 <oerjan> http://www.reddit.com/r/haskell/comments/hoxbo/how_do_i_apply_to_join_the_haskell_cult_yes_i/c1x80kt it's all clear now
21:22:46 <Phantom_Hoover> oerjan, are you a member.
21:25:27 <oerjan> > oerjan `elem` REDACTED
21:25:28 <lambdabot> Not in scope: `oerjan'Not in scope: data constructor `REDACTED'
21:25:38 <oerjan> difficult to say
21:26:37 <Gregor> "was that it was to be a" <-- greatest fragment of English ever.
21:26:45 <Phantom_Hoover> Gregor, no it isn't.
21:26:53 <Phantom_Hoover> That's a perfectly normal fragment.
21:27:23 <Phantom_Hoover> The greatest flaw of C++ was that it was to be an OO language based on C, which is just idiotic.
21:27:41 -!- FireFly has joined.
21:27:43 -!- NihilistDandy has joined.
21:32:46 -!- BeholdMyGlory has joined.
21:42:44 -!- pikhq_ has joined.
21:43:00 -!- pikhq has quit (Ping timeout: 260 seconds).
21:43:55 <Phantom_Hoover> <merijn> Phantom_Hoover: Consistent type system -> strong termination -> not Turing complete
21:44:02 <Phantom_Hoover> (In the context of typed LCs.)
21:44:05 <Phantom_Hoover> Is that true?
21:44:29 <elliott> Yes.
21:44:34 <elliott> Erm.
21:44:40 <elliott> It's true that the type system has to be sub-TC.
21:44:55 <elliott> Phantom_Hoover: consider that Haskell's type system is inconsistent
21:44:58 <elliott> when viewed as a logic
21:44:58 <elliott> because
21:45:00 <elliott> undefined :: a
21:45:01 <elliott> undefined = undefined
21:45:11 <elliott> So yes, a TC language has an inconsistent logic as its type system.
21:45:20 <elliott> oerjan can nitpick me :)
21:45:38 <Phantom_Hoover> But in terms of the actual _type system_, not in terms of the logic it represents.
21:46:06 -!- oerjan has quit (Quit: Good night).
21:46:12 <elliott> Phantom_Hoover: define consistent
21:59:39 <augur> elliott: hey kiddo
22:23:30 -!- ais523 has quit (Remote host closed the connection).
22:28:46 -!- Tritonio has quit (Quit: Leaving).
22:29:49 <elliott> > concatMap (replicate 9) [0,9,0,9]
22:29:49 <lambdabot> [0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,9]
22:29:51 <elliott> great
22:45:46 -!- FireFly has quit (Quit: swatted to death).
22:54:27 -!- cheater_ has quit (Ping timeout: 252 seconds).
22:58:39 -!- copumpkin has quit (Remote host closed the connection).
23:06:51 -!- cheater_ has joined.
23:25:22 -!- Vorpal has quit (Ping timeout: 248 seconds).
23:42:26 <CakeProphet> this is by far the most active channel I frequent that isn't a programming language channel.
23:48:11 <Gregor> But it IS a programming-language channel!
23:48:23 <elliott> CakeProphet: thanks to MEEE
23:55:32 -!- TeruFSX has quit (Remote host closed the connection).
23:58:11 -!- pikhq has joined.
23:58:23 -!- pikhq_ has quit (Ping timeout: 250 seconds).
2011-06-02
00:26:03 -!- NihilistDandy has quit (Ping timeout: 240 seconds).
00:28:08 -!- NihilistDandy has joined.
00:30:52 -!- fizzie has quit (Ping timeout: 240 seconds).
00:36:59 -!- fizzie has joined.
00:41:20 * pikhq is convinced that automotive engineers are assholes.
00:42:01 <pikhq> Why the hell should it be even slightly difficult to do maintainence on an engine?
00:42:33 <pikhq> And why the fuck do I need to jack my car up to get to the battery?
00:42:46 <pikhq> And why should it be a time-consuming affair to replace a headlight?
00:42:49 <pikhq> Assholes, I tell you.
00:43:17 <elliott> Holy shit, Bitcoins have exploded in value.
00:43:34 <elliott> FML for not predicting this
00:43:37 <monqy> congratulations investors
00:43:47 <elliott> I could have eightfolded my money :(
00:43:49 <elliott> PAH
00:43:57 <elliott> Although it might be the dollar decreasing in value instead >:)
00:44:12 <monqy> bitcoins the good and stable currency
00:44:22 <monqy> except when it deflates
00:44:30 <monqy> invest always
00:45:22 -!- zzo38 has joined.
00:46:07 <zzo38> Someone on another IRC told me that all IRC clients and all IRC servers follow the standards/RFC. However, I think on this channel, someone told me that mine is the only one that does, and that you hate it for that reason?
00:47:00 <pikhq> I thought that very *few* IRC servers actually followed a strict reading of the RFC.
00:47:25 <pikhq> And no clients even give a fuck.
00:47:51 -!- TeruFSX has joined.
00:48:13 -!- elliott has quit (Ping timeout: 250 seconds).
00:48:21 <zzo38> pikhq: Really? I think someone on this channel, has, in the past, told me that my client follows the RFC closer than others (and that they hate my client for those reasons). I think it has to do with embedding commands inside of messages, or something like that? I don't remember exactly
00:49:15 <zzo38> Like <CTCP>ACTION this<CTCP>, for example.
00:51:03 <zzo38> Are you sure???
00:58:31 <pikhq> *sigh*
00:58:40 <pikhq> People actually ship code with -Werror enabled.
00:58:54 <pikhq> The stupid is palpable.
01:01:26 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:03:41 <zzo38> pikhq: Yes I have seen that. Unfortunately, the warnings that I do want to make into errors (I don't want all warnings to be errors), I cannot control separately from the other warnings/errors.
01:04:06 <zzo38> (What I do is I just keep them as warnings.)
01:04:33 <zzo38> I think the code I have seen with the -Werror is something to do with PXELINUX if I have remembered correctly.
01:04:46 <pikhq> -Werror is just fine when you're developing software.
01:05:21 <pikhq> However, it is positively broken and wrong when you ship the source code with -Werror plugged into your build system.
01:05:38 <Phantom_Hoover> -Werror?
01:05:41 <pikhq> You never know when a GCC version is going to come along and add a new warning.
01:05:51 <pikhq> Phantom_Hoover: It makes all warnings into errors.
01:06:19 <zzo38> There are some warnings I do not want to make into errors. There are also some warnings I want to suppress. However, not all warnings are controllable.
01:06:51 <pikhq> That *includes* things like a function being made deprecated...
01:11:20 <zzo38> Do you know about what I have done in the past the Icosahedral RPG (where a "mana" is a mathematical kind of thing)? I think that WotC should copy it (as long as they do not violate my license) and call it Advanced D&D.
01:18:10 <zzo38> What is your opinion on this matter?
01:24:43 -!- Patashu has joined.
01:24:51 -!- elliott has joined.
01:29:11 <elliott> oh man, a homestuck update that Sgeo hasn't even bugged me about yet
01:29:19 <elliott> that gives me the opportunity to!
01:29:23 <Sgeo> lol
01:29:24 <elliott> an opportunity which i will waste oops
01:32:40 <Sgeo> I have no idea what's going on in the last panel
01:33:05 <elliott> That's because you didn't pay attention for a single second of your binge and, as such, have no recollection of prior panels of any sort.
01:34:45 <elliott> Sgeo: http://www.mspaintadventures.com/?s=6&p=005508
01:34:55 <elliott> Everyone else: Don't click that unless you've read Homestuck or are completely sure you never will.
01:35:51 <Sgeo> Ah
01:36:14 <zzo38> Someone got a syntax error and posted the message to some public forum. Someone else answered by saying that their problem is that the software they were using was not designed to help, it was designed to teach you arbitrary "syntax".
01:36:25 <elliott> Sgeo: It basically all ties in with the "circumstantial simultaneity" shit.
01:40:19 <elliott> Sgeo: I assume you've been keeping track of the events in the banner of the page.
01:40:30 <Sgeo> Yes
01:40:37 <elliott> I suspect you have not so, in my thoughtfulness, I have prepared a face to pal-- damn.
01:46:39 -!- copumpkin has joined.
01:48:18 <zzo38> Someone claimed he was the fastest computer programmer, and the reason is that he tosses anything that interferes with productive programming, with apparently includes *all* language and *all* programming tools.
01:48:43 -!- SimonRC has quit (Ping timeout: 260 seconds).
01:55:56 <Lymia> And zzo38.
02:00:42 <Patashu> how do you program without syntax
02:01:00 <zzo38> I don't know.
02:01:29 <Patashu> it could always be like scratch
02:01:36 <Patashu> where you plug statements/expressions/functions together like jigsaw pieces
02:02:09 <zzo38> There are other systems, too, that you connect commands together to program.
02:03:05 <Patashu> that's the only thing I can think of - because the GUI controls what input is valid, you cannot give invalid input
02:03:16 <zzo38> But he meant I think, apparently, one where you can think at the highest level and program at the lowest level; and that you have no arbitrary keyboard, because you can configure all the keys to suit you; and I don't know what else. But it involves machine codes.
02:06:17 -!- Phantom_Hoover has quit (Quit: Leaving).
02:16:28 -!- azaq23 has joined.
02:18:58 -!- comex_ has changed nick to comex.
02:25:28 <elliott> comex: you forgot the ico
02:25:47 <comex> shadow of the colossus?
02:26:00 <elliott> comexico
02:37:42 -!- pikhq has quit (Ping timeout: 240 seconds).
02:38:03 -!- pikhq has joined.
02:41:19 -!- Ycros has quit (Quit: No Ping reply in 180 seconds.).
02:41:29 -!- Ycros has joined.
02:50:23 -!- TOGoS has joined.
02:51:17 -!- TOGoS has left.
02:53:08 -!- pikhq has quit (Read error: No route to host).
02:53:33 -!- pikhq has joined.
02:53:43 <pikhq> That was... Strange.
02:57:47 -!- elliott has quit (Read error: Connection reset by peer).
03:02:07 <CakeProphet> jesus, I get so frustrated while talking to people on #perl...
03:02:23 <CakeProphet> or any programming language channel..
03:08:06 -!- elliott has joined.
03:08:22 <elliott> argon situation
03:09:49 * Sgeo floods #esoteric with Halon
03:10:10 <Sgeo> Hmm, that's not actually unambiguous, is it
03:12:22 <Sgeo> Halon 1301
03:13:31 <Sgeo> Hmm, darn, from what I'm reading, Halon flooding isn't actually that dangerous
03:14:49 * elliott reads The Dionaea House
03:19:31 <elliott> That was... less scary than I was expecting.
03:26:34 -!- poiuy_qwert has joined.
03:30:47 -!- poiuy_qwert has quit (Client Quit).
03:33:35 -!- azaq23 has quit (Ping timeout: 252 seconds).
03:34:44 -!- azaq23 has joined.
03:34:55 <elliott> "
03:34:55 <elliott> Ever wondered who is "on top of the Pyramid?" He gives us a clue. The bloodline he represents is well
03:34:55 <elliott> above the Rothschild's in power and in the hierarchy and is extra-terrestrial in origin. The 13 bloodlines
03:34:55 <elliott> we have been talking about thus far on this website and others, with the Rothschild's in a top position
03:34:55 <elliott> together with the Merovingian Nobility, are quite low rank in the Big Pyramid Structure, and are the
03:34:57 <elliott> ones playing a power game here on Earth, only aware of parts of the Big Game (a need to know basis).
03:34:59 <elliott> The bloodline "Hidden Hand" is supposedly belonging to is way more advanced and higher rank."
03:35:01 <elliott> I'M LEARNING TODAY
03:38:19 <elliott> says atlantis is real within paragraphs, this is great
03:40:02 <Patashu> paranoid schizophrenic?
03:40:12 <Sgeo> Homestuck Music Team <3 Walk Smash Walk
03:40:38 <elliott> Patashu: Or troll -- what kind of Illuminati member would decide to engage people on /Above Top Secret/ of all places?
03:40:39 <elliott> http://www.bibliotecapleyades.net/archivos_pdf/dialogue_hh.pdf
03:40:50 <elliott> but this is interesting in its insaity :)
03:40:53 <elliott> [asterisk]insanity
03:41:03 <Patashu> You'd have to be a really dedicated troll to obsessively come up with complex conspiracy theorieds
03:41:17 <elliott> Patashu: they don't -- they just have to make up consistent bullshit in reply to questions
03:41:31 <elliott> and these guys lap it up so it certainly paid off
03:41:41 <Patashu> But that's tedious if you don't actually believe it
03:41:43 <Patashu> Why bother
03:41:55 <elliott> Patashu: Why troll in the first place?
03:42:04 <elliott> Schadenfreude.
03:43:07 <elliott> " Still, even then, you are choosing the Negative
03:43:08 <elliott> Polarity with your own Free Will decisions, with a little 'help' and direction from us. Souls are
03:43:08 <elliott> Harvestable in either 'extreme' of the Polarities, one could say."
03:43:11 <pikhq> Aaah, schadenfreude. Best kind of freude.
03:43:51 <elliott> apart from insurance fraud
03:43:57 <elliott> [asterisk]freude
03:44:15 <elliott> [[
03:44:15 <elliott> ATS: Is the Messiah alive today?
03:44:15 <elliott> HH: There is no "Messiah". Stop looking outside of yourself for 'salvation'.
03:44:15 <elliott> Is there what you might call a 'Christ Consciousness' alive, then yes, in a manner of speaking. Though
03:44:15 <elliott> not in your 3rd Density (dimensional) awareness.]]
03:44:15 <elliott> YES
03:44:20 <elliott> straight to the fourth-dimension bullshit
03:44:24 <elliott> this ticks all the fucking boxes
03:45:23 <elliott> HH: Who says it is the 'true' line? There were Ruling-Bloodlines long before your 'Yahweh' and his
03:45:23 <elliott> 'Christianity' arrived on this planet. Yahweh is 'a' Creator, not 'The' One Infinite Creator. There
03:45:24 <elliott> are other and Higher 'gods' than him. Ultimately, All, are a part of The One, and either consciously,
03:45:24 <elliott> or unconsciously, exercising their Free Will to Create. Begin to study 'outside of the box' for a True
03:45:24 <elliott> understanding of the Creation.
03:46:13 -!- pikhq_ has joined.
03:46:19 <pikhq_> STOP SUCKING DAMMIT
03:46:23 <elliott> no
03:46:30 <elliott> fuk u
03:46:32 <zzo38> OK, does this have a purpose?
03:46:37 <elliott> zzo38: does what
03:46:57 <zzo38> Is it anything at all like gnosticism?
03:47:05 <elliott> dunno, ask http://www.bibliotecapleyades.net/archivos_pdf/dialogue_hh.pdf :P
03:48:00 -!- pikhq has quit (Ping timeout: 258 seconds).
03:48:14 <zzo38> I think that "gods" and "Gods" are different and therefore you have to tell them apart to possibly understand what it means.
03:48:30 <pikhq_> So far, doesn't seem very gnostic.
03:48:47 <elliott> [[ATS: Surely if ruling elite families exist and your a member of one then you must be controlling global
03:48:48 <elliott> events through world governments - tell us 1 major government action from any country that going to
03:48:48 <elliott> occur in the next 5 days.
03:48:48 <elliott> I won't be surprised when you refuse to do so.
03:48:48 <elliott> HH: [on Sept. 10, 2008]: I am not at liberty to discuss such intimate immediate detail, [...]]]
03:48:50 <elliott> LOOK AT MY SURPRISE
03:48:52 <elliott> LOOK AT IT
03:49:10 <zzo38> Yes, I know, doesn't seem very gnostic.
03:49:20 <zzo38> O, it is Spanish, too?
03:49:26 <elliott> oh, apparently the stock markets should have imploded?
03:49:34 <elliott> zzo38: ?
03:49:40 <zzo38> I am not good at reading Spanish, sorry. So I will read English file.
03:49:48 <elliott> zzo38: http://www.bibliotecapleyades.net/archivos_pdf/dialogue_hh.pdf is not Spanish
03:50:13 <pikhq_> The primary property of gnosticism is the belief in some form of secret knowledge that can be imparted upon you via some divine intermediate (commonly, Jesus, but others are claimed), thereby gaining you salvation.
03:50:25 <elliott> pikhq_: naw, you just have to be born into
03:50:25 <elliott> THE
03:50:26 <elliott> FAMILY
03:50:27 <pikhq_> This is just crazy.
03:50:34 <pikhq_> elliott: As I said, not very gnostic.
03:50:37 <elliott> "San Francisco and Damascus, will be uninhabitable by the end of 2010"
03:50:38 <elliott> hehehehe
03:50:40 <elliott> that happened
03:50:54 <pikhq_> I didn't know San Francisco ever became inhabitable.
03:50:55 <pikhq_> :P
03:50:59 <elliott> arf
03:51:10 <elliott> if you just Put Random Words in Uppercase then you can be Just Like This Guy
03:51:17 <elliott> "
03:51:17 <elliott> That is all I have time for at present. I have a Sacrifice I must attend now.
03:51:17 <elliott> No, not really."
03:51:25 <elliott> ILLUMINATI GUY MAKES SUCH FUNNY JOKES HA HA
03:51:37 <elliott> meh, http://973-eht-namuh-973.com/ looks vaguely more interesting than this
03:51:46 <elliott> crappy reddit post, none of this stuff is mysterious or scary
03:51:56 <elliott> http://973-eht-namuh-973.com/coloured%20site/start/2.jpg oh what
03:51:57 <pikhq_> My Preference is to capitalise Nouns, as such is the proper Practice in our Language.
03:52:23 <Sgeo> Why Not Just Capitalize Every Word?
03:52:47 <elliott> http://973-eht-namuh-973.com/coloured%20site/start/4.jpg oh cool
03:52:59 <zzo38> I don't see the relevance of anything they wrote in this document, so far.
03:53:02 <elliott> Sgeo: We All Have An Important Job To Do
03:53:10 <elliott> darn, I butchered that
03:53:12 <pikhq_> Sgeo: Such is improper. The historical Practice is to only capitalise Nouns, much as German does now.
03:53:21 <elliott> lets just capitalise nothing
03:54:05 <pikhq_> ACTVALLY, LET'S DO THIS PROPERLY. THERE ARE NO LOVVER-CASE LETTERS. AND ONLY THE LETTERS THAT THE ROMANS VSED ARE PERMISSIBLE.
03:54:13 * Sgeo counts 3 trolls who have said that
03:54:16 <elliott> http://973-eht-namuh-973.com/coloured%20site/start/10.gif
03:54:23 <elliott> hey its an aeroplane
03:55:18 <elliott> http://973-eht-namuh-973.com/coloured%20site/start/evokation/the_evocation_first.htm
03:55:19 <elliott> jesus
03:55:39 <elliott> "JUPITER EQUALS 99 AND 99 EQUALS JUPITER"
03:55:42 <elliott> ok
03:56:01 <zzo38> I can see what they might say about people being traded by governments, although it is probably only true to a small extent. What what does Polarity have to do with it?
03:56:16 <zzo38> elliott: Jupiter? 99? What...?
03:56:43 <elliott> zzo38: god knows
03:58:00 <Sgeo> Is it inappropriate to say <3< Vriska?
03:58:17 <elliott> One day I will lock myself into a cupboard and it will be the best cupboard because Sgeo won't be in it.
04:04:00 <zzo38> OK, you are never free because you are stuck on this planet (and to a greater extent, the universe), but I think you can be free in different ways, isn't it? They also seem to believe in some version of the Apocalypse??? The Biblical reference is correct, and it is just metaphorical. And it doesn't mean that now is this time?
04:04:36 <CakeProphet> I like to write statements and then append a question mark?
04:04:45 <zzo38> I am not sure what a "Christ Consciousness" is, here.
04:04:53 <elliott> CakeProphet: I think the pdf may have broken zzo38's brain
04:04:58 <pikhq_> Eh, they've already denied empiricism and logic; useless to attempt to reason with them.
04:05:03 <zzo38> Do you like to use a lot of question marks???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????/
04:05:13 <elliott> says the ex-christian (that's your role forever now)
04:05:15 <CakeProphet> No. But I think that's grand?
04:05:16 <elliott> zzo38: no i prefer slashes///////
04:05:47 <CakeProphet> > 'test'
04:05:47 <lambdabot> <no location info>:
04:05:48 <lambdabot> lexical error in string/character literal at chara...
04:05:49 <pikhq_> elliott: Ah, fuck you.
04:06:02 <CakeProphet> oh right
04:06:05 <CakeProphet> Haskell has C-style strings.
04:06:07 <elliott> pikhq_: >:)
04:06:12 <elliott> CakeProphet: C-style? :P
04:06:14 <CakeProphet> too. much. Perl.
04:06:18 <elliott> that's hardly something unique to C
04:06:20 <elliott> > 't'
04:06:20 <lambdabot> 't'
04:06:22 <elliott> > ['t']
04:06:22 <lambdabot> "t"
04:06:35 <pikhq_> And I don't really think you can call Haskell's String to be C-style.
04:06:36 <elliott> haskell couldn't really use '' for strings, because String = [Char]
04:06:37 <CakeProphet> elliott: as in, '' is character literal. All of the languages I've been using lately (read: Perl, bash) don't work like that.
04:06:42 <elliott> pikhq_: yeah, a better word is "retarded"
04:06:48 <elliott> LINKED LIST OF MACHINE WORDS HERP DERP
04:06:59 <elliott> oh wait
04:07:01 <pikhq_> A linked list of Char is *not* the same as a null-terminated chunk of memory.
04:07:02 <elliott> it isn't even an unboxed list
04:07:09 <zzo38> "Yahweh is 'a' Creator, not 'The' One Infinite Creator. There are other and Higher 'gods' than him." Does that mean there are an infinite number of levels?
04:07:18 <elliott> so each char is an allocation NICE
04:07:18 <elliott> pikhq_: its arguably the only thing worse
04:07:26 <elliott> zzo38: god over djinn eh
04:07:34 <CakeProphet> pikhq_: I was referring to syntax not implementation.
04:07:38 <elliott> pikhq_: Text really needs to become the new String :)
04:07:46 <elliott> pikhq_: as soon as we get some kind of generic container typeclass story going
04:07:53 <pikhq_> CakeProphet: Syntax is merely aesthetic.
04:07:54 <elliott> so that we won't lose all list operations because of it
04:07:59 <elliott> pikhq_: doesn't mean it's irrelevant
04:08:03 <CakeProphet> pikhq_: ...okay?
04:08:13 <Sgeo> Are Javascript's problem syntactic or ... something else?
04:08:28 <Sgeo> I'm thinking that my language will have a Javascript reminiscent syntax
04:08:31 <CakeProphet> javasctipt has a pretty unoffensive syntax in my mind.
04:08:34 <pikhq_> Sgeo: Just a large number of poor decisions.
04:08:42 <zzo38> elliott: Can it have some kind of command to tell it what to do, if ' ' and " " and so on is found in a source file, then?
04:08:44 <pikhq_> Entirely *understandable*, considering the circumstances, but still.
04:08:47 <Sgeo> Hmm, such as?
04:08:58 * Sgeo wants to avoid making poor decisions
04:08:58 <elliott> zzo38: well, there is the OverloadedStrings extension...
04:09:04 <elliott> Sgeo: no block scope
04:09:15 <elliott> idiotic object system that's half-class, half-prototype
04:09:19 <zzo38> Sgeo: One problem is some Javascript systems will do wrong thing when you add line breaks inside of commands can have doing wrong thing.
04:09:20 <elliott> bad syntax
04:10:06 -!- pikhq has joined.
04:10:10 <Sgeo> What if I convert blocks to lambdas, do I avoid neglecting block scope?
04:10:18 <Sgeo> Or am I misunderstanding you
04:10:37 <Sgeo> Or what you mean by "block" for that matter
04:10:39 <CakeProphet> > "I like to end my sentences with INFINITE QUESTION MARKS" ++ (repeat '?')
04:10:40 <lambdabot> "I like to end my sentences with INFINITE QUESTION MARKS???????????????????...
04:10:41 <elliott> Uhh, yes, you could wrap the body of every if statement in a (function(){...})()
04:10:43 <elliott> But that would be insane
04:10:46 <elliott> Sgeo: block = {}
04:10:48 <elliott> js only has function scope
04:10:53 <elliott> if you declare a variable three blocks nested in
04:10:56 <elliott> it's there for the rest of the function
04:10:56 <zzo38> I don't think the object system is too bad, prototype-based is not bad to me. And the Mozilla extensions to Javascript have some new thing such as __proto__ to access *and change* the prototype of an object, often useful. However you cannot do multiple inheritance. There is other thing too.
04:10:57 <Sgeo> elliott, is that insane for CSP?
04:11:08 <elliott> Sgeo: i don't think you actually know what you're doing, what are you doing
04:11:14 <zzo38> elliott: If you use "let", it is local to the block. If you use "var", it is function scope.
04:11:23 <elliott> zzo38: let is not widely supported afaik
04:11:32 <elliott> that is a mozilla extension, or at least from one of the newer badly-supported standards.
04:11:45 <Sgeo> I thought CSP woud entail having a lot of lambdas after being converted to CSP
04:11:53 <elliott> Sgeo: don't you mean cps
04:11:58 <Sgeo> Yes
04:12:03 <elliott> what are you actually doing
04:12:18 <pikhq> Ultimately, though, the problems with Javascript all spring from how Brendan Eich was forced to design and implement it in 10 days and make it superficially similar to Java.
04:12:27 <Sgeo> Making a language to convert into a pseudobytecode that will be read by an interpreter in LSL
04:12:33 <elliott> Sgeo: you said javascript
04:12:57 <Sgeo> My current thoughts are leading this language to have a syntax reminiscent of Javascript
04:13:04 <elliott> you mean a terrible syntax
04:13:07 <CakeProphet> elliott: so I'm going to make a language that is somehow a cross between Perl and Haskell. WATCH.
04:13:08 <elliott> awesome great
04:13:11 <zzo38> There are, however, problems with Javascript.
04:13:17 <elliott> CakeProphet: vomiting
04:13:22 <elliott> CakeProphet: btw i wrote a signal thing that can play audio
04:13:23 <Sgeo> What are the problems with Javascript syntax?
04:13:30 <elliott> Sgeo: it sucks
04:13:44 <CakeProphet> elliott: you should let me see that so I can figure out how to play audio in Haskell sensibly. :D
04:13:57 -!- pikhq_ has quit (Ping timeout: 276 seconds).
04:13:58 <Sgeo> *clap* *clap* *clap* that's not useful to me!
04:14:02 <elliott> CakeProphet: but you'll just steal it and use it to make an inferior codebase :)
04:14:06 <elliott> Sgeo: yep, but i don't really give a shit
04:14:08 <zzo38> Sgeo: The rule about semicolons. And that lambda functions require the long word "function" which if used a lot, will make a lot of long text.
04:14:20 <CakeProphet> elliott: nope. I will analyze and determine if I can make a superior system, and if not, use yours. :D
04:14:24 <Sgeo> Well, I think my lambdas will be more like Fancy's lambdas
04:14:38 <Sgeo> |string somestring| { ...code here... }
04:14:43 <elliott> CakeProphet: well mine is currently one file. :)
04:15:08 <CakeProphet> elliott: is that your metric of good code? I've heard there are lot of Perl programs that are one file.
04:15:15 <elliott> CakeProphet: but here it is: http://sprunge.us/ZGhA
04:15:19 <elliott> and no, I mean it's literally less than a hundred lines
04:15:27 <elliott> and the vast majority is trivial instances
04:15:32 <zzo38> Maybe like this is OK: (y,x=x;x*y) means to take the current value of "x" and take one parameter "y" to return their product.
04:16:04 <elliott> CakeProphet: btw, I used Float rather than Double because otherwise i would have to do conversion
04:16:10 <elliott> CakeProphet: this way i can output as thirtytwo-bit directly
04:16:10 <zzo38> And if you want statements then you use {} instead of ()
04:16:14 <elliott> and pulseaudio handles the conversion
04:16:16 <elliott> and yeah pulseaudio sucks
04:16:21 <CakeProphet> lame.
04:16:31 <elliott> CakeProphet: well there is no point using more precision if you will just throw it away
04:16:36 <elliott> nobody uses >thirtytwobit pcm files :)
04:16:38 <CakeProphet> yeah I know. But why not use alsa?
04:16:45 <elliott> CakeProphet: because the alsa binding looked ten times as painful
04:16:50 <CakeProphet> ...well, right.
04:16:52 <elliott> the portaudio one is bitrottent and would not even compile
04:16:54 <CakeProphet> and undocumented as fuck.
04:16:56 <elliott> [asterisk]bitrotten
04:17:05 <elliott> I can always make it "pluggable" later, if you look you will see how trivial the pulse-using code is :P
04:17:06 <elliott> it's just main
04:18:10 <CakeProphet> elliott: why are there all of these instances that generate errors?
04:18:41 <elliott> CakeProphet: because they are impossible to implement
04:18:43 <elliott> :t properFraction
04:18:44 <lambdabot> forall a b. (RealFrac a, Integral b) => a -> (b, a)
04:18:46 <elliott> so
04:18:57 <elliott> (Float -> a) -> (b, (Float -> a))
04:19:00 <elliott> given properFraction on a
04:19:02 <elliott> protip
04:19:03 <elliott> you can't do it
04:19:05 <elliott> same for (==)
04:19:08 <elliott> can't compare functions
04:19:10 <zzo38> Another thing is the way the "new" command works in Javascript, I do not like it so much.
04:19:11 <elliott> can't convert a function to a rational
04:19:13 <elliott> etc. etc. etc.
04:19:21 <elliott> the numeric typeclass hierarchy in prelude sucks
04:19:24 <elliott> but it's what we have to work with, so
04:19:34 <CakeProphet> elliott: but you needed to implement those typeclasses to implement more useful ones basically?
04:19:42 <elliott> yeah
04:19:47 <CakeProphet> hmmm, okay.
04:19:55 <elliott> RealFloat is a real doozy, but it gets us atan2 :D
04:20:12 <elliott> CakeProphet: anyway, "cabal install pulse-simple" and you can run that program
04:20:27 <CakeProphet> sin = (sin .) --...what?
04:20:37 <CakeProphet> oh... nevermind :P
04:20:51 <elliott> sin f = \x -> sin (f x)
04:20:53 <elliott> sin = (sin .)
04:20:57 <CakeProphet> yes I see now.
04:21:15 <elliott> similarly, (liftA2 f) in this context is sugar for the obvious
04:21:20 <elliott> i.e. a "fork"
04:21:29 <zzo38> Perhaps helped to make BookRecord={title,author;this.title=title;this.author=author;}.makeClass({toString:(;this.title+" by "+this.author)});
04:21:36 <CakeProphet> ...I must get back into my Haskell brain.
04:21:47 <elliott> ?unpl liftA2 (+)
04:21:48 <lambdabot> liftA2 (+)
04:21:50 <zzo38> would be a slightly better system than what Javascript currently has.
04:21:50 <elliott> grr
04:21:53 <elliott> ?unpl liftM2 (+)
04:21:53 <lambdabot> (\ d e -> d >>= \ b -> e >>= \ a -> return (b + a))
04:21:56 <elliott> gah
04:22:00 <elliott> CakeProphet: basically
04:22:05 <elliott> foo = liftA2 op
04:22:06 <elliott> in this context
04:22:07 <elliott> is
04:22:14 <elliott> foo f g = \x -> f x `op` g x
04:22:46 <CakeProphet> kind of like `on` but with two functions instead of one it seems.
04:23:07 <elliott> :t liftA2
04:23:08 <lambdabot> forall a b c (f :: * -> *). (Applicative f) => (a -> b -> c) -> f a -> f b -> f c
04:23:13 <elliott> specialised to the function instance of applicative functors :)
04:24:01 <CakeProphet> :t on
04:24:02 <lambdabot> forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c
04:24:13 <elliott> also this works
04:24:15 <elliott> let foo = seconds 9 ((sinew 440 + sinew 554 + sinew 659) * (fromIntegral . fromEnum . (== 0) . (`mod` 2) . truncate))
04:24:19 <elliott> makes it turn off/on every second
04:25:26 <CakeProphet> there seemed to be a function to do something like that called every in yaxu's library
04:25:42 <CakeProphet> but it took a function parameter and I'm not entirely sure what that function did
04:26:01 <elliott> let foo = seconds 9 ((sinew 440 + sinew 554 + sinew 659) * (fromIntegral . (`mod` 900) . truncate . (* 900)))
04:26:02 <elliott> pleasing noise
04:26:02 <CakeProphet> but he would often do something like every 3 (<~ 4) ...
04:26:08 <elliott> CakeProphet: it's not quite the same here
04:26:12 <elliott> in that there's no "triggering"
04:26:14 <elliott> just filtering a signal off
04:26:19 <CakeProphet> right.
04:26:25 <elliott> that sort of stuff can be built on top
04:26:50 <CakeProphet> now, time to do fourier transforms :D
04:26:55 <CakeProphet> well,
04:26:59 <CakeProphet> not yet. eventually.
04:27:11 <elliott> what do you need fourier for?
04:27:23 <CakeProphet> I think you need to use FFT to do a filter?
04:27:26 <CakeProphet> maybe not.
04:27:55 <CakeProphet> I'll go through my notes and see if there's a way to implement filters in time-domain.
04:28:18 <elliott> http://hackage.haskell.org/package/fft
04:28:20 <elliott> there's yer binding
04:28:36 <elliott> there's also http://hackage.haskell.org/package/pure-fft but it's pure-haskell and older
04:28:41 <elliott> with a binding the age doesn't matter so much if it compiles
04:28:44 <elliott> since you can still use the newer library...
04:28:59 <elliott> http://hackage.haskell.org/packages/archive/fft/0.1.6/doc/html/Math-FFT.html
04:29:13 <pikhq> Also, you could just write your own damned FFT, it's not *that* hard.
04:29:18 <elliott> pikhq: but slow :)
04:29:26 <elliott> CakeProphet: I kind of wish there was "standard" music production software that worked like this
04:29:33 <pikhq> elliott: Well, yes, the efficiency bit is the only hard bit. :P
04:29:41 <elliott> CakeProphet: Well, I suppose Max/MSP /is/ really quite similar to the Text thing yaxu did.
04:29:45 <CakeProphet> elliott: plenty exist, but none are really what I would call standard.
04:29:45 <elliott> But still.
04:29:50 <elliott> CakeProphet: I mean something people actually used ;)
04:30:10 <CakeProphet> some people actually use stuff like Reaktor and Max/MSP
04:30:21 <zzo38> Or maybe, is better having "this" to be an actual argument to the function, similar how Python has it. And then, .makeClass should take two parameters, one is the methods, and the other is properties. And then when making object, add all properties to object with the same name as the properties of "methods", that call them with that object as its first parameter.
04:30:23 <CakeProphet> but that's more in the visual programming domain.
04:30:24 <elliott> CakeProphet: I wouldn't say Reaktor is similar.
04:30:50 <elliott> As a programmer, the only thing I've been able to open up and actually produce some simple sounds with before tearing my hair out is Max/MSP.
04:31:03 <zzo38> I have work with PureData.
04:31:15 <elliott> Everything else, my patience stops, uhh, anywhere beyond a boring trivial piano roll.
04:31:15 <CakeProphet> csound is similar I'd say, minus the functional programming aspect.
04:31:27 <elliott> PureData is like Max/MSP but less usable :D
04:31:31 <CakeProphet> ...yes.
04:32:34 -!- Kustas has joined.
04:32:44 <CakeProphet> there might be a way to calculate a bandpass filter without using fft though...
04:33:12 <CakeProphet> but you really need filters to produce anything interesting. additive synthesis takes forever and isn't anywhere as natural sounding.
04:33:39 <elliott> what are you talking about,
04:33:40 <CakeProphet> well, there are other methods of course... but subtractive synthesis (aka use filters on pulse waves and white noise and whatnot) works very well.
04:33:41 <elliott> let foo = seconds 9 . sum $ [
04:33:41 <elliott> sinew 900 * (fromIntegral . (`mod` 2) . truncate . (* 90)),
04:33:41 <elliott> sinew 659 * (fromIntegral . (`mod` 4) . truncate . (* 80)),
04:33:41 <elliott> sinew 440
04:33:41 <elliott> ]
04:33:43 <elliott> sounds awesome ;D
04:33:48 -!- sebbu2 has joined.
04:33:48 -!- sebbu2 has quit (Changing host).
04:33:48 -!- sebbu2 has joined.
04:33:49 <CakeProphet> heh, okay.
04:33:57 <elliott> by awesome, I mean it sounds like noise
04:33:58 <elliott> but it's nice noise
04:34:01 <CakeProphet> good luck producing music people will listen to on that.
04:34:11 <pikhq> I'm genuinely impressed that I'm actually able to grok the examples I'm seeing here.
04:34:19 <elliott> CakeProphet: who cares what other people would listen to
04:34:38 <elliott> pikhq: spoiler: i have no idea what i'm doing either
04:34:43 <pikhq> CakeProphet: "Noise" is a legit musical genre. Need I say more?
04:34:48 <elliott> sinew :: Float -> Signal Sample
04:34:48 <elliott> sinew hz = sin . ((2 * pi * hz) *)
04:34:48 <elliott> in case anyone was confused
04:34:49 <CakeProphet> I'm aware. :P
04:34:56 <elliott> pikhq: Depends how you define legit ;)
04:35:05 <CakeProphet> I'm just saying, filters are pretty essential tools of electronic music.
04:35:12 <pikhq> elliott: "People actually make and listen to it".
04:35:30 <pikhq> "Music" is, of course, harder to define.
04:35:37 <elliott> pikhq: I am sure by that standard, there is a musical genre called baby-fucking vomitcore.
04:35:42 <elliott> (Best genre??)
04:36:15 <pikhq> But I'm going to go out on a limb and call it "sounds made for aesthetic purposes".
04:36:32 <pikhq> Seems sufficiently broad.
04:36:33 -!- sebbu has quit (Ping timeout: 252 seconds).
04:36:36 <elliott> "well that isn't vague at all"
04:37:08 <pikhq> Hey, "music" is quite a broad topic.
04:37:20 <CakeProphet> elliott: so 90 and 80 are sufficient amplitude values?
04:37:30 <pikhq> Hmm. Minor issue... 4'33" might not count.
04:37:38 <elliott> CakeProphet: you're reading it backwards
04:37:42 <CakeProphet> I remember in csound I had to use numbers that were somewhat larger.
04:37:48 <elliott> it timeses the time (in seconds) by 90
04:37:50 <elliott> truncates it
04:37:52 <elliott> modulos it
04:37:54 <elliott> and then takes the result
04:37:58 <elliott> so the result is like 0 or one
04:37:59 <CakeProphet> oh
04:38:01 <elliott> or 0 or one or two or three or four
04:38:05 <elliott> and it timeses the sine wave by that
04:38:05 <CakeProphet> well, what do you do to get an audible result?
04:38:09 <elliott> CakeProphet: use a sine wave :)
04:38:17 <elliott> remember that "one" is a perfectly good value
04:38:22 <elliott> that would just give the sine wave back untouched
04:38:37 <CakeProphet> uh... I mean
04:38:56 <CakeProphet> 1 is not going to audible.
04:39:19 <CakeProphet> at what point do you add an amplitude value to get an audible result?
04:39:22 <pikhq> Is 4'33" not counting as "music" an actual fault in the definition, though?
04:39:38 <CakeProphet> pikhq: I would say yes, actually.
04:39:51 <elliott> CakeProphet: nothing is going to be audible if you don't have some kind of wave
04:39:56 <pikhq> Well, fuck. Music is undefinable.
04:40:07 <CakeProphet> elliott: ...I'm not even talking about the inclusion or exclusion of a wave.
04:40:14 <elliott> CakeProphet: then i do not know what you are talking about
04:40:19 <CakeProphet> I'm saying, at what point do you amplify the signal to produce a sound that can be heard? where is the volume?
04:40:19 <pikhq> Fuck you, John Cage!
04:40:19 <Patashu> if we didn't work with aristolean logic this wouldn't be a problem
04:40:20 <Patashu> :P
04:40:53 <elliott> CakeProphet: erm, depends how loud the signal is
04:42:23 <CakeProphet> elliott: so how and at what point do you specify how loud the signal is?
04:42:37 <elliott> i do not understand the question.
04:42:43 <CakeProphet> in my experience it would be amp*sinew(440)
04:42:54 <CakeProphet> ...written in Haskell notation :P
04:43:11 <elliott> i do not understand
04:43:14 <elliott> sry
04:43:36 -!- Ycros has quit (Read error: Connection reset by peer).
04:43:38 <CakeProphet> so the amplitude of all of your sign waves is 1, and you get audible playback?
04:43:40 -!- Ycros has joined.
04:43:42 <CakeProphet> *sine
04:43:54 <elliott> ?hoogle openBinaryFile
04:43:54 <lambdabot> System.IO openBinaryFile :: FilePath -> IOMode -> IO Handle
04:43:59 <elliott> CakeProphet: yeah
04:44:38 <elliott> pikhq: what's an easy way to chuck a bunch of Floats to a file in little-endian thirty-two bit format
04:44:42 <elliott> in haskell
04:45:11 <CakeProphet> :t fromIntegral
04:45:12 <lambdabot> forall a b. (Integral a, Num b) => a -> b
04:47:29 <CakeProphet> elliott: I'm assuming you know how amplitude works right?
04:47:51 <CakeProphet> I just... don't see how you don't understand my question.
04:48:03 <elliott> well, it's almost six am and i need sleep.
04:48:05 <elliott> so that is probably how.
04:48:38 <CakeProphet> ...oh, yes, most likely.
04:51:35 <elliott> ".ress is not a TLD, http://ip.add.ress is not a possible address. tldr, fake EDIT: not fake, i misunderstood"
04:51:36 <elliott> oh reddit
04:51:39 <elliott> never change
04:53:55 <elliott> http://www.reddit.com/r/AskReddit/comments/hp3vr/whats_the_scariest_wierdest_most_mysterious_web/c1x9so1
04:53:59 <elliott> HOUSE OF LEAVES LEADS TO HOUSE PURIFICATION
04:54:19 <elliott> "If you consider yourself sensitive in a... Spiritual... Manner" has to be the best opening to anything ever
04:55:30 <zzo38> Perhaps that "dialogue_hh.pdf" can be taken metaphorically and with possible errors in the same way the Bible can be taken in this way.
04:55:37 <copumpkin> man, I have that book
04:55:40 <copumpkin> it's odd
04:56:03 <elliott> copumpkin: House of Leaves?
04:56:07 <copumpkin> yep
04:56:08 <elliott> i keep meaning to read it sometime.
04:56:16 <elliott> but there are a lot of books on that list.
04:56:37 <copumpkin> I haven't read it, but have leafed through it
04:56:48 <elliott> rimshot
04:56:58 <elliott> the only thing that could make it better is
04:57:00 <elliott> WERE YOU IN A HOUSE AT THE TIME
04:57:39 <Sgeo> http://www.reddit.com/r/todayilearned/comments/hpduk/til_about_the_deep_web_what_it_contains_and_how/c1xa5l1 I hate everyone
04:58:21 <elliott> Sgeo: funny. that's how i feel sometimes. sometimes because of you
04:58:24 <elliott> but why that comment in particular
04:58:30 <elliott> the whole thread is idiocy
04:58:35 <copumpkin> elliott: YES
04:58:45 <elliott> copumpkin: OMFLAUGH
04:58:55 <elliott> COPUMpkITS TOO MUCH FOR MY VEINS
04:59:08 <CakeProphet> elliott: if the highest absolute value that you're outputting to PulseAudio is 1, that's an inaudible signal in 32-bit signed floating point LPCM..
04:59:22 <elliott> CakeProphet: no, its not
04:59:25 <elliott> CakeProphet: im outputting floats in general
04:59:28 <elliott> http://upload.wikimedia.org/wikipedia/commons/d/d1/IAO-logo.png
04:59:29 <elliott> i have a tip
04:59:31 <elliott> for the us govt
04:59:36 <elliott> when youre making your freaky spy-on-everything operatinos
04:59:41 <elliott> don't use the fucking all-seeing eye
04:59:41 <elliott> just
04:59:43 <elliott> don't
04:59:45 <elliott> why do you even do that any more
04:59:49 <elliott> are you TRYING to get conspiracies
04:59:52 <CakeProphet> elliott: yes, but in your example you're only outputting sinew, which has an amplitude of 1.
05:00:00 <CakeProphet> you don't multiply it by anything.
05:00:31 <elliott> CakeProphet: dunno then :)
05:00:40 <elliott> CakeProphet: maybe because it goes negative
05:00:44 <elliott> its interpreted as a wraparound
05:00:59 <CakeProphet> ..no I don't think so.
05:01:05 <elliott> i'm just thinking wildly
05:01:18 <CakeProphet> negative values are quite common in an audio signal represented by floating points with a centerpoint at 0
05:01:25 <elliott> yeah
05:01:48 <CakeProphet> hmmm, weird.
05:01:56 <CakeProphet> I will have to play with this some other time.
05:02:13 <CakeProphet> and MAKE A MORE AWESOME signal processing library than you
05:02:32 <CakeProphet> though with shittier Haskell code, most likely.
05:02:45 <CakeProphet> and /way/ less point-free style.
05:03:45 <elliott> oh come on
05:03:50 <elliott> theres no point free style apart from in the instances
05:03:52 <elliott> which are just boilerplate code
05:03:54 <elliott> this isn't even a library
05:03:56 <elliott> this is a five second hack
05:04:29 <CakeProphet> well, I assumed you were going to work on it more.
05:05:12 <CakeProphet> also, for some reason I've seen cos instead of sin used more often in signal processing... I have no idea why though.
05:05:25 <CakeProphet> it shouldn't matter as long as you use one or the other.
05:10:01 <elliott> i love internet arcana.
05:10:46 <elliott> I guess I should read House of Leaves, I haven't read anything in physical book form in a while.
05:11:01 <CakeProphet> elliott: so do you "implement" RealFrac because you want Floating, or..? I don't really know the numeric typeclass hierarchy.
05:11:14 <elliott> CakeProphet: yeah
05:11:22 <elliott> I basically just implemented everything Double has
05:11:35 <elliott> so that everything worked as long as you didn't try and do the impossible :)
05:11:38 <elliott> CakeProphet: really, all of this is just nicety
05:11:44 <elliott> you can easily write it without these instances
05:11:46 <elliott> they are just syntactic convenience
05:11:49 <CakeProphet> right.
05:11:51 <elliott> would you ever take the sin of a signal itself?
05:11:53 <elliott> i'm not sure but I doubt it.
05:12:04 <elliott> but this way you can say pi*signal
05:12:05 <elliott> and it works
05:12:05 <CakeProphet> the only thing somewhat useful in Floating would be **
05:12:06 <CakeProphet> maybe.
05:12:12 <CakeProphet> but really even division is rare.
05:12:17 <elliott> yeah
05:12:48 <CakeProphet> where is ^ defined actually?
05:12:56 <CakeProphet> ^ is Integral right?
05:13:06 <CakeProphet> and ** is the floating point version.
05:14:00 <elliott> ^ is
05:14:03 <elliott> (^) :: (Num a, Integral b) => a -> b -> a
05:14:07 <elliott> it'll just be defined recursively
05:14:15 <elliott> with *
05:14:17 <elliott> so it's not in any typeclass
05:16:45 <CakeProphet> it seems using FFT will require an actual sampled signal unfortunately.
05:18:11 <CakeProphet> so there will be the pure functional approach and then another module for working with a sampled signal.
05:18:24 <elliott> CakeProphet: erm, a function + the sample rate == sampled signal
05:18:29 <elliott> just only call at the relevant multiples
05:19:07 <CakeProphet> but either way the result of a FFT will have to be represented by [Float] or [Complex]
05:19:29 <elliott> no, it could easily be a signal
05:19:47 <elliott> (\x -> resultList !! truncate (x*samplerate))
05:19:55 <CakeProphet> I was about ask... are you suggesting I use !!?
05:20:00 <elliott> (or even interpolated)
05:20:10 <elliott> CakeProphet: Well, I mean, you want something to load a PCM file into a Signal anyway
05:20:19 <elliott> Which would be effectively the same idea as this
05:20:29 <CakeProphet> that's not very efficient at all though.
05:21:09 <elliott> How is it less efficient than a list
05:22:37 <CakeProphet> because when you convert Signal back into a list for playback you're calling that function for each sample increment, which is O(n**2)
05:22:44 <CakeProphet> I think.
05:24:20 <elliott> CakeProphet: you could easily memoise it :)
05:24:24 <elliott> oh wait
05:24:25 <elliott> you mean
05:24:29 <elliott> (\x -> fft foo !! truncate (x*samplerate))
05:24:30 <elliott> fuck no
05:24:31 <elliott> I mean
05:24:35 <elliott> let xs = fft foo in (\x -> xs !! truncate (x*samplerate))
05:24:40 <elliott> that way it'll cache results as they're computed
05:25:04 <elliott> so if you only access it at reciprocal of samplerate increments, it'll be exactly the same as a list
05:25:11 <elliott> CakeProphet: or do you mean that it'll have to do "tail" x times?
05:25:13 <elliott> well right
05:25:16 <elliott> you could use a non-list type as the result
05:25:19 <elliott> lists suck anyway :)
05:25:42 <CakeProphet> I just think the !! would incur performance overhead.
05:26:26 <CakeProphet> whereas manipulating it directly as a list would be more efficient.
05:26:28 <elliott> right, so use a non-list type :)
05:26:34 <CakeProphet> or, yes.
05:27:34 <CakeProphet> but what could replace list?
05:27:35 <elliott> CakeProphet: you could instead do a continuous fourier transform :D
05:27:40 <elliott> also, an array would work fine
05:27:45 <CakeProphet> ...lol, continuous?
05:27:45 <elliott> that's probably what FFTW and the like operate on natively
05:27:50 <elliott> CakeProphet: yeah :D
05:27:53 <CakeProphet> can Haskell do calculus?
05:27:54 <elliott> CakeProphet: then it's a function already, not a list ;D
05:28:00 <elliott> um as much as anything
05:28:04 <elliott> numerically approximated, of course
05:28:11 <elliott> i don't think Automatic Differentiation with dual numbers would apply here
05:28:17 <elliott> and certainly not symbolic
05:28:24 <zzo38> All these things that HH said is about as good as any religion in general. It should not be considered different to that. HH has some insanity but that is what helps him to come up with these perspectives! And it is not all bad, either. Yet, like any religious text, you should not take everything literally. It should be questioned, and so can everything be questioned.
05:28:25 <elliott> i'm joking btw :)
05:28:41 <CakeProphet> elliott: I had hoped so.
05:29:19 <elliott> CakeProphet: who knows though -- maybe it would work :D
05:29:45 <elliott> hmm, I wonder whether this caving story thing will get scary soon
05:31:52 <CakeProphet> elliott: it seems that Math.FFT mostly uses CArray
05:31:52 <pikhq> zzo38: Like all religious texts, it should be taken as 100% bullshit unless shown otherwise.
05:33:01 <zzo38> pikhq: In the same way that other religious texts can be taken as 100% bullshit, yes, so should this one, of course.
05:35:08 <CakeProphet> elliott: actually, do you think CArray would be a good type to use throughout instead of lists? I don't think so because I need signals to be possibly infinite.
05:35:57 <elliott> CakeProphet: you realise haskell has arrays, right? you do not have to use CArray unless you are interfacing with c code manually
05:36:04 <elliott> see data.array.
05:36:14 <CakeProphet> the same problem applies though.
05:36:35 <elliott> I think lists are fairly decent for discrete things, and functions are good for continuous things... and usually it's more comfortable to work in the land of the continuous
05:36:56 <elliott> additionally: I wouldn't worry about performance at this stage.
05:38:05 <pikhq> As always, premature optimisation is the root of all evil.
05:38:44 <CakeProphet> the main problem I'd have with fft is that it uses CArray, so I'd need to partition my signal into "chunks" of some sensible length.
05:39:26 <elliott> CakeProphet: right... Well, you know, it may be better to write your own FFI to start with.
05:39:33 <elliott> Get the interface you want then work on optimising it.
05:39:38 <elliott> I mean, see http://hackage.haskell.org/packages/archive/pure-fft/0.2.0/doc/html/Numeric-FFT.html
05:39:48 <elliott> I dunno whether it is lazy though
05:39:49 <elliott> Probably not
05:39:55 <elliott> Can't tell from glancing at http://hackage.haskell.org/packages/archive/pure-fft/0.2.0/doc/html/src/Numeric-FFT.html#fft
05:41:13 <elliott> hmm, this story may be starting to get a little frekay
05:41:14 <elliott> [asterisk]freaky
05:42:32 <zzo38> HH claims to be working in other solar systems... that is complete nonsense. However, I suppose it works because of higher "Densities", whatever that means. Obviously that is also nonsense. (See? It is the same kind of nonsense and metaphorical and other qualities like other religious texts, just more modern.)
05:42:57 <elliott> :)
05:44:46 <CakeProphet> zzo38: http://xkcd.com/386/
05:44:49 <elliott> "I still harbor the fantasy that there is a hidden entrance to the other side of the passage and years ago Spanish explorers hid their treasures in the cave and sealed up the entrance. And it has remained untouched until we find it! B has a more realistic, although more mundane theory. He figures there is more cave on the other side. We'll see who is right."
05:46:12 <elliott> ooh, this is starting to get spooky :)
05:46:43 <zzo38> elliott: I do suppose B does have a more likely and more realistic theory. However, looking is still the correct way to see who is right (or maybe you are both wrong).
05:47:38 <elliott> zzo38: i'm pretty sure this story is fiction in the horror genre, so more realistic probably means less likely :)
05:48:39 -!- oerjan has joined.
05:48:46 <zzo38> elliott: O, well, I was not answering the question from that perspective. But from that perspective, perhaps you are right about that. (It still doesn't necessarily mean either of those two theories are correct, though>0
05:49:06 <zzo38> s/>0/)/
05:49:14 <elliott> zzo38: I think a bunch of treasure left my explorers would be a rather crappy ending to a horror story :)
05:49:17 <elliott> [asterisk]left by
05:49:22 <elliott> hi oerjan
05:49:49 <oerjan> grmbl morning
05:50:26 <elliott> oerjan: aha, a decent measurement of your wake-up time >:)
05:50:32 <elliott> unless you just mean morning as in time of day...
05:50:42 <oerjan> definitely morning
05:50:53 <elliott> "We immediately noted the presence of the breeze blowing out of the hole, and the rumbling."
05:50:56 <elliott> brr ;_;
05:50:59 <elliott> oerjan: wat
05:51:01 <zzo38> elliott: I suppose you might be correct about that. Which could mean both theories are incorrect, in the context of this story.
05:51:20 * oerjan eats breakfast
05:51:29 <elliott> oerjan: aha, so you DID just wake up
05:51:29 <elliott> probably
05:51:40 <elliott> zzo38: I suspect B is right in that there's more cave, but I imagine it's No Normal Cave(tm) :-P
05:51:44 <elliott> I'm just reading everything linked from that reddit thread.
05:51:51 <oerjan> the prior just keeps getting adjusted
05:52:04 <elliott> I seem to be a lot harder to scare than I used to be though I'm sure it'll come back to haunt me next time it's dark.
05:53:01 <elliott> great, now it's triggering my latent claustrophobia with a narrow cave passage :)
05:53:31 <zzo38> Perhaps they are *infinite* caves!!! Now you cannot find the way out... too bad!!!
05:55:25 <zzo38> (Note that the HH document also contains some bad typography in some places)
05:58:07 <oerjan> infinite caves with exits in other dimensions
06:03:30 * CakeProphet is reading about how to implement a digital filter... fun.
06:04:13 <CakeProphet> mathematically it's recursive, but I suspect to avoid massive performance overhead I should cache results in a data structure.
06:04:22 <oerjan> just beware of the places where the wind is blowing harder and harder... they lead to vacuum.
06:04:58 <CakeProphet> ..
06:05:25 <CakeProphet> sort of.
06:05:27 <oerjan> s/places/tunnels/
06:05:45 <elliott> CakeProphet: just do it naively.
06:05:47 <elliott> seriously.
06:06:00 <elliott> if you do it naively, it will be a small enough body of code to throw away.
06:06:14 <elliott> you can worry about performance once you've proved it will work :P
06:07:23 <CakeProphet> uh, okay. But I'll be recursively pulling the value of every previous calculation twice to compute each new value. It's Fibonacci-esque.
06:07:53 <elliott> oh
06:07:57 <elliott> then yeah, just memoise :P
06:08:01 <CakeProphet> I'm almost positively the naive code will be thrown away.
06:08:05 <CakeProphet> s/ly//
06:08:22 <elliott> right, I am just saying that writing something you know you will throw away is not a bad thing
06:08:36 <elliott> CakeProphet: http://www.haskell.org/haskellwiki/Memoization
06:08:38 <CakeProphet> true, it will give me an idea of how to write the memoised version.
06:08:40 <elliott> has some nice techniques
06:08:46 <elliott> writing a memoised version?
06:08:47 <elliott> there's nothing to it
06:08:53 <elliott> just use a memoisation function
06:09:11 <pikhq> Yeah, memoisation is a trivial transform in Haskell.
06:09:31 <pikhq> And why is it that I use the UK spelling of ise/ize?
06:09:49 <oerjan> how should i know, old chap?
06:10:08 <pikhq> And for that matter, why do no UK programmers use "programme"?
06:10:20 <CakeProphet> because it's a horrid way to write program.
06:10:32 <pikhq> Well, yes, I meant "aside from the obvious".
06:10:33 <CakeProphet> they know that their limey ways are filthy.
06:11:02 <elliott> <pikhq> And why is it that I use the UK spelling of ise/ize?
06:11:07 <elliott> it's not really UK
06:11:10 <elliott> OED uses ize after all :)
06:11:14 <pikhq> elliott: It's very distinctly non-US.
06:11:15 <oerjan> pragmatic programmer pogroms
06:11:19 <elliott> well yes
06:11:21 <elliott> also this story is starting to get scary finally, yay
06:11:28 <pikhq> And, right, OED *does* use it.
06:12:07 <CakeProphet> OED saw the light, I guess.
06:12:10 <pikhq> Hmm. I'm not sure which country's variant of gray/grey I use. Rather, I'm not sure which country it belongs to.
06:12:19 <elliott> well etymologically, and pronounci...olity, -ize is correct
06:12:24 <elliott> i use ise though as of late, dunno why
06:12:31 <CakeProphet> ^limey
06:12:51 <elliott> CakeProphet: libertarian slave-owner
06:13:02 <elliott> anyway, time to dive in to probably the last chapter of this cave story, i guess for ~~immersion~~ purposes ircing is not a good idea
06:13:06 <elliott> gulp
06:13:12 <pikhq> At least I'm not using "colour".
06:13:45 <oerjan> what terrour
06:13:54 <elliott> colour is nice
06:14:06 <CakeProphet> I prefer to use the old school form of 'an'
06:14:10 <oerjan> brightens up your day
06:14:15 <CakeProphet> where you take the n and put it at the beginning of the next word.
06:14:31 <CakeProphet> a norage. a napple.
06:14:31 <elliott> CakeProphet: that's a noutrage
06:14:40 <oerjan> a niditioc custom
06:14:42 <elliott> anyway, everybody shut up and stop me ircing, i need to spook myself
06:14:46 <oerjan> *nidiotic
06:14:58 -!- elliott has set topic: order of the niditioc programmers | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
06:15:14 <CakeProphet> oerjan: apparently "apron" was originally "napron"
06:15:22 <CakeProphet> but once we switched over to using an the 'n' disappeared
06:15:23 <oerjan> in ow
06:17:44 <elliott> oh jesus this is starting to scare me
06:18:07 <CakeProphet> I've never been scared by a written work.
06:18:27 <elliott> I am quite easily sared. the SCP foundation has given me cold sweats at night many a time
06:18:33 <elliott> [asterisk]scared
06:18:45 <CakeProphet> > repeat 'a'
06:18:46 <lambdabot> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
06:18:48 <pikhq> The SCP has some legitimately scary stuff, so...
06:18:53 <elliott> I like this story, though -- it's well-written even apart from the fear.
06:19:04 <elliott> http://www.angelfire.com/trek/caver/
06:19:30 <oerjan> > fix ('a':)
06:19:31 <lambdabot> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
06:21:00 <pikhq> @source repeat
06:21:01 <lambdabot> repeat not available
06:21:02 <CakeProphet> for some reason a list without a [] scares me.
06:21:13 <pikhq> CakeProphet: Why should it?
06:21:21 <oerjan> @src repeat
06:21:21 <lambdabot> repeat x = xs where xs = x : xs
06:21:24 <pikhq> XD
06:21:36 <CakeProphet> I make no normative claim about my vague fear.
06:21:43 <Patashu> > repeat 'aeiou '
06:21:44 <lambdabot> <no location info>:
06:21:44 <lambdabot> lexical error in string/character literal at chara...
06:21:49 <CakeProphet> purely existential claims.
06:21:49 <Patashu> oh right
06:21:55 <pikhq> CakeProphet: And it's not like that's a uniquely Haskell thing, either.
06:21:55 <CakeProphet> Patashu: try cycle
06:22:01 <oerjan> > cycle "aeiou "
06:22:02 <lambdabot> "aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou ae...
06:22:03 <Patashu> > cycle "aeiou "
06:22:04 <lambdabot> "aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou aeiou ae...
06:22:12 <CakeProphet> pikhq: oh I know. No need to give me a lecture on circular linked lists.
06:22:19 <oerjan> @src cycle
06:22:19 <lambdabot> cycle [] = undefined
06:22:20 <lambdabot> cycle xs = xs' where xs' = xs ++ xs'
06:22:27 <pikhq> Pffft, I can do lazy infinite lists in C.
06:22:36 <Patashu> is anything in haskell -not- written in haskell?
06:22:40 <Patashu> the language interprets itself O_O
06:22:59 <CakeProphet> Patashu: a few things are, of course.
06:23:05 <oerjan> Patashu: it goes fairly deep
06:23:08 <oerjan> @src IO
06:23:08 <lambdabot> Source not found. Maybe you made a typo?
06:23:11 <elliott> oh jesus christ this is starting to fuck with my head
06:23:11 <oerjan> argh
06:23:18 <pikhq> Patashu: GHC's runtime system isn't entirely in Haskell, as far as I know.
06:23:19 <elliott> Patashu: for a start, GHC is a /compiler/
06:23:24 <oerjan> i'm sure that _used_ to be there :(
06:23:34 <elliott> Patashu: for a second, a lot of GHC's internal implementations of things are Haskell
06:23:38 <elliott> for instance the IO monad type itself and operations on it, etc.
06:23:43 <elliott> but there is C code that makes up the runtime system, of course.
06:23:47 <Patashu> yeah
06:23:49 <Patashu> it's just for clarity
06:23:52 <elliott> like oerjan says, it goes fairly deep :)
06:24:00 <Patashu> it's pretty cool though
06:24:08 <elliott> Patashu: of course there are conventional interpreters like Hugs; I don't know how its IO monad is defined, but probably in Haskell too I would wager
06:24:12 <pikhq> Sadly, GHC's code is pretty poor.
06:24:25 <pikhq> Though, doesn't it predate Haskell 98?
06:24:57 <elliott> well, it's not _poor_
06:25:04 <elliott> lots of parts predate just about everything :)
06:25:09 <elliott> but they're working on cleaning it up
06:25:13 <elliott> and new parts are of course well-written
06:25:24 <elliott> but yeah, there is a lot of recursive functions when combinators would do, etc.
06:25:25 <pikhq> I seem to recall it having multiple implementations of Monad floating around, though.
06:25:40 <oerjan> i recall hearing that too
06:25:41 <pikhq> But, eh, old code base predating modern niceties has that shit happen.
06:25:59 <pikhq> You can see rather a lot of the same in GCC.
06:26:28 <pikhq> Man. It freaking predates C90.
06:26:37 <elliott> ohh jesus this is frekaing me out
06:27:01 <oerjan> @hoogle IO
06:27:01 <lambdabot> module Data.Array.IO
06:27:01 <lambdabot> module System.IO
06:27:01 <lambdabot> Prelude data IO a
06:28:03 -!- Kustas has quit (Quit: gone).
06:28:21 <CakeProphet> @hoogle hoogle
06:28:21 <lambdabot> Can't think of anything more interesting to search for?
06:28:22 <lambdabot> No results found
06:28:36 <Patashu> lol
06:29:27 <CakeProphet> @perl fork while fork #grrr...
06:29:27 <lambdabot> Maybe you meant: keal part pl spell tell url vera
06:30:14 <elliott> CakeProphet: try exclamation mark in place of @
06:30:16 <elliott> and
06:30:17 <elliott> jesus
06:30:18 <elliott> this is scary
06:31:31 -!- Sgeo has quit (Ping timeout: 248 seconds).
06:32:16 <elliott> fucking hell there's more
06:33:33 <coppro> what are you up to?
06:33:33 <Lymia> What is?
06:34:57 <oerjan> BUT WAIT, THERE'S MORE! WE THROW IN A FREE DECAPITATION FOR JUST _FIVE_ DOLLARS
06:35:11 <elliott> coppro: reading a story linked on thatreddit thread of creepy stuff
06:36:01 <elliott> oh great, go back to the cave, that's the best fucking idea you've had all story
06:36:13 <elliott> you get the award for not doing stupid fucking shit
06:38:06 <elliott> oh, lovely
06:38:11 <elliott> the last page loops back to itself.
06:41:41 -!- Ycros has quit (Ping timeout: 260 seconds).
06:43:50 <oerjan> recursive cave
06:44:22 -!- Ycros has joined.
06:58:12 -!- NihilistDandy has quit (Quit: leaving).
07:00:39 -!- Ycros has quit (Remote host closed the connection).
07:00:43 -!- Kustas has joined.
07:01:17 -!- Ycros has joined.
07:03:22 <elliott> http://areyoutargeted.com/
07:08:14 <CakeProphet> elliott: using ! wouldn't allow me to enact my vengence upon lambdabot for insulting my creativity.
07:08:21 <CakeProphet> !help addinterp
07:08:22 <EgoBot> ​addinterp: !addinterp <name> <language> <code>. Add a new interpreter to EgoBot. This interpreter will be run once every time you type !<name> <subcode>, and receive the program code as input.
07:09:08 <Kustas> CakeProphet: it's probably because you mistype vengeance
07:09:30 -!- Kustas has changed nick to Kostas.
07:09:34 <elliott> oh hey thisman.org, this is a fun one
07:09:43 -!- Kostas has changed nick to Kustas.
07:09:55 <elliott> Kustas: you mistype Kustas
07:10:19 <Kustas> that other nick is taken.. i must think of something different
07:10:29 <Kustas> or enact my vengeance on the original nick-bearer
07:10:40 <CakeProphet> !addinterp elmer perl for (<>) {s/wr\B/w/i; s/r\B/w/i; print}
07:10:41 <EgoBot> ​Interpreter elmer installed.
07:10:43 <elliott> "I have never had homosexual relationships or even fantasies. But I dream about having sexing with this man all the time." having sexing with this man all the time
07:10:55 <elliott> CakeProphet: who needs elmer when you have
07:10:59 <elliott> !swedish bork bork bork
07:11:01 <EgoBot> ​burk bork bork
07:11:05 <CakeProphet> !elmer screwy rabbit
07:11:06 <EgoBot> ​scwewy rabbit
07:11:15 <CakeProphet> ...?
07:11:23 <CakeProphet> oh right
07:11:25 <elliott> !addinterp elmer perl for (<>) {s/wr\B/w/gi; s/r\B/w/gi; print}
07:11:26 <EgoBot> ​There is already an interpreter for elmer!
07:11:31 <CakeProphet> elliott: damn you.
07:11:33 <elliott> !delinterp elmer
07:11:33 <EgoBot> ​Interpreter elmer deleted.
07:11:34 <elliott> !addinterp elmer perl for (<>) {s/wr\B/w/gi; s/r\B/w/gi; print}
07:11:34 <EgoBot> ​Interpreter elmer installed.
07:11:39 <elliott> !elmer rabbit season
07:11:39 <EgoBot> ​wabbit season
07:11:55 <Kustas> !swedish rabbit season
07:11:56 <EgoBot> ​rebbeet seesun
07:12:06 <Kustas> amazing
07:12:18 <elliott> haha
07:12:24 <elliott> !swedish wabbit season
07:12:24 <EgoBot> ​vebbeet seesun
07:12:30 <elliott> swedish elmer fudd
07:12:41 <elliott> "It is the most interesting theory and the one that has the greatest implications, but it has also the lowest scientific credibility." --thisman
07:12:42 <elliott> herp derp
07:13:01 <elliott> his face is slightly spooky though.
07:13:57 -!- SimonRC has joined.
07:14:19 <elliott> Catherine Kinsbergen, Email, Web Site
07:14:19 <elliott> I've dreamed of this man since i was 5 yesrs old as a vampire which try to kill me. I'm now 18 and I still dream about him.. Can't beleive i'm not alone to see him
07:14:19 <elliott> Linda Borgman, Email, Web Site
07:14:19 <elliott> OMG! I do dream of this man too! I punch him in face but I try to run and cant! He catch me and tell me to do naughty things with him
07:14:21 <elliott> quality guestbook
07:14:41 <CakeProphet> !elmer it's been a long time since I've been wrong about screwy rabbits. Even longer now.
07:14:42 <EgoBot> ​it's been a long time since I've been wong about scwewy wabbits. Even longer now.
07:14:50 <elliott> !swedish it's been a long time since I've been wong about scwewy wabbits. Even longer now.
07:14:50 <CakeProphet> ...interesting
07:14:51 <EgoBot> ​it's beee a lung teeme-a seence-a I'fe-a beee vung ebuoot scvooy vebbeets. Ifee lunger noo. Bork Bork Bork!
07:14:55 <elliott> swedish elmer fudd is a thing of beauty
07:15:28 <CakeProphet> for some reason "long" is not become "wong"
07:15:41 <CakeProphet> *becoming
07:16:52 <Patashu> it'd need another regex for that
07:17:31 <CakeProphet> does r\B not match at the beginning of a word?
07:18:07 <Patashu> \B means 'not word boundary'
07:18:07 <Patashu> I believe
07:18:08 <CakeProphet> oh wait
07:18:10 <Patashu> l isn't an r
07:18:11 <Patashu> btw
07:18:18 <elliott> you want \br
07:18:19 <CakeProphet> lol, I'm apparently stupid. :P
07:18:36 <CakeProphet> or my brain is currently thinking in engrish.
07:18:44 <Kustas> weiwd
07:21:43 <CakeProphet> !delinterp elmer
07:21:44 <EgoBot> ​Interpreter elmer deleted.
07:21:44 <CakeProphet> !addinterp elmer perl for (<>) {s/wr\B/w/gi; s/(?<!i)r\B/w/gi; print}
07:21:44 <EgoBot> ​Interpreter elmer installed.
07:21:48 <Kustas> simple regexp won't ever do the trick
07:21:52 <CakeProphet> !elmer weird
07:21:53 <EgoBot> ​weird
07:22:01 <Kustas> english spelling sux
07:22:12 <CakeProphet> also counts for words like wire
07:22:17 <elliott> so hey hi Kustas who are you
07:22:22 <elliott> weren't you here a few days ago too
07:22:44 <Kustas> the day before yesterday, maybe
07:23:47 <CakeProphet> my principle of life: regex is adequate to solve every problem.
07:23:55 <CakeProphet> obviously I have gotten very far with this principle.
07:24:07 <Patashu> I think I solved a maze using a regex once
07:24:29 <elliott> Kustas: hmm i've already asked you if you were from the wiki haven't i :D
07:24:48 <Kustas> maybe you have
07:25:26 <Kustas> but this is the first time my attention is on this channel
07:25:41 <CakeProphet> !elmer Wright Brothers read ripe literature
07:25:42 <EgoBot> ​wight Bwothews wead wipe litewatuwe
07:25:51 <CakeProphet> lol
07:26:42 <Kustas> it would be far cooler if it would convert based on the pronunciation instead of the spelling
07:26:48 <CakeProphet> yes.
07:26:48 <elliott> !swedish wight Bwothews wead wipe litewatuwe
07:26:49 <EgoBot> ​veeght Bvuzeevs veed veepe-a leetooetoove-a
07:26:55 <elliott> !elmer veeght Bvuzeevs veed veepe-a leetooetoove-a
07:26:56 <EgoBot> ​veeght Bvuzeevs veed veepe-a leetooetoove-a
07:27:00 <elliott> :(
07:27:03 <elliott> it should distort forever
07:27:08 <elliott> until it's just vwwvwvwvw bork bork bork
07:28:18 <Kustas> wundaful
07:30:35 <CakeProphet> !delinterp elmer
07:30:35 <EgoBot> ​Interpreter elmer deleted.
07:30:35 <CakeProphet> !addinterp elmer perl for (<>) {s/(w)r\B/$1/gi; s/(?<![iou])r\B/w/g; s/(?<![iou])R\B/W/g; print}
07:30:36 <EgoBot> ​Interpreter elmer installed.
07:30:49 <CakeProphet> !elmer Wright Brothers read ripe literature
07:30:50 <EgoBot> ​Wight Bwothews wead wipe litewature
07:31:03 <CakeProphet> oh right, one other thing
07:31:43 <elliott> CakeProphet: there's a special way you can maintain the case, I think
07:31:51 <CakeProphet> elliott: that would be quite swell.
07:31:56 <elliott> it'll be in perlre :P
07:32:17 <CakeProphet> looking in perlmonks right now
07:32:39 <CakeProphet> no doesn't exist.
07:33:00 <CakeProphet> !delinterp elmer
07:33:00 <EgoBot> ​Interpreter elmer deleted.
07:33:01 <CakeProphet> !addinterp elmer perl for (<>) {s/(w)r\B/$1/gi; s/(?<![iou])rs?\B/w/g; s/(?<![iou])Rs?\B/W/g; print}
07:33:01 <EgoBot> ​Interpreter elmer installed.
07:33:11 <CakeProphet> !elmer brothers
07:33:11 <EgoBot> ​bwothews
07:33:19 <CakeProphet> grrr
07:34:06 <Lymia> !addinterp blowup perl fork while fork
07:34:07 <EgoBot> ​Interpreter blowup installed.
07:34:09 <Lymia> !blowup
07:34:12 * Lymia runs
07:34:16 <Lymia> !delinterp blowup
07:34:18 <EgoBot> ​Interpreter blowup deleted.
07:35:28 <elliott> http://www.catnipples.com/ what
07:35:55 <elliott> Intro by Lloyd Pye: We at the Starchild Project have repeatedly tried to correct the outdated and incorrect information about the Starchild Skull presented in the article on Wikipedia (which I refer to by the more appropriate name “Wackypedia”). Virtually no one realizes that Wikipedia’s stated mission isn’t actually to provide the truth about selected subjects, it is to determine the consensus opinion of what they think most people belie
07:35:55 <elliott> ve to be the truth (Wikipedia, 2010a). In fact, Wikipedia rejects any form of original research (Wikipedia, 2010b). The astounding fact is that current Wikipedia “quality standards” would prevent Darwin, Einstein, Edison, and many other geniuses from contributing their original research. This is why we call them Wackypedia, and it’s why that name is so apt for the entire organization.
07:35:55 <CakeProphet> !addinterp elmer perl for (<>) {s/(w)r\B/$1/gi; s/(?<![iou])rs??\B/w/g; s/(?<![iou])Rs??\B/W/g; print}
07:35:57 <EgoBot> ​There is already an interpreter for elmer!
07:35:57 <elliott> oh
07:35:58 <elliott> this will be good
07:36:01 <CakeProphet> !delinterp elmer
07:36:02 <CakeProphet> !addinterp elmer perl for (<>) {s/(w)r\B/$1/gi; s/(?<![iou])rs??\B/w/g; s/(?<![iou])Rs??\B/W/g; print}
07:36:02 <EgoBot> ​Interpreter elmer deleted.
07:36:04 <EgoBot> ​Interpreter elmer installed.
07:36:10 <elliott> this will be very good
07:36:12 <CakeProphet> !elmer brothers
07:36:14 <EgoBot> ​bwothews
07:36:19 <CakeProphet> ...nope. ?? is useless.
07:36:23 <elliott> "Pye's "Starchild Project" supporters claim that the skull is that of an extraterrestrial infant, or the hybrid offspring of an extraterrestrial and a human female."
07:36:24 <elliott> hehehehehehehe
07:36:38 <Patashu> how bout that original research
07:36:57 <elliott> i'm learning something really comforting from this thread
07:37:16 <Patashu> it's actually pretty impressive that Wikipedia works so well
07:37:24 <elliott> humanity is in exactly equal amounts depraved, idiotic and confused as i thought it was
07:37:27 <Patashu> you'd think it would collapse under its bureaucratic weight
07:37:49 <elliott> nothing has shocked me, nothing has scared me more than anything has scared me before
07:37:55 <elliott> it's a wonderful feeling
07:38:00 <elliott> Patashu: It is in a continuous state of collapse.
07:38:17 <elliott> Patashu: not a second goes by without drama somewhere in metaspace on Wikipedia :)
07:38:22 <Patashu> of course
07:38:24 <Patashu> yet wikipedia goes on
07:38:28 <Patashu> so not too bad all in all
07:38:47 <Patashu> they do a very good job of not having metapollution
07:38:55 <elliott> Unfortunately the systematic bias extends to the administrative body not realising that there's a huge long tail distribution with editors, and so proposals to seriously restrict or disable anonymous editing even get serious consideration...
07:39:05 <elliott> Patashu: Yes, it's true that it doesn't often leak out significantly into article-space.
07:39:39 <elliott> Still, the bad management will start to have an effect sometime. Or maybe it won't, that would be the most comical thing, because it'd prove that the metaspace is completely ineffective.
07:39:59 <elliott> "Linux has a bunch of different ways to reset an x86. Some of them are 32-bit only and so I'm just going to ignore them because honestly just what are you doing with your life. Also, they're horrible. So, that leaves us with five of them."
07:40:19 <Patashu> I once saw an article that claimed wikipedia was failing because less people were editing it over time. But of course less people are editing it, most topics are filled out adequately by now and only experts would have things to add
07:40:40 <elliott> http://www.aaronsw.com/weblog/whowriteswikipedia is a "classic" on the subject.
07:40:45 <elliott> But yeah, Wikipedia is by no means failing.
07:40:51 <elliott> It's certainly mismanaged though.
07:40:57 <CakeProphet> !delinterp elmer
07:40:57 <EgoBot> ​Interpreter elmer deleted.
07:40:59 <CakeProphet> !addinterp elmer perl for (<>) {s/(w)r\B/$1/gi; s/(?<![iou]) r ( (?![sS]\b) | \B )/w/gx; s/(?<![iou]) R ( (?![sS]\b) | \B )/W/gx; print}
07:40:59 <EgoBot> ​Interpreter elmer installed.
07:41:07 <CakeProphet> !elmer my brothers
07:41:08 <EgoBot> ​my bwothews
07:41:17 <CakeProphet> well, I'm done trying. :P
07:41:34 <elliott> "Now, I'll admit that this all sounds pretty depressing. But people clearly sell computers with the expectation that they'll reboot correctly, so what's going on here?"
07:41:58 <Patashu> !elmer Everybody jump
07:41:59 <EgoBot> ​Evewybody jump
07:42:12 <Patashu> Elliot, what are you quoting?
07:42:17 <elliott> Patashu: http://mjg59.dreamwidth.org/3561.html
07:42:25 <elliott> also: don't you have tab completion? :)
07:42:52 <Patashu> I have tab completion (mIRC), what I lack is a tab completion instinct
07:42:56 <Patashu> I just type out however much of a person's name is enough
07:43:03 <Kustas> elliott: his computer maybe does not reboot correctly
07:43:09 <elliott> Patashu: Clearly not enough, you missed a letter :-)
07:43:21 <elliott> Kustas: I rather think it does :P
07:43:44 <Patashu> It was still uniquely addressing you so i'm down with that
07:43:45 <elliott> "Default until 3.0 has been to try to use the keyboard controller, and if we're still awake after a few seconds then to force a triple fault. This does work on most machines, but since this isn't what modern Windows does there's an increasing number of systems that don't behave."
07:43:46 <elliott> Ugh.
07:43:56 <Patashu> Wow, I knew wikipedia started out with only a core group of editors, I didn't know it was so tight
07:44:04 <elliott> Pat-a-cake pat-a-cake baker's man: Sure thing bro.
07:44:10 <Patashu> lol
07:44:34 <elliott> Patashu: btw aaron directly contradicts what jimbo says later
07:44:48 <elliott> oh wait no
07:44:49 <elliott> sorry
07:44:51 <elliott> i am tired :)
07:45:08 <Patashu> ' But that’s not at all what I found. Almost every time I saw a substantive edit, I found the user who had contributed it was not an active user of the site.'
07:45:11 <elliott> no wait
07:45:13 <elliott> right
07:45:14 <elliott> yeah
07:45:14 <Patashu> how's that not contradictory? still reading though
07:45:16 <elliott> aaron contradicts
07:45:19 <elliott> yeah
07:45:20 <elliott> it is
07:45:21 <elliott> sorry
07:45:23 <elliott> i'm tired :)
07:45:57 <Patashu> Ah, that's interesting
07:46:00 <Patashu> I understand now
07:46:21 -!- zzo38 has quit (Remote host closed the connection).
07:46:28 <elliott> it also provides quite an explanation for how so many high-profile wikipedia editors essentially just do meta-twiddling
07:46:39 <elliott> not that there's anything wrong with meta-twiddling, but looking at active users you wouldn't think anything would ever get written at all
07:48:03 <Kustas> it's all mostly written already, so meta-twiddling is the only thing left to do
07:48:08 <Patashu> Wow, I had no idea rebooting a computer was so hard
07:48:47 <elliott> Kustas: There is always more to write about :)
07:49:20 <Kustas> elliott: i used to think so too.. but then i learned to read
07:49:22 <elliott> although the notability policy's current interpretation seems to be "whatever we currently have an article on is notable, everything else isn't", so maybe as far as wikipedia is concerned there isn't
07:50:50 <CakeProphet> !delinterp elmer
07:50:51 <EgoBot> ​Interpreter elmer deleted.
07:50:51 <CakeProphet> !addinterp elmer perl for (<>) {s/(w)r\B/$1/gi; s/(?<![iou]) r (?![sS]?\W)/w/gx; s/(?<![iou]) R (?![sS]?\W)\B/W/gx; print}
07:50:51 <EgoBot> ​Interpreter elmer installed.
07:51:02 <CakeProphet> !elmer yo brothers you dig my jive?
07:51:02 <EgoBot> ​yo bwothers you dig my jive?
07:51:41 <CakeProphet> negative look-around for the win.
07:51:58 <Patashu> So how does it work now?
07:51:59 <CakeProphet> but apparently zero-width assertions within a look-around mess up.
07:53:34 <CakeProphet> now quickly, find a situation in which an r proceeds an i, o, or u but needs to be converted to a w.
07:53:56 <CakeProphet> and don't cheat.
07:54:34 <Patashu> o/~ Double fault all the way across kernel space... o/~
07:58:31 <CakeProphet> !delinterps elmer
07:58:31 <CakeProphet> !addinterp elmer perl for (<>) {s/l/w/gi; s/L/W/gi; s/(w)r\B/$1/gi; s/(?<![iou]) r (?![sS]?\W)/w/gx; s/(?<![iou]) R (?![sS]?\W)\B/W/gx; print}
07:58:32 <EgoBot> ​There is already an interpreter for elmer!
07:58:38 <CakeProphet> !delinterp elmer
07:58:38 <EgoBot> ​Interpreter elmer deleted.
07:58:39 <CakeProphet> !addinterp elmer perl for (<>) {s/l/w/gi; s/L/W/gi; s/(w)r\B/$1/gi; s/(?<![iou]) r (?![sS]?\W)/w/gx; s/(?<![iou]) R (?![sS]?\W)\B/W/gx; print}
07:58:39 <EgoBot> ​Interpreter elmer installed.
07:58:49 <CakeProphet> !elmer kill the rabbit, kill the rabbit
07:58:49 <EgoBot> ​kiww the wabbit, kiww the wabbit
08:03:57 -!- pikhq has quit (Remote host closed the connection).
08:04:14 <Lymia> elliott, so, wait.
08:04:18 -!- pikhq has joined.
08:04:25 <Lymia> Systems should have a way to reboot.
08:04:37 <elliott> they do, it's just stupid
08:04:40 <Lymia> Linux uses at least one that should be standard.
08:04:56 <Lymia> Because Windows uses a slightly different behavior... the standard way doesn't work.
08:05:16 <Lymia> Linux is forced to be bug-compatible... with the hardware.
08:05:28 <elliott> http://www.planecrashinfo.com/lastwords.htm oh this is interesting
08:05:35 <Lymia> Do they not test other operating systems, or...
08:05:36 <Lymia> I don't know.
08:05:40 <Lymia> Follow the standard?
08:05:43 <Lymia> Write test code?
08:06:03 <CakeProphet> !delinterp elmer
08:06:03 <EgoBot> ​Interpreter elmer deleted.
08:06:04 <CakeProphet> !addinterp elmer perl for (<>) {lc; s/l/w/g; s/er/uh/g; s/wr\B/w/g; s/(?<![iou])r\B/w/gx; print}
08:06:04 <EgoBot> ​Interpreter elmer installed.
08:06:05 <elliott> Lymia: nope
08:06:19 <CakeProphet> !elmer brothers and sisters
08:06:20 <EgoBot> ​bwothuhs and sistuhs
08:09:39 -!- pikhq_ has joined.
08:09:55 <elliott> pikhq: you soifj a ozjidf oniwef
08:13:19 <elliott> http://marineparade.net/wewantyoursoul/ oh sweet
08:13:33 -!- pikhq has quit (Ping timeout: 260 seconds).
08:18:27 <Kustas> !swedish ou soifj a ozjidf oniwef
08:18:28 <EgoBot> ​ooo sueeffj a oozjeedff ooneeveff
08:19:17 <CakeProphet> !delinterp elmer
08:19:17 <CakeProphet> !addinterp elmer perl for (<>) {lc; s/l/w/g; s/er/uh/g; s/or(e\b)?/owuh/; s/ire\b/iyuh/; s/wr\B/w/g; s/(?<![iou])r\B/w/gx; print}
08:19:18 <EgoBot> ​Interpreter elmer deleted.
08:19:18 <EgoBot> ​Interpreter elmer installed.
08:21:01 <CakeProphet> !elmer porcelain
08:21:02 <EgoBot> ​powuhcewain
08:22:18 <CakeProphet> lol, I don't even know.
08:22:49 <CakeProphet> elliott: check out my point-free Perl. :D
08:23:16 -!- Kustas has quit (Quit: rejoin).
08:23:29 <elliott> lol
08:23:31 <oerjan> !elmer horrible traitor
08:23:32 <EgoBot> ​howuhwibwe twaitor
08:23:43 -!- Kustas has joined.
08:24:04 <oerjan> ...wht doesn't that become twaitowuh
08:24:18 <oerjan> oh, missing /g
08:24:21 <oerjan> CakeProphet: ^
08:24:34 <oerjan> *wth
08:24:46 <CakeProphet> I'm on it
08:24:56 <CakeProphet> I should probably take out the or(e\b) case :P
08:25:14 <oerjan> you'd think.
08:27:46 <CakeProphet> !delinterp elmer
08:27:46 <EgoBot> ​Interpreter elmer deleted.
08:27:47 <CakeProphet> !addinterp elmer perl for (<>) {lc; s/l/w/g; s/er/uh/g; s/ire\b/iyuh/; s/wr\B/w/g; s/(?<![iou])r\B/w/gx; print}
08:27:47 <EgoBot> ​Interpreter elmer installed.
08:27:57 <CakeProphet> I need a magical english2IPA function
08:28:14 <CakeProphet> and then IPA2english, which is probably even more impossible.
08:28:38 <CakeProphet> english2IPA isn't out of the question with a huge dictionary database.
08:30:23 <Lymia> CakeProphet, English2IPA isn't that difficult if you maintain an exception list.
08:30:31 <Lymia> The other way around?
08:30:31 <elliott> sdsgfg
08:30:54 -!- Kustas has quit (Ping timeout: 258 seconds).
08:31:01 <Lymia> Yeahhhhhhhh
08:31:03 <Lymia> Uh
08:31:36 <CakeProphet> !delinterp elmer
08:31:37 <EgoBot> ​Interpreter elmer deleted.
08:31:42 <CakeProphet> !addinterp elmer perl for (<>) {lc; s/l/w/g; s/er/uh/g; s/ire\b/iyuh/g; s/wr\B/w/g; s/(?<![iou])r\B/w/gx; print}
08:31:42 <EgoBot> ​Interpreter elmer installed.
08:31:48 -!- Kustas has joined.
08:31:49 <oerjan> !elmer terrible errors
08:31:49 <EgoBot> ​tuhwibwe uhwors
08:33:01 <CakeProphet> tuhwibwe exceptional words.
08:33:09 <oerjan> !elmer horrible tourists
08:33:10 <EgoBot> ​horwibwe tourists
08:33:57 <CakeProphet> oerjan: fine, I promote you to lead designer of elmer.
08:34:02 <Patashu> lol
08:34:06 <oerjan> I QUIT
08:34:46 <CakeProphet> oerjan: I now conscript you into indentured servitude to be lead designer of elmer.
08:34:58 <CakeProphet> in exchange
08:35:01 <CakeProphet> you get to come to America.
08:35:30 <elliott> what luck
08:35:37 <oerjan> but i'm trying to stay away from the place
08:35:39 <elliott> http://stackoverflow.com/questions/3956478/understanding-randomness
08:35:41 <elliott> HERP DERP DERP
08:35:58 <CakeProphet> how can one not understand randomness...
08:36:39 <elliott> easily
08:37:28 <oerjan> by statistical accident
08:38:20 -!- pikhq has joined.
08:39:04 <elliott> hi pikhq pikhq pikhq Patashu iamcal p iamcal p iamcal Patashu ip pk pikhq Kustas pikhq p
08:39:09 -!- pikhq_ has quit (Ping timeout: 276 seconds).
08:39:45 <Kustas> amazing
08:39:52 <elliott> yes
08:39:54 <elliott> itsmodern art
08:40:19 <elliott> pikhq is Patashu iamcal Kustas HackEgo quintopia
08:40:22 <elliott> and that's
08:40:42 <CakeProphet> !delinterp elmer
08:40:42 <EgoBot> ​Interpreter elmer deleted.
08:40:44 <CakeProphet> !addinterp elmer perl for (<>) {lc; s/l(?!e\W)/w/g; s/\Ber|(?<!f)or\b/uh/g; s/ire\b/iyuh/g; s/wr\B/w/g; s/(?<![iou])r\B/w/gx; print}
08:40:44 <EgoBot> ​Interpreter elmer installed.
08:40:49 <CakeProphet> !elmer terrible errors
08:40:49 <EgoBot> ​tuhwible ewwors
08:40:58 <Kustas> waw
08:41:08 <elliott> Patashu aloril TeruFSX aloril sebbu2 HackEgo u iamcal aloril malorie CakeProphet lambdabot Kustas u sebbu2 TeruFSX aloril sebbu2 HackEgo aloril CakeProphet Kustas EgoBot glogbot oerjan quintopia u iamcal n TeruFSX oerjan Patashu iamcal aloril
08:41:11 <elliott> so u and n are uncolonised
08:43:31 <CakeProphet> ?
08:43:39 <elliott> CakeProphet: nicktabbing
08:43:42 <elliott> for instance
08:43:43 <elliott> you are:
08:43:53 <elliott> CakeProphet aloril Kustas EgoBot Patashu rodgort oerjan Patashu HackEgo EgoBot TeruFSX
08:44:01 -!- Sgeo has joined.
08:44:07 <elliott> sebbu2 glogbot EgoBot oerjan
08:44:11 <CakeProphet> u and n the letters don't have colons?
08:44:17 <elliott> no, as in
08:44:21 <elliott> nobody has a nick starting with u or n in here
08:44:27 <CakeProphet> oh.
08:44:29 <CakeProphet> gotcha.
08:44:44 <CakeProphet> `run echo 'test'
08:44:47 <HackEgo> ​test
08:44:52 <CakeProphet> !addinterp !loop perl print '`run echo "!loop"'
08:44:52 <EgoBot> ​Interpreter _loop installed.
08:45:00 <CakeProphet> ...
08:45:05 <CakeProphet> why the _
08:45:24 <elliott> terp !loop
08:45:52 <Sgeo> So, I think my official bedtime is now noon
08:45:53 <Sgeo> :/
08:46:05 <CakeProphet> !userinterps
08:46:05 <EgoBot> ​Installed user interpreters: _loop 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 elmer fudd funetak google graph gregor he hello id jethro kraut num ook pansy pi pirate plot postmodern postmodern_aoler prefixes redneck reverse rimshot rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh simpleacro simplename slashes svedeesh swedish valspeak w
08:46:18 <CakeProphet> ah.
08:46:29 <CakeProphet> !delinterp _loop
08:46:29 <EgoBot> ​Interpreter _loop deleted.
08:46:34 <CakeProphet> !addinterp loop perl print '`run echo "!loop"'
08:46:34 <EgoBot> ​Interpreter loop installed.
08:46:35 <Patashu> aol aeiou
08:46:41 <CakeProphet> okay, now no one ever use that command.
08:46:41 <Patashu> oh
08:46:44 <Patashu> !aol aeiou
08:46:44 <EgoBot> ​AE1OU
08:46:48 <Patashu> ah
08:47:04 <Patashu> !aol The quick brown fox jumps over the lazy dog.
08:47:05 <EgoBot> ​THE QU1CK BROWN FOX JUMPS UV R THE LAZY DOG!!
08:47:17 <Sgeo> CakeProphet, you're not going to test it?
08:47:23 <CakeProphet> Sgeo: I am afraid to
08:47:31 <CakeProphet> but there might be an ignore list for egobot
08:47:43 <CakeProphet> to ignore hackego
08:47:54 <Patashu> !pi 3
08:47:55 <EgoBot> ​3.140
08:47:56 <Sgeo> `run echo !ao The quick brown fox
08:47:57 <HackEgo> ​!ao The quick brown fox
08:47:58 <Patashu> How handy
08:48:01 <Sgeo> `run echo !aol The quick brown fox
08:48:02 <HackEgo> ​!aol The quick brown fox
08:48:10 <Sgeo> !loop
08:48:11 <EgoBot> ​`run echo "!loop"
08:48:15 <Patashu> Lol
08:48:17 <elliott> they do ignore.
08:48:18 <elliott> don't bother.
08:48:27 <elliott> besides, they use that stupid character in front to stop it
08:48:29 <Patashu> !delinterp loop
08:48:30 <elliott> and also break urlification
08:48:30 <EgoBot> ​Interpreter loop deleted.
08:48:52 <Sgeo> I only tested it after knowing it wouldn't work
08:49:41 <CakeProphet> !simplename
08:49:48 <EgoBot> ​JAPPAUT.
08:49:54 <CakeProphet> !show simplename
08:49:55 <EgoBot> ​haskell import System.Random; import Control.Monad; pick a = randomRIO (0, length a - 1) >>= return . (a !!); main = putStrLn . (++".") =<< word; word = join . pick $ replicate 3 (liftM2 (:) vowel word) ++ replicate 2 (liftM2 (:) consonant word) ++ [return ""]; vowel = pick "AEIOUY"; consonant = pick "BCDFGHJKLMNPQRSTVWXZ"
08:50:19 <elliott> oerjan's doing?
08:50:20 -!- Phantom_Hoover has joined.
08:50:28 <Patashu> !simplename
08:50:31 <oerjan> CakeProphet: that's a roleplaying name generator zzo38 mentioned, so i made it
08:50:33 <EgoBot> ​O.
08:50:35 <Patashu> LOL
08:50:38 <Patashu> that is simple
08:50:47 <elliott> how fitting for zzo
08:50:50 -!- Kustas has quit (Ping timeout: 258 seconds).
08:50:53 <elliott> oerjan: why the .?
08:50:58 <CakeProphet> zzo38 likes to play roleplaying games? Awesome. I should ask him if he wants to play Shadowrun.
08:51:01 <elliott> or is it some character that EgoBot is filtering out
08:51:15 <Patashu> it's in the code
08:51:17 <CakeProphet> I made simpleacro. it is superior at its purpose.
08:51:18 <Patashu> putStrLn . (++".")
08:51:24 <elliott> Patashu: yes but it would filter it out on show too
08:51:25 <CakeProphet> though I need to weight the uncommon starting letters
08:51:25 <oerjan> elliott: it sometimes makes an empty string, so zzo38 suggested adding a period
08:51:36 <CakeProphet> I just don't have data on the most common starting letters for English.
08:52:03 <CakeProphet> so I will probably just continue not caring as I have been.
08:52:13 <Sgeo> Inglip's death is canon now
08:53:48 -!- Kustas has joined.
08:53:56 <CakeProphet> !simpleacro
08:54:00 <EgoBot> ​HI
08:54:04 <CakeProphet> haha.
08:54:14 <CakeProphet> I love how long it takes to compute. it's like a moment of suspense.
08:54:19 <CakeProphet> !simpleacro
08:54:22 <oerjan> well obviously !simplename is based on !simpleacro
08:54:22 <EgoBot> ​BMEAOF
08:54:28 <oerjan> !show simpleacro
08:54:28 <EgoBot> ​haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!)
08:54:40 <Patashu> !simpleacro aeiou
08:54:44 <CakeProphet> oerjan: I think you actually helped me with some bugs on it.
08:54:45 <EgoBot> ​IA
08:55:04 <oerjan> probably
08:57:33 <CakeProphet> !show swedish
08:57:33 <EgoBot> ​sh chef | fmt -w500
08:57:43 <CakeProphet> !show chef
08:57:43 <EgoBot> ​sh chef
08:58:35 <CakeProphet> !redneck
08:58:42 <CakeProphet> !show redneck
08:58:42 <EgoBot> ​sh redneck
08:58:56 <CakeProphet> such let downs...
08:59:08 <oerjan> !redneck We don't take lightly to your kind of people here.
08:59:08 <EgoBot> ​We don't take lightly tuh yer kinda folks here.
08:59:51 <oerjan> CakeProphet: it's probably from some funny linux package
09:00:01 <elliott> it's valspeak
09:00:06 <CakeProphet> !userinterps
09:00:06 <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 elmer fudd funetak google graph gregor he hello id jethro kraut num ook pansy pi pirate plot postmodern postmodern_aoler prefixes redneck reverse rimshot rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh simpleacro simplename slashes svedeesh swedish valspeak warez y
09:00:08 <oerjan> !sh which redneck
09:00:09 <EgoBot> ​/usr/bin/redneck
09:00:20 <CakeProphet> !show gregor
09:00:20 <EgoBot> ​sh sed 's/þ/th/g ; s/Þ/Th/g ; s/ſ/s/g ; s/æ/ae/g ; s/Æ/Ae/g ; s/œ/oe/g ; s/Œ/Oe/g'
09:00:51 <oerjan> how uſeful
09:01:15 <CakeProphet> !show postmodern
09:01:15 <EgoBot> ​sh postmodern
09:01:20 <oerjan> !sh uname -a
09:01:21 <EgoBot> ​Linux codu.org 2.6.32-5-xen-amd64 #1 SMP Tue Mar 8 00:01:30 UTC 2011 x86_64 GNU/Linux
09:01:41 <CakeProphet> !show ehird
09:01:41 <EgoBot> ​sh funetak
09:01:51 <CakeProphet> !show dubya
09:01:52 <EgoBot> ​sh dubya
09:02:03 <CakeProphet> !show bypass_ignore
09:02:03 <EgoBot> ​sh cat
09:02:07 <CakeProphet> ...whut.
09:02:10 <elliott> !ehird cobbles of phantom fuck whats
09:02:11 <EgoBot> ​cobbles of phantom fuck whats
09:02:15 <elliott> good
09:02:52 <CakeProphet> !sfedeesh what is this I don't even
09:02:52 <EgoBot> ​vhet is thees I dun't ifee
09:02:57 <oerjan> somehow i doubt bypass_ignore works, if it ever did
09:03:02 <CakeProphet> yeah same.
09:03:08 <elliott> of course it does
09:03:16 <elliott> !bypass_ignore do not
09:03:16 <EgoBot> ​do not
09:03:28 <oerjan> oh wait that kind of ignores
09:03:37 <elliott> !bypass_ignore <elliott> ha ha vorpal is a fag
09:03:37 <EgoBot> ​<elliott> ha ha vorpal is a fag
09:03:41 <elliott> see, perfect
09:03:50 <oerjan> !elmer perfect
09:03:50 <CakeProphet> !sffedeesh what is this I don't even
09:03:50 <EgoBot> ​puhfect
09:03:51 <EgoBot> ​vhet is thees I dun't ifee
09:04:03 <oerjan> !swedish swedish
09:04:04 <EgoBot> ​svedeesh
09:04:05 <elliott> !ehird what is this I don't even
09:04:06 <EgoBot> ​wut is this I don't even
09:04:10 <oerjan> !swedish svedeesh
09:04:10 <EgoBot> ​sfedeesh
09:04:18 <elliott> !sffedeesh vhet is thees I dun't ifee
09:04:18 <EgoBot> ​fhet is zeees I doon't iffee-a
09:04:23 <elliott> !sffedeesh fhet is zeees I doon't iffee-a
09:04:23 <oerjan> !swedish sfedeesh
09:04:23 <EgoBot> ​fhet is zeees I duun't iffffee-a-a
09:04:24 <EgoBot> ​sffedeesh
09:04:30 <elliott> !sffedeesh fhet is zeees I duun't iffffee-a-a
09:04:30 <EgoBot> ​fhet is zeees I doooon't iffffffffee-a-a-a
09:04:35 <elliott> !sffedeesh fhet is zeees I doooon't iffffffffee-a-a-a
09:04:35 <EgoBot> ​fhet is zeees I duuuun't iffffffffffffffffee-a-a-a-a
09:04:41 <elliott> :D
09:04:53 <CakeProphet> elliott: why don't these other interpreters evoke swedish x number of times?
09:04:54 <elliott> !swedish hey what's this OH SNAP IT'S A FUCKING TIGET
09:04:54 <EgoBot> ​hey vhet's thees OoH SNEP IT'S A FOoCKING TIGET
09:04:56 <elliott> !swedish hey what's this OH SNAP IT'S A FUCKING TIGER
09:04:57 <EgoBot> ​hey vhet's thees OoH SNEP IT'S A FOoCKING TIGER
09:05:01 <oerjan> CakeProphet: hm...
09:05:03 <elliott> FOoCKING
09:05:08 <elliott> !swedish hey vhet's thees OoH SNEP IT'S A FOoCKING TIGER
09:05:08 <EgoBot> ​hey fhet's zeees OouH SNEP IT'S A FOuCKING TIGER
09:05:12 <oerjan> !show svedeesh
09:05:12 <EgoBot> ​sh chef | fmt -w500
09:05:17 <elliott> !swedish ​hey fhet's zeees OouH SNEP IT'S A FOuCKING TIGER
09:05:18 <EgoBot> ​​hey fhet's zeees OouooH SNEP IT'S A FOooCKING TIGER
09:05:21 <oerjan> !delinterp svedeesh
09:05:21 <EgoBot> ​Interpreter svedeesh deleted.
09:05:28 <elliott> oerjan: NOOOOOOOOO
09:05:31 <CakeProphet> !show swedish
09:05:31 <EgoBot> ​sh chef | fmt -w500
09:05:33 <elliott> `addquote <EgoBot> hey fhet's zeees OouooH SNEP IT'S A FOooCKING TIGER
09:05:35 <HackEgo> ​433) <EgoBot> hey fhet's zeees OouooH SNEP IT'S A FOooCKING TIGER
09:05:38 <elliott> oerjan: those are our valuable aliases
09:05:41 <oerjan> !addinterp svedeesh sh chef | chef | fmt -w500
09:05:41 <EgoBot> ​Interpreter svedeesh installed.
09:05:49 <elliott> !addinterp svedeesh sh chef | fmt -w500
09:05:49 <EgoBot> ​There is already an interpreter for svedeesh!
09:05:55 <elliott> !delinterp svedeesh
09:05:55 <oerjan> elliott: I'M JUST MAKING IT MORE LOGICAL
09:05:56 <EgoBot> ​Interpreter svedeesh deleted.
09:06:00 <elliott> oerjan: ...
09:06:01 <elliott> WELL FINE
09:06:05 <oerjan> !addinterp svedeesh sh chef | chef | fmt -w500
09:06:06 <EgoBot> ​Interpreter svedeesh installed.
09:06:13 <oerjan> !svedeesh svedeesh
09:06:13 <EgoBot> ​sffedeesh
09:06:16 <elliott> `quote
09:06:17 <elliott> `quote
09:06:17 <HackEgo> ​41) <Dylan> kaelis: yes kaelis, but however will get the horses to wear knickers?
09:06:18 <elliott> `quote
09:06:18 <elliott> `quote
09:06:18 <elliott> `quote
09:06:18 <HackEgo> ​343) 00:07 Sgeo has quit (IRC is taking up too much of my time. I need time to study the Bible and find Christ.) 00:12 Sgeo has joined #esoteric.
09:06:19 <elliott> `quote
09:06:19 <HackEgo> ​274) <oklopol> ah yes, indeed, alan turing was gay and stupid
09:06:20 <HackEgo> ​365) <Vorpal> elliott, it was an artful robbery! <Vorpal> wait, murder
09:06:20 <elliott> `quote
09:06:21 <HackEgo> ​139) <fungot> alise: nobody is allowed to fnord me in soviet russia
09:06:21 <elliott> `quote
09:06:22 <HackEgo> ​8) <SimonRC> TODO: sex life
09:06:23 <elliott> `quote
09:06:24 <HackEgo> ​176) <cpressey> Never ever use a quote which contains both the words "aloofness" and "gel" (verb).
09:06:24 <HackEgo> ​23) IN AN ALTERNATE UNIVERSE: <bsmntbombdood> there is plenty of room to get head twice at once
09:06:25 <elliott> `quote
09:06:26 <HackEgo> ​189) <alise> Why do you use random acronyms you know we don't know the expansions of? <pikhq> alise: TLAAW
09:06:27 <HackEgo> ​60) <apollo> What is there to talk about besides gay slang?
09:06:41 <elliott> <HackEgo> ​365) <Vorpal> elliott, it was an artful robbery! <Vorpal> wait, murder
09:06:42 <elliott> wat
09:06:46 <CakeProphet> `quote alise
09:06:47 <HackEgo> ​128) <alise> use "grep --crazy" \ 129) * augur rubs alise's bum [...] <augur> what? she said square ped <augur> :| \ 131) <fungot> alise: why internet is like wtf \ 135) <alise> like, just like I'd mark "Bob knob hobs deathly poop violation EXCREMENT unto;" as English <ais523> alise: that's great filler <alise> ais523:
09:06:58 <elliott> "why internet is like wtf"
09:07:03 <elliott> definitely fungot's proudest moment
09:07:12 <elliott> it finally realises that this human internet is like wtf
09:07:14 <elliott> and it wants to know why
09:07:19 <CakeProphet> `quote CakeProphet
09:07:20 <HackEgo> ​155) <CakeProphet> how does a "DNA computer" work. <CakeProphet> von neumann machines? <Phantom_Hoover> CakeProphet, that's boring in the context of DNA. <Phantom_Hoover> It's just stealing the universe's work and passing it off as our own. \ 156) <fungot> CakeProphet: reading herbert might be enlightening in one hand he held a
09:07:41 <CakeProphet> ...?
09:07:46 <elliott> `pastequotes CakeProphet
09:07:47 <HackEgo> ​http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.18198
09:07:57 <CakeProphet> they'll all be from like 4 years ago
09:08:04 <elliott> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.18198
09:08:11 <elliott> CakeProphet: uh no
09:08:15 <elliott> the quote system is not that old...
09:08:23 <elliott> those are from a year ago at most
09:08:46 <elliott> `run sed -i 's///g' quotes
09:08:48 <HackEgo> No output.
09:08:50 <elliott> `pastequotes CakeProphet
09:08:50 <CakeProphet> all pretty recent actually.
09:08:51 <HackEgo> ​http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.24384
09:09:00 <elliott> yay
09:09:02 <elliott> fixed the downloading
09:09:09 <CakeProphet> for some reason I thought we had quotes that long ago.
09:09:55 <oerjan> @quote
09:09:55 <lambdabot> ari says: The problem I have with grues is that although I know that currently, if it is very dark I am likely to be eaten by one... but how can I tell if grue suddenly became benign at, say, the
09:09:55 <lambdabot> year 2010? The evidence I've gathered so far can't support the idea that that *wouldn't* happen.~
09:10:07 * sebbu2 slaps elliott around a bit with a very large trout
09:10:36 <elliott> sebbu2: yw
09:10:49 <elliott> oerjan: wow that was the least funny quote ever
09:10:53 <oerjan> troutally reasonable
09:10:57 <elliott> apart from all of ours
09:10:58 <elliott> `quote
09:10:58 <elliott> `quote
09:10:59 <HackEgo> ​78) <Madelon> I want to read about Paris in the period 1900-1914 <Madelon> not about the sexual preferences of a bunch of writers >.>
09:10:59 <elliott> `quote
09:11:00 <elliott> `quote
09:11:00 <elliott> `quote
09:11:00 <HackEgo> ​56) <ehird> no Deewiant <Deewiant> No?! <Deewiant> I've been living a lie <ehird> yep. <Deewiant> Excuse me while I jump out of the window ->
09:11:01 <HackEgo> ​133) <Quas_NaArt> Hooray! <Quas_NaArt> I'm an idiot.
09:11:02 <HackEgo> ​46) <fizzie> Seconds. 30 of them. Did I forget the word?
09:11:02 <HackEgo> ​161) <ais523> cpressey: I have actually done a waterfall-model project that almost worked <cpressey> That's where you have a flexible kayak that bobs and weaves between the rocks as it plummets off the cliff
09:11:04 <monqy> oh my
09:12:25 <CakeProphet> `run echo $(yes)
09:12:27 <HackEgo> No output.
09:17:23 -!- CakeProphet has quit (Ping timeout: 248 seconds).
09:18:05 <oerjan> hey don't run away before i can explain why that was stupid
09:18:43 <elliott> :D
09:18:50 <oerjan> hm imagine if linux _did_ support lazy argument lists
09:19:38 -!- CakeProphet has joined.
09:19:39 -!- CakeProphet has quit (Changing host).
09:19:39 -!- CakeProphet has joined.
09:20:07 <oerjan> `run echo $(yes | head -5)
09:20:08 <HackEgo> ​y y y y y
09:20:39 <oerjan> CakeProphet: yours probably never finished making the argument list
09:20:48 <CakeProphet> I somehow thought it would be a good idea to run echo $(yes) on my computer...
09:20:55 <CakeProphet> not realizing that I wouldn't be able to ctrl+c
09:21:02 <oerjan> ...
09:21:09 <CakeProphet> as it very rapidly filled all of my mempory.
09:21:16 <oerjan> huh
09:21:21 <elliott> hey Sgeo homestuck update :-P
09:21:28 <oerjan> it's the yes bomb!
09:23:06 -!- monqy has quit (Quit: hello).
09:23:19 <CakeProphet> oerjan: I wonder what would be the most effective anti-yes bomb
09:23:59 <CakeProphet> killall sh && killall bash && ... :P
09:24:09 <CakeProphet> nothing could go wrong...
09:25:20 <oerjan> !which killall
09:25:30 <CakeProphet> `which killall
09:25:31 <elliott> oerjan: forgot sh
09:25:32 <HackEgo> No output.
09:25:36 <elliott> CakeProphet: forgot `run
09:25:41 <oerjan> !sh which killall
09:25:41 <EgoBot> ​/usr/bin/killall
09:25:46 <CakeProphet> `run which killall
09:25:48 <HackEgo> No output.
09:26:13 <CakeProphet> !sh killall $(yes)
09:26:20 <EgoBot> ​/tmp/input.18804: xrealloc: ../bash/subst.c:4757: cannot reallocate 33554432 bytes (0 bytes allocated)
09:26:27 <Patashu> lol
09:27:30 <Sgeo> ty
09:27:33 <CakeProphet> a convenient memory exploder for the whole family.
09:30:33 <CakeProphet> so when code golfing bash can you only assume that only the bare minimum in external programs are available in $PATH?
09:31:11 -!- ais523 has joined.
09:31:39 <Patashu> typically yeah
09:31:45 -!- MigoMipo has joined.
09:32:03 <Sgeo> Where is my reddit thread
09:32:09 <elliott> what
09:32:26 <Sgeo> I've taken to reading the reddit thread after the update
09:33:07 <elliott> its hardly big enough to warrant another post...
09:33:20 -!- pikhq has quit (Ping timeout: 244 seconds).
09:33:27 -!- pikhq has joined.
09:33:48 <CakeProphet> !show sffedeesh
09:33:49 <EgoBot> ​sh chef | fmt -w500
09:34:28 <CakeProphet> !delinterp sffedeesh
09:34:28 <EgoBot> ​Interpreter sffedeesh deleted.
09:34:43 <CakeProphet> !addinterp sffedeesh chef | chef | chef | fm -w500
09:34:43 <EgoBot> ​Interpreter sffedeesh installed.
09:34:48 <Patashu> ?_?
09:34:56 <Patashu> !sffedeesh The quick brown fox jumps over the lazy dog.
09:34:57 <EgoBot> ​| cheff | cheff | fm -v500
09:35:00 <Patashu> o
09:35:03 <elliott> fail
09:35:04 <CakeProphet> ...
09:35:05 <CakeProphet> lol
09:35:09 <CakeProphet> !delinterp
09:35:09 <EgoBot> ​ is not a user interpreter.
09:35:16 <CakeProphet> !delinterp sffedeesh
09:35:16 <EgoBot> ​Interpreter sffedeesh deleted.
09:35:24 <CakeProphet> !addinterp sffedeesh sh chef | chef | chef | fm -w500
09:35:24 <EgoBot> ​Interpreter sffedeesh installed.
09:35:38 <CakeProphet> !sffedeesh I love being swedish.
09:35:39 <EgoBot> ​/tmp/input.19806: line 1: fm: command not found
09:35:43 <CakeProphet> ...lol
09:35:48 <CakeProphet> !delinterp sffedeesh
09:35:49 <EgoBot> ​Interpreter sffedeesh deleted.
09:35:53 <CakeProphet> !addinterp sffedeesh sh chef | chef | chef | fmt -w500
09:35:53 <EgoBot> ​Interpreter sffedeesh installed.
09:35:56 <CakeProphet> !sffedeesh I love being swedish.
09:35:57 <EgoBot> ​I luuffffe-a-a-a beeeng sffedeesh. Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork!
09:36:04 <Patashu> lol
09:36:05 <elliott> X-D
09:36:06 <elliott> Impressive.
09:36:13 <elliott> !sffedeesh I luuffffe-a-a-a beeeng sffedeesh. Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork!
09:36:13 <EgoBot> ​I looooooooffffffffffffffffffffffffffffffffe-a-a-a-a-a-a beeeng sffffffffffffffffedeesh. Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork!
09:36:21 <elliott> Combinatorial explosion of borks.
09:36:59 <Patashu> !sffedeesh The quick brown fox jumps over the lazy dog.
09:37:00 <EgoBot> ​Zee-a-a qooooeeck broooon fuux joooomps oouooffffer zee-a-a lezy duug. Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork!
09:37:05 <Patashu> Lol wtf
09:37:53 <oerjan> !show swedish
09:37:54 <EgoBot> ​sh chef | fmt -w500
09:37:59 <oerjan> !show svedeesh
09:37:59 <EgoBot> ​sh chef | chef | fmt -w500
09:38:03 <oerjan> !show sfedeesh
09:38:04 <EgoBot> ​sh chef | fmt -w500
09:38:08 <oerjan> !show sffedeesh
09:38:08 <EgoBot> ​sh chef | chef | chef | fmt -w500
09:38:11 <CakeProphet> !svedish I am a slightly more reserved swede.
09:38:19 <CakeProphet> !svedeesh I am a slightly more reserved swede.
09:38:19 <EgoBot> ​I im a sleeghtly moore-a-a reserffed sfede-a-a. Bork Bork Bork! Bork Bork Bork! Bork Bork Bork!
09:38:27 <oerjan> !delinterp sfedeesh
09:38:27 <EgoBot> ​Interpreter sfedeesh deleted.
09:38:37 <oerjan> !addinterp sfedeesh sh chef | chef | chef | fmt -w500
09:38:38 <EgoBot> ​Interpreter sfedeesh installed.
09:38:45 <oerjan> !delinterp sffedeesh
09:38:46 <EgoBot> ​Interpreter sffedeesh deleted.
09:38:57 <oerjan> !addinterp sffedeesh sh chef | chef | chef | chef | fmt -w500
09:38:57 <EgoBot> ​Interpreter sffedeesh installed.
09:39:13 <CakeProphet> oerjan is setting the record straight in sffedeen.
09:39:20 <Sgeo> !svedeesh The quick brown fox jumps over the lazy dog
09:39:20 -!- ais523 has quit (Read error: Connection reset by peer).
09:39:20 <EgoBot> ​Zee-a quueeck bruun foox juumps oouffer zee-a lezy doog
09:39:31 <oerjan> !sffedeesh I love sffedeesh.
09:39:31 <EgoBot> ​I looooffffffffe-a-a-a-a sffffffffffffffffffffffffffffffffedeesh. Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork! Bork Bork Bork!
09:40:25 <oerjan> !help languages
09:40:25 <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:40:35 <oerjan> !show chef
09:40:35 <EgoBot> ​sh chef
09:40:49 <CakeProphet> magic box.
09:41:02 <oerjan> !delinterp chef
09:41:02 <EgoBot> ​Interpreter chef deleted.
09:41:07 <oerjan> !addinterp chef chef
09:41:07 <EgoBot> ​Interpreter chef does not exist!
09:41:17 <oerjan> !addinterp chef sh chef
09:41:17 <EgoBot> ​Interpreter chef installed.
09:41:21 <Patashu> perl is esoteric?
09:41:27 <oerjan> !delinterp swedish
09:41:27 <EgoBot> ​Interpreter swedish deleted.
09:41:27 <Patashu> haskell too, lol
09:41:34 <oerjan> !addinterp swedish chef
09:41:35 <EgoBot> ​Interpreter swedish installed.
09:41:41 <CakeProphet> Patashu: don't forget c
09:41:55 <oerjan> Gregor has implemented working interpreter recursion?
09:42:14 <elliott> how unforgivable
09:42:26 <oerjan> !swedish Ho hum.
09:42:36 <oerjan> ...apparently not.
09:42:42 <oerjan> !delinterp swedish
09:42:42 <EgoBot> ​Interpreter swedish deleted.
09:42:56 <oerjan> !addinterp swedish sh chef | fmt -w500
09:42:56 <EgoBot> ​Interpreter swedish installed.
09:43:01 <oerjan> !swedish Ho hum.
09:43:01 <EgoBot> ​Hu hoom. Bork Bork Bork!
09:43:04 <CakeProphet> Patashu: I guess both Haskell and Perl are a little esoteric. So is C.
09:43:22 <CakeProphet> I imagine Perl is there for usefulness more so than esotericness
09:43:26 <CakeProphet> same with Haskell.
09:43:34 <Patashu> is any programming language NOT esoteric
09:43:48 <CakeProphet> Python
09:44:26 <CakeProphet> actually I tak it back, C is not esoteric in any way.
09:44:27 -!- ais523 has joined.
09:45:01 <elliott> seriously?
09:45:06 <elliott> c has two conflicting ways to be TC
09:45:10 <CakeProphet> C is like what you use to judge normalness, for some reason.
09:45:12 <elliott> you're telling me that's not esoteric?
09:45:32 <elliott> hi ais523
09:46:03 <ais523> hi
09:46:48 <ais523> also, I thought C's TCness options, other than ones based on files and the standard library, all required you to omit details like the value of CHAR_BIT (because it isn't a finite integer)
09:46:58 <CakeProphet> Ruby can be a little strange. 99.downto(1) {|x| print "#{x} bottles of beer on the wall."}
09:47:17 <CakeProphet> but that's not.... too strange.
09:47:45 <elliott> ais523: exactly; freestanding, you don't have CHAR_BIT, so you can have bignum chars
09:47:48 <elliott> hosted, you can use files
09:47:59 <elliott> mutually exclusive
09:48:03 <ais523> are you sure you don't have CHAR_BIT in freestanding?
09:48:04 <ais523> I thought limits.h was one of the headers that had to be in freestanding too
09:48:14 <elliott> ais523: ooh
09:48:17 <elliott> that would be bad
09:48:23 <elliott> it'd mean that freestanding C might not actually be TC at all
09:48:31 <ais523> it's not like there's anything in it but #defines
09:48:44 * elliott greps http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
09:49:42 <Patashu> what is 'freestanding C'
09:49:51 <elliott> 5.2.4.2 Numerical limits
09:49:51 <elliott> 1 An implementation is required to document all the limits specified in this subclause,
09:49:51 <elliott> which are specified in the headers <limits.h> and <float.h>. Additional limits are
09:49:51 <elliott> specified in <stdint.h>.
09:49:51 <elliott> Forward references: integer types <stdint.h> (7.18).
09:50:01 <ais523> Patashu: it's a subset of C that doesn't have to have the library support that C impls normally do
09:50:02 <elliott> 5.2.4.2.1 Sizes of integer types <limits.h>
09:50:02 <elliott> 1 The values given below shall be replaced by constant expressions suitable for use in #if
09:50:03 <elliott> preprocessing directives. Moreover, except for CHAR_BIT and MB_LEN_MAX, the
09:50:03 <elliott> following shall be replaced by expressions that have the same type as would an
09:50:06 <elliott> expression that is an object of the corresponding type converted according to the integer
09:50:08 <elliott> promotions. Their implementation-defined values shall be equal or greater in magnitude
09:50:10 <elliott> (absolute value) to those shown, with the same sign.
09:50:12 <elliott> — number of bits for smallest object that is not a bit-field (byte)
09:50:14 <elliott> CHAR_BIT
09:50:16 <ais523> designed for things like embedded systems
09:50:19 <elliott> ais523: oh dear, you must have a number of bits in a char in a freestanding implementation too
09:50:19 <oerjan> > [99, 98..1] >>= (++ " bottles of beer on the wall.\n").show
09:50:21 <lambdabot> "99 bottles of beer on the wall.\n98 bottles of beer on the wall.\n97 bottl...
09:50:24 <elliott> RIP freestanding tcness
09:50:31 <ais523> elliott: unless you had a type that was smaller than a char
09:50:32 <elliott> unless you can do something with the stack
09:50:34 <ais523> and could create objects of it
09:50:39 <elliott> and register variables
09:50:40 <ais523> I saw a loophole in that definition
09:50:49 <elliott> ais523: yes, but I suspect char is defined to be that smallest object
09:50:50 <elliott> anyway
09:50:55 <elliott> register variables you aren't allowed to take the address of
09:50:59 <ais523> yep
09:50:59 <elliott> so there's nothing forcing them to be limited
09:51:08 <ais523> you can still sizeof them
09:51:11 <elliott> combined with the stack... maybe you could do something?
09:51:16 <ais523> there's nothing forcing you to have a limited /quantity/ of them
09:51:16 <elliott> ais523: yes, but if you recurse
09:51:26 <elliott> normally, recursion doesn't let you have "infinite variables"
09:51:29 <elliott> because you can take their address
09:51:32 <ais523> but there's no way to reference them outside their own stack frame, precisely because you can't take their address
09:51:36 <elliott> but the conceptual stack frame can take up no address spcae here
09:51:38 <elliott> [asterisk]space
09:51:41 <ais523> so you end up with a PDA, not a TC language
09:51:49 <elliott> ais523: yeah, it's probably true
09:51:54 <elliott> I was thinking you could combine other things to make it work somehow
09:51:56 <elliott> but I don't know
09:52:06 <CakeProphet> > :t map (map (map (map ($map)))) [[[[map]]]]
09:52:07 -!- Kustas has quit (Quit: left).
09:52:07 <lambdabot> <no location info>: parse error on input `:'
09:52:13 <CakeProphet> :t map (map (map (map ($map)))) [[[[map]]]]
09:52:14 <lambdabot> forall a b. [[[[[a -> b] -> [[a] -> [b]]]]]]
09:52:32 <elliott> nice.
09:52:37 <elliott> looks uh
09:52:38 <elliott> useful
09:52:41 <elliott> > map (map (map (map ($map)))) [[[[map]]]]
09:52:42 <lambdabot> Overlapping instances for GHC.Show.Show ([a -> b] -> [[a] -> [b]])
09:52:42 <lambdabot> arisi...
09:52:50 <elliott> bleh
09:52:54 <elliott> > length (map (map (map (map ($map)))) [[[[map]]]])
09:52:55 <lambdabot> 1
09:53:03 <elliott> > length (head (map (map (map (map ($map)))) [[[[map]]]]))
09:53:04 <lambdabot> 1
09:53:08 <elliott> > length (head (head (map (map (map (map ($map)))) [[[[map]]]])))
09:53:09 <lambdabot> 1
09:53:12 <elliott> > length (head (head (head (map (map (map (map ($map)))) [[[[map]]]]))))
09:53:12 <lambdabot> 1
09:53:15 <elliott> > length (head (head (head (head (map (map (map (map ($map)))) [[[[map]]]])))))
09:53:15 <lambdabot> Couldn't match expected type `[a]'
09:53:16 <lambdabot> against inferred type `[a1 -> b]...
09:53:19 <elliott> > length (head (head (head (map (map (map (map ($map)))) [[[[map]]]]))))
09:53:19 <lambdabot> 1
09:53:23 <elliott> :t head (head (head (head (map (map (map (map ($map)))) [[[[map]]]]))))
09:53:24 <lambdabot> forall a b. [a -> b] -> [[a] -> [b]]
09:53:37 <ais523> :t map map
09:53:37 <lambdabot> forall a b. [a -> b] -> [[a] -> [b]]
09:53:38 <elliott> :t map (map (map (map ($map)))) [map]
09:53:39 <lambdabot> Couldn't match expected type `[[[((a -> b1) -> [a] -> [b1])
09:53:39 <lambdabot> -> b]]]'
09:53:39 <lambdabot> against inferred type `(a1 -> b2) -> [a1] -> [b2]'
09:53:43 <Patashu> what
09:53:44 <elliott> :t map (map (map (map ($map)))) [[map]]
09:53:44 <lambdabot> Couldn't match expected type `[[((a -> b1) -> [a] -> [b1]) -> b]]'
09:53:45 <lambdabot> against inferred type `(a1 -> b2) -> [a1] -> [b2]'
09:53:45 <lambdabot> In the expression: map
09:53:46 <elliott> :t map (map (map (map ($map)))) [[[map]]]
09:53:47 <lambdabot> Couldn't match expected type `[((a -> b1) -> [a] -> [b1]) -> b]'
09:53:47 <lambdabot> against inferred type `(a1 -> b2) -> [a1] -> [b2]'
09:53:47 <lambdabot> In the expression: map
09:53:48 <elliott> :t map (map (map (map ($map)))) [[[pmap]]]]
09:53:50 <lambdabot> parse error on input `]'
09:53:51 <elliott> heh
09:53:57 <CakeProphet> ...
09:54:00 <elliott> :t map map [succ,succ]
09:54:00 <lambdabot> forall a. (Enum a) => [[a] -> [a]]
09:54:04 <elliott> > map map [succ,succ]
09:54:05 <lambdabot> Overlapping instances for GHC.Show.Show ([a] -> [a])
09:54:05 <lambdabot> arising from a use ...
09:54:08 <elliott> > length (map map [succ,succ])
09:54:09 <lambdabot> Ambiguous type variable `a' in the constraint:
09:54:09 <lambdabot> `GHC.Enum.Enum a'
09:54:09 <lambdabot> ar...
09:54:18 <elliott> > length (map map [(9+),(9+)])
09:54:18 <lambdabot> 2
09:54:36 <elliott> > head (map map [(9+),(9+)]) [0,0,0,9]
09:54:37 <lambdabot> [9,9,9,18]
09:55:49 <Patashu> > (map map [(9+),(9+)]) [0,0,0,9]
09:55:50 <lambdabot> Couldn't match expected type `t1 -> t'
09:55:50 <lambdabot> against inferred type `[[a] ...
09:56:08 <Patashu> > id (map map [(9+),(9+)]) [0,0,0,9]
09:56:09 <lambdabot> Couldn't match expected type `[t1] -> t'
09:56:10 <lambdabot> against inferred type `[[a...
09:56:15 <Patashu> why do you need head?
09:56:26 <CakeProphet> I lol'd
09:56:28 <Patashu> I guess to make it not evaluate further
09:56:32 <elliott> Patashu: um no
09:56:37 <elliott> :t head
09:56:38 <lambdabot> forall a. [a] -> a
09:56:39 <elliott> :t map map [(9+),(9+)]
09:56:40 <lambdabot> forall a. (Num a) => [[a] -> [a]]
09:56:53 <elliott> i'll let you figure out the rest yourself :P
09:57:03 <Patashu> ma... oh
09:57:04 <Patashu> I get it now
09:57:07 <oerjan> > succ 5
09:57:08 <lambdabot> 6
09:57:10 <Patashu> was looking at the order of operations wrong
09:57:19 <Patashu> head happens before [0,0,0,9] is applied correct?
09:57:34 <CakeProphet> :t map map (map map [(9+),(9+)])
09:57:35 <lambdabot> forall a. (Num a) => [[[a]] -> [[a]]]
09:57:41 -!- aloril has quit (Ping timeout: 246 seconds).
09:58:20 <oerjan> > map map [(9+),(9+)] <$ 1
09:58:20 <lambdabot> No instance for (GHC.Show.Show (f [[a] -> [a]]))
09:58:21 <lambdabot> arising from a use of `...
09:58:44 <oerjan> > map map [(9+),(9+)] <$ [1]
09:58:45 <lambdabot> Overlapping instances for GHC.Show.Show ([a] -> [a])
09:58:45 <lambdabot> arising from a use ...
09:58:51 <elliott> Patashu: there's no "ordering"
09:58:51 <oerjan> :t map map [(9+),(9+)] <$ [1]
09:58:52 <lambdabot> forall a. (Num a) => [[[a] -> [a]]]
09:58:54 <elliott> f x y = (f x) y
09:58:56 <elliott> that's all you need to know
09:58:59 <oerjan> :t (<$)
09:59:00 <lambdabot> forall a (f :: * -> *) b. (Functor f) => a -> f b -> f a
09:59:08 <oerjan> doh
09:59:15 <oerjan> :t (<*)
09:59:16 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f a
09:59:43 <elliott> head (map map [(9+),(9+)]) [0,0,0,9] == (head (map map [(9+),(9+)])) [0,0,0,9] == (head [map (9+), map (9+)]) [0,0,0,9] == (map (9+)) [0,0,0,9] == [9,9,9,eighteen]
09:59:46 <elliott> Patashu: see above
09:59:47 <oerjan> :t map map [(9+),(9+)] `sequence` [1]
09:59:48 <lambdabot> forall a. (Num a) => [[a]]
09:59:54 <oerjan> > map map [(9+),(9+)] `sequence` [1]
09:59:55 <lambdabot> [[10],[10]]
09:59:58 -!- MigoMipo_ has joined.
10:01:07 <CakeProphet> > map map [(9+),abs,(`mod` 10)] `sequence` [1,-1]
10:01:08 <lambdabot> [[10,8],[1,1],[1,9]]
10:01:11 <oerjan> @hoogle f (a -> b) -> a -> f b
10:01:12 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
10:01:12 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
10:01:12 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
10:01:18 <elliott> productive today i see
10:02:24 <CakeProphet> !addinterp map perl for(<>){s/\b.*?\b/map/;print}
10:02:24 <EgoBot> ​Interpreter map installed.
10:02:25 <CakeProphet> !map quite
10:02:26 <EgoBot> ​mapquite
10:02:40 <CakeProphet> !map er what
10:02:40 <EgoBot> ​maper what
10:02:46 <CakeProphet> !delinterp map
10:02:47 <EgoBot> ​Interpreter map deleted.
10:02:50 <Patashu> idgi
10:03:18 <CakeProphet> !addinterp map perl for(<>){s/\b.+?\b/map/g;print}
10:03:18 <EgoBot> ​Interpreter map installed.
10:03:29 <CakeProphet> !map I love chaining together maps in Haskell
10:03:30 <EgoBot> ​mapmapmapmapmapmapmapmapmapmapmapmapmap
10:04:06 -!- MigoMipo has quit (Ping timeout: 276 seconds).
10:04:13 <CakeProphet> and this wonderful addition to egobot
10:04:18 <CakeProphet> I think I'm going to go to sleep.
10:04:37 <CakeProphet> s/and this #FFFFFFFFF/and with this/x
10:05:00 <elliott> doesnt work
10:05:03 <elliott> the spaces get stripped out
10:05:07 <elliott> even if they didn't you'd have removed the space
10:05:08 <elliott> TERRIBLE PERSON
10:08:24 -!- FireFly has joined.
10:08:37 -!- tarpad has joined.
10:09:45 <elliott> tarpad: daprat
10:11:09 -!- aloril has joined.
10:14:38 -!- tarpad has left.
10:16:59 <elliott> rip dapper rat
10:17:27 * Sgeo fails at technical communication
10:18:07 <Sgeo> https://lists.secondlife.com/pipermail/secondlifescripters/2011-June/006227.html this confusion should not have occured.
10:20:24 <olsner> yes, everything is gibberish until the example function at the end
10:21:35 <Sgeo> :/
10:22:19 -!- oerjan has quit (Quit: Reboot).
10:22:37 <Patashu> that function calls for a hashmap
10:23:09 <elliott> Patashu: that would require first-class functions
10:23:13 <elliott> Sgeo: does lsl have eval
10:23:17 <Sgeo> elliott, nope!
10:23:22 <elliott> Sgeo: what does it have
10:23:38 <elliott> oh, quaternions
10:23:39 <elliott> nice
10:24:31 <elliott> Sgeo: is there any way to call a function in any way other than function_name(...)
10:24:39 <Sgeo> elliott, nope
10:24:45 <elliott> could you make an in-game object edit its own script while it runs?
10:24:51 <elliott> to do self-modifying code
10:24:56 <Patashu> there's no arrays of function pointers?
10:25:07 <Sgeo> Nope, although I can get it to retrieve another compiled script and run that instead
10:25:25 <Sgeo> There is something I can do, but it's crappy: Put each native function in a separate script, and send a message to all scripts
10:25:32 <elliott> Sgeo: can you create a compiled script programmatically
10:25:44 <Sgeo> Not within LSL, although a bot could do it
10:26:06 <elliott> then you can dynamically construct a compiled script for every native function that ends up getting called
10:26:07 <elliott> and call that
10:26:13 <elliott> massive overhead the first time though i would assume :)
10:27:14 <Sgeo> elliott, involving bots would kind of be a bad idea. Statically constructing the scripts would be possible. But I don't think having a lot of scripts and constantly sending messages to them is a pleasant idea
10:27:43 <elliott> Sgeo: why not restructure the language instea
10:27:44 <elliott> d
10:27:50 <elliott> instead of native_call(string, ...)
10:27:56 <elliott> have some kind of "inline lsl assembly" thing
10:28:00 <elliott> and some predeclaration macro
10:28:01 <elliott> so that
10:28:04 <elliott> native llWhatever(...)
10:28:06 <elliott> expands to
10:28:08 <elliott> function blah() {
10:28:15 <elliott> lsl { llWhatever(...) }
10:28:15 <elliott> }
10:28:17 <elliott> or whatever
10:28:18 <elliott> that wraps it
10:28:19 <elliott> i dunno
10:28:33 <Sgeo> elliott, that's for syntax of the language
10:28:44 <Sgeo> Not for how the VM would run. Unless I'm misunderstanding
10:28:53 <elliott> Sgeo: it means you don't have to handle a generic native call
10:29:23 <Sgeo> If I'm understanding correctly, that would be abandoning the "pseudobytecode with surrounding VM" idea
10:29:32 <elliott> sure
10:29:37 <elliott> sounds like a terrible idea for a language this limited anyway
10:29:46 <elliott> just straight compile it
10:30:01 <Sgeo> The size of the LSL code is a premium...
10:30:32 <elliott> well
10:30:36 <elliott> the bytecode still counts as code right
10:30:44 <elliott> I mean you could still do most things with one-letter function calls
10:31:06 -!- cheater_ has quit (Ping timeout: 246 seconds).
10:31:36 <Sgeo> In theory, with the VM though, some of the bytecode could be put outside the script and onto a notecard. Although I don't know if that idea's that great.
10:32:51 <Sgeo> Also: How do I go about calling _non_native functions without O(n) complexity for amount of existing non-native functions?
10:33:25 <Patashu> By making the language better
10:33:37 <ais523> elliott: I just realised something beautiful that was possible with sg
10:33:38 <Sgeo> Um, assuming that I'm trampolining and CPSing
10:33:51 <ais523> all that's needed to send a commit to someone is that the commit is somewhere in the world at large, and to send them the hash
10:34:17 <elliott> ais523: haha
10:34:20 <ais523> and then you could go off and look for a commit with that hash through a search engine or something
10:34:29 <elliott> ais523: doesn't that apply to every VCS?
10:34:33 <elliott> well, every DVCS
10:34:35 <ais523> only the ones with unique hashes
10:34:49 <elliott> ais523: every DVCS has unique hashes up to collisions, pretty much
10:34:50 <ais523> and where the hash itself is enough to pull into a repo
10:34:57 <ais523> well, do they all use hashes?
10:34:59 <ais523> I suppose so
10:35:33 <elliott> git does, darcs does IIRC
10:35:36 <elliott> hg does
10:37:12 <ais523> darcs does have hashes involved, but they're hidden from the user unless you know how to ask for them
10:38:49 <elliott> hey pikhq
10:38:53 <elliott> rage material for you http://www.diaryofaninja.com/blog/2011/03/27/continuous-integration-ndash-itrsquos-all-about-your-build-projects-ecosystem
10:38:57 <elliott> wrt libraries in source trees
10:39:02 <Sgeo> elliott, am I mistaken in thinking that CPS will result in a lot of functions?
10:40:41 <elliott> Sgeo: that's pretty much the definition of cps
10:40:54 <elliott> also, call/cc is not useful at all in your situation afaik, so i don't know why on earth you want it
10:40:55 <olsner> elliott: though it does point out somewhere that it might not be appropriate for *every* project, so it's not quite as crazy as it looks (only very close)
10:41:01 <elliott> especially as you don't actually have first-class functions
10:41:18 <Sgeo> elliott, there's a lot of event stuff in LSL
10:41:49 <Sgeo> Hold on
10:42:49 -!- oerjan has joined.
10:42:54 <Sgeo> http://lslwiki.net/lslwiki/wakka.php?wakka=llGetNotecardLine see this example? I want to make it not quite so painful, just a call to ccGetNotecardLine() which uses continuations to deal with a nice function evtDataserver that accepts a pretty callback
10:42:59 <Sgeo> Instead of this present BS
10:43:09 -!- cheater_ has joined.
10:43:41 <Sgeo> Maybe continuations are overkill for doing this
10:45:33 <Sgeo> And incidentally, the point of making a new language is to give the new language features like first-class functions and continuations, so I don't know where you're getting "no first-class functions" from, that's the host language.
10:47:41 <ais523> elliott: "itrsquos"?
10:47:50 <ais523> smart quotes are one thing, smart quotes in URLs are another
10:48:04 <ais523> or am I meant to rage at the page accessed via the URL, rather than the URL itself?
10:48:07 <elliott> ais523: don't ask me, microsoft brain damage is obviously in effect on that site
10:48:11 <elliott> and yes, yes you are
10:48:23 <elliott> if you respond affirming that you don't plan to open the link, ... well please just preemptively don't respond
10:48:47 <Sgeo> I want to know what's wrong with the link's content *ducks*
10:49:02 -!- BeholdMyGlory has joined.
10:49:25 <elliott> Sgeo: re where did you get it from, well the overhead on function representation in sodfjsioghodghg will probably be large but yeah whatever doigjfdjgidgjfodjgi
10:50:10 <Sgeo> Maybe there's a simpler way to get what I want
10:50:22 <Sgeo> Just break the code into two at, say, ccGetNotecardLine
10:50:42 <Sgeo> No CPS needed. But this requires much more thought
10:51:26 -!- MigoMipo_ has quit (Quit: Lämnar).
10:51:30 <Sgeo> This also assumes that I know what's best
10:52:11 <olsner> ais523: what's itrsquos?
10:52:16 <ais523> olsner: it's
10:52:22 <ais523> with the ' replaced with &rsquo;
10:52:25 <ais523> and then the punctuation removed
10:53:14 <elliott> im gonna say itrsquos instead of it's in future now
10:53:16 <elliott> itrsquos the future
10:53:25 <olsner> but "it's" written with an apostrophe, not with accents or quotes :/
10:53:41 <ais523> elliott: anyway, about the actual content of the article, what it's suggesting is a bad idea if libraries don't lose features or break when upgraded, and a good idea otherwise
10:54:12 <ais523> I tend to trust libraries not to do that (except in the case of certain CPAN modules...), but in industry, especially with proprietary libraries, I'd be less likely to
10:54:49 <ais523> likewise, build tools that aren't libraries, it's much the same argument
10:56:55 <ais523> meanwhile, the article accessed via the current top link on proggit (http://mjg59.dreamwidth.org/3561.html about rebooting PCs) is actually quite interesting
10:57:20 <elliott> already linked :)
10:57:30 <elliott> ("accessed via" -- seriously?)
10:58:21 <ais523> elliott: would "at" be enough for you?
10:58:34 <elliott> I'd say "at the top of proggit" at most
10:58:44 <elliott> Nobody's going to think the article is literally embedded there :)
10:58:46 -!- elliott has left ("Leaving").
10:58:51 -!- elliott has joined.
10:58:52 <elliott> oops
10:59:11 <Patashu> gasp
10:59:13 <Patashu> elliott left
10:59:18 <elliott> yeah\
10:59:21 <elliott> that never happens
10:59:32 * Sgeo wonders what yeahthat means
10:59:57 <ais523> do leading spaces show up in most IRC clients?
11:00:01 <ais523> apparently they do in mine
11:00:02 <elliott> ais523: yes
11:00:09 <Sgeo> yeses
11:00:10 <elliott> not oklopol's prolly :D
11:00:22 <elliott> it folds adjacent spaces after all
11:00:32 <Patashu> test
11:00:35 <Patashu> does it for mine
11:00:39 <Sgeo> yes
11:00:49 <Sgeo> $ yes yes
11:01:08 <ais523> so if I use multiple spaces between words?
11:01:14 <ais523> that shows up literally on mine too
11:01:18 <ais523> which doesn't surprise me at all
11:01:25 <Patashu> it's useful for ascii art
11:01:40 <elliott> `yes yes
11:01:41 <HackEgo> ​yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes \ yes
11:01:45 <Patashu> lol
11:01:48 <elliott> `yes \
11:01:49 <HackEgo> ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
11:01:51 <elliott> `yes \
11:01:52 <HackEgo> ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
11:01:55 <elliott> `yes \
11:01:56 <HackEgo> ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
11:02:00 <Patashu> `yes \
11:02:02 <HackEgo> ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
11:02:08 <elliott> `run yes ' \'
11:02:09 <HackEgo> ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
11:02:13 <elliott> pretty
11:02:23 <Patashu> it looks like rain
11:02:45 * Sgeo adjusts a bit
11:02:46 <Patashu> `run yes '\ \ \ \'
11:02:47 <HackEgo> ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
11:02:49 <ais523> `yes | fmt -80
11:02:51 <HackEgo> ​| fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ | fmt -80 \ |
11:02:53 <Patashu> lol
11:02:56 <Patashu> `run yes '\ \ \'
11:02:58 <HackEgo> ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
11:02:59 <ais523> err, that was weird parsing
11:03:03 <ais523> `run yes | fmt -80
11:03:04 <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 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
11:03:13 <Patashu> `run yes '\ \ '
11:03:15 <HackEgo> ​\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
11:03:16 <Sgeo> So many lights!
11:03:18 <Patashu> that looks good
11:03:44 <elliott> `run yes ' \ \\ \ \ ' | yes '\ \\'
11:03:45 <HackEgo> ​\ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\
11:03:48 <ais523> `run printf '\x1b#8'
11:03:50 <HackEgo> ​.#8
11:03:51 <elliott> `run yes '\ \\'
11:03:53 <HackEgo> ​\ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\ \ \ \\
11:03:54 <ais523> boring
11:03:58 <ais523> try that one in an actual terminal sometime
11:04:01 <elliott> `run yes ' \ \\ \ \ '
11:04:02 <HackEgo> ​\ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\ \ \ \ \ \\
11:04:03 <Patashu> why is there an infinite loop in posix anyway
11:04:04 <ais523> gnome-terminal will do
11:04:11 <elliott> Patashu: ?
11:04:13 <Patashu> yes
11:04:14 <ais523> Patashu: because it wouldn't be TC otherwise?
11:04:15 <elliott> ais523: how did you even
11:04:18 <Patashu> lol
11:04:21 <elliott> EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
11:04:29 <Sgeo> What, is it bell?
11:04:33 <elliott> no its
11:04:33 <ais523> no
11:04:34 <elliott> E
11:04:44 <Sgeo> ?
11:04:50 <ais523> I just happened to know that there was a VT100 escape code for filling the screen with copies of the letter E
11:05:05 <elliott> nice
11:05:18 <Patashu> there..
11:05:19 <Patashu> is?
11:05:36 <Sgeo> Will it work with putty?
11:05:41 <ais523> it's apparently intended to allow you to make sure the terminal's centred on the screen
11:05:44 <ais523> and it wouldn't surprise me if it did
11:05:57 <ais523> even though in graphical terminals, it serves pretty much no purpose whatsoever
11:06:05 <Sgeo> Worked
11:06:09 <ais523> just in case someone thinks up a use for it, I usppose
11:06:13 <ais523> *suppose
11:06:16 <Sgeo> With the prompt in the middle of those Es, but a bit below
11:06:23 <ais523> it doesn't move the cursor
11:06:27 <Patashu> it works on putty? I gotta try this
11:06:30 <ais523> so the prompt just turns up where it would have turned up anyyway
11:06:32 <ais523> *anyway
11:06:56 <Sgeo> backspace does nothing, space and backspace clears the line of E
11:07:08 <elliott> im so glad Sgeo is here to do science on the es
11:07:14 <Patashu> hmmm darn
11:07:16 <Patashu> doesn't do anything for me
11:07:43 <Patashu> OH
11:07:44 <Patashu> got it to work
11:07:45 <ais523> now I'm wondering if it works on jettyplay
11:07:45 <Patashu> LOL
11:07:48 <Patashu> that's hilarious
11:07:59 <ais523> I don't remember implementing it, but one of the libraries I use might do it
11:08:10 <elliott> you must implement it
11:08:11 <elliott> its vital
11:08:17 <elliott> omg
11:08:21 <elliott> i could use it in vagrant
11:08:26 <elliott> if E was like floor
11:08:28 <elliott> except that
11:08:34 <elliott> the screen is already spaces by default...
11:08:38 <elliott> maybe i could use it as a win screen :D
11:09:05 <ais523> oh wow, it does work in jettyplay as well
11:09:08 <ais523> that is so beautifully pointless
11:09:11 <Patashu> \o/
11:09:13 <myndzi> |
11:09:14 <myndzi> |\
11:09:37 <ais523> hmm, it might be fun to put that code in a fruitname in NetHack
11:09:43 <elliott> hahaha
11:09:47 -!- aloril has quit (Ping timeout: 246 seconds).
11:09:48 <Patashu> LOL
11:18:43 <oerjan> the big applEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEe
11:19:47 <Patashu> would that actually work though?
11:21:05 <ais523> yes in vanilla, due to a bug
11:21:11 <ais523> I'm not sure if it's fixed on NAO
11:21:20 <Patashu> interesting
11:21:28 <elliott> that sounds totally worth doing
11:21:34 <elliott> [asterisk]no spae
11:22:09 <Sgeo> Maybe we should all take a different character to mean a correction from elliott
11:22:18 -!- aloril has joined.
11:22:56 <elliott> no i like [asterisk]
11:24:41 <ais523> elliott: have you decided to stick with your current keyboard, then, rather than get one with working numbers?
11:24:53 <ais523> or are the keyboard replacement people just being slow?
11:24:58 <elliott> ais523: well no i plan to get it fixed but it means sending in the entire laptop
11:25:12 <elliott> which means making a full backup and wiping it to something that... doesn't boot into an unsupported OS by default
11:25:19 <elliott> which means i'm a bit... lazy...
11:26:03 <Sgeo> Would they really not fix it or ask for money if it boots into a different OS? It's a hardware issue, isn't it?
11:26:13 <elliott> i dunno what the warranty has to say about that
11:26:25 <elliott> and they might try and see if the number keys work first, maybe?
11:26:32 <elliott> which they couldn't do on ubuntu because lol policy
11:26:42 <elliott> oh, "a stitch in time saves nine" is not actually referring to... a stitch in time
11:26:42 <elliott> like
11:26:45 <elliott> time getting stitched
11:26:51 <elliott> i always thought that was like... weirdly time-warpy
11:26:55 <Patashu> you are not actually a surgeon
11:27:01 <elliott> for an aphorismsims
11:27:03 <elliott> Patashu: what
11:27:13 <Patashu> oh wait I'm exlcuding the wrong part of the saying
11:27:24 <ais523> elliott: hey, that statement would have been perfectly sane from zzo38
11:27:36 <ais523> the only issue with it is the non sequiturism
11:27:42 <elliott> ais523: no it wouldn't, nothing zzo says is sane
11:27:56 <elliott> it would be /expected/, insofar as you can expect inane non-sequiturs at every turn
11:27:59 <elliott> but it wouldn't be /sane/
11:28:12 <augur> hey elliott
11:28:22 <ais523> well, you can expect a non-sequitur even if you don't know what precisely it'll be, given the general nature of non sequiturs
11:28:23 <oerjan> a stitch in time flies like an arrow
11:28:23 <augur> you know anything about program derivation?
11:28:39 <elliott> its when you antiintegrate a program
11:28:40 <elliott> yw
11:28:48 <ais523> hmm, Vorpal isn't here, I wanted to tell him about the new bridge that was being built here
11:28:54 <augur> elliott: :P
11:28:58 <augur> ill take that as a no
11:29:01 <ais523> because it was apparently cheaper to build a new bridge than figure out who owned the old one
11:29:12 <ais523> even though the bridges are right next to each other and cross the same canal/railway combination
11:29:14 <elliott> ais523: why do you want to tell ol' vorpy that
11:29:22 <ais523> because I think it would amuse him
11:29:36 <elliott> there are easier ways
11:29:52 <ais523> it surprises me a bit that building a bridge is cheaper nowadays than figuring out ownership of an existing bridge
11:30:01 <ais523> all they actually wanted to do was run a network cable along it...
11:30:08 -!- aloril has quit (Ping timeout: 260 seconds).
11:30:32 -!- ralc has joined.
11:31:02 <oerjan> i assume the ownership was at least _somewhat_ disputed...
11:32:15 <ais523> not quite, it's more that the bridge was built so long ago that nobody can remember
11:32:19 <ais523> and there are several plausible options
11:34:17 * oerjan is reminded of http://www.jnto.go.jp/eng/indepth/history/traditionalevents/a05_fes_yamayaki.html
11:35:47 <elliott> summary: "we burn this mountain every year because it happened before"
11:36:03 -!- Ycros has quit (Ping timeout: 248 seconds).
11:36:09 <oerjan> it was more the disputed ownership part
11:36:21 <elliott> shaddap :D
11:37:43 -!- Ycros has joined.
11:38:04 <elliott> 18:10:30: <oerjan> actually i think i learned haskell _after_ unlambda. i don't quite remember.
11:38:04 <elliott> oh, suddenly everything makes sense
11:40:07 <oerjan> especially the "how did you have _no_ problem with monads?" part
11:40:26 <elliott> well i didn't either...
11:40:58 <elliott> but then, my learning of haskell consisted of slogging through yaht, giving up out of sheer boredom, ignoring haskell for several months, then popping in the irc channel regularly just because it was a nice interesting place
11:41:08 <elliott> then i took a glance at RWH and LYAH, and suddenly I knew Haskell
11:41:26 <oerjan> wait LYAH existed back then?
11:41:50 <elliott> oerjan: my serious use of haskell started roughly when lyah started being a thing
11:41:54 <elliott> which was like a few years ago?
11:41:57 <oerjan> hm
11:42:03 <elliott> when I read YAHT it didn't exist
11:42:04 <elliott> neither did RWH
11:42:11 <ais523> I didn't have much trouble picking up monads
11:42:19 <ais523> it was a case of starting with simple uses and working up
11:42:28 <ais523> (and I learnt from YAHT, I think)
11:42:42 <elliott> YAHT is really quite a bad tutorial...
11:42:50 <elliott> ...better than Gentle Introduction :)
11:43:09 <elliott> back then there were only those, and Haskell for C Programmers
11:43:10 <ais523> the world needs a good INTERCAL tutorial
11:43:25 <elliott> or what was it called
11:43:41 -!- aloril has joined.
11:45:00 <elliott> 01:25:32: <Sgeo> The canonical BF CAT program suffers from it
11:45:01 <elliott> 01:26:05: <Sgeo> +[>,.<]
11:45:01 <elliott> 01:26:48: <Sgeo> Slereah-, that stops on NUL
11:45:03 <elliott> argh
11:45:07 <elliott> 01:26:39: <Slereah-> +[,.]
11:45:09 <elliott> before the last line there
11:45:11 * elliott facepalm
11:46:01 <Sgeo> Are you facepalming at me?
11:46:19 <elliott> possible
11:46:37 <elliott> Haskell 98 was conceived as a relatively minor tidy-up of Haskell 1.4,
11:46:38 <elliott> making some simplifications, and removing some pitfalls for the unwary
11:46:40 <elliott> oerjan: sing it with me
11:46:41 <elliott> booooooooooooooooooooooooooo
11:46:50 <oerjan> having only 256 possible results from a , _does_ lead to the impossibility of implementing cat correctly
11:47:18 <elliott> yes but sgeo's is obviously worse because it doesn't stop on /EOF/ :D
11:47:19 <oerjan> no matter what convention you use for EOF within that
11:48:05 <oerjan> a 16-bit bf with -1 or no change convention could work, though
11:48:43 <oerjan> +[,.+]
11:49:29 <elliott> what about a 9-bit bf with an eof=99 conveiont
11:49:33 <oerjan> er wait
11:49:37 <elliott> whWHat WNOW
11:49:40 <oerjan> NOT SO GOOD
11:50:06 <elliott> what ascii is 99s anyway
11:50:09 <olsner> hmm, "nice", on to finding a register assignment that keeps ebx intact from boot to a couple of hundred lines later when I'm ready to start using the data it points to
11:50:12 <oerjan> > chr 99
11:50:13 <lambdabot> 'c'
11:50:52 -!- azaq23 has quit (Quit: Leaving.).
11:51:13 <elliott> olsner: you are still working on that os? :D
11:51:16 -!- azaq23 has joined.
11:51:26 <elliott> like, bootloader stages
11:51:43 <oerjan> -,+[-.[-]-,+]
11:51:51 <elliott> oerjan: a thing of beauty surely
11:51:53 <olsner> elliott: yes, rewriting it to boot from multiboot and build to an elf image
11:52:02 <elliott> olsner: but multiboot is shit?
11:52:06 <olsner> probably yes
11:52:08 <elliott> as is elf? so boring?
11:52:19 <oerjan> elliott: that works with either -1 or no change, i hope
11:52:39 <oerjan> with a bit redundancy for the former
11:52:44 <elliott> ,[-.,]
11:52:46 <elliott> guess the convention
11:52:57 -!- MigoMipo has joined.
11:53:02 <oerjan> EOF 0, others shifted
11:53:08 <olsner> elliott: well, I figured that writing *everything* in assembler was starting to become boring, so I might want to make it possible to write some things in C and link it together using somewhat standard tools
11:53:51 <elliott> olsner: so basically...... you figured out the only way you could make it a more boring snooze of an endeavour...
11:54:01 <elliott> oerjan: yes you get pounds of money
11:59:50 <ais523> elliott: EOF 0, others shifted is what I use for new languages I design nowadays
11:59:52 <ais523> except I shift on output too
12:00:02 <ais523> I sometimes call it "incremented ASCII"
12:01:08 <elliott> it's kind of ugly
12:01:26 <oerjan> ASCII with null pointer
12:01:38 <Patashu> why not set an instruction to jump to when you reach EOF? or something like that
12:01:46 <ais523> I blame ASCII/Unicode for not putting EOF at 0 in the first place
12:01:48 <Patashu> 'on eof blah blah blah'
12:02:01 <ais523> Patashu: because that assumes you have something remotely resembling standard flow control
12:02:04 <oerjan> ais523: um that would _still_ not help with binary format
12:02:06 <ais523> in many esolangs you don't
12:02:24 <ais523> oerjan: it's not like esolangs handle binaries well anyway
12:03:02 <oerjan> unlambda _does_ have an instruction to jump to when you reach EOF. if you look at it the right insane way
12:03:16 <ais523> oerjan: c
12:03:27 <ais523> do you have to use it twice to manage that? or can it all be done with one use of c?
12:03:41 <ais523> (I seem to remember that Unlambda's I/O conventions are deliberately designed to be awkward to use)
12:03:55 <oerjan> i believe you can actually do unlambda IO programming without c entirely, but i haven't put my idea into practice
12:04:08 <Slereah_> That is why you should use Lazy Bird
12:04:14 <oerjan> it will leak memory though
12:04:14 <Slereah_> Which is TOTALLY AWESOME
12:04:20 <ais523> oerjan: seriously?
12:04:46 <ais523> a v kills your program if you ever try to determine its value, so you'd have to, umm, duplicate the entire rest of the program
12:05:03 <oerjan> ais523: yes. the c is normally only for escaping from a v you apply. but if you use CPS _explicitly_ you don't _have_ to return. and you can still use e to end the program.
12:05:32 <ais523> how do you get the v to obey CPS, though?
12:06:17 <olsner> elliott: I don't think so, more like moving on to making other things fun while finding boring but convenient solutions to some other parts
12:06:17 <oerjan> you don't. it's just that if you do ``vA B or ``iA B where A and B are your branches but A _never_ returns, then you can make it work
12:06:17 <Patashu> what does v do? consume your program?
12:06:44 <ais523> Patashu: it ignores its argument and returns v
12:07:02 <ais523> it's pretty much dynamite for any pure-functional language (in the Unlambda sense), as it's very hard to recover from an errant v
12:07:05 <oerjan> ok B cannot return either
12:07:19 <Patashu> yeah, it blows your program up
12:07:25 <elliott> olsner: you're a fuselage.
12:07:37 <olsner> elliott: what do you mean?
12:07:48 <ais523> oerjan: do you mean ``v`dAB?
12:07:53 <Slereah_> PATACHU
12:07:54 <ais523> otherwise I don't see how it can work
12:07:55 <Slereah_> IS THAT YOU
12:08:07 <Patashu> no, it's an s
12:08:10 <elliott> heh, v is like an unlambda virus
12:08:19 <ais523> as ``vAB = `vB = v
12:08:26 <ais523> and either evaluates both of A and B, or neither
12:08:28 <Slereah_> I know a Patachu
12:08:32 <ais523> I can't quite remember how unlambda evaluation order works
12:08:56 <elliott> ais523: strict by default
12:09:02 <elliott> but if A and B don't return
12:09:04 <elliott> then the result is irrelevant
12:09:08 <elliott> only the evaluation matters
12:09:15 <ais523> yep, that's why I added the `d
12:09:27 <ais523> otherwise, if A doesn't return, `vA will do the same thing as A
12:09:27 <oerjan> <ais523> do you have to use it twice to manage that? or can it all be done with one use of c? <-- just one, i think, your branches can share their continuation
12:10:21 -!- FireFly has quit (Ping timeout: 240 seconds).
12:10:37 <ais523> boo, unlambda(1) is no longer in the Ubuntu repos
12:11:00 * ais523 uses locally compiled version
12:11:09 <oerjan> <ais523> oerjan: do you mean ``v`dAB? <-- um i'm not being precise here
12:13:37 <oerjan> ```v`d`kAiB is one way, i think
12:13:38 <ais523> hmm, I've been testing
12:13:39 <HackEgo> No output.
12:13:47 <ais523> and am trying to figure out why ``i`d``.tei``.fei is an infinite loop
12:13:55 <ais523> that makes no sense at all
12:13:58 <oerjan> it is?
12:14:09 <ais523> apparently
12:14:11 <oerjan> not with c?
12:14:13 -!- FireFly has joined.
12:14:20 <ais523> yep, I just copy-pasted from my terminal
12:14:25 <ais523> it prints infinite copies of t
12:14:26 <oerjan> !unlambda ``i`d``.tei``.fei
12:14:26 <EgoBot> ​f
12:14:32 <ais523> perhaps this is a buggy interp
12:14:35 <ais523> that wouldn't surprise me
12:14:39 <oerjan> probably
12:14:49 <ais523> I get ftttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt...
12:15:05 <oerjan> i recall that superfast C interpreter didn't do d right
12:15:18 <ais523> !unlambda ```i`d``.teii``.fei
12:15:19 <EgoBot> ​t
12:15:23 <ais523> !unlambda ```v`d``.teii``.fei
12:15:24 <EgoBot> ​f
12:15:24 <oerjan> (mandelson's iirc?)
12:15:26 <ais523> there we go
12:15:41 <ais523> $ ./unlambda --version
12:15:42 <ais523> Can't open input file: No such file or directory
12:15:47 <ais523> looks like it's Can't's
12:15:54 <oerjan> essentially e acts as a top continuation for your CPS use
12:16:04 <ais523> more seriously, though, /* Copyright (C) 1999 by David A. Madore <david.madore@ens.fr> */
12:16:08 <elliott> maybe i'll write an unlambda interpreter
12:16:10 <oerjan> ah.
12:16:17 <oerjan> ais523: what's it written in?
12:16:21 <ais523> C
12:16:26 <elliott> although, what was the subtlety of d again?
12:16:38 <ais523> it follows different evaluation rules from everything else
12:16:47 <oerjan> it doesn't evaluate its argument
12:16:55 <oerjan> until that is again applied
12:17:06 <ais523> if you do `XY, the correct way to process that is to evaluate X, then if X isn't d, evaluate Y, then apply X to Y
12:17:20 <elliott> right, I mean
12:17:25 <ais523> if X is d, though, you just return `dY, and don't evaluate that until it ends up as the first argument to something
12:17:25 <elliott> how on earth could you implement it wrongly? :)
12:17:41 <oerjan> by not understanding it?
12:17:51 <elliott> fair enough I suppose
12:18:00 <ais523> I imagine it's quite easy to screw up
12:18:04 <elliott> is unlambda ul or unl? latter, right?
12:18:06 <elliott> file extensions and the like
12:18:10 <oerjan> !unlambda is also a C interpreter though iirc
12:18:12 <ais523> unl
12:18:29 <ais523> anyway, what confuses me is that, with the impossibility of comparing functions, how do you know if the first argument is d or not
12:18:47 <elliott> ais523: by representing it symbolically and forcing it
12:18:48 <elliott> !unlambda ``d.xi
12:18:48 <EgoBot> ​x
12:19:00 <oerjan> yeah
12:19:01 <elliott> ais523: it is impossible to construct a function with identical semantics to d that is not syntactically d in unlambda
12:19:04 <elliott> that is, in normal form
12:19:12 <elliott> !unlambda ``i`d.xi
12:19:12 <EgoBot> ​x
12:19:17 <elliott> !unlambda `i`d.x
12:19:26 <elliott> !unlambda ``i`d.xi
12:19:26 <EgoBot> ​x
12:19:30 <ais523> what about ``s`kdi?
12:19:41 <ais523> or does that not have identical semantics to d?
12:19:46 <elliott> ask oerjan ;D
12:19:48 <ais523> well, I know it doesn't
12:19:53 <elliott> well then
12:19:54 <ais523> but mathematically it "ought" to
12:19:59 <ais523> assuming I've calculated it correctly
12:20:07 <elliott> there's no ought
12:20:10 <elliott> there's only the reduction rules
12:20:13 <ais523> putting any other function /but/ d there, it would work identically
12:20:22 <elliott> d isn't a function
12:20:25 <elliott> it isn't applied like functions
12:20:28 <elliott> it's a special token/form
12:20:35 <elliott> implemented in the reduction rules for `
12:21:01 <elliott> !unlambda `i`d`.xi
12:21:01 <oerjan> ais523: ``s`kdi is not d, no
12:21:08 <elliott> !unlambda ``id`.xi
12:21:13 <ais523> hmm, is ((a b) c) legal in Lisp?
12:21:14 <oerjan> no eta reduction
12:21:26 <oerjan> not common lisp, i think
12:21:30 <elliott> hmm, you basically have to thunk everything in an unlambda compiler, right?
12:21:34 <elliott> unless you did fancy strictness analysis, ofc
12:21:47 <ais523> oerjan: I'm not sure if you can call it eta reduction if it's based on combinators rather than lambdas, but it's the same principle
12:22:20 <Sgeo> What's the proper name for the code part without the scope of a closure?
12:22:25 <ais523> hmm, Wikipedia says *eta-conversion
12:22:28 <elliott> oerjan: does unlambda have, erm, "tail-recursion"?
12:22:33 <oerjan> ais523: i believe it is possible to write a function in unlambda which detects whether its argument is d without applying it :)
12:22:34 <elliott> hmm
12:22:37 <elliott> that's a really stupid question
12:22:53 <elliott> Sgeo: code
12:22:53 <oerjan> elliott: well any decent interpreter should
12:23:21 <ais523> elliott: it is possible to write an Unlambda interp that runs out of stack space on ```sii``sii using a plausible algorithm
12:23:30 <ais523> so it's not inherently tail-recursive in that sense
12:23:47 <ais523> but decent interps should definitely try to optimise tail-recursion
12:24:30 <elliott> hmm
12:24:34 <elliott> / ```i`d.xii
12:24:34 <oerjan> i have had some thoughts on optimizing things like `eX (by throwing away the original continuation _before_ evaluating X), which would make that c-less style not leak memory, i think
12:24:34 <elliott> unl thka(unl x) { return (*prim_output_x(prim_i))(x); }
12:24:34 <elliott> unl thkb(unl x) { return (*prim_d(thka))(x); }
12:24:34 <elliott> unl thkc(unl x) { return (*prim_i(thkb))(x); }
12:24:34 <elliott> unl thkd(unl x) { return (*thkc(prim_i))(x); }
12:24:38 <elliott> unfortunately this fails at the top level
12:24:42 <elliott> because you don't want to apply the final result of a program
12:24:45 <elliott> (consider the program .x)
12:24:59 <elliott> OTOH, I could have a special dummy value, which all the primitives just recognise and return immediately on, to call the whole program with :)
12:25:00 <ais523> the final result can just be discarded
12:25:06 <elliott> here unl is just a function from unl -> unl
12:25:09 <elliott> ais523: yep, but I mean
12:25:13 <elliott> if the whole program is a thunk like this
12:25:27 <elliott> then you have to apply the final result to make anything happen
12:25:31 <Sgeo> GODDAMN IT REDDIT STOP EQUATING "DEEP WEB" WITH TOR HIDDEN SERVICES
12:25:31 <ais523> ah, are you writing a compiler rather than an interp?
12:25:35 <elliott> oh wait hmm
12:25:38 <elliott> ais523: yes, just had a breakthrough sort of
12:25:55 <Sgeo> </randomly-ticked-off>
12:26:02 <elliott> hmm wait no, ga
12:26:03 <elliott> h
12:27:28 <Patashu> deep web just means you have your robots.txt set to prevent search engine indexing, right?
12:28:25 <oerjan> elliott: in unlambda, evaluation and application are separate operations, and you need both.
12:28:40 <elliott> oerjan: but that destroys my beautiful nice fast evaluation model :(
12:28:55 <elliott> i think it actually doubles the number of required jumps
12:28:57 <Sgeo> Or you use AJAX in a really braindead way. Or I guess Tor Hidden Services are technically a part, but people are talking as though "deep web" is something scary and mysterious
12:29:10 <elliott> oerjan: it even made the whole thunk thing transparent :(
12:29:16 <Sgeo> When they mean to refer to Tor hidden services
12:39:39 <elliott> oerjan: basically i was trying to unify thunks and functions...
12:39:54 <elliott> oerjan: by just making thunks pretend they're the function they evaluate to, by forcing themselves and then passing that argument on
12:42:10 <Sgeo> About to take a Tylenol
12:43:05 <Sgeo> Done
12:43:19 <ais523> Sgeo: you know you can just /msg yourself?
12:43:27 <ais523> or does your client not have local logs?
12:43:34 <Sgeo> It has local logs
12:43:48 <Sgeo> Hmm, am I actually bothering people here
12:43:49 <Sgeo> ?
12:44:36 <Sgeo> I guess I just felt more comfortable with the log on the web, but it's really unnecessary, sorry
12:44:37 <elliott> only in the cosmic microwave background radiation sense.
12:44:58 <ais523> Sgeo: it's not really bothersome, it just looks weird
12:45:09 <ais523> I suppose I'm hoping for you to make less of a fool of yourself in public
12:45:21 <Phantom_Hoover> elliott, which CMBR sense?
12:45:34 <elliott> Phantom_Hoover: its always there and vaguely annoying
12:45:45 <elliott> although mostly in a cringe-on-behalf way
12:45:50 <elliott> sorry what do you mean cmbr isnt like that it totally is
12:46:00 <Phantom_Hoover> Yeah, it's the worst.
12:46:07 <oerjan> !addinterp utest unlambda ```sii````@i|i<c>
12:46:07 <EgoBot> ​Interpreter utest installed.
12:46:12 <oerjan> !utest lessee...
12:46:13 <EgoBot> ​./interps/unlambda/unlambda.bin: file /tmp/input.2987: parse error
12:46:20 <oerjan> oops duh
12:46:35 <oerjan> !delinterp utest
12:46:35 <EgoBot> ​Interpreter utest deleted.
12:46:41 <oerjan> !addinterp utest unlambda ```sii````@i|i`ci
12:46:41 <ais523> why is that c in angle brackets?
12:46:42 <EgoBot> ​Interpreter utest installed.
12:46:53 <oerjan> because i copied the wrong line :D
12:46:57 <oerjan> !utest lessee...
12:47:06 <oerjan> well that didn't work
12:48:00 <oerjan> !delinterp utest
12:48:00 <EgoBot> ​Interpreter utest deleted.
12:48:58 <oerjan> !addinterp utest unlambda ```sii``d``@i|`ci
12:48:58 <EgoBot> ​Interpreter utest installed.
12:49:01 <oerjan> !utest lessee...
12:49:01 <EgoBot> ​le
12:49:16 <oerjan> ..._somewhat_ disappointing
12:49:57 <elliott> oerjan: thunks are ugly :(
12:50:06 <oerjan> !delinterp utest
12:50:06 <EgoBot> ​Interpreter utest deleted.
12:50:42 <oerjan> ah of course
12:51:05 <oerjan> !addinterp utest unlambda ```sii``d```@i|i`ci
12:51:06 <EgoBot> ​Interpreter utest installed.
12:51:10 <oerjan> !utest lessee...
12:51:10 <EgoBot> ​lessee...
12:51:48 <ais523> elliott: any opinion on OO.o being donated to Apache?
12:52:13 * ais523 guesses no, but isn't sure
12:52:55 <elliott> ais523: does anyone care, now that LibreOffice has taken over?
12:52:58 <elliott> I didn't even know it was donated
12:53:11 <elliott> the only people who still use OO.o are, I guess, Windows users who don't have the kind of transition Linux distros are doing
12:53:15 <ais523> elliott: well, LO care, because it's under a license that lets them copy code back out
12:53:27 <ais523> so it saves them having to reimplement features
12:53:37 <elliott> ais523: I sort of doubt openoffice will get much active development now that libreoffice exists
12:53:42 <ais523> and the trademark was donated too, so it's possible that LO will get to call themselves OpenOffice.org again after all
12:53:52 <elliott> hmm, I actually prefer LibreOffice as a name
12:53:55 <elliott> the .org necessity was always ugly
12:54:01 <ais523> if Apache decides to give them the trademark
12:54:01 <elliott> admittedly, OpenOffice (no .org) has brand recognitino
12:54:06 <elliott> [asterisk]recognition
12:54:27 <ais523> OOo is a great acronym
12:54:36 <ais523> and pretty recognisable
12:54:37 <elliott> ais523: anyway, OO.o and LibreOffice are both very ugly, slow programs with lots of bad design and kludginess
12:54:41 <ais523> yep
12:54:47 <elliott> I avoid them at pretty much all costs, personally
12:54:56 <elliott> If I really want a WYSIWYG word processor for some reason, AbiWord is usually OK
12:54:57 <ais523> aren't all WYSIWYG word processors, though?
12:55:04 <elliott> To varying degrees, yes
12:55:19 <elliott> I'd say AbiWord is much better than OO.o/LO's word processor as far as UI goes
12:55:21 <ais523> I have other alternatives for word processing
12:55:24 <elliott> And speed/hogginess
12:55:25 <elliott> Me too
12:55:28 <ais523> and for spreadsheets, too
12:55:31 <ais523> but not really for presentations
12:55:44 <ais523> so I still need to use the office suite for something
12:55:46 <elliott> Well, there's always latex with beamer :)
12:56:00 <elliott> Or one of them fancy ~~semantickal~~ HTML-based things.
12:56:11 <olsner> I use html and opera for all my presentations
12:56:24 <elliott> lol, opera users
12:56:42 <olsner> there's a css media query you can use to check if you're in full screen (which is either opera-specific or only works in opera, but whatever :D)
12:57:06 <elliott> implying there's a standard that only opera implements correctly
12:57:20 <ais523> hmm, apparently Windows 8 has done a Gnome Shell/Unity, and come up with a new crazy tile-based "start screen"
12:57:22 <elliott> (implying that opera implements any standard correctly)
12:57:35 <ais523> so we won't even be able to use Windows either to get away from the UI reinvention nonsense
12:57:35 <elliott> ais523: it looks exactly like Windows Phone, to be honest
12:57:38 <ais523> yep
12:57:50 <ais523> and Unity was stolen from UNR
12:57:50 <elliott> ais523: It looks fairly decent for tablets
12:57:55 <elliott> not so much for desktops
12:57:56 <olsner> I think this part just isn't in the standard
12:58:13 <elliott> ais523: I'm sort of thinking desktops are on the road to extinction, though
12:58:26 <ais523> olsner: you can't rely on opera to be present on another computer
12:58:44 <elliott> Netbooks are wildly popular, tablets are probably going to be once they get down to a lower pricepoint (without being saddled with ridiculously inappropriate software like Android)
12:58:44 <olsner> read something about a proposal to add something similar with a different name to CSS last week though
12:58:51 <elliott> Even laptops have desktop-esque specs nowadays
12:58:59 <elliott> I think desktops may be marginalised relatively soon
12:59:03 <ais523> when I take a really important presentation with me, I save it as .odp, .ppt, and .pdf, and take a live-executable for Windows for both Sumatra and OOo
12:59:05 <olsner> ais523: I can if my presentation requires opera, or if I bring my own laptop
12:59:15 <ais523> and then normally, at least one will work
12:59:33 <Phantom_Hoover> <elliott> I think desktops may be marginalised relatively soon
12:59:40 <Phantom_Hoover> What about for high-end machines?
12:59:43 <olsner> (i.e. assuming X, X is in fact true)
12:59:46 <ais523> (typically I use the .pdf with Adobe Reader; Sumatra has issues rendering thin lines, in that it draws them as thin as the PDF suggests rather than widening them to 1 pixel)
12:59:46 <elliott> Phantom_Hoover: those are marginal
12:59:55 <elliott> Phantom_Hoover: come on, you answered that one yourself
12:59:57 <Lymia> Phantom_Hoover, yeah.
13:00:09 <Lymia> Laptops are a little too convenient. =p
13:00:42 <Lymia> Though I do want a desktop machine to host a ssh server on for tunneling.
13:00:44 <oerjan> !delinterp utest
13:00:44 <EgoBot> ​Interpreter utest deleted.
13:01:30 <oerjan> !addinterp utest unlambda ```sii``d`@|`ci
13:01:31 <EgoBot> ​Interpreter utest installed.
13:01:33 <oerjan> !utest lessee...
13:01:34 <EgoBot> ​lessee...
13:01:48 <Lymia> !utest aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
13:01:49 <EgoBot> ​aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
13:01:49 * oerjan cackles evilly
13:02:29 <Patashu> !utest here comes another chinese earthquake brbrbrbrbr
13:02:29 <EgoBot> ​here comes another chinese earthquake brbrbrbrbr
13:02:41 <Patashu> all that for cat?
13:03:22 <oerjan> !delinterp utest
13:03:22 <EgoBot> ​Interpreter utest deleted.
13:04:00 <oerjan> !addinterp utest unlambda ```s`d`@|i`ci
13:04:00 <EgoBot> ​Interpreter utest installed.
13:04:03 <oerjan> !utest lessee...
13:04:04 <EgoBot> ​lessee...
13:04:12 <oerjan> BETTER?
13:04:40 <elliott> oerjan: hmm, does unlambda's `dX ever execute X more than once?
13:04:46 <oerjan> yes
13:04:48 <elliott> i.e. is it like call-by-name or just lazy evaluation?
13:04:53 <oerjan> call-by-name
13:05:08 <elliott> oerjan: so I don't have to do the Haskellian "thunks stub themselves out with {return value;} upon evaluation"?
13:05:08 <elliott> cool
13:05:32 <elliott> ooh, what if I combined forcing and evaluation with a parameter...
13:06:22 <elliott> erm
13:06:25 <elliott> applying and evaluating
13:09:15 <oerjan> !delinterp utest
13:09:15 <EgoBot> ​Interpreter utest deleted.
13:09:24 <oerjan> !addinterp ucat unlambda ```s`d`@|i`ci
13:09:24 <EgoBot> ​Interpreter ucat installed.
13:10:03 <oerjan> don't see any further improvement on the spot
13:10:31 <oerjan> and it is nicely incomprehensible
13:10:47 <Patashu> !ucat here comes another chinese earthquake brbrbrbrbr
13:10:47 <EgoBot> ​here comes another chinese earthquake brbrbrbrbr
13:19:39 <elliott> how many damn chinese earthquakes are ther
13:19:39 <elliott> e
13:21:49 <Lymia> !ucat @#$%^&*()
13:21:49 <EgoBot> ​@#$%^&*()
13:21:56 <Lymia> !ucat I am a mouse
13:21:57 <EgoBot> ​I am a mouse
13:29:49 <elliott> oerjan: gah, I feel like I could get unlambda evaluation steps down to a few instructions, but the c compiler is getting in my way
13:30:14 <oerjan> !unlambda ``.a`cd`.c`c.b
13:30:22 <oerjan> bah
13:30:36 <oerjan> !unlambda ``r`cd`.c`c.b
13:31:19 <oerjan> wtf
13:31:23 <oerjan> !unlambda ``r`cd`.c`c.b
13:32:19 <oerjan> !echo hello
13:32:29 <oerjan> wonderful
13:32:30 -!- EgoBot has quit (Remote host closed the connection).
13:32:41 -!- EgoBot has joined.
13:32:44 <elliott> hmm, but this is an extra branch each time...
13:33:04 <oerjan> that DCC output was something insane (it contained _control_ characters!)
13:33:09 <oerjan> !unlambda ``r`cd`.c`c.b
13:33:11 <Lymia> !echo hello
13:33:28 <oerjan> ah
13:35:25 <Patashu> you broke egobot
13:35:43 <oerjan> i may suspect someone of having done +[[.+]+] in a privmsg
13:35:47 <oerjan> um what
13:35:50 <Patashu> well
13:35:51 <Patashu> someone did
13:35:58 <oerjan> !echo hello
13:35:59 <EgoBot> ​hello
13:36:17 <oerjan> because that's what the DCC output i got before it quit looked like
13:36:40 <oerjan> and there's a bug that sometimes causes long output to be sent to the wrong place
13:38:27 <elliott> oerjan: what is the semantics of .x again?
13:38:33 <elliott> i forget how `.xX is defined
13:38:37 <elliott> it outputs x, then...?
13:39:08 <oerjan> returns X
13:39:26 <elliott> oerjan: so X is evaluated before x is output?
13:39:29 <oerjan> yes
13:39:57 <elliott> unl prim_out_x(unl _, unl k) {
13:39:58 <elliott> if (!k) return prim_out_x;
13:39:58 <elliott> unl r = FORCE(k);
13:39:58 <elliott> putchar('x');
13:39:58 <elliott> return r;
13:39:58 <elliott> }
13:40:00 <elliott> easy
13:41:15 <elliott> oerjan: http://sprunge.us/UcGh
13:41:21 <elliott> oerjan: what do you think about this for an evaluation model?
13:41:30 <elliott> assume that the C implementation does tail-call optimisation
13:41:46 <elliott> the whole program would be evaluated with FORCE(thk_d)
13:41:55 <elliott> oh wait hm
13:42:00 <elliott> prim_i needs wrapping in a closure structure
13:42:03 <elliott> with NULL data
13:42:04 <elliott> but that's obvious
13:42:46 <oerjan> i don't think my brain can manage the context switch at the moment
13:45:42 <elliott> http://sprunge.us/JaYP there... hmm
13:45:48 <elliott> i guess it should pass the pointer to the whole closure
13:51:10 <Patashu> this is C++? what does 'closure' do?
13:51:14 <Patashu> oh
13:51:38 <Lymia> !python ''.join(chr((x%255)+1) for x in range(200))
13:51:47 * Lymia hides
13:51:59 <oerjan> i don't think there is python in egobot
13:52:01 <Lymia> !addinterp recursion recursion2
13:52:01 <EgoBot> ​Interpreter recursion2 does not exist!
13:52:04 <oerjan> !sh which python
13:52:06 <EgoBot> ​/usr/bin/python
13:52:11 <Lymia> !addinterp recursion python
13:52:11 <EgoBot> ​Interpreter python does not exist!
13:52:11 <oerjan> ok there's that
13:52:21 <Lymia> !addinterp recursion unlambda
13:52:22 <EgoBot> ​Interpreter recursion installed.
13:52:28 <Lymia> !addinterp recursion2 recursion
13:52:28 <EgoBot> ​Interpreter recursion2 installed.
13:52:32 <Lymia> !addinterp recursion recursion2
13:52:32 <EgoBot> ​There is already an interpreter for recursion!
13:52:41 <Lymia> !delinterp recursion
13:52:44 <EgoBot> ​Interpreter recursion deleted.
13:52:46 <Lymia> !addinterp recursion recursion2
13:52:46 <EgoBot> ​Interpreter recursion installed.
13:52:50 <Lymia> !recursion
13:52:51 <elliott> <Patashu> this is C++? what does 'closure' do?
13:52:53 <elliott> it is C
13:52:56 <elliott> and it is the name of the struct.
13:53:01 <Lymia> !echo I'm alive.
13:53:03 <EgoBot> ​I'm alive.
13:53:06 <Lymia> :<
13:53:26 <Lymia> !recursion2
13:53:37 <Patashu> yeah, took me a moment
13:53:42 <Lymia> !python print ''.join(chr((x%255)+1) for x in range(2000))
13:54:02 <oerjan> !haskell putStr ['\001'..'\201']
13:54:13 <oerjan> argh
13:54:15 <oerjan> !echo hi
13:54:29 <Lymia> !haskell putStr '\000'
13:54:31 <EgoBot> ​hi
13:54:44 <Lymia> * Received a DCC CHAT offer from EgoBot
13:54:45 <Lymia> `-`
13:54:49 <HackEgo> No output.
13:54:57 <oerjan> Lymia: python is not an interpreter, you cannot use it that way, but since it's in /usr/bin you might be able to run it with sh
13:55:06 <oerjan> !echo hi
13:55:07 <EgoBot> ​hi
13:55:15 <oerjan> !haskell putStr ['\001'..'\201']
13:55:17 <EgoBot> ​........
13:55:40 <oerjan> ah right it sends a newline before anything interesting
13:55:46 <oerjan> so the rest is in DCC
13:55:58 <oerjan> !haskell putStr ['\014'..'\201']
13:56:00 <EgoBot> ​.................. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
13:58:05 <oerjan> !sh python -c 'print "Hello"'
13:58:06 <EgoBot> ​Hello
13:58:40 -!- Sgeo has quit (Ping timeout: 252 seconds).
13:58:48 <oerjan> !addinterp python sh python
13:58:49 <EgoBot> ​Interpreter python installed.
13:58:57 <oerjan> !python print "Hello"
13:58:58 <EgoBot> ​Hello
13:59:34 <Lymia> !python print ''.join(chr((x%255)+1) for x in range(2000) if (x%255)!=(ord('\n')+1))
13:59:34 <EgoBot> ​........
13:59:42 <Lymia> !python print ''.join(chr((x%255)+1) for x in range(2000) if (x%255)!=(ord('\n')-1))
14:00:30 <Lymia> !python import random;print ''.join(chr(random.randint(0,255)) in range(100))
14:00:31 <EgoBot> ​.............................. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~.............................. !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
14:00:39 <Patashu> nice
14:00:39 <Lymia> !python import random;print ''.join(chr(random.randint(0,255)) in range(100))
14:00:40 <EgoBot> ​Traceback (most recent call last):
14:00:54 <Lymia> !python import random;print ''.join(chr(random.randint(0,255)) in range(100))
14:00:55 <EgoBot> ​Traceback (most recent call last):
14:00:57 <Patashu> lol
14:01:11 <Lymia> !python import random;print ''.join(chr(random.randint(0,255)) for x in range(100))
14:01:11 <EgoBot> ​<*.w)}..
14:01:22 <Lymia> !python import random;print ''.join(chr(random.randint(0,255)) for x in range(100))
14:01:23 <EgoBot> ​NUs2.&./x(F.LP.}.=.z@~{D7Q..Hg.Q.ۂO0Na{.'.I..
14:01:34 <Lymia> !python import random;print ''.join(chr(random.randint(0,255)) for x in range(10000))
14:01:35 <EgoBot> ​.I..~zdRT [l7.9a5(^.0
14:01:51 <Lymia> !python a=[None];a[0]=a;print a
14:01:52 <EgoBot> ​[[...]]
14:01:55 <Lymia> :<
14:01:59 <Lymia> y u so clever
14:02:25 <Lymia> !python a=[None];a[0]=a;flatten(a)
14:02:25 <EgoBot> ​Traceback (most recent call last):
14:06:37 <Lymia> !python print '\nQUIT :This better not work'
14:06:49 <Lymia> !python print '\r\nQUIT :This better not work'
14:06:49 <EgoBot> ​.
14:07:03 <Lymia> !python print "So much DCC Chat"
14:07:04 <EgoBot> ​So much DCC Chat
14:11:26 <ais523> <Aaron Sloman> (Pop-11 has most of the virtues of python, [...]
14:11:37 <ais523> wow he was brave to say that on a relatively widely read internal mailing list
14:11:42 <ais523> I wonder if there will be flames in response
14:12:45 <elliott> ais523: It's computer science/software engineering, we're hardly known for being quiet and reserved with our opinions
14:12:50 <ais523> indeed
14:13:08 <ais523> but I never thought I'd see POP-11 compared with Python
14:13:26 <ais523> (POP-11's a domain-specific language designed for writing ELIZA-like AI bots, as far as I can tell)
14:13:31 <elliott> POP-11 was pretty advanced, I gather
14:13:41 <elliott> ais523: Er, no?
14:13:53 <elliott> "An online version of ELIZA using Pop-11 is available at Birmingham." is the only thing Wikipedia says that would make me think that.
14:13:57 <ais523> hmm
14:14:11 <ais523> perhaps I just saw a biased subset of it from someone who was really an ELIZA freak
14:14:23 <elliott> POP-11 is a reflective, incrementally compiled programming language with many of the features of an interpreted language. It is the core language of the Poplog programming environment developed originally by the University of Sussex, [...] POP-11 is an evolution of the language POP-2, developed in Edinburgh University and features an open stack model (like Forth). It is mainly procedural, but supports declarative language constructs, including a
14:14:23 <elliott> pattern matcher and is mostly used for research and teaching in Artificial Intelligence, although it has features sufficient for many other classes of problems. It is often used to introduce symbolic programming techniques to programmers of more conventional languages like Pascal, who find POP syntax more familiar than that of Lisp. One of POP-11's features is that it supports first-class functions.
14:14:28 <elliott> Pop-11 is the core language of the Poplog system. The fact that the compiler and compiler subroutines are available at run-time (a requirement for incremental compilation) gives it the ability to support a far wider range of extensions than would be possible using only a macro facility.
14:14:32 <elliott> it actually sounds quite expressive and advanced to me
14:14:34 <elliott> far moreso than Python
14:14:42 <elliott> ais523: there exist ELIZA freaks?
14:14:50 <ais523> I assume so
14:15:50 <ais523> the language seems based on pattern-matching lists, anyway
14:16:11 <ais523> you end up with lots of deeply nested lists writing it
14:18:25 <elliott> wow, ghc does really terribly at small functions
14:18:32 <elliott> the prologue and epilogue are just so long
14:23:35 -!- oerjan has quit (Quit: *COUGH* *HACK*).
14:24:08 <elliott> erm
14:24:09 <elliott> gcc not ghc
14:24:37 <ais523> the prologue/epilogue are pretty much hard coded in gcc
14:25:03 <ais523> I think they're literally hard coded in gcc-bf, there's a string that's spit out at the beginning and end of each function that's quite long
14:25:14 <ais523> with even the newlines and tabs embedded
14:27:59 <elliott> yep; unfortunately, I have a lot of really tiny functions, so I really suffer for it
14:30:14 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:38:43 -!- augur has quit (Remote host closed the connection).
14:50:58 -!- Vorpal has joined.
14:51:12 <elliott> stanislav rapidly reaching levels of smugness even i cannot stand
14:52:40 <olsner> what's stanislav?
14:52:54 <Vorpal> elliott, HI!
14:53:01 <Vorpal> elliott, what is the spec like so far?
14:53:11 <elliott> Vorpal: perfect
14:53:17 <elliott> olsner: guy who writes loper-os.org
14:53:21 <Vorpal> elliott, ah, may I see it?
14:53:53 -!- copumpkin has joined.
14:54:10 <elliott> Vorpal: 9f0jer0g9jrtmreor09.onion
14:54:25 <elliott> the distinct lack of numbers i cannot type in this Tor domain is entirely coincidental.
14:58:03 <Patashu> http://mspaintadventures.com/sweetbroandhellajeff/?cid=031.jpg new abahj
15:00:52 <elliott> Patashu: that's weeks old
15:01:09 <Patashu> really? hm
15:01:16 <elliott> also, arabian bartender and hasidic juice-drinker?
15:03:38 <elliott> Patashu: http://twitter.com/#!/andrewhussie/status/68546368226066432
15:03:40 <elliott> twelfth may
15:06:32 -!- augur has joined.
15:12:33 -!- ais523 has quit (Remote host closed the connection).
15:14:30 -!- azaq23 has quit (Quit: Leaving.).
15:15:37 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:18:35 <elliott> where's oerjan when you need him
15:21:24 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
16:09:41 -!- Phantom_Hoover has joined.
16:16:58 -!- elliott_ has joined.
16:16:59 -!- elliott has quit (Read error: Connection reset by peer).
16:29:36 -!- ais523 has joined.
16:30:50 -!- copumpkin has quit (Ping timeout: 252 seconds).
16:43:35 -!- copumpkin has joined.
16:47:32 -!- pikhq has quit (Ping timeout: 240 seconds).
16:47:33 -!- pikhq_ has joined.
16:57:21 <elliott_> wait
16:57:25 <elliott_> ais523: unlambda question
16:57:32 <elliott_> ais523: `i`dX doesn't evaluate X does it...
16:57:41 <ais523> no
16:57:44 <ais523> but ``i`dXi does
16:57:59 <ais523> `dX doesn't evaluate X until it's on the LHS of an application
16:58:00 <HackEgo> No output.
16:58:10 <ais523> then it evaluates X, then the RHS of the application, then applies them to each other
16:58:25 <elliott_> ais523: this really complicates my evaluation model :(
16:58:34 <elliott_> it might even completely break it
16:58:37 <ais523> it's definitely nontrivial
16:58:41 <elliott_> hmm
16:58:43 <elliott_> ah, wait, no it doesn't
16:58:47 <ais523> in fact, I think d is in the language mostly /because/ it's a pain to implement
16:58:50 <elliott_> just requires some Fancy Tricks
17:00:03 <elliott_> PRIM(d) {
17:00:04 <elliott_> if (!x) return me;
17:00:04 <elliott_> unl thk = new();
17:00:04 <elliott_> thk->code = prim_d_2;
17:00:04 <elliott_> thk->data = x;
17:00:04 <elliott_> return x;
17:00:06 <elliott_> }
17:00:08 <elliott_> unl prim_d_2(unl me, unl x) {
17:00:10 <elliott_> if (!x) return me;
17:00:12 <elliott_> return APPLY(me->data, x);
17:00:14 <elliott_> }
17:00:16 <elliott_> tada
17:03:19 <Gregor> lol, this phishing scam claims to be "ACCOUNT VERIFICATION"
17:03:30 <Gregor> Apparently they have a trademark on the word "account
17:03:31 <Gregor> "
17:06:42 <pikhq_> Impressive.
17:07:32 <elliott_> I'm going to trademark "account[\n]"
17:08:55 <Gregor> elliott_: ITYM "account\n<Gregor>"
17:14:18 <elliott_> man
17:14:19 <elliott_> sharing sucks
17:28:50 <pikhq_> Oh, wow. ext filesystems on Linux do not normalize filenames.
17:29:15 <pikhq_> They just store the byte sequence handed to them as the filename.
17:29:37 <pikhq_> You can have two different filenames that are, as far as Unicode is considered, identical.
17:29:58 <pikhq_> s/considered/concerned/
17:29:59 <pikhq_> (though quite distinct as far as a more naive strcmp() is concerned)
17:31:38 <fizzie> I have a feeling OS X normalizes to NFD or NFKD, I think; at least on some level, since I haven't managed to get an "ä" in a file name that wouldn't have been decomposed into a and combining-diaeresis.
17:32:25 <pikhq_> It doesn't matter that much what *form* you normalise to, what matters is that you actually apply Unicode normalisation...
17:32:34 <pikhq_> To do otherwise is broken.
17:32:58 -!- monqy has joined.
17:34:58 <fizzie> I don't think the filesystem level (at least for ext*) defines the character set at all; it's just defined in terms of octet sequences. So the normalization would either have to happen on a higher level; or you would need to mandate Unicode and, say, UTF-8.
17:37:24 <fizzie> Perhaps on the VFS level or something. I think some filesystems do respect the "iocharset" option for doing some character-set conversions.
17:39:42 <pikhq_> It certainly needs to be somewhere in there, though.
17:43:10 <fizzie> Well, now; if your primary interface (the C runtime) is specified in terms of char*s with no inherent character set...
17:51:48 -!- augur has changed nick to codjahandarie.
17:52:48 -!- pikhq_ has quit (Ping timeout: 241 seconds).
17:52:53 -!- pikhq has joined.
17:53:04 -!- codjahandarie has changed nick to augur.
17:58:58 -!- TOGoS has joined.
17:59:04 -!- TOGoS has left.
18:00:25 <fizzie> "You have the ultimate responsibility for moving your old e-mails to the new inbox." -- I don't know, somehow I find this very funnily said. The ultimate responsibility!
18:13:34 <Gregor> Possibly the most onerous task you will ever be asked to undertake :P
18:16:42 <Vorpal> <elliott> Vorpal: 9f0jer0g9jrtmreor09.onion
18:16:43 <Vorpal> <elliott> the distinct lack of numbers i cannot type in this Tor domain is entirely coincidental.
18:16:45 <Vorpal> eh?
18:16:56 <Vorpal> I don't have tor on this computer
18:16:57 <Vorpal> what is it
18:19:45 <fizzie> Gregor: It got funnier. "Staff e-mails will be moved by IT Services in cooperation with the staff members, while students may ask for advice but move the e-mails themselves." See, students are assumed to be able to handle such a complicated thing, while us staff obviously will just mess it up.
18:20:05 -!- zzo38 has joined.
18:26:26 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
18:30:57 -!- Phantom_Hoover has joined.
18:35:08 -!- TeruFSX has quit (Ping timeout: 252 seconds).
18:39:19 <fizzie> Vorpal: Incidentally, I re-optimized that congress hall picture with some vertical lines (based on the walls) in place; now it's less wavy, but some seams are worse: http://users.ics.tkk.fi/htkallas/prague-congress-hall.jpg → http://users.ics.tkk.fi/htkallas/prague-congress-hall-2.jpg -- not sure if I can be bothered to try getting a both-okay image.
18:39:44 <fizzie> The wavy version also for some reason perceptually speaking seems to make the room larger.
18:46:07 -!- ais523 has quit (Remote host closed the connection).
18:48:31 -!- ralc has quit (Quit: Leaving).
18:53:01 -!- sebbu2 has quit (Read error: Connection reset by peer).
18:54:37 -!- sebbu has joined.
18:54:37 -!- sebbu has quit (Changing host).
18:54:37 -!- sebbu has joined.
19:02:52 -!- calamari has joined.
19:05:34 <Phantom_Hoover> fizzie, cool.
19:06:49 <Phantom_Hoover> *sigh*
19:07:00 <Phantom_Hoover> There are no decent torrents for the 4th series of Futurama.
19:07:01 <fizzie> Phantom_Hoover: It was a sort of "so I woke up to walk here before 08am, I guess I should be doing something so that I won't fall asleep before the talk begins" situation.
19:08:32 <Phantom_Hoover> http://torrentz.eu/d04ca09c3e18a77ea650708a708be7911edac5f6
19:08:47 <Phantom_Hoover> 'Complete'; WP lists at least 5 more episodes on the series.
19:14:50 -!- oerjan has joined.
19:15:47 -!- cheater_ has quit (Ping timeout: 248 seconds).
19:17:48 <CakeProphet> !!!
19:17:52 <CakeProphet> !h
19:18:00 <CakeProphet> hmmm, alright.
19:18:19 <oerjan> 09:39:42 <ais523> `dX doesn't evaluate X until it's on the LHS of an application
19:18:25 <oerjan> 09:39:53 <ais523> then it evaluates X, then the RHS of the application, then applies them to each other
19:18:38 <oerjan> incorrect, the RHS is evaluated first
19:19:40 <oerjan> elliott_: ^
19:34:33 <CakeProphet> `sh lspci | grep -P 'graphic|video'
19:34:35 <HackEgo> No output.
19:35:56 <olsner> `sh lspci | grep VGA
19:35:58 <HackEgo> No output.
19:36:10 <olsner> `sh lspci
19:36:12 <HackEgo> No output.
19:38:06 <elliott_> back
19:38:16 <elliott_> oerjan: oh really?
19:38:19 <elliott_> oerjan: that's /really/ bad
19:38:25 <elliott_> it completely breaks my model :(
19:38:28 <CakeProphet> `run lspci | grep -P 'graphic|video'
19:38:30 <HackEgo> No output.
19:38:34 <elliott_> because functions handle frocing their arguments
19:38:35 <elliott_> forcing
19:38:41 <CakeProphet> `run which sh
19:38:42 <elliott_> oh hm wait
19:38:43 <HackEgo> ​/bin/sh
19:38:46 <elliott_> actually i can fix that
19:39:30 <CakeProphet> elliott_: the main problem I see with this approach is that it's NOT a hybrid of Perl and Haskell.
19:39:34 <elliott_> oerjan: can i have expanation mark
19:39:38 <CakeProphet> !
19:40:06 <oerjan> maybe you could if i had any idea what it was.
19:40:14 <elliott_> !haskell ``dd`.xi
19:40:19 <elliott_> erm
19:40:26 <elliott_> !unlambda ``dd`.xi
19:40:27 <EgoBot> ​x
19:40:28 <oerjan> poor haskell
19:40:31 <elliott_> ugh, what
19:40:33 <elliott_> oh
19:40:35 <elliott_> right
19:40:40 <oerjan> `dd ~ i
19:40:41 <HackEgo> No output.
19:41:58 <oerjan> elliott_: my ocaml model also made functions handle forcing their arguments
19:42:18 <oerjan> so it definitely can work
19:42:18 <elliott_> oerjan: i sure hope you are not with the stealing of my model bastard :/
19:42:42 <oerjan> yeah, stealing it, inventing a time machine and going back to 2002
19:43:05 <elliott_> is yours a compiler though
19:43:10 <oerjan> or possibly 2001
19:43:25 <oerjan> in a very liberal sense, yes.
19:43:40 <elliott_> how liberal are we talking
19:44:13 <oerjan> it generates an ocaml program in which the unlambda functions are ocaml functions
19:44:20 <elliott_> ah
19:44:22 <elliott_> oerjan: also my model doesn't handle call/cc... yet
19:44:23 <oerjan> but it does so simply by composing parts
19:44:31 <elliott_> well
19:44:32 <oerjan> oh
19:44:35 <elliott_> my compiler is kind of like that too
19:44:37 <elliott_> THUNK(a, APPLY(&prim_out_x, &prim_i))
19:44:37 <elliott_> THUNK(b, APPLY(&prim_d, &thk_a))
19:44:37 <elliott_> THUNK(c, APPLY(&prim_i, &thk_b))
19:44:37 <elliott_> THUNK(d, APPLY(&thk_c, &prim_i))
19:44:41 <elliott_> but my idea is that
19:44:50 <elliott_> you could do analysis to find that d could not be possibly applied in some application
19:44:54 <elliott_> and so fold a bunch of thunks into one
19:45:03 <oerjan> mhm
19:45:21 <CakeProphet> !addinterp keys haskell putStrLn $ map toEnum ([33..64]++[91..96]++[123..126])
19:45:22 <EgoBot> ​Interpreter keys installed.
19:45:24 <CakeProphet> !keys
19:45:26 <EgoBot> ​!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~
19:46:59 <oerjan> CakeProphet: um the problem is none of the bots have a prefix elliott_ can type, except lambdabot whose @let definitions tend to get wiped out
19:47:33 <elliott_> wrong
19:47:33 <elliott_> `
19:47:34 <oerjan> (a rather direct consequence of the fact the only command to remove @let definitions removes all of them)
19:47:35 <HackEgo> No output.
19:47:37 <elliott_> `eb test
19:47:38 <HackEgo> No output.
19:47:39 <elliott_> oh wait
19:47:41 <elliott_> that was the other way around
19:47:54 <oerjan> elliott_: oh you can type ` without problems?
19:47:59 <elliott_> one second
19:48:06 <CakeProphet> `help
19:48:07 <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/
19:48:45 <elliott_> `run echo 'echo '"'"'!"#$%^&* 0123456789'"'" >bin/k
19:48:46 <HackEgo> No output.
19:48:47 <elliott_> `run chmod +x bin/k
19:48:49 <HackEgo> No output.
19:48:49 <elliott_> `url bin/k
19:48:51 <HackEgo> ​http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/k
19:48:57 <elliott_> `k
19:48:59 <HackEgo> No output.
19:49:03 <elliott_> oh
19:49:08 <oerjan> `cat bin/k
19:49:09 <HackEgo> ​echo '!"#$%^&* 0123456789'
19:49:11 <elliott_> can someone prepend a shebang to that
19:49:11 <elliott_> thx
19:49:25 <CakeProphet> sure.
19:49:41 <elliott_> without using perl
19:49:44 <CakeProphet> ...aw
19:49:54 <CakeProphet> but I don't know any other useful commands for that.
19:49:59 <oerjan> THAT'S NOT A REASONABLE RESTRICTION
19:50:38 -!- cheater_ has joined.
19:51:08 <oerjan> `run which echo
19:51:09 <HackEgo> ​/bin/echo
19:51:17 <CakeProphet> `run perl -pie '"#!/bin/sh\n" . <>' /bin/k
19:51:19 <HackEgo> No output.
19:51:32 <CakeProphet> `cat /bin/k
19:51:34 <HackEgo> No output.
19:51:36 <CakeProphet> :)
19:51:46 <olsner> CakeProphet: wtf, that was perl, we all saw it
19:51:48 <oerjan> CakeProphet: it's bin/k with no /
19:51:51 <olsner> looks like it failed too
19:52:00 <CakeProphet> `run perl -pie '"#!/bin/sh\n" . <>' bin/k
19:52:02 <HackEgo> No output.
19:52:06 <CakeProphet> `cat bin/k
19:52:08 <HackEgo> ​echo '!"#$%^&* 0123456789'
19:52:10 <CakeProphet> lol
19:52:16 <CakeProphet> WRRRRRYYY
19:52:27 <CakeProphet> oh wait I remember
19:52:33 <CakeProphet> `run perl -pi -e '"#!/bin/sh\n" . <>' bin/k
19:52:35 <HackEgo> ​echo '!"#$%^&* 0123456789'
19:52:55 <CakeProphet> for some reason you have to put the -e seperately with this one.
19:53:00 <elliott_> `url bin/k
19:53:02 <HackEgo> ​http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/k
19:53:11 <elliott_> looks like you destroyed it.
19:53:14 <CakeProphet> rofl
19:53:15 <elliott_> `cat bin/k
19:53:15 <CakeProphet> nonsense.
19:53:17 <HackEgo> No output.
19:53:27 <elliott_> `run echo '#!/bin/sh' >bin/k
19:53:29 <HackEgo> No output.
19:53:39 <elliott_> `run echo 'echo '"'"'!"#$%^&* 0123456789'"'" >>bin/k
19:53:41 <HackEgo> No output.
19:53:42 <elliott_> `run chmod +x bin/k
19:53:43 <HackEgo> No output.
19:53:44 <elliott_> `k
19:53:46 <HackEgo> ​!"#$%^&* 0123456789
19:53:49 <CakeProphet> ah I should have either taken off the -p or changed <> to $_
19:53:54 <elliott_> excellent :3
19:54:05 <oerjan> !delinterp keys
19:54:06 <EgoBot> ​Interpreter keys deleted.
19:54:31 <CakeProphet> :_(
19:54:34 <olsner> `run echo '!"#$%^&* 0123456789' | sed 's,^,#!/usr/bin/perl\n,'
19:54:36 <HackEgo> ​#!/usr/bin/perl \ !"#$%^&* 0123456789
19:55:01 <lifthrasiir> `ls /bin/*unl*
19:55:03 <HackEgo> No output.
19:55:20 <oerjan> lifthrasiir: no wildcards without `run
19:55:27 <lifthrasiir> `run ls /bin/*unl*
19:55:29 <HackEgo> No output.
19:55:34 <oerjan> or that.
19:55:39 <elliott_> lifthrasiir: you want egobot
19:55:43 <elliott_> also
19:55:44 <elliott_> "/bin"
19:55:47 <elliott_> you mean ./bin :P
19:56:02 <oerjan> elliott_: hackego has plenty in /bin too...
19:56:10 <lifthrasiir> elliott_, no, i want to add `k, `sk (and so on) commands that can be used as an unlambda interpreter
19:56:20 <CakeProphet> !unlambda
19:56:20 <EgoBot> ​./interps/unlambda/unlambda.bin: file /tmp/input.12483: parse error
19:56:27 <lifthrasiir> wha.
19:56:39 <elliott_> lifthrasiir: ah :)
19:56:42 <elliott_> but `k is mine :(
19:57:07 <CakeProphet> `run mv bin/k bin/LIMEY
19:57:09 <HackEgo> No output.
19:57:09 <oerjan> it's rather useless to start an unlambda program with anyhow
19:57:29 <lifthrasiir> `echo `ls`
19:57:31 <HackEgo> ​`ls`
19:57:36 <CakeProphet> elliott_: ... :)
19:57:42 <CakeProphet> lifthrasiir: use run
19:57:43 <elliott_> `run mv bin/LIMEY bin/k
19:57:44 <HackEgo> No output.
19:57:47 <lifthrasiir> ` is taken literally, so i think it's just fine
19:57:49 <HackEgo> No output.
19:58:07 <elliott_> oerjan: obviously they have to work by calling each other, duh
19:58:08 <elliott_> ;D
19:58:53 <elliott_> | (“reprint character read”) only in Unlambda version 2 and greater
19:58:54 <elliott_> The | function takes an argument X. It returns the evaluation of `X.x, where x is the current character (the one read by the last application of @) or of `Xv if there is no current character (i.e. if @ has not yet been applied or if it has encountered an EOF).
19:58:58 <elliott_> this is a really ugly instruction imo
19:59:25 <elliott_> oerjan: can you write something that tests the corner-cases of d and its interaction with things like s >_>
19:59:26 <lifthrasiir> `run (echo '#!/bin/sh'; echo "(echo '``'; cat) | interps/unlambda/unlambda.bin") > bin/'`' && chmod +x bin/'`'
19:59:28 <HackEgo> No output.
19:59:29 <elliott_> without using c
19:59:41 <elliott_> lifthrasiir: interps/ is egobot.
19:59:42 <elliott_> not hackego
19:59:44 <oerjan> !show ucat
19:59:44 <EgoBot> ​unlambda ```s`d`@|i`ci
19:59:45 <lifthrasiir> ugh.
19:59:49 <oerjan> LIKE THAT?
19:59:53 <elliott_> lifthrasiir: you can use addinterp
19:59:56 <elliott_> oerjan: uses io
19:59:57 <elliott_> oerjan: erm
19:59:58 <elliott_> oerjan: rather
20:00:00 <elliott_> uses input
20:00:05 <oerjan> indeed
20:00:06 <elliott_> which i havent bothered to implement yet
20:03:07 <elliott_> oerjan: ok i will struggle on my own >_>
20:03:11 <oerjan> there is the famous ``r`cd`.*`cd hack, although that really just uses d in ways that are equivalent to i
20:03:14 -!- pikhq has quit (Ping timeout: 240 seconds).
20:03:16 -!- pikhq_ has joined.
20:03:31 <elliott_> uses c
20:03:39 <oerjan> sheesh
20:04:01 <elliott_> !​unlambda `s`d`.xv
20:04:14 <elliott_> !​unlambda ``s`d`.xvi
20:04:18 <elliott_> !​unlambda ```s`d`.xvii
20:04:22 <elliott_> what
20:04:30 <elliott_> EgoBot?
20:04:32 <zzo38> You have wrong character at the start
20:04:38 <oerjan> !echo hi
20:04:38 <EgoBot> ​hi
20:04:39 <elliott_> oh
20:04:47 <elliott_> !​​unlambda `s`d`.xv
20:04:51 <elliott_> better?
20:04:53 <zzo38> Still wrong!
20:04:56 <oerjan> !unlambda ```s`kd`k.x.y
20:04:57 <elliott_> :(
20:05:03 <elliott_> fucking broken bots
20:05:08 <elliott_> !unlambda `s`d`.xv
20:05:14 <elliott_> right now?
20:05:22 <zzo38> Yes, but it still doesn't seem to work.
20:05:26 <elliott_> !unlambda ``s`d`.xvi
20:05:28 <elliott_> !unlambda ```s`d`.xvii
20:05:29 <EgoBot> ​x
20:05:31 <elliott_> ok
20:05:34 <elliott_> good enough test program for me
20:05:35 <oerjan> oh wait
20:05:38 <zzo38> Now it works.
20:05:42 <elliott_> !unlambda ```s`d`.xv`.yvi
20:05:42 <EgoBot> ​yx
20:05:51 <elliott_> !unlambda ```s`d`.xv`.yv`d`.zv
20:05:52 <EgoBot> ​yx
20:05:52 <oerjan> !unlambda ```sd`k.x.y
20:05:53 <EgoBot> ​y
20:05:56 <elliott_> !unlambda ```s`d`.xv`d`.yv`d`.zv
20:05:57 <EgoBot> ​xy
20:06:01 <oerjan> there you go
20:06:08 <elliott_> oerjan: yours looks simpler than mine :D
20:06:16 <oerjan> you don't say
20:06:57 <oerjan> oh hm
20:07:10 <oerjan> !unlambda ````sd`k.x.yi
20:07:10 <EgoBot> ​yx
20:08:01 <elliott_> yay, it outputs y for me
20:08:04 <CakeProphet> Could someone please output a quine in IRC?
20:08:06 <elliott_> oerjan: argh, do i have to manually convert again?
20:08:07 <elliott_> CakeProphet: no
20:08:37 <CakeProphet> man, fucking IRC programming, finnicky shit.
20:08:41 <quintopia> CakeProphet: my status line doesn't say "#irp"
20:09:09 <elliott_> oerjan: is your old program ok
20:09:12 <elliott_> or do i have to try that one too
20:09:14 <oerjan> hm
20:09:58 <oerjan> !unlambda ````sd.x.yi
20:09:58 <EgoBot> ​xyy
20:10:15 <oerjan> !unlambda ```sd.x.y
20:10:16 <EgoBot> ​xy
20:10:54 <oerjan> what old program?
20:15:39 <CakeProphet> ?????????????????????????????????????????????????????????????/
20:15:48 <CakeProphet> > repeat '?'
20:15:49 <lambdabot> "??????????????????????????????????????????????????????????????????????????...
20:16:50 <elliott_> <oerjan> what old program?
20:16:55 <elliott_> / ```sd`k.x.y
20:17:20 <oerjan> oh _that_ ancient crap
20:18:00 <oerjan> i'd imagine you'd want to try as many of them as possible
20:18:26 <elliott_> oerjan: i have to convert these by _hand_ you know :D
20:18:31 <elliott_> THUNK(a, APPLY(&prim_s, &prim_d))
20:18:32 <elliott_> THUNK(b, APPLY(&prim_k, &prim_out_x))
20:18:34 <elliott_> THUNK(c, APPLY(&thk_a, &thk_b))
20:18:36 <elliott_> THUNK(d, APPLY(&thk_c, &prim_out_y))
20:18:38 <elliott_> that's tangible work[EXCLAMATION MARK]
20:18:53 <oerjan> ...i see. i suggest writing a compiler to do it, or something.
20:20:08 <elliott_> oerjan: yeah yeah :D
20:20:19 <pikhq_> elliott_: Why, that looks *suspiciously* like clambda.h stuff.
20:20:36 <elliott_> pikhq_: its not similar really, the thunks are pretty different
20:20:46 <pikhq_> Oh?
20:20:56 <elliott_> http://forums.silverlight.net/forums/p/230502/562113.aspx As Windows 8 dawns, Silverlight developers begin to dwell -- if only for seconds -- on the possibility that their platform may be an abandoned pile of shit.
20:21:07 <elliott_> pikhq_: #define FORCE(x) (x)->code((x), 0)
20:21:07 <elliott_> #define APPLY(f, x) (f)->code((f), (x))
20:21:15 <elliott_> pikhq_: basically its lazy evaluation where every function acts like the function it evaluates to
20:21:19 <elliott_> but if you pass a NULL argument
20:21:21 <elliott_> it just forces instead
20:21:26 <elliott_> it is actually a decent system imo...
20:21:32 <elliott_> albeit hard to understand
20:21:32 <pikhq_> Oh, hey, a smarter design.
20:21:38 <elliott_> well um no
20:21:41 <elliott_> yours is for general lambdas
20:21:48 <elliott_> this is just for an unlambda compiler
20:21:53 <pikhq_> Bah.
20:22:53 <pikhq_> I still can't believe I actually did that shit...
20:22:59 <elliott_> X-D
20:23:13 <pikhq_> What's worst is that it's not too revolting.
20:23:30 -!- muaddib1 has joined.
20:24:43 <elliott_> muaddib1: you appear to be missing your l and t
20:24:47 <elliott_> i've got spares, would you like them?
20:25:56 <elliott_> muaddib1: they're free.
20:26:15 <muaddib1> ok
20:26:31 <elliott_> oerjan: http://esolangs.org/w/index.php?title=Talk:This%3DThat&curid=2951&diff=23195&oldid=18848 can you handle {{unsigned}} duties :D
20:26:33 <elliott_> muaddib1: here you go.
20:26:46 -!- muaddib1 has left.
20:26:53 <elliott_> an excellent transaction
20:27:29 <oerjan> erm i saw that and it annoyed me, but technically it _is_ signed, i think he may have used the wrong number of ~'s?
20:27:41 <Vorpal> <fizzie> Vorpal: Incidentally, I re-optimized that congress hall picture with some vertical lines (based on the walls) in place; now it's less wavy, but some seams are worse: http://users.ics.tkk.fi/htkallas/prague-congress-hall.jpg → http://users.ics.tkk.fi/htkallas/prague-congress-hall-2.jpg -- not sure if I can be bothered to try getting a both-okay image.
20:27:43 <Vorpal> nice
20:27:51 * oerjan just clicks the signing button himself...
20:28:04 <Gregor> I believe that by "incidentally" you meant "apropos of nothing" X-P
20:28:19 <Vorpal> <fizzie> The wavy version also for some reason perceptually speaking seems to make the room larger. <-- indeed
20:29:06 <elliott_> oerjan: But that'll produce the wrong date/time >_>
20:29:20 <oerjan> what? how so?
20:29:27 <elliott_> oerjan: because you're signing it later
20:29:30 <elliott_> than the edit was
20:29:42 <oerjan> um i mean when i sign my own messages
20:29:47 <elliott_> oh
20:29:56 <elliott_> well it isn't signed _properly_ :(
20:39:37 <elliott_> lisp's semantics annoy me
20:56:46 -!- Sgeo has joined.
21:14:39 -!- wareya has quit (Read error: Connection reset by peer).
21:15:15 <oerjan> wtf that's a big comment thread http://www.reddit.com/r/AskReddit/comments/hpx98/what_pisses_you_off_but_really_shouldnt/
21:15:23 -!- wareya has joined.
21:17:50 <Phantom_Hoover> oerjan, which one?
21:17:59 <Phantom_Hoover> Oh, right the whole thing.
21:18:16 <elliott_> ugh this thread
21:18:21 <elliott_> right from the first post
21:18:24 <elliott_> its like reddit circlejerk heaven
21:18:27 <cheater_> http://spritesmods.com/?art=avrcpm
21:18:41 <oerjan> curiously it doesn't have that many _upvotes_
21:18:53 <elliott_> oerjan: hmm, well we know the counters are fudged
21:18:57 <elliott_> maybe there's a spambot
21:18:59 <elliott_> right at the bottom
21:19:00 <elliott_> naw
21:19:01 <elliott_> dunno
21:19:14 <oerjan> elliott_: only the up/down tallies, not the difference
21:19:23 <elliott_> oerjan: erm no
21:19:35 <elliott_> oerjan: you get posts that are like sixty/thirty which in reality only got like a dozen downvote
21:19:36 <elliott_> s
21:20:10 <oerjan> elliott_: um i've read reddit admins saying that while up and down are fudged, the _difference_ is accurate.
21:20:38 <elliott_> oerjan: hmm
22:07:15 -!- pikhq has joined.
22:08:17 -!- pikhq_ has quit (Ping timeout: 240 seconds).
22:18:21 -!- MigoMipo has quit (Remote host closed the connection).
22:36:22 -!- Patashu has joined.
22:36:52 -!- calamari has quit (Quit: Leaving).
22:40:24 -!- oerjan has quit (Quit: Good night).
22:42:32 -!- Vorpal has quit (Ping timeout: 255 seconds).
22:44:16 -!- augur has quit (Remote host closed the connection).
22:49:31 <Phantom_Hoover> https://bugs.launchpad.net/ubuntu/+source/pam/+bug/790538
22:49:36 <Phantom_Hoover> APT GUY STRIKES AGAIN
22:52:09 <Gregor> APT GUUUUUUUY NANANANANANANANANANANANANANANANA APT GUUUUUUUUUUUUUY
22:52:49 <elliott_> `addquote <Phantom_Hoover> https://bugs.launchpad.net/ubuntu/+source/pam/+bug/790538 <Phantom_Hoover> APT GUY STRIKES AGAIN <Gregor> APT GUUUUUUUY NANANANANANANANANANANANANANANANA APT GUUUUUUUUUUUUUY
22:52:50 <HackEgo> ​434) <Phantom_Hoover> https://bugs.launchpad.net/ubuntu/+source/pam/+bug/790538 <Phantom_Hoover> APT GUY STRIKES AGAIN <Gregor> APT GUUUUUUUY NANANANANANANANANANANANANANANANA APT GUUUUUUUUUUUUUY
22:52:52 <elliott_> never have enough inanity
22:52:59 <elliott_> Phantom_Hoover: wait which one is apt guy again :D
22:53:07 <Phantom_Hoover> The idio.
22:53:12 <Phantom_Hoover> *idiot
22:53:14 <elliott_> which one is that
22:53:21 <elliott_> wait
22:53:25 <elliott_> none of these are apt guy
22:53:26 <elliott_> you scoundrel
22:53:27 <Phantom_Hoover> Although he did appear to be reforming to the extent of at least learning Haskell.
22:53:30 <elliott_> lying scum :|
22:53:32 <elliott_> i mean
22:53:32 <elliott_> t
22:53:35 <elliott_> which one in the bug report
22:53:47 <Phantom_Hoover> That was, in fact, a joke.
22:54:27 <elliott_> now
22:54:29 <elliott_> i gather this
22:54:30 <elliott_> but jokes
22:54:31 <elliott_> are also
22:54:32 <elliott_> known
22:54:32 <elliott_> as
22:54:33 <elliott_> LIES
22:54:35 <elliott_> FILTHY SCUMMY LIES
22:54:47 <elliott_> your niditism is at all all time low
22:55:01 <Phantom_Hoover> What is niditism.
22:56:03 <elliott_> see topic
23:02:43 <Gregor> elliott_ is a major nidiot.
23:02:54 <elliott_> thx
23:02:56 <elliott_> u too
23:16:18 -!- augur has joined.
23:18:42 -!- elliott_ has quit (Ping timeout: 252 seconds).
23:29:40 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
23:31:02 -!- pikhq_ has joined.
23:33:52 -!- pikhq has quit (Ping timeout: 240 seconds).
2011-06-03
00:00:13 -!- CakeProphet has quit (Ping timeout: 276 seconds).
00:01:55 -!- CakeProphet has joined.
00:01:55 -!- CakeProphet has quit (Changing host).
00:01:55 -!- CakeProphet has joined.
00:13:03 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:17:53 <Sgeo> I think I just figured out how to give my native function calling O(log n) complexity
00:18:10 <Sgeo> Highly inspired by a sleep-deprived misreading of something someone else wrote
00:22:36 -!- FireFly has quit (Quit: swatted to death).
00:26:55 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:26:57 -!- Phantom__Hoover has joined.
00:27:13 <Phantom__Hoover> Sgeo, ah, so that's why you all do that.
00:29:48 <Sgeo> Hm?
00:30:02 <Sgeo> I just need to do a hard-coded binary search
00:30:16 <Phantom__Hoover> I mean get sleep deprived.
00:31:23 <olsner> wear down your defences until weird ideas attack you, hoping some of those ideas end up being useful
00:31:38 <Phantom__Hoover> Exactly.
00:53:00 * Phantom__Hoover → sleep
00:53:19 -!- Phantom__Hoover has quit (Quit: Leaving).
00:55:55 <Sgeo> It's impossible to do CPS without TCO, right?
00:58:30 <Deewiant> http://en.wikipedia.org/wiki/Continuation-passing_style#CPS_and_tail_calls
01:00:43 <Sgeo> Maybe I should read up on what Chicken Scheme does
01:13:01 <Sgeo> Why can't I do first-class continuations without CPS?
01:22:33 <Sgeo> LSL does, in fact, have a goto
01:22:38 <Sgeo> This would have been good to remember.
01:22:47 <pikhq_> Actually, it's more that CPS completely and utterly eliminates the need for a call stack at all.
01:23:40 <Sgeo> That's not the only reason for going CPS, is it?
01:25:31 <Sgeo> If I don't take the bytecode approach, I can use GOTOs as a sort of call, since there's no need to return from it in CPS
01:26:40 <pikhq_> It is a compelling argument if doing TCO would be a pain but just doing a jump would be easy.
01:27:13 <pikhq_> Still have to manage your closures, but eh, you'd have to do that in most languages.
01:27:47 <Sgeo> Thing is, the jump itself is hardcoded I think
01:28:05 <Sgeo> Not sure if that affects anything, I don't know what C gotos are like
01:28:28 <Sgeo> http://lslwiki.net/lslwiki/wakka.php?wakka=jump
01:28:54 <Sgeo> "Note: Please see the comments, you can only have a single jump statement going to a label."
01:28:56 <Sgeo> The fuck?
01:30:30 <zzo38> Which means, you need two labels in one place if you want to jump twice?
01:30:47 <Sgeo> Yes
01:31:17 <Sgeo> Well, no, if you call the same jump statement twice
01:32:56 <pikhq_> Sgeo: Give up now.
01:33:28 <pikhq_> If you *really* feel nice, become a Linden and get them to start using ECMAScript or Lua or something else non-revolting.
01:33:32 <pikhq_> Otherwise, give up now.
01:34:12 <Sgeo> If I were to do the jump thing, I'd still have to deal with making them first-class somehow
01:35:36 <Sgeo> pikhq_, which part means I should give up?
01:35:42 <pikhq_> Sgeo: All of it.
01:37:40 <Sgeo> I think I'm going to read up on how Chicken compiles to C
02:01:39 <Sgeo> Why am I so scared to read http://home.pipeline.com/~hbaker1/CheneyMTA.html
02:02:13 <Sgeo> Also, LSL does not have malloc, but its lists can hold items of arbitrary types and lists allocated on the "stack" can be reassigned to with larger lists
02:02:27 <Sgeo> Don't know if that's proper terminology
02:03:15 <Sgeo> Appel's method is boring
02:06:37 <Sgeo> Ugh, this paper uses some sort of archaic C syntax
02:08:24 <Sgeo> Is it just me, or does this require being able to see the stack prior to the most recent function call?
02:08:32 <Sgeo> I don't think LSL is that powerful
02:08:53 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
02:42:00 -!- TeruFSX has joined.
02:47:44 -!- copumpkin has joined.
02:53:26 -!- pingveno has quit (Ping timeout: 252 seconds).
02:55:28 -!- pingveno has joined.
03:02:40 <CakeProphet> so could there be a way to set up a language to do CPS under the hood?
03:03:06 -!- TeruFSX has quit (Read error: Connection reset by peer).
03:12:30 -!- dnm_ has quit (Ping timeout: 250 seconds).
03:12:48 -!- dnm_ has joined.
03:15:39 -!- Kustas has joined.
03:24:11 -!- Kustas has quit (Ping timeout: 240 seconds).
03:25:07 -!- azaq23 has joined.
03:25:20 -!- Kustas_ has joined.
03:25:25 -!- Kustas_ has changed nick to Kustas.
03:29:08 <CakeProphet> Memes, a regular expression guide.
03:29:20 <CakeProphet> (.*?) .*? is \1
03:30:19 <CakeProphet> (?i)longcat is lo+ng([.!])+
03:31:11 <CakeProphet> (?i)yo dawg, I heard you like (.*?) so we put a \1 in your .*? so you can .*? while you .*?[.!]?
03:31:30 <CakeProphet> correction:
03:31:43 -!- azaq23 has quit (Ping timeout: 252 seconds).
03:31:44 <CakeProphet> (?i)yo dawg, I heard you like (.*?)(e?s)? so we put a \1 in your .*? so you can .*? while you .*?[.!]?
03:31:47 -!- Kustas has quit (Ping timeout: 240 seconds).
03:32:28 <pikhq_> Yo dawg, I heard you like ZALGO HE WHO WAITS BEHIND THE WALL!!!
03:32:37 <pikhq_> </memutation>
03:38:45 -!- azaq23 has joined.
03:43:47 <pikhq_> Jeeze. Is... Microsoft getting rid of WIMP?
03:44:39 -!- Kustas has joined.
03:47:29 <coppro> but
03:47:30 <coppro> but
03:47:36 <coppro> my weakly interacting massive particles :(
03:48:15 <pikhq_> Window Icon Menu Pointing device.
03:49:04 <coppro> what the hell is that?
03:49:21 <pikhq_> The traditional UI paradigm.
03:51:22 <coppro> define specifically
03:52:49 <pikhq_> Any UI with windows, icons, menus, and a pointing device as the primary features. Examples include Xerox Alto, Mac OS 1-present, Windows 1-7, KDE, GNOME, XFCE, etc.
03:53:44 <coppro> ah ok
03:53:59 <coppro> what's microsoft trying to introduce instead?
03:54:02 <monqy> I dislike wimp. is their replacement any good?
03:54:08 <pikhq_> The Windows Phone 7 UI.
03:54:18 <coppro> Oo
03:54:27 <coppro> link?
03:54:33 <pikhq_> http://www.youtube.com/watch?v=p92QfWOw88I
03:55:35 <coppro> hmm... interesting
03:55:44 <coppro> can't say I'll use it much
03:56:24 <pikhq_> And WINE is, no doubt, hating them so much.
04:00:35 <pikhq_> I really do wonder if they're dogfooding that.
04:00:51 <pikhq_> Actually, no, pretty sure they're not.
04:01:25 <pikhq_> You'd probably see more concessions to not fucking sticking your fingers in your vision if they were.
04:06:41 <coppro> microsoft? dogfood? that doesn't sound right :P
04:06:58 <pikhq_> They dogfood more than you'd expect.
04:07:23 <pikhq_> If it's good and from them, they probably dogfood it. :P
04:07:55 <coppro> so they dogfood nothing :P
04:11:02 <monqy> http://en.wikipedia.org/wiki/Eating_your_own_dog_food#Criticism_and_alternatives
04:12:22 <coppro> worst part about dogfooding is not having a clue what's public
04:13:26 <coppro> e.g. search by subject was released at some point in the last month, and I haven't a clue when
06:08:35 -!- pikhq_ has quit (Ping timeout: 240 seconds).
06:08:52 -!- pikhq has joined.
06:15:41 <zzo38> I mostly dislike WIMP interface (one reason most of my programs do not use it!)
06:17:29 <zzo38> Why do you think Pokemon de Panepon was designed so that BY DEFAULT THE SCORE ONLY GOES UP TO 99999 (you can push SELECT+A on the option menu to reveal more options, one of which allows the score to go up to 999999)?
06:23:51 -!- Kustas has quit (Ping timeout: 258 seconds).
06:25:47 <pikhq> zzo38: Yes, but you don't replace it with something which is *strictly worse* in a desktop environment.
06:26:06 <zzo38> pikhq: I agree, that Microsoft is in fact making it worse.
06:27:56 <monqy> I agree too
06:28:21 <monqy> touchscreens themselves strike me as gimmicky, as well
06:28:46 <zzo38> I prefer keyboard control, rather than touchscreens (there is more than one reason for this)
06:28:59 <monqy> keyboards always forever
06:30:17 <monqy> don't have to cover screen with hand, don't have to smear screen, faster to hit keys than drag hand, less awkward to hit keys than touch screen
06:30:20 <monqy> what else
06:31:31 <zzo38> I thought of all those reasons. One more is that there can be room on screen for all text/graphics while typing the keys, instead of having mode-switching on-screen keyboards or other similar things to that.
06:32:33 <monqy> onscreen keyboards suffer from acute awkward
06:33:42 <zzo38> And even another, is that if you have a separate keyboard then you can connect other devices there, such as separate number pad if you prefer it separate rather than joined; that you can build keyboard separately from the user interface; you can (except on some old terminals) physically move the keyboard differently than how the display is (allowing you to set viewing/typing angles)...
06:34:24 <zzo38> And, that in cases where mouse is also useful, sometimes it is useful to use some keys at the same time as that.
06:34:37 <monqy> I think the thing that annoyed me most about the windows 8 video was the fast and fluid app switching
06:35:16 <monqy> cycling through everything until hitting the right one, was it
06:48:34 -!- jcp has quit (Ping timeout: 240 seconds).
06:49:57 -!- pikhq has quit (Ping timeout: 252 seconds).
06:52:07 <coppro> touchscreens are not gimmicky
06:52:31 <coppro> they can be used in a gimmicky fashion
06:53:03 <coppro> but they have a wider range of input than a mouse and a well-designed interface can take advantage of this
06:53:47 -!- zzo38 has quit (Quit: Am I strictly worse than a desktop environment?).
06:54:00 -!- jcp has joined.
06:56:09 -!- myndzi has quit (Ping timeout: 260 seconds).
06:57:07 -!- myndzi has joined.
06:57:54 -!- pikhq has joined.
07:18:29 -!- pikhq_ has joined.
07:18:34 -!- pikhq has quit (Ping timeout: 260 seconds).
07:44:37 -!- azaq231 has joined.
07:45:20 -!- azaq23 has quit (Ping timeout: 244 seconds).
07:48:59 -!- azaq231 has quit (Ping timeout: 250 seconds).
07:49:20 -!- Kustas has joined.
07:51:29 -!- azaq23 has joined.
07:56:42 -!- oerjan has joined.
08:04:24 <oerjan> <pikhq_> If you *really* feel nice, become a Linden and get them to start using ECMAScript or Lua or something else non-revolting.
08:05:02 <oerjan> why do i get the feeling that this LSL thing you keep talking about is kept retarded precisely to _keep_ people from writing such stuff as Sgeo is trying to?
08:05:28 <oerjan> (i'm sure general TC computation is pretty resource intensive, after all)
08:05:42 <Sgeo> LSL is TC
08:05:59 <oerjan> yes but not in a convenient way, it seems
08:06:33 <Sgeo> I mean, except for bounds on how much memory is accessible, but that's like any real computer
08:06:43 <oerjan> hm
08:06:59 <Sgeo> Well, it has non-fixed-sze lists, loops, if statements, etc.
08:07:36 <Sgeo> somelist += [morestuff]; probably works in the crappy way it looks like, but it still works
08:09:14 <oerjan> <Sgeo> Is it just me, or does this require being able to see the stack prior to the most recent function call?
08:09:32 <oerjan> iiuc you need to be able to follow pointers into the stack to move content to the heap
08:09:47 <oerjan> although you don't need to know the stack format
08:10:13 <Sgeo> LSL doesn't have pointers..
08:10:24 <oerjan> bit of a problem right there
08:10:38 <oerjan> what about mutable lists?
08:10:40 <Sgeo> Hmm, if I replace function calls with gotos, maybe I could deal with it that way
08:10:53 <Sgeo> oerjan, does something += [stuff] count as mutable?
08:11:09 <Sgeo> We have mutable triplets and quadruplets of floats! (Useless)
08:12:11 <Sgeo> There is also a goto. It's a bit broken.
08:12:42 <oerjan> oh hm i think the pointer following is essentially a GC
08:13:05 <Sgeo> I was thinking I'd just store all the data and scope stuff in a few globally accessible lists
08:13:16 <Sgeo> And supply functions to get to those
08:13:25 <oerjan> make your own heap, check
08:13:37 <Lymia> Isn't Java technically Turing Complete even though C++, etc arn't?
08:14:03 <oerjan> Sgeo: so lists are immutable then?
08:14:10 <Sgeo> Yes
08:14:14 <Sgeo> As far as I can tell
08:14:32 <oerjan> oh well
08:15:00 <oerjan> Lymia: could well be, C/C++ are non-TC for rather stupid pointer-size reasons
08:15:15 <Sgeo> Do I actually need a heap, can I just have a stack?
08:15:22 <Lymia> oerjan, can anything that low level be TC?
08:15:33 * oerjan swats Lymia -----###
08:16:25 <oerjan> have you even _looked_ at some of the formalisms that _are_ TC? :D
08:17:17 <monqy> mmmm
08:17:23 <oerjan> SUBLEQ is TC, and far lower level than C. it achieves this by simply not having stupid size bounds on its cell contents.
08:17:35 <monqy> I was about to mention subleq too
08:17:44 <Lymia> I see.
08:18:02 <monqy> is bct low-level at all?
08:18:04 <oerjan> (i mention SUBLEQ because it's also essentially interchangeable int/pointer based)
08:18:27 <oerjan> monqy: i'd say so
08:18:39 <oerjan> horribly few abstractions there...
08:19:41 <Sgeo> I should really, really figure out why I'm under the impression that my language doesn't need a heap
08:20:09 <monqy> under an impression and you don't know why? ouch
08:20:09 <oerjan> Sgeo: i am pretty sure i've read several times that general functional programming requires memory layouts which support GC
08:20:47 <oerjan> (basically once you start throwing higher-order functions around, it becomes frequently impossible to know object lifetimes statically)
08:20:47 <Sgeo> oerjan, is that in relation to my heap issue?
08:21:14 <Sgeo> I think my confusion is because I wasn't sure that I'd be GCing anything
08:21:18 <Sgeo> Or that I'd... hmm
08:21:26 <oerjan> Sgeo: yeah. unless you have a very controllable stack (which means you can essentially _use_ it as a heap)
08:21:54 <Sgeo> I should really read up on this
08:22:24 <Sgeo> I'm not even sure why it's called a stack. The way I'm imagining it, it would be a stack, but that's only because of nested... scope.. ish
08:22:30 <oerjan> Sgeo: there have been experiments on using so-called region inference to determine object lifetime in ML variants to avoid heap. however it's an advanced algorithm to achieve _and_ you sometimes need parts to be in a GC-able heap anyway.)
08:22:35 <oerjan> *-)
08:22:40 -!- Le_Aragorn has joined.
08:23:10 -!- Le_Aragorn has quit (Remote host closed the connection).
08:23:28 <monqy> Sgeo: what
08:24:14 <monqy> isn't it because you traditionally store call frames in a stack
08:24:33 <monqy> and "stack variables", or whatever they're called, go in the call frames
08:24:38 <Sgeo> Oh
08:24:40 <monqy> pardon me if I'm nonsense
08:24:53 <oerjan> sounds reasonable to me
08:25:06 <Sgeo> That makes sense
08:25:20 <oerjan> scheme, because of call/cc, sometimes needs to put call frames on the heap
08:25:43 <Sgeo> Wouldn't a CPS thing not have call frames as such?
08:25:51 <Sgeo> Or am I now misunderstanding "call frame"
08:26:01 <Lymia> I think it still would.
08:26:05 <oerjan> it would have closures instead, which essentially contained the same information
08:26:28 <Lymia> def a(v0,v1,continuation): continuation(v0); continuation(v1)
08:26:49 <oerjan> Lymia: some dead code at the end there
08:27:19 <Lymia> I mean in CPS, that is
08:27:32 <oerjan> Lymia: still dead code
08:27:38 <Lymia> Ah.
08:27:45 <oerjan> continuations not returning is pretty much their _definition_
08:27:46 <Lymia> Does CPS not allow continuations that return?
08:27:50 <Lymia> I see.
08:27:52 <monqy> hehehehh
08:28:09 <monqy> if you want it to "return", give it a continuation to which to return
08:28:16 <oerjan> yeah
08:28:20 <Lymia> :)
08:29:33 <oerjan> take a look at http://c2.com/cgi/wiki?OriginalIoLanguage
08:30:55 <oerjan> argh the amalthea page is gone :(
08:32:01 <oerjan> ooh someone's made a new implementation in haskell
08:32:19 <oerjan> http://hackage.haskell.org/packages/archive/Ganymede/0.0.0.5/Ganymede.cabal
08:38:28 <oerjan> <CakeProphet> (?i)yo dawg, I heard you like (.*?)(e?s)? so we put a \1 in your .*? so you can .*? while you .*?[.!]?
08:38:58 <oerjan> i think that e? is a bit tricky since you sometimes want it captured and sometimes not
08:39:51 <oerjan> 20:13:57 <pikhq_> Yo dawg, I heard you like ZALGO HE WHO WAITS BEHIND THE WALL!!!
08:39:54 <oerjan> 20:14:05 <pikhq_> </memutation>
08:40:06 <oerjan> insufficient unicode
08:53:37 -!- Vorpal has joined.
09:00:40 -!- Wiz126 has quit (Read error: Connection reset by peer).
09:02:56 -!- MigoMipo has joined.
09:11:04 -!- azaq23 has quit (Read error: Operation timed out).
09:14:37 -!- azaq23 has joined.
09:32:16 <Lymia> So.
09:32:23 <Lymia> We have a person with a script that does this: \o/
09:32:24 <myndzi> |
09:32:24 <myndzi> |\
09:32:29 <Lymia> I now have a quesion.
09:32:31 <Lymia> question*
09:32:37 <Lymia> What percentage of golfed perl code triggers that?
09:34:53 <oerjan> there was some triggering during the recent deadfish golfing
09:36:58 -!- aloril has quit (Ping timeout: 246 seconds).
09:38:54 -!- pikhq_ has quit (Ping timeout: 240 seconds).
09:39:01 -!- pikhq has joined.
09:49:13 -!- aloril has joined.
09:56:58 -!- aloril has quit (Read error: Operation timed out).
10:05:10 -!- Patashu has joined.
10:11:33 -!- aloril has joined.
10:16:54 -!- cheater__ has joined.
10:22:08 -!- Phantom_Hoover has joined.
10:23:05 <Phantom_Hoover> Blancmange.
10:23:53 <Slereah_> Are we gonna do a Monty Python bit?
10:26:31 <oerjan> A Monty Python once bit my sister
10:27:45 -!- monqy has quit (Quit: hello).
10:27:53 <Phantom_Hoover> Who needs Monty Python when we have oerjan.
10:28:34 <oerjan> INDEED
10:29:00 <oerjan> What have Monty Python ever done for us?
10:30:37 -!- Vorpal has quit (Ping timeout: 250 seconds).
10:36:03 <Phantom_Hoover> NOTHING
10:58:08 <Sgeo> Ooooooooh http://www.irregularwebcomic.net/special/educational.html
10:58:30 <Sgeo> <3
11:05:23 -!- BeholdMyGlory has joined.
11:19:07 -!- sebbu has quit (Read error: Connection reset by peer).
11:19:38 -!- sebbu has joined.
11:20:12 <Sgeo> http://www.irregularwebcomic.net/2391.html how I feel about my project
11:20:39 -!- SimonRC has quit (Ping timeout: 260 seconds).
11:22:22 -!- SimonRC has joined.
11:25:08 <Phantom_Hoover> Sgeo, suggest you flip a coin.
11:41:05 -!- SimonRC has quit (Ping timeout: 252 seconds).
11:41:11 -!- SimonRC has joined.
11:54:10 <oerjan> > 2281-324
11:54:11 <lambdabot> 1957
11:55:38 -!- Vorpal has joined.
12:03:37 -!- pikhq_ has joined.
12:03:52 -!- pikhq has quit (Ping timeout: 258 seconds).
12:16:14 -!- azaq23 has quit (Ping timeout: 240 seconds).
12:22:14 -!- azaq23 has joined.
12:25:37 <Phantom_Hoover> oerjan, I just heard that the Norwegian for 'kth' sounds like the Norwegian for 'horny'.
12:25:51 <Phantom_Hoover> How did you ever learn maths over the giggles.
12:28:24 <Vorpal> Phantom_Hoover, maybe they used "nth" instead of "kth"?
12:28:57 <Phantom_Hoover> Vorpal, doing that is almost certainly more trouble than it's worth.
12:29:40 <Vorpal> bbl
12:37:36 -!- oerjan has quit (Quit: Yes, kåte ~ horny).
12:54:02 -!- FireFly has joined.
13:04:41 <Sgeo> !@#$ how did I miss this email? https://lists.secondlife.com/pipermail/secondlifescripters/2011-June/006229.html
13:18:10 -!- MigoMipo_ has joined.
13:21:35 -!- MigoMipo has quit (Ping timeout: 240 seconds).
13:23:31 <Sgeo> Actually, I don't think that's split properly
13:43:35 -!- SimonRC has quit (Ping timeout: 260 seconds).
13:43:42 -!- SimonRC has joined.
13:51:15 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
13:52:14 -!- Phantom_Hoover has joined.
14:12:48 -!- Kustas has quit (Quit: back in a few).
14:17:38 <Sgeo> Why is Twittch in my feeds?
14:17:42 <Sgeo> It's a stupid comic
14:17:57 <Sgeo> I think maybe I saw one in a presentation somewhere
14:27:52 <Phantom_Hoover> Who knows.
14:28:17 -!- SimonRC has quit (Ping timeout: 252 seconds).
14:28:36 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:28:58 -!- SimonRC has joined.
14:29:14 -!- pikhq_ has quit (Ping timeout: 240 seconds).
14:29:19 -!- pikhq has joined.
14:54:48 <CakeProphet> Just got back from a job interview at Wal-Mart. I think I give them a pretty impression. Mainly because I'm not a meth addict.
14:57:50 -!- copumpkin has joined.
15:09:28 <CakeProphet> lol pretty impression
15:09:33 <CakeProphet> yes, I was very cute.
15:14:01 -!- ais523 has joined.
15:18:26 <olsner> which you wouldn't have been if you were a meth addict
15:21:43 -!- copumpkin has quit (Remote host closed the connection).
15:22:10 -!- copumpkin has joined.
15:23:05 -!- pumpkin has joined.
15:24:10 -!- Plazma has left ("Leaving").
15:27:08 -!- copumpkin has quit (Ping timeout: 276 seconds).
15:40:59 <Sgeo> I'm all for going against the mainstream, but that should NOT be a language's main pitch
15:41:02 <Sgeo> http://www.eiffel.com/general/awareness/try_eiffel.html
15:41:42 <Phantom_Hoover> Eiffel: the language of hipsters.
15:41:56 <Phantom_Hoover> Named, of course, after the tower in the city of hipsters.
15:41:58 <Patashu> how is eiffel? I heard it had more sensical types than java
15:42:35 -!- Tritonio has joined.
15:53:55 <Sgeo> I can't helped but be overwhelmed by the buzz buzz buzz BS on the Eiffel site
15:54:02 <Sgeo> And yet, I know I'm going to look into it
15:54:06 <Sgeo> Again
15:55:36 <olsner> wow, that site ... does not look like the site of anything good
15:56:41 <Patashu> those developers have the most :colbert: expression
15:57:07 <Patashu> http://i.somethingawful.com/forumsystem/emoticons/emot-colbert.gif
15:57:31 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:59:31 -!- pumpkin has changed nick to copumpkin.
16:04:13 <CakeProphet> Completely object-oriented approach. Eiffel is a full-fledged application of object technology, not a "hybrid" of O-O and traditional concepts.
16:04:16 <CakeProphet> yeah, no thanks.
16:05:04 <CakeProphet> we wouldn't want those nasty functions and top-level non-object things messing up our "object technology."
16:07:34 <CakeProphet> The name of the class is HELLO. Any class may contain "features"; HELLO has just one, called make. The create clause indicates that make is a "creation procedure", that is to say an operation to be executed at class instantiation time. The class could have any number of creation procedures.
16:07:42 <CakeProphet> cool, so now I get to memorize non-standard constructor names.
16:12:09 <CakeProphet> In modeling terms, client roughly represents the relation "has" and heir roughly represents "is". For example we may use Eiffel classes to model a certain system and express that every child has a birth date (client relation) and is a person (inheritance).
16:12:18 <CakeProphet> "roughly" as in "exactly the same thing"
16:33:24 <Phantom_Hoover> ...oh god
16:33:27 <Phantom_Hoover> I've run out of Futurama.
16:33:59 <Phantom_Hoover> Wait, no, there's a season 6.
16:47:38 -!- cheater__ has quit (Quit: Leaving).
16:56:20 <ais523> bleh, Slashdot is down, except for the homepage
16:56:27 <ais523> when logged in, at least
17:09:06 -!- pikhq has quit (Ping timeout: 240 seconds).
17:09:10 -!- pikhq has joined.
17:40:03 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
17:54:49 -!- Kustas has joined.
17:55:20 -!- Tritonio has quit (Quit: Leaving).
18:05:44 -!- oerjan has joined.
18:19:12 -!- monqy has joined.
18:19:21 <oerjan> 08:35:06 <Sgeo> I can't helped but be overwhelmed by the buzz buzz buzz BS on the Eiffel site
18:19:25 <oerjan> 08:35:13 <Sgeo> And yet, I know I'm going to look into it
18:19:36 <oerjan> and thus we realized that Sgeo is a moth
18:33:56 -!- oklopol has joined.
19:05:01 <oklopol> elliott i need you
19:24:37 -!- sebbu has quit (Read error: Connection reset by peer).
19:25:03 -!- sebbu has joined.
19:25:03 -!- sebbu has quit (Changing host).
19:25:03 -!- sebbu has joined.
19:27:52 -!- Phantom_Hoover has joined.
19:32:01 <Phantom_Hoover> "people need to stop miss-using the concept of double standard.
19:32:01 <Phantom_Hoover> Boys and girls are different. Treating them differently is NOT a double standard." — Reddit commentor.
19:33:03 <oklopol> i'm sure everyone has a fascinating opinion on this
19:33:10 <oklopol> let's hear them ppl?
19:33:43 <oklopol> i ate too much cheese
19:33:57 <olsner> I did *not* eat too much cheese
19:34:15 <Phantom_Hoover> oklopol, you should probably talk to Gregor about that.
19:35:56 -!- Kustas has quit (Quit: continue some other time).
19:45:40 <oklopol> house is... operating on himself
19:46:13 <oklopol> i've been waiting for this for years
19:46:34 <Phantom_Hoover> Houses all the way down.
19:52:54 <oklopol> the new season is prolly the best sofar
19:53:15 <oklopol> then again that's how series always work
20:00:06 -!- TeruFSX has joined.
20:07:41 <Phantom_Hoover> oklopol, yes, of course.
20:14:51 <pikhq> oklopol: Nobody sane is arguing for complete and utter ignorance of real distinctions.
20:15:12 <pikhq> oklopol: Just calling out real double standards that exist in our culture.
20:16:19 <oklopol> pikhq: i don't doubt that everyone here (except me) has a very nice and neat opinion. i'm just currently extremely bored with this topic family.
20:16:34 <oklopol> so any opinion irks me to some extent.
20:16:36 <oklopol> well not really
20:17:02 <Phantom_Hoover> oklopol, I wasn't really looking for opinions beyond "what an idiot".
20:17:23 <oklopol> Phantom_Hoover: well i'm scared easily!
20:17:48 <Phantom_Hoover> oklopol, don't look behind you, then.
20:18:01 <oklopol> please don't do that :D
20:18:05 <pikhq> Phantom_Hoover: That person is a moron.
20:18:13 <pikhq> Phantom_Hoover: Happy?
20:18:17 <Phantom_Hoover> pikhq, yep.
20:18:18 <oklopol> Phantom_Hoover is always happy
20:18:30 <oklopol> well, content enough.
20:18:31 <Phantom_Hoover> oklopol, except for when sshc is around.
20:18:50 <oklopol> i'm not that familiar with sshc
20:18:57 <oklopol> where the fuck is that elliott BITCH
20:19:05 * oklopol tries new approach
20:19:23 <oklopol> called the classic oklopol approach
20:21:46 <pikhq> Wow. E17 is still in development? I think it's trying to beat DNF or something.
20:22:09 <Phantom_Hoover> E17?
20:23:49 <pikhq> Enlightenment, version 17.
20:24:06 <pikhq> Began development in 2000.
20:24:12 <pikhq> Still not released.
20:24:16 <Phantom_Hoover> Not as bad as Project Xanadu.
20:24:23 <Phantom_Hoover> That's older than my parents.
20:25:33 <pikhq> Though at least it's not complete vaporware; SVN snapshots are readily available...
20:25:47 <pikhq> Along the way, it's gotten severe feature-creep.
20:26:14 <pikhq> Last I checked, it managed to turn into a full DE with its own widget library.
20:27:48 -!- azaq23 has quit (Quit: Leaving.).
20:44:22 -!- TOGoS has joined.
20:44:33 -!- TOGoS has left.
20:48:06 -!- augur has quit (Remote host closed the connection).
21:04:09 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
21:08:26 -!- augur has joined.
21:08:48 -!- zzo38 has joined.
21:13:44 <zzo38> What is a Nexuiz controversy? (It is mentioned in the logs, but now I don't know a lot about it)
21:17:58 <zzo38> Yesterday I quit when sleeping, after coppro wrote "[touch screens] have a wider range of input than a mouse [...]" and no answer yet. I can say, yes it may have sometimesm multitouch (and maybe even pressure-sensitive), but I think in most cases that would not be so useful (there are cases where it helps).
21:18:39 <oklopol> i have a LOT of fingers so it's nice to be able to use them all.
21:18:52 <Phantom_Hoover> How many fingers do you have oko.
21:19:02 <zzo38> oklopol: Ten? Or more?
21:19:10 <oklopol> dude i don't spend my days counting fingers
21:19:27 <Phantom_Hoover> But what if you want to count things.
21:19:30 <oklopol> but let's just say one digit is not enough to count my digits.
21:20:15 <zzo38> How much total do you think you get if you multiply together the number of fingers on each person's left hand in the world?
21:20:19 <olsner> ... it is rumored that none have yet seen all of any oklo's fingers
21:20:36 <oklopol> ^
21:20:56 <Phantom_Hoover> The number of oko's fingers is not computable.
21:21:09 <olsner> nor is it comprehensible
21:21:12 <zzo38> With keyboard/mouse, you can do most things with keyboard (especially if you can type fast), and even push multiple keys at once, and you can have some things that can be operated by keyboard or mouse, depending on what you are doing; you can use multiple mouse buttons (and even hover), and you can use keys and mouse at same time
21:21:14 <oklopol> zzo38: good one lololol
21:21:19 <oklopol> i get it
21:21:36 <zzo38> oklopol: You get what?
21:22:32 <oklopol> well you know that 0 joke
21:22:51 <oklopol> it was funny because it was true
21:26:10 -!- SimonRC has quit (Ping timeout: 260 seconds).
21:31:43 <Phantom_Hoover> Where is elliott.
21:31:49 <Phantom_Hoover> Perhaps he has been kidnapped by aliens.
21:32:17 -!- SimonRC has joined.
21:33:01 <zzo38> Perhaps elliott was kidnapped by elliott.
21:36:35 <olsner> i.e. by aliens
21:37:39 <zzo38> Are you sure?
21:37:56 <olsner> no
21:38:01 <zzo38> Good.
21:38:12 <olsner> the aliens don't want us to know
21:38:21 <zzo38> That isn't the reason.
21:43:22 <Phantom_Hoover> Yes.
21:43:55 <Phantom_Hoover> The reason is that I am an alien and my alien intel tells me that he was kidnapped by werewolves.
21:55:42 <zzo38> I don't think so. I think elliott was kidnapped by elliott.
21:57:09 * Phantom_Hoover checks the phase of the moon.
21:57:22 <olsner> maybe elliott is a werewolf hivemind that staged its own kidnapping
21:57:34 <Phantom_Hoover> It's very slightly past new.
21:57:42 <Phantom_Hoover> He's clearly a cowerewolf.
21:58:04 <Phantom_Hoover> Or wait, the phase is shifted by pi, so he's a -werewolf.
22:00:09 <oerjan> those pesky antiwerewolves
22:00:59 <Phantom_Hoover> Not as bad as the tanwerewolves.
22:01:11 <oerjan> wat
22:02:06 <Phantom_Hoover> They go from normal to infinitely wolfy as the moon approaches the first quarter, then turn infinitely antiwolfy and increase to normality.
22:04:09 <oerjan> a cosecantwolf otoh is a very pathetic creature.
22:04:57 <oerjan> *-were-
22:05:51 <Phantom_Hoover> It's nothing compared to the 1/werewolf.
22:06:42 <Phantom_Hoover> Alpha's alternate form for cosec: -(2 sin(x))/(cos(2 x)-1)
22:08:21 <oerjan> if you bite a cowerewolf, it turns permanently into a cohuman
22:11:24 -!- MigoMipo_ has quit (Read error: Connection reset by peer).
22:11:28 <CakeProphet> anyone not have a Dropbox account and want one?
22:15:32 -!- ais523 has quit (Remote host closed the connection).
22:17:46 <Phantom_Hoover> I don't have a Dropbox account and I want one inasmuch as I have no reason not to want one.
22:34:38 <zzo38> I don't need one
22:37:20 -!- TeruFSX has quit (Ping timeout: 260 seconds).
22:46:42 <Sgeo> <3 /r/askscience
22:52:09 <Phantom_Hoover> Finally, something Sgeo said that I can agree with.
22:55:02 <CakeProphet> is that kind of like /r/ on 4chan?
22:55:12 <Phantom_Hoover> ...no.
22:55:16 <Phantom_Hoover> It's a subreddit.
22:55:23 <Phantom_Hoover> Dedicated to questions about science.
22:56:31 <pikhq> CakeProphet: All subreddits are of form www.reddit.com/r/subreddit
22:57:22 <CakeProphet> ah okay.
22:57:44 <CakeProphet> so there's no porn involved? Suddenly I lost interest.
22:58:08 <Phantom_Hoover> Sgeo, FWIW, conservation laws arise from fundamental symmetries of models, so I am highly suspect of RobotRollCall's claim.
22:58:16 <Phantom_Hoover> *suspicious
22:58:56 <Sgeo> I can't trust RobotRollCall?
22:58:58 * Sgeo has a sad
22:59:33 <Phantom_Hoover> Well, she's definitely been wrong at least once before, but that was on a rather minor point.
23:01:28 * Sgeo wikipedias time-translation symmetry
23:01:30 <CakeProphet> son, I am disappoint.
23:03:11 * Sgeo still doesn't understand
23:03:39 <Phantom_Hoover> I don't understand Noether's whole symmetry stuff, although it's firmly on my list of Science I Need To Understand Some Day.
23:05:18 <Sgeo> I don't know whether to tell RRC that I still don't understand, or just wikipedia
23:06:28 <Sgeo> http://en.wikipedia.org/wiki/Conservation_of_energy#Noether.27s_theorem
23:06:50 -!- elliott_ has joined.
23:07:03 <Phantom_Hoover> Hello elliott_ what is it like being a -werewolf.
23:07:21 <elliott_> what
23:08:12 <zzo38> elliott_: Read the logs if you wonder what these things means please
23:08:25 <elliott_> 01:13:01: <Sgeo> Why can't I do first-class continuations without CPS?
23:08:25 <elliott_> 01:22:33: <Sgeo> LSL does, in fact, have a goto
23:08:25 <elliott_> 01:22:38: <Sgeo> This would have been good to remember.
23:08:27 <elliott_> uhh
23:08:30 <elliott_> fail
23:09:31 <Sgeo> elliott_, it was just a matter of having more options and not forgetting about them. I had to vaguely wonder if goto was useful, but since I didn't remember that they were present, that option, which I now don't consider likely to be useful, was closed off to me.
23:09:44 <CakeProphet> zzo38: he'll work his way down I'm sure. :)
23:17:30 <wareya> If you take the sine harmonics that make up a triangle wave, and do them with square waves instead of sine waves
23:17:37 <wareya> woah wrong window
23:18:03 <wareya> why am I even in here anymore
23:18:04 -!- wareya has left.
23:18:29 <CakeProphet> the.... sine harmonics? oh... right.
23:21:19 <CakeProphet> I'm pretty sure if you took the harmonics of a triangle wave and turned them into square waves you would end up with a really awful tone..
23:21:35 <Phantom_Hoover> Triangle wavewerewolf.
23:21:52 <CakeProphet> but hey, it would be spectrally dense. Which is useful.
23:25:28 <Phantom_Hoover> Clearly wareya left to avoid this biting criticism.
23:26:30 <oerjan> um would it actually?
23:27:10 <CakeProphet> well, it depends on what he meant by "do them with square waves"
23:27:41 <oerjan> i assumed he meant replacing every sine component with a square component of the same frequency
23:28:03 <CakeProphet> but I assume he means substitute the sine component with a square wave in time domain. A triangle wave has all odd harmonics that roll off as the multiple increases. Square wave also has odd harmonics but with less rolloff
23:28:36 <oerjan> yes, so wouldn't the combination have m*n harmonics for m, n odd
23:28:49 <CakeProphet> yes.
23:29:29 <CakeProphet> each odd harmonic would be transformed into all of the odd multiples of itself.
23:29:39 <CakeProphet> which, I'm guessing, has a very noisy quality to it overall.
23:30:12 <CakeProphet> oerjan: well, there might be so overlap on the m*n actually.
23:30:15 <CakeProphet> *some
23:30:49 <CakeProphet> :t odd
23:30:49 <oerjan> um yes but you still get only odd ones
23:30:49 <lambdabot> forall a. (Integral a) => a -> Bool
23:31:56 <CakeProphet> oerjan: hmm... well, do you? You're taking odd multiples of each odd triangle harmonic. So it would be "shifted" in relation to the odd harmonics of the original triangle wave. Is that still "all odd harmonics" then?
23:32:28 <CakeProphet> ..forgive me if that's a dumb question. :P
23:32:54 <CakeProphet> :t (>>=)
23:32:55 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m a -> (a -> m b) -> m b
23:32:55 <oerjan> um shifting doesn't change the frequency
23:33:21 <oerjan> or erm
23:33:33 <oerjan> multiples of odd numbers are odd
23:33:42 <CakeProphet> ah, right.
23:33:54 <CakeProphet> so basically you would get.... a really loud square wave I think?
23:33:54 <oerjan> *products
23:34:00 <CakeProphet> or pseudo-square wave.
23:34:01 <oerjan> i dunno
23:36:41 <CakeProphet> > odds >>= (\x -> foldl1 (*) (repeat x) (take 5 odds) where odds = filter odd [1..]
23:36:42 <lambdabot> <no location info>: parse error on input `where'
23:37:03 <CakeProphet> > let odds = filter odd [1..] in odds >>= (\x -> foldl1 (*) (repeat x) (take 5 odds)
23:37:04 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
23:37:07 <CakeProphet> lol.
23:37:16 <CakeProphet> I should never try to program Haskell on the fly.
23:37:22 <CakeProphet> well, right now anyways.
23:37:30 <oerjan> missing )
23:37:41 <CakeProphet> > let odds = filter odd [1..] in odds >>= (\x -> foldl1 (*) (repeat x) (take 5 odds))
23:37:42 <oerjan> also, odds = [1,3 ..]
23:37:42 <lambdabot> No instance for (GHC.Real.Integral ([a] -> [b]))
23:37:42 <lambdabot> arising from a use of `...
23:37:48 <CakeProphet> oerjan: ah yes.
23:38:03 <CakeProphet> bleh, I need to go.
23:38:18 <CakeProphet> I WILL INVESTIGATE THIS FURTHER WHEN I HAVE MADE A SIGNAL PROCESSING LIBRARY IN HASKELL.
23:38:28 -!- wareya has joined.
23:38:39 <elliott_> WAREYA HAS RETURNED TO STAND TRIAL
23:40:29 <CakeProphet> wareya: so what kind of waveform do you get when you substitute the harmonics of a triangle wave with all of its odd harmonics (a.k.a. turn the sine wave into a square wave)
23:41:36 <CakeProphet> I would think it's an amplified triangle-like or square-like wave, since it still has odd components.
23:42:10 <Phantom_Hoover> Hungary, I have decided, is unfairly cool.
23:42:10 <wareya> the same kind of waveform as when you do the other way around, with substituting the harmonics that make up a square wave with triangles
23:43:24 <zzo38> Try it, see what happen, then!!
23:43:41 <zzo38> Make both the mathematical formulas, the graph, and the sound.
23:46:15 <elliott_> Phantom_Hoover: wat.
23:47:54 <CakeProphet> wareya: it would have a kind of reverse roll-off effect, where higher harmonics are louder than the lower onces.
23:49:09 <wareya> Actually, many of the higher ones end up canceling eachother out
23:49:50 <CakeProphet> how does that happen?
23:50:19 <wareya> they're out of phase
23:50:42 <CakeProphet> aaah.
23:52:21 <CakeProphet> well, now that my curiosity is abated. I must go now. Bye.
23:56:37 -!- CakeProphet has quit (Ping timeout: 250 seconds).
2011-06-04
00:05:37 -!- CakeProphet has joined.
00:05:37 -!- CakeProphet has quit (Changing host).
00:05:37 -!- CakeProphet has joined.
00:10:57 <Phantom_Hoover> http://www.reddit.com/r/videos/comments/hqw18/people_of_earth/c1xm35t
00:10:59 <Phantom_Hoover> XD
00:14:04 -!- augur has quit (Remote host closed the connection).
00:18:06 -!- CakeProphet has quit (Ping timeout: 240 seconds).
00:19:40 -!- oerjan has quit (Quit: Good night).
00:39:42 <Sgeo> I'm going to give http://www.drchinese.com/David/EPR_Bell_Aspect.htm a read, on the recommendation of someone in /r/sciencefaqs
00:40:19 <Sgeo> WOT distrusts the site for some reason
00:45:23 <elliott_> just went there its got viruses dont go
00:45:27 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:46:49 <Sgeo> ?
00:47:20 <Sgeo> I assume you're being sarcastic
00:49:34 -!- Vorpal has quit (Read error: Operation timed out).
00:50:56 <elliott_> no
00:50:57 <elliott_> its really bad
00:50:58 -!- wareya has quit (Read error: Connection reset by peer).
00:51:00 <elliott_> theyre all over my computer
00:51:40 -!- wareya has joined.
00:55:05 <Sgeo> "(it must be simple because I did it!"
00:58:22 <Phantom_Hoover> http://www.reddit.com/r/math/comments/hqwhh/steven_wolfram_is_extremely_smart_but_kind_of_a/
00:58:35 <Phantom_Hoover> This is possibly the greatest understatement ever made.
00:58:52 <Phantom_Hoover> Oh my god Feynman sent a letter to him.
00:58:58 <elliott_> yeah its amazing
00:59:07 <elliott_> hitler is extremely charismastic but kind of a jerk
00:59:20 <Phantom_Hoover> http://www.lettersofnote.com/2010/06/you-dont-understand-ordinary-people.html
00:59:34 <Phantom_Hoover> Feynman: now my favourite person.
00:59:44 -!- CakeProphet has joined.
00:59:45 -!- CakeProphet has quit (Changing host).
00:59:45 -!- CakeProphet has joined.
00:59:59 <Phantom_Hoover> CakeProphet, behold http://www.lettersofnote.com/2010/06/you-dont-understand-ordinary-people.html
01:00:13 <elliott_> RPF;ht is the best signature.
01:00:32 <Phantom_Hoover> I wonder if I should point out ais' experience with him.
01:01:31 <elliott_> has ais actually met Wolfram?
01:01:48 <elliott_> Hmm, some people in the comments are implying that Feynman's letter insinuates that women are non-technical, but I can't actually see that in the letter.
01:01:50 <elliott_> Am I missing something?
01:02:17 <Phantom_Hoover> "Find a way to do your research with as little contact with non-technical people as possible, with one exception, fall madly in love!"
01:02:33 <elliott_> Oh, I see, people are assuming that when Feynman says "fall madly in love", he means with a female, and that his "exception" doesn't mean "don't /limit/ yourself to technical people" but "/only/ consider non-technical people".
01:02:35 <Phantom_Hoover> I suppose you could read it that way.
01:02:49 <elliott_> So heterosexism + reading comprehension failure.
01:02:50 <elliott_> Awesome.
01:05:24 -!- CakeProphet has quit (Ping timeout: 244 seconds).
01:07:05 -!- CakeProphet has joined.
01:07:05 -!- CakeProphet has quit (Changing host).
01:07:05 -!- CakeProphet has joined.
01:20:24 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:23:29 * pikhq builds sabotage...
01:24:35 <pikhq> Which, incidentally, has a pretty awesome build setup.
01:25:37 <Sgeo> I have no idea what an eigenfunction or eigenvalue is
01:25:43 <Sgeo> EPR refers pretty heavily to those
01:34:37 <pikhq> Eigenfunction? Context?
01:41:19 -!- augur has joined.
01:43:20 -!- CakeProphet has quit (Ping timeout: 252 seconds).
01:44:51 <Sgeo> pikhq, http://www.drchinese.com/David/EPR.pdf
01:44:56 -!- CakeProphet has joined.
01:44:56 -!- CakeProphet has quit (Changing host).
01:44:56 -!- CakeProphet has joined.
01:45:00 <Sgeo> Einstein et. al's paper
01:46:18 <pikhq> *Aaaah*, it's a generalisation of the concept of eigenvector.
01:46:58 -!- augur has quit (Remote host closed the connection).
01:47:02 <pikhq> Sgeo: Long story short: you should have gone to a better college and took linear algebra.
01:47:19 <Sgeo> I think I'm going to gloss over the math in these papers
01:52:19 <Sgeo> Do I understand EPR right: If you have two previously interacting systems, and measure, say, position of one, and velocity of the other, you could use the math from the former to get the position of the other as well, therefore.... something?
01:54:20 <elliott_> pikhq: good joke
01:54:58 <pikhq> elliott_: Okay, okay, *real answer*.
01:55:04 <pikhq> Sgeo: You should learn linear algebra.
01:57:22 * Sgeo wikis EPR paradox
01:57:48 <Sgeo> Ooh, I vaguely got my understanding correct
02:08:04 <pikhq> https://secure.wikimedia.org/wikipedia/en/wiki/Vactrain
02:08:06 * pikhq wants
02:09:36 <elliott_> https lol
02:09:41 <Sgeo> How much would a vactrain ride cost?
02:09:41 <elliott_> SECRET WIKIPEDIA BROWSING
02:09:46 <elliott_> Sgeo: five thousand nines
02:09:58 <elliott_> pikhq: BUT WHAT IF THE WINDOW BREAKS AND THE VACUUM GETS INTO THE TRAIN
02:09:59 <elliott_> WE'LL ALL DIE
02:11:14 * Sgeo has no idea how long it currently takes to get from NY to London
02:11:17 <Sgeo> Nor what the cost is
02:11:24 <Sgeo> I don't travel much
02:11:29 -!- pikhq_ has joined.
02:14:23 <elliott_> Sgeo: it takes 9 time intervals
02:14:39 * Sgeo slaps elliott
02:14:54 <elliott_> q
02:15:00 -!- pikhq has quit (Ping timeout: 276 seconds).
02:22:51 -!- augur has joined.
02:35:09 -!- augur has quit (Remote host closed the connection).
02:37:12 -!- Patashu has joined.
02:37:46 -!- elliott_ has quit (Remote host closed the connection).
02:38:12 -!- elliott has joined.
02:40:09 -!- elliott has quit (Remote host closed the connection).
02:40:14 -!- elliott_ has joined.
02:44:15 -!- CakeProphet has quit (Ping timeout: 240 seconds).
02:51:58 -!- monqy has quit (Quit: cant see a thing).
02:55:05 -!- monqy has joined.
03:09:26 -!- zzo38 has quit (Quit: zzo38).
03:22:36 <Sgeo> "Manually updated up to strip #2800."
03:22:37 <Sgeo> Booooo
03:24:19 <elliott_> ?
03:24:25 <elliott_> oh, iwc
03:24:40 <elliott_> well there's only two hundred and fifty more strips than that...
03:26:16 <elliott_> wow, i was going to note that http://www.irregularwebcomic.net/2000.html missed MSPA, but I remember /reading/ this iwc strip and it predates the beginning of problem sleuth by two months :)
03:59:38 <coppro> Sgeo: I don't get it
04:05:22 <elliott_> its sgeo
04:05:40 <Sgeo> coppro, Irregular Webcomic's list of educational strips
04:18:36 <coppro> ah... okay?
04:18:43 <Sgeo> http://irregularwebcomic.net/special/educational.html
04:39:21 -!- CakeProphet has joined.
04:39:28 -!- CakeProphet has quit (Changing host).
04:39:28 -!- CakeProphet has joined.
04:40:29 -!- zzo38 has joined.
04:41:36 <zzo38> The [[Talk:Condit]] article probably ought to be corrected some more
04:43:32 <elliott_> comex: why did you vote against your own proposals
04:43:43 <comex> you pay attention to Agora?
04:43:55 <comex> because I'm in an anti-legislation mood
04:44:03 <elliott_> comex: i vote occasionally
04:44:10 <comex> also because everyone's votes are probably invalid, since they don't specify two options
04:44:21 <elliott_> comex: that's inevitably going to be ratified away
04:44:26 <coppro> why haven't we fixed that yet?
04:44:36 <elliott_> coppro: cuz we're all lazy fucks
04:44:43 <elliott_> make a proposal that fixes it and ratifies everything as working :P
04:44:55 <elliott_> and we can all vote PRESENT/FOR on it
04:44:57 <comex> because I didn't distribute the proposal until today
04:44:58 <elliott_> actually
04:45:00 <comex> because I forgot about it
04:45:03 <elliott_> just ratify that it all works after the proposal
04:45:10 <elliott_> because if you actually can't vote at all
04:45:10 <comex> liek I said in ##nomic, Wooble should take over promotor
04:45:13 <elliott_> i.e. the worst case
04:45:14 <elliott_> then...
04:45:16 <comex> then I have no chance of being speaker :(
04:45:17 <comex> oh well
04:45:26 <coppro> I'll take over
04:45:26 <elliott_> comex: ill be promoter ill be the best promotorwe
04:45:37 <elliott_> ill format every distribution differently
04:45:43 <elliott_> ascii art always
04:45:43 <comex> Murphy will love that
04:45:47 <elliott_> yes
04:45:48 <elliott_> it will be the best
04:46:04 <elliott_> i think murphy probably has a paste-in-reasonably-formatted-votes script for assessor stuff
04:46:10 <elliott_> which is partially why i'm voting in lunatic formats
04:46:17 <elliott_> im a huge big stinky jerk
04:53:54 <Sgeo> I should start voting
05:03:30 <Sgeo> I STILL FEEL AWKWARD
05:04:16 <elliott_> Sgeo: about waht...
05:04:28 <Sgeo> Same thing I was talking about May 21st
05:04:40 <elliott_> you are expecting me to logread for a simple answer
05:04:40 -!- augur has joined.
05:04:46 <elliott_> i mean obviously i will but
05:05:01 <Sgeo> Talking to someone about a girl he recently broke up with
05:05:11 <elliott_> suddenly i don't want to know any more
05:05:26 <elliott_> actually i never did to start with, but i had a bit of morbid curiosity that has just become sort of morbid dread so never mind
05:10:33 -!- Kustas has joined.
05:11:15 -!- CakeProphet has quit (Ping timeout: 240 seconds).
05:11:18 <Sgeo> Does it help if I say that he seems to be encouraging me to talk to her?
05:11:56 <elliott_> nothing helps the pain
05:11:59 <elliott_> NOTHINGGGGGGGGG
05:13:09 -!- CakeProphet has joined.
05:14:36 <Sgeo> Why can't I find the page I was just looking at?
05:15:40 <Kustas> if you have a history list, you can find it
05:16:58 <Sgeo> I meant find which tab it was open it
05:17:00 <Sgeo> *open in
05:22:29 <Sgeo> I think the concept of photon polarization is confusing me
05:23:15 <Sgeo> Oh, hmm
05:25:24 <Sgeo> I think the example doesn't actually matter whether it's possible that a case can occur or not, just that
05:30:05 <Sgeo> LYAH is now available as a hardcover book?
05:30:06 <Sgeo> o.O
05:30:16 <elliott_> no its only available in wool-bound form
05:30:19 <elliott_> sheepcover
05:30:35 <elliott_> why is this surprising
05:30:47 <Sgeo> I thought it was online-only
05:30:57 <elliott_> yes then it got published
05:33:51 -!- qwerty has joined.
05:34:05 <elliott_> qwerty azerty
05:34:27 -!- qwerty has changed nick to Guest97961.
05:36:09 <Patashu> anyone on who knows pl/sql?
05:37:30 <coppro> p
05:37:34 -!- sebbu has quit (Ping timeout: 260 seconds).
05:37:35 <coppro> oops
05:37:37 <coppro> I meant no
05:51:26 <augur> http://digitallife.today.com/_news/2011/06/03/6778320-nsfw-zomg-and-twittersphere-added-to-dictionary
05:52:22 <elliott_> so?
05:52:45 <elliott_> "Twittersphere" seems a bit objectionable as it's more of a brand name term, but...
05:52:59 <elliott_> breadcrumb trail - (on a website) a series of hyperlinks displayed at the top of a web page, indicating the page's position in the overall structure of the site
05:52:59 <elliott_> this wasn't already in? huh
05:53:01 <elliott_> gosh, neither was infographic
05:53:08 <elliott_> "nekkid- (of a person) naked: some of the oldest photos in existence are of nekkid women"
05:53:09 <elliott_> best example
05:53:15 <elliott_> ok yeah this isn't actually that interesting
05:53:36 -!- Guest97961 has quit (Ping timeout: 240 seconds).
05:53:43 -!- sebbu has joined.
05:53:43 -!- sebbu has quit (Changing host).
05:53:43 -!- sebbu has joined.
06:29:50 -!- elliott_ has quit (Ping timeout: 260 seconds).
06:54:51 * Sgeo finds Benadryl pills from 2006
06:57:14 -!- azaq23 has joined.
06:59:14 <Sgeo> Everything I'm reading says that at worst, it's likely to be useless
07:00:31 <zzo38> If you need Benadryl pills, then you should purchase more, then. That way it won't be useless.
07:01:04 <Sgeo> I think I'll just take a melatonin
07:01:41 <zzo38> Use that if it helps, then
07:40:53 -!- Patashu has quit (Ping timeout: 248 seconds).
07:48:34 -!- Kustas has quit (Quit: outing).
07:54:19 -!- pikhq has joined.
07:54:24 -!- pikhq_ has quit (Ping timeout: 252 seconds).
08:06:34 -!- MigoMipo has joined.
08:16:15 -!- monqy has quit (Quit: hello).
08:39:55 <zzo38> I made a GameBoy game fitting in less than 4 KB (still more than that 1 KB breakout game, however). It has 256 levels, which can be played in any order.
08:41:53 <zzo38> Maybe the file can still be shortened, though, while still keeping the same rules and levels of the game
09:10:48 -!- oerjan has joined.
09:12:06 -!- MigoMipo has quit (Read error: Connection reset by peer).
09:52:55 -!- sebbu2 has joined.
09:52:55 -!- sebbu2 has quit (Changing host).
09:52:55 -!- sebbu2 has joined.
09:55:59 -!- sebbu has quit (Ping timeout: 260 seconds).
10:01:03 -!- Slereah has joined.
10:02:44 -!- Slereah_ has quit (Ping timeout: 252 seconds).
10:03:35 -!- pikhq has quit (Ping timeout: 240 seconds).
10:03:40 -!- pikhq has joined.
10:32:13 -!- oerjan has quit (Quit: leaving).
10:35:24 -!- BeholdMyGlory has joined.
10:51:45 -!- azaq23 has quit (Ping timeout: 240 seconds).
10:56:40 -!- azaq23 has joined.
11:12:38 -!- CakeProphet has quit (Ping timeout: 250 seconds).
11:14:33 -!- Vorpal has joined.
11:21:48 -!- showstopper has joined.
11:45:15 -!- MigoMipo has joined.
11:53:13 -!- showstopper has quit (Remote host closed the connection).
11:56:07 -!- Phantom_Hoover has joined.
12:01:36 -!- azaq23 has quit (Ping timeout: 250 seconds).
12:11:49 -!- copumpkin has joined.
12:15:02 -!- copumpkin has quit (Client Quit).
12:19:44 -!- kidpoker82 has joined.
12:20:06 -!- kidpoker82 has left.
12:26:16 -!- SimonRC has quit (Ping timeout: 260 seconds).
12:27:45 -!- SimonRC has joined.
12:35:06 -!- Sgeo_ has joined.
12:36:42 -!- Sgeo has quit (Ping timeout: 250 seconds).
12:39:16 <Phantom_Hoover> Sgeo_, RRC's point was essentially that time-translation symmetry doesn't hold because the universe is expanding.
12:39:16 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
12:39:53 -!- Patashu has joined.
12:53:26 <Phantom_Hoover> http://i.imgur.com/O32j1.png
12:53:33 <Phantom_Hoover> Wolfram, you continue to outdo yourself.
12:54:40 <Patashu> lol
12:55:44 <Sgeo_> I don't get that when I put that into WA
12:55:55 <Sgeo_> http://www.wolframalpha.com/input/?i=how+smart+is+stephen+wolfram%3F
13:13:26 <Phantom_Hoover> Yeah, me neither.
13:15:37 <Phantom_Hoover> OK I am sliding over the boredom event horizon.
13:18:55 <Vorpal> Phantom_Hoover, go code something!
13:18:57 <Vorpal> XD
13:19:18 <Phantom_Hoover> WHY DO YOU MOCK MY DISABILITY
13:20:35 <Vorpal> Phantom_Hoover, oh I didn't know it was a disability. I thought it was a blessing
13:21:04 <Vorpal> Phantom_Hoover, I wish had the power to NOT implement all the things I think of
13:21:41 <Sgeo_> Disability?
13:22:01 <olsner> Sgeo_: *lack of ability
13:22:26 <olsner> Phantom_Hoover: haha, I mock you
13:23:21 <Vorpal> <Phantom_Hoover> http://i.imgur.com/O32j1.png <-- pretty sure that one is faked yeah
13:23:23 <Phantom_Hoover> Sgeo_, the way my perfectionism and my inability to pay attention to anything for any length of time makes me incapable of writing a program that takes more than around an hour.
13:23:25 <Vorpal> fun though
13:38:20 <Sgeo_> Ooh, Eiffel does the ... is there a formal name for not having idiotic nulls?
13:38:42 -!- SimonRC has quit (Ping timeout: 252 seconds).
13:41:39 <Sgeo_> Or not, I actually haven't read the thing
13:43:02 -!- SimonRC has joined.
13:43:13 <Vorpal> Sgeo_, "idiotic nulls"?
13:43:17 <Vorpal> Sgeo_, what do you mean
13:43:30 <Sgeo_> I just mean null references as opposed to Maybe/option
13:43:32 <Sgeo_> >.>
13:43:50 <Vorpal> ah
13:44:27 <Vorpal> Sgeo_, I could you could argue that all pointers in C are implicitly of a Maybe-like type
13:46:00 <Vorpal> if I made an imperative CPU architecture I would probably make access to virtual page 0 "hard-wired" to cause an exception/trap.
13:46:32 * Sgeo_ has to see if there's an Eiffel web framework
13:47:22 <Vorpal> Sgeo_, what paradigm is Eiffel now again? imperative OOP?
13:47:41 <Sgeo_> Vorpal, not sure, that sounds about right though
13:48:10 <Vorpal> Sgeo_, which sort of OOP? C++/java/C#-style? smalltalk/objc-style? Something else?
13:49:44 <Sgeo_> Define "style". I'm not that familiar with Eiffel, but I think it's single-dispatch (which afaik all of the ones you listed are), statically typed *(which doesn't make sense to me as an "OOP" style, but is un-Smalltalk-like)
13:50:22 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
13:52:08 <Vorpal> Sgeo_, well from what I understood, smalltalk and objc uses the concept of sending objects messages, while C++, java and so on treats it as calling functions of a object. Of course they are pretty much equivalent on a lower level.
13:52:30 <Vorpal> however I should point out I don't know much smalltalk or objc, so I may be misinformed about this
13:52:31 <Sgeo_> Ah. Not sure which one Eiffel is.
13:53:43 -!- pikhq has quit (Ping timeout: 258 seconds).
13:53:45 -!- pikhq_ has joined.
13:54:19 <Vorpal> Sgeo_, you mentioned "single-dispatch", what other options are there?
13:54:50 <Sgeo_> Something like CLOS or Slate, where the method called depends on several of the arguments
13:55:16 <Patashu> http://en.wikipedia.org/wiki/Multiple_dispatch ?
13:55:18 <Vorpal> ah sounds interesting. I mostly used scheme, not so much common lisp
13:55:36 <Sgeo_> Patashu, yes
13:55:58 <Sgeo_> http://lee.fov120.com/ecoop.pdf a paper advocating for "prototype multiple dispatch"
14:00:20 <Sgeo_> "How simple is SCOOP? It requires only a single new keyword: separate."
14:00:34 <Sgeo_> Um... I don't think you can measure simplicity by amount of new keywords
14:00:46 <Vorpal> you beat me to that remark
14:00:48 <Sgeo_> http://www.kuro5hin.org/story/2006/10/31/20640/115
14:01:12 -!- oerjan has joined.
14:02:29 <oerjan> <Phantom_Hoover> Sgeo_, RRC's point was essentially that time-translation symmetry doesn't hold because the universe is expanding.
14:03:02 <oerjan> iirc put another way, general relativity does not have a concept of globally conserved energy
14:03:20 * Sgeo_ downloads EiffelStudio
14:03:41 -!- SimonRC has quit (Ping timeout: 260 seconds).
14:04:57 <Sgeo_> "If you only want to evaluate EiffelStudio for future projects please download our Evaluation Edition.
14:04:58 <Sgeo_> "
14:04:59 <Sgeo_> Huh?
14:05:07 <Sgeo_> (looking at the GPL download page)
14:05:30 <oerjan> <Phantom_Hoover> Wolfram, you continue to outdo yourself.
14:06:17 <oerjan> there might be a _teeny_ chance he is exaggerating his own personality for marketing purposes
14:08:00 <oerjan> <Sgeo_> I don't get that when I put that into WA
14:08:01 <oerjan> darn
14:08:08 -!- Phantom_Hoover has joined.
14:08:31 <Phantom_Hoover> Vorpal, Pointer = Null | Pointer Integer?
14:09:32 <Sgeo_> Why is this thing about to install EiffelStudio 6.7?
14:09:59 <Sgeo_> Ok, that's the latest release
14:10:06 <Sgeo_> Am I allowed to be sad by it not having SCOOPS?
14:11:18 <oerjan> ok obviously it's fake, wolfram would never settle for having 20 million above him...
14:11:44 -!- Kustas has joined.
14:11:44 <oerjan> er wait
14:11:56 -!- SimonRC has joined.
14:12:02 * oerjan swats his reading comprehension -----###
14:13:00 <Phantom_Hoover> oerjan, yeah, he'd never settle having over 300 above him.
14:23:48 <Sgeo_> Eiffel's "Why use Eiffel" stuff is a very good example of how much marketingspeak you can fit into a few documents
14:23:57 <Sgeo_> http://docs.eiffel.com/book/why-eiffel/eiffel-two-minute-fact-sheet
14:24:27 <Sgeo_> "The platforms covered range from Unix (all of Unix, the famous and the arcane) and Linux to OpenVMS, OS/2, Windows 3. 1, Windows NT, Windows 95/98.
14:24:27 <Sgeo_> " http://docs.eiffel.com/book/why-eiffel/why-your-next-project-should-use-eiffel
14:24:33 <Sgeo_> I think this may be a little old
14:26:33 <oerjan> so basically it's about why your _previous_ project should have used eiffel
14:26:37 <Sgeo_> http://www.jvoegele.com/software/langcomp.html based on the given answer for C# Higher Order Functions, I'm going to guesss that this page is obsolete
14:26:51 <Sgeo_> oerjan, heh
14:30:52 <Sgeo_> o.O
14:31:03 <Sgeo_> Eiffel is contrasting itself with Smalltalk
14:31:25 <Sgeo_> I want to say I think it has a point, but I'm pretty sure it will reveal a failure of mine to really grasp Smalltalk
14:31:42 <Sgeo_> "In contrast with, say, Smalltalk, you do not read the source code of a class when you want to use it. This may be fine for a couple dozen classes, but not for a large, powerful library."
14:31:48 <Sgeo_> http://docs.eiffel.com/book/why-eiffel/why-your-next-project-should-use-eiffel#Reusability
14:34:16 <Sgeo_> Why do I feel so much animosity towards Eiffel?
14:41:16 <oklopol> how fun, i slept for something like 15h
14:41:22 -!- oerjan has quit (Quit: Later).
14:42:31 <oklopol> anyway wolfram's iq led me here: http://www.wolframalpha.com/input/?i=penis+length, how are those quantities corresponding exactly?
14:44:13 <Sgeo_> ?
14:44:26 <oklopol> did you read the page
14:47:48 <Sgeo_> Is penis length being 504 light-picoseconds unreasonable?
14:48:14 * Sgeo_ puts 504 light-picoseconds into WA
14:48:41 <Sgeo_> http://www.wolframalpha.com/input/?i=504+light-picoseconds
14:48:48 <Sgeo_> Looks fine to me
14:49:02 <Sgeo_> In a close enough sense
14:49:44 <Sgeo_> EiffelStudio installer compiling libraries takes an eternity
14:53:52 <oklopol> oh yeah i rather misunderstood what those picoseconds were about
14:58:23 <Sgeo_> WHY am I still holding out hope that Eiffel has continuations? It's a profoundly stupid hope
14:59:27 -!- Kustas has quit (Quit: sauna).
14:59:42 <Phantom_Hoover> You are a profoundly stupid man, clearly.
15:02:46 <Sgeo_> I think the reason that I'm about to play with Eiffel is that EiffelStudio sounds like it could be a fun IDE
15:03:17 <Sgeo_> The installer is _still_ compiling stuff
15:03:18 <oklopol> does eiffel have towers :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
15:04:52 <oklopol> you know, like the one in the beautiful town of eiffel
15:04:57 <oklopol> where is elliott :\
15:05:24 <Sgeo_> If Eiffel gets me to be able to write software with GUIs, it will be worth it
15:05:40 <Sgeo_> Unless it's crap, of course
15:05:40 <oklopol> why would you want to write a gui
15:06:08 <oklopol> when you can just write inputs in the source code and recompile
15:09:29 <Sgeo_> Woo, EiffelStudio installed
15:13:04 -!- oklopol has quit (Ping timeout: 258 seconds).
15:13:21 <Phantom_Hoover> <oklopol> where is elliott :\
15:13:23 <Phantom_Hoover> Werewolves.
15:17:25 -!- oklopol has joined.
15:20:16 -!- oddod has joined.
15:20:30 <Phantom_Hoover> <oklopol> where is elliott :\
15:20:31 <Phantom_Hoover> Werewolves.
15:21:56 -!- oklopol has quit (Ping timeout: 252 seconds).
15:29:26 -!- pikhq_ has quit (Ping timeout: 246 seconds).
15:29:36 -!- pikhq has joined.
15:48:14 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
15:48:37 -!- Phantom_Hoover has joined.
15:56:34 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
16:16:06 -!- SimonRC has quit (Ping timeout: 260 seconds).
16:17:49 -!- SimonRC has joined.
16:18:40 <Phantom_Hoover> Wait, SimonRC is still here?
16:35:02 <pikhq> Good *God* gnulib does nasty things.
16:35:20 <pikhq> It has special-cased code for poking around in the internals of the libc's FILE.
16:35:28 <pikhq> For every known libc.
16:40:42 -!- augur has quit (Remote host closed the connection).
16:41:05 <Gregor> Bahaha
16:41:06 <Gregor> Great
16:41:13 <Gregor> For what function?
16:44:36 <pikhq> Freadahead, among other things.
16:50:38 <Vorpal> <Phantom_Hoover> Vorpal, Pointer = Null | Pointer Integer? <-- yes kind of, except that Null is not a separate value from the other range for C
16:50:51 <Vorpal> unless you define that address (often 0) to be invalid
16:59:29 <Phantom_Hoover> <pikhq> Freadahead, among other things.
16:59:41 <Phantom_Hoover> Is this not doable with the Way You're Meant To Do It?
17:06:26 <pikhq> Not with POSIX.
17:15:10 -!- ais523 has joined.
17:19:36 -!- monqy has joined.
17:20:14 <Phantom_Hoover> What does it do?
17:24:48 -!- augur has joined.
17:28:09 <Gregor> What /doesn't/ it do? It slices, it dices, it purees and it resolidifies, breaking the laws of thermodynamics.
17:34:03 <Vorpal> pikhq, I have no man page for freadahead, what on earth does it do? I looked at gnulib source and that didn't help much at all
17:34:38 <Vorpal> it doesn't seem to load more stuff ahead
17:34:49 <Vorpal> hm, does it return size of IO buffers?
17:44:13 -!- CakeProphet has joined.
17:44:13 -!- CakeProphet has quit (Changing host).
17:44:13 -!- CakeProphet has joined.
17:46:33 <ais523> hey, remember when everyone here mocked me for saying I was entering a Pokémon championship, and saying I had no chance?
17:46:44 <ais523> the UK national Pokémon (video game) championships was today, and I came top 8
17:47:15 <pikhq> /usr/include/stdlib.h:96:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__BEGIN_NAMESPACE_STD’
17:47:18 <pikhq> Wut.
17:49:41 <pikhq> ais523: Nice.
17:52:06 <fizzie> Vorpal: It looks to me like it'd return the amount of stuff there are in the buffers that you can fread without having to actually do IO.
17:56:03 <Phantom_Hoover> <ais523> the UK national Pokémon (video game) championships was today, and I came top 8
17:56:08 <Phantom_Hoover> See, we told you so.
17:56:27 <ais523> top 8 in a nationals is enough to qualify for the world championships, but I don't plan to go
17:56:52 <Phantom_Hoover> See?
17:57:15 <ais523> Phantom_Hoover: I don't understand
17:58:14 <coppro> ais523: nice!
17:58:34 <ais523> thanks
17:58:47 <Phantom_Hoover> Top 8 means you didn't win, in accordance with our (well, not my) prediction, and your opting out of the world championships demonstrates that you subconsciously agree.
17:59:01 * coppro swats Phantom_Hoover
18:00:59 <oddod> yeah, if you're not #1, you might just as well kill yourself, or alternatively everyone above you in the ranking.
18:01:03 -!- oddod has changed nick to oklopol.
18:01:05 <oklopol> whoops
18:01:20 <oklopol> mirc sucks
18:03:12 <pikhq> Fucking hell, it should not be this difficult to get an i686 cross-compiler.
18:10:52 <Sgeo_> Phantom_Hoover, foton
18:11:00 <Phantom_Hoover> Fotons!
18:11:27 <Phantom_Hoover> First demonstrated experimentally by the fotoelectric effect.
18:11:57 <Sgeo_> Mind you, what the question is talking about is a bit beyond me
18:12:02 <Sgeo_> But still
18:16:07 <pikhq> Yup, much easier to just go ahead and build a native i686 PCC.
18:28:16 <oklopol> i wonder how many people i'd have to kill to be the best at everything
18:28:51 <oklopol> hmm
18:28:59 <oklopol> oh dear
18:29:00 <oklopol> languages
18:29:07 <zzo38> It might be impossible regardless of how many
18:29:26 <oklopol> well ignoring that stupid point
18:29:36 <oklopol> that THEY'RE THE BEST AT BEING THEMSELVES or whatever
18:29:52 <oklopol> skills i consider worth skillin'
18:29:56 <monqy> if you kill them
18:29:59 <monqy> they'd be better than you
18:30:01 <monqy> at being dead
18:30:24 <oklopol> that
18:30:35 <zzo38> Yes, one thing is that.
18:31:03 -!- TOGoS has joined.
18:31:05 -!- TOGoS has left.
18:31:16 <oklopol> but yeah ignoring your silliness, i'd have to kill pretty much everyone outside finland and american right away, and most americans too, due to language
18:31:24 <oklopol> *america
18:32:11 <Sgeo_> You're saying everyone in Finland is mediocre at everything?
18:32:28 <oklopol> i'm saying most finnish people don't know a language better than me
18:32:51 <oklopol> many know swedish better than me, but the point is i wouldn't have to kill more than say 50% based solely on that
18:33:09 <oklopol> whereas i'd certainly have to kill EVERY CHINESE PERSON
18:33:23 <oklopol> each and every one of them, except a few retards
18:33:29 <zzo38> Learn to be Chinese and kill yourself
18:33:36 <ais523> oklopol: probably everyone but you
18:33:43 <oklopol> i doubt that
18:33:50 <oklopol> i know many people who are worse than me at everything
18:34:21 <oklopol> that is, measuring only skills i consider worth skillin'
18:34:23 <oklopol> as i specified
18:35:08 <ais523> ah, I see
18:35:13 <zzo38> ais523: Which pokemon generation was it? And which games belonging to that generation? What other rules?
18:35:48 <oklopol> but yeah it's true there probably aren't many people who are worse than me at everything someone would call a skill
18:36:01 <oklopol> and those people are probably literally braindead
18:36:26 <oklopol> if, for instance, knowing a single fact is considered a skill :P
18:36:52 <ais523> zzo38: 5th, and Black and White; the rules were no Pokémon that aren't in the Unova Pokédex (i.e. new in Black/White), no Victini/Resihram/Kyurem/Zekrom, double battle, no duplicate items or species, no using Sky Drop (because it's glitched), you take 6 pokémon in your team, you see the species/level/gender of the opponent's 6 then pick 4 of your 6 to battle with
18:37:26 <pikhq> Hrrrm.
18:37:57 <ais523> amusingly, people have been banning sky drop in single battles too, even though there's no known way to trigger the glitch there
18:37:57 <pikhq> Seems that configure doesn't coöperate with busybox.
18:38:03 <zzo38> ais523: OK. (I don't know the Black and White rules) Any rules having to do with items?
18:38:12 <ais523> zzo38: no duplicate items, that's it
18:38:19 <ais523> also, as usual in competitive battles, you can't use battles from your bag
18:38:29 <oklopol> what
18:38:31 <ais523> you have to give the items to Pokémon and have their AI use them automatically, and not all items work like that
18:38:32 <zzo38> Do you mean, items from your bag?
18:38:33 <oklopol> can you put a battle in a bag?
18:38:36 <ais523> *can't use items from your bag
18:38:49 <pikhq> It doesn't make its way through the sanity check.
18:39:09 <ais523> pikhq: wow that's a fast failure
18:39:12 <pikhq> Anyone got sufficient autoconf foo to tell me why I get this?
18:39:14 <pikhq> checking whether build environment is sane... configure: error: newly created file is older than distributed files!
18:39:20 <ais523> pikhq: timestamps
18:39:30 <ais523> the build system has to have timestamps before the current time
18:39:43 <ais523> or else make gets fatally confused
18:39:54 <ais523> and autoconf is checking for that
18:40:33 <pikhq> The timestamps of the source are the UNIX epoch.
18:40:39 <oklopol> i dreamt that my balls were tiny, and that my guitar string snapped and that i downloaded a program
18:40:56 <zzo38> oklopol: Are these three things related?
18:41:19 <oklopol> well all of them are related to what i've been doing irl, masturbating, changing my guitar strings, and planning to download the program in question
18:41:24 <oklopol> but i doubt they are related to each other
18:41:27 <ais523> pikhq: and I take it the current time isn't before the epoch?
18:41:37 <ais523> perhaps busybox test doesn't implement time comparisons, or something
18:42:03 <pikhq> Configure doesn't do time comparisons. It does ls -t.
18:42:21 <ais523> ah
18:42:36 <pikhq> ... Whiiich seems to be unimplemented.
18:44:59 <Sgeo_> It sounds annoying to code with the Command-Query Separation stuff
18:45:16 <Sgeo_> Although I guess it does make functions pure
18:53:22 -!- clog has quit (Ping timeout: 240 seconds).
18:55:50 <pikhq> Ah, I'd just fucked it up a little bit.
19:03:41 -!- azaq23 has joined.
19:04:23 -!- pikhq_ has joined.
19:04:38 -!- pikhq has quit (Ping timeout: 248 seconds).
19:08:11 <pikhq_> Very obnoxiously hard to bootstrap with pcc.
19:09:56 -!- copumpkin has joined.
19:10:12 <pikhq_> Scratch that, "mother-fucking impossible".
19:12:21 <pikhq_> Scracth that again, "mother-fucking impossible with GNU utils".
19:14:43 -!- copumpkin has quit (Client Quit).
19:19:17 <pikhq_> Scratch that again, "mother-fucking impossible, and why the hell does heirloom need a C++ compiler".
19:19:23 <pikhq_> Also "fuck you all".
19:20:02 -!- atrapado has joined.
19:30:42 <pikhq_> Everybody and everything sucks, and everybody should be ashamed of themselves.
19:31:44 <coppro> k
19:31:59 -!- pingveno has quit (Ping timeout: 246 seconds).
19:32:31 <pikhq_> Especially GNU.
19:34:05 -!- pingveno has joined.
19:36:23 <coppro> yup
19:36:32 <coppro> GNU is a bunch of assholes
19:37:58 <pikhq_> LibreOffice's changelog frightens me.
19:39:13 <Sgeo_> hmm?
19:39:48 <pikhq_> "We brought the build down from 15 hours to 30 minutes".
19:39:50 <pikhq_> This frightens me.
19:41:00 <coppro> O_o
19:41:48 <pikhq_> And apparently they cut out giant swaths of *dead code*.
19:41:58 <ais523> that's to be expected
19:41:58 <coppro> wow
19:42:02 <ais523> OOo was a very legacy codebase
19:42:04 <coppro> I'm impressed
19:42:34 <pikhq_> Glad that they're taking the effort to cut out a bunch of bullshit, though.
19:48:16 <Sgeo_> Who has a bigger ego, the Abrahamic God or Stephen Wolfram?
20:02:31 <Phantom_Hoover> Wolfram.
20:02:57 <Phantom_Hoover> God doesn't need a big ego, he can just smite anyone who doesn't worship him.
20:07:45 <coppro> ^
20:22:11 <pikhq_> Wolfram.
20:22:21 <pikhq_> The Abrahamic deity does not exist, and hence has no ego.
20:23:47 <pikhq_> If we consider the fictional character, though, I'd say that deity has a gigantic ego. Making all of everything simply to praise him? That's a feat of ego Wolfram only wishes he'd have thought up.
20:25:59 -!- norman256394 has joined.
20:26:04 <norman256394> Hey everyone!
20:26:34 <pikhq_> Hellote.
20:26:55 <norman256394> So what is this chat room about?
20:27:01 <ais523> norman256394: esoteric programming langages
20:27:08 <coppro> Everything with a side helping of esoteric programming languages
20:27:10 <ais523> as in, programming languages not often used because they're stupid or impractical
20:27:21 <norman256394> oh...
20:27:24 <ais523> often deliberately so
20:27:30 <norman256394> *thinking if I came to the right place
20:27:34 <coppro> we also talk about other esoterica
20:27:50 <coppro> so if you're just a curious type, you might want to hang around to learn
20:27:56 <ais523> coppro: no we don't
20:28:02 <ais523> we just troll people who come in here wanting to talk about it
20:28:02 <coppro> ais523: yes we do
20:28:05 <ais523> until they get bored and go away
20:28:09 <cheater_> 41sup all
20:28:10 <norman256394> :(
20:28:10 <coppro> 15:48 < Sgeo_> Who has a bigger ego, the Abrahamic God or Stephen Wolfram?
20:28:12 <ais523> I'm not really sure what the point is
20:28:26 <coppro> this is sort of typical discussion
20:28:39 <cheater_> norman256394, this channel is about Eric the Esot
20:28:39 <coppro> in fact, arguing about whether we argue about esoterica is very #esoteric
20:28:53 <pikhq_> Pretty sure that's not what's generally considered esoterica...
20:29:09 <coppro> Well, yes
20:29:11 <ais523> norman256394: I suspect you're in the wrong place, anyway
20:29:18 <pikhq_> And in any case, our actual discussions of esoterica are by no means what someone who's interested in it would desire.
20:29:18 <ais523> and unfortunately, I don't know what the right place is
20:29:25 <norman256394> yeah...looks like it. :)
20:29:29 <coppro> hah
20:29:32 <ais523> if you find out, why not let me know so that I can direct other people there so you can chat with them?
20:29:36 <coppro> see ya, norman256394!
20:29:59 <cheater_> norman256394, what were you looking for?
20:30:10 <norman256394> well...I wanted to talk about software design
20:30:19 <coppro> ais523: that made a lot more sense when I remembered you're British
20:30:22 <cheater_> cool, what sort of software?
20:30:30 <coppro> hmm
20:30:34 <coppro> elliott's not around, right?
20:30:38 <norman256394> User Interface
20:30:48 <ais523> coppro: I don't think so
20:30:49 <cheater_> for that try maybe #haskell
20:31:01 <coppro> ais523: excellent
20:31:05 <coppro> we're safe from him then
20:31:05 <pikhq_> No, elliott would be joining me in a mutual rant on the evils of GNU if he were.
20:31:07 <ais523> cheater_: I'm not sure that's any more appropriate
20:31:16 <coppro> pikhq_: excellent point
20:31:20 <cheater_> haskell has gui bindings
20:31:23 <norman256394> isn't that like another esoteric language
20:31:25 <ais523> cheater_: so?
20:31:27 <ais523> so does Befunge
20:31:34 <cheater_> oh alright
20:31:40 <cheater_> can we talk about befunge gui bindings now?
20:31:49 <ais523> if you want to
20:31:53 <ais523> I can't actually remember what they are
20:31:57 <ais523> so the conversation won't go very far
20:31:59 <pikhq_> (dear God, you can't freaking bootstrap a system with pcc! It's not like this is some little-known compiler, it's a high-quality and classic ISO C99 compiler!)
20:32:01 <norman256394> actually i was thinking of discussing in a *very* language agnostic way
20:32:11 <cheater_> what sort of programming paradigms are recommended for programming befunge guis?
20:32:13 <ais523> pikhq_: gcc used to be compiler-agnostic
20:32:24 <cheater_> norman256394, we sometimes talk about GUIs and stuff
20:32:27 <ais523> but in the end, they decided gcc was so widespread that they might as well be specific to it
20:32:28 <coppro> pikhq_: why can't you bootstrap with it? It uses extensions it doesn't implement?
20:32:40 <ais523> this is potentially a dubious decision
20:32:42 <cheater_> like the plan9 interface for example
20:32:57 <pikhq_> You can bootstrap PCC itself just fine.
20:33:02 <ais523> I think gcc has successfully managed an E/E/E on C
20:33:04 <ais523> which is worrying
20:33:10 <coppro> E/E/E?
20:33:12 <pikhq_> Indeed, you can get musl and PCC up and running without much effort.
20:33:13 <norman256394> ok...I never heard of half of the stuff you guys are talking about.
20:33:14 <ais523> well, other C compilers
20:33:19 <ais523> coppro: embrace/extend/extinguish
20:33:33 <pikhq_> But not much else will actually build with this setup.
20:33:33 <coppro> ais523: ah, yes
20:33:41 <coppro> very much so
20:33:51 <cheater_> what does it mean that gcc is compiler agnostic?
20:33:54 <pikhq_> And it ain't the libc doing it. Well, not all of it, as you can generally tweak C stuff into complying.
20:33:56 <coppro> but we're fighting back
20:33:57 <Phantom_Hoover> GNU are basically software communists.
20:34:06 <ais523> cheater_: same as what it means for any other program to be compiler agnostic
20:34:17 <cheater_> Phantom_Hoover, is linux communist software?
20:34:30 <cheater_> ais523, ok.
20:34:37 <pikhq_> But good God I couldn't even get fucking *Heirloom* to build with PCC and musl.
20:34:51 * coppro makes some noise
20:35:00 <cheater_> what's heirloom?
20:35:12 <cheater_> norman256394, what sort of guis did you want to talk about?
20:35:17 <cheater_> maybe they're esoteric guis.
20:35:21 <pikhq_> The Heirloom toolset is a port of the classic UNIX utils to Linux.
20:35:42 <pikhq_> Collected out of BSD and OpenSolaris source, IIRC.
20:35:45 <norman256394> actually I was thinking on a very abstract level
20:35:54 <ais523> pikhq_: ah, I was wondering "why not just use BSD utils"?
20:35:56 <ais523> and it seems they did
20:35:57 <cheater_> what package does that come in pikhq_?
20:36:06 <pikhq_> heirloom.sf.net
20:36:09 <cheater_> norman256394, well?
20:36:13 <norman256394> something like the interface of the future
20:36:22 <norman256394> highly interactive
20:36:28 <norman256394> smooth transitions
20:36:28 <cheater_> pikhq_, what does it have that i might be missing?
20:36:37 <ais523> hmm, I suppose that's basically almost ontopic here, if it's insane enough by today's standards (which is different from being insane overall, but that tends to happen too)
20:36:43 <cheater_> norman256394, but would it be smoothly differentiable?
20:36:45 <pikhq_> cheater_: Nothing, really.
20:36:48 <ais523> and almost ontopic is much better than we normally manage
20:36:59 -!- atome has joined.
20:37:07 <pikhq_> cheater_: It's just got the traditional utils instead of the GNU stuff.
20:37:13 <norman256394> it's not going to be anything ground-breaking
20:37:34 <pikhq_> Hmm. I wonder if I could even possibly manage to get Busybox to build with pcc.
20:37:40 <norman256394> just was thinking if anyone could help me navigate the intricacies of designing such a user-interface
20:37:57 <Phantom_Hoover> <norman256394> something like the interface of the future
20:38:07 <pikhq_> Feh, not going to work on it, cause I have developed a hatred for everything of late.
20:38:17 <Phantom_Hoover> You should probably talk to elliott about that so he can tell you why your ideas are bad and you should feel bad.
20:38:21 <norman256394> Read: iPhone interfaces
20:38:37 <pikhq_> ais523: Any idea what the last version of GCC that was compiler-agnostic?
20:38:41 <Sgeo_> Is it better to look smooth or be fast?
20:38:51 <pikhq_> Erm, what was.
20:38:52 <Phantom_Hoover> Sgeo_, what a stupid question.
20:38:57 <Phantom_Hoover> It's obviously not a dichotomy.
20:39:13 <cheater_> anyone got the link to the archive.org video of the lightpen demonstration
20:39:14 <norman256394> Smooth, fast, natural
20:39:30 <Phantom_Hoover> Out of the two extremes... hideous but fast is preferable to beautiful but unusably slow.
20:39:32 <cheater_> you should check it out
20:39:51 <cheater_> Phantom_Hoover, what if you expect the beauty
20:40:05 <cheater_> and like, you'd rather mail-order mona lisa than stare at a blank wall
20:40:07 <pikhq_> ais523: Oh, and the reason I was using PCC in the first place was that it's genuinely *obnoxious* to try and get an i686-pc-linux-gnu cross compiler.
20:40:09 <cheater_> blank walls are very responsive.
20:40:19 <norman256394> I guess I have come to appreciate the importance of speed after having worked on the likes of SAP, with its laggy interface
20:40:26 <pikhq_> It shouldn't be hard, but it is.
20:40:35 <pikhq_> Because EVERYBODY'S BUILD SYSTEM SUCKS
20:40:36 <Sgeo_> What about reorienting a phone? Show an animation of it changing, or instantly change?
20:40:48 <Sgeo_> (I'm pretty sure I saw this sort of thing in an iPhone flamewar)
20:41:06 <cheater_> what about instead of having the phone change..
20:41:16 <cheater_> have the whole world change around the phone and have the phone stay put?
20:41:31 <Sgeo_> Isn't that equivalent?
20:41:31 <cheater_> sort of CPS style
20:41:35 <cheater_> it's dual.
20:41:44 <pikhq_> As you can tell, I'm quite *happy* with the state of UNIX right now.
20:41:44 <cheater_> that's better than equivalent.
20:41:47 <Phantom_Hoover> No, because the animation is not very expensive.
20:41:53 <norman256394> there should be a tag in here to mark sentences that are meant to be taken as humourous/sarcastic
20:41:56 <cheater_> or what about having the co-telephone not-turn?
20:42:01 <Phantom_Hoover> It's not on the level of, say, Compiz taken to crazy levels.
20:42:03 <Sgeo_> Phantom_Hoover, I should note hat cheater_ is speaking
20:42:29 <ais523> pikhq_: C-INTERCAL's build system handles all cross-compile combinations quite well
20:42:33 <cheater_> norman256394, that tag is <Sgeo_>
20:42:36 <cheater_> :p
20:42:40 <norman256394> :P
20:42:48 <ais523> it was designed by looking at gcc's build system, deciding it was an awful buggy mess that nobody should use ever, and doing something entirely different
20:42:54 * Sgeo_ swats cheater_
20:42:58 <pikhq_> ais523: Correct answer.
20:43:21 <norman256394> I think...
20:43:21 <Phantom_Hoover> norman256394, you can try ais523's solution.
20:43:35 <Phantom_Hoover> It does have the caveat that noöne except ais thinks it work.
20:43:37 <Phantom_Hoover> *works
20:43:51 <ais523> Phantom_Hoover: solution to what?
20:43:59 <Phantom_Hoover> ais523, sarcasm.
20:44:01 <cheater_> the life, the universe, and everything.
20:44:05 * pikhq_ looks at it.
20:44:18 <Phantom_Hoover> Your "take it seriously in an attempt to make everything absurd" tactic.
20:44:41 <pikhq_> ais523: I approve of your pedantry so far.
20:44:44 <norman256394> I think IRC should be more like facebook
20:44:52 <pikhq_> dnl Don't assume yacc exists just because bison doesn't (wtf autoconf...)
20:44:55 <pikhq_> ... Wut.
20:45:01 <norman256394> it's hard to keep track of conversations in here. :|
20:45:26 <Sgeo_> Reddit might be easier for you?
20:45:30 <ais523> it gets easier with practice
20:45:40 <cheater_> norman256394, and then i went to the kitcchen. funny, right?
20:45:45 <ais523> pikhq_: hey, if autoconf is being stupid and I work around it, I may as well document what I've done and why
20:46:00 <norman256394> software should change for the users
20:46:08 <norman256394> not the other way round! :)
20:46:17 <ais523> norman256394: yep
20:46:23 <ais523> but someone has to write the compatibility layers in between
20:46:23 <cheater_> WRONG
20:46:25 <ais523> to make it do that
20:46:27 <cheater_> everyone should adjust to vim.
20:46:28 <Phantom_Hoover> norman256394, different niches, though.
20:46:31 -!- atome has quit (Ping timeout: 276 seconds).
20:47:03 <Sgeo_> Especially decades old software with decades old standards that its current users, of which there many, are quite comfortable with
20:47:11 <Sgeo_> (Not sure if decades gets pluralized)
20:47:24 <pikhq_> ais523: Yes, I'm "Wut"ing at autoconf, not at you.
20:47:32 <ais523> ah, OK
20:47:46 <ais523> I'm not sure if it's a bug or a silly assumption
20:48:00 <ais523> but it's definitely implausible
20:48:19 <cheater_> Sgeo_, decades is plural already.
20:48:22 <norman256394> ok...nice talking to you guys. But my IRC client is just plain too ugly to continue staring at for too long.
20:48:22 <cheater_> FYI.
20:48:46 <Sgeo_> cheater_, as in, I was uncertain if IRC history spanned two decades.
20:48:47 <cheater_> norman256394, that's what i think about one of my coworkers
20:48:50 <pikhq_> Anyways, got a clue what GCC version(s) are compiler agnostic?
20:48:57 <cheater_> i started working from home though so it's alright
20:49:04 <ais523> pikhq_: I knew once, but have long since forgotten
20:49:06 <norman256394> lol
20:49:15 <pikhq_> I'm going to go out on a limb and guess it's 2.x.
20:49:37 <Sgeo_> pikhq_, bootstrapping gcc?
20:50:07 -!- norman256394 has quit (Quit: http://irc2go.com/).
20:50:16 <Sgeo_> Is there a recorded history somewhere of what older versions of gcc were used to compile newer versions etc.? Because that would make interesting reading imo
20:50:25 <pikhq_> Sgeo_: Do you have any idea how fucking ridiculously painful it is to get an i686-pc-linux-musl compiler from x86_64-pc-linux-gnu?
20:50:54 <pikhq_> Right now I'm only asking out of personal curiosity, because I HATE GNU.
20:51:21 <Sgeo_> No idea. Um, not even sure what you're referring to, exactly. Which machine are you on?
20:51:31 <Sgeo_> What binary do you have?
20:51:40 <Sgeo_> I should be able to parse this from your question, but I can't
20:52:18 <pikhq_> I had a correctly functioning i686-pc-linux-musl pcc (okay, so it thought that it was i686-pc-linux-gnulibc1, but whatever). Problem is, nothing will build with that.
20:52:53 <pikhq_> And it wasn't the libc's fault. musl can actually support a reasonable system (... if you don't mind a lack of C++).
20:53:15 <cheater_> Sgeo_, what's musl?
20:53:31 <Sgeo_> cheater_, um, ask pikhq_?
20:53:32 <pikhq_> musl is a libc.
20:53:47 <pikhq_> It doesn't suck.
20:53:48 <cheater_> Sgeo_, apparently asking you worked too
20:54:01 <cheater_> pikhq_, what does it do better than glibc?
20:54:18 <pikhq_> cheater_: It has size comparable to dietlibc and performance comparable to glibc.
20:55:04 <pikhq_> (in some cases better, in some cases worse. Has at-least-as-good big-O performance.)
20:56:07 <coppro> cheater_: everything is better than glibc
20:56:47 <Sgeo_> What do MS's compilers use?
20:56:48 <pikhq_> glibc is pretty bloated, and has absolutely convoluted code.
20:57:19 <pikhq_> Sgeo_: msvcrt
20:57:29 <pikhq_> "Microsoft Visual C++ Runtime".
20:58:26 <pikhq_> Incidentally, they've been doing compilers for quite a while... That libc traces its way back to their C compiler for DOS in 1983.
21:00:12 <pikhq_> The same libc is used by mingw.
21:00:22 -!- clog has joined.
21:01:32 <cheater_> ya it's funny
21:01:39 <cheater_> since mingw stands for minimal gnu for windows
21:01:41 <cheater_> but like..
21:01:46 <cheater_> it's not using a gnu libc.
21:01:48 <cheater_> amirite.
21:02:42 <pikhq_> Yeah, it's just GCC and binutils. msys adds a few more bits (bash, coreutils, make), but... Yeah. Utterly devoid of glibc.
21:02:47 <pikhq_> So's cygwin.
21:03:17 <Phantom_Hoover> pikhq_, why does glibc suck so much?
21:03:23 <Phantom_Hoover> Is it just classic GNU bloat?
21:03:37 <pikhq_> Classic GNU bloat.
21:04:10 <pikhq_> As well as an avoidance of simple algorithms.
21:04:18 <cheater_> what is classic gnu bloat?
21:05:03 <pikhq_> cheater_: They love creeping featuritis and premature optimisation.
21:05:30 <pikhq_> As well as truly awful hacks that are not exactly necessary.
21:05:39 <Phantom_Hoover> 21:04:18: <cheater_> what is classic gnu bloat?
21:05:51 <Phantom_Hoover> The simple answer to this is "true.c in the binutils source".
21:06:19 <pikhq_> Coreutils has its own implementation of buffered IO.
21:06:31 <cheater_> got a link to that?
21:06:53 <pikhq_> Oh, sorry, that's gnulib.
21:07:07 <pikhq_> Which itself gets relevant bits copied into program source.
21:07:25 <pikhq_> They claim it's for 'portability'.
21:07:36 <pikhq_> Some of it actually increases portability.
21:07:50 <pikhq_> Some of it is utterly retarded.
21:08:29 <pikhq_> If it includes stdio-impl.h, it is definitely utterly retarded.
21:08:32 <cheater_> http://sourceware.org/cgi-bin/cvsweb.cgi/src/?cvsroot=src
21:08:42 <cheater_> could be somewhere in here
21:08:43 <pikhq_> Would you like to guess what that does?
21:09:04 <Phantom_Hoover> It... implicity includes stdio?
21:09:13 <pikhq_> Phantom_Hoover: Oh, no no no, much worse than that.
21:09:18 -!- sebbu2 has quit (Read error: Connection reset by peer).
21:09:24 <cheater_> defines some constants?
21:09:29 <pikhq_> Nope.
21:09:44 <cheater_> gnuifies the binary?
21:09:48 -!- sebbu has joined.
21:09:49 -!- sebbu has quit (Changing host).
21:09:49 -!- sebbu has joined.
21:09:51 <cheater_> well, tell us
21:10:00 <Phantom_Hoover> cheater_, BtW, try true --version and --help, if your shell doesn't alias it.
21:10:02 <pikhq_> It contains the definition of FILE for every libc they support.
21:10:17 <pikhq_> Not FILE*, but the struct actually pointed to by it.
21:10:57 <Phantom_Hoover> Aha, http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/true.c
21:11:00 <Phantom_Hoover> Oh, it's coreutils.
21:11:02 <cheater_> Phantom_Hoover, ok so you mean coreutils
21:11:03 <cheater_> yeah
21:11:06 <Phantom_Hoover> I always mix the two up.
21:11:11 <Phantom_Hoover> 78 line.
21:11:13 <Phantom_Hoover> *lines
21:11:42 <Phantom_Hoover> 13 preprocessor statements.
21:11:49 <Phantom_Hoover> 2 functions.
21:12:35 <pikhq_> Indeed, coreutils' copy of gnulib seems to contain most of a libc.
21:12:58 <pikhq_> ... *it actually contains a printf*‽
21:13:23 <pikhq_> IT LITERALLY HAS A PRINTF.
21:13:38 <cheater_> what is so bad about this thing?
21:13:42 <pikhq_> You think I'm kidding, but no, it literally has a printf.
21:13:58 <cheater_> true.c doesn't seem so bad.
21:14:10 <cheater_> defines some help, some other stuff, and does its job too.
21:14:18 <pikhq_> cheater_: Allow me to give you a true.c.
21:14:23 <pikhq_> int main(){return 1;}
21:14:33 <cheater_> how do i find the usage for it
21:14:40 <pikhq_> man
21:14:47 <cheater_> what about having --usage
21:15:02 <cheater_> which is actually a common thing
21:15:18 <pikhq_> Perhaps you'd be more revolted by cat.
21:15:25 <cheater_> why
21:15:33 <pikhq_> http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/cat.c
21:16:25 <pikhq_> 1,000 lines of code. Pokes around libc internals. Uses its own buffered IO on top of stdio.
21:16:52 <Sgeo_> What does filenotfound return?
21:17:03 <Sgeo_> Also, wouldn't true.c return 0?
21:17:30 <pikhq_> And has significantly more options than is even slightly necessary.
21:17:42 <pikhq_> (the following options are required by POSIX for cat: -u
21:17:43 <pikhq_> )
21:18:22 <pikhq_> https://github.com/pikhq/pikhq-coreutils/blob/master/cat/cat.c For comparison.
21:19:00 <pikhq_> 1/10th the size, billions of times more portable.
21:22:01 <cheater_> why is it billions of times more portable
21:22:28 <Phantom_Hoover> pikhq_, typo in the comment on line 36.
21:22:28 <pikhq_> Their cat *literally is fucking around with libc internals*.
21:22:40 <cheater_> where?
21:23:13 <pikhq_> It's in some functions they pull in from elsewhere in the source tree.
21:23:39 <zzo38> Yes I do think GNU programs are bloated, but it is good they write those programs anyways. Especially since they wrote the license too. Now the same license can be used with other programs, including other programs that are based on the GNU programs.
21:23:52 <zzo38> I dislike GNU long options.
21:24:36 <pikhq_> Phantom_Hoover: That ain't a typo, you git.
21:24:59 <pikhq_> It's a perfectly valid, though admittedly non-US, spelling.
21:25:07 <Phantom_Hoover> ...mesage?
21:25:11 <pikhq_> Oh.
21:25:14 <pikhq_> Didn't see that.
21:25:16 <pikhq_> XD
21:25:24 <zzo38> I once asked them why they make large GNU program like that, they didn't give a very good answer in my opinion
21:25:29 <pikhq_> "Unrecognised." Thought that was what you were talking about.
21:25:32 <Phantom_Hoover> Also: you know that I'm not from the US, right?
21:26:08 <pikhq_> Do I care? :P
21:26:13 <pikhq_> Anyways, pushed.
21:26:39 <zzo38> Phantom_Hoover: How do you think someone will know that? Did you post that information somewhere, such as esolang wiki? You have cloak enabled so it is hard to know these kind of things?
21:31:37 -!- pikhq has joined.
21:34:03 -!- pikhq_ has quit (Ping timeout: 244 seconds).
21:37:43 <pikhq> So. Everybody is wrong at everything; any arguments?
21:40:57 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:41:02 <coppro> pikhq: wrong
21:41:11 <coppro> (you walked into that one)
21:46:49 <zzo38> pikhq: Yes. Including you are wrong at this. And the argument is also wrong.
21:52:11 <Phantom_Hoover> Gregor, I am sorely disappointed at the loss of searchable logs of this place.
21:52:17 <Phantom_Hoover> Please fix your hg ones or something.
21:58:52 -!- elliott_ has joined.
21:59:17 <elliott_> ,
21:59:30 -!- elliott_ has changed nick to elliott.
21:59:32 <elliott> x
21:59:32 <lambdabot> elliott: You have 2 new messages. '/msg lambdabot @messages' to read them.
21:59:57 -!- elliott has quit (Changing host).
21:59:57 -!- elliott has joined.
22:03:35 * pikhq flips off pcc for a bit
22:03:58 <elliott> pcc sux
22:04:20 <pikhq> Shouldn't be hard to get it to actually function right.
22:04:35 <elliott> what are you tryin
22:04:42 <elliott> it might be that malloc(0) in cpp
22:04:46 <elliott> that broke it with dietlibc
22:05:31 <pikhq> Right *now*, just trying to get a normal pcc on x86_64-pc-linux-gnu
22:05:40 <pikhq> Its output segfaults.
22:06:36 <pikhq> It segfaults with the program counter at 0x01.
22:08:43 <cheater_> is there a shell which does *not* alias true?
22:09:14 <cheater_> ksh, bash, sh, dash, zsh all do it
22:09:31 -!- azaq23 has quit (Quit: Leaving.).
22:10:05 <cheater_> tcsh doesn't
22:11:18 <elliott> "Alias"?
22:11:51 -!- atrapado has quit (Quit: FIN).
22:13:35 <cheater_> "troll"?
22:14:24 <elliott> i'm not sure of the relevance; after all, I'm not an alias, so that hardly works
22:15:32 <cheater_> yeah. good thing we're not playing synonyms then, right?
22:22:08 <Vorpal> none of them "alias" it as you say
22:22:20 <elliott> Vorpal: TROLL??????
22:22:42 <Vorpal> elliott, yes they all troll true until it gives up and ignore them
22:22:56 <Vorpal> that is why they implement it as a shell builtin
22:23:14 <Vorpal> since the one in /bin refuses to have anything to do with them
22:23:24 <Vorpal> elliott, happy?
22:23:49 <Vorpal> elliott, speaking of which, how goes the spec
22:27:15 -!- elliott_ has joined.
22:27:19 <elliott_> cheater just disconnected me from the internet as a warning
22:27:50 -!- elliott has quit (Ping timeout: 248 seconds).
22:28:52 -!- elliott__ has joined.
22:28:56 <elliott__> what is my connection even doing
22:29:47 <Vorpal> elliott__, it is having a hangover
22:31:03 <Vorpal> interestingly, translating the Swedish word for "hangover" literally to English yields "backsmash"
22:31:25 <elliott__> lj
22:31:29 <Vorpal> elliott__, "lj"?
22:31:51 -!- elliott_ has quit (Ping timeout: 252 seconds).
22:32:02 <Vorpal> elliott__, what do you mean with lj?
22:32:02 <elliott__> ijsd
22:32:08 <elliott__> also stop pinging me :D
22:32:18 <Vorpal> elliott__, I'll stop once you make sense
22:32:34 <Vorpal> elliott__, I blame the current "lj" and "ijsd" on your connection
22:32:58 <elliott__> me toae@¶ŧ
22:33:57 -!- pikhq_ has joined.
22:33:59 -!- pikhq has quit (Ping timeout: 246 seconds).
22:34:33 <pikhq_> Now, then. I have a functioning pcc.
22:34:38 <pikhq_> Again.
22:34:46 <pikhq_> That is i686-pc-linux-musl.
22:34:48 <pikhq_> Again.
22:34:51 <Vorpal> pikhq_, why do you care about ppc?
22:34:53 <Vorpal> err
22:34:54 <Vorpal> pcc*
22:35:06 <pikhq_> I'm sure I had a reason when I started.
22:35:13 <Vorpal> (having a functioning i686 ppc would be amusing)
22:35:16 <pikhq_> Right now, it's stubborness.
22:42:29 <Vorpal> pikhq_, how long have you been working on this
22:44:09 <pikhq_> Today.
23:07:40 -!- oerjan has joined.
23:12:43 <pikhq_> make[2]: *** No rule to make target `../.././gcc/libgcc.mvars'. Stop.
23:12:49 <pikhq_> ... What.
23:16:23 -!- pikhq has joined.
23:19:45 -!- pikhq_ has quit (Ping timeout: 260 seconds).
23:25:42 <ais523> <barsoap> My favourite expansion hack is mkdir z; mv *; mv z foo. Try to do that with a smarter mv.
23:25:50 <ais523> wow that's an interesting use of *
23:25:51 <ais523> and pretty eso
23:26:10 <ais523> elliott__: are you caught up logreading, btw?
23:26:20 <elliott__> ais523: I wasn't planning to; should I?
23:26:33 <pikhq> Well, you'll just see me being angry at everything and everyone forever.
23:26:54 <ais523> elliott__: not necessarily, it's just that some things happened that I thought you might have reactions to, but you probably don't care much
23:27:08 <ais523> also, at the NEC today, I saw a place marked "food & bar" in really large letters (I'm talking at least 10 metres high)
23:27:09 * elliott__ reads
23:27:12 <ais523> only someone had removed the d
23:27:15 <ais523> so it said foo & bar instead
23:27:24 <ais523> I wonder if it was actually a metasyntactic varaible vote, or concidence?
23:27:26 <pikhq> ais523: That was my initial parse even with the "d" there.
23:27:32 <ais523> pikhq: heh
23:28:23 <elliott__> I think there's actually a bar called the Foo Bar
23:29:00 <elliott__> 13:55:58: <Sgeo_> http://lee.fov120.com/ecoop.pdf a paper advocating for "prototype multiple dispatch"
23:29:05 <elliott__> is this the Slate stuff?
23:29:54 <Phantom_Hoover> I'm getting this sense that Sam Hughes' soul has been sucked out by something.
23:30:10 <elliott__> Working at IBM?
23:30:29 <elliott__> Also, are you sure it's not your soul that's been sucked?
23:30:36 <elliott__> ais523: am i meant to be commenting on sgeo
23:31:00 <ais523> elliott__: later, there was someone turning up about esoterica, and then got vaguely sucked into esoprogramming
23:31:14 <ais523> also some trolling from cheater that even I recognised as trolling, but I didn't say anything
23:31:44 <elliott__> A wiser strategy than the reciprocation the rest of us get sucked into.
23:32:08 <elliott__> 17:46:33: <ais523> hey, remember when everyone here mocked me for saying I was entering a Pokémon championship, and saying I had no chance?
23:32:09 <elliott__> we did that?
23:32:15 <elliott__> I don't recall doing that :<
23:32:37 <pikhq> I recall us asserting that he had little chance, because Pokémon tourny players are quite intense about it.
23:32:44 <pikhq> Not much on the "mocking" though.
23:32:56 <ais523> ah, fair enough
23:33:03 <ais523> but this channel generally did, I forget who
23:33:06 <pikhq> Why mock someone for playing a good JRPG?
23:33:10 <ais523> but it was more than one person
23:33:22 <ais523> pikhq: it was for thinking I had a chance at doing well, rather than for playing it
23:33:39 <ais523> people telling me I was underestimating the effort required, etc
23:33:40 <pikhq> Mmmm.
23:34:17 <pikhq> Well, it *is* rather a lot of work to be competitive. But apparently, you've done your due diligence.
23:34:54 <oerjan> <zzo38> I once asked them why they make large GNU program like that, they didn't give a very good answer in my opinion
23:35:06 <elliott__> :D
23:35:16 <elliott__> pikhq: pokemon is a /good/ jrpg?
23:35:18 <elliott__> it's 90 percent grinding
23:35:44 <oerjan> i am now envisioning stupid programmers being forced to explain their reasoning to zzo38
23:35:54 <pikhq> elliott__: Good mechanically.
23:36:00 <pikhq> elliott__: The plot is absolutely banal.
23:36:21 <elliott__> Sgeo_: HEY LOOK HOMESTUCK UPDAEJTROIJD
23:36:24 <elliott__> god its fun being on the other side of bugging
23:36:24 <ais523> elliott__: not any more, there's a new experience formula in Black & White which removes most of the grinding, unless you want a really competitive team
23:36:42 <elliott__> ais523: heh, I even contemplated buying black or white yesterday or so
23:36:48 <ais523> it takes me about 3 hours to get a perfectly-statted competitive Pokémon from near-scratch, if I'm allowed repeatable resources
23:37:00 <ais523> that is, things that were hard to get in the first place but don't get used up in the process
23:37:03 <pikhq> elliott__: Also, 90% grinding is not that big of a deal for a game that's got like 10 or 15 hours to the "end".
23:37:24 <ais523> pikhq: and around 400 or so hours to the actual end, where you fill the Pokédex, that hardly anyone ever reaches
23:37:31 <elliott__> pikhq: Well sure, but it's more addictive than anything :)
23:37:34 <elliott__> In the older generations
23:37:42 <ais523> also, the plots have improved over time
23:37:46 <pikhq> ais523: I consider that, along with competition, to be post-game content.
23:37:54 <elliott__> ais523: sapphire imo was plot perfection
23:37:55 <ais523> in Black & White, the plot is about on the level of a decent children's story
23:37:56 <elliott__> ERADICATE
23:37:56 <elliott__> ALL
23:37:57 <elliott__> WATER
23:38:08 <ais523> elliott__: that was Ruby
23:38:12 <elliott__> oh was it
23:38:12 <ais523> sapphire was FLOOD THE WORLD
23:38:14 <elliott__> same thing :)
23:38:14 -!- augur has quit (Ping timeout: 248 seconds).
23:38:20 <pikhq> Or, alternately, you could just say "the story bit is just a side thing".
23:38:20 <elliott__> it's a very, very special kind of stupidity that these villains run on
23:38:36 <ais523> new in Black & White, the villains actually have plausible motivations
23:38:43 <ais523> all of them, even if some of them contradict each other
23:38:44 <pikhq> Emerald was better.
23:38:46 <ais523> and others are being manipulated
23:38:52 <pikhq> ERADICATE ALL WATER *and* FLOOD THE WORLD
23:39:20 <elliott__> ais523: So it'll be literary fiction in a few hundred years?
23:39:25 <CakeProphet> I have to say out of all of the Pokemon games I've played, third generation was the most fun.
23:39:33 <CakeProphet> but I haven't played 4 or 5.
23:40:05 <ais523> elliott__: perhaps
23:40:07 <CakeProphet> but yes, the villains are always stupid.
23:40:21 <ais523> CakeProphet: I think the 4th gen remakes of the 2nd gen games are best
23:40:33 <ais523> but 5th gen has been growing on me, I used to dislike it a lot but now I rank it pretty high
23:40:42 <CakeProphet> ah, well yes. Any remake of the original games is going to be awesome as well.
23:40:44 <pikhq> I've got a soft spot in my heart for 2nd gen.
23:40:57 <elliott__> what's fifth gen
23:41:02 <ais523> black & white, so far
23:41:05 <ais523> and Pokédex 3D
23:41:07 <pikhq> Haven't played 4th or 5th gen, due to not owning a DS.
23:41:09 <ais523> and some other pointless spinoffs
23:41:22 <ais523> the generation number is basically about how many Pokémon are involved
23:41:27 <elliott__> btw, is the 3DS' 3D actually any good
23:41:29 <CakeProphet> I'd say third generation is the last generation in which they had good pokemon concepts.
23:41:45 <CakeProphet> overall.
23:42:04 <elliott__> CakeProphet: i suspect nostalgia goggles
23:42:18 <CakeProphet> elliott__: actually no, I didn't play third generation until like two years ago.
23:42:21 <pikhq> Shame, too. If they got actually desperate they could start spelunking mythology. ... And risk becoming Megaten.
23:42:26 <pikhq> Which would actually be awesome.
23:42:32 <elliott__> CakeProphet: bah :)
23:42:54 <elliott__> pikhq: how do you not own a DS? even /ais/ owns a DS
23:43:10 <CakeProphet> elliott__: possible bias in that I haven't actually /played/ fourth and fifth generation. I've only watched other people and looked up some of the pokemon via wiki and thought they were lame.
23:43:11 <Phantom_Hoover> <elliott__> btw, is the 3DS' 3D actually any good
23:43:13 <pikhq> elliott__: 100 applicants per job opening. Any further questions?
23:43:17 <Phantom_Hoover> It works, if that's what you mean.
23:43:29 <elliott__> pikhq: PAH :P
23:43:31 * CakeProphet does not own a DS..?
23:43:34 <elliott__> Phantom_Hoover: Yes but I mean is it annoying.
23:43:42 <Phantom_Hoover> elliott__, also yeah, you forget pikhq lives in a less developed country than us.
23:43:48 <Phantom_Hoover> And I can't answer that.
23:43:51 <elliott__> Phantom_Hoover: Oh right.
23:44:13 -!- FireFly has quit (Quit: swatted to death).
23:45:10 <oerjan> <Vorpal> interestingly, translating the Swedish word for "hangover" literally to English yields "backsmash"
23:45:16 <oerjan> wait which word
23:46:04 <oerjan> norwegian is "bakrus" but "rus" doesn't mean smash, it means intoxication
23:46:26 <ais523> e.g. up to Mew is 1st gen, if you go up to Celebi it's 2nd gen, up to Deoxys is 3rd gen, up to Arceus is 4th gen, and up to (as yet unreleased event Pokémon) is 5th gen
23:46:59 <ais523> that wasn't lag, that was me forgetting to press return because I was trying to help deal with a spontaneously exploding glass oven door
23:47:05 <elliott__> ais523: I just want to know when MISSINGNO will be an official part of the Pokédex.
23:47:23 <ais523> elliott__: you do realise it doesn't exist, right?
23:47:35 <elliott__> As #000.
23:47:40 <elliott__> ais523: By what definition of "doesn't exist"?
23:47:48 <ais523> it isn't even #000
23:47:57 <pikhq> It certainly existed in Stadium (Stadium 2, JP).
23:48:03 <elliott__> Bulbapedia says it's #000 in the national ddddex, but maybe that's wrong.
23:48:18 <ais523> well, for one thing it's spelt MISSINGNO. with a dot, but more to the point it has no stats defined but a nam
23:48:20 <ais523> *name
23:48:30 <ais523> everything else is unrelated memory interpreted as stats
23:48:52 <elliott__> ais523: Plenty of games for such platforms are coded with weird bit-twiddling hacks.
23:48:52 <CakeProphet> yessss, mexican food.
23:48:55 <elliott__> The implementation is rather irrelevant.
23:49:25 <ais523> #000 Unova dex is Victini, they decided to put an actual event mon there
23:49:37 <ais523> although event mons are a ridiculous concept
23:49:50 <ais523> I think #000 has been DP Box for a while now
23:49:56 <ais523> and #000 in first gen was Cancel
23:49:59 <CakeProphet> event... mon?
23:50:14 <CakeProphet> like, a jamaican dude?
23:50:16 <ais523> the menu option that you use to not select anything
23:50:20 <ais523> CakeProphet: short for "monster"
23:50:35 <ais523> just like Pokémon was "pocket monster" before it was contracted to settle a trademark dispute
23:51:19 <ais523> and an event Pokémon is one you can only get by going to a particular Nintendo / tPCI distribution in real life
23:51:24 <ais523> or by hacking
23:51:32 <elliott__> ais523: or trading, presumably?
23:51:36 <ais523> or in some cases, via glitch
23:51:42 <ais523> elliott__: well, that doesn't increase the number in the world
23:51:48 <ais523> but sure, if you can find someone willing to part with one
23:51:49 <elliott__> "The Qi JT<name of player>? POké BB<name of Pokémon> de W N type is the type of the glitch moves TM14 and TM17. Part of the name of this type changes to match the player's name, and another part changes to match the name of the player's Pokémon at the front of the party. For example, if the player's name was ASH and the active Pokémon's name was PIKACHU, the name of this type would be Qi JTASH? POké BBPIKACHU de W N."
23:52:09 <ais523> or who's not above cloning them via glitches or hacks
23:52:19 <elliott__> ais523: annoying artificial scarcity :(
23:52:25 <ais523> WishBliss must have been cloned so many times
23:52:43 <elliott__> It's easy to poison the market by just cloning one a few times and spreading it around, anyway
23:53:00 <ais523> possibly the most infamous event Pokémon in existence, because it was distributed in a pretty narrow distribution (only in New York), is legal in competitive battles, and is really good
23:53:33 <pikhq> ais523: It wasn't contracted to settle a trademark dispute...
23:53:40 <elliott__> "I've heard it from too many people so now I just gotta ask. Is Wish-Blissey seriously banned? I know its hard to get and all having to trade all the way from XD but come on now. Is this serious or is this just Colin's crap from official (Which noone cares bout) still not flushing properly?"
23:53:41 <elliott__> Well this makes no sense.
23:53:43 <pikhq> ais523: It was contracted for the sake of not being Engrish.
23:54:03 <ais523> elliott__: no it isn't banned, and it doesn't come from XD, someone is trolling
23:54:04 <pikhq> ais523: It's still sold as "poketto monsutā" in Japan.
23:54:06 <CakeProphet> "noone" ugh
23:54:13 <elliott__> CakeProphet: what's wrong with "noone"?
23:54:23 <elliott__> It omits a diaeresis, but so does everyone
23:54:24 <pikhq> Insufficient ö.
23:54:24 <CakeProphet> it's not one word, for starters.
23:54:26 <elliott__> ais523: there seems to be no bulbapedia article for WishBliss
23:54:28 <ais523> especially blaming Colin for everything, it's quite a sine of a troll
23:54:32 <elliott__> CakeProphet: Yes, it is.
23:54:37 <ais523> elliott__: it's probably in the article about Blissey or Chansey
23:54:57 <elliott__> CakeProphet: Note that in "no-one", the hyphen is simply taking the place of a diæresis above the second letter.
23:55:02 <elliott__> i.e. noöne.
23:55:08 <elliott__> But it's perfectly valid to simply omit the diæresis altogether.
23:55:12 <ais523> oh, strange, Bulbapedia doesn't even mention it as existing
23:55:23 <elliott__> ais523: SHHHHHHHHHHH
23:55:24 <ais523> Wish is nowhere in the learnset
23:55:25 <CakeProphet> elliott__: right, but "noone" is silly and should never be used. no-one is fine.
23:55:40 <elliott__> CakeProphet: I am stunned by your flawless justification.
23:55:44 <CakeProphet> yep
23:55:50 <CakeProphet> I mean, it should be obvious why it's bad.
23:55:52 <elliott__> I don't use "noone" either for aesthetic concerns, but to say it's not a word is ridiculous :P
23:56:00 <ais523> ah no, it's just hidden in a subpage
23:56:12 <ais523> http://bulbapedia.bulbagarden.net/wiki/List_of_Nintendo_event_Pok%C3%A9mon_in_2004#Wish_Chansey
23:56:17 <CakeProphet> it's a non-standard word, at least. People use it, but they probably need to die or something. -shrug-
23:56:46 <pikhq> Where's augur when you need him?
23:57:04 <ais523> I think that's also the only way to get Sweet Scent on a Chansey/Blissey, but nobody cares
23:57:14 <CakeProphet> Just a small English language pet peeve of mine, one of few.
23:58:19 <pikhq> Honeſtly, if you're going to go preſcriptiviſt, you ſhould go all þe way.
23:58:46 <elliott__> CakeProphet: can i pick on you for saying a bunch of non-standard shit that shakespeare just made up for shits and giggles?
23:58:52 <elliott__> It's a PET PEEVE
23:59:04 <CakeProphet> a Nenglishsure
23:59:10 <CakeProphet> :)
2011-06-05
00:00:06 <oerjan> for the want of an ail
00:00:36 <pikhq> oerjan: Nice.
00:00:47 <CakeProphet> pikhq: no, I think you should go just a little ways in order to still be reasonable.
00:01:07 <Phantom_Hoover> CakeProphet, you aren't that guy I just talked to on that Homestuck Omegle thing are you.
00:01:12 -!- augur has joined.
00:01:13 <CakeProphet> ...no
00:01:14 <pikhq> CakeProphet: M'þinkſt þou are not ſufficiently reaſonable, m'ſelf.
00:01:23 <pikhq> s/are/art/
00:01:35 <CakeProphet> pikhq: shameful
00:01:45 <pikhq> *ſhameful
00:03:21 <CakeProphet> !gregor The wonders of computer science.
00:03:24 <EgoBot> ​The wonders of computer science.
00:03:40 <pikhq> Um?
00:03:54 <CakeProphet> indeed.
00:04:14 <oerjan> !show gregor
00:04:15 <EgoBot> ​sh sed 's/þ/th/g ; s/Þ/Th/g ; s/ſ/s/g ; s/æ/ae/g ; s/Æ/Ae/g ; s/œ/oe/g ; s/Œ/Oe/g'
00:04:53 <pikhq> Ah, I ſee.
00:05:01 <CakeProphet> no option? or do you need one?
00:06:17 <CakeProphet> I'm not entirely sure why that isn't working
00:06:29 <CakeProphet> ah nevermind
00:06:35 <CakeProphet> it does the opposite of what I thought it did. :P
00:07:50 <Phantom_Hoover> !addinterp gregor^-1 sh sed 's/th/þ/g ; s/Th/Þ/g ; s/s/ſ/g ; s/ae/æ/g ; s/Ae/Æ/g ; s/oe/œ/g ; s/Oe/Œ/g'
00:07:50 <EgoBot> ​Interpreter gregor__1 installed.
00:07:55 <Phantom_Hoover> -_-
00:09:07 <CakeProphet> excellent, I was hoping someone else would do that so I didn't have to. :D
00:09:22 <CakeProphet> but I would have named it 'pikhq'
00:10:27 <Phantom_Hoover> !gregor__1 In hindsight, that seems more sensible, given Gregor's stupid mutilation of the name.
00:10:28 <EgoBot> ​In hindſight, þat ſeemſ more ſenſible, given Gregor'ſ ſtupid mutilation of þe name.
00:11:15 <CakeProphet> Apparently, I use uninterpolated Perl string literals in my English.
00:12:37 <CakeProphet> if I used double quotes something scary might happen.
00:12:55 <pikhq> Hey, look, it outputs wrong.
00:13:02 <ais523> s shouldn't become ſ at the end of a word
00:13:04 <pikhq> Yup.
00:13:25 <oerjan> or after another s, iirc
00:13:46 <pikhq> Quite right.
00:13:56 <pikhq> It's "ſs", not "ſſ".
00:16:28 <Phantom_Hoover> Anyone want to write the regexes for that? No? Good.
00:16:39 <CakeProphet> lol. I do, of course. :)
00:17:29 <elliott__> hahaha WOW someone is seriously saying that .NET is going to be abandoned in favour of HTML5 and JavaScript
00:17:43 <elliott__> ".NET came out 10 years ago, and Microsoft still has yet to adopt it in Office or throughout Windows."
00:17:48 <elliott__> WHY HAVEN'T YOU REWRITTEN OFFICE YET MICROSOFT
00:17:54 <CakeProphet> ...hahahaha
00:18:30 <CakeProphet> wow.
00:19:05 <pikhq> Personally, I'd be amazed if they ever actually replaced their freakish C environment.
00:19:16 <pikhq> It's one of the best bits of platform lockin ever devised.
00:20:00 <Phantom_Hoover> Go on.
00:20:46 <CakeProphet> I dream of the day where I get hired to write applications in HTML5 and Javascript.
00:22:06 <pikhq> I dream of the day when I get to replace all software.
00:22:45 <CakeProphet> with all of that infinite time you have.
00:23:07 <Phantom_Hoover> I dream of the day when I can write software without getting bored within thirty seconds.
00:23:54 <monqy> I dream of the day when writing software isn't awful
00:24:15 <elliott__> Phantom_Hoover: how goes terraingen
00:24:20 <elliott__> .lisp
00:24:31 <Phantom_Hoover> See what I mean‽
00:24:35 <CakeProphet> Phantom_Hoover: I've heard Visual Basic keeps things interesting.
00:24:35 <pikhq> I also dream of the day that I can fork() myself.
00:24:47 <Phantom_Hoover> ...eeeeew.
00:24:48 <elliott__> pikhq: it's really quite easy HUR HUR HUR
00:24:48 <elliott__> HUR
00:24:50 <elliott__> HUR HUR HUR
00:24:50 <elliott__> HUR
00:24:51 <elliott__> HUR HUR
00:24:52 <elliott__> HUR
00:24:52 <elliott__> HUR
00:24:53 <elliott__>
00:24:54 <elliott__> HUR
00:24:58 <elliott__>
00:24:59 <Phantom_Hoover> That's worse than Vorpal's interface fetish.
00:25:02 <elliott__>
00:25:04 <elliott__>
00:25:06 <elliott__>
00:25:08 <elliott__> HUR
00:25:12 <elliott__> HUR
00:25:35 <CakeProphet> pikhq: that would be great, I would fork bomb myself and go save the world as a giant collosal human monster.
00:25:49 <elliott__> this channel is pg thirteen jesus
00:25:56 <monqy> cut off portions of yourself / end world hunger
00:26:01 <elliott__> (jesus himself was a very rowdy man we have toned him down as this channel)
00:27:08 <CakeProphet> monqy: I was thinking more along the lines of forking huge balls of myself as a projectile to hurl at evil-doers, but sure, that sounds like a more realistic world saving strategy.
00:27:29 <pikhq> elliott__: This channel is quintuple-X.
00:27:32 <CakeProphet> also "forking huge balls"
00:29:37 <CakeProphet> Is there a language called Lime?
00:29:46 <CakeProphet> or Taco? because these are names I would like to use.
00:30:34 <CakeProphet> Oh hey I can Google: http://domino.research.ibm.com/library/cyberdig.nsf/1e4115aea78b6e7c85256b360066f0d4/43e23ec91521c1e3852577bc0048ea37!OpenDocument&Highlight=0,lime,language,manual
00:31:42 <elliott__> i cant
00:31:57 <Phantom_Hoover> CakeProphet, would it be something along these lines: http://www.mspaintadventures.com/?s=4&p=001680
00:32:40 <CakeProphet> ..yes
00:33:08 <elliott__> Phantom_Hoover: Stop making me want to read PS.
00:33:36 <Phantom_Hoover> elliott__, PS kills AD with the Chicago Overcoat. And then it turns out they're both PI.
00:33:41 <olsner> <CakeProphet> Oh hey I can Google <-- congratulations!
00:33:50 <elliott__> Phantom_Hoover: Obviously.
00:33:51 * Phantom_Hoover really needs some spoiler templates he didn't steal off xkcd.
00:34:18 <elliott__> Seriously though it's such a short comic I could read it in two days.
00:34:28 <elliott__> Why don't I do that rather than refreshing for Homestuck updates.
00:34:54 <Phantom_Hoover> Because it would involve enjoying yourself jegus how is it half one already.
00:35:13 <elliott__> Please stop saying jegus it is really annoying and only bad people do it all the time.
00:35:23 <elliott__> And the answer is because you have a sleep schedule about a tenth as insane as mine now.
00:35:25 <elliott__> When did you wake up anyway.
00:35:40 <Phantom_Hoover> 10 something.
00:35:48 <elliott__> What, am?
00:35:50 -!- Patashu has joined.
00:36:04 <elliott__> OK that's only a thousandth as insane come on that's downright pedestrian.
00:36:12 <Phantom_Hoover> OK sleep now
00:36:21 <elliott__> You suck.
00:42:07 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
00:50:12 <pikhq> elliott__: When did you wake up?
00:50:27 <elliott__> I... never... woke... UP...
00:52:12 <oerjan> i thought we had established that elliott was... wait, what was it again
00:52:29 <elliott__> a vampire werewolf?
00:52:44 <oerjan> plausible
00:53:06 <oerjan> but i'm pretty sure that wasn't it
00:55:54 <elliott__> 15:13:21: <Phantom_Hoover> <oklopol> where is elliott :\
00:55:54 <elliott__> 15:13:23: <Phantom_Hoover> Werewolves.
00:56:07 <elliott__> 18:33:29: <zzo38> Learn to be Chinese and kill yourself
00:56:14 <elliott__> `addquote <zzo38> Learn to be Chinese and kill yourself
00:56:17 <HackEgo> ​435) <zzo38> Learn to be Chinese and kill yourself
00:56:54 <elliott__> 20:27:34: <coppro> we also talk about other esoterica
00:56:54 <elliott__> 20:27:50: <coppro> so if you're just a curious type, you might want to hang around to learn
00:56:57 <elliott__> no we d-
00:56:58 <elliott__> 20:27:56: <ais523> coppro: no we don't
00:57:08 <elliott__> ais523: good words
00:58:54 <elliott__> 20:30:30: <coppro> hmm
00:58:54 <elliott__> 20:30:34: <coppro> elliott's not around, right?
00:58:54 <elliott__> 20:30:48: <ais523> coppro: I don't think so
00:58:54 <elliott__> 20:31:01: <coppro> ais523: excellent
00:58:54 <elliott__> 20:31:05: <coppro> we're safe from him then
00:58:58 <elliott__> coppro: Yeah, right
00:59:54 <elliott__> ais523: gah, you're right wrt cheater
01:00:00 * elliott__ attempts to skip over the noise
01:00:15 <elliott__> 20:36:13: <norman256394> something like the interface of the future
01:00:17 <elliott__> 20:36:22: <norman256394> highly interactive
01:00:17 <elliott__> 20:36:28: <norman256394> smooth transitions
01:00:17 <elliott__> lol
01:00:35 <elliott__> 20:38:17: <Phantom_Hoover> You should probably talk to elliott about that so he can tell you why your ideas are bad and you should feel bad.
01:00:36 <elliott__> yeah
01:00:44 <elliott__> im here for norman if he wants a yelling at
01:01:38 <elliott__> 20:41:53: <norman256394> there should be a tag in here to mark sentences that are meant to be taken as humourous/sarcastic
01:01:43 <elliott__> what is it with people proposing this, it defeats the point of sarcasm entirely
01:01:43 <elliott__> which is to make people who are stupid feel bad
01:01:47 <coppro> elliott__: I have empirically determined your weakness?
01:02:01 <ais523> elliott__: the proposed actual tag was funny
01:02:20 <elliott__> ais523: Yes, but it was cheater, so I'm legally obligated to refuse to comment on this one-off fluke.
01:02:26 <elliott__> coppro: Yes, it is ending statements with a question mark?
01:02:46 <coppro> elliott__: What you do you think !
01:02:54 <elliott__> coppro: aaaaah what
01:02:59 <ais523> coppro: gah, shades of Enigma
01:03:04 <ais523> engima has different floors !
01:03:10 <ais523> *enigma has different floors !
01:03:24 <elliott__> im glad you included the entire sentence there
01:03:32 <elliott__> or id have tohught you meant "engima enigma different floors"
01:03:51 <ais523> elliott__: it loses its effect if not spelt out
01:03:58 <ais523> the typo was ruining it
01:08:39 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:08:50 -!- Vorpal has quit (Ping timeout: 260 seconds).
01:14:31 * CakeProphet is feeling hard-boiled.
01:16:35 <elliott__> Oh god is he reading Problem Sleuth.
01:17:50 <elliott__> CakeProphet: C/D
01:24:36 -!- calamari has joined.
01:25:43 -!- calamari has left.
01:41:09 -!- oerjan has quit (Quit: Good night).
02:17:22 -!- pikhq_ has joined.
02:20:37 -!- pikhq has quit (Ping timeout: 276 seconds).
02:38:42 <CakeProphet> elliott__: yes.
02:47:56 -!- augur has quit (Remote host closed the connection).
03:04:31 -!- pikhq has joined.
03:04:43 -!- pikhq_ has quit (Ping timeout: 244 seconds).
03:05:43 -!- augur has joined.
03:09:53 <Sgeo_> Should I read Problem Sleuth?
03:15:38 <zzo38> Some pokemon tournaments will permit cheating before the tournament starts, as long as the data is of the kind that can also be legitimately obtained in the game, and that you do not cheat during the game.
03:16:14 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
03:16:44 <zzo38> My quotation "Learn to be Chinese and kill yourself" is reading out of context, is more strange, since its meaning from that context is now not there; but you told me before you like to post quotations out of context, so it is OK.
03:20:35 <CakeProphet> Sgeo_: I'm finding it entertaining
03:21:20 <Sgeo_> zzo38, the context is someone who wants to get better at everything than everyone else, by killing people who are better at him at anything
03:21:36 <Sgeo_> He pointed out that he'd have to kill all Chinese people
03:21:44 <Sgeo_> And almost everyone else for that matter
03:22:18 <zzo38> Yes, that is why I typed that message
03:24:32 <pikhq> Oh, he wouldn't have to kill all Chinese people.
03:24:44 <pikhq> Just all people who speak the Chinese language he wants superiority at.
03:24:53 <pikhq> *Much* easier problem.
03:26:05 <zzo38> Then in that case, learn to be Chinese and then don't kill yourself.
03:37:00 -!- Lymia has quit (Ping timeout: 260 seconds).
04:14:15 <elliott__> <CakeProphet> Sgeo_: I'm finding it entertaining
04:14:30 <elliott__> CakeProphet: wait 'til you get to homestuck :D
04:14:37 <elliott__> (FIVE WEEKS LATER...)
04:18:48 * Sgeo_ headaches at the dumbwaiter
04:18:56 <elliott__> Sgeo_: wat
04:19:13 <Sgeo_> http://www.mspaintadventures.com/?s=4&p=000404
04:25:46 <elliott__> Sgeo_: oh btw HAMSTEAK UPDATE i love this reversal of the balance of power mwahahaha endless bugging power
04:25:59 <Sgeo_> Knew about it for a while
04:26:59 <elliott__> yeah but so did i every time you said it so everything is going according to plan :D
04:31:28 <pikhq> Y'know what'd be very, very nice?
04:31:36 <pikhq> Replay Gain on video.
04:31:42 <pikhq> Y U NO DO IT, MPLAYER?
04:31:57 <elliott__> can we please let y u no die
04:31:58 <elliott__> like
04:32:00 <elliott__> forever
04:32:08 <pikhq> Second time I've used it, okay?
04:32:15 <elliott__> yeah but what if it spreads
04:32:18 <elliott__> it'll be like
04:32:21 <elliott__> a breadth-first meme
04:32:28 <elliott__> everyone just using it a few times
04:32:33 <pikhq> Oh jesus fuck.
04:32:49 <elliott__> yeah
04:33:16 <Sgeo_> elliott__, Y U NO LIKE Y U NO?
04:33:21 * Sgeo_ ducks
04:33:41 <elliott__> Sgeo_: im going to rip your fucking heart out
04:35:20 <coppro> Sgeo_: Y U NO HAVE HEART?
04:36:21 <elliott__> coppro: your blood
04:36:22 <elliott__> will line
04:36:23 <elliott__> the fucking
04:36:23 <elliott__> walls
04:40:02 <Sgeo_> coppro, Y U NO HAVE BLOOD?
04:40:09 -!- Sgeo_ has changed nick to Sgeo.
04:41:34 <elliott__> Sgeo: death
04:41:36 <elliott__> will rain
04:41:38 <elliott__> from the SKIES
04:44:01 <pikhq> elliott__: Guess what's being developed by a suckless dev?
04:44:13 <pikhq> COREUTILS
04:44:15 <pikhq> http://hg.suckless.org/sbase/file/a9db33a9bfea
04:44:16 <pikhq> :D
04:45:43 <coppro> :D :D
04:45:48 <elliott__> my interest in coreutils is rapidly diminishing
04:45:53 <elliott__> do they have anything actually non-trivial
04:45:58 * elliott__ looks
04:46:01 <elliott__> nope, doing all the simples tuff first
04:46:12 <elliott__> i can guarantee this will never be a viable full coreutils replacement
04:46:21 <pikhq> Yeaaah, he started 2 days ago.
04:47:04 <pikhq> Is there anything non-trivial in coreutils?
04:47:34 <elliott__> well, arguable :)
04:47:39 <elliott__> but
04:47:42 <elliott__> are you writing coreutils
04:47:46 <elliott__> or coreutils + util-linux
04:47:56 <elliott__> because the latter is not really non-glibc-portable and the like
04:47:59 <elliott__> and it's what really needs replacing
04:48:03 <elliott__> and that is _not_ trivial
04:48:13 <elliott__> you need a getty, fdisk, fsck
04:48:14 * pikhq hasn't looked at util-linux's src
04:48:22 <elliott__> mkfs
04:48:24 <elliott__> mount
04:48:29 <elliott__> script
04:48:34 <elliott__> etc.
04:48:48 <elliott__> pikhq: they use some gnu shit like get_program_name() or something
04:48:55 <elliott__> that adds overhead to every single program if its included in the libc
04:49:41 <coppro> pikhq: obious bug in tee
04:49:44 <coppro> *obvious
04:49:56 <elliott__> fucking up tee
04:49:59 <elliott__> that's an achievement
04:50:24 <elliott__> sweet, gratuitous use of stdio
04:50:31 <coppro> it will accept "-e\xff" as a valid flag
04:50:35 <elliott__> good to know the suckless ultra-minimalist spirit is still alive
04:50:51 <elliott__> coppro: um, eh?
04:51:20 <elliott__> holy shit their cat uses stdio
04:51:21 <elliott__> http://hg.suckless.org/sbase/file/a9db33a9bfea/cat.c
04:51:23 <elliott__> cat is like
04:51:29 <elliott__> the one program that's utterly trivial to write with read/write
04:51:40 <elliott__> and that actually suffers for stdio overhead because it's such a tiny program
04:52:12 <coppro> elliott__: he uses getopt into a char
04:52:18 <elliott__> coppro: oh lol
04:52:35 <elliott__> C: best language????
04:53:31 <coppro> clearly these things should just be written in assembly
04:53:34 <coppro> also screw backwards compatibility
04:53:40 <coppro> let's have a C compiler with sane flags
04:53:47 <elliott__> asmutils is fun
04:53:54 <elliott__> writes its own ELF headers and everything
04:53:59 <elliott__> totally syscalls, no libc dependencies
04:54:01 <elliott__> http://asm.sourceforge.net/asmutils.html
04:54:13 <elliott__> coppro: here's another idea: let's not use C
04:55:17 <coppro> elliott__: provide me with an alternative and I'm behind you all the way
04:55:19 <zzo38> I think you should write a version in C and a version in assembly language. Use the program that is assembly language when it is compatible with the computer.
04:55:30 <elliott__> coppro: for what? coreutils?
04:55:40 <elliott__> for coreutils... any language at all is sufficient, jesus
04:55:46 <elliott__> these are utterly trivial programs for the mostpart
04:55:46 <coppro> elliott__: a minimum portable language
04:56:02 <elliott__> coppro: there is no way C is minimum. that is a laughable claim.
04:56:37 <coppro> elliott__: I didn't claim it was
04:56:54 <elliott__> you were implying it
04:57:09 <elliott__> "gimme an alternate to c" "criteria?" "a dynamically-typed interpreted scripting language"
04:57:26 <coppro> it is quite minimal on a relative scale, while having asufficient abstraction to be portable
04:57:48 <elliott__> C has tons and tons and tons of semantics
04:58:09 <elliott__> i refuse to even argue that, there is no way C is minimal as far as portable languages go:)
04:58:11 <elliott__> [asterisk]go :)
04:58:22 <elliott__> (I might argue its portability too, but I'm way too lazy to right now)
04:58:49 <elliott__> like, ANS Forth is if anything /more/ portable than C, and it certainly has much less semantic baggage
04:58:56 <elliott__> (no, I don't think ANS Forth is a good replacement for C)
04:59:47 <elliott__> "Michael J. Fox Appearing in Back to the Future" ;; Telltale, this is a very dishonest title to put in my inbox >:|
05:00:47 <pikhq> elliott__: So far, I very nearly have a functioning util-linux with musl.
05:01:05 <pikhq> 2 patches thus far, simply pulling in the right includes.
05:01:15 <pikhq> (it seems to have relied on overinclusion in the headers)
05:02:14 <zzo38> Probably C is made to need a lot of things because many different computers have a lot of things, such as the different kind of data types, and different optimization, and so on.
05:04:55 -!- elliott__ has quit (Ping timeout: 252 seconds).
05:05:16 <pikhq> *3* lines of patching.
05:05:26 <zzo38> But still, isn't quite perfect
05:06:29 <coppro> elliott__: minimal in terms of abstraction, not simplicity
05:08:41 <pikhq> Aaand a single GNU-ism.
05:08:49 <pikhq> So far, versionsort().
05:11:29 <coppro> boo
05:11:30 <Sgeo> I'm now sufficiently scared of my power cord that I'm not going to charge my computer until I have a new one
05:11:37 <coppro> lol
05:11:39 <pikhq> And now, a different fail.
05:11:43 <coppro> have fun
05:11:57 <Sgeo> Seriously, it's sparking and making sounsd
05:11:58 <pikhq> Their mount relies on no-longer-extant defines in the Linux headers.
05:12:08 <coppro> lolwut
05:14:10 <zzo38> Then, make a new one that is minimal in abstraction and simplicity and compile to native codes but can do the different kind of optimizations and other features that can be specific to the computers and whatever else. I think someone invented C-- for a similar purpose to this?
05:14:23 <pikhq> ... Waaait, that's libmount which isn't even needed at all.
05:15:11 <pikhq> --disable-libmount
05:15:36 <Sgeo> Night all
05:18:38 <pikhq> And now, something that confuses me.
05:18:40 <pikhq> NGROUPS
05:18:48 <pikhq> I have no idea where that should be found.
05:19:20 <pikhq> Aaah, sys/param.h
05:19:29 -!- Sgeo has quit (Read error: Connection reset by peer).
05:19:55 <pikhq> Musl seems to not define it.
05:21:53 <pikhq> Oh, no wonder, NGROUPS is not POSIX.
05:21:56 <pikhq> NGROUPS_MAX is.
05:33:14 <zzo38> There is also Pascal, although many things Pascal is missing (such as default cases, which some Pascal systems provide; hexadecimal/octal numbers, which WEB provides; preprocessor macros, which WEB provides (also usable to make conditional compilation)), including many things that is just not Pascal such as using pointers like C and bitwise operations and stuff! Is many thing wrong!
05:33:33 <zzo38> However, it does have a few good features such as ability to specify number size datatype by range, which C doesn't do.
05:34:35 <zzo38> And apparently the syntax in Pascal for forward declarations of procedures that have parameters, is really horrible (although I don't know how it works, is just what Knuth wrote that it is really horrible).
05:37:35 -!- calamari has joined.
05:37:42 <pikhq> GAAAH, stuff uses error in here.
05:38:15 <pikhq> By far the most devious GNUism.
05:42:01 <pikhq> Okay, not going to work on it any more, but it would not be that hard to port util-linux to be vaguely portable.
05:48:39 <CakeProphet> To quote Stanford algorithms expert Donald Knuth, "Who are you? How did you get in my house?"
05:48:50 <pikhq> :)
05:53:06 <CakeProphet> I'm actually not sure why most languages index arrays starting at zero. It makes sense, but I have no way of explaining why..
05:53:58 <pikhq> It makes some array arithmetic easier...
05:54:10 <pikhq> It also makes a fuckton of sense with C's semantics.
05:54:18 <pikhq> Remember, a[b] == *(a+b)
05:54:22 <CakeProphet> yes.
06:02:29 <CakeProphet> it would be interesting if computation power had increased faster (relative to need) than memory size. So essentially we were more concerned with optimizing memory over computation time.
06:02:55 <pikhq> Uh, it has.
06:03:15 <pikhq> Well, actually, it's memory bandwidth that's stifling.
06:03:59 <CakeProphet> relative to need though? it seems that optimizing speed over memory use has been preferred in most cases.
06:04:29 <pikhq> The best way to optimise for speed these days *is* to optimise for memory use.
06:04:38 <zzo38> I like index arrays starting at zero it makes sense not only for pointer arithmetic but in a few others ways, sometimes even mathematical sensibility.
06:05:51 -!- zzo38 has quit (Quit: Let's put all of your money in the toilet. Whoever wins will be their job to take *all* the money from the toilet and to flush *all* the suits down the toilet.).
06:07:21 <pikhq> L1 cache is a few kilobytes. An L1 cache miss costs about a dozen clock cycles. L2 cache is *maybe* a few megs. An L2 cache miss will cost you a few hundred clock cycles.
06:08:53 <pikhq> Oh, yeah, and it costs a couple of clock cycles to fetch *from* L1.
06:09:56 <CakeProphet> *A nL1
06:10:22 <CakeProphet> (it makes perfect sense)
06:11:15 <pikhq> Oh, yeah, and a single fetch from disk could well cost you thousands of clock cycles.
06:11:27 <pikhq> Space optimisation *is* speed optimisation these days.
06:11:54 <coppro> more than that
06:12:05 <pikhq> In case you can't tell, most people haven't caught on yet.
06:12:10 <coppro> optimizing memory location is important
06:12:21 <coppro> small is useless if it's scattered
06:12:24 <pikhq> Oh, yes, absolutely.
06:12:32 <coppro> also disks may have caches
06:12:43 <pikhq> Locality lets your reads actually come from cache most of the time.
06:13:00 <CakeProphet> ah, so my prototype linked list filesystem is a no-go?
06:13:03 <pikhq> Which can save your ass if you're dealing with an inherently large working set.
06:13:11 <coppro> CakeProphet: not necessarily
06:13:22 <CakeProphet> coppro: oh, well it doesn't exist anyways. :P
06:13:28 <pikhq> CakeProphet: So... FAT?
06:14:09 <CakeProphet> uh, I guess. Is it linked by chunk?
06:14:22 <pikhq> Yes...
06:14:30 <CakeProphet> I was thinking more along the lines of individual bytes. you know, to simplify everything. :D
06:14:53 <pikhq> Uh, that wouldn't work well on any storage device.
06:14:58 <coppro> CakeProphet: It depends on the nature of the disk
06:15:06 <pikhq> Except maybe a large, large array of magnetic core.
06:15:13 <coppro> SSDs are pretty much random access
06:15:58 <pikhq> coppro: Not *quite*. A large request is more efficient than a small one, because of DMA.
06:16:07 <pikhq> Well, more efficient than many small ones.
06:16:32 <CakeProphet> My persistent storage is an abacus. What do you recommend?
06:16:45 <coppro> pikhq: not familiar with it, but if it's just a size thing, then the effects it has on locality are incidental
06:17:55 <pikhq> coppro: Basically, the CPU sends a request to the device and then gets told when the request is done...
06:18:10 <coppro> ah
06:18:35 <pikhq> Combined with the limited number of requests that can be in flight and once, it's much more efficient to simply tell the SSD to do a handful of giant requests and wait around, do something else, then to keep feeding it a giant list of small requests.
06:18:42 <pikhq> s/then/than/
06:18:45 <coppro> makes sense
06:19:07 <pikhq> s/and/at/
06:19:28 <pikhq> The maximum queue depth on a SATA drive is, uh, 31, I think.
06:19:43 <coppro> I don't know the mechanics of hard drives well enough to be sure, but I imagine seeks on those are quite inexpensive too, although you are still far better off reading linearly
06:19:57 <pikhq> Seeks on SSDs are effectively instantaneous.
06:20:42 <pikhq> It's just the pesky bit about copying from SSD to RAM that makes linear reads better.
06:20:54 <coppro> yeah
06:21:31 <coppro> I imagine you could design a magnetic disk where the maximum cost of a seek is one rotation
06:21:39 <coppro> no clue if that's how modern drives work
06:21:57 <coppro> ... goddamn it why do we stlil program in assembly
06:22:00 <coppro> *still
06:22:03 <CakeProphet> abacii are very durable, and can hold persistent data for centuries with minimal effort if kept in a dry environment!
06:22:23 <coppro> CakeProphet: also one free of earthquakes
06:22:33 <pikhq> coppro: Pretty sure it's pretty close to that even now.
06:23:04 <oklopol> evening ppl
06:23:07 <CakeProphet> hmm, so would an EMP wipe a hard drive?
06:23:08 <coppro> pikhq: I'd expect so
06:23:12 <coppro> CakeProphet: oh yes
06:23:19 <CakeProphet> I thought it might but I wasn't sure.
06:23:20 <coppro> think about that for a second
06:23:21 * oklopol opens a beer after a long day at work
06:23:26 <coppro> elector-/magnetic/ pulse
06:23:38 <coppro> y'know, with the how do they work and stuff
06:23:49 <pikhq> The issue is that 10 millisecond seeks are ungodly slow when a millisecond is a thousand clock cycles.
06:24:09 <pikhq> Hard drives are actually harder to wipe with magnetism than you'd think.
06:24:27 <coppro> modern hard drives don't take 10 milliseconds for a rotation
06:24:36 <coppro> oh wait
06:24:41 <coppro> nvm, me dumb
06:24:45 <coppro> <-- order of magnitude issues
06:25:36 <oklopol> also my psychic told me i'll soon get out of the jobless situation i'm in at the moment, and that i will soon finish a project i've been working on for a long time
06:25:51 <coppro> your psychic
06:25:52 <oklopol> i suppose research isn't work :\
06:26:24 <pikhq> They have neodymium magnets *in them*, usually...
06:26:34 <pikhq> Decent sized ones, too.
06:27:07 <coppro> Now, they're often also shielded
06:27:16 <CakeProphet> yeah I've played around with those. They're ridiculously strong.
06:27:35 <coppro> so if the shield is intact, doing any magnetic damage is difficult
06:27:43 <coppro> and a pulse will just be summarily ignored
06:27:50 <oklopol> yes i use the services of a psychic, but i'm considering getting a live one since stuff like "hello $name, your first name $first_name has |$first_name| letters, so by using numerology we can tell ..." is getting kind of boring
06:28:03 <pikhq> Probably do a number on the drive controller, making it effectively unreadable, though.
06:28:09 <coppro> yeah
06:28:27 <pikhq> oklopol: ... Srsly?
06:28:28 <coppro> also if it was running at the time you might end up with the write head getting charged and causing some write-age
06:28:35 <oklopol> pikhq: srsly in what sense?
06:28:41 <coppro> `quote add < oklopol> yes i use the services of a psychic, but i'm considering getting a live one since stuff like "hello $name, your first name $first_name has |$first_name| letters, so by using numerology we can tell ..." is getting kind of boring
06:28:43 <HackEgo> No output.
06:28:45 <pikhq> oklopol: Do you seriously use the services of a psychic?
06:28:56 <oklopol> well define seriously :P
06:29:09 <coppro> pikhq: I don't know which is worse. The possibility of him using a psychic or the fact that he thought it a good idea to tell us
06:29:09 <oklopol> it is a fact that i "use the services" of a psychic
06:29:10 <CakeProphet> like serious business, duh.
06:29:19 <pikhq> "Do you *actually* use one?"
06:29:52 <coppro> Do you use your psychic for psychic services exclusively, and not any other services that may be incidental to the psychich-ness?
06:30:01 <oklopol> well define "use", it is a fact that i receive a monthly cold reading
06:30:09 <oklopol> and that i read it carefully
06:30:19 <pikhq> Okay, my question is answered.
06:30:23 <oklopol> good
06:30:25 <pikhq> Now, for more questions.
06:30:28 <pikhq> *Why*?
06:30:39 <CakeProphet> I /am/ psychic, so I don't even bother getting someone else to do it.
06:31:27 <oklopol> how should i know, curious i guess?
06:32:30 -!- wareya has quit (Read error: Connection reset by peer).
06:32:44 <pikhq> Do you have any concern for their predictions being any more than a parlor trick?
06:33:12 <oklopol> no
06:33:12 <pikhq> (that is, do you care whether or not it's actually even slightly legit?)
06:33:21 <pikhq> Okay, then you're just kinda weird. :P
06:33:21 -!- wareya has joined.
06:33:38 <oklopol> well i'm sure it's not even slightly legit
06:33:47 <pikhq> Then you're just kinda weird.
06:33:49 <oklopol> i'm interested in whether this is obvious to me from actually reading them
06:34:20 <oklopol> and it is so dead obvious that i'm wondering if this is a particularly crappy psychic
06:34:27 <pikhq> But thank goodness you're not also exhibiting an entirely irrational belief.
06:35:06 <CakeProphet> irrational beliefs? I never have those.
06:35:18 <pikhq> CakeProphet: How irrational of you. :P
06:35:25 <oklopol> as i said, the only concrete facts in the last prediction were that i'd get out of my current jobless situation
06:35:29 <oklopol> and umm
06:35:30 <oklopol> the other thing
06:35:36 <oklopol> and i've been employed for what a year
06:36:38 <oklopol> the others i cannot really verify yet but apparently i'm going to meet some 40yo guy through common friends, and who will change my life in some way, there are so many ways why i don't see this happening
06:37:30 <oklopol> although, if a 40yo friend of a friend asks me to marry them anytime soon i'll probably have to say yes, and start believing.
06:37:36 <oklopol> and turn gay.
06:37:53 <pikhq> Hmm. Oerjan's ~40, you met him through #esoteric, and he has probably changed your life in *some* way.
06:37:58 <pikhq> Clearly, this person is reading your past.
06:38:00 <pikhq> :P
06:38:14 <oklopol> erm, actually with great luck, i'll be meeting oerjan soon
06:38:19 <oklopol> prolly not
06:38:28 <oklopol> i wonder if he'll ask me to marry him
06:39:16 <CakeProphet> oklopol: it's more likely that this 40 year old will slip you a psychedelic drug without your knowledge, I'd say.
06:39:25 <oklopol> hmm yes, and give me aids
06:39:32 <oklopol> that would certainly change things
06:39:52 <pikhq> And then you'll find out you're one of the 1% of Europeans immune to AIDS.
06:40:30 <oklopol> i'm pretty sure i am, at least i have some evidence that i'm immune to chlamydia
06:40:39 <oklopol> and i don't even know if that's possible.
06:43:31 <oklopol> come on... they're not even trying, "I should thank you for the initiative you took just 917 days ago that when you asked me to determine what was going to happen in your astral configuration ..."
06:43:52 <pikhq> ... What the *hell*, chlamydia...
06:44:22 <pikhq> I, uh, think it might count as a eukaryote.
06:44:44 <oklopol> so does it even make sense to be immune to it
06:44:58 <oklopol> or would that be like being immune to dogs
06:45:11 <oklopol> i'm pretty sure i'm immune to dogs btw.
06:45:47 <pikhq> It's a fucking bizarre "bacterium".
06:45:59 <CakeProphet> oklopol: it's very possible to have chlamydia with no symptoms.
06:46:34 <oklopol> CakeProphet: i'm aware of this
06:47:38 <pikhq> At varying points, it looks vaguely like a virus/eukaryote and vaguely like a bacterium.
06:48:03 <pikhq> Erm, sorry, misread.
06:48:17 <pikhq> s_/eukaryote__
06:48:31 <pikhq> It's still motherfucking weird.
06:50:00 <oklopol> hmm, apparently the gods of nature refuse to tell jenna my credit card number
06:51:14 <oklopol> argh, i'm sleepy as hell and still like 8 hours of being awake to go
06:51:24 <oklopol> mm pizza
06:58:25 <CakeProphet> !addinterp dechatspeak perl while(<>){lc;s/\by\b/why/g;s/\bu\b/you/g;s/\br\b/are/g;s/\bb4\b/before/g;s/\bty\b/thank you/g;s/\bsry\b/sorry/g;s/\bur\b/your/g;s/\bb\b/be/g;s/\bbc\b/because/g;s/\blol\b/haha/g;s/\blmao\b/hahaha/g;s/\brofl\b/hahahaha/g;s/\bbrb\b/be right back/g;s/\bafk\b/away from keyboard/g;s/\b4\b/for/g;s/\b1\b/one/g;s/\bne1\b/anyone/g;s/\bno1\b/no-one/g;s/\b(some|sum)1\b/someone/g;s/\bttyl\b/talk to you lat
06:58:26 <EgoBot> ​Interpreter dechatspeak installed.
06:58:57 <CakeProphet> actually "ur" could be either "your" or "you're"
07:03:19 <oklopol> so could ur mom
07:03:33 <CakeProphet> !addinterp dechatspeak perl while(<>){lc;s/\by\b/why/g;s/\bu\b/you/g;s/\br\b/are/g;s/\bb4\b/before/g;s/\bty\b/thank you/g;s/\bsry\b/sorry/g;s/\bur\b/your/g;s/\bb\b/be/g;s/\bbc\b/because/g;s/\blol\b/haha/g;s/\blmao\b/hahaha/g;s/\brofl\b/hahahaha/g;s/\bbrb\b/be right back/g;s/\bafk\b/away from keyboard/g;s/\b4\b/for/g;s/\b1\b/one/g;s/\bne1\b/anyone/g;s/\bno1\b/no-one/g;s/\b(some|sum)1\b/someone/g;s/\bttyl\b/talk to you lat
07:03:33 <EgoBot> ​There is already an interpreter for dechatspeak!
07:03:40 <CakeProphet> !delinterp chatspeak
07:03:40 <EgoBot> ​That interpreter doesn't exist!
07:03:44 <CakeProphet> !delinterp dechatspeak
07:03:45 <EgoBot> ​Interpreter dechatspeak deleted.
07:03:48 <CakeProphet> !addinterp dechatspeak perl while(<>){lc;s/\by\b/why/g;s/\bu\b/you/g;s/\br\b/are/g;s/\bb4\b/before/g;s/\bty\b/thank you/g;s/\bsry\b/sorry/g;s/\bur\b/your/g;s/\bb\b/be/g;s/\bbc\b/because/g;s/\blol\b/haha/g;s/\blmao\b/hahaha/g;s/\brofl\b/hahahaha/g;s/\bbrb\b/be right back/g;s/\bafk\b/away from keyboard/g;s/\b4\b/for/g;s/\b1\b/one/g;s/\bne1\b/anyone/g;s/\bno1\b/no-one/g;s/\b(some|sum)1\b/someone/g;s/\bttyl\b/talk to you lat
07:03:48 <EgoBot> ​Interpreter dechatspeak installed.
07:04:29 <CakeProphet> !dechatspeak l8er m8
07:04:30 <EgoBot> ​Substitution replacement not terminated at /tmp/input.29075 line 1.
07:04:43 <CakeProphet> lol,good.
07:12:43 <CakeProphet> !delinterp dechatspeak
07:12:43 <EgoBot> ​Interpreter dechatspeak deleted.
07:12:48 <CakeProphet> while(<>){lc;s/\by\b/why/g;s/\bu\b/you/g;s/\br\b/are/g;s/\bb4\b/before/g;s/\bty\b/thank you/g;s/\bsry\b/sorry/g;s/\bur\b/your/g;s/\bb\b/be/g;s/\bbc\b/because/g;s/\blol\b/haha/g;s/\blmao\b/hahaha/g;s/\brofl\b/hahahaha/g;s/\bbrb\b/be right back/g;s/\bafk\b/away from keyboard/g;s/\b4\b/for/g;s/\b1\b/one/g;s/\bne1\b/anyone/g;s/\bno1\b/no-one/g;s/\b(some|sum)1\b/someone/g;s/\bttyl\b/talk to you later/g;s{\bw/e\b}{whatever}g;s
07:12:57 <CakeProphet> ... -_-
07:13:11 <CakeProphet> !addinterp dechatspeak perl while(<>){lc;s/\by\b/why/g;s/\bu\b/you/g;s/\br\b/are/g;s/\bb4\b/before/g;s/\bty\b/thank you/g;s/\bsry\b/sorry/g;s/\bur\b/your/g;s/\bb\b/be/g;s/\bbc\b/because/g;s/\blol\b/haha/g;s/\blmao\b/hahaha/g;s/\brofl\b/hahahaha/g;s/\bbrb\b/be right back/g;s/\bafk\b/away from keyboard/g;s/\b4\b/for/g;s/\b1\b/one/g;s/\bne1\b/anyone/g;s/\bno1\b/no-one/g;s/\b(some|sum)1\b/someone/g;s/\bttyl\b/talk to you lat
07:13:11 <EgoBot> ​Interpreter dechatspeak installed.
07:13:18 <CakeProphet> DONE.
07:13:55 <CakeProphet> !dechatspeak l8er, though for some reason people actually spell it l8ter
07:13:55 <EgoBot> ​Substitution replacement not terminated at /tmp/input.29791 line 1.
07:14:22 <monqy> leightter
07:16:36 <CakeProphet> yeah I'm stumped now. I moved it over to emacs and it highlight correctly.
07:16:38 <CakeProphet> *s
07:19:41 <CakeProphet> Looks like we have no defense against all of those chatspeaking heathens that frequent our beloved channel.
07:27:35 -!- ais523 has quit (Remote host closed the connection).
07:50:16 -!- Patashu has joined.
07:52:47 -!- monqy has quit (Quit: hello).
08:16:27 -!- calamari has quit (Quit: Leaving).
08:49:09 -!- Kustas has joined.
08:59:01 <CakeProphet> Perl's flip-flop operator is pretty cool, but I haven't seen a use for it yet.
09:01:26 <Patashu> LOL
09:01:27 <Patashu> it's a flip flop
09:01:32 <Patashu> wtf is up with that
09:02:09 <Patashu> http://perl-tricks.blogspot.com/2007/01/flip-flop-operator.html hahahaha it's literally like a circuitry SR flipflop
09:09:30 <CakeProphet> yep
09:10:22 <CakeProphet> that actually does look somewhat useful for parsing large sections of something.
09:10:43 <CakeProphet> not necessarily large, but something that can be broken up into sub-parses
09:12:33 -!- myndzi has quit (Ping timeout: 258 seconds).
09:12:38 -!- myndzi has joined.
09:23:05 <CakeProphet> there's even another variation of what .. does.
09:23:10 <CakeProphet> Patashu: If either operand of scalar ".." is a constant expression, that operand is considered true if it is equal (== ) to the current input line number (the $. variable).
09:24:30 <CakeProphet> next if (1 .. /^$/); # skip header lines
09:40:02 -!- Lymia has joined.
09:40:02 -!- Lymia has quit (Changing host).
09:40:02 -!- Lymia has joined.
09:41:00 -!- FireFly has joined.
09:44:50 <CakeProphet> One of my favorite operators so far has been //. a // b is equivalent to defined(a) ? a : b
09:55:04 -!- Kustas has quit (Quit: Weinberg's First Law: Progress Is Made On Alternate Fridays).
10:02:14 <Lymia> Let's make an esolang where the most useful operator is a:b::c:d
10:02:17 <Lymia> Question is what it would do.
10:05:17 -!- sebbu2 has joined.
10:05:17 -!- sebbu2 has quit (Changing host).
10:05:17 -!- sebbu2 has joined.
10:05:43 <cheater_> try/catch/except/finally
10:06:33 <olsner> looks like the is to as is to operator (i.e. "a is to b as c is to d")
10:06:39 <Lymia> Yes.
10:06:50 <Lymia> Now what kind of a programming language could you build around it?
10:07:07 <olsner> an IQ test? :)
10:07:12 <Lymia> That would still be Turing complete that is.
10:08:14 -!- sebbu has quit (Read error: Operation timed out).
10:08:15 -!- sebbu2 has changed nick to sebbu.
10:19:51 -!- Kustas has joined.
10:26:40 -!- Kustas has quit (Quit: ChatZilla 0.9.86.1-rdmsoft [XULRunner 1.9.0.17/2009122204]).
10:37:08 -!- Kustas has joined.
10:52:42 -!- Kustas has quit (Quit: over and out).
11:05:23 -!- Phantom_Hoover has joined.
11:10:54 -!- Sgeo has joined.
11:19:55 -!- oerjan has joined.
11:38:08 -!- BeholdMyGlory has joined.
11:39:08 -!- Vorpal has joined.
11:47:42 <oerjan> <CakeProphet> yeah I'm stumped now. I moved it over to emacs and it highlight correctly.
11:47:49 <oerjan> it got cut off
11:54:58 <Sgeo> Why am I reading Problem Sleuth while eating?
11:55:23 <oerjan> so you can sleuth and slobber
11:59:22 <Phantom_Hoover> There's any better way to read PS?
11:59:22 <lambdabot> Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them.
11:59:35 <Phantom_Hoover> Well, of course: eating either candy or pumpkins.
12:03:37 <Phantom_Hoover> Alternately: drinking.
12:04:51 -!- MigoMipo has joined.
12:18:02 <Phantom_Hoover> http://www.scribd.com/doc/24048466/Converting-of-Matter-to-Energy-by-AB-Generator
12:18:06 <Phantom_Hoover> Bloody physicists.
12:18:23 <Phantom_Hoover> Stealing my ideas from the future and passing them of as their own before I even have them.
12:19:48 <Patashu> would this work?
12:19:54 <Phantom_Hoover> Should.
12:20:50 <Phantom_Hoover> It essentially works by balancing the energy/mass loss from Hawking radiation by pumping in more mass, which effectively performs perfect matter-to-energy conversion.
12:21:44 -!- TOGoS has joined.
12:21:59 -!- TOGoS has left.
12:25:24 <Phantom_Hoover> It could power a Kardashev-1 civilisation with a man shovelling coal.
12:25:59 <Patashu> Huh ?_?
12:26:08 <Patashu> That's surprins
12:26:11 <Patashu> Err, surprising
12:26:13 <Patashu> It's really that easy?
12:26:18 <Patashu> Where's my infinite power
12:26:36 <Phantom_Hoover> Well, FSVO 'shovelling coal' equal to 'firing it into the hole against the maelstrom of gamma rays coming out of it'.
12:27:31 <oerjan> every piece of coal would get turned into energy equivalent to a nuclear bomb...
12:27:32 <Phantom_Hoover> And you still need either 10^8 or 10^16 (stupid ambiguous past me) of mass, and you need to make it into a black hole, which is the really hard part.
12:27:53 <oerjan> you'd not want to stand close to that
12:29:02 <oerjan> and if your feeding apparatus failed, you'd have an even greater explosion on your hands...
12:29:25 -!- pikhq_ has joined.
12:29:28 <Phantom_Hoover> Well, it'd decay relatively slowly.
12:29:35 -!- pikhq has quit (Ping timeout: 258 seconds).
12:29:37 <oerjan> hm
12:31:45 <Phantom_Hoover> I Mathematicad all the calculations a while ago; I'll see if I can find them.
12:37:22 <Phantom_Hoover> So yeah, the world's power output can be met with a 10^11 kg black hole with 1.8*10^-7 kg/s of matter.
12:39:05 <Phantom_Hoover> O.o the power output of a GRB is only a 20,000th of that of every star in the observable universe.
12:44:40 <Sgeo> What's the chance of a GRB directly hitting Earth?
12:45:53 <Phantom_Hoover> They hit us all the time, that's why they're so amazing.
12:46:05 <Phantom_Hoover> They're literally from the other side of the universe.
12:46:23 <Sgeo> Hmm. I guess it's nearby GRBs that would be problematic?
12:46:54 <Vorpal> GRB?
12:47:36 <Sgeo> gamma Ray Burst
12:47:42 <Vorpal> ah
12:47:55 <Phantom_Hoover> Sgeo, if by 'problematic' you mean 'what's that in the AAAAAAAAARRRRRGGGGHHHH'.
12:50:37 -!- sebbu2 has joined.
12:50:37 -!- sebbu2 has quit (Changing host).
12:50:37 -!- sebbu2 has joined.
12:53:44 -!- sebbu has quit (Ping timeout: 258 seconds).
12:54:00 <Phantom_Hoover> (There's a very cool book about various spacey things that can kill you called "Death from the Skies" by Phil Plait; you should read it.)
12:54:32 <Sgeo> Blah paying money
12:54:37 <olsner> OGL-accelrointu kahvinkeitin
12:54:47 <Sgeo> I think I'd rather read a math book or a quantum physics book
12:55:18 <Vorpal> <olsner> OGL-accelrointu kahvinkeitin <-- Finnish?
12:55:27 <olsner> Vorpal: looks like it!
12:57:08 <Vorpal> olsner, but is it?
12:57:33 <Vorpal> olsner, and where is it from?
12:57:47 <oerjan> `addquote <Sgeo> Hmm. I guess it's nearby GRBs that would be problematic? <Phantom_Hoover> Sgeo, if by 'problematic' you mean 'what's that in the AAAAAAAAARRRRRGGGGHHHH'.
12:57:47 <Vorpal> "open gl acceleration <something>" I guess
12:57:47 <olsner> Vorpal: from warpdrive
12:57:50 <HackEgo> ​436) <Sgeo> Hmm. I guess it's nearby GRBs that would be problematic? <Phantom_Hoover> Sgeo, if by 'problematic' you mean 'what's that in the AAAAAAAAARRRRRGGGGHHHH'.
12:57:54 <Vorpal> olsner, not familiar with that
12:58:04 <Vorpal> olsner, unless you mean the star trek thingy
12:58:49 <Phantom_Hoover> http://arxiv.org/pdf/astro-ph/0002442v1
12:58:50 <Phantom_Hoover> Ooh.
12:58:53 <Vorpal> olsner, oh is it like bash.org=
12:58:56 <Vorpal> s/=/?/
12:59:19 <olsner> Vorpal: yes, quite similar
12:59:23 <olsner> but swedish
12:59:28 <Phantom_Hoover> Vorpal, looks like kahvinkeitin is a coffee machine.
13:06:57 <oerjan> using the grinding and processing unit
13:07:38 <olsner> :>
13:08:34 <Phantom_Hoover> It's clearly the successor to the teapot.
13:10:48 <oerjan> teapots are space age technology, so 60s...
13:11:39 <Vorpal> heh
13:11:53 <Vorpal> <Phantom_Hoover> http://arxiv.org/pdf/astro-ph/0002442v1 <-- very interesting
13:28:10 <Sgeo> Wooo GBracha post
13:29:22 <cheater_> figure BELOW footnote? wtf?
13:29:51 <cheater_> also, figures 3 and 4 look amazingly much like His Noodliness
13:31:23 -!- Cheery has joined.
13:33:18 -!- martian67 has joined.
13:33:34 -!- martian67 has left ("Leaving").
13:37:20 -!- foocraft has joined.
13:47:10 -!- oerjan has quit (Quit: leaving).
13:54:32 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!).
14:01:06 <Phantom_Hoover> http://en.wikipedia.org/wiki/Order_of_magnitude
14:01:24 <Phantom_Hoover> OK the list at the bottom of that page is both silly and very interesting.
14:04:08 <Phantom_Hoover> http://en.wikipedia.org/wiki/Orders_of_magnitude_(numbers)
14:04:12 <Phantom_Hoover> This can only be stupid.
14:05:15 <Patashu> graph theory is weird
14:09:04 -!- ralc has joined.
14:09:21 <Phantom_Hoover> Suggest you consult oklopol on matters of graph theory.
14:11:48 <Patashu> I think I'll be good
14:17:59 -!- TOGoS has joined.
14:18:22 -!- TOGoS has quit (Read error: Connection reset by peer).
14:29:07 -!- copumpkin has joined.
14:29:07 -!- copumpkin has quit (Changing host).
14:29:07 -!- copumpkin has joined.
14:35:31 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:40:41 -!- Patashu has quit (Ping timeout: 258 seconds).
14:41:04 -!- copumpkin has joined.
14:45:57 -!- copumpkin has quit (Ping timeout: 260 seconds).
15:33:13 -!- cheater_ has quit (Ping timeout: 260 seconds).
15:35:32 -!- azaq23 has joined.
15:37:02 <Sgeo> I think I broke my brain
15:37:19 <Sgeo> Regular functions get an argument representing the continuation, but continuations don't?
15:54:12 <Phantom_Hoover> I'm pretty sure that's how it works. By which I mean very sure.
15:56:29 <oklopol> "<cheater_> figure BELOW footnote? wtf?" <<< this is the standard in lecture notes in computer science
15:56:30 <oklopol> erm
15:56:32 <oklopol> footnote
15:56:50 <oklopol> ...
15:57:46 <Cheery> does languages designed to compose audio&music count into esoteric?
15:58:55 <Phantom_Hoover> Depends on whether they're esoteric.
15:59:14 <Phantom_Hoover> If it's just Python with music-manipulation primitives, then no.
15:59:42 <Cheery> are difference equations esoteric? I've seen couple of those in digital audio stuff
16:00:07 <Cheery> http://en.wikipedia.org/wiki/Digital_biquad_filter
16:00:38 <Phantom_Hoover> Cheery, do you mean differential equations?
16:00:42 <oklopol> if everyone was like me, channels specializing in X would be the last place you'd wanna ask about X because once i've heard the question more than 50 times it doesn't even occur to me to answer it seriously
16:00:53 <Cheery> Phantom_Hoover: do not confuse.
16:01:14 <Phantom_Hoover> Oh, right, it's another name for a recurrence relation.
16:01:42 <oklopol> whatever-ihope's-current-name-is once talked about an idea of his for a DE based lang
16:02:17 <oklopol> but i guess it was just "hey what about a lang based on DE" and an example
16:02:27 <oklopol> oh difference
16:02:59 <oklopol> i didn't confuse, i just only read Phantom_Hoover's comment and worked based on that
16:03:08 <oklopol> what the fuck are difference equations
16:04:07 <Phantom_Hoover> Wasn't there Safalra's gravity-based language.
16:04:18 <oklopol> yessss
16:04:19 <Phantom_Hoover> Which may, on further reflection, have been called Gravity.
16:04:24 <oklopol> yes!
16:04:44 <Phantom_Hoover> Oh god oko don't start turning into Gollum.
16:05:23 <oklopol> i didn't know about the three-body problem when i read about gravity but umm so i guess gravity doesn't have an interp then
16:05:35 <Phantom_Hoover> No.
16:05:45 <Cheery> maybe I get those direct form equation sort of things.
16:05:57 <Phantom_Hoover> It's uncomputable and TC.
16:07:27 <oklopol> "<Phantom_Hoover> Oh, right, it's another name for a recurrence relation." <<< why do i not read what other people say :D
16:07:45 -!- cheater_ has joined.
16:08:08 <Phantom_Hoover> Cheery, erm, anyway.
16:10:48 <Cheery> http://paste.pocoo.org/show/401151 <- biquad filter in python
16:11:06 <Phantom_Hoover> Doesn't look very esoteric.
16:11:10 <Cheery> and I'll get whatever highpass/midpass whateverpass stuff from the cookbook for that :)
16:11:16 <Cheery> yeah. it isn't sorry.
16:11:33 <oklopol> that program SHOULD be sorry.
16:11:51 <Phantom_Hoover> Oh, incidentally: to mix two sine waves, do you just add them or are you meant to maths them together?
16:11:59 <oklopol> add
16:12:06 <Cheery> this filter is one major useful thing for subtractive synthetis.
16:12:51 <oklopol> what is subtractive synthesis?
16:12:57 <oklopol> what's a biquad filter?
16:13:36 <oklopol> does highpass do a FT, remove some low stuff and unFT?
16:13:38 <Cheery> that's creation of timbre by taking something complex and remove harmonics from it.
16:13:52 <oklopol> (or whichever way is a reverse transform and which non-reverse)
16:14:12 <Cheery> biquad filter is one of generic filters that lets you do resontant high-pass/low-pass/band-pass filters.
16:14:26 <Cheery> *resonant
16:15:08 <oklopol> timbre is obtained by *removing* harmonics? i thought timbre was the harmonics :\
16:15:34 <oklopol> what does "resonant" mean?
16:15:52 <oklopol> what is "one"?
16:15:57 <oklopol> scratch that tho
16:16:11 <Cheery> human mouth behaves like an adjustable filter according to the wikipedia article.
16:16:40 <oklopol> well of course it does but does it work as a high-pass/low-pass/band-pass filter?
16:16:48 <Cheery> shape it takes affects cutoff frequencies of the air passing through.
16:16:49 <oklopol> maybe that's what you meant
16:17:18 <oklopol> yeah i think fizzie has mentioned some of this stuff some time
16:22:17 <Cheery> now it's one of the few things I know how to create. :)
16:23:14 <Cheery> my synth tools: multi-pass filtering, bunch of primitive waveform samples, controlling the parameters of these things with slower samples.
16:45:47 -!- copumpkin has joined.
16:45:47 -!- copumpkin has quit (Changing host).
16:45:47 -!- copumpkin has joined.
16:47:31 -!- pumpkin has joined.
16:47:31 -!- pumpkin has quit (Changing host).
16:47:31 -!- pumpkin has joined.
16:47:57 -!- Kustas has joined.
16:50:15 -!- copumpkin has quit (Ping timeout: 255 seconds).
17:03:49 -!- monqy has joined.
17:16:54 <Phantom_Hoover> OK I think I'm immune to Reddit's comment-sorting algorithm or something.
17:21:44 -!- Kustas has left.
17:23:33 <pikhq_> Mmkay, so the 2 largest problems with building anything on musl: People suck and rely on overincludes, and gnulib is the most unportable piece of shit known to man.
17:23:48 <Phantom_Hoover> Overincludes?
17:24:58 <pikhq_> Some headers in common libcs include more headers than is strictly necessary.
17:25:09 <pikhq_> Some programs rely on this.
17:25:37 <Phantom_Hoover> Maybe if the include process wasn't so idiotic...
17:25:41 <pikhq_> Yuh.
17:26:02 <pikhq_> Still, it's an issue for building with musl, as musl has fairly minimal includes.
17:40:19 -!- augur has quit (Remote host closed the connection).
17:50:11 -!- zzo38 has joined.
18:02:37 -!- augur has joined.
18:20:42 -!- Sgeo has quit (Ping timeout: 255 seconds).
18:35:37 <cheater_> first lol-powered amp: http://techcrunch.com/2011/06/04/first-solar-powered-laptop/
18:36:23 -!- Kustas has joined.
18:36:27 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
18:37:57 -!- zzo38 has quit (Remote host closed the connection).
18:38:14 -!- Phantom_Hoover has joined.
18:45:27 -!- foocraft has joined.
18:49:12 -!- olsner has quit (Quit: Leaving).
19:11:34 -!- ralc has quit (Quit: Leaving).
19:11:39 -!- atrapado has joined.
19:20:18 -!- Kustas has quit (Quit: it's gonna get interesting).
19:21:40 -!- sebbu2 has changed nick to sebbu.
19:22:40 -!- oerjan has joined.
19:23:48 <oerjan> <Sgeo> Regular functions get an argument representing the continuation, but continuations don't?
19:23:51 <oerjan> correct.
19:24:32 <oerjan> ...why the heck are people gone when i get to logread them
19:24:45 <Phantom_Hoover> They don't like you.
19:26:33 <oerjan> although unless the continuation is "exit program" it will necessarily contain another continuation inside it to transfer control to. um, i guess it could also loop.
19:27:23 <oerjan> (btw i realized in unlambda that it is possible to use the e exit-program function to construct a function equivalent to any other continuation)
19:27:27 <Phantom_Hoover> http://en.wikipedia.org/wiki/Islamic_inheritance_jurisprudence#The_role_of_Islamic_inheritance_in_the_development_of_Islamic_Mathematics
19:27:50 <Phantom_Hoover> Algebra: the result of stupidly-written Qur'an verses.
19:28:17 <oerjan> (e is essentially the top continuation reified)
19:29:56 <oerjan> seems i mentioned it in http://esolangs.org/wiki/Unlambda#Meta-notation
19:30:01 <Phantom_Hoover> Reified is possibly my favourite word./
19:31:07 -!- Demetrius has joined.
19:32:43 <Phantom_Hoover> Hello Demetrius unless you are a neopagan in which case please stay so we can laugh at you otherwise welcome.
19:33:31 <Demetrius> Phantom_Hoover, hello :P But I’m just a passer-by, I don't really program in esoteric languages and I am an atheist :P
19:33:56 <Phantom_Hoover> Many of us don't really program in esolangs.
19:34:09 <oerjan> atheists do seem to be in majority among those professing their beliefs here
19:34:14 <Phantom_Hoover> I, personally, don't really program at all.
19:36:25 <Demetrius> i program in java and python a bit, but never did anything esoteric
19:36:36 <Demetrius> though I do find Piet very interesting
19:37:09 <Phantom_Hoover> Java and Python: not the most popular choice.
19:38:04 <Demetrius> Phantom_Hoover, I took on java because I wanted to write a game for my mobile phone... In fact, I am still working on it, but very slowly :
19:38:04 <Demetrius> :P
19:38:18 <Phantom_Hoover> Well I can get behind that.
19:38:51 <Demetrius> I can program in most imperative languages if I have a manual at hand :D but I don't have much practice
19:39:21 <oerjan> > cycle "imperative languages suck! "
19:39:22 <lambdabot> "imperative languages suck! imperative languages suck! imperative languag...
19:39:57 <oerjan> (don't mind me, i'm just being stereotypically #esoteric)
19:40:19 <Demetrius> oerjan, maybe they do, but I'm too lazy to learn functional ones
19:40:30 <oerjan> not as lazy as haskell!
19:40:48 <Phantom_Hoover> Yeah, you're... not going to be the most popular person.
19:41:06 <Demetrius> :DDD
19:41:10 -!- Demetrius has left ("Zmicier").
19:41:13 <oerjan> i, on the other hand, am certainly lazier than haskell
19:41:23 -!- Demetrius has joined.
19:41:24 <Demetrius> oh
19:41:26 <oerjan> whew
19:41:33 <Demetrius> I closed the channel by mistake xD
19:41:34 <oerjan> Demetrius: i was afraid you were serious
19:41:58 <oerjan> and we cannot have serious people here on this channel
19:42:09 <oerjan> ok except Vorpal and zzo38
19:42:21 <Demetrius> well, I guess serious people won't talk about esoteric languages
19:42:21 <oerjan> and maybe ais523
19:42:40 <Demetrius> oerjan, and how do you know they are serious?
19:42:52 <oerjan> Gregor _should_ be serious but isn't
19:43:04 <Demetrius> > help
19:43:04 <oerjan> well Vorpal is stereotypically serious
19:43:05 <lambdabot> Not in scope: `help'
19:43:20 <oerjan> zzo38 is stereotypically incapable of not being serious
19:43:25 <Demetrius> :D
19:43:35 <Demetrius> and ais253?
19:43:38 <oerjan> (you'll understand when you meet him)
19:43:48 <oerjan> well ais523 has this serious air about him
19:43:57 -!- Cheery has quit (Quit: Lost terminal).
19:44:34 <Demetrius> in fact I came here because sebbu typed a message to a wrong channel and had to explain where it belonged :D
19:44:36 <oerjan> i mean he even managed to earn money on something esoteric once. if _that_ isn't missing the point...
19:44:52 <Demetrius> money on an esoteric language?!
19:44:58 <Demetrius> cool :D
19:45:51 <oerjan> i did not say language
19:46:25 <Demetrius> I wonder what it was then
19:46:28 <Demetrius> a brainfuck program?
19:46:31 <oerjan> a turing machine
19:46:40 <Demetrius> ah, I see :D
19:46:48 <Demetrius> well, that doesn't sound very esoteric
19:47:12 <Demetrius> > ?
19:47:14 <lambdabot> <no location info>: parse error on input `?'
19:47:20 <oerjan> @help
19:47:21 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
19:47:26 <Phantom_Hoover> @list
19:47:26 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
19:47:40 <Demetrius> thx :D
19:47:42 <Phantom_Hoover> @http://code.haskell.org/lambdabot/COMMANDS
19:47:43 <lambdabot> Unknown command, try @list
19:47:52 <Phantom_Hoover> YOU LIED TO ME LAMBDABOT
19:47:53 <oerjan> we also have other bots that are more esoteric
19:47:55 <oerjan> !help
19:47:56 <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>.
19:47:59 <oerjan> `help
19:48:01 <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/
19:48:19 <oerjan> sadly fungot is still not with us
19:48:36 <oerjan> fizzie: Y U NO FIX FUNGOT
19:48:37 <Demetrius> `rm -rf
19:48:39 <HackEgo> No output.
19:48:42 <oerjan> nice try
19:48:44 <Demetrius> :D
19:48:50 <Demetrius> `rm -rf /
19:48:52 <HackEgo> No output.
19:48:55 <oerjan> `ls
19:48:56 <HackEgo> ​1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ test.c \ tmpdir.14145
19:49:03 <oerjan> not immensely successful
19:49:04 <Demetrius> :D
19:49:19 <Demetrius> `rm test.c
19:49:21 <HackEgo> No output.
19:49:26 <Demetrius> `ls
19:49:27 <HackEgo> ​1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tmpdir.14262
19:49:32 <Demetrius> hmm
19:49:37 <oerjan> i hope that wasn't something important
19:49:42 <Demetrius> hope there was nothing important there... :o
19:49:49 <Demetrius> well
19:49:53 <Demetrius> since it was a test
19:49:56 <Phantom_Hoover> ^h... FUNGOT
19:50:02 * Phantom_Hoover breaks down sobbing.
19:50:56 <Demetrius> `pwd
19:50:58 <HackEgo> ​/tmp/hackenv.14401
19:51:43 <oerjan> <Phantom_Hoover> YOU LIED TO ME LAMBDABOT <-- i assume you are joking
19:51:44 <monqy> `cat babies
19:51:45 <HackEgo> No output.
19:52:06 <Phantom_Hoover> oerjan, yes. Yes I was.
19:52:09 <Phantom_Hoover> `ls babies
19:52:11 <HackEgo> ​babies.db
19:52:19 <Phantom_Hoover> `cat babies/babies.db
19:52:20 <HackEgo> ​SQLite format 3
19:52:41 -!- atrapado has quit (Quit: FIN).
19:52:53 <Demetrius> `echo "Ня ведаю, навошта, але няхай сабе будзе" >тэкст
19:52:55 <HackEgo> ​"Ня ведаю, навошта, але няхай сабе будзе" >тэкст
19:52:57 <oerjan> Demetrius: you may understand HackEgo, while you can change a lot in it, does have protection against real malice
19:52:57 <Demetrius> `ls
19:52:59 <HackEgo> ​1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tmpdir.14730
19:53:04 <oerjan> *understand that
19:53:26 <Demetrius> oerjan, well, I guess so :D
19:53:51 <oerjan> Demetrius: oh hm that `run thing it said above is important, without it your commands can have only one literal argument
19:53:56 <Phantom_Hoover> `run echo "Ня ведаю, навошта, але няхай сабе будзе" >тэкст
19:53:57 <HackEgo> No output.
19:53:58 <Phantom_Hoover> `ls
19:54:00 <HackEgo> ​1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tmpdir.14880
19:54:05 <Demetrius> ah :D
19:54:18 <oerjan> not that that helped?
19:54:45 <Demetrius> maybe it doesn't like output redirection? or cyrillic?
19:55:05 <oerjan> it most certainly does output redirection
19:55:12 <oerjan> `touch тэкст
19:55:12 <Demetrius> `run echo "Nia viedaju, navošta heta, ale niachaj sabie budzie" >tekst
19:55:14 <HackEgo> No output.
19:55:15 <HackEgo> No output.
19:55:16 <Demetrius> `ls
19:55:18 <HackEgo> ​1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ tmpdir.15087 \ тэкст
19:55:27 <oerjan> hm
19:55:30 <Demetrius> ah, both cyrillic and latin :D
19:55:42 <oerjan> yeah my `touch worked
19:56:04 <oerjan> so perhaps it's the shell which has problems
19:56:07 <oerjan> `cat tekst
19:56:08 <HackEgo> ​Nia viedaju, navošta heta, ale niachaj sabie budzie
19:56:22 <oerjan> well that accent got through
19:56:47 <Demetrius> `cat тэкст
19:56:49 <HackEgo> ​Ня ведаю, навошта, але няхай сабе будзе
19:57:40 <Demetrius> :D
19:58:22 <Demetrius> the text is not aligned though!
19:58:41 <oerjan> aligned?
19:58:43 <Demetrius> the łacinka version has one word more than a cyrillic one
19:58:53 <Demetrius> :P
19:59:03 <Demetrius> heta
19:59:40 <Demetrius> `run echo "Nia viedaju, navošta, ale niachaj sabie budzie" >tekst
19:59:42 <HackEgo> No output.
19:59:55 <Demetrius> `cat tekst
19:59:56 <HackEgo> ​Nia viedaju, navošta, ale niachaj sabie budzie
20:02:51 <oerjan> HackEgo's hg repository use sometimes makes things happen strangely, that might be why тэкст didn't show up before my touch
20:03:11 <Demetrius> oerjan, I see :o
20:04:17 <oerjan> if commands are simultaneous it runs both simultaneously and merges the resulting repositories
20:05:02 <oerjan> sometimes the process even fails messily
20:06:19 <Demetrius> in fact, I never really worked with mercurial
20:07:38 -!- atrapado has joined.
20:08:26 <oerjan> me neither, HackEgo and EgoBot are Gregor's bots
20:10:45 <oerjan> !help languages
20:10:46 <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.
20:11:03 <oerjan> !userinterps
20:11:03 <EgoBot> ​Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chef chiqrsx9p choo cockney ctcp dc dechatspeak decisionengine drawl drome dubya echo eehird ehird elmer fudd funetak google graph gregor gregor__1 he hello id jethro kraut map num ook pansy pi pirate plot postmodern postmodern_aoler prefixes python recursion recursion2 redneck reverse rimshot rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh simpleacr
20:11:21 <oerjan> that's the bot's esoteric parts
20:11:53 <oerjan> well + a lot of silly stuff
20:12:00 <oerjan> oh hm
20:12:19 <oerjan> it would appear there are no so many userinterps they don't all fit
20:12:28 <oerjan> *now
20:14:00 <oerjan> !show recursion
20:14:00 <EgoBot> ​recursion2
20:14:06 <oerjan> !show recursion2
20:14:07 <EgoBot> ​recursion
20:14:14 <oerjan> !delinterp recursion
20:14:14 <EgoBot> ​Interpreter recursion deleted.
20:14:19 <oerjan> !delinterp recursion2
20:14:19 <EgoBot> ​Interpreter recursion2 deleted.
20:14:26 <oerjan> they won't really work anyhow
20:14:46 <oerjan> !show hello
20:14:46 <EgoBot> ​c char buf[1024]; int i; fgets(buf, 1024, stdin); for (i=0;buf[i];i++)buf[i]=(buf[i]=='\n')?'\0':buf[i]; if (!strcmp(buf, "h")) printf("Hello World\n"); else printf("Unknown command (%s) encountered\n", buf);
20:15:07 <oerjan> !show id
20:15:07 <EgoBot> ​sh cat
20:15:21 <oerjan> !show map
20:15:21 <EgoBot> ​perl for(<>){s/\b.+?\b/map/g;print}
20:15:34 <oerjan> !userinterps
20:15:34 <EgoBot> ​Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chef chiqrsx9p choo cockney ctcp dc dechatspeak decisionengine drawl drome dubya echo eehird ehird elmer fudd funetak google graph gregor gregor__1 he hello id jethro kraut map num ook pansy pi pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 sadbf sfedeesh sffedeesh sffffedeesh sffffffffedeesh simpleacro simplename slashes
20:15:59 <oerjan> !show decisionengine
20:15:59 <EgoBot> ​haskell import System.Random; main = (randomRIO (0,1) :: IO Int) >>= print
20:16:37 <oerjan> !show he
20:16:37 <EgoBot> ​sh echo -n '`'; cat
20:16:54 <oerjan> !delinterp he
20:16:54 <EgoBot> ​Interpreter he deleted.
20:16:59 <oerjan> !show num
20:16:59 <EgoBot> ​sadol !1
20:17:09 <oerjan> !num
20:17:10 <EgoBot> ​1
20:17:13 <oerjan> !num 3
20:17:13 <EgoBot> ​1
20:17:58 <oerjan> !show drawl
20:17:58 <EgoBot> ​sh drawl
20:18:02 <oerjan> !show dubya
20:18:02 <EgoBot> ​sh dubya
20:18:07 <oerjan> !show drome
20:18:07 <EgoBot> ​haskell main = do a <- getLine ; putStrLn (a ++ reverse a)
20:18:38 <oerjan> !show brit
20:18:38 <EgoBot> ​sh cockney
20:18:42 <oerjan> !show cockney
20:18:42 <EgoBot> ​sh cockney
20:18:53 <oerjan> !delinterp cockney
20:18:53 <EgoBot> ​Interpreter cockney deleted.
20:19:06 -!- Sgeo has joined.
20:19:06 <oerjan> !show sffffffffedeesh
20:19:07 <EgoBot> ​sh chef | fmt -w500
20:19:19 <oerjan> !delinterp sffffffffedeesh
20:19:20 <EgoBot> ​Interpreter sffffffffedeesh deleted.
20:19:24 <oerjan> !userinterps
20:19:24 <EgoBot> ​Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chef chiqrsx9p choo ctcp dc dechatspeak decisionengine drawl drome dubya echo eehird ehird elmer fudd funetak google graph gregor gregor__1 hello id jethro kraut map num ook pansy pi pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 sadbf sfedeesh sffedeesh sffffedeesh simpleacro simplename slashes svedeesh swedish ucat valsp
20:19:41 <oerjan> !show brooklyn
20:19:41 <EgoBot> ​sh brooklyn
20:19:49 <oerjan> !show funetak
20:19:49 <EgoBot> ​sh funetak
20:19:52 <oerjan> !show jethro
20:19:53 <EgoBot> ​sh jethro
20:19:57 <oerjan> !show kraut
20:19:57 <EgoBot> ​sh kraut
20:20:33 <oerjan> !show ucat
20:20:33 <EgoBot> ​unlambda ```s`d`@|i`ci
20:20:38 <oerjan> !delinterp ucat
20:20:39 <EgoBot> ​Interpreter ucat deleted.
20:20:47 <oerjan> !show valspeak
20:20:48 <EgoBot> ​sh valspeak
20:20:58 <oerjan> !show eehird
20:20:58 <EgoBot> ​haskell main = interact (let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines $ map (("<ehird> " ++) . unwords . words) $ food $ map toLower)
20:21:09 <Phantom_Hoover> !ehird
20:21:12 <Phantom_Hoover> !ehird hello
20:21:13 <EgoBot> ​hello
20:21:13 <oerjan> !show ehird
20:21:13 <EgoBot> ​sh funetak
20:21:24 <oerjan> !delinterp funetak
20:21:24 <EgoBot> ​Interpreter funetak deleted.
20:21:37 <Phantom_Hoover> !eehird hello everyone
20:21:42 <oerjan> !show prefixes
20:21:43 <EgoBot> ​underload (Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?)S
20:21:55 <oerjan> !show redneck
20:21:55 <EgoBot> ​sh redneck
20:21:59 <oerjan> !show rimshot
20:21:59 <EgoBot> ​bf ++++++++++++++[>+++++++>+++>+++++>++++++<<<<-]>.-.>+++.<+++.+++++++++++++++++.--------.>-.------------.>>.<+++.>-.<-.<+.-----------------------.
20:22:12 <oerjan> !show sadbf
20:22:12 <EgoBot> ​sadol :M$0 :d:i,45000@>i-01(2]M0:i-i1:S$0:C;3:l#C-01:p:m0@<pl(2?=#Cp"1+:#Mm%+#Mm1,3255?=#Cp"1-:#Mm?<-#Mm10,3254-#Mm1?=#Cp"1>:m%+m1d?=#Cp"1<:m?<-m10-s1-m1?=#Cp"1.!'2#Mm?=#Cp"1,:#Mm'1;0?=#Cp"1[]S-p1?=#Cp"1]?=#Mm00:p[S0:p+p1
20:22:28 <oerjan> !show swedish
20:22:29 <EgoBot> ​sh chef | fmt -w500
20:22:33 <oerjan> !delinterp chef
20:22:33 <EgoBot> ​Interpreter chef deleted.
20:22:46 <oerjan> !userinterps
20:22:46 <EgoBot> ​Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc dechatspeak decisionengine drawl drome dubya echo eehird ehird elmer fudd google graph gregor gregor__1 hello id jethro kraut map num ook pansy pi pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 sadbf sfedeesh sffedeesh sffffedeesh simpleacro simplename slashes svedeesh swedish valspeak warez yodawg
20:23:17 <oerjan> ok i think they all fit now, unless someone added an interpreter in z...
20:23:33 <oerjan> !show sffffedeesh
20:23:33 <EgoBot> ​sh chef | fmt -w500
20:23:46 <oerjan> !delinterp sffffedeesh
20:23:47 <EgoBot> ​Interpreter sffffedeesh deleted.
20:24:16 -!- zzo38 has joined.
20:24:18 <oerjan> `which dubya
20:24:19 <HackEgo> No output.
20:24:30 <oerjan> !userinterps
20:24:31 <EgoBot> ​Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc dechatspeak decisionengine drawl drome dubya echo eehird ehird elmer fudd google graph gregor gregor__1 hello id jethro kraut map num ook pansy pi pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 sadbf sfedeesh sffedeesh simpleacro simplename slashes svedeesh swedish valspeak warez yodawg
20:24:51 <oerjan> !show pansy
20:24:51 <EgoBot> ​sh pansy
20:24:55 <oerjan> !show pirate
20:24:55 <EgoBot> ​sh pirate
20:25:01 <oerjan> !show plot
20:25:01 <EgoBot> ​sh echo ''; (echo -ne 'set terminal dumb\nplot '; cat) | gnuplot
20:25:15 <oerjan> ...does that work
20:25:24 <oerjan> !show postmodern
20:25:24 <EgoBot> ​sh postmodern
20:25:27 <oerjan> !show postmodern_aoler
20:25:28 <EgoBot> ​sh postmodern | b1ff
20:25:40 <oerjan> !show valspeak
20:25:40 <EgoBot> ​sh valspeak
20:25:45 <oerjan> !show warez
20:25:45 <EgoBot> ​sh warez
20:32:16 -!- aloril has quit (Read error: Connection reset by peer).
20:35:44 * CakeProphet finished Problem Sleuth.
20:36:11 <Demetrius> CakeProphet, what is Problem Sleuth?
20:36:38 -!- elliott__ has joined.
20:36:53 <CakeProphet> http://www.mspaintadventures.com/?s=4 Warning: It will likely take more than a day to finish.
20:37:27 <Demetrius> thx
20:37:33 <elliott__> CakeProphet: on to Homestuck yet? :-P
20:37:42 <CakeProphet> no, I must rest...
20:37:55 <elliott__> Homestuck is, like, twice as long in terms of strips but takes about five times as long to read because of the pesterlogs and Flashes.
20:38:14 <Phantom_Hoover> CakeProphet, don't worry, it is impossible to finish Homestuck in a day unless you have the incredible blockheaded seriousness of Vorpal.
20:38:21 <Phantom_Hoover> It is the Planck seriousness.
20:38:21 -!- aloril has joined.
20:38:40 <elliott__> A week is a more reasonable estimate for Homestuck. Two weeks, if you have a life.
20:38:50 <elliott__> Four days if you have less than zero lifes.
20:39:07 <Phantom_Hoover> Also a holiday.
20:39:16 <CakeProphet> I thought Planck units were the smallest measurable quantity of some property
20:39:34 <elliott__> Phantom_Hoover: http://www.mspaintadventures.com/sweetbroandhellajeff/?cid=032.jpg
20:39:36 <elliott__> Oh god what does it mean.
20:39:45 <elliott__> OH WAIT IT IS TWO PAGES LONG
20:39:50 <Phantom_Hoover> CakeProphet, it can also be the largest.
20:39:52 <coppro> elliott__: how do you think you compare to other people in terms of general superiority?
20:40:13 <elliott__> coppro: is this a serious question?
20:40:21 <coppro> ellyes
20:40:22 <Phantom_Hoover> elliott__, it's not crappy any more :(
20:40:29 <coppro> damn tab-completion
20:40:32 <elliott__> coppro: are you asking everyone this or just me? :D
20:40:38 <elliott__> oh i thought that was "hell yes" :D
20:41:02 <CakeProphet> Phantom_Hoover: ah, so it depends on the measurement in question whether or not it is the largest or smallest?
20:41:19 <coppro> elliott__: just you, obviously
20:41:27 <coppro> dfsd/win 2
20:41:32 <coppro> n 2
20:41:33 <Phantom_Hoover> CakeProphet, technically the Planck units are just the units you get from the fundamental physical constants.
20:41:35 <coppro> goddamit
20:41:41 <coppro> stop failing, irssi
20:41:50 <elliott__> coppro: Do I get to know why you're asking if I answer? :P
20:42:25 <CakeProphet> coppro: alt+n should do the trick unless you have over 10 windows up.
20:42:29 <coppro> elliott__: yes
20:42:32 <coppro> CakeProphet: yes. yes I do
20:42:59 <CakeProphet> 6 is like my max..
20:44:07 <elliott__> coppro: I find it fairly obvious that I'm quite a bit more intelligent than some hypothetical average person of my age; I don't think I'm qualified to judge the average intelligence of society as a whole so I'll avoid doing that comparison globally. I'm pretty terrible at motivating myself and working with other people though, so /shrug... I have no idea how to measure the "superiority" of a person :P
20:44:57 -!- pikhq_ has quit (Ping timeout: 252 seconds).
20:44:57 -!- pikhq has joined.
20:45:06 <coppro> elliott__: hrm... I'll call that 0.6 Wolframs
20:45:06 <oerjan> 22:41 coppr/win 2
20:45:08 <oerjan> wtf
20:45:17 <elliott__> coppro: wow, you have no idea how big a Wolfram is
20:45:29 <elliott__> for a start, the standard unit is the Dijkstra, Wolfram is just an exceptionally high measurement on that scale
20:46:02 <elliott__> Secondly I rabidly avoided making any positive claim other than "I'm quite a bit more intelligent than the average fifteen-year-old" X-D
20:46:34 <elliott__> 21:52:11: <Phantom_Hoover> Gregor, I am sorely disappointed at the loss of searchable logs of this place.
20:46:34 <elliott__> 21:52:17: <Phantom_Hoover> Please fix your hg ones or something.
20:46:37 <coppro> elliott__: A Wolfram is defined as "thinking oneself superior to everyone else"
20:46:41 <CakeProphet> I mean, hell, I was more intelligent than the average fifteen year old. It's not difficult I think.
20:46:41 <elliott__> Phantom_Hoover: lol
20:47:05 <elliott__> coppro: There are vastly more non-fifteen year olds than fifteen year olds, and I only consider myself superior in intelligence :P
20:47:14 <coppro> 0.5 Wolframs is "thinking oneself to be exactly average"
20:47:19 <elliott__> hmm
20:47:20 <elliott__> ah
20:47:24 <elliott__> But both Dijkstra's and Wolfram's values on that scale are astronomical :P
20:47:29 <coppro> elliott__: it's an age-adjusted scale
20:47:40 <coppro> Gene Ray I think gets higher than 1
20:47:58 <elliott__> To be honest if 0.5 means you consider yourself average then my real measurement is almost certainly greater than 0.6, but everyone downplays their ego.
20:48:22 <CakeProphet> This may be downplaying my ego, but I don't really consider myself extraordinary.
20:48:26 <coppro> I agree, but that response seemed 0.6-ish
20:48:57 <oerjan> elliott__> Testing this irssi madness
20:48:58 <coppro> I scale higher than I'd like too
20:49:15 -!- jix has joined.
20:49:15 <CakeProphet> oerjan: whut?
20:49:22 <CakeProphet> What's irssi doing?
20:49:29 <oerjan> shows up in my irssi as 22:48 elliott__> Testing this irssi madness
20:49:48 <coppro> I'm probably actually in the 0.9+ range
20:49:55 <oerjan> this is slightly disturbing
20:49:57 <CakeProphet> Shows up in mine as: 16:48 < elliott__> Testing this irssi madness
20:50:16 <CakeProphet> except instead of an 'e' there's a string of weird block-shaped symbols.
20:50:22 <CakeProphet> but it copypasted like that...
20:50:26 <elliott__> oerjan> I FUCKING HATE YOU ALL AND YOU SHOULD ALL EAT SHIT AND DIE UGH
20:50:37 <oerjan> CakeProphet: heh
20:50:42 <elliott__> oerjan> CakeProphet: coppro: Phantom_Hoover: FUUUUUUCK YOOOOUUUUUUU
20:50:54 <elliott__> oerjan: wtf is up with you
20:51:01 <oerjan> elliott__: possibly i should not have revealed this
20:51:17 <elliott__> oerjan: it has clearly driven you insane.
20:51:22 <oerjan> obviously
20:51:28 <CakeProphet> ...I can see that it's elliott though...
20:51:56 * Phantom_Hoover wonders if clog will.
20:52:16 <Phantom_Hoover> Nope, it doesn't.
20:52:24 <elliott__> It'll only work on terminals :P
20:52:32 <elliott__> I think it's the left-arrow character
20:52:36 <elliott__> Maybe.
20:53:01 <elliott__> 05:53:06: <CakeProphet> I'm actually not sure why most languages index arrays starting at zero. It makes sense, but I have no way of explaining why..
20:53:19 <coppro> wtf
20:53:19 <elliott__> CakeProphet: Makes indexing arithmetic easier, and also uses the correct definition of the naturals as the indexing set :)
20:53:44 <CakeProphet> does it /really/ make indexing arithmetic easier? What kind of indexing are we talking about?
20:53:54 <elliott__> CakeProphet: two-dimensional
20:53:57 <CakeProphet> standard incremental/decremental indexing is easy with any range.
20:54:00 <CakeProphet> ah.
20:54:17 <elliott__> twodee->onedee with 0-indexing: yh + x
20:54:22 <elliott__> twodee->onedee with one-indexing: (y-one)h + x
20:54:40 <CakeProphet> http://dl.dropbox.com/u/16495819/Screenshot.png is what I see
20:55:21 <elliott__> man your top panel is ugly
20:55:24 <CakeProphet> elliott__: I'm not quite sure what h is.
20:55:29 <CakeProphet> elliott__: DON'T CARE NOT IMPORTANT
20:55:30 <elliott__> mostly because it has eclipse on it ;D
20:55:38 <elliott__> CakeProphet: h = height
20:55:41 <CakeProphet> yeah I had a Java class last semester and haven't taken it down.
20:55:53 <coppro> CakeProphet: suppose you have a pointer
20:56:03 <coppro> what do you add to that pointer to get the first element?
20:56:07 <coppro> qed
20:56:12 <elliott__> pointers are a shitty justification
20:56:18 <elliott__> because pointers make shitty arrays :)
20:56:31 <CakeProphet> so wait, isn't y 'height'?
20:56:51 <elliott__> ok you don't know how coordinates work
20:56:53 <coppro> CakeProphet: LIES AND SLANDER
20:56:58 <CakeProphet> sure I do.
20:57:52 <coppro> win 4
20:58:13 <elliott__> coppro: lose 9
20:58:21 <elliott__> them's the breaks
20:58:27 <elliott__> coppro: do i get to know why you asked me now
20:58:38 <CakeProphet> elliott__: actually isn't h=x if you're trying to flatten the array into one dimension?
20:58:49 <CakeProphet> well not =
20:58:49 <coppro> elliott__: I wanted to determine your ego in Wolframs
20:58:59 <elliott__> coppro: BORING
20:59:10 <elliott__> CakeProphet: (x,y) = coordinates
20:59:11 <elliott__> h = height
20:59:18 <elliott__> that is, h is the maximalest y coordinate plus one
20:59:31 <CakeProphet> right.
20:59:48 <oerjan> um not plus one if it's one-indexed >:)
21:00:22 <elliott__> oerjan: oh, right
21:00:24 <elliott__> shut up :D
21:00:47 <oerjan> CLEARLY ONE-INDEXING IS THUS SUPERIOR
21:00:51 -!- ralc has joined.
21:00:55 * oerjan runs away cackling evilly
21:01:09 <CakeProphet> I prefer to index from -1
21:01:21 <CakeProphet> makes multiplication of indices easier.
21:01:29 <Demetrius> goodnight!
21:01:31 <oerjan> wat
21:01:39 <oerjan> bye Demetrius
21:01:51 -!- Demetrius has quit (Quit: see you!).
21:01:55 <CakeProphet> > map (*2) [-1..]
21:01:56 <lambdabot> [-2,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,5...
21:02:02 <CakeProphet> oerjan: see? doesn't that just simplify everything?
21:02:19 <oerjan> >_<
21:07:03 <oerjan> > [(+)`join`(*)|(*)<-(-)`scanl1`fix(-1:)]
21:07:05 <lambdabot> [-2,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,5...
21:07:23 <oerjan> NOW WE ARE TALKING
21:07:35 <CakeProphet> oerjan: looked remotely sexual.
21:07:56 <oerjan> hm...
21:08:38 <elliott__> > 90 + 0
21:08:38 <lambdabot> 90
21:08:40 <elliott__> thats wrong
21:08:41 <oerjan> > [(+)`join`(-)|(-)<-(-)`scanl1`fix(-1:)]
21:08:41 <lambdabot> [-2,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,5...
21:08:51 <oerjan> elliott__: wat
21:09:02 <elliott__> oerjan: its a wrong arithmeitsces
21:09:08 <elliott__> araeirhtmetcsiicaeics
21:09:11 <oerjan> ic
21:09:15 <elliott__> arariarearihaihetihmatcieaeratticsjcs
21:09:18 <elliott__> joiaerhibtiuebwilrbliet
21:09:36 * oerjan is suddenly reminded of Val$ar
21:10:14 <elliott__> i want some vhdl kind of processor thing what
21:10:18 <elliott__> fpga thats the word
21:11:24 <oerjan> > (/)`scanl1`fix(0.5:)
21:11:25 <lambdabot> [0.5,1.0,2.0,4.0,8.0,16.0,32.0,64.0,128.0,256.0,512.0,1024.0,2048.0,4096.0,...
21:12:02 <oerjan> at least that idiom is best -1-indexed
21:13:25 <oerjan> > (90+f)x :: Expr
21:13:27 <lambdabot> 90 + f x
21:14:10 <oerjan> > (90*id+f)x :: Expr
21:14:12 <lambdabot> 90 * x + f x
21:14:43 <oerjan> > 90 + 0 :: Expr
21:14:44 <lambdabot> 90 + 0
21:16:36 <CakeProphet> !addinterp lperl perl while(<>){s/ (?<!\\) \{\{ (.*?) (?!\\) \}\} /$1/xee;print}
21:16:36 <EgoBot> ​Interpreter lperl installed.
21:16:49 <CakeProphet> !lperl What is all this nonsense about {{90+0}}?
21:16:49 <EgoBot> ​What is all this nonsense about 90?
21:19:11 -!- atrapado has quit (Quit: FIN).
21:19:44 <CakeProphet> !lperl {{1;2}}
21:19:44 <EgoBot> ​2
21:20:00 <CakeProphet> sweet functions!
21:21:31 <CakeProphet> oerjan: not a fan of the repeat function I've noticed. fix (x:) is just too cool. :P
21:22:09 <oerjan> ...it did not fit in with the rest there
21:22:45 <CakeProphet> didn't fit in? aren't they equivalent though?
21:23:14 * oerjan declares CakeProphet to have no sense of aesthetics
21:23:26 <CakeProphet> ..uh, if you say so.
21:23:58 <oerjan> i mean if we were going for _cleanness_...
21:24:02 <oerjan> > [-2,0..]
21:24:03 <lambdabot> [-2,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,5...
21:24:18 <elliott__> > [-2,99999999999909..]
21:24:19 <lambdabot> [-2,99999999999909,199999999999820,299999999999731,399999999999642,49999999...
21:24:23 <elliott__> best sequence
21:24:35 <elliott__> > [-2,99..]
21:24:36 <lambdabot> [-2,99,200,301,402,503,604,705,806,907,1008,1109,1210,1311,1412,1513,1614,1...
21:24:39 <elliott__> > [-2,999..]
21:24:40 <lambdabot> [-2,999,2000,3001,4002,5003,6004,7005,8006,9007,10008,11009,12010,13011,140...
21:24:41 <elliott__> > [-2,9999..]
21:24:42 <lambdabot> [-2,9999,20000,30001,40002,50003,60004,70005,80006,90007,100008,110009,1200...
21:24:44 <elliott__> > [-2,99999..]
21:24:45 <lambdabot> [-2,99999,200000,300001,400002,500003,600004,700005,800006,900007,1000008,1...
21:24:46 <elliott__> > [-2,9999999..]
21:24:47 <lambdabot> [-2,9999999,20000000,30000001,40000002,50000003,60000004,70000005,80000006,...
21:24:48 <elliott__> > [-2,99999990..]
21:24:50 <lambdabot> [-2,99999990,199999982,299999974,399999966,499999958,599999950,699999942,79...
21:24:51 <elliott__> nice
21:24:55 <elliott__> > [-2,990..]
21:24:56 <lambdabot> [-2,990,1982,2974,3966,4958,5950,6942,7934,8926,9918,10910,11902,12894,1388...
21:24:58 <elliott__> > [-2,9990..]
21:24:59 <lambdabot> [-2,9990,19982,29974,39966,49958,59950,69942,79934,89926,99918,109910,11990...
21:25:03 * oerjan wonders if elliott__ has a point
21:25:20 <elliott__> no
21:25:40 <CakeProphet> I like [1..] because it's actually [0.99.., 1.99....] :)
21:26:14 <oerjan> um
21:26:33 <oerjan> type error
21:26:43 <elliott__> oerjan: whoosh
21:26:46 <CakeProphet> NOT IN MATH DAWG.
21:26:46 <elliott__> syntax error, at that
21:26:55 <elliott__> , he said to the phd in mathematics
21:26:58 <oerjan> hm true
21:27:05 <CakeProphet> theys all real numbers foo'
21:27:32 <CakeProphet> though it would be nifty (read: pointless) if Haskell supported 0.99..
21:27:39 <CakeProphet> and just evaluated it to 1 automatically.
21:27:56 <elliott__> ?unpl 0.99..
21:27:57 <lambdabot> Parse error at ".." (column 5)
21:28:01 <elliott__> not that pointless I guess
21:28:08 <elliott__> ;;;;)0)0)0
21:28:21 <oerjan> >_>
21:28:21 <CakeProphet> .. -_-
21:29:19 <CakeProphet> !lperl {{'a'..'Z' #Perl's enumeration stuff isn't anywhere near as good as Haskell's}}
21:29:34 <CakeProphet> !lperl {{'a'..'z'}}
21:29:44 <CakeProphet> ..or it doesn't work at all apparently.
21:30:10 <CakeProphet> oh, hmm, I wonder what context that is.
21:30:19 <CakeProphet> scalar probably.
21:31:14 <CakeProphet> ah, a problem..
21:31:31 <monqy> mmmm perl
21:32:02 <CakeProphet> !delinterp lperl
21:32:02 <EgoBot> ​Interpreter lperl deleted.
21:32:03 <CakeProphet> !addinterp lperl perl while(<>){s/ (?<!\\) \*\{ (.*?) (?!\\) \}\* /$1/xee;print}
21:32:04 <EgoBot> ​Interpreter lperl installed.
21:33:21 -!- Slereah has quit (Ping timeout: 252 seconds).
21:33:58 <CakeProphet> !lperl This is a *{'test' . join ('','a'..'z')}*
21:33:58 <EgoBot> ​This is a testabcdefghijklmnopqrstuvwxyz
21:35:06 * Phantom_Hoover → sleep
21:35:08 -!- Phantom_Hoover has quit (Quit: Leaving).
21:35:10 <CakeProphet> !lperl Also a test to enforce list context *{@{['a'..'z']}}* *{()='a'..'z'}*
21:35:10 <EgoBot> ​Also a test to enforce list context 26 *{()='a'..'z'}*
21:35:15 <CakeProphet> :o
21:35:31 <CakeProphet> I always forget g...
21:35:56 <CakeProphet> g should be default..
21:36:03 <CakeProphet> !delinterp lperl
21:36:03 <EgoBot> ​Interpreter lperl deleted.
21:36:10 <CakeProphet> !addinterp lperl perl while(<>){s/ (?<!\\) \*\{ (.*?) (?!\\) \}\* /$1/gxee;print}
21:36:10 <EgoBot> ​Interpreter lperl installed.
21:36:35 <CakeProphet> monqy: mmm indeed.
21:42:16 -!- Slereah has joined.
21:45:25 -!- ralc has quit (Quit: Leaving).
21:46:56 -!- azaq23 has quit (Quit: Leaving.).
21:50:04 <CakeProphet> Your SYLLADEX'S FETCH MODUS is currently dictated by the logic of a STACK DATA STRUCTURE. You were never all that great with data structures and you find the concept puzzling and mildly irritating.
21:52:29 <CakeProphet> elliott__: so what's a better implementation for arrays than utilizing pointer arithmetic?
21:52:39 -!- Slereah has quit (Ping timeout: 255 seconds).
21:52:53 <elliott__> CakeProphet: well the /interface/ of pointers is bad for arrays
21:52:58 <elliott__> implementation demands on the data, ofc
21:58:12 <CakeProphet> what could be more straightforward for a particular datum than a contiguous region of memory accesses by pointer arithmetic?
21:58:23 <elliott__> ask Fortran programmers :)
21:58:28 <elliott__> it's ok for one-dimensional arrays but...
21:59:17 -!- Slereah has joined.
22:00:38 <elliott__> CakeProphet: btw i should note that homestuck is still ongoing
22:00:53 <CakeProphet> ah.
22:01:05 <CakeProphet> I've only gone into the first few strips
22:01:08 <elliott__> (after two years and over three thousand seven hundred pages :))
22:01:21 <elliott__> (and... fifteen albums...)
22:01:26 <CakeProphet> ridiculous.
22:01:52 <CakeProphet> so elliott__, are you a fortran programmer? If so I have a question for you.
22:01:55 <elliott__> no :D
22:02:24 <oklopol> a lot of what i did in my master's thesis was basically esolanging
22:02:29 <oklopol> and i got paid to do it
22:02:43 <elliott__> oklopol: yeah yeah and im the president of the us stop bragging
22:05:59 <CakeProphet> oklopol: that sounds excellent
22:07:22 <oklopol> actually i do even more esolanging type stuff in this survey thingie i just finished, I'M SURE YOU'D ALL ENJOY IT
22:08:00 <elliott__> oklopol: im going to remove your organs
22:08:08 <oklopol> :D
22:08:43 <elliott__> `addquote <oklopol> yes i use the services of a psychic, but i'm considering getting a live one since stuff like "hello $name, your first name $first_name has |$first_name| letters, so by using numerology we can tell ..." is getting kind of boring
22:08:45 <HackEgo> ​437) <oklopol> yes i use the services of a psychic, but i'm considering getting a live one since stuff like "hello $name, your first name $first_name has |$first_name| letters, so by using numerology we can tell ..." is getting kind of boring
22:08:52 <oklopol> that was added already :D
22:08:58 <elliott__> heh coppro actually tried that
22:08:59 <elliott__> but he failed
22:09:03 <oklopol> oh he did
22:09:04 <elliott__> he said "`quote add" because he's an idiot who should die
22:09:07 <elliott__> true stories
22:09:11 <oklopol> makes sense
22:09:16 <elliott__> (it's an insult to my quote system :<)
22:09:45 <elliott__> 06:34:27: <pikhq> But thank goodness you're not also exhibiting an entirely irrational belief.
22:09:47 <CakeProphet> elliott__: the subcommand interface is reminiscent of MUD commands.
22:09:50 <elliott__> pikhq: SAID THE EX-CHRISTIAN ;D ;D ;D ;D ;D; D; D; ;D; D; ;D;D;
22:10:11 <oklopol> i wonder if you can get napping pills at 1am in the morning
22:10:13 <elliott__> 06:37:30: <oklopol> although, if a 40yo friend of a friend asks me to marry them anytime soon i'll probably have to say yes, and start believing.
22:10:13 <elliott__> 06:37:36: <oklopol> and turn gay.
22:10:16 <elliott__> oklopol: ive got a confession to make
22:10:21 <elliott__> im 40 and gay
22:10:27 <oklopol> i need to be at uni in 7 hours and i've slept all day
22:10:41 <oklopol> from 12 to 19
22:11:09 <oklopol> elliott__: yeah right and i'm a famous bisexual
22:11:15 <elliott__> oklopol: omg lets marry
22:11:47 <oklopol> we can't, you're underage and have a penis
22:12:23 <oklopol> but how's about that thing you were supposed to get back to me about
22:12:26 <elliott__> no im forty
22:12:31 <elliott__> and im a gays
22:12:35 -!- Slereah has quit (Ping timeout: 252 seconds).
22:13:57 -!- CakeProphet has quit (Ping timeout: 240 seconds).
22:16:16 -!- CakeProphet has joined.
22:16:16 -!- CakeProphet has quit (Changing host).
22:16:16 -!- CakeProphet has joined.
22:18:12 -!- SimonRC has quit (Ping timeout: 252 seconds).
22:19:18 -!- SimonRC has joined.
22:19:55 -!- Slereah has joined.
22:21:52 -!- CakeProphet has quit (Ping timeout: 252 seconds).
22:23:14 <zzo38> Did you try the "NABEATSU of the world" code golf?
22:27:03 -!- CakeProphet has joined.
22:27:03 -!- CakeProphet has quit (Changing host).
22:27:03 -!- CakeProphet has joined.
22:28:26 <CakeProphet> I wonder how someone goes about becoming an IRCop
22:28:26 <CakeProphet> and, more importantly, why.
22:28:55 <oerjan> you mean like freenode staff?
22:29:22 <CakeProphet> yes
22:30:00 <CakeProphet> (Note: the slightest bit of thunder in the distance makes me disconnect. It's stupid. I probably won't be able to hold a conversation)
22:30:22 <oerjan> um automatically?
22:30:36 <CakeProphet> yes.
22:30:43 <elliott__> CakeProphet: By not asking that question :)
22:31:25 -!- Lymia has quit (Ping timeout: 246 seconds).
22:31:37 <oerjan> no no, you just go to #freenode and ask "How can I become the ruler of this network as part of my quest for world domination?"
22:32:16 <elliott__> tempted
22:32:21 <CakeProphet> same
22:32:30 -!- Slereah has quit (Ping timeout: 252 seconds).
22:33:00 <oerjan> well that should slightly increase _my_ chances, at least
22:33:15 <CakeProphet> yes, because I /aspire/ to be an IRCop...
22:33:23 <CakeProphet> it sounds like a lot of fun.
22:33:34 <CakeProphet> k-lining spammers all day.
22:34:13 <CakeProphet> pretending I have a large internet penis.
22:34:27 <oklopol> freenode ircops do not k-line spammers
22:34:39 <elliott__> freenode is a bit too conservative a network for your tastes I think ;D
22:34:48 <elliott__> or, i suppose, in the world of irc, too progressive
22:35:06 <oklopol> well, i know this guy who spend like a week just spamming 24/7 and asking for a k-line before he got one
22:35:13 <oklopol> *spent
22:35:18 <elliott__> hahaha
22:35:24 <elliott__> but freenode actually uses glines don't they or something
22:35:27 <elliott__> klines are one-server which is silly
22:35:27 <oklopol> no
22:35:37 <oklopol> freenode usually gives a kline afaik
22:35:45 <oklopol> qnet gives glines
22:35:45 <elliott__> maybe ill ask
22:35:49 <oklopol> very easily
22:35:58 <oklopol> and never klines
22:36:19 <Sgeo> Well, there are some channels that if you join you get klined, iirc
22:36:30 <CakeProphet> so they won't [kg]-line you for disrupting hundreds of channels at a time with spam?
22:36:41 <CakeProphet> well...
22:36:42 <coppro> CakeProphet: they will
22:36:48 <CakeProphet> one hundred, let's say. for realism.
22:36:56 <elliott__> that would require more than one nick anyway
22:36:58 <oklopol> they prolly would yeah
22:36:58 <coppro> the problem is that Freenode staff are not always around
22:37:07 <elliott__> hmm or is the additional mode thing greater than that
22:37:13 <oklopol> but not just from say spamming all day on #freenode or #ubuntu
22:37:20 <oklopol> they just keep kickbanning you
22:39:26 <elliott__> oklopol: did you know you're a aoiejsj
22:39:38 <elliott__> YEAH FUCKER
22:40:09 <oklopol> what's that :DSDSDS
22:40:20 <elliott__> its like a famous bisexual
22:40:42 <CakeProphet> elliott__: so whatever became of representing regular expressions as sets in Haskell?
22:40:43 -!- Slereah has joined.
22:40:53 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:40:54 <elliott__> CakeProphet: wasn't that like years ago
22:41:04 <elliott__> it doesn't work for obvious reasons
22:41:07 <CakeProphet> late last year maybe.
22:41:13 <CakeProphet> elliott__: are you SURE?
22:41:16 <elliott__> yes.
22:41:19 <zzo38> My own IRC server has no spam as far as I know, possibly because spam bots do not find it.
22:41:24 <elliott__> you can't skip infinite elements to find the one you want.
22:41:39 <zzo38> I used to have a comment form that was also spam many, but now I changed it to comment on gopher only, and there is no spam message.
22:41:54 <elliott__> "also, no comments"
22:41:57 <CakeProphet> elliott__: what if you use some fancy method of interleaving results from each expression?
22:42:07 <elliott__> CakeProphet: it's a pointless idea anyway :)
22:42:15 <oklopol> ?
22:42:16 <elliott__> a tree structure is far more appropriate
22:42:17 <CakeProphet> pointless in that it's awesome.
22:42:27 <oklopol> "<elliott__> you can't skip infinite elements to find the one you want." <<< regular languages are countable sets
22:42:40 <elliott__> oklopol: yes they are
22:42:46 <elliott__> oklopol: but the naive way of doing | (concatenation) doesn't work
22:42:51 <oklopol> but it can be exponential complexity to search ofc
22:42:52 <elliott__> and IIRC interleaving had a stupid problem that i forget
22:42:54 <CakeProphet> elliott__: see: FANCY INTERLEAVING.
22:42:56 <elliott__> anyway it was stupid anyway
22:43:01 <elliott__> because recognising it becomes like O(n)
22:43:07 <elliott__> where n is something utterly unrelated to the string you're testing
22:43:26 <oklopol> "<elliott__> oklopol: but the naive way of doing | (concatenation) doesn't work" <<< very good point
22:43:41 <elliott__> i sense sarcasm
22:43:49 <oklopol> well n can be 2^k where k is length, as i mentioned
22:43:54 <oklopol> for instance for the full language
22:43:56 <elliott__> right, point is, lists are a stupid way to do it
22:44:02 <CakeProphet> n would be, the cardinality of the language accepted by the regular expression right? or whatever the terminology is.
22:44:07 <elliott__> CakeProphet: no.
22:44:08 <oklopol> so is your mom because she doesn't know what regexps are
22:44:16 <elliott__> it's the number of elements before the one you're testing in the list
22:44:19 <elliott__> oklopol: oh right the main flaw is
22:44:21 <elliott__> you can't disprove membership
22:44:23 <elliott__> obviously
22:44:29 <elliott__> for anything that matches infinitezzzzz
22:44:36 <elliott__> yeah it was bsically the stupidest idea
22:44:41 <CakeProphet> elliott__: well right, I was talking about worst-case (which technically can't ever happen in an infinite list)
22:44:52 <oklopol> it most certainly is the stupidest idea in the world, yes
22:45:08 <CakeProphet> think of the APPLICATIONS.
22:45:15 <elliott__> all zero of them
22:45:16 <oklopol> i was only disagreeing with the technical detail that was completely irrelevant
22:45:44 <oklopol> for some reason i suddenly want a theremin
22:45:49 <elliott__> how weird
22:45:52 <elliott__> HOW WEIRD
22:45:56 <elliott__> this is weird everyone
22:46:02 <CakeProphet> oklopol: dude theremins are awesome.
22:46:09 <CakeProphet> also, ondes martenot
22:46:30 <elliott__> the ondes martenot is really like fifteen instruments in one
22:47:40 <zzo38> I have made my own version of MegaZeux, including many features that other people have requested (and some that nobody has requested until far after I made my version), but still nobody else likes it (except for 2 people, one of whom refuses to use it anyways).
22:47:42 <CakeProphet> elliott__: sure, but only if a piano is like 88 instruments in one.
22:47:47 <elliott__> heh
22:47:50 <elliott__> i like that view
22:47:58 <elliott__> an instrument is something that you can activate to make a single noise
22:47:59 <oklopol> me2
22:48:20 <CakeProphet> more if you count each string, but I don't. I got by the key because that's the smallest dividable component that a player interacts with.
22:48:22 <elliott__> so a theremin in a continuous universe is a real line of instruments
22:48:35 <oklopol> :DSDDD
22:48:36 <CakeProphet> s/got/go/
22:49:14 <CakeProphet> elliott__: same thing with an ondes because of the ribbon.
22:49:20 <zzo38> A piano can also do many other things, such as pedals, holding one key down silently for one string to make the other one make noise too, it is a different kind, and you could also play the strings directly.
22:50:04 <elliott__> CakeProphet: what's the ribbon again
22:50:45 <CakeProphet> elliott__: there's a little thing you can press down right in front of the normal keys that allows you to produce a continuous pitch.
22:50:53 <elliott__> aa
22:50:55 <elliott__> [asterisk]ah.
22:50:58 <elliott__> erm
22:51:07 <elliott__> does that actually give you infinite number of tones though
22:51:12 <elliott__> like a theremin (theoretically) does
22:51:16 <CakeProphet> I believe the note corresponds to which keyboard key you're physically below
22:51:28 <CakeProphet> elliott__: yes it's a continuous range.
22:51:32 <oklopol> that kinda sucks huh
22:52:03 <oklopol> because then 1cm is not the same distance in notespace everywhere
22:52:11 <oklopol> of course, it is not all that in the theremin afaiu
22:52:16 <oklopol> or the guitar
22:52:34 <CakeProphet> oklopol: I might be wrong on that assumption actually. I don't know for sure.
22:52:47 <CakeProphet> it just seemed to make sense. Otherwise you'd have to memorize which location is what pitch.
22:53:02 -!- Slereah has quit (Ping timeout: 240 seconds).
22:53:05 <CakeProphet> oklopol: also, I'm guessing you mean a fretless guitar.
22:53:07 <oklopol> but at least it continuously starts rising faster as you go, what you described would halve and double the speed at pretty much random spots
22:53:23 <elliott__> oklopol: but that sounds awesome
22:53:35 <elliott__> imagine playing a tune designed for a flat, continuous range on that
22:53:37 <CakeProphet> well, no, it doesn't sound chopped up when you change the pitch.
22:53:59 <oklopol> well in a fretful one, you have the same thing
22:54:00 <CakeProphet> here, I will find some music with ondes martenot.
22:54:23 <oerjan> det ondes problem
22:54:25 -!- Slereah has joined.
22:54:28 <zzo38> Fiddle. It makes a big difference, you know.
22:54:36 <elliott__> `addquote <zzo38> Fiddle. It makes a big difference, you know.
22:54:38 <HackEgo> ​438) <zzo38> Fiddle. It makes a big difference, you know.
22:54:41 <elliott__> i like that
22:54:43 <elliott__> good slogan
22:54:44 <elliott__> for fiddles
22:55:29 <CakeProphet> http://www.youtube.com/watch?v=a35DH9tKjZI
22:55:31 <CakeProphet> oerjan: ....
22:55:43 <elliott__> oerjan: good band name
22:55:51 <elliott__> Det ondes Problem
22:56:07 <elliott__> (yes i googled :D)
22:56:13 <oklopol> erm what, the left hand is just used to control volume? :D
22:56:18 <elliott__> oklopol: in theremin?
22:56:18 <oklopol> that's fucking retarded
22:56:21 <elliott__> yes
22:56:23 <oklopol> nono
22:56:26 <oklopol> in that piano thing
22:56:28 <elliott__> oh
22:56:43 <oklopol> in the theremin it's okay because it looks like a guitar.
22:56:45 <CakeProphet> the left hand can control a number of properties.
22:56:54 <oklopol> this one looks like a piano so it feels retarded not to have two hands
22:56:58 <elliott__> oklopol: in the theremin it's okay because without the volume it'd be stupid :D
22:57:19 <elliott__> maybe if you had like superfast superprecise hands so you could avoid making everything sound like running your keys down a piano
22:58:01 <oklopol> i wish i had a touchkeyboard
22:58:08 <CakeProphet> there are different styles of playing an ondes. Also it can produce chords through other means. (I believe there are switches or buttons for different chords)
22:58:21 <oklopol> yeah bleh
22:58:29 <elliott__> define touchkeyboard :p
22:58:41 <oklopol> touchscreen used as kb
22:59:17 <oklopol> going to get one asap actually
22:59:28 <oklopol> i've had this one thingie in mind for some time
22:59:48 <elliott__> oklopol: get the laser ones
22:59:53 <elliott__> http://www.pimproom.com/sc_images/products/741_large_image.jpg
22:59:57 <elliott__> i hear they're incredibly shitty.
23:00:06 <elliott__> way cooler than a touchscreen though :D
23:00:14 <oklopol> yeah those would be awesome
23:00:16 <elliott__> http://www.biztoolbelt.com/uploads/5CellulonCL850VirtualKeyboard.jpg THE FUTURE
23:00:30 <elliott__> oklopol: http://www.cectcellphone.com/product.php?id_product=178/178-VKB%20Celluon%20CL850.html
23:00:35 <elliott__> only two hundred pounds
23:00:35 <monqy> he future looks awful
23:00:43 <monqy> the future too
23:00:47 <elliott__> oklopol: 242.731127 euros
23:00:58 <elliott__> PEANUTS FOR THE PPLEASURE
23:01:02 <elliott__> wow what did i just type
23:01:08 <monqy> PEANUTS FOR THE PPLEASURE
23:01:29 <oerjan> ppower typing
23:01:31 -!- elliott__ has set topic: PEANUTS FOR THE PPLEASURE | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
23:01:49 <elliott__> PEANUTS FOR THE PPLEASURE by det ondes Problem
23:01:59 <elliott__> coming to an esoteric record store near you
23:04:20 <CakeProphet> it appears that you can play the ondes 2-handed at a constant volume.
23:04:45 <CakeProphet> also the keys can apparently bend a full semiton as well.
23:04:50 <CakeProphet> *semitone
23:04:53 <oklopol> yes
23:05:10 <oerjan> elliott__: if you capitalize Problem you really need to capitalize Ondes
23:05:24 <oklopol> no!
23:05:31 <oklopol> Det ondes Problem
23:05:32 <elliott__> oerjan: no, the instrument is ondes Martenot
23:05:41 <elliott__> I lowercased det just because "Det ondes" looks weird :D
23:05:53 <oerjan> *sigh*
23:06:02 <elliott__> oerjan: you just don't understand _art_
23:06:02 <CakeProphet> dy/dondes
23:06:23 <CakeProphet> is a good electro-noise band name.
23:07:03 <CakeProphet> or synthpop nintendo-noise jazz fusion
23:07:04 <oklopol> art is just fart but you don't even give an eff
23:07:14 <elliott__> "synthpop nintendo-noise jazz fusion" <-- i can put words together too
23:07:17 <oklopol> is my contribution
23:07:30 <CakeProphet> elliott__: no those are all based on actual genres.
23:07:36 -!- zzo38 has quit (Quit: zzo38).
23:07:44 <elliott__> CakeProphet: what, you know of a synthpop nintendo-noise jazz fusion band? :D
23:07:58 <CakeProphet> ...no, I know of synthpop bands, nintendocore, noise, and jazz fusion.
23:08:01 <CakeProphet> SO THERE.
23:08:08 <elliott__> yes, and i too can string those words together
23:08:12 <CakeProphet> and by "know" I mean "I could find them with Wikipedia and Google"
23:08:47 <oklopol> i'd certainly like a touchscreen based instrument with a continuous scale where a semitone is xcm everywhere
23:08:48 <CakeProphet> elliott__: heh, good. Son, I am proud.
23:08:54 -!- Slereah_ has joined.
23:08:56 <oklopol> but touchscreens should feel like poking a boob
23:09:04 <elliott__> `addquote <oklopol> but touchscreens should feel like poking a boob
23:09:06 <HackEgo> ​439) <oklopol> but touchscreens should feel like poking a boob
23:09:33 <CakeProphet> oklopol: the interface of the future.
23:09:56 <oerjan> CakeProphet: http://xkcd.com/903/
23:09:59 -!- Slereah has quit (Ping timeout: 248 seconds).
23:10:10 <oklopol> are there boobs you wack and squeeze around to move the mouse?
23:10:11 <oklopol> i mean
23:10:19 <oklopol> not real boobs but like
23:10:21 <oklopol> yeah
23:10:31 <elliott__> there's boob mouse pads
23:10:36 <elliott__> wish i didn't know this
23:10:37 <CakeProphet> oerjan: yes I often have this problem. Though I can definitely tell someone what spark plugs and cars are without wikipedia.
23:10:51 <oklopol> like those little nipples in laptop keyboards, but they'd be full-blown boobies
23:11:01 <elliott__> `addquote <oklopol> are there boobs you wack and squeeze around to move the mouse? [...] <oklopol> like those little nipples in laptop keyboards, but they'd be full-blown boobies
23:11:03 <HackEgo> ​440) <oklopol> are there boobs you wack and squeeze around to move the mouse? [...] <oklopol> like those little nipples in laptop keyboards, but they'd be full-blown boobies
23:11:04 <Sgeo> Spark plugs?
23:11:11 <elliott__> Sgeo: Cars?
23:11:19 <CakeProphet> oerjan: but, shit, there's too much information to remember everything.
23:11:26 * Sgeo is not a car person
23:11:38 <elliott__> I...
23:11:56 <elliott__> so on the subject of things that aren't how depressing sgeo is
23:12:02 <elliott__> http://xkcd.com/907/ <-- randy realises he's getting old
23:12:31 <CakeProphet> Sgeo: a spark plug provides a spark that ignites a mixture of fuel and air in an engine.
23:12:36 <CakeProphet> basically.
23:12:55 <CakeProphet> elliott__: yes I've noticed a change of tone in the most recent comics.
23:13:41 <elliott__> do you mean it's been getting shittier cuz its been going on a lot longer than that
23:13:42 -!- Slereah has joined.
23:14:18 -!- Slereah_ has quit (Ping timeout: 252 seconds).
23:14:22 <CakeProphet> elliott__: yes, actually.
23:14:35 <CakeProphet> it's not bad, it's just not the same.
23:14:43 <elliott__> http://xkcd.com/903/ is one of the high-points of the post-four hundred era
23:15:12 <elliott__> actually i almost feel like it's gotten bad enough that it should be the post-five hundred era
23:15:24 <elliott__> in comparison the fourxx comics are much better than the current lot :D
23:15:42 <CakeProphet> elliott__: there's also this: http://xkcd.com/550/
23:15:52 <elliott__> CakeProphet: Except that that's a terrible strip??
23:15:58 <CakeProphet> nonsense.
23:16:09 <elliott__> The entire joke: "Ha ha: MEMES!"
23:16:15 <elliott__> "I am referencing them laugh!"
23:16:17 <CakeProphet> nope.
23:16:21 <elliott__> Yup.
23:16:24 <oklopol> haha lol @ "Ha ha: MEMES!"
23:16:26 <CakeProphet> it's meme density. YOU DON'T UNDERSTAND.
23:17:05 <elliott__> let me just set aside some time to be stupid enough to laugh at that
23:17:10 <elliott__> hey looks like next month is chemical lobotomy month youre in luck
23:17:21 <oerjan> oklopol: MEMES? DON'T YOU MEAN CARROTS?
23:17:37 <elliott__> oerjan: im going to snap your spine and drain all the blood from your neck
23:17:41 <oklopol> i didn't get that
23:17:55 <elliott__> oerjan: then throw you into a meat grinder
23:17:57 <oerjan> elliott__: hey it was the one perfect time for it
23:18:25 <CakeProphet> I only sometimes get oerjans uh... jokes.
23:18:25 <oerjan> oklopol: reddit meme. exceedingly forced.
23:18:39 <elliott__> oerjan: forced by _design_ even
23:18:43 <oerjan> yeah
23:18:52 <oklopol> http://xkcd.com/899/ idgi
23:19:31 <elliott__> oklopol: "I thought of a few witty remarks to make on a number line, let's draw this... hmm... I guess I need to pad it out a bit... like with false statements or something"
23:19:36 -!- Slereah_ has joined.
23:19:39 <elliott__> "haha wait"
23:19:42 <elliott__> "What if I posted this as an xkcd"
23:19:45 <elliott__> "Would anyone call me out on it"
23:19:48 -!- pikhq has quit (Ping timeout: 252 seconds).
23:19:53 -!- Slereah has quit (Ping timeout: 276 seconds).
23:19:53 -!- pikhq_ has joined.
23:19:55 <elliott__> "doubt it I'll probably get laid if I post this or something"
23:19:57 <elliott__> "god it's shitty"
23:19:59 <elliott__> "will this really work"
23:20:01 <elliott__> "only one way to find out"
23:20:03 <elliott__> [post]
23:20:05 <elliott__> oklopol: hth
23:20:19 <elliott__> if that doesn't make sense, then we've localised the problem to randy's brain.
23:20:39 <oklopol> i still feel like i'm not quite getting all those number remarks
23:21:24 <oerjan> or possibly it actually _is_ in oklopol's brain
23:22:59 <CakeProphet> oerjan: quite a bit of it is math trolling I believe.
23:22:59 <oklopol> ^
23:23:05 <CakeProphet> er
23:23:09 <CakeProphet> s/oerjan/oklopol/
23:23:14 <CakeProphet> er
23:23:16 <CakeProphet> nevermind
23:23:19 <CakeProphet> what the fuck I can't read.
23:23:29 <elliott__> "trolling"?
23:23:30 <elliott__> you mean
23:23:33 <elliott__> making false statements?
23:23:35 <CakeProphet> yes.
23:23:40 <CakeProphet> see how much it infuriates you?
23:23:44 <elliott__> nope?
23:23:54 <oerjan> infuriates how? but i can only find one statement there that might possibly be _true_
23:24:01 <elliott__> because i'm responding herp derp
23:24:06 <oerjan> (the phi one)
23:24:16 <elliott__> i'm poorly so i'm sitting here on irc wasting time and you're trying to justify one of the worst xkcd's in recent memory, it is merely amusing to respond :)
23:24:51 <oklopol> 8 is the largest even prime?
23:25:03 <oklopol> why does he write that there
23:25:05 <oklopol> igi
23:25:07 <oklopol> *idgi
23:25:15 <elliott__> oklopol: because it's FALSE! HAHA!
23:25:22 <oerjan> i'm pretty sure oklopol is trolling us
23:25:26 <elliott__> see if he had put it on two, it would be true.
23:25:30 <elliott__> so it wouldn't be funny.
23:25:46 <oklopol> some of them do make sense, some i don't get but it's my fault, but what the fuck is that prime thing
23:25:59 * oklopol practises zzo imitation
23:26:00 <elliott__> oklopol: http://www.youtube.com/watch?v=7EnrZMrNBQc
23:26:10 <oklopol> accidentally says fuck
23:26:17 <elliott__> :D
23:30:47 <CakeProphet> elliott__: I don't think it's a good comic either but it's obvious that most of it is intended to either confuse or annoy, which it has apparently done.
23:30:55 <elliott__> No it hasn't?
23:30:59 <elliott__> Who was annoyed by it?
23:31:23 <monqy> me
23:31:25 <CakeProphet> people who get annoyed at false statements.
23:31:41 <elliott__> this is stupid and you're stupid for thinking it's a good strip :P
23:31:49 <CakeProphet> heh.
23:31:53 <monqy> I'm annoyed that someone would make it
23:32:01 <monqy> annoyed or sad
23:32:45 <CakeProphet> this guy seems to know what he's talking about: http://forums.xkcd.com/viewtopic.php?f=7&t=71146#p2614309
23:32:53 <monqy> xkcd has a forum?
23:32:56 <elliott__> doubtful, he's a poster on the xkcd forum
23:33:00 <elliott__> monqy: yes, it is predictably shit
23:33:02 <CakeProphet> but otherwise that entire thread is retarded.
23:33:07 <CakeProphet> as is the entire forum.
23:33:15 <elliott__> "I can't supply all the details, but there might be some grounds for 8 being the supposed largest even prime joke."
23:33:20 <elliott__> pictured: trying to defend a comic being funny
23:33:33 <elliott__> that... does this person even understand humour
23:33:46 <elliott__> "The joke is justified by my insane logic; HA HA!"
23:33:47 <CakeProphet> I don't know. Is he British?
23:34:07 <CakeProphet> (ZING!)
23:34:25 <elliott__> wow, you're as good at jokes as randall
23:34:42 <monqy> make a webcomic
23:34:44 <monqy> become e-famous
23:34:48 <CakeProphet> dude I'm a pro. Don't even compare to that shit.
23:34:51 * oerjan beats CakeProphet with a dead parrot
23:35:22 <elliott__> monqy: i wonder if randy gets propositioned on the street
23:35:28 <elliott__> (answer: no, but he tries his darndest)
23:35:53 <CakeProphet> elliott__ is sipping the haterade.
23:36:13 <elliott__> yeah im practically tearing off my shirt and destroying walls
23:36:13 <monqy> mmmm haterade
23:36:37 <Sgeo> representitives?
23:36:54 <CakeProphet> >tit
23:37:08 * CakeProphet ahems.
23:37:15 <monqy> sgeo you are so immature
23:37:18 <Sgeo> representatives
23:37:20 <oklopol> http://xkcd.com/889/ <<< finally a good one
23:37:49 <monqy> do turtles really think that
23:38:06 <elliott__> "I'm getting this picture in my mind... a teenage Randall, saying to himself "when I'm in my twenties, then, then I'll get all the sex!" And then a barely adult Randall saying to himself "when I'm 20, then, then I'll get all the sex!" And then he just skips over about thirty to fifty years and decides it must be when you're really old that you get to have a lot of sex."
23:38:08 <CakeProphet> yes dude, why don't you ask one.
23:41:15 <CakeProphet> elliott__: I see someone else shares your seething hatred for Randall in his shitty comics. You should send him a PM and he might invite you to a shirt-tearing wall-destruction party.
23:41:53 <monqy> whose shirts whose walls
23:42:05 <monqy> sounds manly regardless
23:42:06 <elliott__> It's just good ol-... well, old - xkcdsucks.
23:42:28 <elliott__> Which got stupider near the end but now it mostly has guest reviews and they're occasionally amusing.
23:42:34 <elliott__> I only checked because we were talking about it. :p
23:47:26 <CakeProphet> suuure. :D
23:49:47 <oklopol> http://xkcd.com/887/ okay this was hilarious
23:49:50 <oklopol> seriously :D
23:50:04 <elliott__> yeah lol
23:50:09 <elliott__> z
23:50:15 <oklopol> have you read it ?
23:50:56 <oklopol> i actually laughed out loud at the punchline
23:51:27 <elliott__> i have, but randy told me AYB references aren't funny again yet
23:51:31 <elliott__> so i couldn't laugh
23:51:40 <elliott__> http://xkcd.com/286/
23:52:32 -!- TOGoS has joined.
23:54:09 -!- Patashu has joined.
23:54:24 <oklopol> it was a reference? ewww :\
23:54:41 <oklopol> okay funniness has disappeared
23:55:25 <oklopol> First, "All primes are odd except 2, and 2 is the oddest of all". It's my understanding that when something in number theory is proven and lots of it depends on looking at things "p-adically" the first paper proves it for all odd primes. Then, a year later someone comes back and does the hard 2 case.
23:55:26 <oklopol> 'First, "All primes are odd except 2, and 2 is the oddest of all". It's my understanding that when something in number theory is proven and lots of it depends on looking at things "p-adically" the first paper proves it for all odd primes. Then, a year later someone comes back and does the hard 2 case.'
23:55:27 <oklopol> what
23:55:37 <oklopol> is this true? sounds retarded.
23:55:47 <coppro> AFAICT that wasn't a reference to 286
23:55:52 <coppro> it was obviously a reference to Zero Wing
23:55:54 <oklopol> i've seen the opposite happen about 42 times
23:56:02 <elliott__> coppro: what?
23:56:10 <elliott__> coppro: 286's punchline implies "AYB is not funny yet"
23:56:14 <oklopol> if it was a reference, it was not funny; but certainly sounds like how AYB could've started
23:56:24 <elliott__> not many years later at all, 887's punchline is "AYB is hilarious"
23:56:44 <elliott__> by order of randy i can't find 887 funny.
23:56:50 <coppro> elliott__: maybe it's funny again now
23:57:09 <elliott__> coppro: sorry, Randy has not yet said so in his comic, so I cannot believe it.
23:57:11 <elliott__> oh wait
23:57:15 <elliott__> "Decades from now" --http://xkcd.com/286/
23:57:19 <elliott__> it's not funny yet, it has not been decades
23:57:50 <Patashu> this webcomic has no internal consistency
23:57:59 <CakeProphet> elliott__: wow, so there's a website in which people devote significant amounts of time finding flaws in xkcd comics?
23:58:10 <elliott__> CakeProphet: define "significant"
23:58:29 <elliott__> it takes, like, three minutes to write a blog post
23:58:37 <elliott__> how long did that p-adic poster spend trying to defend the eight-prime joke? :P
23:58:49 <CakeProphet> enough to write several paragraphs of hate and even dig back into previous comics to find places where he was inconsistent or used the same joke again.
23:58:57 <Patashu> lol the eight prime joke
23:59:12 <elliott__> CakeProphet: have you considered that it's fun to pretend to take it more seriously than you actually do
23:59:27 <oerjan> to prove fermat's last theorem it suffices to prove it for each odd prime, and 4.
23:59:29 <elliott__> come on, it's less pathetic than tons of shit the xkcd fans would do for the comic
23:59:31 -!- foocraft has quit (Quit: Leaving).
23:59:40 <oerjan> (exponent)
23:59:42 <elliott__> call it "literary criticism" if you want ;D
23:59:58 <oklopol> oerjan: is 4 harder?
23:59:59 <CakeProphet> elliott__: well, depends on your definition of 'fun.' it sounds like a terrible waste of time to me.
2011-06-06
00:00:21 <oerjan> oklopol: no that was an early solved case
00:00:24 <elliott__> CakeProphet: good thing you're not required to read/write it, then
00:00:40 <oerjan> but clearly this shows that 4 is an even prime
00:00:42 <oklopol> then is that guy actually referencing something or just being stupid
00:00:46 <elliott__> CakeProphet: however i invite you to look at the channel you're calling things a waste of time in :)
00:00:47 <oklopol> yes
00:01:45 <oklopol> oerjan: do you at all know how the proof goes btw?
00:02:01 <elliott__> it goes like doot doot doot do do do do do
00:02:19 <oklopol> obviously Phantom_Hoover is the expert on that here but i wouldn't be surprised if you also knew some of the fancy words involved
00:02:20 <oerjan> no.
00:02:37 <elliott__> oklopol: wat xD
00:02:42 <oklopol> how long is the shortest proof atm?
00:03:05 <oklopol> elliott__: to quote Phantom_Hoover, "surely everyone here knows how the proof goes"
00:03:20 <elliott__> its about three bagpipes long
00:03:31 <CakeProphet> elliott__: hey, #esoteric is an excellent way to spend time.
00:03:33 <oklopol> and when we didn't, he explained it to us
00:03:43 <CakeProphet> time that would otherwise be spent doing something productive.
00:03:54 <CakeProphet> or possibly even designing esolangs.
00:04:19 <elliott__> to quote famous bisexual oklopol, "and when we didn't, he explained it to us"
00:04:48 <oklopol> elliott__: if it's any consolation, after this survey and my next article, i'll try to drop finite state automata and concentrate on CA, which feel much less like esolanging
00:05:23 <elliott__> oklopol: im going to put your limbs into separate bags
00:06:04 <elliott__> oerjan: http://esolangs.org/w/index.php?title=Infinity&curid=1253&diff=23206&oldid=20220
00:06:13 <elliott__> oerjan: is this really valid...
00:06:18 * elliott__ looks at this article WOW this article sucks
00:06:26 <elliott__> Can we delete it, it really sucks
00:06:33 <elliott__> oh wait cpressey started it ;D
00:07:58 <oklopol> that seems like a slightly pointless article
00:08:31 <elliott__> it is, it's free of all informational content :P
00:08:43 <oerjan> i sometimes get this impression cpressey has a slightly tortuous relationship to math
00:08:49 <elliott__> http://esolangs.org/wiki/Special:Whatlinkshere/Infinity
00:08:51 <elliott__> oerjan: you don't say.
00:09:05 * oklopol likes math
00:09:40 <elliott__> http://esolangs.org/wiki/Lazy_evaluation
00:09:46 <elliott__> oh, the link added points to... a joke article
00:10:16 <oerjan> we have reached the esounderbelly
00:10:26 <elliott__> oerjan: rude non-/msg-replier :(
00:10:30 * elliott__ feels rejected
00:11:42 <oerjan> i didn't see the point in moving the conversation, it's not like there was any slanderous information involved
00:12:04 <oerjan> well in what _you_ said, anyway :P
00:12:07 <oklopol> what were you talking about?
00:12:12 <elliott__> i say everything in /msg
00:12:16 <elliott__> i would have said that in /msg
00:12:20 <elliott__> but i'd have to send it to everyone present
00:12:23 <elliott__> and that would be a lot of work.
00:12:24 <elliott__> oklopol: rabies.
00:12:39 <oklopol> hmm
00:12:50 <elliott__> <elliott__> so oerjan, dem rabies
00:12:52 <elliott__> <elliott__> oerjan
00:12:53 <elliott__> <elliott__> oerjan respond
00:12:54 <elliott__> <elliott__> please
00:12:55 <elliott__> <elliott__> he;lp
00:12:57 <elliott__> <elliott__> rabies??
00:13:00 <elliott__> oklopol: log
00:13:38 <oerjan> <oerjan> well i'm sorry but once you are showing symbols it's too late anyhow
00:13:45 <oerjan> <oerjan> *symptoms
00:14:00 <oklopol> is that true?
00:14:32 <oerjan> mostly, i think there are very few who have survived after reaching that stage
00:14:34 <oklopol> it's crazy that there are like a million cool diseases but no one ever gets those
00:14:40 <oklopol> everyone just gets like them flues
00:14:46 <oklopol> which all look the same
00:14:48 <coppro> flus
00:15:02 <oklopol> yeah not a typo
00:15:52 <oklopol> admittedly after changing dem to them i should've removed the e too
00:17:17 <elliott__> i gather Caroline enjoyed her rabies
00:17:43 <elliott__> http://upload.wikimedia.org/wikipedia/commons/c/c1/Rabies_Free_Countries_Sourced_2010.svg rabies-free bitch
00:18:30 <oerjan> http://en.wikipedia.org/wiki/Milwaukee_protocol
00:18:40 <elliott__> get it
00:18:42 <elliott__> rabies-free bitch
00:19:03 <elliott__> oerjan: handling bats leads to rabies? but they're so cute :(
00:19:40 <oklopol> so umm, tomorrow's conference lectures start when i went to sleep yesterday, and end when i woke up
00:19:50 <oklopol> i'll probably learn so much
00:19:51 <oklopol> :D
00:19:58 <elliott__> :D
00:20:28 <oklopol> one of the speakers has a proof of P=NP
00:20:36 <oerjan> you're in a conference?
00:20:43 <oklopol> yeah starts in 6h
00:21:04 <elliott__> <oerjan> [FUMING JEALOUSY]
00:21:20 <oklopol> i'm not really an organizer since i was doing my master's thesis when most of the stuff was happening
00:21:40 <oklopol> although i did referee one paper (it sucked THE ASS :D)
00:21:42 <elliott__> oklopol: so are you a master yet
00:21:51 <oklopol> err yes, ages ago
00:22:01 <elliott__> i don't keep track of the lovelifes of famous bisexuals oklopol
00:22:06 <elliott__> don't expect me to know
00:22:23 <oerjan> hey if it's a P=NP proof it should show up on godel's lost letter any moment /s
00:22:29 <oklopol> why thank you for asking, you can read it here http://tucs.fi/research/publication-view/?pub_id=tSalo11a
00:22:43 <elliott__> oerjan: There were 2 survivors out of 25 patients treated under the first protocol. A further 10 patients have been treated under the revised protocol and there have been a further 2 survivors.[6]
00:22:44 <elliott__> good protocol
00:22:58 <oerjan> most excellent
00:23:01 <elliott__> oklopol: you can write normally??
00:23:03 <elliott__> so weird dude
00:23:12 <oklopol> oerjan: proof goes as follows: nature can be simulated in polynomial time, and bubbles solve an np-complete problem when they form their lattice
00:23:22 <elliott__> oklopol: did you write this in notepad
00:23:25 <elliott__> say yes
00:23:39 <oerjan> i'd hazard a guess the obvious error is in the second part
00:23:47 <elliott__> there is no way you wrote this >:|
00:23:53 <elliott__> it looks nothing like you.
00:24:20 <elliott__> oklopol: lol they gave you a master's for this?
00:24:26 <elliott__> wow they must just be really kind
00:24:28 <elliott__> to a retard idiot
00:24:29 <elliott__> like you
00:24:30 <elliott__> lmao this sucks
00:24:33 <elliott__> am i hurting your feelings yet
00:25:00 <oklopol> elliott__: well i solved at least 3 problems that had been open for more than a decade, this formally qualifies a laudatur.
00:25:20 <elliott__> lol if you say so noob
00:25:20 <oklopol> oerjan: lol thought you meant obvious error in the second paragraph of my abstract :D
00:25:24 <elliott__> lol
00:25:26 <elliott__> did you scramble to check
00:25:30 <elliott__> "NOOOOOOOOOOOOOOOOOOOOOOOOOOOOO"
00:25:35 <elliott__> oklopol: so when are you a phd
00:26:27 <oklopol> but in fact one of my conjectures is complete bullshit, because of a definition being wrong
00:26:32 <oklopol> this was fun to notice the day that was published
00:28:56 <oklopol> elliott__: umm dunno, once i come up with an interesting result
00:29:09 -!- pikhq_ has quit (Ping timeout: 240 seconds).
00:29:23 -!- pikhq has joined.
00:29:23 <oklopol> if i don't, probably in 4 years, if i do, perhaps right after that
00:31:10 <oklopol> http://www.math.utu.fi/projects/uc2011/timetable.html this here conference, more cs than math
00:31:23 -!- FireFly has quit (Quit: swatted to death).
00:32:43 <oklopol> and other random stuff
00:32:54 <elliott__> 15:30–16:00Coffee
00:32:57 <elliott__> go to that one it sounds interesting
00:33:02 <oklopol> i suppose it's basically an esolanging conference
00:33:18 <oklopol> Computing with planar toppling domino arrangements
00:33:18 <oklopol> W. Stevens
00:33:34 <oklopol> A Universal Flying Amorphous Computer
00:33:34 <oklopol> L. Petru, J. Wiedermann
00:34:37 <oerjan> strange name that second author
00:35:14 <oklopol> yeah i guess he had two sex changes
00:35:34 <oklopol> man -> universal amorphous computer -> man
00:36:09 <elliott__> :D
00:36:30 <elliott__> i wanna change my name to A Universal Flying Amorphous Computer now
00:36:56 <oklopol> i have to try to sleep for a bit...
00:36:57 <oklopol> ->
00:37:29 <elliott__> damn where is olsner whne you don't need him
00:37:58 <oerjan> sweding around like swedes do
00:38:25 <elliott__> Proof. Obviously
00:38:25 <elliott__> 2
00:38:25 <elliott__> log 2n = n2 > n log a = log an
00:38:25 <elliott__> for large enough n.
00:38:27 <elliott__> oklopol: obviously your mom
00:40:01 <oklopol> yeah i'm not sure why i added that appendix but i guess there might be readers who don't know basic math but manage on page 30 anyway
00:40:05 <oerjan> i don't think that notation quite got through
00:40:16 <oklopol> yeah umm
00:40:32 <oklopol> lol
00:42:31 <oklopol> right the 2 on the line above should be the exponent of n
00:42:33 <elliott__> oklopol: like me say
00:43:27 <oklopol> argh ->
00:44:13 <oklopol> actually there are very few "obviously" claims where i actually skip the exact proof, in fact i have gone to great lengths to formalize everything so formal that no one in their right mind would ever read it
00:44:36 <elliott__> oklopol: COQ LOL
00:45:10 <oklopol> that would've been cool, but perhaps i'm still a factor of a few hundred away from that in formalness
00:45:32 <oklopol> argh ->
00:45:33 <CakeProphet> I think in technical writing it's a good idea to not skip over details that might seem obvious.
00:45:55 <elliott__> except that makes mathematical proofs unreadable :)
00:46:04 <CakeProphet> well, yes.
00:46:12 <oklopol> you do that in a phd and in an article
00:46:15 <CakeProphet> maybe not with proofs.
00:46:27 <oklopol> you don't do that in a master's thesis or a book
00:46:51 <oklopol> in a book, you don't do it because the reader is assumed not to know the boring details, and is such forced to suffer through them to make sure they understand what's actually happening
00:47:18 <oklopol> in a master's thesis, you don't do it because *the author* is demonstrating they know this stuff
00:47:24 <elliott__> 20:38:27: <ehird`> so now my Underload (...)s are no longer functions
00:47:24 <elliott__> 20:38:29: <ehird`> what should i call them?
00:47:24 <elliott__> 20:38:31: <ehird`> subprograms?
00:47:24 <elliott__> 20:40:58: <oerjan> blimps
00:47:32 <oklopol> argh ->
00:47:38 <elliott__> the coining of the terioerioeioroeioioireoriooioerioermoinologiiiiiiiiiiiiiiiiiiiiojdfg
00:48:17 <oerjan> impressive keyboard
00:48:28 <oklopol> "<CakeProphet> maybe not with proofs." what else is there
00:48:41 <CakeProphet> *formal proofs
00:49:01 <oklopol> i have to ->
00:49:03 <oklopol> ashsthsry'
00:49:45 <CakeProphet> you have to, imply?
00:50:48 <CakeProphet> I often feel that <->
00:56:19 <oerjan> baby, feel that equivalence
00:57:55 <CakeProphet> that's an interesting way to view biconditionality.
00:58:15 <elliott__> who tf calls it biconditionality
00:58:35 <CakeProphet> the concept of being biconditional? I do.
00:58:45 <elliott__> well biconditional i guess but it's the same thing as equivalence :)
01:00:02 <CakeProphet> <-> = =?
01:00:09 <oerjan> it's a congruence relation, if you take its quotient you get a boolean algebra
01:00:10 <CakeProphet> er, insert logical equivalence sign.
01:00:41 <CakeProphet> what is the quotient of a relation?
01:01:17 <oerjan> the quotient of an equivalence relation is what you get if you identify equivalent elements
01:02:03 <oerjan> a congruence relation is an equivalence relation which respect your other operations, such as in this case ->, and, or
01:02:08 <oerjan> *respects
01:02:19 <CakeProphet> so the quotient is the set where the relation is true?
01:02:31 <oerjan> um no
01:02:55 <oerjan> the quotient is a set whose elements are the equivalence classes of the relation
01:03:20 <CakeProphet> ah.
01:05:08 <CakeProphet> so congruence relations are equivalence relations that -- what you just said.
01:05:29 * CakeProphet only learned the basics of relations in his discrete math class.
01:05:41 <CakeProphet> basically what they are.
01:05:47 <oerjan> yes. the significance of that is that you can transfer your other operations to the quotient
01:07:07 <oerjan> the map from an original element to the corresponding quotient element then becomes a homomorphism
01:09:00 <CakeProphet> which map? There's a lot of different kinds of maps. :D
01:09:29 <oerjan> map is here a synonym for function
01:09:32 <CakeProphet> ah okay.
01:10:05 -!- Lymia has joined.
01:10:06 -!- Lymia has quit (Changing host).
01:10:06 -!- Lymia has joined.
01:10:34 <oerjan> Lymia: YOUR IP WAS HANGING OUT
01:11:04 <Lymia> ^_^'
01:11:14 <CakeProphet> oerjan: so when you convert the original element into its equivalence class, it preserves the algebraic structure?
01:11:14 <Lymia> DMZ points at my dad's computer. Who cares.
01:11:21 <oerjan> yep.
01:11:53 <CakeProphet> hmmm, okay. I'll need to learn more about abstract algebra to understand what that entails.
01:12:59 <oerjan> http://en.wikipedia.org/wiki/Isomorphism_theorem#General
01:13:53 <CakeProphet> but an equivalence class is a set. Do you have to change the operations at that point to work with the equivalence class, or do you still use the same definition as before?
01:13:58 <oerjan> in wikipedia's usual even-more-incomprehensible-than-necessary style
01:14:13 <elliott__> its so the editors can prove theyre smart
01:14:39 <CakeProphet> oerjan: yeah the articles are dense, but the specificity helps when you need to know /exactly/ what something means. It's terrible for learning a new subject in advanced math though.
01:15:45 <elliott__> yeah but mathworld is easier to understand most of the time and just as precise, c'mon :P
01:15:57 <oerjan> well let's say A and B are two equivalence classes, and & is one of the operations. Then the congruence requirement means that for every a in A and b in B, a & b ends up in the _same_ class C, so just define A & B = C
01:16:55 <CakeProphet> ah okay, so the operation becomes something else, but still works the same way.
01:17:03 <CakeProphet> I think...
01:17:04 <oerjan> yeah
01:18:02 <CakeProphet> basically with the equivalence class version of the operation you're just applying the operation to all of the elements.
01:18:11 <oerjan> precisely
01:18:11 <CakeProphet> and taking that as your resulting set.
01:18:29 * CakeProphet scratches head.
01:18:29 <elliott__> <Lymia> DMZ points at my dad's computer. Who cares.
01:18:40 <elliott__> be careful, dprk has nukes
01:18:46 <Lymia> :(
01:19:04 <oerjan> well... there's a small caveat in that A & B applied to all elements is not necessarily _all_ of C, i think
01:19:44 <CakeProphet> oerjan: hmmm, well... how is C defined?
01:19:59 <oerjan> C needs to be a whole equivalence class
01:20:06 <CakeProphet> right.
01:21:13 <CakeProphet> so you just get some subset of C. Though I have no idea how you would know what C is without more information..
01:21:41 <oerjan> well you just take anything which is equivalent to something (and thus everything) in C
01:21:52 <oerjan> and that must still be in C
01:22:02 <CakeProphet> ah okay.
01:22:38 <CakeProphet> that's interesting. You can take any subset of an equivalence class, and find every member of that equivalence class in a given set.
01:22:54 <CakeProphet> well
01:22:57 <CakeProphet> not any subset. :P
01:23:01 <CakeProphet> there is one that you can't use.
01:23:20 <oerjan> you don't say.
01:24:31 <CakeProphet> my discrete math teacher was incorrect. He seemed to use equivalence class as a synonym for equivalence relation.
01:25:06 <oerjan> oops
01:25:15 <CakeProphet> one of our test questions was to determine whether a given relation was an equivalence class by determining that it was transitive, symmetric, and reflexive.
01:25:34 <CakeProphet> and he's like, one of the better professors at my university. That's saying a lot.
01:26:18 <oerjan> huh
01:27:59 <oerjan> the US seems to come on top if you compare the _best_ universities. i wonder how it'd do if you compared the _median_
01:28:07 <elliott__> probably bottom :P
01:28:10 <CakeProphet> probably not so great.
01:28:51 <elliott__> oerjan: the funnest would be comparing the worst :D
01:28:55 <CakeProphet> I go to a pretty small university. Not saying that being a small university is bad, but in this case it's true.
01:28:56 <elliott__> or the ... mean
01:29:06 <CakeProphet> ..the mode? :P
01:29:10 <CakeProphet> THE MOST COMMON UNIVERSITY.
01:29:10 <elliott__> yes.
01:29:23 <elliott__> THE RANGE
01:29:26 <elliott__> this makes sense
01:29:31 <oerjan> although i guess this may be heavily skewed by different countries having different cutoffs for the quality needed for an institution to call itself a university
01:29:40 <CakeProphet> the modal university would be the one with the most satellite campuses I think.
01:29:43 <coppro> CakeProphet: An equivalence relation over a set gives rise to a partition of that set into equivalence classes under that relation
01:29:51 <elliott__> coppro: so does your mom
01:29:55 <elliott__> OHHH SNAPE
01:30:10 <CakeProphet> coppro: yep, I just read about that on Wikipedia actually. :D
01:30:17 <CakeProphet> and.. inferred it.
01:30:25 <CakeProphet> from what oerjan told me.
01:30:40 <CakeProphet> using my MIIIND.
01:30:45 <coppro> lies
01:30:52 <coppro> all evidence points to you not having one
01:30:59 <CakeProphet> :( nonsense.
01:31:05 <coppro> elliott__: goddamn executive meddling in doctor who
01:31:29 <elliott__> coppro: I stopped watching because Moffat turned from genius to incompetent after taking the reins
01:31:48 <elliott__> or are you referring to something other than new episodes
01:31:53 <CakeProphet> !lperl I'm trying to find a way to use *{"THIS"}* thing I made, but alas I cannot think of anything.
01:31:53 <EgoBot> ​I'm trying to find a way to use THIS thing I made, but alas I cannot think of anything.
01:32:07 <Patashu> !show lperl
01:32:08 <EgoBot> ​perl while(<>){s/ (?<!\\) \*\{ (.*?) (?!\\) \}\* /$1/gxee;print}
01:32:23 <Patashu> so wait it does what?
01:32:35 <elliott__> evals perl code in {}
01:32:36 <CakeProphet> evaluates Perl between *{}*'s
01:32:37 <CakeProphet> yep
01:32:44 <elliott__> {{}} is nicer
01:32:51 <CakeProphet> originally it was {{ but that would make balancing issues arise
01:33:04 <CakeProphet> unless I, you know, accounted for that.
01:33:10 <coppro> elliott__: I'm referring to the new episodes
01:33:17 <coppro> elliott__: at what point did you stop watching?
01:33:28 <CakeProphet> while(<>){s/ (?<!\\) \*\{ (.*?) (?!\\) \}\* /$1/gxee;print}
01:33:30 <CakeProphet> er...
01:33:37 <CakeProphet> DON'T COPY NEWLINE
01:34:12 <elliott__> coppro: I watched a few episodes of the new series, then didn't for reasons of bad time management rather than disinterest (although I didn't think they were very good episodes), then I got friends whining at me about how terrible the writing is :)
01:34:27 <elliott__> A constant stream of meaningless myth arcs is plot, right?
01:34:29 <Lymia> !lperl blahblah*{print "You suck"}*blahblah
01:34:29 <EgoBot> ​You suckblahblah1blahblah
01:34:41 <Lymia> !lperl blahblah*{"You suck"}*blahblah
01:34:42 <EgoBot> ​blahblahYou suckblahblah
01:35:59 <CakeProphet> !delinterp lperl
01:36:00 <EgoBot> ​Interpreter lperl deleted.
01:36:01 <CakeProphet> !addinterp lperl perl while(<>){s/ (?<!\\) \{\{ (.*?) \}\} (?!\})/$1/gxee;print}
01:36:01 <EgoBot> ​Interpreter lperl installed.
01:36:08 <CakeProphet> once again negative look-around saves the day
01:36:08 <coppro> elliott__: kay. the first of Matt Smith's seasons was pretty good I thought; the second is going downhill but I think it's due to trying to stuff the story into the time available before the midseason cliffhanger. I hope it picks up in August
01:36:24 <elliott__> coppro: Also River Song is the worst character ever invented.
01:37:03 <coppro> elliott__: Why do you say that?
01:37:06 <CakeProphet> !lperl This is a {{@{[qw*MOTHERFUCKIN' TEST DAWG*]}}}.
01:37:06 <EgoBot> ​This is a 3.
01:37:36 <CakeProphet> yes, it's a 3.
01:37:47 <elliott__> coppro: She's a blatant Mary Sue whose entire basis is "OOH, MYSTERIOUS FUTURE COMPANION PERSON, BE VERY MYSTERISED"
01:38:34 <CakeProphet> !lperl also a \{{test}}
01:38:34 <EgoBot> ​also a \{{test}}
01:38:46 <elliott__> !lperl also a \{{{x
01:38:46 <EgoBot> ​also a \{{{x
01:38:48 <elliott__> !lperl also a \{{{x}}
01:38:48 <EgoBot> ​also a \{x
01:38:52 <elliott__> fail
01:38:59 <oerjan> fianna fail
01:39:03 <CakeProphet> ...not really. :P
01:39:07 <elliott__> yes it is
01:39:10 <elliott__> \{{ <-- escaped
01:39:15 <elliott__> {x <-- not the start of a code block
01:39:19 <coppro> elliott__: Kay, that might be how she was introduced. She gets developed a lot more later on. Definitely got some serious Mary Sue going on though.
01:39:43 <elliott__> coppro: I'm aware she's been developed a small amount, but that really doesn't justify the Mary Sueness
01:39:43 <CakeProphet> elliott__: NOPE. TOO HACKISH DOESN'T WORK THAT WAY.
01:39:56 <elliott__> coppro: Also this "SORT OF A TIME LORD" thing makes no fucking sense.
01:39:57 <CakeProphet> it's {\{{x}}
01:40:25 -!- calamari has joined.
01:41:01 <CakeProphet> though don't ask me why you would ever escape the {{
01:41:23 <coppro> elliott__: they actually just explained that; whether you like the explanation or not is up to you. To me, it's not too far-fetched compared with the rest of the series.
01:42:19 <elliott__> coppro: erm, they just revealed /and/ explained it simultaneously
01:43:09 <elliott__> coppro: but the explanation isn't an explanation, it's just "banging in the tardis makes time lordy things"
01:43:53 <elliott__> actually i have to wonder why time lords are still practically extinct, you'd think the doctor would just seduce someone and take them to the tardis, that should be enough to get some full time lord dna going
01:43:55 -!- variable has quit (Remote host closed the connection).
01:43:56 <coppro> elliott__: It was due to exposure to the Vortex; the same basic thing that made the Time Lords what they are now.
01:44:22 <coppro> The Doctor clearly had no idea it could work that way until now
01:44:51 <elliott__> Sweet, eagerly awaiting an episode of gratuitous sex scenes
01:45:01 <elliott__> I MUST DO IT... FOR THE TIMELORDS [sax]
01:45:09 <coppro> lol
01:46:18 <CakeProphet> !delinterp lperl
01:46:18 <EgoBot> ​Interpreter lperl deleted.
01:46:19 <CakeProphet> !addinterp lperl perl while(<>){s/ (?<!\\) \{\{ (.*?) \}\} (?!\})/$1/gxee;s/\\{/{/g;print}
01:46:20 <EgoBot> ​Interpreter lperl installed.
01:46:29 <CakeProphet> !lperl a \{{test}}
01:46:29 <EgoBot> ​a {{test}}
01:46:31 <elliott__> CakeProphet: you realise {{"{{"}} works to escape
01:46:48 <CakeProphet> ...no?
01:46:49 <elliott__> you could even define two subs that return "{{" and "}}" with short names
01:46:52 <elliott__> CakeProphet: yes?
01:46:57 <CakeProphet> oh, right.
01:47:09 <CakeProphet> NOPE. too late.
01:47:17 <elliott__> !delinterp lperl
01:47:17 <EgoBot> ​Interpreter lperl deleted.
01:47:23 <elliott__> wait hm
01:47:26 <elliott__> i'm too lazy to fix it
01:47:28 <elliott__> !addinterp lperl perl while(<>){s/ (?<!\\) \{\{ (.*?) \}\} (?!\})/$1/gxee;s/\\{/{/g;print}
01:47:29 <EgoBot> ​Interpreter lperl installed.
01:47:29 <CakeProphet> rofl.
01:47:54 <CakeProphet> I was going to add escaping of \'s, but that was far more \\'s than I was comfortable with.
01:47:58 -!- Vorpal has quit (Ping timeout: 250 seconds).
01:48:05 <CakeProphet> I cherish Perl for its readability.
01:48:41 <CakeProphet> !delinterp lperl
01:48:41 <EgoBot> ​Interpreter lperl deleted.
01:49:17 <CakeProphet> !addinterp lperl perl while(<>){s/ \{\{ (.*?) \}\} (?!\})/$1/gxee;print}
01:49:17 <EgoBot> ​Interpreter lperl installed.
01:51:13 <CakeProphet> also, Perl pretty much dominates the golfing of this one.
01:51:48 <CakeProphet> the golfed form would s/while/for/ and take out the /x option and whitespace
01:52:06 <elliott__> coppro: also i don't like the new theme :D
01:52:15 <coppro> elliott__: I agree with you there!
01:52:18 -!- comex has quit (Quit: ZNC - http://znc.sourceforge.net).
01:52:29 <coppro> but the "The Doctor is being awesome now" music is good
01:52:41 <elliott__> they should have just picked one off http://whomix.trilete.net/ :D
01:53:16 <elliott__> that huge torrent is now three percent completed, i should note
01:55:20 <CakeProphet> !delinterp lperl
01:55:20 <EgoBot> ​Interpreter lperl deleted.
01:55:23 <CakeProphet> !addinterp lperl perl $_=<>;s/{{(.*?)}}(?!})/$1/gee;print
01:55:24 <EgoBot> ​Interpreter lperl installed.
01:55:33 <CakeProphet> !lperl {{'test'}}
01:55:33 <EgoBot> ​test
01:55:38 -!- sebbu2 has joined.
01:55:38 <CakeProphet> golfed. :D
01:55:47 <elliott__> ok, I'm seriously ill
01:55:52 <elliott__> CakeProphet: what's with "ee"
01:55:54 -!- variable has joined.
01:55:56 <elliott__> i should go to bed now
01:55:58 <elliott__> and, also, i will
01:56:21 <CakeProphet> elliott__: e evaluates the replacement string as Perl code. ee evaluates the replacement string as Perl code and then evaluates that.
01:56:49 <elliott__> ouch
01:56:53 <elliott__> can it go to eee?
01:57:00 <CakeProphet> uh... I don't actually know.
01:57:03 <elliott__> MWAHAHAHA
01:57:05 <CakeProphet> I don't think so.
01:57:09 <CakeProphet> at least it's not documented.
01:58:33 -!- sebbu has quit (Ping timeout: 240 seconds).
01:59:57 <CakeProphet> `run echo '$_=<>;s/{{(.*?)}}(?!})/$1/gee;print' | wc -c
01:59:59 <HackEgo> ​36
02:00:02 <CakeProphet> awww yeah.
02:01:13 <elliott__> ok
02:01:14 <elliott__> sleep
02:01:15 <elliott__> really
02:01:15 <elliott__> sleep
02:01:16 <elliott__> sleep
02:01:16 <elliott__> sleep
02:01:21 <CakeProphet> DO IT
02:01:26 <elliott__> SLEEP
02:01:32 -!- elliott__ has quit (Quit: FUUUUUUUUUUUUUUUUUUUCK YOUUUUUUUUUUUUUUUUUU).
02:01:57 <oerjan> !perl $_ = "hm..."; s/hm/"'1+2'"/e; print;
02:01:57 <EgoBot> ​'1+2'...
02:02:03 <oerjan> !perl $_ = "hm..."; s/hm/"'1+2'"/ee; print;
02:02:03 <EgoBot> ​1+2...
02:02:07 <oerjan> !perl $_ = "hm..."; s/hm/"'1+2'"/eee; print;
02:02:07 <EgoBot> ​3...
02:02:10 <CakeProphet> hahaha
02:02:11 <CakeProphet> nice
02:02:19 <CakeProphet> you can stack an arbitrary number of e's
02:03:26 <CakeProphet> !perl $_ = "hm..."; s/hm/"'q{1+2}'"/eeee; print;
02:03:26 <EgoBot> ​3...
02:03:42 <CakeProphet> !perl $_ = "hm..."; s/hm/"'q{q[q<1+2>]}'"/eeeeee; print;
02:03:43 <EgoBot> ​3...
02:04:03 <oerjan> !perl $_ = "hm..."; s/hm/"'q{q[q<1+2>]}'"/eeeee; print;
02:04:03 <EgoBot> ​1+2...
02:04:14 <Lymia> !perl $_ = "hm..."; s/hm/"'q{1+2}'"/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee; print;
02:04:15 <EgoBot> ​3...
02:04:37 <oerjan> at this point we need w and h flags
02:04:42 <CakeProphet> conjecture: there can be an arbitrary number of e options.
02:05:10 <Lymia> !perl $_ = "hm..."; s/hm/"'q{print 'perverse'}'"/e; print;
02:05:10 <EgoBot> ​'q{print 'perverse'}'...
02:05:14 <Lymia> !perl $_ = "hm..."; s/hm/"'q{print 'perverse'}'"/ee; print;
02:05:15 <EgoBot> ​...
02:05:35 <CakeProphet> hmm, yeah I don't know where standard input is going.
02:05:35 -!- calamari has left ("Leaving").
02:05:48 <CakeProphet> probably to.... standard input
02:05:53 <oerjan> Lymia: bad ' matching i think
02:05:55 <CakeProphet> er
02:05:56 <CakeProphet> output
02:06:00 <CakeProphet> oh, that too
02:06:02 <CakeProphet> use more q's
02:06:29 <oerjan> CakeProphet: in lperl previously the explicit print got first
02:06:32 <Lymia> !perl $_ = "hm..."; s/hm/"'q{q{print 'perverse'}}'"/e; print;
02:06:33 <EgoBot> ​'q{q{print 'perverse'}}'...
02:06:36 <Lymia> !perl $_ = "hm..."; s/hm/"'q{q{print 'perverse'}}'"/ee; print;
02:06:37 <EgoBot> ​...
02:06:37 <CakeProphet> oerjan: yeah
02:06:42 <Lymia> So what is this?
02:06:50 <Lymia> An extra way to do (extra perverse) conditionals?
02:06:54 <oerjan> Lymia: you cannot have nested ''
02:07:09 <oerjan> i don't recall if it's even possible to escape them
02:07:13 <CakeProphet> it may have a problem with the nested {}'s as well but I'm not sure.
02:07:25 <CakeProphet> !perl '\''
02:07:29 <CakeProphet> !perl print '\''
02:07:29 <EgoBot> ​'
02:07:58 <CakeProphet> in any case you can use pretty much anything as a delimeter with the q construct.
02:07:58 <Lymia> !perl $_ = "hm..."; s/hm/"'q{q{print \'perverse\'}}'"/ee; print;
02:07:58 <EgoBot> ​...
02:08:25 <CakeProphet> !perl print q#possibly even pound sign?#
02:08:25 <EgoBot> ​possibly even pound sign?
02:08:32 <oerjan> Lymia: i think the \ get stripped already at the " stage
02:08:44 <CakeProphet> Lymia: just use more q's :P
02:08:49 <Lymia> !perl $_ = "hm..."; s/hm/"'q{q{print \\'perverse\\'}}'"/ee; print;
02:08:50 <EgoBot> ​q{q{print 'perverse'}}...
02:08:57 <Lymia> !perl $_ = "hm..."; s/hm/"'q{q{q{print \\'perverse\\'}}}'"/ee; print;
02:08:58 <EgoBot> ​q{q{q{print 'perverse'}}}...
02:09:00 <Lymia> !perl $_ = "hm..."; s/hm/"'q{q{q{print \\'perverse\\'}}}'"/eee; print;
02:09:00 <EgoBot> ​q{q{print 'perverse'}}...
02:09:03 <Lymia> !perl $_ = "hm..."; s/hm/"'q{q{q{print \\'perverse\\'}}}'"/eeee; print;
02:09:03 <EgoBot> ​q{print 'perverse'}...
02:09:07 <Lymia> !perl $_ = "hm..."; s/hm/"'q{q{q{print \\'perverse\\'}}}'"/eeeee; print;
02:09:07 <EgoBot> ​print 'perverse'...
02:09:11 <Lymia> !perl $_ = "hm..."; s/hm/"'q{q{q{print \\'perverse\\'}}}'"/eeeeee; print;
02:09:12 <EgoBot> ​perverse1...
02:09:18 <CakeProphet> SUCCESS
02:09:22 <Lymia> Perl is inane.
02:09:22 <CakeProphet> as indicated by the 1
02:09:41 <oerjan> Lymia: well the {}'s nested pretty well...
02:09:56 <Lymia> !perl $_ = "hm..."; s/hm/"'q{q{q{print \\'perverse\\'}}}'"/e; print;
02:09:57 <EgoBot> ​'q{q{q{print \'perverse\'}}}'...
02:09:59 <Lymia> !perl $_ = "hm..."; s/hm/"'q{q{q{print \\'perverse\\'}}}'"/ee; print;
02:09:59 <EgoBot> ​q{q{q{print 'perverse'}}}...
02:10:05 <Lymia> !perl $_ = "hm..."; s/hm/"'q{q{q{print \\'perverse\\'}}}'"/eee; print;
02:10:06 <EgoBot> ​q{q{print 'perverse'}}...
02:10:33 <CakeProphet> !perl q{q[q<q(q*q
02:10:33 <EgoBot> ​Can't find string terminator "}" anywhere before EOF at /tmp/input.17755 line 1.
02:10:39 <CakeProphet> ..
02:10:43 <CakeProphet> oops I hit enter. :P
02:10:57 <oerjan> suuuure...
02:11:46 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
02:12:06 -!- rodgort has joined.
02:12:21 <coppro> elliott__: I estimate 8% for me. Incidentally, do you know what the "the Doctor is being awesome" music is called?
02:12:30 <oerjan> hm "" is just an abbreviation for q"" iirc
02:12:30 <CakeProphet> !perl $_=q{q[q<q(q!q@q#q$q%q^q&q*muhahahahahahaha*&^%$#@!)>]};$_=eval for 1..12;print
02:12:30 <EgoBot> ​q[q<q(q!q@q#q$q%q^q&q*muhahahahahahaha*&^%$#@!)>]
02:12:44 <oerjan> and '' for q'' which is a special case
02:12:53 <CakeProphet> oerjan: "" is qq
02:13:06 <oerjan> oh hm
02:13:19 <CakeProphet> q is '', and yes those forms are abbreviations of the more general form.
02:13:23 <CakeProphet> whatever that even means.
02:14:13 <oerjan> well but i also recall that using '' as delimiters in some of the other quote-like constructs turns off interpolation
02:14:45 <CakeProphet> yeah it does. like in m and s
02:14:54 <oerjan> !perl $_ = "test"; s'test'$1'; print;
02:14:55 <EgoBot> ​$1
02:15:20 <Lymia> !perl $_=q{q[q<q(q!q@q#q$q%q^q&q*muhahahahahahaha*&^%$#@!)>]};$_=eval for 1..120;print
02:15:20 <EgoBot> ​q[q<q(q!q@q#q$q%q^q&q*muhahahahahahaha*&^%$#@!)>]
02:15:31 <CakeProphet> yeah I don't know why that's not working.
02:16:04 <Lymia> !perl $_="q{q[q<q(q!q@q#q$q%q^q&q*muhahahahahahaha*&^%$#@!)>]}";$_=eval for 1..120;print
02:16:05 <EgoBot> ​$# is no longer supported at /tmp/input.18287 line 1.
02:16:20 <CakeProphet> ...heh
02:16:21 <Lymia> !perl $_="q{q[q<q(q!q@q~q$q%q^q&q*muhahahahahahaha*&^%$~@!)>]}";$_=eval for 1..120;print
02:16:22 <EgoBot> ​q{q[q<q(q!q~q%q^q&q*muhahahahahahaha*&^%STDOUT@!)>]}
02:16:26 <Lymia> :[
02:16:31 <CakeProphet> so q$ might do weird things.
02:16:32 <oerjan> CakeProphet: erm sure you didn't get other lines in DCC?
02:16:43 <CakeProphet> oerjan: I did not.
02:16:46 <CakeProphet> it only prints once.
02:16:58 <CakeProphet> the for is attached to the $_=eval
02:17:16 <oerjan> hm
02:17:24 <CakeProphet> !perl print qq'$0'
02:17:25 <EgoBot> ​/tmp/input.18472
02:17:27 <oerjan> !perl print "a" for 1..10;
02:17:27 <EgoBot> ​aaaaaaaaaa
02:17:43 <CakeProphet> so I'm guessing the return value of eval is bad.
02:18:03 <CakeProphet> !perl $_="q{q[q<q(q!q@q~q$q%q^q&q*muhahahahahahaha*&^%$~@!)>]}";eval for 1..12;print
02:18:03 <EgoBot> ​q{q[q<q(q!q~q%q^q&q*muhahahahahahaha*&^%STDOUT@!)>]}
02:18:20 <CakeProphet> !perl $_="q{q[q<q(q!q@q~q%q^q&q*muhahahahahahaha*&^%~@!)>]}";eval for 1..11;print
02:18:21 <EgoBot> ​q{q[q<q(q!q~q%q^q&q*muhahahahahahaha*&^%~@!)>]}
02:18:38 <CakeProphet> yeah I'm stumped. :P
02:18:51 <CakeProphet> !perl $_="q{q[q<q(q!q@q~q%q^q&q*muhahahahahahaha*&^%~@!)>]}";$_=eval for 1..11;print
02:18:51 <EgoBot> ​q{q[q<q(q!q~q%q^q&q*muhahahahahahaha*&^%~@!)>]}
02:19:06 <CakeProphet> it might be a bad idea to use all of those symbols together at once like that...
02:19:28 <CakeProphet> because of special variables.
02:20:27 <oerjan> !perl $_="q{q[q<q(q!q@q~q%q^q&q*muhahahahahahaha*&^%~@!)>]}"; print eval;
02:20:28 <EgoBot> ​q[q<q(q!q~q%q^q&q*muhahahahahahaha*&^%~@!)>]
02:20:43 <CakeProphet> !perl $_="q{q[q<q(q!q@q~q%q^q&q*muhahahahahahaha*&^%~@!)>]}";($_=eval) for 1..11;print
02:20:44 <EgoBot> ​q{q[q<q(q!q~q%q^q&q*muhahahahahahaha*&^%~@!)>]}
02:20:59 <CakeProphet> ...yeah. no fucking idea.
02:21:19 <oerjan> erm
02:21:21 <CakeProphet> my guess is that it has something to do with horrid abuve of quote-like operators.
02:21:39 <CakeProphet> *abuse
02:21:51 <oerjan> what variable is the for 1..11 construct using? >:)
02:21:59 <CakeProphet> ...
02:22:08 <CakeProphet> looool
02:22:21 <oerjan> except
02:22:22 <CakeProphet> why $_ of course. Why, what is the problem?
02:22:37 <oerjan> oh and it's made local i guess
02:22:43 <CakeProphet> yes
02:22:45 <oerjan> so it's reinstated after the loop
02:23:01 <CakeProphet> yes, if $_ were global terrible things would happen.
02:23:08 <CakeProphet> instead it's a weird pseudo-global thing.
02:23:59 <CakeProphet> !perl $s="q{q[q<q(q!q@q~q%q^q&q*muhahahahahahaha*&^%~@!)>]}";$s=eval$s for 1..11;print$s
02:23:59 <EgoBot> ​Array found where operator expected at (eval 6) line 1, at end of line
02:24:26 <CakeProphet> now we're getting into the "abuse of quote-like operator" errors.
02:24:38 <CakeProphet> it's parsing the @q as an array variable
02:24:45 <Patashu> lol wtf are you guys doing
02:24:53 <CakeProphet> Patashu: fun with Perl.
02:26:02 <oerjan> CakeProphet: leave off the outer "
02:26:25 <CakeProphet> ....ah
02:26:28 <CakeProphet> or change it to ''
02:26:41 <CakeProphet> !perl $s='q{q[q<q(q!qq~q%q^q&q*muhahahahahahaha*&^%~@!)>]}';$s=eval$s for 1..11;print$s
02:26:42 <EgoBot> ​Array found where operator expected at (eval 6) line 1, at end of line
02:27:02 <oerjan> ya got a qq in there
02:27:07 <CakeProphet> ...oh
02:27:21 <CakeProphet> !perl $s='q{q[q<q(q!q@q~q%q^q&q*muhahahahahahaha*&^%~@!)>]}';$s=eval$s for 1..11;print$s
02:27:22 <EgoBot> ​muhahahahahahaha
02:27:48 <CakeProphet> we got the evil genius at the delicious quoted core.
02:28:32 <oerjan> sealed evil in a can
02:29:22 <CakeProphet> !perl open 0; print <0>
02:29:22 <EgoBot> ​open 0; print <0>
02:29:33 <CakeProphet> such a strange thing..
02:37:27 <CakeProphet> open VARIABLE, EXPR. If you don't specify EXPR, then the scalar variable with the same name as the filehandle name is evaluated and used as the filename.
02:37:34 <CakeProphet> 0 is a valid filehandle name, apparently.
02:37:42 <CakeProphet> and $0 is the program name.
02:40:05 <Patashu> you guys know of any esoteric logic gates?
02:40:09 <Patashu> or esoteric circuitry
02:40:41 <oerjan> reversible gates are cool
02:41:18 <oerjan> (and theoretically, cool physically as well)
02:42:53 <Patashu> reversible computing, huh...
02:44:00 <CakeProphet> esoteric circuitry? not really..
02:44:14 <CakeProphet> a quine circuit would be interesting.
02:44:25 <CakeProphet> ..but I don't even know what that means.
02:44:39 <CakeProphet> outputs its schematic as a bitmap?
02:45:35 <CakeProphet> sounds impossible.
02:46:23 <oerjan> sounds obviously possible, actually...
02:46:35 <Patashu> you just need to define proper encoding schemes
02:46:46 <oerjan> standard quining techniques applied to hardware
02:47:48 <CakeProphet> postscript, for printing. :)
02:47:49 <oerjan> the data part would be the memory
02:48:24 <CakeProphet> so I recently discovered this: http://perldoc.perl.org/functions/tie.html
02:48:40 <CakeProphet> and I think it would be a good way to explore some unorthodox variable assignment semantics.
02:49:35 <CakeProphet> but in general it just looks useful. You could easily write a package that automatically breadcrumbs a variable for you each time it's reassigned.
02:55:03 <coppro> this is so very very awesome: (elliott you better visit this link when you read the logs) http://www.youtube.com/watch?v=sjtzib0G9Rs
02:57:31 <CakeProphet> awww yeah musical tesla coils.
02:58:49 <coppro> those things are awesome
02:58:50 <coppro> and loud
02:58:51 <coppro> and awesome
02:59:14 <CakeProphet> http://www.youtube.com/watch?v=B1O2jcfOylU
02:59:23 <CakeProphet> may have already seen this one. it's the mario bros. theme song
02:59:36 <coppro> yeah
02:59:44 <coppro> except that one doesn't have Adam Savage dancing around
02:59:54 <coppro> also I haven't heard them play Mario Bros
03:01:13 -!- augur has quit (Remote host closed the connection).
03:03:43 <CakeProphet> also this: http://www.youtube.com/watch?v=xD_HQ4B0Fcw
03:06:27 <CakeProphet> this Tesla was an awesome dude.
03:06:44 <CakeProphet> er... the "this" is an artifact from something else I was going to type.
03:53:36 -!- Slereah has joined.
03:53:37 -!- Slereah_ has quit (Ping timeout: 240 seconds).
03:59:12 <CakeProphet> future elliott: Good post-400 xkcd: http://xkcd.com/602/
04:03:10 -!- Slereah_ has joined.
04:04:33 -!- Slereah has quit (Ping timeout: 260 seconds).
04:06:51 -!- Slereah has joined.
04:07:36 -!- Slereah_ has quit (Ping timeout: 260 seconds).
04:14:18 -!- pikhq has quit (Ping timeout: 240 seconds).
04:14:27 -!- pikhq has joined.
04:18:51 -!- Slereah has quit (Read error: Operation timed out).
04:19:42 -!- Slereah has joined.
04:21:05 -!- oerjan has quit (Quit: leaving).
04:26:08 -!- Slereah has quit (Ping timeout: 250 seconds).
04:26:15 -!- Slereah has joined.
04:34:52 -!- Slereah_ has joined.
04:35:52 -!- Slereah has quit (Ping timeout: 248 seconds).
04:39:43 -!- variable has quit (Quit: /dev/io failed).
04:46:55 <CakeProphet> I love entering random IP addresses into tracepath
04:50:24 -!- Slereah_ has quit (Ping timeout: 250 seconds).
04:51:50 -!- Slereah has joined.
04:55:52 -!- Slereah_ has joined.
04:56:56 -!- Slereah has quit (Ping timeout: 240 seconds).
05:00:51 -!- variable has joined.
05:34:25 <oklopol> i slept lolol !
05:37:21 <oklopol> "<CakeProphet> basically what they are." <<< how many lectures did 'a relation between X and Y is a subset of XxY' take?
05:41:00 <oklopol> "<CakeProphet> oerjan: so when you convert the original element into its equivalence class, it preserves the algebraic structure?" <<< note that it's the 'homomorphism' type of 'preserve' and not the isomorphism type -- you might map multiple things to the same element, operations just do the same thing on both sides
05:44:29 -!- aloril has quit (Ping timeout: 250 seconds).
05:52:17 <oklopol> Briefly, if A is an algebra, a congruence on A is an equivalence relation F on A which is a subalgebra when considered as a subset of (the latter with the coordinate-wise operation structure).
05:52:20 <oklopol> haha
05:52:38 <oklopol> should be subset of A^2
05:53:19 <oklopol> but lol that's a great definition lol :D
05:55:16 <oklopol> well, i guess wp is an encyclopedia and not math for kids with alfred the bunny but anyway could at least give a list of equivalent definitions instead
05:57:04 -!- aloril has joined.
06:02:30 -!- augur has joined.
06:08:28 <Patashu> sbahj related http://www.youtube.com/watch?v=u7YfVmY9Qjs
06:17:37 <CakeProphet> oklopol: that was only one lecture. There was only two or so lectures on relations; it was a very small section of the course.
06:18:20 <CakeProphet> the largest sections were spent on combinatorics and induction proofs.
06:26:08 <CakeProphet> the sections were: a small section on boolean algebra and basic logical statements (wooo), a large section on proofs by definition/negation/contraposition covering things like divisibility and primality, a large section on induction proofs, a large section on combinatorics, a lecture on set theory, a lecture on relations, and then the last section was a mashup of FSA, regular languages/expressions, and graph theory.
06:27:27 <CakeProphet> all-in-all the most interesting math course I've taken so far. I plan on taking "Introduction to Advanced Mathematics" and then Topology later, preferably with the same professor if I don't transfer.
06:30:09 -!- Patashu has quit (Ping timeout: 240 seconds).
06:30:09 <CakeProphet> My other options are Calc 3, linear algebra, or real analysis. bleh, no thanks. Number theory is another option that would be interesting as well.
06:31:40 <CakeProphet> Linear algebra could be useful in programming, I guess...
06:32:36 <CakeProphet> but I want to learn about some motherfucking spaces.
06:33:30 <coppro> spaces of what sort?
06:33:46 <coppro> also what school is this?
06:35:19 <CakeProphet> coppro: the topological variety.
06:36:09 -!- Sgeo has quit (Ping timeout: 250 seconds).
06:36:10 <CakeProphet> http://en.wikipedia.org/wiki/SPSU
06:36:15 <CakeProphet> coppro: one you've never heard of
06:38:02 <CakeProphet> basically it used to be a satellite campus of Georgia Tech but is now a separate university.
06:39:23 <CakeProphet> also parts of that article read like a website for the university..
06:47:49 <CakeProphet> I plan on transferring to Tech in my fourth year so that I can get all the good reputation while avoiding most of the obscene tuition costs.
06:52:21 <coppro> hah
06:52:29 <coppro> you americans and your tuition
06:53:10 <CakeProphet> yes, and our debt.
06:53:17 <CakeProphet> and our debt to pay for tuition...
06:53:37 <CakeProphet> why? Because people flip the fuck out if you raise taxes.
06:53:57 <coppro> ayup
06:54:07 <coppro> and don't understand economics
06:54:08 <coppro> at all
06:54:10 <CakeProphet> ...not at all
06:54:20 <coppro> see: any government that is not allowed to run a deficit
06:54:21 <CakeProphet> dude the tea party movement is the most retarded thing I've ever seen in American politics.
06:54:37 <coppro> not allowing a government to run a deficit is suicide
06:54:47 <coppro> like, your country is doomed
06:54:55 <CakeProphet> indeed
06:55:08 <CakeProphet> the states have way too much deficit though.
06:56:01 <coppro> now, structural deficits suck balls
06:56:19 <CakeProphet> coppro: from where do you hail?
06:56:24 <coppro> CakeProphet: Canadia
06:56:48 <coppro> currently living in California working at the country^Wcompany that will someday RULE THE WORLD^W^W^W do stuff
06:56:51 <CakeProphet> we have a very pervasive structural deficit. I believe for every $2 we generate we spend 5. roughly
06:57:01 <coppro> yeah
06:57:09 <coppro> structural deficit definitely shouldn't happen
06:57:16 <coppro> but outlawing deficit altogether is not the solution
06:57:24 <coppro> because otherwise the government can't help a struggling economy
06:57:54 <coppro> also dumb is the GODDAMN EVERYONE, not just Americans, who think that when the economy is doing well, taxes should go down because the government doesn't need the money
06:58:02 <CakeProphet> honestly I think raising taxes is the solution to our deficit. Perhaps even economic problems.
06:58:34 <CakeProphet> cutting programs is not because any bill to cut programs will get fucked up in congress.
06:58:49 <CakeProphet> and because no one can fucking decide what to cut.
06:59:09 <coppro> well problem #1 is you're in a whole
06:59:12 <coppro> *hole
06:59:25 <coppro> you effectively have to cut taxes
06:59:29 <coppro> or borrow a shitton of money
06:59:38 <CakeProphet> already got that covered...
06:59:43 <coppro> err not cut taxes
06:59:45 <coppro> cut spending
07:00:04 <CakeProphet> raising taxes is an equivalent solution really.
07:00:06 <coppro> because your government can't safely raise taxes; the economy is still fragile
07:00:10 <coppro> it's not
07:00:11 <CakeProphet> ...true.
07:00:22 <coppro> this is the real problem
07:01:08 <coppro> once the economy picks up, they can and should raise taxes
07:01:12 <coppro> a lot
07:01:18 <coppro> but that could be a long time
07:01:21 <CakeProphet> however, a lot of the extra revenue could be spent on economic stimulus programs which, while at the same time alleviated a structural problem of not enough revenue.
07:01:23 <coppro> they should also continue to cut spending
07:01:38 <coppro> military in particular
07:01:40 <CakeProphet> economic stimulus programs such as finding a way to eliminate our trade deficit... which is another structural problem.
07:01:48 <CakeProphet> coppro: yes.
07:01:53 <CakeProphet> military spending is ridiculous.
07:02:44 <coppro> another common misconception is that government debt is bad
07:03:48 <coppro> government debt can be friggin' awesome when you've got bonds that pay out at less than inflation
07:04:08 <coppro> although too much of it will bite you if inflation drops
07:04:27 <CakeProphet> but generally our legislative branch is too busy focusing on partisan bullshit to be effective at creating economic recovery programs, so..
07:04:38 <coppro> yup
07:05:16 -!- Slereah_ has quit (Ping timeout: 255 seconds).
07:05:26 <coppro> now of course there is the 'print money' approach
07:05:37 <coppro> but the US economy is dead if that happens
07:05:48 <coppro> I just hope I'm out of the country before
07:05:51 -!- mtve has quit (Ping timeout: 252 seconds).
07:06:00 <CakeProphet> yeah, I don't even think printing more money is even a valid consideration.
07:06:22 -!- Slereah has joined.
07:07:19 <coppro> hyperinflation whee
07:07:32 <coppro> of course I don't think the US government is quite as stupid as Zimbabwe
07:07:33 <CakeProphet> in my mind a gradual increase in taxes, cutting of unecessary programs, and establishment of new programs that are designed to ultimately generate more economic stability should be our goal
07:07:50 <coppro> I trust Congress not to cause two hundred million percent inflation
07:08:48 <CakeProphet> coppro: yes, congress is only borderline retarded.
07:08:52 <coppro> that's about as far as I go though
07:09:43 <CakeProphet> I wonder if things would improve if we made Obama temporary dictator for the duration of his term.
07:09:43 -!- mtve has joined.
07:09:46 <CakeProphet> :P
07:10:05 <CakeProphet> honestly it seems like a better option than having congress fumbling everything.
07:10:08 <coppro> probably
07:10:46 <CakeProphet> coppro: unless people rioted and whatnot.
07:10:58 <CakeProphet> which, is not out of the question.
07:11:57 <coppro> you don't consider that they're already doing so?
07:12:09 <CakeProphet> are they? I haven't been paying attention to that.
07:12:19 <coppro> see wisconsin for instance
07:12:45 <coppro> your country is in a state of political turmoil, the problem being that you have a nice half-and-half split
07:13:45 <CakeProphet> the minority that absolutely hate Obama are way more vitriolic than any protest group I've witnesses. Granted, I'm young. :P
07:13:50 <CakeProphet> *witnessed
07:14:18 <CakeProphet> it's very easy to think that there's racism involved.
07:14:50 <coppro> oh, I'm not really talking about Obama-haters
07:14:58 <CakeProphet> right.
07:15:05 <coppro> I mean, they exist
07:15:15 <CakeProphet> we've always been in that state. always as in... the last several decades.
07:15:15 <coppro> They will exist for any political leader
07:15:39 <coppro> There is a fairly significant portion of our population who believes Harper is going to ruin the country
07:15:54 <coppro> I used to think that. Now I don't since I can keep my sanity that way.
07:16:11 <CakeProphet> coppro: typical stupid American that I am, I had to look up that name to know what you were talking about. :P
07:16:48 <coppro> but also because his temperament has improved just enough that I think we might survive
07:18:46 <CakeProphet> man, I wish my higher education was paid for. :P
07:19:54 <CakeProphet> there's absolutely no disadvantages to educating your populace beyond secondary education.
07:20:05 <coppro> sure there is
07:20:07 <coppro> it costs money
07:20:09 <coppro> which is obviously wrong
07:20:16 <coppro> government shouldn't spend money, etc.
07:22:01 <CakeProphet> it costs money, but ultimately it enables anyone, regardless of economic background, to become well-educated. And without a well-educated populace a democracy is pretty much doomed.
07:22:12 -!- wth has joined.
07:22:38 -!- wth has changed nick to Guest56111.
07:23:26 <CakeProphet> coppro: what do you do for a living?
07:24:03 <CakeProphet> !show dechatspeak
07:24:04 <EgoBot> ​perl while(<>){lc;s/\by\b/why/g;s/\bu\b/you/g;s/\br\b/are/g;s/\bb4\b/before/g;s/\bty\b/thank you/g;s/\bsry\b/sorry/g;s/\bur\b/your/g;s/\bb\b/be/g;s/\bbc\b/because/g;s/\blol\b/haha/g;s/\blmao\b/hahaha/g;s/\brofl\b/hahahaha/g;s/\bbrb\b/be right back/g;s/\bafk\b/away from keyboard/g;s/\b4\b/for/g;s/\b1\b/one/g;s/\bne1\b/anyone/g;s/\bno1\b/no-one/g;s/\b(some|sum)1\b/someone/g;s/\bttyl\b/talk to you lat
07:24:10 <coppro> CakeProphet: Student, presently working at the aforementioned company
07:24:22 <coppro> in September, I resume studenting
07:24:27 <CakeProphet> coppro: er, aforementioned? perhaps I missed something.
07:24:40 <CakeProphet> or just have the memory of a goldfish.
07:24:56 <coppro> 02:56 < coppro> currently living in California working at the country^Wcompany that will someday RULE THE WORLD^W^W^W do stuff
07:24:58 <CakeProphet> oh yeah
07:25:02 <CakeProphet> I missed it.
07:25:22 <CakeProphet> uh.. Google? :P
07:25:25 <coppro> yes
07:25:30 <CakeProphet> oh, nice.
07:25:34 <CakeProphet> how'd you manage that.
07:25:55 <coppro> by working on an open-source project and having Google people say "You should work for us". So I did.
07:26:01 <coppro> (clang)
07:26:10 <CakeProphet> I would VERY MUCH be interested in going to california and doing graduate studies at Berkeley.
07:26:19 <CakeProphet> also.. I NEED to get into open source development.
07:26:25 <CakeProphet> there's absolutely no reason I shouldn't be right now.
07:26:26 <coppro> you should come to Waterloo instead
07:26:36 <coppro> we have cookies
07:26:40 <CakeProphet> ooooh
07:27:15 <CakeProphet> coppro: what open source project?
07:27:19 <coppro> clang
07:27:23 <CakeProphet> ...oh
07:27:36 <CakeProphet> see, I thought that as just some weird onomatopoeia I didn't understand.
07:27:39 <coppro> although I actually have no clue about the relative expense of graduate schools, I know that it's a hell of a lot cheaper to undergrad in Waterloo
07:27:47 <CakeProphet> I'm sure.
07:28:01 -!- Guest56111 has left ("Leaving.").
07:28:03 <CakeProphet> same with Southern Poly compared to Georgia Tech.
07:28:13 <coppro> what's your tuition?
07:28:21 <CakeProphet> ......uh. lol
07:28:29 <CakeProphet> I prefer not to think about it when I can.
07:28:58 <CakeProphet> $3872 per year
07:29:02 <CakeProphet> apparently...
07:29:36 <coppro> that's absurdly cheap
07:29:40 <CakeProphet> I pretty much double the cost by living on campus though. Next semester I'm living off campus and it will get way cheaper.
07:30:15 <CakeProphet> AND, Poly transfers very well to Tech. Though I'm not sure if any of the advanced CS courses will transfer because Tech has a jacked up Computer Science degree.
07:30:25 <CakeProphet> jacked up in a cool way. Just non-standard.
07:30:45 <CakeProphet> basically you pick 2 out of 8 sub-tracks.
07:30:47 <coppro> ah
07:30:54 <coppro> ah yeah we have some programs like that here
07:30:57 <CakeProphet> and that determines your requirements.
07:31:13 <coppro> less so now that the faculty is moving on to an á la carte system
07:31:41 <CakeProphet> and since I'm waiting until my fourth year to attempt a transfer I will have to take SOME advanced CS classes.
07:32:05 <CakeProphet> but I'm almost positive data structures will transfer, and databases.
07:32:38 <CakeProphet> I have no idea about the introductory Java courses I took. GT starts off with a Python-based course.
07:32:58 <coppro> fourth year seems dangerous to attempt a transfer
07:33:12 <CakeProphet> it is, but my GPA kind of requires it.
07:33:17 <coppro> ah
07:34:07 <CakeProphet> as it turns out, taking summer classes in the middle of a post-relationship suicidal crisis is a bad idea.
07:35:37 <CakeProphet> but I'm over that now. It was still a poor decision though.
07:36:19 <CakeProphet> !show dechatspeak
07:36:19 <EgoBot> ​perl while(<>){lc;s/\by\b/why/g;s/\bu\b/you/g;s/\br\b/are/g;s/\bb4\b/before/g;s/\bty\b/thank you/g;s/\bsry\b/sorry/g;s/\bur\b/your/g;s/\bb\b/be/g;s/\bbc\b/because/g;s/\blol\b/haha/g;s/\blmao\b/hahaha/g;s/\brofl\b/hahahaha/g;s/\bbrb\b/be right back/g;s/\bafk\b/away from keyboard/g;s/\b4\b/for/g;s/\b1\b/one/g;s/\bne1\b/anyone/g;s/\bno1\b/no-one/g;s/\b(some|sum)1\b/someone/g;s/\bttyl\b/talk to you lat
07:36:26 <CakeProphet> ...I cannot spot the error in this.
07:36:47 <CakeProphet> !dechatspeak lol hey guys y u mad?
07:36:49 <EgoBot> ​Substitution replacement not terminated at /tmp/input.8285 line 1.
07:37:14 <CakeProphet> it highlights properly in emacs, and I've checked every replacement string to see if it terminates. Yet I still get an error.
07:37:27 <CakeProphet> which leads me to believe that it's some odd syntax thing.
07:37:43 <CakeProphet> ...oh wait. I see it, haha.
07:37:58 <CakeProphet> my program got cut off.
07:38:27 <CakeProphet> !delinterp dechatspea
07:38:27 <EgoBot> ​That interpreter doesn't exist!
07:38:29 <CakeProphet> !delinterp dechatspeak
07:38:29 <EgoBot> ​Interpreter dechatspeak deleted.
07:38:44 <CakeProphet> !languages
07:38:47 <CakeProphet> !help languages
07:38:47 <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.
07:39:35 <CakeProphet> !show lperl
07:39:35 <EgoBot> ​perl $_=<>;s/{{(.*?)}}(?!})/$1/gee;print
07:40:42 <CakeProphet> !addinterp lsh perl $_=<>;s/{{(.*?)}}(?!})/`$1`/ge;print
07:40:42 <EgoBot> ​Interpreter lsh installed.
07:41:27 <CakeProphet> !lsh Hello, {{echo 'world!'}}
07:41:27 <EgoBot> ​Hello, world!
07:42:49 <CakeProphet> I sometimes get lost in rapturous amazement of whatever programming language I happen to be focusing on at various points in my life.
07:43:39 <CakeProphet> like how Perl can do those two things in 36 and 37 bytes...
07:46:02 <Lymia> !lsh hiiiiiiii{{"bluhbluh"}}
07:46:03 <EgoBot> ​/bin/sh: bluhbluh: command not found
07:46:21 <Lymia> !lsh hiiiiiiii{{echo "you suck"}}
07:46:22 <EgoBot> ​hiiiiiiiiyou suck
07:46:23 <Lymia> :c
07:46:39 <Lymia> !lsh {{perl -c "fork while fork"}}
07:46:39 <EgoBot> ​Can't open perl script "fork while fork": No such file or directory
07:46:44 <Lymia> !lsh {{perl -e "fork while fork"}}
07:46:53 <Lymia> !lsh {{perl -e "print 'hi'"}}
07:46:58 <EgoBot> ​hi
07:47:02 <CakeProphet> lol
07:47:12 <CakeProphet> Lymia: have you been learning any Perl?
07:47:16 <Lymia> Nope.
07:47:30 <CakeProphet> it was either you or Patashu that was interested in learning it.
07:47:34 <CakeProphet> can't recall.
07:47:43 <Lymia> !bfjoust [[+-]+]
07:47:43 <EgoBot> ​Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
07:47:49 <Lymia> !bfjoust myon [[+-]+]
07:48:25 <EgoBot> ​Score for Lymia_myon: 7.6
07:48:56 <CakeProphet> `run echo '$_=<>;s/{{(.*?)}}(?!})/`$1`/ge;print' | wc -c
07:49:06 <CakeProphet> ...
07:49:09 <HackEgo> ​37
07:49:31 <Lymia> CakeProphet, what does that do?
07:49:35 <Lymia> `run echo '$_=<>;s/{{(.*?)}}(?!})/`$1`/ge;print'
07:49:40 <HackEgo> ​$_=<>;s/{{(.*?)}}(?!})/`$1`/ge;print
07:49:46 <Lymia> oh
07:49:48 <Lymia> missed the echo
07:49:57 <CakeProphet> well wc -c counts the bytes on standard in--oh
07:50:16 <CakeProphet> yes I was just double checking my arithmetic.
07:52:06 <CakeProphet> I'm not sure how I'm going to feel about my class that's most likely going to be either C++ or C# next semester
07:52:12 <CakeProphet> after all of this Perl hacking.
07:53:49 <CakeProphet> it will be like putting myself in a straight-jacket but attaching speedy rockets and <insert metaphor for extra type safety that I can't think of>
07:55:15 <pikhq> So. Should I sleep?
07:55:25 <pikhq> I mean, I just got home, but it *is* 02:00.
07:56:32 <CakeProphet> !lperl hmmm, let me think about it. {{int(rand(2))?'yes you should':'no you shouldn\'t'
07:56:33 <EgoBot> ​hmmm, let me think about it. {{int(rand(2))?'yes you should':'no you shouldn\'t'
07:56:36 <CakeProphet> !lperl hmmm, let me think about it. {{int(rand(2))?'yes you should':'no you shouldn\'t'}}.
07:56:37 <EgoBot> ​hmmm, let me think about it. yes you should.
07:56:39 <CakeProphet> :3
07:57:02 <pikhq> Damn you, EgoBot, for being the voice of reason.
07:57:11 <CakeProphet> it's 3:57 here
07:59:36 -!- monqy has quit (Quit: hello).
08:00:32 <coppro> pikhq: nah
08:02:28 <CakeProphet> coppro: so clang is basically a better C compiler.
08:02:44 <pikhq> CakeProphet: Problem: You do NOT want to bootstrap with it.
08:02:48 <pikhq> Not only no but hell no.
08:03:12 <CakeProphet> pikhq: okay. For all of my future bootstrapping purposes I will refrain from using clang. :P
08:03:33 <pikhq> It's actually a fairly necessary use case for a C compiler.
08:03:50 <pikhq> As everything else tends to rely on the presence of a sane, functioning C compiler.
08:04:08 <pikhq> (well, actually, everything else tends to rely on the presence of a sane, functioning GNU C compiler, because fuck you.)
08:04:55 <coppro> pikhq: why do you not want to bootstrap with clang?
08:05:32 <coppro> although I recall you have some weird definition of bootsrap I don't remember
08:06:05 <CakeProphet> besides, I'll probably write CakeOS PHP, Java, COBOL, Visual Basic, or something awful Haskell. Or a combination of all of those languages interpreted/compiled by fortran.
08:06:20 <CakeProphet> thereby riding my system of the evil of C that has plagues operating systems for too long.
08:06:27 <CakeProphet> .. :)
08:06:53 <coppro> lol
08:06:55 <CakeProphet> ....obviously it is very late.
08:06:59 <coppro> yes
08:07:00 <coppro> yes it is
08:07:19 <pikhq> coppro: Oh, I dunno, "it relies on a functioning C++ library, and the only full-featured one in UNIX-land pretty much requires GCC and a particular set of libcs that it can fuck with".
08:08:04 <pikhq> (yes, the C++ library *also* pokes around in libc internals. Because "fuck you", says GNU.)
08:09:15 <coppro> pikhq: Oh. I would direct you at the sister libc++ project then
08:09:28 <pikhq> Yeah, but it's a WIP.
08:09:34 <pikhq> I do approve of the project, though.
08:09:50 <coppro> It should be capable of handling clang on a Mac
08:10:11 <CakeProphet> !rot13 test test
08:10:12 <EgoBot> ​grfg grfg
08:10:20 <coppro> not other platforms, because there are a few places where it pops into Mac's libc to access a few locale things which aren't exposed properly by POSIX
08:11:10 <coppro> it is effectively impossible to implement it quickly on top of libc without code duplication
08:11:17 <coppro> which is annoying
08:12:35 <pikhq> This, in my mind, is a bug to be solved by defining a standard means for the libc to expose things to the C++ library.
08:12:58 <pikhq> (whether by POSIX or "These are the functions we want; implement them if you want our stuff to work."...)
08:13:26 <pikhq> Not by brazenly going in with "Eeeeh, fuck sanity, I'm going to assume I can fuck around with implementation internals".
08:13:53 <coppro> Noted
08:14:00 <CakeProphet> !addinterp rot47 perl $_=<>;tr/!-~/P-~!-O/;print
08:14:00 <EgoBot> ​Interpreter rot47 installed.
08:14:12 <CakeProphet> !rot47 testing I am a ninja !@#$%^&*)
08:14:12 <EgoBot> ​E6DE:?8 x 2> 2 ?:?;2 PoRST/UYX
08:14:33 <pikhq> Sadly, sanity is not widely accepted behavior in C.
08:14:38 <coppro> pikhq: Don't get me started on wchar_t by the way
08:14:43 <coppro> it's bad enough with char
08:14:49 <pikhq> Oh, *fuck* wchar_t.
08:15:05 <CakeProphet> yeah!..
08:15:07 <coppro> I imagine it will be something like this:
08:15:37 <coppro> a) If we have a known libc that does not implement our extensions, we will attempt to hack it appropriately
08:15:45 <CakeProphet> !rot47 E6DE:?8 x 2> 2 ?:?;2 PoRST/UYX
08:15:45 <EgoBot> ​testing I am a ninja !@#$%^&*)
08:15:55 <coppro> b) If we are told to assume our extensions exist, we use them
08:16:10 <coppro> c) If we have a known libc with our extensions, we use them
08:16:36 <coppro> d) Otherwise we do what best we can
08:16:50 <pikhq> Also, this is presuming there's an actual need to poke around in the libc internals.
08:17:04 <coppro> pikhq: The primary issue is properties of characters
08:17:07 <coppro> e.g. isupper
08:17:19 <pikhq> Ah.
08:17:25 <coppro> C++ requires providing access to a mask table, which is a sane implementation of the C standard but not required
08:17:41 <coppro> In a worst-case scenario, the lookup table would have to be built on-demand
08:17:49 <CakeProphet> I once worked on a MUD codebase that did not use libc at all. Instead if defined its own, often buggy or non-standard, versions of libc functions.
08:17:52 <CakeProphet> fun times.
08:17:57 <coppro> by calling C functions on every character
08:18:19 <coppro> Now, for wchar_t the situation is much worse, as we can't even do that safely
08:18:24 <pikhq> That's... Actually broken behavior of C++.
08:18:27 <coppro> unless we halt every thread
08:18:34 <CakeProphet> strlen was str_len, for example. isupper was is_upper.
08:18:39 <coppro> pikhq: oh yes, this is very broken
08:18:49 <coppro> pikhq: C++ locales suck balls
08:18:52 -!- MigoMipo has joined.
08:18:58 <coppro> pikhq: the mask table is not in itself a bad idea
08:19:10 <CakeProphet> it was actually my first experience programming in C, so I thought those were the standard names for a while. Eventually I switched to libc though after realizing the true horror...
08:19:16 <pikhq> coppro: Not bad, just broken in a modern environment.
08:19:19 <coppro> pikhq: yeah
08:19:30 <pikhq> As is everything to do with the char type, TBH.
08:19:33 <coppro> yup
08:19:37 <coppro> pikhq: The issue with wchar_t is that functions like isupper() depend on the global locale
08:19:55 <pikhq> ... *Global* locale.
08:19:59 <pikhq> It's *global*?
08:20:03 <coppro> pikhq: In C, yes
08:20:08 <pikhq> As in, per process, not per thread.
08:20:15 <pikhq> Jesus fuck that's a bad idea.
08:20:24 <coppro> C existed long before threads were a concern, remember?
08:20:36 <coppro> of course it's a terrible idea
08:20:39 <coppro> POSIX saves us though
08:20:46 <CakeProphet> can someone explain size_t to me? Are there differences in the type used for size_t among machines?
08:20:56 <coppro> it allows you to construct locale objects and has isupper_l and similar functions
08:21:09 <coppro> the problem is that POSIX does not have this for wchar_t
08:21:17 <pikhq> CakeProphet: size_t is supposed to be *whatever type* is appropriate for storing the size of types and allocations of memory.
08:21:43 <pikhq> CakeProphet: It does not have to be an int, though I think it *does* have to be a minimum of 16 bits and be bound.
08:21:48 <coppro> so on a POSIX-compliant system, there is no reasonable way to implement C++ locales on top of system locales
08:22:16 <CakeProphet> pikhq: right, I was just wondering if it was ever anything other than an int. I suppose it's good that it exists in case it ever changed though.
08:22:26 <pikhq> How's about we just replace the C library and the C++ library? Entirely.
08:22:37 <coppro> pikhq: backwards compatibility
08:22:40 <pikhq> CakeProphet: Well, it's sure as hell not an int on x86_64.
08:22:41 <coppro> it fucking sucks
08:22:46 <CakeProphet> pikhq: ah, right.
08:22:52 <pikhq> coppro: Yes, I know. But still...
08:23:03 <CakeProphet> I mean..
08:23:16 <CakeProphet> you could just have a new library and keep the old one around...
08:23:37 <pikhq> How's about we just kill everyone and everything and restart civilization my way?
08:23:41 <pikhq> That sounds good.
08:24:12 <coppro> pikhq: oh actually nevermind
08:24:35 <coppro> the char case is safe, we can implement the C spec directly since it gives little leeway
08:24:38 <coppro> I didn't realize this
08:25:14 <CakeProphet> Haskell for systems programming. \o/
08:25:15 <myndzi> |
08:25:15 <myndzi> /|
08:25:32 <CakeProphet> ...with a new Prelude, of course
08:25:47 <CakeProphet> fixing all numeric typeclasses and that length-returning-an-Int crap
08:30:07 <CakeProphet> haha. or Erlang.
08:30:17 <CakeProphet> it can apparently run standalone.
08:31:20 <CakeProphet> it handles concurrency well and it's fairly fast/portable from what I understand, but it handles string poorly iirc.
08:31:35 <pikhq> Erlang was *designed* to run standalone.
08:31:35 <coppro> Erlang handles strings as Haskell does
08:31:42 <coppro> Erlang needs a VM
08:31:50 <coppro> but it's intended to run systems, yes
08:31:58 <pikhq> Well, "standalone" in the sense of "the VM runs on bare hardware just fine".
08:32:02 <coppro> yeah
08:32:24 <coppro> also well-written Erlang is basically indestructible
08:32:53 <pikhq> Again, as designed.
08:33:30 <pikhq> The language itself isn't that great, but man it's probably the single most reliable thing I've seen.
08:35:27 <coppro> yeah
08:36:17 <coppro> oops half the server cluster just went down. Good thing that wasn't the entire thing or service might have been interrupted for more than a few seconds
08:41:48 <coppro> pikhq: If tarcieri ever makes some real concrete decisions, Reia could be excellent
08:42:42 <coppro> (Reia being an attempt at a sane [Ruby-like in this case] language on the erlang VM)
08:50:00 <pikhq> ... Wut.
08:50:13 <pikhq> The population of Manhattan was *decreased* in the past 100 years.
08:50:28 <pikhq> s/was/has/
08:50:44 <pikhq> It used to be 2.3 million, it's now 1.5 million.
08:54:24 <pikhq> Though the population of New York City itself has shot way up; it's simply spread out to the other boroughs of the city...
08:54:27 <pikhq> Still. damn.
09:05:15 <CakeProphet> http://en.wikipedia.org/wiki/Moutza
09:05:19 <CakeProphet> how offensive.
09:41:59 -!- Vorpal has joined.
09:57:49 <CakeProphet> > [1..] >>= return
09:57:50 <lambdabot> [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...
10:02:20 <Lymia> > [1..]
10:02:21 <lambdabot> [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...
10:02:34 <Lymia> > zipWith [1..] [1..]
10:02:35 <lambdabot> Couldn't match expected type `a -> b -> c'
10:02:36 <lambdabot> against inferred type `[...
10:02:57 <Lymia> @type zipWith
10:02:58 <lambdabot> forall a b c. (a -> b -> c) -> [a] -> [b] -> [c]
10:06:28 <Lymia> > zipWith (\x y -> [x..y]) [1..] [100..]
10:06:29 <lambdabot> [[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,2...
10:06:42 <Lymia> > zipWith (\x y -> [x..y]) [1..] [..1]
10:06:43 <lambdabot> <no location info>: parse error on input `..'
10:06:53 <Lymia> > zipWith (\x y -> [x..y]) [1..] [0..-inf]
10:06:54 <lambdabot> Not in scope: `inf'Not in scope: `..-'
10:06:58 <Lymia> > zipWith (\x y -> [x..y]) [1..] [0..-9999999999999999999999999999]
10:06:59 <lambdabot> Not in scope: `..-'
10:07:14 <Lymia> > zipWith (\x y -> [x..y^2]) [0..] [0..]
10:07:15 <lambdabot> [[0],[1],[2,3,4],[3,4,5,6,7,8,9],[4,5,6,7,8,9,10,11,12,13,14,15,16],[5,6,7,...
10:16:49 <CakeProphet> @src liftM
10:16:49 <lambdabot> liftM f m1 = do { x1 <- m1; return (f x1) }
10:17:55 <CakeProphet> liftM = (return.)
10:18:20 -!- Patashu has joined.
10:19:09 <Lymia> > zipWith (\x y -> [x/2..y^2]) [0..] [0..]
10:19:10 <lambdabot> [[0.0],[0.5,1.5],[1.0,2.0,3.0,4.0],[1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5],[2...
10:19:28 <Lymia> > zipWith (\x y -> [x^0.5..y^2]) [0..] [0..]
10:19:30 <lambdabot> Ambiguous type variable `t' in the constraints:
10:19:30 <lambdabot> `GHC.Real.Integral t'
10:19:30 <lambdabot> ...
10:19:47 <CakeProphet> > liftM2 (,) [0..10] [0..10]
10:19:48 <lambdabot> [(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(0,9),(0,10),(1,0),(...
10:19:56 <CakeProphet> Lymia: might want to try ** instead of ^
10:20:02 <CakeProphet> ** is for floating point numbers.
10:20:33 <CakeProphet> :t ((**),(^))
10:20:33 <Lymia> > zipWith (\x y -> [x**0.5..y**2]) [0..] [0..]
10:20:34 <lambdabot> forall a a1 b. (Floating a, Num a1, Integral b) => (a -> a -> a, a1 -> b -> a1)
10:20:35 <lambdabot> [[0.0],[1.0],[1.4142135623730951,2.414213562373095,3.414213562373095,4.4142...
10:20:39 <Lymia> Yay.
10:20:42 <Lymia> Insta huge numbers.
10:20:49 <CakeProphet> ...wooo
10:21:24 <CakeProphet> liftM2 (,) is instant cartesian product.
10:21:29 <CakeProphet> so useful in programming of course.
10:23:06 <CakeProphet> @src on
10:23:07 <lambdabot> (*) `on` f = \x y -> f x * f y
10:24:00 <CakeProphet> @src ap
10:24:00 <lambdabot> ap = liftM2 id
10:26:23 <CakeProphet> > let plane = map (take 10 . repeat) in plane
10:26:24 <lambdabot> Overlapping instances for GHC.Show.Show ([a] -> [[a]])
10:26:24 <lambdabot> arising from a us...
10:26:55 <CakeProphet> > let plane = map (take 10 . repeat) $ take 10 (repeat 0) in plane
10:26:57 <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...
10:30:40 <CakeProphet> > let plane = map (take 10 . repeat) $ take 10 (repeat 0) in plane;coords = liftM2 (,) [0..10] [0..10] in zipWith (==) (map (\(x,y) - > plane !! x !! y) coords) plane
10:30:42 <lambdabot> <no location info>: parse error on input `;'
10:31:28 <CakeProphet> > let {plane = map (take 10 . repeat) $ take 10 (repeat 0) in plane; coords = liftM2 (,) [0..10] [0..10]} in zipWith (==) (map (\(x,y) - > plane !! x !! y) coords) plane
10:31:29 <lambdabot> <no location info>: parse error on input `in'
10:31:48 <CakeProphet> uh, okay.
10:32:03 -!- MigoMipo has quit (Read error: Connection reset by peer).
10:32:53 <Deewiant> s/ in plane//
10:34:00 <CakeProphet> > let {plane = map (take 10 . repeat) $ take 10 (repeat 0); coords = liftM2 (,) [0..10] [0..10]} in zipWith (==) (map (\(x,y) - > plane !! x !! y) coords) plane
10:34:01 <lambdabot> <no location info>: parse error on input `-'
10:34:15 <CakeProphet> well, I'm going to bed now. Good night. :P
10:34:30 <Deewiant> s/- >/->/
10:41:17 <Vorpal> :t (,)
10:41:18 <lambdabot> forall a b. a -> b -> (a, b)
10:41:25 <Vorpal> oh
10:41:34 <Vorpal> @src (,)
10:41:34 <lambdabot> Source not found. Take a stress pill and think things over.
10:41:40 <Vorpal> @hoogle (,)
10:41:41 <lambdabot> Prelude undefined :: a
10:41:41 <lambdabot> Test.QuickCheck.Batch bottom :: a
10:41:41 <lambdabot> Data.Function fix :: (a -> a) -> a
10:41:47 <Vorpal> hm
10:41:56 <Vorpal> I guess that wasn't quite right
10:43:05 <Deewiant> data (,) a b = (,) a b
10:43:20 <Vorpal> Deewiant, is that a tuple?
10:43:25 <Deewiant> Yes
10:43:28 <Vorpal> aha
10:43:48 <Vorpal> Deewiant, I thought tuples were special syntax.
10:43:51 <Vorpal> or hm
10:43:56 <Vorpal> :t (,,)
10:43:57 <lambdabot> forall a b c. a -> b -> c -> (a, b, c)
10:44:02 <Vorpal> heh, I guess not
10:44:20 <Deewiant> They are, somewhat
10:44:35 <Deewiant> But GHC still defines them like that
10:44:39 <Vorpal> hm
10:44:56 <Vorpal> Deewiant, so ghc specific? or standard haskell?
10:45:11 <Deewiant> data (,) a b = (,) a b is GHC specific, I'm fairly sure
10:45:15 <Vorpal> ah okay
10:45:29 <Deewiant> Yeah, it's in GHC.Tuple
10:45:40 <Deewiant> So it could just be builtin in other environments
10:45:47 <Vorpal> but it seems to be included in Prelude yeah
10:46:07 <Deewiant> Well yes, (,) is guaranteed to exist and work
10:46:22 <Vorpal> ah
10:49:12 -!- pikhq has quit (Ping timeout: 248 seconds).
10:49:22 -!- pikhq has joined.
11:36:22 -!- foocraft has joined.
11:40:37 -!- TOGoS has quit (Read error: Connection reset by peer).
11:45:00 -!- TOGoS has joined.
12:02:54 -!- SimonRC has quit (Ping timeout: 260 seconds).
12:10:20 -!- SimonRC has joined.
12:32:33 -!- foocraft has quit (Ping timeout: 252 seconds).
12:55:40 -!- Demetrius has joined.
12:56:53 -!- FireFly has joined.
13:02:10 -!- foocraft has joined.
13:18:20 -!- invariable has joined.
13:19:29 -!- invariable has quit (Remote host closed the connection).
13:20:00 -!- ralc has joined.
13:20:18 -!- variable has quit (Remote host closed the connection).
13:20:51 -!- variable has joined.
13:21:07 -!- Patashu has quit (Ping timeout: 246 seconds).
13:32:49 -!- Sgeo has joined.
13:36:19 -!- foocraft has quit (Ping timeout: 255 seconds).
13:37:12 -!- Deewiant has quit (Ping timeout: 248 seconds).
13:38:26 -!- Deewiant has joined.
13:50:14 -!- foocraft has joined.
14:00:05 -!- TOGoS has left.
14:46:30 -!- azaq23 has joined.
15:21:37 -!- Sgeo has quit (Ping timeout: 255 seconds).
15:23:13 <oklopol> oerjan: hi
15:28:14 <Vorpal> "available frequency steps: 2.27 GHz, 2.27 GHz, 1.60 GHz, 800 MHz" <--- err, what? That looks wrong.
15:31:13 <fizzie> Maybe it's a rounding thing, and the two highest are, say, 2271 and 2270 MHz.
15:31:17 <fizzie> "available frequency steps: 2.80 GHz, 2.60 GHz, 2.40 GHz, 2.20 GHz, 2.00 GHz, 1.80 GHz, 1000 MHz"
15:32:00 <Vorpal> fizzie, 2271 and 2270 sounds silly.
15:32:05 <Vorpal> as in pointless
15:32:14 <Vorpal> I doubt intel would add that to a mobile core 2 duo.
15:32:18 <Vorpal> but hm
15:34:23 <Vorpal> well I don't know how to extract the info to verify the rounding thing
15:35:01 <Vorpal> aha, found it
15:35:07 <Vorpal> $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
15:35:07 <Vorpal> 2267000 2266000 1600000 800000
15:35:12 <Vorpal> fizzie, looks like you were right
15:35:24 <Vorpal> I wonder why though
15:37:11 -!- malorie has left.
15:38:37 <fizzie> It could have a "full-speed" mode separate from "scaled-frequency" modes, maybe, and then they've wanted to make it possible to run it close-enough to full speed without switching away from the scaled-frequency operation. (But that's just a guess; I don't have a clue about the details of cpufreq implementation.)
15:39:04 <Vorpal> hm
15:39:38 <fizzie> Does your cpufreq-info report the stats in % of time spent in different modes? Which 2.27 GHz it uses?
15:39:48 <Vorpal> cpufreq stats: 2.27 GHz:18,01%, 2.27 GHz:1,58%, 1.60 GHz:2,29%, 800 MHz:78,12% (169038)
15:39:51 <Vorpal> and
15:39:54 <Vorpal> cpufreq stats: 2.27 GHz:7,35%, 2.27 GHz:0,70%, 1.60 GHz:1,77%, 800 MHz:90,18% (3298838)
15:39:58 <Vorpal> for the different cores
15:40:21 <Vorpal> (what is that number in parens at the end?)
15:40:43 <Vorpal> fizzie, so it seems it uses both
15:41:18 <fizzie> I guess the cpufreq governors just put them on a sorted line and go through all when stepping up to meet demand.
15:41:23 <fizzie> "cpufreq stats: 2.80 GHz:2.14%, 2.60 GHz:0.07%, 2.40 GHz:0.05%, 2.20 GHz:0.06%, 2.00 GHz:0.05%, 1.80 GHz:0.39%, 1000 MHz:97.24% (82236)"
15:43:47 <fizzie> The PPC iBook had two cpufreq speeds -- 533 MHz and 1066 MHz -- and it had some sort of huge latency thing when switching, I think I recall from syslog that it decided to not use the ondemand governor because of that.
15:45:43 -!- Phantom_Hoover has joined.
15:48:49 <Demetrius> Phantom_Hoover, hello!
15:49:09 <Phantom_Hoover> Hello Demetrius.
15:49:09 <lambdabot> Phantom_Hoover: You have 6 new messages. '/msg lambdabot @messages' to read them.
15:49:12 <Phantom_Hoover> Oh god
15:49:17 <Phantom_Hoover> How can he even
15:49:21 <Phantom_Hoover> There wasn't an update
15:50:01 -!- azaq23 has quit (Quit: Leaving.).
16:01:11 <Vorpal> fizzie, heh
16:04:17 -!- Sgeo has joined.
16:04:52 -!- Kustas has joined.
16:06:49 -!- comex has joined.
16:10:04 -!- pikhq_ has joined.
16:10:13 -!- pikhq has quit (Ping timeout: 260 seconds).
16:19:35 -!- elliott has joined.
16:33:21 <elliott> 02:12:21: <coppro> elliott__: I estimate 8% for me. Incidentally, do you know what the "the Doctor is being awesome" music is called?
16:33:26 <elliott> coppro: I think I did at one point but have now forgotten.
16:34:47 <elliott> 02:23:01: <CakeProphet> yes, if $_ were global terrible things would happen.
16:34:47 <elliott> 02:23:08: <CakeProphet> instead it's a weird pseudo-global thing.
16:34:50 <elliott> CakeProphet: it is just an "our"
16:34:52 <elliott> dynamic variable
16:35:28 <elliott> 02:27:21: <CakeProphet> !perl $s='q{q[q<q(q!q@q~q%q^q&q*muhahahahahahaha*&^%~@!)>]}';$s=eval$s for 1..11;print$s
16:35:29 <elliott> 02:27:22: <EgoBot> ​muhahahahahahaha
16:35:30 <elliott> lovely
16:35:38 -!- Kustas has quit (Quit: restart).
16:36:08 <elliott> !perl print <open 0>
16:36:09 <EgoBot> ​open0
16:36:18 <elliott> !perl print open 0,<0>
16:36:28 <elliott> !perl print open 0 . <0>
16:36:28 <EgoBot> ​1
16:37:38 -!- Kustas has joined.
16:37:49 <elliott> 02:55:03: <coppro> this is so very very awesome: (elliott you better visit this link when you read the logs) http://www.youtube.com/watch?v=sjtzib0G9Rs
16:37:50 <elliott> god yes
16:38:47 <elliott> 03:59:12: <CakeProphet> future elliott: Good post-400 xkcd: http://xkcd.com/602/
16:38:47 <elliott> There are good post-400 xkcds but... this is not one of them.
16:38:51 -!- monqy has joined.
16:40:45 <elliott> 06:08:28: <Patashu> sbahj related http://www.youtube.com/watch?v=u7YfVmY9Qjs
16:40:45 <elliott> heh
16:41:26 <Sgeo> I finally successfully performed a Second Life experiment I've been wanting to do for a while
16:51:54 <Phantom_Hoover> <Sgeo> I have created... LIFE!
16:56:03 <coppro> elliott: evidence indicates they played that theme at least three times that weekend; I was there for two that weren't in the video. Those coils are pretty surreal
16:56:17 <monqy> third life
17:02:35 <elliott> Sgeo won't tell us what he experimented SOB
17:09:09 -!- MigoMipo has joined.
17:11:33 <Sgeo> Oh, sorry, was afk
17:11:58 <Sgeo> Experimented to determine whether or not gravity takes longer to take effect at higher altitudes. It does.
17:12:32 <Sgeo> Unless there's something else going on that I'm not realizing
17:12:36 <coppro> lolwut
17:12:44 <coppro> it doesn't take longer to take effect
17:12:56 <coppro> gravity is always taking effect
17:13:56 <Sgeo> coppro, I'm talking about Second Life. When an object in Second Life goes from being weightless to having weight, it takes an amount of time dependent on altitude for it to start detectably moving
17:14:08 <coppro> ah
17:21:09 <elliott> lol coppro
18:06:11 -!- augur has quit (Remote host closed the connection).
18:11:36 -!- elliott has quit (Remote host closed the connection).
18:13:33 -!- augur has joined.
18:13:59 -!- Kustas has quit (Quit: over and out).
18:15:29 -!- elliott has joined.
18:24:41 -!- augur has quit (Remote host closed the connection).
18:26:37 -!- augur has joined.
18:32:21 -!- wareya has quit (Read error: Connection reset by peer).
18:32:55 -!- wareya has joined.
18:33:46 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
18:36:00 -!- Phantom_Hoover has joined.
18:45:08 -!- augur has quit (Remote host closed the connection).
18:52:31 -!- olsner has joined.
19:02:27 <Phantom_Hoover> What is it with people on /r/IAmA thinking that famous people care about them in the slightest.
19:04:18 -!- pikhq has joined.
19:04:27 -!- pikhq_ has quit (Ping timeout: 252 seconds).
19:07:26 -!- pumpkin has changed nick to copumpkin.
19:14:33 -!- sebbu has joined.
19:14:33 -!- sebbu has quit (Changing host).
19:14:33 -!- sebbu has joined.
19:17:31 -!- sebbu2 has quit (Ping timeout: 250 seconds).
19:19:58 <oklopol> so one of the talks was about implementing boolean circuits by putting chloroform and grease inside an MRI machine
19:20:30 <elliott> ;)
19:20:52 <oklopol> and i have this feeling that the woman got a tiny orgasm every time she said the word "unconventional"
19:22:22 <elliott> did A Universal Flying Amorphous Computer have anything interesting to say
19:22:36 <oklopol> also there was a talk about fsa and tm's reading input from the future and they opened up with a fucking discussion of the grandfather or whatever paradox and i almost yelled NOOOOOOOOOOOOOOOOOOOOOOOOOO
19:22:49 <elliott> :D
19:23:02 <elliott> would you like a hug oklopol you sound distressed
19:25:20 <oklopol> it's like, you're 2 and you go hmm how does this walking thing go... ah, it goes this way. *few years pass* hmm okay i've mastered this *more years pass* god this stuff is boring, left right left right yeah yeah maybe i'll find a chair and then in fucking 10 years EVERYONE STARTS GOING WOW LOOK AT THESE STICKS UNDER ME WHAT IF I DO LIKE THIS THEN I'LL LIKE MOVE AND SHIT HAHAHA LOOK OKLOPOL I CAN *WALK* WHAT DO YOU THINK ABOUT WALKING?!?
19:25:54 <oklopol> (actually i don't remember when ppl learn to walk)
19:26:24 <oklopol> erm and that was about time machines if it was not clear for some reason
19:26:43 <olsner> time machines are like walking?
19:27:18 <oklopol> no, but the grandfather paradox is something 4-year-olds think about before they grow a brain
19:28:02 <oklopol> see i'm also so tired of saying i hate time travel that i have to make it interesting for myself
19:29:15 <oklopol> elliott: universal blah is on thursday
19:29:42 <Phantom_Hoover> The grandfather paradox is pretty stupid as a thing to think about.
19:29:47 <elliott> hey oklopol
19:29:51 <elliott> time travel is awesome
19:30:06 <oklopol> hey umm remember a few weeks or something ago when i said i'd totally solved a prob i've been trying to solve for a year and that it was my third attempt which was the charm and then i realized how fun it doesn't work
19:30:21 <elliott> rtjiog
19:30:25 <Phantom_Hoover> No.
19:30:32 <oklopol> elliott and oerjan were here at least
19:30:38 <oklopol> in any case, I HAVE TOTALLY SOLVED IT NO
19:30:38 <oklopol> W
19:30:45 <Phantom_Hoover> WHAT IS IT
19:30:46 <oklopol> i wonder if that was a freudian slip
19:30:48 <elliott> i solved ur mom
19:31:35 <elliott> i killed a
19:32:10 <oklopol> Phantom_Hoover: an n-dimensional picture is when you color Z^n with a finite set of colors in such away that everything except some finite product of intervals gets # as color and the product of intervals gets colors from some set S
19:32:19 <elliott> oklopol: omg raciest................
19:32:36 <oklopol> a picture-walking automaton is a nondeterministic automaton that walks on the cells of a picture, accepting if there is a computation that leads to a final state
19:32:44 <elliott> stop being a raciest omg.....................
19:33:00 <elliott> ": /"
19:33:33 <oklopol> you start from some initial state at a corner and your rules are of the form Q x (S \cup {#}) -> 2^(Q x {directions here})
19:33:57 <oklopol> so depending on what state you are in and what you read, you choose some state given by the rule and a move in some direction
19:34:13 <elliott> Phantom_Hoover: look at this raciesm...
19:34:26 <Phantom_Hoover> elliott, it is so racyy.
19:34:28 <Phantom_Hoover> *racy
19:34:33 <elliott> [asterisk]racyy
19:34:34 <oklopol> now, we define NFA and FNFA as the classes of picture languages (sets of pictures) you can define when the automaton is allowed to exit the picture it is accepting, and not exiting it, respectively
19:34:42 <oklopol> i proved NFA = FNFA in all dimensions
19:34:54 <elliott> oklopol: ur raciesm against blak people discusts me.........
19:34:57 <oklopol> in the sense that i haven't yet realized why my proof is wrong this time
19:34:59 <oklopol> :)
19:36:16 <oklopol> for two dimensions, you can find the proof in my master's thesis, but i left dimensions above 2 open
19:36:29 <oklopol> because the proof refused to generalize
19:36:57 <oklopol> the feeling between coming up with the solution and realizing it's crap = <3
19:37:40 <elliott> you're a shit
19:37:42 <elliott> :)
19:38:28 <oklopol> im shit? :(
19:38:57 <elliott> sorry
20:00:45 * Phantom_Hoover concludes that RobotRollCall is by now just an annoying power user.
20:00:56 <elliott> why
20:01:41 <Phantom_Hoover> Because in http://www.reddit.com/r/askscience/comments/hsrsq/what_would_happen_in_terms_of_gravity_if_you/ she says that all the other answers aren't giving the whole story and proceeds to reel off her own spiel about field theory.
20:02:17 <Phantom_Hoover> Thing is, the top answer *does* explain it, although not rigorously, while hers just says "the field in a shell is zero. It just is".
20:03:43 <elliott> "So if the sun were to just blink out of existence we would follow our orbit for another 8 minutes before everything went to hell?" THIS PERSON HAS CLEARLY NEVER READ THE ED STORIES
20:03:54 <elliott> "Stuff doesn't blink out of existence, so that's, to put it bluntly, not an interesting question." --RobotRollCall
20:04:08 <Phantom_Hoover> See what I mean?
20:04:21 <Phantom_Hoover> She seems to take glee in crushing unrealistic hypotheticals.
20:04:23 -!- augur has joined.
20:04:38 <elliott> ARE YOU SURE YOU AREN'T JUST UPSET ABOUT YOUR OWN UNREALISTIC HYPOTHETICALS
20:04:39 <Phantom_Hoover> elliott, link to that one?
20:04:47 <Phantom_Hoover> And no, because she didn't do it to me.
20:04:57 <elliott> ">Okie doke, so let's say something accelerated the sun very quickly…
20:04:58 <elliott> No, let's not. Let's consider only things that are actually possible."
20:05:02 <elliott> OK she's an asshole.
20:05:09 <Phantom_Hoover> She is.
20:05:19 <Phantom_Hoover> Linklinklink so I can try to take her apart for this.
20:05:34 <elliott> It's linked by someone complaining about RRC at the top of your link.
20:05:36 <elliott> You can find it.
20:07:32 -!- pikhq_ has joined.
20:09:57 -!- pikhq has quit (Ping timeout: 250 seconds).
20:15:02 <elliott> hmm
20:15:06 <elliott> maybe I'll have to use IO for this
20:15:36 <elliott> it seems to be the only way to make it all work it right
20:15:42 <elliott> (unsafePerformIO causing problems? shock and horror)
20:16:47 <pikhq_> elliott: Where "this" == ?
20:17:20 <elliott> pikhq_: I'm working on an interning library
20:17:31 <elliott> so that e.g. you can do Scheme symbols with "Interned String"
20:17:44 <elliott> pikhq_: and it uses reallyUnsafePtrEquality# behind the scenes in the Eq instance
20:18:23 <pikhq_> ... That's frightening.
20:18:43 <elliott> your mom is frightening
20:33:19 <coppro> interning library?
20:38:34 <elliott> coppro: what?
20:38:44 <Phantom_Hoover> Interned in a library.
20:39:09 <coppro> what is an interning library?
20:39:32 <Phantom_Hoover> A library for interning people in.
20:39:58 -!- Rugxulo has joined.
20:40:37 <Rugxulo> I actually found Ben Olmstead's old Befunge-93 compiler (MCBC), but it doesn't work :-(
20:40:53 <Rugxulo> nevertheless, for any completist who wants a copy, get it here:
20:40:55 <Rugxulo> http://web.archive.org/web/20040221222300/http://www.mines.edu/students/b/bolmstea/mtfi/mcbc10.zip
20:41:00 <Rugxulo> just FYI
20:42:10 <Phantom_Hoover> And with that you will be back into the night?
20:42:24 <Rugxulo> ;-)
20:43:02 <Rugxulo> I just thought it was cool, esp. since I could never find the damn thing ... though ironically it crashes (SIGSEGV) on any input, no matter how simple
20:46:59 <elliott> we should mirror that
20:47:54 <Rugxulo> yes ... and BTW I never found the fabled "Betty" compiler that Wikipedia mentions
20:48:45 <Rugxulo> even BFC mentioned is long gone (though I once found a copy somewhere but forget where, some forum)
20:49:40 <Phantom_Hoover> It was too awesome for this world.
20:49:56 <Rugxulo> Chris Pressey did do a minor bugfix for his official BEF a few months ago too
20:50:34 <elliott> yeah
20:50:37 <elliott> he comes here occasionally
20:50:47 -!- CakeProphet has quit (Ping timeout: 252 seconds).
20:50:54 <Rugxulo> I saw him in here once or twice, but that was rare (and before the refresh)
20:51:21 <elliott> the refresh?
20:51:30 <elliott> He was here pretty much all the time last year
20:52:21 -!- CakeProphet has joined.
20:52:22 -!- CakeProphet has quit (Changing host).
20:52:22 -!- CakeProphet has joined.
20:52:56 <Rugxulo> BEF refresh, bugfix
20:54:24 <elliott> ah
20:54:31 <elliott> > zip "abcd" "bcd"
20:54:33 <lambdabot> [('a','b'),('b','c'),('c','d')]
20:54:39 <elliott> > zip "abcd" "cd"
20:54:40 <lambdabot> [('a','c'),('b','d')]
20:54:45 <elliott> hmph
20:55:02 <elliott> > zip "abcd" [(),(),(),(),()]
20:55:03 <lambdabot> [('a',()),('b',()),('c',()),('d',())]
20:55:54 <elliott> > zip (map ("abcd"!!) [0,2..]) (map ("abcd"!!) [1,3..])
20:55:55 <lambdabot> [('a','b'),('c','d'),(*Exception: Prelude.(!!): index too large
20:56:00 <elliott> where's oerjan when you need 'im
20:56:15 <elliott> ?pl \x y -> x:y:[]
20:56:15 <lambdabot> (. return) . (:)
21:03:31 <elliott> ?hoogle [a] -> [(a,a)]
21:03:31 <lambdabot> Test.QuickCheck two :: Monad m => m a -> m (a, a)
21:03:31 <lambdabot> Prelude zip :: [a] -> [b] -> [(a, b)]
21:03:31 <lambdabot> Data.List zip :: [a] -> [b] -> [(a, b)]
21:03:48 <elliott> hmm
21:04:31 -!- Demetrius has quit (Quit: gnite!).
21:10:15 -!- Patashu has joined.
21:14:23 -!- CakeProphet has quit (Ping timeout: 240 seconds).
21:16:09 -!- CakeProphet has joined.
21:16:09 -!- CakeProphet has quit (Changing host).
21:16:10 -!- CakeProphet has joined.
21:22:17 <pikhq_> !pl \x->(x,x)
21:22:28 <pikhq_> ?pl \x->(x,x)
21:22:29 <lambdabot> join (,)
21:22:32 <pikhq_> Also, yeah.
21:24:39 -!- Rugxulo has quit (Quit: ChatZilla 0.9.87 [Firefox 3.6.10/20101005225428]).
21:25:15 <elliott> pikhq_: no that's not it
21:25:31 <elliott> I want "abcd" -> [('a','b'),('c','d')] but actually I need to handle the odd case too so basically never mind
21:36:04 <elliott> > zip ["la","le","li","lo","lu","ra","re","ri","ro","ro"] [0..]
21:36:05 <lambdabot> [("la",0),("le",1),("li",2),("lo",3),("lu",4),("ra",5),("re",6),("ri",7),("...
21:36:17 <elliott> ?pl \x y -> string x >> return y
21:36:18 <lambdabot> (. return) . (>>) . string
21:36:29 <elliott> > zipWith ((. return) . (>>) . string) ["la","le","li","lo","lu","ra","re","ri","ro","ro"] [0..]
21:36:30 <lambdabot> Not in scope: `string'
21:36:56 <elliott> ?pl \x y -> x >> return y
21:36:57 <lambdabot> (. return) . (>>)
21:37:50 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
21:38:18 <elliott> ?pl \x y -> (x*10) +y
21:38:18 <lambdabot> (+) . (10 *)
21:47:13 -!- CakeProphet has quit (Ping timeout: 246 seconds).
21:49:07 -!- CakeProphet has joined.
21:49:08 -!- CakeProphet has quit (Changing host).
21:49:08 -!- CakeProphet has joined.
21:53:31 -!- Patashu has quit (Ping timeout: 250 seconds).
21:58:32 <CakeProphet> elliott: Yeah <open 0> doesn't work unfortunately because I don't believe open returns the filehandle it returns a success value.
21:58:51 <elliott> yeah
21:59:14 <CakeProphet> elliott: and yes, $_ is an our variable but in many situations it becomes either dynamically or lexically local, I'm not sure which though.
21:59:25 <CakeProphet> I think dynamic.
21:59:37 <elliott> Isn't the definition of our a dynamically local variable?
22:00:06 <CakeProphet> no our is a "shared package variable", which basically means it's dynamic global.
22:00:22 <elliott> "As $_ is a global variable, this may lead in some cases to unwanted side-effects. As of perl 5.9.1, you can now use a lexical version of $_ by declaring it in a file or in a block with my. Moreover, declaring our $_ restores the global $_ in the current scope."
22:00:29 <elliott> Ah, so it's literally just a global variable
22:00:44 <elliott> But you can use our to make it temporarily local
22:03:41 -!- ralc has quit (Quit: Leaving).
22:04:54 -!- CakeProphet has quit (Ping timeout: 276 seconds).
22:05:38 -!- sebbu2 has joined.
22:05:38 -!- sebbu2 has quit (Changing host).
22:05:38 -!- sebbu2 has joined.
22:07:31 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:09:20 -!- sebbu has quit (Ping timeout: 252 seconds).
22:09:20 -!- sebbu2 has changed nick to sebbu.
22:09:59 -!- pikhq has joined.
22:10:00 -!- pikhq_ has quit (Ping timeout: 240 seconds).
22:23:44 -!- augur has quit (Remote host closed the connection).
22:24:11 -!- augur has joined.
22:25:00 -!- oerjan has joined.
22:25:59 <oerjan> <elliott> where's oerjan when you need 'im
22:26:13 <oerjan> sipping his coffee in a restaurant
22:26:14 <elliott> yeah its fucking unacceptable
22:26:18 <elliott> he should be hanged
22:26:28 <elliott> oerjan: well lah-de-dah mister fancy
22:26:37 <elliott> if you're so rich then why don't you buy an ipad so you can always be bugged by me :|
22:26:42 <elliott> WHEREVER YOU GO
22:26:53 <elliott> middle of the night, BEEP BEEP "oerjan i need haskell help"
22:27:02 <oerjan> i'm not rich.
22:27:14 <elliott> shaddap
22:28:08 <oerjan> > zip (map ("abcd"!!) [0,2..]) (map ("abcd"!!) [1,3..])
22:28:09 <lambdabot> [('a','b'),('c','d'),(*Exception: Prelude.(!!): index too large
22:28:21 <oerjan> > zip (map (cycle "abcd"!!) [0,2..]) (map (cycle "abcd"!!) [1,3..])
22:28:22 <lambdabot> [('a','b'),('c','d'),('a','b'),('c','d'),('a','b'),('c','d'),('a','b'),('c'...
22:28:23 <elliott> yeah, turns out I actually don't need that function :D
22:28:31 <elliott> digit :: Parser Integer
22:28:31 <elliott> digit = choice $ zipWith (>>) (map (try . string) digits) (map return [0..])
22:28:31 <elliott> where digits = ["la", "le", "li", "lo", "lu", "ra", "re", "ri", "ro", "ru"]
22:28:35 <elliott> would be nice if you could make that a bit less ugly
22:28:44 <elliott> oops did i just reveal what i'm writing :D
22:29:05 -!- CakeProp1et has joined.
22:29:17 <oerjan> huh
22:29:26 <elliott> huh?
22:29:27 <oerjan> is it that syl language?
22:29:39 <elliott> yeah; I am bored
22:29:49 <elliott> so I'm going to write the BEST SYL IMPLEMENTATION EVARRR
22:29:55 -!- CakeProp1et has quit (Client Quit).
22:30:07 <elliott> we're talking multiple backends, C FFI here
22:30:27 -!- CakeProphet has joined.
22:31:35 <oerjan> digit = choice [try (string d) >> return n | d <- digits | n <- [0..]]
22:31:53 <elliott> but... but you made it less point-free...
22:31:55 * oerjan has never tried that zip comprehension before
22:32:01 <elliott> also that should be a comma before n, not |
22:32:02 <elliott> no?
22:32:12 <oerjan> SOMETIMES LESS POINT-FREE IS BETTER
22:32:19 <elliott> integer = natural >>= liftA2 (<|>) ((string "hu" *>) . return . negate) return
22:32:20 <CakeProphet> oerjan: I agree entirely.
22:32:23 <elliott> wanna de-ugly that too? :P
22:32:49 <oerjan> um no, i believe | is the syntax for the "zip these together" comprehension extension
22:32:53 <elliott> ah
22:33:08 <elliott> it might not be an extension any more what with haskell twentyten
22:33:09 <oerjan> oh well hm
22:33:16 <oerjan> point-free
22:33:58 <CakeProphet> the main problem I have with point-free is I can't READ ANYTHING.
22:34:14 <elliott> Illegal parallel list comprehension: use -XParallelListComp
22:34:15 <elliott> :(
22:34:20 <elliott> CakeProphet: that's your problem, not point-free's.
22:34:25 <elliott> or, well, sometimes it's the code's problem.
22:34:38 <olsner> not if the code is point-free, that is never wrong
22:34:38 <oerjan> :t (*>)
22:34:39 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f b
22:34:45 <oerjan> :t ($>)
22:34:45 <lambdabot> Not in scope: `$>'
22:34:47 <elliott> but, well, I can't read obfuscated perl, doesn't make perl a bad language :D
22:34:49 <elliott> oh hey
22:34:49 <oerjan> :t (>$)
22:34:50 <lambdabot> Not in scope: `>$'
22:34:51 <elliott> where's olsner wher eyou need him
22:34:52 <oerjan> bah
22:34:53 <elliott> the answer -- RIGHT HERE
22:34:59 <elliott> but i ... forget what ... i ... was ... oh yes thats what
22:35:03 <oerjan> @hoogle f a -> b -> f b
22:35:03 <lambdabot> Control.Applicative (<$) :: Functor f => a -> f b -> f a
22:35:03 <lambdabot> Control.Applicative (*>) :: Applicative f => f a -> f b -> f b
22:35:03 <lambdabot> Prelude (>>) :: Monad m => m a -> m b -> m b
22:35:06 <elliott> olsner: bochs has some kind of interface to its console, right?
22:35:10 <elliott> so OS stuff can print debug to it
22:35:14 <CakeProphet> elliott: Haskell isn't a bad language. I'm saying point-free style, in very complicated situations, results in a mess of code that takes far too long to decipher.
22:35:15 <oerjan> hm
22:35:21 <CakeProphet> elliott: a mess of very very concise code.
22:35:23 <CakeProphet> :P
22:35:24 <elliott> CakeProphet: Let me rewrite what you said to actually be not wrong:
22:35:34 <elliott> CakeProphet: Point-free style, when misapplied, results in a mess.
22:35:36 <elliott> Similarly:
22:35:41 <elliott> Perl, when misapplied, results in a mess.
22:35:50 <CakeProphet> ..sure.
22:36:15 <olsner> elliott: hmm, yes istr reading something like that from the config menus... I think it might not be enabled by default though
22:36:19 <elliott> Point-free, when it can be executed well -- which it usually can be if you have the right combinators -- is more readable than the pointful version (to someone who's experienced reading Haskell)
22:36:30 <elliott> It's essentially a higher level of abstraction, just one that can be misapplied.
22:36:36 <oerjan> digit = choice . zipWith (<*) [0..] $ try . string <$> digits
22:36:39 <CakeProphet> I don't really see where Perl comes into play with the readability of point-free style. But sure, non-relevant comparisons are fun.
22:37:02 <olsner> > fix$(<$>)<$>(:)<*>((<$>((:[{- thor's mother -}])<$>))(=<<)<$>(*)<$>(*2))$1
22:37:03 <lambdabot> [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,...
22:37:21 <elliott> olsner: beautiful
22:37:32 <oerjan> elliott: ^ better?
22:37:37 <elliott> no, but olsner's is
22:37:45 <oerjan> :(
22:37:47 <elliott> i kid, i haven't looked at yours
22:37:48 <elliott> i will now
22:38:02 <elliott> oerjan: that's pretty nice
22:38:09 <elliott> right now I'm trying to make integer less ugly though, but I'll save that
22:38:17 <elliott> actually I'll use it
22:38:30 <elliott> since the parallel comprehension is non-standard
22:38:55 <CakeProphet> :t digits
22:38:55 <lambdabot> Not in scope: `digits'
22:38:57 <Vorpal> elliott, how goes the spec!!
22:39:00 <CakeProphet> ah, Parsec.
22:39:08 <elliott> Vorpal: hi bro
22:39:11 <CakeProphet> @hoogle digits
22:39:11 <lambdabot> Prelude floatDigits :: RealFloat a => a -> Int
22:39:11 <lambdabot> Numeric floatToDigits :: RealFloat a => Integer -> a -> ([Int], Int)
22:39:11 <lambdabot> Numeric lexDigits :: ReadS String
22:39:18 <Vorpal> elliott, hallo!
22:39:18 <elliott> CakeProphet: digits is a local define.
22:39:21 <elliott> Vorpal: sup
22:39:25 <CakeProphet> elliott: ..oh, nevermind then.
22:39:43 <Vorpal> elliott, not well, there is a computer spec missing. And how are you?
22:39:58 <Vorpal> not feeling*
22:40:09 <elliott> Vorpal: actually legitimately ill
22:40:14 <Vorpal> elliott, ouch
22:40:24 <Vorpal> elliott, well then you have time for the spec now!
22:40:28 <elliott> YEAH NOW YOU FEEL BAD FOR MAKING FUN OF MY SITUATION ;_____;
22:40:38 <olsner> elliott: looks like you just write to port e9, if it's enabled: http://heim.ifi.uio.no/~inf3150/doc/tips_n_tricks/e9hack.html
22:40:44 <elliott> Vorpal: but what if the painkillers make me insane :/
22:40:49 <CakeProphet> what is <*?
22:40:54 <Vorpal> elliott, can they do that?
22:40:56 <elliott> olsner: heh, noice
22:41:01 <elliott> Vorpal: i don't know, i'm too ill to think clearly
22:41:12 <oerjan> <elliott> integer = natural >>= liftA2 (<|>) ((string "hu" *>) . return . negate) return
22:41:48 <Vorpal> elliott, ouch
22:41:49 <elliott> Vorpal: see, i'm writing crazy code like that
22:41:54 <elliott> clearly not sane right now
22:41:56 <Vorpal> elliott, well get off irc, and rest then
22:42:10 <Vorpal> elliott, that code looks fine to me. What is liftA2 though?
22:42:14 <Vorpal> I don't remember that one
22:42:16 <elliott> are you advising me to stay in bed all day and waste time, because that's... exactly what i'm doing
22:42:21 <CakeProphet> @hoogle (*>)
22:42:21 <lambdabot> Control.Applicative (*>) :: Applicative f => f a -> f b -> f b
22:42:22 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
22:42:22 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
22:42:25 <elliott> Vorpal: liftM2, but s/Monad/Applicative/
22:42:29 <Vorpal> elliott, ah
22:42:39 <Vorpal> elliott, and uh. <|> is?
22:42:46 <CakeProphet> I believe Parsec's choice operator.
22:43:04 <elliott> oerjan: your digit doesn't type
22:43:07 <CakeProphet> similar to a | in a regex or... many other things I don't remember the names of.
22:43:09 <Vorpal> oh right, that makes quite a lot of sense then
22:43:09 <elliott> Vorpal: actually the applicative choice thing too
22:43:13 <Vorpal> ah
22:43:17 <Vorpal> even more sense
22:43:27 <elliott> erm, Alternative rather
22:43:29 <Vorpal> elliott, now what does it do?
22:43:35 <CakeProphet> ...applicative choice? I still need to learn the rest of Applicative.
22:43:38 <elliott> Vorpal: (<|>) :: Alternative f => f a -> f a -> f a
22:43:46 <elliott> CakeProphet: it's just a generalisation, pretty much
22:43:48 <Vorpal> elliott, no I meant the code in general
22:43:49 <elliott> CakeProphet: I hide Parsec's
22:43:59 <elliott> because the Alternative operator works on the Parsec monad too
22:44:01 <elliott> Vorpal: what it says on the tin
22:44:12 <Vorpal> elliott, meh, too tired to parse it atm
22:44:17 <CakeProphet> elliott: right, but does Applicative have a notion of success and failure like Parsec?
22:44:23 <oerjan> <CakeProphet> what is <*? <-- oh hm, elliott: s/<*/<$/
22:44:42 <elliott> CakeProphet: no, like I said, Alternative does
22:44:45 <elliott> ?src Alternative
22:44:45 <lambdabot> class Applicative f => Alternative f where
22:44:46 <lambdabot> empty :: f a
22:44:46 <lambdabot> (<|>) :: f a -> f a -> f a
22:44:56 <elliott> > [9,0] <|> [0,9] -- hmm
22:44:57 <lambdabot> [9,0,0,9]
22:44:59 <elliott> right
22:45:04 <elliott> (think list monad)
22:45:18 <elliott> oerjan: yay, works
22:45:25 <CakeProphet> ah okay.
22:45:31 <elliott> name :: Parser String
22:45:31 <elliott> name = concat . many1 $ liftA2 (:) normalCons vowel
22:45:32 <elliott> alas this doesn't
22:45:35 <elliott> for obvious reasons
22:45:40 <elliott> ?pl \x y -> [x,y]
22:45:40 <lambdabot> (. return) . (:)
22:45:42 <elliott> sigh
22:45:49 <CakeProphet> elliott: looks very much like MonadPlus
22:45:55 <elliott> ?src MonadPlus
22:45:56 <lambdabot> Source not found. You type like i drive.
22:46:06 <elliott> CakeProphet: I actually think Alternative /is/ MonadPlus
22:46:08 <elliott> yeah, it is
22:46:09 <Vorpal> what an insult
22:46:21 <elliott> CakeProphet: it's just that a lot of the haskell library doesn't consider things above monads
22:46:27 <CakeProphet> elliott: for list it seems to be exactly the same.
22:46:31 <elliott> it is the same, always
22:46:39 <elliott> similarly, liftM2 is superfluous
22:46:42 <elliott> it's the same as liftA2
22:46:46 <elliott> but we haven't had Applicatives as long as monads
22:46:48 <oerjan> elliott: concat <$> up there
22:46:50 <elliott> thus why all this stuff is duplicated
22:47:03 <CakeProphet> ah so <$ is fmap.const
22:47:13 <elliott> Couldn't match expected type `[Char]' with actual type `Char'
22:47:13 <elliott> Expected type: ParsecT
22:47:13 <elliott> String () Data.Functor.Identity.Identity [Char]
22:47:20 <elliott> :t fmap.const
22:47:21 <lambdabot> forall a b (f :: * -> *). (Functor f) => b -> f a -> f b
22:47:24 <elliott> :t (<$)
22:47:26 <lambdabot> forall a (f :: * -> *) b. (Functor f) => a -> f b -> f a
22:47:30 <elliott> yep
22:47:40 <Vorpal> at least the type is the same
22:47:50 <elliott> Vorpal: same thing :)
22:47:54 <CakeProphet> according to the documentation it's the same thing.
22:47:58 <Vorpal> elliott, come on, (+) and (-) have the same type, don't they?
22:47:59 <oerjan> yeah
22:48:06 <Vorpal> :t (-)
22:48:08 <lambdabot> forall a. (Num a) => a -> a -> a
22:48:09 <Vorpal> :t (+)
22:48:09 <elliott> what's the name of the principle that lets you derive facts from types
22:48:10 <lambdabot> forall a. (Num a) => a -> a -> a
22:48:11 <Vorpal> :t (*)
22:48:12 <lambdabot> forall a. (Num a) => a -> a -> a
22:48:13 <Vorpal> see
22:48:15 <elliott> what's the name of the principle that lets you derive facts from types
22:48:27 <elliott> because I think we could deduce that (fmap . const) and (<$) are the same by just the types
22:48:27 <Vorpal> elliott, now we know that multiplication is addition! :P
22:48:32 <elliott> or well hm
22:48:32 <oerjan> elliott: parametricity
22:48:35 <elliott> ?src Functor
22:48:35 <lambdabot> class Functor f where
22:48:35 <lambdabot> fmap :: (a -> b) -> f a -> f b
22:48:43 <elliott> yeah
22:48:48 <elliott> I have a hunch it would work here
22:48:59 <Vorpal> okay
22:49:00 <oerjan> and i think it applies to fmap.const = (<$)
22:49:05 <elliott> let's see ... (a -> f b -> f a)
22:49:16 <elliott> yeah
22:49:18 <elliott> it has to look like
22:49:25 <oerjan> at least assuming a Functor instance respecting the laws
22:49:25 <elliott> \a b -> fmap _ b
22:49:27 <olsner> I think you can make more functions of the same type by using undefined
22:49:30 <elliott> because that's the only way to get an f thing
22:49:39 <elliott> and the only (a -> b) here is const
22:49:41 <elliott> since we can't inspect our a
22:49:50 <CakeProphet> Ah there's an instance for MonadPlus m => Alternative (WrappedMonad m)
22:49:53 <elliott> so yeah, there is only one function of the type (a -> f b -> f a)
22:50:22 <oerjan> olsner: yeah basic parametricity only works for terminating functions, although there is some research on adding non-termination and seq
22:50:24 <Vorpal> elliott, unless you involve bottom I think?
22:50:31 <elliott> Vorpal: yeah yeah, those aren't real functions
22:50:34 <elliott> total function, if you will, whatever
22:50:41 <oerjan> (it's a feature of System F lambda calculus)
22:50:42 <elliott> name = concat <$> many1 (liftA2 (\x y -> [x,y]) normalCons vowel)
22:50:43 <Vorpal> :t seq
22:50:44 <elliott> oerjan: so agley :(
22:50:44 <lambdabot> forall a t. a -> t -> t
22:50:46 <Vorpal> :t id
22:50:46 <CakeProphet> :t many
22:50:47 <lambdabot> forall (f :: * -> *) a. (Alternative f) => f a -> f [a]
22:50:47 <lambdabot> forall a. a -> a
22:50:50 <Vorpal> hm
22:51:01 <CakeProphet> > many [1]
22:51:04 <lambdabot> mueval-core: Time limit exceeded
22:51:10 <oerjan> heh
22:51:12 <CakeProphet> :)
22:51:20 <elliott> > many (return 9)
22:51:21 <Vorpal> wtf is the t. in seq's type?
22:51:21 <lambdabot> No instance for (GHC.Show.Show (f [t]))
22:51:21 <lambdabot> arising from a use of `M76367029...
22:51:25 <elliott> > many (Just 9)
22:51:27 <elliott> Vorpal: "forall a t."
22:51:28 <lambdabot> mueval-core: Time limit exceeded
22:51:31 <Vorpal> elliott, *oh*
22:51:37 <Vorpal> elliott, why couldn't they say so :P
22:51:40 <olsner> Vorpal: it's a type variable
22:51:42 <elliott> Vorpal: what?
22:51:44 <elliott> it does
22:51:51 <Vorpal> elliott, the forall is implicit
22:51:52 <elliott> seq :: a -> b -> b -- from GHCi
22:51:54 <Vorpal> wait no
22:51:58 <Vorpal> I fail at reading
22:51:59 <elliott> Vorpal: <lambdabot> forall a t. a -> t -> t
22:51:59 -!- variable has quit (Remote host closed the connection).
22:52:02 <Vorpal> wake me up
22:52:05 <elliott> note that ghci actually omits all top-level foralls
22:52:11 <Vorpal> ah right
22:52:12 <elliott> because they can be unambiguously abbreviated
22:52:13 <oerjan> elliott: sequence [normalCons, vowel]
22:52:16 <elliott> (and this is in haskell itself)
22:52:17 <elliott> oerjan: oh nice
22:52:18 <Vorpal> :t undefined
22:52:19 <lambdabot> forall a. a
22:52:33 -!- variable has joined.
22:52:57 <Vorpal> night →
22:53:13 <oklopol> "<elliott> but, well, I can't read obfuscated perl, doesn't make perl a bad language :D" <<< but doesn't it kind of make the coding style bad? or maybe i misunderstood what your point was
22:53:27 <oerjan> elliott: iirc i saw someone apply parametricity to typeclasses like Functor before; basically you need to add the typeclass methods as extra parameters
22:53:32 <CakeProphet> > pure []
22:53:33 <lambdabot> No instance for (GHC.Show.Show (f [a]))
22:53:33 <lambdabot> arising from a use of `M19706092...
22:53:39 <CakeProphet> :t pure []
22:53:40 <lambdabot> forall a (f :: * -> *). (Applicative f) => f [a]
22:54:08 <elliott> oerjan: right
22:54:15 <elliott> oerjan: well, it's easy to prove "by hand"
22:54:28 <elliott> oklopol: sure, but we're considering point-free style a language here, not a style
22:54:33 <CakeProphet> jesus Haskell code can be confusing...
22:54:40 <monqy> haskell is easy
22:54:51 <elliott> oklopol: i.e. the general point is "~(there are unreadable examples of X -> X is unreadable)"
22:55:04 <elliott> > pure 9 :: [Integer]
22:55:06 <lambdabot> [9]
22:55:12 <CakeProphet> uh, sure, once you learn everything. Might as well say anything is easy.
22:55:24 <elliott> haskell is easier than C
22:55:41 <monqy> what elliott said
22:55:55 <CakeProphet> eh. I don't feel like making language comparisons today.
22:56:11 <oklopol> "<elliott> oklopol: sure, but we're considering point-free style a language here, not a style" <<< hmm okay accepted
22:57:14 <CakeProphet> Haskell itself is easy. Learning everything about its libraries is not so much.
22:57:33 -!- Vorpal has quit (Ping timeout: 260 seconds).
22:57:49 <monqy> what's not so much about it
22:58:14 <olsner> maybe it just isn't a lot
22:59:03 <oklopol> CakeProphet just got owned
22:59:20 <CakeProphet> uh, if you say so.
22:59:21 <oklopol> owned like a nigger!
22:59:40 <CakeProphet> more like: CakeProphet just got interpretted literally!
23:00:59 <oklopol> whatever you say slave boy :|
23:02:47 <CakeProphet> > let x = (:) <$> Nothing <*> y; y = x <|> pure [] in x
23:02:48 <lambdabot> Nothing
23:03:06 <CakeProphet> > let x = (:) <$> Maybe 5 <*> y; y = x <|> pure [] in x
23:03:06 <lambdabot> Not in scope: data constructor `Maybe'
23:03:12 <CakeProphet> > let x = (:) <$> Just 5 <*> y; y = x <|> pure [] in x
23:03:15 <lambdabot> mueval-core: Time limit exceeded
23:03:25 <CakeProphet> er.. what.
23:03:43 <CakeProphet> Why does that return Nothing.
23:03:49 <CakeProphet> > some Nothing
23:03:50 <lambdabot> Nothing
23:03:56 <CakeProphet> :t some
23:03:57 <lambdabot> forall (f :: * -> *) a. (Alternative f) => f a -> f [a]
23:04:00 <CakeProphet> ah
23:04:02 <CakeProphet> f [a]
23:04:38 <elliott> > some (Just 9)
23:04:42 <lambdabot> mueval-core: Time limit exceeded
23:04:49 <CakeProphet> strict evaluation?
23:04:50 <elliott> > fmap (take 9) (some (Just 9))
23:04:51 <oerjan> <elliott> note that ghci actually omits all top-level foralls <-- there's a flag for that
23:04:54 <lambdabot> mueval-core: Time limit exceeded
23:05:00 <elliott> oerjan: but it's desirable :P
23:05:06 <elliott> at least for confused beginners
23:05:33 <CakeProphet> elliott: so basically what I interpret from these bits of code is that I'll never really want to use some or many.
23:05:46 <elliott> well this is lambdabot and Maybe, both of which are contrived
23:05:48 <elliott> > some [9]
23:05:52 <lambdabot> mueval-core: Time limit exceeded
23:05:56 <elliott> what are some and many even meant for, anyway?
23:05:57 <CakeProphet> same thing..
23:05:58 <elliott> I haven't checked
23:06:07 <CakeProphet> :t some
23:06:08 <lambdabot> forall (f :: * -> *) a. (Alternative f) => f a -> f [a]
23:06:12 <CakeProphet> Alternative
23:06:21 <oerjan> <CakeProphet> > pure [] <-- it's ambiguous which Applicative you are using so lambdabot ends up creating a dummy type for it, which of course has no Show instance
23:06:28 <CakeProphet> oerjan: right.
23:08:00 <CakeProphet> :t pure (*3) <*> 5
23:08:01 <lambdabot> forall a (f :: * -> *). (Num a, Applicative f, Num (f a)) => f a
23:08:20 <CakeProphet> heh.
23:08:35 <CakeProphet> might be useful for Signal t :)
23:09:02 <olsner> grr, windows sends mousewheel events to the focused window, not to the window under the cursor
23:09:19 <CakeProphet> > (*3) <*> 5
23:09:20 <lambdabot> Overlapping instances for GHC.Show.Show ((a -> b) -> b)
23:09:20 <lambdabot> arising from a u...
23:09:22 <elliott> olsner: huh? surely not
23:09:27 <elliott> you can scroll background windows in Windows, can't you?
23:09:36 <elliott> I think the top window gets a chance to /handle/ it
23:09:40 <elliott> but if it declines it bubbles downwards
23:09:52 <CakeProphet> > ((*3) <*> 5) (+)
23:09:52 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
23:09:53 <lambdabot> arising from a use of `...
23:10:19 <CakeProphet> > ((*3) <*> 5) (-3)
23:10:20 <lambdabot> -9
23:10:31 <CakeProphet> excellent. I can now obfuscate arithmetic.
23:11:10 <olsner> elliott: hmm, however the mechanism, the effect is that the wrong window scrolls :)
23:11:16 <CakeProphet> > ((*3) <*> 5) (-4)
23:11:16 <lambdabot> -12
23:11:28 <oerjan> > many "a"
23:11:32 <lambdabot> mueval-core: Time limit exceeded
23:11:40 <oerjan> wtf
23:11:48 <oerjan> :t many
23:11:49 <lambdabot> forall (f :: * -> *) a. (Alternative f) => f a -> f [a]
23:11:50 <CakeProphet> the src for many is:
23:11:51 <oerjan> :t some
23:11:52 <lambdabot> forall (f :: * -> *) a. (Alternative f) => f a -> f [a]
23:11:58 <olsner> (can you run SC2 in linux somehow? that would eliminate all my windows problems)
23:12:00 <CakeProphet> > let x = (:) <$> Maybe 5 <*> y; y = x <|> pure [] in x
23:12:01 <lambdabot> Not in scope: data constructor `Maybe'
23:12:06 <CakeProphet> replace Maybe 5 with your parameter
23:12:18 <elliott> olsner: expand SC2
23:12:24 <CakeProphet> Starcraft 2
23:12:29 <elliott> CakeProphet: i asked olsner.
23:12:29 <olsner> yes, starcraft 2
23:12:35 <oerjan> ah yes
23:12:36 <CakeProphet> elliott: nope too bad.
23:12:43 <elliott> olsner: http://appdb.winehq.org/objectManager.php?sClass=version&iId=20882
23:12:45 <elliott> gold rating, not bad
23:12:52 <oerjan> @src some
23:12:53 <lambdabot> some v = some_v
23:12:53 <lambdabot> where many_v = some_v <|> pure []
23:12:53 <lambdabot> some_v = (:) <$> v <*> many_v
23:13:26 <oerjan> oh it's just some v = v <|> many v
23:13:34 <oerjan> many v can be zero
23:13:54 <elliott> ugly definition
23:14:46 <CakeProphet> so I'm wondering..
23:15:01 <CakeProphet> can a time-varying signal be a monad?
23:15:23 <olsner> elliott: cool, looks like there is some chance of success then!
23:15:24 <CakeProphet> I know it can in the discrete case, since list is a monad, but what about in the continuous case?
23:16:09 <oerjan> or wait can it
23:16:12 <oerjan> @src many
23:16:12 <lambdabot> Source not found. Do you think like you type?
23:16:20 <oerjan> sheesh
23:16:55 <CakeProphet> http://www.haskell.org/ghc/docs/6.12.1/html/libraries/base/src/Control-Applicative.html#Alternative
23:17:33 <elliott> CakeProphet: functions are monads, yes
23:17:45 <elliott> I'm not sure if you can analogise the function monad instance to the list instance. oerjan?
23:18:03 <oerjan> ah indeed it was right
23:18:13 <oerjan> elliott: hm?
23:18:22 <elliott> oerjan: <CakeProphet> can a time-varying signal be a monad? <CakeProphet> I know it can in the discrete case, since list is a monad, but what about in the continuous case?
23:18:23 <elliott> i.e.
23:18:29 <elliott> type DiscreteSignal t = [t]
23:18:33 <elliott> type ContinuousSignal t = Time -> t
23:18:37 <elliott> where Time is a real, conceptually
23:18:53 <elliott> both have monad instances, but is the monad instance to the latter analogisable as a "continuous" version of the former (list monad)?
23:19:02 <oerjan> indeed the >>= definitions don't correspond much
23:19:10 <elliott> right
23:20:19 <oerjan> iirc the -> monad _is_ analogous to the ZipWith monad
23:20:49 <CakeProphet> that might be useful, but I don't know how the ZipWith monad works.
23:21:10 <oerjan> well i'm not sure it's defined in the library, even
23:21:14 <oerjan> er *ZipList
23:21:23 <oerjan> > ZipList [1,2,3]
23:21:24 <lambdabot> No instance for (GHC.Show.Show (Control.Applicative.ZipList t))
23:21:24 <lambdabot> arising ...
23:21:30 <oerjan> wtf
23:21:33 <elliott> newtype ZipList a = ZipList { getZipList :: [a] }
23:21:33 <elliott> instance Functor ZipList where
23:21:33 <elliott> fmap f (ZipList xs) = ZipList (map f xs)
23:21:42 <elliott> oerjan: try getZipList
23:21:55 <oerjan> WHY THE FUCK DIDN'T THEY ADD A SHOW INSTANCE
23:22:08 <elliott> CONOOOOOOOOOR
23:22:08 <CakeProphet> oerjan: not cool enough.
23:22:27 <elliott> pure x = ZipList (repeat x)
23:22:29 <elliott> indeed, looks like a function ;D
23:23:00 <elliott> I wonder if (ZipList a) is the same as (Integer -> a) if you only have the Functor/Applicative/Monad instances (not the constructor)
23:23:21 <oerjan> well ZipLists can be finite
23:23:39 <oerjan> but otherwise, that's essentially what i recall discovering
23:24:38 <elliott> oerjan: no they can't, if you don't have the constructor
23:24:40 <oerjan> > getZipList $ ZipList [1,2,3] >>= \n -> ZipList [4,5,6]
23:24:40 <lambdabot> No instance for (GHC.Base.Monad Control.Applicative.ZipList)
23:24:40 <lambdabot> arising fro...
23:24:44 <oerjan> sadly
23:24:45 <elliott> pure results in an infinite list
23:24:49 <elliott> and return is ofc = pure
23:24:54 <elliott> so there's no way to get a finite list
23:24:57 <oerjan> elliott: erm you cannot construct id
23:25:03 <oerjan> only constant functions
23:25:25 <elliott> oerjan: hmm, can't you with <*>?
23:25:51 <oerjan> how? both arguments are repeats
23:25:53 <elliott> > let foo n = pure n <*> foo (succ n) in foo 0 :: ZipList Integer
23:25:55 <lambdabot> No instance for (GHC.Enum.Enum
23:25:55 <lambdabot> (GHC.Integer.Type.Intege...
23:26:03 <elliott> > let foo n = pure n <*> foo (n+9) in getZipList (foo 0)
23:26:04 <lambdabot> *Exception: stack overflow
23:26:11 <elliott> hm oh
23:26:21 <elliott> > let foo n = pure (const n) <*> foo (n+9) in getZipList (foo 0)
23:26:22 <lambdabot> *Exception: stack overflow
23:26:25 <elliott> meh
23:27:16 <oerjan> > getZipList (pure (const 1) <*> pure undefined)
23:27:16 <lambdabot> [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,...
23:27:56 <oerjan> since it cannot _look_ at undefined, it cannot distinguish pure undefined from anything else
23:28:16 <elliott> right
23:28:40 <oerjan> and your recursion is going in the wrong _direction_, you aren't actually moving _along_ the list
23:28:44 <elliott> right
23:29:23 <CakeProphet> so if I made a union of [t] and (Float -> t) I could define applicative/monad/functor instances but they would have different semantics for each case.
23:29:44 <elliott> CakeProphet: have you been paying attention?
23:29:48 <elliott> there is more than one list monad
23:29:54 <elliott> and one of them acts like functions
23:30:16 <CakeProphet> no I haven't actually. you guys started talking about stuff that is currently over my head so I stopped paying attention. :)
23:30:23 <oerjan> elliott: pure f <*> pure x = pure (f x) so you cannot construct anything other than pure x just from the methods in _any_ Applicative instance
23:31:25 <elliott> oerjan: right
23:31:34 <elliott> oerjan: same with Monad I think
23:31:58 <oerjan> hm right...
23:35:18 <oerjan> <elliott> integer = natural >>= liftA2 (<|>) ((string "hu" *>) . return . negate) return
23:35:36 <oerjan> :t (*>)
23:35:36 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f b
23:36:09 <oerjan> :t ((?p *>) . return . negate)
23:36:09 <lambdabot> forall (f :: * -> *) a b. (?p::f a, Applicative f, Monad f, Num b) => b -> f b
23:36:43 <oerjan> oh -> instance
23:36:46 <CakeProphet> ?p?
23:36:47 <lambdabot> Maybe you meant: ? pl
23:36:59 <oerjan> CakeProphet: dynamic scoped variable
23:37:01 <CakeProphet> ah
23:37:22 <elliott> dammit Maharba respond quickly ;D
23:37:28 <oerjan> useful for getting types out of lambdabot without needing to add \p -> to everything
23:38:25 <elliott> 05:30:23: <RodgerTheGreat> I'd guess that an entirely nature or an entirely nurture explanation for homosexuality is oversimplifying things. Homosexuality is associated with notably different brain chemistry (for the person's gender), so I'd guess there's an inherited propensity that's either repressed or reinforced based on the person's experiences
23:38:25 <elliott> 05:31:04: <RodgerTheGreat> Many diseases, conditions and other types of deviations work like this.
23:38:25 <elliott> irc user rodgerthegreat proves abnormality of homosexuality, news at eleven
23:38:42 <oerjan> @hoogle optionally
23:38:42 <lambdabot> No results found
23:38:46 <oerjan> @hoogle optional
23:38:46 <lambdabot> Control.Applicative optional :: Alternative f => f a -> f (Maybe a)
23:38:47 <lambdabot> Text.Parsec.Combinator optional :: Stream s m t => ParsecT s u m a -> ParsecT s u m ()
23:38:47 <lambdabot> Text.ParserCombinators.ReadP optional :: ReadP a -> ReadP ()
23:40:24 <oerjan> @hoogle f a -> f (a -> b) -> f b
23:40:25 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
23:40:25 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
23:40:25 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
23:40:50 <oerjan> > (0$0 <**>)
23:40:51 <lambdabot> The operator `Control.Applicative.<**>' [infixl 4] of a section
23:40:51 <lambdabot> must h...
23:41:00 <oerjan> > (0$0 >>=)
23:41:00 <lambdabot> The operator `GHC.Base.>>=' [infixl 1] of a section
23:41:00 <lambdabot> must have lower pr...
23:41:33 <elliott> ?info (>>=)
23:41:33 <lambdabot> (>>=)
23:41:36 <elliott> ?info (>>=asd
23:41:36 <lambdabot> Unbalanced parentheses
23:41:40 <elliott> ?info (>>=) :: dicks
23:41:40 <lambdabot> (>>=) :: dicks
23:41:42 <elliott> wat
23:41:47 <elliott> ?help info
23:41:47 <lambdabot> help <command>. Ask for help for <command>. Try 'list' for all commands
23:41:51 <elliott> presumably it's an error correction then
23:42:58 <elliott> 06:04:40: <RodgerTheGreat> in my opinion, functional languages are pretty and clean looking, but are an *inherently* inefficient way of programming, because they don't work remotely like conventional hardware does. Magical perfect compilers that can optimize in every conceivable fashion could theoretically balance this, but Magical perfect compilers do not exist. I like my imperative languages.
23:42:58 <elliott> has rodgerthegreat ever actually said anything that's true? i'm honestly curious
23:42:59 <elliott> oklopol?
23:43:21 <oerjan> elliott: integer = natural <**> choice [negate <$ string "hu", return id]
23:43:30 <elliott> oerjan: hot
23:45:11 <CakeProphet> elliott: obviously roger doesn't know how Haskell works.
23:45:21 <oerjan> > (0$0 <|>)
23:45:22 <lambdabot> The operator `Control.Applicative.<|>' [infixl 3] of a section
23:45:22 <lambdabot> must ha...
23:45:37 <CakeProphet> must ha...!
23:45:44 <oerjan> elliott: i guess <|> rather than choice suffices
23:45:59 <elliott> integer = natural <**> (negate <$ string "hu" <|> return id)
23:46:00 <elliott> nice
23:46:14 <oerjan> > (0$0 <$)
23:46:14 <lambdabot> The operator `GHC.Base.<$' [infixl 4] of a section
23:46:15 <lambdabot> must have lower pre...
23:46:51 <oerjan> remembering precedence does get a bit hairy
23:46:57 <CakeProphet> > 0 <$ [1..]
23:46:58 <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,...
23:47:23 <CakeProphet> so is <$ less precedent than <|>?
23:47:43 <oerjan> <elliott> presumably it's an error correction then <-- iirc...
23:47:51 <elliott> ?enfo (
23:47:51 <lambdabot> Maybe you meant: echo undo
23:47:55 <elliott> ?echo (
23:47:55 <lambdabot> echo; msg:IrcMessage {msgServer = "freenode", msgLBName = "lambdabot", msgPrefix = "elliott!~elliott@unaffiliated/elliott", msgCommand = "PRIVMSG", msgParams = ["#esoteric",":?echo ("]} rest:"("
23:47:59 <elliott> xD
23:48:00 <oerjan> ?info do x <- test; f x
23:48:01 <lambdabot> test >>= \ x -> f x
23:48:05 <elliott> ah, undo
23:48:47 <oerjan> CakeProphet: <$ is 4, so binds tighter than <|> at 3
23:49:10 <CakeProphet> so what are negate and string "hu"?
23:49:14 <oerjan> CakeProphet: note that's the point of my > (0$0 ...) tests above
23:49:16 <oerjan> :t negate
23:49:17 <lambdabot> forall a. (Num a) => a -> a
23:49:34 <oerjan> string "hu" is a Parsec parser which parser precisely that string
23:49:39 <CakeProphet> string is from Parsec ri--yes
23:49:45 <oerjan> *parses
23:50:01 <CakeProphet> so what on earth is that <$ doing to String "hu"
23:50:03 <CakeProphet> *string
23:50:19 <oerjan> elliott: hm i just realized... does string do try internally?
23:50:34 <elliott> oerjan: ah, it should
23:50:38 <elliott> but doesn't
23:50:44 <CakeProphet> oerjan: yeah I believe it backtracks on failure.
23:50:47 <oerjan> CakeProphet: it's throwing away the monadic result (which is just "hu" iirc) and replacing it by the negate function
23:50:51 <elliott> CakeProphet: wrong
23:50:56 <elliott> I had to use (try . string) in digit
23:50:57 <elliott> integer = natural <**> (negate <$ try (string "hu") <|> return id)
23:50:59 <elliott> oerjan: fix't
23:52:51 <oerjan> CakeProphet: Parsec has a strange model for avoiding keeping too many possible backtrackings. basically once a parser parses a single character correctly, it refuses to backtrack to other options for it, unless you use the try combinator
23:53:36 <oerjan> so you have to be careful to use try if you have multiple possible parses starting with the same character
23:53:51 <elliott> that's conventional, not strange, isn't it :)
23:54:23 <oerjan> i don't know if that's conventional, LALR(1) parsers certainly don't do that...
23:54:31 <elliott> well for combinator parsers
23:55:04 <oerjan> although i saw a brief discussion of the matter after the recent attoparsec fiasco on reddit
23:55:34 <elliott> me too :D
23:55:40 <CakeProphet> so when <*> and friends apply to Parsec they don't change the matching behavior only the result?
23:55:43 <elliott> that's where i picked up the opinion that it was conventional ;D
23:56:05 <oerjan> CakeProphet: yep. that's sort of the essence of Applicative combinators, they can only modify results
23:56:41 <CakeProphet> so since the right-hand side of <**> is being applied to the left hand side, is string "hu" actually doing any matching?
23:57:13 -!- GreaseMonkey has joined.
23:57:13 -!- GreaseMonkey has quit (Changing host).
23:57:13 -!- GreaseMonkey has joined.
23:57:14 <oerjan> CakeProphet: of course
23:58:07 <oerjan> <**> is the same as liftA2 (flip ($)) iiuc
23:58:26 <CakeProphet> ah, based on the type I thought it was flip (<*>)
23:58:48 <CakeProphet> but uh
23:58:55 <CakeProphet> @src (<*>)
23:58:56 <lambdabot> Source not found. Where did you learn to type?
23:59:00 <oerjan> oh i hope not, as that's would make it useless...
23:59:10 <oerjan> CakeProphet: Applicative method
23:59:14 <oerjan> @src Applicative
23:59:14 <lambdabot> class Functor f => Applicative f where
23:59:15 <lambdabot> pure :: a -> f a
23:59:15 <lambdabot> (<*>) :: f (a -> b) -> f a -> f b
23:59:46 <elliott> <**> is flip <*> IIRC
2011-06-07
00:00:08 <elliott> -- | A variant of '<*>' with the arguments reversed.
00:00:09 <elliott> (<**>) :: Applicative f => f a -> f (a -> b) -> f b
00:00:09 <oerjan> elliott: what? that would be useless
00:00:11 <CakeProphet> so.... 4hu is -4?
00:00:19 <elliott> oerjan: well it's an aesthetic thing...
00:00:30 <elliott> CakeProphet: no, luhu is -4
00:00:38 <CakeProphet> oh
00:00:48 <oerjan> > [1,2] <**> [(+5), (+10)]
00:00:48 <lambdabot> [6,11,7,12]
00:01:03 <oerjan> > flip (<*>) [1,2] [(+5), (+10)]
00:01:04 <lambdabot> [6,7,11,12]
00:01:11 <oerjan> elliott: nope i was right :)
00:01:25 <CakeProphet> ah ookay, because with liftA2 or whatever you're doing when you call <**>, you're chaining the two monads together with >>
00:02:02 <CakeProphet> ...somewhere.
00:02:37 <elliott> oerjan: um i am quoting from the code itself here
00:02:44 <elliott> -- | A variant of '<*>' with the arguments reversed.
00:02:44 <elliott> (<**>) :: Applicative f => f a -> f (a -> b) -> f b
00:02:44 <elliott> (<**>) = liftA2 (flip ($))
00:02:51 <elliott> crock of shit documentation
00:02:54 <oerjan> CakeProphet: well another way to say it, is x <**> f = flip ($) <$> x <*> f
00:03:11 <elliott> oerjan: oh i think it means the arguments to the _function_
00:03:11 <elliott> right
00:03:40 <oerjan> elliott: yeah it also reverses the intuitive execution order, which is why <**> is useful here...
00:03:59 <CakeProphet> oerjan: I was basically forgetting that, since Parsecs matching semantics are carried through >>=, when you use things like applicative functions you're still chaining together the parsers. I'm not entirely sure what I thought was going on before.
00:06:04 <oerjan> CakeProphet: well this is sort of because by convention when you make monads into applicatives you let <*> have a left-to-right execution order
00:06:24 <oerjan> it occurs to me that would be an entirely correct Applicative instance to do it reversely, actually.
00:06:37 <oerjan> in fact you could make a newtype for it, does it exist?
00:06:53 <elliott> ?hoogle liftM3
00:06:53 <lambdabot> Control.Monad liftM3 :: Monad m => (a1 -> a2 -> a3 -> r) -> m a1 -> m a2 -> m a3 -> m r
00:06:54 <elliott> ?hoogle liftA3
00:06:55 <lambdabot> Control.Applicative liftA3 :: Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
00:08:11 <oerjan> i don't find it, but it would be like
00:08:22 <CakeProphet> okay with fundeps, saying a -> b is basically saying that a decides what b is yes?
00:08:29 <elliott> "If the function returns, this is an expression, otherwise it is a statement."
00:08:33 <elliott> insert vomiting
00:09:01 <CakeProphet> I'm not entirely sure what that DOES, but I think I understand the /concept/
00:09:15 <CakeProphet> elliott: lol. if a function doesn't return, it's probably not a function.
00:09:41 <oerjan> instance Applicative a => Applicative (Reverse a) where pure x = Reverse (pure x); (Reverse f <*> Reverse x) = Reverse (x <**> f)
00:09:43 <monqy> elliott: from what is that
00:09:46 <elliott> monqy: [[SyL]]
00:09:47 <monqy> (I'm vomiting too)
00:10:01 <monqy> strapping young lad?
00:10:03 <oerjan> newtype Reverse x = Reverse x
00:10:13 <oerjan> erm
00:10:17 <elliott> monqy: on the esowiki
00:10:23 * elliott complains on the talk page
00:10:28 <oerjan> newtype Reverse a x = Reverse (a x)
00:11:19 <oerjan> CakeProphet: ^ i believe that would give you a modified Applicative which did all execution chaining in the opposite direction
00:11:31 <oerjan> but still fulfilled all the laws (i assume)
00:12:15 <monqy> so is this language's special thing purely based on what names it uses for things
00:12:32 <monqy> pardon my highly technial terminology
00:12:59 <elliott> monqy: well it's kind of neat to have every program be fully pronouncable
00:13:17 <elliott> if you remove all the whitespace you can have, like, full function definitions be "words"
00:13:19 <elliott> which is nice aesthetically
00:13:23 <elliott> but yes the semantics are nothing special
00:13:40 <elliott> i'm just implementing it because i'm bored
00:14:10 <oerjan> it's not precisely the first pronunciation-based language
00:14:16 <monqy> implement speech to text for it
00:14:20 <oerjan> (Ook!)
00:14:35 <elliott> oerjan: true, but that's not really the same thing :P
00:14:50 <monqy> where by speech to text I mean speech to program
00:15:22 <elliott> I confess that the main reason I'm implementing it is because I can call the implementation sylladex
00:15:32 <monqy> :(
00:15:52 <elliott> monqy is disappointed in my shallow reference-based reasons for implementing languages.
00:15:58 <monqy> always
00:18:33 -!- calamari has joined.
00:18:49 <elliott> maharba is a bad person
00:20:15 -!- calamari has quit (Client Quit).
00:20:18 <oerjan> you should see his evil twin mwahaharba
00:21:37 <oerjan> elliott: were there any remaining functions to prettify?
00:22:50 <elliott> oerjan: not yet, but there will be as soon as maharba replies :D
00:36:31 <elliott> does anyone know of a hash function that optimises for the size of the resulting hash?
00:36:35 <elliott> like crc but less... useless
00:36:38 <elliott> like
00:36:41 <elliott> a dynamic-length hash i guess...
00:36:50 <monqy> right now I'm imagining maharba meant "if the function terminates, it is an expression; otherwise, it is a statement". makes everything better.
00:36:50 <elliott> hmm i'm not thinking right
00:36:58 <elliott> monqy: xD
00:37:04 <elliott> beautiful
00:43:38 <elliott> ais523
00:43:38 <elliott> it's amazing how inconsistent Crawl's interface actually is, it's much worse than NetHack's
00:43:39 <elliott> -- http://crawl.develz.org/learndb/index.html
00:43:43 <elliott> wisdom
00:44:07 -!- GreaseMonkey has quit (Quit: The Other Game).
00:45:11 -!- GreaseMonkey has joined.
00:45:11 -!- GreaseMonkey has quit (Changing host).
00:45:11 -!- GreaseMonkey has joined.
00:50:10 <elliott> ?pl \x -> "gah" ++ [x]
00:50:10 <lambdabot> ("gah" ++) . return
00:51:12 <CakeProphet> elliott: cheating.
00:51:36 <oerjan> pure is shorter than return...
00:51:48 <elliott> oerjan: xD
00:52:06 <CakeProphet> oerjan: but import Control.Applicative is not shorter than an empty string.
00:52:36 <oerjan> CakeProphet: i was assuming he had it imported already
00:53:17 <oerjan> :t optional
00:53:18 <lambdabot> forall (f :: * -> *) a. (Alternative f) => f a -> f (Maybe a)
00:53:39 <oerjan> > optional [1]
00:53:40 <lambdabot> [Just 1,Nothing]
00:53:55 <CakeProphet> however if n*2 > 26 where n is the number of uses of return, then you will save bytes overall.
00:54:19 <CakeProphet> assuming you don't already have Control.Applicative imported, which you probably do. :P
00:55:03 <elliott> this isn't about golfing :P
00:55:14 <CakeProphet> IT'S ALWAYS ABOUT GOLFING.
00:55:15 <oerjan> > reverse.(:"hag")$'i'
00:55:16 <lambdabot> "gahi"
00:55:25 <oerjan> SAYS YOU
00:55:54 <elliott> grossly, SyL is not whitespace-irrelevant
00:56:08 <elliott> lack of unambiguous number terminators :(
00:56:11 <CakeProphet> angry square mouth man is angry that you never use him and always use his pure counterpart (:[])
00:56:51 <oerjan> @hoogle x -> f x
00:56:51 <lambdabot> Data.Generics.Aliases unGM :: GenericM' m -> a -> m a
00:56:51 <lambdabot> Prelude return :: Monad m => a -> m a
00:56:51 <lambdabot> Control.Monad return :: Monad m => a -> m a
00:57:20 <oerjan> hm...
00:57:28 <CakeProphet> @hoogle a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k -> l -> m
00:57:43 <lambdabot> thread killed
00:58:02 <oerjan> > (<$"a") 1
00:58:03 <lambdabot> [1]
00:58:14 <monqy> CakeProphet: what
00:58:34 <CakeProphet> monqy: I don't know, ask lambdabot.
00:58:43 <monqy> no I mean
00:58:45 <monqy> why would you do that
00:58:47 <CakeProphet> or angry square mouth man, depending on what you're referring to.
00:58:55 <monqy> ????
00:59:22 <CakeProphet> monqy: why do we do anything? why can I answer questions with more vague generic questions that apply to any situation?
00:59:23 <elliott> SHUT UP STUPID FLY
00:59:40 <monqy> why would you search for that function
00:59:45 <CakeProphet> to find it.
00:59:50 <monqy> I mean
00:59:51 <CakeProphet> it's a quest.
00:59:54 <CakeProphet> OF KNOWLEDGE
01:00:05 <monqy> it's pretty obvious that it doesn't exist
01:00:08 <monqy> if you think about it
01:00:17 <monqy> also what's this about (: [])
01:00:17 <CakeProphet> ...why?
01:00:24 <elliott> it does exist obviously
01:00:27 <elliott> oh wait
01:00:29 <elliott> no it doesn't
01:00:32 <elliott> i mean, apart from nudefined
01:00:41 <elliott> because it returns a polymorphic parameter it isn't given
01:01:08 <oerjan> :t zipWith13
01:01:09 <lambdabot> Not in scope: `zipWith13'
01:01:12 <oerjan> :t zipWith9
01:01:12 <lambdabot> Not in scope: `zipWith9'
01:01:15 <oerjan> :t zipWith5
01:01:15 <lambdabot> forall a b c d e f. (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
01:01:31 <elliott> oerjan: ban maharaba plz he is crime of no replying
01:01:40 <elliott> now why does zipWith5 even exist...
01:01:55 <CakeProphet> because sometimes you've got to zip 5 lists, I mean come on.
01:02:16 <elliott> but never 9
01:02:17 <elliott> NEVER
01:02:29 <oerjan> :t (,,,,,,,,,,,,)
01:02:29 <lambdabot> forall a b c d e f g h i j k l m. a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k -> l -> m -> (a, b, c, d, e, f, g, h, i, j, k, l, m)
01:02:45 <monqy> define tuples in template haskell, make generic zipwith
01:02:57 <oerjan> :t zap
01:02:57 <CakeProphet> oerjan for the win.
01:02:57 <lambdabot> Not in scope: `zap'
01:03:00 <elliott> monqy: there's that proposal for hlists as tuples
01:03:07 <elliott> (a,b,c) == a :- b :- c :- HNil or whatever
01:03:08 <oerjan> :t zapp
01:03:09 <lambdabot> Not in scope: `zapp'
01:03:14 <elliott> which I guess you define like
01:03:18 <oerjan> hm didn't it get added recently
01:03:30 <oerjan> @hoogle [a -> b] -> [a] -> [b]
01:03:30 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
01:03:30 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
01:03:30 <lambdabot> Control.Applicative (<**>) :: Applicative f => f a -> f (a -> b) -> f b
01:03:38 <elliott> hmm wait
01:03:41 <elliott> I could use that in Shiro...
01:04:26 <oerjan> (zapp? being the equivalent of ap / <*> for zipping, naturally)
01:05:02 <elliott> data CZ = CZ
01:05:02 <elliott> data CS r = (:-) {-# UNPACK #-} !Value {-# UNPACK #-} !r
01:05:04 <elliott> wonder if that would work
01:05:08 -!- FireFly has quit (Quit: swatted to death).
01:05:13 <elliott> i.e. two-dimensional is CS (CS CZ)
01:06:29 <oerjan> i'm pretty sure unpacking / unboxing only works with fields of fixed size, possibly even fixed type
01:07:01 <elliott> oerjan: hmm, right
01:07:04 <Lymia> :t ((,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,))
01:07:05 <lambdabot> forall a b c d e f g h i j k l m a1 b1 c1 d1 e1 f1 g1 h1 i1 j1 k1 l1 m1 a2 b2 c2 d2 e2 f2 g2 h2 i2 j2 k2 l2 m2 a3 b3 c3 d3 e3 f3 g3 h3 i3 j3 k3 l3 m3 a4 b4 c4 d4 e4 f4 g4 h4 i4 j4 k4 l4 m4 a5 b5 c5
01:07:05 <lambdabot> d5 e5 f5 g5 h5 i5 j5 k5 l5 m5 a6 b6 c6 d6 e6 f6 g6 h6 i6 j6 k6 l6 m6 a7 b7 c7 d7 e7 f7 g7 h7 i7 j7 k7 l7 m7 a8 b8 c8 d8 e8 f8 g8 h8 i8 j8 k8 l8 m8 a9 b9 c9 d9 e9 f9 g9 h9 i9 j9 k9 l9 m9 a10 b10 c10
01:07:05 <lambdabot> d10 e10 f10 g10 h10 i10 j10 k10 l10 m10 a11 b11 c11 d11 e11 f11 g11 h11 i11 j11 k11 l11 m11 a12 b12 c12 d12 e12 f12 g12 h12 i12 j12 k12 l12 m12. (a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k -
01:07:05 <lambdabot> > l -> m -> (a, b, c, d, e, f, g, h, i, j, k, l, m), a1 -> b1 -> c1 -> d1 -> e1 -> f1 -> g1 -> h1 -> i1 -> j1 -> k1 -> l1 -> m1 -> (a1, b1, c1, d1, e1, f1, g1, h1, i1, j1, k1, l1, m1), a2 -> b2 ->
01:07:05 <lambdabot> c2 -> d2 -> e2 -> f2 -> g2 -> h2 -> i2 -> j2 -> k2 -> l2 -> m2 -> (a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2), a3 -> b3 -> c3 -> d3 -> e3 -> f3 -> g3 -> h3 -> i3 -> j3 -> k3 -> l3 -> m3 -> (
01:07:07 <lambdabot> [7 @more lines]
01:07:10 <elliott> ?more
01:07:10 <lambdabot> a3, b3, c3, d3, e3, f3, g3, h3, i3, j3, k3, l3, m3), a4 -> b4 -> c4 -> d4 -> e4 -> f4 -> g4 -> h4 -> i4 -> j4 -> k4 -> l4 -> m4 -> (a4, b4, c4, d4, e4, f4, g4, h4, i4, j4, k4, l4, m4), a5 -> b5 ->
01:07:11 <Lymia> @more
01:07:11 <lambdabot> c5 -> d5 -> e5 -> f5 -> g5 -> h5 -> i5 -> j5 -> k5 -> l5 -> m5 -> (a5, b5, c5, d5, e5, f5, g5, h5, i5, j5, k5, l5, m5), a6 -> b6 -> c6 -> d6 -> e6 -> f6 -> g6 -> h6 -> i6 -> j6 -> k6 -> l6 -> m6 -> (
01:07:12 <elliott> ?more
01:07:13 <elliott> ?more
01:07:13 <lambdabot> a6, b6, c6, d6, e6, f6, g6, h6, i6, j6, k6, l6, m6), a7 -> b7 -> c7 -> d7 -> e7 -> f7 -> g7 -> h7 -> i7 -> j7 -> k7 -> l7 -> m7 -> (a7, b7, c7, d7, e7, f7, g7, h7, i7, j7, k7, l7, m7), a8 -> b8 ->
01:07:13 <elliott> ?more
01:07:14 <elliott> ?more
01:07:15 <elliott> ?more
01:07:15 <lambdabot> c8 -> d8 -> e8 -> f8 -> g8 -> h8 -> i8 -> j8 -> k8 -> l8 -> m8 -> (a8, b8, c8, d8, e8, f8, g8, h8, i8, j8, k8, l8, m8), a9 -> b9 -> c9 -> d9 -> e9 -> f9 -> g9 -> h9 -> i9 -> j9 -> k9 -> l9 -> m9 -> (
01:07:17 <lambdabot> a9, b9, c9, d9, e9, f9, g9, h9, i9, j9, k9, l9, m9), a10 -> b10 -> c10 -> d10 -> e10 -> f10 -> g10 -> h10 -> i10 -> j10 -> k10 -> l10 -> m10 -> (a10, b10, c10, d10, e10, f10, g10, h10, i10, j10, k10,
01:07:19 <lambdabot> l10, m10), a11 -> b11 -> c11 -> d11 -> e11 -> f11 -> g11 -> h11 -> i11 -> j11 -> k11 -> l11 -> m11 -> (a11, b11, c11, d11, e11, f11, g11, h11, i11, j11, k11, l11, m11), a12 -> b12 -> c12 -> d12 ->
01:07:21 <lambdabot> e12 -> f12 -> g12 -> h12 -> i12 -> j12 -> k12 -> l12 -> m12 -> (a12, b12, c12, d12, e12, f12, g12, h12, i12, j12, k12, l12, m12))
01:07:23 <elliott> yea verily this is a good use of the channel
01:07:33 <Lymia> :t (((,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,)),((,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,)),((,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,
01:07:34 <Lymia> ,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,)),((,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,)),((,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,
01:07:34 <lambdabot> parse error (possibly incorrect indentation)
01:07:35 <Lymia> ,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,),(,,,,,,,,,,,,)))
01:07:38 <elliott> lol.
01:07:39 <Lymia> `-`
01:07:41 <HackEgo> No output.
01:07:55 <Lymia> :t (.............................................................................................................................................................................................................................................................................................................................................................................................................................)
01:07:57 <lambdabot> Not in scope:
01:07:57 <lambdabot> `................................................................................................................................................................................................
01:07:57 <lambdabot> .......................................................................................................................................................................................................
01:07:57 <lambdabot> ......................'
01:08:02 <Lymia> :(
01:08:04 <monqy> good job
01:08:15 <oerjan> :t let a x = (,,,,,,,,,,,,) x in (a,a,a,a,a,a,a,a,a,a,a,a)
01:08:16 <lambdabot> forall a b c d e f g h i j k l m a1 b1 c1 d1 e1 f1 g1 h1 i1 j1 k1 l1 m1 a2 b2 c2 d2 e2 f2 g2 h2 i2 j2 k2 l2 m2 a3 b3 c3 d3 e3 f3 g3 h3 i3 j3 k3 l3 m3 a4 b4 c4 d4 e4 f4 g4 h4 i4 j4 k4 l4 m4 a5 b5 c5
01:08:16 <lambdabot> d5 e5 f5 g5 h5 i5 j5 k5 l5 m5 a6 b6 c6 d6 e6 f6 g6 h6 i6 j6 k6 l6 m6 a7 b7 c7 d7 e7 f7 g7 h7 i7 j7 k7 l7 m7 a8 b8 c8 d8 e8 f8 g8 h8 i8 j8 k8 l8 m8 a9 b9 c9 d9 e9 f9 g9 h9 i9 j9 k9 l9 m9 a10 b10 c10
01:08:16 <lambdabot> d10 e10 f10 g10 h10 i10 j10 k10 l10 m10 a11 b11 c11 d11 e11 f11 g11 h11 i11 j11 k11 l11 m11. (a -> b -> c -> d -> e -> f -> g -> h -> i -> j -> k -> l -> m -> (a, b, c, d, e, f, g, h, i, j, k, l, m),
01:08:16 <lambdabot> a1 -> b1 -> c1 -> d1 -> e1 -> f1 -> g1 -> h1 -> i1 -> j1 -> k1 -> l1 -> m1 -> (a1, b1, c1, d1, e1, f1, g1, h1, i1, j1, k1, l1, m1), a2 -> b2 -> c2 -> d2 -> e2 -> f2 -> g2 -> h2 -> i2 -> j2 -> k2 ->
01:08:16 <lambdabot> l2 -> m2 -> (a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2), a3 -> b3 -> c3 -> d3 -> e3 -> f3 -> g3 -> h3 -> i3 -> j3 -> k3 -> l3 -> m3 -> (a3, b3, c3, d3, e3, f3, g3, h3, i3, j3, k3, l3, m3),
01:08:18 <lambdabot> [6 @more lines]
01:08:25 <Lymia> :t (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
01:08:26 <lambdabot> forall a b c d e f g h i j k l m n o p q r s t u v w x y z t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62
01:08:26 <lambdabot> t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87 t88 t89 t90 t91 t92 t93 t94 t95 t96 t97 t98 t99 t100 t101 t102 t103 t104 t105 t106 t107 t108 t109
01:08:26 <lambdabot> t110 t111 t112 t113 t114 t115 t116 t117 t118 t119 t120 t121 t122 t123 t124 t125 t126 t127 t128 t129 t130 t131 t132 t133 t134 t135 t136 t137 t138 t139 t140 t141 t142 t143 t144 t145 t146 t147 t148
01:08:26 <lambdabot> t149 t150 t151 t152 t153 t154 t155 t156 t157 t158 t159 t160 t161 t162 t163 t164 t165 t166 t167 t168 t169 t170 t171 t172 t173 t174 t175 t176 t177 t178 t179 t180 t181 t182 t183 t184 t185 t186 t187
01:08:28 <lambdabot> t188 t189 t190 t191 t192 t193 t194 t195 t196 t197 t198 t199 t200 t201 t202 t203 t204 t205 t206 t207 t208 t209 t210 t211 t212 t213 t214 t215 t216 t217 t218 t219 t220 t221 t222 t223 t224 t225 t226
01:08:30 <lambdabot> [16 @more lines]
01:08:42 <monqy> woohoo
01:09:08 <CakeProphet> needs moar zipWith
01:09:14 <oerjan> eek ghc defines that many?
01:09:17 <Lymia> :t let a x = (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) x in (a,a,a,a,a,a,a,a,a,a,a,a,a,a,a)
01:09:20 <lambdabot> forall a b c d e f g h i j k l m n o p q r s t u v w x y z t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62
01:09:20 <lambdabot> t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87 t88 t89 t90 t91 t92 t93 t94 t95 t96 t97 t98 t99 t100 t101 t102 t103 t104 t105 t106 t107 t108 t109
01:09:20 <lambdabot> t110 t111 t112 t113 t114 t115 t116 t117 t118 t119 t120 t121 t122 t123 t124 t125 t126 t127 t128 t129 t130 t131 t132 t133 t134 t135 t136 t137 t138 t139 t140 t141 t142 t143 t144 t145 t146 t147 t148
01:09:20 <lambdabot> t149 t150 t151 t152 t153 t154 t155 t156 t157 t158 t159 t160 t161 t162 t163 t164 t165 t166 t167 t168 t169 t170 t171 t172 t173 t174 t175 t176 t177 t178 t179 t180 t181 t182 t183 t184 t185 t186 t187
01:09:20 <lambdabot> t188 t189 t190 t191 t192 t193 t194 t195 t196 t197 t198 t199 t200 t201 t202 t203 t204 t205 t206 t207 t208 t209 t210 t211 t212 t213 t214 t215 t216 t217 t218 t219 t220 t221 t222 t223 t224 t225 t226
01:09:22 <lambdabot> [379 @more lines]
01:09:28 <oerjan> (i think the haskell report only requires up to 15 or something)
01:09:29 <Lymia> :t let a x = (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) x in (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)
01:09:34 <lambdabot> forall a b c d e f g h i j k l m n o p q r s t u v w x y z t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62
01:09:34 <lambdabot> t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87 t88 t89 t90 t91 t92 t93 t94 t95 t96 t97 t98 t99 t100 t101 t102 t103 t104 t105 t106 t107 t108 t109
01:09:34 <lambdabot> t110 t111 t112 t113 t114 t115 t116 t117 t118 t119 t120 t121 t122 t123 t124 t125 t126 t127 t128 t129 t130 t131 t132 t133 t134 t135 t136 t137 t138 t139 t140 t141 t142 t143 t144 t145 t146 t147 t148
01:09:34 <lambdabot> t149 t150 t151 t152 t153 t154 t155 t156 t157 t158 t159 t160 t161 t162 t163 t164 t165 t166 t167 t168 t169 t170 t171 t172 t173 t174 t175 t176 t177 t178 t179 t180 t181 t182 t183 t184 t185 t186 t187
01:09:34 <lambdabot> t188 t189 t190 t191 t192 t193 t194 t195 t196 t197 t198 t199 t200 t201 t202 t203 t204 t205 t206 t207 t208 t209 t210 t211 t212 t213 t214 t215 t216 t217 t218 t219 t220 t221 t222 t223 t224 t225 t226
01:09:36 <lambdabot> [889 @more lines]
01:09:39 <CakeProphet> ......
01:09:44 <Lymia> :t let a x = (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) x in (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)
01:09:52 <lambdabot> forall a b c d e f g h i j k l m n o p q r s t u v w x y z t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62
01:09:52 <lambdabot> t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87 t88 t89 t90 t91 t92 t93 t94 t95 t96 t97 t98 t99 t100 t101 t102 t103 t104 t105 t106 t107 t108 t109
01:09:52 <lambdabot> t110 t111 t112 t113 t114 t115 t116 t117 t118 t119 t120 t121 t122 t123 t124 t125 t126 t127 t128 t129 t130 t131 t132 t133 t134 t135 t136 t137 t138 t139 t140 t141 t142 t143 t144 t145 t146 t147 t148
01:09:52 <lambdabot> t149 t150 t151 t152 t153 t154 t155 t156 t157 t158 t159 t160 t161 t162 t163 t164 t165 t166 t167 t168 t169 t170 t171 t172 t173 t174 t175 t176 t177 t178 t179 t180 t181 t182 t183 t184 t185 t186 t187
01:09:52 <lambdabot> t188 t189 t190 t191 t192 t193 t194 t195 t196 t197 t198 t199 t200 t201 t202 t203 t204 t205 t206 t207 t208 t209 t210 t211 t212 t213 t214 t215 t216 t217 t218 t219 t220 t221 t222 t223 t224 t225 t226
01:09:54 <monqy> why would you do this
01:09:54 <lambdabot> [1569 @more lines]
01:10:04 <Lymia> OK
01:10:06 <Lymia> I'll take it to PM~
01:10:07 <Lymia> >:3
01:10:19 <elliott> yes we need no filthy lambdabotsex here in public
01:10:21 <elliott> get a room
01:10:46 <Lymia> OR NOT
01:10:48 <Lymia> :t let a x = (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) x in (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,) x in (a,a,a,a,a,a,a)
01:10:49 <lambdabot> parse error on input `in'
01:10:51 <Lymia> :<
01:10:59 <Lymia> :t let a x = (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) x in (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,a,a,a,a,a,a,a,a,a,a,a,a)
01:11:00 <lambdabot> A 71-tuple is too large for GHC
01:11:01 <lambdabot> (max size is 62)
01:11:01 <lambdabot> Workaround: use nested tuples or define a data type
01:11:04 <Lymia> :<
01:11:12 <Lymia> Disappointing.
01:11:15 <Lymia> :t let a x = (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) x in (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,a,a,a,a,a,a,a,a,a,a,a)
01:11:16 <lambdabot> A 70-tuple is too large for GHC
01:11:17 <lambdabot> (max size is 62)
01:11:17 <lambdabot> Workaround: use nested tuples or define a data type
01:11:24 <Lymia> :t let a x = (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) x in (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,a,a,a)
01:11:31 <lambdabot> forall a b c d e f g h i j k l m n o p q r s t u v w x y z t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62
01:11:32 <lambdabot> t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87 t88 t89 t90 t91 t92 t93 t94 t95 t96 t97 t98 t99 t100 t101 t102 t103 t104 t105 t106 t107 t108 t109
01:11:32 <lambdabot> t110 t111 t112 t113 t114 t115 t116 t117 t118 t119 t120 t121 t122 t123 t124 t125 t126 t127 t128 t129 t130 t131 t132 t133 t134 t135 t136 t137 t138 t139 t140 t141 t142 t143 t144 t145 t146 t147 t148
01:11:32 <lambdabot> t149 t150 t151 t152 t153 t154 t155 t156 t157 t158 t159 t160 t161 t162 t163 t164 t165 t166 t167 t168 t169 t170 t171 t172 t173 t174 t175 t176 t177 t178 t179 t180 t181 t182 t183 t184 t185 t186 t187
01:11:32 <lambdabot> t188 t189 t190 t191 t192 t193 t194 t195 t196 t197 t198 t199 t200 t201 t202 t203 t204 t205 t206 t207 t208 t209 t210 t211 t212 t213 t214 t215 t216 t217 t218 t219 t220 t221 t222 t223 t224 t225 t226
01:11:33 <lambdabot> [1711 @more lines]
01:11:37 <Lymia> :t let a x = (,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,) x in (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,a,a,a)
01:11:39 <CakeProphet> I love how they suggest a workaround. As though anyone needs a 72-tuple.
01:11:51 <lambdabot> forall a b c d e f g h i j k l m n o p q r s t u v w x y z t28 t29 t30 t31 t32 t33 t34 t35 t36 t37 t38 t39 t40 t41 t42 t43 t44 t45 t46 t47 t48 t49 t50 t51 t52 t53 t54 t55 t56 t57 t58 t59 t60 t61 t62
01:11:51 <lambdabot> t63 t64 t65 t66 t67 t68 t69 t70 t71 t72 t73 t74 t75 t76 t77 t78 t79 t80 t81 t82 t83 t84 t85 t86 t87 t88 t89 t90 t91 t92 t93 t94 t95 t96 t97 t98 t99 t100 t101 t102 t103 t104 t105 t106 t107 t108 t109
01:11:51 <lambdabot> t110 t111 t112 t113 t114 t115 t116 t117 t118 t119 t120 t121 t122 t123 t124 t125 t126 t127 t128 t129 t130 t131 t132 t133 t134 t135 t136 t137 t138 t139 t140 t141 t142 t143 t144 t145 t146 t147 t148
01:11:51 <lambdabot> t149 t150 t151 t152 t153 t154 t155 t156 t157 t158 t159 t160 t161 t162 t163 t164 t165 t166 t167 t168 t169 t170 t171 t172 t173 t174 t175 t176 t177 t178 t179 t180 t181 t182 t183 t184 t185 t186 t187
01:11:51 <lambdabot> t188 t189 t190 t191 t192 t193 t194 t195 t196 t197 t198 t199 t200 t201 t202 t203 t204 t205 t206 t207 t208 t209 t210 t211 t212 t213 t214 t215 t216 t217 t218 t219 t220 t221 t222 t223 t224 t225 t226
01:11:55 <elliott> CakeProphet: what workaround
01:11:58 <Lymia> CakeProphet, yep.
01:11:59 <elliott> Lymia: i thought you were taking it to pm
01:12:02 <Lymia> elliott, couldn't.
01:12:07 <Lymia> lambdabot didn't respond. >:(
01:12:08 <elliott> CakeProphet: oh i see
01:12:17 <elliott> Lymia: you need ?type or @type
01:12:17 <elliott> not :t
01:12:21 <CakeProphet> elliott: 21:11 < lambdabot> Workaround: use nested tuples or define a data type
01:12:25 <elliott> Lymia: also, take pics
01:12:32 <Lymia> @more
01:12:33 <elliott> CakeProphet: right
01:12:33 <lambdabot> t227 t228 t229 t230 t231 t232 t233 t234 t235 t236 t237 t238 t239 t240 t241 t242 t243 t244 t245 t246 t247 t248 t249 t250 t251 t252 t253 t254 t255 t256 t257 t258 t259 t260 t261 t262 t263 t264 t265
01:12:33 <lambdabot> t266 t267 t268 t269 t270 t271 t272 a1 b1 c1 d1 e1 f1 g1 h1 i1 j1 k1 l1 m1 n1 o1 p1 q1 r1 s1 t1 u1 v1 w1 x1 y1 z1 t281 t291 t301 t311 t321 t331 t341 t351 t361 t371 t381 t391 t401 t411 t421 t431 t441
01:12:33 <lambdabot> t451 t461 t471 t481 t491 t501 t511 t521 t531 t541 t551 t561 t571 t581 t591 t601 t611 t621 t631 t641 t651 t661 t671 t681 t691 t701 t711 t721 t731 t741 t751 t761 t771 t781 t791 t801 t811 t821 t831
01:12:33 <lambdabot> t841 t851 t861 t871 t881 t891 t901 t911 t921 t931 t941 t951 t961 t971 t981 t991 t1001 t1011 t1021 t1031 t1041 t1051 t1061 t1071 t1081 t1091 t1101 t1111 t1121 t1131 t1141 t1151 t1161 t1171 t1181
01:12:33 <lambdabot> t1191 t1201 t1211 t1221 t1231 t1241 t1251 t1261 t1271 t1281 t1291 t1301 t1311 t1321 t1331 t1341 t1351 t1361 t1371 t1381 t1391 t1401 t1411 t1421 t1431 t1441 t1451 t1461 t1471 t1481 t1491 t1501 t1511
01:12:35 <lambdabot> [1938 @more lines]
01:12:58 <Lymia> I need to learn more Haskell...
01:13:07 <CakeProphet> ..I need to get op privs.
01:13:57 <oerjan> XD
01:14:06 <elliott> CakeProphet++
01:14:13 <oerjan> CakeProphet: i was slightly tempted there
01:14:30 <CakeProphet> at least a kick.
01:14:37 <CakeProphet> not a kickban :P
01:14:39 <elliott> `addquote [after a long string of Lymia getting lambdabot to spit out huge, meaningless type signatures] <Lymia> I need to learn more Haskell... <CakeProphet> ..I need to get op privs.
01:14:40 <HackEgo> ​441) [after a long string of Lymia getting lambdabot to spit out huge, meaningless type signatures] <Lymia> I need to learn more Haskell... <CakeProphet> ..I need to get op privs.
01:14:46 <elliott> possibly the backstory lessens the humour of that one :D
01:14:53 -!- foocraft_ has joined.
01:15:01 <monqy> what humour
01:15:02 <monqy> it's all gone
01:15:14 <CakeProphet> monqy: there is no humour because I AM NOT ENGLISH.
01:15:15 <elliott> foocraft_: stop crafting foos
01:15:15 <oerjan> dissected with the frog
01:15:36 <oerjan> or we'll put you behind bars
01:15:49 <CakeProphet> ohhh snap!
01:16:57 <CakeProphet> ^ http://www.youtube.com/watch?v=y8m3wC5pH-8
01:17:28 <monqy> oh snap
01:17:39 -!- foocraft has quit (Ping timeout: 240 seconds).
01:17:40 <elliott> oerjan: can you ban Maharba[exclamation mark][asterisk]@[asterisk] preemptively for not replying
01:17:42 <CakeProphet> yes, a 3 second youtube video.
01:19:03 <oerjan> yes, i can.
01:19:12 <elliott> maybe i'll implement some other language but still call the implementation sylladex
01:19:13 <elliott> mwahahaha
01:19:54 <elliott> meanwhile, the loper blog has now completely degenerated into idiocy
01:20:06 * CakeProphet is devising one of those self modifying thingamajiggers.
01:20:14 <monqy> fascinating
01:20:17 <monqy> what's loper now
01:20:22 <elliott> loper-os.org
01:20:27 <monqy> oh that
01:20:34 <elliott> it used to be interesting if you could get past stanislav's... stanislavosity
01:20:37 <elliott> now it's... not
01:20:40 <CakeProphet> consisting of the self-modifying language and a sister ESOTERIC REGULAR EXPRESSION LANGUAGE.
01:20:49 <elliott> CakeProphet: latter already exists (cyclexa)
01:22:03 <CakeProphet> but is it awesome?
01:22:13 <CakeProphet> the key here is that mine will be awesome.
01:22:18 <elliott> it's tc :)
01:22:23 <elliott> it's an ais lang
01:22:28 <CakeProphet> -yawwwwn-
01:22:35 <elliott> it's actually really interesting
01:22:38 <elliott> ask him about it sometime.
01:22:58 <CakeProphet> perhaps I shall.
01:22:59 <monqy> only time I heard of loper was in a conversation about laughing at the losethos guy I forget his name
01:23:12 <elliott> monqy: stanislav is like the losethos guy but less insane
01:23:14 <elliott> and more coherent
01:23:34 <Sgeo> It makes sense that some hypotheticals are unanswerable
01:23:47 <elliott> oh, sgeo is here.
01:23:51 <Sgeo> But not things like what if the sun stopped existing, would we still orbit
01:24:07 <monqy> hi sgeo
01:24:09 <Sgeo> Hi
01:25:08 <monqy> wow I'm trying to read the loper blog
01:26:15 <oerjan> Sgeo: um that's because "the sun stopped existing" is a violation of energy conservation, so it reduces to "if this thing ruled out by the laws of physics happens, what would the laws of physics say about this intuitively related thing"
01:27:33 -!- zzo38 has joined.
01:30:14 <oerjan> to make the sun "disappear" _without_ violating energy conservation and general relativity, you would have to actually _move_ the energy at lower-than-light-speed somewhere, at which point you could try to calculate the results
01:31:10 <pikhq> oerjan: There's another means.
01:31:29 <elliott> oerjan: except that it's more like freeze-framing the universe in a debugger, and removing the sun itself
01:31:29 <pikhq> oerjan: The sun could exhibit an exceptionally improbable instance of quantum teleportation.
01:31:40 <elliott> sure, the laws of physics don't actually allow this, except maybe as pikhq said
01:31:43 <elliott> but we can model it conceptually
01:31:55 <oerjan> pikhq: hm
01:32:01 <pikhq> (assuming that wave-particle duality holds for such large objects, which is admittedly an open question)
01:32:01 <elliott> just have a special "event" sun-disappears which has those effects on state, in the laws of physics
01:32:10 <elliott> and evaluate it to the point where you can be sure that sun-disappears never interacts with the earth
01:32:12 <elliott> i'm explaining this badly
01:32:14 <elliott> but basically
01:32:26 <elliott> you can "implement" things that don't interact with everything else in the universe, in the laws of physics
01:32:35 <elliott> and as long as you can prove that no such unevaluatable interaction occurs
01:32:41 <elliott> you can say what the effects would be without actually reconciling this paradox
01:33:02 <elliott> which is why we can give a perfectly satisfactory answer to the question "what would happen to our orbit if the sun disappeared instantly?"
01:33:50 <pikhq> And that answer is, of course, "Nothing, until the lack-of-gravity and lack-of-light propogates (about 8 minutes)".
01:33:59 <oerjan> elliott: um i interpret "unanswerable" as there is no answer that can be deduced from anything we can plausibly do
01:34:15 <elliott> oerjan: you mean we can't test it?
01:34:19 <oerjan> of course one could make up hypotheses
01:34:21 <elliott> that's not what's being asked, the question is one of theory
01:34:57 <pikhq> oerjan: We can make very highly plausible hypotheses from our understanding of valid theories.
01:34:59 <elliott> oerjan: the question is actually -- "If the laws of physics had a special-case mechanism which made a special state transition at this particular arbitrary point, then what would happen?"
01:35:19 <elliott> oerjan: now, this is answerable as long as the specific scenario doesn't actually cause some kind of logical contradiction in the theory
01:35:24 <elliott> even if the theory as a whole has "impossible" scenarios
01:35:37 <pikhq> oerjan: Which is the only reasonable way to interpret questions about such hypotheticals.
01:35:45 <elliott> oerjan: i mean /any/ hypothetical question is like this
01:36:34 <Sgeo> I don't see where RRC made such a comment to someone who asked such a question, link?
01:36:36 <pikhq> Doesn't matter if the hypothetical situation itself could, likely, never be tested without an infinite improbability drive.
01:36:51 <elliott> Sgeo: see log
01:37:08 <elliott> Help me understand (self.askscience)
01:37:08 <elliott> submitted 5 hours ago by Numerous1
01:37:09 <elliott> If humans are NOT supposed to be monogamous, and are supposed to find the best genes, survival of the fittest and all that, why do humans fall in love?
01:37:14 <elliott> totes question for /r/askscience
01:38:03 <elliott> "The other way of quantifying distance is to imagine freezing time at some instant, and then physically measuring the distance between A and B using a series of rulers. Of course, you can't freeze time and physically measure cosmological distances. But you can compute what those instantaneous distances are, using inferences gleaned from astronomical observations and some maths."
01:38:12 <elliott> why robotrollcall, it looks like you're using a hypothetical impossible scenario here
01:39:07 <Sgeo> It's not on http://www.reddit.com/r/askscience/comments/hsrsq/what_would_happen_in_terms_of_gravity_if_you/ as far as I can tell, or her userpage
01:39:07 <Sgeo> Did she delete it?
01:39:17 <elliott> its linked from that thread
01:39:19 <oerjan> didn't einstein explain this measuring distance stuff pretty thoroughly
01:39:37 <elliott> http://www.reddit.com/r/askscience/comments/hai2t/does_the_gravity_of_one_object_affect_attract/
01:39:45 <elliott> oerjan: i'm just mocking
01:40:15 <elliott> "Personally, I think the #1 reason to distrust Bitcoin is that both the libertarian nuts and the gold nuts love it." hmm... this person isn't thinking right
01:41:07 <Sgeo> Ah, ty
01:42:35 <Sgeo> RRC: "Okie doke, so let's say something accelerated the sun very quickly
01:42:35 <Sgeo> No, let's not. Let's consider only things that are actually possible."
01:43:05 <elliott> yeah, that's the objectionable comment IMHO
01:44:20 <Sgeo> http://www.reddit.com/r/askscience/comments/hai2t/does_the_gravity_of_one_object_affect_attract/c1tvm5c well, this does make sense
01:44:23 <elliott> three days without homestuck update, starting to lose ability to metabolise
01:44:40 <Sgeo> elliott, SJAHJ update recently.
01:44:47 <elliott> Sgeo: the situation is not comparable
01:44:50 <elliott> and i'm aware of the sbahj update
01:52:10 <elliott> http://www.nbcnewyork.com/news/local/123187958.html
01:52:14 <elliott> >how dose i tor
02:00:11 <monqy> It's more brazen than anything else by lightyears.
02:00:32 <Sgeo> Is Shumer utterly unaware that Tor is also being used to keep the website anonymous?
02:00:37 <Sgeo> *Schumer
02:01:46 <monqy> "It's an online form of money laundering used to disguise the source of money, and to disguise who's both selling and buying the drug" - Schumer on Bitcoins
02:02:26 -!- _foocraft has joined.
02:05:44 -!- foocraft_ has quit (Ping timeout: 250 seconds).
02:07:04 <CakeProphet> elliott: cyclexa is indeed interesting.
02:08:02 <CakeProphet> I now have some new ideas for my own language. But I'll be focusing more on the ability to define new matching/zero-width operators.
02:11:27 <CakeProphet> so the language I'm brainstorming currently resembles a traditional language designed for pattern matching more than it resembles a regular expression language. I guess that makes it esoteric. :P
02:15:53 <Lymia> CakeProphet, you mean Perl?
02:16:00 <CakeProphet> No. :P
02:16:06 <Lymia> #!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj $/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1 lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)
02:16:11 <Lymia> Perl in a nutshell.
02:16:53 <CakeProphet> it's still a regular expression language, it's just slightly more verbose.
02:16:59 <CakeProphet> and has more operators.
02:17:08 <CakeProphet> that do things not related to matching patterns in text.
02:17:39 <CakeProphet> essentially they're treated as zero-width assertions.
02:18:11 <oerjan> are you talking about perl or your new language now? >:)
02:18:17 <CakeProphet> new language.
02:19:24 -!- Lymia has set topic: PEANUTS FOR THE PPLEASURE | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D | #!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj $/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1 lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/).
02:19:38 <CakeProphet> but yes, step one will the regular expression language. step two is the self-modifying language. Because the second one will be able to use pattern matching constructs in the first.
02:19:38 -!- elliott has set topic: PEANUTS FOR THE PPLEASURE | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
02:19:47 <Lymia> :<
02:19:57 <elliott> you can bash any lang w/ obfuscated code.
02:19:57 <monqy> perl out of a nutshell
02:20:36 <CakeProphet> you can even bash bash with obfuscated code.
02:21:30 <CakeProphet> and in the above example of obfuscated Perl, you can even obfuscate code with bash and bash that too.
02:22:27 <Sgeo> There is a result of my experiment that is not according to my theory, though
02:22:43 <CakeProphet> Sgeo: time to revise the theory.
02:22:51 <Sgeo> At low enough gravity, the test object higher up never responded to gravity, but the one nearer the ground did
02:23:01 <CakeProphet> ...woah.
02:23:07 <CakeProphet> some kind of field?
02:23:26 <Sgeo> I did predict such an effect, but not that low down, and didn't think strength of gravity could affect it
02:23:44 <Sgeo> This is in Second Life, btw
02:24:10 <Sgeo> My current hypothesis for an explanation is that terminal velocity is lower for lower gravity
02:24:26 <Lymia> elliott, golfed code vs obfuscated code.
02:24:26 <CakeProphet> oh. lol. well, in actual physics, the strength of gravity most certainly determines the effective radius of the field (even though it's theoretically infinite iirc).
02:25:19 <CakeProphet> and by "strength of gravity" I actually mean the mass of the object.
02:25:22 <Lymia> Sgeo, just break out the disassembles.
02:25:43 <elliott> that doesn't help for serverside
02:27:06 <CakeProphet> Sgeo: try adjusting the gravity and see if the inverse square law applies. If it does you should be able to calculate some kind of cutoff distance for a given mass to not be affected by the gravity.
02:27:33 <Sgeo> cutoff distance?
02:28:10 <Sgeo> Hmm, test if gravity is as strong in the air as near the surface?
02:28:30 <Lymia> What is big G on Second Life?
02:28:46 <CakeProphet> yes, basically. and test if it's inversely proportional to the square of the distance, specifically.
02:29:40 -!- _foocraft has quit (Ping timeout: 240 seconds).
02:29:48 <oerjan> um note in ordinary gravity it's distance to the earth's _center_, not the surface
02:29:52 <Sgeo> I doubt it, but I'll try it
02:29:56 <CakeProphet> oerjan: right.
02:30:09 -!- Kustas has joined.
02:30:17 <CakeProphet> Sgeo: yeah I'm probably expecting too much from Second Life there. :P
02:30:35 <Sgeo> I think it's easier to test terminal velocity first, though
02:30:52 <CakeProphet> but it would explain why objects off the ground wouldn't be affected by a low gravity.
02:31:03 <elliott> i should do that in elliottcraft
02:31:03 <CakeProphet> *higher off the ground
02:31:19 <elliott> infinite threedee plane OBVIOUSLY HAS A CENTRE
02:31:23 <Sgeo> CakeProphet, I have a diferent explanation
02:31:58 <CakeProphet> elliott: is that going to be like a crazy physics playground?
02:32:07 <CakeProphet> because I would totally play that.
02:32:16 <Sgeo> If terminal velocity is not enough to pull the object down 1 representable float within 1 frame, then gravity can't do anything
02:32:19 <CakeProphet> something that like updated Garry's Mod would be awesome.
02:32:48 <CakeProphet> Sgeo: ah. That makes some sense.
02:32:58 <Sgeo> Then again, the oberved approximate cutoff suggests, under my model, that in low gravity, terminal velocity is reached in about a second, so that seems a bit... um, weird
02:33:03 <CakeProphet> but does it explain why the elevation matters?
02:33:07 <elliott> CakeProphet: minecraft done right. by which i mean: completely differently/
02:33:09 <Sgeo> But I should just measure it already
02:33:18 <elliott> more similar to dwarf fortress, even.
02:33:25 <CakeProphet> elliott: it should be an awesome physics playground..
02:33:25 <Sgeo> CakeProphet, yes. Higher elevation == representable floats are more distant
02:33:40 <CakeProphet> elliott: ...text based?
02:34:26 <CakeProphet> or more similar in that it's more complex.
02:34:42 <elliott> CakeProphet: no, threedee
02:34:50 <elliott> :p
02:35:53 <CakeProphet> elliott: Make it first-person style with AWESOME PHYSICS GUNS that can do things like shoot a projectile through the air and remote detonate it to produce a sustained gravity field at the center of the blast point.
02:36:10 <Sgeo> I like to call representable floats of altitude "cosmic shells"
02:36:13 <Sgeo> It's more fun
02:36:38 <CakeProphet> elliott: and a gun that dilates time in a region of space.
02:36:48 <elliott> no.
02:37:00 <CakeProphet> ..and then make it a puzzle game.
02:37:05 <CakeProphet> FINE. I'll just make my own game.
02:37:07 <elliott> that's for asteroids ii
02:37:12 <elliott> (time dilation)
02:37:38 <CakeProphet> I think time dilation would be an excellent element to a puzzle game. Along with a gravity field generating thing.
02:37:41 <Sgeo> It's theoretically possible that the gravitational delay I observed is a measuring artifact, I guess.
02:37:52 <Sgeo> But the fact that gravity stopped at higher altitudes is not an artifact.
02:37:58 <Sgeo> (for low enough gravity)
02:38:13 <elliott> asteroids ii is a shooter though. but the engine could be reused. :p
02:38:18 <CakeProphet> Sgeo: perhaps you've discovered a theory of special Second Life relativity.
02:39:10 <CakeProphet> that has nothing to do with the real one..
02:39:28 <monqy> are you suggesting second life isn't real
02:39:42 <CakeProphet> what? of course not.
02:39:52 <CakeProphet> I am a second life character, after all.
02:42:56 -!- _foocraft has joined.
02:47:06 <oerjan> beware of the crafty foos
03:14:20 -!- pikhq_ has joined.
03:14:48 -!- pikhq has quit (Ping timeout: 260 seconds).
03:14:54 <CakeProphet> odd, for some reason my mouse just decides to not work for several seconds at a time.
03:23:29 <Kustas> if it does not affect the keyboard the same way, then it's something esoteric
03:31:24 <elliott> CakeProphet: after typing?
03:38:59 -!- Sgeo_ has joined.
03:39:11 -!- Sgeo has quit (Ping timeout: 255 seconds).
03:51:30 <CakeProphet> elliott: sometimes. But that's a different problem related to me accidentally brushing the touchpad, which somehow interferes with the mouse I believe.
03:53:33 <elliott> CakeProphet: system -> preferences -> mouse -> touchpad, disable "disable touchpad while typing"
03:53:35 <elliott> (ubuntu)
03:53:42 <elliott> that might help. very annoying behaviour.
03:57:06 -!- Sgeo has joined.
03:58:16 <elliott> god i feel ill
03:59:19 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
03:59:58 <elliott> still no homestuck update. world as we know it starting to decompose. suicide imminent.
04:00:58 <elliott> "I certainly sat in lots of Scheme design meetings where I pushed for obvious things like branch cuts, error handling, and other "useful" things and was told that such things would ... make the language "too useful" [thus meaning too many people would flock to it and it would be the end of the designers' ability to do the things to the language that _they_ wanted to do]."
04:01:00 <elliott> --Kent Pitman
04:01:31 <pikhq_> Ah, yes, avoid success at all costs.
04:02:05 -!- olsner_ has joined.
04:02:11 <elliott> To be fair, in Haskell that's achieved by trying to pack in as much abstraction as possible, rather than omitting useful things. :p
04:02:44 <elliott> It's definitely a sentiment I can get behind, though; god knows how many ideas are ruined because the thinker starts considering other people.
04:03:31 <elliott> http://christian-success-institute.org/ DEVELOPING SUCCESSFUL CHRISTIAN ENTREPRENEURS THROUGH BIBLICAL SUCCESS PRINCIPLES
04:04:02 * elliott checks if Eigenclass has updated lately.
04:04:07 <elliott> Nope.
04:05:18 -!- olsner has quit (Ping timeout: 252 seconds).
04:12:27 <elliott> hey pikhq_
04:12:30 <elliott> how much does everything suck
04:14:07 -!- Lymia_ has joined.
04:14:07 -!- Sgeo has quit (Ping timeout: 276 seconds).
04:14:40 -!- Lymia has quit (Disconnected by services).
04:14:42 -!- Lymia_ has changed nick to Lymia.
04:14:44 -!- Lymia has quit (Changing host).
04:14:44 -!- Lymia has joined.
04:16:46 <oerjan> current suckage level: 62.8%
04:17:28 <elliott> you forgot "and rising"
04:17:36 <elliott> also, that's far too low a value
04:18:06 <elliott> Sturgeon's law would imply that only an infinitesimal percentage of things do not suck
04:18:28 <CakeProphet> Woah, I'm like... writing a language spec.
04:18:35 <CakeProphet> it's been like 3 years or so I think?
04:18:37 <Lymia> CakeProphet, you are?
04:18:46 <CakeProphet> yes, I'm working on a regular expression language.
04:18:55 <CakeProphet> that like, makes sense and stuff.
04:18:56 <elliott> I usually just write troll languages nowadays.
04:19:01 <elliott> http://esolangs.org/wiki/Befunge/index.php
04:19:01 <elliott> http://esolangs.org/wiki/Brainfuck/w/index.php%3Ftitle%3DTalk:Brainfuck/index.php
04:19:33 <elliott> (both named after talk pages spambots repeatedly created; I made the article versions so that the admins couldn't legitimately keep the talk pages protected to prevent vandalism :D)
04:21:12 <pikhq_> Well, that was astounding.
04:21:26 <pikhq_> Somehow, Firefox was causing swap thrashing without having any pages in swap.
04:21:54 <pikhq_> I do believe that's a whole new level of fail.
04:23:01 <CakeProphet> ewww swap. groooss.
04:23:57 <CakeProphet> I have no idea why my computer decided to allocate 244 KBs of swap when it's only used 1.6 gigs of memory out of 3.7
04:24:09 <pikhq_> It had 0 swap. And thrashing.
04:24:20 <pikhq_> *And it was fucking swap thrashing*.
04:24:32 <pikhq_> At least, that's what iotop showing kswapd using a bunch of IO tells me.
04:24:53 * CakeProphet uses Chrome, has no problems other than Flash crashing occasionally.
04:25:18 <elliott> Chrome actually uses more virtual memory than Firefox, although I think less real memory
04:25:24 <elliott> Since all the code can be shared, pretty much
04:25:29 <elliott> Of course, virtual memory is irrelevant on sixtyfour-bit
04:25:51 <elliott> The thing with Chrome for me is that it scales much better with large numbers of tabs whereas Firefox doesn't.
04:26:41 <CakeProphet> elliott: also see: frequent crashing in Firefox
04:27:17 <elliott> A program written in an unsafe language crashing? I'm shocked.
04:27:26 <elliott> Chrome crashes semi-often too, but it's at least usually localised to a tab or a few.
04:44:46 -!- CakeProphet has quit (Ping timeout: 250 seconds).
04:44:55 -!- CakeProphet has joined.
04:44:56 -!- CakeProphet has quit (Changing host).
04:44:56 -!- CakeProphet has joined.
04:45:12 -!- CakeProphet has changed nick to Kallisti.
04:45:22 <pikhq_> Yeah, virtual memory is basically a non-issue. Heck, mmap the entire address space and it doesn't even matter.
04:45:54 <pikhq_> (well, except that your page table might hate you if you don't madvise to tell Linux to use huge pages)
04:46:21 -!- Kallisti has changed nick to CakeProphet.
04:48:52 <elliott> night
04:49:19 <CakeProphet> sleep well.
04:51:36 -!- oerjan has quit (Quit: Good night).
04:54:19 -!- CakeProphet has quit (Ping timeout: 240 seconds).
04:54:25 -!- elliott has quit (Ping timeout: 276 seconds).
04:57:32 -!- CakeProphet has joined.
04:57:32 -!- CakeProphet has quit (Changing host).
04:57:32 -!- CakeProphet has joined.
04:58:36 -!- Sgeo has joined.
05:21:59 -!- Patashu has joined.
05:31:22 <pikhq_> And now, the comic is technically no longer Dresden Codak's full-time job.
05:31:32 <pikhq_> Let's see if this changes anything at all with the update schedule.
05:34:30 <CakeProphet> pikhq_: nonsense.
05:36:38 <pikhq_> CakeProphet: Previous observations seem to suggest this will be utterly unnoticable.
05:37:12 -!- augur has quit (Remote host closed the connection).
05:42:23 -!- Kustas has quit (Quit: disco out of the blues).
05:46:27 <oklopol> "<elliott> has rodgerthegreat ever actually said anything that's true? i'm honestly curious" <<< i cannot quite recall such a miracle
05:46:43 <oklopol> then again i recall very few concrete things he has said and many of them you just pasted
05:49:10 -!- pikhq has joined.
05:49:20 -!- pikhq_ has quit (Ping timeout: 240 seconds).
05:49:38 <oklopol> "<elliott> 05:31:04: <RodgerTheGreat> Many diseases, conditions and other types of deviations work like this." <<< also what he says about homosexuality sounds correct enough in the sense that the correct modern explanation to everything is "it's complicated"
05:50:40 <oklopol> but i guess you were more worried about his calling gays diseased, so to speak.
05:51:53 <pikhq> It amuses me somewhat that, for a while, I could have probably been called a Christian deist...
05:52:06 <pikhq> Which is such a contradiction in terms I can't help but giggle.
05:52:38 <oklopol> why is it a contradiction?
05:53:09 <pikhq> oklopol: Typically, Christianity holds that there is a large amount of divine intervention in the world.
05:53:16 <pikhq> Deism holds that there is none.
05:54:10 <oklopol> oh that was deism hu
05:54:29 <oklopol> i guess i'm a deist then!
05:54:43 <pikhq> Yeah, deism is the belief that there was a deity who created the world and has since not intervened.
05:55:11 <oklopol> well you know i get this nice feeling in my balls if i think the big bang had a beard and liked marshmellows.
05:55:32 <pikhq> It's perhaps the only theistic claim that doesn't directly contradict known empirical evidence.
05:55:45 <oklopol> *allows
05:55:55 <pikhq> Though, having no basis *in* empirical evidence, it is most likely bullshit.
05:56:31 <oklopol> well it makes it rather meaningless and thus the adult thing is not to talk about it
05:56:33 <coppro> let's go weak atheism!
05:56:40 <CakeProphet> Buddhism has some theistic claims that are supported by empirical evidence. Particularly the positive effects of meditation on the brain.
05:56:46 <CakeProphet> though
05:56:48 <pikhq> CakeProphet: That's not a theistic claim.
05:56:53 <CakeProphet> that might stretch the definition--yes, that.
05:56:55 <pikhq> CakeProphet: A theistic claim is a claim that there is a deity.
05:57:18 <oklopol> yeah because prayer certainly never has effects on the brain
05:57:29 <CakeProphet> I interpreted theistic as meaning "something that concerns religious practice", but that's not quite right.
05:57:34 <pikhq> The common subset of the beliefs termed "Buddhism" does not contain a theistic claim.
05:57:36 <coppro> meditation is different from prayer
05:57:55 <pikhq> Supernatural claims, sure, but not theistic ones.
05:57:55 <CakeProphet> pikhq: Is Therevada the most common subset?
05:58:16 <pikhq> Not "the most common subset". "The common subset".
05:58:39 <pikhq> As in, the set of beliefs that is common to all beliefs which are called "Buddhism".
05:58:44 <CakeProphet> ah
05:59:00 <CakeProphet> INTERSECTION
05:59:12 <pikhq> Though, actually, I'm pretty sure Therevada is fairly close to that.
05:59:19 <CakeProphet> somewhat.
05:59:22 <oklopol> coppro: i'm not saying they're the same thing, i'm saying i doubt meditation is better
05:59:53 <pikhq> You've got to be pretty damned careful when discussing Buddhism, though. It makes Christianity look homogenous. :P
06:01:03 <pikhq> coppro: Whoo, weak atheism!
06:01:09 <oklopol> what's weak atheism
06:01:20 <pikhq> oklopol: The belief that there is *probably* no deity.
06:01:28 <CakeProphet> Therevada is at least the most traditional. The common subset would be parts of the Pali Canon I think.
06:01:36 <CakeProphet> the teachings therein, that is.
06:01:55 <pikhq> And that, even if there is, there is no reason to think *that* there is currently.
06:02:14 <pikhq> As opposed to strong atheism, the belief that there absolutely, positively, IS NOT a deity.
06:02:21 <oklopol> mm
06:02:36 <coppro> and has as much logical foundation as any theistic claim
06:02:49 <pikhq> Strong atheism is not a very common position.
06:02:50 <oklopol> i'm sure it does
06:03:19 <pikhq> Though it is a commonly held position of strawmen.
06:03:36 <CakeProphet> From now on, all atheists will be assigned fuzzy atheism values determining their strength of belief in a lack of a deity.
06:04:05 -!- _foocraft has quit (Ping timeout: 255 seconds).
06:04:36 -!- augur has joined.
06:04:38 <pikhq> There's also the belief that atheists... Hate $DEITY (typically YHWH).
06:04:42 <pikhq> That one confuses me greatly.
06:04:54 <CakeProphet> I can't hate something that I don't believe in.
06:05:01 <coppro> pikhq: that one's not special to atheists
06:05:02 <pikhq> Yeah, precisely.
06:05:12 <pikhq> coppro: Oh?
06:05:14 <pikhq> coppro: Oh dear.
06:05:32 <CakeProphet> pikhq: though it's possible to hate that other people believe such a thing. Or to hate the concept itself. So that's not out of the question, and would be very similar to hating the deity itself for someone who believes these things.
06:05:36 <coppro> Any person not of $RELIGION hates $DEITIES[$RELIGION]
06:05:37 <coppro> duh
06:06:08 <pikhq> CakeProphet: Distinct from hating the deity personally, though.
06:06:26 <coppro> I CLEARLY DESPISe EVERY DEITY EVER
06:06:26 <CakeProphet> * @{$DEITIES{$RELIGION}} if this is Perl.. of course. :D
06:06:32 <CakeProphet> pikhq: right.
06:06:32 <coppro> BANJO CAN SUCK MY COCK
06:06:47 <oklopol> there should be a term for people who love to talk about this stuff, that's really all that matters. maybe theist should mean that.
06:07:02 <oklopol> i'd be the only atheist in town
06:07:21 <oklopol> then again i love telling people how annoying these talks are when they occur, so i guess i'm just as bad
06:07:41 <CakeProphet> I enjoy my stance of agnosticism, primarily because I don't have to explain much.
06:07:53 <pikhq> CakeProphet: Do you believe that there is a deity?
06:08:10 <CakeProphet> pikhq: I believe that I can't know the answer to that question.
06:08:22 <coppro> What's your best guess?
06:08:25 <CakeProphet> no
06:08:34 <coppro> weak atheis
06:08:39 <coppro> s/$/t/
06:08:39 <pikhq> CakeProphet: I'm not asking "Do you think there is a deity, or do you think there is not a deity?"
06:08:45 -!- oklopol has quit.
06:08:53 <pikhq> CakeProphet: I'm asking "Do you think 'There is a deity' is definitely a true statement?"
06:09:20 <CakeProphet> pikhq: I know exactly what you asked. :P There are multiple questions I can't know the answer to.
06:09:28 <Patashu> Applying aristolean binary on/off logic to deities and religion is a GREAT idea guys!!!
06:09:39 <Patashu> Let's argue about undecidable questions
06:09:48 <Patashu> eeh eeh eeh! do do do!
06:09:51 * Patashu smug
06:09:53 <pikhq> Patashu: Fuck you and your lack of reading comprehension.
06:10:22 <CakeProphet> I prefer to apply nine-valued vdhl logic to logical statements about deities.
06:10:44 <CakeProphet> I believe that the truth of "There is a deity" is U (uninitialized)
06:10:49 <Patashu> http://www.abelard.org/category/category.php
06:10:52 <Patashu> this guy will free ur mind
06:10:57 <pikhq> CakeProphet: Then you're an atheist. Congrats.
06:11:15 <pikhq> CakeProphet: BTW, 9-valued VHDL logic is definitely a good choice for this. :P
06:11:25 <CakeProphet> pikhq: well, sure. Atheism and agnosticism aren't mutually exclusive believes.
06:11:28 <Patashu> what's VHDL logic again? high, low, don't know, don't care, error...
06:11:29 <CakeProphet> *beliefs
06:11:32 <pikhq> CakeProphet: Quite true.
06:12:35 <CakeProphet> Patashu: I believe there are two for "true" and "false" with no high and low impedence quality.
06:13:00 <Patashu> so that's...six in total?
06:13:04 <Patashu> if you meant no/high/low
06:13:11 <pikhq> Patashu: I'm going to insist on a proof that this person has attended an "Intro to Logic" course.
06:13:26 <CakeProphet> or a Philosophy class would do.
06:13:32 <CakeProphet> Patashu: http://en.wikipedia.org/wiki/IEEE_1164
06:13:36 <CakeProphet> there. :D
06:14:07 <pikhq> CakeProphet: Well, yes. Any course with a satisfactory treatment of deductive logic would work, really.
06:14:29 <Patashu> ty cakeprofit
06:14:33 <Patashu> err, prophet
06:14:34 <Patashu> O:)
06:15:12 <CakeProphet> there's 6 for (weak|strong) (true|false|unknown), then high impedence, don't care, uninitialized
06:15:20 -!- Vorpal has joined.
06:15:21 <Patashu> interesting
06:15:45 <pikhq> Patashu: Also, this discussion seems to start off with wrong *premises*.
06:15:50 <CakeProphet> the true, false, unknown bit is also a ternary logic system in itself.
06:16:02 <CakeProphet> and then the strong weak stuff comes from four-valued logic used in circuits.
06:16:04 <Patashu> yeah, though not a useful one I think?
06:16:09 <Patashu> right
06:16:09 <CakeProphet> things that, I don't know anything about. (circuits, that is)
06:16:22 <CakeProphet> Patashu: ternary logic can be useful.
06:16:26 <pikhq> Patashu: Categorical logic is not commonly used these days, due to being a relatively weak system of logic.
06:16:30 <Patashu> I agree it can be useful
06:16:43 <Patashu> but if one of the values is 'unknown'...unless that's a specific value, not the value is unknown?
06:16:59 <CakeProphet> in programming languages, it's not common to have a real ternary logic system though. Most languages simply treat the undefined value as false.
06:17:09 <CakeProphet> unknown is a specific value.
06:17:17 <CakeProphet> representing the case where the truth is unknown.
06:17:28 <Patashu> mmk
06:17:39 <pikhq> It's truth-functional propositional logic that's commonly used, and the discussion you linked to doesn't even make any claims against it.
06:17:41 <CakeProphet> (true or unknown) = true; (false or unknown) = false
06:17:50 <pikhq> (though, the claims it *does* make are non-sense)
06:17:57 <pikhq> s/non-sense/nonsense/
06:18:02 <CakeProphet> (true|false) and unknown = unknown
06:18:10 <CakeProphet> it all makes intuitive sense.
06:20:22 <CakeProphet> not unknown = unknown
06:21:11 <Patashu> what about fuzzy logic?
06:21:12 <CakeProphet> I'm not sure how conditional statements work, or anything like that. I assume you just construct everything with (and|or) and not
06:21:15 <Patashu> true and 0.6*true = 0.6*true
06:21:16 <CakeProphet> Patashu: what about it?
06:21:30 <CakeProphet> fuzzy logic doesn't really work that way, I think.
06:21:55 <Patashu> well, if it has a 60% chance of being true and a thing that is always true, the and is 60% too
06:22:03 <CakeProphet> that's not the same as fuzzy logic
06:22:19 <CakeProphet> that's probability logic.
06:22:30 <CakeProphet> fuzzy logic is a "degree" of truth.
06:22:57 <Patashu> x AND y = minimum(truth(x), truth(y))
06:23:03 <Patashu> according to wikipedia
06:23:17 <Patashu> although that's just one way of defining it
06:23:35 <CakeProphet> okay that makes sense.
06:23:45 <CakeProphet> or is max I'd imagine.
06:23:59 <CakeProphet> and not is 1-p
06:25:01 <CakeProphet> you could also define it as with probability. With and as multiplication, and or as addition with a maximum value of 1.
06:25:36 <CakeProphet> depends on the application.
06:25:39 -!- jcp has quit (Ping timeout: 244 seconds).
06:26:41 <CakeProphet> :t (||)
06:26:42 <lambdabot> Bool -> Bool -> Bool
06:26:52 <CakeProphet> honestly the boolean operators should be typeclass methods.
06:27:55 <Patashu> http://www.captchart.com/post/2546187692/corgling-good-submitted-by-stammsternenstaub I want one
06:28:02 <CakeProphet> :t min
06:28:03 <lambdabot> forall a. (Ord a) => a -> a -> a
06:28:19 <Patashu> > min True False
06:28:20 <lambdabot> False
06:28:22 <Patashu> thought so
06:28:26 <Patashu> is there an Unknown in haskell?
06:28:32 <CakeProphet> not in Bool no
06:28:40 <CakeProphet> there's Nothing, which is of type Maybe t
06:28:46 <CakeProphet> which can act as an unknown value.
06:28:52 <monqy> there's undefined
06:28:55 <CakeProphet> or a number of things. But it doesn't fit into the ternary logic model.
06:28:55 <pikhq> One could define a Trivalue type just fine.
06:29:27 <CakeProphet> though you'd have to give true and false a different name
06:29:33 <pikhq> data Trivalue = Unknown | True | False -- Note: will need a qualified import
06:29:43 <pikhq> CakeProphet: Or do a qualified import of Prelude.
06:29:44 <CakeProphet> ah, or do that.
06:30:16 <CakeProphet> undefined is something quite different from unknown in this sense.
06:30:28 <pikhq> Yeah, bottom is very different.
06:30:45 <monqy> I wasn't paying attention so I didn't know what you were talking about
06:30:52 <pikhq> monqy: Trivalue logic.
06:31:02 <monqy> mm
06:31:08 <CakeProphet> Perl employs a kind of three-valued logic between true, false, and undefined
06:31:18 <monqy> how does it work there
06:31:19 <Patashu> damnit I have all these tabs open but everyone is talking about things on IRC and they are interesting
06:31:20 -!- jcp has joined.
06:31:58 <CakeProphet> undef is considered false in a boolean context, but many functions will return undef to signify something different than true and false.
06:32:05 <CakeProphet> usually "another kind" of false.
06:32:27 <CakeProphet> and then there's defined(x), which returns true for both true and false values, but false for undef.
06:32:39 <Patashu> I think SQL does ternary logic
06:32:44 <Patashu> with true/false/null
06:33:26 <CakeProphet> is true or null = true?
06:33:47 <Patashu> think so...let me try and find out
06:33:48 <CakeProphet> or is it like most languages where null/nil/undef is a special kind of false value.
06:34:03 <CakeProphet> None in the case of Python.
06:34:05 <Patashu> according to ye wikipedia: http://en.wikipedia.org/wiki/Three-valued_logic#Applications
06:34:13 <pikhq> You could rather easily do trivalue logic in Java.
06:34:41 <monqy> Note that a missing value is not the same as either a numeric value of zero, or a string value of zero length.
06:34:45 <pikhq> Though you'd have to do the operators manually. I'm at least pretty sure that trying to do an operator on a Null will get you an exception.
06:35:00 <Patashu> huh, operator on a null/
06:35:04 <Patashu> in java only objects can be null
06:35:07 <Patashu> and primitives won't work on objects iirc
06:35:14 <pikhq> Oh? Fuck Java even more.
06:35:15 <Patashu> because you can't define operators for things
06:35:30 <Patashu> well except for the capital letter object versions of primitives and strings, of course
06:35:31 <Patashu> which are Special
06:35:39 <CakeProphet> one of my favorite things about Perl logic is that the boolean operators also serve as control flow statements. and/or return the last parameter evaluated.
06:35:47 <Patashu> iirc the biginteger class has a big ass list of add(biginteger a, big integer b) type methods
06:35:55 <pikhq> I was, of course, referring to the objected version of Bool...
06:36:01 <Patashu> hmmmm
06:36:02 <Patashu> one second
06:36:10 <CakeProphet> yes a boxed Bool can be set to null.
06:36:10 <monqy> I hate it when people use boolean operators as control flow
06:36:18 <pikhq> CakeProphet: That's actually fairly common in imperative languages...
06:36:19 <monqy> bugs me so much
06:36:27 <pikhq> CakeProphet: As typically, the boolean operators short-circuit.
06:36:39 <CakeProphet> monqy: why? it's not very difficult to follow and makes things very convenient.
06:36:41 <Patashu> Boolean has compareTo, equals, booleanValue
06:37:00 <pikhq> CakeProphet: You can, in fact, do it in C, though not as usefully without GNU expression statements.
06:37:03 <Patashu> compareTo throws nullpointerexception
06:37:03 <monqy> CakeProphet: it's not very difficult to follow until it gets difficult to follow
06:37:04 <Patashu> oh lord
06:37:12 <Patashu> equals does not thank god
06:37:13 <CakeProphet> pikhq: but in C for example they return bool. Perl literally returns whatever the parameter was. Perl doesn't actually have boolean data types.
06:37:42 <pikhq> CakeProphet: No they don't.
06:37:44 <monqy> lots of languages are like that aren't they
06:37:47 <pikhq> CakeProphet: They return int.
06:38:01 <CakeProphet> pikhq: er, right.
06:38:02 <pikhq> CakeProphet: C doesn't actually have boolean data types.
06:38:11 <monqy> scheme and lua, for two
06:38:16 <pikhq> (well, there's _Bool, but that's just an integer type)
06:38:18 <CakeProphet> pikhq: bool is a kind of synonym for int, yes.
06:38:44 <monqy> haskell is lazily evaluated so you never need that nonsense
06:38:55 <CakeProphet> ...I'm not talking about short-circuiting.
06:39:12 <monqy> well then
06:39:18 <monqy> haskell is functional so you never need that nonsense
06:39:41 <CakeProphet> I'm saying. you can do things like: function($x || 4) and it will return 4 if $x is false.
06:40:28 <CakeProphet> monqy: that was more directed to above statements that I didn't have time to respond to.
06:40:52 <pikhq> Aaaah, bad type systems.
06:40:56 <monqy> heheheh
06:41:04 <CakeProphet> more like "almost no type system"
06:41:11 <monqy> I must say I do like a good type system
06:41:14 <Vorpal> CakeProphet, that example sounds perlish
06:41:25 <CakeProphet> it is very perlish.
06:41:44 <pikhq> CakeProphet: You see, bad!
06:41:50 <CakeProphet> $x //= 3 will give $x a value of 3 if it's currently holding undef (which it does by default)
06:41:56 <Vorpal> CakeProphet, what does it do in perl?
06:42:03 <pikhq> And it definitely has an extensive type system. Those damned sigels would have no meaning otherwise.
06:42:11 <Vorpal> the $x || 4 one I mean
06:42:35 <Vorpal> same sort of thing as || does in shell?
06:42:44 <monqy> anyway in haskell you'd probably use the maybe monad for that sort of thing
06:42:46 <CakeProphet> Vorpal: function is just a dummy name. || returns the last value evaluated by short-circuiting or.
06:42:50 <CakeProphet> Vorpal: I think so.
06:42:54 <Vorpal> ah
06:42:57 <Vorpal> yes sounds like it
06:43:11 <monqy> and <|>
06:43:19 <Vorpal> CakeProphet, it would just equal 1 in C. I have to say that is somewhat saner
06:43:27 <monqy> at least I think you'd use <|> and Maybe
06:43:28 <Vorpal> well, 1 or 0
06:43:35 <Vorpal> that sort of construct that is
06:44:01 <Patashu> which language has more operators. haskell or perl?
06:44:04 <CakeProphet> Vorpal: it's the exact same effect, except you can now pass the original value to outer expressions.
06:44:22 <monqy> haskell operators are just functions
06:44:25 <Vorpal> Patashu, I would assume haskell, though maybe not if you limit yourself to prelude
06:44:28 <monqy> dunno about perl
06:44:33 <CakeProphet> Vorpal: because if $x || 0 returns 0, that is false in boolean context. $x || 4 would return 4, which is true.
06:44:45 <Vorpal> Patashu, and only count those that you don't need ` for
06:45:00 <Vorpal> CakeProphet, hm
06:45:03 <Patashu> yeah when I say operator I mean 'funny symbol string'
06:45:09 <Patashu> :D
06:45:26 <pikhq> Patashu: Then Haskell.
06:45:28 <CakeProphet> Haskell has more operators for sure.
06:45:35 <monqy> > let (~~!~~) = (++) in "look " ~~!~~ "operator"
06:45:37 <pikhq> Patashu: Because there are infinitely many possible such things.
06:45:39 <lambdabot> mueval-core: Time limit exceeded
06:45:42 <monqy> oops
06:45:44 <Patashu> lol
06:45:45 <Patashu> nice
06:45:45 <monqy> oh
06:45:48 <Vorpal> does perl let you define your own operators?
06:45:49 <monqy> I used a bad thing
06:45:53 <pikhq> Vorpal: No.
06:46:02 <Vorpal> ah, definitely haskell then
06:46:04 <monqy> > let (.+.) = (++) in "look " .+. "operator"
06:46:04 <CakeProphet> you can however overload existing operators OO-style.
06:46:06 <lambdabot> "look operator"
06:46:09 <monqy> :)
06:46:10 <Patashu> there's a library for perl that lets you define new operators
06:46:13 <Patashu> by chaining unambiguous ones together
06:46:24 <Vorpal> eww
06:46:29 <Vorpal> so... perlish!
06:46:34 <monqy> haha perl
06:46:35 <Patashu> yep!
06:46:48 <Patashu> and there's a template system for C++ that lets you define constants by drawing cubes
06:46:58 <Vorpal> Patashu, *blink*
06:46:58 <Patashu> because it's an unambigous series of operators once all the whitespace is removed
06:47:03 <Patashu> let's see if I can find it again
06:47:03 <Vorpal> Patashu, care to link me?
06:47:19 <monqy> wow what
06:47:19 <CakeProphet> but anyways, Perl's boolean operators are awesome because I don't have to pull out if statements to do something very very simple, like return a default value in the case that something is false/undefined.
06:47:23 <Patashu> http://weegen.home.xs4all.nl/eelis/analogliterals.xhtml ah ha!
06:47:40 <pikhq> Vorpal: It used a similar trick to that IOCCC entry that computed pi by examining its own area.
06:48:05 <Vorpal> pikhq, that one depended on K&R CPP iirc?
06:48:20 <pikhq> Vorpal: I don't think it was anything inherent.
06:48:30 <pikhq> CakeProphet: Perhaps you should use a better language.
06:48:38 <Vorpal> pikhq, hm.
06:49:30 <monqy> CakeProphet: what languages do you know, anyway
06:50:51 <Vorpal> <Patashu> http://weegen.home.xs4all.nl/eelis/analogliterals.xhtml ah ha! <-- ew
06:50:53 <CakeProphet> Perl, Python, C, Java, C#, Haskell (though it escapes me very quickly), sh. Those are the ones I'm pretty comfortable with.
06:51:13 <monqy> so you're comfortable with haskell but it escapes you?
06:51:19 <CakeProphet> yep.
06:51:24 <Vorpal> haskell is definitely complex to learn. I know some of it. But there is so much of it.
06:52:07 <CakeProphet> I now Haskell. Syntax and semantics. All of the abstract modules that most Haskell programs rely on? No.
06:52:14 <CakeProphet> *know (I also know English)
06:52:31 <pikhq> CakeProphet: I find the abstractions to be utterly simple, personally.
06:52:50 <pikhq> Of course, I'm a freak who picked up Haskell in a week.
06:52:51 <pikhq> :P
06:53:28 <Vorpal> pikhq, haskell has a vast standard library. I only know a fraction of it yet.
06:53:41 <pikhq> Vorpal: Prelude really isn't that large.
06:53:52 <pikhq> Some of the other stuff that comes in GHC is, though.
06:54:13 <Vorpal> pikhq, I meant stuff like Control.Whatever and so on
06:54:29 <coppro> Control.CategoryTheoreticalAbstractionNumberFourteen
06:54:35 <pikhq> Yeaaah, that's not standard stuff.
06:54:36 <Vorpal> coppro, :D
06:54:43 <Vorpal> pikhq, well, it is used quite a bit
06:54:44 <pikhq> Some of it ships in the Platform, though.
06:54:51 <Vorpal> pikhq, if we keep to prelude I'm quite okay
06:54:54 <CakeProphet> Languages I don't know as well (I'll be constantly referring to reference material, but I know the language itself): C++, PHP, Javascript, Scheme
06:54:56 <pikhq> That "some" is relatively easy, though.
06:54:56 <Patashu> I know C++ and java and I can pretend to know haskell, bash and python
06:54:57 <Patashu> aw yeah!!!
06:55:00 <Patashu> I need to learn more languages
06:55:17 <monqy> I try not to know php
06:55:17 <CakeProphet> Patashu: I can pretend to know Ruby. :)
06:55:19 <coppro> (The misuse of Theoretical instead of Theoretic was a design mistake that was standardized early and no one has since bothered attempting to correct in order to maintain backwards compatibility)
06:55:22 <pikhq> CakeProphet: Pretty much all C++ programmers will need to keep a reference manual handy.
06:55:23 <Patashu> hehe
06:55:24 <CakeProphet> monqy: me too.
06:55:29 <pikhq> CakeProphet: C++ is just too big to keep in your head.
06:55:42 <Patashu> couldn't you do some kind of aliasing thing to let you use either?
06:56:01 <CakeProphet> either of?
06:56:10 <Patashu> theoretic or theoretical
06:56:43 <coppro> Patashu: it's a highly contentious issue
06:56:49 <Patashu> haha
06:56:50 <Vorpal> I know C very well. Bash I know intimately. Haskell I know some of. And then there is a crapload of other languages which I knew but haven't used much or know some of and so on, including everything from pascal and vhdl to python and scheme.
06:57:49 <CakeProphet> monqy: the main trying to not know PHP is a good idea is because it's a very poorly designed subset of Perl with a standard library that makes absolutely no sense.
06:57:53 <CakeProphet> *main reason
06:57:56 <monqy> python is easy to pretend to know
06:58:19 <CakeProphet> Python was the first language I completely mastered.
06:58:30 <CakeProphet> wasn't difficult.
06:58:31 <pikhq> There's a lot of languages where you can hum a bar and I can fake it.
06:58:35 <monqy> CakeProphet: I am the sort of awful person who dislikes it when people like php
06:58:42 <Vorpal> monqy, I actually coded in it though (python that is)
06:58:50 <Vorpal> mostly university stuff
06:58:54 <monqy> python is easy to code in
06:58:58 <Vorpal> yes
06:59:11 <Vorpal> oh erlang, I know that fairly well. Better than haskell definitely.
06:59:14 <CakeProphet> I used to think Python was a good language. I have since learned better.
06:59:33 <monqy> I can pretend to know erlang but I don't know any of the standart guard/function/whatever names
06:59:35 <Vorpal> CakeProphet, I'm mostly annoyed at python's abysmal speed.
06:59:41 <Vorpal> even pypy is utterly slow
06:59:57 <monqy> I don't judge languages based on implementation speed
07:00:06 <monqy> I don't see what's so special about python though
07:00:07 <Patashu> what kind of person thinks -python- is a bad language
07:00:10 <Patashu> ?_?
07:00:11 <Vorpal> monqy, true, but I have yet to see a fast python implementation
07:00:38 <CakeProphet> monqy: someone who exects more and doesn't enjoy being treated like a child from the perspective of the language designer.
07:00:41 <CakeProphet> er
07:00:44 <CakeProphet> ^ Patashu
07:00:49 <monqy> heheheheh
07:00:54 <pikhq> Patashu: If nothing else, there's the bit about van Rossum being convinced that TCO is a misfeature.
07:00:55 <Vorpal> Patashu, come on, dynamically typed, and not pattern matching. At least erlang has the latter.
07:01:15 <Patashu> okay guys
07:01:16 <Patashu> this is it
07:01:19 <Patashu> what is The Best Language
07:01:24 <monqy> all languages suck
07:01:26 <Patashu> yep
07:01:30 * Patashu goes home
07:01:32 <Vorpal> Patashu, that depends on what you plan to use it for
07:01:32 <pikhq> Haskell has the lowest level of suck.
07:01:40 <CakeProphet> I have to agree with pikhq on that one.
07:01:42 <Patashu> I think I'll learn python next anyway, can't be worse than java
07:01:46 <Vorpal> pikhq, haskell would not be very good for programming FPGAs in
07:01:52 <CakeProphet> Patashu: you should learn Perl because it is the best thing ever.
07:01:56 <Patashu> I should huh
07:01:58 <pikhq> Vorpal: I was giving a statement about the general case.
07:02:00 <CakeProphet> Patashu: and Python is much better than Java.
07:02:11 <Vorpal> pikhq, I'm saying it is domain dependent which is the best language
07:02:12 <Patashu> I know python has a module for making GUIs/graphics stuff in it somewhere
07:02:14 <Patashu> does perl? haskell?
07:02:22 <pikhq> Vorpal: Most languages do.
07:02:23 <Patashu> imagining using opengl from within haskell gives me a shiver
07:02:24 <monqy> haskell is good until I get really annoyed with what it lacks and how it's a pain to metaprogram
07:02:25 <Vorpal> there are some things where sed is excellent.
07:02:25 <pikhq> Erm.
07:02:26 <pikhq> Patashu: ^
07:02:28 <CakeProphet> Patashu: uh, what?
07:02:34 <Vorpal> doesn't make sed a good language for most tasks
07:02:52 <monqy> also I have a gripe about infix operators but that is just me
07:02:59 <Vorpal> Patashu, yes, I think the existing opengl bindings for haskell are pretty much a direct mapping
07:03:00 <pikhq> Patashu: The only issue with the OpenGL binding in Haskell, for instance, is that it's all in IO, and hence not that Haskelly.
07:03:02 <Vorpal> which... sucks
07:03:08 <Patashu> yeah that's what I mean
07:03:12 <Patashu> opengl is a global variable state machine
07:03:14 <Patashu> haskell is not
07:03:19 <CakeProphet> Python is actually pretty good at metaprogramming. But, so is any decently made dynamically typed and interpreted language
07:03:50 <pikhq> The only languages that are "pretty good" at metaprogramming are Lisps.
07:03:57 <Vorpal> indeed
07:04:00 <monqy> yep
07:04:40 <CakeProphet> easy to metaprogram, yes. I was talking about pure capability.
07:04:58 <monqy> pure capability: do it by hand
07:06:53 <monqy> as I see it, at a certain point, languages are all about making things nice (in a general enough sense to encompass safety and friends)
07:07:40 <CakeProphet> Even more generally, languages are all about making things good.
07:07:54 <CakeProphet> insert definition of good.
07:08:05 <monqy> I'll equate nice and good here so we can agree
07:08:27 <CakeProphet> oh yes, we were always in agreement.
07:08:49 <Vorpal> languages are about communication, be it between humans, between a human and a compiler, between two programs or whatever.
07:09:13 <monqy> but is it nicegood communication
07:09:20 <Vorpal> monqy, possibly
07:09:29 <Vorpal> monqy, but why does English exist then? ;P
07:09:34 <monqy> :'(
07:09:46 <Vorpal> okay, French is harder to learn, definitely.
07:09:51 <monqy> is french better
07:09:56 <Vorpal> what
07:10:00 <monqy> than english
07:10:04 <Vorpal> I said harder to learn, that means worse
07:10:06 <monqy> oh
07:10:23 <monqy> I meant in terms of elegance, power, lack of ambiguity, and friends
07:10:27 <pikhq> "Harder to learn" is not an objective statement regarding languages.
07:10:31 <Vorpal> of course, all natural languages suck apart from lojban possiblyu
07:10:34 <Vorpal> possibly*
07:10:40 <pikhq> Lojban is not a natural language.
07:10:41 <monqy> lojban is very natural
07:10:42 <pikhq> It's a conlang.
07:10:48 <Vorpal> true
07:10:49 <monqy> of course I jest
07:11:23 <Vorpal> pikhq, what is a generic term for languages used to communicate between humans then?
07:11:31 <Patashu> verbal?
07:11:32 <monqy> human languages?
07:11:36 <Vorpal> hm
07:11:36 <monqy> not necessarily verbal
07:11:39 <Patashu> yeah true
07:11:57 <Patashu> do you need a more generic term?
07:12:06 <Vorpal> I guess "human languages" work
07:12:06 <Patashu> (less generic?)
07:12:23 <Vorpal> though it *does* exclude aliens.
07:12:24 <fizzie> "Natural languages" is a term but only if you exclude constructed ones.
07:12:40 <Vorpal> fizzie, constructed ones should be included. That was the point.
07:12:46 <pikhq> There's not a commonly used generic term.
07:12:48 <fizzie> Didn't bother to read backscroll, and it shows, yes.
07:13:05 <Vorpal> fizzie, speaking of which. Hi.
07:13:05 <pikhq> "Spoken language" doesn't include sign languages, "natural language" doesn't include conlangs, ...
07:13:17 <pikhq> "Human language" probably includes programming languages.
07:13:22 <Patashu> afaik language only referred to how humans communicated until programming came along
07:13:30 <monqy> I meant human languages as in meant for human communication
07:13:34 <Vorpal> hm I should learn to *speak* Lisp.
07:13:42 <monqy> programming language would be meant primarily for communication with machines
07:13:42 <Vorpal> just to fuck up the term "spoken languages"
07:13:47 <Patashu> so you'd verbalize a program that outputs the result you want to communicate?
07:13:53 <pikhq> Patashu: And then came Chomsky.
07:13:54 <Patashu> Open bracket open bracket...
07:14:02 <Vorpal> Patashu, no that is it rendered in English
07:14:15 <Patashu> Or would you come up with a syllable for each symbol
07:14:19 <Patashu> So ( would be like weoop
07:14:23 <Patashu> and ) is deeoop
07:14:30 <Vorpal> you need to speak the *actual* language. Presumably somehow speaking the AST.
07:14:37 -!- sebbu has quit (Ping timeout: 276 seconds).
07:14:43 <Vorpal> hm
07:14:51 <monqy> well then you can't use sugar can you :(
07:15:00 <Vorpal> oh good point
07:15:10 <Patashu> if you want to learn to speak a programming language, learn to speak golf script
07:15:16 <Patashu> it'll take you the least amount of time
07:15:22 <Vorpal> good point
07:15:26 <monqy> speaking perl would be pretty great
07:15:48 <Vorpal> monqy, oh god, I wonder what a typical JAPH would sound like XD
07:16:33 <monqy> how would a human interpret something like erlang
07:16:38 <coppro> http://spikedmath.com/272.html
07:16:50 <Vorpal> monqy, hm...
07:16:59 <monqy> assuming actual use of concurrency and friends
07:17:38 <monqy> generally, interpretation of any sort of complicated control/flow would be interesting
07:18:02 <pikhq> monqy: There is no requirement that concurrency be implemented by many *actual* simultaneous threads of execution.
07:18:10 <Vorpal> monqy, using Petri nets you could understand them I guess.
07:18:11 <pikhq> It's sufficient to merely keep track of multiple program counters.
07:18:16 <Vorpal> but that is not what you asked
07:18:52 <Vorpal> pikhq, and registers. erlang compiles to a register machine byte code iirc.
07:19:26 <pikhq> Ah, right, it does.
07:19:30 <monqy> pikhq: right, but for a human to keep track of it at all (in common conversation) would be nice
07:19:38 <monqy> where by nice I mean hilarious
07:20:26 <monqy> where by hilarious I mean interesting
07:21:17 <Vorpal> monqy, where by interesting you mean nice?
07:21:25 <monqy> possibly
07:23:32 <monqy> a language with really crazy flow and necessitation of a lot of memory
07:23:53 <monqy> designed to be difficult for human communication
07:24:21 <Sgeo> I need to find a way to ethically measure terminal velocity
07:24:30 <monqy> ethically?
07:25:12 <CakeProphet> you're still talking about second life right?
07:25:15 <Sgeo> Yes
07:25:16 <monqy> always
07:25:31 <CakeProphet> Can you explain second life ethics?
07:25:33 <Sgeo> I'm dropping stuff off of high heights
07:25:40 <Sgeo> I set it up so that they're "temporary"
07:25:45 <Sgeo> After some time, they die
07:25:46 <monqy> alternatively, an extremely straightforward language where nearly all remembering is done as part of learning it
07:25:48 <Sgeo> But they're dying too soon
07:25:51 <monqy> designed to be easy for humans to use
07:25:59 <Sgeo> They're dying too soon
07:26:08 <CakeProphet> Sgeo: why not make them something other than temporary?
07:26:09 <Vorpal> monqy, which language is that
07:26:11 <Sgeo> Disabling the temporary might mean accidentally leaving litter all over the place
07:26:25 <Sgeo> CakeProphet, I'll probably set them up to respond to a simwide command to die
07:26:31 <monqy> Vorpal: purely hypothetical, as far as I know :(
07:26:49 <Vorpal> monqy, ah. <monqy> a language with really crazy flow and necessitation of a lot of memory <-- that one likely does exist though
07:26:50 <CakeProphet> Sgeo: is it you that enjoys MUDs/text-based-games?
07:27:07 <Sgeo> SL isn't text-based
07:27:11 <CakeProphet> I know.
07:27:14 <monqy> sgeo is the virtual worlds guy
07:27:18 <monqy> he enjoys virtual worlds
07:27:20 <Vorpal> monqy, I would suggest something based on malbolge
07:27:28 <CakeProphet> Sgeo: do you enjoy MUDs?
07:27:39 <CakeProphet> since they are very much like virtual worlds.
07:27:39 <Sgeo> CakeProphet, MUSHes, a little
07:27:41 <Sgeo> and MOOs
07:27:47 <Vorpal> Sgeo, what about table top rpgs?
07:27:54 <CakeProphet> Sgeo: well, right, I use MUD as a general term for all of those things.
07:27:54 <Sgeo> Vorpal, I do like Paranoia
07:27:59 <Vorpal> oh my
07:28:16 <Vorpal> Sgeo, what about the classical ADnD?
07:28:21 <CakeProphet> the problem with MUSH is it has awful syntax. MOO is a little better.
07:28:44 <Vorpal> s/n/\&/
07:28:51 <monqy> does malbolge have crazy control flow
07:29:00 <Vorpal> monqy, very. Check the esolang wiki
07:29:03 <monqy> ooh
07:29:18 <Lymia> Paranioa?
07:29:19 <Sgeo> CakeProphet, I like MOO coding, at least from what I understand of it, but LambdaMOO may as well be dead, there's no one there
07:29:22 <Lymia> Paranoia*
07:29:25 <CakeProphet> Vorpal: no need to escape things in the replacement string of a substition. ;)
07:29:26 <Lymia> The RPG?
07:29:30 <Lymia> Oh, yes.
07:29:30 <Sgeo> Lymia, yes
07:29:33 <Lymia> I should host that.
07:29:34 <Lymia> :D
07:29:41 <Vorpal> CakeProphet, you fail at sed
07:29:48 <Vorpal> CakeProphet, & means "the match"
07:30:01 <Vorpal> CakeProphet, so *yes* I need to escape it
07:30:05 <CakeProphet> Vorpal: so..... s/n/n/?
07:30:17 <Vorpal> CakeProphet, that is what s/n/&/ would do yes
07:30:23 <CakeProphet> ah.
07:30:25 <Vorpal> CakeProphet, which is quite pointless
07:30:28 <CakeProphet> yes.
07:30:58 <CakeProphet> yes, I do fail at sed. Because I use Perl instead. oh ho!
07:31:12 <CakeProphet> master of rhyme.
07:31:20 <monqy> ooh "Set code pointer to the value pointed to by the current data pointer." always good
07:31:41 <Patashu> variable goto considered harmful
07:32:11 <Vorpal> monqy, malbolge still?
07:32:17 <monqy> malbolge always
07:32:35 <Vorpal> Patashu, you are talking about malbolge. I would just say "malbolge considered harmful"
07:32:51 <Patashu> is there variable goto in non-malbolge languages?
07:33:06 <olsner_> gcc c has it
07:33:20 <Vorpal> Patashu, most assemblers have it
07:33:27 <Patashu> thought so
07:33:31 <Vorpal> indirect jump or so
07:34:20 <monqy> ridiculous continuation usage such as to emulate variable goto
07:34:28 <monqy> a favorite pasttime
07:34:37 <Vorpal> ew
07:36:49 <Patashu> the fakest thing in the world is freddiew beating stacker: http://www.youtube.com/watch?v=-e_NiwPz-MQ
07:37:20 <Sgeo> My terminal velocity hypothesis is slowly being debunked
07:41:17 <Lymia> Sgeo, so Second Life does inverse square law?
07:41:41 <Sgeo> Lymia, wasn't trying to measure that
07:41:58 <Sgeo> Wasn't taking notes on exact velocities either
07:52:16 -!- zzo38 has quit (Remote host closed the connection).
08:01:42 <CakeProphet> I enjoy this IOCCC entry: http://www0.us.ioccc.org/2000/primenum.c
08:03:31 <CakeProphet> though it's not very obfuscated...
08:19:32 <Vorpal> CakeProphet, I like the one that is shaped like an aircraft
08:19:32 <CakeProphet> OR IS IT?
08:19:36 <Vorpal> forgot which year
08:19:57 <Vorpal> that is some absurd timing. Quiet for many minutes, and then we spoke within a second of each othjer
08:20:00 <Vorpal> other*
08:20:05 <CakeProphet> 1998
08:20:12 <CakeProphet> it's a flight simulator.
08:20:32 <Vorpal> CakeProphet, calling it a simulator is stretching it
08:21:00 <Vorpal> CakeProphet, I mean, it doesn't even stall. Or behave reasonably in any way
08:21:12 <CakeProphet> well... I don't actually run any of this code I just go by the description.
08:21:14 <CakeProphet> http://www0.us.ioccc.org/1994/schnitzi.c
08:21:20 <CakeProphet> this is by far my favorite one that I've seen so far.
08:22:16 <CakeProphet> it opens a file and mirrors it along a diagonal. Running it on itself produces a program that does the same thing.
08:25:59 <olsner_> wow, that's neat
08:28:24 <Patashu> my thoughts too
08:28:26 -!- Vorpal has quit (Ping timeout: 248 seconds).
08:28:53 <CakeProphet> though I don't believe running it a second time will work.
08:29:07 <CakeProphet> according to the .hint file
08:31:55 <CakeProphet> well no, that would be impossible I think. applying the program twice to itself should produce the original. I think I misread.
08:32:09 <CakeProphet> ah, it's not perfectly symmetrical.
08:33:12 -!- olsner_ has quit (Quit: Leaving).
08:49:46 <CakeProphet> Oh hey, the author of that program lives in Marietta, GA too
08:50:19 <CakeProphet> I wonder if he still does.
09:01:11 <CakeProphet> heh, there's an entry that is: #include "/dev/tty"
09:01:32 <CakeProphet> won best abuse of the rules.
09:05:39 <monqy> nice
09:16:30 -!- monqy has quit (Quit: hello).
09:16:41 -!- myndzi has quit (Ping timeout: 255 seconds).
09:22:05 -!- myndzi has joined.
09:25:10 -!- pikhq_ has joined.
09:25:13 -!- pikhq has quit (Ping timeout: 260 seconds).
09:28:18 <Lymia> CakeProphet, so...
09:28:21 <Lymia> It's a C compiler?
09:28:21 <Lymia> =p
09:31:56 <Lymia> CakeProphet, link to the /dev/tty thing?
09:31:59 <Lymia> Also, the rule added to stop it.
09:32:48 -!- GreaseMonkey has quit (Quit: The Other Game).
09:33:04 <CakeProphet> Lymia: http://www0.us.ioccc.org/1988/spinellis.hint
09:33:20 <CakeProphet> ...change .hint to .c to see the source code. But I have no idea why you would do that since I told you what it was.
09:34:13 <Patashu> wait
09:34:17 <Patashu> #include "/dev/tty"
09:34:18 <Patashu> ...
09:34:19 <Patashu> oh my god
09:34:22 <Patashu> it includes whatever you type
09:34:30 <Lymia> Yes.
09:34:33 <Patashu> O_O
09:39:29 -!- Tritonio has joined.
09:51:40 <CakeProphet> `run head -c 10 /dev/random
09:51:44 <HackEgo> No output.
09:51:52 <CakeProphet> `run ls /dev/random
09:51:54 <HackEgo> No output.
09:52:55 <CakeProphet> aw
09:54:10 -!- Vorpal has joined.
09:56:26 <lifthrasiir> CakeProphet, hm, the IOCCC is dead now however?
09:56:27 <Patashu> what other horrible things could you include
09:56:33 <Patashu> include a socket, have C code streamed from other computer?
09:56:44 <lifthrasiir> Patashu, #include "/dev/urandom"
09:56:49 <Patashu> thought of that
09:56:52 <Patashu> but it'd never generate code
09:56:54 <Patashu> or end for that matter
09:56:54 <lifthrasiir> wait, no, it cannot be used
09:56:55 <lifthrasiir> yes
09:57:26 <CakeProphet> I often sit and stare at /dev/urandom seeing if it will ever output a C program...
09:57:36 <Patashu> can you include a named pipe?
09:58:02 <cheater_> CakeProphet: but all it does is perl, right?
09:58:16 <Patashu> lol
10:02:08 <Vorpal> <Patashu> but it'd never generate code
10:02:09 <Vorpal> well
10:02:16 <Vorpal> unlikely
10:02:19 <Patashu> 'never'
10:02:20 <Vorpal> but it *could* happen
10:02:21 <Patashu> you know what I mean
10:02:36 <Vorpal> Patashu, I'm still catting it waiting to get a free copy of every book written
10:02:47 <Patashu> how would you know when you had it?
10:02:48 <CakeProphet> it would be interesting to attempt to express as a probability.
10:02:52 <CakeProphet> also, extremely complicated.
10:03:07 <Vorpal> Patashu, well, some sort of sense when interpreting it as ascii? ;P
10:03:20 <Patashu> what's the shortest possible C program?
10:03:35 <CakeProphet> with some compilers the null string is an acceptable C program.
10:03:41 <cheater_> &
10:03:43 <cheater_> er
10:03:47 <cheater_> what he said.
10:03:55 <cheater_> i was gonna do ^ :p
10:04:25 <CakeProphet> otherwise I think it would be like...
10:04:40 <CakeProphet> int main();
10:04:41 <CakeProphet> ?
10:04:44 <CakeProphet> no.
10:05:03 <Patashu> it needs to have -something-, right?
10:05:04 <CakeProphet> you'd basically just declare an empty main.
10:05:21 <Patashu> int main(){return 0;}
10:05:22 <Vorpal> CakeProphet, const char main[] = "\0"; <-- likely to segfault
10:05:23 <CakeProphet> no it can be empty I believe. Just { }
10:05:31 <Vorpal> if it even compiles
10:05:37 <Patashu> doesn't it -have- to return something? guess it depends on the standard
10:05:57 <Vorpal> Patashu, main? not in C99. Then main has an implicit return 0 at the end
10:06:02 <Vorpal> stupid change IMO
10:06:22 <CakeProphet> can't main be void as well?
10:06:43 <Vorpal> CakeProphet, not in standard C afaik
10:08:05 <Patashu> this might be of interest: http://golf.shinh.org/p.rb?Timeout
10:08:20 <Patashu> according to whatever (probably extremely lax) compiler golf.shinh.org uses, this is a valid C program
10:08:24 <Patashu> main=-277;
10:08:33 <Patashu> and so is this
10:08:33 <Patashu> main='\xfe\xeb';
10:08:42 <CakeProphet> > (1/256)**(length "int main {}")
10:08:43 <lambdabot> No instance for (GHC.Float.Floating GHC.Types.Int)
10:08:43 <lambdabot> arising from a use of...
10:08:51 <CakeProphet> bah
10:08:58 <CakeProphet> > (length "int main {}")
10:08:59 <lambdabot> 11
10:09:06 <CakeProphet> > (1/256)**11
10:09:07 <lambdabot> 3.2311742677852644e-27
10:10:19 <CakeProphet> there is your probability of randomly picking 11 bytes and getting that string.
10:11:41 <CakeProphet> however, if you combine that probability with several hundred variations of short C programs you might get some more reasonable odds.
10:12:14 <Lymia> http://moonbase.rydia.net/mental/blog/programming/zipperfs
10:12:26 <CakeProphet> but anything more than a few bytes becomes effectively indistinguishable from 0
10:12:39 <Lymia> "one can cd into a lambda-term in bash."
10:12:41 <Lymia> wtf
10:12:45 <Deewiant> > ((1/) . genericLength . group . sort $ "int main {}") ^ (length "int main {}")
10:12:47 <lambdabot> 1.1641532182693481e-10
10:13:22 <CakeProphet> Deewiant: hmmm?
10:13:48 <Lymia> Patashu, so, wait.
10:13:51 <Deewiant> CakeProphet: Filtering out bytes that don't exist in "int main {}"
10:13:57 <Lymia> You could submit a string that looks like main='[binary blob]';
10:14:18 <Lymia> And.. win.
10:14:19 <Lymia> With C.
10:14:20 <CakeProphet> Deewiant: er, why?
10:14:25 <Patashu> well, of course
10:14:26 <Patashu> good luck
10:15:21 <Deewiant> CakeProphet: Just to see how much it would increase the odds
10:15:35 <CakeProphet> ah okay.
10:16:20 <CakeProphet> > (1/256)^(length "main=-277;")
10:16:21 <lambdabot> 8.271806125530277e-25
10:17:10 <CakeProphet> so yeah, effectively not ever going to happen.
10:17:54 <Deewiant> > ((^).(1/).genericLength.nub)<*>length $ "main=-277;"
10:17:56 <lambdabot> 2.8679719907924403e-10
10:18:37 <CakeProphet> perhaps the odds of generating /any/ valid C program is significant... but still most valid C programs are going to have /tiny/ probabilities of occuring randomly, so I don't think their summation will be much better.
10:19:44 <Lymia> What about the odds of getting any valid Perl program?
10:19:48 <Lymia> </bad joke>
10:20:33 <CakeProphet> considering it's based entirely on program length there's probably a better chance because Perl has a larger number of valid, small programs.
10:20:44 <CakeProphet> still very small though.
10:20:47 <Sgeo> Did this conversation start on Reddit? I remember seeing something like this before
10:21:04 <CakeProphet> No this conversation started with weird #includes
10:22:17 <Sgeo> Weird #includes were mentioned on Reddit
10:22:20 -!- Tritonio has quit (Quit: Leaving).
10:22:23 <cheater_> how the fuck:
10:22:24 <cheater_> ubuntu@ubuntu:~$ cat /dev/urandom | strings | tr "\n" " " | while read -d -n1 s; do echo -n $s; sleep 0.1; done
10:22:24 <cheater_> ,J[g? 3 +! ?krNQAudiobooks Desktop Documents Downloads imazing Music Pictures Podcasts Public Templates Ubuntu One VideosR ML7AkM:X %X_8Pl OC@U #D|
10:22:41 <Sgeo> Moth decided to fly into my eye
10:24:51 <CakeProphet> lolwhut
10:25:05 <fizzie> if "$s" happens to be "*", echo $s will list all non-dot files in current dir.
10:25:25 <CakeProphet> ah, yes.
10:25:50 <cheater_> ahhh
10:26:07 <cheater_> how do i prevent it from happening?
10:26:21 <fizzie> echo -n "$s", perhaps.
10:26:23 <Deewiant> echo -n "$s"
10:26:44 <CakeProphet> does "$s" not fix it?
10:26:54 <CakeProphet> or is globbing still on with double quotes?
10:27:32 <cheater_> seems to have worked
10:27:44 <CakeProphet> indeed.
10:27:48 <CakeProphet> `run ls "*"
10:27:50 <HackEgo> No output.
10:28:08 <CakeProphet> `run ls "*" 2>&1
10:28:10 <HackEgo> ​/bin/ls: cannot access *: No such file or directory
10:32:31 <Vorpal> btw /dev/urandom is quite good at generating befunge programs
10:32:46 <Vorpal> :P
10:33:34 <cheater_> `run echo *
10:33:35 <HackEgo> ​1 babies bin bluhbluh env foo paste ps quine.pl quine2.pl quine3.pl quotes quotese tekst tmpdir.11854 тэкст
10:59:06 <CakeProphet> `run cat quine3.pl
10:59:07 <HackEgo> ​syntax error at quine3.pl line 2, at EOF. \ Execution of quine3.pl aborted due to compilation errors..
10:59:13 <CakeProphet> `run cat quine2.pl
10:59:15 <HackEgo> ​#!/bin/perl \ open 0; print while <0>
10:59:18 <CakeProphet> `run cat quine1.pl
10:59:20 <HackEgo> No output.
10:59:25 <CakeProphet> `run cat quine.pl
10:59:27 <HackEgo> ​open 0; print <0>
11:02:08 <Patashu> what happens if a control character is in a befunge program?
11:02:13 <Patashu> compile fail? interpreter fail? ignored?
11:02:21 <Patashu> no compiler rather
11:02:29 <Patashu> well, maybe 'when loaded into memory' fail
11:02:36 <Vorpal> Patashu, it reflects off it when running
11:02:40 <Patashu> really?
11:03:15 <Vorpal> yes
11:03:24 <Patashu> how come though? I guess it's a good behaviour for \0
11:03:35 <Deewiant> Invalid commands do that
11:03:39 <Vorpal> yeah
11:03:59 <Vorpal> I'm not sure if any interpreter does UTF-8, if so I guess you could get invalid code points
11:04:02 <Vorpal> other than that however
11:06:12 <Vorpal> Patashu, I used somewhat filtered output from /dev/urandom for fuzz testing. Filtered to reduce reflecting since I wanted to test the behaviour of actual commands. Found a few crash bugs that way (division by zero in a fingerprint, and a few other things)
11:06:22 <Patashu> does befunge expect windows or unix style line breaks?
11:06:29 <Patashu> vorpal: yeah that's a good use of it
11:06:34 <Vorpal> Patashu, both!
11:06:38 <Vorpal> Patashu, mac style too
11:06:46 <Patashu> does it look at the first one it finds and use that?
11:07:02 <Deewiant> Mixed should work
11:07:06 <Vorpal> mixed works
11:07:09 <Vorpal> yeah
11:07:18 <Patashu> ah ok
11:08:08 <Vorpal> Patashu, for cfunge at least the only way you can get a loading error would be a system call for reading failing. Since it uses mmap it couldn't use /dev/urandom directly (you can't mmap character devices)
11:08:21 <Vorpal> oh and out of memory I guess for too large program
11:09:20 <Vorpal> also mmap is nice. That way you don't have to deal with newlines split across fgets() chunks and so on
11:09:26 <Vorpal> (for the \r\n case)
11:09:53 <Patashu> it's amazing how something as simple as how to break up lines is done differently on every OS
11:10:20 <Vorpal> well the mac case doesn't apply on OS X iirc
11:10:25 <Vorpal> only on older mac os
11:12:51 <Vorpal> Deewiant, does ccbi handle unicode for the source?
11:13:05 <Deewiant> Old versions did, not currently
11:13:11 <Vorpal> Deewiant, how comes?
11:13:41 <Deewiant> Because I read the spec as disallowing unicode
11:13:48 <Deewiant> (past tense)
11:14:13 <Vorpal> ah
11:14:21 <Vorpal> Deewiant, you used to argue otherwise
11:14:54 <Deewiant> Like I just said, I used to think Unicode isn't allowed and now I think it is :-P
11:15:32 <Vorpal> Deewiant, hm, but isn't there a limit to the largest character constant allowed in source
11:15:46 <Vorpal> some very large value
11:16:00 <Deewiant> 2^31-1 yes
11:16:18 <Vorpal> Deewiant, ah yes that doesn't completely cover unicode does it?
11:16:42 <Deewiant> 0x10ffff covers practically all unicode you'll run into
11:16:51 <Vorpal> Deewiant, but not the complete unicode
11:18:04 <Deewiant> I forget how exactly 0x110000 and upwards works
11:18:24 <Deewiant> Is it closer to user-defined or undefined by Unicode
11:18:28 <Vorpal> isn't the private use area up there somehow
11:18:31 <Vorpal> somewhere*
11:19:00 <Deewiant> 0x100000 - 0x10fffd is private use
11:19:51 <Deewiant> I'm pretty sure that 110000 and upwards is not part of unicode
11:20:08 <Deewiant> Of course you can encode it with UTF-any and use it internally but you can't call it unicode anymore
11:20:12 <Deewiant> Not completely sure though
11:20:19 <Vorpal> hm
11:20:43 <Deewiant> But in any case, you can always map anything up to 0xffffffff to the corresponding 32-bit signed integer and thus never break the rule of "no larger than 2^31-1" ;-)
11:21:15 <Vorpal> true
11:21:17 <Patashu> which will we run out of first, unicode addresses or ipv6 addresses?
11:21:50 <Vorpal> the "burn rates" are very different.
11:21:52 <Vorpal> hard to tell
11:22:09 <Patashu> although I suspect unicode will be replaced before ipv6 is replaced
11:30:57 -!- clog has quit (Ping timeout: 240 seconds).
11:31:03 -!- clog has joined.
11:36:05 -!- azaq23 has joined.
11:39:21 -!- ais523 has joined.
11:53:15 -!- ralc has joined.
12:05:19 -!- ralc has quit (Quit: Leaving).
12:19:39 -!- ais523 has quit (Read error: Connection reset by peer).
12:20:17 <Sgeo> Huh. That's strange.
12:20:50 <Sgeo> As I approach the point where gravity starts working again, when I give the object weight..... gravity starts to affect it, just a little, then stops
12:21:58 <Patashu> SL edge case testing?
12:24:40 -!- ais523 has joined.
12:29:43 <Sgeo> Not helping is the fact that I'm not 100% sure if the function I'm using to scale down gravity actually scales down gravity
12:40:20 <Sgeo> My previous points about gravity, that it does take longer to take effect at higher altitudes
12:40:31 <Sgeo> Well, this new experiment seems to be in conflict with that
12:48:03 <Sgeo> Time to start doing an automated binary search for the minimum gravity that stays active
12:50:36 -!- Kustas has joined.
12:51:07 -!- Kustas has quit (Client Quit).
12:52:28 <Lymia> http://esolangs.org/wiki/Andrei_Machine_9000
12:53:08 <Lymia> Help me figure this out.
12:53:09 <Lymia> D:
13:02:39 -!- Kustas has joined.
13:03:06 -!- Kustas has quit (Client Quit).
13:03:59 <ais523> Lymia: it's like a massively more complex version of Eodermdrome
13:05:08 <ais523> also, that syntax is insane
13:05:19 <ais523> I notice the example only uses the wimpmode syntax, which isn't fully general
13:05:21 <Lymia> Show suitable is it for making a golfing contest around?
13:05:31 <Patashu> if you want to go mad I guess
13:05:35 <Lymia> So*
13:05:45 <Lymia> So is it suitable for making a golfing contest around*
13:06:11 * Lymia needs sleep...
13:06:15 <Vorpal> Lymia, that was some weird typos yeah
13:06:52 <Lymia> I'm not sure what I was thinking....
13:07:10 <Lymia> ais523, how hard is it to implement?
13:07:10 <Vorpal> ais523, wimpmode? I don't see any mention of that in the article
13:07:24 <ais523> Lymia: really nasty
13:07:29 <ais523> pattern-matching on graphs always is
13:07:33 <Lymia> Golfing contest nasty?
13:07:42 <ais523> Vorpal: the alternative syntax for graphs
13:07:42 <Patashu> you'd have to be mad to codegolf that
13:07:45 <ais523> Lymia: no, worse
13:07:53 <ais523> the sort of thing where getting a working program at all would take hours or days
13:08:11 <ais523> oklopol could probably do it in a few hours, but lesser mortals like me would take ages
13:08:14 <Lymia> ais523, that is. a contest to make an implementation of it.
13:08:21 <Patashu> oh, an implementation of it
13:08:27 <Vorpal> hm
13:08:30 <ais523> Lymia: writing in it looks like it would be easier than implementing it
13:09:33 <Lymia> ais523, so if I asked you to golf it...
13:09:39 <Vorpal> Lymia, would you make a contest to make a befunge-98 interpreter with all the fingerprints ccbi implements, including TRDS?
13:09:50 <Vorpal> well okay, that would be even harder.
13:10:10 <ais523> Vorpal: I'd say implementing TRDS would be easier than AM9K, but take longer
13:10:16 <ais523> as in, it's more obvious how to go about it and what to do
13:10:16 <Vorpal> ais523, heh
13:10:20 <Vorpal> true
13:10:23 <ais523> but there's more work involved
13:10:38 <Vorpal> ais523, aren't there any good algorithms for pattern matching on graphs?
13:10:44 <Vorpal> that you could simply make use of
13:10:51 <Sgeo> Hah! Minimum absolute gravity IS altitude dependent!
13:10:52 <ais523> I don't know
13:11:14 <ais523> but the particular sort of pattern matching involved there could match several independent parts of the graph
13:11:20 <ais523> I wouldn't be surprised if it was NP-complete or worse
13:11:26 <Vorpal> ah
13:11:47 <ais523> and a programming language where every independent step of execution is NP-complete is going to be a pain to implement, and very slow even if you manage it
13:11:54 <Vorpal> huh. Why did the lamp and the external monitor suddenly flicker.
13:12:20 <Vorpal> no change to the laptop's internal monitor.
13:12:29 <Vorpal> thunderstorm maybe. hrrm.
13:13:02 <Lymia> ais523, I need a reference implementation. Keep it secret.
13:13:05 <Vorpal> ais523, why is it that thunderstorms can cause electric devices to flicker?
13:13:13 <Vorpal> Lymia, make it yourself?
13:13:16 <ais523> Vorpal: because they disrupt the power supply
13:13:16 <Lymia> k
13:13:30 <Vorpal> ais523, hm, how? induction?
13:13:36 <ais523> no, lightning hitting power cables
13:13:43 <ais523> or outdoor transformers
13:13:49 <ais523> that has a noticeable effect on things like the voltage
13:13:54 <Vorpal> must be quite some way from here though. No thunder sound
13:14:08 <ais523> sometimes during a thunderstorm the power companies have to switch between main and backup circuits a lot
13:14:14 <Vorpal> ah
13:14:15 <ais523> and they often have slightly different voltages
13:14:47 <Vorpal> ais523, is that done automatically? The switching I mean.
13:15:06 <ais523> Vorpal: I thin kso
13:15:07 <ais523> *think so
13:15:59 <Vorpal> ais523, how damaging is it to electronics?
13:16:06 <Lymia> http://esolangs.org/wiki/Network_Headache < zzo, you...
13:16:18 <ais523> it varies on what those electronics are
13:16:36 <ais523> things that are sensitive often have extra circuitry to filter out unexpected voltage changes
13:16:37 <Vorpal> ais523, computers, TFT-monitors, that sort of stuff
13:17:03 <ais523> and you can get "surge protectors" that do the filtering themselves (they tend to filter out not just surges but spikes and similar issues)
13:17:22 <Vorpal> hm
13:18:22 <Vorpal> Lymia, fun that it is implemented!
13:18:52 <Vorpal> ais523, should probably get a surge protector at some point. Cheaper than an UPS surely?
13:19:01 <ais523> yep, pretty cheap
13:19:10 <ais523> you can get them crossed with multi-way power strips
13:19:54 <Vorpal> I looked at UPSes but most of the capacity that would be useful to me seems to have internal fans or suchlike.
13:20:04 <Vorpal> and I aim for a quiet environment
13:23:47 <Lymia> http://esolangs.org/wiki/MONOD < Let's start a golf contest for this.
13:24:16 <Patashu> I remember that one
13:24:17 <Patashu> It's great
13:44:32 -!- oerjan has joined.
13:50:40 -!- nooga has joined.
13:50:46 <nooga> aaaaaaaaaaargh
13:51:02 <Sgeo> How do I binary search on a value that, each comparision, comes out differently?
13:51:07 <Sgeo> This is nuts
13:51:14 <Sgeo> Of course, I'd have to find a range or something
13:51:28 <oerjan> Sgeo: that's nuts :D
13:51:37 <oerjan> although i have still pondered the problem
13:52:20 <oerjan> (basically, my idea was never to do a comparison that could contradict a previous one)
13:53:02 <nooga> I NEED TO CODE SOMETHING INNOVATIVE OR ELSE I WILL DIE
13:53:19 <oerjan> which i think binary search usually does. actually i think i pondered the more tricky problem of doing that while _sorting_
13:53:52 <oerjan> (still possible, i believe)
13:55:02 <Sgeo> oerjan, by comparision, I mean determining whether the value is higher or lower than my current estimate. I can't know what the value is, and the value keeps changing.
13:55:13 <nooga> maybe umm... regex jit compiler (optimizing)
13:55:46 <oerjan> in fact you might think one criterion of an efficient sorting algorithm would be that it does just that... never gives the comparisons a chance to contradict themselves, because that means you knew what the answer should be and not every comparison can then give information
13:55:54 <oerjan> *that would mean
13:56:02 <Vorpal> nooga, why would you die
13:56:03 <ais523> nooga: program a shell optimizer
13:56:17 <ais523> that sees things like sort | head, and uses a different version of sort that goes O(n) rather than O(n log n) in that case
13:56:19 <oerjan> Sgeo: well are you trying to constantly change your estimate, and it changes only slightly each time?
13:56:33 <oerjan> *the actual value only
13:56:45 <Patashu> so it's a what, a fuzzy binary sort?
13:56:47 <Sgeo> I don't know how much the actual value changes
13:56:48 <nooga> Vorpal: my tasks are so mind numbing that i can feel a constant loss of grey matter
13:56:55 <Patashu> could you take the average of N samples?
13:57:04 <oerjan> Patashu: search, but yeah that sounds like it
13:57:05 <Vorpal> nooga, do what ais523 said
13:57:11 <Patashu> yeah search I mean
13:57:19 <Sgeo> With the naive binary search I've been doing, I got 0.003125 and 0.006250
13:57:28 <Vorpal> thunderstorm near
13:57:29 <Vorpal> cya
13:57:30 <Sgeo> Wildly different answers as far as I'm concerned
13:58:00 <Sgeo> I don't know if just continuing to do this, and averaging, will.. do anything useful
13:58:15 <Patashu> Well you have a rough estimate
13:58:18 <oerjan> <ais523> that sees things like sort | head, and uses a different version [...] <-- i thought it was possible to make a sort which did that automatically if cut off, see ghc's sort
13:58:21 <Patashu> Why not take samples around that range
13:58:23 <nooga> ais523: a bit crazy ;]
13:58:23 <Patashu> graph it and look at the graph
13:58:41 <ais523> oerjan: it may be, but I think that relies on the way Haskell does laziness
13:58:49 <ais523> and the way UNIX pipes do laziness isn't good enough
13:59:11 <Patashu> does ghc's lazy sort work in every single way? could I ask for element number 8 and it would optimize around that?
13:59:16 <Patashu> or the last element
13:59:31 <Sgeo> And quite frankly, all I want to know is if two of these values, one at one altitude and one at the other, are equal or not
13:59:40 <Sgeo> Ooh, statistics time blargh
13:59:51 <oerjan> Sgeo: hm i guess this is a distribution finding problem restricted by your only being able to get one bit of information on each sample
14:00:10 <Sgeo> Minimum Absolute Gravity was so much easier. At a lower altitude I got 0 always, higher altitude non-0
14:00:12 <oerjan> i cannot say i recall seeing that :P
14:00:13 <Sgeo> oerjan, yes
14:00:22 <ais523> finding the eighth highest element is as computationally difficult as finding all the first eight, isn't it?
14:00:35 <Patashu> I -think- so
14:00:36 <ais523> unless you know in advance the length of the list and it's less than fifteen members long?
14:00:55 <oerjan> ais523: sounds reasonable, but i don't know
14:01:25 <Patashu> if you somehow proved seven numbers are higher than it and no others are without sorting those then that would do
14:01:29 <Patashu> but how would that even work, quicksort-ish?
14:01:46 -!- Vorpal has quit (Ping timeout: 248 seconds).
14:02:16 <Patashu> it seems possible to set up but too edge case-y
14:02:25 <ais523> Patashu: you mean verifying that a number is the 8th highest in a list, rather than finding the 8th highest?
14:02:34 <oerjan> Sgeo: i vaguely recall something about order statistics which are used for comparing two completely unknown (but continuous) distributions
14:02:36 <Patashu> hrm...
14:03:09 <Sgeo> Ugh, there are at least two different qays to ask "Is gravity working or not", and they give different answers. I just thought of a third.
14:03:16 <Sgeo> *ways
14:03:29 <Patashu> Why does secondlife implement gravity to such a level
14:03:37 <Patashu> Really bored techies?
14:03:41 <Sgeo> Well, not ways, so much as "what do you mean by 'working'"?
14:04:05 -!- TOGoS has joined.
14:04:05 <Sgeo> I'm almost certain that it's just edge cases not being considered
14:04:15 <Patashu> Maybe you should file a bug report
14:04:23 <Patashu> FIX THIS IMMEDIATELY I CAN'T IMPLEMENT MY SPACE STATION LIKE THIS
14:05:02 <oerjan> <Sgeo> And quite frankly, all I want to know is if two of these values, one at one altitude and one at the other, are equal or not <-- are both random and changing? if so you cannot do much more than getting a heap of comparisons between them, can you... but that could still be enough to check statistically what you want
14:05:09 <Sgeo> I just want to know why gravity sometimes starts then stops.
14:05:15 <Sgeo> If it's low enough
14:05:22 <ais523> floating point rounding errors?
14:05:29 <Sgeo> ais523, probably
14:05:35 <Sgeo> But I want to know the exact nature of these
14:06:36 <Sgeo> And by probably, I mean yes, I'm almost certain that's what's going on, and that's what I want to understand better.
14:07:26 <oerjan> perhaps they're actually using a random algorithm for small values >:)
14:07:31 <Patashu> lol
14:07:50 <Patashu> it might be some kind of multithreading race condition that makes it essentially random
14:08:41 <oerjan> like if gravity is 0.5 of what is needed to go one minimal step each time unit, then it does so randomly half the time
14:08:42 <Sgeo> I think it's more likely that the physical framerate keeps changing
14:09:12 <Sgeo> The unit of time is dependent on how laggy the server is.
14:09:58 <oerjan> ouch
14:16:07 <Sgeo> Maybe Havok documentation has all the answers or something, and I should just go read it
14:18:07 <Sgeo> Havok documentation is behind a paywall
14:18:09 * Sgeo sads
14:21:18 <Sgeo> Maybe if I try the experiment in a less laggy place, I'll get similar results more consistently?
14:22:13 <Patashu> presumably
14:44:00 -!- Patashu has quit (Ping timeout: 240 seconds).
14:46:27 -!- MigoMipo has joined.
14:49:02 -!- oerjan has quit (Quit: leaving).
14:56:52 -!- FireFly has joined.
15:00:03 -!- Sgeo has quit (Ping timeout: 255 seconds).
15:04:21 -!- Sgeo has joined.
15:05:16 <Sgeo> Is there a name for a function similar to call/cc except it never returns?
15:25:56 -!- sebbu has joined.
15:25:56 -!- sebbu has quit (Changing host).
15:25:56 -!- sebbu has joined.
15:27:49 -!- sebbu2 has joined.
15:27:49 -!- sebbu2 has quit (Changing host).
15:27:49 -!- sebbu2 has joined.
15:30:59 -!- sebbu has quit (Ping timeout: 260 seconds).
15:39:11 -!- oklopol has joined.
15:49:28 -!- zzo38 has joined.
15:54:15 -!- FireFly has quit (Read error: Connection reset by peer).
15:57:06 <zzo38> What kind of measurement of the size of a program can you use? * Bytes * Lines * Pages * Semicolons * Tokens * Executable file size
15:58:36 -!- TOGoS has left.
15:58:47 -!- sebbu2 has changed nick to sebbu.
16:05:07 -!- pikhq_ has quit (Ping timeout: 250 seconds).
16:05:07 -!- pikhq has joined.
16:09:32 <Lymia> Depends on what you're using the measurement for.
16:12:13 <zzo38> But what kind of ideas you have for what measurement, and what it can be used for? I am thinking generally just to see a measure of how large that a large program is.
16:14:42 -!- Phantom_Hoover has joined.
16:14:48 <Phantom_Hoover> Hmm, I wonder...
16:14:49 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
16:17:00 * Sgeo lays out the syntax he's been imagining for his language
16:17:12 <ais523> @messages
16:17:12 <lambdabot> You don't have any new messages.
16:17:17 <ais523> :(
16:17:37 <Sgeo> https://lists.secondlife.com/pipermail/secondlifescripters/2011-June/006245.html
16:17:46 <Sgeo> Erg, wow, I should have used pastie
16:19:39 -!- Vorpal has joined.
16:27:02 <Gregor> GGGGC: Seemingly consistently faster than Java's GC? :)
16:27:28 -!- FireFly has joined.
16:28:55 <Vorpal> Gregor, ooh cool.
16:29:31 <Vorpal> Gregor, how did you test it? Using the same code but with java's gc and then with yours?
16:31:37 <Gregor> Using Boehm's GCBench as well as binary trees. It's not really fair since Java is JITting and I'm not, but the code is trivial here so hopefully the GC is the biggest price.
16:31:47 -!- zzo38 has left.
16:34:00 <Gregor> Going to ISMM this year gave me two good ideas, both of which helped :)
16:43:01 <Sgeo> I have not the slightest idea how to make something into an AST
16:43:30 <Sgeo> Or even enough Javascript to visualize what an AST looks like in Javascript
16:43:50 <Gregor> ... uhhh, that's pretty sad?
16:44:03 <Phantom_Hoover> It... doesn't seem that complex.
16:44:12 <Gregor> It's not.
16:45:07 <Sgeo> http://pastie.org/private/hf2bkigtu21ciny5oso3a acceptable syntax or nightmare from hell syntax?
16:45:39 <Sgeo> And semantics
16:50:34 <Phantom_Hoover> Sgeo, what language is that?
16:50:43 <Sgeo> Phantom_Hoover, the language I want to make
16:50:54 <Phantom_Hoover> Why the pipes?
16:51:30 <Sgeo> Inspired by Fancy lambdas, which are kind of like Ruby lambdas except with the arguments on the outside of the {}
16:51:38 <Sgeo> Why, do the pipes suck?
16:51:49 <Sgeo> Is function(){} better?
16:51:58 <Phantom_Hoover> No, they just confused me.
16:52:23 <Phantom_Hoover> But yeah, that doesn't look impossible to ASTify.
16:53:12 <Sgeo> But does it look like a decent language to work with? That is, should I not be shot for making it?
16:53:35 <nooga> GO
16:54:10 <Phantom_Hoover> Sgeo, dunno about that; ask elliott if you want a 'yes'.
16:54:25 <Phantom_Hoover> Erm, 'yes you should be shot'.
16:54:55 -!- ais523 has quit (Read error: Operation timed out).
16:55:04 <nooga> {x y z: something something something}
16:55:20 <Sgeo> .......ooooooooohhhhhhh
16:55:44 <Sgeo> Wait, but then, I can't have the { on a separate line after the arguments
16:56:06 <Sgeo> Hmm, not sure how important tha is to me
16:56:14 <nooga> a matter of style
16:56:39 -!- ais523 has joined.
17:01:26 -!- olsner has joined.
17:11:28 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
17:13:57 <nooga> full grammar for PCRE is probably longer than a full grammar for ANSI C
17:14:12 <nooga> so KISS
17:14:51 <Sgeo> PCRE?
17:15:21 <Sgeo> This language is not a regex.
17:17:15 <olsner> can you write a PCRE that matches all PCRE:s?
17:17:36 <Phantom_Hoover> I assume so.
17:17:48 <Phantom_Hoover> Wait, maybe not.
17:18:27 <Phantom_Hoover> PCREs can't match things recursively, can they?
17:18:43 <pikhq> PCRE is TC.
17:18:51 <olsner> I kind of thought PCRE:s were even turing complete (or whatever the corresponding term is for grammars, fully recursive?)
17:19:01 <olsner> and there pikhq said it too, proof?
17:20:04 <nooga> http://big-o.nl/apps/pcreparser/pcre/PCREParser.html#name.grammar
17:20:07 <nooga> this is not all
17:20:15 <nooga> only a subset ;o
17:21:37 -!- elliott has joined.
17:22:10 <Sgeo> Hi elliott
17:22:22 <Sgeo> I posted a sample of the language I'm imagining.
17:23:01 <elliott> oh joy
17:23:01 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
17:23:07 <elliott> oh joy
17:23:12 <nooga> oh joy
17:23:16 <nooga> elliott is here
17:24:06 <elliott> yeah
17:24:10 <elliott> i'm always here
17:24:35 <elliott> http://esolangs.org/wiki/Snack
17:24:39 <elliott> this fucking shit should be illegal
17:25:02 <ais523> elliott: the TURKEY BOMB style of esolanging, except not innovative or interesting in any way?
17:25:03 <lambdabot> ais523: You have 1 new message. '/msg lambdabot @messages' to read it.
17:25:07 <ais523> @messages
17:25:07 <lambdabot> Phantom_Hoover said 56m 57s ago: Here you go.
17:25:17 <elliott> ais523: hey, you didnt follow the instructions
17:25:23 <elliott> [asterisk]didn't
17:25:25 <ais523> ah no, more like Deadfish
17:25:29 <ais523> and I'm a rebel in that way
17:26:08 <Sgeo> "SIMPLE Interpreter:"
17:26:10 <Sgeo> What.
17:26:40 <Phantom_Hoover> Suggest we all gang up on SmallBug.
17:26:45 <ais523> wait, that language is actually worse than DeadFish
17:27:30 <Sgeo> Therefore, it will have more implementations than DeadFish?
17:27:36 <ais523> I hope not
17:27:48 <elliott> Phantom_Hoover: Now now, they clearly do not understand what they are doing.
17:27:54 <ais523> at least DeadFish was a) aware it was possible, and b) almost interesting
17:27:55 <elliott> I have helpfully clarified on http://esolangs.org/wiki/Talk:Snack.
17:28:27 <elliott> between this and NetFuck, we sure are getting a lot of dreck today
17:28:31 <elliott> erm, nowadays
17:28:51 <Sgeo> Esme... makes no sense to me
17:28:57 <elliott> ais523: that interpreter is ... interesting
17:29:02 <elliott> wtf did "stack" come from?
17:29:16 <elliott> oh, and I'm not sure cin >> stringvar actually works as expected
17:29:21 <Phantom_Hoover> Sgeo, fun fact: my first significant conversation on #esoteric was confirming that I didn't make Esme.
17:29:29 <ais523> elliott: if it's a std::string, I think it does
17:29:32 <Sgeo> lol
17:29:35 <ais523> or at least, it does something moderately sane
17:29:50 <Sgeo> I'd like to read that log
17:29:56 <ais523> hmm, I think Dagoth may have made Esme just to troll zzo38
17:29:59 <Phantom_Hoover> I'm adding Category:Shameful.
17:30:04 <elliott> Phantom_Hoover: don't
17:30:12 <Phantom_Hoover> elliott, why, wrath of graue?
17:30:13 <elliott> the more it's used the more diluted it gets
17:30:34 <elliott> I removed it from a bunch of pages a while ago because of that
17:30:38 <Phantom_Hoover> It's only used on FURscript and Esme.
17:30:40 <ais523> elliott: that one almost deserves shameful, but I'm not quite sure
17:30:46 <elliott> ais523: yes, it's definitely close
17:30:47 <ais523> it needs category:languages, anyway
17:30:48 <Phantom_Hoover> And you just called it the worst language on the wiki.
17:31:05 <ais523> the whole point of shameful is that it's rare enough that people wouldn't determine its existence
17:31:06 <elliott> I think we'll have to see what SmallBug does next to decide, we must be cautious with this important task of ours
17:31:19 <ais523> (and I'd definitely delete the category description page if someone created one, it doesn't work if it isn't a redlink)
17:31:31 <elliott> ais523: re: troll zzo, [[Talk:Esme]] is a pretty funny page
17:31:41 <ais523> elliott: I know, that's what I was referring to
17:31:56 <Phantom_Hoover> 10.01.12:11:57:27 <Phantom_Hoover> The sysrq key? ← this was honestly the first thing I said in-channel.
17:32:16 <elliott> hmm, the stub template on [[Hashes]] implies that we actually want someone to expand it
17:32:20 <elliott> I find this quite a dangerous remark to have
17:32:32 <elliott> (diff) (hist) . . Language list‎; 17:28 . . (-12) . . Phantom Hoover (Talk | contribs) (Undo revision 23225 by Special:Contributions/SmallBug (User talk:SmallBug) No. Just no.)
17:32:34 <Phantom_Hoover> Expansion can only be interesting.
17:32:35 <elliott> Phantom_Hoover: that was unwarranted
17:32:48 <nooga> :[~~~~K] $[L.~K] -> Q !L <- Q
17:33:32 * elliott categorises
17:33:46 <ais523> elliott: wrt your rvv edit summary, it's referring to novelty contact lenses designed to make your eyes look different as part of a halloween costume
17:33:58 <elliott> ais523: yes, but what a thing to spam a wiki with
17:34:11 <ais523> well, generic spam won't get very far, you'll just be outspammed
17:34:12 <elliott> it's obviously a wiki spambot/person, because it used the correct syntax
17:34:19 <ais523> highly specific spam is more likely to get the results you want
17:34:23 <nooga> you know
17:34:29 <elliott> ais523: I suppose it's just trying to get the googlejuice
17:34:34 <elliott> but what wiki doesn't use nofollow?
17:34:48 <ais523> the latest trick is creating thousands of different domains, each optimised for a slightly different query
17:34:53 <ais523> and making them all soft-redirects to your actual site
17:35:08 <ais523> well, there are probably later tricks I don't know about
17:35:17 <ais523> I just consider that one particularly ridiculous
17:36:08 <nooga> when i was 12 and tried to learn Delphi, my idea of perfect computer language was that it would let me to easily write a tetris clone with constructs like: make green rectangle, move rectangle etc.
17:36:38 <Phantom_Hoover> elliott, if FURscript is shameful, then Snack is unquestionably shameful.
17:37:11 <nooga> probably inventor of FURscript was 13 when he invented it and now he's ashamed
17:37:34 <elliott> Phantom_Hoover: have you /seen/ FURscript?
17:37:42 <elliott> [DIRFORMAT="DIRECTORY","BYPASSSECURITY?"] FORMATS A DRIVE AND ASKS WHETHER TO BYPASS ALL RESTRICTIONS
17:37:43 <Phantom_Hoover> elliott, I just did.
17:38:07 <elliott> heh, the WRITE command has different syntax
17:38:23 <nooga> BASIC fan probably
17:38:32 <olsner> elliott maybe
17:38:40 <elliott> olsner: ?
17:38:53 <ais523> elliott: hmm, given that it's formatting a drive but given a dir as an argument, I wonder if it's intended for POSIXy systems?
17:38:53 <olsner> elliott: I was suggesting that you invented furscript
17:39:09 <ais523> the only plausible way I can think of to specify a drive using a directory is to specify mountpoint
17:39:16 <elliott> ais523: considering that the compiler was to be written in VB6, I doubt it
17:39:17 <elliott> (see talk page)
17:39:21 <elliott> ais523: and C:\
17:39:23 <elliott> D:\
17:39:23 <elliott> etc.
17:39:26 <nooga> "The structure is based off a mix of html, turbo pascal, and BASIC." <-- rright
17:39:46 <elliott> It is, of course, unrelated to FurryScript. --Zzo38 18:33, 11 August 2009 (UTC)
17:40:09 <elliott> ais523: have we moved over to Timwi's server yet?
17:40:14 <elliott> I'm not keeping track of these thing
17:40:15 <elliott> s
17:40:35 <ais523> elliott: not as far as I know
17:40:39 <elliott> :D
17:41:06 <Phantom_Hoover> Timwi offered a server?
17:41:15 <Phantom_Hoover> Did he win the NetFuck prize?
17:41:16 <elliott> Phantom_Hoover: no, he "offered" to take over
17:41:20 <elliott> because Graue is such a terrible person
17:41:20 <Sgeo> "but I think he got as far as a text box and a copyright notice before going back to programming his graphics calculator. "
17:41:27 <Sgeo> I loved TI-BASIC
17:41:29 <elliott> (because Graue wouldn't respond to his email asking for sysop rights)
17:41:32 <Sgeo> I'm offended.
17:41:37 <Phantom_Hoover> elliott, where.
17:41:45 <Sgeo> Wait, is it TI-BASIC?
17:41:51 <elliott> Phantom_Hoover: FFS, it's in the logs, stop expecting me to know where something happened.
17:42:22 <ais523> <form><textarea cols=120 rows=80></textarea></form><p><small>Copyright (C) Alex Smith 2011</small></p>
17:42:32 <elliott> ais523: wat
17:42:43 <Phantom_Hoover> elliott, since Gregor stopped updating the codu HG logs, I haven't had searchable logs.
17:43:05 <elliott> Phantom_Hoover: How does this relate to me having to nkow where every damn thing happened?
17:43:11 <elliott> Besides, get the rsync glogbot logs.
17:43:13 <elliott> That's what they're for.
17:43:18 <ais523> elliott: it's a text box and a copyright notice
17:43:21 <Phantom_Hoover> Oh, right.
17:43:23 <ais523> I'm not sure if it actually /works/, though
17:43:27 <elliott> ais523: heh
17:43:34 <Phantom_Hoover> FWIW, there is no indication anywhere that they exist.
17:43:46 <ais523> and that textarea syntax is really old-fashioned
17:43:50 <ais523> because I learnt HTML far too long ago
17:44:01 <elliott> Phantom_Hoover: there is in glogbot's help message
17:44:09 <elliott> would you like it to spam the channel at regular intervals instead?
17:44:18 <elliott> !logs
17:44:22 <elliott> try it
17:44:42 <elliott> ais523: AFAIK that's the current textarea syntax
17:44:48 <ais523> whoa, really?
17:44:55 <elliott> ais523: well, except that not doing it with CSS probably makes you a bad person
17:44:59 <ais523> I at least expected the dimensions to be done with CSS nowadays
17:45:08 <elliott> I'll check the spec
17:45:11 <Phantom_Hoover> elliott, no, but I would like it if it indicated their existence in the page on codu, or in the topic of #glogbot.
17:45:14 <ais523> and I hate that syntax because it basically means you have to guess the browser user's screen width and font size
17:45:21 <ais523> rather than having it become a sensible size automatically
17:45:32 <ais523> no wonder browsers are offering resizable textboxes as a feature nowadays
17:45:40 <ais523> glogbot has a channel?
17:45:44 <elliott> ais523: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-textarea-element
17:45:55 <elliott> yep, rows and cols still exist
17:46:02 <elliott> and don't appera to be deprecated, either
17:46:05 <elliott> [asterisk]appear
17:46:10 <elliott> but ofc, there's basically no reason not to use CSS instead
17:46:11 <pikhq> Fucking HTML.
17:46:11 <Phantom_Hoover> Oh, and the rsync command provided doesn't actually work.
17:46:25 <elliott> Phantom_Hoover: topic of glogbot:
17:46:27 <elliott> "See !glogbot_help for how to use it."
17:46:29 <elliott> !glogbot_help
17:46:32 <elliott> -glogbot- glogbot is a logging bot. Source: https://codu.org/projects/stuff/logbothg/ . Anyone may request that glogbot log their channel by inviting it: /invite glogbot . This usually requires ops. It will stop logging a channel if kicked: /kick glogbot . If you cannot /invite or /kick it, you can also ask Gregor to add or remove your channel. See also !glogbot_cmds, !logs .
17:46:37 <elliott> WHOOPS TURNS OUT IT DOES GIVE YOU THAT INFORMATION
17:46:43 <elliott> And the rsync command does work, you fucked it up. Quit whining.
17:46:46 <ais523> "If the cols attribute is specified, its value must be a valid non-negative integer greater than zero. If applying the rules for parsing non-negative integers to the attribute's value results in a number greater than zero, then the element's character width is that value; otherwise, it is 20."
17:46:47 -!- zzo38 has joined.
17:47:02 <ais523> how arbitrary
17:47:06 <Phantom_Hoover> elliott, I copied and pasted it from glogbot's own message.
17:47:09 <elliott> ais523: how is that arbitrary?
17:47:13 <elliott> it's just handling a parse error
17:47:16 <elliott> Phantom_Hoover: you fucked it up.
17:47:24 <ais523> elliott: wouldn't it make more sense to treat the attribute as not there
17:47:30 <ais523> rather than picking 20 for the width out of thin air?
17:47:31 <Phantom_Hoover> elliott, "rsync --size-only -avz rsync://codu.org/logs/glogbot/ logs/"
17:47:36 <elliott> ais523: 20 is the default width if it's not specified
17:47:40 <ais523> ouch
17:47:40 <elliott> ais523: so it /does/ act like it's not there
17:47:43 <ais523> for a multiline text box?
17:47:49 <elliott> ais523: hysterical raisins
17:47:51 <Phantom_Hoover> Please tell me a) where that is fucked up and b) where it deviates from the command given in !logs.
17:48:16 <elliott> Phantom_Hoover: Seriously, just shut up, I am not your personal tech support, especially when you're being this whiny.
17:48:25 <elliott> You haven't even told anyone what error you received, just "it doesn't work", which is laughable.
17:49:02 <Phantom_Hoover> elliott, maybe I wouldn't be "whiny" if your immediate response hadn't been to treat me like an idiot.
17:49:12 <elliott> Phantom_Hoover: seriously. shut up.
17:49:24 <Phantom_Hoover> And if I so obviously fucked up, why would you even need to know the error?
17:50:03 <Phantom_Hoover> It was clearly my idiocy in composing it; such an astonishing intellect as yours would be able to point out the error without effort.
17:50:08 <ais523> <kabdib> I once wrote some perl that read C source code and spit out still compilable C source, but fucked up with random indentation, single line declarations (with initializers), mixed bracing style and use of whitespace, and added comments like "increment i" when it saw "++i".
17:50:24 <ais523> I love the choice of Perl as a language for doing that munging, it seems to fit somehow
17:50:27 <pikhq> And the new Nintendo console is (surprise, surprise) approximately 4 Wiis duct taped together.
17:50:32 <pikhq> Or, 8 Gamecubes duct taped together.
17:50:36 <cheater_> cool
17:50:47 <cheater_> just came up with a new hack for hardware that doesn't even exist yet
17:50:51 <ais523> pikhq: really, it doesn't need to be that much powerful than the Wii to hit Nintendo's core market, though
17:51:03 <pikhq> ais523: Yeah, true.
17:51:04 <cheater_> apparently, an LED can also be used as a light *sensor*
17:51:13 <olsner> does it even need to be *any* more powerful than wii?
17:51:13 <ais523> cheater_: that's not surprising at all
17:51:19 <pikhq> ais523: The Wii U is pretty fucking stupid, though.
17:51:23 <ais523> in fact, a regular diode can be if you cut the top open
17:51:25 <olsner> they should've just made a new controller like everyone else
17:51:31 <cheater_> in the future, when monitors are made out of LEDs, you could imagine a possible hack to the monitor's firmware to make it a camera
17:51:35 <ais523> pikhq: the name is a pretty silly start, at least
17:51:40 <pikhq> Its *controller* is probably more powerful than the Wii.
17:51:42 <ais523> not only is it stupid, it's also difficult to pronounce
17:51:43 <cheater_> granted, it wouldn't be too focused, but you could post-process that
17:52:08 <cheater_> so you could stalk people with LED monitors
17:52:15 <pikhq> The *controller*, the *controller* has a 6.2" display and a touch screen.
17:52:47 <elliott> <olsner> does it even need to be *any* more powerful than wii?
17:52:54 <elliott> The Wii is getting really dated, to be honest
17:53:03 <ais523> pikhq: this reminds me of the GameCube games designed to use a GBA as the controller
17:53:10 <elliott> I gather that Super Mario Galaxy 2 was a bit of a pain to develop because the console is so outdated
17:53:28 <ais523> some of the best games tend to be done on consoles getting outdated, though
17:53:35 <elliott> indeed
17:53:37 <ais523> because they bring together a lot of talent to work out how to really use the consoles well
17:53:41 <pikhq> ais523: Except as an official accessory.
17:53:42 <elliott> also, "Wii U"? are Nintendo /aiming/ for bad names at this point?
17:53:51 <nooga> Pee U
17:53:53 <Sgeo> Weyoun?
17:54:06 <pikhq> I wonder if the Wii U will also support Gamecube games & controllers.
17:54:25 <olsner> elliott: but was the wii any more powerful than gamecube? my point is that they just need to stick it a new box with a new name and a new controller and they could be done as far as most of their customers are concerned
17:54:27 <pikhq> If so, then it will be fucking absurd.
17:54:37 <elliott> olsner: yes, the Wii was more powerful than the gamecube
17:54:51 <pikhq> olsner: The Wii had a higher clocked PowerPC.
17:54:51 <ais523> pikhq: well, the Wii needs the Classic Controller, rather than a Wiimote, for many of its games
17:54:58 <ais523> and you can substitute a GameCube controller instead
17:55:04 <elliott> GCN: CPUIBM PowerPC "Gekko", 486 MHz
17:55:06 <elliott> Wii: CPUIBM PowerPC-based[1] "Broadway"
17:55:09 <Phantom_Hoover> So, anyone who doesn't think wanting help is whining want to tell me what "rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1526) [Receiver=3.0.7]" means?
17:55:12 <elliott> no clock rate info, but I'll bet >486 MHz
17:55:20 <pikhq> It was 700-something.
17:55:27 <pikhq> ais523: The Wii U supports Wii controllers.
17:55:49 <elliott> olsner: yeah, the Wii was more powerful than the gamecube by quite a bit
17:55:50 <zzo38> The Nintendo Wii does use many similar hardware to GameCube.
17:56:01 <elliott> http://en.wikipedia.org/wiki/Nintendo_GameCube#Technical_specifications
17:56:01 <elliott> http://en.wikipedia.org/wiki/Wii#Technical_specifications
17:56:26 <pikhq> zzo38: The Wii's backwards compatibility is done by, basically, dual-booting.
17:56:34 <zzo38> (Once I put a game in and it did not recognise it as Wii so it started it in GameCube mode, it displayed the title screen correctly, including animation, but did nothing else.)
17:56:48 <elliott> zzo38: heh, really?
17:56:50 <elliott> that's impressive
17:56:51 <pikhq> Yeah, it just has a port of the Gamecube's OS to the Wii. That's their BC.
17:57:07 <elliott> pikhq: with what zzo38 said, I wonder if it even needed porting
17:57:16 <elliott> I mean, apart from controller support, I guess
17:57:43 <olsner> elliott: ok, so maybe a *little* bit more than putting same thing in a new box will be required :P
17:58:00 <elliott> It occurs to me that Nintendo could introduce absolutely any new controller they wanted and people wouldn't dismiss it, just because of how badly that backfired with the Wii
17:58:04 <pikhq> The hardware access was radically different on the Wii; all hardware access went through an ARM chip, for the sake of DRM.
17:58:11 <elliott> were they decent trolls, they'd have exploited this
17:58:33 <pikhq> elliott: Well, their new controller is making the NES brick look ergonomic.
17:58:48 <elliott> I don't see how they'll pull off the fancy Wiimote stuff with it
17:58:57 <elliott> it doesn't exactly look like a very good sword or tennis racquet
17:59:02 <pikhq> You can also use a Wiimote.
18:00:01 <elliott> hmm, the screen is actually quite clever, because it allows for secret information
18:00:09 <elliott> which has always been an advantage of internet play IMO
18:00:36 <elliott> apple why are you emailing me about the new os x version...
18:00:46 <ais523> elliott: do you want me to email you about the new os x version too?
18:00:50 <pikhq> Yeah, this is the *second* means of doing that the Wii U has to offer, BTW.
18:00:57 <ais523> pikhq: what's the first?
18:00:59 <Sgeo> Phantom_Hoover, I don't think wanting help is whining, but I'm not exactly capable of helping you, sorry.
18:01:01 <pikhq> GBA link.
18:01:16 <ais523> ah, the Wii U can do that?
18:01:26 <ais523> you'd think they'd at least use DSes or 3DSes
18:01:33 <pikhq> Presuming GC compatibility, which honestly would take little more than a couple extra lines off of a motherboard.
18:02:02 <zzo38> Idea of screen, I already had similar idea. And actually some older systems had it too, I think, just ones that nobody used.
18:02:09 <ais523> pikhq: it would need controller ports
18:02:11 <elliott> being able to link up to a DS as a controller would be cool
18:02:38 <ais523> that's the big issue with some other consoles and backwards compatibility, the major issue to using old controllers was the lack of correctly-shaped ports
18:03:07 <pikhq> ais523: Actually, the big issue was no freaking way to execute old software.
18:03:26 <pikhq> Nintendo does not have this problem, because they've been using the PowerPC since the Gamecube.
18:03:31 <ais523> pikhq: I'm not talking about old software, but just use of old controllers for new games
18:03:36 <pikhq> Aaaah.
18:03:51 <elliott> Is there any information on the system specs of the U?
18:03:55 <pikhq> Yeah, that's basically a non-issue. If you want to support old controllers, it's easy.
18:04:09 <elliott> hmm, the console itself looks quite ugly
18:04:13 <elliott> in comparison with the Wii
18:04:16 <pikhq> Especially with older consoles where the controllers used the same damned protocol.
18:04:27 <elliott> (which actually had functional use, too; you could fit it practically anywhere)
18:04:57 <zzo38> I have many ideas making up my own system instead. It will not have these kind of problems! I fix many things. And it will describe *everything* in the manual.
18:05:06 <elliott> zzo38: i can hardly wait.
18:05:24 <elliott> "Claims have been made that the new machine is significantly more powerful than the PlayStation 3 and Xbox 360."
18:05:32 <elliott> source is IGN and Kotaku, so I'm not about to start believing that immediately
18:05:51 <zzo38> I already got some people who can build the circuitboards and stuff like that.
18:06:15 <pikhq> elliott: It's not like it'd be *too* hard.
18:06:24 <ais523> zzo38: assuming it's not massively overpriced and there's a sensible way to ship it from Canada, I'd buy it
18:06:25 <elliott> "01net also claims to know some of the technical specifications of the new console (translation from Develop): "CPU is custom IBM PowerPC with three cores, GPU should be an ATI from the R700 family, with a shader unit at version 4.1. RAM should be at least 512 MB."[19]"
18:06:30 <pikhq> Just slip a more recent multicore processor and a modern GPU in there.
18:06:34 <zzo38> I made some timesheets programs for their company and I told them I can have barter instead of paid in cash
18:06:36 -!- augur has quit (Write error: Broken pipe).
18:06:49 <nooga> IT'S TOO DAMN HOT!
18:07:01 <pikhq> Of course, Nintendo's still running technology that's competitive with the PS2. :P
18:07:58 <ais523> pikhq: and the PS2 was so successful that that's a good thing
18:08:14 <elliott> it's always impressive how low-spec consoles tend to be
18:08:15 <zzo38> ais523: The first few units produced will probably be overpriced but they will also be colored in gold and have other stuff specific to the limited editions. So, the normal edition will not be overpriced, but will have the same electronic hardware basically, can run the same software, and so on.
18:08:28 <elliott> you need, like, a PC with twice the specs to get the same quality out of them
18:08:40 <elliott> because people optimise aggressively for consoles since they're uniform
18:08:41 <coppro> pikhq: why Canada?
18:09:08 <pikhq> coppro: Wut.
18:09:13 <ais523> coppro: did you mean to ping me with that?
18:09:17 <ais523> I thought zzo38 was Canadian
18:09:25 <zzo38> Yes I am Canadian
18:10:00 <coppro> yeah, I meant ais523
18:10:09 <elliott> zzo38: how much will the gold edition cost
18:10:09 <coppro> misread
18:10:32 <coppro> makes more sense for ais523 to want a Canadian one due to price, but there's region-locking and format issues if you do that
18:10:45 <zzo38> elliott: I don't know how much any edition will cost yet
18:10:53 <ais523> coppro: it's just that I assumed that zzo38 being in Canada, that's where they'd be made
18:11:05 <elliott> zzo38: not even approximately?
18:11:17 -!- nooga has quit (Ping timeout: 240 seconds).
18:11:17 <elliott> coppro: you think /zzo's/ console will have region-locking?
18:11:21 <zzo38> No. I have not selected the specific hardware parts yet. Only in general I have.
18:11:31 <elliott> zzo38: can you leak any details? :D
18:12:37 <coppro> ais523: oh, I thought you meant the Wii U
18:12:48 <ais523> ah, no
18:13:01 <ais523> gah, that name hurts my head just when I try to mentally pronounce it
18:13:17 <ais523> thus, I have to skim comments containing it (no mental pronunciation) rather than read them (which does normally cause mental pronounciation for me)
18:13:18 <zzo38> It will have region-coding, but only for regions with different TV format (such as NTSC/PAL), and the programs and hardware that is built-in is all open so you can even override that.
18:13:19 -!- nooga has joined.
18:14:07 <elliott> what games-containing media will it take?
18:14:14 <zzo38> So, the Canadian software should work fine in United States, and in Japan, but to use in England it is PAL so it is different.
18:14:27 <pikhq> zzo38: In the modern world, there's no need for that.
18:14:39 <elliott> yeah, if the software outputs digitally that's unnecessary
18:14:41 -!- monqy has joined.
18:14:56 <zzo38> elliott: DVD. Also USB for small files downloadable from kiosks or whatever, if such things exist.
18:15:17 <elliott> ew, optical media :(
18:15:37 <zzo38> USB also works so you do not need to use optical media if you do not like it.
18:15:39 <coppro> The hardware can have built-in converters for video formats anyway
18:15:41 <elliott> zzo38: you realise that USB drives are competitive with DVD for storage space, btw?
18:15:55 <elliott> in fact, with an SDHC cart, it can far surpass DVDs
18:15:59 <elliott> [asterisk]card
18:16:01 <elliott> (plus USB reader)
18:16:01 <coppro> Especially USB 3
18:16:11 <elliott> coppro: er, that only affects speed, no?
18:16:50 <coppro> well yes
18:16:53 <coppro> but speed is important
18:16:58 <coppro> fuck loading screens
18:17:05 <elliott> coppro: sure... it's hard to be slower than optical drives, though
18:17:19 <elliott> actually, personally I would just include a USB port or two, and no DVD drive -- after all, there are plenty of USB DVD readers
18:17:27 <coppro> heh, yes
18:17:36 <elliott> so you could support optical media entirely within software, and make the console smaller and (slightly) cheaper too
18:18:00 <zzo38> elliott: Thanks for the idea, I might consider that, maybe
18:18:15 <coppro> No stupid CSS licensing fees too
18:18:34 <elliott> coppro: CSS is optional isn't it?
18:18:42 <coppro> yeah...
18:18:46 <elliott> and if the console didn't support it, nobody would use it
18:18:49 <elliott> so that's kind of irrelevant :P
18:18:51 -!- nooga has quit (Ping timeout: 246 seconds).
18:19:03 <zzo38> I was not going to license CSS anyways I was trying to make it to remove all CSS from the drive so that it must be done in software if at all.
18:19:25 <elliott> yeah
18:19:46 <zzo38> If I choose not to have a optical drive, I will have more than 2 USB ports, though.
18:20:04 <elliott> why would you ever need more than two media in at once?
18:20:12 <elliott> (and also have sufficient power requirements that a USB hub wouldn't suffice?)
18:20:13 <elliott> hmm
18:20:16 <elliott> or are controllers USB too?
18:20:31 <elliott> in which case, yeah, obviously you'd want like five ports
18:20:33 -!- nooga has joined.
18:20:34 <zzo38> No, controllers are not USB.
18:20:38 <elliott> hmm, what are they?
18:20:45 <zzo38> Synchronous serial.
18:20:49 <coppro> wtf
18:21:01 <zzo38> Packets are 32 bits.
18:21:09 <elliott> it seems like it'd be simpler to do the controllers over USB too since you could reuse the driver
18:21:21 <elliott> and also it means that if you used fewer controllers, you could use more storage media
18:21:28 -!- zzo38 has quit (Quit: zzo38).
18:26:51 -!- ais523_ has joined.
18:27:26 -!- ais523 has quit (Disconnected by services).
18:27:32 -!- ais523_ has changed nick to ais523.
18:31:56 -!- nooga has quit (Ping timeout: 276 seconds).
18:32:54 -!- nooga has joined.
18:34:44 -!- augur has joined.
18:34:49 <nooga> beh
18:35:09 <elliott> wat, nintendo's E3 press site is "open"
18:35:21 <coppro> "open"?
18:35:28 <elliott> as in it has an obvious username and password
18:35:31 <elliott> http://press.nintendo.com/E32011/ username: E32011, password: nintendo
18:35:38 <elliott> it even has videos
18:35:42 <coppro> lol
18:35:47 <ais523> elliott: did you guess them?
18:35:51 <elliott> someone gimme a wget command to mirror everything :D
18:36:00 <elliott> oh wait, the videos are huge
18:36:02 <elliott> and the server is slow
18:36:03 <ais523> and are the videos subdirs of that page?
18:36:11 <elliott> ais523: it's an HTML page
18:36:13 <elliott> with lots of info and links
18:36:26 <ais523> I mean, are the links to subdirs of the directory the page is in?
18:36:32 <elliott> yes
18:36:36 <elliott> "Please note: Nintendo 3DS screenshots are provided as 2D images."
18:36:38 <ais523> otherwise, if you follow all links, you can end up mirroring the whole Internet
18:36:45 -!- elliott has set topic: Please note: Nintendo 3DS screenshots are provided as 2D images. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
18:36:59 <nooga> use peg/leg OR write parser by hand
18:37:04 <elliott> I'm surprised this page doesn't have some spiel about NO UNAUTHORISED ACCESS
18:37:14 <nooga> help me with decision
18:37:22 <elliott> ESRB Age-Gate Notification:
18:37:23 <elliott> This video/trailer may only be displayed if it is behind an age-gate that: (1) is age-neutral (i.e., requires the user to input their date of birth or select it from a drop-down bar); (2) employs reasonable technical measures to keep underage users from re-entering their age after initially being denied access; and (3) does not display any ESRB rating information on the trailer player or the age-gate itself. Failure to implement these requirement
18:37:23 <elliott> s may jeopardize your ability to obtain material of this nature from us in the future.
18:37:26 <ais523> I bet it's designed for people to access while still maintain plausible deniability
18:37:31 <elliott> wat
18:37:48 <elliott> you're... not allowed to tell people the ESRB rating?
18:38:04 <ais523> elliott: it's basically "how old are you? PS if it's too low you don't get to get in, but we're not going to /tell/ you what it should be in the hope that you'll give your real DOB rather than calculating one that will let you in"
18:38:16 <elliott> ah
18:38:25 <elliott> is there anybody who doesn't just select the oldest age possible on those?
18:38:33 <ais523> I don't know
18:38:45 <elliott> I mean, who would bother picking out their real birthdate?
18:39:11 <elliott> hmm, it seems everything on this press site is in a zip
18:39:16 <elliott> even things that are only a few hundred kilobytes
18:40:04 <ais523> elliott: wget -r -k -p -np (in an empty directory) might work
18:40:07 <elliott> and I can't open the zip I tried
18:40:14 <ais523> elliott: password-protected?
18:40:23 <elliott> dunno, file-roller just gives up
18:40:26 <elliott> ais523: the server's slow enough, and the files sufficiently numerous, that I don't care enough to mirror it
18:40:36 <ais523> yep, I was just looking up out of curiosity
18:40:39 <elliott> I mean, it's not like there's going to be any information or video or whatever here that won't be available publicly soon enough
18:40:54 * elliott nabs the upcoming list of [console] games, though
18:41:54 <elliott> a /minute/ to download a thirty-seven kilobyte file
18:41:55 <elliott> ?
18:41:57 <elliott> really, nintendo?
18:42:16 <elliott> it's going to take twenty hours to download this fifty-megabyte Wii factsheet, apparently
18:42:42 <elliott> oh well
18:42:48 <ais523> perhaps they're being Slashdotted (via something other than Slashdot)
18:43:46 <elliott> ais523: probably by everyone with legitimate access :P
18:44:05 <elliott> oh, it looks like it's on /v/
18:44:10 <elliott> that probably explains it
18:44:36 <elliott> it'll probably all be in a torrent by the end of the day
18:46:27 <ais523> elliott: you actually checked 4chan in order to see if they were responsible for massive access to a site?
18:46:37 <ais523> or was it a guess followed by asking someone likely to know / checking a page likely to indicate?
18:46:54 <elliott> ais523: no, I googled the url
18:47:09 <ais523> ah, clever
18:47:21 <elliott> I'm surprised Google even indexed them; they're 404'd already
18:47:24 <elliott> the threads, that is
18:47:31 <ais523> although I'm surprised that Google finds results from 4chan, given how quickly the threads are deleted
18:47:35 <ais523> ah, seems you are too
18:47:37 <elliott> pseudo-snap
18:47:51 <ais523> perhaps Google pay for a constant stream of changes to 4chan, just like they do to Wikipedia
18:47:56 <elliott> I have a feeling Google does a lot more than just spidering nowadays
18:48:06 <elliott> they probably try and "subscribe" to rapidly-updating websites via feeds or whatever
18:48:45 <nooga> no dinosaurs
18:48:46 <ais523> yep
18:49:02 <ais523> also, they own quite a few of the rapidly-updating places, like YouTube and Blogger
18:49:33 <Sgeo> ICH
18:49:50 <ais523> SIE?
18:49:50 <Sgeo> Deceased bug in bowl. Soap and _cold_ water enough to get it decently clean?
18:49:55 <Sgeo> There is no hot water.
18:49:59 -!- KingOfKarlsruhe has joined.
18:50:02 <elliott> no
18:50:04 <elliott> it is not enough
18:50:06 <elliott> you need hot water
18:50:09 <ais523> elliott: guessing?
18:50:10 <elliott> or all the germs will stay
18:50:14 <elliott> ais523: no this is cold hard fact
18:50:19 <ais523> trolling?
18:50:24 <elliott> i'm offended
18:50:52 <nooga> it's too hot
18:51:37 <elliott> nooga: how hot
18:56:21 <nooga> my gf's laptop refused to work
18:56:26 <nooga> because of heat
18:57:15 <ais523> nooga: have you tried bashing on the case a couple of times, a couple of centimetres further from the touchpad and to the left of the power switch, as soon as it starts to make the clicking noise?
18:57:28 <ais523> or does she not have the exact same laptop as me?
18:59:44 <elliott> and you guys make fun of me for not fixing these number keys :D
18:59:56 -!- foocraft has joined.
18:59:57 <ais523> elliott: well, this is easily workaroundable
19:01:04 <elliott> maharba continues to be a bad person for not responding to my questions ;(
19:01:27 <ais523> hmm, just noticed: esolangs tend to disobey Wadler's law, don't they?
19:01:43 <ais523> to the extent that DownRight didn't have a syntax at all until people forced one on me, and then came up with one quite quickly
19:02:06 <elliott> ais523: /good/ esolangs disobey it
19:02:11 <elliott> consider how many languages are /all about/ the syntaz
19:02:13 <elliott> [asterisk]syntax
19:02:21 <elliott> ais523: btw my proposed syntax for downright was much better :<
19:02:44 <ais523> elliott: even BF derivatives tend not to argue a lot about comment syntax
19:02:51 <elliott> heh, true
19:03:04 <yorick> there's not much languages like postscript nowadays
19:03:35 <elliott> underload
19:03:54 <Sgeo> Sadly, what's the difference between lexical syntax and syntax?
19:04:01 <yorick> elliott: thanks
19:04:19 <ais523> Sgeo: lexical syntax is syntax of lexicals
19:05:41 <olsner> just like in IOCCC, syntactic obfuscation is boring
19:06:37 <ais523> unless it's tied into computation somehow
19:09:03 -!- oerjan has joined.
19:10:04 <Sgeo> What isn't a lexical?
19:10:21 * Sgeo really, really needs to read about how to parse and lex and.. whatever code
19:10:58 <elliott> weeps quietl
19:10:59 <elliott> y
19:11:53 -!- lambdabot has quit (Ping timeout: 250 seconds).
19:12:22 <ais523> Sgeo: hint, lexical != lexeme != lexical analyser
19:13:33 <oerjan> 17:18:27: <Phantom_Hoover> PCREs can't match things recursively, can they?
19:13:34 <oerjan> 17:18:43: <pikhq> PCRE is TC.
19:13:44 <oerjan> the latter doesn't actually necessarily imply the former
19:14:15 <oerjan> because TC does not imply "input-complete"
19:14:19 <ais523> the syntax for recursive matching is (?1)
19:14:22 <ais523> or you can use other numbers
19:14:39 <ais523> e.g. (a(?1)b) matches strings of a given number of a, followed by the same number of b
19:14:49 <oerjan> erm
19:14:52 <ais523> that's only enough to make it a PDA, though, rather than TC
19:14:53 <olsner> "input-complete"?
19:15:06 <ais523> olsner: like the difference between TC and BF-complete, I think
19:15:18 <oerjan> s/the former/that PCRE can parse everything that is decidable/
19:15:28 <oerjan> yeah that was the idea
19:15:43 <Phantom_Hoover> <elliott> consider how many languages are /all about/ the syntaz
19:15:58 <Phantom_Hoover> Esolangs in general have extremely syntax, though.
19:16:04 <Phantom_Hoover> Even the ones based on it.
19:16:09 <elliott> extremely syntax
19:16:14 <Phantom_Hoover> *simple
19:16:21 <Phantom_Hoover> Extremely syntaz.
19:17:16 <oerjan> yeah obfuscation is usually limited to using unreadable base tokens, isn't it.
19:17:30 <oerjan> (e.g. single character ones)
19:17:44 <ais523> oerjan: that's not even intentional obfuscation, I think
19:17:50 <ais523> it can actually make langs easier to read when you're used to ir
19:17:52 <ais523> *it
19:18:03 <ais523> it's just the esolang's style
19:18:04 <elliott> it just makes implementing it easier :P
19:18:26 <Phantom_Hoover> I suspect that half the crappy BF derivatives were just caused by someone who wanted to try writing an interesting program with <thing>, but couldn't be bothered actually making something original.
19:18:26 <oerjan> also easier to parse... i suspect many esolangers would have trouble implementing a language which didn't use single-char tokens
19:18:46 <elliott> oerjan: which is depressing
19:19:49 <nooga> >:<
19:20:06 <oerjan> nooga: feel targeted? :P
19:20:20 <Sgeo> ais523, is {a b c: code} vs |a,b,c| {code} for lambdas syntax or lexical syntax? I'm... guessing the latter, but not sure
19:20:23 <nooga> i want a language that mutates during the parsing
19:20:45 <oerjan> > let x >:< y = x ++ y in "a" >:< "b" >:< "c"
19:20:51 <oerjan> eek
19:21:00 <nooga> ;>
19:21:02 <Sgeo> oerjan, eep
19:21:09 <oerjan> lambdabot existence failure
19:21:14 <Sgeo> I want to learn how to do things sanely
19:21:18 <nooga> oerjan: no I dont, this nice token just came to my head
19:21:29 <elliott> lambdabot :(
19:21:32 <elliott> come baaack
19:21:35 <olsner> Sgeo: and this is certainly the place to learn *sane* ways to do stuff
19:21:39 <ais523> Sgeo: I thought you'd have looked it up for yourself by now, but: http://en.wikipedia.org/wiki/Lexical_grammar
19:21:52 <oerjan> Sgeo: the former definitely. lexical syntax is about how you find your language's basic "words"
19:21:57 <elliott> ais523: implying Sgeo would ever google anything when he could ask it awkwardly on irc instead
19:22:05 <Sgeo> ty
19:22:07 <ais523> elliott: well, people wouldn't imply that about me
19:22:12 <ais523> (note that I didn't google it either)
19:22:14 <nooga> ;s
19:22:20 <elliott> ais523: the "awkwardly" part is important
19:22:25 <ais523> yep
19:22:26 <elliott> ais523: anyway, I am using google in the genericised sense here
19:22:31 <elliott> looking it up on wikipedia counts
19:22:32 <ais523> I often ask on IRC when I think it's the easiest way
19:22:35 <elliott> since that's basically what googling would achieve anyway
19:22:40 <olsner> "Please quote to me the dragon book. You may begin with chapter 1 for I know nothing."
19:22:45 <oerjan> Sgeo: e.g. because FORTRAN doesn't have a lexical syntax you get such absurdities as the famous FORI=1,10 vs. FORI=1.10 bug
19:22:53 <elliott> olsner: i'll have to get permission from my dad first
19:23:05 <elliott> oerjan: I'm not familiar; got a link?
19:23:17 <oerjan> (the former starts a for loop, the latter assigns to the variable FORI)
19:23:23 <elliott> ah
19:23:34 <ais523> elliott: I was about to tell you that, but oerjan was faster
19:23:39 <oerjan> INTERCAL of course does that on purpose :D
19:23:47 <ais523> oerjan: actually, no it doesn't
19:24:04 <ais523> it /almost/ does, but has a specific rule saying you aren't allowed to do things like that
19:24:07 <oerjan> ais523: um it doesn't use whitespace to separate tokens, doesn't it?
19:24:10 <ais523> it's even in the original manual
19:24:17 <ais523> oerjan: no, but it still tokenizes deterministically
19:24:30 <ais523> DOX always parses as DO X
19:24:36 <oerjan> ais523: ok not that kind of example (which has horrendous lookahead)
19:24:54 <ais523> the only corner case is DOREADOUT as DO READ OUT vs. DO REA DO UT
19:24:58 <ais523> which caught out J-INTERCAL
19:25:08 <oerjan> heh
19:25:08 <ais523> but people ignore that one as they can't figure out what the intended behaviour is anyway
19:25:30 <ais523> the case I was referring to was array syntax
19:25:43 <elliott> ais523: that example that the manual explicitly prohibits, I'm really sad about
19:25:49 <elliott> who cares about infinite lookahead?
19:25:51 <ais523> which requires unlimited lookahead to parse correctly, except that if you write a case that would require unlimited lookahead, compilers are allowed to crash
19:25:59 <elliott> yes which is bad >:(
19:26:00 <ais523> or, well, mis-parse it
19:26:01 <elliott> and evil and wrong
19:26:02 <ais523> I know C-INTERCAL does
19:26:05 <elliott> and ITRALCEN won't do it
19:26:17 <ais523> however, even handling the reduced version is insane
19:26:29 <ais523> C-INTERCAL does so using a stack of bits, which is packed into an array of integers
19:26:35 <elliott> that's a reason to do something, not to not do it :(
19:27:00 <oerjan> Sgeo: so basically if your language has multicharacter keywords or identifiers, it makes sense to have an initial stage that just finds the boundaries of those, that's lexical analysis, which also throws away whitespace and comments (which become irrelevant once you have done the division)
19:27:02 <ais523> the funny thing is, I even found a program that hit the limit of nested spark/ears groups and had to increase the limit
19:27:15 <elliott> oerjan: it doesn't really make sense IMHO
19:27:18 <elliott> it's a bit of an obsolete notion
19:27:28 <ais523> probably resulting from Joris' experiments in inlining an entire sequence of expressions into one
19:27:37 <oerjan> joris?
19:27:52 <ais523> oerjan: probably the most active C-INTERCAL developer who isn't actually a maintainer
19:28:02 <ais523> he's done a lot of useful work in finding/fixing bugs, and improving the optimiser
19:28:12 <ais523> he should get more credit
19:28:32 <elliott> i should actually write itralcen sometime
19:28:59 <ais523> the world needs more INTERCAL impls
19:29:26 <ais523> what level of compatibility would you be aiming for? -72? -72 with COME FROM and text I/O? common subset of C-INTERCAL and CLC-INTERCAL? something else?
19:29:29 <elliott> yes, unfortunately itralcen is very precisely defined, and I don't really feel like writing a GNUstep program to run in qemu which communicates with the host machine via a socket
19:29:36 <elliott> (to actually run ITRALCEN)
19:29:46 <elliott> ok so that could possibly wait ;D
19:30:02 <Deewiant> ais523: COME FROM isn't in a standard?
19:30:07 <elliott> Deewiant: computed COME FROM isn't
19:30:08 <elliott> ais523: at the very least, computed COME FROM
19:30:21 <ais523> Deewiant: even original COME FROM isn't in the -72 standard
19:30:24 <ais523> and there are no other standards
19:30:28 <elliott> wow, really?
19:30:29 <elliott> ok
19:30:29 <elliott> ais523: the ideal would be to have its very special own set of extensions and compatibility libraries for C and CLC, though
19:30:39 <ais523> elliott: like C and CLC do for each other
19:30:51 <elliott> ais523: The implementation strategy is basically inspired by CLC I think
19:30:59 <olsner> I think modern intercals should come with all the known COME FROM variants, including computed and parallel
19:31:01 <ais523> is that even /possible/?
19:31:07 <ais523> that would imply that somebody knew how CLC worked
19:31:09 <elliott> haha
19:31:22 <ais523> I only managed to reverse-engineer the basic outline, and CLC himself has long since forgotten
19:31:27 <elliott> ais523: except that, instead of just having a separate orthogonal language jammed in, it'll be based on the program you're running rewriting itself
19:31:32 <elliott> basically, it'll have self-modifying features
19:31:39 <elliott> and all the basic commands will rewrite themselves down to primitives
19:31:52 <elliott> which might be inline machine code, or maybe just VM instructions, etc.
19:32:06 <ais523> will one of the primitives run arbitrary Perl, like in CLC-INTERCAL?
19:32:08 <elliott> so basically, the whole language will be implemented in its macro system
19:32:13 <elliott> ais523: boring
19:32:22 <ais523> elliott: it's funny in context
19:32:28 <ais523> especially as it's hardly used for anything
19:32:34 <ais523> and is deliberately undocumented
19:33:10 <elliott> hmm, I might bootstrap it by having the bootstrapping code be just one big instruction
19:33:18 <elliott> [run arbitrary <language>] "huge string", basically
19:33:29 <elliott> and that would set up the system to a point where it could run the macro system and self-modify
19:33:34 <elliott> and the rest would be built up in ITRALCEN
19:33:49 <elliott> and the actual bootstrapping script would just do "eval str_param"
19:34:03 <elliott> thus reducing the amount of code not written in full valid ITRALCEN to a line or two
19:34:30 <nooga> NATO vs Anonymous = LOL
19:34:50 <elliott> ais523: I'm not sure how I'll actually handle parsing
19:35:08 <elliott> ais523: I think every command will define how it's parsed, pretty much
19:35:22 <ais523> elliott: note that CLC-INTERCAL's parser's interpretation of ambiguous statements was determined by experiment
19:35:23 <nooga> elliott: i thought about it
19:35:24 <elliott> So all it'd do is lex everything, and start running (which would equate to rewriting itself down to primitives, and then running those primitives)
19:35:26 <Sgeo> Would | | be lexed into beginlambdarglist and endlambdaarglist or just pipe?
19:35:29 <ais523> as nobody could work out what the results of the rules are
19:35:39 <elliott> Sgeo: you can't do the former
19:35:46 <elliott> lexers don't have that kind of information
19:35:52 <Sgeo> Ok
19:35:55 <nooga> Sgeo: elliott is right
19:35:57 <ais523> also, note that if you support the whole of CLC-INTERCAL, the way a program parses or even lexes could change at runtime
19:36:09 <elliott> nooga: thanks for the confirmation
19:36:30 <elliott> ais523: same with my system, the /whole thing/ is based around commands parsing their invocations and then rewriting themselves
19:36:34 <nooga> elliott: i was just about to answer him but then you came so I confirmed
19:36:39 <nooga> ;f
19:36:46 <elliott> nooga: :P
19:36:52 <elliott> ais523: I'm aiming to handle that explicitly-forbidden infinite-lookahead example, anyway
19:37:14 <ais523> but how do you un-rewrite if the meaning of a command was changed from behind you?
19:37:15 <Sgeo> I still have more questions, but they'd probably be better answered by reading
19:37:16 -!- foocraft has quit (Quit: Leaving).
19:37:31 <ais523> e.g. DO STASH .1 DO EXCHANGE STASH VARIABLE LIST WITH RETRIEVE VARIABLE LIST
19:37:35 <ais523> followed by looping
19:37:52 <ais523> at least, I can't remember the exact syntax of EXCHANGE, would you really expect me to?
19:37:59 <ais523> but it's much simpler than CREATE's, at least
19:37:59 <elliott> ais523: well, "the meaning of a command changing" is just newspeak for "the command has a branch"
19:38:18 <ais523> elliott: ah, so you'd work out all the possible meanings of a command at compile time?
19:38:32 <ais523> what if the CREATE statement was in a linked Befunge library rather than in the program itself?
19:38:34 <elliott> ais523: possibly; OTOH, it sounds more fun to unrewrite
19:38:50 <elliott> ais523: which would mean that I'd tag every part of the primitive call with the string of INTERCAL that it originated from
19:38:56 <ais523> (I had to implement that as soon as I realised it would be possible, and not too difficult)
19:38:57 <elliott> and then piece it together to unrewrite
19:40:12 <elliott> ais523: I'm really tempted to make the only supported target platform Wine
19:40:26 <ais523> elliott: the development tools will be a pain
19:40:32 <elliott> ais523: Wine with Cygwin, I mean
19:40:36 <ais523> but that's the only thing making it a bad idea
19:40:40 <ais523> also, Cygwin doesn't run under Wine
19:40:43 <elliott> all it'd require is for me to use a handful of Windows calls gratuitously
19:40:44 <ais523> I know, I actually tried
19:40:46 <elliott> ais523: ugh, still?
19:40:50 <elliott> people have gotten it working in the past, IIRC
19:40:52 <ais523> well, not last time I tried, at least
19:41:04 <elliott> ais523: well, I could just link to Winelib
19:41:10 <elliott> that doesn't prohibit you from linking to a POSIX libc, after all
19:42:06 <elliott> ais523: ooh, I could make the rewrites "timeless"
19:42:20 <elliott> invalid statements would simply not get rewritten, and executing something which can't be rewritten and isn't a primitive causes an error
19:42:29 <elliott> then, CREATE would simply introduce a new command
19:42:30 <elliott> hmm
19:43:09 <pikhq> elliott: Well, you'd get symbol conflicts if you didn't link to the system libc.
19:43:33 -!- Sgeo has quit (Ping timeout: 255 seconds).
19:43:37 <elliott> pikhq: indeed, but the system is POSIX
19:43:40 <elliott> (because it can run Wine)
19:43:54 <pikhq> True. So there's no real reason you *can't* just link to the system libc.
19:44:25 <elliott> you have to to use Winelib, I think
19:44:58 <pikhq> Yes, and that's why you'd have symbol conflicts if you didn't use the system libc for your libc.
19:45:03 <elliott> $ winegcc
19:45:03 <elliott> winegcc: gcc-4.5 failed
19:45:05 <elliott> top-notch tool
19:45:31 <elliott> ais523: hmm, maybe I'll fork tcc for ITRALCEN
19:45:36 <elliott> ais523: and make it compile into memory only
19:45:41 <elliott> that way, I can make my inline <language> instruction be "inline C"
19:45:51 <ais523> haha
19:46:00 <elliott> I'm deadly serious.
19:47:05 <elliott> hmm, what's the Windows function to create a dirt-simple alert box?
19:47:08 <olsner> :)
19:47:25 <oerjan> <ais523> gah, that name hurts my head just when I try to mentally pronounce it
19:47:27 <elliott> it occurs to me that I'll have to think of an actually decent reason to use Windows functions
19:47:33 <ais523> elliott: MessageBoxEx, I think
19:47:35 <oerjan> Wii U NO LIKE IT?
19:47:37 <ais523> unless they've changed it again
19:47:44 <ais523> oerjan: AAARGH!
19:47:48 <elliott> ais523: so, MessageBox then
19:47:53 <elliott> ugh, hWnd
19:47:56 <ais523> I'm not sure if that one ever existed
19:47:56 <elliott> >how does I winapi
19:47:57 <oerjan> oh i forgot ais523 is allergic to puns
19:48:01 <ais523> and that's the parent, you can pass in NULL
19:48:10 <olsner> it is MessageBox in visual basic at least (was? dunno about .net)
19:48:10 <ais523> if you don't have a window yourself to parent it to
19:48:14 <elliott> LPCTSTR...
19:48:17 <elliott> that's not a C string is it
19:48:37 <ais523> not in the normal format, I don't think
19:48:37 <oerjan> (what do you _mean_ i would probably have done it anyway)
19:48:40 <elliott> (LPCWSTR)L"Resource not available\nDo you want to try again?",
19:48:40 <elliott> ugh
19:48:47 <olsner> it's a *long* pointer to a constant wide (or ansi) string
19:48:55 <ais523> olsner: that's what I was guessing
19:49:07 <ais523> I didn't recognise the T, but guessed it indicated UTF-16
19:49:11 <ais523> the first T, that is
19:49:16 <elliott> a long pointer ahahaha
19:49:22 <elliott> winapi: so bad???
19:49:25 <ais523> most API calls use long pointers
19:49:26 <olsner> L stands for herp, T stands for derp, the rest is meaningless
19:49:38 <elliott> ais523: calling MessageBox outside of WinMain is a dumb idea, right?
19:49:42 <elliott> I'm trying to use a regular Unix main()
19:49:48 -!- Sgeo has joined.
19:50:00 <elliott> /usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory
19:50:02 <elliott> r u srs
19:50:04 <elliott> of course
19:50:07 <elliott> wine doesn't support sixty four bit
19:50:08 <ais523> elliott: a regular main() will emulate all the stuff you need to make it act like a C89 main, I thought
19:50:13 <elliott> this just keeps getting betterer and betterer
19:50:27 <fizzie> TCHAR is either a char (for an ANSI string) or a WCHAR (on a Unicode platform).
19:50:40 <ais523> hmm, is L"string" a Windowsism, or in one of the actual C standards?
19:50:44 <ais523> I think the latter, but am not sure
19:50:48 <ais523> I know it's basically only used on Windows
19:50:57 <olsner> L"" makes a wchar_t string, it's standard
19:50:58 <ais523> because other platforms tend to do their Unicode by hand
19:51:16 <olsner> but you don't know what it means, it "can" be non-unicode
19:51:27 <ais523> yep, depending on what wchar_t is
19:51:32 <ais523> no wonder people generally do it by hand
19:51:36 <olsner> even when it is unicode, sometimes it's UCS-4, sometimes UCS-2 and sometimes UTF-16 :)
19:51:52 <elliott> utf-16 should just die
19:52:00 <elliott> there's pretty much no justification to use it, ever
19:52:19 <ais523> elliott: what's your opinion on the similar-but-different ucs-2?
19:52:37 <elliott> ais523: UCS-2 can't even handle non-BMP, can it??
19:52:42 <elliott> "It is not possible to encode these code points in UCS-2."
19:52:42 <elliott> indeed
19:52:43 <elliott> even worse
19:52:54 <ais523> yep
19:52:57 <fizzie> _T is either an empty macro or L, for defining TCHAR string literals.
19:53:08 <ais523> UCS-2 is basically UTF-16 except surrogates are meaningless rather than being usable to express astral planes
19:53:22 <elliott> UCS-2 made sense before the astral planes
19:53:26 <elliott> now, it's unacceptable
19:53:26 <ais523> fizzie: isn't _T in implementation namespace?
19:53:42 <elliott> UTF-16 is acceptable only when you're upgrading from UCS-2, I guess
19:53:55 <pikhq> Which is why Windows uses it for internal APIs.
19:54:14 -!- zzo38 has joined.
19:54:28 <elliott> test.c: In function ‘main’:
19:54:28 <elliott> test.c:6:3: warning: passing argument 2 of ‘MessageBoxA’ from incompatible pointer type
19:54:38 <elliott> ok i'll use _T and a cast
19:54:39 <zzo38> I have talked with the other project manager and can now answer some of your other questions.
19:54:41 <fizzie> ais523: At least it only gets defined if you ask for tchar.h.
19:54:54 <zzo38> We will not omit the optical drive in favor of USB only.
19:54:56 <olsner> elliott: just disable warnings
19:55:10 <olsner> that'll fix it!
19:55:22 <elliott> zzo38: hm, why?
19:55:34 <fizzie> If it's MessageBoxA, it sounds like it's using the ANSI version, where you should be able to pass a char* too.
19:55:39 <elliott> fizzie: error: ‘_T’ undeclared
19:55:41 <elliott> guess wine doesn't have it
19:55:50 <elliott> and no, it's MessageBox(), which I guess is defined to be MessageBoxA?
19:56:00 <zzo38> elliott: Two of the reasons are: * Optical discs are less expensive in general * Optical discs last longer in general * There are other reasons too
19:56:20 <elliott> zzo38: optical disks last longer than USB disks?
19:56:21 <coppro> that's not two reasons
19:56:22 <elliott> I haven't heard that one.
19:56:23 <fizzie> Yes, but the fact it gets turned to MessageBoxA instead of MessageBoxTheOtherThing indicates ansi.
19:56:33 <Deewiant> s/TheOtherThing/W/
19:56:42 <fizzie> Right.
19:56:56 <coppro> I DO NOT BELIEVE IN ASCII
19:57:04 -!- ais523 has quit (Read error: Connection reset by peer).
19:57:09 <elliott> zzo38: anyway, I thought the point was that you could easily plug a USB DVD drive in, so it saves space overall
19:57:15 * elliott goes back to convincing winegcc to work
19:57:21 <zzo38> The gold edition is currently estimated at $20000.00 although the price will likely go down. Standard edition will be reasonably priced, though, although we cannot yet estimate the price.
19:57:27 <coppro> I BELIEVE IN 1-BYTE UTF-8
19:57:29 * coppro explodes
19:57:30 <elliott> $20000
19:57:36 <elliott> is that a typo
19:57:40 <zzo38> Yes, it is very overpriced.
19:57:40 <coppro> elliott: no
19:58:05 <zzo38> The standard edition will be way less than that. And even the price of the gold edition might not actually be that high, it is just estimate.
19:58:33 <elliott> yay, I just ran a program that uses both fork and MessageBoxA
19:58:36 <olsner> elliott: I think you're supposed to a) define some macro to say whether you want T stuff to mean wchar or char, b) include the header full of T stuff
19:59:02 <zzo38> (I will try to include enough stuff with the gold edition to justify the high price for the purchasers)
19:59:04 <olsner> but using HerpDerpA functions with normal strings should work fine too
19:59:20 <fizzie> You can include <tchar.h> to get the stuff, including the _T thing.
19:59:31 <olsner> the stuff, including the thing :D
19:59:36 <elliott> zzo38: you realise that's approximately five hundred times as expensive as the most expensive consoles, right?
19:59:48 <CakeProphet> woah, I think I just got a job.
20:00:12 <coppro> CakeProphet: where at?
20:00:18 <fizzie> (Or explicitly define _UNICODE I guess, which should make it use to FooW functions that take wchar_t strings.)
20:00:35 <elliott> lmao, the .exe winegcc generates is actually a shell script
20:00:38 <zzo38> elliott: Yes I do realize that. However, I did say that it is possible the price might go way down even before it is actually sold. Also, the standard edition is not going to cost anywhere near that high price, it is going to be a lot a lot less.
20:00:38 <CakeProphet> Wal-Mart. Working the night shift, stocking shit in the wee hours of the morning.
20:01:00 <olsner> so, yet another brainfuck encoding, this one both herps and derps: https://gist.github.com/1013014
20:01:29 <elliott> olsner: did you write this
20:01:38 <olsner> elliott: yeah :/
20:01:53 <elliott> olsner: :(
20:03:08 <coppro> ugh, sometimes I hate thunderbird
20:03:38 <elliott> coppro: me too; for instance: whenever i'm using thunderbird
20:04:02 <coppro> out of curiosity, what do you use?
20:04:11 <elliott> gmail.com because i'm lazy as fuck
20:04:14 <coppro> ah
20:04:18 <elliott> it has a decent UI, at least
20:04:27 <elliott> i've muscle-memoried the keyboard shortcuts mostly
20:04:38 <pikhq> Yeah, it's a non-terrible web UI.
20:04:40 <coppro> my problem with gmail is the filtering was a bit braindead last I tried
20:04:43 <elliott> I couldn't switch to any client without the conversation view, pretty much
20:04:45 <coppro> the UI is good
20:04:46 <pikhq> Which is actually pretty amazing.
20:04:49 <CakeProphet> well, I don't know if I got the job yet, but they're asking me to meet them at the bathroom tomorrow at 10 AM, which PROBABLY means they're going to drug test me, and I'm pretty sure they don't drug test people without hiring them.
20:04:57 <olsner> great, no setting to disable these disgusting automatic smileys in xchat
20:05:04 <elliott> coppro: hmm, the only filters I have are
20:05:07 <elliott> Matches: to:(agora-business@agoranomic.org)
20:05:07 <elliott> Do this: Skip Inbox, Apply label "Agora"[etc.]
20:05:12 <coppro> elliott: yes
20:05:20 <elliott> what do you do that gmail can't handle?
20:05:26 <coppro> but if you try to reapply such a filter after something happens like you accidentally delete a label
20:05:34 <coppro> it filters the whole damn conversation
20:05:38 <coppro> not individual mesasges
20:05:50 <elliott> well... gmail doesn't really have a concept of "message" as something that can move
20:05:53 <coppro> this is unacceptable when I'm using IMAP
20:05:59 <elliott> i don't use imap :)
20:06:19 <coppro> in particular, I keep A-B and A-D in separate folders
20:06:32 <elliott> ugh
20:06:39 <elliott> that's a terrible practice; I did that, but it turns out it makes reading things a royal pain
20:06:49 <elliott> so I stopped as soon as I actually registered
20:07:19 <coppro> now, if I switched to the web UI exclusively now that they have offline access, that would work; I'd have to learn that I can't do the separate folder thing which would be ok if a bit annoying
20:07:56 <coppro> but there are a few other issues that annoy me sufficiently
20:08:13 <elliott> better than thunderbird
20:08:21 <coppro> actually, no
20:08:44 <coppro> well, things in total are better with thunderbird
20:08:49 <elliott> what about Sylpheed/Claws? those are pretty popular with the kind of silly people who use traditional-style desktop mail clients
20:09:02 <coppro> if GMail could act as an IMAP client, I'd like that
20:10:03 <coppro> I very much like the webserver I use
20:10:13 <elliott> what?
20:10:27 <coppro> My email is hosted on a server
20:10:30 <coppro> to which I IMAP
20:10:32 <coppro> I like this server
20:10:45 <elliott> you typo'd; s/webserver/server/
20:10:48 <coppro> ah
20:10:54 <coppro> meant mailserver
20:15:01 <pikhq> "Checking for exit in -lboost_regex"
20:15:04 <pikhq> *facepalm*
20:15:12 <coppro> whee name mangling
20:15:18 <pikhq> DON'T BE RETARDED YOU RETARD
20:17:01 <pikhq> EXIT IS NOT EVER GOING TO BE IN -lboost_regex. EVER.
20:17:23 <Phantom_Hoover> pikhq, where was this?
20:17:39 <pikhq> This is actually in the AX_BOOST_REGEX macro.
20:18:13 <pikhq> It does that test *using C*, no less.
20:18:42 <pikhq> ... It later goes on to do an AC_CHECK_LIB for *main*.
20:18:47 <coppro> wtf
20:18:52 <pikhq> MAIN IS EVEN LESS LIKELY TO BE IN -lboost_regex.
20:18:57 <elliott> im a oifd
20:19:13 <pikhq> FUCK YOU, BOOST. FUCK YOU.
20:19:30 <coppro> elliott: yes ur
20:19:40 <elliott> coppro: cob
20:19:48 <pikhq> Also, FOR THE LOVE OF GOD PEOPLE, USE PKGCONFIG.
20:19:59 <pikhq> IT IS STRICTLY BETTER THAN YOUR STUPID BULLSHIT.
20:20:08 <olsner> I think what it's trying to see is if an empty program can successfully link to -lboost_regex
20:20:27 <pikhq> olsner: Yes, and AC_CHECK_LIB does not do that.
20:20:52 <olsner> it might do that if you give it nonsensical symbol names to check for :P
20:21:23 <pikhq> AC_CHECK_LIB checks to see if you can successfully link a program that contains a reference to a symbol in a given library, *and then execute it*.
20:21:29 <elliott> aoifj
20:23:09 <pikhq> So, if you use a symbol that's not in the library you're checking, you're doing it wrong and you suck.
20:23:24 <pikhq> Did I happen to mention that you should use pkg-config?
20:25:51 <olsner> I do believe that you did
20:26:48 <pikhq> It bears mentioning often. As pkg-config is The Right Answer.
20:27:10 <elliott> olsner: do you know how to get bochs to stop outputting all that junk when it starts up
20:27:27 <olsner> elliott: nope
20:27:32 <elliott> olsner: :(
20:27:38 <elliott> its just such a pain to useeee
20:28:39 <olsner> don't use it then?
20:29:00 <elliott> are you proposing i use qemu :p
20:29:44 <olsner> no, I was actually only proposing you don't use bochs :P
20:30:01 <elliott> psht
20:30:09 <olsner> whether that means replacing it or just ceasing all activity is up to you
20:30:21 <elliott> youre a bad person
20:30:26 <olsner> haha, right
20:30:33 <coppro> I'm a bad person!
20:30:38 <elliott> yes
20:30:40 <elliott> youre all abd people, die
20:30:56 <coppro> I'm not an abd person :(
20:31:09 <elliott> youre the most abd fuckin person ive ever heard of
20:31:25 <coppro> well of course I'm abd fuckin
20:31:25 <olsner> ABD people, the very worst kind of people
20:31:28 <coppro> who isn't?
20:31:36 <elliott> im abd fuckin every day
20:31:51 <olsner> I bet you're extremely syntax too
20:31:57 * pikhq kinda wonders what level of configurability eglibc actually *has*...
20:32:00 <elliott> syntaz actually
20:32:09 <nooga> i like parsing so i will write a parser for a language that you can use to write a parser which is jit compiled and parses text
20:32:25 <pikhq> Most definitely nothing comparable to uclibc, but still, curious.
20:33:48 <nooga> like uh, grep specializer
20:34:02 <olsner> it's the ... grepalizer!
20:34:04 <nooga> i must prove it
20:34:34 <nooga> i did it once but it sucked
20:34:52 <nooga> i want to make a second attempt
20:35:00 <nooga> btw
20:35:14 <olsner> so what makes you think it will go better this time?
20:35:41 <nooga> i was in a hurry because i wanted to show it on my university
20:36:08 <nooga> i've got this Puss Ruby DSL, in which you define grammar and then it generates random strings that comply to that grammar
20:36:45 <nooga> what would happen if one defined a grammar of that DSL to generate random grammar definitions and feed them into the Puss itself
20:37:30 <olsner> pusseption?
20:38:04 <olsner> sorry, I mean P U S S E P T I O N, of course
20:38:19 <nooga> https://github.com/nooga/puss
20:38:33 <nooga> i must check it
20:38:53 <nooga> but i don't want to accidentaly divide by 0
20:38:58 <Phantom_Hoover> The world needs a fresh recursion meme.
20:39:10 <olsner> indeed
20:39:14 <elliott> or
20:39:15 <elliott> not
20:39:26 <Phantom_Hoover> Yo dawg, division by zero, I N C E P T I O N... they're all tired.
20:39:37 <nooga> yep
20:39:46 <olsner> elliott: you mean the ones we have are good enough?
20:39:46 <elliott> division by zero is a recursion meme?
20:39:58 <Phantom_Hoover> elliott, it's often used as one.
20:40:03 <elliott> howso
20:40:06 <elliott> olsner: no i mean they suck
20:40:17 <Phantom_Hoover> By which I mean people reference it when recursion crops up.
20:40:52 <nooga> "The Seventh Voyage", in which a spaceship defect forces Tichy through a series of time vortices, creating a multitude of temporal copies of Tichy.
20:41:01 <nooga> from the Star Diaries by S. Lem
20:41:24 <nooga> could be a good source of confusing paradoxes
20:41:49 <pikhq> Hmm. eglibc is rather less configurable than I'd hoped.
20:42:01 <pikhq> Though still a hell of a lot better than glibc.
20:43:43 <pikhq> It's possible to make a glibc that won't use dlopen with static linking. That's nice, at least.
20:44:09 <nooga> brb
20:44:15 <Phantom_Hoover> nooga, has anyone read the Star Diaries?
20:45:46 <monqy> what's the star diaries
20:45:57 <Phantom_Hoover> monqy, exactly.
20:46:19 <pikhq> Wow, apparently just getting rid of eglibc's locale support suts a giant swath of the libc's size.
20:46:20 <elliott> DAMMIT MAHARBA
20:46:23 <elliott> i'm emailing that bastard
20:46:32 <elliott> You must be logged in and have a valid e-mail address in your preferences to send e-mail to other users.
20:46:33 <elliott> oh come on
20:46:42 * elliott confirms his fucking email address
20:47:09 <elliott> This user has not specified a valid e-mail address, or has chosen not to receive e-mail from other users.
20:47:10 <elliott> lol
20:47:20 <elliott> i guess i will just wait then
20:48:41 <oerjan> SUCKER
20:48:46 <elliott> what
20:48:57 <elliott> shut up tarski............
20:50:15 <oerjan> banach-tarski banach-tarski
20:50:21 <elliott> HYOURE A BANACH
20:50:49 <Phantom_Hoover> Hmm, does Banach-Tarski work as a recursion meme...
20:51:14 <olsner> probably not
20:51:16 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]).
20:51:25 <elliott> i'll ban your ach tarski
20:51:31 <Phantom_Hoover> Not to the layman, no.
20:51:45 <oerjan> banach-tarski works both as a recursion meme and as a recursion meme, separately
20:52:04 <elliott> people who exist suck
20:52:32 <elliott> hmm, LtU has slown down lately
20:52:41 <oerjan> elliott: NEEDS CONTROL GROUP FOR VERIFICATION
20:52:42 <elliott> and Arcane Sentiment hasn't seen a post since April
20:53:47 <Phantom_Hoover> Is Arcane Sentiment written by a Clojure fan?
20:59:21 -!- elliott has quit (Remote host closed the connection).
21:00:03 -!- elliott has joined.
21:00:43 <elliott> is there really no haskell package for fixed-sized arrays...
21:00:45 <elliott> i.e. three by three by three
21:01:03 <elliott> encoded in the type
21:01:20 <elliott> I mean I know I could do ((a,a,a),(a,a,a),(a,a,a)) but that's ugly
21:01:40 <monqy> type Cool a = ((a, a, a), (a, a, a), (a, a, a))
21:02:30 <olsner> elliott: (a,a,a,a,a,a,a,a,a) then? :)
21:02:35 <oerjan> didn't i see a linear algebra package like that when someone was asking for how to do gauss elimination in haskell a while ago
21:03:06 <oerjan> (for bfjoust scoring)
21:03:18 <oerjan> and btw did anyone ever get that implemented
21:03:23 <Phantom_Hoover> elliott, ISTR something like that.
21:03:28 <elliott> well there's
21:03:28 <elliott> hmatrix-static library: hmatrix with vector and matrix sizes encoded in types
21:03:35 <elliott> Phantom_Hoover: there's repa, but that just encodes dimension in type
21:03:39 <elliott> oerjan: nobody has yet, AFAIK
21:03:46 <Phantom_Hoover> Also, aren't you essentially talking about dependent typing?
21:04:18 <elliott> ...no.
21:05:18 <Phantom_Hoover> Um.
21:05:38 <oerjan> elliott: oh wait you actually want arrays, not matrices?
21:05:43 <elliott> oerjan: yeah
21:05:45 <oerjan> i.e. not linalg related
21:05:47 <Phantom_Hoover> I mean, the array type depends on the dimensions, no?
21:05:56 <elliott> Phantom_Hoover: Yes. This has nothing to do with dependent types.
21:06:08 <elliott> If you think it does, you are mistaken about what dependent types are.
21:06:23 <Phantom_Hoover> "In computer science and logic, a dependent type is a type that depends on a value"
21:06:27 <Phantom_Hoover> (WP)
21:06:40 <oerjan> Phantom_Hoover: this is ok without dependent types because you have to encode the dimensions as a _type_, you cannot convert it from a value
21:06:52 <Phantom_Hoover> oerjan, oh, that makes more sense.
21:06:55 <elliott> oerjan: it is ok even if you have values at the type-level.
21:07:00 <elliott> there is no use of the dependent function arrow.
21:07:13 <elliott> it's definitely not dependent typing
21:07:20 <oerjan> elliott: well i mean it's ok in haskell
21:07:28 <elliott> Right.
21:08:23 <oerjan> iirc didn't ghc recently get an extension where integer literals could be used as types, was that for this kind of stuff...
21:08:44 <elliott> It did?
21:08:49 <elliott> That would be really nice, do you have any links?
21:10:01 <elliott> <interactive>:1:2:
21:10:02 <elliott> Couldn't match expected type `()' with actual type `Grid (S n0) a0'
21:10:02 <elliott> In the first argument of `(:*:)', namely `() :*: () :*: ()'
21:10:02 <elliott> In the expression: (() :*: () :*: () :*: X) :: Grid T3 ()
21:10:06 <elliott> derp herp
21:10:44 <elliott> > (9DOLLAR SIGN0:)
21:10:48 <elliott> :(
21:10:50 <elliott> no lambdabot, no dollar sign
21:12:47 <elliott> *Main> :t () :*: ()
21:12:47 <elliott> () :*: () :: Grid n () ~ () => GridS n ()
21:13:04 <elliott> beautiful~
21:13:59 <oerjan> i think : has same precedence as ++, 6 or so
21:14:09 <elliott> Constraint is no smaller than the instance head
21:14:09 <elliott> in the constraint: Show (Grid n t)
21:14:09 <elliott> (Use -XUndecidableInstances to permit this)
21:14:10 <oerjan> or wait
21:14:10 <elliott> sob
21:14:21 <elliott> data GridS n t = t :*: Grid n t
21:14:22 <elliott> deriving instance (Show (Grid n t)) => Show (GridS n t)
21:14:24 <elliott> why is this not ok :(
21:14:39 <oerjan> elliott: um doesn't the (0$0 :) trick work in ghci?
21:15:09 <elliott> oerjan: yes yes yes fix my bug
21:16:30 <oerjan> well "Constraint is no smaller than the instance head" looks pretty accurate
21:17:39 <elliott> but i want the show ;_;
21:19:59 <elliott> <oerjan> i think : has same precedence as ++, 6 or so
21:20:00 <elliott> five actually
21:20:24 <oerjan> ah
21:20:53 <elliott> N :*: (N :*: N) :/: (N :*: (N :*: N) :/: N :*: (N :*: N))
21:20:54 <elliott> oh come on
21:20:56 <oerjan> i may have misunderstood; at least i cannot find these number literal types in the language options
21:21:02 <elliott> I said it was infixr why don't you take that into account :(
21:21:19 <elliott> oerjan: but hey look, planet overkill: http://sprunge.us/IAJR
21:21:33 <oerjan> Show instances don't; we've discussed this before i think
21:21:53 <oerjan> *derived Show instances
21:22:17 <oerjan> define showsPrec yourself if you want it to be nice
21:22:27 <elliott> yeah yeah :D
21:24:57 <elliott> class (Show t => Show (Grid s t)) => Grid s t where
21:25:00 <elliott> that's not a valid constraint, is it.
21:27:57 <oerjan> er no?
21:28:14 <oerjan> you might want a , there
21:28:33 <oerjan> or wait
21:28:49 <Phantom_Hoover> http://www.youtube.com/watch?v=Wiy_eHdj8kg
21:28:55 <Phantom_Hoover> Cool.
21:29:03 <elliott> oerjan: nope
21:29:29 <elliott> oerjan: hmm, now i'm venturing into dependent typey territory (wanted to make xs!n a type error if n is too big :D)
21:32:41 <elliott> argh... this is irritating
21:47:59 <elliott> oerjan: i'm still working on it :D
21:49:45 <elliott> oh
21:49:46 <elliott> this won't work
21:49:48 <elliott> because of how I... argh
21:53:55 <nooga> i'm writing an infinite, recursive loop that won't kill the stack :D
21:54:02 <nooga> in C
21:55:17 <oerjan> _portable_ C?
21:59:16 -!- wareya has quit (Read error: Connection reset by peer).
22:00:10 -!- wareya has joined.
22:01:38 <elliott> oerjan: i wish haskell had proper overloaded integers :(
22:01:57 <elliott> (you can't define a LessThanFour type where (4 :: LessThanFour) causes a type error)
22:02:27 -!- azaq23 has quit (Quit: Leaving.).
22:04:09 * Phantom_Hoover → sleep
22:04:30 -!- Phantom_Hoover has quit (Quit: Leaving).
22:14:16 <nooga> oerjan: i use cdecl and pop function address from the stack as an argument
22:14:52 <elliott> nooga: so, not portable.
22:15:30 <nooga> who cares
22:15:39 <nooga> it's a hack
22:15:41 <oerjan> PERFECTIONISTS
22:17:14 <elliott> nooga: well it's not /C/
22:18:11 <nooga> nor /b/
22:18:23 <olsner> nor /d/
22:24:41 -!- oscuro has joined.
22:24:44 -!- oscuro has quit (Client Quit).
22:44:53 -!- augur has quit (Remote host closed the connection).
22:50:14 <pikhq> nooga: You could just assume GNU C and make it easy on yourself. :P
22:51:49 <elliott> For example, ''pabi'' plus ''raha'' (5) is written ''gahaha pabi raha''.
22:51:51 <elliott> gahaha
22:51:55 <elliott> monqy: gahaha
22:52:47 <monqy> mmmm syl
22:53:21 <monqy> gahaha is a good name for addition
22:56:58 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:04:38 -!- olsner has quit (Quit: Leaving).
23:05:25 <elliott> pikhq: hey i'm reading a log where you mock me for proposing writing everything above the kernel and drivers in a high-level language because you'd need a supercomputer to do anything :D
23:05:27 <elliott> thought you should know
23:06:37 <nooga> O-o
23:06:50 <elliott> nooga: its ok hes less of a terrible person now
23:06:56 <elliott> SLIGHTLY LESS
23:07:06 <pikhq> nooga: I have learned that C sucks terribly.
23:07:20 <nooga> i heard that i'm a terrible person
23:07:24 <elliott> lol apparently Singularity is proof that nothing good will come from Microsoft ever :DDDD
23:07:30 <elliott> it's ok to mock all you guyses past selves right
23:07:35 <pikhq> And that smart algorithms > smart microöptimizations, 99% of the time.
23:07:35 <elliott> i mean i do it to your present selves so i figure
23:07:45 <nooga> from GLaDOS while playing portal 2
23:08:01 <elliott> 00:32:36: <ehird> Bring back Lisp Machines! Write the OS in Lisp and let the user-mode language be Haskell!
23:08:01 <elliott> 00:32:49: <ehird> VIVA LA GRAPH REDUCIÃ<93>N!
23:08:02 <elliott> 00:33:23: <pikhq> You say this because you are unfamiliar with anything more low-level than a simple GUI. :P
23:08:03 <elliott> hurt my feelings :(
23:08:09 <elliott> (vim messing up the unicode, that is)
23:08:54 <pikhq> Also, if you're *going* to do C, it should suck less.
23:09:19 <elliott> apparently if lisp machines were at all good at anything they would still be being made because there's a niche market for them :x
23:09:22 -!- Tritonio has joined.
23:09:49 <CakeProphet> Haskell machine?
23:09:59 <nooga> someone should make a lisp cluster in one FPGA chip
23:10:05 <elliott> CakeProphet: Reduceron
23:10:06 <elliott> http://www.cs.york.ac.uk/fp/reduceron/
23:10:06 <CakeProphet> massive thunk registers.
23:10:11 <elliott> nooga: stanislav is ostensibly working on a lisp fpga :P
23:10:17 <nooga> oh
23:10:19 <elliott> CakeProphet: It's a symbolic graph-reduction FPGA machine
23:10:28 <elliott> CakeProphet: Specified in York Lava, which is a Haskell library for declarative hardware
23:10:35 <elliott> It's the coolest damn thing ever
23:10:49 <nooga> declarative hardware sounds mind blowing
23:10:54 <CakeProphet> I'm not sure if your definition of cool is representative.
23:11:05 -!- dnm_ has left.
23:11:09 <elliott> CakeProphet: How is this not cool.
23:11:19 <elliott> nooga: see YorkLava.txt in http://www.cs.york.ac.uk/fp/reduceron/york-lava.tar.gz
23:11:25 <elliott> nooga: also, ais' work is similar to this
23:11:33 <elliott> in that he's working on something "one level up" from VHDL
23:11:37 <elliott> that's declarative
23:11:55 <elliott> that's why he's spending his days compiling algol 60 code into vhdl :)
23:12:04 -!- Patashu has joined.
23:12:24 <elliott> But yeah, the Reduceron is just the coolest thing. and the memos are mind-expanding.
23:12:46 <CakeProphet> I've heard similar things about various drugs.
23:12:52 <elliott> Shush you.
23:13:17 <nooga> cool
23:13:38 <elliott> nooga: but yeah, the entire Reduceron is specified in York Lava
23:13:58 <elliott> there's also an emulator in ~seven hundred and fifty lines of C
23:14:03 <elliott> (including whitespace and comments)
23:14:09 <elliott> with speculative evaluation, too
23:14:10 <Patashu> what are we talking about?
23:14:18 <elliott> Patashu: The Reduceron http://www.cs.york.ac.uk/fp/reduceron/
23:14:20 <nooga> yeah, i'm reading the emulator src ;]
23:14:23 <nooga> at the moment
23:14:32 <nooga> or rather browsing it
23:14:33 <elliott> Patashu: a purely-functional, symbolic graph reducing CPU architecture
23:14:36 <elliott> implemented on FPGAs
23:14:49 <Patashu> wait what
23:14:56 <elliott> Define "wait what" :P
23:15:13 <elliott> nooga: look at fpga/Reduceron/Reduceron.vhd... gotta love generated code :D
23:15:18 <Patashu> so it's haskell in ur circuitry
23:15:28 <elliott> Patashu: "ur circuitry"?
23:15:46 <elliott> The actual stuff the Reduceron evaluates is more like term-rewriting languages (think Q, Pure) than Haskell
23:15:51 <elliott> But yes, it's functional hardware.
23:16:08 <elliott> Defined with York Lava, which is a Haskell library for declarative hardware development that outputs to VHDL. I feel like I'm repeating myself.
23:16:13 <elliott> Probably because I am repeating myself.
23:19:47 <CakeProphet> !addinterp len perl $_=<>;print length
23:19:47 <EgoBot> ​Interpreter len installed.
23:19:56 <elliott> !delinterp len
23:19:57 <EgoBot> ​Interpreter len deleted.
23:19:58 -!- augur has joined.
23:20:01 <elliott> !addinterp len sh wc -c
23:20:01 <EgoBot> ​Interpreter len installed.
23:20:06 <elliott> !len abcd
23:20:07 <EgoBot> ​5
23:20:12 <elliott> !delinterp len
23:20:13 <EgoBot> ​Interpreter len deleted.
23:20:15 <elliott> !addinterp wc sh wc
23:20:16 <EgoBot> ​Interpreter wc installed.
23:20:18 <elliott> !wc abc def
23:20:18 <EgoBot> ​1 2 8
23:20:25 <elliott> !delinterp wc
23:20:25 <EgoBot> ​Interpreter wc deleted.
23:20:34 <elliott> !addinterp wc sh wc -wm
23:20:34 <EgoBot> ​Interpreter wc installed.
23:20:35 <CakeProphet> I think what you're looking for is..
23:20:37 <elliott> !wc abc def
23:20:38 <EgoBot> ​2 8
23:20:41 <elliott> Excellent.
23:20:45 <CakeProphet> nope..
23:20:49 <elliott> Nope?
23:20:54 <elliott> It shows words, and characters.
23:20:57 <nooga> elliott: lol at the vhdl code
23:20:58 <elliott> Looks good to me.
23:21:16 <elliott> nooga: you should look through the memos, they're really cool
23:21:26 <CakeProphet> !delinterp wc
23:21:27 <EgoBot> ​Interpreter wc deleted.
23:21:27 <nooga> i will, but tomorrow
23:21:28 <CakeProphet> !addinterp len perl $_=<>;print `wc $_`
23:21:28 <EgoBot> ​Interpreter len installed.
23:21:37 <elliott> CakeProphet: ...
23:21:40 <elliott> for a start
23:21:41 <elliott> that won't work
23:21:43 <elliott> for a second
23:21:44 <nooga> got to go, good night
23:21:44 <elliott> SRSLY?
23:21:50 <CakeProphet> elliott: what won't work?
23:21:53 <elliott> nooga: night
23:21:54 <elliott> CakeProphet: your perl
23:22:01 <CakeProphet> ...because?
23:22:10 <elliott> `wc $_`
23:22:12 <HackEgo> No output.
23:22:21 <CakeProphet> ...uh, okay?
23:22:26 <CakeProphet> !wc -c "sup dawg"
23:22:26 <elliott> think about it.
23:22:38 <elliott> fail
23:22:38 <CakeProphet> I am.
23:22:39 <elliott> you forgot sh
23:22:44 <elliott> !sh wc -c "sup dawg"
23:22:44 <EgoBot> ​/usr/bin/wc: sup dawg: No such file or directory
23:22:52 <elliott> btw, it's actually
23:22:53 <elliott> !sh wc -c sup dawg
23:22:54 <EgoBot> ​/usr/bin/wc: sup: No such file or directory
23:22:55 <elliott> you don't quote it at all
23:23:08 <CakeProphet> why do I sh?
23:23:25 <elliott> what?
23:23:33 <CakeProphet> ` ` /is/ sh...
23:23:34 <HackEgo> No output.
23:23:45 <elliott> i meant in
23:23:47 <elliott> <CakeProphet> !wc -c "sup dawg"
23:24:11 <CakeProphet> ?
23:24:14 <CakeProphet> I forgot sh in that?
23:24:16 <elliott> sigh
23:24:26 <elliott> your version is borken, simple as :P
23:26:16 -!- nooga has quit (Ping timeout: 258 seconds).
23:26:53 <CakeProphet> !addinterp wc perl $_=<>;print `wc $_`
23:26:53 <EgoBot> ​Interpreter wc installed.
23:26:57 <CakeProphet> !wc -c sup dawg
23:26:58 <EgoBot> ​/usr/bin/wc: sup: No such file or directory
23:27:11 <CakeProphet> lol
23:27:20 <CakeProphet> !delinterp len
23:27:20 <EgoBot> ​Interpreter len deleted.
23:28:53 <CakeProphet> !delinterp wc
23:28:53 <EgoBot> ​Interpreter wc deleted.
23:29:03 <elliott> hmm
23:29:19 <CakeProphet> not useful if I can't specify options as well as the standard input.
23:29:24 <elliott> i'm doing so
23:29:35 <CakeProphet> with Perl right? :P
23:29:42 <elliott> nope
23:29:59 <CakeProphet> not going to be as awesome then...
23:30:36 <elliott> !addinterp wc sh text=`cat`; opts=`echo "$text" | sed 's/\b[^-].*//'`; text=`echo "$text" | sed 's/.*\b\([^-]\)/\1/'`; echo "$text" | wc $opts
23:30:37 <EgoBot> ​Interpreter wc installed.
23:30:39 <elliott> `wc abc
23:30:41 <HackEgo> No output.
23:30:45 <elliott> !wc abc
23:30:46 <EgoBot> ​1 1 4
23:30:49 <CakeProphet> oh god...
23:30:50 <elliott> !wc -c abc
23:30:51 <EgoBot> ​1 1 4 -
23:30:55 <elliott> bah
23:30:56 <elliott> i'll fix it later
23:34:08 -!- FireFly has quit (Remote host closed the connection).
23:34:20 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:36:06 <CakeProphet> !perl $_="test";@x=s/test//g;print @x
23:36:07 <EgoBot> ​1
23:36:23 * elliott drools over the reduceron memos some more
23:36:57 <elliott> "To see the impact of the dynamic sharing analysis, look at the
23:36:57 <elliott> differences between the numbers of updates and unwinds. Without any
23:36:58 <elliott> sharing analysis, these numbers would be the same. On average, the
23:36:58 <elliott> dynamic sharing analysis avoids 60% of updates."
23:37:41 <elliott> oerjan when i make the perfect computer you can have one ok
23:37:47 * elliott kind
23:41:13 <oerjan> OK
23:41:37 <elliott> oerjan: you were meant to say "thank you you are so kind"
23:42:07 -!- pikhq_ has joined.
23:42:07 <oerjan> Danke schön, Sie sind so Kind
23:42:33 <oklopol> :D
23:42:43 <elliott> caret _______ caret
23:42:48 * oerjan whistles innocently
23:42:50 <elliott> oops now you guys know my widemouthed secret too
23:45:31 -!- pikhq has quit (Ping timeout: 260 seconds).
23:45:51 <CakeProphet> !addinterp wc2 perl $_=<>; $r=qr/^\w*([-]\W*\w*)*/; $opt=join(' ', m/$r/); s/$r//;print `echo "$_" | wc $opt`
23:45:51 <EgoBot> ​Interpreter wc2 installed.
23:46:01 <CakeProphet> !wc2 -c sup dawg
23:46:02 <EgoBot> ​11
23:46:07 <CakeProphet> ...not quite.
23:46:30 -!- Tritonio has quit (Quit: Leaving).
23:46:32 <elliott> stop using perl asshole
23:46:35 <elliott> :(
23:46:48 <elliott> `run echo "-abc donkeys" | sed 's/\b[^-].*//'
23:46:49 <HackEgo> ​-
23:46:51 <elliott> ...
23:46:52 <CakeProphet> ..asshole? What about Perl makes me an asshole.
23:46:59 <elliott> CakeProphet: perl :|
23:47:00 <elliott> ok now for good sh time
23:47:11 <elliott> `run echo "-abc donkeys" | sed 's/\( \|^\)[^-].*//'
23:47:13 <HackEgo> ​-abc
23:47:29 <elliott> `run echo "-abc donkeys" | sed 's/.*\( \|^\)\([^-]//'
23:47:31 <HackEgo> No output.
23:47:36 <elliott> `run echo "-abc donkeys" | sed 's/.*\( \|^\)\([^-]\)/\/'
23:47:36 <elliott> fuck
23:47:37 <HackEgo> No output.
23:47:37 <elliott> X just fucked up
23:47:43 <CakeProphet> !delinterp wc2
23:47:43 <EgoBot> ​Interpreter wc2 deleted.
23:47:45 -!- elliott has quit (Remote host closed the connection).
23:48:11 -!- elliott has joined.
23:48:45 <elliott> !addinterp wc sh text=`cat`; opts=`echo "$text" | sed 's/\( \|^\)[^-].*//'`; text=`echo "$text" | sed 's/.*\( \|^\)\([^-]\)/\2/'`; echo "$text" | wc $opts
23:48:45 <EgoBot> ​There is already an interpreter for wc!
23:48:48 <elliott> !delinterp wc
23:48:48 <EgoBot> ​Interpreter wc deleted.
23:48:48 <elliott> !addinterp wc sh text=`cat`; opts=`echo "$text" | sed 's/\( \|^\)[^-].*//'`; text=`echo "$text" | sed 's/.*\( \|^\)\([^-]\)/\2/'`; echo "$text" | wc $opts
23:48:49 <EgoBot> ​Interpreter wc installed.
23:48:54 <elliott> !wc abc
23:48:54 <EgoBot> ​1 1 4
23:48:58 <elliott> !wc -c abc
23:48:59 <EgoBot> ​4
23:49:08 <elliott> hmm...
23:49:08 <elliott> oh
23:49:10 <elliott> !delinterp wc
23:49:10 <EgoBot> ​Interpreter wc deleted.
23:49:16 <elliott> !addinterp wc sh text=`cat`; opts=`echo "$text" | sed 's/\( \|^\)[^-].*//'`; text=`echo "$text" | sed 's/.*\( \|^\)\([^-]\)/\2/'`; echo -n "$text" | wc $opts
23:49:17 <EgoBot> ​Interpreter wc installed.
23:49:20 <elliott> !wc -c abc
23:49:20 <EgoBot> ​3
23:49:23 <elliott> nice
23:49:27 <elliott> !wc -m abc
23:49:28 <EgoBot> ​3
23:49:29 <elliott> !wc -l abc
23:49:29 <EgoBot> ​0
23:49:32 <elliott> !wc -wm abc
23:49:33 <EgoBot> ​1 3
23:49:34 <elliott> !wc -w -m abc
23:49:35 <EgoBot> ​1 3
23:49:39 <elliott> CakeProphet: bow to your new god
23:49:44 <CakeProphet> !addinterp wc2 perl $_=<>; $r=qr/^\w*([-]\W+\w+)*/; m/$r/; $opt=$1; s/$r//;print `echo "$_" | wc $opt`
23:49:44 <EgoBot> ​Interpreter wc2 installed.
23:49:48 <CakeProphet> !wc -wm abc
23:49:49 <EgoBot> ​1 3
23:50:04 <CakeProphet> AWWW YEAH I'M LEIBNIZ
23:50:05 <elliott> fail
23:50:08 <elliott> <CakeProphet> !addinterp wc2
23:50:10 <elliott> <CakeProphet> !wc
23:50:13 <CakeProphet> ROFL
23:50:17 <CakeProphet> -ahem-
23:50:23 <CakeProphet> that's because you STOLE It.
23:50:33 <CakeProphet> !wc2 -wm abc
23:50:34 <EgoBot> ​2 2 9
23:50:37 <CakeProphet> haha
23:50:40 <oklopol> why are there bans on this channel
23:50:45 <oklopol> could someone please remove them all
23:51:09 <cheater_> they're all for you
23:51:09 <elliott> why
23:51:09 <cheater_> :(
23:51:15 <cheater_> in case you ever want to use those hosts
23:51:17 <oklopol> they irk me
23:51:18 <cheater_> :D
23:51:21 <elliott> * #esoteric Banlist: Tue Mar 29 04:26:23 honey!*@beehive.insectopia.us kornbluth.freenode.net
23:51:24 <elliott> thats an important ban oklopol
23:51:26 <CakeProphet> !delinterp wc2
23:51:26 <EgoBot> ​Interpreter wc2 deleted.
23:51:28 <oklopol> why
23:51:31 <elliott> because honey
23:51:33 <elliott> we are at war
23:51:34 <elliott> with the bees
23:51:45 <oklopol> please remove that
23:51:47 <elliott> you should totally remove the shutup bans though oerjan
23:51:49 <cheater_> i have a bee nest outside my window
23:51:51 <cheater_> not joking here
23:51:56 <oklopol> oerjan: could you remove the bans
23:52:08 <oklopol> really think those people are trying to get in?
23:52:30 <elliott> shutup would definitely return if its ban was removed
23:53:30 <CakeProphet> !addinterp wc2 perl $_=<>;chomp;/^\w*([-]\W+\w+)*/;$opt=$1;s/$opt//;print `echo "$_" | wc $opt`
23:53:31 <EgoBot> ​Interpreter wc2 installed.
23:53:37 <CakeProphet> !wc2 -c abc
23:53:37 <EgoBot> ​1 2 7
23:53:42 <CakeProphet> ...?
23:53:44 <elliott> lol
23:54:29 <oerjan> we already did a ban list cleanup not _that_ long ago
23:54:53 <oklopol> those are all over a month old
23:55:26 <elliott> definitely think we need shutup unbanned
23:55:37 <CakeProphet> elliott: fix my program for me.
23:55:42 <oerjan> ...by which i mean something like < 6 months ago
23:55:44 <elliott> CakeProphet: i did, by rewriting it in sh, in the past
23:56:00 <CakeProphet> !delinterp wc2
23:56:00 <EgoBot> ​Interpreter wc2 deleted.
23:56:44 <CakeProphet> !addinterp wc2 perl $_=<>;chomp;/^\w*([-]\W+\w+)*/;$opt=$1;s/$opt//;print;#print `echo "$_" | wc $opt`
23:56:44 <EgoBot> ​Interpreter wc2 installed.
23:56:49 <CakeProphet> !wc2 -c test teorkjwerijwer
23:56:49 <EgoBot> ​-c test teorkjwerijwer
23:57:02 <CakeProphet> ...WHUT.
23:57:22 <elliott> nt;#
23:57:34 <elliott> t//;print;#print `ec
23:57:34 <CakeProphet> yes I know that was intentional.
23:57:35 <elliott> to be precise
23:57:47 <elliott> homp;/^\w*([-]\W+\w+)*/;$o
23:57:53 <elliott> well thats not... kosher.
23:57:57 <elliott> or is it.
23:57:58 <elliott> hmm.
23:58:03 <elliott> is that a boolean matching?
23:58:03 -!- lambdabot has joined.
23:58:03 <CakeProphet> what?
23:58:07 <CakeProphet> yes.
23:58:26 <CakeProphet> ah I know what I could do...
23:58:31 <CakeProphet> !delinterp wc2
23:58:32 <EgoBot> ​Interpreter wc2 deleted.
23:58:47 * oerjan hugs lambdabot
23:59:20 <CakeProphet> !addinterp wc2 perl $_=<>;chomp;s/^\w*([-]\W+\w+)*//;$opt=$1;print;#print `echo "$_" | wc $opt`
23:59:20 <EgoBot> ​Interpreter wc2 installed.
23:59:23 <CakeProphet> !wc2 -c test
23:59:24 <EgoBot> ​-c test
23:59:25 <CakeProphet> ....
23:59:33 <CakeProphet> something's wrong with the regex then.
23:59:55 <CakeProphet> ooooh
23:59:57 <CakeProphet> right. :P
2011-06-08
00:00:02 <CakeProphet> !delinterp wc2
00:00:02 <EgoBot> ​Interpreter wc2 deleted.
00:00:25 <CakeProphet> !addinterp wc2 perl $_=<>;chomp;s/^\W*([-]\w+\W+)*//;$opt=$1;print `echo "$_" | wc $opt`
00:00:26 <EgoBot> ​Interpreter wc2 installed.
00:00:30 <CakeProphet> !wc2 -c abc
00:00:30 <EgoBot> ​1 2 6
00:00:35 <CakeProphet> fffff
00:00:41 <CakeProphet> but yeah Iwas confusing \w and \W
00:00:53 <CakeProphet> \w stands for "word character" not "whitespace"
00:01:32 <CakeProphet> !delinterp wc2
00:01:32 <EgoBot> ​Interpreter wc2 deleted.
00:02:51 <oerjan> > mapM (length <$>) [lines, words, id] "test\nho there"
00:02:52 <lambdabot> Couldn't match expected type `GHC.Types.Char'
00:02:52 <lambdabot> against inferred type...
00:02:52 <elliott> im...robot
00:02:58 <oerjan> f
00:03:10 <elliott> im...robot
00:03:11 <elliott> im...robot
00:03:12 <elliott> im...robot
00:03:12 <elliott> im...robot
00:03:12 <elliott> im...robot
00:03:16 <elliott> im...robot
00:03:18 <elliott> im...robot
00:03:26 <elliott> could this ircing get any better???
00:03:47 <oerjan> oh duh
00:04:19 <CakeProphet> !addinterp wc2 perl $_=<>;chomp;s/^\s*((?:[-]\S+\s+)*)//;$opt=$1;print;print `echo "$_" | wc $opt`
00:04:19 <EgoBot> ​Interpreter wc2 installed.
00:04:24 <CakeProphet> !wc2 -c weorjsoidfjiuwehriuwheriuhweriuh
00:04:25 <EgoBot> ​weorjsoidfjiuwehriuwheriuhweriuh33
00:04:38 <CakeProphet> okay, now I'm Leibniz.
00:04:47 <CakeProphet> except with emulating wc as an IRC bot command
00:04:51 <CakeProphet> instead of calculus.
00:04:57 <CakeProphet> !delinterp wc2
00:04:57 <EgoBot> ​Interpreter wc2 deleted.
00:05:20 <CakeProphet> !addinterp wc2 perl $_=<>;chomp;s/^\s*((?:[-]\S+\s+)*)//;$opt=$1;print `echo "$_" | wc $opt`
00:05:20 <EgoBot> ​Interpreter wc2 installed.
00:05:23 <pikhq_> Hmm. include-what-you-use may be the single greatest boon to porting something to work on musl.
00:05:41 <CakeProphet> musl?
00:05:46 <pikhq_> A simple libc.
00:06:43 <oerjan> > mapM (length.) [lines, words, (pure.)] "test\nho there"
00:06:44 <lambdabot> [2,3,13]
00:07:05 <pikhq_> And include-what-you-use is a static analysis tool built with clang that does, well, what you think it does.
00:07:10 <CakeProphet> !addinterp sh++ perl $_=<>;print `$_`
00:07:11 <EgoBot> ​Interpreter sh__ installed.
00:07:21 <CakeProphet> elliott: it's an improved sh because it runs through perl...
00:07:59 <CakeProphet> I recommend using it in the future.
00:11:12 <Patashu> lol
00:11:35 <CakeProphet> elliott: also, because there was totally an implied golfing contest, my code has few bytes with whitespace removed
00:11:43 <CakeProphet> *fewer
00:12:07 <CakeProphet> !delinterp wc2
00:12:07 <EgoBot> ​Interpreter wc2 deleted.
00:12:49 <CakeProphet> !addinterp wc2 perl $_=<>;chop;s/^\s*((?:[-]\S+\s+)*)//;print`echo "$_"|wc $1`
00:12:49 <EgoBot> ​Interpreter wc2 installed.
00:12:58 <CakeProphet> -ahem- and now even fewer.
00:20:41 <pikhq_> Hmmmm. I think that I might be able to get GNU coreutils to coöperate with me. Near as I can tell, the stupid bits of gnulib are actually just someone being overzealous.
00:20:53 <pikhq_> That is, I may well be able to fix it via rm.
00:21:49 <elliott> but why would you want gnu coreutils
00:23:21 <pikhq_> I was just wondering, mostly.
00:23:45 <pikhq_> I'm going to be amused if the portability problems of GNU shit is because they just stuck too much stuff from gnulib in there.
00:26:52 <CakeProphet> How much money do I make working at FSF?
00:27:01 <CakeProphet> :3
00:27:17 <elliott> stallman's foot clippings
00:28:47 <CakeProphet> I wonder why stallman is the butt of so many jokes. He's a pretty cool guy, doesn't afraid of anything.
00:29:06 <pikhq_> *facepalm*
00:29:08 <pikhq_> #if 1
00:29:13 <pikhq_> # include <xlocale.h>
00:29:13 <pikhq_> #endif
00:29:27 <pikhq_> Guess what won't work anywhere at all?
00:29:36 <coppro> pikhq_: ...
00:29:47 <CakeProphet> lolwhut
00:29:53 <pikhq_> Incidentally, that header only exists on OS X 10.5.
00:30:00 <coppro> pikhq_: xlocale.h?
00:30:02 <coppro> it's quite common
00:30:20 <pikhq_> /* MacOS X 10.5 defines the locale_t type in <xlocale.h>. */
00:30:24 <pikhq_> Well, that's what they claim.
00:30:28 <coppro> ah
00:30:38 <coppro> glibc does the same but they #include <xlocale.h> in <locale.h?
00:30:43 <coppro> s/\?/>
00:32:49 * elliott myndzi
00:32:50 * myndzi elliott
00:33:52 <CakeProphet> coppro: on an utterly pedantic note, I don't think you have to escape the ? if there's nothing in front of it.
00:36:04 <CakeProphet> though it would be an interesting extension if a ? at the beginning of the regex signified that the null string is acceptable or something.
00:36:43 <CakeProphet> equivalent to (?:...)? around the entire expression
00:37:48 -!- cheater_ has quit (Ping timeout: 248 seconds).
00:40:47 -!- cheater_ has joined.
00:52:20 <CakeProphet> I have no idea what I would be doing with myself if I had never learned how to program.
00:52:31 -!- oklopol has quit (Ping timeout: 258 seconds).
00:52:56 <CakeProphet> I'd probably write a lot more.
00:53:25 <CakeProphet> and would have become an English major or something awful like that.
00:54:26 <CakeProphet> elliott: link me an interesting data structure that I haven't heard of.
00:56:18 <CakeProphet> and on yet another unrelated note, they should REALLY put something like fclabels into Haskell by default, and completely redo the record syntax.
00:56:57 <elliott> haskell records are pretty much the worst yeah
00:57:24 <CakeProphet> because as it currently stands there is no higher-order mechanism to re-set record fields cleanly.
00:57:42 <CakeProphet> without using fclabels, which uses template haskell I believe.
00:57:49 <elliott> we also need some kind of type-directed name resolution.
00:57:51 <elliott> http://hackage.haskell.org/trac/haskell-prime/wiki/TypeDirectedNameResolution
00:57:58 <elliott> CakeProphet: you can derive the accessors manually if you want to avoid TH
00:58:20 <CakeProphet> expand TH plz.
00:58:26 <CakeProphet> oh
00:58:27 <CakeProphet> nvm
00:58:28 <CakeProphet> :P
00:59:04 <CakeProphet> well it's not so much that I want to avoid it, it's just that the fclabels syntax to declare something as a fclabel is somewhat ugly.
00:59:27 <elliott> you can omit the $() in ghc 7
00:59:36 <elliott> data Point = Point { _x :: Integer, _y :: Integer }
00:59:40 <elliott> mkLabels [''Point]
00:59:43 <elliott> that's not so bad.
01:00:31 <CakeProphet> elliott: essentially this proposal is proposing a kind of overloading. Which I think is a good idea(tm)
01:00:41 <elliott> it isn't
01:00:47 <elliott> we already have overloading (typeclasses)
01:00:51 -!- Sgeo has quit (Ping timeout: 252 seconds).
01:00:52 <elliott> (unstructured overloading is Dangerous)
01:01:10 <elliott> it's in fact just exactly what it says on the tin ... type-directed name resolution :P
01:03:19 <CakeProphet> elliott: to me the . lexeme seems somewhat unecessary.
01:04:35 <elliott> brb
01:04:38 <CakeProphet> you could just overload the accessor name based on the type of the first argument (read: type directed name resolution) but skip the . syntax, which already has enough things that it represents.
01:06:24 -!- augur has quit (Remote host closed the connection).
01:08:13 <CakeProphet> the only problem would be that :t accessorName is now ambiguous, or would refer to only one while hiding all others. But, that proposal has that problem as well.
01:22:58 <elliott> back
01:23:10 <elliott> CakeProphet: that's really ugly. and no, the proposal doesn't have the latter problem
01:23:15 <elliott> note that most of the later sections are just /ideas/
01:23:26 <elliott> and the ones that involve two functions with the same name in the same module scope are bad ones :)
01:24:00 <CakeProphet> I don't see anything wrong with M.accessor x
01:24:49 <CakeProphet> http://hackage.haskell.org/trac/haskell-prime/wiki/ExistingRecords#First-classsyntax
01:24:58 <elliott> M.accessor x is ugly.
01:25:03 <elliott> and verbose.
01:25:08 <CakeProphet> I do like this proposal. Except the second syntax form is kind of weird and isn't really needed.
01:25:09 <elliott> M is usually more than one letter :P
01:25:28 <elliott> anyway WHAT WE REALLY NEED IS ML-STYLE MODULES DAMMIT
01:25:42 <CakeProphet> so what's wrong with "accessor x", where the name is resolved by the type of x?
01:27:11 <CakeProphet> > let (=:) x = "test" in (=:) 3
01:27:12 <lambdabot> "test"
01:28:29 <CakeProphet> @hoogle (~)
01:28:29 <lambdabot> Test.HUnit.Base (~:) :: Testable t => String -> t -> Test
01:28:30 <lambdabot> Test.HUnit.Base (~=?) :: (Eq a, Show a) => a -> a -> Test
01:28:30 <lambdabot> Test.HUnit.Base (~?) :: AssertionPredicable t => t -> String -> Test
01:28:31 <elliott> <CakeProphet> so what's wrong with "accessor x", where the name is resolved by the type of x?
01:28:36 <elliott> because unstructured overloading is Scary.
01:28:51 <oerjan> CakeProphet: lazy pattern
01:28:58 <CakeProphet> it's equally structured to x.accessor
01:29:11 <CakeProphet> there's just no sugar.
01:29:23 <elliott> CakeProphet: no, it's not about sugar
01:29:32 <elliott> the .accessor denotes something very important here, it conveys the intent
01:29:46 <oerjan> > case Nothing of ~Just x -> "This will break " ++ x
01:29:47 <lambdabot> <no location info>: Parse error in pattern
01:29:51 <oerjan> erm
01:30:01 <oerjan> > case Nothing of ~(Just x) -> "This will break " ++ x
01:30:04 <elliott> i feel http://r6.ca/blog/20090511T013939Z.html is quite relevant here
01:30:07 <lambdabot> mueval-core: Time limit exceeded
01:30:10 <elliott> even though it's about a more dynamic kind of dispatch than this.
01:30:12 <oerjan> > case Nothing of ~(Just x) -> "This will break " ++ x
01:30:15 <lambdabot> "This will break *Exception: <interactive>:(3,0)-(4,21): Irrefutable patter...
01:30:30 <elliott> oh FUCK NO fly
01:30:35 <elliott> get the FUCK out of this room
01:33:00 <CakeProphet> elliott: I thought it was about structured overloading..
01:33:38 <elliott> CakeProphet: yes but "f x" doing any kind of overloading is Scary :)
01:33:51 <CakeProphet> what's unstructured about "accessor functions are special, can overlap in a namespace, and are resolved by the type of their first argument"
01:34:58 <CakeProphet> scary for the timid, I suppose. It changes absolutely nothing about the semantics. It's purely a syntax thing to convey a smidgeon of extra warning that something (apparently) EVIL is going on.
01:35:00 <elliott> um what? "accessor functions are special"?
01:35:06 <elliott> type-directed name resolution works on /every/ function
01:35:35 <CakeProphet> right, that's what you're defending, I'm defending someting else.
01:36:12 <elliott> guys what does fly poo look like
01:36:16 <elliott> this is important
01:36:23 <CakeProphet> miniscule.
01:36:43 <elliott> ok so this thing on my bed
01:36:45 <elliott> isnt fly poo
01:36:52 <elliott> oh its fluff
01:37:02 <CakeProphet> if it's large enough to cause alarm probably not.
01:40:05 -!- augur has joined.
01:40:21 <CakeProphet> I mean, accessor functions are already special in the sense that they're automatically generated. It would be perfectly reasonable to specialize them a small step further by allowing their names to be disambiguated by first argument. Regular functions don't /need/ type-directed name resolution so they should be excluded.
01:41:09 <CakeProphet> because, yes, unstructured overloading is scary.
01:42:17 <CakeProphet> overloading of record field names is not scary, and is pretty commonly encountered in languages.
01:43:58 <CakeProphet> overloading of the . symbol to be a kind of reversed function application, a means to qualify variable names, and function composion... is pretty scary.
01:44:18 -!- oklopol has joined.
01:46:07 <elliott> back
01:46:16 <elliott> CakeProphet: but dude
01:46:18 <elliott> you can pass accessor functions around
01:46:27 <elliott> treating applications of accessor functions differently to all other functions
01:46:30 <elliott> with the exact same syntax
01:46:33 <elliott> and the exact same naming rules
01:46:38 <elliott> is the most perverse, horrible thing ive ever heard of
01:46:49 <elliott> and goes right against everything i know about the spirit of haskell i.e. no insane non-local shit like that
01:47:09 <elliott> anyway . as composition already needs spaces around it because of module resolution
01:47:16 <elliott> ideally I would prefer some kind of unicode for composition
01:47:19 -!- Sgeo has joined.
01:47:22 <elliott> so that . could be less weird like that
01:47:24 <elliott> but it's like that anyway
01:47:28 <elliott> so we might as well take advantage of it
01:49:12 <elliott> four days without homestuck update :'(
01:50:13 <Sgeo> There isn't going to be a Flash, is there?
01:50:38 <Sgeo> I mean, I'd assume there would be, if not for the fact that the point of Doc Scratch narrating seems to be to prevent it
01:55:18 <elliott> see formspring. no flash till EOA
01:55:46 <Sgeo> The last Bonobo Conspiracy update was July 10, 2010
02:07:12 <elliott> and?
02:11:15 -!- fizzie has quit (*.net *.split).
02:11:16 -!- Wamanuz3 has quit (*.net *.split).
02:11:16 -!- ttm_ has quit (*.net *.split).
02:11:16 -!- Herobrine has quit (*.net *.split).
02:11:16 -!- HackEgo has quit (*.net *.split).
02:11:17 -!- yiyus has quit (*.net *.split).
02:11:24 -!- HackEgo has joined.
02:11:25 -!- Herobrine has joined.
02:11:31 <Sgeo> Just noting that some webcomics are kind of sad in how irregular updates have become, and MSPA hasn't hit that point
02:11:40 -!- yiyus has joined.
02:11:41 -!- Wamanuz3 has joined.
02:11:42 -!- ttm_ has joined.
02:13:35 -!- EgoBot has quit (Remote host closed the connection).
02:13:46 -!- EgoBot has joined.
02:14:08 <elliott> DAMMIT TARSKI
02:15:47 <elliott> Sgeo: so... "some comics are dead -> a comic which has updated as often as twenty-one pages in one day not updating for four consecutive days, despite there being no Flash update coming, is irrelevant"? :p
02:15:57 <elliott> ofc it's not actually a big deal that it hasn't updated, but still
02:16:23 <CakeProphet> elliott: GHC could easily substitute the first argument of the accessor name to be a until the type is known. It doesn't have to resolve it immediately. :)
02:16:31 <elliott> CakeProphet: um how is that relevant
02:17:20 -!- fizzie has joined.
02:17:27 <CakeProphet> elliott: it's relevant because it has nothing to do with insane non-local shit.
02:17:50 <elliott> it is definitely non-local; the semantic definition of "f x" can change just because the definition of f was changed
02:17:53 <elliott> consider that
02:18:13 <elliott> newtype MyMonadStack a = MyMonadStack { runMyMonadStack :: LotsOfTransformers a }
02:18:15 <elliott> is often used but also
02:18:22 <elliott> newtype MyMonadStack a = MyMonadStack (LotsOfTransformers a)
02:18:27 <elliott> runMyMonadStack (MyMonadStack m) = m
02:18:28 <elliott> is used too
02:18:31 <elliott> in similar proportions
02:18:42 <CakeProphet> well fuck 'em.
02:18:46 <elliott> to have this kind of trivial refactoring drastically change the semantics of every function application in another module
02:18:48 <elliott> is completely insane
02:18:49 <elliott> and terrible
02:18:50 <CakeProphet> time to make my Haskell/Perl hybrid.
02:18:54 <elliott> ugh
02:18:57 <elliott> you have terrible taste
02:19:18 <zzo38> How do you make a Haskell/Perl hybrid?
02:19:26 <CakeProphet> carefully.
02:19:41 <elliott> badly
02:19:54 <CakeProphet> hybrid in principle, not in exact semantics, of course.
02:20:00 -!- augur has quit (Remote host closed the connection).
02:25:00 <CakeProphet> functional style (not ncessarily pure), powerful type system, convenient syntactic/semantic constructs, general awesomeness all around.
02:27:17 <elliott> sounds like you want perl 6.
02:28:03 <elliott> tab gc time
02:28:11 <elliott> "Running at only 91.5MHz on an FPGA, the Reduceron is faster than mature bytecode implementations of Haskell running on a 2.8GHz PC." ;; wow, I had no idea things were /this/ good
02:28:36 <elliott> it would be cool if there was some automatic parallelisation stuff going on too with a many-cored graph reducer...
02:29:05 <elliott> hmm, "bytecode implementations"
02:29:09 <elliott> I wonder if that's excluding GHC?
02:29:18 <CakeProphet> yes
02:29:24 <elliott> are you sure?
02:29:26 <CakeProphet> considering that GHC isn't a bytecode implementation..
02:29:34 <elliott> ghc has a few stages which could be described as similar to bytecode
02:30:03 <CakeProphet> well, that's probably not what they mean, in the context of final state execution.
02:30:09 <CakeProphet> s/state/stage/
02:30:15 <elliott> oerjan I think knows more than me, but spineless tagless g-machine?
02:31:50 <elliott> ah:
02:31:51 <elliott> On average, the Wide Reduceron (on FPGA) outperforms the Reduceron,
02:31:51 <elliott> Yhc, and Nhc98 bytecode interpreters (on PC). All of these implementations
02:31:51 <elliott> share a common frontend, so each interpreter runs the same core Haskell programs.
02:32:14 <elliott> "The leading native-code compiler GHC performs many advanced optimisations. For example, GHC spots that the critical safe function in Queens is
02:32:14 <elliott> strict, so need not be instantiated on the heap. Similar optimisations might be
02:32:14 <elliott> used in a future Reduceron implementation, but architectural changes would be
02:32:16 <CakeProphet> Hugs is bytecode right?
02:32:19 <elliott> times slower than GHC -O2 (on PC)."
02:32:21 <elliott> no, hugs is a straight interpreter
02:32:23 <elliott> still
02:32:31 <elliott> 4.85 slower than GHC with -O2
02:32:31 <elliott> is
02:32:32 <elliott> really impressive
02:32:41 <elliott> because the Reduceron is an /FPGA/ running at 91.5MHz...
02:33:04 <CakeProphet> so a modest improvement in hardware should make it run faster I'd think.
02:33:16 <elliott> yes, although investing into getting such optimisations working would be a more productive use of time
02:33:27 <CakeProphet> yeah.
02:33:36 <elliott> brute force doesn't usually scale :)
02:34:06 <CakeProphet> unless you have elastic super powers.
02:34:22 <elliott> i should ask ais about fpgas again.
02:34:25 <CakeProphet> then you can scale to whatever you please..
02:34:33 <elliott> or Vorpal, he's done some stuff with them iirc.
02:34:53 <elliott> they are just so expensive, though :(
02:36:41 <oerjan> doesn't ghci use a bytecode backend
02:36:49 <elliott> http://www.altera.com/products/devkits/altera/kit-cyc3-starter.html ;; bet this is shit
02:36:57 <elliott> cheap though
02:37:20 <elliott> and seemingly their highest-end "starter kit" (i.e. thing anyone could ever hope to afford)
02:37:33 * elliott checks xilinx
02:37:42 <elliott> (fucking duopolies)
02:38:06 <elliott> gah, xilinx's site is user-hostile
02:38:50 <elliott> JESUS I JUST WANT SOMETHING ORDERED BY PRICE
02:38:56 <elliott> hate you hate you hate you
02:39:35 <elliott> Atlys Spartan-6 FPGA Development Kit$349
02:39:35 <elliott> ($199 for academic customers)A complete, ready-to-use development platform based on a Xilinx Spartan-6 LX45 FPGA, the Atlys kit features high-end peripherals and is an ideal host for complete digital systems built around embedded processors like Xilinx’s MicroBlaze.
02:39:35 <elliott> Spartan-6 FPGA SP605 Evaluation Kit$495Conveniently delivers all the basic components for developing cost and power-sensitive applications that require transceiver capabilities in one package.
02:39:41 <elliott> stab my eyes out
02:40:06 <elliott> i kind of want to try the reduceron but im not paying hundreds of pounds more for something that is compatible with the reduceron toolchain :D
02:40:29 <elliott> Clocking
02:40:29 <elliott> 50-MHz on-board oscillator
02:40:36 <elliott> ok so it's about half as fast as the one the reduceron guys used i guess
02:41:25 <elliott> ok they used Virtex-5 it seems
02:41:46 <elliott> oh my fuck xilinx site
02:41:47 <elliott> i hate your shits
02:42:57 <CakeProphet> elliott: start a t-shirt business.
02:43:01 <elliott> what
02:43:06 <CakeProphet> find trendy things to make t-shirts about. profit.
02:43:36 <CakeProphet> especially obscure trendy nerdy things. Read xkcd for ideas.
02:44:01 <elliott> id rather stab my eyes out
02:44:12 <CakeProphet> but you can't make money from that!
02:44:20 <elliott> fuck you i can do whatever i want
02:45:06 <CakeProphet> your reduceron isn't going to be much use if you can't write Haskell programs because you don't have any ideas.
02:45:12 <elliott> ideas for what
02:45:17 <CakeProphet> s/ideas/eyes/ :P
02:45:24 <elliott> anyway i don't want a reduceron well i mean i do but
02:45:28 <elliott> i mostly want to write my OWN SHIT YEAAAAAAAH
02:45:38 <elliott> dont tell anyone that im essentially talentless and unmotivated
02:46:00 <CakeProphet> hey you can write a wc shortcut faster than me.
02:46:20 <elliott> that's just because i have a functioning brain ;DDDDDD
02:47:13 <CakeProphet> hey, that's not nice.
02:47:31 <elliott> im sorry can yo ufind it in ur hert.... to forgive me.........
02:48:05 <CakeProphet> ..no? asshole.
02:50:59 <elliott> ok
02:51:59 * elliott cry
02:52:46 -!- elliott has set topic: hurt feelings on irc: the game | | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
02:52:47 <elliott> * Topic for #esoteric set by elliott!~elliott@unaffiliated/elliott at Tue Jun 7 19:36:45 2011
02:52:54 <elliott> wtf happened there
02:53:03 -!- elliott has set topic: hurt feelings on irc: the game | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
02:53:48 <CakeProphet> elliott: must have been a server glitch.
02:54:03 <elliott> or a bad copy-paste.
02:54:12 <CakeProphet> what? never.
02:54:42 <oerjan> always use fresh paste when copying
02:55:26 <CakeProphet> Always kill it before you yank it.
02:56:38 <elliott> gross gross
02:57:11 <CakeProphet> you know nothing of my work.
02:59:48 <CakeProphet> so I decided for my regexp language it would be a good idea to not make bare symbols means "match this character", which makes things a lot easier when trying to specify a complex language of any sort.
03:00:31 <CakeProphet> so you use quotes to match literal strings of text. *(capturename = "literalstring")
03:00:43 <CakeProphet> I also decided to make * and friends prefix, because that's how I roll.
03:01:20 <CakeProphet> also () doesn't implicitly capture to a numeric group because that's lame when you can just assign to variables.
03:02:23 -!- Lymia has quit (Ping timeout: 276 seconds).
03:04:04 -!- elliott has quit (Remote host closed the connection).
03:04:56 -!- elliott has joined.
03:06:16 <elliott> whos a...
03:06:29 <elliott> <cakeproophet> i dunno
03:06:50 <CakeProphet> ...whut?
03:06:53 <elliott> ar
03:07:21 <CakeProphet> should I attempt to call an ambulance?
03:08:33 <Sgeo> I'm going to take a Benadryl and a melatonin. If anything bad happens, blame my dad who claims he gives that to his patients all the time
03:08:48 <CakeProphet> absolutely nothing bad will happen.
03:09:27 <elliott> CakeProphet: wtf are you talking about
03:09:30 <elliott> thats a fatal dose
03:09:31 <elliott> jesus Sgeo
03:09:33 <elliott> get to a fucking hospital
03:09:37 <CakeProphet> you can take a whole bottle of melatonin tablets and be fine.
03:09:46 <CakeProphet> elliott: what the fuck were /you/ talking about?
03:10:09 <elliott> CakeProphet: JESUS CHRIST do you KNOW what benadryl and melatonin fucking do together?
03:10:16 <elliott> Sgeo trust me please jesus christ get to a hospital
03:10:22 <elliott> you could die
03:12:21 <elliott> its funny because sgeo is actually on his way right now
03:14:15 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
03:15:18 <Sgeo> If I were to say I took 8 pills of Tylenol, how would elliott actually attempt to tell me that that's bad, given that he pretends things like this are bad
03:15:27 <Sgeo> (this==benadryl + melatonin)
03:15:53 <zzo38> It is bad. It is as bad as anything else.
03:16:27 <CakeProphet> no... not really.
03:16:29 <elliott> Sgeo: guess what
03:16:39 <CakeProphet> there are definitely different levels of bad in relation to drugs.
03:16:40 <elliott> Sgeo: i am not here to tell you what cocktail of deadly drugs will or will not end your life
03:16:57 <CakeProphet> Sgeo: actually I believe you would also survive 8 tylenol as well.
03:17:03 <myndzi> is this a complicated troll or ignorance at work? i can't tell!
03:17:04 <elliott> im sorry ive not yet explained to you... but this is not...... an internet doctor..........
03:17:13 <elliott> myndzi: what, Sgeo?
03:17:17 <myndzi> i had to go check out the details of tylenol to be sure i wasn't misremembering
03:17:19 <myndzi> lol yes
03:17:27 <Sgeo> Erm, 16 tylenol then
03:17:31 <myndzi> "if i take a bunch of tylenol i bet that's not bad either!!!"
03:17:36 <elliott> myndzi: no he just doesn't have any kind of built-in reaction to making a fool of himself in public
03:17:43 <Sgeo> myndzi, I didn't say that
03:17:56 <elliott> it appears to be unrectifiable
03:18:10 <CakeProphet> most lethal concoctions of drugs will result in you vomiting and thus surviving. If you really want to kill yourself with drugs the best way is to also take an anti-vomiting agent (there is a fancy term for it but I can't remember the name)
03:18:23 <myndzi> lol
03:18:24 <elliott> CakeProphet: erm tylenol is paracetamol is it not?
03:18:32 <myndzi> or take one bullet to the head every hour until success
03:18:35 <Sgeo> I know Tylenol is dangerous, I'm just saying if I didn't, what would elliott say if I said I was taking it?
03:18:35 <elliott> so actually, a bunch of them is an excellent way to kill yourself
03:18:39 <CakeProphet> elliott: er, no.
03:18:48 <myndzi> Sgeo: probably that it was dangerous?
03:18:49 <CakeProphet> acetominophen
03:18:53 <CakeProphet> *aceta
03:18:55 <myndzi> same thing
03:18:58 <elliott> Sgeo: i think there would be more obvious signs that you were fucked
03:19:01 <elliott> CakeProphet: um that's another name for paracetamol
03:19:07 <CakeProphet> oh, well then yes. :)
03:19:13 <myndzi> every drug has TWO NAMES!
03:19:21 <elliott> CakeProphet: well that's actually quite a large cause of death
03:19:22 <Sgeo> myndzi, unless it has 3
03:19:23 <myndzi> because it's awesome that way
03:19:26 <elliott> it just takes ages
03:19:28 <elliott> and is really painful
03:19:34 <elliott> i don't think you just vomit it up
03:20:05 <myndzi> eh, i think most over the counter stuff that is dangerous includes things to make you puke if you take too much
03:20:09 <CakeProphet> well, okay, 16 tylenol MIGHT kill you. But most suicide attempts with medicine fail for that reason.
03:20:10 <myndzi> or something like that
03:20:26 <elliott> CakeProphet: right, but actually paracetamol is one of the exceptions, overdoses are _really_ bad
03:20:38 <elliott> CakeProphet: there's a bunch of stories of suicidal people taking a bunch of paracetamols as a cry for help
03:20:48 <elliott> CakeProphet: get woken up from unconsciousness hours later
03:20:55 <elliott> CakeProphet: told to call their family because they're going to die slowly and painfully
03:21:02 <CakeProphet> lovely.
03:21:05 <elliott> totally
03:21:33 <Sgeo> Maybe I just don't have a reaction to making a fool of myself in here?
03:21:34 <elliott> moral: always try to suicide with something harmless like ibuprofen
03:21:39 <CakeProphet> man, if I ever kill myself, I will know exactly what I'm doing. I have this shit down.
03:21:51 <elliott> (ok ibuprofen overdoses can do some bad shit but it's not going to be that bad)
03:21:52 <CakeProphet> I will most certainly die as a result.
03:22:01 <elliott> Sgeo: you mean we alone have to experience this shit??
03:22:02 <elliott> FUCK
03:22:06 <elliott> where did we go wrong
03:22:45 * CakeProphet makes a fool of himself on #esoteric quite often.
03:23:04 <CakeProphet> we are all fools.
03:23:08 <CakeProphet> except maybe oerjan.
03:23:16 <CakeProphet> he's got a ph.d and shit.
03:24:47 <coppro> elliott: itym N-(4-hydroxyphenyl)ethanamide
03:24:55 <pikhq_> CakeProphet: BTW, a normal dosage of Tylenol can actually cause liver failure in rare cases; it's *very* close to the lethal dose.
03:25:13 <elliott> coppro: go fuk urself
03:25:15 <pikhq_> Tylenol, BTW, is the leading cause of liver failure.
03:25:19 <CakeProphet> pikhq_: good to know.
03:25:21 <pikhq_> Not drinking. Tylenol.
03:25:26 <pikhq_> It is *fucking scary shit*.
03:26:01 <coppro> pikhq_: doesn't help that it's in a lot of non-tylenol drugs
03:28:16 <pikhq_> Yup.
03:30:42 <elliott> pikhq_ you also get a free Perfect Computer
03:30:48 <elliott> that makes my cost-free receiver list: oerjan, pikhq
03:31:25 * pikhq_ barfs some more at gnulib's usage
03:32:20 <elliott> "
03:32:21 <elliott> A notable feature of our new design is that each of its six
03:32:21 <elliott> semantic reduction rules is performed in a a single-clock cycle. All
03:32:21 <elliott> the necessary memory transactions required to perform a reduction
03:32:21 <elliott> are done in parallel. The Reduceron performs on average 0.55
03:32:23 <elliott> hand-reductions per clock-cycle. A hand-reduction is a reduction
03:32:25 <elliott> that programmer would perform in by-hand evaluation trace of a
03:32:27 <elliott> program; it includes function application and case analysis, but not
03:32:29 <elliott> machine-level reductions such as updating and unwinding."
03:32:56 <pikhq_> A function to *concatenate file names* ends up pulling in basically a reimplementation of stdio.h.
03:33:16 <pikhq_> That's it. I give up on GNU. It is the worst software.
03:33:26 <elliott> http://esolangs.org/wiki/Brainfuck#External_resources
03:33:27 <elliott> sigh
03:33:32 <coppro> pikhq_: serious question.
03:33:36 <elliott> pikhq_: oh man i totally want you to meet your few-years-ago self
03:33:41 <coppro> pikhq_: would you help write a libc?
03:34:01 * elliott predicts the answer: "yes if musl didn't already exist"
03:34:09 <pikhq_> coppro: No, but only because there is already a libc I find entirely satisfactory, modulo a small handful of missing bits.
03:34:13 <coppro> k
03:34:15 <elliott> i was riiiiiiight
03:34:17 <pikhq_> musl!
03:34:19 <elliott> coppro: why did you ask?
03:34:28 <coppro> elliott: I may be writing a libc
03:34:44 <elliott> coppro: for what purpose?
03:34:46 -!- augur has joined.
03:34:54 <coppro> elliott: LLVM project
03:35:02 <elliott> coppro: why are existing libc unsuitable?
03:35:04 <elliott> legit question
03:35:20 <pikhq_> If only PCC could build Busybox and Linux. Then, I could have a GNU-less system up and running easily.
03:35:32 <coppro> pikhq_: clang?
03:35:32 <pikhq_> Though, there is rather a lot of GTK software. Ah well.
03:35:35 <elliott> pikhq_: pcc kind of sucks though.
03:35:39 <elliott> also, you'd still need binutils
03:35:44 <coppro> elliott: musl is unsuitable due to GPL.
03:35:51 <pikhq_> coppro: musl is not GPL.
03:35:58 <elliott> coppro: musl is not GPL
03:36:04 <coppro> sorry, lpgl
03:36:04 <pikhq_> elliott: Clang needs a C++ library.
03:36:05 <coppro> *gpl
03:36:10 <coppro> pikhq_: it has one
03:36:11 <elliott> coppro: why does lgpl make it unsuitable?
03:36:12 <coppro> mostly complete
03:36:17 <coppro> elliott: LLVM project is BSD
03:36:20 <elliott> coppro: and?
03:36:28 <elliott> coppro: why does LLVM need to integrate musl?
03:36:29 <pikhq_> elliott: Would you like a list of C++ libraries that can bootstrap?
03:36:35 <elliott> pikhq_: what?
03:36:49 <elliott> coppro: I'm not sure how the license is a problem here, or anything
03:36:50 <pikhq_> elliott: GNU's. That's it. There are no other suitable free C++ libraries.
03:37:02 <pikhq_> Though LLVM's is at least getting there.
03:37:03 <elliott> pikhq_: it was coppro who mentioned that llvm has a c++ library, not me
03:37:05 <coppro> pikhq_: I believe libc++ can do so on Mac
03:37:06 <coppro> not sure though
03:37:15 <tswett> oklopol: hey, we agreed to meet up some time in 2014, didn't we? I think I lost the plan.
03:37:31 <pikhq_> Presently, though, you need GNU to get clang working.
03:37:37 <coppro> elliott: because the LLVM project can't have a libc that is LGPL, since it's a BSD-licensed project... what's so hard to understand?
03:37:42 <coppro> pikhq_: You need a C++ compiler
03:37:47 <CakeProphet> <a>**<i> := a*(ia); *. ** "|" #awww yeah
03:37:49 <elliott> coppro: Why does musl need to be "part" of the LLVM project?
03:37:49 <coppro> it's perfectly capable of compiling itself
03:37:51 <pikhq_> Hence why I care about PCC *at all*. PCC can bootstrap, very quickly.
03:37:52 <elliott> coppro: I do not understand.
03:38:01 <pikhq_> coppro: Yes, except for the need for a C++ library.
03:38:18 <coppro> elliott: k
03:38:24 <elliott> coppro: that was a request for clarification
03:38:35 <coppro> pikhq_: Suppose that it compiled and worked under libc++
03:38:43 <coppro> which is not that far off on Linux
03:38:44 <elliott> like... I don't expect the pcc team to suddenly announce "We're importing uClibc!"
03:38:54 <elliott> idgi, why does the fact that LGPL is not the same license as LLVM matter
03:38:59 <elliott> what's the goal
03:39:03 <pikhq_> coppro: If libc++ worked on musl, or could be ported easily, then I would be entirely satisfied with clang.
03:39:15 <pikhq_> Except for the simple fact that Linux doesn't build yet...
03:39:19 <coppro> pikhq_: It's supposed to be as C-library agnostic as possible
03:39:23 <coppro> pikhq_: Enough of Linux builds
03:39:27 <pikhq_> Which I think is the only major thing that *doesn't*.
03:39:28 <zzo38> While I have no complaint if you use BSD-license, I do not want to use BSD-license for my own projects. (Although I make some projects in the public domain, which is compatible with BSD-license so it isOK)
03:39:49 <pikhq_> coppro: So, in short, clang is still a WIP, but it is *very very close*.
03:39:55 <coppro> pikhq_: there are some issues with parts of the C++ library being unimplementable on top of a purely standard C library, though
03:40:01 <pikhq_> elliott: I suspect LLVM is attempting an embrace/extend/extinguish on GNU's build chain.
03:40:11 <pikhq_> coppro: Hence why I said "or could be ported easily".
03:40:19 <elliott> pikhq_: we will never know, since coppro has apparently decided he doesn't want to answer me any more
03:40:25 <coppro> pikhq_: is musl posix-compliant?
03:40:36 <pikhq_> coppro: Not quite, but nearly so.
03:40:40 <coppro> if so, the required facilities are logical extensions
03:40:42 <coppro> in locale
03:40:55 <zzo38> What is musl and clang and these things?
03:40:57 <coppro> in particular, if every locale-aware function has an _l version, I think it's good
03:41:25 <coppro> if musl already has _l functions, adding them to the others is a fairly straightforward transformation
03:41:35 <coppro> possibly even something clang could do automagically
03:41:50 <pikhq_> I'm pretty sure it does, though its locale support is somewhat anemic.
03:41:53 <elliott> coppro: are you actually going to answer my simple question...? i'm actually curious.
03:41:56 <pikhq_> It supports C.UTF-8 as its locale.
03:42:08 <coppro> pikhq_: not just "C"?
03:42:08 <pikhq_> Yeah, it has _l functions.
03:42:19 <pikhq_> coppro: Nope, it's very specifically UTF-8.
03:42:27 <pikhq_> Because ASCII is old and retarded.
03:42:30 <coppro> pikhq_: that's non-compliant :/
03:42:43 <pikhq_> And a very minor issue.
03:42:48 <coppro> or well it is if it doesn't support "C"
03:42:56 <elliott> coppro: are you /ignoring me
03:42:58 <coppro> if it just has "C.UTF-8" as the default, no issues
03:42:59 <coppro> elliott: no
03:43:17 <zzo38> ASCII is not retarded.
03:43:18 <coppro> elliott: I think e/e/e is a bad way of putting it, but is effectively the goal
03:43:31 <coppro> given that GNU has already actually e/e/ed the build chain
03:43:31 <elliott> coppro: why not just endorse musl?
03:43:35 <elliott> it is pointless to duplicate work
03:43:48 <coppro> elliott: because Apple, the main sponsors, want BSD
03:43:51 <elliott> and I don't think even Apple would object to an LGPL libc, though of course they won't likely be switching because they're BSD
03:44:15 <pikhq_> "The default locale is named C.UTF-8 and has all the required properties of the C or POSIX locale, plus UTF-8 semantics for high bytes. Collation is plain codepoint-order, and character classes are based on Unicode."
03:44:19 <pikhq_> Okay, there we go.
03:44:39 <coppro> ah ok
03:44:42 <coppro> that's fine then
03:44:47 <coppro> and not relevant to the C++ stuff
03:44:50 <elliott> coppro: well if the justification is just "Steve Jobs wants us to duplicate the large amount of work that goes into creating a conformant, fast, lightweight libc because he's being unreasonable about licenses", then who the hell would want to devote time to that??
03:45:24 <zzo38> But what if you are using a single-byte encoding and do not want UTF-8? Then there might be some problem. I think UTF-8 already has the feature that sorting using normal strcmp can still work with Unicode
03:45:33 <coppro> elliott: Well they have their own libc so it's actually irrelevant to them directly
03:45:38 <pikhq_> Seems that what it's missing is some C99 math functions, *perhaps* a few wide character interfaces, POSIX priority scheduling options, and stuff added in POSIX 2008.
03:45:45 <coppro> crud
03:45:48 <coppro> locale_t was 2008
03:45:59 <elliott> pikhq_: musl has some oh-eight stuff
03:46:05 <pikhq_> coppro: What header would it be in? I can check.
03:46:05 <elliott> coppro: precisely... so I don't see the need to do anything more than endorse musl.
03:46:12 <elliott> coppro: it just sounds like completely duplicated work.
03:46:13 <coppro> pikhq_: locale.h; possibly xlocale.h
03:46:19 <coppro> elliott: the simplest answer is that LLVM wants a complete toolchain. LLVM is BSD-license
03:46:31 <coppro> it would make no sense to add some LGPL stuff to it
03:46:34 <pikhq_> It has locale_t.
03:46:35 <elliott> coppro: ok, so "we're being pointlessly anal about licenses, and we want to NIH things"
03:46:39 <coppro> of course it's goddamn duplicated work
03:46:42 <coppro> that's why GPL sucks
03:46:48 <elliott> coppro: IT'S LGPL
03:46:55 <coppro> elliott: s/GPL/copyleft/
03:46:56 <coppro> sorry
03:46:57 <elliott> GPL is unacceptable for licenses
03:46:58 <elliott> LGPL isn't
03:47:11 <elliott> coppro: LGPL isn't copyleft in the "bad" sense because _it doesn't affect linkers_
03:47:22 <coppro> elliott: it's not absurd copyleft
03:47:34 <coppro> but it makes no sense from the LLVM project's perspective either
03:47:41 <elliott> come on, it is absolutely ridiculous for LLVM to want to duplicate a massive amount of effort because "we want a COMPLETE toolchain (for no reason) under this SPECIFIC license (because of our egos)"
03:47:43 <coppro> suppose someone is considering using LLVM
03:47:49 <elliott> pointless waste of time
03:47:49 <coppro> but then they see that it's LGPL
03:47:53 <coppro> and they don't do LPGL code
03:47:56 <coppro> well shit
03:48:01 <pikhq_> Anyways, musl is a libc I'm actually happy with on a technical basis.
03:48:03 <elliott> wow you're... actually making less than 0 sense.
03:48:04 <coppro> lots of corporate users won't touch any GPL
03:48:17 <elliott> coppro: lots of corporate users aren't exactly going to switch out their libc
03:48:18 <coppro> elliott: you have not worked in the software industry
03:48:18 <pikhq_> I *actually understand how the damned thing works*.
03:48:28 <coppro> elliott: you'd be surprsied
03:48:30 <coppro> *surprised
03:48:57 <pikhq_> elliott: The corporate world runs around Windows. Each compiler has its own libc there. Any further questions?
03:49:00 <elliott> coppro: ok... so "we're going to duplicate a massive amount of work for (a) our egos (b) so that a few corporate idiots will be happy"? Is anyone not using LLVM right now because it doesn't have its own libc?
03:49:14 <elliott> "Oh, I was going to use LLVM, but it doesn't have a graphical display server? Skip it."
03:49:19 <coppro> elliott: Not AFAIK, but the project would like to provide that and I agree with that idea
03:49:28 <coppro> elliott: also, duplicated work is not all bad in this instance
03:49:39 <elliott> I still haven't heard a single good reason for llvm to provide a libc
03:49:40 <coppro> if there are more viable options, e/e/e is less likely to happen
03:49:46 <pikhq_> Anyways, I'm certainly uninterested in writing a libc when there's a perfectly *great* one already around.
03:49:49 <coppro> elliott: because why not?
03:49:52 <coppro> pikhq_: k
03:50:01 <elliott> coppro: because why not?
03:50:08 <elliott> by that logic LLVM should provide a complete fucking OS and application set
03:50:26 <coppro> elliott: why does LLVM provide a C compiler?
03:50:33 <coppro> clearly that's not part of the project
03:50:36 <elliott> coppro: because it's a compiler project.
03:50:39 <coppro> no
03:50:42 <coppro> it's a compiler backend project
03:50:52 <elliott> it obviously isn't
03:51:05 <elliott> whatever, i'm done with this conversation, it has reached heights of stupidity I thought impossible
03:51:09 <coppro> k
03:51:42 <coppro> pikhq_: please go extend every locale aware function to have one with an _l suffix that takes a locale_t
03:51:49 <coppro> (if it already has _s, make it _sl)
03:52:18 <pikhq_> What are the locale-aware functions, anyways?
03:52:37 <coppro> any function that is defined in the C spec to alter its behavior when the locale changes
03:53:06 <zzo38> If LLVM becomes with many good things than GNU, then maybe it will be good thing idea to use.
03:53:09 <coppro> there is going to be a paper to this effect in front of the C committee at some unspecified time in the future
03:54:37 <pikhq_> zzo38: Already, it's generally got a better toolchain than GNU...
03:54:48 <pikhq_> coppro: What, incidentally, are the chances of binutils being replaced?
03:55:09 <coppro> pikhq_: high
03:55:22 <elliott> coppro: to what effect?
03:55:24 <coppro> pikhq_: there's already an integrated assembler on some platforms
03:55:42 <zzo38> pikhq_: Does it optimize? There are some features of GNU that should be used, such as, being able to declare array with [0] is good thing I think
03:55:47 <coppro> elliott: 23:51 < coppro> pikhq_: please go extend every locale aware function to have one with an _l suffix that takes a locale_t
03:55:53 <elliott> oh
03:56:09 <coppro> zzo38: The optimizer is not quite as good as GCC's yet, but it has other advantages
03:56:16 <coppro> like having a compiler that doesn't suck
03:56:19 <elliott> coppro: you know, it might be worth contacting eta labs about relicensing and integrating musl.
03:56:36 <elliott> maybe unlikely, but a better use of time than writing yet another libc when a very good one has just recently been created.
03:56:59 <coppro> pikhq_: not sure what will happen to the ELF linker
03:57:20 <coppro> pikhq_: in theory it's unnecessary as you could create a platform where all libraries are linked in bitcode form
03:57:35 <pikhq_> elliott: At present, most of the locale-aware functions only look at the globally stored locale. That is, a global variable that needs to have a lock over it in a large number of functions.
03:57:39 -!- Sgeo has quit (Ping timeout: 255 seconds).
03:57:54 <zzo38> coppro: Yes, as long as they do not change the license so that it is no longer acceptable, then it should be OK.
03:58:02 <pikhq_> coppro: True, there is the llvm-ld.
03:58:29 <coppro> more importantly, C++ needs thread-safe access to those functions in specific locales and cannot do so because it can't lock them unless it just pauses every other thread
03:58:51 <pikhq_> Also, the optimizer may not be *quite* as good as GCC, but it is *definitely* good enough for general use.
03:58:55 <coppro> yeah
03:59:09 <pikhq_> Actually, I'd even call pcc's good enough for general use, and that's not as good as LLVM.
03:59:18 <zzo38> GCC is very slow. Is LLVM faster?
03:59:42 <zzo38> Is it less messy than GNU programming?
03:59:42 <pikhq_> zzo38: Yes, clang's something like 3 times faster.
03:59:55 <pikhq_> I actually can understand LLVM source code.
04:00:10 <CakeProphet> can't wait for Diablo 3.
04:00:18 <CakeProphet> it must surely be as epic as Starcraft 2.
04:00:20 <pikhq_> It's not exactly elegant, but it's actually readable by humans.
04:00:31 <zzo38> pikhq_: Then I suppose those things do help.
04:01:44 <Patashu> declare an array with [0]?
04:01:48 <Patashu> why would you ever do that
04:02:20 <CakeProphet> obfuscation of a pointer, perhaps.
04:02:48 <pikhq_> Patashu: It's a GNUism for indicating that at the end of a structure is a dynamically allocated array.
04:02:58 <Patashu> oh? hmm, okay
04:03:16 <pikhq_> There's a different means of doing it in C99, and so [0] is a deprecated GNU extension.
04:03:39 <coppro> LLVM uses that pattern in C++ without a standard syntax
04:05:49 <pikhq_> Oh, wow. Apparently current SVN checkouts of clang builds pretty much all of Linux.
04:06:16 <pikhq_> And the integrated assembler works, making it so that the only GNU thing needed ATM to build Linux is GNU ld.
04:06:30 -!- Lymia has joined.
04:07:21 <coppro> yeah
04:07:31 <coppro> I wasn't sure if the integrated assembler was that mature
04:07:33 <coppro> but apparently it is
04:08:38 <elliott> it'd be cool to have a fully clang/musl system
04:09:06 <pikhq_> Surprisingly, it's not that far off.
04:09:14 * elliott plays around with this modular synthesiser
04:09:23 <pikhq_> I think all that's needed is LLVM's libc++...
04:10:18 <coppro> pikhq_: get on it then
04:10:33 <elliott> pikhq_: C++ is irrelevant
04:10:39 <elliott> at least for a basic Linux system.
04:10:52 <pikhq_> elliott: clang itself needs C++, though.
04:11:07 <elliott> oh right
04:11:13 <elliott> ugh
04:11:16 <elliott> someone should fix that :p
04:20:30 <zzo38> I think using [0] makes more sense than the C99 way, actually.
04:20:57 <elliott> this is fun
04:21:02 <elliott> zzo38: seriously?
04:21:04 <elliott> [0] makes more sense than []?
04:22:44 <zzo38> elliott: Yes. Since, in a structure, the size of the structure when measuring, is only the part before that array. So, you put [0] to mean its sizeof measures 0 and when added to everything else, you can then add to sizeof, the number of elements and malloc, you can do it. And it should be allowed [0] anywhere in a structure, not necessarily at the end (but most commonly use at the end).
04:22:51 <pikhq_> Wow. GCC can be bootstrapped with a non-GCC compiler.
04:22:54 <pikhq_> Clang.
04:23:09 <zzo38> At least to me, it makes mathematical sense.
04:23:40 <coppro> pikhq_: EDG's been doing it for years, but it's proprietary
04:24:17 <pikhq_> It's kinda sad that it's notable when a compiler builds GCC.
04:24:35 <pikhq_> It seems like the sort of package you'd want to be able to build on anything that's no completely crazy.
04:24:38 <pikhq_> s/no/not/
04:24:47 -!- oerjan has quit (Quit: Good night).
04:24:54 <coppro> no, that would make it too easy for people to infect it with proprietary software
04:24:56 <zzo38> In TeXnicard, I have used a [0] array in a union.
04:25:04 <coppro> or use it on systems where proprietary software is known to lurk
04:25:07 <coppro> zzo38: you're a bad person
04:25:42 <pikhq_> coppro: ... Which you generally can do, because GCC until very recently has been effectively the only compiler not from Microsoft.
04:25:51 <zzo38> coppro: Why do you think I am a bad person?
04:26:12 <coppro> pikhq_: not at all true
04:26:29 <pikhq_> (I'm discounting the proprietary UNIX vendor's C implementations, because, well, you can discount everything else from them.)
04:26:44 <coppro> pikhq_: are you familiar with EDG?
04:26:51 <pikhq_> Oh, right, EDG.
04:27:04 <zzo38> It also uses sizeof(struct{...})
04:27:21 <pikhq_> zzo38: That's entirely valid.
04:27:27 <coppro> if a little evil
04:27:30 <pikhq_> A bit weird, but entirely valid.
04:27:43 <pikhq_> If a C compiler doesn't handle that, it's a pretty big bug.
04:27:48 <coppro> yeah
04:28:06 <coppro> hrmhrmhrm
04:28:37 <zzo38> pikhq_: Yes I know that, and I have it being used in some macros for allocating nodes.
04:28:52 <coppro> goddamn it
04:29:19 <zzo38> Why is it "a little evil"?
04:29:27 <pikhq_> Anyways, it seems to me that you'd really *want* for a C compiler to be able to at least build on any ISO C89 platform.
04:29:36 <coppro> pikhq_: C99
04:29:41 <coppro> let's not bury ourselves in the past
04:29:55 <pikhq_> If not anything supporting K&R...
04:30:11 <coppro> god no
04:30:20 <pikhq_> coppro: The idea being to allow you to get a sane C environment up and running on anything.
04:30:22 <CakeProphet> So, is switching everything over to prefix/infix instead of the traditional prefix/postfix for regular expressions going to freak anyone out?
04:30:27 <zzo38> If you use [0] to allocate an array then the compiler should just do the same things as if a positive number is in there, it would make most sense, at least to me.
04:30:27 <pikhq_> Rather than being stuck with retardedly old shit.
04:30:31 <CakeProphet> er *infix/postfix
04:31:09 <pikhq_> coppro: I don't care if you pull this off by just building a retardly simple compiler to build the rest of the thing, BTW.
04:31:22 <pikhq_> (for an example of something "retardly simple", see TCC)
04:36:24 * elliott wonders if SmallBug will freakout on us for being so ~rude~
04:37:14 <pikhq_> Incidentally, it'd be *really* awesome to have a full, tiny UNIX building with TCC. :P
04:37:42 <pikhq_> Not as a serious thing, but y'know, just as a toy. An OS with every bit understandable...
04:37:45 <elliott> pikhq_: well it can build a modified kernel...
04:37:51 <elliott> linux that is
04:37:51 <pikhq_> ... I'm describing Minix, aren't I.
04:37:57 <pikhq_> elliott: That was 2.4.
04:38:41 <elliott> pikhq_: so? :P
04:38:55 <elliott> also, minix is a microkernel, which is probably not an aid to having a really small understandable system
04:39:01 <zzo38> No! You have to make a book. Such as, write the operating system with CWEB. And then sell the book with the DVD in the back cover.
04:39:08 <pikhq_> elliott: Minix is entirely intended as a small, understandable system.
04:39:26 <pikhq_> It's also a textbook.
04:39:38 <elliott> pikhq_: yes but that doesn't mean it succeeds.
04:39:40 <elliott> zzo38: -_-
04:40:25 <zzo38> elliott: _-_
04:40:31 <pikhq_> elliott: Your criticism of microkernels probably comes from how fucked up HURD is...
04:41:07 <elliott> pikhq_: No, I'm just saying that if you want a self-contained, tiny system, a microkernel is probably an impediment to that
04:41:15 <elliott> It's abstraction designed to make something easy that you don't want to do (extend the system)
04:41:22 <pikhq_> Aaah.
04:43:47 <CakeProphet> Screw microkernals, I run on this: http://www0.us.ioccc.org/2004/gavin.c
04:44:18 <pikhq_> I specified "UNIX" for a reason. :P
04:44:33 <elliott> it would be fun to golf a unix kernel (not golf as in raw bytes or lines of code, but)
04:44:55 <elliott> unfortunately, question is, define Unix
04:44:59 <elliott> something that can run bash?
04:45:12 <elliott> that means running a pretty GNU-compatible libc
04:45:18 <elliott> pdclib won't cut it
04:45:21 <elliott> (probably)
04:45:37 <elliott> tcc implies ELF
04:45:47 <elliott> but doesn't tcc also depend on linux somehow? dunno
04:45:50 <CakeProphet> implies implies implies
04:46:00 <elliott> (are the ELF headers linux-only?)
04:46:39 <pikhq_> The ELF headers aren't Linux-only; they *should* exist in the same place on all ELF platforms.
04:47:00 <elliott> writing a filesystem would be fun
04:47:12 <pikhq_> And there's rather a lot of ELF platforms...
04:47:48 <elliott> even though I'm not quite sure how filesystems work :(
04:48:00 <pikhq_> Such as "every non-Microsoft console since 2000". :P
04:48:26 <pikhq_> elliott: Filesystems are really, truly nothing special.
04:48:37 <elliott> i know
04:48:45 <elliott> but like HOW DO YOU APPEND A DIRECTORY ENTRY TO A DIRECTORY :D
04:48:49 <elliott> HOW DOES SHOT COMPUTER :(
04:48:54 <pikhq_> Just one of a handful of fairly mundane data structures on disc.
04:49:04 <elliott> hmm, I suppose you could just have a pointer at the end of every directory entry
04:49:06 <elliott> and do it linked-list style
04:49:09 <zzo38> That IOCCC operating system is not even complete
04:49:10 <elliott> and just allocate randomly all over the disk
04:49:20 <elliott> but like do you need a freelist of blocks?
04:49:39 <pikhq_> elliott: You do also need to implement, basically, a malloc.
04:50:29 <elliott> diskmalloc :D
04:52:05 <augur> does anyone happen to know what the brightness-equivalent of resolution is in a camera?
04:53:20 <augur> like what the term for that is?
04:53:42 <pikhq_> I'm going with "color space".
04:54:12 <Patashu> as in, how much brightness you can fit in?
04:54:15 <Patashu> sounds like a property of color space to me
04:54:30 <augur> no no, i mean how many distinct brightness levels you have
04:55:01 <Patashu> it may as well be a property of the color space/color depth
04:55:03 <augur> greyscale is still a monochromatic colorspace but there are many kinds of greyscale depending on how finely you cut the greyness
04:55:10 <augur> color depth, maybe thats it
04:55:20 <augur> yeah color depth
04:55:21 <augur> there you go
04:55:54 <augur> thank you, Patashu!
04:56:49 <elliott> Patashu: you need to submit some awesome bf joust contestants to revive the sport again :P
04:56:59 <Patashu> hah
05:12:16 <CakeProphet> so what if my bfjoust program is really long?
05:12:20 <elliott> ?
05:12:23 <CakeProphet> how do I submit it?
05:12:31 <elliott> [exclamation mark]bfjoust <url>
05:12:34 <elliott> most of the current programs are really long
05:12:59 <elliott> http://codu.org/eso/bfjoust/in_egobot/?C=S;O=D
05:13:04 <elliott> largest program is 200K
05:13:32 <elliott> space_elevator kicked off the recent "zomg huge programs" streak though, at 38K
05:13:41 <elliott> those are machine-generated, I think
05:13:44 <elliott> anticipation is
05:13:50 <elliott> the furry-furry programs are, although actually
05:14:01 <elliott> their K ratings are wrong because they include the base-sixtyfour encoding of the perl program that generated them
05:14:10 <elliott> definer2 is generated too
05:14:16 <elliott> (all these meaning partially generated, ofc)
05:14:23 <elliott> dunno about defend9.75 but I think so
05:14:32 <elliott> the waterfall programs were
05:14:33 <elliott> yeah
05:14:35 <elliott> slowpoke too I think
05:14:45 <elliott> we really need quintopia's scoring system though.
05:14:54 <elliott> CakeProphet: btw http://codu.org/eso/bfjoust/in_egobot/report.txt
05:23:43 <CakeProphet> I don't really have a place I can host my program.
05:24:01 <elliott> um sprunge.us
05:24:28 <Patashu> has anyone attempted to genetically create bfjoust programs?
05:25:02 <elliott> yes.
05:26:08 <CakeProphet> my bf joust program is the best of all
05:26:24 <CakeProphet> an efficient killer
05:26:41 <elliott> lol
05:26:45 <elliott> youre about to submit a shitty program aren't you
05:26:49 <CakeProphet> never.
05:26:56 <elliott> oh so you are concealing it from us
05:27:03 <CakeProphet> unpossible.
05:27:43 <CakeProphet> so uh, what's the best way to git from a git.
05:27:47 * CakeProphet has never used git before.
05:29:19 <elliott> what
05:29:26 <elliott> how's git relevant to bf joust
05:29:43 <CakeProphet> don't worry about it.
05:30:14 <CakeProphet> so uh, 5.2 is a good score right?
05:30:22 <elliott> CakeProphet: no. btw please submit things in-channel
05:30:31 <CakeProphet> nope. :)
05:30:34 <elliott> it makes us antsy if the board changes without us knowing :<
05:30:40 <CakeProphet> you will laugh at how excellent my program is
05:30:50 <Patashu> why is rushpolarity STILL so high up
05:30:51 <Patashu> it's so ooooold
05:30:55 <elliott> CakeProphet: please, it's a matter of common courtesy
05:31:20 <elliott> i could set up a bot to constantly refresh the hg log, but it'd be easier just to submit in channel.
05:31:26 <elliott> wtf is vlad even supposed to be
05:31:54 <CakeProphet> the impaler. :)
05:31:57 <elliott> Patashu: it's really successful for some reason
05:32:01 <elliott> CakeProphet: i mean the strategy.
05:32:12 <CakeProphet> oh, well http://sprunge.us/LPcT
05:32:16 <CakeProphet> as you can see, it's genius.
05:32:19 <elliott> yes i can see it.
05:32:23 <Patashu> augh
05:32:26 <elliott> i'm asking how you made it, apart from vomiting on the keyboard
05:32:28 <elliott> anyway, congratulations, you're at position 48
05:33:16 <Patashu> btw you don't have to paste it
05:33:16 <Patashu> http://codu.org/eso/bfjoust/in_egobot/
05:33:18 <Patashu> just find it in the list
05:33:24 <Patashu> oh nvm it's not in the list
05:33:29 <Patashu> probably because it didn't beat anyone
05:33:36 <elliott> it did, but it was on the bottom
05:33:37 <elliott> so it got trimmed
05:34:00 <Patashu> yeah what I meant
05:34:03 <elliott> CakeProphet: but seriously, it's vastly preferred if you submit programs in-channel. especially since the activity tends to generate interest in bf joust.
05:34:21 <CakeProphet> elliott: well the idea was to go forward the minimum of 10 spaces, fill it with stuff because presumably that will slow someone down, and then proceed to blindly wipe everything in front of it to 0.
05:34:22 <Patashu> lol at this
05:34:23 <Patashu> CakeProphet_vlad.bfjoust vs Gregor_return_of_ehird_defend8mwahahaha.bfjoust
05:34:24 <Patashu> <<><<<><><><><><><><> <><<<<><><><><><><><> 6
05:34:24 <Patashu> Gregor_return_of_ehird_defend8mwahahaha.bfjoust wins.
05:34:29 <Patashu> some nice parity going on there
05:34:37 <elliott> CakeProphet: let's put it this way
05:34:45 <elliott> CakeProphet: any attack program will have obliterated you before you even get to their flag
05:34:51 <elliott> because you waste endless cycles putting dummy values up
05:34:57 <elliott> also, you don't seem to be aware of the various abbreviations that exist.
05:35:04 <elliott> Patashu: sieved up all the kettles
05:35:07 <CakeProphet> nope, just looked at the wiki article
05:35:14 <CakeProphet> the top part
05:35:15 <CakeProphet> :)
05:35:21 <elliott> the wiki article sucks
05:35:27 <elliott> because quint rewrote it making it unreadable
05:35:37 <Patashu> look on the bright side
05:35:38 <elliott> read http://esolangs.org/w/index.php?title=BF_Joust&oldid=21108 instead
05:35:40 <CakeProphet> ah I see the * syntax
05:35:40 <Patashu> you beat anticipation.bfjoust
05:35:41 <elliott> :p
05:36:02 <elliott> Patashu: well it's a sufficiently stupid program that "advanced" defenders and the like might get confused :P
05:36:09 <Patashu> hah, yes
05:36:23 <CakeProphet> yes, I was hoping that I would be jousting against very complicated defensive things.
05:36:43 <elliott> yeeeeeeeeees
05:36:47 <elliott> well there's always a mix on the hill
05:36:51 <Patashu> well, you even lost to my not very complicated things
05:36:51 <Patashu> soooo
05:36:58 <elliott> because whenever the hill is full of defensive programs, attack programs do really well
05:37:00 <elliott> and vice versa
05:37:06 <elliott> so basically the hill is always quite balanced.
05:37:41 <CakeProphet> I don't really see a sane way to encode any kind of logic when the other program can mess with my variables.
05:37:59 <elliott> CakeProphet: that is because you are not an experienced jouster :)
05:38:19 <Gregor> ... does x86_64 have delay-slot semantics???
05:38:25 <elliott> basically: set up large decoys before cells if you /really/ need scratch space. but generally, you don't want to store any values
05:38:31 <elliott> use [] as a conditional of sorts
05:38:38 <elliott> set up tripwires and use them to work out what the program is doing
05:38:46 <elliott> CakeProphet: read http://esolangs.org/wiki/BF_Joust_strategies
05:38:47 <elliott> it's there for a reason
05:38:54 <Patashu> just read what elliott posted
05:38:56 <elliott> it's practically How to Write Joust Programs: The Manual.
05:38:56 <Patashu> it is enlightenin
05:38:57 <elliott> yeah
05:38:59 <Patashu> soul transcending even
05:39:47 <elliott> CakeProphet: basically it goes through a bunch of simple to advanced attack and defence techniques, then covers all the number-one programs from the start of egobot's bf joust tournament setup to the present day, with explanations of the most interesting programs, and traces and animations in the online egojsout tool.
05:43:10 <CakeProphet> elliott: I think I would probably go with a defensive strategy. or the poke.
05:43:39 <Gregor> So, nobody knows if x86_64 has delay-slot semantics :P
05:43:47 <Patashu> I don't have a clue what that is
05:43:56 <elliott> youre a delay slot
05:44:02 <elliott> slottiest delay slot in all the galaxy
05:44:09 <Gregor> To put it differently, why did GCC generate this code:
05:44:10 <Gregor> call*368(%rdx)
05:44:10 <Gregor> movqGGGGC_fytheConstBank(%rip), %rdx
05:44:18 <elliott> wow are you still working on fythe stuff?
05:44:23 <Gregor> Uhh, yes?
05:44:28 <Gregor> Given that GGGGC_fytheConstBank[368] is my function.
05:44:33 <elliott> sorry, just before my fythe commits there had been none for like five thousand years :D
05:44:35 <elliott> I'm planning to keep working on bignums soon btw
05:44:48 <Gregor> elliott: You should look at GGGGC, not Fythe :P
05:45:03 <Gregor> I got distracted building a friggin' amazing general-purpose GC.
05:45:27 <elliott> Gregor: Does it have finalisers yet.
05:45:32 * elliott prepares the "WHOOPS you suck".
05:46:20 <CakeProphet> a defensive poke vibrator
05:47:10 <elliott> Gregor: I'M GOING TO DROP THE WHOOPS YOU SUCK IF YOU DON'T REPLY SOON
05:49:22 <elliott> BTW, is there a reason you use T-Rex instead of RE2? The latter is better-maintained and I would guess faster (though I don't have any benchmarks). OK, RE2 doesn't do backreferences, but it doesn't look like T-Rex does either.
05:49:44 <elliott> And both are C++, although T-Rex seems to have a few C wrappers that you'd have to whip up by hand with RE2.
05:49:58 <elliott> (Also RE2 handles Unicode; dunno about T-Rex.)
05:50:34 <Gregor> elliott: It doesn't have finalizers, I've been working on threadsafety.
05:50:37 <Gregor> And T-Rex is in C.
05:50:47 <Gregor> Also I don't use it unless PCRE is unavailable :P
05:51:06 <elliott> http://codu.org/projects/fythe/hg/index.cgi/rev/8d99109d97d7 ;; Oh, it just has a C++ wrapper.
05:51:11 <Gregor> And even then you have to say "No seriously I want this bullshit"
05:51:16 <elliott> Gregor: Doesn't T-Rex support different things to PCRE though?
05:51:22 <elliott> 'cuz, like, that's totally stupid if so :P
05:51:37 <Gregor> So does JS regex; I haven't defined what subset of regex Fythe is supposed to support yet.
05:51:39 <elliott> (Personally I'd advocate for always using RE2 since it'll make parsing stupidly fast, but then I'm me :P)
05:51:53 <elliott> (Also because using backreferences in regexp literals in a parser is a sign of insanity.)
05:51:58 <elliott> (And not the good kind ether.)
05:52:00 <elliott> [asterisk]either
05:53:36 <elliott> Sweet logic from Elliottcorp: "I sure am really fucking ill. And getting to sleep is a royal horrible pain when I'm feeling like this! OBVIOUS SOLUTION: DON'T SLEEP".
05:58:04 <pikhq_> Gregor: Hmm. I bet Fythe works on PCC and musl.
05:58:19 <pikhq_> Because you don't suck. :P
05:58:50 <elliott> Implying Gregor isn't the worst person.
05:59:51 <pikhq_> Oh, poo, it depends on GMP. I will have to build that.
06:01:14 <elliott> pikhq_: YOU CAN THANK ME FOR THAT ;D
06:01:28 <elliott> Note that arithmetic is what you might call broken right now because I'm a lazy ass wrt the bignum support.
06:02:21 <CakeProphet> elliott: I like space elevator. :)
06:03:47 <elliott> spelevator
06:04:54 <pikhq_> Come on, libtool, if you're going to get your nasty teeth in everything couldn't you at *least* have the decency to check if shared libraries can be built?
06:07:15 -!- pingveno has quit (Ping timeout: 246 seconds).
06:09:06 <comex> i should try BF Joust :)
06:09:21 -!- pingveno has joined.
06:11:47 <CakeProphet> alright, time to try a better program.
06:13:13 <elliott> comex: good luck :P
06:13:22 <elliott> comex: the current hill is _extremely_ competitive.
06:13:35 <elliott> the top program was considered game-breaking by its author for a while
06:13:54 <Patashu> how can a bfjoust program be 'game breaking'?
06:14:41 <elliott> Patashu: because the only programs that beat it might do terribly against all other types of opponents, etc.
06:14:55 <Patashu> aah
06:16:16 <myndzi> wow, there's a new king
06:16:27 <myndzi> i didn't think bf joust saw much activity most times ;)
06:16:37 <myndzi> slowrush has really sorta stood the test of time it seems, for which i am glad
06:16:47 <myndzi> 'cause damn i don't want to write anything all complicated ;p
06:16:59 <elliott> myndzi: it had a huge burst of activity earlier this year
06:17:15 <elliott> and simple programs can still do very well, it's just that they tend to turn into complicated programs very quickly
06:17:17 <elliott> just ask Gregor :P
06:18:44 <myndzi> har
06:18:48 <myndzi> i was here during that time i think
06:28:33 <CakeProphet> elliott: so, ] doesn't remember the starting point of the while right?
06:28:43 <elliott> Uh, what?
06:28:45 <CakeProphet> starting tape element that is.
06:28:55 <CakeProphet> it's only interested in whether or not the current cell is zero.
06:28:57 <Patashu> it looks at whatever tape element is under your guy
06:29:03 <CakeProphet> right.
06:29:07 <CakeProphet> just checking. :P
06:29:12 <Patashu> if you want to check the starting point use some <>s
06:29:21 <Patashu> it's more flexible this way
06:30:00 <CakeProphet> not if I go back more spaces on each loop. :P
06:30:05 <CakeProphet> *want to go
06:30:28 <Patashu> aah
06:30:37 <Patashu> the tape length is guaranteed to be within a finite range, so...
06:30:44 <Patashu> you could write a program to generate whatever algorithm you're after
06:30:48 <Patashu> program can be as big as you want
06:30:50 <elliott> yeah
06:30:54 <elliott> that's the standard practice nowadays
06:31:00 <elliott> try to detect tape length and what the program's doing, react accordingly
06:31:08 <elliott> with big partially-generated programs
06:31:20 <elliott> (with a generator tailored to that one algorithm, that is)
06:31:33 <elliott> CakeProphet: You could look at some of Gregor's generated programs, they include the Perl code used to generate them
06:31:42 <elliott> (as base-sixtyfour; running them as Perl produces the Perl code)
06:31:48 <elliott> (this is because BF Joust doesn't have full comments)
06:32:00 <CakeProphet> how on earth can you deduce the board length
06:32:21 <elliott> Didn't you READ space_elevator? :P
06:32:39 <elliott> But basically, number of cycles passed + where the opponent has tripwires + where the opponent's flag is + a bunch of other stuff = deduction.
06:33:19 <Patashu> I wonder how randomly_arbitrarily_large bfjoust would fare
06:33:26 <elliott> Patashu: wat? :P
06:34:13 <Patashu> as opposed to randomly_fairly_small bfjoust which is what we have
06:34:37 <elliott> Hey, Homestuck update, finally.
06:34:45 <elliott> Patashu: oh
06:34:48 <elliott> Patashu: the original tapes were very long
06:34:49 <elliott> tl;dr it sucked
06:34:51 <Patashu> yeah
06:34:54 <Patashu> figured
06:36:01 <elliott> "Let's pull back from this ever narrowing dark pocket. All this uncertainty is wearing thinner than the only pair of pants in an immortal's wardrobe."
06:37:53 <elliott> oh come the fuck ON Scratch did you just pull the "ONLY KIDDING THAT WASN'T THE ALPHA TIMELINE" shit
06:38:29 <Patashu> huh, so that's quarters' ability
06:38:53 <elliott> wait, what was it? I must have missed it
06:39:08 <Patashu> you've noticed the top banners change right
06:39:13 <elliott> I was too busy fantasising about making Scratch speak in sentences of five words of four syllables each at maximum
06:39:15 <elliott> Patashu: yes of course :P
06:39:20 <Patashu> give them anotherl ook
06:39:22 <elliott> oh wait
06:39:25 <elliott> disappearing into the quarter?
06:39:32 <Patashu> it's some kind of pokeball
06:39:34 <Patashu> apparently
06:39:37 <elliott> right
06:39:42 <elliott> the gif loaded wrongly for me
06:40:14 <elliott> But seriously what a cheap recovery.
06:42:38 <CakeProphet> elliott: I'm going to do this one entirely by hand over the course of several days.
06:42:54 <elliott> CakeProphet: You want to be testing it really regularly :P
06:42:57 <elliott> Or you'll just end up with a shitty program.
06:43:01 <elliott> Use egojsout extensively, it is REALLY useful.
06:43:07 <elliott> Oh, and SEND THE COMMANDS IN-CHANNEL >:|
06:44:03 <elliott> Patashu: (...but seriously how come all the deceased members of the Felt are back to life. Spades has all his injuries, so this isn't pre-intermission.)
06:44:07 <elliott> (Maybe he's travelled back in time.)
06:44:19 <Patashu> I'm not sure, I hadn't even thought of that
06:44:27 <Patashu> I just assumed pre-intermission
06:44:56 <elliott> Patashu: The banner on 5738 makes that even less likely X-D
06:45:20 -!- Deewiant has quit (Ping timeout: 276 seconds).
06:45:29 -!- Deewiant has joined.
06:45:40 <Patashu> hah
06:45:53 <Patashu> but...jack noir = spades slick right? so he can't die. right??
06:50:21 <CakeProphet> elliott: egojsout, what is that?
06:50:33 <elliott> http://codu.org/eso/bfjoust/egojsout/index.php
06:50:34 <CakeProphet> I am too lazy to read things before I plunge into something, obviously.
06:50:37 <elliott> as seen on the wiki
06:50:46 <elliott> CakeProphet: you should _really_ read the entire strategies page.
06:50:50 <elliott> or you _will_ get beaten mercilessly
06:51:00 <elliott> basically egojsout is an interactive warrior development/debugging tool
06:51:13 <elliott> it lets you pit any two warriors against each other, see a full trace of the execution, an animated version so you can see how the programs are operating...
06:51:25 <elliott> it's basically vital for developing warriors.
06:51:33 <elliott> see all the "Trace and animation" links on http://esolangs.org/wiki/BF_Joust_strategies
07:06:04 <CakeProphet> elliott: who is left in egojsout?
07:06:26 <Patashu> what do you mean?
07:06:29 <Patashu> you can give it any two programs
07:06:40 <elliott> CakeProphet: nobody is left. only our dead souls.
07:06:43 <elliott> hth
07:07:12 <CakeProphet> ...
07:07:21 <CakeProphet> I mean, which program is left and which is right.
07:07:41 <elliott> left istop
07:07:42 <elliott> is top
07:07:44 <elliott> right is bottom
07:10:00 -!- monqy has quit (Quit: hello).
07:11:03 <CakeProphet> the tape length is always 10...
07:11:32 <Patashu> it should let you adjust it
07:12:10 <CakeProphet> ah it does.
07:12:23 <CakeProphet> NOT USER FRIENDLY
07:12:37 <Patashu> brainfuck is user friendliness paramount!
07:12:56 <Patashu> sucks at doing fast fourier transforms though
07:13:30 <elliott> CakeProphet: um that's what all the links are for
07:13:35 <elliott> first line is sieve, second line is kettle
07:13:40 <elliott> from left to right are the tape lengths
07:13:54 <Patashu> sieve? kettle?
07:14:12 <elliott> Patashu: sieve means + increments and - decrements for both players
07:14:16 <elliott> kettle means that + and - are swapped for one player
07:14:17 <Patashu> oooooh
07:14:19 <Patashu> and kettle is- right
07:14:21 <Patashu> interesting
07:14:25 <elliott> i named these and will never apologise for their naems.
07:14:27 <elliott> [asterisk]names.
07:14:36 <elliott> remember how flipping polarity used to be a viable strategy?
07:14:38 <elliott> yeah
07:14:41 <elliott> <-- GUY WHO PUT A STOP TO THAT HERE
07:14:55 <elliott> lol oh wow i remember people rerunning programs ten times just to get a good tape length
07:15:11 <elliott> but yeah we need quintopia's fixed-point scoring system IMHO
07:15:32 <elliott> http://esolangs.org/wiki/Talk:BF_Joust#Scoring
07:16:30 <Patashu> interesting
07:16:37 -!- Phantom_Hoover has joined.
07:21:02 <elliott> Phantom_Hoover: how is a donkey
07:21:44 <CakeProphet> elliott: my current program beats slowpoke at some of the small boards and some of the middle boards.
07:22:12 <CakeProphet> http://codu.org/eso/bfjoust/egojsout/?l=c8f08955801dce28866a597d4ef33ea66dfba938&r=9a8203d4a81d0e908f795647f147054a602211bf
07:22:18 <Deewiant> Anything can be beaten part of the time, it's beating stuff consistently that's troublesome
07:22:41 <Phantom_Hoover> *sigh*
07:22:41 <lambdabot> Phantom_Hoover: You have 21 new messages. '/msg lambdabot @messages' to read them.
07:22:54 <elliott> Wow, how did I manage that.
07:23:06 <elliott> CakeProphet: lol ok so it basically doesn't beat it at all
07:23:08 <elliott> that's an unquestionable loss
07:23:11 <elliott> remember that slowpoke is /slow/
07:23:12 <CakeProphet> yes I know
07:23:13 <elliott> try it against a rush program
07:23:23 <elliott> allegro beats it on every single configuration
07:23:28 <elliott> almost instantly
07:23:41 <CakeProphet> elliott: on small boards my program is a rush program. Just needs some finetuning.
07:24:03 <elliott> Looking at it, it's a rush program on every configuration, just a bad one :P
07:24:26 <elliott> Loses against the furry furry girls on pretty much every configuration.
07:25:01 <elliott> Hmm, you are actually fairly competitive with waterfall
07:25:12 <elliott> Three, that is
07:25:13 <Phantom_Hoover> elliott, congratulations, you have broken lambdabot with your stupidly large number of messages.
07:25:17 <elliott> On two you win but only by a small margin.
07:25:29 <CakeProphet> elliott: yeah there are ties and shit on waterfall
07:25:33 <CakeProphet> TIES
07:25:37 <elliott> CakeProphet: Fuck you, you beat ICA.
07:25:42 <elliott> Un-for-fucking-givable.
07:26:32 <elliott> Loses against spelevator :P
07:26:51 <CakeProphet> badly.
07:27:15 <CakeProphet> so what would make it more defensive?
07:28:11 <elliott> Uhh, a complete rewrite? They're orthogonal strategies.
07:28:19 <Patashu> is it deliberate that there's no 'wait' command?
07:28:24 <elliott> You can write a hybrid, but that's really two programs fused into one.
07:28:25 <CakeProphet> . is wait
07:28:26 <elliott> Patashu: . is a nop
07:28:28 <Patashu> ah ok
07:28:38 <Patashu> it wasn't listed
07:29:01 <elliott> The revised version
07:29:01 <elliott> User:ais523 introduced a revised version of BF Joust, with the following changes:
07:29:01 <elliott> A new command . is added, which does nothing but takes one cycle
07:29:03 <elliott> That's in the old revision
07:29:07 <elliott> In the new one, it's with every other command
07:29:13 <elliott> Which is saner, but unfortunately the text itself is unreadable :P
07:29:38 <Patashu> merge 'em then
07:29:43 <CakeProphet> elliott: well I blindly rush the first 5 cells the flag could be, and then go back and try to set up a defense but it seems by the time I get to that point they're already beyond my tripwire.
07:30:16 <elliott> CakeProphet: To be perfectly honest, this is the kind of program that would have done well two years ago :P
07:30:22 <elliott> Patashu: Too lazy. :p
07:30:27 <elliott> Maybe if we get another resurgence.
07:31:02 <coppro> holy shit
07:31:08 <coppro> holy fucking shit
07:31:10 <coppro> question period
07:31:35 <CakeProphet> elliott: I guess mine isn't generated and massive enough.
07:31:43 <CakeProphet> doesn't help that I'm a shitty BF programmer. :P
07:31:44 <Patashu> so?
07:31:46 <Patashu> mine isn't generated
07:31:51 <Patashu> it's still like 10th for some fucking reason
07:32:06 <elliott> coppro: what
07:32:12 <CakeProphet> I tie with i_like_turtles
07:32:16 <coppro> elliott: it's almost respectable
07:32:17 <elliott> Patashu: yours is a modified version of a polarity thing iirc :P
07:32:24 <Deewiant> Mine isn't generated and it's third
07:32:24 <coppro> the MPs are actually letting each other talk
07:32:25 <elliott> coppro: what is
07:32:27 <elliott> oh
07:32:41 -!- zzo38 has quit (Quit: Others he will beat and that will be neat.).
07:32:53 <elliott> coppro: that would never happen in britain
07:32:54 <elliott> atrocious
07:33:34 <coppro> elliott: it got particularly out of hand last Parliament
07:33:45 <coppro> going in, they all said they wanted a better parliament, but no one believed them
07:33:53 <coppro> turned out they seemed to actually mean it, at least so far
07:34:00 <elliott> coppro: i'm fucking disgusted.
07:34:03 <elliott> coppro: ok we're coming over.
07:34:05 <CakeProphet> elliott: I seem to win quite often on small boards.
07:34:05 <elliott> the queen and everyone.
07:34:07 <Patashu> politicians not interested in long term well being of nation
07:34:08 <Patashu> film at 11
07:34:09 <elliott> we're going to rebuild your society.
07:34:18 <elliott> you have clearly been led astray by your lumberjacks. and kindness.
07:34:28 <elliott> CakeProphet: it's easy to win on small boards, because you can do a lightspeed rush
07:35:16 <CakeProphet> well right
07:35:18 <CakeProphet> which is what I do.
07:41:13 <CakeProphet> how do you trick someone into suiciding.
07:41:41 -!- Vorpal has joined.
07:42:48 <elliott> CakeProphet: complicatedly
07:42:52 <elliott> hi Vorpal what fpga board should i buy
07:43:54 <Vorpal> elliott, I will tell you what I know about that if you give me the spec to the computer first
07:44:20 <elliott> do you want to know a spoiler.........................................
07:44:29 <Vorpal> elliott, however, why are you interested in an FPGA?
07:44:36 <pikhq_> coppro: MPs, *talking*?
07:44:39 <elliott> I'm reading extensively about the Reduceron
07:44:47 <pikhq_> coppro: What's next, a constitution?
07:44:49 <Vorpal> elliott, what is the spoiler?
07:44:54 <elliott> and am getting interested in purely-functional hardware
07:45:06 <elliott> Vorpal: i never.........made a spec i................ was too busy doing.......... other things...........
07:45:15 <Vorpal> elliott, ... when will you do it then
07:45:19 <coppro> pikhq_: Canadian MPs
07:45:25 <pikhq_> Oh, wait, Canada. Technically has a constitution.
07:45:33 <coppro> They talk. Typically all at once
07:45:39 <coppro> except not today, apparently
07:45:40 <pikhq_> Dammit, need some other way of poking fun.
07:45:58 <pikhq_> Harder to do for Canada, because their government is *less* ridiculous.
07:46:02 <elliott> Vorpal: i don't know, ph has been waiting for like at least five months
07:46:09 <Vorpal> <pikhq_> Harder to do for Canada, because their government is *less* ridiculous. <--- than US? yes
07:46:14 <elliott> you can't rush genius
07:46:15 <elliott> or uh
07:46:18 <pikhq_> Vorpal: Than the UK, actually, in this case.
07:46:20 <CakeProphet> bah, brainfuck programming is difficult. :P
07:46:20 <elliott> you can't rush mismotivated
07:46:30 <Vorpal> elliott, you did it for bsmnt
07:46:34 <pikhq_> Well. It's still a monarchy ruled by divine right.
07:46:35 <elliott> yeah, and nobody since
07:46:39 <pikhq_> That's pretty ridiculous.
07:46:49 <Vorpal> elliott, anyway I guess I'll go ahead without you then
07:46:49 <elliott> i had the spark that day, maybe i'll have the spark tomorrow, maybe two days in the future, but relying on me is generally a bad plan
07:47:07 <Vorpal> elliott, dude you won't survive university if you can't keep deadlines
07:47:21 <coppro> pikhq_: If I see 5 conservatives vote against party lines and see an opposition-moved amendment on a government bill, I will go to Ottawa and attempt to hug every MP
07:47:26 <elliott> Well to be fair there is significantly less resting on creating a spec for you.
07:47:37 <elliott> Also your deadlines kept not actually being deadlines anyway.
07:47:45 <coppro> pikhq_: also I will publicize this promise
07:47:58 <coppro> actually I might raise the numbers a bit
07:48:04 <coppro> given that they've four years to implement them
07:48:11 <pikhq_> coppro: So, some dude ruled the country, and had his kid take over, and so on, right? And you call this a way to rule a country?
07:48:19 <pikhq_> coppro: You deserve everything you get, you git.
07:48:21 <pikhq_> :P
07:48:25 <Vorpal> elliott, are you using EDF or LST scheduling for your life?
07:48:43 <elliott> Vorpal: Boy howdy, that's undoubtedly a really hilarious joke I don't get.
07:48:51 <Vorpal> elliott, no I'm serious
07:48:59 <elliott> I Wikipediad it. Hilarious.
07:49:07 <Vorpal> elliott, which method do you think works best for real life.
07:49:15 <coppro> pikhq_: If by 'rule' you mean 'sit in a different country and only get directly involved very rarely, the last time to help a politician commit political suicide in order to implement the most intelligent economic measure attempted in 50 years', sure, got no problem
07:49:18 <Vorpal> elliott, I'm utterly serious.
07:49:31 <elliott> Vorpal: I don't know, but I do know that my inability to "do X now" makes using any actual algorithm pointless.
07:49:35 <Patashu> EDF sounds a lot like me
07:49:41 <Vorpal> Patashu, ah
07:50:02 <pikhq_> coppro: Still less ridiculous than the UK. Where the Queen could do just about anything...
07:50:07 <pikhq_> (and get lynched for it, mind.)
07:50:12 <Vorpal> Patashu, LST works better in the presence of sporadic tasks iirc.
07:50:17 <Patashu> yeah
07:50:52 <Vorpal> pikhq_, if she tried to do it, that right would very quickly be revoked
07:51:04 <pikhq_> Vorpal: As I said, "and get lynched for it".
07:51:07 <Vorpal> yeah
07:51:14 <pikhq_> coppro: Y'know what? Fuck it. Think you could invade?
07:51:35 <Vorpal> pikhq_, how does US and CA compare to each other wrt this?
07:51:40 <coppro> pikhq_: I love framing
07:51:51 <elliott> MAYBE I'LL JUST ASK AIS ABOUT FPGAS INSTEAD ;_______________;
07:52:13 <pikhq_> Vorpal: The US is nominally ruled by just consent of the governed, and there exists no single individual with a high level of power.
07:52:31 <Patashu> counterexample: koch bros
07:52:35 <Vorpal> pikhq_, well, only nominally.
07:52:38 <pikhq_> Patashu: "Nominally".
07:52:44 <pikhq_> In practice, it depends.
07:52:44 <Patashu> oh, nominally, sure
07:52:48 <pikhq_> Sometimes, that's how it works.
07:52:55 <Patashu> in practice, most people do what they're told/what their parents do
07:52:59 <Patashu> because of lack of free time
07:53:01 <elliott> sometimes that's how it works? r u srs
07:53:12 <pikhq_> Sometimes, the President has large brass testicles and can effectively act as monarch.
07:53:21 <Vorpal> elliott, heh I ended up doing an ineiros. I have a "restore session" tab listed in the "restore session" one.
07:53:40 <elliott> Vorpal: OK Mr. FPGA "Enemy-Of" Vorpal
07:53:57 <elliott> "Bad person"
07:53:59 <pikhq_> And this turns out both good and bad, depending.
07:54:01 <Vorpal> elliott, iirc you need state of the art for redueron.
07:54:08 <Vorpal> elliott, simpler ones won't work
07:54:15 <pikhq_> Bush is the most recent example of it turning out bad.
07:54:17 <elliott> Vorpal: It only ran at ninety megahertz, but that's probably irrelevant :P
07:54:27 <elliott> And only thirty-two kilowords of heap :P
07:54:31 <elliott> Anyway I don't expect to run the Reduceron.
07:54:34 <Vorpal> elliott, how many gates did it use?
07:54:34 <pikhq_> And by "bad" I mean "holy fuck, he's probably fucked over the next few generations".
07:54:40 <elliott> I just want the best evaluation board that I can afford.
07:54:52 <elliott> Vorpal: I don't know; the VHDL file is available but it is generated code.
07:55:13 <Vorpal> elliott, ah, you need to feed it into the synthesiser to get that info out
07:55:38 <Vorpal> elliott, anyway, the PC software... The cheap editions are generally very sucky from what I understood
07:55:44 <elliott> "It requires over
07:55:44 <elliott> 2,000 logic gates, but this is less than 1% of our FPGA’s logic-gate
07:55:44 <elliott> capacity." ;; comment on one specific piece of functionality
07:55:45 <Vorpal> I used the pro version at university
07:55:52 <elliott> Vorpal: I could always pirate the software, couldn't I?
07:56:11 <Vorpal> elliott, not sure how easy it is to find such specialised software...
07:56:27 <elliott> True.
07:56:35 <elliott> http://torrentz.eu/search?f=xilinx
07:56:35 <elliott> http://torrentz.eu/search?f=altera
07:56:38 <elliott> Doesn't look too bad.
07:56:58 <Vorpal> elliott, I only used xilinx boards. You might get more info from ais on this stuff
07:57:18 <Vorpal> elliott, only the windows versions from what I can see
07:57:26 <Vorpal> xilinx at least makes linux versions too
07:57:34 <elliott> Anyway, I pretty much just want something that can run something bigger than "hello world", and that can do serial I/O :P
07:57:42 <elliott> (Why serial? 'Cuz it's fucking simple.)
07:57:59 <elliott> Plugging serial into a MacBook Air (via an adapter of course): HEIGHT OF WEIRDNESS?
07:58:20 <Vorpal> elliott, the board I programmed used parport. Anyway serial is easy. You can do the basics with two GPIO pins!
07:58:50 <Vorpal> elliott, assuming you mean UART
07:59:01 <elliott> It would be kind of sad if the Reduceron required a high-end board.
07:59:09 <elliott> I mean, it's generated code, but I presume the design is probably simply that complex.
07:59:16 <Vorpal> if you want USRT it would be more complicated
07:59:35 <elliott> Vorpal: I know nothing of serial ports TBH, I just know that they're meant to be simple to program with :P
08:00:04 <coppro> `/win 2
08:00:07 <HackEgo> No output.
08:00:23 <Vorpal> elliott, I have no idea how many gates it would use. You would have to test synthesise it for the model in question
08:00:35 <elliott> Can I do that without buying anything? :-P
08:03:09 <Vorpal> elliott, unsure
08:03:39 <elliott> I get the feeling it would be easier just to rob the high-end kits from a university.
08:03:45 <Vorpal> elliott, anyway programming FPGAs is *nothing* like writing a normal program
08:04:16 <Vorpal> completely different paradigm from any other sort of programming
08:04:21 <elliott> I'm aware, but then I learned functional programming after a lifetime of imperative languages too.
08:04:38 <elliott> And anyway there is always that thing ais is working on. :p
08:04:47 <elliott> (I plan to play with York Lava which looks cool too.)
08:05:18 <Vorpal> elliott, best way to describe VHDL would perhaps be as writing event driven code using imperative style in the time domain or something like that.
08:05:50 <Vorpal> elliott, basically it is better to approach it as electronics engineering rather than as programming
08:06:15 <elliott> Which is great 'cuz I know no EE at all.
08:06:22 <elliott> But event-driven shit is something I'm relatively comfortable with.
08:06:29 <Patashu> circuitry is very different - you can parallelize it as much as you want for starters
08:06:43 <Vorpal> it is *easier* to make it parallel than serial even
08:06:55 <Vorpal> I mean, doing stuff in a serial order is *hard* in vhdl
08:07:41 <Vorpal> you would need to do some sort of flip-flop to keep track of which state you are in. That is probably a screenful of code alone.
08:08:00 <Vorpal> elliott, and you need to take care of the clock signal in most places.
08:08:21 <elliott> UNLESS I MAKE EVERYTHING CLOCKLESS.
08:08:35 <elliott> Vorpal: You should look at the Reduceron's VHDL file, it's hilarious.
08:08:48 <Vorpal> elliott, ghdl + gtkwave might be a good way to learn the basics, by simulating
08:09:16 <elliott> c22274 : and2 port map (w22274_0,w74_0,w228_0);
08:09:16 <elliott> c22254 : or2 port map (w22254_0,w22255_0,w22274_0);
08:09:16 <elliott> c22250 : or2 port map (w22250_0,w22251_0,w22254_0);
08:09:16 <elliott> c83 : or2 port map (w83_0,w84_0,w22250_0);
08:09:16 <elliott> c22276 : inv port map (w22276_0,w138_0);
08:09:16 <elliott> c22277 : inv port map (w22277_0,w151_0);
08:09:18 <elliott> c22275 : and2 port map (w22275_0,w22276_0,w22277_0);
08:09:19 <Vorpal> <elliott> UNLESS I MAKE EVERYTHING CLOCKLESS. <-- uh. 1) damn hard 2) Most FPGAs are based on a clocked design, so it won't work well 3) damn hard
08:09:20 <elliott> c82 : and2 port map (w82_0,w83_0,w22275_0);
08:09:25 <elliott> c22280 : or2 port map (w22280_0,w1670_0,w1689_0);
08:09:27 <elliott> c22282 : or2 port map (w22282_0,w68_0,w202_0);
08:09:28 <elliott> c22281 : or2 port map (w22281_0,w1708_0,w22282_0);
08:09:30 <elliott> c22279 : or2 port map (w22279_0,w22280_0,w22281_0);
08:09:32 <Vorpal> elliott, looks normal apart from the generated names
08:09:32 <elliott> c22285 : or2 port map (w22285_0,w208_0,w1536_0);
08:09:35 <elliott> quality code
08:09:41 -!- augur has quit (Remote host closed the connection).
08:09:43 <elliott> Vorpal: it's thousands of lines of that
08:09:53 <elliott> the file is literally almost fifty thousand lines long
08:10:03 <Vorpal> elliott, that is in an architecture joining components right?
08:10:06 <elliott> before that there's a lot of
08:10:07 <elliott> attribute INIT of c21952: label is "0";
08:10:07 <elliott> attribute INIT of c21948: label is "0";
08:10:07 <elliott> attribute INIT of c21965: label is "0";
08:10:07 <elliott> attribute INIT of c21961: label is "0";
08:10:07 <elliott> attribute INIT of c21976: label is "0";
08:10:08 <elliott> attribute INIT of c21984: label is "0";
08:10:11 <elliott> attribute INIT of c21992: label is "0";
08:10:12 <Vorpal> uh wtf
08:10:12 <elliott> attribute INIT of c22000: label is "0";
08:10:15 <elliott> attribute INIT of c22008: label is "0";
08:10:16 <elliott> and at the start there's a lot of
08:10:18 <Vorpal> elliott, I have no idea what that means
08:10:18 <elliott> w22412_0,
08:10:20 <elliott> w22418_0,
08:10:21 <Patashu> nice spam
08:10:24 <elliott> w22419_0,
08:10:26 <elliott> w22417_0,
08:10:28 <Vorpal> elliott, link the file?
08:10:28 <elliott> w22421_0,
08:10:30 <elliott> w22422_0,
08:10:32 <elliott> w22420_0,
08:10:34 <elliott> w22416_0,
08:10:35 <Vorpal> I'd like to check it
08:10:36 <elliott> w22411_0,
08:10:38 <elliott> w22410_0,
08:10:39 <Vorpal> elliott, yes yes
08:10:40 <elliott> w22405_0,
08:10:42 <elliott> w48_0,
08:10:44 <elliott> w41_0,
08:10:45 <Vorpal> op!
08:10:46 <elliott> w40_0,
08:10:48 <elliott> w39_0,
08:10:48 <Vorpal> stop the spam
08:10:50 <Vorpal> come on
08:10:50 <elliott> Patashu: yw
08:10:54 <elliott> Vorpal: Tried to sprunge it but then I just realised it's a meg big
08:10:56 <elliott> Oh shut up
08:10:58 <Vorpal> elliott, link it?
08:11:02 <elliott> I didn't paste that much >_>
08:11:03 <Vorpal> I mean
08:11:06 <Vorpal> where did you get it from
08:11:08 <elliott> http://www.cs.york.ac.uk/fp/reduceron/reduceron.tar.gz
08:11:11 <elliott> fpga/Reduceron/Reduceron.vhd
08:11:13 <elliott> is what you want
08:11:23 <elliott> <Vorpal> elliott, that is in an architecture joining components right?
08:11:25 <elliott> what does this mean?
08:11:33 <elliott> The Reduceron is described in York Lava, not VHDL
08:11:38 <elliott> York Lava just compiles to VHDL
08:11:44 <elliott> (York Lava is a Haskell library)
08:11:49 <Vorpal> wha
08:11:52 <elliott> Wha?
08:11:59 <Vorpal> it *crashed* kate
08:12:03 <elliott> Nice.
08:12:15 <Vorpal> when I tried to scroll
08:12:16 <elliott> (For a brief introduction to York Lava, see YorkLava.txt in http://www.cs.york.ac.uk/fp/reduceron/york-lava.tar.gz.)
08:12:49 <Vorpal> what the fuck
08:12:53 <Vorpal> it is all one entity??
08:13:07 <Vorpal> elliott, okay that is no normal vhdl.
08:13:18 <elliott> Vorpal: It's. Generated. Code.
08:13:25 <elliott> How many times do I have to say this.
08:13:37 <Vorpal> elliott, yes but where the fuck is the non-structural definitions
08:13:43 <elliott> Why would there be any?
08:13:56 <Vorpal> elliott, because somewhere there has to be, or there is nothing to synthesise
08:14:04 <elliott> Oh, do you mean a "top level"?
08:14:08 <elliott> See extra/.
08:14:12 <elliott> README.txt and top.vhd.
08:14:23 <Vorpal> elliott, the fpga/Reduceron/Reduceron.vhd file *is* the top level as far as I can tell
08:14:27 <elliott> See extra/.
08:14:31 <Vorpal> it just joins together other components yeah
08:14:33 <elliott> Top-level .vhd and .ucf files that basically connect the reduceron to
08:14:33 <elliott> the LEDs and switches on the XUPV5 board (also known as ML509).
08:14:50 <Vorpal> elliott, I would suggest that fpga/Reduceron/Reduceron.vhd is the top level one yeah
08:15:13 <elliott> Does that answer your question about "where are the non-structural definitions"?
08:15:21 <Vorpal> hm top.vhd isn't it
08:15:51 <elliott> Has to be; that's all there is.
08:15:53 <Vorpal> hm
08:16:07 <elliott> Are you _sure_ it's not top.vhd?
08:16:36 <Vorpal> elliott, structural architectures is basically a way to join together many behavioural architectures. Like saying "place component foo and bar, and connect foo.out2 to bar.in1" or such
08:17:05 <elliott> presumably, it is joining together all those w560_0 things
08:17:10 <Vorpal> the problem here is that "architecture structural of Reduceron is"
08:17:11 -!- pikhq has joined.
08:17:34 <Vorpal> hm
08:18:37 <Vorpal> elliott, I mean there is process in the top.vhd file
08:18:54 <elliott> Are you sure structural architectures can't do more than you're thinking?
08:18:55 <Vorpal> w22497_0 : std_logic;
08:19:19 <Vorpal> elliott, could be. Actually they are freetext names. There are conventions though.
08:19:34 <Vorpal> elliott, and this doesn't seem to follow those conventions for names.
08:19:45 <elliott> Well it's generated code.
08:19:45 <elliott> red_instance : Reduceron
08:19:45 <elliott> port map (
08:19:45 <elliott> finish => fin,
08:19:45 <elliott> result1 => result(0),
08:19:45 <elliott> result2 => result(1),
08:19:47 <elliott> result3 => result(2),
08:19:49 <elliott> result4 => result(3),
08:19:50 <Vorpal> yes right
08:19:53 <elliott> (That's hand-written, obviously.)
08:20:00 <Vorpal> elliott, that looks like a structural one to me yes
08:20:01 -!- pikhq_ has quit (Ping timeout: 240 seconds).
08:20:07 <elliott> Right.
08:20:13 <Vorpal> elliott, it is just I would expect a shitload of "begin process" in the generated one
08:20:13 <elliott> Well, why's there nothing to synthesise?
08:20:27 <elliott> Why?
08:20:41 <elliott> Note that York Lava is still based around signals and the like.
08:20:42 <Vorpal> elliott, because how else would you do a latch or a flip-flop
08:20:45 <elliott> It's not compiling Haskell to VHDL or anything.
08:21:05 <elliott> Vorpal: Maybe look at YorkLava.txt in http://www.cs.york.ac.uk/fp/reduceron/york-lava.tar.gz to see its architecture.
08:21:17 <elliott> It's short.
08:21:21 <elliott> Ish.
08:21:27 <elliott> Quite a wide overview.
08:22:01 <Vorpal> elliott, right. But where are all the latches and so on!
08:22:14 <Vorpal> library unisim;
08:22:14 <Vorpal> use unisim.vcomponents.all;
08:22:14 <Vorpal> use work.all;
08:22:15 <Vorpal> hrrm
08:22:21 <elliott> Latches? Who needs 'em?
08:22:31 <Vorpal> elliott, flip-flops though
08:22:57 <elliott> Can they be simulated by anything lower-level in VHDL terms? :p
08:23:07 <Vorpal> elliott, processes that is how you do them
08:23:18 <elliott> Obviously there is another way, or the Reduceron wouldn't work.
08:23:27 <Vorpal> elliott, I suspect use unisim.vcomponents.all; might be it perhaps
08:23:30 <elliott> Seriously, look at YorkLava.txt. It's pretty damn low-level at its core.
08:23:44 <elliott> http://www.xilinx.com/itp/3_1i/data/fise/xst/chap03/xst03007.htm
08:23:54 <elliott> That's a summary of unisim.vcomponents.all. I think.
08:24:11 <elliott> I like how the Verilog code is consistently shorter and less noisy.
08:25:48 -!- nooga has joined.
08:26:15 <Vorpal> elliott, everything is processes in verilog iirc
08:26:47 <Vorpal> elliott, anyway top.vhd contains a set of flip-flops I can tell
08:26:55 <Vorpal> if (rising_edge(clock)) then
08:26:55 <Vorpal> saved_switches <= switches;
08:26:56 <Vorpal> after all
08:27:28 <Vorpal> fucked up indentation in that file
08:29:19 <Vorpal> elliott, what, Lava uses two-valued logic?
08:29:37 <Vorpal> normally in VHDL you have 7-valued logic.,
08:29:39 <Vorpal> s/,//
08:29:41 <elliott> Who says low and high are the only values of Bit? :P
08:29:49 <Vorpal> hm right
08:29:56 <elliott> data Bit =
08:29:56 <elliott> Symbol { componentName :: String
08:29:56 <elliott> , numOutputs :: Int
08:29:57 <elliott> , parameters :: [Parameter]
08:29:59 <elliott> , inputs :: [Bit]
08:30:01 <elliott> , instanceRef :: IORef (Maybe InstanceId)
08:30:03 <elliott> , outputNumber :: OutputNumber
08:30:05 <elliott> , outputSignal :: Signal
08:30:06 <Vorpal> heh
08:30:07 <elliott> }
08:30:09 <elliott> THAT'S TOTALLY A BIT YO
08:30:11 <elliott> (It's symbolic, obviously :P)
08:30:13 <elliott> -- | Logic '0'.
08:30:15 <elliott> low :: Bit
08:30:17 <elliott> low = makeComponent "low"
08:30:19 <elliott> {- Inputs: -} []
08:30:23 <elliott> {- Outputs: -} 1
08:30:25 <elliott> {- Simulate: -} (\[] -> [repeat False])
08:30:27 <elliott> {- Params: -} []
08:30:29 <elliott> {- Continue: -} (\[o] -> o)
08:30:30 <Vorpal> elliott, can it be high impedance?
08:30:31 <elliott> -- | Logic '1'.
08:30:33 <elliott> high :: Bit
08:30:35 <elliott> high = makeComponent "high"
08:30:37 <elliott> {- Inputs: -} []
08:30:39 <elliott> {- Outputs: -} 1
08:30:41 <elliott> {- Simulate: -} (\[] -> [repeat True])
08:30:43 <elliott> {- Params: -} []
08:30:45 <elliott> {- Continue: -} (\[o] -> o)
08:30:47 <elliott> logic2 :: String -> (Bool -> Bool -> Bool) -> (Bit, Bit) -> Bit
08:30:48 <Vorpal> sigh
08:30:49 <elliott> logic2 name f (a, b) =
08:30:53 <elliott> makeComponent name
08:30:54 <Vorpal> spam
08:30:55 <elliott> {- Inputs: -} [a, b]
08:30:55 <Vorpal> come on
08:30:57 <elliott> {- Outputs: -} 1
08:30:59 <elliott> {- Simulate: -} (\[a, b] -> [zipWith f a b])
08:31:01 <elliott> {- Params: -} []
08:31:03 <elliott> {- Continue: -} (\[o] -> o)
08:31:05 <elliott> Vorpal: Dunno :P
08:31:07 <elliott> Vorpal: What.
08:31:09 <elliott> It's helpful spam.
08:31:11 <elliott> :<
08:31:39 <elliott> Can I just record forever as my stupidity that I didn't realise x+y = (x^y) | ((x&y) << 1) until really recently.
08:32:09 <Vorpal> elliott, for signed integers?!
08:32:41 <elliott> Vorpal: ...
08:33:00 <Vorpal> elliott, I'm wondering what you are talking about here
08:33:11 <elliott> Unsigned, obviously.
08:33:14 <Vorpal> ah
08:33:21 <nooga> ;o
08:33:37 <elliott> XOR is just addition without carry, AND gives you the locations of all the bits where there would be a carry.
08:33:51 <elliott> Which means that the next digit needs setting, so you shift it one and OR it in.
08:33:52 <Vorpal> elliott, wait something must be wrong, why don't we all use that instead of complex carry forwarding networks.
08:34:05 <elliott> 'Cuz that's probably slow?
08:34:13 <Vorpal> it doesn't *look* slow to me
08:34:19 <elliott> Hmm, maybe it fails if there's a cascaded carry.
08:34:27 <Vorpal> elliott, it must do that.
08:34:32 <elliott> Are you suuuuuuuuuuuuure
08:34:54 <Vorpal> elliott, not 100% sure no. But it looks faster than ripple carry to me at least.
08:35:01 <elliott> > but adding is not a bitwise operator.[/color]
08:35:01 <elliott> ....but it is easy to implement in terms of bitwise operators, as long as you remember the truth table for the full adder.
08:35:02 <lambdabot> Not in scope: `but'Not in scope: `adding'Not in scope: `is'Not in scope: `b...
08:35:04 <elliott> DAMMIT GOOGLE YOU ARE INCONCLUSIVE
08:35:17 <elliott> "A full adder has three inputs: addend, augend and carry in and two outputs:
08:35:17 <elliott> sum and carry out. Carry in is 0 for the rightmost bit. Make a truth
08:35:17 <elliott> table and note that the exclusive or is very useful."
08:35:23 <elliott> STOP BEING A FUCKING SOCRATES TELL ME THE ANSWER
08:35:40 <elliott> aha
08:35:41 <elliott> Vorpal:
08:35:41 <elliott> Addition can be viewed as a sequence of bitwise operations.
08:35:41 <elliott> Exclusive or-ing the addend and augend yields all of the partial
08:35:41 <elliott> sum bits; while and-ing the addend and augend yields all of the
08:35:41 <elliott> carry bits. Shift the carry bits left one position.
08:35:43 <elliott> Put the partial sum in the addend.
08:35:45 <elliott> If there are no 1's in the carry bits, then you're done and the
08:35:47 <elliott> result of the addition is in the addend.
08:35:49 <elliott> Otherwise put the carry bits in the augend and repeat.
08:35:53 <elliott> So mine is actually just one step in a loop.
08:35:57 <Vorpal> elliott, indeed
08:36:07 <Vorpal> elliott, I said it wouldn't work like that :P
08:36:26 <Vorpal> and this explains why we use complex full adders and carry and so on instead
08:36:38 <Vorpal> elliott, what I don't get is why people don't use double adders or such lined up
08:36:44 <elliott> double the speed
08:36:54 <elliott> Lava> synthesiseHalfAdd
08:36:54 <elliott> Creating directory 'HalfAdd/'
08:36:55 <elliott> Writing to 'HalfAdd/HalfAdd.vhd'
08:36:57 <elliott> Done.
08:36:59 <elliott> HI-TEQUE
08:37:02 <Vorpal> elliott, not quite, but close I think.
08:37:10 <elliott> Vorpal: it was a joke but okay
08:37:19 -!- augur has joined.
08:37:24 <elliott> oh man type level naturals
08:37:27 <elliott> WHAT IS NOT THE BEST ABOUT THIS
08:37:35 <Vorpal> elliott, in circuitry you can trade speed for time to a large degree.
08:37:36 <Vorpal> err
08:37:39 <Vorpal> speed for space*
08:37:40 <Vorpal> I meant
08:37:50 <elliott> The function 'vat' indexes a vector.
08:37:50 <elliott> Lava> (13 :: Word N4) `vat` n2
08:37:50 <elliott> low
08:37:50 <elliott> A static type error is given if the index is out of bounds.
08:37:52 <elliott> WELL LAH DE DAH
08:38:11 <Vorpal> elliott, you could in *theory* do a 32-bit adder as a 2-level network of and and or gates for each output
08:38:19 <CakeProphet> !bfjoust anti_slowpoke_stolen_from_Deewiants +++(>)*8(>[++[-]]+)*21
08:38:26 <EgoBot> ​Score for CakeProphet_anti_slowpoke_stolen_from_Deewiants: 18.1
08:38:29 <Vorpal> elliott, the required space however would be stupidly large
08:39:17 <Vorpal> <elliott> A static type error is given if the index is out of bounds. <-- how is this different from vhdl? Array indexing going out of bounds would likely fail at synthesis
08:39:25 <CakeProphet> all Dewiant had to do was change his initial + to +++ to get a perfect score against slowpoke. :D
08:39:26 <elliott> Yeah, but it's at Haskell type-check time.
08:39:34 <elliott> (Haskell runtime is when the VHDL is output.)
08:39:42 <elliott> tl;dr Fancy type-level natural shit.
08:40:18 <elliott> {-# OPTIONS_GHC -fglasgow-exts -XUndecidableInstances -fcontext-stack=1024 #-}
08:40:20 <elliott> Always a good sign.
08:40:32 <Vorpal> elliott, oh btw vhdl synthesis is slow. I worked on systems with dual core 2 quads at university when I did that. For the basic stuff I did then it still took like half a minute
08:40:41 <elliott> Vorpal: Eurgh.
08:40:48 <Vorpal> elliott, expect synthesising redueron to be an over-nighter at least
08:41:04 <Vorpal> elliott, this is why you do simulation :P
08:41:14 <elliott> Xilinx provides a cool utility called Data2MEM. Given a bit-file,
08:41:14 <elliott> this utility can change the initial contents of a specified set of
08:41:14 <elliott> block RAMs. This allows us to change the program in the Reduceron's
08:41:14 <elliott> code memory without having to resynthesise, which would take ages.
08:41:26 <Vorpal> elliott, indeed
08:41:31 <Vorpal> elliott, overnighter at least :P
08:41:32 <elliott> York Lava provides the following constructs for writing behavioural
08:41:32 <elliott> descriptions.
08:41:33 <CakeProphet> woah no way, slowpoke vs slowpoke = tie
08:41:38 <elliott> this is the important part
08:41:39 <elliott> CakeProphet: No shit sherlock
08:41:48 <Vorpal> CakeProphet, of course a program ties against itself
08:42:20 <elliott> newMult :: N n => New (Mult n)
08:42:20 <elliott> newMult = return Mult `ap` newReg `ap` newReg `ap` newReg
08:42:20 <elliott> shiftAndAdd s =
08:42:20 <elliott> While (s!b!val =/= 0) $
08:42:20 <elliott> Seq [ s!a <== s!a!val!shr
08:42:21 <elliott> , s!b <== s!b!val!shl
08:42:24 <elliott> , s!b!val!vhead |>
08:42:26 <elliott> s!result <== s!result!val + s!a!val
08:42:28 <elliott> , Tick
08:42:30 <elliott> ]
08:42:32 <elliott> shr x = low +> vinit x
08:42:34 <elliott> shl x = vtail x <+ low
08:42:36 <elliott> prettyyyyyyyyy
08:42:38 <elliott> not ashamed of the spam
08:42:40 <elliott> that was pretty
08:42:42 <elliott> you all had to see it
08:43:07 <Vorpal> elliott, anyway I hope you like reading time graphs. Like these http://www.2lazy.nl/MartinsBlog/mpp_images/exp1_gtkwave.jpg (found by google image search)
08:43:19 <Vorpal> elliott, generally that is what you get from simulation
08:43:28 <elliott> Vorpal: Doesn't it have serial emulation? :P
08:43:55 <Vorpal> elliott, simulation for vhdl means writing a test program, that provides a set of input signals over time, then checking the output signals.
08:44:03 <elliott> LOOK AT ALL THESE VIBES OF MINE YOU'RE HARSHING
08:44:06 <Vorpal> elliott, so simulation for vhdl is very much like unit testing.
08:44:08 <elliott> LOOK AT THEM
08:44:12 <Vorpal> elliott, what
08:44:31 <elliott> "Making plans isn't the same as being alive!"
08:44:36 <Vorpal> elliott, anyway I don't know any vhdl simulation tool that lets you do interactive input to them
08:44:43 <elliott> Vorpal: :(
08:45:08 <Vorpal> elliott, vhdl is very... enterprisy.
08:45:22 <elliott> MAKES A MAN WANT TO BECOME A RENEGADE AND USE VERILOG ALL HIS LIFE
08:45:28 <elliott> OR, ALTERNATIVELY, STAB HIS EYES OUT
08:45:38 <Vorpal> elliott, I have no clue about verilog, but isn't it pretty similar
08:45:50 <elliott> LESS WORDS
08:45:52 <Vorpal> elliott, also come on, vhdl has an ada/pascal like syntax. Who doesn't love that.
08:45:57 <elliott> EVERYONE
08:46:09 <CakeProphet> dude slowpoke is ridiculous.
08:46:17 <elliott> CakeProphet: Reading the explanation of it?
08:46:42 <CakeProphet> the stuff that's in the source code anyways
08:46:50 <elliott> CakeProphet: it's generated, don't bother
08:46:55 <Vorpal> elliott, anyway I can't find any traces of the 7-valued logic in york lava.
08:47:01 <Vorpal> elliott, that will be "fun" then
08:47:02 <elliott> Vorpal: btw the York Lava code for Reduceron is actually quite readable.
08:47:18 <elliott> emulator/emu.c is still the most understandable bit of code though :P
08:47:26 <Vorpal> heh
08:47:38 <Vorpal> -- | A time-varying binary signal is clasically a list of booleans.
08:47:38 <Vorpal> type Signal = [Bool]
08:47:49 <Vorpal> elliott, yep, york lava's Bit is 2-valued
08:47:53 <Vorpal> elliott, sad
08:48:01 <elliott> Vorpal: Why's that sad :P
08:48:28 <Vorpal> elliott, because ieee.std_logic_1164 is a lot more useful in practise than vhdl's built in 2-valued logic
08:48:34 <elliott> Why :P
08:48:42 <Vorpal> elliott, see http://en.wikipedia.org/wiki/IEEE_1164
08:49:01 <Vorpal> elliott, it allows you to detect conflicting signals, like two strong drives on the same wire and what not
08:49:06 <elliott> Well don't do that then.
08:49:16 <Vorpal> elliott, and you can do weak drive, very useful
08:49:19 <elliott> I like how it's seven-valued but actually nine-valued.
08:49:22 <Vorpal> and high impedance of course
08:49:36 <Vorpal> err
08:49:40 <Vorpal> elliott, typo on my part then
08:49:46 <elliott> No, it's called seven-valued, I think.
08:49:48 <Vorpal> elliott, it was about a year ago I last used vhdl
08:49:50 <elliott> Because two values don't count.
08:49:53 <elliott> Uninitialised and don't care.
08:49:54 <elliott> I think.
08:49:56 <elliott> But still. So stupid.
08:50:04 <Vorpal> elliott, don't care is utterly useful
08:50:14 <elliott> Yeeeeees :P
08:50:14 <Vorpal> elliott, for example
08:50:23 <Vorpal> elliott, lets say you want to drive a 7-segment display
08:50:39 <Vorpal> and you get the input on 4 wires, so BCD coding basically (same as binary in this interval)
08:50:42 <elliott> And you wanted one of them to flicker on and off at random whims because "hey, I don't care".
08:50:43 <elliott> RIGHT?????
08:51:05 <Vorpal> elliott, that means that some of the input combinations are not valid. Which means you can output whatever is easiest on those
08:51:15 <Vorpal> since they never happen
08:51:21 <Vorpal> this can simplify gates and so on
08:51:25 <elliott> Heh :P
08:51:34 <elliott> An impossible branch just trailing off to the edge of the circuit.
08:51:36 <Vorpal> elliott, so yes don't care is very useful
08:51:42 <elliott> The impossible happens => circuit catches fire
08:51:43 <CakeProphet> elliott: I don't understand how these programs know when to reverse their polarity without relying on any kind of temporary variable.
08:51:43 <elliott> IT SAVED GATES
08:51:56 <elliott> CakeProphet: Nested branches. Lots and lots and lots of nested branches.
08:51:59 <elliott> Lots of nested branches.
08:52:00 <elliott> Tripwires.
08:52:00 <elliott> Lots of nested branches.
08:52:04 <elliott> CakeProphet: Read the ENTIRE strategy pages.
08:52:04 <Vorpal> elliott, let me get a real example of this. I have it on a paper somewhere
08:52:07 <elliott> CakeProphet: That INCLUDES all the program summaries.
08:52:09 <Vorpal> ah yes found it
08:53:17 <Vorpal> for the first segment in a 7-segment display (the upper on on the left side) we can do this given the inputs A,B,C,D: C+A+BC+D'B' where ' is "invert previous symbol"
08:54:12 <elliott> Nice :P
08:54:14 <Vorpal> elliott, this gives the right outputs for 0-9, which is the valid domain. However, it will give strange results for the values not allowed. Basically don't care means that the compiler can optimise without regard to what the result of these undefined values will be
08:54:29 <Vorpal> elliott, which in this case hugely simplifies the logic
08:54:30 <elliott> Where do you actually specify don't care there?
08:54:58 <Vorpal> elliott, well in the example I gave, I did it in the Karnaugh diagram I made on paper. I did this example for redstone logic, so no vhdl here
08:55:13 <elliott> Does redstone have don't care? :P
08:55:52 <Vorpal> elliott, no, but it doesn't matter. Because it is used so that I can assign that specific combination whatever value is easiest
08:55:54 <Patashu> redstone, a robust model for circuitry
08:55:59 <Vorpal> Patashu, har.
08:56:02 <Patashu> (lol)
08:56:20 <Vorpal> elliott, http://en.wikipedia.org/wiki/Karnaugh_map
08:56:32 <elliott> oh, you mean you did not actually write C+A+BC+D'B'
08:56:38 <elliott> but a diagram with each input/output enumerated
08:56:38 <elliott> right
08:57:03 <Vorpal> elliott, yes, then I try to encircle power of two sizes in the diagram. The larger area, the simpler the gate
08:57:17 <Vorpal> elliott, thus for don't care values I can encircle them *if* it would make the area greater.
08:57:29 <elliott> I AM SO GLAD I LIVE IN THE WORLD OF HAPPY DIGITAL BINARY LOGIC.
08:57:31 <elliott> IT'S SO FUCKING AWESOME.
08:57:52 <elliott> I'ma ask ais if his ALGOL compiler outputs code with that fancy seven-valued stuff so I don't have to :P
08:58:04 <elliott> And then spend two whole years coercing him out of his overly-legalistic mindset so that I can get a leaked copy.
08:58:12 <elliott> THIS IS MORE PRODUCTIVE THAN ATTEMPTING TO UNDERSTAND VHDL
08:58:20 <Vorpal> elliott, another case. Data bus. You definitely want the value Z there (high impedance)
08:58:33 <elliott> OBVIOUSLY
08:59:07 <Vorpal> elliott, well, you have to basically disconnect from sending to the data bus when you aren't sending
08:59:14 <Vorpal> elliott, this is done by high impedance
08:59:29 <Vorpal> if you didn't, then you would drive it to zero or to one all the time. Not a good idea.
08:59:50 <Vorpal> elliott, read the introduction to http://en.wikipedia.org/wiki/Tri-state_buffer
09:00:07 <elliott> Vorpal: http://www.altera.com/products/devkits/altera/kit-cyc3-starter.html How shitty is this.
09:00:20 <elliott> It's ubercheap which is nice.
09:00:30 <Vorpal> elliott, I have never used altera. But it looks like York lava is xlinix specific
09:00:40 <elliott> But actually it's the most expensive Altera starter kit that isn't completely unaffordable.
09:00:49 <elliott> I mean ignoring things like "Cyclone IV GX Transceiver Starter Kit" which is just, what is that even.
09:01:02 <elliott> Vorpal: I was just asking for opinions on the specs.
09:01:12 <Vorpal> trying to find them on the page atm..
09:02:04 <Vorpal> elliott, where is the spec for the actual FPGA found on that board
09:02:24 <elliott> You mean Cyclone III?
09:02:25 <Vorpal> elliott, you just gave me the spec for the board itself
09:02:27 <elliott> Or something more specific?
09:02:30 <Vorpal> "Cyclone III EP3C25F324 FPGA"
09:02:32 <Vorpal> that one
09:02:34 <elliott> http://www.altera.com/products/devices/cyclone3/cy3-index.jsp
09:02:40 <elliott> http://www.altera.com/products/devices/cyclone3/overview/cy3-overview.html has model info.
09:03:00 <elliott> 24,624 logic elements it seems?
09:03:05 <Vorpal> yep
09:03:07 <elliott> That is... piddly, isn't it.
09:03:13 <Vorpal> probably not enough for redueron no
09:03:19 <Patashu> high impedence means you'll be overwritten by any other value, right?
09:03:22 <Vorpal> remember 2000 was less than 1%
09:03:23 <elliott> One of the Reduceron papers said twenty-k was less than one percent of their capacity.
09:03:28 <elliott> It was twenty-k
09:03:30 <elliott> not two-k
09:03:35 <elliott> Vorpal: I realise that I've no hope of running the Reduceron
09:03:43 <elliott> oh wait
09:03:44 <Vorpal> Patashu, err, more like *you* won't overwrite anyone else
09:03:45 <elliott> it was two-k yeah
09:03:57 <elliott> Vorpal: But still, is that enough to ... do anything with?
09:04:00 <Patashu> what's the result if two signals conflict?
09:04:08 <Vorpal> elliott, ask ais on that
09:04:12 <Vorpal> Patashu, X
09:04:13 <elliott> Vorpal: Gah :P
09:04:27 <elliott> Can you make an FPGA catch fire with VHDL? Say yes.
09:04:43 <Vorpal> elliott, possibly you could make it overheat if there isn't adequate cooling
09:05:10 <Vorpal> elliott, hm 594 kilobits
09:05:13 <Vorpal> not a lot of ram
09:05:38 <elliott> It has megabytes doesn't it?
09:05:40 <elliott> Just on the board.
09:05:55 <Vorpal> elliott, yes but that will be somewhat more annoying to access you see
09:06:02 <Vorpal> elliott, for a start it will be fixed to byte IO
09:06:30 <Vorpal> elliott, likely they only provide the library of vhdl modules to access it in some more expensive edition
09:06:51 <elliott> Vorpal: I'm tempted to build my own little York Lava-esque thing where absolutely everything is done at the bit level :P
09:07:06 <elliott> Thirty-two-bit word? Why, that's just thirty-two bits in a tuple.
09:07:07 <Vorpal> elliott, hm? But with 7-valued logic?
09:07:11 <elliott> NO, NICE BINARY EVERYTHING
09:07:17 <elliott> BINARY LOVE HAPPY EVERYTHING NICE YUM HAPPINESS HUGS ALWAYS
09:07:17 <Patashu> 9-valued logic!
09:07:19 <Patashu> or possibly more
09:07:21 <Vorpal> <elliott> Thirty-two-bit word? Why, that's just thirty-two bits in a tuple. <-- vhdl does this :P
09:07:40 <Vorpal> Patashu, not sure what more useful values you could add
09:07:42 <elliott> Vorpal: Then byte IO to RAM is indeed inconvenient... it's eight times too much!!!!!
09:07:54 <Vorpal> elliott, eh
09:08:31 <Vorpal> # Quartus® II Web Edition (FPGA design software)
09:08:31 <Vorpal> # ModelSim®-Altera Web Edition (FPGA simulation software from ModelSim)
09:08:33 <Vorpal> web edition?
09:08:35 <elliott> Web edition.
09:08:38 <Vorpal> what the crap is that
09:08:40 <elliott> That... sure is... promising...
09:08:45 <elliott> WHAT HAVE THEY COME UP WITH THIS TIME
09:08:58 <Vorpal> elliott, yes, the thing is, the software is what they really charge you for
09:09:16 <Vorpal> elliott, the FGPA itself is relatively cheap compared to the software for developing
09:09:22 <elliott> It's like Macs, except that nobody actually wants to use the software at all.
09:09:43 <elliott> Vorpal: Do the synthesisers have a command-line interface?
09:09:52 <Vorpal> no clue
09:09:56 <elliott> Frankly if I can avoid creating a single "project" or "solution", it will not bother me in the slightest.
09:09:57 <elliott> :p
09:10:08 <CakeProphet> well, the barrier of entry on bfjoust is too steep now. So I think I'm going to not pursue that anymore and get some sleep.
09:10:17 <Vorpal> elliott, let me check a project directory from xilinix stuff
09:10:35 <elliott> CakeProphet: Is that... surrender I hear?
09:10:42 <elliott> I thought you were going to spend a week on this : (
09:10:55 <elliott> Vorpal: Unfortunately Xilinix's site is a huge huge pain to navigate.
09:10:56 <Vorpal> elliott, this was from a lab at university:
09:10:58 <Vorpal> $ ls
09:10:58 <Vorpal> automake.log full_blink.cmd_log full_blink.lso full_blink.pad full_blink.syr full_blink.ucf _impact.cmd Project.dhp vsim.wlf
09:10:58 <Vorpal> blinkers.dhp full_blink.data full_blink.mfd full_blink_pad.csv full_blink_tb.fdo full_blink.ucf.untf _impact.log __projnav _xmsgs
09:10:58 <Vorpal> blinkers.ise full_blink.gyd full_blink.mod full_blink.pnx full_blink_tb.udo full_blink.vhd _ngo __projnav.log xst
09:11:00 <Vorpal> blinkers.ise_ISE_Backup full_blink._hrpt full_blink.ngc full_blink.prj full_blink_tb.vhd full_blink.vm6 _pace.ucf tmperr.err
09:11:03 <Vorpal> full_blink.bld full_blink.jed full_blink.ngd full_blink.rpt full_blink.tim full_blink.xml pepExtractor.prj transcript
09:11:06 <Vorpal> full_blink_build.xml full_blink.lfp full_blink.ngr full_blink.stx full_blink._trpt half_blink.vhd prjname.lso work
09:11:06 <CakeProphet> no I'm not good at programming in brainfuck, and I definitely wouldn't know code to generate if I tried that.
09:11:09 <Vorpal> (sorry for the spam)
09:11:22 <elliott> CakeProphet: BF Joust is nothing like BF programming really
09:11:23 <coppro> .win 17
09:11:25 <elliott> Vorpal: Like, I literally yelled at the computer trying to navigate the site.
09:11:26 <Vorpal> elliott, a number of those are directories :P
09:11:29 <elliott> Multiple times.
09:11:43 <elliott> It _refuses_ to answer the question "what starter kits do you have?".
09:11:44 <Vorpal> elliott, I'm a bit scared about "automake.log"
09:11:52 <elliott> It _refuses_ to give a flat list of all kits that are available with the prices on the same page.
09:11:52 <Vorpal> it is empty though
09:11:55 <elliott> It is the _worst site ever_.
09:13:08 <Vorpal> heh
09:13:24 <CakeProphet> elliott: no, this is the worst website: http://www.angelfire.com/super/badwebs/
09:13:46 <elliott> this site is way too preachy
09:13:48 <elliott> F-
09:14:05 <elliott> basically this guy is jealous of everyone's web pages for looking far more cool than his which are probably all boring
09:14:13 <elliott> "Misspelled werds and impropr punktuation, make yur web look amaturish, and unfinishd. Awlays run a spel chek befor yu uplode!!!!!! : )"
09:14:16 <elliott> WHAT A FUKEN HYPOCRITES
09:14:29 <Vorpal> elliott, I hope this is a case of Poe's law
09:14:38 <Patashu> really
09:14:39 <elliott> Vorpal: whoosh
09:14:46 * elliott stabs Vorpal a bit.
09:14:48 <Patashu> a deliberately bad web page about bad web pages is...
09:14:53 <Patashu> ?_?
09:14:54 <Patashu> a fake?????
09:14:55 <Patashu> woah
09:14:59 <Patashu> never saw it coming
09:15:10 * Vorpal does a strong drive on the bit in "stabs a bit"
09:15:16 <Vorpal> elliott, hah, X!
09:15:46 <CakeProphet> also: http://www.dokimos.org/ajff/
09:15:51 <Patashu> is there a document somewhere that explains all the interactions betweeen states in 9 state logic?
09:16:03 <elliott> CakeProphet: god i love this one
09:16:07 <Vorpal> Patashu, a text book perhaps
09:16:12 <Patashu> probably lol
09:16:20 <elliott> unfortunately the front page is way better than all the others
09:16:26 <Vorpal> Patashu, anyway you generally don't mix them randomly
09:16:44 <Patashu> no I don't imagine you would
09:17:35 <Vorpal> Patashu, for a start Z only makes sense for an output.
09:17:46 <Patashu> war on drugs -> cryptography?? http://falkvinge.net/2011/06/07/weed-as-surprise-driver-for-mass-cryptoproficiency/
09:18:46 <elliott> war on cryptography -> drugs!
09:18:55 <Patashu> \o/
09:18:55 <myndzi> |
09:18:56 <elliott> cryptography on drugs -> war!
09:18:56 <myndzi> /´\
09:19:01 <elliott> war cryptography -> drugs on!
09:19:02 <Patashu> oh god text penis
09:19:09 <elliott> on! war -> drugs cryptography
09:19:51 <Vorpal> elliott, anyway I can't imagine you would like to program for FPGAs.
09:20:05 <Vorpal> elliott, it is far too low level
09:20:14 <elliott> its declarative
09:20:16 <elliott> and hey i wrote a bootloader
09:20:20 <elliott> HAVE YOU WRITTEN A BOOTLOADER ASSHOLE
09:20:22 <Vorpal> elliott, vhdl and verilog makes asm seem high level
09:20:34 <elliott> THINGS YOU HAVE NOT WRITTEN: A BOOTLOADER ASSHOLE
09:20:39 <Vorpal> elliott, in asm you do ADD r1,r2. In VHDL you write a page of code to do it
09:20:50 <Vorpal> same for verilog
09:21:01 <Patashu> once you have a circuit for adding can't you just reuse it?
09:21:13 <Vorpal> Patashu, yes indeed, but that takes a page of code :P
09:21:24 <Patashu> but you only have to do it once
09:21:27 <Vorpal> Patashu, besides, what about carry forwarding
09:21:31 -!- MigoMipo has joined.
09:21:39 <Vorpal> that would be annoying
09:21:48 <Vorpal> I mean a ripple carry adder is pretty simple
09:22:03 <elliott> yeah so you have to define addition so what
09:22:33 <Patashu> but can you define...division?
09:22:34 <Patashu> dun dun dun
09:22:42 <Vorpal> annoyingly hard likely
09:22:57 <elliott> Patashu: no.
09:23:05 <elliott> the mathematical impossibility of division is why arithmetic never really caught on.
09:23:06 <Vorpal> elliott, well the main issue is making things sequential when you need it. Everything sequential essentially has to be written as a clocked finite state machine
09:23:14 <Patashu> division sucks and dead
09:23:16 <Patashu> rip maths
09:23:17 <elliott> Vorpal: that's not hard.
09:23:21 <elliott> just have a global clock, woop pow done.
09:23:23 <Vorpal> elliott, no, but it is verbose
09:23:28 <Vorpal> elliott, and of course you have a global clock
09:23:39 <elliott> how do you do it clocklessly, anyway?
09:23:58 <Vorpal> elliott, well you can do that for purely combinatorial circuits.
09:24:11 <elliott> explain :P
09:24:12 <Vorpal> or do you mean the crazy sort of advanced clockless?
09:24:21 <Vorpal> like that clockless MIPS CPU?
09:24:24 <elliott> Explain both :P
09:24:50 <Vorpal> elliott, combinatorial circuits: output = logical expression of inputs, no memory of previous state
09:25:04 <Vorpal> for example. the 7-segment display. It doesn't have to keep track of previous state
09:25:11 <elliott> so nothing that requires more than one step to express at all?
09:25:40 <Vorpal> elliott, pretty much. You can express any such expression as a 2-level network of and + or gates (plus inverters before sometimes)
09:25:52 <Vorpal> or nand-nor
09:25:56 <elliott> OK, now what about the crazy sort of advanced clockless? :P
09:25:59 <elliott> But, like, at a slower scale.
09:26:01 <elliott> Clockless addition, say.
09:26:11 <elliott> Would it just have a local clock?
09:26:22 <Vorpal> well addition is clockless. Just wait for all the ripples to get through before reading the result.
09:26:29 <Vorpal> just make your clock slow enough
09:26:34 <Vorpal> a FA is not clocked after all
09:26:42 <Vorpal> but you have to take care of the gate delay
09:26:50 <Vorpal> which means that everything takes a finite time
09:27:00 <Vorpal> elliott, no clue how the super-advanced clockless CPUs work
09:27:03 <Vorpal> ask ais about that
09:27:07 <elliott> PAH
09:27:14 <elliott> The biggest disadvantage of the clockless CPU is that most CPU design tools assume a clocked CPU (i.e., a synchronous circuit). Many tools "enforce synchronous design practices".[4] Making a clockless CPU (designing an asynchronous circuit) involves modifying the design tools to handle clockless logic and doing extra testing to ensure the design avoids metastable problems. The group that designed the A
09:27:14 <elliott> MULET, for example, developed a tool called LARD to cope with the complex design of AMULET3.
09:27:21 <elliott> sure does sound painful
09:27:39 <Vorpal> likely
09:28:05 <Vorpal> metastability would be an issue yes
09:28:20 <Vorpal> clocked circuits nicely avoids that
09:28:23 <elliott> http://www.async.caltech.edu/mips.html ;; this paper isn't gonna be fun to read i guess :D
09:28:48 <elliott> the SEAforth multi-core processor (2008) from Charles H. Moore.[12]
09:28:48 <elliott> the GA144[13] multi-core processor (2010) from Charles H. Moore.
09:28:50 <elliott> oh sna
09:28:51 <elliott> p
09:28:53 <elliott> the chuck is in town
09:28:59 <elliott> and he ain't got no clocks
09:29:31 <Vorpal> eh
09:29:37 <elliott> The Honeywell CPUs 6180 (1972)[7] and Series 60 Level 68 (1981)[8][9] upon which Multics ran asynchronously
09:29:38 <elliott> hawt
09:29:46 <Vorpal> right
09:29:59 <elliott> SO WHAT IF YOU USED A SINE WAVE FOR A CLOCK LOL
09:30:16 <Vorpal> sounds stupid.
09:30:30 <elliott> ;D
09:30:41 <Vorpal> of course you don't get a square wave in practise, only reasonably close
09:31:43 <elliott> reassuring
09:31:50 <Vorpal> what
09:32:12 <Vorpal> elliott, come on, you can't do instantaneous voltage changes in reality...
09:32:33 <elliott> just saying, electronics is a lot less of a comfortable discipline than programming :D
09:32:41 <elliott> "well it's a square wave. ...sort of. physics kind of gets in the way."
09:32:47 <elliott> "uh, booleans. yeah. ours have 9 values..."
09:32:50 <Vorpal> elliott, har
09:33:06 <elliott> "oh well um... not using a clock might make your electronics just sort of fuck up and oscillate around."
09:33:13 <elliott> "but then that usually happens anyway."
09:33:17 <Vorpal> elliott, but yes. With vhdl and verilog you are working at a lower abstraction layer than when programming
09:33:18 <elliott> "we don't really know how to do any of this."
09:33:22 <elliott> "we're basically just bullshitting."
09:33:29 <elliott> "hello i am an electronics engineer and i suck."
09:33:31 <elliott> "elliott is awesome."
09:33:37 <elliott> "oh man i feel so good saying all these true things."
09:33:41 <Vorpal> ...
09:33:59 <elliott> ````It would have been better if images are included in the page
09:33:59 <elliott> --[[Talk:Fall time]]
09:34:00 <HackEgo> No output.
09:35:15 <Vorpal> elliott, just like haskell is a higher abstraction than asm, vhdl and verilog are on a lower level abstraction than asm. Of course both are still higher than EDA software...
09:35:32 <Patashu> EDA? :O
09:35:42 <Patashu> oh this
09:35:48 <Vorpal> Patashu, EDA is kind of like "well, lets place some p-type silicon here, and then some ...
09:35:52 <Vorpal> "
09:35:54 <Patashu> :D
09:36:01 <elliott> that sounds like fun
09:36:03 <elliott> does anyone actually do that?
09:36:33 <Vorpal> elliott, well yes, when designing ASIC for example
09:36:43 <Vorpal> elliott, they tend to have module based systems
09:36:46 <elliott> Vorpal: hmm, but surely Intel's Latest Fancy Processor isn't made by hand, right? :-P
09:37:02 <Vorpal> elliott, probably not, but designs for gate modules used might well be
09:37:04 <elliott> man... wouldn't it be cool to see the source code to the i7??????
09:37:36 <elliott> i wonder who has less ugly designs from a maintenance point of view, amd or intel :P
09:37:51 <nooga> elliott: i've read the memo 23
09:38:23 <Vorpal> elliott, the FP parts are likely auto generated
09:38:27 <elliott> nooga: that seems to be what YorkLava.txt is
09:38:29 <Vorpal> and formally verified
09:38:30 <elliott> Vorpal: FP?
09:38:33 <elliott> oh, floating point, right
09:38:36 <Vorpal> yeah
09:38:38 <elliott> well who cares about that.
09:39:13 <Vorpal> heh
09:39:31 <elliott> man, the York Lava specification of that simple stack machine is really pretty.
09:39:37 <nooga> yeah
09:39:43 <elliott> nicer than vhdl :P
09:39:54 <Vorpal> of course
09:40:11 <elliott> The function 'simPoly' has almost the same type has 'eval', and it is
09:40:11 <elliott> straightforward to define a correctness property for the processor.
09:40:11 <elliott> prop_poly :: Expr -> Integer -> Bool
09:40:11 <elliott> prop_poly e x = eval e x == wordToInt (simPoly e x)
09:40:12 <elliott> :D
09:40:17 <elliott> QuickCheck for hardware
09:40:34 <Vorpal> elliott, of course york lava is not quite as general as vhdl.
09:40:47 <Vorpal> likely there are things you can't do directly in york lava
09:41:01 <elliott> Vorpal: yeah but why would you want to.
09:41:17 <Vorpal> elliott, tri-state buffers looks like one case
09:41:24 <elliott> (I know, I know, "why would you want to create your own hardware anyway"...)
09:43:38 <Patashu> "America is in crisis, " the Republican governor says on a website promoting the event. "We have been besieged by financial debt terrorism, and a multitude of natural disasters."
09:43:38 <Patashu> ugh
09:43:41 <Patashu> FINANCIAL DEBT TERRORISM
09:43:47 <Patashu> the word terrorism is quickly becoming meaningless
09:44:25 <Patashu> <Patashu> haskell is shit!!! <elliott> OMG IRC TERRORISM
09:45:32 <elliott> Patashu: that was... so rude of you to... impersonate me......
09:45:35 <elliott> nick terrorism.............
09:45:41 <elliott> Nick Terrorism, superhero
09:45:54 <Patashu> don't you mean supervillain
09:45:58 -!- elliott has set topic: Programming terrorism: the channel | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
09:45:59 <elliott> Patashu: no
09:46:01 <Patashu> lol
09:46:07 -!- elliott has left ("Leaving").
09:46:12 <Vorpal> what
09:46:14 -!- elliott has joined.
09:46:15 <elliott> oops
09:46:16 <Patashu> NIC terrorism
09:46:19 <Patashu> what I am doing to you atm
09:46:20 <elliott> Patashu: he nicks terrorism
09:46:21 <elliott> that is
09:46:22 <elliott> he steals terrorism
09:46:23 <elliott> from societ
09:46:24 <elliott> y
09:46:25 <Patashu> accept my unsolicited IP packets
09:46:26 <elliott> and safely deposits it
09:46:27 <Patashu> ooooh
09:46:28 <elliott> in the TRASH
09:46:29 <Patashu> clever
09:46:31 <elliott> OHHHHHHH YEAAAAAAAAAAAH
09:46:36 <elliott> S/ [DOLLAR SIGN]//
09:46:38 <elliott> s/caps/not caps/
09:46:51 <cheater_> http://www.gravatar.com/avatar/fb7188d8be002ece64870dffe9ec6fa7?s=32&d=identicon&r=PG
09:47:22 <nooga> elliott: F-lite implementation is interesting itself
09:47:37 <elliott> nooga: it is?
09:52:27 <elliott> nooga: it is?
09:55:36 <elliott> nooga: it is?
09:55:37 <elliott> nooga: it is?
09:55:37 <elliott> nooga: it is?
09:55:38 <elliott> nooga: it is?
09:55:38 <elliott> nooga: it is?
09:56:28 <nooga> i think so
09:56:35 <elliott> howso?
10:00:08 <nooga> because it's simple and can be used as an example when writing a minimal, lazy, functional language
10:00:43 <elliott> well sure
10:01:12 <elliott> the modules are awfully broken up
10:01:21 <Vorpal> what is f-lite?
10:01:31 <elliott> Vorpal:
10:01:32 <elliott> F-lite is a core subset of Haskell. Unlike GHC Core and Yhc Core,
10:01:32 <elliott> F-lite has a concrete syntax. You can write F-lite programs in a
10:01:32 <elliott> file, and pass them to the F-lite interpreter or compiler. Another
10:01:32 <elliott> way to view F-lite is as a minimalist lazy functional language.
10:01:36 <elliott> a symbolic term-rewriting language
10:01:37 <Vorpal> ah
10:01:39 <elliott> that compiles to the reduceron
10:01:45 <elliott> and is the main programming language for it
10:01:55 <Vorpal> ah
10:01:58 <elliott> it's actually not quite a subset, since you omit data declarations
10:02:03 <elliott> so valid f-lite programs aren't necessarily valid haskell programs
10:02:05 <elliott> also it's untyped
10:02:06 <elliott> but yeah
10:06:29 <elliott> hey guys what's a good abbreviation for root
10:06:32 <elliott> as in square root, cube root, ...
10:06:35 <Patashu> rt
10:06:36 <Patashu> normally
10:06:38 <elliott> three letter
10:06:48 <Patashu> too bad
10:06:51 <Patashu> there's only a two letter one
10:07:10 <elliott> :(
10:07:13 <elliott> but Rot is weird :P
10:07:13 <Patashu> rot sounds like rotate, rut doesn't sound like anything...
10:07:28 <Patashu> why not use root(a,b) = pow(a,1/b)
10:07:29 <Patashu> or something
10:07:32 <Patashu> then say pow
10:07:36 <elliott> Oh well, I guess I'll call it Root
10:07:57 <Vorpal> elliott, anything wrong with "root"
10:08:01 <Vorpal> why would it have to be 3 letters
10:08:11 <elliott> Consistency :P
10:08:16 <elliott> data BinOp = Add | Sub | Mul | Div
10:08:16 <elliott> | Exp | Root | Log | Mod
10:08:16 <elliott> | Eq | Lt | Gt
10:08:16 <elliott> deriving (Show)
10:08:17 <elliott> :P
10:08:30 <Vorpal> elliott, you have three two letter ones
10:08:34 <Patashu> you don't need root if you have pow
10:08:37 <Vorpal> elliott, so why not Rt as said above
10:08:51 <Vorpal> elliott, and what is this for
10:08:53 <elliott> Yeah yeah :P
10:08:56 <elliott> Patashu: I do, it's in the spec
10:08:58 <elliott> Vorpal: SyL
10:09:02 <Patashu> hmm OK then
10:09:03 <Vorpal> elliott, esolang?
10:09:12 <elliott> Yes; I'm implementing it solely because I can call the result sylladex.
10:14:39 <elliott> hmm
10:14:45 <elliott> if "PRINT 9" is a statement, what would you call PRINT?
10:14:48 <elliott> people usually talk about like
10:14:50 <elliott> the PRINT statement
10:14:52 <elliott> but that's ambiguous :/
10:14:55 <elliott> the PRINT <???>
10:14:56 <elliott> command?
10:14:56 <Deewiant> Command
10:15:13 <Patashu> command, function, method, subprogram
10:15:21 <Patashu> action
10:15:31 <nooga> word
10:15:51 <elliott> Command should work, thanks
10:23:06 <nooga> what are you doing?
10:25:49 -!- Sgeo has joined.
10:26:51 <elliott> nooga: syl
10:34:32 <Sgeo> !
10:35:42 <elliott> Sgeo: what
10:35:48 <elliott> oh did you die of melatonin
10:35:51 <Sgeo> The update
10:36:23 <elliott> oh right that
10:36:32 <elliott> fucking scratch pulled the fucking beta timeline bullshit
10:36:36 <elliott> asshole
10:36:43 <elliott> also slick is very holy.
10:36:59 <Sgeo> lol
10:39:26 <Sgeo> I formed a hypotheses around the beginning of this update, the ending discarded it
10:46:20 <elliott> hmm, is n+0 -> n constant folding or dead code elimination?
10:50:43 <Deewiant> Instruction simplification
10:51:15 <Deewiant> It's not constant folding unless n is constant
10:52:10 <Deewiant> And DCE is for code that's never run, not code that does nothing
10:54:29 <elliott> Deewiant: My "constant folding" pass does instruction simplification too, then :P
10:54:36 <elliott> I suppose it's not all that unreasonable to interleave the two passes.
11:00:45 <nooga> syl?
11:00:55 <elliott> nooga: it's this semi-decent language.
11:01:00 <nooga> any spec?
11:01:59 <elliott> uh i didn't write it
11:02:01 <elliott> it's on the esowiki
11:02:12 <elliott> but hands off, i'm over-engineering implementing it >:|
11:16:23 -!- sebbu2 has joined.
11:16:23 -!- sebbu2 has quit (Changing host).
11:16:23 -!- sebbu2 has joined.
11:18:42 -!- sebbu has quit (Ping timeout: 240 seconds).
11:18:42 -!- sebbu2 has changed nick to sebbu.
11:19:18 <oklopol> "<Patashu> why not use root(a,b) = pow(a,1/b)" <<< how about Wop
11:20:38 <oklopol> 3 to the wopper of 2
11:21:51 <elliott> lol
11:27:14 <Patashu> LOL
11:27:39 <oklopol> Zwaarddijk: i saw your bachelor's supervisor today and he was bragging about his finnish skills
11:28:59 <oklopol> g2g ~>
11:29:11 <elliott> lol
11:30:33 <elliott> -- lt and gt can wait i am so fucking lazy
11:30:33 <elliott> -- also all the others, fuck this shit
11:46:13 -!- PatashuPikachuRe has joined.
11:46:50 -!- Patashu has quit (Ping timeout: 250 seconds).
11:47:51 <elliott> Maybe (Either Expr Value)... gross
11:58:20 <elliott> *Sylladex.Optimise> constFold (EBinOp Add EReadChar (EBinOp Add (EConst (VInt 0)) (EConst (VInt 0))))
11:58:20 <elliott> EReadChar
11:58:24 <elliott> Hooray.
11:58:29 <elliott> Now for EVEN MORE SPECIAL CASING.
11:59:07 <elliott> *Sylladex.Optimise> constFold (EBinOp Sub (EBinOp Add EReadChar (EConst (VInt 9))) (EConst (VInt 9)))
11:59:07 <elliott> EBinOp Sub (EBinOp Add EReadChar (EConst (VInt 9))) (EConst (VInt 9))
11:59:17 <elliott> This still needs some handling; re-arranging things is gonna be pretty ugly, though.
12:18:19 -!- copumpkin has joined.
12:20:14 -!- BeholdMyGlory has joined.
12:33:15 -!- FireFly has joined.
12:40:25 -!- foocraft has joined.
12:41:00 <nooga> aaaa
12:41:03 <nooga> i must code
12:41:11 <nooga> i have a concrete idea what to code
12:41:18 <nooga> and skills to code it
12:41:30 <nooga> but i'm procrastinating
12:43:58 <elliott> what is the idea
12:44:55 -!- pikhq_ has joined.
12:45:26 -!- pikhq has quit (Ping timeout: 260 seconds).
12:49:17 <elliott> nooga: WE DEMAND YOU TELL US
12:57:40 -!- Kustas has joined.
13:09:50 <CakeProphet> I am forward thinking in that, after a thought, it is now the future.
13:10:41 -!- Kustas_ has joined.
13:12:30 <elliott> CakeProphet: wat
13:13:08 -!- Kustas has quit (Ping timeout: 258 seconds).
13:13:09 -!- Kustas_ has changed nick to Kustas.
13:17:25 -!- ais523 has joined.
13:19:10 <elliott> hi ais523
13:19:10 <elliott> fpga
13:19:11 <elliott> what should i
13:19:13 <elliott> and the
13:19:31 <CakeProphet> elliott: compare to the situation in which I thought in reverse.
13:19:42 <ais523> hmm, I think I need more words to work out what the sentence means
13:20:28 <elliott> ais523: fpga buy kit affordable but is usable i had links but now i don't in clipboard and the fpga and also which of duopoly has support better linux
13:20:32 <elliott> what should i and the
13:20:45 <ais523> ah, I see
13:21:06 <elliott> thank god
13:21:16 <ais523> also, I think they both claim native support for Linux
13:21:27 <CakeProphet> elliott: let a thought be a string X where blah blah blah blah blah time goes backwards when I think.
13:21:28 <ais523> Xilinx's tools showed huge signs of running on Cygwin, when I tried them on Windows
13:21:31 <elliott> yes but that doesn't mean it's any _good_
13:21:34 <ais523> yep
13:21:46 <ais523> I know we're using Altera tools at the moment, because we couldn't figure out the Xilinx stuff at all
13:21:50 <elliott> i'm basically asking which is more tolerable, but actually, Xilinx seem to be a lot more expensive than Altera
13:21:54 <elliott> even for the evaluation boards
13:22:09 <elliott> the Reduceron stuff was done with Xilinx, but that's basically academic since there's no way I could afford anything that could fit it
13:22:14 <ais523> I think it's marketed at managers rather than programmers
13:22:24 <elliott> although being able to use York Lava would be a perk, and it compiles to Xilinx-specific VHDL
13:22:33 <elliott> (York Lava is the declarative Haskell library used to define the Reduceron)
13:22:43 <elliott> (it uses two-valued logic exclusively :-----O)
13:23:41 <elliott> ais523: I was also meaning to ask: how efficient is the code your ICA → VHDL compiler outputs?
13:24:08 <ais523> elliott: possibly not as good as code generated by hand, but much the same order of magnitude
13:24:28 <ais523> apart from it doesn't do pipelining yet, but we may fix that at some point
13:24:44 <elliott> I think York Lava may be similar; the actual basis of it is fairly direct mucking with signals, but it has a bunch of sequential stuff that probably generates less-than-ideal code
13:24:50 <ais523> I know what Lava is about
13:25:04 <elliott> I meant,
13:25:04 <ais523> I'd get in trouble if I didn't
13:25:06 <elliott> in terms of efficiency
13:25:10 <ais523> ah
13:25:24 <ais523> well, Lava is just a really good language for expressing circuits designed by hand
13:25:32 <elliott> yep, but there's also things like
13:25:38 <elliott> let instr = s!code!top in
13:25:39 <elliott> Seq [ Tick
13:25:39 <elliott> , While (instr!isHALT!inv) $
13:25:39 <elliott> Seq [ isLIT instr |> s!rtop <== getLIT instr
13:25:39 <elliott> , isDUP instr |> s!stack!push (s!rtop!val)
13:25:39 <elliott> , isREV instr |>
13:25:39 -!- ais523 has quit (Read error: Connection reset by peer).
13:25:41 <elliott> Seq [ s!rtop <== s!stack!top
13:25:43 <elliott> , s!stack!pop
13:25:45 <elliott> [...]
13:25:47 <elliott> which is decidedly not at...
13:25:48 <PatashuPikachuRe> yeah it's tough, we don't get eruptions around here so I never have enough of the stuff
13:25:49 <elliott> ugh great time to drop connection
13:25:53 <PatashuPikachuRe> and it's so viscious and slow to propagate
13:26:10 -!- PatashuPikachuRe has changed nick to Patashu.
13:26:13 <elliott> you know what ELSE Is viscous and slow to propagate??
13:26:15 <elliott> that's right
13:26:16 <elliott> oil.
13:26:23 <Patashu> idgi
13:26:25 -!- ais523 has joined.
13:26:28 <elliott> ais523:
13:26:32 <elliott> <ais523> well, Lava is just a really good language for expressing circuits designed by hand
13:26:32 <elliott> <elliott> yep, but there's also things like
13:26:32 <elliott> <elliott> let instr = s!code!top in
13:26:32 <elliott> <elliott> Seq [ Tick
13:26:32 <elliott> <elliott> , While (instr!isHALT!inv) $
13:26:33 <elliott> <elliott> Seq [ isLIT instr |> s!rtop <== getLIT instr
13:26:35 <ais523> the remote host closed the connection, for no reason at al
13:26:35 <elliott> <elliott> , isDUP instr |> s!stack!push (s!rtop!val)
13:26:37 <elliott> <elliott> , isREV instr |>
13:26:39 <elliott> <elliott> Seq [ s!rtop <== s!stack!top
13:26:41 <elliott> <elliott> , s!stack!pop
13:26:43 <elliott> which is decidedly not at the level of the low level stuff
13:26:47 <ais523> well, no obvious good reason, anyway
13:26:50 <elliott> or even VHDL
13:27:11 <ais523> it still looks pretty low-level
13:27:27 <elliott> certainly, but my understanding is that "While" and "Seq" are distinctly higher-level concepts than VHDL offers
13:28:32 <ais523> only marginally higher level
13:28:38 <ais523> seq in particular is just wires in what I'm doing
13:29:00 <elliott> fair enough
13:29:03 <ais523> and even while is just wires and one gate
13:29:19 <elliott> ais523: now the actually relevant question: how long is everyone who isn't you or someone else working on it gonna have to wait before we play with the compiler :-P
13:29:26 <elliott> (VHDL scares me. :( )
13:29:32 <ais523> probably a couple of years
13:29:41 <elliott> I WILL SIT HERE UNTIL THEN
13:30:07 <ais523> although I've been doing fun things putting the equivalent of printf statements in the input to the compiler and having them actually work
13:30:15 <ais523> by using the simulator debug API
13:30:32 <ais523> and even making the program exit via an assert-false set to the maximum severity level
13:30:36 <elliott> ais523: stop bragging about your amazing compiler powers while I sit here with the prospect of hacking VHDL manually >:(
13:30:41 <ais523> well, maximum but one, you don't use the one above that unless things go wrong
13:30:50 <elliott> Can I send you Algol code and get VHDL code that you obviously hand-translated really quickly in response? :-P
13:30:58 <elliott> You could even set up a bot. I mean, with strong AI. To translate the code.
13:31:16 <elliott> (Oblig.: You could even release the source code to the bot's AI!)
13:32:34 <ais523> well, the compiler isn't really working properly yet
13:33:02 <ais523> and even when we finish implementing what we've done so far, it'll be missing at least one important feature, and one massively important optimisation (which is about as fundamental to hardware programming as TCO is to functional programming)
13:33:04 <elliott> a (*b)() is the same as a (*b)(void) in C, right? even though (in C90) a b() and a b(void) aren't (as prototypes)
13:33:11 <elliott> ais523: which important feature?
13:33:16 <ais523> pipelining
13:33:48 <elliott> ais523: btw, Vorpal told me to ask you about advanced clockless stuff, so I'm going to go out on a limb and assume he really hates you
13:33:54 <ais523> and, I think a(*b)() isn't quite the same as a(*b)(void)
13:34:08 <elliott> ISTR it is; you can't have a function pointer to something of indeterminate arguments
13:34:14 <ais523> elliott: FPGAs aren't really designed for that
13:34:18 <elliott> You have to use a pointer to varargs or something else ~wAcKy~.
13:34:35 <ais523> you could get it working in theory, but you'd be wasting a large proportion of their circuitry
13:34:50 <ais523> and function pointer to something of indeterminate arguments is how it worked all the time prior to C89
13:34:55 <ais523> I've even used some in a program I was working on
13:35:07 <ais523> because I wanted a function that you could pass another function of the same type to as an argument
13:35:14 <ais523> and indeterminite arguments is obviously the only way to express that in C
13:35:40 <elliott> But IIRC you need to cast a function pointer into a () one
13:35:44 <elliott> Which obviously means they're not compatible
13:35:49 <ais523> no, you don't
13:35:58 <elliott> ah, stackoverflow agrees
13:36:02 <elliott> which actually makes me believe it less, but
13:36:37 <CakeProphet> ais523: I've been looking at cyclexa as inspiration for my own regular expression grammar, by the way. Looks very interesting.
13:36:43 <ais523> another example: int (*b)() = global_variable; b(2.0f) calls b as if it expects a double
13:36:54 <ais523> and int (*b)(float) = global_variable; b(2.0f) calls b as if it expects a float
13:37:13 <elliott> ais523: i'm asking this as part of a ridiculously intentionally-overengineered SyL implementation, FWIW
13:37:17 <ais523> SyL?
13:37:25 <elliott> it's this fairly decent language on the wiki http://esolangs.org/wiki/SyL
13:37:32 <elliott> i picked it because it was high up in recent changes and not completely idiotic
13:37:37 <ais523> you know, I didn't even think to ask what you were doing, I just assumed there was a reason and didn't care if there wasn't
13:37:42 <elliott> and also because i can call the resulting implementation sylladex
13:37:47 <elliott> my motives are
13:37:48 <elliott> rather flimsy
13:38:04 <elliott> but hey, it'll be the most useful, optimising, flexible of a language you'll never ever want to use
13:38:05 <ais523> they're good enough for #esoteric
13:38:22 <ais523> also, that page is uncategorised
13:38:27 <ais523> I've been forgetting to check that in the more recent languages
13:38:29 <Vorpal> <elliott> ais523: btw, Vorpal told me to ask you about advanced clockless stuff, so I'm going to go out on a limb and assume he really hates you
13:38:39 <elliott> i can't categorise it, i'm too busy poking five thousand holes in the spec: http://esolangs.org/wiki/Talk:SyL
13:38:45 <Vorpal> I only said that ais was more likely to know about it than me
13:38:57 <ais523> oh wow, http://esolangs.org/wiki/Special:Uncategorizedpages actually works
13:39:07 <ais523> perhaps I should clear it out some day
13:40:46 <elliott> you expected it to not work?
13:41:03 <elliott> only a hundred and eighty six pages, it seems
13:41:17 <elliott> you can reduce that by three by deleting the terrible articles:
13:41:24 <elliott> http://esolangs.org/wiki/Prefix_notation
13:41:25 <elliott> http://esolangs.org/wiki/Postfix_notation
13:41:27 <elliott> http://esolangs.org/wiki/Surround_notation
13:41:29 <ais523> well, some are subpages of other things
13:41:30 <elliott> although IIRC there's a fourth
13:41:33 <CakeProphet> lol surround notation
13:41:36 <elliott> ah, http://esolangs.org/wiki/Infix_notation
13:41:59 <elliott> CakeProphet: no no, the esowiki is _totally_ the place for tehz to make articles about his weird, arbitrary distinctions between different aspects of notation that nobody else really agrees with
13:42:14 -!- oerjan has joined.
13:42:15 <elliott> "Infix notation is one of the 4 possible ways to describe a program." ;; makes less and less sense each time i read it
13:42:16 <CakeProphet> the correct term for that is circumfix... but "surround" makes it sound high quality, like good speakers.
13:42:25 <elliott> lol
13:42:28 <elliott> thx surround notation
13:42:30 <ais523> he forgot postcircumfix!
13:42:35 <elliott> postumfix
13:43:04 <oerjan> also nullfix
13:43:24 <elliott> hmm, now do I compile the AST directly into the backend, or do I want to compile it to some kind of VM first...
13:43:51 <CakeProphet> elliott: compile to a shell script that JITs
13:44:11 <elliott> lol
13:44:12 <CakeProphet> JIT compiles a bytecode that is
13:44:20 <ais523> oerjan: is a nullfix operator one that has to be the entire program if it's used at all?
13:44:20 <CakeProphet> just one
13:44:45 <ais523> or did you mean the concept more commonly called an operand, but interpreted in a weird way?
13:44:49 <CakeProphet> on that note, time to go get a drug test brb
13:45:34 * elliott tests brb
13:45:39 <elliott> I haven't got a drug, though
13:45:45 <elliott> so my results may not be what you're looking for
13:46:15 <elliott> hmm, (somestruct){ ... } is C99, right?
13:46:29 <oerjan> ais523: i was thinking of haskell's f x notation :P
13:46:50 <ais523> ah
13:46:59 <oerjan> oh and the ever popular wontfix
13:46:59 <ais523> that's an infix operator, just the operator is zero characters long
13:47:14 <elliott> also, how does one actually do a union literal?
13:47:17 <elliott> I'm not sure how they work at all
13:48:05 <ais523> union float_or_int {float f; int i;} /* ... */ (union float_or_int){.i = 4}
13:48:18 <elliott> do you have to use field syntax like that?
13:48:22 <ais523> C99 only, that syntax, but I don't think it works at all in C89
13:48:39 <elliott> also, I don't need the (foo) if the union is a field of a struct, right?
13:48:41 <elliott> I can just do {...}
13:49:05 <ais523> in a struct literal, yes
13:50:47 <ais523> oh right, KDE
13:50:51 <elliott> wat
13:50:56 <ais523> I'd spent all this time complaining about an awkward default setting on my feed reader
13:51:00 <elliott> haha
13:51:06 <ais523> and then I realised it was KDE not Gnome and I'd never actually opened the settings dialog box
13:51:08 <elliott> hmm, challenge: write a C expression that, given x, evaluates to negative one if the result is negative ("equal to EOF" is also acceptable), and the value otherwise
13:51:10 <ais523> now it does what I want
13:51:11 <elliott> but x can only be evaluated once
13:51:12 <elliott> basically I want
13:51:20 <elliott> if (getchar() == EOF) -one else getchar()
13:51:23 <elliott> but as an expression
13:51:26 <elliott> without re-evaluating getchar()
13:51:56 <ais523> it's easy enough if you can cheat and use GCC extensions
13:52:05 <elliott> how?
13:52:29 <ais523> ((getchar() - EOF ?: -1-EOF)+EOF)
13:52:46 <ais523> but ?: takes three arguments in C89 and C99
13:52:46 <elliott> heh
13:53:51 <ais523> what was User:Uesr up to, btw?
13:53:54 <elliott> ais523: spambot
13:53:57 <ais523> I can find out but am worried it might be NSFW
13:54:00 <elliott> ais523: it's not
13:54:07 <elliott> well, unless you consider spam NSFW
13:54:13 <ais523> ah, right
13:54:15 <ais523> how pointless
13:54:23 <elliott> ugh, even addition is a pain with this direct-translation scheme
13:54:26 <ais523> I'd have probably blocked in addition to the userpage deletion
13:54:27 <elliott> definitely feelin' the VM vibes here
13:54:47 <elliott> although I don't really want to use a stack vm, it feels like such a copout when I could do register allocation
13:55:23 <ais523> haha, wow this is going to be beautifully insane
13:55:30 <ais523> will you have a reload pass more insane than gcc's?
13:55:59 <elliott> ais523: unfortunately, I don't know what a reload pass is
13:56:13 <ais523> I can explain what it is simply enough
13:56:15 <elliott> have I mentioned I'm planning a full FFI? :/
13:56:26 <elliott> -- TODO: constant-fold across [function -Ed] calls
13:56:30 <elliott> actual comment in Optimise.hs
13:56:32 <ais523> the way gcc and many other compilers work is, originally they assume an infinite number of registers
13:56:34 <elliott> well, sans the [] bit which I just added now
13:56:51 <ais523> and then adapt the code to allow for the finite number of registers they have in practice
13:57:05 <ais523> (SSA generally ends up naturally falling into an infinite-registers model)
13:57:21 <ais523> so they do it by reassigning registers, reusing registers with dead values, and worst-case spilling to memory
13:57:28 <ais523> that's the reload pass
13:57:48 <elliott> haha
13:58:00 <elliott> ais523: they should take that to its logical conclusion, and eliminate memory entirely
13:58:02 <ais523> apparently, everyone who understands how gcc's works has gone insane, or else recovered by refusing to speak of it ever again
13:58:16 <elliott> just treat all storage as part of the infinite domain of registers
13:58:23 <elliott> and let the reload pass sort out the best place to put it
13:58:36 <elliott> this feels like a remarkably ais523 thought to have, which pleases me greatly
13:58:53 <ais523> elliott: well, one of the main advantages we claim for our compiler is that it doesn't use centralised memory at all
13:59:08 <ais523> if it needs memory that it can't store in a LUT's delay slot, it goes and makes a small amount of memory locally
13:59:10 <elliott> i've always wanted a compiler that doesn't use centralised memory at all
13:59:22 <ais523> because memory bandwidth is the limiting factor nowadays, rather than actual storage capacity, for most programs
13:59:51 <elliott> ais523: do you have any opinion on how crappy/uncrappy this is? http://www.altera.com/products/devkits/altera/kit-cyc3-starter.html
14:00:10 <elliott> specs on the actual fpga model seem to be here http://www.altera.com/products/devices/cyclone3/overview/cy3-overview.html
14:00:38 <elliott> I know it has about a tenth of the logic elements that the Reduceron guys' FPGA has :P
14:01:02 <ais523> it looks /very/ small by FPGA standards
14:01:19 <ais523> anyway, I have to go to a meeting
14:01:23 <elliott> OK
14:01:30 <elliott> FWIW, that's the highest-end starter kit they seem to have
14:01:39 <elliott> apart from ones which seem to be targeted at people doing weird non-generic stuff
14:01:46 <elliott> something about "GX tranceivers"
14:02:37 <elliott> yikes, that has half the logic elements
14:02:41 -!- Patashu has quit (Ping timeout: 240 seconds).
14:03:33 <ais523> or, hmm, the person I'm meant to meet isn't there
14:03:55 <ais523> I'll wait for him to phone me
14:04:26 <ais523> ah, OK, the FPGA itself isn't all that small
14:04:36 <ais523> just that the board isn't designed to allow access to its full capabilities at all easily
14:04:57 <elliott> heh
14:05:16 <ais523> you'll find that this is often the case
14:05:24 <ais523> in fact, FPGAs nowadays tend not to have simple VHDL/Verilog interfaces
14:05:31 <elliott> really?
14:05:43 <ais523> instead you need to use some crazy design flow wizard thing that takes care of synthesizing a whole lot of crazy boilerplate automatically, more or less like firmware
14:05:56 <ais523> and custom VHDL or Verilog you have to plug into it via an FFI-type thing with crazy interfaces
14:06:00 <elliott> eurgh
14:06:08 <ais523> we figured out how to turn that off with the Altera tools, but not with the Xilinx tools
14:06:14 <elliott> does the Altera toolchain just have a command-line synthesiser I can use and forget about the rest? :P
14:06:44 <ais523> (or rather, the Xilinx tools, you could turn it off but then there was no obvious way to connect your program to anything, and I spent a week trying to work out how on the Xilinx website and failing)
14:07:03 <ais523> (at least Altera give pinouts for their board; how to actually tell them to the compiler is non-obvious but we worked it out eventually)
14:16:24 <elliott> hmm
14:16:29 <elliott> to stack machine or not to stack machine
14:22:39 -!- ais523 has quit (Read error: Connection reset by peer).
14:28:18 -!- ais523 has joined.
14:28:36 -!- Kustas has quit (Quit: appled into ipad).
14:34:29 <Sgeo> Chrome seems to have decided to stop displaying favicons
14:37:55 <Sgeo> Reading the lexical analysis wiki
14:38:00 <Sgeo> article
14:38:27 <Sgeo> It mentions a program that makes lexica analyzers. I don't need to do that, right, it's easy to make my own?
14:39:06 <oerjan> sure
14:39:29 <Sgeo> Although if there's something that makes lexers in Javascript, I might not bother to roll my own
14:41:08 <Sgeo> Wikipedia article continues to talk as though I shouldn't roll my own unless I have to
14:43:53 <Vorpal> elliott, what is that VM you are working on?
14:44:27 <elliott> for syl
14:44:45 <Vorpal> ais523, why would xilinx and altera do those insane boilerplate thingies you mentioned!?
14:44:59 <ais523> Vorpal: why does Windows do wizards?
14:46:27 <Vorpal> ais523, Hm. From what I remember it worked like this when I used xilinx stuff. You wrote your vhdl file. Then you told it which one was the top entity in the IDE and right clicked somewhere to get a file where you could map signals to pins.
14:46:35 <Vorpal> maybe that was some old model
14:47:13 <ais523> that still works, in both Altera and Xilinx, although the exact place to right-click can take us an hour to find sometimes and we keep forgetting
14:47:32 <ais523> the issue with the Xilinx tools is that they gave no indication of what pin was connected to what on the evaluation board
14:47:32 <Vorpal> hm
14:48:07 <Vorpal> ais523, oh okay. I think the board I used was a custom made one at the university. At least it looked like it was hand etched...
14:48:18 <Vorpal> (not completely straight lines and so on)
14:48:45 <ais523> (one frustrating issue with the Altera thing is that the pin assignments tools makes you pick the pin names from a drop-down list, you can't just type them in, which is really annoying as there are hundreds of pins and the names are no more than four characters long)
14:48:53 <ais523> and hand-etched boards still tend to have straight lines
14:49:03 <ais523> the major difference is that the boards tend to be white rather than green or blue if etched by hand
14:49:16 <Vorpal> ais523, the board was yellow
14:49:19 <ais523> ah, right
14:49:27 <Vorpal> I never seen white ones
14:49:31 <ais523> that's what the white boards look like if they've been sitting in an acid bath for an hour or so
14:49:33 <elliott> <ais523> (one frustrating issue with the Altera thing is that the pin assignments tools makes you pick the pin names from a drop-down list, you can't just type them in, which is really annoying as there are hundreds of pins and the names are no more than four characters long)
14:49:36 <ais523> which is part of the process
14:49:37 <Vorpal> ah
14:49:42 <elliott> do they support kb completion?
14:49:46 <ais523> nope
14:49:51 <Vorpal> hahah
14:49:51 <ais523> we tried that
14:49:56 <Vorpal> how awful
14:50:02 -!- foocraft has quit (Quit: Leaving).
14:50:14 <elliott> lol
14:50:16 <ais523> we assume that the thing is backed by a text file somewhere so we could edit it by hand, but we never found the file; perhaps it's in a binary format instead
14:50:42 <Vorpal> ais523, for xilinx it is definitely a text file, though iirc they have a GUI drag-and-drop kind of thingy too
14:51:11 <ais523> yep, agreed
14:51:15 <ais523> we found the file in question for xilinx
14:51:37 <Vorpal> you could even open it from the GUI thingy by simply clicking somewhere iirc
14:51:46 <Vorpal> ais523, but why don't they give you access to the pins in a straight-forward way? I don't get it. What is in it for them?
14:52:01 <elliott> incompetence
14:52:23 <ais523> yep, it's typical large program design
14:52:47 <ais523> hmm, have you ever used Eclipse? imagine a program designed along similar lines, but getting all the details wrong
14:52:48 <ais523> or, well, wronger
14:52:56 <Vorpal> ais523, btw, why do hand etched boards tend to be yellow/white rather than green or blue?
14:53:03 <ais523> it's a different process
14:53:38 <Vorpal> <ais523> hmm, have you ever used Eclipse? imagine a program designed along similar lines, but getting all the details wrong <-- eclipse is rather annoying. The IDE for VxWorks 6.x and later is based on eclipse, and it is annoying to use.
14:53:45 <ais523> I think it probably uses different chemicals, or something
14:53:50 -!- oerjan has quit (Quit: leaving).
14:53:56 <ais523> Vorpal: that's the sort of thing I'm getting at, wrt Xilinx/Altera toolchains
14:54:03 <Vorpal> ah
14:54:21 <Vorpal> ais523, are there any other FPGA companies?
14:54:40 <ais523> also, happy IPv6 day, everyone!
14:54:45 <ais523> Vorpal: no major ones, as far as I know
14:54:49 <Vorpal> hm
14:54:51 <ais523> as elliott said, it's a duopoply
14:54:53 <ais523> *duopoly
14:55:05 <Vorpal> is that a real word?
14:55:13 <Deewiant> Yes
14:55:17 <Vorpal> hm okay
14:55:31 <Vorpal> ais523, well, I guess altera is better, if they provide pinouts.
14:55:40 <Vorpal> are the pinouts hard to find?
14:56:03 <ais523> not too bad, they're in the manula
14:56:04 <ais523> *manual
14:56:08 <Vorpal> ah
14:56:14 <ais523> for the evaluation board
14:56:23 <Vorpal> right
14:56:36 <Vorpal> sounds fun
14:56:48 <Vorpal> ais523, how did you use it with the compiler
14:56:52 <Vorpal> might be useful to know
14:57:06 <ais523> I didn't set it up myself
14:57:08 <Vorpal> ah
14:58:37 <Vorpal> ais523, I saw something about "web edition" of their IDE. What was that about?
14:58:42 <Vorpal> altera's IDE that is
14:58:49 <Vorpal> that came with the board elliott was looking at
14:58:55 <ais523> I don't know
14:58:59 <elliott> prolly jusr means
14:59:03 <elliott> comes with no cdrom
14:59:08 <ais523> they tend to give academic versions of the IDEs to universities for free
14:59:13 <elliott> you download the ide from teh interwebs
14:59:15 <Vorpal> elliott, better check...
14:59:24 <ais523> e.g. Xilinx gave us a license for up to 50 unique MAC addresses
14:59:40 <elliott> well i know that for a fact, it's stated elsewhere
15:00:10 <ais523> bleh, this network isn't doing IPv6
15:01:27 <CakeProphet> ais523: you could also interpret function application in Haskell as being prefix, with the space not being a special operator but the function being the operator itself.
15:01:44 <ais523> CakeProphet: that muddles operators and operands
15:02:10 <Vorpal> In addition to ModelSim-Altera Starter Edition software, Altera offers ModelSim-Altera Edition with the following additional enhancements:
15:02:10 <Vorpal> * 33 percent faster simulation performance
15:02:10 <Vorpal> * Support for large FPGA designs with no line limitations
15:02:14 <Vorpal> 33% faster?
15:02:14 <Vorpal> what
15:02:20 <Vorpal> that is a stupid "feature"
15:02:54 <ais523> hmm, now I'm trying to remember if both Altera and Xilinx use ModelSim
15:02:56 <Vorpal> do they cap the speed of the other one by 33% of what your processor can do or something like that
15:03:02 <Vorpal> ais523, xilinx definitely does
15:03:11 <CakeProphet> really it's all relative to what is the object in question. A quoted string is circumfix if you go by quotes, but you could also say that the inner string leme itself is infix in relation to the quote lexemes
15:03:21 <Vorpal> "# 10,000 executable line limitations"
15:03:22 <Vorpal> ew
15:03:23 <CakeProphet> s/leme/lexeme
15:03:28 <ais523> Vorpal: ouch
15:03:30 <CakeProphet> though I now want to define the word leme..
15:03:33 <ais523> 10,000 is nothing in VHDL
15:03:37 <Vorpal> ais523, in the starter edition that is
15:03:44 <ais523> although I wonder if you could get around it by deleting all the newlines
15:03:51 <Vorpal> ais523, hehe
15:03:58 <ais523> if it's that arbitrary a restriction
15:04:56 <Vorpal> the web edition won't use more than one CPU core when synthesising it seems
15:05:09 <Vorpal> nor will it do incremental compilation
15:05:10 <Vorpal> ouch
15:05:34 <CakeProphet> but, yes, typically the operator is the thing in question. In the case of function application in Haskell I would say that the operator is prefix, because the function application isn't really a lexeme in itself.
15:05:35 <Sgeo> I have no idea how to write an incremental compiler
15:06:04 <Vorpal> Sgeo, make + multiple C files = incremental compilation at file level granularity
15:06:19 <Vorpal> I assume it means the web edition simply forces a full recompilation every time
15:07:12 -!- SimonRC has quit (Ping timeout: 260 seconds).
15:07:45 <Vorpal> $2,995 USD for the cheapest non-free version.
15:07:48 <Vorpal> oh come on...
15:08:23 -!- SimonRC has joined.
15:08:36 <Vorpal> that is more expensive than the computer I'm using
15:10:25 <CakeProphet> Vorpal: dude it's perfectly reasonable. strings of machine isntructions encoded as bytes are valuable commodities. There's a very limited supply of it and high demand, so the price is high. BASIC ECONOMICS.
15:12:24 <Vorpal> hare
15:12:26 <Vorpal> har*
15:13:35 <ais523> apparently, in the world of radio frequency electronics simulation, at any one time there's only one program that everyone uses
15:13:43 <ais523> what happens is that it gets more expensive over time, as it's the only one available
15:14:01 <ais523> then someone else writes a program that's better, more featureful, and a tiny percentage of the price, then drives the incumbent out of business
15:14:19 <ais523> then they're the only one available, and it gets more expensive over time...
15:14:31 <Vorpal> ouch
15:14:36 <Vorpal> ais523, and stupid too
15:15:12 <ais523> in the world of FPGAs, it's even worse, as it's hard to enter the market with the FPGA /manufacturers/ having a huge advantage in writing software
15:15:49 <elliott> howso?
15:16:19 <Vorpal> ais523, because they don't release the specs required for you to figure out how to compile stuff to their products
15:16:23 <Vorpal> err
15:16:24 <Vorpal> elliott, ^
15:16:40 <ais523> and also, they get to bundle software with hardware
15:17:07 <ais523> and hardware with other hardware that needs specialised software
15:21:09 <Vorpal> ais523, what about EDA? I guess it is about as bad there?
15:21:21 <ais523> I can't expand that acronym
15:21:28 <Vorpal> electronic design automation
15:21:33 <Vorpal> ais523, ASICs and so on
15:21:41 <CakeProphet> !simpleacro
15:21:45 <ais523> ah, in that case I don't know
15:21:48 <EgoBot> ​ZMGCMKM
15:22:01 <CakeProphet> How do you guys feel about ZMGCMKM?
15:23:16 -!- SimonRC has quit (Ping timeout: 252 seconds).
15:24:14 <Vorpal> CakeProphet, what is that one?
15:26:12 <CakeProphet> uh, Zesty Military-Guided Chickens Masturbating Kill Mode
15:26:38 <CakeProphet> it's the latest buzzword.
15:26:46 <Vorpal> ...
15:27:16 <CakeProphet> THE LATEST.
15:27:45 <CakeProphet> I have the buzzword feed /right here/
15:32:29 -!- CakeProphet has set topic: Redefining /Extreme/ Programming | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
15:36:00 <CakeProphet> We should make an esoteric software development methodology.
15:36:26 <CakeProphet> Complete with fancy diagrams
15:36:34 <CakeProphet> with lots of arrows.
15:51:18 <Sgeo> I think I understand lexing well enough at this point.
15:54:36 -!- Kustas has joined.
15:54:57 <Sgeo> http://en.wikipedia.org/wiki/File:Parser_Flow.gif I thought compiler==translator
15:55:13 <Sgeo> Even if the former has more of a connotation of complexity than the latter
16:01:53 <CakeProphet> I would say they're close enough in similarity to almost be the same thing.
16:07:39 -!- SimonRC has joined.
16:17:47 -!- SimonRC has quit (Ping timeout: 260 seconds).
16:23:19 -!- TOGoS has joined.
16:23:27 -!- TOGoS has left.
16:24:22 -!- SimonRC has joined.
16:57:38 -!- Kustas has quit (Quit: left forever).
16:58:42 <elliott> how do i shot assembly
16:59:35 <CakeProphet> how do I freakin' figure out US tax law
17:03:52 <Sgeo> Conservapedia makes me laugh
17:04:12 <Sgeo> There's an argument on a talk page's archive about whether autumn foliage is objectively beautiful
17:04:23 <Sgeo> http://www.conservapedia.com/Talk:Counterexamples_to_Evolution/archive1#Some_Comments
17:04:27 <elliott> fizzie: you're a nasm scientist right
17:04:34 <elliott> Sgeo: holy shit, I'm unblocked
17:07:02 <Sgeo> elliott, hmm?
17:08:30 <elliott> Sgeo: almost the entire world is blocked IP-wise (403) from Conservapedia
17:08:36 <elliott> but at least i can see it now, maybe they lifted it
17:08:39 <Sgeo> o.O
17:08:54 <elliott> Sgeo: (Schlafly asked if there was a way he could just ban all non-USA IPs so he wouldn't have to deal with trolls)
17:09:07 <elliott> (this... worked, but I gather a lot of US IPs are collateral damage)
17:09:19 <elliott> but evidently Conservapedia's five editors aren't affected
17:10:41 <Sgeo> Wouldn't it have made more sense to just block non-US IPs from editing?
17:10:53 <Sgeo> I guess it might require some sort of entry level programmer
17:11:30 <elliott> why should non-US people be allowed to view the American encyclopedia?
17:11:33 <elliott> they don't matter.
17:11:41 <elliott> to be honest, they're hardly even people.
17:11:46 <CakeProphet> "The annual rate of extinction of species far exceeds any plausible rate of generation of species. Expanding the amount of time for evolution to occur makes evolution even less likely."
17:12:05 <CakeProphet> High extinction rate is a recent phenomenon as a result of massive human habitation..
17:12:18 <elliott> arithmetics are hard
17:12:20 <elliott> how does nasm works
17:12:25 <elliott> how does ... archaeology
17:12:39 <Sgeo> CakeProphet, did you see the bit about "If there's a 5% chance of any one of these being true"?
17:12:45 <CakeProphet> ...yes.
17:12:49 <CakeProphet> Parsimonious repetition of design elements throughout creation, e.g. the eye's appearance in remarkably different species. For such complex structures to arise repeatedly via evolution is impossible, as evolution is an inherently random and historically contingent process.
17:12:57 <CakeProphet> ....what? that's an argument for evolution if anything.
17:14:01 <elliott> [SAssign varname (EConst (VInt 999)),
17:14:01 <elliott> SAssign varname (EBinOp Add (EVar varname) (EVar varname)),
17:14:01 <elliott> SIf (EVar varname) [SAssign varname (EConst (VInt 0))]]
17:14:08 <elliott> time to hand-translate this to hypothetical bytecode
17:14:23 <CakeProphet> Pleiotropy, the fact that a change of a single gene can have several different effects, renders the "improvement" of animals by random mutation impossible, as any mutation with a potentially beneficial effect will be coupled with one or more other potentially lethal effects.
17:14:43 <CakeProphet> except, you know, when the lethal mutations kill the organism and prevent inheritance, and the beneficial ones remain.
17:14:59 <Sgeo> CakeProphet, keep reading them in order. There's a ... I want to call it a punchline, it's so ridiculous
17:15:06 <elliott> guys, what's the best way to do a stack of floating point in xeightysix assembly
17:15:11 <elliott> just push fp values to the normal stack?
17:15:24 <Sgeo> Or, um, just skip ahead *shrug*
17:15:38 <CakeProphet> For evolution to be true, every male dog, cat, horse, elephant, giraffe, fish and bird had to have coincidentally evolved with a female alongside it (over billions of years) with fully evolved compatible reproductive parts and a desire to mate, otherwise the species couldn't keep going.
17:15:57 <CakeProphet> ...yes, there's a definite line. One day, a baby is born and it just can't mate with anything of its species..
17:17:06 -!- monqy has joined.
17:17:07 <CakeProphet> learn2 understand speciation plz.
17:18:39 <tswett> CakeProphet: well, the pleiotropy argument states that beneficial mutations are impossible, because a change to any gene will cause more harm than good.
17:19:52 <CakeProphet> is that a fact?
17:20:01 <tswett> I don't think so.
17:20:42 <CakeProphet> this one is the best so far:
17:20:45 <CakeProphet> Mutations cause a loss of information, rendering it mathematically impossible for mutations to advance the complexity of life. Similarly, entropy (disorder) increases over time, making it impossible for order to increase on its own. According to Cornell University geneticist John C. Sanford, not even the energy of the Sun, which might otherwise reduce entropy in a system not thermodynamically isolated such as the Earth,
17:22:43 <CakeProphet> poorly formulated information theory, mathematical assertions about complexity, thermodynamics, ecology, and Biblical apocalypse. There's even a smart guy as a source.
17:23:44 <CakeProphet> ...this is such an entertaining read.
17:24:09 -!- zzo38 has joined.
17:24:59 <elliott> <CakeProphet> For evolution to be true, every male dog, cat, horse, elephant, giraffe, fish and bird had to have coincidentally evolved with a female alongside it (over billions of years) with fully evolved compatible reproductive parts and a desire to mate, otherwise the species couldn't keep going.
17:25:00 <elliott> tru luv
17:25:35 <tswett> Some of the things on that list seem like interesting, potentially valid arguments. Some of them seem like confused ravings.
17:26:17 <tswett> See, here's a potentially valid one: "Lack of genetic diversity among the Homo sapiens species. Were evolution and the old earth true, the human population would show a much larger genetic variance."
17:26:39 <tswett> Maybe they've done some mathematical models that show that, if evolution is true, then there indeed must be more genetic variance than there actually is.
17:28:55 <tswett> And here's a confused raving: "Evolution does not account for the immense amount of information in the genome, as well as the origin of the information-processing systems in the cell. Information always has a sender, who must be God in this case."
17:29:41 <elliott> tswett: I'm sorry that you deny beauty.
17:29:51 <elliott> You will suffer for it for the rest of your pitiful heathen life.
17:30:03 <zzo38> "...beneficial mutations are impossible, because a change to any gene will cause more harm than good..." This seems nonsense. Even if this is the case there can be changes to multiple genes and this can cause beneficial. And even if one causes more harm than good, does it say the harm is significant? However, none of this means any of the stuff I said actually happens either.
17:30:37 <zzo38> You also failed to account for quanglement.
17:30:46 <elliott> everyone always fails to account for quanglement
17:30:54 <Sgeo> "Scientists have found proof that the first chicken came before the first egg,[40] consistent with a special creation of chickens but not with a gradual descent with modifications from a proto-chicken and proto-egg."
17:31:54 <zzo38> ??? How old have chickens be? And how do you define what exactly counts as a first chicken or first egg, etc?
17:32:36 <zzo38> And why did Conservapedia block everyone?
17:33:31 <elliott> gah, dealing with things greater than one machine word in assembly is a pain :(
17:34:39 <zzo38> Does it have carry function?
17:34:44 <CakeProphet> tswett: There's plenty of genetic diversity in humans. But more importantly, "genetic diversity" is not something you can just measure; it's a qualitive statement. Even more importantly, it is not required that all species exhibit genetic diversity for evolution to be a valid theory.
17:35:08 -!- zzo38 has quit (Remote host closed the connection).
17:35:56 <tswett> CakeProphet: you *can* measure genetic diversity, though, can't you? Grab some random people, perform some genetic tests on them, and see how diverse their genes are, compared to your mathematical model.
17:36:28 -!- Kustas has joined.
17:36:37 <CakeProphet> tswett: hmm, well, yes. You can determine it that way.
17:36:49 <CakeProphet> statistically.
17:36:56 <tswett> Yup.
17:38:48 <CakeProphet> However, you still have no metric for what is "very genetically diverse" and "not very genetically diverse", these are still fuzzy qualitive statements. You'd need to compare a number of different species, and perhaps compare between species.
17:39:09 <CakeProphet> and then you'd still probably need to assign some arbitrary scale to determine genetic diversity.
17:39:22 <tswett> Right. I have no idea what sort of analysis the people actually did, much less whether or not it was valid.
17:40:00 <CakeProphet> tswett: an admirable defense nonetheless. :)
17:41:55 <elliott> hmm, structuring this bytecode in haskell kind of sucks
17:42:00 <elliott> I suppose I want a map of labels to code
17:42:07 <cheater_> looks cool: http://www.deliantra.net/screenshots.html
17:42:07 <elliott> but it's so ugly to use like arbitrary ints for the labels
17:42:16 <elliott> I suppose I could include the relevant code directly but that would be a real pain for the code generators
17:42:53 <CakeProphet> But yes, I agree with this article that the law of thermodynamics necessarily implies slow ecological stagnation, which is an obvious precursor to the End Times. This assertion is in direct contradiction with the Fourth Law of Evolutionary Theory(tm) which states that "In order for the process of evolution to be true, everything must get better all of the time."
17:43:27 <CakeProphet> there's not refuting that, really.
17:43:29 <CakeProphet> *no
17:54:10 <CakeProphet> The main problem with most of these arguments is that they attack strawmen assertions that evolutionary theory supposedly makes.
17:54:10 <CakeProphet> but these assertions are actually just poorly worded ideas based on the principle of evolution that people make in a non-scientific context, and not the theory itself.
17:56:05 -!- Kustas has quit (Quit: quitter).
17:59:12 <pikhq_> There's actually a much more obvious rebuttle of that stupid thing.
17:59:25 <pikhq_> The Earth is not a closed system.
18:13:58 <elliott> Is there a logical argument for privacy? (self.AskReddit)
18:14:00 <elliott> REDDIT
18:14:57 -!- olsner has joined.
18:16:28 <ais523> elliott: well, obviously there is
18:16:30 <ais523> several, in fact
18:16:35 <ais523> I wonder if any will come up in the thread?
18:16:46 <elliott> ais523: I don't want to find out
18:17:03 <elliott> I'm running out of justifications to not unsubscribe from /r/AskReddit to be quite honest
18:17:12 <elliott> (The justifications are a huge long list of "I'm too lazy to".)
18:17:35 <CakeProphet> for illustration of this concept see:
18:17:42 <CakeProphet> > repeat ("I'm too lazy to")
18:17:44 <lambdabot> ["I'm too lazy to","I'm too lazy to","I'm too lazy to","I'm too lazy to","I...
18:18:23 <CakeProphet> lambdabot, expanding minds for a better tomorrow.
18:18:30 <ais523> elliott: I'm subscribed to the default set, but never (or incredibly rarely) visit the reddit homepage anyway so it doesn't matter
18:18:48 * CakeProphet has never been to reddit.
18:18:48 <ais523> > take 500 $ repeat "I'm too lazy to"
18:18:49 <lambdabot> ["I'm too lazy to","I'm too lazy to","I'm too lazy to","I'm too lazy to","I...
18:18:56 <ais523> see, now it's a huge long list, rather than an infinite list
18:18:59 <monqy> what's reddit
18:19:00 <elliott> CakeProphet: at this point, I would recommend against the experience
18:19:10 <elliott> there are a few decent subreddits, but outside of that...
18:19:18 <ais523> I read proggit for the offtopic stuff
18:19:21 <ais523> the ontopic stuff too, sometimes
18:19:29 <ais523> (I don't /submit/ offtopic stuff, though, because I'm not a monster)
18:19:40 <Sgeo> ais523, hmm?
18:19:57 <ais523> Sgeo: keeping proggit ontopic is well known to be difficult, despite the attempts of the moderators
18:20:01 <Sgeo> What's wrong with proggit that you wouldn't submit ontopic stu... oh, you said offtopic
18:20:04 <Sgeo> I misread you
18:20:04 * elliott is guilty.
18:20:21 <elliott> (In my... defence... I submitted it to proggit in a shameless karmawhoring attempt without thinking.)
18:20:26 <elliott> (Wait, that doesn't sound like a defence at all.)
18:20:37 <elliott> (Propose we drop the subject.)
18:20:51 <elliott> ais523: also, was that a snarky reference to this channel? :)
18:20:54 <ais523> no
18:20:59 <Sgeo> I've karmawhored... by submitting an ontopic link to a subreddit
18:20:59 <ais523> I'm not very good at snarky references
18:21:11 <elliott> Sgeo: you subhuman :O
18:21:16 <ais523> so if you see a snarky reference coming from me, it's either really awful, crude, and obvious, or else unintentional
18:21:27 <elliott> ais523: or, maybe it's intentional and you are just THAT
18:21:28 <elliott> SUBTLE
18:21:32 <elliott> It is possible.
18:21:35 <CakeProphet> elliott: you could incorporate this into a pronunciation based language: http://en.wikipedia.org/wiki/Duplifix
18:21:39 <CakeProphet> as a new kind of operator.
18:22:02 <ais523> elliott: part of the reason I tend to be so honest is that I'm pretty bad at lying
18:22:10 <elliott> bah, shm-reduplication shm-reduplication
18:22:28 <elliott> DO YOU SEE WHAT I DID THERE
18:23:28 <elliott> i don't think ais523 sees what i did there.
18:23:36 <elliott> i think he's quite blind to what i did there
18:23:38 <ais523> no, I Don't
18:23:40 <ais523> *don't
18:23:52 <elliott> http://en.wikipedia.org/wiki/Shm-reduplication may help :D
18:24:49 <ais523> ah, that's a rather specific thing to do
18:25:29 <CakeProphet> this would be fun to parse in a programming language: http://en.wikipedia.org/wiki/Transfix
18:25:29 <elliott> BUT DO YOU SEE WHAT HAPPENS WHEN YOU SHM-REDUPLICATE "SHM-REDUPLICATION" YOURSELF
18:25:31 <elliott> ARE YOU LAUGHING YET
18:25:47 <CakeProphet> > cycle ("haha") --cue laughter
18:25:48 <lambdabot> "hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaha...
18:25:59 <ais523> CakeProphet: I actually did laugh at that
18:26:02 <ais523> not at elliott's thing yet, though
18:26:11 <elliott> thing shming
18:26:13 <elliott> foo shmoo
18:26:16 <elliott> shm-reduplication shm-reduplication
18:26:21 <elliott> FUNNIEST THING
18:26:23 <monqy> > cycle "ha" -- better laughter
18:26:24 <lambdabot> "hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaha...
18:26:34 <elliott> yeah that laughter is just so much more... compact.
18:26:35 <ais523> surely the second should either be shm-shm-reduplication or shmeduplication?
18:26:41 <elliott> ais523: you are spoiling it :(
18:26:48 <elliott> all 0 humour in it is now dead
18:26:50 <ais523> elliott: it wasn't funny to spoil in the first place
18:26:57 <CakeProphet> elliott shmelliott
18:27:06 <elliott> CakeProphet ShmakeProphet
18:27:33 -!- elliott has set topic: #shmesoteric | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
18:27:40 <CakeProphet> shmake, sounds like a make utility.
18:27:52 <elliott> a terrifying one
18:29:56 <CakeProphet> I guess a?b:c would be kind of like transfix, but that doesn't really apply outside of human languages.
18:30:35 <CakeProphet> because in transfix your interspersing the affix into the stem. Programming languages don't have that concept. a, b, and c do not collectively make a "stem"
18:31:39 -!- foocraft has joined.
18:32:02 <CakeProphet> I love the examples of infix in English: hizouse for house and shiznit for shit
18:32:16 <CakeProphet> "Fucking" and "bloody" are sometimes used as expletive infixes, as in "un-fucking-believable" or "abso-bloody-lutely"
18:35:02 -!- pikhq_ has quit (Ping timeout: 252 seconds).
18:35:03 -!- pikhq has joined.
18:35:38 <CakeProphet> "A-whole-nother", in which another (an+other) is reanalyzed as a+nother.
18:35:49 <CakeProphet> I wonder what /the/ nother is.
18:37:03 <nooga> sorry i was afk
18:37:16 -!- ais523 has changed nick to scarf.
18:38:01 -!- scarf has changed nick to ais523.
18:38:27 <elliott> ais523: hi scarf
18:39:10 <ais523> elliott: we were having a discussion about alternative nicks in #nethack
18:39:17 <ais523> and a whole load of people changed to backup nicks for a bit, then back again
18:39:30 <elliott> does #nethack ever have anything worthwhile to discuss
18:40:05 <nooga> elliott: still playing Minecraft? or maybe You switched to Dwarf Fortress?
18:40:10 <ais523> yes, if you consider NetHack worthwhile
18:40:14 <ais523> it's ontopic well above 50%
18:40:17 <elliott> nooga: Elliottcraft
18:40:22 <elliott> ais523: better than us :D
18:40:49 <elliott> actually I think we're off-topic less than you'd expect, in that, I suspect if we weren't offtopic, there would instead just be huge periods of silence
18:40:56 <elliott> things tend to happen in spurts in the esoteric world
18:41:11 <ais523> yep
18:41:31 <elliott> nooga: (I still play Minecraft, but not much lately, but I won't much once Elliottcraft becomes more concrete :P)
18:41:36 -!- ralc has joined.
18:41:45 <ais523> elliott: are you making a Minecraft clone-but-better?
18:41:55 <ais523> also, I'd imagine adding more concrete to a Minecraft-alike would be quite easy
18:42:12 <nooga> ;];]
18:42:14 <elliott> ais523: I _might_ be. but actually, it takes a lot of inspiration from a lot of other things, and I'm trying to replace the central game mechanic/framing mechanism itself
18:42:21 <ais523> ah, fair enough
18:42:33 <ais523> so it's just named as a Minecraft reference to confuse/attract people?
18:42:35 <elliott> as far as the blockworld itself goes, Dwarf Fortress is a better comparison, although it's presented in the Minecraft manner
18:42:48 <elliott> ais523: I needed a throwaway name while discussing it in #esoteric-minecraft :P
18:42:50 <ais523> (confusion and attraction form a pretty powerful combo in Pokémon, but it's not recommended to actually use it)
18:43:12 <elliott> It would be amusing to actually release it as Elliottcraft though, just to see how much I get yelled at
18:43:17 <elliott> YOU STOLE "-CRAFT"
18:43:41 <ais523> putting your own name in the name of a product normally causes it to not do very well
18:43:43 <olsner> fizzie: hey, finnish person: is risto karvinen a real person?
18:43:55 <elliott> ais523: hmm, maybe
18:44:03 <elliott> ais523: there are many companies named after people that are very successful
18:44:07 <elliott> named after their founders, that is
18:44:10 <ais523> now, if /I/ called something Elliottcraft, it would be fine because I'm not called Elliott
18:44:13 <elliott> olsner: http://sv.wikipedia.org/wiki/Risto_Karvinen
18:44:15 <elliott> olsner: maybe
18:44:26 <elliott> ais523: oh, I'll call it Alexiansmithcraft then
18:44:29 <olsner> elliott: yeah, that's where I started
18:44:30 <elliott> BEST NAME FOR ANYTHING???
18:44:36 <ais523> wow that's a crazy name
18:44:42 <ais523> bonus points for me because I misparsed it to start with
18:44:43 <elliott> it is, it doesn't even parse into your name for me
18:44:48 <ais523> not for me either
18:44:51 <elliott> Alexian smithcraft??? what the hell is that
18:45:05 <olsner> like normal smithcraft but more alexian
18:45:06 <elliott> hmm, really tempted to actually use that now
18:45:16 <elliott> my regard for popularity is astonishingly low :D
18:47:31 <olsner> ... finally back in linux now, I don't understand how I could ever use windows as my main OS
18:47:41 <elliott> olsner: brr
18:47:43 <elliott> olsner: do you want a hug
18:47:48 <elliott> i know how scary it can be sometimes
18:47:54 <elliott> I get kind of nervous even just booted into OS X
18:49:09 <Sgeo> Is it conceptually simpler to have continuations accept a continuation but just ignore them, or to have them not accept a continuation?
18:49:32 <olsner> in OSX you can just start X or a terminal and it starts behaving more like normal
18:49:39 <elliott> continuations don't take continuations.
18:49:51 <elliott> (what would you apply them with?)
18:50:08 <olsner> but in windows if you happen to start cmd all that's left is to stab your eyes (and soul) out with the nearest blunt object
18:50:20 <elliott> olsner: :(
18:50:23 <elliott> olsner: im sorry for your experience
18:50:23 <ais523> elliott: well, you could take an unapplied or thunked continuation, and give it as an argument to a continuation, without any real issues
18:50:29 <elliott> yeah sometimes you can be in windows
18:50:31 <elliott> and suddenly think
18:50:34 <elliott> hey i want to bring a terminal up-
18:50:37 <elliott> and then you have a panic attack
18:50:40 <ais523> olsner: I installed djgpp, just so that if I started cmd by mistake (or deliberately) it would work vaguely like a UNIX shell
18:50:41 <elliott> and they find you dead two weeks later :(
18:50:44 <elliott> unix withdrawal
18:51:05 <CakeProphet> back when I used windows I had Cygwin.
18:51:12 <CakeProphet> which was kind of like having bash. kind of.
18:51:18 <ais523> Cygwin doesn't hijack cmd, does it?
18:51:21 <CakeProphet> no.
18:51:27 <ais523> (note that I mostly only used cmd to start bash /anyway/, but...)
18:51:33 <CakeProphet> it runs in its own little environment, but you can manipulate the entire file system with it
18:51:36 <elliott> cmd is a terrible terminal, though
18:51:54 <elliott> Cygwin has the unfortunate thing that it sucks
18:52:14 <CakeProphet> yes..
18:52:24 <elliott> its fork() call is slower than making a cup of coffee
18:52:27 <ais523> DJGPP doesn't suck, but is an insane premise in the first place
18:52:32 <elliott> and its unicode support is just... blegh
18:52:36 <elliott> improved as of recent versions but
18:52:36 <ais523> (and doesn't implement fork)
18:52:44 <elliott> oh and setup.exe is the worst excuse for a package manager ever just... augh
18:52:48 <elliott> literally painful experience to use
18:52:52 <ais523> hmm... Cygwin's implementation is not the fact that it has a slow fork
18:52:55 <ais523> but the fact that it uses it
18:52:56 <elliott> ais523: hmm, djgpp has no sh, right?
18:52:59 <ais523> elliott: it has bash
18:53:01 <elliott> or does it have a manually-supported sh?
18:53:02 <elliott> erm
18:53:03 <elliott> or does it have a manually-ported sh?
18:53:05 <elliott> to not use fork
18:53:06 <CakeProphet> ais523: do you have an entire /bin and everything in windows magically? How do you run and use bash effectively in Windows?
18:53:08 <ais523> I think it's manually ported
18:53:12 <elliott> right
18:53:15 <ais523> it can't do things that would require multiple processes to run at once
18:53:23 <elliott> CakeProphet: it's really hard; I tried to get a native environment up once
18:53:24 <elliott> tl;dr:
18:53:32 <elliott> either use djgpp for dos
18:53:33 <elliott> OR
18:53:36 <elliott> https://github.com/pclouds/busybox-w32
18:53:39 <ais523> CakeProphet: you do indeed have an entire /bin, attempts to access something in /usr/bin or /bin will rewrite the path into a directory that actually exists
18:53:41 <elliott> which is a wonderful native port of busybox
18:53:42 <elliott> for windows
18:54:00 <CakeProphet> oh wait... I have a solution to this problem.
18:54:02 <ais523> this is the reason I keep writing the wrong directory in shebang lines
18:54:04 <CakeProphet> continue not using windows.
18:54:10 <ais523> as in DJGPP, it doesn't actually matter what you put there
18:54:20 <ais523> as long as it's a directory you might vaguely expect to find binaries in
18:54:30 <ais523> #!/bin/perl means the same thing as #!/usr/bin/perl, and probably the same thing as #!/sbin/perl
18:54:54 <elliott> #!/etc/perl
18:55:01 <elliott> <ais> augh
18:55:41 <ais523> you know the reaction that makes people spit coffee onto their keyboards? I just did that, except I wasn't drinking anything so the computer is fine
18:55:54 <CakeProphet> I can tell which can of Coke is cold delicious soda and which is empty by APPEARANCE ALONE
18:56:00 * CakeProphet adds this to his list of super powers.
18:56:31 <ais523> CakeProphet: except Coca-Cola isn't a sort of soda
18:56:33 <ais523> or am I confused?
18:56:38 <olsner> if it's open and you're not currently drinking from it, then it's empty
18:56:44 <Vorpal> elliott, this was a subtle joke on /etc/rmt right?
18:56:44 <ais523> (or do you fill empty coke cans with lemonade to confuse people?)
18:56:49 <elliott> Vorpal: no.
18:56:54 <Vorpal> elliott, oh
18:56:58 <olsner> one standard can holds about one sip of drink, IME
18:56:59 <CakeProphet> ais523: uh, I think you're confused.
18:57:02 <elliott> <ais523> CakeProphet: except Coca-Cola isn't a sort of soda
18:57:04 <elliott> err, how isn't it?
18:57:10 <ais523> I'm actually wondering if it's a language barrier thing
18:57:12 <Vorpal> elliott, http://sprunge.us/BFcR
18:57:13 <elliott> soda = pop = even coke in the southern us
18:57:14 <Vorpal> quite interesting
18:57:17 <CakeProphet> is there some non-US meaning of soda that I don't know?
18:57:19 <ais523> elliott: ah, I see
18:57:23 <elliott> = ten thousand different fucking names for "sugary carbonated drink""
18:57:24 <ais523> soda would be a more specific drink in the UK
18:57:27 <Vorpal> ais523, did you know about /etc/rmt?
18:57:30 <ais523> Vorpal: no
18:57:41 <ais523> sort of like lemonade but worse
18:57:47 <elliott> #!/bin/sh
18:57:47 <elliott> #
18:57:47 <elliott> # This is not a mistake. This shell script (/etc/rmt) has been provided
18:57:47 <elliott> # for compatibility with other Unix-like systems, some of which have
18:57:47 <elliott> # utilities that expect to find (and execute) rmt in the /etc directory
18:57:48 <elliott> # on remote systems.
18:57:50 <elliott> #
18:57:54 <elliott> exec /usr/sbin/rmt
18:57:56 <elliott> how exciting
18:58:00 <elliott> (I typed /etc/rmt in chrome expecting it to google; instead it displayed the file
18:58:02 <elliott> )
18:58:04 <elliott> (which is arguably more helpful here...)
18:58:18 <CakeProphet> elliott: coke is "kind of" a generic term in the southern US, yes, but it doesn't explicitly mean that. It just works out nicely because everyone in the south drinks Coke so it usually doesn't matter what you mean. :P
18:58:20 <ais523> elliott: this is why separate address and search bars is useful
18:58:27 <elliott> ais523: are you referring to crem soda, btw?
18:58:29 <elliott> [asterisk]cream
18:58:34 <ais523> elliott: no, that's something slightly different again
18:58:37 <elliott> calling that just "soda" would be weird
18:58:42 <Vorpal> elliott, I pastebinned it above. there is no need to paste it in channel
18:58:43 <CakeProphet> ais523: soda water right?
18:58:44 <elliott> ais523: hmm, then I'm not sure what you're referring to
18:58:46 <elliott> Vorpal: I didn't see
18:58:47 <ais523> although I'm willing to accept that that's a sort of soda, given how similar they are
18:58:49 <ais523> CakeProphet: that might be it
18:58:49 <elliott> <ais523> elliott: this is why separate address and search bars is useful
18:58:54 <elliott> I usually type Ctrl+K when I want to search
18:58:58 <elliott> it automatically adds the ? prefix for search
18:58:59 <CakeProphet> ais523: "soda" is a generic term for carbonated water, yes.
18:59:01 <Vorpal> elliott, I highlighted you
18:59:02 <CakeProphet> in the states as well.
18:59:02 <elliott> I never /clicked/ the boxes, so it's equivalent
18:59:05 <ais523> I had to configure Firefox to not search when entering a typoed URL in the address bar
18:59:27 <ais523> but it tries to visit the website instead, which is still annoying when I press return early
18:59:48 <Vorpal> I hate combined search bar thingy
18:59:56 <Vorpal> it fails badly on any system on the lan
19:00:10 <Vorpal> that runs a http server
19:00:23 <elliott> I like it and dislike any browser I can't configure to work like that, whoop de doo, who cares
19:00:30 <ais523> Vorpal: are you one of the few people in the world who uses /etc/hosts for its intended purpose?
19:00:44 <CakeProphet> I usually just type my search and have absolutely no problems..
19:00:55 <ais523> CakeProphet: where do you type it?
19:00:59 <CakeProphet> but the ctrl+k thing is useful. I didn't know that.
19:01:10 <CakeProphet> ais523: in the address/search bar of Chrome.
19:01:15 <ais523> I tend to use my mouse to focus the search box, as web browsing is mouse-driven anyway
19:01:30 <elliott> <ais523> Vorpal: are you one of the few people in the world who uses /etc/hosts for its intended purpose?
19:01:33 <CakeProphet> ais523: same.
19:01:39 <elliott> ais523: routers usually handle assigning IPs to computer names, don't they?
19:01:45 <elliott> at least my router's DNS seems to, or whatever
19:01:48 <ais523> elliott: yes, or DNS
19:01:50 <elliott> that seems saner than keeping it on every system
19:01:53 <elliott> ais523: that's what I meant
19:02:04 <ais523> elliott: yes, that's why I asked Vorpal rather than you
19:02:07 <elliott> I still use my router's DNS because everything else ends up slower
19:02:09 <elliott> ais523: :-D
19:02:12 <CakeProphet> so, could I recursively mount root in my file system for great win?
19:02:24 <ais523> CakeProphet: you could use a loopback mount
19:02:33 <Vorpal> back
19:02:34 <ais523> but I'm not sure if it'd be a great win or a mild curiosity
19:02:39 <Vorpal> <ais523> Vorpal: are you one of the few people in the world who uses /etc/hosts for its intended purpose? <-- yes
19:02:50 <ais523> only time I saw a useful use for that was when we mounted / at /var/www/root on Normish
19:03:01 <CakeProphet> ais523: directory walking algorithms would rejoice and become immortal. They will bow down and worship me.
19:03:01 <ais523> and had the entire VM served to the web
19:03:13 <ais523> CakeProphet: amazingly, some of them have actually thought of that
19:03:27 <ais523> I know certain directory walking programs have flags not to change filesystems
19:03:29 <CakeProphet> what? why?
19:03:34 <CakeProphet> well, I mean
19:03:37 <CakeProphet> obviously we know why
19:03:50 <ais523> I think it's more useful to stop you directory-walking onto an NFS share
19:03:55 <ais523> in case you didn't mean to do that
19:04:01 <CakeProphet> makes sense I guess.
19:04:02 <pikhq> Why use /etc/hosts for its intended purpose? Not *that* hard to set up a DNS server.
19:04:24 <Vorpal> ais523, anyway I'm planning to switch over to running a zone on the caching dns server.
19:04:29 <ais523> pikhq: well, this explains why so few people use it that way, because there's not much of a reason
19:04:36 <pikhq> ais523: Yup.
19:04:36 <Vorpal> ais523, but I don't have many systems
19:04:39 <Vorpal> so *shrug*
19:04:42 <ais523> quite a few people use it to redirect sites they don't want to browse at localhost or 0.0.0.0 or whatever
19:05:00 <pikhq> Feh, that's what I've got Adblock for.
19:05:10 <ais523> well, it extends to not just browsing
19:05:23 <pikhq> When else would that come up?
19:05:23 <ais523> you can use it to block arbitrary Internet-capable applications from accessing certain sites by name
19:05:31 <ais523> stopping automatic updates on Windows is a semi-common use
19:05:42 <pikhq> Pretty much everywhere else, you're explicitly specifying a single host.
19:05:49 <Vorpal> ais523, you can do that in preferences
19:05:53 <elliott> also for self-control
19:05:57 <ais523> Vorpal: for the OS as a whole
19:05:59 <elliott> e.g. blacklisting away reddit.com
19:06:02 <Vorpal> ais523, hm
19:06:03 <ais523> individual programs can be nastier-behaved
19:06:07 <Vorpal> ah
19:06:19 <olsner> unless those applications include a DNS client... which would be a sensible thing to do if you want to make it a wee bit harder to work around their phone-home code
19:06:21 <ais523> on Windows everything has its own updater
19:06:40 <CakeProphet> best idea ever.
19:06:42 <ais523> many of which like sitting in the <s>system tray</s>notification area whether you're using the associated application or not, and even show a little icon to let you know they're running
19:06:43 <Vorpal> ais523, I used /etc/hosts to redirect minecraft when minecraft.net was down, so the program would time out logging in a fraction of a second instead of over a minute
19:06:54 <ais523> Vorpal: yes, that's a sensible abuse of it
19:06:59 <elliott> notification system tray area
19:07:02 <ais523> except the bit that implies you were playing minecraft
19:07:12 <elliott> ais523: eh? :P
19:07:15 <ais523> elliott: Microsoft have to go around denying that it's called the system tray
19:07:17 <elliott> Is that just an "I don't like Minecraft" comment, or?
19:07:25 <ais523> elliott: yes, it's just an I don't like Minecraft comment
19:07:33 <nooga> elliott: how advanced is Elliotcraft?
19:07:39 <elliott> nooga: I know of no such game
19:07:46 <Vorpal> ais523, anyway the best way to thwart phone home is a firewall to block that ip
19:07:56 <elliott> Elliottcraft I'm happy to talk about in #esoteric-minecraft, to avoid the wrath of ais523
19:08:00 <olsner> nooga: presumably it's a craft the like of which you have never seen
19:08:00 <ais523> because making petty jibes at things is easy to do when you're tired
19:08:08 <CakeProphet> nooga: hypothetically not as advanced as the hypothetical Cakecraft
19:08:09 <nooga> Elliottcraft*
19:08:10 <Vorpal> <ais523> except the bit that implies you were playing minecraft <-- what
19:08:14 <ais523> elliott: I don't necessarily dislike things similar to MInecraft
19:08:25 <olsner> Minecruft
19:08:31 <nooga> Yourcraft
19:08:42 <ais523> just the game itself annoys me due to being shallower than its competitors, badly-written, and attracting hordes of fanboys
19:08:45 <Vorpal> ais523, what did you mean with that phrase!?
19:08:53 <elliott> ais523: What would you consider its competitors? I'm curious.
19:09:00 <ais523> Vorpal: I would explain except that I already explained to elliott a few minutes ago
19:09:12 <elliott> ais523: just wait for his scrollback to scroll into the right place
19:09:14 <Vorpal> ah right
19:09:14 <Vorpal> there
19:09:15 <elliott> should only take a few more lines
19:09:18 <elliott> there we go
19:09:22 <Vorpal> elliott, :P
19:09:28 <Vorpal> elliott, yay now I have a valid excuse!
19:09:28 <CakeProphet> Cakecraft will support real death! and system clean up tools, which entails destroying your Windows partition.
19:09:32 <Vorpal> elliott, thank you so much
19:09:47 <ais523> elliott: in ##nomic I compared it to a game trying to do both what NetHack and Rubicon do, and doing them both really badly
19:09:52 <ais523> although it might have been a bad comparison
19:10:02 <ais523> I suppose it depends on what you want from a game
19:10:17 <elliott> ais523: while, mechanically, that may be true, I think the whole presentation and intent of a game matters greatly
19:10:20 <ais523> Sim City could be another comparison, too
19:10:24 <CakeProphet> it also serves as a sophisticated botnet! so that you can collaborate with other Cakecrafters and share computational resources, for example, to help me spam advertising for Cakecraft.
19:10:25 <Vorpal> ais523, dwarf fortress might be a better parallel, though much less intricate gameplay
19:10:28 <elliott> NetHack is, of course, a wildly different game as far as gameplay goes
19:10:41 <ais523> yep, but the premise is vaguely similar
19:10:43 <elliott> Dwarf Fortress too -- all those games have _goals_ of a sort :)
19:10:46 <ais523> even if the gameplay is very different
19:10:47 <Vorpal> of course very different game play again
19:10:56 <Vorpal> yes, minecraft is sandbox
19:11:09 <Vorpal> elliott, well, not dying could be a goal in minecraft?
19:11:12 <elliott> ais523: I agree that Minecraft is essentially not that interesting after you play it for a while, beyond some fun stuff like redstone circuits that are interesting for mainly reasons unrelated to the game itself; and Notch is obviously incompetent at practically everything
19:11:14 <ais523> I think my issue is that I don't see why a sandbox game should require you to gather the sand yourself
19:11:33 <Vorpal> elliott, I think minecraft really rocks because of SMP
19:11:38 <elliott> ais523: I think the essential presentation -- threedee world of purely blocks that you can mutate yourself creating a world with no inherent purpose -- is a really nice idea, hough.
19:11:39 <elliott> though.
19:11:51 <elliott> remember, Minecraft Classic was literally just that
19:11:53 <ais523> elliott: yep, I think that's a decent premise
19:11:58 <elliott> you could walk, jump, place blocks, and delete them (instantly)
19:12:04 <elliott> there was no health or anything, no time passing, nothing
19:12:05 <pikhq> It's a good idea, implemented by someone who's not that good at implementing these things.
19:12:10 <ais523> it's the addition of the other stuff that seems pointless, although some people seem to like it
19:12:10 <elliott> and it was still hugely popular, because that's the interesting core
19:12:15 <elliott> unfortunately, it needs to be added on to be truly interesting
19:12:17 <Vorpal> elliott, come on, have you still not got apple to fix your keyboard? How long does the warranty last
19:12:18 <elliott> and Notch stopped far too short
19:12:29 <ais523> hey, let's make a 3D Rubicon
19:12:29 <elliott> Vorpal: long enough for me to be lazy for a little while longer
19:12:32 <elliott> ais523: <ais523> it's the addition of the other stuff that seems pointless, although some people seem to like it
19:12:34 <Vorpal> elliott, ah
19:12:35 <elliott> I disagree here
19:12:38 <elliott> Classic gets boring quickly
19:12:38 <nooga> pistons
19:12:47 <elliott> once you've built a few houses, you're pretty much done
19:12:51 <ais523> elliott: well, I can imagine the addition of things to interact /with/
19:12:56 <ais523> just so long as it's optional or summonable
19:13:11 <Vorpal> ais523, like redstone?
19:13:21 <elliott> With Elliottcraft, I'm basically trying to make the world generation a lot more involved and detailed, and go from there
19:13:22 <ais523> Vorpal: I don't know what redstone is
19:13:22 <Vorpal> that 8-bit computer is really fun
19:13:24 <nooga> i've made a mod that gives you an editable ROM block
19:13:32 <elliott> majorly, I plan for there to be a lot of forces that aren't you
19:13:37 <ais523> elliott: this isn't Slaves to Armok III, is it?
19:13:38 <Vorpal> ais523, basically allows you do build logic gates in minecraft.
19:13:38 <elliott> unlike in Minecraft, where everything is either
19:13:40 <elliott> - you
19:13:46 <elliott> - idiotic and does nothing, only useful to kill
19:13:47 <pikhq> I'd say that redstone and rails where the two additions that Notch did that kept the interest up...
19:13:51 <elliott> - evil but really not that threatening
19:13:53 <elliott> ais523: It might be :)
19:14:06 <ais523> elliott: following the guidelines discussed in-channel?
19:14:09 <Vorpal> ais523, you have wire, you have power sources, and you have inverters. Someone built a simple CPU with it
19:14:10 <elliott> ais523: Not quite :P
19:14:12 <pikhq> Because it gives you more things *to actually build*, rather than "Oh, look, I can add some new blocks to my house. Whoo."
19:14:19 <elliott> ais523: Amusingly the main catalyst for this was how terrible Minecraft's network protocol is.
19:14:29 <elliott> ais523: You could literally tell it you were at any y position, and it would believe you.
19:14:32 <ais523> pikhq: I don't see why those couldn't be in minecraft classic
19:14:40 <elliott> You could even use this to fall from such a height that you _wrapped the health counter around_.
19:14:40 <pikhq> ais523: No particular reason.
19:14:45 <elliott> Making you effectively immortal.
19:14:50 <ais523> elliott: ah, is that how the warping commands worked?
19:14:55 <elliott> ais523: yep, actually
19:14:57 <ais523> I assumed it was some sort of debug feature
19:15:03 <elliott> ais523: nope, Notch is just really stupid
19:15:03 <ais523> but it's just trust-the-client?
19:15:07 <elliott> yep
19:15:11 <pikhq> ais523: Though, the mining *itself* would be interesting... If it got developed more.
19:15:13 <elliott> it was fixed recently, probably in a really terrible way
19:15:13 <nooga> Notch is stupid
19:15:14 <Vorpal> ais523, it doesn't work any more though
19:15:20 <ais523> I know the vast majority of games I've made have had some sort of teleport as a debug feature
19:15:23 <elliott> ais523: have I mentioned that client-side and server-side are two completely different codebases?
19:15:28 <elliott> two complete implementations of the same game
19:15:31 <elliott> OK, some things are shared
19:15:32 <pikhq> As it is, as soon as you have an iron pickaxe it's not that interesting, and as soon as you have diamond everything it's downright boring.
19:15:33 <ais523> elliott: that's less necessarily insane
19:15:34 <Vorpal> elliott, that said, I heard that movement being client side is quite common in many multiplayer games.
19:15:36 <ais523> depending on how it works
19:15:39 <elliott> but I think in the copy-and-paste the java files shared
19:15:42 <ais523> I wouldn't be surprised if it was insane in this case
19:15:55 <elliott> ais523: as in "there are tons of single-player and multi-player exclusive bugs that have nothing to do with the network or your hard disk"
19:15:55 <ais523> ah, they were doing the same calculations on different codebases? that's insane
19:16:01 <elliott> I don't know /how/
19:16:10 <elliott> even the most idiotic person would have a common library for this stuff
19:16:15 <elliott> Vorpal: yeah
19:16:22 <ais523> (I can see a plausible client-side = rendering and UI, server-side = logic split that wouldn't require common codebases)
19:16:37 <elliott> ais523: that's what I'm doing for Elliottcraft, basically
19:16:45 <Vorpal> elliott, so, notch wasn't that stupid when teleport worked. Just as stupid as most other
19:16:54 <ais523> it's what most sensible multiplayer games do unless it doesn't work for performance reasons
19:16:59 <elliott> ais523: you just connect to a local server, except it's changed slightly, in that it's made to share the map data between the srever and client in memory
19:17:04 <elliott> and it communicates directly rather than through a socket
19:17:07 <ais523> ah
19:17:13 <ais523> can it do sockets too, for multiplayer play?
19:17:15 <elliott> that's the plan, anyway
19:17:17 <elliott> ais523: yes, of course
19:17:21 <pikhq> This is something that IndustrialCraft gets right — there is a massive, massive tech tree to go through, rather than "3 days in and you're done".
19:17:38 <ais523> pikhq: so it's "finish the tech tree and you're done" instead?
19:17:39 <pikhq> (IndustrialCraft is a poorly documented but gigantic mod for Minecraft)
19:17:41 <elliott> ais523: I figure if I get all the hard problems of not trusting the client, synchronisation, timing blah blah blah right /once/, then the overhead should be sufficiently low that I can just use the same locally
19:17:55 <ais523> yep, agreed
19:18:04 <CakeProphet> Cakecraft = amazing physics playground that will never be made.
19:18:05 <pikhq> ais523: That would be on par with building your own 64 bit computer in Minecraft.
19:18:13 <pikhq> Sure, you *could*, but holy fuck it would take a long time.
19:18:23 <elliott> but really, the real reason minecraft sucks is because it has a tiny finite y dimension :(
19:18:33 <Vorpal> pikhq, I'm not sure I enjoy such a tech tree. I mostly play on a creative (free /give) server these days. With movecraft of course.
19:18:42 <ais523> well, in that case, it's like Pokémon where you don't go through the game with all 693 of them as you'd get bored past about 30 or 40
19:18:59 <Vorpal> (well, free /give apart from bedrock)
19:19:02 <elliott> I think the key with these sorts of games
19:19:04 <elliott> is
19:19:05 <pikhq> Though, disclaimer, I tend to play in a modded-up creative mode.
19:19:06 <elliott> make the player have enough fun
19:19:10 <elliott> that they don't realise there's no actual point to the game
19:19:12 <Vorpal> pikhq, ah
19:19:13 <elliott> or goal, or anything
19:19:18 <ais523> Vorpal: any command to unbedrock a square? it seems a plausible thing to add to a creative mod
19:19:24 <elliott> make that wait until they're talking on irc about it
19:19:29 <CakeProphet> elliott: it would be interesting if, instead of bedrock, there was a point where you reached the other side of the planet, and gravity inverted. :)
19:19:30 <elliott> hope they forget by the time they play again
19:19:32 <ais523> elliott: there doesn't have to be a goal if the game is generally fun, though
19:19:43 <ais523> a goal is something that can help to make games fun
19:19:45 <elliott> GUYS WHAT IS THE GOAL OF TETRIS???????
19:19:48 <ais523> if they're fun anyway, though, you don't need one
19:20:00 <Vorpal> ais523, well the server has worldedit (a plugin that adds an in game map editor basically) for the admins, that lets them break bedrock. Which can't normally be done.
19:20:01 <elliott> i have been playing for a year but i have still not won
19:20:18 <ais523> elliott: aim to reach the killscreen
19:20:24 <Vorpal> ais523, generally things work out nicely though, small group of players, whitelisted server
19:20:40 <Vorpal> ais523, killscreen?
19:20:53 <ais523> hmm, in a platformer I'm vaguely planning, I'll have a bedrock-equivalent called unobtanium
19:20:54 <Vorpal> tetris, what an utterly boring game
19:21:01 <Vorpal> I never liked that sort of arcade style
19:21:06 <ais523> as the name suits the way it behaves really well
19:21:09 <elliott> tetris is great
19:21:17 <elliott> until you stop playing
19:21:21 <CakeProphet> tetris is, in fact, fucking awesome.
19:21:22 <elliott> and realise how worthless that was
19:21:24 <Vorpal> elliott, I know some people like it. Good for them. I don't.
19:21:33 <elliott> but then you read a bullshit study about how it helps your brain to be the smarts
19:21:34 <ais523> Vorpal: in a computer game, a killscreen is a screen you reach where you've got so far in the game that the level you're on is completely impossible because it glitches out
19:21:34 <elliott> and you feel better
19:21:55 <Vorpal> elliott, I never manage to get past more than one or two of the levels. I think my record in gnome's tetris clone is level 4 or so
19:21:55 <elliott> ais523: pah, pacman doesn't have one of THOSE
19:21:56 <ais523> it's most famous in Pac-Man, where level 256 overwraps something or other and half the screen glitches out, meaning that the level can no longer be completed
19:21:59 <elliott> it just has a super-difficult last level
19:22:02 <elliott> ais523: it can, actually
19:22:03 <Vorpal> ais523, ah
19:22:03 <elliott> it's just a huge pain
19:22:23 <ais523> elliott: no, even if you collect every thing-it-thinks-is-a-dot, it still doesn't go to the next level
19:22:28 <elliott> hmm, really?
19:22:29 <elliott> fair enough then
19:22:31 <ais523> so although it's theoretically "completable", there's no reward for doing so
19:22:42 <Vorpal> not well tested eh
19:22:46 <ais523> best you can do is die and complete the level again, repeating until you're out of lives
19:22:53 <ais523> Vorpal: well, I doubt they expected anyone to reach level 256
19:23:03 <Vorpal> ais523, well, they were wrong
19:23:10 <elliott> Vorpal: not well-tested?
19:23:11 <ais523> after level 9 or so (I forget the last number), the same level just repeats over and over anyway, getting slightly faster each time
19:23:14 <elliott> it took /decades/ for anyone to reach that far
19:23:17 <Vorpal> elliott, ah
19:23:24 <ais523> and that was by memorising the RNG sequence
19:23:29 <ais523> (Pac-Man's RNG is very simpel)
19:23:30 <ais523> *simple
19:23:34 <ais523> and the sequence of inputs required to win
19:23:38 <Vorpal> heh
19:23:41 <elliott> in fact, it took much more time than it took for someone to find out that minecraft's terrain is actually way smaller than it claims to be :P
19:23:46 <elliott> (admittedly, that was by "cheating")
19:23:55 <Vorpal> yeah
19:24:29 <Vorpal> elliott, if people hadn't cheated, then it wouldn't have been found out in the next handful of years at least
19:24:36 <elliott> sure it would
19:24:46 <elliott> put stack of coins on return key and forward key
19:24:50 <elliott> leave for a month
19:24:55 <Vorpal> elliott, return?
19:24:56 -!- oerjan has joined.
19:24:57 <elliott> return to find the game crashed :D
19:24:59 <Vorpal> you mean space?
19:25:01 <elliott> Vorpal: er right
19:25:08 <Vorpal> <elliott> return to find the game crashed :D <-- come on, it does that anyway
19:25:28 <Vorpal> elliott, what ACTUALLY would have happened would be that you had fallen into a deep pit and now stood jumping against the wall
19:25:39 <Vorpal> or even 2 high blocks
19:25:47 <elliott> yeah yeah :P
19:26:00 <elliott> you could script it, though whether you consider that "cheating"...
19:26:01 <elliott> but who cares
19:26:10 <elliott> you can't cheat at a sandbox game
19:26:13 <Vorpal> true
19:26:23 <ais523> something I realised last night: radix sort is actually O(n log n), and people have been misrepresenting it all this time
19:26:31 <Vorpal> elliott, what about SMP survival servers, you could probably "cheat" there
19:26:40 <ais523> comparison sorts use comparisons, which take the same length of time for the first and last comparisons
19:26:46 <ais523> but radix sort increments bin counts
19:26:48 <elliott> Vorpal: only 'cuz notch sucks
19:26:53 <ais523> and adding 1 to a number is O(log n)
19:27:10 <elliott> ais523: arithmetic is considered to be O(1) in big-O analysis usually
19:27:13 <ais523> what does SMP stand for, btw? something multiplayer?
19:27:14 <Vorpal> elliott, speaking of which, the "flying detection" in bukkit is really buggy. It thought I was flying when I went down a ladder, removing it under me
19:27:17 <ais523> elliott: that's cheating!
19:27:19 <elliott> ais523: no it isn't
19:27:25 <elliott> ais523: who said we had to go by the laws of real-life computers?
19:27:28 <elliott> that's arbitrary
19:27:39 <elliott> picking something nice and simple like arithmetic to be O(1) is perfectly reasonable
19:27:41 <ais523> elliott: well, the number takes O(log n) space to represent
19:27:46 <ais523> and time complexity >= space complexity
19:28:18 <Vorpal> ais523, you could do a large adder as a combinatorial circuit maybe
19:28:23 <Vorpal> in theory you could
19:28:27 <ais523> Vorpal: but that puts a limit
19:28:33 <ais523> on the size of the numbers added
19:28:42 <ais523> so it's O(infinity) with optimizations for small n
19:28:42 <oerjan> <ais523> and adding 1 to a number is O(log n)
19:28:44 <Vorpal> ais523, why don't people use something like double-adders or such
19:29:04 <Vorpal> ais523, that is half the number of carries
19:29:08 <oerjan> i don't think that's right with ...damn tip of tongue...
19:29:18 <elliott> oerjan: capitalism?
19:29:27 <Vorpal> oerjan, incrementing?
19:29:32 <elliott> oerjan: dodecahedron
19:29:35 <elliott> oerjan: brontosaurus
19:29:37 <elliott> oerjan: oligarchy
19:29:38 <Vorpal> oerjan, crocodile
19:29:41 <oerjan> no, that thing they use to describe functional data structures
19:29:41 <elliott> oerjan: rocks
19:29:44 <ais523> Vorpal: well, for very wide additions, there's often separate circuitry to calculate the carries at midpoints, etc
19:29:45 <elliott> oerjan: fortuitousness
19:29:53 <ais523> oerjan: some sort of zipper?
19:29:54 <Vorpal> oerjan, definitely crocodile then
19:29:57 <oerjan> i think it starts with a
19:29:59 <elliott> oerjan: infelicity
19:30:04 <elliott> oerjan: rhombus
19:30:04 <Vorpal> oerjan, aardvark
19:30:10 <oerjan> ais523: those creeps are not helping :D
19:30:12 <elliott> oerjan: cartographing
19:30:16 <elliott> oerjan: Istanbul
19:30:16 <Vorpal> ais523, you mean carry-lookahead?
19:30:19 <elliott> oerjan: cashmere
19:30:22 <CakeProphet> oerjan: abstract data type?
19:30:25 <elliott> oerjan: pastiche
19:30:26 <ais523> Vorpal: yes
19:30:28 <oerjan> no, about their complexity
19:30:32 <elliott> oerjan: fanned
19:30:35 <Vorpal> oerjan, Big O notation?
19:30:35 <elliott> am i helping
19:30:39 <oerjan> no!
19:30:40 <elliott> Vorpal: that isn't a word, moron
19:30:45 <Vorpal> elliott, oh true
19:30:51 <Vorpal> elliott, he said it started with a.
19:30:54 <elliott> oh
19:30:59 <elliott> oerjan: affluency
19:31:03 <elliott> oerjan: apex
19:31:05 <elliott> oerjan: aperture
19:31:08 <elliott> oerjan: axiomata
19:31:11 <elliott> oerjan: all
19:31:13 <Vorpal> elliott, I already did aardvark btw
19:31:14 <elliott> oerjan: able
19:31:16 <oerjan> i'm not _sure_ it starts with an a
19:31:19 <elliott> oerjan: acrimonious
19:31:26 <Vorpal> oerjan, oh. Hm array?
19:31:29 <elliott> oerjan: astigmatism
19:31:40 <elliott> oerjan: arachnophobe
19:31:45 <oerjan> YOU WON'T GUESS IT IF YOU HAVEN'T HEARD IT
19:31:45 <elliott> oerjan: alter
19:31:52 <elliott> oerjan: annals
19:31:56 <elliott> AM I HELPING YET
19:31:59 <Vorpal> elliott, altar, you forgot that
19:32:04 <elliott> Vorpal: that's not a word silly.
19:32:05 <oerjan> it's about the complexity of functional data structures
19:32:06 <ais523> elliott: it'd help more if the words were vaguely related to the field
19:32:13 <ais523> oerjan: amortization?
19:32:14 <elliott> ais523: I'm just trying to be thorough
19:32:14 <Vorpal> elliott, isn't "altar" a word?
19:32:20 <oerjan> ais523: THANK GOD
19:32:25 <elliott> oerjan: should I leaf through my copy of Purely Functional Data Struc- oh
19:32:25 <Vorpal> aww
19:32:27 <elliott> well I could have guessed that
19:32:32 <ais523> elliott: see, it takes you all those guesses and I only took two
19:32:35 <elliott> why didn't you SAY that was the word you were looking for
19:32:36 <Vorpal> elliott, sooner or later yes
19:32:49 * oerjan swats elliott -----###
19:33:05 <ais523> I still don't think it's O(1) with amortization, but I'm not sure
19:33:07 <ais523> maybe O(log log n)
19:33:11 <Vorpal> ais523, come on elliott was being intentionally silly. (More so than me)
19:33:13 <oerjan> ais523: basically if you are counting stuff, the _average_ bin addition only takes O(1)
19:33:22 <oerjan> *bin increment
19:33:27 <elliott> Vorpal: I was actually seeing how well I could generate random words, too
19:33:29 <elliott> turns out: pretty well
19:33:42 <Vorpal> ais523, hm come up with something that is O(log_{log n} n)
19:33:48 <ais523> Vorpal: why?
19:33:57 <oerjan> 1/2 take 1, 1/4 take 2, 1/8 take 3
19:33:57 <Vorpal> ais523, because I can't think of something like that
19:34:11 <oerjan> ais523: ok maybe slightly more than O(1) but not O(log n)
19:34:27 <ais523> oerjan: ah, so it averages out at 2
19:34:28 <ais523> yep, I agree with you now
19:34:39 <Vorpal> ais523, if you are just adding these together, couldn't you do a partial sum thingy and add the carry in at the end?
19:34:55 <ais523> oerjan: O(2) I think
19:34:56 * ais523 runs
19:35:00 <oerjan> XD
19:35:06 <Vorpal> ais523, as in this http://en.wikipedia.org/wiki/Carry_save_adder
19:35:21 <ais523> Vorpal: we're talking about the asymptotic behaviour of repeated increments
19:35:56 <CakeProphet> My goal in life: implement constant time list search using acquired magical abilities.
19:36:06 <Vorpal> ais523, yes and I say you could do it in O(1) per addition even for repeated arbitrary additions. Using carry save
19:36:28 <elliott> *Sylladex.VM> runVM (ExcCtx test Map.empty) (snd (head test)) []
19:36:28 <elliott> [VInt 1999]
19:36:31 <elliott> thats not rite
19:36:56 <elliott> Oh wait
19:37:03 <ais523> Vorpal: that requires O(n log n) /space/
19:37:06 <elliott> Wait WHAT
19:37:08 <Vorpal> ais523, true
19:37:10 <ais523> because your numbers have to have arbitrary digits in
19:37:22 <ais523> that's kind-of much worse than O(1) or even O(log n)
19:37:51 <elliott> the best complexity is O(log log log log log log n)
19:37:52 <elliott> and NO less
19:38:01 <ais523> incidentally, my Slashdot sig (the shortest known INTERCAL adder) is basically iterated carry-save
19:38:10 <ais523> (without using the standard library, that is)
19:38:12 <Vorpal> ais523, hm wait, it just needs 2* the space of the number in bits
19:38:13 <elliott> Do a distributed search for a shorter adder. :p
19:38:19 <elliott> It'll be like protein folding, only even more worthwhile.
19:38:22 <CakeProphet> ais523: in fact, it's n log n - log n worse
19:38:38 <elliott> INTERCAL@home
19:38:44 <ais523> CakeProphet: I don't think computational classes add/subtract like that
19:38:52 <elliott> AND YOU THOUGHT YOU COULD KEEP IT CONFINED TO YOUR WORKPLCAE
19:38:54 <elliott> [asterisk]PLACE
19:38:56 <CakeProphet> they do for purposes of comparison. :D
19:39:08 <ais523> elliott: I've expended quite a lot of thought to getting an adder in a single expression, but I haven't found a way to do it that isn't really really long
19:39:20 <ais523> I think I managed something like a one-expression increment that was only a few hundred characters long
19:39:36 <Vorpal> `addquote <ais523> I think I managed something like a one-expression increment that was only a few hundred characters long
19:39:37 <HackEgo> ​442) <ais523> I think I managed something like a one-expression increment that was only a few hundred characters long
19:39:51 <elliott> that was funny?
19:39:58 <Vorpal> elliott, yes, more so out of context
19:40:21 <Vorpal> elliott, imagine this without context. Then it sounds fun
19:40:24 <nooga> that's weird
19:40:30 <elliott> it
19:40:31 <elliott> doesn't
19:40:36 <oerjan> 21:37 elliott> the best complexity is O(log log log log log log n)
19:40:36 <oerjan> 21:37 elliott> and NO less
19:40:47 <nooga> windows 7 uses 100% cpu with no process to blame
19:40:53 <oerjan> so you don't approve of that inverse ackermann thing for union find?
19:40:58 <elliott> oerjan: i'm sorry who has the phd here.
19:41:00 <elliott> exactly.
19:41:04 <elliott> stop questioning things i say.
19:41:05 <elliott> take them at face value.
19:41:06 <nooga> the cpu is 100% bussy constantly and i don't know why
19:41:51 <Vorpal> <oerjan> so you don't approve of that inverse ackermann thing for union find? <-- wait what
19:42:08 <elliott> DAMMIT RUNVM
19:42:10 <elliott> THIS MAKES NO SENSE
19:42:11 <elliott> I HATE YOU
19:42:14 <elliott> AND ALL YOUR GUTS
19:42:18 <Vorpal> elliott, what is runvm?
19:42:32 <elliott> a function
19:42:33 <elliott> OH WIAT
19:42:34 <elliott> duh
19:42:43 <elliott> ugh wow this is going to be so ugly
19:42:52 <oerjan> Vorpal: there's this algorithm called union find that works in time O(n + inverse of ackermann)
19:42:54 -!- adam__ has joined.
19:42:55 <elliott> wow uh can i even
19:42:56 <elliott> jesus
19:43:00 <elliott> ok wait what if i
19:43:01 <elliott> augh
19:43:08 <elliott> TIME TO NEST THE LIST MORE LOL
19:43:11 <elliott> oh god wait no i can't do that
19:43:17 <oerjan> hm i guess that's higher than O(log log ... n) actually, because of the O(n)
19:43:22 <elliott> hey guys
19:43:27 <elliott> how do i represent some machine code in haskell :(
19:43:28 <ais523> oerjan: wouldn't that just be equivalent to O(n)?
19:43:36 <elliott> [(Label,[Ins])] sucks
19:43:36 <oerjan> i may misremember stuff, i only saw it mentioned again yesterday on godel's lost letter
19:43:41 <elliott> because implementing the fall-through to the next label
19:43:42 <elliott> is a pain
19:43:45 <ais523> just like O(n + log n) is equivalent to O(n)?
19:43:48 <elliott> in the evaluation function
19:43:48 <elliott> halp
19:43:52 <oerjan> ais523: um maybe it was O(1+inverse ackermann)
19:43:54 <Vorpal> oerjan, what is union find for?
19:43:58 <ais523> that would make more sense
19:44:08 <oerjan> lemme look it up
19:44:15 <ais523> elliott: I'm on the point of inventing a new language to solve that sort of problem
19:44:21 <oerjan> oh wait it was something about mazes, not GLL
19:44:26 <elliott> ais523: ugh
19:44:27 <ais523> so far it only has a few basic ideas and a name that doesn't really fit but that I'll use anyway
19:44:36 <elliott> hmm, I suppose I could like
19:44:53 <elliott> [(0,all:the:instructions:xs), (1,xs)]
19:44:54 <elliott> i.e.
19:45:01 <elliott> each label actually includes a pointer to all the code following it too
19:45:03 <elliott> by consing it on
19:45:04 <elliott> but uh
19:45:05 <elliott> ew
19:45:52 <oerjan> Vorpal: http://www.algorithmist.com/index.php/Union_Find
19:45:53 <elliott> have i mentioned that the only reason i'm writing this function is to serve as a reference implementation
19:45:57 <Vorpal> oerjan, ah
19:46:27 -!- CakeProphet has quit (Ping timeout: 276 seconds).
19:46:29 <Vorpal> oerjan, cool
19:46:47 <elliott> i wonder if that's like
19:46:54 <elliott> the fastest above-constant complexity
19:46:59 <elliott> for something that actually doe s something of interest
19:47:08 <Vorpal> elliott, it probably comes pretty close
19:47:23 <Vorpal> elliott, of course O(log ackinv(n)) would be even better
19:47:49 <elliott> yes but is there any algorithm that does anything of interest that has that complexity?
19:47:58 <Vorpal> not that I know of
19:48:47 <ais523> hmm, Union Find seems to be similar to implementing a dialog of Prolog where you had nothing but variables and =
19:48:57 <ais523> e.g. A = B, A = C, D = E, etc
19:49:04 <ais523> and the question was if two of them were unified at any given point or not
19:49:38 <oerjan> <elliott> [(Label,[Ins])] sucks <-- maybe just make Label an element of Ins, then?
19:49:52 <elliott> oerjan: that makes jumping to a label really slow
19:49:57 <elliott> you have to linearly scan all the code up to it
19:50:09 <elliott> ok that's like
19:50:15 <elliott> only a multiplicative factor of what you have to do anywya
19:50:18 <elliott> [asterisk]anyway
19:50:19 <elliott> but ew come on
19:50:31 <elliott> btw this structure actually works fairly decently for the actual compilers? just not for an interpreter
19:50:38 <elliott> so I don't want to make it worse on the actual compilers? even though that wouldn't but
19:50:42 <Vorpal> elliott, keep track of labels in a AVL tree with pointers to the relevant code line/node/whatevere?
19:50:43 <elliott> basically what i am saying is
19:50:45 <elliott> that is kind of ew oerjan.
19:50:45 <Vorpal> whatever*
19:51:09 <pikhq> elliott: I don't think you got the memo, but I think I could port util-linux to musl in a couple of hours.
19:51:17 <oerjan> <Vorpal> elliott, of course O(log ackinv(n)) would be even better <-- that may be indistinguishable from ackinv(n) by mortals :P
19:51:18 <elliott> pikhq: do it
19:51:27 <Vorpal> oerjan, there is that yes
19:51:28 <pikhq> elliott: The only really non-trivial bit would be implementing error().
19:51:48 <pikhq> elliott: Everything else, near as I can tell, is a matter of unincluded bits.
19:52:07 <pikhq> Darned easy to fix includes.
19:52:17 <elliott> what does error do again
19:52:44 <oerjan> elliott: you can make a Map for jumping to labels even if you put the labels in the code. hm actually if you do that you don't need to include the labels in the code again
19:53:24 <oerjan> elliott: you can use knot tying to only calculate this once, i think
19:53:32 <elliott> oerjan: knot tying...scares me.........
19:53:59 <pikhq> elliott: void error(int status, int errnum, const char *format, ...);. Prints the program name, a colon, and a space, then the format string, then strerror(errnum) if errnum != 0, then exit(status) if status != 0.
19:54:21 <oerjan> elliott was once tied up by function pedobear
19:54:25 <oerjan> *functional
19:54:49 <elliott> pikhq: that's
19:54:50 <elliott> difficult?
19:54:50 <oerjan> my theory that muphry's law applies to any sufficiently cheesy joke seems to hold
19:54:56 <elliott> because of the program name part?
19:55:32 <pikhq> elliott: The reason I said "2 hours" is because there's a hell of a lot of misincluding. :P
19:56:14 <oerjan> ais523: the place i saw this was about implementing mazes by starting with a grid and removing random walls between rooms that had no connection already, this needs union find to check for connectedness
19:56:38 <ais523> oerjan: ah, that's another application for much the same thing
19:56:57 <ais523> I tend not to end up using standard algorithms that much beyond dijkstra/A*/priority queues/sorts
19:57:30 <ais523> although recently for my work, I had to find a list of strongly connected components in a partial preorder (like tsort, except focusing on the error condition rather than the success condition)
19:57:34 <elliott> the best algorithms are ones that involve spinning around a lot
19:58:17 <ais523> luckily, I found one on Wikipedia, and implemented it, even if I'm not entirely sure on how it works
19:59:24 <oerjan> ais523: i wonder if there would be advantages to a prolog implementation using union find for unification
19:59:53 <ais523> oerjan: the major issue is that you probably want to be able to free things again when they go out of scope
19:59:56 <elliott> [PDF] Optimal Union-Find in Constraint Handling Rules
19:59:56 <elliott> File Format: PDF/Adobe Acrobat - Quick View
19:59:56 <elliott> by T Schrijvers - Cited by 65 - Related articles
19:59:56 <elliott> possible to write the classic union-find algorithm and variants in CHR. ... For example, one often hears the argument that in Prolog some graph algorithms .... to combine the existing CHR solvers for term unification with our union- ...
19:59:57 <elliott> citeseer.ist.psu.edu/viewdoc/download;jsessionid...?doi=10.1.1...
19:59:58 <oerjan> yeah
19:59:59 <ais523> and that's going to be slower than the actual unification
19:59:59 <elliott> i guess that's an implementation though
20:00:02 <elliott> rather than using it as a technique
20:02:01 <pikhq> elliott: So far, 21 files that don't build right, and several more stupid warnings.
20:02:30 <ais523> <Maharba> as always, replying to ehird
20:02:54 <elliott> :D
20:03:14 <elliott> ais523: this is why you make your spec perfect the _first_ time round
20:04:11 <oerjan> ais523: hm that rank comparison thing in that wiki article i linked should be applicable to unification while still allowing easy freeing. i think that's essentially a way to prevent too long chains of unified variables, no?
20:04:51 <ais523> oerjan: yep, but the issue is you need reverse pointers to free something
20:05:06 <ais523> because if one of your variables happens to be a root, there's no way you can free it without fixing up everything pointing to it
20:05:13 <oerjan> well yeah but you need that for unification anyway?
20:05:30 <ais523> oerjan: Union-Find doesn't let you know everything in the same set as something
20:05:32 <ais523> just if two things are in the same set
20:05:45 <oerjan> ais523: i'm just saying this rank thing is a way to be careful _which way_ you identify
20:06:56 <elliott> oerjan: did you figure out a better data structure for the asm :D
20:07:03 -!- augur has quit (Remote host closed the connection).
20:07:33 <oerjan> elliott: um my idea now is to simply have a list for the whole code from start to finish, and represent the labels by pointers into that
20:07:52 <elliott> oerjan: ah
20:08:01 <elliott> oerjan: I would quite like there to be integers too, although I suppose I could just make
20:08:04 <elliott> type Label = (Int,Prog)
20:08:19 <oerjan> elliott: or put differently, approximately your [(Label,[Ins])] except you _don't_ stop the [Ins] list before the next label
20:08:50 <elliott> oerjan: I see a fairly major issue -- it will make Show practically impossible
20:08:56 <elliott> because the structure will be effectively infinite
20:09:00 <oerjan> hm
20:09:37 <oerjan> always an issue
20:09:47 <Phantom_Hoover> ineiros why is your server OUTDATES
20:09:47 <lambdabot> Phantom_Hoover: You have 12 new messages. '/msg lambdabot @messages' to read them.
20:09:52 <Phantom_Hoover> elliott, FFS.
20:09:56 <Phantom_Hoover> I was online!
20:10:26 <elliott> That's... that's a good point.
20:10:31 <Phantom_Hoover> elliott, you broke it again. Congratulations.
20:10:34 <elliott> Nice.
20:11:00 <oerjan> elliott: ok then, have your original [(Label,[Ins])] but make a second variant which doesn't end, for easy fall through
20:11:17 <elliott> oerjan: what do you mean by a second variant?
20:11:39 <elliott> oerjan: I'm really tempted just to roll in the labels into the actual Ins like you said
20:11:47 <elliott> the linear scan for interpretation is not that big a deal, the interpreter is just like
20:11:49 <elliott> to be reference semantics
20:14:08 <oerjan> > let f = zip . scanr1 (++) . unzip in f [(1,"ab"), (2,"cde"), (3,"f")]
20:14:09 <lambdabot> Couldn't match expected type `[a]'
20:14:09 <lambdabot> against inferred type `([a1], [b...
20:14:18 <elliott> i'm just doing it in a simple way instead >_>
20:14:19 <oerjan> fnord
20:14:21 <elliott> whups
20:14:43 <oerjan> > let f = zip . second (scanr1 (++)) . unzip in f [(1,"ab"), (2,"cde"), (3,"f")]
20:14:43 <lambdabot> Couldn't match expected type `[a]'
20:14:44 <lambdabot> against inferred type `(d, [a1])'
20:15:36 <oerjan> :t zip . second (scanr1 (++)) . unzip
20:15:37 <lambdabot> Couldn't match expected type `[a]'
20:15:37 <lambdabot> against inferred type `(d, [a1])'
20:15:37 <lambdabot> In the first argument of `(.)', namely `second (scanr1 (++))'
20:15:46 <oerjan> :t scanr1 (++)
20:15:47 <lambdabot> forall a. (Monoid a) => [a] -> [a]
20:16:02 <oerjan> bloody caleskell :P
20:16:18 <oerjan> :t second (scanr1 (++))
20:16:19 <lambdabot> forall a d. (Monoid a) => (d, [a]) -> (d, [a])
20:16:25 <oerjan> :t second (scanr1 (++)) . unzip
20:16:25 <lambdabot> forall a a1. (Monoid a) => [(a1, a)] -> ([a1], [a])
20:16:44 <oerjan> :t zip . second (scanr1 (++)) . unzip
20:16:44 <lambdabot> Couldn't match expected type `[a]'
20:16:45 <lambdabot> against inferred type `(d, [a1])'
20:16:45 <lambdabot> In the first argument of `(.)', namely `second (scanr1 (++))'
20:16:55 <oerjan> :t zip
20:16:56 <lambdabot> forall a b. [a] -> [b] -> [(a, b)]
20:16:58 <oerjan> oh hm
20:17:03 <elliott> runVM ctx ((_, IPush x : is):iss) xs = runVM ctx (is:iss) (x:xs)
20:17:05 <elliott> look at dat ugliness
20:17:13 <oerjan> > let f = curry zip . second (scanr1 (++)) . unzip in f [(1,"ab"), (2,"cde"), (3,"f")]
20:17:14 <lambdabot> Couldn't match expected type `(a, b)' against inferred type `[a1]'
20:17:23 <oerjan> NOW WHAT
20:17:30 <oerjan> :t curry zip . second (scanr1 (++)) . unzip
20:17:31 <lambdabot> Couldn't match expected type `(a, b)' against inferred type `[a1]'
20:17:31 <lambdabot> In the first argument of `curry', namely `zip'
20:17:31 <lambdabot> In the first argument of `(.)', namely `curry zip'
20:17:46 <oerjan> :t curry zip
20:17:47 <lambdabot> Couldn't match expected type `(a, b)' against inferred type `[a1]'
20:17:47 <lambdabot> In the first argument of `curry', namely `zip'
20:17:47 <lambdabot> In the expression: curry zip
20:18:03 <oerjan> wtf
20:18:18 <oerjan> :t uncurry zip
20:18:19 <lambdabot> forall a b. ([a], [b]) -> [(a, b)]
20:18:26 <oerjan> > let f = uncurry zip . second (scanr1 (++)) . unzip in f [(1,"ab"), (2,"cde"), (3,"f")]
20:18:27 <lambdabot> [(1,"abcdef"),(2,"cdef"),(3,"f")]
20:18:39 <elliott> oh wait argh
20:18:40 <elliott> this is even uglier
20:18:52 <oerjan> i always get curry and uncurry mixed up
20:18:59 <oerjan> elliott: ^
20:19:05 <elliott> oerjan: nice
20:19:11 <elliott> oerjan: unfortunately i'll end up recomputing that a ton
20:19:15 <elliott> unless i do something really ugly
20:19:17 <elliott> which i guess i could
20:19:46 <oerjan> um why? unless the language is self-modifying
20:20:01 <elliott> no just as in
20:20:02 <elliott> jhfhjg
20:20:07 <elliott> its fine thank you
20:20:15 <oerjan> you mean not caching? :P
20:21:06 <elliott> ya
20:24:16 * oerjan wonders how lazy scanr is
20:24:47 <oerjan> > map (take 5) . take 5 . scanr1 (++) $ [1..]
20:24:48 <lambdabot> No instances for (GHC.Num.Num [a], GHC.Enum.Enum [a])
20:24:49 <lambdabot> arising from a use...
20:24:55 <oerjan> erm
20:25:31 <oerjan> > map (take 5) . take 5 . scanr1 (++) $ map show [1..]
20:25:33 <lambdabot> ["12345","23456","34567","45678","56789"]
20:25:51 <oerjan> lazy enough, it seems :P
20:26:42 <ais523> :t scanr
20:26:43 <lambdabot> forall a b. (a -> b -> b) -> b -> [a] -> [b]
20:26:52 <ais523> hmm, what is scanr doing?
20:27:07 <oerjan> ais523: otoh that path compression thing is something i've pondered as useful for both FORTE and Reaper (although neither actually _implemented_...)
20:27:23 <ais523> > scanr (\a.\b.a+b) 4 [1,2,3,4,5,6]
20:27:24 <lambdabot> <no location info>: parse error on input `.\'
20:27:31 <ais523> > scanr (\a -> \b -> a+b) 4 [1,2,3,4,5,6]
20:27:32 <pikhq> Hmm. Should I just try to do a reimplementation of error(), or should I just replace all mentions of it?
20:27:32 <lambdabot> [25,24,22,19,15,10,4]
20:27:42 <oerjan> > scanr f x [a,b,c,d] :: Expr
20:27:43 <lambdabot> Couldn't match expected type `SimpleReflect.Expr'
20:27:43 <lambdabot> against inferred ...
20:27:48 <ais523> ah, it's doing a cumulative sum
20:27:49 <oerjan> dammit
20:28:10 <ais523> so a scan is basically a fold that saves intermediate results?
20:28:16 <oerjan> yeah
20:28:27 <oerjan> > scanl1 (*) [1..]
20:28:28 <lambdabot> [1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,8...
20:29:05 -!- ais523 has quit (Remote host closed the connection).
20:29:05 <copumpkin> > scanl1 (+) [1,3..]
20:29:06 <lambdabot> [1,4,9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,400,441,48...
20:29:08 <elliott> it would be nice to have a programming language that actually made you feel strongly physically uncomfortable when you tried to programi n it
20:29:13 <elliott> it would be a real step forward in esoteric programming
20:29:47 <oerjan> elliott: so that means you really appreciate Snack, then? >:P
20:29:54 <elliott> :D
20:30:23 <elliott> god dammit Maharba, adding new operations to syl :(
20:31:15 <oerjan> look at the positive of it, you have to learn how to program in a highly modular and modifiable way :P
20:31:46 <elliott> :D
20:31:58 * elliott waits for the inevitable talk page comment
20:32:03 <oerjan> :t scanr f x [a,b,c,d]
20:32:03 <lambdabot> [Expr]
20:32:08 <oerjan> oh duh
20:32:15 <oerjan> > scanr f x [a,b,c,d] :: [Expr]
20:32:16 <lambdabot> [f a (f b (f c (f d x))),f b (f c (f d x)),f c (f d x),f d x,x]
20:32:30 <oerjan> sadly ais523 left
20:33:03 <elliott> left us bleeding
20:36:30 <Vorpal> <elliott> god dammit Maharba, adding new operations to syl :( <-- implement syl version whatever
20:37:44 <Vorpal> :t f
20:37:45 <lambdabot> forall a. (SimpleReflect.FromExpr a) => a
20:37:50 <Vorpal> huh?
20:37:56 <Vorpal> :t
20:37:59 <Vorpal> :t SimpleReflect.FromExpr
20:37:59 <lambdabot> Not in scope: data constructor `SimpleReflect.FromExpr'
20:38:06 <elliott> :info SimpleReflect.FromExp
20:38:06 <Vorpal> :i SimpleReflect.FromExpr
20:38:06 <elliott> :info SimpleReflect.FromExpr
20:38:10 <elliott> ?src SimpleReflect.FromExpr
20:38:10 <lambdabot> Source not found. I feel much better now.
20:38:12 <elliott> ?src FromExpr
20:38:12 <lambdabot> Source not found. stty: unknown mode: doofus
20:38:13 <Vorpal> :info SimpleReflect.FromExpr
20:38:21 <elliott> ?hoogle simplereflect
20:38:21 <lambdabot> No results found
20:38:22 <elliott> ?google simplereflect
20:38:24 <elliott> oh where is it
20:38:26 <lambdabot> http://hackage.haskell.org/package/simple-reflect
20:38:26 <lambdabot> Title: HackageDB: simple-reflect-0.2
20:38:39 <elliott> there
20:38:46 <Vorpal> :t a
20:38:47 <lambdabot> Expr
20:38:49 <Vorpal> hm
20:39:13 <Vorpal> :t hasd
20:39:13 <lambdabot> Not in scope: `hasd'
20:39:17 <Vorpal> okay
20:39:46 <oerjan> they made all single letters be Expr, except f g h which have an overloaded type which can be used for functions
20:39:46 <Vorpal> :t g
20:39:47 <lambdabot> forall a. (SimpleReflect.FromExpr a) => a
20:39:52 <Vorpal> ah
20:40:55 <Phantom_Hoover> OK what is the deal with the weak force.
20:41:12 <Phantom_Hoover> Why do people call it a force.
20:41:13 <Phantom_Hoover> It isn't.
20:41:20 <Phantom_Hoover> It's not even all that weak.
20:41:24 <oerjan> > sum [a,b,c,d]
20:41:25 <lambdabot> 0 + a + b + c + d
20:41:30 <Vorpal> Phantom_Hoover, it is weak compared to the strong force iirc?
20:41:40 <oerjan> the Num instance is _really_ primitive
20:42:12 <elliott> howso
20:42:32 <oerjan> it doesn't even simplify 0 + away :P
20:42:44 <Phantom_Hoover> Vorpal, yes, but it's not that much weaker, and I think both electromagnetism and gravity are weaker still.
20:42:47 <oerjan> > scanr1 (+) [a,b,c,d]
20:42:47 <lambdabot> [a + (b + (c + d)),b + (c + d),c + d,d]
20:42:51 <oerjan> er
20:42:56 <oerjan> > foldr1 (+) [a,b,c,d]
20:42:57 <lambdabot> a + (b + (c + d))
20:42:59 <Vorpal> Phantom_Hoover, gravity certainly is
20:43:03 <pikhq> I'll be damned, there's actually something that's not sufficiently supported in musl.
20:43:10 <pikhq> musl does not have wcsdup.
20:43:18 <pikhq> The wchar_t analogue of strdup.
20:43:28 <elliott> that's like
20:43:28 <Vorpal> pikhq, easy to implement yourself
20:43:30 <oerjan> Phantom_Hoover: i think they used to be called weak and strong _nuclear_ force
20:43:32 <elliott> a whole three lines to implement ZOMG :D
20:43:41 <oerjan> somewhere that word got dropped
20:43:55 <elliott> Phantom_Hoover: what's the strongest weak force you know of in't
20:44:00 <Phantom_Hoover> oerjan, which is half right, but it still doesn't actually behave as a force.
20:44:12 <Vorpal> Phantom_Hoover, oh?
20:44:39 -!- augur has joined.
20:44:50 <Phantom_Hoover> Vorpal, the only example of its effects that anyone who isn't a particle physicist knows about is beta decay.
20:45:03 <Phantom_Hoover> Which is... a decay, not a force in the conventional sense.
20:45:05 <Vorpal> Phantom_Hoover, ah
20:45:16 <Vorpal> Phantom_Hoover, but for those who are particle physicists?
20:45:57 <pikhq> *For now*, I'll just tell the build system that there's no wide character support.
20:46:16 <pikhq> But later, I'll actually add a wcsdup.
20:46:20 <oerjan> Phantom_Hoover: well presumably that decay can happen because there is a weak force between neutrinos and quarks?
20:46:25 <Phantom_Hoover> There are some more neutrino/nucleon interactions it's involved with, although they still don't work that forcily.
20:47:02 <Phantom_Hoover> oerjan, it's more like a down quark spontaneously emits a W- boson which then decays into an electron and an antineutrino.
20:47:34 <oerjan> Phantom_Hoover: you could say all electromagnetism is is decay of excited charged particles into non-excited particles and photons :P
20:47:35 <elliott> your mom is a quark end of discussion
20:48:02 <Phantom_Hoover> oerjan, you don't have <particle> → <different particle>, though.
20:48:04 <oerjan> (i _think_)
20:48:44 <Phantom_Hoover> There does seem to be a normal stuff-flies-apart-or-moves-together interaction between nucleons and neutrinos, though.
20:48:50 <oerjan> well i've seen the word "interaction" used instead of force, i think
20:49:03 <oerjan> presumably for this kind of reason
20:49:07 <Phantom_Hoover> Yes, that's a much better name.
20:51:40 <pikhq> FUCK YOUR UNPORTABLE USE OF sys/types.h.
20:52:00 <Phantom_Hoover> The sudden switch to lowercase there makes it look quite amusing.
20:52:04 <pikhq> "quad_t" is a BSD-ism, dammit. What you want is int64_t.
20:52:20 <elliott> oerjan: I'm just going to inline labels inside
20:52:22 <Phantom_Hoover> Like you were yelling at someone and suddenly composed yourself and said "sys slash types dot h".
20:52:27 <elliott> since the actual backends will have no problem with it... I think
20:55:30 <Vorpal> is travelling salesman NP-complete or NP-hard?
20:55:34 <Vorpal> oerjan, ^
20:56:04 <Vorpal> (of course if it is the former it is also the latter
20:59:18 * pikhq beats head against wall
20:59:28 <Vorpal> pikhq, hm?
20:59:34 <oerjan> Vorpal: the decision version is NP-complete
20:59:37 <pikhq> It *literally* has a part that requires inb and outb.
20:59:41 <Vorpal> oh, of course
20:59:49 <Vorpal> pikhq, what part? hwclock?
20:59:53 <pikhq> Yup.
20:59:56 <pikhq> I was unaware that was permitted outside of ring 0.
21:00:08 <pikhq> Guess where that comes from?
21:00:10 <pikhq> glibc!
21:00:10 <Vorpal> pikhq, uh you need CAP_SOMETHING for it
21:00:24 <pikhq> Because Linux stopped exporting those, because THAT IS FUCKING STUPID.
21:00:32 <Vorpal> CAP_SYS_RAWIO
21:00:42 <pikhq> FUCKING. STUPID.
21:00:43 <Sgeo> Which sort of parser is easier for a newbie at writing parsers to write?
21:00:44 <Vorpal> pikhq, so you can't do it then?
21:00:55 <Vorpal> pikhq, how does glibc do it then
21:00:56 <pikhq> I refuse to.
21:01:06 <pikhq> glibc has embedded ASM.
21:01:08 <Vorpal> pikhq, anyway doesn't hwclock use /dev/rtc these days?
21:01:10 <pikhq> In the header.
21:01:15 <coppro> pikhq: you can't copy glibc anyways
21:01:45 <elliott> thank you painfully-obvious license laeyer
21:01:46 <elliott> lawyer
21:02:07 <pikhq> coppro: Why not? LGPL 2.1+ is entirely compatible with LGPL 2.1+.
21:02:24 <pikhq> However, I refuse to because GOD NO.
21:02:37 <pikhq> This is not something that belongs in a libc. At all.
21:03:52 <coppro> pikhq: oh, I didn't realize glibc was still on 2.1
21:03:56 <Sgeo> Top down parsers can't accomodate all context-free grammars, iiuc
21:04:07 <Sgeo> I have no idea if my language even is context-free :/
21:04:27 -!- aloril has quit (Ping timeout: 250 seconds).
21:04:51 <Sgeo> My lambda syntax is flawed, there's no way to specify return type
21:05:14 <Sgeo> Well, could always type-infer
21:05:41 <Vorpal> Sgeo, so change the language then
21:05:45 <oerjan> if you have enough backtracking, i'm pretty sure top down can do anything CF... but perhaps not always efficiently
21:06:01 <pikhq> Oh, yeah, and the header was once asm/io.h, from Linux
21:06:08 * Phantom_Hoover notes that Sgeo is talking about grammars, mentally blocks him.
21:06:14 <Vorpal> pikhq, so copy it from there?
21:06:22 <Vorpal> pikhq, how does it do it btw?
21:06:50 <Sgeo> I guess context-free would make my life much easier?
21:07:02 <Vorpal> of course
21:07:25 <oerjan> context-free unambiguous LR(1)
21:07:33 <Vorpal> oerjan, no LL(1)
21:07:36 <pikhq> So, hwclock is the *one thing* stopping me from having util-linux building.
21:07:44 <Sgeo> I don't know what LL(1) means
21:07:45 <oerjan> well yeah that's even easier
21:08:03 <oerjan> Sgeo: LL(1) are essentially languages for which top-down is ridiculously easy
21:08:15 <Sgeo> Hey, I'm not committed to top-down
21:08:15 <Vorpal> pikhq, well then why use hwclock. Aren't modern kernels able to do the job themselves?
21:08:30 <oerjan> also, s/top-down/recursive descent/ iirc
21:08:30 <Vorpal> Sgeo, python is LL(1)
21:08:52 <Vorpal> olsner, what about LL(0)
21:08:54 <Vorpal> err
21:08:55 <Vorpal> oerjan, ^
21:09:00 <oerjan> Sgeo: well everything other than recursive descent is relatively unfeasible to write by _hand_
21:09:05 <oerjan> iirc
21:09:10 <Phantom_Hoover> augur, there?
21:09:14 <Sgeo> I do want the syntax to be vaguey LSL-like
21:09:22 <oerjan> you need a parser generator
21:09:24 <Vorpal> Sgeo, WHY
21:09:28 <pikhq> Hmm. Well, I can do a *nasty* hack to get it to build.
21:09:33 <oerjan> for L(AL)R(1) stuff
21:09:38 <Vorpal> pikhq, what is that hack
21:09:48 <pikhq> I can replace its "#include <asm/io.h>" with #undef __i386__
21:09:54 <Sgeo> Vorpal, to make things easy for others who I will convince to use my language
21:10:21 <Sgeo> Are there good parser generators that output parsers in Javascript?
21:10:23 <pikhq> (asm/io.h is conditionally included if the system doesn't have sys/io.h. Incidentally, asm/io.h should not exist anywhere, as it's not a header the kernel *intends* to export.)
21:10:34 <monqy> what if the syntax ends up making the language harder for everyone
21:10:49 <monqy> it's not like it's hard to pick up a new syntax
21:10:51 <oerjan> Sgeo: unless your syntax is completely insane, it can probably at least be refactored to be mostly LR(1).
21:10:51 <pikhq> By doing this, hwclock will not be able to access the BIOS clock directly, and will have to function through alternate means.
21:10:55 <monqy> unless second life people are dumb
21:11:34 <Vorpal> pikhq, or you could just remove the code for the BIOS clock completely
21:11:43 <oerjan> Sgeo: the technical requirement for LL(1) is that which subrule to use for parsing a token always is determined by the first terminal token you see
21:11:44 <Sgeo> Considering that my language _will_ make race conditions more of a possibility than they are in LSL, maybe I should hope SL people aren't dumb
21:11:44 <elliott> oerjan: Humour for Haskell programmers: http://solog.co/47/10-scala-one-liners-to-impress-your-friends/
21:11:50 <elliott> 1
21:11:50 <elliott> (1 to 10) map { _ * 2 }
21:11:52 <elliott> WOOOOOOOOOOOOOOOOOOOOOOOOOOOOOW
21:11:59 <Vorpal> <monqy> unless second life people are dumb <-- spot on
21:12:24 <oerjan> elliott: iirc there was a haskell version posted (which showed the author obviously didn't know much haskell)
21:12:50 <elliott> Boring people should stop having blogs :P
21:12:57 <Deewiant> ( http://blog.fogus.me/2011/06/03/10-haskell-one-liners-to-impress-your-friends/ )
21:13:06 <monqy> map (* 2) [1 .. 10] -- alternatively, [1, 2 .. 10], right?
21:13:10 <elliott> oerjan: the author of the solog thing post or fogus?
21:13:13 <Phantom_Hoover> elliott, I like the way they're completely oblivious that their programs are half boilerplate.
21:13:27 <oerjan> Sgeo: as long as your grammar mainly has that property, it is easy to parse top-down/with recursive descent
21:13:50 <oerjan> elliott: ok so maybe it isn't the same author
21:14:05 <Phantom_Hoover> oerjan, you mean the one in /r/Haskell?
21:14:09 <monqy> ime it's easier to write compilers when you know what you're doing
21:14:10 <oerjan> yeah
21:14:15 <elliott> Deewiant: I wonder how long I could convince someone that you're a bot
21:14:15 <pikhq> Okay, then. I can hack util-linux into building with musl.
21:14:18 <Sgeo> oerjan, quick example?
21:14:25 <Phantom_Hoover> Wait, that is the one in /r/Haskell.
21:14:32 <Deewiant> elliott: fnord
21:14:40 <elliott> Indefinitely, then
21:14:41 <Vorpal> pikhq, remember wide string stuff
21:14:41 <augur> Phantom_Hoover: pong
21:14:52 <elliott> <Deewiant> ( See also: Deewiant human is not a bot. )
21:14:59 <elliott> <person> haha who added that factoid
21:15:03 <oerjan> Sgeo: well Pascal is sort of a star example of this. nearly every declaration starts with a keyword identifying what kind it is, e.g. Var X : Integer;
21:15:06 <Phantom_Hoover> augur, are there actually any linguistics questions on /r/AskScience.
21:15:14 <augur> Phantom_Hoover: occasionally!
21:15:16 <elliott> Phantom_Hoover: its not a real science so no :trollface:
21:15:31 <oerjan> it was designed to be easy to parse. as i think are all wirth languages.
21:15:35 <augur> Phantom_Hoover: why do you ask?
21:15:46 <pikhq> http://sprunge.us/TBhV
21:15:50 <Sgeo> monqy, how hard could it be once I have the AST? Just turn expressions into function calls and lambdas, then convert to CPS, then convert to bytecode
21:15:56 <Sgeo> "byte"code
21:16:02 <pikhq> Vorpal: Yes, I do still need to add that to musl.
21:16:05 <Phantom_Hoover> augur, dunno, just saw you were a panellist.
21:16:07 <elliott> oerjan: very few languages are LL(1), you should note :P
21:16:13 <augur> Phantom_Hoover: anyone can be a panelist :P
21:16:14 <elliott> e.g. you can't have both "x = y" and "f(x)"
21:16:18 <elliott> because both start with an identifier
21:16:19 <Vorpal> pikhq, it is POSIX 2008 it seems yeah
21:16:25 <Phantom_Hoover> elliott, it's a real science, in the same way as anthropology is a 'science'.
21:16:34 <elliott> Phantom_Hoover: Or computer science.
21:16:36 <monqy> Sgeo: but do you know how to do those
21:16:38 <oerjan> Sgeo: C on the other hand is not LL(1)
21:16:38 <Phantom_Hoover> The interesting bits are mathematics AFAIK.
21:16:45 <elliott> Or physics.
21:16:47 <monqy> Sgeo: also do you know how to write a parser
21:16:48 <Sgeo> monqy, how hard could it be?
21:16:49 <augur> Phantom_Hoover: its even more real than that! we have an MEG machine and an MRI machine!
21:16:52 <elliott> Or biology.
21:16:52 <augur> SCIENCE! \o/
21:16:53 <myndzi> ¦
21:16:53 <myndzi> ´¸¨
21:16:53 <oerjan> elliott: well you can fix that example with a little refactoring
21:16:57 <Phantom_Hoover> elliott, study of actual human languages is a science-as-in-physics-science.
21:16:58 <augur> thank you myndzi
21:17:00 <augur> ive missed you
21:17:01 <Sgeo> monqy, not the foggiest idea (ok, a somewhat foggy idea)
21:17:04 <elliott> `addquote <monqy> Sgeo: also do you know how to write a parser <Sgeo> monqy, how hard could it be?
21:17:05 <HackEgo> ​443) <monqy> Sgeo: also do you know how to write a parser <Sgeo> monqy, how hard could it be?
21:17:20 <Sgeo> What?
21:17:21 <augur> Phantom_Hoover: i wouldnt go so far as to say that
21:17:31 <oerjan> elliott: x = y and f(x) are both ok as long as they don't parse to different nonterminal tokens
21:17:33 <Sgeo> "How hard could it be" should NOT go with "parser"
21:17:35 <monqy> parsers are actually easy if you know what you're doing
21:17:35 <pikhq> Build with --disable-shared --disable-libmount --disable-schedutils, and comment out the HAVE_WIDECHAR.
21:17:36 <augur> i think its more akin to logic and some aspects of computer science
21:17:38 <Sgeo> It was meant to go with the other stuff
21:17:43 <pikhq> in config.h
21:17:46 <elliott> oerjan: right
21:17:49 <Vorpal> pikhq, "--- util-linux-2.19.1/text-utils/#display.c#1969-12-31 17:00:00.000000000 -0700"
21:17:53 <Vorpal> pikhq, patch fail
21:18:02 <Phantom_Hoover> augur, yes, but is some amount of linguistics attempting to model human communication?
21:18:11 <Sgeo> This is what I saw:
21:18:14 <Sgeo> <Sgeo> monqy, how hard could it be?
21:18:14 <Sgeo> <monqy> Sgeo: also do you know how to write a parser
21:18:21 -!- aloril has joined.
21:18:30 <augur> Phantom_Hoover: maybe a handful of people
21:18:35 <Phantom_Hoover> Sgeo, it's what I saw too.
21:18:37 <pikhq> Vorpal: Argh, fuck emacs.
21:18:41 <elliott> I saw it the way I added it.
21:18:47 <monqy> the "how hard could it be" was directed towards program transformation
21:18:48 <elliott> Complaints will be ignored; humour comes above accuracy.
21:18:57 <elliott> This is not an invitation to add me saying "lol im a fag".
21:19:24 * elliott awaits the inevitable
21:19:27 <Phantom_Hoover> `addquote <elliott> This is [...] me saying "lol im a fag".
21:19:28 <HackEgo> ​444) <elliott> This is [...] me saying "lol im a fag".
21:19:34 <elliott> `delquote ​444
21:19:35 <HackEgo> No output.
21:19:38 <monqy> program transformation is a lot more interesting than parsing, at least
21:19:39 <elliott> Oh the power I wield.
21:19:41 <Phantom_Hoover> `addquote <elliott> This is [...] me saying "lol im a fag".
21:19:42 <HackEgo> ​445) <elliott> This is [...] me saying "lol im a fag".
21:19:49 <Phantom_Hoover> Yeah, I meant to fix that error.
21:19:55 <monqy> `quote 444
21:19:56 <HackEgo> ​444) <elliott> This is [...] me saying "lol im a fag".
21:19:56 <elliott> ugh delquote is still broken
21:20:04 <elliott> monqy: sgeo should learn compiler-writing from sylladex
21:20:07 <Vorpal> pikhq, what is schedutils?
21:20:12 <Vorpal> and libmount?
21:20:21 <Sgeo> sylladex?
21:20:34 * Phantom_Hoover awaits elliott's inevitable facepalm.
21:20:53 <pikhq> Vorpal: schedutils lets you change the realtime priority of processes; relies on some POSIX 2008 features that musl doesn't support.
21:20:53 <Sgeo> I just Googled, first hits were what I thought you weren't referring to
21:21:05 <Vorpal> pikhq, ah
21:21:09 <elliott> monqy: its got everything, full parser, optimiser, stack-based VM intermediate language, assembly backend...
21:21:15 <elliott> incremental compilation...
21:21:16 <Vorpal> pikhq, and libmount?
21:21:17 <pikhq> Vorpal: libmount is an experimental mounting library that seems buggy that's unnecessary, that I didn't want to fuck with.
21:21:22 <Vorpal> ah
21:21:25 <monqy> elliott: all for SyL?
21:21:31 <elliott> monqy: yes.
21:21:41 <pikhq> So, this gets you a *pretty much* complete util-linux.
21:21:50 <monqy> a serious language for serious business
21:21:58 <elliott> monqy: you don't KNOW how sleek it will be to compile the gtk+ ffi example.
21:21:58 <Vorpal> pikhq, *oh* is it schedtool?
21:22:00 <Vorpal> if so I use it
21:22:01 <pikhq> Yes.
21:22:02 <elliott> you just don't know.
21:22:10 <Sgeo> I hope type inference isn't difficult
21:22:19 <elliott> `addquote <Sgeo> I hope type inference isn't difficult
21:22:20 <pikhq> There's nothing *wrong* with it at all, it just uses some interfaces musl doesn't have yet.
21:22:20 <HackEgo> ​446) <Sgeo> I hope type inference isn't difficult
21:22:32 <Vorpal> pikhq, I run hdapsd with real time privs it seems
21:22:38 <Phantom_Hoover> So wait, what's wrong with delquote?
21:22:39 <Vorpal> well the init script does
21:22:45 <elliott> Phantom_Hoover: its broken in some way that i dont know how
21:22:49 <Vorpal> pikhq, which is very sensible
21:22:54 <pikhq> Whereas just about everything I patched in util-linux is *actual fucking bugs*.
21:22:59 <pikhq> That musl happened to trigger.
21:23:10 <Vorpal> pikhq, send those patches upstream
21:23:19 <pikhq> I intend to.
21:23:22 <monqy> one time I learned how to do type inference
21:23:25 <monqy> it was pretty cool
21:23:27 <monqy> 100% forgotten
21:24:20 <Sgeo> Look at lifetime of variable. If it has two incompatible types, fail typechecking. If type of variable is omitted at one location, no big deal.
21:24:24 <Sgeo> Sounds easy
21:24:35 <Sgeo> It's probably more complicated than that.
21:24:52 <Vorpal> <elliott> Phantom_Hoover: its broken in some way that i dont know how <-- do a binary search over the revisions to find it?
21:24:55 <elliott> i was going to say that one day Sgeo will look back on these logs and ... but then i realised
21:24:58 <elliott> he probably won't
21:25:02 <monqy> hehehehehheheheheheh
21:25:21 <Phantom_Hoover> Vorpal, I invite you to fix it.
21:25:32 <Vorpal> Phantom_Hoover, why me
21:25:43 <Phantom_Hoover> You seem like a man who knows what he's doing.
21:25:48 <elliott> Vorpal: if you fix it i'll give you minecraft.
21:25:54 <Vorpal> ...
21:25:55 <Vorpal> `run url $(type delquote)
21:25:55 <elliott> YOUR DECISION
21:25:56 <HackEgo> ​http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/delquote
21:26:26 <Vorpal> error: delquote@6875624d657a: not found in manifest
21:26:28 <Vorpal> well fu
21:26:31 <elliott> clap
21:26:32 <elliott> clap
21:26:32 <elliott> clap
21:26:34 <elliott> clap
21:26:36 <Vorpal> elliott, what
21:26:41 <elliott> `run ls delquote
21:26:42 <HackEgo> No output.
21:26:42 <elliott> `run ls bin/delquote
21:26:43 <HackEgo> ​bin/delquote
21:26:50 <Vorpal> elliott, I did use type dammit
21:26:50 <oerjan> <Sgeo> I hope type inference isn't difficult <-- ok now you are in _way_ over your head
21:26:54 <Vorpal> `run type delquote
21:26:55 <HackEgo> ​delquote is /tmp/hackenv.30916/bin/delquote
21:26:58 <Vorpal> oh right
21:26:59 <Vorpal> damn
21:27:06 <elliott> oerjan: sadly, I think he was way in over his head as soon as he went from lexing to parsing.
21:27:22 <monqy> sgeo did lexing?
21:27:39 <elliott> monqy: he... ostensibly knows what lexing is.
21:27:42 <elliott> probably.
21:27:50 <monqy> I'm so proud
21:27:57 <Vorpal> lexing isn't really hard
21:28:01 <Vorpal> parsing can be
21:28:08 <oerjan> elliott: well i was deducing from the fact he finds parsing tricky
21:28:11 <monqy> Sgeo: as I said earlier, writing a compiler is easier when you know what you're doing
21:28:33 <oerjan> which means type inference will be completely impenetrable
21:28:56 <Vorpal> hm, how *does* type inference work?
21:29:07 <pikhq> Hmm. Lemme just check that it builds with glibc still. *Should*, but hey.
21:29:09 <Vorpal> I have no idea, but I bet I could learn
21:29:28 <elliott> Vorpal: depends if you mean like C[hash] style or full Hindley-Milner or even beyond that
21:29:45 <elliott> the former is ridiculously simple.
21:29:50 <Vorpal> elliott, lets start with the simplest one and work upwards from there :P
21:30:04 <elliott> the middle isn't simple, but it's not hard to get a hang of.
21:30:07 <elliott> the latter gets a bit gnarly.
21:30:10 <pikhq> Nope, it doesn't.
21:30:16 <Vorpal> elliott, ah, how does the middle one work then.
21:30:16 <elliott> Vorpal: well the first one is like a totally different breed to the latter
21:30:19 <elliott> all you have to do is know the types of literals
21:30:20 <pikhq> bits/user.h DNE...
21:30:21 <elliott> and like
21:30:23 <elliott> what types functions return
21:30:24 <Vorpal> elliott, ah right
21:30:24 <elliott> and you're done
21:30:27 <Vorpal> yep
21:30:29 <Vorpal> makes sense
21:30:36 <Vorpal> elliott, since functions in C# can't return var
21:30:42 <elliott> the middle one works like ... http://en.wikipedia.org/wiki/Type_inference#Hindley.E2.80.93Milner_type_inference_algorithm
21:30:50 <elliott> to be perfectly honest, I couldn't describe H-M without having the description in front of me
21:31:04 <Vorpal> elliott, the last one I don't even know what it is
21:31:07 <elliott> Vorpal: haskell
21:31:11 <monqy> I think I learned H-M when I learened type inference
21:31:18 <Vorpal> elliott, doesn't haskell use H-M?
21:31:21 <elliott> haskell with one or two extensions gives you the absolute most you can fully infer, basically
21:31:25 <elliott> Vorpal: it uses H-M with extensions
21:31:31 <Vorpal> elliott, what extensions?
21:31:37 <elliott> typeclasses f.e.
21:31:48 <elliott> but "fancy" haskell stuff isn't fully inferrable.
21:31:55 <elliott> so just like haskell ninetyeight is.
21:31:57 <elliott> plus a bit extra.
21:32:05 <Vorpal> hm
21:32:34 <oerjan> Vorpal: for ghc, heaps of them. basically if someone invents a new type idea that is mostly inferable, it'll probably end up in ghc :P
21:32:37 <pikhq> Okay, there is no good place for pulling __WORDSIZE.
21:32:46 <elliott> oerjan: and even if it isn't
21:32:48 <Vorpal> oerjan, hah
21:33:34 <elliott> oerjan i was reading that talk page and you had a comment so i clicked on your contribs and
21:33:38 <elliott> do you have [[7 (number)]] on your watchlist
21:33:39 <elliott> and why
21:33:44 <oerjan> wat
21:34:00 <oerjan> no, lemme check why i edited that
21:34:06 <elliott> 10:22, 20 January 2011 (diff | hist) 7 (number) ‎ (Undid revision 408789001 by 84.252.249.235 (talk) (1+1 is not a composite number))
21:34:07 <elliott> 05:46, 12 January 2011 (diff | hist) m 7 (number) ‎ (fix spelling)
21:34:11 <elliott> TWICE, oerjan, TWICE :D
21:34:14 <elliott> is it your synchronicity number
21:34:17 <oerjan> elliott: i _do_ however have Type Inference on my watchlist
21:34:31 <elliott> i guessed, and probably [[esoteric programming language]] too
21:34:37 <elliott> you've said you watch [[look-and-say sequence]] in here before
21:34:37 <elliott> wow
21:34:43 <elliott> why do i know so much about what wp pages you watchlist
21:34:49 <oerjan> elliott: oh. i have a policy of following an article's changes for about a week after i've edited it
21:34:50 * elliott crisis of introspection
21:35:19 <oerjan> so since those are 8 days apart, it falls under that
21:35:37 <oerjan> elliott: correct on [[esoteric programming language]] :P
21:38:14 <Phantom_Hoover> OK IWC's new poll is hurting my brain.
21:38:25 <Phantom_Hoover> I really really hope DMM isn't going to go all pretentious on it.
21:38:26 <oerjan> Phantom_Hoover: heh
21:39:17 <oklopol> mji
21:39:31 <pikhq> Okay, best way of faking __WORDSIZE (which, realistically, is meaningless) is CHAR_BIT*sizeof(void*)...
21:39:40 <oerjan> Phantom_Hoover: last time DMM removed the old poll without putting up a new one. someone joked about it by making up options on the forum. i recognize several of them in the newest one.
21:40:28 <elliott> random mouse-waving and clicking picks baarle-nassau for me
21:40:36 <oerjan> so i think this is one is based on forum ideas
21:41:06 <oerjan> elliott: i picked those spheres as they were the only thing i hadn't heard about before
21:44:37 <oerjan> and there was an interesting wikipedia article on them
21:45:06 <oerjan> baarle-nassau is a good choice though :P
21:46:16 <elliott> what is the thing with baarle-nassau
21:46:19 <elliott> is it because it has complicated borders
21:46:21 <elliott> lol pediawiki
21:46:22 <oerjan> yes
21:46:24 <elliott> ok right border
21:47:33 <pikhq> Seems the patch is *much* shorter on a git checkout.
21:47:58 <elliott> i come from land
21:47:59 <elliott> ojias
21:48:27 <olsner> pikhq: the patch? is shorter?
21:48:37 <elliott> the patch? is shorter?
21:48:40 <elliott> ojias
21:48:41 <elliott> the patch? is shorter?
21:48:50 <oerjan> @let shm = unwords . sequence [id, ("shm"++).dropWhile(`notElem`"aeiou")] in shm "elliott"
21:48:51 <lambdabot> Parse error: in
21:48:54 <oerjan> er
21:48:59 <oerjan> > let shm = unwords . sequence [id, ("shm"++).dropWhile(`notElem`"aeiou")] in shm "elliott"
21:49:01 <lambdabot> "elliott shmelliott"
21:49:07 <elliott> ooh ooh ooh
21:49:21 <oerjan> @let shm = unwords . sequence [id, ("shm"++).dropWhile(`notElem`"aeiou")]
21:49:22 <lambdabot> Defined.
21:49:31 <elliott> > let thanks = ("Th"++) . dropWhile (`notElem` "aeiou") in thanks "elliott"
21:49:32 <lambdabot> "Thelliott"
21:49:45 <oerjan> wat
21:49:52 <oerjan> > shm "thanks"
21:49:54 <lambdabot> "thanks shmanks"
21:49:59 <elliott> > let thanks xs = (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile (`notElem` "aeiou") in thanks "elliott"
21:50:00 <lambdabot> Overlapping instances for GHC.Show.Show
21:50:00 <lambdabot> ([GHC....
21:50:09 <elliott> > let thanks xs = (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile (`notElem` "aeiou") $ xs in thanks "elliott"
21:50:11 <lambdabot> "Thanks, elliott. Thelliott"
21:50:16 <elliott> :t toLowerCase
21:50:17 <lambdabot> Not in scope: `toLowerCase'
21:50:20 <elliott> ?hoogle lower
21:50:20 <lambdabot> Text.Parsec.Char lower :: Stream s m Char => ParsecT s u m Char
21:50:20 <lambdabot> Text.ParserCombinators.Parsec.Char lower :: Stream s m Char => ParsecT s u m Char
21:50:20 <lambdabot> Data.Char LowercaseLetter :: GeneralCategory
21:50:24 <elliott> ?hoogle lowercase
21:50:25 <lambdabot> Data.Char LowercaseLetter :: GeneralCategory
21:50:26 <elliott> ?hoogle downcase
21:50:26 <lambdabot> No results found
21:50:28 <elliott> :(
21:50:28 <oerjan> :t toLower
21:50:29 <lambdabot> Char -> Char
21:50:39 <elliott> > let thanks xs = (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile ((`notElem` "aeiou") . toLower) $ xs in thanks "ants"
21:50:40 <pikhq> olsner: The patch to get util-linux to build with musl.
21:50:40 <lambdabot> "Thanks, ants. Thants"
21:50:46 <Deewiant> > shm "wyrd"
21:50:47 <lambdabot> "wyrd shm"
21:50:48 <elliott> > let thanks xs = (++ ".") . (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile ((`notElem` "aeiou") . toLower) $ xs in thanks "ants"
21:50:50 <lambdabot> "Thanks, ants. Thants."
21:50:51 <elliott> > let thanks xs = (++ ".") . (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile ((`notElem` "aeiou") . toLower) $ xs in thanks "Elliott"
21:50:53 <lambdabot> "Thanks, Elliott. ThElliott."
21:50:55 <elliott> :t isVowel
21:50:56 <lambdabot> Not in scope: `isVowel'
21:50:58 <elliott> darn
21:51:02 <elliott> was hoping there'd be a fancy Unicode thing for it
21:51:11 <elliott> ?let thanks xs = (++ ".") . (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile ((`notElem` "aeiou") . toLower) $ xs
21:51:12 <lambdabot> Defined.
21:51:12 <Deewiant> There's no fancy Unicode stuff in base
21:51:14 <elliott> > thanks "lambdabot"
21:51:15 <lambdabot> "Thanks, lambdabot. Thambdabot."
21:51:22 <elliott> ?let thanks xs = text . (++ ".") . (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile ((`notElem` "aeiou") . toLower) $ xs
21:51:22 <lambdabot> <local>:6:12:
21:51:23 <lambdabot> Couldn't match expected type `[Char]' against inferred ty...
21:51:26 <elliott> ?unlet thanks
21:51:26 <lambdabot> TemplateHaskell is not enabled
21:51:27 <elliott> ugh
21:51:32 <elliott> how do you redefine
21:51:53 <elliott> ?undef
21:51:56 <elliott> ?undefine
21:52:00 <elliott> ?let thanks xs = text . (++ ".") . (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile ((`notElem` "aeiou") . toLower) $ xs
21:52:00 <lambdabot> Defined.
21:52:04 <elliott> > thanks "Deewiant"
21:52:06 <lambdabot> Thanks, Deewiant. Theewiant.
21:52:09 <elliott> excellent
21:52:21 <Deewiant> > thanks "wyrd"
21:52:23 <lambdabot> Thanks, wyrd. Th.
21:52:44 <elliott> X-D
21:52:51 <elliott> ?undefine
21:52:54 <elliott> :t any
21:52:55 <lambdabot> forall a. (a -> Bool) -> [a] -> Bool
21:53:06 <monqy> > thanks "QUEEN"
21:53:07 <lambdabot> Not in scope: `thanks'
21:53:10 <oerjan> <elliott> was hoping there'd be a fancy Unicode thing for it <-- you realize languages don't agree on which letters are vowels, right? :P
21:53:15 <elliott> ?let thanks xs = if any ((`notElem` "aeiou") . toLower) then text . (++ ".") . (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile ((`notElem` "aeiou") . toLower) $ xs else text "What are you, Welsh?"
21:53:16 <lambdabot> <local>:1:15:
21:53:16 <lambdabot> Couldn't match expected type `Bool'
21:53:16 <lambdabot> against i...
21:53:21 <elliott> ?let thanks xs = if any ((`notElem` "aeiou") . toLower) xs then text . (++ ".") . (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile ((`notElem` "aeiou") . toLower) $ xs else text "What are you, Welsh?"
21:53:22 <lambdabot> Defined.
21:53:25 <elliott> > thanks "wyrd"
21:53:26 <lambdabot> Thanks, wyrd. Th.
21:53:29 <elliott> o_O
21:53:38 <elliott> ???
21:53:41 <monqy> > thanks "QUEEN"
21:53:42 <lambdabot> Thanks, QUEEN. ThUEEN.
21:53:45 <Deewiant> > 'w' `notElem` "aeiou"
21:53:46 <lambdabot> True
21:53:49 <elliott> oh
21:53:55 <elliott> ?undefine
21:54:00 <elliott> ?let thanks xs = if any ((`elem` "aeiou") . toLower) xs then text . (++ ".") . (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile ((`notElem` "aeiou") . toLower) $ xs else text "What are you, Welsh?"
21:54:00 <lambdabot> Defined.
21:54:02 <elliott> > thanks "wyrd"
21:54:03 <lambdabot> What are you, Welsh?
21:54:07 <elliott> > thanks "Deewiant"
21:54:08 <lambdabot> Thanks, Deewiant. Theewiant.
21:54:13 <elliott> PERFECT.
21:54:39 <olsner> > thanks "cymru"
21:54:40 <lambdabot> Thanks, cymru. Thu.
21:54:51 <elliott> > thanks "antidisestablishmentarianism"
21:54:53 <lambdabot> Thanks, antidisestablishmentarianism. Thantidisestablishmentarianism.
21:54:53 <olsner> haha, missed that one :/
21:54:58 <elliott> olsner: nothing wrong with Thu
21:55:04 <elliott> > thanks "Tchaikovsky"
21:55:05 <lambdabot> Thanks, Tchaikovsky. Thaikovsky.
21:55:07 <elliott> good
21:55:10 <monqy> > thanks "why"
21:55:11 <Deewiant> > thanks "thanks"
21:55:11 <lambdabot> What are you, Welsh?
21:55:13 <lambdabot> Thanks, thanks. Thanks.
21:55:29 <elliott> does anyone actually realise what this is from :P
21:55:32 <elliott> > thanks "thunks"
21:55:34 <lambdabot> Thanks, thunks. Thunks.
21:55:36 <oerjan> NO
21:55:39 <olsner> > fix thanks
21:55:40 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
21:55:40 <lambdabot> against inferred ty...
21:55:41 <elliott> > thanks "sknaht"
21:55:43 <lambdabot> Thanks, sknaht. Thaht.
21:55:54 <elliott> oerjan: http://www.youtube.com/watch?v=9jtU9BbReQk
21:56:00 <elliott> (forty seconds)
21:56:19 <olsner> oh, it uses weird shenanigans to print text
21:56:37 <olsner> can you get a string from that somehow, so that it works with fix?
21:56:40 <Deewiant> > iterate (show . thanks) "thanks"
21:56:41 <lambdabot> ["thanks","Thanks, thanks. Thanks.","Thanks, Thanks, thanks. Thanks.. Thank...
21:56:48 <elliott> > let thanks' xs = (++ ".") . (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile ((`notElem` "aeiou") . toLower) $ xs in fix thanks'
21:56:50 <lambdabot> "Thanks, Thanks, Thanks, Thanks, Thanks, Thanks, Thanks, Thanks, Thanks, Th...
21:57:00 <elliott> > thanks "Kant"
21:57:02 <lambdabot> Thanks, Kant. Thant.
21:57:14 <elliott> > thanks "smorgasbord"
21:57:16 <lambdabot> Thanks, smorgasbord. Thorgasbord.
21:57:20 <elliott> thorgasbord
21:57:34 <Vorpal> elliott, presumably quite electric?
21:57:41 <elliott> > thanks "Knuth"
21:57:42 <lambdabot> Thanks, Knuth. Thuth.
21:57:50 <elliott> > thanks "William Blake"
21:57:52 <lambdabot> Thanks, William Blake. Thilliam Blake.
21:58:05 <olsner> > thanks "västkustskt"
21:58:06 <lambdabot> Thanks, v
21:58:07 <Vorpal> > thanks "lambdabot"
21:58:08 <lambdabot> Thanks, lambdabot. Thambdabot.
21:58:10 <elliott> > thanks "Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch"
21:58:12 <lambdabot> Thanks, Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch. Thanfai...
21:58:15 <elliott> :D
21:58:31 <Vorpal> elliott, your definition fails as olsner showed
21:58:42 <elliott> Vorpal: give me a perfect vowel function
21:58:46 <elliott> i suspect lambdabot fails at encoding itself
21:58:47 <elliott> or text does
21:58:50 <elliott> so i could not fix it anyway
21:58:54 <elliott> > thanks "fucking"
21:58:56 <lambdabot> Thanks, fucking. Thucking.
21:59:02 <olsner> I think both/all fail at encoding
21:59:09 <elliott> > thanks "oobleck"
21:59:11 <lambdabot> Thanks, oobleck. Thoobleck.
21:59:12 <olsner> I mean that's how it usually goes
21:59:13 <elliott> heheehehehehehe
21:59:24 <Vorpal> elliott, perfect vowel can't be done. y is not a vowel in English is it?
21:59:25 <elliott> > thanks "Istanbul"
21:59:27 <lambdabot> Thanks, Istanbul. ThIstanbul.
21:59:27 <Vorpal> it is in Swedish
21:59:30 <elliott> Vorpal: sometimes it is :P
21:59:32 <elliott> > thanks "istanbul"
21:59:33 <lambdabot> Thanks, istanbul. Thistanbul.
21:59:40 <elliott> > thanks "Mercury"
21:59:41 <lambdabot> Thanks, Mercury. Thercury.
22:00:37 <elliott> > thanks (fix show)
22:00:41 <lambdabot> mueval-core: Time limit exceeded
22:00:43 <elliott> aww
22:00:46 <Phantom_Hoover> > thanks ants
22:00:47 <lambdabot> Not in scope: `ants'
22:00:51 <elliott> > thanks "mueval-core: Time limit exceeded"
22:00:52 <lambdabot> Thanks, mueval-core: Time limit exceeded. Thueval-core: Time limit exceeded.
22:00:55 <Phantom_Hoover> > thanks "ants"
22:00:56 <lambdabot> Thanks, ants. Thants.
22:01:04 <Phantom_Hoover> > thanks "Hanks"
22:01:05 <lambdabot> Thanks, Hanks. Thanks.
22:01:07 <Vorpal> :t fix
22:01:08 <lambdabot> forall a. (a -> a) -> a
22:01:09 <olsner> Thueval Core
22:01:13 <Vorpal> what is fix?
22:01:19 <elliott> seriously?
22:01:32 <Vorpal> hm
22:01:36 <Phantom_Hoover> That's not even Vorpal.
22:01:41 <Phantom_Hoover> That's just plain stupidity.
22:01:46 <Vorpal> I'm tried
22:01:54 <elliott> i'm tried
22:02:06 <monqy> http://en.wikipedia.org/wiki/Fixed_point_combinator
22:02:10 <Phantom_Hoover> `addquote <Vorpal> I'm tried
22:02:11 <Vorpal> oh right
22:02:11 <HackEgo> ​447) <Vorpal> I'm tried
22:02:17 <Vorpal> oops
22:02:19 <Phantom_Hoover> monqy, why'd you ruin the fun?
22:02:20 <Vorpal> Phantom_Hoover, tired*
22:02:26 <monqy> I'm bad at not ruining the fun
22:02:29 <elliott> > thanks "but no thanks"
22:02:30 <lambdabot> Thanks, but no thanks. Thut no thanks.
22:02:39 <oerjan> > fix show
22:02:40 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\...
22:02:45 <elliott> > thanks "archaeopteryx"
22:02:47 <lambdabot> Thanks, archaeopteryx. Tharchaeopteryx.
22:02:50 <elliott> Tharchaeopteryx
22:02:58 <Phantom_Hoover> Vorpal, yes, but I'm trying to get you to fix delquote.
22:03:03 <Phantom_Hoover> Through MANIPULATION.
22:03:06 <Vorpal> Phantom_Hoover, meh
22:03:07 <elliott> just apply delquote to itself, infinite times
22:03:11 <elliott> sorry oerjan stole ur wind
22:03:13 <Vorpal> tail quotes
22:03:16 <elliott> > thanks "combine"
22:03:17 <Vorpal> `tail quotes
22:03:18 <lambdabot> Thanks, combine. Thombine.
22:03:18 <HackEgo> ​<zzo38> Fiddle. It makes a big difference, you know. \ <oklopol> but touchscreens should feel like poking a boob \ <oklopol> are there boobs you wack and squeeze around to move the mouse? [...] <oklopol> like those little nipples in laptop keyboards, but they'd be full-blown boobies \ [after a long string of Lymia getting
22:03:23 <elliott> > thanks "tapestry"
22:03:25 <lambdabot> Thanks, tapestry. Thapestry.
22:03:25 <Vorpal> `tail -n1 quotes
22:03:26 <elliott> > thanks "oligarchy"
22:03:26 <HackEgo> No output.
22:03:27 <lambdabot> Thanks, oligarchy. Tholigarchy.
22:03:31 <Vorpal> `run tail -n1 quotes
22:03:32 <HackEgo> ​<Vorpal> I'm tried
22:03:43 <Vorpal> `run wc -l quotes
22:03:43 <elliott> `addquote <Vorpal> `run tail -n1 quotes
22:03:44 <HackEgo> ​447 quotes
22:03:44 <HackEgo> ​448) <Vorpal> `run tail -n1 quotes
22:04:00 <Phantom_Hoover> `addquote <Vorpal> I CANNOT REMOVE A LINE FROM A FILE
22:04:01 <HackEgo> ​449) <Vorpal> I CANNOT REMOVE A LINE FROM A FILE
22:04:08 <Phantom_Hoover> `addquote <Vorpal> ALSO I SMELL FUNNY
22:04:08 <elliott> `addquote lets just leave all these in
22:04:09 <HackEgo> ​450) <Vorpal> ALSO I SMELL FUNNY
22:04:10 <HackEgo> ​450) lets just leave all these in
22:04:13 <elliott> `addquote lets just leave all these in
22:04:14 <HackEgo> ​451) lets just leave all these in
22:04:18 <elliott> `addquote someone in the future will be really confused
22:04:19 <HackEgo> ​459) someone in the future will be really confused
22:04:20 <Vorpal> `run head -n 446 quotes > t; mv t quotes
22:04:20 <Phantom_Hoover> `quote 450
22:04:21 <HackEgo> No output.
22:04:22 <HackEgo> ​450) <<<<<<< /tmp/hackenv.1231/quotes
22:04:24 <elliott> um
22:04:26 <Phantom_Hoover> `quote 450
22:04:26 <elliott> lol
22:04:27 <HackEgo> ​450) <Vorpal> `run tail -n1 quotes
22:04:30 <elliott> someone
22:04:32 <elliott> needs to do
22:04:33 <elliott> manual surgery
22:04:35 <elliott> on the file
22:04:38 <Phantom_Hoover> `quote 450
22:04:40 <HackEgo> ​450) <Vorpal> `run tail -n1 quotes
22:04:42 <Vorpal> up to you guys
22:04:47 <Vorpal> I'm going to bed.
22:04:51 <elliott> Vorpal: if you want the slander there forevr...
22:05:03 <Vorpal> `help
22:05:04 <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:05:21 <Phantom_Hoover> `addquote <Vorpal> I kick puppies for sport!
22:05:22 <HackEgo> ​463) <Vorpal> I kick puppies for sport!
22:05:29 <Vorpal> `revert 389
22:05:31 <HackEgo> Done.
22:05:40 <elliott> oh he doesn't like that one
22:05:50 <Vorpal> elliott, I simply fixed it
22:05:51 <elliott> `addquote <Vorpal> I kick puppies for sport[AN EXCLAMATION MARK APPEARED HERE IN REALITY]
22:05:52 <HackEgo> ​447) <Vorpal> I kick puppies for sport[AN EXCLAMATION MARK APPEARED HERE IN REALITY]
22:05:55 <Vorpal> `revert 389
22:05:56 <HackEgo> Done.
22:05:58 <elliott> `addquote <Vorpal> I kick puppies for sport[AN EXCLAMATION MARK APPEARED HERE IN REALITY]
22:05:59 <HackEgo> ​447) <Vorpal> I kick puppies for sport[AN EXCLAMATION MARK APPEARED HERE IN REALITY]
22:06:19 <elliott> Vorpal: you didn't fix delquote though
22:06:26 <Vorpal> `addquote <elliott> Nice, fucking this corpse.
22:06:27 <HackEgo> ​448) <elliott> Nice, fucking this corpse.
22:06:38 <Vorpal> elliott, I can be nasty too
22:06:45 <Vorpal> :P
22:06:57 <Vorpal> now I'm closing the lid, will time out soon
22:06:59 <Vorpal> night →
22:07:07 <Phantom_Hoover> It's such a Vorpal thing to add.
22:07:51 <elliott> `addquote <Vorpal> You know what's better than three dead babies? I'll tell you what's better than three dead babies. The only thing, on this Earth, or not on this Earth, that could possibly be said to be dead babies, is as follows: Dead babies, i.e. two of them, are excellent, but there is one thing that is superior to them in every aspect, and that thing I am now going to detail to you. The only thing better than four dead babies is: about to b
22:07:52 <elliott> e revealed. I shall reveal it now. The only thing better than nine dead babies is four dead babies, but that is a lie, because there is only one thing better than three dead babies, and it is this:
22:07:52 <HackEgo> ​449) <Vorpal> You know what's better than three dead babies? I'll tell you what's better than three dead babies. The only thing, on this Earth, or not on this Earth, that could possibly be said to be dead babies, is as follows: Dead babies, i.e. two of them, are excellent, but there is one thing that is superior to them in
22:07:59 <elliott> Oh, it got cut off.
22:08:04 <elliott> I guess we will just have to leave it at that.
22:08:22 <Phantom_Hoover> `addquote <Vorpal> Also I kick puppies.
22:08:23 <HackEgo> ​450) <Vorpal> Also I kick puppies.
22:09:00 <elliott> `addquote <oerjan> im ban you for puppy kick
22:09:01 <HackEgo> ​451) <oerjan> im ban you for puppy kick
22:09:17 <elliott> `revert 390
22:09:18 <HackEgo> Done.
22:09:24 <elliott> `quote ​449
22:09:25 <HackEgo> No output.
22:09:27 <elliott> `quote ​44​448
22:09:28 <HackEgo> No output.
22:09:29 <elliott> `quote ​44​48
22:09:30 <HackEgo> No output.
22:09:32 <elliott> `quote ​44​8
22:09:33 <HackEgo> No output.
22:09:36 <elliott> wtf
22:09:37 <elliott> oh well
22:09:45 <monqy> `quote 447
22:09:46 <HackEgo> ​447) <Vorpal> I'm tried
22:09:56 <oerjan> elliott: YOU AM PLAY GODS
22:10:06 <elliott> oerjan: im ban you for puppy kick
22:10:15 <elliott> Nice, fucking this corpse.
22:10:37 * Phantom_Hoover → sleep.
22:11:10 -!- Phantom_Hoover has quit (Quit: Leaving).
22:12:03 -!- Vorpal has quit (Ping timeout: 268 seconds).
22:12:16 <olsner> ... you make me tried
22:12:49 <elliott> Nice, fucking this corpse.
22:13:04 <elliott> `addquote <olsner> ... you make me tried <elliott> Nice, fucking this corpse.
22:13:05 <HackEgo> ​448) <olsner> ... you make me tried <elliott> Nice, fucking this corpse.
22:16:52 -!- foocraft_ has joined.
22:16:53 -!- foocraft has quit (Ping timeout: 252 seconds).
22:22:27 <nooga> K :> L
22:23:10 <elliott> ionnonoinoinoino
22:23:15 <elliott> Nice, fucking this corpse.
22:24:34 <nooga> fucking nice corpse
22:24:35 -!- wareya has quit (Read error: Connection reset by peer).
22:25:43 -!- wareya has joined.
22:29:01 <oerjan> :t var
22:29:01 <lambdabot> forall a. String -> Sym a
22:29:16 <oerjan> huh
22:29:22 <oerjan> :t fun
22:29:23 <lambdabot> forall a. (SimpleReflect.FromExpr a) => String -> a
22:29:30 -!- sebbu has quit (Ping timeout: 260 seconds).
22:29:39 <oerjan> > var "hm..."
22:29:39 <lambdabot> hm...
22:29:57 <oerjan> > var $ repeat 'a'
22:29:58 <lambdabot> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
22:30:30 <oerjan> > var "a" + var "b"
22:30:31 <lambdabot> a+b
22:30:33 <oerjan> > var "a" + var "a"
22:30:34 <lambdabot> a+a
22:30:43 <oerjan> :t a
22:30:43 <lambdabot> Expr
22:30:45 -!- sebbu has joined.
22:30:45 -!- sebbu has quit (Changing host).
22:30:45 -!- sebbu has joined.
22:31:18 <oerjan> :t var "a" == a
22:31:18 <lambdabot> Couldn't match expected type `Sym a' against inferred type `Expr'
22:31:19 <lambdabot> In the second argument of `(==)', namely `a'
22:31:19 <lambdabot> In the expression: var "a" == a
22:31:31 <oerjan> wtf is Sym
22:31:34 <oerjan> @hoogle Sym
22:31:34 <lambdabot> Text.Read Symbol :: String -> Lexeme
22:31:35 <lambdabot> Text.Read.Lex Symbol :: String -> Lexeme
22:31:35 <lambdabot> Text.Parsec.Token symbol :: GenTokenParser s u m -> String -> ParsecT s u m String
22:31:42 <oerjan> @hoogle var
22:31:43 <lambdabot> Language.Haskell.TH VarE :: Name -> Exp
22:31:43 <lambdabot> Language.Haskell.TH.Syntax VarE :: Name -> Exp
22:31:43 <lambdabot> Language.Haskell.TH varE :: Name -> ExpQ
22:32:19 -!- elliott has quit (Ping timeout: 244 seconds).
22:32:52 <oerjan> @let var = "hm"
22:32:53 <lambdabot> Defined.
22:32:57 <oerjan> > var
22:32:57 <lambdabot> Ambiguous occurrence `var'
22:32:58 <lambdabot> It could refer to either `L.var', defined at <l...
22:33:06 <oerjan> dammit
22:33:39 <oerjan> Data.Number.Symbolic
22:33:55 <oerjan> (longer message in priv)
22:35:29 -!- pikhq_ has joined.
22:35:30 -!- pikhq has quit (Ping timeout: 258 seconds).
22:45:14 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:54:46 <pikhq_> Mmmkay, patches pushed upstream.
22:56:49 <pikhq_> Which feels kinda weird, TBH.
23:05:13 -!- ralc has quit (Read error: Operation timed out).
23:16:45 -!- nooga has quit (Ping timeout: 260 seconds).
23:16:54 -!- ralc has joined.
23:22:08 <pikhq_> Yeah. Still feels bloody weird having patches upstream.
23:27:07 <coppro> lol
23:29:17 <pikhq_> Oh, bloody hell, there's more stuff breaking now.
23:29:23 <olsner> pushing it upstream, sounds like physical work is being done pushing those patches
23:29:57 <pikhq_> http://www.spinics.net/lists/util-linux-ng/msg04536.html This patch bork it.
23:31:14 <pikhq_> TTYDEF_SPEED is defined in ttydefaults.h, which is very much a BSD-ism.
23:31:19 <coppro> lol
23:31:25 <olsner> funny, in this message: http://www.spinics.net/lists/util-linux-ng/msg04557.html he's *Dr* Werner Fink
23:31:34 <olsner> recently acquired his doctorate?
23:33:07 <pikhq_> --disable-agetty and hope that is less stupid?
23:37:08 <olsner> now that you have patches in the upstream it's only a matter of time until you find some excessively stupid piece of code and find that it came from one of your patches
23:39:01 <pikhq_> Okay, so. Musl is missing wcsdup and wcstok.
23:39:38 <olsner> of course it is, why would you want to have those?
23:41:01 <pikhq_> XD
23:45:50 <olsner> ubuntu has an upgrade for an "Advanced version control system", apparently that refers to the 'subversion' package :(
23:48:01 <olsner> I think subversion is advanced in approximately as many ways as CVS or RCS is not retarded
23:58:41 * oerjan is wondering if there might be a way to define k in unlambda using ` s and c
2011-06-09
00:02:26 -!- ralc has quit (Quit: Leaving).
00:04:39 <oerjan> hm what about just i
00:10:05 <oerjan> `c```csx = ````csx(*) = ```s(```*x(*))x(*) = ``(```*x(*))(*)`x(*) = ```(*)x(*) = x
00:10:06 <HackEgo> No output.
00:10:30 <oerjan> which isn't quite what's needed
00:11:29 <oerjan> *-` a couple places
00:12:33 -!- wareya has quit (Ping timeout: 244 seconds).
00:13:11 <oerjan> ``ccx = `(`*x)x = `xx hm what
00:13:12 <HackEgo> No output.
00:13:17 <oerjan> !show ucat
00:13:18 <EgoBot> ​That is not a user interpreter!
00:13:33 <oerjan> i deleted it hm
00:15:02 <oerjan> oh hm the last version didn't use ``sii
00:15:17 <oerjan> 20:20:33: <EgoBot> ​unlambda ```s`d`@|i`ci
00:16:50 <pikhq_> "Someone said "I know, let's make a porn version of The Human Centipede!". And others listened. And now it's out on DVD. May the gods forgive us." https://secure.wikimedia.org/wikipedia/en/wiki/The_Human_Sexipede , via Reddit.
00:16:54 <pikhq_> :(
00:17:05 <oerjan> !addinterp utest unlambda ``cc``d`@|`ci
00:17:05 <EgoBot> ​Interpreter utest installed.
00:17:22 <oerjan> !utest ho hum
00:17:23 <EgoBot> ​ho hum
00:17:51 * oerjan cackles evilly
00:18:36 <oerjan> !delinterp utest
00:18:37 <EgoBot> ​Interpreter utest deleted.
00:18:49 <oerjan> !addinterp ucat unlambda ``cc``d`@|`cc
00:18:50 <EgoBot> ​Interpreter ucat installed.
00:18:56 <oerjan> !ucat and how
00:18:57 <EgoBot> ​and how
00:22:25 <oerjan> hm that's very close to that famous counter
00:25:15 <oerjan> since in fact `ci, `cc and `cd are all equivalent
00:27:03 * oerjan knows just enough about the human centipede that he doesn't want to know more, so was assuming it was sort of porn already
00:29:54 -!- foocraft_ has quit (Quit: Leaving).
00:31:08 <oerjan> !delinterp ucat
00:31:08 <EgoBot> ​Interpreter ucat deleted.
00:31:15 <oerjan> !addinterp ucat unlambda ``cd``d`@|`cd
00:31:15 <EgoBot> ​Interpreter ucat installed.
00:31:27 <oerjan> !ucat Fnord
00:31:28 <EgoBot> ​Fnord
00:39:57 -!- wareya has joined.
00:40:14 -!- Patashu has joined.
00:42:59 <oerjan> !ucat a
00:42:59 <EgoBot> ​a
00:43:01 <oerjan> !ucat ab
00:43:02 <EgoBot> ​ab
00:43:03 <oerjan> !ucat abc
00:43:04 <EgoBot> ​abc
00:43:06 <oerjan> !ucat abcd
00:43:06 <EgoBot> ​abcd
00:43:08 <oerjan> !ucat abcde
00:43:09 <EgoBot> ​abcde
00:43:54 <oerjan> i realized there was a subtlety in that ``sii ~ `cc = `cd replacement, but it seems to work anyway
00:44:34 <oerjan> (basically applying `cc may reevaluate the argument, which ``sii doesn't)
00:45:51 <oerjan> it is possible there's some huge thunk building because of this...
00:57:24 -!- pikhq has joined.
01:00:24 -!- pikhq_ has quit (Ping timeout: 268 seconds).
01:01:16 -!- FireFly has quit (Quit: swatted to death).
01:01:54 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:06:40 <oerjan> ah seems like there is, and it may need to test for eof several times before actually halting
01:22:26 -!- adam__ has changed nick to CakeProphet.
01:25:21 -!- pikhq_ has joined.
01:25:23 -!- pikhq has quit (Ping timeout: 240 seconds).
01:54:57 -!- CakeProphet has quit (Read error: Operation timed out).
02:09:12 -!- augur has quit (Remote host closed the connection).
02:19:19 <oerjan> :t at
02:19:20 <lambdabot> Not in scope: `at'
02:21:38 <oerjan> @hoogle atMay
02:21:39 <lambdabot> Data.Maybe catMaybes :: [Maybe a] -> [a]
02:28:19 -!- nooga has joined.
02:44:20 -!- augur has joined.
02:44:37 -!- CakeProphet has joined.
02:44:37 -!- CakeProphet has quit (Changing host).
02:44:37 -!- CakeProphet has joined.
02:49:29 -!- CakeProphet has quit (Client Quit).
02:49:46 -!- CakeProphet has joined.
02:49:46 -!- CakeProphet has quit (Changing host).
02:49:46 -!- CakeProphet has joined.
02:59:26 -!- nooga has quit (Ping timeout: 250 seconds).
03:45:23 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
04:25:49 <pikhq_> Jesus. DNF is actually out.
04:27:13 -!- Kustas has joined.
04:27:37 -!- pikhq has joined.
04:28:00 -!- Kustas has left.
04:31:19 -!- pikhq_ has quit (Ping timeout: 268 seconds).
04:33:23 <Sgeo> I think I'll just watch a Let's Play
04:34:12 <pikhq> I think I'll just continue listening to Flood.
04:37:23 -!- oerjan has quit (Quit: leaving).
04:37:52 <pikhq> "Back in the summer of '87 he owned a giant venomous lizard. It somehow managed to escape, which led to the police shooting it with a shotgun. Because of the lack of laws against lizards, he was charged with possession of a "venomous, tree climbing alligator".
04:37:56 <pikhq> The above story was reported in Weekly World News as "police battle giant lizard". As a result, this is the only true and verifiable story ever reported in that tabloid."
04:38:02 <pikhq> Aaaand continue laughing.
04:55:32 <myndzi> nice
04:55:34 <myndzi> WWN for the win!
05:13:10 * Sgeo sees another Sennheiser recommendation
05:15:59 <pikhq> I can't personally recommend Sennheiser, but only for lack of personal experience.
05:16:50 <Sgeo> ....I thought you were the one in here who recommended them
05:18:12 -!- pikhq_ has joined.
05:18:34 <Sgeo> <Sgeo> ....I thought you were the one in here who recommended them
05:19:49 <pikhq_> I do know they have a very good reputation among both reasonable people and audiophiles.
05:20:43 -!- pikhq has quit (Ping timeout: 240 seconds).
05:26:45 <Sgeo> That dichotomy (sp?) makes me laugh
05:41:23 <Patashu> I have sennheiser earphones
05:41:26 <Patashu> They're good I recommend them
05:41:33 <Patashu> Not sure about anything else they make
06:05:33 <myndzi> i have a pair of hd590s
06:05:41 <myndzi> i got em for $20 new courtesy of aol and amazon
06:05:42 <myndzi> ;p
06:07:42 <Sgeo> I should probably get my left ear fixed first
06:15:41 -!- pikhq has joined.
06:15:45 -!- pikhq_ has quit (Ping timeout: 250 seconds).
06:55:26 -!- Sgeo has quit (Ping timeout: 255 seconds).
07:07:29 -!- Phantom_Hoover has joined.
07:08:21 <Phantom_Hoover> `quote 448
07:08:24 <HackEgo> ​448) <olsner> ... you make me tried <elliott> Nice, fucking this corpse.
07:26:19 -!- pikhq has quit (Ping timeout: 240 seconds).
07:26:19 -!- pikhq_ has joined.
07:31:55 -!- aloril has quit (Ping timeout: 250 seconds).
07:33:13 <olsner> Phantom_Hoover: why did you want that specific quote?
07:33:26 <Phantom_Hoover> olsner, to see if it had been changed.
07:34:36 <olsner> I don't know how to change quotes anyway
07:34:54 <Phantom_Hoover> AtM it consists of a revert and re-adding it.
07:43:10 <pikhq_> Why is it so utterly difficult to force myself to sleep?
07:43:23 <pikhq_> It's not even like I'm doing anything relevant.
07:43:37 <pikhq_> Or, indeed, anything but Reddit and IRC.
07:45:37 -!- aloril has joined.
07:46:16 <olsner> I think one of the first things that goes when you become slightly tired is the little piece of planning brain that makes you go to sleep when you should
07:46:33 <olsner> so then you won't go to sleep until you're too tired to stay awake
07:47:15 <Phantom_Hoover> http://www.khanacademy.org/video/basic-trigonometry?playlist=Trigonometry
07:47:22 <Phantom_Hoover> I expected better.
07:47:51 <pikhq_> olsner: Probably just after the "do things that actually matter" piece.
07:48:17 <Phantom_Hoover> There is not a single circle drawn in that video, so it doesn't actually explain any of the underlying structure.
07:48:54 <olsner> pikhq_: I wonder if I even *have* one of those
07:49:01 <pikhq_> I'm sure I do.
07:49:07 <pikhq_> I'm also pretty sure it's on the fritz.
07:50:37 <pikhq_> Phantom_Hoover: Yeah, circles are the single most fundamental thing for trig.
07:51:04 <pikhq_> Well, namely, the inherent relationships between circles and triangles that we call the trig functions.
07:53:27 <pikhq_> Phantom_Hoover: Why were you watching a Khan Academy video on trig, anyways?
07:53:43 <Phantom_Hoover> http://www.reddit.com/r/reddit.com/comments/hv41b/this_should_be_the_first_thing_shown_in_all/
07:54:01 <Phantom_Hoover> Someone said it should be the first thing posted, thus completely missing the point.
07:54:42 * Phantom_Hoover decides to actually find the derivation of sin' = cos.
07:55:30 <pikhq_> Khan Academy's pretty good usually, but circles and triangles are what you should be getting shown in trig...
07:55:40 <pikhq_> Because *that's all it is*.
08:07:05 -!- CakeProphet has quit (Ping timeout: 240 seconds).
08:15:24 <Patashu> trigonometry courses should teach tau
08:15:46 <pikhq_> Also true.
08:17:07 <Patashu> http://www.touchtrigonometry.org/ is cool but an information overload
08:18:56 -!- myndzi has quit (Ping timeout: 258 seconds).
08:19:35 <Phantom_Hoover> I think Sam Hughes summed up the whole tau debate nicely.
08:21:45 <Phantom_Hoover> "Tau is the Dvorak of trigonometry."
08:22:25 <olsner> making Pi the QWERTY of trigonometry?
08:22:48 <Phantom_Hoover> Yes.
08:23:43 <pikhq_> That is... Actually a good summation of it.
08:25:10 <Patashu> it's much much easier to introduce tau than pi though
08:25:19 <Patashu> if you're ever speaking to a pi unfamiliar audience just add one line: let tau = 2*pi
08:25:22 <Patashu> and then proceed as normal
08:25:39 <Patashu> if you want to use dvorak on a qwerty keyboard you have to spend several weeks learning it and be able to swap the keyboard back and forth when you change computers
08:25:39 -!- aloril has quit (Ping timeout: 250 seconds).
08:25:49 <Patashu> also dvorak isn't the best layout anyway, colemak is
08:27:14 <pikhq_> Yes, but even fewer people have heard of Colemak, making it a bit harder to use in analogies.
08:27:43 <Patashu> yeah
08:27:46 <Patashu> I just like to bring it up and feel :smug:
08:38:29 -!- aloril has joined.
08:45:04 -!- CakeProphet has joined.
08:45:04 -!- CakeProphet has quit (Changing host).
08:45:04 -!- CakeProphet has joined.
08:47:02 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
08:49:03 <CakeProphet> ?info ($)
08:49:03 <lambdabot> ($)
08:49:12 <CakeProphet> @src ($)
08:49:12 <lambdabot> f $ x = f x
08:49:20 <CakeProphet> @hoogle ($)
08:49:20 <lambdabot> Prelude ($) :: (a -> b) -> a -> b
08:49:21 <lambdabot> Data.Function ($) :: (a -> b) -> a -> b
08:49:21 <lambdabot> Prelude ($!) :: (a -> b) -> a -> b
08:49:30 <CakeProphet> ...how did elliott get fixity declarations.
08:52:15 <Patashu> I think you need to find the source code
09:07:12 -!- monqy has quit (Quit: hello).
09:09:39 -!- MigoMipo has joined.
09:23:02 -!- myndzi has joined.
10:11:11 -!- nooga has joined.
10:11:30 -!- ralc has joined.
10:18:30 -!- myndzi has quit (Ping timeout: 268 seconds).
10:18:56 -!- myndzi has joined.
10:32:50 -!- FireFly has joined.
11:05:14 -!- pikhq_ has quit (Ping timeout: 240 seconds).
11:05:25 -!- pikhq has joined.
11:21:53 -!- Vorpal has joined.
11:54:13 -!- BeholdMyGlory has joined.
12:10:24 -!- TOGoS has joined.
12:11:05 -!- copumpkin has joined.
12:11:40 -!- TOGoS has left.
12:29:31 -!- Deewiant has quit (Ping timeout: 260 seconds).
12:29:55 -!- Deewiant has joined.
12:40:34 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
12:41:20 -!- ais523 has joined.
12:56:21 -!- ais523 has quit (Remote host closed the connection).
12:57:39 -!- ais523 has joined.
13:02:12 -!- ais523_ has joined.
13:02:31 -!- ais523 has quit (Disconnected by services).
13:02:33 -!- ais523_ has changed nick to ais523.
13:24:41 <ais523> hmm, Slashdot is awesome sometimes
13:24:52 <ais523> there was an argument about whether Microsoft was ditching Silverlight
13:25:18 <ais523> and it brew into an argument about cross-platformness
13:25:47 <ais523> with a comparison to Java vs. .NET
13:26:04 <ais523> and someone claimed that there wasn't a Java impl for the Amiga, and someone came up with a counterexample
13:26:13 <ais523> (later on, a C64 emulator in Silverlight came up, in order to complete the circuit)
13:30:08 <ais523> hmm, does anyone here know about Haskell Core?
13:30:24 <ais523> my supervisor mentioned it as something that might be useful for my research, but I've wanted something like that for esolanging for a while too
13:43:51 -!- CakeProphet has quit (Ping timeout: 268 seconds).
13:44:27 -!- CakeProphet has joined.
13:44:35 -!- CakeProphet has quit (Changing host).
13:44:35 -!- CakeProphet has joined.
14:01:27 -!- oerjan has joined.
14:12:11 <oerjan> <CakeProphet> ...how did elliott get fixity declarations.
14:12:16 <oerjan> by using my trick
14:12:22 <oerjan> > (0$0 $!)
14:12:22 <lambdabot> The operator `Prelude.$!' [infixr 0] of a section
14:12:23 <lambdabot> must have lower prec...
14:13:40 <oerjan> also, lambdabot has no command [?@:]info
14:13:51 <oerjan> only spelling correction
14:15:16 <oerjan> <ais523> hmm, does anyone here know about Haskell Core?
14:15:23 <oerjan> a little bit?
14:15:34 <ais523> I know nothing besides the name and that it desugars Haskell
14:16:05 <ais523> and even that information's from an unreliable source
14:16:16 <oerjan> it's ghc's first intermediate language. it's explicitly typed (all type inference happens before) using a type system called F_c which is easily extensible with new features
14:16:59 <oerjan> i think typeclasses are also desugared away before it, so it uses explicit method dictionary passing
14:18:01 -!- Vorpal has quit (Ping timeout: 260 seconds).
14:19:03 <oerjan> i think newtypes are implemented using some kind of type-checked cast in core
14:19:49 <oerjan> and most of ghc's high level optimizations such as rules happen at the core stage
14:20:52 <oerjan> because you still have type checking for sanity there
14:22:31 <oerjan> for example ghc rules only trigger when the rewritten term has the same type as the old one
14:24:04 <oerjan> and of course as you say, syntactically desugared
14:24:31 -!- nooga has quit (Ping timeout: 252 seconds).
14:36:03 -!- Kustas has joined.
14:36:17 -!- Sgeo has joined.
14:42:11 -!- ais523 has quit (Read error: Connection reset by peer).
15:25:25 -!- Phantom_Hoover has joined.
15:25:42 -!- oerjan has quit (Quit: leaving).
15:32:10 -!- nooga has joined.
15:55:38 <Sgeo> Reading Jailbreak
16:00:04 -!- ais523 has joined.
16:44:41 <Phantom_Hoover> Sgeo, you realise it's a) incomplete and b) of far inferior quality to PS, right?
16:45:04 <Sgeo> I finished reading PS
16:45:11 <oklopol> so you can implement all boolean functions with dominoes, without using bridges
16:55:30 -!- Vorpal has joined.
16:55:42 -!- pikhq_ has joined.
16:55:47 -!- pikhq has quit (Ping timeout: 250 seconds).
16:56:13 * Phantom_Hoover briefly flirts with the idea of getting some Bitcoins.
16:58:24 * Phantom_Hoover notes that they don't even mention the drugs on the website.
17:02:25 -!- MigoMipo has quit (Ping timeout: 276 seconds).
17:06:37 <Vorpal> Phantom_Hoover, what drugs
17:06:56 <Phantom_Hoover> Vorpal, the drugs which are the one thing everyone knows you can buy with Bitcoin.
17:07:19 <Vorpal> Phantom_Hoover, what? Pull the other one...
17:07:48 <Phantom_Hoover> Vorpal, erm, why is that implausible?
17:08:05 <Vorpal> Phantom_Hoover, hm...
17:10:18 <Phantom_Hoover> It is quite hard to get reliable information on the matter, admittedly.
17:11:42 <Phantom_Hoover> For some perspective, a lot of it seems to stem from Adrian Chen.
17:12:49 <Vorpal> Phantom_Hoover, who is this Adrian Chen?
17:13:04 <Phantom_Hoover> ...
17:13:14 <Vorpal> Phantom_Hoover, what?
17:13:50 <Vorpal> Phantom_Hoover, well who is he?
17:15:09 <Phantom_Hoover> He's one of the creators of Gawker, and noted unpleasant person.
17:15:24 <Vorpal> ah. *googles gawker*
17:16:57 <Sgeo> Was he behind the lucidending thing?
17:17:16 <Phantom_Hoover> He was joking, as it turns out.
17:17:30 <Vorpal> Phantom_Hoover, about the bitcoin thing? heh
17:17:43 <Phantom_Hoover> No, about lucidending.
17:17:52 <Phantom_Hoover> (Who was still almost certainly a troll.)
17:18:01 <Gregor> "Noted unpleasant person" lol
17:18:07 * Vorpal googles "lucidending"
17:20:41 <Sgeo> http://www.reddit.com/r/IAmA/comments/fy6yz/51_hours_left_to_live/
17:20:44 <Sgeo> "[deleted]"?
17:21:09 <Vorpal> reddit.com: timeout. heh
17:21:22 <Vorpal> hm works now
17:21:27 <Vorpal> probably on my end
17:25:37 <Phantom_Hoover> <Gregor> "Noted unpleasant person" lol ← I couldn't really say anything stronger without citing hearsay.
17:25:55 -!- MigoMipo has joined.
17:29:25 -!- Kustas has quit (Quit: gone).
17:33:13 <Phantom_Hoover> ...oh god today's SMBC was barely funny at all.
17:33:42 <Phantom_Hoover> Please Zach god please don't undergo the SMBCdecay.
17:35:20 <Gregor> SMBXKCD
17:37:30 <Phantom_Hoover> Given Zach's inexplicable respect for Munroe...
17:42:56 -!- calamari has joined.
17:46:37 <Vorpal> Phantom_Hoover, it was still a LOT more dirty than xkcd
17:46:53 <Phantom_Hoover> Vorpal, erm, have you *read* xkcd?
17:47:02 <Phantom_Hoover> I point at 610 and leave it at that.
17:47:46 <Vorpal> Phantom_Hoover, what about 610?
17:47:52 <Phantom_Hoover> *631
17:47:55 <Vorpal> ah
17:49:30 <Vorpal> Phantom_Hoover, what is TGI though
17:49:39 <Phantom_Hoover> Thank god it's.
17:49:48 <Phantom_Hoover> I think TGI Fridays is a restaurant.
17:49:50 <Vorpal> ah
17:50:00 <Phantom_Hoover> But it looks like you're trying to understand 631. Stop.
17:50:12 <Vorpal> Phantom_Hoover, 631 doesn't make sense
17:50:13 <Phantom_Hoover> Walk slowly away from it.
17:53:10 <Vorpal> Phantom_Hoover, the H-M algorithm is quite ingenious, don't you agree. Yet it makes perfect sense.
17:53:30 <Phantom_Hoover> Um...
17:53:47 <Vorpal> Phantom_Hoover, I mean Hindley–Milner
17:54:04 <Vorpal> type inference algorithm
17:54:19 <Phantom_Hoover> ...yes, so why did you just say that?
17:54:48 <Vorpal> Phantom_Hoover, oh I found a page on it open in a tab in firefox, as I was working through the backlog
17:56:46 <Vorpal> hm is it possible to make a language that is NP-complete to *parse*?
17:56:49 <Vorpal> err
17:56:53 <Vorpal> NP-equivalent
18:03:43 -!- calamari has quit (Quit: Bye).
18:07:26 <copumpkin> Vorpal: a language in which a given line is a comment if the sum of the lengths of any subset of the lines preceding it is 42
18:09:12 <copumpkin> although I guess that's a little easier than the usual phrasing of it
18:09:23 <copumpkin> since you can automatically exclude any lines longer than 42
18:09:25 <copumpkin> so how about
18:09:56 <copumpkin> the language requires all lines to be shorter than 80 characters, and the sum I want is some reasonably decent sized number such that you can't make optimizations like that
18:10:15 <Sgeo> It's not a bad idea to just use a parser generator, is it?
18:10:15 <copumpkin> or actually, the length - 40 adds to 0
18:10:32 <copumpkin> yeah
18:10:34 <copumpkin> it's a terrible idea
18:18:36 <Vorpal> copumpkin, ah good idea
18:19:14 <Vorpal> Sgeo, why would it be in general?
18:19:26 <Sgeo> What about in my case?
18:19:35 <Vorpal> Sgeo, what is your case
18:19:53 <Sgeo> Someone who wants to write a compiler but is generally clueless
18:20:27 -!- monqy has joined.
18:20:35 -!- pikhq has joined.
18:20:44 -!- pikhq_ has quit (Ping timeout: 240 seconds).
18:21:21 <olsner> using a parser generator is kind of like using a library containing code you didn't write yourself
18:25:04 <Sgeo> So, if I were zzo38, avoid them
18:25:07 <Sgeo> >.>
18:25:32 -!- Kustas has joined.
18:27:01 <monqy> have you considered getting a clue about compilers? Anyway, parsing is the simplest/most trivial part of compiling any interesting language
18:28:14 <Sgeo> Define "interesting"
18:28:29 <Sgeo> Also, I don't think I'm going for optimizations here
18:28:37 <Sgeo> I'm not quite smart enough for that
18:28:52 <Sgeo> Also, I'm compiling into a pseudo-bytecode, not into x86 or anything
18:29:27 <monqy> well if your language is trivially equivalent to the target, the actual work is pretty trivial
18:29:32 <monqy> trivial trivial
18:29:55 <Sgeo> Well, target will expect CPS
18:30:02 <monqy> expect?
18:30:16 <Sgeo> As in, not possible to write non-CPS code in it
18:30:37 <monqy> isn't the target lsl?
18:31:00 <monqy> or did something change about that
18:31:14 <monqy> or was I never fully in on it
18:32:20 <Sgeo> Target is technically LSL, but most of the LSL code will be an interpreter
18:32:28 <Sgeo> That interprets the contents of a few lists
18:33:06 <Phantom_Hoover> What on earth are you trying to make.
18:33:19 -!- nooga has quit (Quit: Lost terminal).
18:33:20 -!- CakeProphet has quit (Ping timeout: 240 seconds).
18:33:28 <monqy> sgeo thinks continuations will solve all of his second life problems
18:33:42 <olsner> Sgeo: oh, is this that thing where you're working on a better scripting language for second life?
18:33:47 <Sgeo> Yes
18:41:34 <pikhq> I find that YACC-like parser generators suck.
18:45:47 <ais523> pikhq: I actually find them kind-of useful
18:45:56 <ais523> depending on what you do with them
18:46:51 <pikhq> They tend to be overcomplicated and make writing a recursive-decent parser manually seem like a good idea, in my experience. :P
18:47:25 <ais523> when I try that, I find it's much like writing for a yacc-like but with more boilerplate, and comes to the same thing
18:47:44 <monqy> what other sorts of parser generators are there
18:47:44 <ais523> although my grammars tend to have just the one nonterminal
18:47:47 <ais523> or maybe two at a pinch
18:47:58 <pikhq> Anyways, the *real* way to write a parser is Parsec.
18:47:58 <ais523> because fewer nonterminals tends to imply a better-designed language
18:48:16 <monqy> oh yes parsec
18:50:02 <pikhq> Well, more generally, parsing combinators is the way to do it, and Parsec is the best implementation of that.
18:52:39 * Sgeo wants Parsec for Javascript
18:53:32 <olsner> hmm, you don't know how to write a parser but you know what parsec is well enough to want it in javascript?
18:53:49 <pikhq> olsner: Parsec is easier than writing a parser by hand. :P
18:54:09 <pikhq> Though at least in decent languages even a hand parser isn't too bad.
18:54:49 <monqy> another questions: why javascript?
18:55:08 <pikhq> Where "decent" means "Has pattern matching and lambdas" in this context, I *think*.
18:55:19 <pikhq> ... Waaait, that includes C++. God no.
18:56:06 <monqy> C++ sort of kind of has pattern matching and lambdas
18:57:06 <ais523> if defining languages by features, always remember to explicitly exclude C++
18:57:30 <pikhq> monqy: It *very much* has type-level pattern matching and type-level lambdas.
18:57:50 <Sgeo> I want it to be easily accessible
18:58:11 <monqy> hello type-level parsec?
18:58:16 <olsner> hmm, parsec ported to c++ templates
18:58:33 <monqy> or at least a type-level parser or something
18:58:36 <olsner> now that's an abomination you can enjoy
18:59:03 <pikhq> Sgeo: If you want it accessible to complete noobs, offer Windows binaries.
19:02:40 <Sgeo> pikhq, is Javascript that terrible that that's the best option for accessibility
19:02:41 <Sgeo> ?
19:08:25 <Phantom_Hoover> "Divers weights are an abomination to the LORD;" — the Bible
19:09:01 <Phantom_Hoover> So I guess you need to swim against your own buoyancy or something?
19:09:10 <Phantom_Hoover> Probably ties into all the shellfish stuff.
19:10:38 <Sgeo> http://bible.cc/proverbs/20-23.htm
19:11:23 <Sgeo> From looking at all the other translations, I'm going to assume it's just missing an e
19:14:02 <ais523> Sgeo: that's actually an old-fashioned spelling of "diverse"
19:14:20 <Sgeo> Ah
19:30:56 -!- oerjan has joined.
19:33:18 -!- Phreak has joined.
19:36:24 -!- pikhq_ has joined.
19:36:36 -!- pikhq has quit (Ping timeout: 268 seconds).
19:42:28 -!- Phreak has left.
19:45:54 <oerjan> <oklopol> so you can implement all boolean functions with dominoes, without using bridges
19:45:57 <oerjan> wat
19:49:06 <oerjan> <Phantom_Hoover> ...yes, so why did you just say that?
19:49:14 <oerjan> Vorpal suffers from EAS
19:49:57 <Phantom_Hoover> EAS?
19:50:10 <oerjan> excessive acronym syndrome
19:50:11 <oerjan> <Vorpal> hm is it possible to make a language that is NP-complete to *parse*?
19:50:20 <oerjan> my guess is, almost certainly
19:50:23 <ais523> Vorpal: you can do better, Perl is Turing-complete to parse
19:50:44 <ais523> mostly because you can put arbitrary code in the parser
19:50:59 <oerjan> well context-sensitive languages are well known to include PSPACE-complete stuff
19:51:42 <oerjan> context-free languages otoh have O(n^3) algorithms
19:52:24 <oerjan> O(n^2) if unambiguous iirc
19:53:38 <oerjan> <Vorpal> hm is it possible to make a language that is NP-complete to *parse*?
19:53:42 <oerjan> er
19:53:48 <oerjan> 17:56:49: <Vorpal> err
19:53:48 <oerjan> 17:56:53: <Vorpal> NP-equivalent
19:54:07 <oerjan> if NP-equivalent means anything there, it's the same as NP-complete
19:55:03 <oerjan> <copumpkin> Vorpal: a language in which a given line is a comment if the sum of the lengths of any subset of the lines preceding it is 42
19:55:14 <oerjan> if 42 is fixed, then that won't be NP-complete
19:55:40 -!- CakeProphet has joined.
19:55:40 -!- CakeProphet has quit (Changing host).
19:55:40 -!- CakeProphet has joined.
19:55:47 <copumpkin> I adapted my suggestion
19:55:49 <copumpkin> after that
19:55:55 <oerjan> ah
19:56:03 -!- pikhq_ has quit (Ping timeout: 240 seconds).
19:56:15 -!- pikhq has joined.
19:56:32 <oerjan> copumpkin: also i think it won't be for _any_ fixed number so your adaptation won't work
19:57:01 <copumpkin> why not?
19:57:34 <oerjan> let your number be n. make an array of n bools.
19:57:56 <oerjan> initialized to False, except index 0
19:58:16 <copumpkin> (I adapted it to include negative numbers)
19:59:01 <oerjan> then whenever you add a new item j, iterate through the array and make i+j True if i is
19:59:18 <oerjan> so you always have the set of possible sums.
19:59:47 <oerjan> right that won't work with negative numbers
19:59:54 <copumpkin> that was the adaptation
20:00:04 <oerjan> you had another one first
20:00:31 <oerjan> <olsner> using a parser generator is kind of like using a library containing code you didn't write yourself
20:00:32 -!- wareya has quit (Ping timeout: 276 seconds).
20:00:59 <copumpkin> :)
20:01:05 <oerjan> for LALR(1) parsing i'd say it's "code you probably _couldn't_ write yourself without messing it up"
20:01:13 <copumpkin> someone should write that parser
20:01:53 <oerjan> which parser
20:02:29 <copumpkin> the NP-complete parser
20:03:52 <oerjan> oh hm wait when you say lines should be _shorter_ than 80 characters, i am thinking - is _that_ still NP-complete? can't you no just count the number of lines of each length?
20:03:54 -!- Kustas has left.
20:04:01 <Sgeo> A member of the MSPA music team just followed me on Twitter
20:04:08 <oerjan> mind you i'm not sure that isn't still NP-complete
20:04:11 <oerjan> *now
20:05:33 * oerjan googles
20:10:05 <oerjan> dammit wikipedia is impenetrably phrased
20:14:55 <copumpkin> the subset-sum problem reduces pretty trivially to it
20:15:36 <oerjan> um i thought your idea _was_ the subset-sum problem, pretty exactly
20:16:05 <copumpkin> well, my idea is a language where parsing it requires solving it :P
20:16:15 <copumpkin> so it isn't exactly it
20:16:25 <copumpkin> but it's pretty obviously related :P
20:16:26 <oerjan> i _think_ the wikipedia article may imply that bounding either the number of sets or the size of elements makes it polynomial, although it's by no means clear
20:16:39 <oerjan> *number of elements
20:16:52 <copumpkin> well then remove the bound
20:16:57 <copumpkin> subtract some number so we still get negatives
20:17:00 <copumpkin> fuck the distribution
20:17:44 <oerjan> oh well
20:17:53 <copumpkin> or maybe negate every other line?
20:17:56 <copumpkin> that should work, right?
20:20:19 <oerjan> i think i'm too tried [sic] for this
20:23:17 <oerjan> google, now with free guitar
20:27:54 -!- cheater_ has quit (Ping timeout: 252 seconds).
20:36:38 -!- wareya has joined.
20:54:04 -!- pikhq_ has joined.
20:54:38 -!- elliott has joined.
20:54:44 <pikhq_> Wow. There's a palladium credit card. That's not a stupid marketing name. The card is literally made of palladium.
20:54:48 <elliott> xD
20:54:49 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
20:55:00 <Phantom_Hoover> pikhq_, awesome.
20:55:03 <Phantom_Hoover> EXCEPT
20:55:11 <Phantom_Hoover> It should be whichever metal I settled on as Best.
20:55:22 <pikhq_> Iridium?
20:55:50 <Phantom_Hoover> I think rhenium was in the running as well, and the last one I considered was tantalum-180m.
20:55:59 -!- pikhq has quit (Ping timeout: 260 seconds).
20:57:46 <pikhq_> Sure enough, rhenium is rarer.
20:59:19 <Phantom_Hoover> But tantalum-180m is rarer still.
20:59:34 <pikhq_> Ruthenium and rhodium are rarer still and are also stable...
20:59:54 <Phantom_Hoover> TOO MAINSTREAM
21:00:00 <pikhq_> Though both are fission products of U-235, making it possible they wouldn't be if someone decided to fuck with you.
21:00:27 <Phantom_Hoover> Um. That Is Not How Quantities Work.
21:00:40 <Phantom_Hoover> Tantalum-180m is the rarest stable primordial nucleus, though.
21:01:01 <pikhq_> The thing is, someone could *manufacture* ruthenium and rhodium.
21:02:17 <Phantom_Hoover> Yet another reason to use tantalum-180m!
21:02:26 <pikhq_> Yeah, tantalum-180m seems to win.
21:03:18 <pikhq_> Though 180m is technically not stable.
21:03:33 <pikhq_> Just close enough for most intents and purposes.
21:03:44 <pikhq_> (half-life of *at least* 10^15 years)
21:03:45 <Phantom_Hoover> It has never actually been observed to decay.
21:04:15 <pikhq_> Yes, but it's still technically not stable.
21:05:10 <pikhq_> It just has a half life larger than the universe's age.
21:06:36 -!- Patashu has joined.
21:07:11 <pikhq_> (which is about 1.3*10^9 years
21:07:11 <pikhq_> )
21:07:12 * Sgeo still finds it unintuitive that a probability 0 event can occur.
21:07:22 <Sgeo> I mean, I understand it, it's just weird
21:07:51 <pikhq_> Oh, and 10^15 years is the *lower bound* on the half life.
21:08:07 <pikhq_> Sgeo: Technically, there are no events with probability 0 in reality.
21:08:24 <pikhq_> Just events with probability sufficiently low that their floating point representation is 0. :P
21:08:48 <Phantom_Hoover> pikhq_, I was totally doing the whole tantalum-180m thing like a month ago get with the nuclear times.
21:09:44 <elliott> the best giraffe has yet to exist
21:10:03 <elliott> > var "uh oh"
21:10:03 <lambdabot> uh oh
21:10:06 <elliott> oh
21:10:34 <elliott> 22:54:46: <pikhq_> Mmmkay, patches pushed upstream.
21:10:34 <elliott> 22:56:49: <pikhq_> Which feels kinda weird, TBH.
21:10:44 <elliott> pikhq_: To musl or util-linux-ng or what? :P
21:10:51 <elliott> ah, util-linux-ng
21:10:51 <pikhq_> elliott: util-linux.
21:11:05 <pikhq_> And I have some more to push in a bit.
21:11:13 <pikhq_> i.e. "When I feel like it".
21:11:18 <Phantom_Hoover> > thanks "pikhq"
21:11:19 <lambdabot> Not in scope: `thanks'
21:11:23 <Phantom_Hoover> elliott
21:11:25 <Phantom_Hoover> What happened
21:11:28 <Phantom_Hoover> To thanks
21:11:28 <elliott> Phantom_Hoover: oerjan broke it
21:11:31 <Phantom_Hoover> oerjan
21:11:35 <Phantom_Hoover> You are terrible
21:11:46 <elliott> ?let thanks xs = if any ((`elem` "aeiou") . toLower) xs then text . (++ ".") . (("Thanks, " ++ xs ++ ". Th") ++) . dropWhile ((`notElem` "aeiou") . toLower) $ xs else text "What are you, Welsh?"
21:11:47 <lambdabot> Defined.
21:11:52 <elliott> > thanks "util-linux"
21:11:53 <lambdabot> Thanks, util-linux. Thutil-linux.
21:12:07 <elliott> 00:04:39: <oerjan> hm what about just i
21:12:08 <elliott> 00:10:05: <oerjan> `c```csx = ````csx(*) = ```s(```*x(*))x(*) = ``(```*x(*))(*)`x(*) = ```(*)x(*) = x
21:12:09 <elliott> oerjan: what prompted dis
21:12:25 <Patashu> is there an unlambda interpreter in haskell?
21:12:30 <elliott> oh, previous line
21:12:40 <elliott> Patashu: it takes like ten minutes to write one, so almost certainly
21:12:42 -!- CakeProphet has quit (Ping timeout: 255 seconds).
21:12:43 <elliott> oerjan probably has one, even :P
21:12:58 <elliott> yep
21:12:59 <elliott> http://home.nvg.org/~oerjan/esoteric/Unlambda.hs
21:13:06 <elliott> hm what
21:13:07 <elliott> http://www.cse.unsw.edu.au/~dons/code/lambdabot/scripts/Unlambda.hs
21:13:09 <elliott> dons changed it
21:13:11 <elliott> I wonder what he changed?
21:13:19 <elliott> oerjan:
21:13:23 -!- CakeProphet has joined.
21:13:23 -!- CakeProphet has quit (Changing host).
21:13:23 -!- CakeProphet has joined.
21:13:26 <elliott> oh, time limited
21:13:27 <elliott> and output too
21:13:29 <elliott> must be what's in lambdabot
21:13:56 <elliott> 00:16:50: <pikhq_> "Someone said "I know, let's make a porn version of The Human Centipede!". And others listened. And now it's out on DVD. May the gods forgive us." https://secure.wikimedia.org/wikipedia/en/wiki/The_Human_Sexipede , via Reddit.
21:13:56 <elliott> 00:16:54: <pikhq_> :(
21:13:56 <elliott> amazing
21:14:10 <Patashu> lol
21:14:11 <elliott> A parody of The Human Centipede, in 'The Human Sexipede', Dr. Heiter kidnaps two young American girls and an Asian man, all of whom are unable to achieve sexual satisfaction through everyday sexual behaviour. He presents them with the idea of joining them Mouth to Genitals, so that they are able to continually pleasure each other by way of oral sex and finally achieve sexual satisfaction.
21:14:15 <elliott> why did he need to kidnap them
21:14:27 <elliott> if he "presents them with the idea" why couldn't he just like tell them
21:14:31 <elliott> the kidnapping seems totally superfluous
21:14:34 <elliott> THIS PORN HAS A REALLY BAD PLOT
21:15:03 <elliott> "The Human Centipede II (Full Sequence) is an upcoming British horror film directed by Dutch filmmaker Tom Six. The sequel to 2010's Dutch film The Human Centipede (First Sequence), the film has been scheduled for release on DVD in 2011 but has been banned from distribution in the United Kingdom due to its explicit content."
21:15:05 <pikhq_> It's porn. You expect good writing?
21:15:12 <elliott> i can't buy the sequel to human centipede
21:15:12 <elliott> :<
21:15:14 * elliott crushed
21:15:22 <elliott> The film centres on an antagonist called Martin (Laurence Harvey), who becomes sexually obsessed with a DVD recording of the film within the film, The Human Centipede (First Sequence). In the DVD, a surgeon kidnaps three people and surgically connects them mouth-to-anus. Martin masturbates as he watches the film, with sandpaper wrapped around his penis. He subsequently creates his own twelve-person "human centipede" and gains sexual gratification
21:15:22 <elliott> from the pain, humiliation and suffering of his victims. He is shown to become aroused whenever a member of his centipede defecates, and their faeces are forced into the mouth of the victim behind them. He rapes the woman at the rear of the centipede, with barbed wire wrapped around his penis.[1]
21:15:24 <elliott> meta
21:15:50 <elliott> "He rapes the woman at the rear of the centipede, with barbed wire wrapped around his penis."
21:15:51 <elliott> man what
21:16:02 <pikhq_> It's clearly a depiction of what the same film is doing to the audience.
21:16:10 <elliott> Tom Six claimed the sequel would be much more graphic and disturbing , making the first film seem like "My Little Pony compared with part two."
21:16:36 <elliott> Comparing Full Sequence with the first film; the BBFC said that whilst First Sequence was "undoubtedly tasteless and disgusting",[11] the content of First Sequence had been acceptable for release because the centipede of said film was the product of a "revolting medical experiment".
21:16:43 <elliott> so it's OK if you don't get off on it
21:16:51 <Patashu> the human centipede is kind of disgusting
21:16:55 <Patashu> 'medical experiment' o
21:17:01 <pikhq_> elliott: The doctor who did it was getting off on it.
21:17:14 <pikhq_> Half the premise is that he had a sick fetish.
21:17:16 <elliott> "Six criticised the BBFC for including film spoilers in their report"
21:17:17 <elliott> "Six criticised the BBFC for including film spoilers in their report"
21:17:18 <elliott> "Six criticised the BBFC for including film spoilers in their report"
21:17:18 <elliott> "Six criticised the BBFC for including film spoilers in their report"
21:17:26 <Patashu> spoiler alert
21:17:29 <Patashu> people will be jointed mouth to anus
21:17:38 <elliott> and barbed wire will be wrapped around a penis
21:18:36 <pikhq_> I have mixed feelings about this. First, it's an absolutely, horrifying concept without any artistic merit. Second, fiction should never ever ever ever be banned. Ever.
21:18:45 <pikhq_> Even if you're joining people mouth to anus.
21:19:33 <elliott> its pretty hilarious imo
21:19:41 <elliott> banning it is just stupid, no mixed feelings
21:19:55 -!- hagb4rd has joined.
21:20:11 <pikhq_> I don't want a fucking sequel published at all. But I don't want to stop any sick fuck from doing so, either.
21:20:34 <elliott> i don't see what you have against it, people can film anything they want if they're not harming anyone
21:20:54 <elliott> apparently the first film was pretty funny
21:20:56 <elliott> i haven't seen it though
21:21:09 <Phantom_Hoover> elliott, so I infer that you are completely opposed to hate speech laws?
21:21:09 <pikhq_> elliott: It's more "brain bleach" kinda reaction than anything else.
21:21:23 <elliott> Phantom_Hoover: "if they're not harming anyone"
21:21:33 <pikhq_> elliott: Sure, people should be able to film anything they want if they're not harming anyone.
21:21:41 <Phantom_Hoover> elliott, define 'harm', then.
21:21:42 <pikhq_> That doesn't mean I want them to.
21:21:46 <elliott> Phantom_Hoover: That's for the courts :P
21:22:08 <elliott> Obviously paying a bunch of consenting actors to pretend to be sewn together isn't harming anyone.
21:22:20 <Phantom_Hoover> elliott, and if the court rule that Human Centipede 2 is harmful?
21:22:28 <elliott> Phantom_Hoover: Then I believe they'll have made the wrong decision.
21:22:52 <Phantom_Hoover> And making a film called "Let's Kill All The Jews" doesn't harm anyone involved in the production.
21:23:24 <elliott> No, but depicting a bunch of people sewn together isn't harming any minority either.
21:23:37 <elliott> People who aren't sewn together is a pretty large majority, in fact.
21:23:41 <hagb4rd> i believe the answer is: no tolerance for intolarance
21:23:44 <hagb4rd> @hoover
21:23:44 <lambdabot> Unknown command, try @list
21:23:48 <pikhq_> Phantom_Hoover: The mere act of producing such a thing does not really harm anyone.
21:24:15 <elliott> Phantom_Hoover: Anyway, it's not like neo-Nazis can't watch "Let's Kill All The Jews" if they want to anyway; it's called the internet.
21:24:25 <elliott> Hate speech laws are probably ineffective in such an instance.
21:24:46 <pikhq_> That said, hate speech laws get very annoying edge cases. It's kinda inherent in the concept...
21:24:48 <oerjan> <elliott> oerjan probably has one, even :P <-- the one on hackage is based on mine
21:25:15 <elliott> I'm pretty sure The Metamorphosis of Prime Intellect would have been banned from publication if it was written quite a bit earlier
21:25:25 <elliott> (Not that it has been published other than self-)
21:25:34 <pikhq_> Most definitely.
21:25:46 <Phantom_Hoover> FWIW, it does seem that the BBFC has simply refused to classify it, which isn't quite banning it.
21:26:15 <oerjan> <Phantom_Hoover> What happened <-- when anyone anywhere issues the @undefine command to lambdabot, all @let's are discarded. sorry, that's just the way it is.
21:26:16 <elliott> When classifying First Sequence, the BBFC had also taken legal advice that the film was not in breach of the Obscene Publications Act.[12] In contrast, the BBFC felt that the centipede of Full Sequence existed as purely "the object of the protagonist's depraved sexual fantasy".[11]
21:26:32 <elliott> Phantom_Hoover: That seems like they're at least strongly implying it would be illegal to publish it in their view
21:26:39 <elliott> The BBFC's report heavily criticised the film as making "little attempt to portray any of the victims in the film as anything other than objects to be brutalised, degraded and mutilated for the amusement and arousal of the central character, as well as for the pleasure of the audience"[1] and that the film was potentially in breach of the Obscene Publications Act, meaning its distribution in the UK (either in physical or download format) would be
21:26:39 <elliott> illegal[13], The BBFC stated that they would not reclassify the film in future, as "no amount of cuts would allow them to give it a certificate".[13]
21:26:47 <pikhq_> Phantom_Hoover: Since you can't sell unclassified works in the UK, it is pretty much banned.
21:26:48 <elliott> Phantom_Hoover: So yeah, they've said distributing it would be illegal.
21:26:51 <Phantom_Hoover> Potentially in breach, not actually in breach.
21:27:01 <pikhq_> Well, non-exempt video works.
21:27:09 <elliott> Phantom_Hoover: Well, they could go against the BBFC, but I bet they'd lose in court.
21:27:16 <oerjan> <elliott> oerjan: what prompted dis <-- i started wondering about the power of just ` c and s
21:27:20 <Phantom_Hoover> Whether it's actually banned-as-in-you-can't-watch-it is unclear unless the courts decide one way or the other.
21:27:33 <elliott> It's obviously not banned to watch, just distribute
21:27:53 <elliott> 04:37:52: <pikhq> "Back in the summer of '87 he owned a giant venomous lizard. It somehow managed to escape, which led to the police shooting it with a shotgun. Because of the lack of laws against lizards, he was charged with possession of a "venomous, tree climbing alligator".
21:27:54 <elliott> 04:37:56: <pikhq> The above story was reported in Weekly World News as "police battle giant lizard". As a result, this is the only true and verifiable story ever reported in that tabloid."
21:27:54 <elliott> 04:38:02: <pikhq> Aaaand continue laughing.
21:27:55 <elliott> rationalwiki :(
21:28:37 <Phantom_Hoover> That's from RW?
21:28:40 <hagb4rd> would you say speech laws exclude the freedom of language and the ability of express everything you want to say?
21:28:59 <elliott> Phantom_Hoover: i googled, it is
21:29:38 <pikhq_> hagb4rd: I think you a word.
21:30:36 <elliott> 08:25:10: <Patashu> it's much much easier to introduce tau than pi though
21:30:36 <elliott> 08:25:19: <Patashu> if you're ever speaking to a pi unfamiliar audience just add one line: let tau = 2*pi
21:30:36 <elliott> 08:25:22: <Patashu> and then proceed as normal
21:30:47 <elliott> Patashu: disadvantage: anyone who actually knows mathematics will ignore everything that follows
21:30:49 <ais523> pikhq_: wow that meme is hard to parse without an adverb in there to make it clearer
21:31:03 <elliott> I don't object to tau on principle, but it's such a stupid thing to "advocate" because it's so fucking minor.
21:31:08 <ais523> especially as the no-adverb version is grammatically a correct sentence that means something else
21:31:15 <Phantom_Hoover> This is essentially my position on the matter.
21:31:22 <elliott> Anyone who makes a point of writing an entire serious work with it is probably too annoying to listen to.
21:31:54 <pikhq_> elliott: I think it's one of many reasons I need a time machine.
21:32:53 <pikhq_> There's also, of course, a large swath of missing Doctor Who episodes, and Hitler needs to go to art school.
21:32:58 <ais523> why not just choose units so that pi = 1?
21:33:13 <elliott> 08:49:30: <CakeProphet> ...how did elliott get fixity declarations.
21:33:14 <elliott> by asking oerjan
21:33:17 <pikhq_> ais523: Non-integral bases are annoying.
21:33:21 <elliott> ais523: Change the units of multiplication? :P
21:33:29 <ais523> elliott: pikhq_'s reply is better
21:33:36 <elliott> pikhq_: WWII not happening would probably be a Bad Thing.
21:33:46 <ais523> a Different Thing, at least
21:33:59 <pikhq_> elliott: Balls, it's true.
21:34:01 <Patashu> elliot, it's a pedagogy thing not a 'this will make math BETTER' thing
21:34:03 <Phantom_Hoover> You could argue that it would make the probability of a disastrous war in the 20th century.
21:34:07 <Phantom_Hoover> *much higher.
21:34:10 <pikhq_> Let's go for a more radical change.
21:34:25 <elliott> Patashu: Someone who would write a paper with tau is someone who would write a paper with diaereses and Spivak pronouns.
21:34:34 <Phantom_Hoover> Since WWII led to the Cold War, which was actually pretty good as a way of enforcing general peace.
21:34:39 <Patashu> you should never write a paper with tau
21:34:42 <Patashu> only teach classes with tau
21:34:42 <elliott> Yes, all these things are perfectly well and good, but I DON'T GIVE A SHIT ABOUT THEM, GET TO THE POINT.
21:34:49 <pikhq_> Let's keep Rome going for longer.
21:34:52 <ais523> I know when Asimov wrote a novel about time travel, he introduced the rule "any change to the past that isn't completely and categorically incompatible with the state of the present before the change will have only minor effects on its future past a few hundred years or so"
21:34:55 <elliott> Patashu: Thus creating an even greater barrier between mathematics as taught in school and actual mathematics
21:34:56 <elliott> AWESOME
21:34:58 <oerjan> <ais523> why not just choose units so that pi = 1? <-- -----###
21:35:01 <elliott> THAT'S DEFINITELY WHAT WE NEED
21:35:03 <ais523> i.e. "accidental changes to the past tend to not have knock-on effects"
21:35:11 <ais523> I think it was the only way to keep it vaguely sane
21:35:12 <pikhq_> Just another, oh, few decades would give us the Industrial Revolution instead of the Dark Ages.
21:35:18 <ais523> although it still introduced a sort of meta-time that remained stable
21:35:27 <ais523> and as such, wasn't all that good a time travel novel
21:35:33 <elliott> ais523: I kind of want a machine that can tell me What Would Have Been if one specific thing had been different
21:35:42 <ais523> elliott: ouch
21:35:44 <elliott> ais523: unfortunately, it'd just lead to me regretting 90 percent of my decisions
21:35:51 <ais523> exactly
21:36:02 <ais523> well, I'd think more like 50%, unless there were more than two choices
21:36:02 <elliott> but that doesn't make me stop wanting it, because I don't know what's good for me
21:36:03 <pikhq_> ais523: It also ended with the destruction of that meta-time. So...
21:36:11 <Phantom_Hoover> elliott, use a quantum RNG to make all decisions.
21:36:13 <elliott> ais523: when are there ever exactly two choices?
21:36:28 <ais523> elliott: well, it depends on how you measure choicse
21:36:29 <ais523> *choices
21:36:36 <ais523> I suppose there's always the out-of-field solution
21:36:40 <pikhq_> Imagine. Instead of the Crusades, we'd have a Roman Internet.
21:36:57 <ais523> e.g. randomly punching someone nearby rather than doing or not doing what the choice was apparently about
21:36:59 -!- cheater01 has joined.
21:37:07 <Phantom_Hoover> Although that leads to smug alternate elliott sneering at you from his perfect reality.
21:37:12 <ais523> pikhq_: I don't think it ended up destroyed, just shunted into a state where timetravel was impossible
21:37:19 <ais523> so it corresponded exactly to natural time from then on
21:37:20 <Phantom_Hoover> pikhq_, I'm kind of glad the ancient world collapsed.
21:37:31 <pikhq_> ais523: It ended with the creation of the time line we live in.
21:37:37 <elliott> <Phantom_Hoover> Although that leads to smug alternate elliott sneering at you from his perfect reality.
21:37:39 <elliott> `quote IN AN ALTERNATE
21:37:40 <HackEgo> ​17) IN AN ALTERNATE UNIVERSE: <pikhq> First, invent the direct mind-computer interface. <pikhq> Second, learn the rest with your NEW MIND-COMPUTER INTERFACE. \ 23) IN AN ALTERNATE UNIVERSE: <bsmntbombdood> there is plenty of room to get head twice at once \ 24) <oerjan> In an alternate universe, ehird has taste \ 25) IN AN
21:37:57 -!- cheater01 has quit (Remote host closed the connection).
21:38:06 <pikhq_> Phantom_Hoover: How so?
21:38:12 <oerjan> <pikhq_> Just another, oh, few decades would give us the Industrial Revolution instead of the Dark Ages. <-- at the end hadn't rome declined too much to achieve anything like that... you'd want to at least prevent the crisis of the third century
21:38:15 <Phantom_Hoover> pikhq_, they... kind of sucked.
21:38:23 <pikhq_> oerjan: Okay, well, true.
21:38:35 <Phantom_Hoover> I mean, the Greeks *had* electricity, the beginnings of calculus, steam...
21:39:02 <elliott> WHAT HAVE THE GRECO-ROMANS EVER DONE FOR US
21:39:03 -!- cheater3 has joined.
21:39:05 <pikhq_> Phantom_Hoover: The world sucked up until the 20th century, TBH.
21:39:10 <elliott> pikhq_: no
21:39:11 <elliott> the world sucks
21:39:20 <Phantom_Hoover> They just didn't develop it, because their society wasn't geared towards technological change in the same way the later societies were.
21:39:52 <ais523> besides, the technology they had at the time was sufficient for them
21:39:57 <ais523> so there wasn't much reason to upgrade
21:40:14 <pikhq_> Phantom_Hoover: Uh, later societies were *really* poorly geared towards technological change. And arguably still are.
21:40:36 <Phantom_Hoover> pikhq_, not to the extent that they just looked at it and said 'meh'.
21:40:51 <pikhq_> No, they looked at it and said "THE DEVIL!"
21:41:38 <Phantom_Hoover> I was referring to Enlightenment-era Europe, not Dark Ages Europe.
21:41:40 <elliott> the world isn't the bible belt
21:42:16 <Phantom_Hoover> You realise that the Dark Ages weren't the fall of the Empire to the 1800s, right?
21:42:26 <pikhq_> Yes yes yes...
21:43:06 <pikhq_> That *is* about the time span where we were fucking *behind* on tech, though.
21:44:41 <elliott> silly rabbit, the middle ages never happened
21:45:50 <elliott> 23:34:53: <ehird> 23:21 pikhq: Oh, right. He prefers the insane solution.
21:45:51 <elliott> 23:34:53: <ehird> 23:21 pikhq: (in this case, per-OS Makefiles)
21:45:51 <elliott> 23:34:54: <ehird> nope
21:45:51 <elliott> 23:36:10: <pikhq> ehird: What do you prefer?
21:45:52 <elliott> 23:36:18: <ehird> pikhq: not using c :)
21:45:56 <elliott> 23:36:31: <pikhq> Ah, yes. The ignorant solution.
21:45:58 <elliott> pikhq_ past you hurts my feelings
21:46:00 <elliott> : (
21:46:02 <Phantom_Hoover> <pikhq_> That *is* about the time span where we were fucking *behind* on tech, though.
21:46:07 <Phantom_Hoover> Erm.
21:46:57 <Phantom_Hoover> Europe was pulling ahead by the 1700s.
21:47:14 <Phantom_Hoover> And when it started pulling ahead, it pulled ahead *fast*.
21:47:14 <pikhq_> Bah, what's a century, anyways? :P
21:47:46 <pikhq_> But, yeah, once it got to the level that the Romans had, it fucking *launched*.
21:49:49 <pikhq_> Hmm. One thing the Romans didn't have that would have really made the Industrial Revolution non-feasible is gunpowder...
21:50:37 <pikhq_> Which encouraged a lot of development in metallurgy.
21:51:28 <oerjan> s/non-//
21:52:00 <pikhq_> Most notably, efficient production of steel.
21:52:50 <pikhq_> (I specify "efficient production", because steel itself is a heck of a lot older than you think)
21:55:06 <Phantom_Hoover> How old do you think I think steel is.
21:55:21 <Phantom_Hoover> Come to think of it, who are you actually saying all these things to.
21:55:33 <pikhq_> Okay, good point, you're not ignorant like the average American. :P
21:55:56 <pikhq_> And honestly, I think I started monologing somewhere in there for no good reason.
21:56:58 <oerjan> must be your latent evil overlord genes
21:57:51 -!- azaq23 has joined.
22:00:15 * Phantom_Hoover → sleep
22:00:17 -!- Phantom_Hoover has quit (Quit: Leaving).
22:00:41 <elliott> 00:31:40: <ehird> David slowed his pace slightly as his ears, in a vat of chocolate; only his less slightly paces can go faster.
22:00:44 <elliott> i'm a genius
22:04:21 <pikhq_> Hrm. OpenJDK is now the reference implementation of Java.
22:04:33 <elliott> Your MOM is now the reference implementation of YOUR MOM.
22:04:37 <elliott> [asterisk]FACE
22:05:13 <ais523> elliott: that sentence seems to interpret "slightly" as an adjective, and even taking that into account I still can't parse it
22:05:28 <elliott> 00:31:32: <ehird> David slowed (his pace slightly) as (his ears, in a vat of chocolate); only his less slightly paces can go faster.
22:05:32 <Sgeo> http://www.bluishcoder.co.nz/2007/10/javascript-parser-combinators.html oooh
22:06:10 <elliott> Theory: Sgeo is Chris Double, pretending to be Sgeo.
22:06:40 <elliott> Evidence: Double likes Creatures. (End evidence.)
22:07:17 <ais523> elliott: oh, right, the first "slightly" is a noun
22:07:18 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:07:28 <ais523> now the sentence merely makes no sense, rather than being unparseable
22:07:34 <ais523> I suppose that's an improvement
22:07:42 <elliott> ais523: David slowed his ears, which were in a vat of chocolate.
22:07:50 <elliott> David also slowed his [pace slightly] in a similar manner.
22:08:00 <elliott> Only his less slightly paces can handle the faster speeds.
22:08:01 <ais523> ah, so "as" = "as well as" here
22:08:04 <elliott> ais523: that should explain it for you
22:08:10 <ais523> err, I think so
22:08:15 <elliott> Yeah.
22:08:26 <elliott> Actually pace is the noun there.
22:08:29 <elliott> "His pace slightly" = "His slightly pace".
22:08:32 <elliott> i.e. "the grass green"
22:08:43 <elliott> What a pace is, and how it can be slightly, is up for the reader to decide.
22:08:51 <elliott> [asterisk]is for
22:10:14 <elliott> David slowed his pace slightly as his ears, for he had the slightest ears in the land.
22:10:32 <ais523> elliott: ah, I parsed it as "his pace 'slightly'", in that it was the pace's name
22:10:39 <elliott> ais523: haha
22:10:46 <elliott> "less slightly paces" makes no sense then, though
22:10:57 <ais523> well, I parsed it as an adjective that time
22:11:08 <ais523> nothing says it has to be parsed consistently, right?
22:11:15 <elliott> "only his less Joe friends could be so nice"
22:11:45 -!- Phantom_Hoover has joined.
22:11:56 <Phantom_Hoover> OK I wasn't actually asleep and I need to share this:
22:12:10 <Phantom_Hoover> "If you watch NASA backwards, it's about a space agency that has no spaceflight capability, then does low-orbit flights, then lands on moon."
22:12:28 <elliott> X-D
22:12:40 <Phantom_Hoover> OK seriously sleep now.
22:12:42 -!- Phantom_Hoover has quit (Client Quit).
22:12:42 <elliott> David slowed his pace slightly as his ears, like most sentences in this novel, did gently but surely and definitely yet somehow trail off in a manner that was... But I digress.
22:14:03 <elliott> hmm, adding sleep_until() to a language can make it Turing-complete
22:14:42 <olsner> heh, took a while to understand that NASA joke
22:14:45 <oerjan> There once was a lady of Niger; who smiled as she rode on a tiger. They returned from the ride, with the lady inside, and the smile on the face on the tiger.
22:14:52 <elliott> olsner: Seriously? :P
22:15:08 <elliott> oerjan: is that semicolon right? or is it actually part of the weirdness, hmm
22:15:16 <elliott> oh wait it's not weird
22:15:22 <elliott> i thought the lady was implied to be inside the face of the tiger
22:15:23 <elliott> somehow
22:15:36 <olsner> elliott: yeah, first I thought "but... that's forwards!" and then "oooh! I see!"
22:15:58 <oerjan> elliott: i just tried to digress about a nigress and a tigress, is all
22:16:05 <ais523> what NASA joke?
22:16:11 <olsner> ais523: the NASA one
22:16:29 <ais523> ah, for some reason I skipped it in scrollback
22:16:39 <ais523> and yes, that's a pretty good observation
22:16:55 <ais523> there must be some clever way to tie that into an in-soviet-russia joke, but I'm not seeing it right now
22:17:17 <elliott> let's have some groupthink sentiment that nobody will disagree with: some funds need directing from the us military to nasa :(
22:17:40 <Sgeo> "My voice is my passport. Verify me." did not originate with Uplink?
22:17:42 <Sgeo> Meh
22:18:00 <ais523> all this space research is only useful if it gets us a second habitable planet to live on, given that we're using up the resources of the current one too quickly
22:18:09 <elliott> Sgeo: most parts of uplink are references to bad films, why would you expect that to be different?
22:18:15 <olsner> Sgeo: it's from some... movie or tv series... one that I've seen
22:18:26 <elliott> ais523: Understanding the universe is inherently worthwhile, IMO
22:18:33 <elliott> olsner: Sneakers
22:18:37 <elliott> Says Google
22:18:53 <ais523> elliott: understanding the universe is /possible/?
22:19:05 <elliott> ais523: Are you saying the universe can't be understood at all?
22:19:14 <elliott> That would imply that physics doesn't exist as a subject.
22:19:19 <elliott> Or science of any sort really
22:19:23 <olsner> oh, right, it's that magic crypto chip movie
22:19:28 <Sgeo> Do we really need another planet? Would a space station that had mining operations on other objects in our solar system be good enough?
22:19:41 <ais523> elliott: I don't think it's truly understandable, but I think you can get decent approximations that hold up a reasonable proportion of the time
22:19:46 <elliott> Sgeo: it's probably easier to terraform Mars than do that :P
22:19:53 <elliott> I mean, for a large group of people
22:20:01 <elliott> ais523: You're saying that you don't believe the universe has a consistent set of laws?
22:20:15 <elliott> Seriously?
22:20:28 <ais523> elliott: I think the situation in which the universe doesn't make sense is more likely than the situation in which it does
22:20:39 <elliott> I am not using the words "make sense" on purpose.
22:20:46 <elliott> Please answer my question without rewording it.
22:21:06 <ais523> elliott: I'm not entirely sure your question has a non-misleading answer
22:21:21 <ais523> to the extent that I'm not sure what the correct answer is
22:21:27 <elliott> It's a yes-or-no question
22:21:31 <oerjan> elliott: it is quite conceivable that there are always new, unpredictable exotic particles to be found randomly as you increase to higher energy levels. and that's just an obvious idea from the research that is already being done...
22:21:36 <elliott> Does the universe have a consistent set of laws, or is it completely illogical?
22:21:40 <ais523> elliott: that doesn't mean I necessarily know the answer
22:21:45 <elliott> In your opinion.
22:21:50 <ais523> also, I'm not sure that those are opposites
22:21:59 <elliott> Then you don't know what I mean by "illogical".
22:22:05 <ais523> but completely illogical seems the most likely out of those two possibilities
22:22:10 <ais523> *more likely
22:22:24 <elliott> In your estimation, is there a logically consistent axiomatic system in which there are a group of statements which comprise a complete description of how our universe operates?
22:22:37 <ais523> no
22:22:41 <elliott> Wow.
22:22:48 <ais523> I'd be very surprised if there were
22:23:11 <elliott> Final question: Do you realise that even the physical existence (somehow, say encoded into atoms) of Chaitin's constant would be permissable under my question?
22:23:26 <cheater3> ais523, space research gave you non-stick frying pans!!!!!!!!!!
22:23:28 <ais523> elliott: I don't see how Chaitin's constant has anything to do with it
22:23:39 <ais523> cheater3: I don't think I've ever used one of those
22:23:42 <elliott> ais523: It is not directly related, but I would like an answer.
22:23:45 <ais523> is the same coating used on saucepans? I've used those
22:23:52 <ais523> elliott: "permissable under my question"?
22:24:05 <cheater3> ais523, do you cook?
22:24:09 <ais523> cheater3: rarely
22:24:13 <ais523> when I need food, sometimes
22:24:17 <cheater3> philistine!
22:24:20 <ais523> although I prefer reheating tins
22:24:24 <elliott> ais523: As in: Do you realise that a universe in which there is a physical realisation of the entirety of Chaitin's constant could still be logical under my definition?
22:24:25 <cheater3> jesus
22:24:31 <ais523> or just buying ingredients on the spot and eating them raw
22:24:39 <cheater3> i'm not surprised you're so lackluster sometimes
22:24:45 <ais523> elliott: yes, that doesn't seem to be surprising
22:24:57 <elliott> ais523: And you still affirm your answer to my question about axiomatic systems, yes?
22:24:58 * cheater3 teaches ais523 how to cook in 1203498 simple steps.
22:25:04 <ais523> elliott: yes
22:25:11 <ais523> cheater3: oh, I know how to in theory
22:25:22 <cheater3> there's no such thing as cooking theory
22:25:25 <ais523> it just doesn't seem worth spending that much time when I can achieve a similar result more simply
22:25:40 <elliott> ais523: Then we have COMPLETELY and fundamentally different worldviews, and can never agree on any statement related to the material world, at all.
22:25:42 <cheater3> for very small values of similar
22:26:21 <ais523> elliott: that seems to fit with what's happened in this channel so far
22:26:30 <ais523> we can approximately agree, though, which is good enough
22:26:34 <elliott> No, it isn't
22:26:45 <elliott> You have completely rejected all forms of logic as a valid basis for the universe
22:26:52 <elliott> It is _literally_ impossible for us to agree on anything
22:26:56 <elliott> (that is not purely mathematical)
22:27:04 <ais523> elliott: I don't think that follows
22:27:51 <elliott> oerjan: what do you think? Are there laws of physics?
22:28:23 <oerjan> insufficient data for meaningful answer
22:28:59 <elliott> heh
22:29:38 <elliott> ais523: I feel really strongly that I have miscommunicated with you, because your position, as it appears to me, is one of the few things I am completely decisive and sure about and which everyone I've talked to will agree completely with
22:30:14 <elliott> I'm fairly scared that you think it, actually (note: not the same thing as "I believe it because the alternative scares me")
22:33:02 -!- elliott_ has joined.
22:33:02 -!- elliott has quit (Read error: Connection reset by peer).
22:36:48 <CakeProphet> elliott_: I agree with ais523 on this one.
22:37:05 <CakeProphet> but I don't think it's such a huge difference in perspective to make it /impossible/ to agree on /anything/.
22:37:08 <CakeProphet> as you put it.
22:37:28 <elliott_> CakeProphet: while i merely /expect/ I've miscommunicated with ais523, I am something like ninety percent sure I've miscommunicated with you about it
22:37:51 <cheater3> what's the difference between a LIFO and a FILO?
22:37:59 <elliott_> (this isn't because I think you're an idiot or anything, just that I was phrasing my statements purely for ais523, and I seem to have an easier time communicating with him on questions which resemble the one I made than I do with you)
22:38:16 <elliott_> but I note that it _does_ make it impossible to agree on anything _about the universe_
22:38:16 <ais523> cheater3: a FILO is a sort of pastry
22:38:22 <elliott_> just like it's impossible to argue with someone who rejects logic
22:38:40 * Sgeo just noticed the awesomeness of the [S] Make Her Pay preloader
22:38:42 <elliott_> it is impossible to argue about a logical statement about the universe if you think the universe is not logical
22:38:44 <oerjan> cheater3: never heard the word FILO used
22:38:47 <ais523> elliott_: how do you know that the sort of logic you subscribe to is the one the universe actually follows?
22:39:01 <elliott_> ais523: I'm too busy reeling from the shock to discuss this further right now, sorry
22:39:02 <ais523> there's more than one, you know
22:39:35 <oerjan> LIFO and FIFO is the usual distinction
22:40:11 <CakeProphet> FILO and LILO :)
22:41:52 <Patashu> LILO == FIFO and LIFO == FILO
22:42:16 <oerjan> it is possible to think that the known laws of physics are incomplete while also thinking that they are almost never broken to any detectable degree.
22:42:53 <oerjan> which is pretty much the case with current version of Standard Model + General Relativity
22:44:08 <Patashu> you only don't see them broken so much because the scales they break on are almost incomprehensible
22:44:40 <oerjan> incomprehensible ~ hard to probe and detect, there
22:44:52 <Patashu> yeah sure
22:44:55 * Patashu finds physics hard ok
22:45:13 <elliott_> oerjan: Yes, but that just means we have not _found_ the laws yet
22:45:40 <elliott_> oerjan: That's how relativity and quantum physics arose, after all
22:45:41 <oerjan> elliott_: there does not have to be an _actual_ set of laws for a good approximation to exist
22:45:51 <elliott_> oerjan: Of course not, who said that?
22:46:04 -!- Gregor has set topic: Man with dead polecat-like creature accused of #esoteric assault | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
22:46:07 <Patashu> how can there -not- be laws?
22:46:46 <olsner> one must have laws or there will be no order!
22:47:14 <CakeProphet> I could segway into anarchy now...
22:47:34 <CakeProphet> but that's a bad idea, as I will die.
22:49:56 <elliott_> [asterisk]segue
22:49:59 <elliott_> Although segway is amusing too
22:50:00 <pikhq_> elliott_: Ultimately, it is unknowable whether or not the universe is logical.
22:50:09 <pikhq_> elliott_: Or, indeed, if it exists.
22:50:11 <pikhq_> Soo...
22:50:14 <elliott_> it exists
22:50:17 <elliott_> that's a tautology
22:50:26 <oerjan> elliott_: i was reminded of that guy i read about segwaying off a cliff
22:50:29 <pikhq_> Well, rather, "the universe as we observe it".
22:50:31 <CakeProphet> I believe that any set of non-trivial axiomatic laws for the universe will be inconsistent or unable to prove its own completeness. Thus, while we can certainly make pretty good approximations of how the universe works, I don't think we can ever be certain that we have discovered everything that can be known about it. This doesn't disprove that a complete system might exist, but it makes unlikely that we'll ever know wha
22:50:38 <elliott_> but anyway, unknowable doesn't mean you can't have a belief about it, this is a fundamental opinion equivalent to saying "physics /does not work/ in the longest term"
22:50:44 <elliott_> oerjan: you mean the guy who bought the company? :)
22:50:51 <pikhq_> Clearly, it exists at *least* in the sense that there is some place that my mind exists.
22:51:04 <oerjan> elliott_: i vaguely recall something like that
22:51:47 <pikhq_> True, true. I am pretty sure that the universe as observed exists and follows logical laws.
22:51:49 <elliott_> oerjan: it was
22:51:58 <pikhq_> At least, in so far as I have observed it, it does.
23:02:36 <CakeProphet> Yow! Legally imposed CULTURE-reduction is CABBAGE-BRAINED!
23:03:44 <elliott_> `addquote <Gregor> You have no idea how desperately I want to avoid being a GC guy :P <Gregor> Every year I go to ISMM and Doug Lea gives me a bizarrely-cheery "Hello!" and I'm like "awww shit I'm in memory management"
23:03:45 <HackEgo> ​447) <Gregor> You have no idea how desperately I want to avoid being a GC guy :P <Gregor> Every year I go to ISMM and Doug Lea gives me a bizarrely-cheery "Hello!" and I'm like "awww shit I'm in memory management"
23:04:39 <oerjan> pikhq_: it's just tricking you into thinking so *MWAHAHAHA*
23:04:51 <pikhq_> oerjan: That is entirelty unknowable.
23:04:53 <pikhq_> Entirely, too.
23:05:20 <oerjan> sure, *for now*
23:06:29 <CakeProphet> In other news, I actually have magic powers.
23:06:34 <elliott_> ditto sup
23:06:45 <elliott_> CakeProphet: Did you continue reading Homestuck, btw? :p
23:07:02 <pikhq_> Demonstrate it or STFU, n00b. :P
23:07:14 <elliott_> pikhq_: die to death
23:07:33 <oerjan> hm this reminds me of this idea i had, that maybe i don't actually exist more than a moment and every new moment i will be someone entirely different with different memories which might make it _seem_ like i am existing in a continuity
23:07:37 <pikhq_> How else would one die?
23:07:55 <oerjan> only to disappear again the next one
23:07:59 <elliott_> pikhq_: die t... to life
23:08:08 <elliott_> oerjan: see: Boltzmann brain
23:08:28 <elliott_> Yudkowsky or someone actually came up with a fairly decent argument that we're not Boltzmann brains, IIRC
23:08:32 <elliott_> I forget what it was, though
23:09:07 <elliott_> (which is quite important, otherwise you have to consider that you never existed before now and won't exist after now a pretty plausible hypothesis)
23:09:35 <CakeProphet> oerjan: I have some friends who have had similar thoughts. Granted they were on acid, so it was probably more like a delusion than a thought.
23:10:23 <elliott_> "A friend had this thought on acid" -- words which never precede anything of interest
23:10:31 <CakeProphet> One friend found "God" this way, apparently.
23:11:00 <CakeProphet> Being in a state of hallucination is probably the best way to perceive a god, I guess.
23:11:20 <CakeProphet> I tried to tell him what was wrong with that entire idea, but he doesn't see it.
23:11:46 <elliott_> it might be worth considering that he's an idiot
23:12:09 <CakeProphet> yes, he is.
23:12:18 <CakeProphet> and a programmer too. Imagine that.
23:12:33 <pikhq_> Anything observed whilst on a hallucinogen is *most probably* not going to have much bearing on reality.
23:12:41 <elliott_> oh well then he's definitely an idiot
23:12:43 <elliott_> ;;;;;;;;;;;DDDDDDdddddddd
23:12:57 <pikhq_> Though it may be a good source of art.
23:12:58 <CakeProphet> pikhq_: this has been my long-standing hypothesis as well. It seems to be pretty true.
23:12:58 <oerjan> elliott_: boltzmann brains is not quite what i was thinking of, i wasn't saying the change from one identity to another is _random_. also boltzmann brains seem to have at least limited continuity.
23:13:13 <elliott_> oerjan: I was just saying they are similar concepts
23:13:39 <pikhq_> CakeProphet: At least insofar as we can observe, hallucinogens create incorrect observations. So, yeah.
23:13:45 <CakeProphet> oerjan: what does this theory say about cabbage brains?
23:13:50 <elliott_> pikhq_: so does thinking
23:14:38 <pikhq_> elliott_: Sorry, *even more* incorrect observations than we already have.
23:14:48 <oerjan> what's a cabbage brain
23:14:56 <CakeProphet> elliott_: oooh, you just raise the SICK BURN meter.
23:15:06 <elliott_> oerjan: what a cabbage uses to think
23:15:09 <CakeProphet> oerjan: a brain that seeks to legally impose culture reduction.
23:15:18 <elliott_> CakeProphet: i was being serious
23:15:19 <oerjan> what's culture reduction
23:15:24 <elliott_> oerjan: what a culture uses to reduce
23:15:33 <CakeProphet> elliott_: right, but your statemenet doesn't really contradict anything he said.
23:15:34 <hagb4rd> i like the ideas of henry bergson.. it implies that the brains functions have more the character of reduction
23:15:37 <hagb4rd> like a filter
23:15:44 <elliott_> CakeProphet: I was pointing out that what he was saying didn't really mean anything
23:15:59 <hagb4rd> which at last allows you identify with yourself
23:16:13 <hagb4rd> and keep thing quite smooth
23:16:17 <CakeProphet> oerjan: uh... good question actually.
23:16:27 <CakeProphet> oerjan: I don't know, but emacs has all the answers for you.
23:16:41 <oerjan> oh. i will never know either, then.
23:17:00 <CakeProphet> oerjan: you will if you M-x psychoanalyze-pinhead
23:17:21 <oerjan> hmm, zippy
23:17:38 <CakeProphet> or m-x yow
23:17:59 * oerjan recalls reading zippy the pinhead in the newspaper when he was visiting seattle
23:19:12 <oerjan> ?yow
23:19:12 <lambdabot> Couldn't find fortune file
23:19:16 <oerjan> huh
23:19:31 <CakeProphet> `run fortune
23:19:32 <HackEgo> No output.
23:19:34 <CakeProphet> aww.
23:19:38 <oerjan> THEY'VE LOBOTOMIZED LAMBDABOT
23:19:46 <oerjan> !sh fortune
23:19:47 <EgoBot> ​/tmp/input.9942: line 1: fortune: command not found
23:19:50 <CakeProphet> yow!
23:19:56 <elliott_> oerjan: when was that, seventeen hundreds?
23:20:04 <elliott_> Gregor: plz to be install fortune
23:20:08 <oerjan> 1996
23:20:26 <CakeProphet> wow that's like the dark ages, man
23:20:28 <elliott_> oerjan: suuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuure
23:20:33 <elliott_> they didn't have aeroplanes then dude.
23:20:40 <elliott_> i was only a year old.
23:20:43 <elliott_> can't fool me
23:20:49 <elliott_> or wai t
23:20:49 * CakeProphet was 5.
23:20:50 <oerjan> elliott_: i was hoping for <elliott_> close enough
23:20:52 <elliott_> did you go on a ship
23:20:55 <elliott_> like with a sail and everything
23:20:58 <elliott_> oerjan: heh :D
23:21:18 <elliott_> oerjan: btw if you want a certain response just /msg me it, i'm all for manufacturing good irc
23:21:38 <oerjan> HOW COULD YOU DO SUCH A THING
23:22:25 <elliott_> irc corp: manufacturing good irc for you and babies
23:22:45 <oerjan> how much for the babies
23:23:06 <oerjan> and is ketchup included
23:24:10 <elliott_> no
23:24:15 <elliott_> Gregor: http://codu.org/davidslowed/
23:24:16 <elliott_> remember this
23:24:17 <olsner> how are they prepared?
23:24:25 <olsner> boiled, grilled, smoked?
23:24:28 <CakeProphet> `quote
23:24:29 <HackEgo> ​125) <fax> okay I see it now, quines do exist
23:24:40 <olsner> pickled?
23:24:55 <CakeProphet> olsner: that only works in Python.
23:25:15 <CakeProphet> and I've never heard of any of those other serialization methods.
23:25:17 <olsner> "Python: It pickles babies"
23:25:44 <elliott_> `quote
23:25:45 <HackEgo> ​186) <oklofok> colon is where your ass comes from right
23:26:26 * elliott_ thinks myndzi is an elliottf
23:26:26 * myndzi thinks elliott_ is an elliottf
23:26:28 <elliott_> aww
23:26:48 -!- elliott_ has changed nick to fgh1.
23:26:57 * fgh1 * myndzi * fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f
23:26:58 * myndzi thinks elliott_ * fgh1 * fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f fgh1f
23:27:00 -!- fgh1 has changed nick to elliott.
23:27:02 <elliott> darn, it was fixed :)
23:27:06 <Gregor> elliott: Yes, I remember that :P
23:27:12 -!- elliott has quit (Changing host).
23:27:12 -!- elliott has joined.
23:27:45 <oerjan> !underload ((<fax> okay I see it now, quines do exist)!a(:^)*S):^
23:27:46 <EgoBot> ​((<fax> okay I see it now, quines do exist)!a(:^)*S):^
23:29:00 <CakeProphet> wicked point in quine-space, brocephus.
23:29:46 <olsner> if the universe is a quine, what are the cosmological implications? discuss!
23:29:56 <elliott> olsner: whoaaaaaaaaaaa maaaaaaaan
23:30:02 <elliott> im so HIGH on these DRUGS you are TELLING ME.......
23:30:08 <Gregor> What was that collection if hugely-optimized intrinsics like memset for various archs?
23:30:18 <elliott> Gregor: Superoptimised stuff?
23:30:24 <elliott> I think there's a paper with a metric fuckton of them
23:30:35 <elliott> Superoptimisation: provably optimal code generation using answer ...
23:30:35 <elliott> by T Crick - 2009 - Related articles
23:30:35 <elliott> Superoptimisation: provably optimal code generation using answer set ...
23:30:35 <elliott> opus.bath.ac.uk/20352/ - Cached
23:30:36 <elliott> Stuff like that
23:30:42 <elliott> I forget the exact term
23:31:01 <Gregor> All I want is the fastest one-instruction x86_64 memset given that I always have a number of word-size things to zero.
23:31:14 <elliott> One-instruction?
23:31:20 <Gregor> I don't know why I wrote that :P
23:31:22 <elliott> The one-instruction memsets are ... slow :P
23:31:23 <Gregor> Fastest is what's important :P
23:31:35 <olsner> obviously that'd be "call memset"
23:31:53 <elliott> Gregor: If you want one-instruction, "rep movsdw" or whatever the ATandT mnemonic is would do.
23:31:59 <elliott> ISTR that kind of stuff is pretty slow nowadays, though.
23:32:28 <Gregor> olsner: while (ptrs--) *ptr++ = NULL; is currently behaving reliably faster than memset.
23:32:39 <elliott> glibc memset?
23:32:41 <elliott> lulz
23:32:48 <elliott> " BTW the AMD manual for K7 (or might be K6 optimisation manual? don't
23:32:48 <elliott> exactly remember) goes into great detail about both memcpy() and
23:32:48 <elliott> memset(). Turns out there's about five different cases.
23:32:50 <elliott> In the meantime Deewiant has told me that on 64 bit glibc memset is better and
23:32:52 <elliott> on more modern CPUs the timings are different (and on 64 bit my first version
23:32:54 <elliott> may not work, maybe the second one is better. I have not tested it on 64 bit
23:32:56 <elliott> LDC yet). I'm just a newbie on this stuff, while people that write the memset
23:32:58 <elliott> of 64bit glibc are expert."
23:33:00 <elliott> Somehow my Googlequest led me to the D lists.
23:33:01 <CakeProphet> dude, why don't regular expression grammars work like mine and ais523's
23:33:02 <elliott> Deewiant -- EVERYWHERE.
23:33:53 -!- azaq23 has quit (Quit: Leaving.).
23:33:58 <oerjan> CakeProphet: wat
23:34:17 <CakeProphet> if one substitition operation is a -> b, then a greedy substition is just (a -> b)*
23:34:23 <CakeProphet> it makes so much sense.
23:34:37 <elliott> that's not a grammar
23:34:51 <elliott> and you mean a global substitution
23:35:05 <CakeProphet> ... -_-
23:35:32 <elliott> what?
23:35:57 <CakeProphet> I occasionally like to talk in very loose terms. I have come to realize that is not allowed here.
23:36:16 <elliott> well, not when you're complaining :)
23:37:24 <ais523> (a=b)* isn't a global substitution in Cyclexa, but an iterated substitution
23:37:41 <elliott> Gregor: Anyway, try the REP MOV thing; http://faydoc.tripod.com/cpu/rep.htm
23:37:42 <ais523> which might or might not come to the same thing if it isn't anchored, depending on whether the search string can match the replacement
23:37:44 <ais523> I think, at least
23:37:51 <elliott> Gregor: Oh wait
23:37:52 <elliott> Gregor: memset?
23:37:56 <elliott> Gregor: Try REP STOS
23:38:00 <elliott> It might be slower, but it might not be
23:38:04 <elliott> And it's certainly tiny
23:38:11 <CakeProphet> ais523: you mean it only applies to the beginning of the string?
23:38:22 <elliott> mov ecx, LOLCOUNT
23:38:24 <CakeProphet> or? it only applies from that point onward.
23:38:25 <elliott> mov eax, LOLVALUE
23:38:28 <elliott> mov edi, LOLPOINTER
23:38:37 <elliott> rep stos [I think some qualified]
23:38:43 <elliott> That's Intel
23:38:46 <elliott> ATandT yer on your own
23:38:50 <ais523> CakeProphet: depends on if it's anchored or not
23:38:53 <olsner> mov elliott, LOLINTERNET
23:38:55 <elliott> Sixtyfour bit presumably has an obvious analogue
23:39:12 -!- Patashu has quit (Ping timeout: 240 seconds).
23:40:00 <elliott> Gregor SURE IS THANKFUL FOR ALL MY HARD WORK
23:40:05 <olsner> it does, there's a stosq that stores rax into rdi instead of eax into edi
23:41:20 <elliott> Right.
23:41:37 <olsner> *eax into rdi
23:43:13 <elliott> 17:19:07: <pikhq> So... Debian Fail.
23:43:13 <elliott> 17:19:11: <pikhq> <3 Gentoo.
23:43:21 <elliott> i shouldn't just quote silly things past pikhq_ says
23:43:25 <elliott> who else wants bad quotes of their past self
23:43:27 <elliott> NOT ME
23:43:53 <elliott> Gregor: "The MASM Forum has a lot of incredible assembly language programmers/hobbyists who have beaten this issue completely to death (have a look through The Laboratory). The results were much like Christopher's response: SSE is incredible for large, aligned, buffers, but going down you will eventually reach such a small size that a basic for loop is just as quick."
23:43:56 <elliott> Tried SSE? :P
23:43:59 <olsner> hmm, though I wonder if you can override the address size to 32-bit in long mode, never really reflected over that
23:44:40 <Gregor> elliott: A GC pool is most assuredly a large, aligned buffer.
23:44:40 <Sgeo> Is it immoral to write a non-optimizing compiler for a non-esoteric language?
23:44:43 <ais523> no
23:44:58 <ais523> there are even valid uses for such a compiler, apart from practicing compiler writing
23:45:00 <elliott> Gregor: Oh god... but if you do SSE, you'll be like fucking Vorpal, who used inline assembly just to use SSE to zero out static fungespace.
23:45:05 <ais523> people may be annoyed if they're forced to use it
23:45:24 <elliott> Gregor: Except that you're writing an advanced GC, not a Funge interpreter, so it's okay :P
23:45:32 <elliott> Gregor: You'll restrict yourself to PROCESSORS WITH SSE, though.
23:45:37 <elliott> CAN YOU BRING YOURSELF TO DO THAT
23:45:43 <elliott> YOU'LL BREAK DOS COMPATIBILITY FOR PENTIUM IIS
23:45:47 <elliott> MAKE IT AN OPTION
23:45:59 <Sgeo> I should at least do arithmatic ahead of time when possible
23:46:11 <Sgeo> Better yet: When easy to do
23:46:23 <elliott> Sgeo: look into constant folding, instruction simplification
23:47:17 <Gregor> elliott: It's probably not worthwhile, I'm just having some thoughts because right now I have to clear out things when I allocate, which is all wrong >_>
23:47:36 <elliott> Gregor: You realise SSE is not very hard :P
23:47:43 <elliott> Gregor: Is this part of giving memory back to the OS?
23:48:26 <Sgeo> Wow, "instruction simplification" is hard to find on Wikipedia and google
23:48:54 <elliott> i think Deewiant told me that :)
23:48:59 <elliott> basically x+0 -> x isn't technically constant folding
23:49:11 <Gregor> elliott: Nothing to do with giving memory back, no.
23:49:16 <Gregor> That's not actually a good idea ;P
23:49:27 <elliott> Gregor: But you said you were gonna do it :P
23:49:34 <Gregor> I lie *shrugs*
23:49:47 <elliott> Gregor: I don't see why it's a bad idea though
23:49:56 <Gregor> I forgot that my pool allocator has a Windows backend too, and I'm too lazy to figure out how to do it on Windows.
23:50:50 <elliott> Heard of free()?
23:50:55 <elliott> I joke :P
23:51:00 <elliott> How do you allocate (from the OS) on Windows?
23:51:14 <Gregor> Idonno, VirtualWTFMemoryLolsy
23:51:20 <Gregor> I just decided not to look into it right now.
23:51:29 <elliott> I'LL CHECK
23:51:42 <olsner> maybe you could just malloc, that might go to the other thing for large allocations?
23:51:55 <elliott> olsner: >_<
23:52:02 <elliott> There, did Gregor's job for him.
23:52:20 <elliott> 87 #if defined(USE_ALLOCATOR_MMAP)
23:52:20 <elliott> 88 munmap(ret, (char *) base - (char *) ret);
23:52:20 <elliott> 89 munmap((void *) ((char *) base + sz), sz - ((char *) base - (char *) ret));
23:52:20 <elliott> 90 #elif defined(USE_ALLOCATOR_WIN32)
23:52:20 <elliott> 91 VirtualFree(ret, (char *) base - (char *) ret, MEM_RELEASE);
23:52:21 <elliott> 92 VirtualFree((void *) ((char *) base + sz), sz - ((char *) base - (char *) ret), MEM_RELEASE);
23:52:24 <elliott> 93 #endif
23:52:27 <elliott> Gregor: You do that if it's not aligned.
23:52:32 <elliott> Gregor: You already _have_ freeing code :P
23:52:34 <olsner> but I suspect windows' malloc sucks, mallocs always suck
23:52:41 <elliott> THANK YOU COME AGAIN.
23:52:59 <elliott> Also I note that that block of code just becomes nonsensical if USE_ALLOCATOR_MALLOC is on.
23:53:06 <elliott> Because you don't handle that case at all, but still have the conditional.
23:53:44 <Gregor> elliott: Ohlol :P
23:53:52 <Gregor> *eh*, still not doing it now.
23:53:52 <olsner> crap, up too late today as well
23:53:53 <elliott> Gregor: THANK YOU COME AGAIN
23:53:57 <elliott> Oh wait I already said that.
23:53:58 <elliott> DARN
23:54:51 <olsner> and I just became so tried that I was about to reply to elliott in swedish
23:54:57 <elliott> olsner: please do so
23:55:19 <olsner> yes box, alright
23:55:25 <elliott> what
23:55:48 <olsner> box is swedish english for boss
23:55:55 <elliott> lol swedes
23:56:04 <elliott> olsner: [asterisk]swenglish
23:56:10 <olsner> in this particular phrase anyway, it's not used anywhere else
23:57:50 <olsner> meh, boring, cya next week
23:58:13 <elliott> see you trombone house
23:58:19 <elliott> : the future: the past
23:58:44 <CakeProphet> !sffedeesh Thank you come again
23:58:44 <EgoBot> ​Thoooonk yoooouuuu coooome-a-a-a-a igeeee-a-a
23:58:52 <elliott> igeeee-a-a
2011-06-10
00:05:50 -!- Lymia has quit (Ping timeout: 240 seconds).
00:12:30 <elliott> http://linux.softpedia.com/get/Programming/Interpreters/cfunge-37128.shtml
00:30:19 -!- cheater3 has quit (Ping timeout: 252 seconds).
00:30:54 -!- augur has quit (Remote host closed the connection).
00:41:47 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:43:44 -!- FireFly has quit (Quit: swatted to death).
00:44:20 <oerjan> !swedish again
00:44:21 <EgoBot> ​egeeen
00:44:28 <oerjan> !swedish egeeen
00:44:29 <EgoBot> ​egeeee
00:44:43 <oerjan> !swedish egeeee
00:44:44 <EgoBot> ​egeeee-a
00:44:54 <oerjan> !swedish egeeee-a
00:44:54 <EgoBot> ​egeeee-a-a
00:45:04 <oerjan> !swedish come again
00:45:04 <EgoBot> ​cume-a egeeen
00:45:17 <oerjan> !swedish cume-a egeeen
00:45:18 <EgoBot> ​coome-a-a igeeee
00:45:44 -!- foocraft has joined.
00:49:03 <CakeProphet> My yow.lines apparently only has the cabbage-brain quote.
00:51:28 -!- ralc has quit (Quit: Leaving).
01:12:34 <CakeProphet> hmmm, now the question is
01:12:55 <CakeProphet> how do I support programmer-defined prefix, postfix, infix, ternary, and circumfix operators...
01:12:59 <CakeProphet> without it being a huge mess.
01:13:53 <elliott> hmm, should I use harpy or generate nasm code myself
01:14:00 <elliott> CakeProphet: agda mixfix
01:15:58 -!- hagb4rd has quit (Quit: hagb4rd).
01:18:36 <elliott> The function fac is not really our wanted factorial function. Instead
01:18:36 <elliott> it is a monadic command that, when executed, writes assembler code
01:18:36 <elliott> into a buffer. To ensure, that this buffer is always large enough to hold
01:18:36 <elliott> the generated instruction, you have to sprinkle your code with calls to
01:18:36 <elliott> ensureBufferSize. In line 7 we make sure that 160 bytes are available,
01:18:37 <elliott> which is enough for our 10 instructions. As a rule of thumb, no instruction
01:18:38 <elliott> can be larger than 16 bytes, so the number of assembler instructions times
01:18:40 <elliott> 16 is a safe upper bound.
01:18:42 <elliott> BARF
01:23:56 <elliott> hey olsner
01:24:02 <elliott> if I want to push a structure to the stack
01:24:06 <elliott> do I push the first field first or last
01:24:11 * elliott is not so smrt
01:24:48 <oerjan> aka "is the stack growing upwards or downwards"?
01:25:21 <oerjan> oh and what about alignment
01:25:40 <elliott> oerjan: on xeightsix
01:25:44 <elliott> and alignment dfjsodfj
01:25:49 <elliott> well it's a dword and a byte
01:25:55 <elliott> i can make that two dwords if necessary
01:25:59 <elliott> (dword = thirty two bits, i.e. machine word here)
01:26:12 <oerjan> (note: i don't actually know any specific answers)
01:26:58 <elliott> :D
01:30:11 <oklopol> i know some specific answers
01:31:00 <oerjan> *GASP*
01:31:25 <oklopol> "<oklofok> colon is where your ass comes from right" <<< what :D have i said this :DS
01:31:34 <elliott> yes :D
01:32:51 <Vorpal> <olsner> and I just became so tried that I was about to reply to elliott in swedish
01:32:51 <Vorpal> <elliott> olsner: please do so
01:32:54 <Vorpal> what if I do that
01:33:36 <elliott> no i hate you i want olsner to do it :(
01:33:59 <Vorpal> elliott, aha, jag förstår
01:34:05 <oklopol> elliott: du r en svansnyckel
01:34:15 <Vorpal> oklopol, en vad för något?
01:34:20 <Vorpal> oklopol, "tail key"?
01:34:22 <Vorpal> wtf is that
01:34:24 <oklopol> svansnyckel
01:34:30 <Vorpal> oklopol, what on earth is that
01:34:31 <oklopol> ...
01:34:35 <oklopol> you just said it
01:34:45 <Vorpal> oklopol, then what does a tail key do
01:34:51 <Vorpal> I just translated the compound word
01:34:57 <Vorpal> I have no idea what a tail key IS
01:35:01 <oklopol> erm, obviously that depends on the data structure
01:35:20 <Vorpal> oklopol, oh, I was imagining something like an hexkey, like you get with IKEA stuff
01:35:38 <Vorpal> :D
01:35:38 <oklopol> nej, bara en svansnyckel.
01:35:54 <Vorpal> okej
01:36:00 <oklopol> okej dokej
01:36:05 <oklopol> as they say in sweden
01:36:15 <Vorpal> hm
01:36:32 <Vorpal> Jag tror det är ute liksom
01:37:44 <elliott> A theory about Rose from a CS perspective (self.homestuck)
01:37:45 <elliott> posts that can not be good dot txt
01:38:03 <oklopol> so um half of thursdays lectures were time travel stuff
01:38:15 <elliott> oklopol: HAHAHA
01:38:41 <oerjan> a rose by any other name would still be NP-complete
01:39:01 <oklopol> and *not* within a formal model. *shiver*
01:39:36 <oklopol> thought experiments and shit
01:40:13 <oerjan> timey-wimey braided algebras
01:40:52 <oklopol> and everyone found it really funny when the lecturer presented his examples of weird ways time travel would work because they were sooo crazy. and i was like oh god, did i just teleport into some kind of monkey kindergarten.
01:41:01 <oerjan> *braided hopf algebras
01:41:39 <oklopol> i wish i had the balls i had in high school when i'd just start laughing and walk out when things got stupid
01:42:44 <oklopol> Vorpal: oh btw i totally don't get "<Vorpal> Jag tror det är ute liksom"
01:43:29 <Vorpal> oklopol, that means that I think "okej dokej" is slang that is no longer in fashion
01:44:12 <oklopol> erm "ute" as in english "out (of fashion)"?
01:44:13 <pikhq_> ... "okej dokej"? Is that in *any* way similar to the apparent cognate in English?
01:44:27 <oklopol> pikhq_: in *very* way similar.
01:45:51 <oklopol> elliott: granted, i didn't actually understand half of the time travel stuff they said so it might have made sense. everything i did understand was retarded at least tho. :D
01:47:01 <pikhq_> oklopol: Most discussions of time travel are.
01:47:22 <elliott> ill discuss
01:47:22 <elliott> YOUR
01:47:23 <elliott> time
01:47:24 <elliott> travle
01:47:25 <elliott> s
01:48:17 <pikhq_> It's one of those things that generally gets handwaved because people really don't want to contemplate the (il)logic of it all.
01:48:22 <oklopol> pikhq_: but it's an INTERNATIONAL CONFERENCE, and we all know people who talk in those must be p smart right? at least wolfram didn't come.... :DSDS
01:48:47 <oklopol> that would've been just... awesome
01:51:49 <oklopol> half the time the time travel model is one where a consistent universe essentially seems impossible if it supports any nontrivial agent-like behavior (because certainly one agent will want to destroy it using a retarded paradox), the other half seems to actually assume an implicit extra time axis and moving in time is still moving forward on this axis, you are just given a copy of past contents of the world.
01:52:02 <oklopol> aaaand i just said something trivial and retarded about tt
01:52:11 <oklopol> luckily it's so long you can't quote it
01:52:33 <elliott> `addquote <oklopol> half the time the time travel model is one where a consistent universe essentially seems impossible if it supports any nontrivial agent-like behavior (because certainly one agent will want to destroy it using a retarded paradox), the other half seems to actually assume an implicit extra time axis and moving in time is still moving forward on this axis, you are just given a copy of past contents of the world.
01:52:34 <HackEgo> ​448) <oklopol> half the time the time travel model is one where a consistent universe essentially seems impossible if it supports any nontrivial agent-like behavior (because certainly one agent will want to destroy it using a retarded paradox), the other half seems to actually assume an implicit extra time axis and moving in
01:52:36 <elliott> try me bitch
01:52:38 <oklopol> HAH
01:52:44 <elliott> its in the file dude
01:52:46 <elliott> its in the file
01:52:50 <elliott> `pastequotes time travel
01:52:51 <HackEgo> ​http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5048
01:53:04 <pikhq_> :D
01:53:44 <oklopol> elliott: are you sure it will be apparent why that was quoted in the first place :D
01:53:54 <elliott> oklopol: who cares :)
01:54:03 <oklopol> good point :P
01:56:04 <oklopol> i kind of want to buy domino tiles and build a half-adder, but there's the slight problem that you can only try it on one input and then it's gone :\
01:56:24 <elliott> oklopol: make a self-resetting domino computer
01:56:28 <elliott> using like
01:56:30 <elliott> vacuum dominoes
01:56:31 <elliott> to un-fall
01:57:06 <oklopol> vacuum dominoes huh
01:57:09 <elliott> yeah
01:57:32 <oklopol> what i want is some sort of global "plz get up again lol" button
01:57:59 <oklopol> your idea is pressing it pumps the dominoes full of vacuum so that air pressure lifts them in the air or something?
01:58:43 <elliott> oklopol: like, a domino that, when it falls, pushes a gust of air in front of it
01:58:49 <elliott> so that a fallen domino in front of it will upright itself
01:58:50 <elliott> and um
01:58:51 <oerjan> hm... dominoes with resettable springs
01:58:58 <elliott> you just need a bunch of them lined up next to all your real dominoes
01:58:59 <elliott> yeah
01:59:00 <elliott> and a trigger
01:59:26 <oklopol> but they can't just rise right away, the implementation of all nontrivial behaviors *relies* on dominoes falling just once
01:59:40 <elliott> oklopol: thus the trigger
01:59:42 <oklopol> at least the way that psychologist dude did it
01:59:50 <elliott> when you need to reset, you make it flip over the trigger
01:59:55 <elliott> which then runs down a line of vacuum dominoes
02:00:41 <oklopol> "<elliott> you just need a bunch of them lined up next to all your real dominoes" <<< so to lift up my dominoes, i build another identical arrangement next to the fallen one?
02:01:43 <oerjan> I SEE NO PROBLEM WITH THAT PLAN
02:02:07 <elliott> oklopol: yes
02:02:15 <elliott> um wait what?
02:02:21 <elliott> no, the vacuum dominoes next to them /lift up/ the dominoes
02:02:23 <elliott> thus resetting them
02:02:29 <oklopol> yeah, while falling themselves
02:02:44 <elliott> oklopol: oh
02:02:46 <oklopol> but that's not really a problem since you can just use another layer of vacuum dominoes
02:02:47 <elliott> well they push down too
02:02:55 <elliott> oklopol: no wait, have another type of domino
02:03:01 <elliott> when it's pushed down, it blows air to the side of it
02:03:06 <elliott> then, just use them as your normal dominoes
02:03:11 <elliott> erm
02:03:12 <elliott> when it's pushed up
02:03:17 <elliott> and they'll prop up the vacuum dominoes as soon as they're used
02:03:18 <elliott> :D
02:03:29 <oklopol> so am i to understand vacuum dominoes pass a signal along the arrangement, while not losing potential energy in the process?
02:03:33 <elliott> yes.
02:03:37 <oklopol> ah
02:03:41 <elliott> also they use time travel
02:03:49 <CakeProphet> elliott: ew, underscores.
02:03:53 <elliott> effectively they teleport all the dominoes back in time to when they were all up.
02:03:55 <elliott> understand now?
02:04:06 <elliott> CakeProphet: got no asterisk key fucker
02:04:08 <oklopol> yes
02:04:53 <elliott> oklopol: oerjan's spring idea is better :P
02:05:05 <elliott> just need a trigger for the springs that is weak enough to be pushed by a domino
02:05:11 <elliott> and then um, acts as a spring itself
02:05:24 <elliott> wait
02:05:27 <elliott> ELECTROMAGNETS
02:05:33 <elliott> there are little platforms for all the dominoes
02:05:34 <oklopol> actually for a while yesterday i seriously did try to come up with a domino tile that would fall, and then automatically rise up after falling
02:05:35 <elliott> that are magnets
02:05:38 <elliott> and there's a button
02:05:41 <elliott> that when a domino falls on it
02:05:49 <elliott> turns on all the electromagnets for like half a second
02:05:52 <oklopol> then i realized there's this thing called physics
02:05:53 <elliott> snapping all the dominoes back into place
02:05:58 <elliott> because the bottom of them is magnetic
02:06:00 <elliott> best idea????
02:06:32 <oklopol> yesssss
02:06:57 <elliott> i'd replace my computer with one made out of those
02:07:49 <oklopol> anyway i have to get going, first lecture at 9 and i need to do a few iterations on my article, and do some unmentionable things which also take hours
02:08:17 <oklopol> and masturbate as well
02:10:24 <oerjan> `addquote <oklopol> anyway i have to get going, first lecture at 9 and i need to do a few iterations on my article, and do some unmentionable things which also take hours <oklopol> and masturbate as well
02:10:25 <HackEgo> ​449) <oklopol> anyway i have to get going, first lecture at 9 and i need to do a few iterations on my article, and do some unmentionable things which also take hours <oklopol> and masturbate as well
02:13:11 <CakeProphet> `quote
02:13:13 <HackEgo> ​244) <elliott> oerjan: What, can girls aim their penises better?
02:14:43 <CakeProphet> elliott: oh, I was referring to the agda mixfix stuff.
02:14:51 <elliott> CakeProphet: oh, well that's irrelevant
02:15:04 <elliott> you don't really use underscores in identifiers in haskell or agda
02:15:05 <elliott> so it's a decent choice
02:15:13 -!- elliott has left ("Leaving").
02:15:21 <CakeProphet> LAMENESS
02:15:26 -!- elliott has joined.
02:16:30 <CakeProphet> I will instead do something ridiculous.
02:17:45 <CakeProphet> I was thinking about including some kind of metasyntactic capability beyond the limited form I'm thinking of implementing.
02:17:52 <elliott> CakeProphet: how is it lame
02:17:53 <CakeProphet> but that will probably just makes things really confusing.
02:17:54 <elliott> just pick another damn character
02:17:57 <elliott> it can even be syntax like
02:18:00 <elliott> "if","then","else"
02:18:04 <elliott> so you can use every character in a name
02:18:11 <elliott> come on, the meaningful part of mixfix is how you implement it
02:18:21 <elliott> it lets you mix operators of all fixity, and also make control structures into operators
02:18:21 <CakeProphet> elliott: mainly because I don't trailing characters because they're lame. Sound reasoning, I know.
02:18:31 <CakeProphet> I will instead do something BETTER.
02:18:53 <elliott> CakeProphet: dude, read the whole paper before saying things like that
02:19:00 <elliott> this is a really well-tested way to do the shit you want
02:19:07 <elliott> all kinds of operators with a simple parser that can handle module imports properly
02:19:41 <elliott> CakeProphet: you can layer over whatever "definition" syntax you want
02:20:45 <CakeProphet> I wasn't aware there was a "whole paper".
02:21:07 <CakeProphet> but I think I just found it.
02:22:15 <elliott> i think there's more than one, even
02:22:23 <elliott> http://www.google.co.uk/url?sa=t&source=web&cd=3&ved=0CC8QFjAC&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.157.7899%26rep%3Drep1%26type%3Dpdf&ei=0X_xTa_cJMPOhAfi_Pw_&usg=AFQjCNFD2vxF9fbpvu3Fo19922FVD_qFMw&sig2=fexG0fjeemztQHd3K9x0Yw
02:22:25 <elliott> ugh
02:22:26 <elliott> stupid google
02:22:30 <elliott> that's the paper
02:22:38 <elliott> Parsing Mixfix Operators
02:22:38 <elliott> Nils Anders Danielsson1, and Ulf Norell2
02:27:06 <CakeProphet> elliott: so this paper will show me how to parse mixfixed operators without requiring ugly naming conventions?
02:27:44 <elliott> CakeProphet: THE NAMING CONVENTIONS ARE A PURELY SYNTACTIC FEATURE OF DEFINING THE OPERATORS
02:27:49 <elliott> FOR FUCK'S SAKE THAT IS LIKE THE LEAST IMPORTANT PART OF ANYTHING
02:27:59 <elliott> IT GIVES A FULL PARSING GRAMMAR >_<
02:28:06 <elliott> CakeProphet: Would you prefer I said:
02:28:13 -!- shachaf has quit (Remote host closed the connection).
02:28:27 <elliott> CakeProphet: No, the theorems used in the quasimodular parsing definition require on the exact ASCII string used, which must have embedded underscore characters in it.
02:28:30 <elliott> Otherwise it is mathematically inconsistent.
02:28:45 <CakeProphet> no that is the opposite of what I prefer. :)
02:30:29 <elliott> CakeProphet: Anyway, the only time you EVER have trailing characters is in prefix situations.
02:30:41 <elliott> if/then/else is affected; if/then/else/end is not.
02:30:51 <elliott> And you can easily form the actual list of holes however you want in your actual language.
02:41:16 <CakeProphet> There will be no holes in my language as that will produce memory leaks.
02:41:45 <CakeProphet> Any holes that are found will be patched accordingly.
02:44:38 <CakeProphet> What does a compiled Perl regex consist of?
02:44:59 <pikhq_> Y'know, automake really could do with a means of having per-directory Makefile.am files *without* producing recursive make.
02:45:30 <elliott> CakeProphet: bytecode
02:45:44 -!- augur has joined.
02:45:45 <elliott> CakeProphet: Reading http://perl.plover.com/Rx/ is quite elucidating
02:47:41 <CakeProphet> as in the source code right? The actual English is rather sparse and not helpful..
02:48:37 <elliott> CakeProphet: Uh, wait.
02:48:39 <elliott> CakeProphet: http://perl.plover.com/Rx/paper/
02:48:47 <elliott> Read this and you'll understand everything.
02:48:53 <elliott> Or at least some things.
02:49:59 <CakeProphet> whut, regex debugger? unfathomable.
02:50:30 <elliott> Hardly; Rx works well (I've never used it, but it reportedly does)
02:50:38 <elliott> And "Rx formed the basis for the regex debugger component of ActiveState's ASPN Komodo IDE. (Whether it still does, I can't say.)"
02:50:53 <elliott> Anyway, just read it, it's interesting and helpful for understanding Perl regex internals :P
02:53:04 <CakeProphet> I will definitely read it because it will help me in writing an efficient regular expression engine.
02:53:15 <elliott> It... won't.
02:53:23 <elliott> But it'll help you understand Perl's.
02:53:30 <elliott> CakeProphet: But really, you should just use PCRE :-p
02:53:44 <CakeProphet> uh, why?
02:54:07 <elliott> Because it can do just about every fancy thing Perl can, and is fast, neither of which you'll be able to say about yours unless you work on it for literal years :P
02:54:14 <elliott> Plus everyone knows PCRE syntax.
02:54:18 <elliott> Or wait.
02:54:22 <elliott> Is this your fancy super-regexp thing?
02:54:31 <elliott> Because those aren't regexps, dude, they're a programming language inspired by regexps.
02:55:21 -!- augur has quit (Remote host closed the connection).
02:56:49 <CakeProphet> elliott: yes I know.
02:57:21 <CakeProphet> which is why learning about how regexps are handled internally by other programs will be helpful.
02:59:27 <elliott> "The logo of Lulz Security suggests the group does not take what it does too seriously" --BBC News
03:00:32 <pikhq_> Doesn't the name alone do that?
03:01:50 -!- Vorpal has quit (Ping timeout: 268 seconds).
03:02:37 <CakeProphet> elliott: quiet with that nationalist dogma.
03:03:23 <CakeProphet> I only accept the sensationalism of American television news sources.
03:08:07 -!- augur has joined.
03:13:06 <pikhq_> "Barack Hussein Commubama is going to rape your puppies and build the Twin Towers again just to bomb them!" --Fox News
03:13:09 <pikhq_> Better?
03:13:36 <pikhq_> Actually, make that "Führer Hussein Commubama".
03:15:37 <CakeProphet> ahhh, familiarity.
03:17:14 <CakeProphet> hmmm, so currently every expression produces a "result string" which is used in computations and side-effect operations.
03:17:29 <CakeProphet> Perhaps there should be a "result number" as well, to be used in numeric contexts.
03:21:06 <CakeProphet> before, the plan was to handle numbers as Perl does. Where the string "0" is treated as 0 when used in a numeric operation, but having a numeric result would allow operations to return both a capture string as well as number that signified something. a -> b would return a 1 if successful, and a 0 if not. * would return the summation of the numeric results of its operand. Thus (a -> b)* would return the number of successf
03:21:57 <CakeProphet> (a->b)+ would do the same, but fail if there were no substitions.
03:23:33 <CakeProphet> and the string result would be a concatenation of the replaced strings, which is probably less useful.
03:24:25 <Gregor> http://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/Push_002fPop-Macro-Pragmas.html#Push_002fPop-Macro-Pragmas // is CPP + this TC?
03:24:54 <elliott> No.
03:25:01 <elliott> cpp computation does not involve new defines at all.
03:25:06 <elliott> You can't loop those in any way, so yah.
03:25:29 <elliott> Apparently chaos-pp just uses "exponential expansion" or something btw, and so may not actually be TC
03:25:31 <elliott> Dunno about order-pp
03:25:36 <elliott> I can buy that it's not TC though
03:26:11 <CakeProphet> hmmm... I need like... four different quote types.
03:26:30 <CakeProphet> ``, "", '', <>... done :)
03:26:32 <HackEgo> No output.
03:31:47 <pikhq_> Unless you need it to nest.
03:32:10 <pikhq_> []{}()<> done.
03:32:45 -!- copumpkin has quit (Ping timeout: 240 seconds).
03:34:13 <CakeProphet> Actually I narrowed it down to two quote types again.
03:34:33 <monqy> why do you need so many quote types
03:34:39 <monqy> what's a quote type
03:34:48 -!- foocraft has quit (Quit: Leaving).
03:35:01 <CakeProphet> the problem was that both " and ' literals attempt matching on the input string, but there would be situations where you only want to use them for their string result and ignore any kind of matching behavior. But placing another operator before the quote fixes that.
03:36:38 -!- shachaf has joined.
03:38:44 <CakeProphet> well, currently " performs interpolation of \ sequences, and ' produces a literal string. I could have interpolation on by default since it's not a huge deal, and have " being the matching literal and ' be the zero-width literal.
03:39:27 <CakeProphet> open_file 'foobar.txt' #example, you don't want 'foobar.txt' to attempt a match on the input string.
03:40:17 <elliott> cyclexa is cooler it has antitext
03:40:44 <CakeProphet> token:="foobar.txt"; token(token",")* #here, this is exactly what you want to happen.
03:42:21 <CakeProphet> elliott: I was actually thinking of "borrowing" (read: stealing) the antitext operator, but I don't really know why it would be useful in my case.
03:43:10 <elliott> that's just a sign that your version is boring >:)
03:43:46 <CakeProphet> yeah I'm not really going esoteric at this point.
03:44:01 <CakeProphet> it will be esoteric in that it's a somewhat sensible regular expression language.
03:46:13 <CakeProphet> The ; is somewhat clever. It's syntactic sugar that basically encloses everything before it up to the beginning of the line or the preceding ; on the same line in parentheses
03:46:22 <CakeProphet> a;b;c = (a)(b)c
03:48:16 -!- variable has quit (Remote host closed the connection).
03:48:58 -!- variable has joined.
03:49:02 <oklopol> your mom is clever
03:52:25 <elliott> Abelson: Well, I was a new graduate student. I said, “What the hell, I’m never going to get a chance to go sit in the president’s office.” So I wandered around to the president’s office and there were a whole bunch of people from Students for a Democratic Society sitting around on the floor. One of the people who was sitting around on the floor was somebody who I’d gone to high school with.
03:52:25 <elliott> And I said, “I’m a new graduate student. I’m looking for a job. What’s a good place to go work?” And he said, “Well, why don’t you go over to the Artificial Intelligence Laboratory. They do good things.” So I wandered around there for a little bit and talked to people, and that’s pretty much how I got started.
03:52:45 -!- Sgeo has quit (Ping timeout: 255 seconds).
03:53:10 -!- Sgeo has joined.
03:53:18 <pikhq_> What a pile of improbable circumstances.
03:56:58 <CakeProphet> digit := [0-9]; number := digit+("."digit+)?; capturedvalue = parsenum number #note that this is where the actual matching occurs; capturedvalue = 1 <+> capturedvalue #not sure what the numeric operators should look like, or why I'm incrementing this number
04:00:48 -!- pikhq has joined.
04:01:02 -!- pikhq_ has quit (Ping timeout: 268 seconds).
04:19:14 <elliott> https://github.com/github/dmca/blob/master/2011-06-07-sony.markdown sony sure are dedicated
04:19:26 <elliott> https://github.com/SonyPS3/scedev haha, they didn't even remove it, just disabled it
04:20:00 <pikhq> "and promptly disclose to SCEA the identities and contact information corresponding to the account owners and/or users of your hosting services who posted the content identified herein."
04:20:11 <pikhq> They seem to not understand how a DMCA request works.
04:20:33 <pikhq> It's not a subpoena.
04:40:57 -!- oerjan has quit (Quit: Good night).
04:43:16 <coppro> pikhq: I bet they understand
04:43:51 <pikhq> Never underestimate someone's stupidity.
04:44:50 <elliott> coppro: are you sure? one of the GitHub dmca notices specifies that they should use a /USENET cancellation notice/ to delete both github repositories and a file hosted on a generic file hosting service unrelated to github
04:45:47 <coppro> I think it's more likely they attempt to prey on the weak
04:46:19 <coppro> Content owners know that lots of sites will listen to takedown notices for all sorts of things that aren't copyright-infringing
04:46:40 <elliott> they published a counternotice, which is cool: https://github.com/github/dmca/blob/master/2011-02-03-sony-counternotice.markdown
04:46:44 <coppro> or, more plainly, try harder than is necessary to cover their own assess
04:46:47 <coppro> *asses
04:46:53 <elliott> http://help.github.com/dmca-takedown/ here is github's actual policy
04:47:24 <elliott> it's been more than ten days though
04:47:27 <elliott> so I guess Sony replied
04:48:25 <coppro> indeed
04:48:59 <elliott> it's plainly obvious that the repos don't actually violate Sony's copyright
04:49:16 <elliott> unfortunately, no company would set the policy "we'll honour dmca notices, unless we think they're wrong" :)
04:54:51 -!- Kustas has joined.
05:06:26 <coppro> elliott: They'll follow the law
05:06:38 <coppro> there are plenty of companies that will say "you're misapplying the law"
05:07:03 <coppro> elliott: Also, bear in mind that it's not actual copyright her
05:07:04 <coppro> *here
05:07:08 <coppro> it's circumvention tools
05:07:11 <coppro> which are covered also
05:07:23 <coppro> I think Sony is actually in the right, from a legal perspective
05:07:36 <elliott> unfortunately
05:07:47 <coppro> indeedy
05:07:53 <pikhq> *Legally*, they can actually request a DMCA takedown and have it complied with in this case, yeah.
05:08:01 <coppro> elliott: have you read the paper about optimal copyright term, by chance?
05:08:03 <pikhq> They just overstepped on it.
05:08:11 <pikhq> coppro: How many months is it?
05:08:16 <elliott> coppro: no, but i don't feel like doing so
05:08:27 <coppro> pikhq: He gives a set of variables that it would depend on
05:08:29 <elliott> discussions about copyright just make me slit my throat and drain all my blood out
05:08:38 <elliott> i don't even have an inkling of care left
05:08:48 <pikhq> elliott: How very cynical of you.
05:08:55 <pikhq> elliott: You should do that to lawyers.
05:09:04 <elliott> or i might just be tired
05:09:10 <elliott> WE'LL FIND OUT TOMORROW!!!!!!!
05:09:32 <coppro> pikhq: he sets generous ranges of values; within those ranges, the median is 15ish years
05:10:28 <pikhq> coppro: So, what you mean is that we had it right in the year 1800?
05:10:29 <coppro> looks like a gamma distribution
05:10:44 <coppro> pikhq: Possibly not; the societal variables can change over time
05:10:49 <coppro> but possibly yes
05:11:11 <coppro> http://rufuspollock.org/economics/papers/optimal_copyright_term.pdf
05:11:12 <pikhq> It was, uh, 17 years, I think, then.
05:11:27 <elliott> thx jerk i just clicked that now
05:11:32 <elliott> iff it snot set in latex ill close i- fuck
05:11:35 <elliott> fuuuck you
05:11:41 <elliott> oh the linespacing is way too high
05:11:42 <elliott> closed
05:14:22 <pikhq> Yeah, jeeze, was it written for some moron convinced that 1 inch margins, double spaced is how you do papers?
05:14:27 -!- Kustas has left.
05:14:41 <elliott> whine whine whine whine (im allowed im tired)
05:14:47 <CakeProphet> wow tcl is probably the worst language I've ever seen.
05:14:56 <CakeProphet> like, the worst one.
05:14:57 <elliott> CakeProphet: that's because you don't understand it
05:15:06 <CakeProphet> no I understand it just fine.
05:15:09 <elliott> it's not something i'd want to use, but it occupies a corner.
05:15:11 <elliott> no, you don't.
05:15:21 <pikhq> You almost certainly don't.
05:15:27 <elliott> CakeProphet: you should _really_ read http://antirez.com/articoli/tclmisunderstood.html
05:15:37 <elliott> you don't have to like tcl, but it's something to respect
05:16:10 <elliott> (and http://antirez.com/page/picol.html is an interesting followup (only a followup, don't read it before) in that it shows that tcl is as minimal as Lisp)
05:16:39 <pikhq> Interesting. Its summation of concepts is a longer version of the dodecalogue.
05:17:27 <pikhq> AKA "the semantics of Tcl, in a short man page".
05:17:27 <elliott> CakeProphet: basically: lisp : lists :: tcl : strings, except that tcl actually builds data structures out of strings (a list is just a certain type of string; tcl code is a list (therefore a string), {} is just an uninterpolated string literal)
05:17:31 <elliott> CakeProphet: but really: read http://antirez.com/articoli/tclmisunderstood.html.
05:19:07 <pikhq> I shall note here that PEBBLE is Tcl with a different command set.
05:19:17 <CakeProphet> elliott: yeah, so I read that, and I'm pretty sure tcl is still a bad language.
05:19:29 <elliott> CakeProphet: whoops: look at that, you didn't read it, you at most skimmed it.
05:19:40 <CakeProphet> I did skip the things I already knew
05:19:44 <CakeProphet> which is, most of the first half.
05:19:44 <elliott> i know this because i have read it multiple times and you did it about ten times as fast as anyone can humanly read that and actually understand it.
05:19:47 <elliott> CakeProphet: hahahahaha
05:19:53 <elliott> CakeProphet: yes, obviously it is merely a collection of facts
05:20:05 <elliott> obviously you can go ahead and ignore the bits you already "know" because it is not trying to make any sort of point
05:20:26 <elliott> oh, whatever, you're an idiot, i'm grumpy, and i should go to bed. no wait i'll turn over to the plof tab and mock Gregor for being the worst gc coder evarrr
05:21:15 <CakeProphet> I don't need someone to make points for me. I skipped most of the section explaining the language itself because I already knew how the language worked, and can derive my own opinions on that.
05:21:22 <pikhq> I doubt you do.
05:21:31 <elliott> CakeProphet: ok, so
05:21:34 <pikhq> The language itself is much more subtle than you think.
05:21:34 <elliott> I HATE PERL
05:21:36 <elliott> <cakeprophet> hey
05:21:41 <elliott> <cakeprophet> this language goes through perl's features in a different way to normal
05:21:44 <elliott> <cakeprophet> and i think makes the case for perl
05:21:50 <elliott> I SKIPPED ALL THAT I KNOW HOW LISTS WORK LOL
05:21:51 <elliott> PERL STILL SUCKS
05:21:59 <elliott> <cakeprophet> um if you read it properly you might think differently
05:22:07 <CakeProphet> I didn't mention Perl at all.
05:22:07 <elliott> I DONT NEED U IM PUNK I CAN THINK FORE MYSELF
05:22:19 <elliott> it's an example of a language i know you like
05:22:31 <CakeProphet> right, which doesn't suck. There's the key difference.
05:22:36 <elliott> but, you have clearly made the foregone conclusion that tcl sucks
05:22:41 <elliott> and nothing that can be presented will change your mind
05:22:44 <pikhq> CakeProphet: Okay, if you know how Tcl actually works, then tell me: what are the core bits of Tcl?
05:22:47 <elliott> because you will view it as a collection of facts
05:22:53 <elliott> and ignore them and "derive your opinions from them"
05:23:03 <elliott> so basically this is just an excuse to tell us that you hate tcl and hope we agree
05:23:04 <elliott> which
05:23:09 <elliott> is stupid from a perspective of actually wanting to learn anything
05:23:11 <elliott> or having an open mind
05:23:12 <elliott> whatever
05:23:16 <elliott> im switching the tab back again
05:23:17 <CakeProphet> pikhq: the core bits? you mean how it works internally? I have no idea. How it works: lists and commands? I don't know what you're asking.
05:23:17 <pikhq> I'll give you a hint: the entirety of Tcl is described in like 2 pages.
05:23:17 <elliott> god i need sleep
05:23:30 <elliott> no wait no im not
05:23:39 <pikhq> CakeProphet: What's the core bits of its semantics.
05:23:42 <elliott> CakeProphet: you can only understand lisp by knowing how you implement it. you can only understand forth by knowing how you implement.
05:23:51 <elliott> fill in the blanks. wait i just showed that this was completely pointless why am i talking
05:25:59 <CakeProphet> pikhq: Well tcl uses strings for about everything. But for structure it uses lists and commands (which can roughly be the same thing). Probably not what you were looking for, I don't care.
05:26:18 <CakeProphet> My main complaint is the syntax.
05:26:28 <elliott> im changing the topic to the homestuck update now
05:26:31 <elliott> hahaha hussie really went there
05:26:33 <elliott> ok go back to arguing
05:26:38 <elliott> CakeProphet: what syntax
05:26:43 <CakeProphet> tcl's syntax....
05:26:47 <elliott> its just a list of "command arg ...", that's even simpler than Haskell
05:26:56 <elliott> [x] runs x, then interpolates the result in; that's a feature of strings
05:26:57 <CakeProphet> I did say "the syntax is not simple"
05:26:59 <CakeProphet> I said I don't like it.
05:27:04 <elliott> "x" and {x} are the same
05:27:05 <CakeProphet> *didn't
05:27:09 <elliott> just the latter doesn't interpolate
05:27:13 <elliott> CakeProphet: but there /is/ no syntax
05:27:25 <pikhq> It's at least as syntaxless as Lisp.
05:27:28 <CakeProphet> there is. You just described it.
05:27:36 <elliott> yeah, but its practically nonexistent
05:27:38 <elliott> lets put it this way
05:27:43 <elliott> Tcl has less syntax than /Perl string literals/
05:27:48 <elliott> and, since Tcl is basically one big string literal
05:27:49 <CakeProphet> ....okay?
05:27:52 <elliott> that's actually meaningful
05:28:23 <pikhq> elliott: I think he might be *objecting* to simple syntax.
05:28:24 <CakeProphet> this has nothing to do with the fact that I still don't like tcl's syntax. You are wasting your time by trying to demonstrate how simple or nonexistent it is.
05:28:34 <pikhq> CakeProphet: What don't you like about it?
05:28:59 <elliott> can i just sit here and quietly lol at someone who likes perl complaining about superficial syntax details
05:28:59 <CakeProphet> The lack of it, yes.
05:29:01 <elliott> tee hee hee hee
05:29:05 <elliott> hee hee hee
05:29:06 <elliott> tee hee hee
05:29:08 <elliott> hee hee hee hee
05:29:11 <elliott> hee hee hee
05:29:13 <elliott> hee
05:29:17 <pikhq> Wait, you like Perl?
05:29:20 <CakeProphet> yes.
05:29:31 <CakeProphet> and a number of other languages.
05:29:46 <Sgeo> elliott, is Hussie working on EOA5?
05:29:52 <pikhq> The least aesthetic language?
05:29:52 <Sgeo> I should be asleep right now
05:30:01 <elliott> Sgeo: i dont know let me get out my psychic goggles
05:30:05 <CakeProphet> Haskell, bash, Python is kind of okay but I'm starting to like it less. C is fine but slightly fucked up.
05:30:06 <elliott> Sgeo: have you seen the update anyway
05:30:11 <Sgeo> No, just noticed it now
05:30:14 <Sgeo> Reading now
05:30:15 <elliott> "Haskell, bash" worst way to start a list
05:30:19 <pikhq> *pfft*
05:30:22 <pikhq> You *like* shell.
05:30:22 <elliott> unless its like
05:30:28 <elliott> an alternating list of good things and bad things
05:30:32 <CakeProphet> ..no.
05:30:55 <pikhq> I can see why you dislike Tcl, at least.
05:31:00 <pikhq> You have no taste.
05:31:18 <CakeProphet> taste is subjective. So, sure.
05:31:42 <elliott> ATTN EVERY DINOSAUR COMIC FANS
05:31:43 <elliott> http://local-static4.forum-files.fobby.net/forum_attachments/0027/5004/DinosaurComicsTheme.mp3
05:31:48 <elliott> pikhq: Gregor: all good people:
05:31:56 <pikhq> About the best that can be said for Perl and bash is that you can get shit done with them.
05:32:09 <pikhq> Which, incidentally, is the only reason they survive.
05:32:30 <CakeProphet> pikhq: yes that is what I like about them.
05:32:43 <pikhq> You like the ugly hackishness?
05:32:51 <CakeProphet> ..yes, it's convenient.
05:32:59 <elliott> pikhq: you are doing something that isn't listening to the dinosaur comics theme
05:33:01 <CakeProphet> and actually Perl isn't that ugly.
05:33:01 <elliott> cease
05:33:09 <CakeProphet> people can make it ugly, sure.
05:33:24 <pikhq> Sigels are inherently ugly.
05:33:31 <elliott> cease
05:33:31 <coppro> sigils?
05:33:33 <CakeProphet> honestly I don't see "oh no there's symbols everywhere" as ugly.
05:33:35 <pikhq> Sigils, rather.
05:33:57 <CakeProphet> tcl in my opinion is ugly.
05:34:35 <pikhq> You are everything that is wrong with computers. We're done.
05:34:51 <elliott> pikhq: listen to the fucking dinosaur comics theme or die a horrible death
05:35:02 <coppro> pikhq: on tesla coil
05:35:03 <CakeProphet> I like two different qualities in languages. a) it is useful and easy to get shit done with b) it's pure or elegant. tcl is neither of those.
05:35:15 <pikhq> What's not pure or elegant about Tcl?
05:35:17 <elliott> tcl is b
05:35:19 <pikhq> elliott: I don't like to stop albums halfway through.
05:35:30 <elliott> pikhq: dude this is the DINOSAUR COMICS THEME.
05:35:34 <elliott> it has RYAN NORTH'S APPROVAL HIMSELF.
05:35:35 <pikhq> elliott: It's queued.
05:35:41 <elliott> this would be worth stopping CHILDBIRTH for, pikhq.
05:35:55 <elliott> i would abandon my currently-being-born baby to listen to this.
05:37:06 <CakeProphet> pikhq: I find it amazing that you can say that I'm "everything that is wrong with computers" from such a minor difference in opinion about programming languages.
05:37:35 <elliott> hash esoteric always one hundred percent and literal about every statement
05:38:23 <pikhq> Yup. We are never over the top or exaggerated. Only perfectly literal about every statement.
05:38:50 <elliott> its funny because if i said youre all stupid terrible idiots i would actually be being perfectly sincere :D
05:39:09 <CakeProphet> yes, more often than not things are taken literally in here.
05:39:13 <CakeProphet> not always.
05:39:14 <pikhq> BTW, picol is pretty neat.
05:39:29 <elliott> i wonder what you could actually remove from tcl, as far as minimalism goes
05:39:36 <elliott> dollar sign is obviously a relatively minor convenience
05:39:36 <pikhq> expr.
05:39:42 <elliott> i mean the core pikhq
05:39:50 <elliott> "" could go, you can just use {} and manual splicing
05:39:51 <pikhq> Oh. Dodecalogue.
05:39:59 <elliott> so basically
05:40:00 <pikhq> You could remove {*}.
05:40:07 <elliott> you have [] at top level and everything evaluated
05:40:09 <elliott> and {}
05:40:10 <pikhq> Which itself was only added in 8.5.
05:40:18 <elliott> full list of things: words, [], {}
05:40:21 <elliott> whoops it is tiny...
05:40:24 <elliott> oh you can remove global variables too
05:40:27 <elliott> just pass everything around
05:40:45 <elliott> then change {} into () and you have weirdo lisp
05:40:52 <elliott> or maybe []
05:44:16 <pikhq> CakeProphet: http://antirez.com/picol/picol.c.txt What's not elegant about this?
05:44:49 -!- mycroftiv has quit (Ping timeout: 260 seconds).
05:45:50 <CakeProphet> pikhq: that is not tcl code. That is an interpreter for tcl.
05:46:06 <pikhq> And I'd consider that a pretty much full implementation, seeing as to get an interpreter of Tcl 8.4 out of that you'd only need to implement more commands.
05:46:06 -!- mycroftiv has joined.
05:46:56 <CakeProphet> cool, so it's easy to parse.
05:47:07 <elliott> CakeProphet: everything you are saying is pointing towards tcl being something you respect or admire for its simplicity and elegance of implementation rather than actually use
05:47:22 <elliott> despite this you are only referring to these qualities in mocking terms which is just totally inconsistent if you like any other language like that
05:47:24 <elliott> which you said you did
05:48:26 <pikhq> Hmm. Actually, it's missing the semantics of unknown; you'd need a couple of lines in picolEval for that.
05:48:34 <CakeProphet> uh, not really. But yes, I do respect that it's a simple language. But that's it. I still think it sucks to actually write tcl code.
05:48:37 <elliott> and {star}
05:48:53 <elliott> CakeProphet: "I like two different qualities in languages. a) it is useful and easy to get shit done with b) it's pure or elegant."
05:48:58 <elliott> sooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
05:49:09 <pikhq> Yeah, {*} would need a little bit of work in the parser.
05:49:10 <CakeProphet> elliott: but I never specfically mentioned tcl being pure or elegant.
05:49:14 <elliott> nobody's saying you should think tcl is nice to code in, just that if you really hate it on every possible level, you probably just don't understand it at all.
05:49:17 <CakeProphet> nor do I think it's pure... or elegant. Just simple.
05:49:25 <pikhq> What's not pure or elegant about it?
05:49:35 <elliott> CakeProphet: no, but <CakeProphet> cool, so it's easy to parse. is dismissing something that is actually a - oh fuck this you're an idiot have i mentioned
05:49:39 <elliott> im going to go ask Gregor if his gc is still segfaulting
05:49:58 <pikhq> I also think it's occasionally nice to code in, but I admit, it has some rough spots.
05:50:01 <CakeProphet> pikhq: that is a difficult question to answer. :P
05:51:12 <CakeProphet> to me those words imply a kind of mathematical beauty. I think tcl lacks that.
05:51:34 <pikhq> http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm That's the whole of Tcl.
05:52:24 <pikhq> It's got a man page the size of cat's.
06:05:14 <CakeProphet> at least when you guys bash Perl, I actually know you've used it to some extent.
06:05:20 <CakeProphet> I cannot say the same for others.
06:05:29 -!- Lymia has joined.
06:06:18 <pikhq> Yes, I actually have personal experience to back my opinion of the language.
06:06:36 <pikhq> Which... Actually can't be said of most critics of most languages, really.
06:07:06 <elliott> here's an idea
06:07:09 <elliott> every time you want to complain about a language
06:07:12 <elliott> make a new esolang instead
06:07:49 <pikhq> elliott: I'd probably have written the entire esolangs wiki by now.
06:08:25 <elliott> precisely
06:08:30 <CakeProphet> pikhq: I admit Perl would be horrible if you were working with someone elses horribly designed code in some kind of decently large project.
06:08:52 <CakeProphet> but that never happens for me, so that's why I like using it.
06:09:22 <CakeProphet> and the above statement is true of most languages.
06:09:28 <elliott> http://grasptheuniverse.com/random/free-fall-from-space/
06:09:30 <elliott> hacked by leet hackers
06:09:33 <elliott> $pecial Fuck 2 TuNiSian ministry of justice & defence & interior
06:09:54 <pikhq> If you're working with other people's horribly designed code, all languages suck, and we should exterminate humanity.
06:12:50 -!- ray24 has joined.
06:13:08 <elliott> ray24: where did you put the earlier raws
06:13:09 <elliott> rays
06:16:20 <Gregor> So lesse, on my laptop, which is two-core so essentially Java can't do parallel GCs, my GC is consistently faster now.
06:16:23 <Gregor> Even in the default branch.
06:16:31 <Gregor> On my home computer (4-core) it's a tossup.
06:16:36 <Gregor> And on my work machine, it wins.
06:16:40 <Gregor> (8-core there)
06:16:44 <Gregor> So ... yeah, parallel collection :P
06:17:45 <elliott> Gregor: Faster... than... Java?
06:17:54 <elliott> BRB xorg
06:17:59 -!- elliott has quit (Remote host closed the connection).
06:18:00 <pikhq> Space Gregor is a programmer from SPACE
06:18:02 <ray24> I don't know. I've been pirating everything off the internet
06:18:11 <ray24> FEels good to not pay a dime for anything!
06:18:34 -!- elliott has joined.
06:18:43 <elliott> ray24: are you trying to pirate things here
06:18:56 <ray24> I'm trying to pirate everything that I think is good
06:19:30 <elliott> do you know what this channel is about
06:19:36 <ray24> Yeah
06:19:42 <ray24> Pirate esoteric
06:19:49 <elliott> what is pirate esoteric
06:19:50 <elliott> i mean
06:19:51 <elliott> in yoru view
06:19:54 <elliott> what is pirate esoteric
06:20:02 <ray24> hehe
06:20:09 <elliott> this is an important question to ask ray24
06:20:17 <ray24> You should think about it
06:20:23 <elliott> i already know
06:20:27 <elliott> i am asking you
06:20:29 <elliott> it is something we do
06:20:35 <ray24> what if I don't know the answer
06:20:39 <elliott> guess
06:20:47 <ray24> what if I can't guess
06:20:52 <elliott> then you must leave
06:21:08 <ray24> what if I can't leave
06:21:25 <elliott> this channel is about programming btw
06:21:33 <ray24> Yeah what do you program
06:21:40 <elliott> esoteric programming languages, see http://esolangs.org/wiki/Main_Page
06:21:44 <elliott> sorry you got too boring to mislead :(
06:21:59 <ray24> how come a programming channel have less than 50 people
06:22:10 <CakeProphet> because it's esoteric.
06:22:33 <elliott> we're also really rude and horrible to newbies. well ok i am
06:22:44 <CakeProphet> we're the cool internet cabal that everyone talks about.
06:22:48 <ray24> You've been pretty nice and generous in your response
06:23:09 <elliott> yeah i dunno what is up with me
06:23:10 <elliott> i need sleep :(
06:23:22 <ray24> Maybe you're programming in the wrong language, iono
06:23:42 <elliott> who says i'm only programming in one
06:24:03 <ray24> Me
06:24:14 <elliott> ur a liar bad pirate
06:24:21 <ray24> ^_^
06:24:32 <ray24> Anyways, I got to loot more stuff
06:24:34 <elliott> so hey how did you find this place anyway
06:24:37 <ray24> Um
06:24:38 <elliott> i simply don't believe anyone actually looks at /list
06:24:51 <ray24> I just randomly load the channel list and clicked
06:25:01 <elliott> wow
06:25:03 <elliott> people actually do that
06:25:04 <elliott> ok
06:25:09 <ray24> :D
06:25:16 <elliott> have fun with your copyright infringement :P
06:25:20 <ray24> :D thanks man
06:27:07 <coppro> ray24: where are you from?
06:27:22 <CakeProphet> > cross = liftM2 (,) in cross [1..10] [1..10]
06:27:23 <lambdabot> <no location info>: parse error on input `='
06:27:28 <CakeProphet> > let cross = liftM2 (,) in cross [1..10] [1..10]
06:27:29 <ray24> southpark
06:27:29 <lambdabot> [(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(1,9),(1,10),(2,1),(2,2),(...
06:27:32 <ray24> I'm from southpar
06:27:34 <elliott> coppro: are you asking like physical location
06:27:49 <coppro> elliott: no I wanted to know if he's from DARPANET
06:27:58 <elliott> lmao
06:28:07 <elliott> ray24: total child porn pirate warez channel this
06:28:10 <elliott> let me show you the dccs
06:28:20 <elliott> coppro: * [ray24] (~ray24@adsl-70-231-243-95.dsl.snfc21.sbcglobal.net): ray24
06:28:23 <ray24> say whAt
06:28:24 <elliott> INCONTROVERTIBLE PROOF, we're safe
06:28:37 <coppro> elliott: I can't read hostnames and am lazy
06:28:47 <ray24> so why do you look up people's IP
06:28:53 <elliott> ~ray24@spying.on.you.darpa.gov
06:28:56 <elliott> ray24: its hardly looking up
06:28:57 <elliott> /whois foo
06:29:06 <elliott> gives you foo's realname field, username field, hostname
06:29:06 <ray24> what is there to gain for you?
06:29:13 <elliott> lol its a feature of irc dude
06:29:14 <coppro> ray24: I want to know where you are :D
06:29:18 <elliott> it shows channels you have in common
06:29:20 <ray24> Why do you want to know where I am
06:29:22 <elliott> what their realname is filled out to be
06:29:23 <coppro> because you're hot and I want to stalk you
06:29:32 <elliott> often i can remember someone from the wiki if i see their realname
06:29:35 <elliott> ray24: paranoid much?...
06:29:37 <elliott> your ip is public when you join irc
06:29:38 <elliott> look
06:29:43 <elliott> * ray24 (~ray24@adsl-70-231-243-95.dsl.snfc21.sbcglobal.net) has joined #esoteric
06:29:43 <ray24> well, no
06:29:47 <elliott> i saw it as soon as you entered the channel, everyone did
06:30:05 <CakeProphet> elliott: no one else cares though.
06:30:14 <elliott> CakeProphet: ray24 evidently does :D
06:30:33 <elliott> ray24: hey, how's life in san francisco?
06:30:34 <ray24> stop e-raping me
06:30:40 <elliott> ray24: behind you ;)
06:30:43 <ray24> yeah well.. I'm not in SF
06:30:45 <elliott> fuck
06:30:50 <elliott> well your ip thinks you are.
06:30:56 <ray24> so what step did you take to arrive at that answer?
06:30:59 <elliott> you're in california anyway
06:31:06 <coppro> elliott: damn, beat me to it
06:31:08 <elliott> ray24: google "geo ip" -> click first result -> paste in -> hit enter
06:31:17 <ray24> lol
06:31:17 <elliott> took like three seconds and you were freaking out so i figured it might provide some amusement
06:31:55 <pikhq> Often times you don't even really need to bother, though.
06:32:08 <ray24> It's pretty inaccurate
06:32:13 <ray24> I'm not even close to SF
06:32:19 <elliott> your isp is
06:32:19 <elliott> are you in california?
06:32:24 <ray24> maybe
06:32:25 <ray24> :P
06:32:30 <elliott> close enough :P
06:32:36 <ray24> You'll never find me
06:32:37 <ray24> :D
06:33:06 <elliott> ray24: oh, you've fallen right into our trap.
06:33:09 <elliott> admitting your rampant piracy like that.
06:33:13 <elliott> we are coming to cease your possessions.
06:33:17 <elliott> coppro: initiate operation 9terra
06:33:25 * pikhq hits the google
06:33:34 <CakeProphet> !show rot47
06:33:34 <EgoBot> ​perl $_=<>;tr/!-~/P-~!-O/;print
06:33:36 <ray24> ^_^ I keep all my pirated stuff on an external drive
06:33:37 <elliott> ray24: We will be with you within the hour.
06:33:37 <CakeProphet> activated.
06:33:38 -!- elliott has left ("xp0.FOUR/xy;initiate;procedure").
06:34:06 <pikhq> http://thetegu.com/member.php?1688-Ray24 Any relation?
06:34:15 <ray24> no lol wtf
06:34:24 <ray24> dude you guys are weird
06:34:28 -!- elliott has joined.
06:34:28 <ray24> freaks
06:34:34 <pikhq> God damned generic nicks.
06:34:40 <elliott> ray24: you'd better evacuate your wife and kids.
06:34:42 <coppro> pikhq: ow
06:34:45 <elliott> your house is about to disappear.
06:34:51 <pikhq> Why can't people be easy to Google?
06:35:02 <pikhq> coppro: Yours is easy to Google.
06:35:04 <CakeProphet> it is very easy to trace my online identity since no one else uses this screen name.
06:35:10 <elliott> maybe hes twenty four years old
06:35:13 <coppro> pikhq: no, I mean you hit Google. That hurts.
06:35:17 <pikhq> coppro: Hah.
06:35:21 <coppro> ;)
06:35:35 <elliott> ray24: http://ray24.livejournal.com/profile
06:35:38 <elliott> ray24: you totally are in sanfran.
06:35:45 <coppro> operation 9terra phase 2 initiate
06:35:55 <elliott> But we already knew this.
06:35:56 <ray24> lol... that's not me
06:35:57 -!- coppro has left.
06:36:03 <elliott> Enjoying Taekwondo, deadman?
06:36:07 -!- elliott has left ("Leaving").
06:36:36 -!- scshunt has joined.
06:36:36 <CakeProphet> !rot47 computer: initiate tracking programs. find target 542049. confiscate kids and hold them for ransom.
06:36:37 <EgoBot> ​4@>AFE6Ci :?:E:2E6 EC24<:?8 AC@8C2>D] 7:?5 E2C86E dca_ch] 4@?7:D42E6 <:5D 2?5 9@=5 E96> 7@C C2?D@>]
06:36:44 <scshunt> EXTERMINATE!
06:36:44 <ray24> PEACE
06:36:47 -!- ray24 has left ("Leaving").
06:37:02 -!- coppro has joined.
06:37:08 <coppro> operation 9terra: successful
06:37:13 -!- elliott has joined.
06:37:18 <pikhq> Well, that was nicely done.
06:37:19 -!- scshunt has left.
06:37:31 <pikhq> And now he's probably freaked out by the power of Google.
06:38:02 <elliott> i've moved to /msg
06:38:03 <elliott> poor guy
06:38:07 <coppro> reading the logs, I have no fucking clue what just happened
06:38:07 <elliott> pikhq: except we found nothing :F
06:38:09 <elliott> [asterisk]:D
06:38:13 <elliott> coppro: seems to not include notices
06:38:22 <coppro> hmm indeed
06:38:23 <CakeProphet> elliott: I figured a lot of scary symbols would scare him.
06:38:37 <elliott> http://tunes.org/~nef/logs/esoteric/11.06.09 this does
06:38:45 <pikhq> BTW, coppro, dang you have a large Internet presence.
06:39:01 <elliott> least creepy thing to say ever
06:39:12 <pikhq> Yup!
06:39:25 <pikhq> Gregor has a pretty odd one, though.
06:39:30 <coppro> pikhq: it's like a chronicle of my life, the various fora I've been to and stuff
06:39:30 <elliott> ok stop it
06:39:48 <pikhq> https://encrypted.google.com/search?q=Gregor+Richards&hl=en&client=iceweasel-a&rls=org.mozilla:en-US:unofficial&prmd=ivns&tbm=isch&tbo=u&source=univ&sa=X&ei=CbzxTYGMG4uu0AHcl5XdCw&ved=0CFsQsAQ&biw=1440&bih=784 Check out a GIS.
06:40:12 <pikhq> It's like a blend of 5 different people.
06:40:34 <pikhq> elliott: Stop what, putting nicknames or real names into Google?
06:41:05 <elliott> both :D
06:41:27 <pikhq> I'll Google *you* next. :P
06:41:30 <coppro> pikhq: searching my full name gives little though, except for the math society where the names are loaded from the university database and I haven't bothered asking them to take my middle names out
06:41:30 <elliott> :(
06:41:34 <coppro> I should though
06:41:36 <pikhq> "Surprisingly", not helpful.
06:42:14 <coppro> I do love how hard it is to find me on Google if you don't know either of my common nicknames though
06:42:38 <elliott> hi christopher sherwood
06:42:42 <elliott> that's a fake name btw
06:42:47 <elliott> which i made up as a demonstration for the log
06:42:49 <elliott> not anything real
06:42:57 <coppro> elliott: thanks
06:43:13 <elliott> yeah i would never do something that stupid for a joke on irc
06:44:24 <CakeProphet> My dick is like lightning.
06:44:30 <elliott> yes.
06:44:31 * pikhq wonders how much stuff is actually tied to his real name...
06:44:38 <elliott> CakeProphet: you should say your real name now so that google hears this.
06:44:44 <CakeProphet> Never.
06:45:17 <pikhq> I'm apparently still staff at Tufts.
06:45:21 <pikhq> News to me!
06:45:30 <coppro> lol
06:45:33 <coppro> welcome to the internet
06:45:34 <coppro> it never dies
06:46:05 <elliott> pikhq: was that when you were like three years old
06:46:28 <pikhq> No, but it was over a year ago.
06:46:47 <CakeProphet> !delinterp rot47
06:46:48 <EgoBot> ​Interpreter rot47 deleted.
06:46:49 <CakeProphet> !addinterp rot47 perl print<>=~tr/!-~/P-~!-O/
06:46:49 <EgoBot> ​Interpreter rot47 installed.
06:46:56 <CakeProphet> !rot47 this is a test
06:46:57 <EgoBot> ​Can't modify <HANDLE> in transliteration (tr///) at /tmp/input.8441 line 1, at EOF
06:47:06 <CakeProphet> ...
06:47:09 <CakeProphet> ah, yes.
06:47:13 <CakeProphet> of course. :P
06:47:40 <CakeProphet> !delinterp rot47
06:47:40 <EgoBot> ​Interpreter rot47 deleted.
06:47:45 <CakeProphet> !addinterp rot47 perl $_=<>;tr/!-~/P-~!-O/;print
06:47:46 <EgoBot> ​Interpreter rot47 installed.
06:47:50 <CakeProphet> no golfing for me.
06:49:07 <elliott> pikhq: so when you were two then
06:49:13 <pikhq> -_-'
06:49:37 <elliott> sorry, one
06:50:34 <CakeProphet> does tr have any uses besides rotn
06:50:40 <Lymia> !addinterp rot32 sh cat
06:50:40 <EgoBot> ​Interpreter rot32 installed.
06:50:43 <Lymia> !addinterp rot32 cat
06:50:44 <EgoBot> ​There is already an interpreter for rot32!
06:50:46 <Lymia> !delinterp rot32
06:50:46 <EgoBot> ​Interpreter rot32 deleted.
06:50:49 <Lymia> !addinterp rot32 cat
06:50:50 <EgoBot> ​Interpreter cat does not exist!
06:50:52 <CakeProphet> Lymia: ...whut.
06:50:54 <elliott> CakeProphet: the unix command, yes.
06:50:59 <Lymia> !addinterp rot32 sh cat
06:50:59 <EgoBot> ​Interpreter rot32 installed.
06:51:01 <Lymia> !rot32 test
06:51:02 <EgoBot> ​test
06:51:07 <elliott> double encrypt
06:51:23 <CakeProphet> Lymia: ...you have gotten rid of the original rot32. That will take years to recode.
06:51:37 <Lymia> Rot32 is the application of rot16 twice.
06:51:40 <Lymia> 13*
06:51:46 <elliott> no shit
06:51:48 <Lymia> No wait...
06:51:49 <Lymia> Rot 32?
06:51:53 <Lymia> Wrong joke!
06:52:00 <Lymia> !delinterp rot32
06:52:00 <EgoBot> ​Interpreter rot32 deleted.
06:52:07 <Lymia> !addinterp rot52 sh cat
06:52:07 <EgoBot> ​Interpreter rot52 installed.
06:52:41 <CakeProphet> ... -_-
06:53:01 <CakeProphet> quadruple encrypted...
06:53:08 <Lymia> !addinterp rot26 sh cat
06:53:09 <EgoBot> ​Interpreter rot26 installed.
06:53:29 <Lymia> !rot13 test
06:53:30 <EgoBot> ​grfg
06:53:33 <elliott> delinterp Lymia
06:53:35 <CakeProphet> !rot13 .,23.,24998!@#*!@#$*!@#%
06:53:36 <EgoBot> ​.,23.,24998!@#*!@#$*!@#%
06:53:53 <CakeProphet> okay, so it leaves those characters alone.
06:54:54 <CakeProphet> !rot47 !@#)*#*)!@#*!@)#*!)@@$*!)@#*)!@#*!)@$&!@)#$&!@%)!@#
06:54:54 <EgoBot> ​PoRXYRYXPoRYPoXRYPXooSYPXoRYXPoRYPXoSUPoXRSUPoTXPoR
06:55:50 <pikhq> I think from Google results, I can conclude that I am a time traveller.
06:57:04 <coppro> pikhq: excellent
06:57:34 <coppro> please go back in time three days and tell George Histenton not to do it
06:58:04 <elliott> what did he do
06:58:18 <elliott> im hoping something horrible that will make this entire thread of conversation really awkawrd
06:58:48 <coppro> how the fuck should I know?
06:58:56 <elliott> note
06:58:59 <elliott> i dont actually know who George Histenton is
06:59:04 <coppro> me neither
06:59:27 <pikhq> coppro: I'm afraid I have yet to obtain my time machine.
06:59:28 <elliott> lets just say he did a huge school shooting then jumped off a building near where you are, that should be enough to make this very awkward
06:59:54 <pikhq> Though I could hit up Cambridge and see my grave.
06:59:56 <coppro> pikhq: the logs will be available then
07:00:05 <pikhq> Quite true.
07:00:14 <coppro> pikhq: What if you're a time lord?
07:00:23 <elliott> pime tord
07:01:12 <pikhq> Then that would explain the name change I saw.
07:01:52 <pikhq> Actually, no, no it wouldn't.
07:02:23 <elliott> eight am, i should sleep, i should sleep, i sh
07:02:28 <elliott> ould sleep, i
07:06:14 <elliott> http://jon.io/ this is the worst fucking webpage to ever exist augh
07:06:59 <monqy> augh
07:07:36 * pikhq should sleep.
07:07:50 <elliott> ditto
07:07:54 <elliott> what time is it there
07:08:00 <pikhq> T01:07
07:08:01 <elliott> monqy: do you feel the un-zepto terribleness of it
07:08:10 <elliott> its the least zepto webp-
07:08:10 <elliott> "Built using Clojure and MailChimp."
07:08:12 <elliott> two times least zepto webpage
07:08:21 <elliott> WHY ARE THE FUCKING LOGOS FLOATING
07:08:24 <elliott> IT MAKES NO FUCKING SENSE
07:08:25 <elliott> DOSIJFOSFOFDF
07:08:31 <pikhq> Seems to fail with noscript.
07:08:32 <monqy> I actually forgot about zepto
07:08:34 <monqy> oops
07:08:49 <elliott> monqy: its the best adjective and vapourware
07:08:51 <monqy> why are there logos at all anyhow
07:08:51 <pikhq> OH GOD THE UNZEPTO
07:09:02 <elliott> monqy: theyre in a cloud
07:09:03 <elliott> oh my god
07:09:03 <elliott> wait
07:09:06 <elliott> is that an actual metaphor for like
07:09:07 <elliott> the cloud
07:09:08 <elliott> please say no
07:09:10 <elliott> it fucking is isnt it
07:09:12 <elliott> im going to cry
07:09:14 <monqy> I thought it was actually
07:09:17 <monqy> it probably is
07:09:29 <elliott> i hate startsups i fucking hate startups everyone in a startup should die
07:09:30 <monqy> I thought that's why you aughed. it's why I aughed at least.
07:09:31 <elliott> wow this webpage is
07:09:34 <pikhq> I hereby ban them from HTML.
07:09:36 <elliott> eating at my soul
07:09:38 <pikhq> The unzepto!
07:09:38 <CakeProphet> elliott: nothing describes the internet better than a cloud, obviously.
07:09:44 <elliott> eating at my fucking soul
07:09:46 <monqy> cloud cloud
07:09:50 <elliott> ok thats been my two minutes hate i cant stand to have this page open any longer
07:09:54 <pikhq> It's absolutely terrible without Javascript.
07:10:10 <elliott> dude
07:10:13 <elliott> cant possibly worse than it with javascript
07:10:14 <pikhq> It's got the header, a few *pages* of whitespace, and then the content.
07:10:25 <elliott> better, the logos don't move
07:10:34 <pikhq> The logos don't exist.
07:10:45 <elliott> :)))
07:10:46 <pikhq> Though I think the code for them is the whitespace.
07:10:46 <elliott> happier life
07:10:56 <CakeProphet> pikhq: I don't think you can comfortably browse most websites anymore without Javascript.
07:11:08 <elliott> >incoming nerdrage
07:11:28 <pikhq> CakeProphet: I use Noscript extensively.
07:12:00 <pikhq> It goes a long, long way to making random websites tolerable.
07:17:29 <elliott> WOW LOOK AT THIS IN MERE SECONDS I AM GOING TO SLEEP (LIES)
07:21:25 -!- Phantom_Hoover has joined.
07:27:11 <CakeProphet> What was the first language to pass arguments by key-value pairs?
07:28:24 <elliott> http://en.wikipedia.org/wiki/Named_parameter <-- your mom, apparently
07:35:39 <coppro> oh god it's only after midnight
07:40:56 <pikhq> I *could* sleep.
07:41:00 <pikhq> Or I could listen to Queen.
07:41:31 <pikhq> Only one of those two options is awesome in audible form.
07:42:56 <Phantom_Hoover> Ahahah foolish Americans it is morning in the civilised world.
07:42:56 <lambdabot> Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them.
07:43:42 <pikhq> Phantom_Hoover: elliott is also complaining about how he needs to sleep.
07:44:11 <pikhq> Admittedly, elliott defies your dormal norms.
07:46:17 <pikhq> Also, it is definitely "morning" here, for certain definitions of "morning".
07:46:48 <Phantom_Hoover> It's morning here as in I had breakfast an hour ago.
07:47:22 <pikhq> Yeaaah, that's a terrible definition of morning.
07:47:41 <pikhq> Seeing as my first meal of the day is generally lunch.
07:49:06 -!- ais523 has quit (Remote host closed the connection).
07:49:35 <Phantom_Hoover> It's morning as in it's nearly 9 o'clock what more do you want from a morning.
07:49:54 <pikhq> A TARDIS.
07:50:08 <pikhq> Also a pony.
07:52:06 <coppro> Agreed
07:52:13 <coppro> pikhq: Sleep is for the weak
07:52:20 <coppro> and those who don't need to be in a cab in 5 hours
07:52:58 <pikhq> Why a cab?
07:53:21 <coppro> so I can catch the airplane 2 hours 18 minutes later
07:53:33 <coppro> also 5 hours 7 minutes
07:54:00 <pikhq> Baaah, specific yet non-specific answers!
07:54:07 <Phantom_Hoover> I have to be in a cab in half an hour.
07:54:40 <pikhq> I'm not sure it'd be possible for me to catch a cab.
07:54:49 <coppro> pikhq: I was referring to me
07:54:59 <pikhq> coppro: Yes, I know.
07:59:11 <augur> a targis? what? huh
07:59:16 <augur> tarddddis
07:59:20 <augur> cause i cant toop
07:59:22 <coppro> augur: out
07:59:33 <augur> coppro: in
07:59:50 <coppro> pikhq: This could all be solved, however, by you getting a TARDIS at some point in your future, and taking me where I need to go
08:01:31 -!- ralc has joined.
08:02:39 <pikhq> coppro: Why yes, yes it would. How convenient that I will at some point have one.
08:03:02 <pikhq> As we can conclude by my death being in the 1700s.
08:06:18 <coppro> I willen on-not having-been a good game of timey wimey ball in ages.
08:07:13 <Phantom_Hoover> Sorry Doctor Who's time-travel system is not all that complex.
08:07:28 <Phantom_Hoover> I'm fairly sure it can be modelled accurately simply by adding a second time dimension.
08:08:35 <pikhq> Phantom_Hoover: Doctor Who does not have a single time travel system.
08:08:49 <pikhq> It has whatever time travel system is most convenient at the time to the writers, near as I can tell.
08:08:53 <pikhq> Hence the timey wimey ball.
08:10:27 -!- myndzi has quit (Ping timeout: 252 seconds).
08:10:39 <Phantom_Hoover> pikhq, doesn't it essentially come down to "you can change the past"?
08:10:44 <coppro> No
08:10:47 <pikhq> Except when you can't.
08:10:54 <coppro> And when other things happen
08:11:08 <Phantom_Hoover> It's never been an essential physical law that you can't, it's just been that Bad Things happen when you do.
08:11:35 <coppro> We're talking about a series where, at one point, the entire universe ceased to ever have existed, except Earth and an explosion. But Earth existed and was fully-formed and had a human civilization despite.
08:11:52 <Phantom_Hoover> Still modellable.
08:12:00 <coppro> No, it really isn't
08:12:09 <pikhq> And time demons destroy everything when you change the past wrong.
08:12:28 <pikhq> Also, the main character has never been born.
08:13:03 <coppro> And at various points, there are stable time loops.
08:13:16 <pikhq> Oh, yeah, and the canonical reason for him not preventing Hitler is that it's physically impossible, IIRC.
08:13:45 <pikhq> Remember, this is a series which has aired for decades.
08:13:53 <pikhq> And has time travel as its basic premise.
08:13:59 <coppro> pikhq: Actually, the next episode is entitled "Let's Kill Hitler"
08:14:08 <pikhq> And has not always had the best writing.
08:14:17 -!- elliott has quit (Ping timeout: 240 seconds).
08:14:32 <coppro> Phantom_Hoover: I should add that "timey wimey" is canonical
08:15:12 <pikhq> Pretty much the only way to handle Doctor Who time travel is to shut up and enjoy the show. :P
08:15:17 <coppro> ^
08:15:29 -!- monqy has quit (Quit: hello).
08:15:46 <coppro> also the part where nothing is every truly erased from history
08:16:02 <coppro> (why hasn't the doctor tried to use this to get gallifrey back?)
08:16:18 <Phantom_Hoover> <pikhq> Pretty much the only way to handle Doctor Who time travel is to shut up and enjoy the show. :P
08:16:33 <Phantom_Hoover> I gave up on enjoying it around the time River Song became a semi-regular character.
08:16:39 <coppro> Incidentally, that's one of my favorite lines
08:16:56 <coppro> <House> Fear me, I have killed hundreds of Time Lords.
08:17:08 <coppro> <The Doctor> Fear me, I killed all of them.
08:17:16 <Phantom_Hoover> Which house?
08:18:05 <pikhq> coppro: Because the Doctor does not want Gallifrey back. Indeed, in The End of Time (recent-ish), he stopped the return of the Time Lords.
08:19:07 <pikhq> (note: written by Russel T Davies, who is one corny writer)
08:19:21 <coppro> Phantom_Hoover: character named House
08:19:45 <coppro> pikhq: How much have you seen total of the series?
08:19:48 <Phantom_Hoover> pikhq, by 'corny' you mean 'terrible', of course.
08:20:20 <pikhq> coppro: Random bits of the 4th, large chunk of 9th and 10th, few episodes of the 11th.
08:20:26 <coppro> ok
08:20:44 <pikhq> Phantom_Hoover: I was being generous.
08:20:58 <Phantom_Hoover> pikhq, don't be. He doesn't deserve it.
08:21:12 <Phantom_Hoover> His only achievement was keeping Moffat decent.
08:22:04 <pikhq> And reincarnating the series.
08:23:57 <coppro> Phantom_Hoover: Here's another one
08:24:16 <coppro> Phantom_Hoover: Doctor goes back in time and changes the past concurrently with the present, Back to the Future style
08:26:23 <Phantom_Hoover> pikhq, yes, but he then decided that he should be able to write for it.
08:26:46 <pikhq> I suppose it does even out.
08:48:45 <coppro> Phantom_Hoover: River's development is pretty good in my opinion, but I haven't seen pre-11th
08:57:22 <coppro> pikhq: The 11th has shown quite a bit of remorse and jumped several times at the thought of another Time Lord.. perhaps it's due to the regeneration?
09:00:17 -!- FireFly has joined.
09:25:49 -!- pikhq_ has joined.
09:26:01 -!- pikhq has quit (Ping timeout: 268 seconds).
09:56:10 -!- Patashu has joined.
10:11:16 -!- azaq23 has joined.
10:21:09 -!- Vorpal has joined.
10:39:01 -!- myndzi has joined.
10:54:30 -!- MigoMipo has joined.
11:15:55 -!- BeholdMyGlory has joined.
11:56:46 -!- pikhq has joined.
11:56:59 -!- pikhq_ has quit (Ping timeout: 260 seconds).
12:14:07 -!- cheater1 has joined.
12:35:40 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
12:41:26 -!- ralc has quit (Read error: Connection reset by peer).
12:41:26 <cheater1> < just found out about tput
12:41:43 -!- ralc has joined.
13:50:19 -!- copumpkin has joined.
13:58:36 -!- oerjan has joined.
14:30:41 -!- oerjan has quit (Quit: leaving).
14:33:08 -!- Vorpal has quit (Ping timeout: 268 seconds).
14:51:59 -!- Kustas has joined.
15:00:38 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:40:41 -!- wareya_ has joined.
15:43:50 -!- wareya has quit (Ping timeout: 246 seconds).
15:50:10 -!- Kustas has quit (Quit: gone).
16:01:15 -!- pikhq has quit (Ping timeout: 252 seconds).
16:01:17 -!- pikhq_ has joined.
16:45:43 -!- Vorpal has joined.
16:55:42 -!- Phantom_Hoover has joined.
16:57:42 -!- TOGoS has joined.
16:58:00 -!- TOGoS has left.
17:10:23 <Phantom_Hoover> http://www.wolframalpha.com/input/?i=volume+of+atlantic+ocean+*+butter+density
17:10:28 <Phantom_Hoover> I like the units it picks.
17:10:48 <Phantom_Hoover> Ounce cubic kilometres per cup.
17:12:39 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/hvugz/is_it_true_that_the_seconds_between_lightning/c1ywftn
17:12:51 <Phantom_Hoover> Said like one who has never met augur on IRC.
17:15:36 -!- zzo38 has joined.
17:16:11 <olsner> 42 atlantic oceans of butter equal 1 pluto
17:16:25 <olsner> *approximately :)
17:16:36 <Phantom_Hoover> Of extreme scientific importance, that is.
17:16:56 <Phantom_Hoover> I started writing that sentence and then realised that I had no idea how to terminate it in a non-Yoda way.
17:19:05 <olsner> are all your arrow keys, backspace and home broken? does your IRC client not have some kind of line editor?
17:19:19 <Phantom_Hoover> It does, but I couldn't be bothered rewriting the sentence.
17:19:26 <Phantom_Hoover> So I Yoda'd it up.
17:19:31 <olsner> <home>That is <del>o
17:19:42 <olsner> <end>.<cr>
17:20:22 <Phantom_Hoover> olsner I feel you are overthinking this.
17:20:51 <olsner> overthinking I am not, I feel
17:22:01 <Sgeo> .....use tape bound.....
17:26:56 -!- azaq23 has quit (Quit: Leaving.).
17:43:31 -!- Kustas has joined.
17:52:19 -!- monqy has joined.
18:17:32 -!- Kustas has left.
18:31:32 -!- ralc has quit (Remote host closed the connection).
18:38:16 <zzo38> Do you like Charities for poor people and monsters with names starting with "A"?
18:42:17 <zzo38> If you are making a program that, in UNIX, uses SIGUSR1 to interrupt some loops (by setting flags, etc), how can you do similar things in Windows?
18:42:41 <pikhq_> Well, would you look at that. New version of the Haskell Platform in Debian this morning.
18:44:55 <Sgeo> Which Debian?
18:47:10 <pikhq_> Wheezy.
18:47:21 <pikhq_> Been in Sid for a while.
18:50:40 <Phantom_Hoover> http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-615.pdf
18:50:46 <Phantom_Hoover> OK this paper is now my favourite.
18:52:02 <zzo38> Phantom_Hoover: Text looks like badly on my computer
18:54:57 <augur> Phantom_Hoover: :)
18:55:41 <augur> check out my response to the comment :)
19:01:45 -!- cheater1 has quit (Ping timeout: 240 seconds).
19:02:32 <Phantom_Hoover> augur, what's with the star things on /r/Anarchism.
19:02:41 <augur> Phantom_Hoover: what do you mean
19:02:52 <Phantom_Hoover> The half black/half coloured ones.
19:03:22 <augur> yes but whats the question
19:03:23 <Sgeo> Someone mentioned Boltzmann brains in here/
19:04:40 <zzo38> The half black/color stars of anarchism are also mentioned on Wikipedia.
19:04:53 <zzo38> The color half indicates different categories of anarchism.
19:05:03 <augur> oh, the question is what do they mean?
19:05:04 <augur> yes.
19:05:15 <Phantom_Hoover> augur, yes.
19:05:21 <augur> sorry, i wasn't sure what you were asking
19:05:32 <augur> i was half tempted to respond "whats up is we like them!"
19:05:39 <zzo38> Red=communism Yellow=capitalism Green=naturalism White=pacifist
19:05:50 <Phantom_Hoover> @tell elliott BtW, that CA paper has a lot about conservative CAs. There are no new ideas under the sun.
19:05:51 <lambdabot> Consider it noted.
19:05:51 <zzo38> Black=anarchist
19:06:06 <Phantom_Hoover> @tell elliott Also we all suck.
19:06:06 <lambdabot> Consider it noted.
19:06:14 <augur> Phantom_Hoover: theres a link in the sidebar
19:06:20 <augur> that explains the stars
19:06:22 <Sgeo> Maybe I shouldn't bother to make my language statically typed. I mean, LSL is statically typed, but there's a glaring type hole
19:06:51 <augur> Phantom_Hoover: http://www.reddit.com/help/faqs/Anarchism#WhatarethosefunkystariconsnexttosomenamesandhowcanIgetone
19:06:58 <Sgeo> "type hole". What a technical sounding term
19:07:57 <augur> Sgeo: sounds like a hole/shed in a type
19:08:03 <augur> as opposed to a lacuna
19:08:12 <zzo38> What is "type hole"?
19:08:21 * Sgeo wikis lacuna
19:08:40 <augur> Sgeo: it means hole
19:08:41 <augur> x3
19:09:01 <augur> but usually people use it to mean when something is missing
19:09:03 <Sgeo> zzo38, well, llList2String([5], 0) compiles
19:09:05 <augur> like a gap
19:09:40 <Sgeo> Lists are heterogeneous in a statically typed environment.
19:09:44 <Gregor> void ***writing_garbage_collectors_is_fun
19:11:22 <augur> Phantom_Hoover: s'at explain things for you?
19:11:33 <Phantom_Hoover> augur, so many varieties.
19:11:44 <augur> Phantom_Hoover: those arent all there is too!
19:11:50 * Phantom_Hoover wonders how the insufferability differs between groups.
19:11:51 <augur> those are just some main tendencies
19:12:03 <augur> Phantom_Hoover: everyone hates anarcho-capitalists
19:12:15 <augur> and a bunch of people hate anarcho-primitivists
19:12:26 <Phantom_Hoover> augur, unsurprising; unsurprising.
19:12:32 <augur> everyone hates Hakim Bey but thats a separate issue
19:12:40 <augur> and other than that people generally get along
19:16:00 <zzo38> I don't even know what llList2String([5], 0) is supposed to mean
19:17:06 <Sgeo> zzo38, 0th element from the list [5] assuming (wrongly) that it's a string
19:19:41 <pikhq_> Gregor: I think soon you'll have more *s than Gs.
19:22:20 <zzo38> I have a book it describes a few things about garbage collection, including mark/sweep, and some others
19:27:44 -!- zzo38 has quit (Remote host closed the connection).
19:40:07 -!- oerjan has joined.
19:51:34 -!- pikhq has joined.
19:52:00 -!- pikhq_ has quit (Ping timeout: 260 seconds).
19:55:46 -!- Sgeo has quit (Read error: Connection reset by peer).
19:56:23 -!- Sgeo has joined.
19:57:37 <oerjan> <zzo38> Do you like Charities for poor people and monsters with names starting with "A"?
19:58:25 <oerjan> hey vampires and zombies want charity too! preferably in the form of blood and brains
20:01:38 <oerjan> <Sgeo> Lists are heterogeneous in a statically typed environment.
20:01:48 <oerjan> well not in haskell...
20:02:04 <Sgeo> oerjan, I was referring specifically to the environment of LSL
20:02:29 <oerjan> ic. same as Java without generics, perhaps?
20:02:48 <copumpkin> oerjan: I was thinking, the knapsack problem might be better for our NP-complete syntax
20:03:10 <oerjan> or in fact C
20:03:46 <Sgeo> Hmm. I'm not familiar with how Java deals
20:04:19 <oerjan> Sgeo: basically before generics, your container types would just contain Objects, i think (which they still do _internally_)
20:04:34 <oerjan> where Object is the superclass of every other class
20:04:43 <Sgeo> Fun
20:04:59 <Sgeo> There is no universal superclass in LSL
20:05:05 <oerjan> although _not_ of some primitive types such as int iirc
20:05:14 <oerjan> Sgeo: is there OO at all?
20:05:17 <Sgeo> No
20:05:43 <oerjan> is there a way to check the type of a list element?
20:05:46 <Sgeo> Yes
20:06:18 <oerjan> i guess a single-element list could work as a sort of wrapper for anything
20:06:48 <monqy> does speed matter in second life
20:07:00 <monqy> execution speed that is
20:07:12 <oerjan> Sgeo: presumably it works sort of like [Dynamic] in haskell, then
20:07:23 <Sgeo> http://wiki.secondlife.com/wiki/LlGetListEntryType
20:07:49 <monqy> wow nice language
20:09:04 <oerjan> Sgeo: hm i note lists are not themselves among the types possible
20:09:14 <Sgeo> Indeed
20:09:23 <Sgeo> Can't put a list in a ist
20:09:24 <Sgeo> *list
20:09:26 -!- ais523 has joined.
20:11:54 <Sgeo> http://wiki.secondlife.com/wiki/List
20:13:26 <ais523> gah, I'm getting a burst of Sgeoism from my parents, who have basically banned the family from eating vegetables because of the E. coli outbreak in Germany
20:14:13 <monqy> lsl looks so gross :(
20:14:32 <monqy> good luck sgeo with making something less gross
20:15:00 <Sgeo> I think I may lack a clear enough view of all of LSL's grossness
20:17:08 <oerjan> ais523: even british grown ones?
20:17:39 <pikhq> Well, I'll be damned.
20:17:49 <ais523> oerjan: my mother is convinced that any vegetable I eat will be a contaminated one bought up because it was cheap, and mislabeled to trick people into buying it
20:18:02 <pikhq> The SCOTUS ruled yesterday that phone companies are required to unbundle their network.
20:18:20 <oerjan> ic. paranoid and prone to delusions. </mezzacotta>
20:18:35 <ais523> pikhq: wow
20:18:54 <ais523> they also ruled on i4i vs. Microsoft; now i4i have won and Microsoft is out of appeals
20:19:00 <pikhq> Ah. As the FCC has been demanding.
20:19:11 <pikhq> "Yes, AT&T, you *are* subject to FCC regulations"
20:19:16 <ais523> luckily, though, they did say that the law in question is stupid (or imply it as strongly as they could), but said that it was relatively clear
20:19:33 <Phantom_Hoover> <pikhq> The SCOTUS ruled yesterday that phone companies are required to unbundle their network.
20:19:37 <ais523> also, the opinion looked to me like a deliberate attempt to point out a loophole in the law in question
20:19:40 <Phantom_Hoover> Explain?
20:19:53 <ais523> that could be exploited by other people who thought it was stupid
20:19:59 <pikhq> Phantom_Hoover: Y'know how you can have multiple DSL providers using the same last-mile wiring?
20:20:07 <Phantom_Hoover> pikhq, in theory, yes.
20:20:29 <pikhq> That's because you have unbundling in your country.
20:20:34 <Sgeo> Which law?
20:21:27 <Phantom_Hoover> 22:42:53: <oerjan> which is pretty much the case with current version of Standard Model + General Relativity
20:21:29 <Phantom_Hoover> Erm.
20:21:30 <Phantom_Hoover> No.
20:21:45 <Phantom_Hoover> Standard Model doesn't predict neutrino flavour oscillation IIRC.
20:22:12 <oerjan> Phantom_Hoover: i thought they'd sort of upgraded it to include that already :P
20:22:19 <oerjan> (thus "current version")
20:23:01 <oerjan> but still no one has any idea how to combine SM and GR into something which can actually be tested for correctness in our lifetime
20:23:09 <ais523> hmm, random fact I learned today: there is a division by zero in Pokémon's source code, but the division routine they use has x/0=x so they never noticed
20:23:41 <ais523> I suppose x/0=x is probably the best default if you want your program to not crash on a division by zero, as it's likely to produce a result in the range it was looking for
20:24:42 <oerjan> assuming you are dividing by integers, and not a floating point number which should actually be close to 0
20:25:24 <Phantom_Hoover> oerjan, also, QM is not at all friendly towards actually modelling things./
20:25:24 <ais523> floating point arithmetic's avoided like the plague in computer games, except in graphics routines, generally speaking
20:25:53 -!- cheater8 has joined.
20:27:00 <oerjan> Phantom_Hoover: what do you mean by "modelling" here?
20:27:34 -!- twice11 has joined.
20:27:51 <Phantom_Hoover> oerjan, well, QCD for instance is impossible to calculate in all but the very simplest of cases.
20:27:58 <oerjan> if you mean "calculating simulation results" there's a guy named John Sidles frequently commenting on the Godel's Lost Letter blog who would disagree with you
20:28:19 <oerjan> at least for noisy systems
20:29:00 <Phantom_Hoover> oerjan, well, I know that there's no analytical proof of colour confinement, which is very nearly the simplest case you can actually have.
20:29:25 <oerjan> Phantom_Hoover: oh he is not talking about analytical proof, but about numerical calculation
20:29:39 <Phantom_Hoover> oerjan, well, I'm not sure about approximation.
20:29:54 <Phantom_Hoover> The eigenratio of reality has to be enormous, though.
20:30:12 <oerjan> `addquote <Phantom_Hoover> The eigenratio of reality has to be enormous, though.
20:30:15 <HackEgo> ​450) <Phantom_Hoover> The eigenratio of reality has to be enormous, though.
20:31:16 <pikhq> ais523: Floating point arithmetic is avoided like the plague, period.
20:33:27 <ais523> pikhq: most 3D graphics libraries work in single-precision floating point because rounding errors tend not to be visible, and pathological cases of floating-point arithmetic don't happen a lot in the sort of algorithms used
20:33:28 -!- ais523 has quit (Remote host closed the connection).
20:33:37 -!- ais523 has joined.
20:33:48 <ais523> [21:32] <ais523> pikhq: most 3D graphics libraries work in single-precision floating point because rounding errors tend not to be visible, and pathological cases of floating-point arithmetic don't happen a lot in the sort of algorithms used
20:34:51 <pikhq> Not to mention that single-precision is faster.
20:36:37 <pikhq> Wow. Fedora 16 is going to have btrfs as its default filesystem.
20:36:53 <pikhq> It doesn't have an fsck yet.
20:39:29 <oerjan> wrsfs
20:39:57 <twice11> mount -o wo,remount /
20:40:59 <twice11> Use this as backing device: http://www.national.com/rap/Story/WOMorigin.html
20:44:55 <Phantom_Hoover> Oh god "Garfield in <x>" is even worse than "Garfield <x>inus Garfield".
20:45:31 <oerjan> Phantom_Hoover: i have no idea what the first is referring to
20:45:48 <oerjan> oh ...
20:45:52 * oerjan remembers
20:51:23 <Gregor> pikhq, not-present-elliott: OK, my threadsafe branch now substantially outperforms both Boehm and malloc/free, but it's still a non-marginal 27% slower than the non-threadsafe branch.
20:52:03 <pikhq> Hmm.
20:53:35 <Gregor> I have some ideas for how to bring it down, in particular my per-thread pools wasn't stable enough to make it in yet.
20:53:37 <oerjan> @hoogle forkIO
20:53:37 <lambdabot> Control.Concurrent forkIO :: IO () -> IO ThreadId
20:53:49 <oerjan> !haskell import Control.Concurrent; main = forkIO (putStr "That is "); putStr "great!"
20:53:58 <oerjan> oops
20:54:04 <oerjan> !haskell import Control.Concurrent; main = do forkIO (putStr "That is "); putStr "great!"
20:54:08 <EgoBot> ​grTehaatt! is
20:55:14 <oerjan> Gregor: the first game me something looking like the result of ls / rather than a ghc error message
20:55:17 <oerjan> *gave
20:55:47 <oerjan> !haskell import Control.Concurrent; main = forkIO (putStr "That is "); putStr "great!"
20:56:02 <oerjan> that gave the expected error
20:56:12 <oerjan> !sh ls /
20:56:12 <EgoBot> ​bin
20:56:24 <oerjan> wtf
20:56:32 <oerjan> Gregor: _that_ gave me
20:56:36 <oerjan> 22:56 =EgoBot> QUIT :This better not work
20:56:36 <oerjan> 22:56 =EgoBot>
20:57:04 <oerjan> there's something really wrong about EgoBot's passing on of messages
20:57:38 <oerjan> !sh ls | fmt -w500
20:57:39 <EgoBot> ​interps lib slox
20:57:45 <oerjan> oh hm
20:57:58 <oerjan> it was ls not ls /
20:58:04 <oerjan> !sh ls / | fmt -w500
20:58:04 <EgoBot> ​bin dev etc home lib lib64 proc tmp usr
20:58:16 <oerjan> and missing the interps
20:58:49 <oerjan> Gregor: it seems like i get messages that someone else _should_ have got in DCC long ago
20:59:06 <oerjan> in fact i remember that QUIT :This better not work attempt from before
20:59:08 -!- elliott has joined.
20:59:44 <Gregor> oerjan: "Huh"?
21:00:09 <Gregor> !haskell import Control.Concurrent; main = forkIO (putStr "That is "); putStr "great!"
21:00:43 <oerjan> Gregor: several of those commands gave me responses in DCC that were completely unrelated to the command i made, and which looked like what someone else would have gotten in response to a different command
21:01:02 <oerjan> also, it is not repeatable in a deterministic way
21:01:12 <Gregor> EgoBot is based on the principle of chaos computing.
21:01:55 <oerjan> in fact my _second_ try of that erroneous haskell thing gave the expected ghc error message in DCC
21:02:53 <oerjan> however i remember this happening for quite a while. that !sh ls / above is the first case i remember where it happened as response to a fast command, though
21:03:45 <oerjan> !sh ls /
21:03:45 <EgoBot> ​bin
21:04:03 <oerjan> nothing strange this time
21:06:38 <oerjan> :t fix forkIO
21:06:39 <lambdabot> Not in scope: `forkIO'
21:06:45 <oerjan> :t fix Control.Concurrent.forkIO
21:06:46 <lambdabot> Couldn't match expected type `()'
21:06:46 <lambdabot> against inferred type `GHC.Conc.ThreadId'
21:06:47 <lambdabot> Expected type: IO ()
21:07:09 <oerjan> :t Control.Concurrent.forkIO
21:07:10 <lambdabot> IO () -> IO GHC.Conc.ThreadId
21:08:01 <oerjan> :t fix . forever . Control.Concurrent.forkIO
21:08:02 <lambdabot> Couldn't match expected type `a -> a1'
21:08:02 <lambdabot> against inferred type `IO GHC.Conc.ThreadId'
21:08:02 <lambdabot> Probable cause: `GHC.Conc.forkIO' is applied to too many arguments
21:08:18 <oerjan> :t forever
21:08:18 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m a -> m b
21:08:34 <oerjan> :t fix $ forever . Control.Concurrent.forkIO
21:08:35 <lambdabot> IO ()
21:13:03 <CakeProphet> :t Control.Concurrent.forkIO
21:13:04 <lambdabot> IO () -> IO GHC.Conc.ThreadId
21:13:15 <CakeProphet> oh I see.
21:13:33 <CakeProphet> wouldn't fix forkIO do the trick as well?
21:13:33 <oerjan> for some reason it doesn't have IO a ->
21:13:44 <oerjan> which is why you cannot fix it
21:13:54 <CakeProphet> I think there's a IO a -> IO () function
21:14:02 <CakeProphet> but at that point you might as well use forever.
21:14:25 <CakeProphet> :t forever
21:14:26 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m a -> m b
21:14:28 <oerjan> right, besides fix forkIO doesn't actually do anything _after_ forking
21:14:38 <oerjan> :t fix (>>)
21:14:39 <lambdabot> Occurs check: cannot construct the infinite type: m = (->) (m b)
21:14:39 <lambdabot> Probable cause: `>>' is applied to too few arguments
21:14:39 <lambdabot> In the first argument of `fix', namely `(>>)'
21:14:47 <oerjan> urgh
21:14:52 <oerjan> :t fix . (>>)
21:14:53 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m a -> m b
21:14:58 <oerjan> it's just this
21:15:17 <CakeProphet> ah
21:15:33 <oerjan> @hoogle m a -> m ()
21:15:33 <lambdabot> Foreign.Marshal.Error void :: IO a -> IO ()
21:15:33 <lambdabot> Text.ParserCombinators.ReadP optional :: ReadP a -> ReadP ()
21:15:33 <lambdabot> Text.ParserCombinators.ReadP skipMany :: ReadP a -> ReadP ()
21:15:53 <oerjan> nothing direct it seems
21:15:55 <oerjan> although...
21:15:57 <CakeProphet> @hoogle Control.Monad m a -> m ()
21:15:58 <lambdabot> Parse error:
21:15:58 <lambdabot> --count=20 "Control.Monad m a -> m ()"
21:15:58 <lambdabot> ^
21:16:02 <CakeProphet> ah
21:16:08 <CakeProphet> no there's a void function in Control.Monad.
21:16:10 <oerjan> :t (() <$)
21:16:11 <lambdabot> forall (f :: * -> *) b. (Functor f) => f b -> f ()
21:16:17 <oerjan> that also works
21:16:21 <CakeProphet> :t void
21:16:22 <lambdabot> Not in scope: `void'
21:16:25 <CakeProphet> ...or maybe not?
21:16:30 <CakeProphet> it was definitely in the docs.
21:16:38 <oerjan> perhaps it's too new
21:16:50 <elliott> :t ignore
21:16:51 <lambdabot> Not in scope: `ignore'
21:16:56 <elliott> yeah it is new
21:17:03 <elliott> iirc gwern petitioned for it
21:17:42 <CakeProphet> :t gwern
21:17:43 <lambdabot> Not in scope: `gwern'
21:18:15 <CakeProphet> :t elliott
21:18:15 <lambdabot> Not in scope: `elliott'
21:18:19 <CakeProphet> ...what is this crap.
21:18:41 <CakeProphet> I can't think about typeless entities.
21:19:03 <oerjan> you cannot expect lambdabot to import all of elliott
21:19:19 <oerjan> it would ruin her self esteem
21:19:43 <CakeProphet> Perhaps Haskell needs a Please extension, like INTERCAL.
21:19:48 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
21:19:54 <oerjan> @list please
21:19:54 <lambdabot> No module "please" loaded
21:20:04 <CakeProphet> so we could modify elliott with enough pleases to satisfy the interpreter/compiler in question.
21:20:29 <CakeProphet> PLEASE forever $ do ...
21:20:40 <oerjan> but the pleases would annihilate against the elliott
21:21:06 <oerjan> @hoogle void
21:21:06 <lambdabot> Foreign.Marshal.Error void :: IO a -> IO ()
21:21:11 <CakeProphet> ah yes, the natural law of anti-relationship of please and elliott.
21:21:16 <oerjan> @hoogle ignore
21:21:16 <lambdabot> Text.Regex.Posix.ByteString compIgnoreCase :: CompOption
21:21:16 <lambdabot> Text.Regex.Posix.Sequence compIgnoreCase :: CompOption
21:21:16 <lambdabot> Text.Regex.Posix.String compIgnoreCase :: CompOption
21:21:17 * CakeProphet scribbles on some paper furiously.
21:21:25 -!- pikhq has quit (Ping timeout: 240 seconds).
21:21:31 -!- pikhq has joined.
21:21:33 <oklopol> i hate sweating
21:21:46 <CakeProphet> oklopol: I have actually come to train my brain to not mind it at all.
21:22:05 <CakeProphet> it's motherfuckin' built-in temperature control.
21:24:28 <Phantom_Hoover> CakeProphet, ah, but oklopol is Finnish.
21:24:43 <Phantom_Hoover> Wait don't they have really hot summers in Finland.
21:24:53 <Phantom_Hoover> Like, hot by Edinburgh standards.
21:26:44 <oklopol> well i only mind it when i'm sitting or lying down, i don't enjoy marinating my back against a sweaty cloth, since i have acne in my back which i'd like to get rid of - although i don't actually know whether marinating it in sweat is bad for the acne.
21:27:30 <Phantom_Hoover> Possibly you could sit in a bath of Coke all day.
21:27:41 <Phantom_Hoover> Assuming you are still a bachelor.
21:27:41 <elliott> Phantom_Hoover: finnish summers are like twenty degrees arent they
21:27:57 <Phantom_Hoover> Otherwise you may have to compromise and use Sprite.
21:28:03 <Phantom_Hoover> elliott, hmm.
21:28:17 <elliott> at most
21:28:43 <oklopol> no the polar bear would die more like at most plus 1
21:28:44 <Phantom_Hoover> You seem to be right.
21:28:52 * CakeProphet lives in the southern US. It is most likely hotter here in the summer.
21:29:07 <Phantom_Hoover> Although Helsinki's record high is 34°.
21:29:09 <oklopol> but anyway it's often more than 30 in shade
21:29:15 <CakeProphet> goes up to mid-90s Fahrenheit
21:29:20 <oklopol> for some definitions of often
21:29:33 <pikhq> Phantom_Hoover: That's a *record* high?
21:30:01 <Phantom_Hoover> elliott, AH BUT
21:30:12 <Phantom_Hoover> Edinburgh's average high in July is 19°.
21:30:28 <Phantom_Hoover> WHICH IS A WHOLE TWO DEGREES LESS THAN HELSINKI
21:30:29 <pikhq> That's... Fucking chilly.
21:30:33 <Phantom_Hoover> A SAUNA
21:31:08 <oklopol> so about jacuzzis, do they usually have a way to make it it not heat but freeze the water?
21:31:16 <CakeProphet> Georgia's record high is 112 F, 44 C
21:31:16 <elliott> `addquote <oklopol> so about jacuzzis, do they usually have a way to make it it not heat but freeze the water?
21:31:18 <HackEgo> ​451) <oklopol> so about jacuzzis, do they usually have a way to make it it not heat but freeze the water?
21:31:25 <oklopol> *-it
21:31:26 <Phantom_Hoover> pikhq, daily upper maxima are rarely above 22°, apparently.
21:31:26 <pikhq> CakeProphet: Sounds 'bout right.
21:31:27 <oklopol> fuck you
21:31:31 <elliott> oklopol: sry
21:31:35 <elliott> it wasn't because of the it it
21:31:41 <oklopol> :O
21:31:42 <Phantom_Hoover> Maritime climate, bitches.
21:31:46 <oklopol> THERE WAS ANOTHER TYPO?!?!?!?!?
21:31:52 <elliott> lol
21:32:41 <CakeProphet> today it's 31.6 C
21:33:18 <elliott> CakeProphet: how do you cope
21:33:24 <elliott> i die at about twentyfive degrees
21:33:30 <CakeProphet> by staying inside all day.
21:33:35 <oklopol> i don't mind pretty much any temperature when i'm outside, it's mostly sitting naked in my armchair which is uncomfortable, and that's kind of a problem because that's my favorite thing.
21:33:39 <CakeProphet> though even when I'm outside it's not bad. I'm accustomed to it.
21:33:40 <elliott> CakeProphet: with AC on constantly?
21:33:44 <CakeProphet> elliott: pretty much.
21:33:47 <elliott> nice :P
21:33:56 <CakeProphet> it's like 70-something in the house
21:34:03 <CakeProphet> which is... I don't know.
21:34:07 <elliott> our climate is nice when we have good summers, winter always sucks though
21:34:10 <CakeProphet> I've been googling all of these conversions. :P
21:34:39 <Phantom_Hoover> CakeProphet, you realise that noöne else understands Fahrenheit, right?
21:34:42 <CakeProphet> winters are pretty moderate, which means they're still pretty fucking cold but it only goes below freezing occasionally.
21:34:48 <CakeProphet> Phantom_Hoover: yes.
21:34:56 <elliott> twenty-one C apparently
21:35:10 <elliott> fahrenheit is the stupidest scale, true facts
21:35:29 <oklopol> so umm why are americans so stupid?
21:35:31 <CakeProphet> -shrug- I don't have a built-in celcius sense like I do fahrenheit
21:35:33 <oklopol> speaking of fahrenheit
21:35:53 <CakeProphet> it's just a standard that hasn't changed.
21:36:04 <elliott> 08:10:39: <Phantom_Hoover> pikhq, doesn't it essentially come down to "you can change the past"?
21:36:09 <oerjan> pikhq: the record high for _all of norway_ is 35.6°C
21:36:12 <CakeProphet> it would break people's feeble minds to establish a new temperature scale.
21:36:16 <oklopol> how about those ofter standard like every standard US uses?
21:36:18 <elliott> Phantom_Hoover: You can change it really badly, just as long as the history books look much the same
21:36:20 <oklopol> *other
21:36:21 <oklopol> argh
21:36:25 <elliott> Butterfly effect: MYTH BUSTD
21:36:26 <elliott> BUSTED
21:36:45 <oklopol> hey i have an idea
21:36:59 <oklopol> US could change from fahrenheit to celsius *continuously*!
21:37:02 <CakeProphet> I don't know I'd say yards are actually a bit more convenient than meters and centimeters.
21:37:05 <elliott> oklopol: awesome
21:37:08 <oklopol> so people would have time to adjust!
21:37:10 <elliott> CakeProphet: Only for interventions.
21:37:15 <CakeProphet> for eyeballing distances, anyways.
21:37:23 <oklopol> haha yeah right
21:37:24 <ais523> oklopol: that is indeed awesome
21:37:33 <ais523> the issue is, it'd be like me trying to remember my age
21:37:33 <elliott> ITT: CakeProphet is used to US units, not metric; thinks US units are easier to intuitively use; world shocked
21:37:36 <oklopol> regarding yards
21:37:37 <ais523> I keep forgetting it because it changes so oftwn
21:37:39 <ais523> *often
21:37:42 <oklopol> ais523: yes
21:37:45 <Phantom_Hoover> !addinterp sanetemp sh dc -e "?32-5*9/"
21:37:45 <EgoBot> ​Interpreter sanetemp installed.
21:37:50 <Phantom_Hoover> !sanetemp 100
21:37:56 <ais523> elliott: what's more intuitive, acres or ares?
21:38:04 <ais523> I don't have an intuitive idea of how big either is, so I wouldn't know
21:38:04 <CakeProphet> elliott: I only mentioned /one/ thing as /possibly/ being a better scale for the kinds of distances one would eyeball. That is all.
21:38:07 <ais523> but nobody seems to use ares ever
21:38:20 <elliott> ais523: no idea, but land ownership is pretty old-school so that doesn't surprise me >:)
21:38:28 <olsner> everyone just uses hectares, which is a bit like the kilocalories thing
21:38:29 <elliott> wait
21:38:32 <elliott> ais523: people use hectares all the time
21:38:32 <oklopol> umm yards are essentially meters aren't they
21:38:39 <Phantom_Hoover> What oklopol said.
21:38:43 <ais523> actually, in practice people normally use square metres and square feet for things that aren't farmland
21:38:44 <CakeProphet> ...not really.
21:38:48 <CakeProphet> they're similar in length though.
21:38:49 <ais523> and yes, people do use hectares all the time
21:38:53 <ais523> but that isn't an SI unit
21:38:57 <ais523> it has an invalid prefix
21:39:08 <elliott> true
21:39:10 <ais523> because it isn't a power of 1000
21:39:11 <oklopol> "<oklopol> umm yards are essentially meters aren't they" "<CakeProphet> ...not really." "<CakeProphet> they're similar in length though." <<< am i missing something?
21:39:23 <Phantom_Hoover> oklopol, a yard = 3 feet.
21:39:30 <Phantom_Hoover> A foot ~= 30cm.
21:39:36 <CakeProphet> 0.9144 meters
21:39:38 <CakeProphet> closer than I thought
21:39:41 <olsner> oklopol: *essentially* they are completely different, but they accidentally ended up similarly lengthed
21:39:46 <ais523> 1m ~= 39 in, 3 feet = 36 in
21:40:05 <elliott> my solution to metric-other conversion is
21:40:08 <ais523> I'm not sure how accurate the 39-inches comparison is, but it's more accurate than most of the others I know
21:40:08 <elliott> don't talk to people who use other
21:40:08 * Phantom_Hoover wonders why sanetemp isn't working.
21:40:15 <elliott> i still use miles for long distances though
21:40:18 <CakeProphet> elliott: how closed-minded of you.
21:40:19 <elliott> because road signs :(
21:40:19 <oklopol> oh what olsner said i guess. i guess i have my own usage of terms like essentially.
21:40:31 <CakeProphet> elliott: I am quite fine with converting my units to your scales for the purposes of communication.
21:40:32 <Phantom_Hoover> D'oh.
21:40:35 <ais523> I don't really measure long distances well at all
21:40:36 <Phantom_Hoover> !addinterp sanetemp sh dc -e "?32-5*9/p"
21:40:37 <EgoBot> ​There is already an interpreter for sanetemp!
21:40:38 <elliott> CakeProphet: same reason I don't talk to German people by tediously using a phrasebook
21:40:43 <elliott> for every word
21:40:45 <Phantom_Hoover> !delinterp sanetemp
21:40:45 <EgoBot> ​Interpreter sanetemp deleted.
21:40:48 <Phantom_Hoover> !addinterp sanetemp sh dc -e "?32-5*9/p"
21:40:48 <EgoBot> ​Interpreter sanetemp installed.
21:40:54 <Phantom_Hoover> !sanetemp 100
21:40:54 <EgoBot> ​37
21:40:59 <Phantom_Hoover> !sanetemp 0
21:40:59 <EgoBot> ​-17
21:41:09 <Phantom_Hoover> !sanetemp 32
21:41:10 <EgoBot> ​0
21:41:23 <elliott> 08:16:56: <coppro> <House> Fear me, I have killed hundreds of Time Lords.
21:41:23 <elliott> 08:17:08: <coppro> <The Doctor> Fear me, I killed all of them.
21:41:23 <elliott> 08:17:16: <Phantom_Hoover> Which house?
21:41:25 <elliott> dr gregory
21:41:26 <CakeProphet> !sanetemp 265
21:41:26 <EgoBot> ​129
21:41:35 <elliott> BEST CROSSOVER?
21:42:13 <elliott> 08:19:48: <Phantom_Hoover> pikhq, by 'corny' you mean 'terrible', of course.
21:42:13 <elliott> Phantom_Hoover: Eh, the series was alright with him.
21:42:16 <Phantom_Hoover> <pikhq> That's... Fucking chilly.
21:42:22 <elliott> I mean yeah he was a bad writer but not so bad as to be intolerable.
21:42:28 <Phantom_Hoover> You realise I live at the same latitude as the Hudson Bay, right?
21:42:51 <CakeProphet> Fahrenheit actually makes some intuitive sense for outdoor temperatures. 0 = really fucking cold 100 = really fucking hot
21:43:04 <CakeProphet> 80 = pretty warm
21:43:27 <CakeProphet> 70 = comfortable room temperature for most people
21:43:35 <Phantom_Hoover> CakeProphet, that's no better than Celsius.
21:43:42 <CakeProphet> yeah, I know.
21:43:45 <CakeProphet> I didn't say it was better.
21:43:51 <oklopol> you do realize 70 is not really even a number
21:43:52 <CakeProphet> there was no comparison to Celsius made, in fact.
21:43:58 <CakeProphet> oklopol: whut?
21:44:03 <elliott> someone got a link to that anti-metrician site
21:44:20 <oklopol> CakeProphet: i really have no answer
21:44:24 <oklopol> but i stand by what i said
21:44:26 <CakeProphet> haha.
21:44:28 <CakeProphet> okay...
21:45:02 <CakeProphet> though some people are wimps who live in AC all day and prefer 65 to 70
21:45:14 <Phantom_Hoover> elliott, can't find it.
21:45:29 <CakeProphet> !sanetemp 70
21:45:29 <EgoBot> ​21
21:45:31 <Phantom_Hoover> !sanetemp 65
21:45:31 <EgoBot> ​18
21:45:43 <oklopol> i don't actually even know what this AC thing is
21:45:48 <CakeProphet> air conditioning...
21:45:49 <oklopol> i wonder if we have those in finland
21:45:55 <oklopol> i know what it *means*
21:45:58 <Phantom_Hoover> 18°... that registers as "cool room" for me.
21:46:07 <oklopol> or what it's an acronym for i mean
21:46:10 <oklopol> i just don't know what that is
21:46:12 <CakeProphet> Phantom_Hoover: yep. that's what 65 is in Fahrenheit
21:46:27 <Phantom_Hoover> Although when the heating is off my breath has fogged indoors in May.
21:46:42 <CakeProphet> it kind of works like a fucked up school grade. from 0 to 100
21:47:07 <CakeProphet> ...kind of.
21:47:29 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/hw9zx/what_happens_to_computer_files_when_you_delete/
21:47:59 <CakeProphet> !sanetemp 35
21:48:00 <EgoBot> ​1
21:48:08 <oerjan> > 1/39
21:48:08 <lambdabot> 2.564102564102564e-2
21:48:09 <CakeProphet> !sanetemp 44
21:48:10 <EgoBot> ​6
21:48:18 <CakeProphet> some typical winter temperatures in the south US.
21:48:28 <CakeProphet> !sanetemp 15
21:48:29 <EgoBot> ​-9
21:48:32 <CakeProphet> occasionally it gets pretty low.
21:48:38 -!- oklofok has joined.
21:49:08 <Phantom_Hoover> CakeProphet, FWIW, we were significantly incapacitated by about 20cm of snow this winter.
21:49:19 -!- oklopol has quit.
21:49:50 <CakeProphet> 2 inches of snow in Georgia = oh my god everyone shut down everything
21:50:19 <oklofok> suddenly, mirc pops up a window saying i need to register it. so i had to open the program a few times to get it to accidentally have a continue button instead of an exit button.
21:50:48 <oerjan> !delinterp sanetemp
21:50:48 <EgoBot> ​Interpreter sanetemp deleted.
21:50:58 <oerjan> !addinterp sanetemp sh dc -e "1k?32-5*9/p"
21:50:58 <EgoBot> ​Interpreter sanetemp installed.
21:51:06 <oerjan> !sanetemp 70
21:51:06 <EgoBot> ​21.1
21:51:11 <oklofok> so you're removing interpreters but not bans?
21:51:28 * oerjan couldn't bear seeing an approximate number printed as an integer
21:52:01 <oerjan> also yes, the number of interpreters has got a bit large
21:52:06 <oerjan> !userinterps
21:52:06 <EgoBot> ​Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decisionengine drawl drome dubya echo eehird ehird elmer fudd google graph gregor gregor__1 hello id jethro kraut lperl lsh map num ook pansy pi pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot26 rot47 rot52 sadbf sanetemp sfedeesh sffedeesh sh__ simpleacro simplename slashes svedeesh swedish ucat
21:52:16 <CakeProphet> :t (>>=)
21:52:17 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m a -> (a -> m b) -> m b
21:52:19 <oerjan> it's cut off again, there are more
21:52:49 <oerjan> Gregor: any suggestions for the too many userinterps problem?
21:52:52 <twice11> !rot26 test
21:52:52 <EgoBot> ​test
21:52:57 <twice11> remove that one?
21:53:10 <twice11> And rot52 at the same time?
21:53:11 <oerjan> !show rot26
21:53:11 <EgoBot> ​sh cat
21:53:13 <CakeProphet> all of the rots except 13 and 47 are cats.
21:53:16 <oerjan> !show rot52
21:53:16 <EgoBot> ​sh cat
21:53:21 <oerjan> !delinterp rot26
21:53:22 <EgoBot> ​Interpreter rot26 deleted.
21:53:25 <oerjan> !delinterp rot52
21:53:25 <EgoBot> ​Interpreter rot52 deleted.
21:53:32 <oerjan> !userinterps
21:53:33 <EgoBot> ​Installed user interpreters: aol austro b1ff bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decisionengine drawl drome dubya echo eehird ehird elmer fudd google graph gregor gregor__1 hello id jethro kraut lperl lsh map num ook pansy pi pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh sh__ simpleacro simplename slashes svedeesh swedish ucat valspeak war
21:53:52 <oerjan> i already removed a bunch before
21:53:56 <oerjan> !show ucat
21:53:56 <EgoBot> ​unlambda ``cd``d`@|`cd
21:54:01 <oerjan> !delinterp ucat
21:54:01 <EgoBot> ​Interpreter ucat deleted.
21:54:28 <oerjan> oh wait
21:54:30 <twice11> !show aol
21:54:31 <EgoBot> ​sh b1ff
21:54:35 <oerjan> someone has readded those i removed
21:54:53 <oerjan> !help
21:54:53 <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>.
21:55:04 <oerjan> !help languages
21:55:05 <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.
21:55:20 <CakeProphet> !addinterp ustemp haskell printLn . (+32) . ((9/5)*) . read =<< getLine
21:55:20 <EgoBot> ​Interpreter ustemp installed.
21:55:23 <Phantom_Hoover> <CakeProphet> 2 inches of snow in Georgia = oh my god everyone shut down everything
21:55:46 * oerjan goes hunting for the culprit
21:55:50 <CakeProphet> !ustemp 0
21:55:54 <Phantom_Hoover> Have I pointed that this is two inches of snow at the same latitude that polar bears live at.
21:56:07 <CakeProphet> no. that's surprising.
21:56:17 <CakeProphet> ..huh, well obviously I fucked something up.
21:56:19 <oerjan> hm or wait
21:56:39 <CakeProphet> > (+32) . ((9/5)*) . read $ "0"
21:56:41 <lambdabot> 32.0
21:56:48 <CakeProphet> !delinterp ustemp
21:56:49 <EgoBot> ​Interpreter ustemp deleted.
21:57:04 <CakeProphet> !addinterp ustemp haskell (printLn . (+32) . ((9/5)*) . read) =<< getLine
21:57:05 <EgoBot> ​Interpreter ustemp installed.
21:57:17 <Phantom_Hoover> Also you cannot compete with that dc code don't even try.
21:57:20 <CakeProphet> !ustemp 0
21:57:36 <CakeProphet> Phantom_Hoover: not trying to, just unrustifying myself with Haskell, poorly. :P
21:57:59 <Sgeo> My dad is under the impression that people will sneak drugs into you at raves
21:58:05 <CakeProphet> heh
21:58:06 <Phantom_Hoover> ...into you?
21:58:10 <Phantom_Hoover> As in spiking drinks/
21:58:13 <CakeProphet> !show simpleacro
21:58:14 <EgoBot> ​haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!)
21:58:17 <Sgeo> Phantom_Hoover, I guess
21:58:23 <Phantom_Hoover> I'm really hoping he actually thinks they sneak them into you.
21:58:40 <Phantom_Hoover> Like, they surreptitiously insert them surgically.
21:58:56 <elliott> X-D
21:59:02 <CakeProphet> :t printLn
21:59:02 <lambdabot> Not in scope: `printLn'
21:59:04 <elliott> Surprise suppository!
21:59:05 <CakeProphet> lol
21:59:20 <Sgeo> I told him about a party I want to go to, but it's from 11pm-4am. He claims it's a drug party, and to look up "raves". I say that I'm fully capable of not taking drugs, he says they'll get drugs into you
21:59:24 <CakeProphet> :t putStrLn
21:59:24 <lambdabot> String -> IO ()
21:59:27 <CakeProphet> :t print
21:59:28 <lambdabot> forall a. (Show a) => a -> IO ()
21:59:33 <CakeProphet> !delinterp ustemp
21:59:34 <EgoBot> ​Interpreter ustemp deleted.
21:59:38 <twice11> print already outputs a line feed. No need for printLn
21:59:41 <CakeProphet> !addinterp ustemp haskell (print . (+32) . ((9/5)*) . read) =<< getLine
21:59:42 <EgoBot> ​Interpreter ustemp installed.
21:59:47 <CakeProphet> !ustemp 0
21:59:50 <EgoBot> ​32.0
21:59:54 <ais523> Sgeo: drinks being spiked is actually relatively common, although you can avoid it by paying attention
22:00:10 <elliott> ais523: have you ever been to a rave
22:00:14 <Phantom_Hoover> Sgeo, counterspike your drinks.
22:00:15 <oklofok> Sgeo: tell him it's your body and you can use as much heroin as you like if it makes you happy
22:00:16 <oklofok> how's this
22:00:28 <CakeProphet> I've never heard of drink spiking at raves
22:00:28 <ais523> elliott: I don't think so
22:00:31 <oklofok> yeah pour liters of water in there
22:00:34 <CakeProphet> but I'm sure it happens.
22:00:39 <elliott> ais523: damn, i was hoping i would be surprised
22:00:40 <Phantom_Hoover> oklofok, given that Sgeo's dad houses him and pays for his 'education'...
22:00:42 <ais523> I was once in a nightclub by mistake
22:00:45 <CakeProphet> but me nor any of my friends that have gone have never had that happen.
22:00:52 <ais523> what happened was, I was trying to watch election results
22:00:58 <CakeProphet> drugs are expensive. It would be a waste to use them on a random stranger.
22:01:01 <ais523> and the room I was in was being converted into a nightclub while the results were on
22:01:01 <elliott> Phantom_Hoover: I don't need education, I have drugs!
22:01:07 <elliott> ais523: are you sure that wasn't a dream
22:01:13 <ais523> no, it was quite ridiculous
22:01:16 <elliott> `addquote [on spiking] <CakeProphet> drugs are expensive. It would be a waste to use them on a random stranger.
22:01:17 <HackEgo> ​452) [on spiking] <CakeProphet> drugs are expensive. It would be a waste to use them on a random stranger.
22:01:20 <ais523> especially as it meant we got in without paying the entry fee
22:01:30 <ais523> it was inevitable, thinking about it
22:01:36 <oerjan> CakeProphet: if you accepted DCC CHAT from EgoBot you would actually get error messages for your haskell, you know
22:01:37 <elliott> CakeProphet: I actually quite line that line
22:01:44 <ais523> because the room in question is one used by different people in the same organisation for a range of purposes
22:01:53 <CakeProphet> oerjan: ah. see I'd have to alt+1 to see that.
22:02:01 <ais523> and one of them had told us to use it for the election results without thinking about the other set of people using it as a nightclub once a week
22:02:01 <oklofok> Phantom_Hoover: he should just go to a free university and live off the money the government pays him every month for like 7 years.
22:02:02 <CakeProphet> that will be helpful in the future.
22:02:03 <oklofok> OH WAIT
22:02:06 <Phantom_Hoover> I do not believe ais523 would be allowed near a nightclub.
22:02:14 <elliott> CakeProphet: On a forum I'm on, someone once responded to a (well-known) idiot saying that dealers were, like, the most scary dangerous people on EARTH by saying that killing your customers is bad for business :)
22:02:21 <elliott> Phantom_Hoover: He's too young.
22:02:24 <ais523> Phantom_Hoover: I'd have to explicitly go and take my passport with me to have any sort of ID
22:02:28 <Phantom_Hoover> His beard marks him as untrustworthy.
22:02:34 <CakeProphet> elliott: haha. nice.
22:02:42 <CakeProphet> dealers come in all kinds of varieties, of course.
22:02:54 <ais523> apart from my university ID card, which used to get into pubs on occasion even though it isn't really valid ID
22:03:01 <ais523> *which I used
22:03:05 <elliott> hmm
22:03:09 <ais523> although admittedly the typo is funnier
22:03:12 <elliott> if we had an underage Queen, technically she could get into any nightclub she wanted
22:03:24 <elliott> after all, all passports are issued by her authority
22:03:30 <elliott> TODO: test this
22:03:34 <ais523> (I don't actually drink anything in pubs, I just go there to order food, and confuse the bar staff when I don't order any drink to go with it)
22:03:43 <CakeProphet> lol @ the UK having a queen.
22:03:45 <Phantom_Hoover> This could quite easily become the most awesome experiment ever conducted.
22:03:55 <Sgeo> ais523, not even water?
22:03:59 <Phantom_Hoover> CakeProphet, noöne cares.
22:04:05 <elliott> CakeProphet: Having fun deifying your political classes?
22:04:13 <ais523> Sgeo: it's much cheaper to drink water when I get home
22:04:16 <CakeProphet> ...deifying?
22:04:19 <elliott> CakeProphet: I can't tell you how much I prefer idolising the royal family over idolising Sarah fucking Palin.
22:04:29 <elliott> The amount would simply not fit into the universe.
22:04:36 <CakeProphet> as far as I know most logical people hate Sarah Palin.
22:04:45 <elliott> Congratulations, you missed the point entirely.
22:04:46 <Phantom_Hoover> CakeProphet, see also the US attitude towards patriotism and its foundation.
22:05:08 <CakeProphet> elliott: no I got the point.
22:05:26 <Phantom_Hoover> You'd think you were founded by a race of demigods who descended from the heavens to fight off the moustache-twiddlingly evil British and reclaim their rightful land.
22:05:28 <elliott> Nobody with enough of a brain gives a shit about Sarah Palin or the royal family or anything, but patriotism will always exist and it needs someone to be all hyped up about, and a powerless monarchy is a better target than a dangerous idiot.
22:05:36 <CakeProphet> though, it's not a good rebuttal to what I said. I was simply commenting on the strageness of a modern nation having a queen.
22:06:02 <CakeProphet> I wasn't saying that you idolize her... at all.
22:06:02 <Phantom_Hoover> elliott, France and Germany don't seem to have too bad a time of it.
22:06:06 <elliott> CakeProphet: You realise the Commonwealth is pretty big right?
22:06:13 <CakeProphet> of course.
22:06:27 <elliott> Phantom_Hoover: Yeah, but do you want to risk it? Heard of Berlusconi/
22:06:29 <elliott> [asterisk]?
22:06:29 <oklofok> elliott: that's a rationalization tho, can't we laugh at you having a queen because you actually have it for retarded reasons?
22:06:48 <elliott> oklofok: it's not a rationalisation so much as a reason to keep a now-useless remnant
22:06:50 <oerjan> <ais523> Sgeo: it's much cheaper to drink water when I get home <-- huh. in norway it's established that establishments cannot take more than a token payment for tapwater.
22:07:02 <Phantom_Hoover> elliott, you're reducing vastly complex social factors into an extremely simplistic view.
22:07:05 <elliott> oerjan: Yes but you're communists.
22:07:07 <CakeProphet> wait, you have to pay for water?
22:07:10 <elliott> Phantom_Hoover: Welcome to IRC.
22:07:18 <oklofok> elliott: are you sure that's one of the actual reasons you keep it?
22:07:22 <elliott> It's about four times more verbose than Twitter.
22:07:31 <CakeProphet> water is pretty much universally free at establishments in the states.
22:07:36 <elliott> oklofok: you're acting like I have the power to individually abolish the monarchy
22:07:42 <elliott> I'm expressing my personal opinion
22:07:42 <ais523> oklofok: major practical advantage of having a Queen: it means that we have someone we can send abroad for state visits to shake hands without having to take the Prime Minister away from the actual job of governing
22:07:54 <Phantom_Hoover> elliott, your argument is completely flawed as a result, though.
22:08:02 <elliott> ais523: I dunno, I think I'd prefer an excuse to take the PRime Minister away from governing
22:08:05 <ais523> most Universities have a Chancellor for the same reason, while the Vice-Chancellor does all the actual work
22:08:14 <ais523> elliott: I'm talking in general
22:08:15 <elliott> Phantom_Hoover: maybe if this wasn't IRC I'd actually bother fleshing out my argument rather than stating it off-hand as part of banter
22:08:18 <elliott> ais523: It was a joke
22:08:20 <Phantom_Hoover> I mean, people in the UK are not as patriotic as those in the US; it's not a fixed thing/
22:08:21 <ais523> or do you dislike prime ministers in general?
22:08:21 <elliott> [asterisk]Prime
22:08:23 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:08:29 <Sgeo> Agora needs someone who can shake online hands.
22:08:42 <elliott> while Sgeo does all the work of protecting it from invasion?
22:09:11 <oklofok> elliott: i called it a rationalization because i thought it was a personal opinion. then you said it's a reason so i figured maybe that's somehow explicitly stated in secret government files you read every day.
22:09:19 <elliott> oklofok: it is totes
22:09:30 <oklofok> YOU KNOW FROM WIKILEAKS OR SOMETHING
22:09:30 <elliott> oklofok: nah, I'm not saying why I think we have a queen
22:09:40 <elliott> I'm saying why I don't particularly think getting rid of the queen is something to bother doing
22:09:46 <elliott> not that it would ever happen, anyway
22:09:55 <elliott> oklofok: wikileaks? lol hello i am the prime minister
22:10:19 <CakeProphet> Phantom_Hoover: depends on the person of course. Most of my personal friends are very disappointed with American government, and the few UKers that I've met have been oddly patriotic.
22:10:24 <oerjan> <CakeProphet> wait, you have to pay for water? <-- not in practice.
22:10:35 <elliott> CakeProphet: How many national treasures does the US have ;D
22:10:44 <CakeProphet> elliott: way too fucking many. :P
22:10:52 <oklofok> elliott: oh that would explain why you're so stupid hahahahahahahaha
22:10:55 <CakeProphet> too many being more than 0
22:11:04 <elliott> CakeProphet: I don't think you know what national treasure (is used to) mean(s)
22:11:08 <elliott> oklofok: hahahaha yeah
22:11:12 <elliott> im gonna fire the nukes
22:11:15 <olsner> oerjan: you don't have places that resell bottled tapwater? we do
22:11:38 <CakeProphet> elliott: No I do, but there are also these shitty films you see....
22:11:43 <Phantom_Hoover> CakeProphet, well, it's rare that you see any prominent figures in the UK calling us the "greatest nation on Earth".
22:11:53 <Phantom_Hoover> In the US...
22:12:38 <CakeProphet> Phantom_Hoover: there's quite a large current of disatisfaction with the US government in the states. Of course, it doesn't show as much in the political sphere. 18:02 < CakeProphet> elliott: haha. nice.
22:12:42 <CakeProphet> 18:02 < CakeProphet> dealers come in all kinds of varieties, of course.
22:12:45 <CakeProphet> 18:02 < ais523> apart from my university ID card, which used to get into pubs on occasion even though it isn't really valid ID
22:12:48 <CakeProphet> ....?
22:12:51 <CakeProphet> no clue how that happened.
22:12:54 <ais523> CakeProphet: it was a typo
22:12:56 <pikhq> "Large current" is understating it.
22:13:00 <ais523> which I corrected on the next line
22:13:04 <ais523> although admittedly it's a funny typo
22:13:14 <oklofok> yeah three lines of spam is a hilarious typo
22:13:51 <elliott> ais523: your university id card is the life of the party man
22:14:23 <oerjan> <olsner> oerjan: you don't have places that resell bottled tapwater? we do <-- of course we do, you don't have to buy it though
22:14:32 <olsner> a restaurant in my town have *their own brand* of bottled water that is "here-bottled", i.e. they fill it from the tap before they give it to you... and it costs at least as much as brand-name water imported from the other end of europe would've costed
22:14:53 <oklofok> :D
22:14:57 <Gregor> Awesome.
22:14:59 <olsner> tap water in a glass is "not part of their concept" (quote is actual quote)
22:15:41 <oklofok> i'm speechless, he said out loud.
22:16:28 <elliott> not part of their concept :D
22:17:22 <CakeProphet> so what's gas in the UK?
22:17:35 <oklofok> 2
22:17:40 <CakeProphet> ...ah yes.
22:17:49 <oklofok> i don't know tho
22:17:54 <ais523> CakeProphet: UK "gas" = the state of matter after it's been vaporised, US "gasoline" = UK "petrol"
22:17:58 <ais523> I'm not quite sure what the question means
22:18:04 <oklofok> but that's probably a realistic guess compared to what others will say
22:18:11 <oklofok> oh there you go
22:18:14 <oklofok> first contestant
22:18:17 <CakeProphet> ais523: what is the price of "petrol" in various parts of the UK.
22:18:26 <oklofok> OH THAT'S WHAT YOU MEANT!
22:18:28 <ais523> oh, about £1.30 per litre at the moment
22:18:35 * CakeProphet facepalm. :P
22:18:37 <oklofok> hey pretty close
22:18:53 <elliott> I like how Americans complain about the price of petrol so much
22:18:55 <ais523> <Google> (UK£ 1.30) per litre = 7.99225346 U.S. dollars per US gallon
22:18:56 <elliott> when it's more expensive everywhere else
22:19:09 <Phantom_Hoover> elliott, EXCEPT VENEZUELA
22:19:13 <elliott> Phantom_Hoover: FUCK YEAH
22:19:23 <elliott> http://www.eia.gov/oil_gas/petroleum/data_publications/wrgp/mogas_home_page.html
22:19:23 <oklofok> what would you ever need petrol for
22:19:27 <Phantom_Hoover> http://www.datadev.com/degausser-hard-drive-data-security-erase-v6000-conveyor.html
22:19:28 <elliott> it's a whole THREE DOLLARS PER GALLON in the US zomg
22:19:30 <Phantom_Hoover> Awesome.
22:19:32 <oklofok> newsflash: it doesn't actually taste that good
22:19:34 <elliott> INSANE PRICE
22:19:35 <pikhq> elliott: Americans also have 20 mile one-way commutes.
22:19:40 <elliott> `addquote <oklofok> what would you ever need petrol for <oklofok> newsflash: it doesn't actually taste that good
22:19:41 <HackEgo> ​453) <oklofok> what would you ever need petrol for <oklofok> newsflash: it doesn't actually taste that good
22:19:43 <CakeProphet> the price of gas where I live is $3.50 per gallon.
22:19:45 <ais523> oklofok: it's actually poisonous, so I advise against drinking it
22:20:01 <ais523> let's call it $8 per gallon in the UK, because my originally stated price was approximate anyway
22:20:05 <Phantom_Hoover> ais523, also contains benzene, my carcinogen of choice.
22:20:26 <CakeProphet> though I believe in some parts of the states it goes over $4 per gallon. -gasp- WHICH IS OUTRAGEOUS.
22:20:32 <elliott> `addquote [on petrol] <ais523> oklofok: it's actually poisonous, so I advise against drinking it <Phantom_Hoover> ais523, also contains benzene, my carcinogen of choice.
22:20:33 <HackEgo> ​454) [on petrol] <ais523> oklofok: it's actually poisonous, so I advise against drinking it <Phantom_Hoover> ais523, also contains benzene, my carcinogen of choice.
22:20:38 <oklofok> "<pikhq> elliott: Americans also have 20 mile one-way commutes." <<< one-way commutes? you have like disposable jobs?
22:20:40 <elliott> CakeProphet: In CALIFURNIA
22:20:45 <olsner> "<oklofok> hmm, so this is fuel? will it also fuel me perhaps?"
22:20:47 <pikhq> oklofok: "20 miles, one way".
22:20:47 <elliott> `addquote <oklofok> "<pikhq> elliott: Americans also have 20 mile one-way commutes." <<< one-way commutes? you have like disposable jobs?
22:20:48 <HackEgo> ​455) <oklofok> "<pikhq> elliott: Americans also have 20 mile one-way commutes." <<< one-way commutes? you have like disposable jobs?
22:20:53 <elliott> `quote
22:20:53 <elliott> `quote
22:20:54 <elliott> `quote
22:20:54 <elliott> `quote
22:20:54 <HackEgo> ​239) * pikhq sticks several thousand kg m^2/A s^3 through elliot <elliott> pikhq: I'm underage!
22:20:55 <elliott> `quote
22:20:55 <HackEgo> ​251) <zzo38> Maybe they should just get rid of Minecraft. If more people want it someone can make using GNU GPL v3 or later version, with different people, might improve slightly.
22:20:56 <HackEgo> ​224) <Phantom_Hoover> [...] I'm just widening the shaft to be 4x2 or so.
22:20:57 <HackEgo> ​260) <elliott> clue is a language for beauty, not usefulness <elliott> or ability to run at all <oklopol> ability to run at all is not even close to a design goal, no
22:20:58 <HackEgo> ​336) <fungot> Phantom_Hoover: if the list is in random order, like poor ehird here
22:20:58 <olsner> but I guess oklofoks are *not* in fact petrol driven
22:20:58 <ais523> this is a good day for `addquote
22:21:00 * oklofok seems to be on fire.
22:21:10 <elliott> ais523: what a fine day to add quotes indeed.
22:21:17 <Phantom_Hoover> kg m^2/A s^3
22:21:18 <pikhq> Also, public transit is not really an option outside of most of New York City.
22:21:22 <Phantom_Hoover> That made sense up to the A.
22:21:26 <elliott> We need like ten quotes about petrol, at LEAST.
22:21:30 <Phantom_Hoover> What is that? G/current/
22:21:34 <ais523> I didn't even notice 336 was fungot at first
22:21:41 <ais523> it would have been plausible from many other memvers of the channel
22:21:45 <ais523> *members
22:21:46 <elliott> `quote like wtf
22:21:47 <HackEgo> ​131) <fungot> alise: why internet is like wtf
22:21:53 <Phantom_Hoover> Oh, wait, that's not what the unit of G is.
22:21:57 <elliott> I always imagine a badly-made robot prop saying that in a robot voice.
22:21:58 <elliott> It is hilarious.
22:21:59 <pikhq> Phantom_Hoover: That's, uh, a volt in SI base units.
22:22:03 <elliott> It is just so confused as to why internet is like wtf.
22:22:07 <olsner> hmm, are those markov chain quotes?
22:22:09 <Phantom_Hoover> pikhq, ah.
22:22:10 <ais523> pikhq: I was trying to decode it in my head
22:22:13 <ais523> but got confused
22:22:15 <elliott> olsner: do you... not know of fungot
22:22:33 <ais523> olsner: they're markov chain quotes generated by a bot written in Funge-98
22:22:33 <CakeProphet> `quote fishing
22:22:34 <HackEgo> No output.
22:22:36 <ais523> which isn't here right now
22:22:38 <elliott> olsner: http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
22:22:38 <CakeProphet> `quote fish
22:22:40 <HackEgo> No output.
22:22:42 <ais523> `quote
22:22:42 <elliott> ais523: it's not actually markov, IIRC
22:22:43 <HackEgo> ​349) <ais523> elliott: hey, thinking's easier than using the Internet
22:22:45 <elliott> It's a different kind of chain thing
22:22:50 <CakeProphet> `quote porn
22:22:51 <HackEgo> ​33) <ehird> pikhq: A lunar nation is totally pointless. <fungebob> ehird: consider low-gravity porn <ehird> fungebob: OK. Now I'm convinced. \ 63) <Warrigal> Porn. <Warrigal> There, see? \ 77) <coppro> SF.net porn :/ <ehird> Oh yeah, baby, gimme that... bloated download page? \ 132) <DoctorDog> I am an inherently pornographic
22:23:05 <olsner> elliott: I know it's a bot and I've seen it speak, and you've probably told me before what it was
22:23:07 <elliott> `quote mathematics
22:23:08 <HackEgo> No output.
22:23:10 <tswett> `quote 132
22:23:11 <elliott> `quote death
22:23:12 <HackEgo> ​132) <DoctorDog> I am an inherently pornographic being.
22:23:13 <HackEgo> ​135) <alise> like, just like I'd mark "Bob knob hobs deathly poop violation EXCREMENT unto;" as English <ais523> alise: that's great filler <alise> ais523: well it contains all the important words in the english language...
22:23:19 <elliott> best quote about death
22:23:30 <ais523> best quote about anything
22:23:39 <tswett> `quote anything
22:23:40 <HackEgo> ​104) <dtsund> For those who don't know: INTERCAL is basically the I Wanna Be The Guy of programming languages. Not useful for anything serious, but pretty funny when viewed from the outside. \ 413) <ZOMGMODULES> I can trust elliott_ to have an opinion on anything and everything <elliott_> Yes. <elliott_> And the best thing is:
22:23:53 <elliott> `quote 413
22:23:54 <HackEgo> ​413) <ZOMGMODULES> I can trust elliott_ to have an opinion on anything and everything <elliott_> Yes. <elliott_> And the best thing is: it is the correct opinion.
22:23:54 <ais523> it's always the /right/ opinion
22:23:55 <elliott> a very important quote number
22:24:02 <ais523> bleh, misquoted slightly
22:24:09 <Phantom_Hoover> elliott, oh god.
22:24:13 <Phantom_Hoover> `quote 612
22:24:14 <HackEgo> No output.
22:24:23 <Phantom_Hoover> Huh.
22:24:25 <oklofok> `quote math
22:24:26 <HackEgo> ​149) <Mathnerd314> Gregor-P: I don't think lambda calculus is powerful enough \ 190) <fizzie> It's like mathematicians, where the next step up from "trivial" is "open research question". <fizzie> "Nope... No...This problem can't be done AT ALL. This one--maybe, but only with two yaks and a sherpa. ..."
22:24:29 <elliott> Phantom_Hoover: I'll fix delquote soon and everything will reorder.
22:24:32 <Phantom_Hoover> I thought we were well beyond 800.
22:24:35 <elliott> I should modify the quote system to remember IDs really.
22:24:42 <elliott> Phantom_Hoover: No, we've just recently entered the four-hundreds.
22:24:59 <oerjan> !show b1ff
22:24:59 <EgoBot> ​sh b1ff
22:25:02 <oerjan> !show aol
22:25:02 <EgoBot> ​sh b1ff
22:25:08 <oerjan> !delinterp b1ff
22:25:08 <EgoBot> ​Interpreter b1ff deleted.
22:25:18 <Phantom_Hoover> !aol what does this do
22:25:19 <EgoBot> ​WHAT DUZ THI5 DO
22:25:25 <Phantom_Hoover> Ah.
22:25:30 <oklofok> maybe if i bought more petrol we'd get over 800 sooner. you know, because then i could be on fire all the time.
22:25:31 <oerjan> !userinterps
22:25:32 <EgoBot> ​Installed user interpreters: aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decisionengine drawl drome dubya echo eehird ehird elmer fudd google graph gregor gregor__1 hello id jethro kraut lperl lsh map num ook pansy pi pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh sh__ simpleacro simplename slashes svedeesh swedish ustemp valspeak warez
22:25:41 <oerjan> !show sh__
22:25:41 <EgoBot> ​perl $_=<>;print `$_`
22:25:42 <Phantom_Hoover> !pi
22:25:42 <EgoBot> ​3.14156
22:25:45 <Gregor> !Gregor durpaderp
22:25:49 <oerjan> !delinterp sh__
22:25:49 <EgoBot> ​Interpreter sh__ deleted.
22:25:51 <olsner> !swedish herp derp
22:25:52 <EgoBot> ​herp derp
22:25:56 <elliott> !aol THE FACT THAT I WILL BE HELPFUL IS AN IMMUTABLE FACT THAT I AM STATING FOR THE RECORD
22:25:56 <EgoBot> ​THE FACT THAT I WILL BE HELPFUL IS AN 1MMUTABLE FACT THAT I AM 5TAT1NG FOR THE RECORD
22:25:59 <olsner> !swedish flarglblalrdk
22:26:00 <EgoBot> ​flerglblelrdk
22:26:01 <elliott> pah
22:26:08 <oerjan> !show warez
22:26:09 <EgoBot> ​sh warez
22:26:11 <olsner> !swedish auieo
22:26:11 <EgoBot> ​ooeeeu
22:26:11 <oklofok> egoegoegoegoegoegoegoego
22:26:16 <oklofok> egoegoegoegoegoegoegoegoegoegoegoegoegoego
22:26:21 <elliott> okokokokokokokokokokookok
22:26:22 <elliott> fuck
22:26:23 <oklofok> okokokokokokokokokokokokokokokokokokokokokokokokokokokokokoko
22:26:24 <CakeProphet> oerjan: but you just deleted our most powerful sh command!
22:26:25 <oklofok> okokokokokokokoko
22:26:26 <oklofok> okokokokokoko
22:26:27 <oklofok> okokokoko
22:26:29 <oklofok> okoko
22:26:29 <oklofok> o
22:26:32 <oklofok> okokokokokokokokoko
22:26:34 <oklofok> okokokokokokokoko
22:26:36 <oklofok> okokokokokokoko
22:26:38 <oklofok> okokokokokoko
22:26:40 <oklofok> okokokokoko
22:26:42 <oklofok> okokokoko
22:26:44 <oklofok> okokoko
22:26:44 <oklofok> okoko
22:26:45 <elliott> this is a good day on esoteric
22:26:45 <oklofok> oko
22:26:45 <oklofok> o
22:26:51 <Gregor> !quote fuck
22:26:52 <Gregor> Erm
22:26:52 <oerjan> CakeProphet: this is more powerful than plain !sh how?
22:26:53 <elliott> definite A+ quality irc
22:26:54 <Gregor> `quote fuck
22:26:55 <HackEgo> ​247) <ais523> I love the way zzo38's comment was cut off after the f of brainfuck <ais523> that's just the most hilarious place to cut it off in a discussion about censorshi \ 302) <oerjan> <Gregor> oerjan: Tell us what (a(b{c}d)*2e)%2 expands to <-- ababcdbcdedbabcdbcdede, i think <Gregor> oerjan: What - the - fuck \ 326)
22:26:56 <elliott> `pastequotes fuck
22:26:57 <HackEgo> ​http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.16753
22:27:00 <CakeProphet> oerjan: because it's written in Perl, of course.
22:27:03 <CakeProphet> :3
22:27:11 <oerjan> ooooooh
22:27:13 <oklofok> "<HackEgo> ​247) <ais523> I love the way zzo38's comment was cut off after the f of brainfuck <ais523> that's just the most hilarious place to cut it off in a discussion about censorshi" <<< best ever, maybe
22:27:44 <CakeProphet> `quote quote
22:27:45 <HackEgo> ​37) <oklopol> i can get an erection out of a plank, you can quote me on that. \ 95) [Warrigal] `addquote <Dylan> hahaha, Lawlabee is running windows <Lawlabee> 'cuz it's pretty awesome. [Lawlabee] Warrigal: :( \ 97) Note that quote number 124 is not actually true. \ 109) <ais523> let's put that in the HackEgo quotes files,
22:28:00 <oerjan> !show rot47
22:28:00 <EgoBot> ​perl $_=<>;tr/!-~/P-~!-O/;print
22:28:05 <oerjan> !show rot13
22:28:05 <EgoBot> ​bf (sending via DCC)
22:28:10 <elliott> `quote art
22:28:11 <HackEgo> ​3) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 6) <Quas_NaArt> His body should be given to science. <GKennethR> He's alive :P <GreenReaper> Even so. \ 11) <Lil`Cube> wouldn't that be considered pedophilia? <Quas_NaArt>
22:28:11 <oerjan> eek
22:28:13 <elliott> `quote \bart\b
22:28:14 <HackEgo> No output.
22:28:18 <olsner> why does hackego do the weird invisible character thing? link recognition fails :/
22:28:20 <oerjan> !rot12 test
22:28:25 <oerjan> !rot13 test
22:28:26 <EgoBot> ​grfg
22:28:29 <ais523> `quote funge
22:28:29 <elliott> olsner: because Gregor is bad and horrible
22:28:30 <oerjan> !rot47 test
22:28:30 <EgoBot> ​E6DE
22:28:30 <HackEgo> ​33) <ehird> pikhq: A lunar nation is totally pointless. <fungebob> ehird: consider low-gravity porn <ehird> fungebob: OK. Now I'm convinced. \ 249) <fizzie> The Perl script is probably slower than the Befunge code. \ 271) <elliott> in retrospect that wasn't even necessary, as communal readings of the Funge-98 spec do just a
22:28:35 <Gregor> olsner: Shut your link-recognition whore mouth!
22:28:36 <CakeProphet> woah, a bf rot13 sounds insanely complicated.
22:28:38 <elliott> and hates botloops even more than he hates not being terrible
22:28:43 <elliott> or
22:28:44 <tswett> `quote 124
22:28:44 <elliott> the opposite of that
22:28:45 <HackEgo> ​124) <Gregor> Well yeah, but furthermore unlike, oh, say, an Apple product, you don't have to sign their "we own your sperm" license agreement to GET that SDK and the requisite libraries. ... <Gregor> pikhq: Sure, but it's the only way Apple could get a first-born-son clause into a modern licensing agreement without infringing
22:28:45 <elliott> dunno
22:28:46 <ais523> CakeProphet: it's not massively bad
22:29:02 <ais523> the hard part is working less-than and greater-than operators
22:29:15 <olsner> elliott: hmm, who's running Gregor? can we patch it?
22:29:21 <elliott> CakeProphet: http://www.hevanet.com/cristofd/brainfuck/rot13.b is a ... longer version than
22:29:21 <elliott> i think
22:29:24 <elliott> theres an anagolf one of it
22:29:24 <CakeProphet> ais523: ah, yeah nevermind. For some reason I was thinking you had to load the entire string into memory at once. That is silly.
22:29:26 <oklofok> i don't particularly like apples
22:29:34 <elliott> olsner: EgoBot is running Gregor
22:29:41 <oklofok> they have that thing inside them that tastes like meh
22:29:43 <Phantom_Hoover> oklofok, better than pears.
22:29:53 <ais523> CakeProphet: even if you did, it still wouldn't make a significant difference
22:30:00 <oklofok> pears also have shit inside them
22:30:01 <ais523> loading one string into memory is one of the few things that BF is actually very good at
22:30:05 <CakeProphet> oerjan: it's like rot13 but with numbers and symbols too.
22:30:18 <oklofok> the taste of the good part is of secondary importance
22:30:30 <ais523> oklofok: you can eat just the good part and throw the rest away
22:30:30 <oerjan> <olsner> why does hackego do the weird invisible character thing? link recognition fails :/ <-- why would a prefixed character prevent link recognition?
22:30:32 <ais523> that's what I do
22:30:37 <elliott> `quote `quote
22:30:38 <HackEgo> ​407) <cpressey> `quote django <HackEgo> ​352) <olsner> django is named after a person? <olsner> thought it would be a giraffe or something <cpressey> thankfully only one \ 408) <monqy> `quote django <HackEgo> ​352) <olsner> django is named after a person? <olsner> thought it would be a giraffe or something \ 407)
22:30:40 <elliott> oerjan: because its part of the same word
22:30:43 <elliott> oerjan: consider abchttp://google.com/
22:30:47 <elliott> erm
22:30:52 <oklofok> "<ais523> oklofok: you can eat just the good part and throw the rest away" <<< if i could *first* throw the rest away and then eat, it'd be okay
22:30:54 <elliott> except that's actually a valid abchttp link, but whatever
22:31:00 <elliott> but yeah
22:31:02 <CakeProphet> django is named after AN EXCELLENT JAZZ GUITARIST.
22:31:04 <ais523> oklofok: there's a tool called a corer
22:31:13 <elliott> ais523: i think he means the actual apple
22:31:16 <ais523> if you combine that with cutting away obvious bruises, you should be OK
22:31:18 <elliott> that was the oklopol way of interpreting it
22:31:22 <Gregor> X-Chat doesn't know that zero-width space is a whitespace character.
22:31:37 <Phantom_Hoover> `quote django
22:31:38 <HackEgo> ​352) <olsner> django is named after a person? <olsner> thought it would be a giraffe or something \ 407) <cpressey> `quote django <HackEgo> ​352) <olsner> django is named after a person? <olsner> thought it would be a giraffe or something <cpressey> thankfully only one \ 408) <monqy> `quote django <HackEgo> ​352)
22:31:39 <elliott> I swear not to botloop if you remove it :P
22:31:46 <olsner> maybe (probably) xchat does not know all the unicodes
22:32:08 <oklofok> otherwise, while eating, i'll keep thinking "well this is good, but AT WHAT COST", you know, because i have to dispose of the insides after eating, have to keep track of nearest trashcan etc.
22:32:09 <elliott> i know all the unicodes
22:32:18 <Sgeo> How long will it take me to reread hivebent?
22:32:20 <elliott> ais523: oklofok just likes the skin, you see
22:32:26 <CakeProphet> I r l33t h4x0rz tht kn0 411 t3h un1c0d3s
22:32:31 <elliott> Sgeo: 0 seconds, but you won't be able to name a single event or character
22:32:37 <elliott> perfect optimised skimming
22:32:42 <olsner> oklofok: this is why fruiteaters are inferior
22:32:43 <ais523> oklofok: you don't have a trashcan in your kitchen?
22:32:48 <oklofok> "<ais523> oklofok: there's a tool called a corer" <<< that doesn't remove all of it usually
22:32:52 <ais523> or do you not eat apples there
22:32:54 <ais523> oklofok: fair enough
22:33:07 <oklofok> "<elliott> ais523: i think he means the actual apple" <<< no, one of oklopol's things is hating complicated food.
22:33:09 <oerjan> !userinterps
22:33:09 <EgoBot> ​Installed user interpreters: aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decisionengine drawl drome dubya echo eehird ehird elmer fudd google graph gregor gregor__1 hello id jethro kraut lperl lsh map num ook pansy pi pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simpleacro simplename slashes svedeesh swedish ustemp valspeak warez wc wc
22:33:15 <oerjan> !show wc
22:33:15 <EgoBot> ​sh text=`cat`; opts=`echo "$text" | sed 's/\( \|^\)[^-].*//'`; text=`echo "$text" | sed 's/.*\( \|^\)\([^-]\)/\2/'`; echo -n "$text" | wc $opts
22:33:27 <elliott> oklofok: do you like baby food
22:33:29 <elliott> its really simple
22:33:31 <elliott> oerjan: i made that one
22:33:37 <olsner> ooh, sed code!
22:33:40 <ais523> oerjan: did you just refer to yourself in the third person using a different nick from your current one?
22:33:43 <CakeProphet> !delinterp wc2
22:33:43 <EgoBot> ​Interpreter wc2 deleted.
22:33:44 <oerjan> Gregor: that list is too damn crowded
22:33:47 <oklofok> "<ais523> oklofok: you don't have a trashcan in your kitchen?" <<< yes but i don't have to keep making sure it's still there while eating
22:33:51 <ais523> *oklofok:
22:33:56 <olsner> !pi
22:33:56 <EgoBot> ​3.14156
22:33:58 <elliott> !wc http://www.google.com/
22:33:59 <CakeProphet> !show fudd
22:34:00 <EgoBot> ​10 11 705
22:34:00 <EgoBot> ​sh fudd
22:34:02 <elliott> !wc -c http://www.google.com/
22:34:02 <EgoBot> ​22
22:34:04 <oerjan> ais523: what?
22:34:04 <elliott> quality tool
22:34:09 <elliott> wait
22:34:09 <olsner> !!show pi
22:34:09 <CakeProphet> !fudd what is this I wonder
22:34:10 <EgoBot> ​what is dis I wondew
22:34:11 <ais523> and do you live in an environemnt where people might plausibly steal your trashcan while eating?
22:34:11 <elliott> lol
22:34:12 <elliott> what
22:34:14 <ais523> olsner: misping
22:34:14 <olsner> !show pi
22:34:14 <EgoBot> ​sh read p; if [ "x$p" = "x" ]; then p=5; fi; echo "scale=$p; a(1)*4;" | BC_LINE_LENGTH=490 bc -l | tr -d '\\'
22:34:16 <elliott> ok the -c stops it loading it
22:34:16 <ais523> *oerjan:
22:34:17 <elliott> hahaha
22:34:21 <oklofok> "<elliott> oklofok: do you like baby food" <<< comes in a glass jar, not particularly nice
22:34:21 <Gregor> elliott: There.
22:34:21 <CakeProphet> !elmer what is this I wonder
22:34:22 <EgoBot> ​what is this I wonduh
22:34:35 <elliott> `pastequotes test
22:34:35 <ais523> elliott: to be fair, I did catch that second misping before pressing return but it was too funny to correct
22:34:36 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.26884
22:34:44 <elliott> Gregor: ur supa kawaii ^________^
22:34:50 <oklofok> "<ais523> oerjan: did you just refer to yourself in the third person using a different nick from your current one?" <<< did you just refer to me using a different nick from any of my nicks?
22:34:54 <ais523> oklofok: yes
22:34:58 <oklofok> ais523: yes
22:34:58 <olsner> ais523: pong
22:35:08 <Phantom_Hoover> elliott, are you fixing delquote YOU BETTER BE
22:35:08 <ais523> elliott: heh, kawaii is one of the few Japanese words I actually know the meaning of
22:35:10 <elliott> oerjan: are you oklofok
22:35:12 <ais523> although I can't spell it
22:35:17 <elliott> Phantom_Hoover: k i will because i am nice
22:35:21 <CakeProphet> I wonder if fudd is a better elmer than elmer.
22:35:30 <elliott> ais523: i was using it ironically :(
22:35:33 <elliott> `url bin/delquote
22:35:34 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/delquote
22:35:52 <oklofok> yeah actually me and oerjan are the same guy
22:35:56 <elliott> `run expr "999" + 0 2>&1
22:35:57 <HackEgo> 999
22:35:59 <ais523> elliott: well of course, you aren't an anime-loving cosplaying teenage girl
22:36:04 <elliott> ais523: OR AM I?????????????????
22:36:06 <ais523> and I don't think anyone else uses it non-ironically
22:36:21 <elliott> hmm, shell is really confusing
22:36:35 <CakeProphet> ...what?
22:36:36 <elliott> `run id=999; echo $((id-9))
22:36:37 <HackEgo> 990
22:36:46 <ais523> elliott: ouch
22:36:51 <ais523> is it implying a sigil there?
22:36:57 <elliott> ais523: yeah, bash math mode is weird
22:36:58 <oklofok> ais523: outside japan or inside it either?
22:37:06 <olsner> ais523: japanese people calling stuff 'cute' might use it non-ironically a lot though
22:37:06 <elliott> `pastequotes
22:37:07 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.14184
22:37:12 <Phantom_Hoover> <ais523> elliott: well of course, you aren't an anime-loving cosplaying teenage girl
22:37:17 <ais523> oklofok: both
22:37:19 <ais523> I think
22:37:20 <Phantom_Hoover> SILENCE FOR ONE OF THEIR NUMBER WALKS AMONG US
22:37:27 <Phantom_Hoover> WE MUST NOT SPEAK OF THIS MATTER
22:37:40 <oklofok> ais523: afaiu, japanese people love cutesy things, why wouldn't they have a serious word for them?
22:37:41 <elliott> `run sh -x bin/delquote 444 2>&1
22:37:42 <HackEgo> ​+ id=444 \ + expr 444 + 0 \ + head -n 443 quotes \ + tail -n +445 quotes \ + diff quotes quotes.new \ + mv quotes.new quotes \ + echo '*poof*' \ *poof*
22:37:48 <elliott> `quote 444
22:37:49 <HackEgo> 444) <elliott> This is [...] me saying "lol im a fag".
22:37:50 <ais523> oklofok: it's a great word
22:37:57 <elliott> `run sh -x bin/delquote 445 2>&1
22:37:58 <HackEgo> ​+ id=445 \ + expr 445 + 0 \ + head -n 444 quotes \ + tail -n +446 quotes \ + diff quotes quotes.new \ + mv quotes.new quotes \ + echo '*poof*' \ *poof*
22:37:59 <elliott> `quote 444
22:38:00 <HackEgo> 444) <elliott> This is [...] me saying "lol im a fag".
22:38:01 <CakeProphet> elliott: yeah the sigil is implied in expr/$(())
22:38:03 <elliott> hmmm
22:38:03 <oklofok> ais523: ?
22:38:06 <CakeProphet> elliott: for convenience
22:38:10 <olsner> oklofok: if everything is already cute, why would you need a word for it?
22:38:19 <elliott> stop takling guys im doing serious software engineering
22:38:21 <ais523> oklofok: I mean, it's so much better than the rough English translations
22:38:30 <oklofok> ais523: so why would you only use it ironically
22:38:36 <oerjan> <elliott> oerjan: are you oklofok <-- not afaik
22:38:49 <ais523> because the meaning is one that most people wouldn't generally want to use
22:38:55 <elliott> `fetch http://sprunge.us/XWbR
22:38:57 <HackEgo> 2011-06-10 22:38:56 URL:http://sprunge.us/XWbR [214] -> "XWbR" [1]
22:39:00 <olsner> elliott: lol, "engineering" software are you?
22:39:01 <oklofok> argh, there's too much noise here, when i finally manage to answer, people have already spammed like 50 lines
22:39:07 <oklofok> whoops, meant to say that as oerjan.
22:39:14 <elliott> `run sh XWbR 455
22:39:15 <HackEgo> ​*poof*
22:39:21 <elliott> `url quotes.new
22:39:22 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/quotes.new
22:39:28 <elliott> hmm
22:39:30 <ais523> whoops, I just accidentally deleted all my email
22:39:30 <elliott> ok so it just does nothing
22:39:32 <elliott> `rm quotes.new
22:39:34 <HackEgo> No output.
22:39:34 <elliott> ais523: cool
22:39:34 <ais523> good thing the undelete is working properly
22:39:38 <elliott> lol
22:39:42 <elliott> is the mail server running on dos
22:40:00 <oklofok> "<ais523> because the meaning is one that most people wouldn't generally want to use" <<< oh well i don't know what it means past "cute"
22:40:01 <elliott> <zzo38> Learn to be Chinese and kill yourself
22:40:01 <elliott> this quote always unnerves me
22:40:09 <elliott> i find it hard to come up with reasons that zzo wouldn't flip out and become a serial killer :/
22:40:15 <elliott> but then the same applies to all of you
22:40:16 <elliott> also, everyone
22:40:24 * CakeProphet is a serial killer.
22:40:25 <olsner> hmm, you're assuming he hasn't already?
22:40:29 <elliott> olsner: oh dear
22:40:40 <oklofok> i would never flip out and become a serial killer, but it might be a very interesting career choice otherwise
22:40:49 <elliott> `fetch http://sprunge.us/FTCd
22:40:50 <HackEgo> 2011-06-10 22:40:50 URL:http://sprunge.us/FTCd [214] -> "FTCd" [1]
22:40:56 <elliott> `run sh FTCd 455
22:40:57 <HackEgo> ​*poof*
22:41:02 <elliott> wtf
22:41:03 <olsner> oklofok: the first and second part of that sentence don't seem to agree completely
22:41:12 <oklofok> olsner: i mean "flipping out" is just gay
22:41:25 <CakeProphet> oerjan: the sudden profusion of userinterps is my doing.
22:41:27 <elliott> `fetch http://sprunge.us/VASY
22:41:27 <oerjan> !show elmer
22:41:27 <EgoBot> perl for (<>) {lc; s/l(?!e\W)/w/g; s/\Ber|(?<!f)or\b/uh/g; s/ire\b/iyuh/g; s/wr\B/w/g; s/(?<![iou])r\B/w/gx; print}
22:41:29 <HackEgo> 2011-06-10 22:41:28 URL:http://sprunge.us/VASY [215] -> "VASY" [1]
22:41:37 <elliott> `run sh VASY 455
22:41:38 <HackEgo> ​*poof*
22:41:42 <elliott> wtf
22:41:43 <oklofok> if i became a serial killer, it'd be because i want to kill people, not because i'm crazy
22:41:50 <elliott> `run head -n 450 quotes | paste
22:41:52 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.15924
22:41:54 <oerjan> CakeProphet: it's a problem when we cannot list them all...
22:41:59 <elliott> im going to add <oklofok> if i became a serial killer, it'd be because i want to kill people, not because i'm crazy
22:42:01 <elliott> once ive fixed this
22:42:02 <oerjan> !ls
22:42:05 -!- kovacs has joined.
22:42:06 <olsner> right, becoming a serial killer doesn't imply that you've flipped out or even changed in personality
22:42:13 <olsner> just that you've started killing people
22:42:14 <oerjan> !sh ls -1
22:42:14 <EgoBot> interps
22:42:15 <oklofok> yes
22:42:17 <elliott> oerjan: hi, stop
22:42:23 <elliott> thanks
22:42:27 <oklofok> saying anything else is just ignorant
22:42:28 <elliott> hmmhmm
22:42:32 <elliott> `url bin/addquote
22:42:33 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/addquote
22:42:46 <oerjan> well that wasn't the right flag
22:42:58 <elliott> `run head -n $((455-1)) quotes >quotes.new
22:42:59 <HackEgo> No output.
22:43:01 <oklofok> killing people is a natural thing, which we refrain from because it's so much better than the alternative in the long run.
22:43:09 <elliott> what the fucking what
22:43:13 <elliott> `run head -n $((9-1)) quotes >quotes.new
22:43:14 <HackEgo> No output.
22:43:21 <elliott> gah how does that work but not
22:43:25 <elliott> `quote 455
22:43:25 <CakeProphet> !ls -1 interps
22:43:26 <HackEgo> No output.
22:43:27 <olsner> elliott: $((455-1)), aka 454?
22:43:27 <elliott> oh
22:43:30 <elliott> `quote 454
22:43:31 <HackEgo> No output.
22:43:34 <elliott> olsner: stfu im trying to dianogse the bug
22:43:34 <elliott> WTF
22:43:36 <elliott> `url quotes
22:43:37 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/quotes
22:43:45 <elliott> ok wait
22:43:46 <Gregor> elliott: Maaaaaaaaaaaaybe you want to take this to PM :P
22:43:47 <elliott> how many quotes are there
22:43:49 <elliott> `run wc -l quotes
22:43:49 <olsner> have fun dianogsing
22:43:50 <HackEgo> 453 quotes
22:43:52 <elliott> Gregor: fuk u im an unpaid volunter
22:43:55 <elliott> `quote 453
22:43:55 <CakeProphet> elliott: CONCENTRATE CONCENTRATE CONCENTRATE CONCENTRATE
22:43:56 <HackEgo> 453) <oklofok> "<pikhq> elliott: Americans also have 20 mile one-way commutes." <<< one-way commutes? you have like disposable jobs?
22:44:01 <elliott> `delquote 453
22:44:02 <HackEgo> ​*poof*
22:44:03 <elliott> `quote 453
22:44:04 <HackEgo> 453) <oklofok> "<pikhq> elliott: Americans also have 20 mile one-way commutes." <<< one-way commutes? you have like disposable jobs?
22:44:06 <elliott> i honestly have no idea
22:44:08 <oklofok> Gregor: lol hello welcome to #esoteric
22:44:15 <elliott> `run head -n $((453-1)) quotes >quotes.new
22:44:16 <HackEgo> No output.
22:44:21 <Gregor> elliott: Your `quote hours go directly into my GGGGC hours! By some convolution.
22:44:29 <CakeProphet> !perl print "elliott: " . "CONCENTRATE" x 30
22:44:29 <EgoBot> elliott: CONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATE
22:44:31 <elliott> `run head -n $((454-1)) quotes >quotes.new
22:44:32 <HackEgo> No output.
22:44:40 <elliott> wtf
22:44:44 <elliott> `quote 453
22:44:45 <HackEgo> No output.
22:44:49 <elliott> WHAT
22:44:56 <elliott> I DIDN'T TOUCH QUOTES
22:45:00 <elliott> `help
22:45:01 <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:45:09 <elliott> wait
22:45:11 <elliott> is it just the merging time
22:45:11 <Gregor> elliott concentrate, new from Crooked Tooth Farms
22:45:25 <elliott> `revert 423
22:45:27 <HackEgo> Done.
22:45:35 <elliott> `quotes fag
22:45:36 <HackEgo> 444) <elliott> This is [...] me saying "lol im a fag". \ 445) <elliott> This is [...] me saying "lol im a fag".
22:45:36 <elliott> `quote fag
22:45:37 <HackEgo> 444) <elliott> This is [...] me saying "lol im a fag". \ 445) <elliott> This is [...] me saying "lol im a fag".
22:45:41 <elliott> `delquote 444
22:45:42 <HackEgo> ​*poof*
22:45:51 <elliott> `delquote 445
22:45:52 <HackEgo> ​*poof*
22:46:00 <elliott> `quote fag
22:46:01 <HackEgo> 444) <elliott> This is [...] me saying "lol im a fag".
22:46:05 <elliott> oh right
22:46:08 <elliott> `revert 423
22:46:09 <HackEgo> Done.
22:46:10 <elliott> `quote fag
22:46:11 <HackEgo> 444) <elliott> This is [...] me saying "lol im a fag".
22:46:13 <olsner> `run echo CONCENTRATE | sed 's/.*/elliott: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/'
22:46:14 <HackEgo> elliott:
22:46:16 <elliott> wtf
22:46:17 <elliott> wtf
22:46:17 <elliott> wtf
22:46:17 <elliott> wtf
22:46:20 <elliott> Gregor: revert is broken
22:46:24 <elliott> olsner: seriously fucking stop
22:47:00 <elliott> `quote fag
22:47:01 <olsner> elliott: it didn't even work ... what did the bot do to my &'s?
22:47:01 <HackEgo> 444) <elliott> This is [...] me saying "lol im a fag". \ 445) <elliott> This is [...] me saying "lol im a fag".
22:47:04 <elliott> oh
22:47:05 <elliott> theyre back
22:47:09 <elliott> `delquote 444
22:47:10 <HackEgo> ​*poof*
22:47:11 <elliott> TEN NINE
22:47:12 <elliott> EIGHT SEVEN
22:47:13 <elliott> SIX FIVE
22:47:15 <elliott> FORU THRE
22:47:17 <elliott> TWO FOUR
22:47:20 <elliott> ZORRO
22:47:22 <oerjan> > var$"elliott: "++cycle"CONCENTRATE"
22:47:22 <elliott> `quote fag
22:47:23 <lambdabot> elliott: CONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATECONCENTRATE...
22:47:23 <HackEgo> 444) <elliott> This is [...] me saying "lol im a fag".
22:47:26 <elliott> `delquote 444
22:47:27 <HackEgo> ​*poof*
22:47:29 <elliott> oerjan: im going to rip your skull
22:47:30 <elliott> TEN NINE
22:47:31 <elliott> EIGHT FOUR
22:47:33 <elliott> SEVEN SIX
22:47:34 <elliott> NINE EIGHT
22:47:35 <CakeProphet> :t var
22:47:35 <lambdabot> forall a. String -> Sym a
22:47:36 <elliott> TWO ONE
22:47:38 <elliott> ZERO
22:47:41 <elliott> `quote fag
22:47:42 <HackEgo> No output.
22:47:43 <elliott> guys delquote worked all along happy holidays
22:47:43 <oerjan> elliott: AGAIN?
22:47:44 <CakeProphet> oerjan: what is this magical var thing.
22:48:05 <elliott> `addquote <oklofok> if i became a serial killer, it'd be because i want to kill people, not because i'm crazy
22:48:06 <HackEgo> 454) <oklofok> if i became a serial killer, it'd be because i want to kill people, not because i'm crazy
22:48:16 <elliott> <Phantom_Hoover> elliott, are you fixing delquote YOU BETTER BE
22:48:19 <elliott> fixed, in the past, by never breaking it
22:48:20 -!- kovacs has left.
22:48:20 <elliott> `ls
22:48:21 <HackEgo> 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ tmpdir.15136 \ тэкст
22:48:27 <elliott> `cat тэкст
22:48:28 <HackEgo> ​Ня ведаю, навошта, але няхай сабе будзе
22:48:30 <elliott> `run ls | paste
22:48:31 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.1234
22:48:35 <elliott> heh
22:48:42 <CakeProphet> !userinterps
22:48:42 <EgoBot> ​Installed user interpreters: aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decisionengine drawl drome dubya echo eehird ehird elmer fudd google graph gregor gregor__1 hello id jethro kraut lperl lsh map num ook pansy pi pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simpleacro simplename slashes svedeesh swedish ustemp valspeak warez wc yo
22:48:57 <CakeProphet> !yo hello my good friends
22:49:02 <CakeProphet> ..nope
22:49:07 <Gregor> elliott: Apparently that says "I do not know why, but let it be" in Belarusian (wtf)
22:49:12 <elliott> Gregor: clearly we need it
22:49:13 <CakeProphet> !show reverse
22:49:14 <EgoBot> bf ,----------[++++++++++>,----------]<[.[-]<]
22:50:00 <CakeProphet> !sadbf what is this I wonder
22:50:07 <oerjan> CakeProphet: i think it is something for symbolic computation, although i'm just using it because its Show instance prints the original string without quotes (and unlike text which i've seen used here before, works with infinite strings)
22:50:10 <CakeProphet> !sadbf ++++++++++++++++++++++++++++++++++.
22:50:11 <EgoBot> ​"
22:50:19 <CakeProphet> !show sadbf
22:50:19 <olsner> is this the channel where someone posted a link to the write-only memory datasheet?
22:50:19 <EgoBot> sadol :M$0 :d:i,45000@>i-01(2]M0:i-i1:S$0:C;3:l#C-01:p:m0@<pl(2?=#Cp"1+:#Mm%+#Mm1,3255?=#Cp"1-:#Mm?<-#Mm10,3254-#Mm1?=#Cp"1>:m%+m1d?=#Cp"1<:m?<-m10-s1-m1?=#Cp"1.!'2#Mm?=#Cp"1,:#Mm'1;0?=#Cp"1[]S-p1?=#Cp"1]?=#Mm00:p[S0:p+p1
22:50:46 <elliott> olsner: wat
22:51:02 <elliott> `quote tasty deep-fried
22:51:03 <HackEgo> 425) <GregorR> How to make a tasty deep-fried treat: 1) Buy ingredients: Large vat of boiling oil, dry ice and a small Filipino boy. 2) Place Filipino boy in dry ice until frozen solid. 3) Shatter now-frozen Filipino boy into boiling oil. 4) Wait fifteen minutes, drain and enjoy! <CakeProphet> I have the weirdest boner right now.
22:51:11 <CakeProphet> !bc Hello you guys I am awesome
22:51:12 <EgoBot> ​(standard_in) 1: illegal character: H
22:51:19 <olsner> elliott: it wasn't? then I'll have to repost it for it is funny
22:51:29 <elliott> olsner: it might have been :P
22:51:40 <oerjan> <CakeProphet> !yo hello my good friends <-- that's probably !yodawg, which should be the last interpreter unless someone added one behind it
22:51:49 <elliott> [[And that was going to a type with less strict alignment rules. Increasing the requirement like this:
22:51:49 <elliott> short s[2] = { 0, 42 };
22:51:49 <elliott> int i = *(int *)s;
22:51:49 <elliott> Has three possible outcomes: i == 0, i == 42 or crash (unaligned 4-byte load).]]
22:51:56 <elliott> *SIGN*
22:52:07 <elliott> It's undefined behaviour, it has literally infinite possible outcomes because it isn't a program.
22:52:31 <CakeProphet> !postmodern_aoler I think it's important to focus our energy right now
22:52:31 <EgoBot> I TH1NK 1T"5 IMPORTANT 2 FOCU5 OUR ENERGY RIGHT NOW
22:52:58 <elliott> !postmodern_aoler Im a tarski jfk
22:52:59 <EgoBot> 1M A TAR5KI JFK
22:53:46 <oerjan> <olsner> is this the channel where someone posted a link to the write-only memory datasheet? <-- i've seen write-only memory mentioned so possibly
22:54:11 <CakeProphet> !show decisionengine
22:54:11 <EgoBot> haskell import System.Random; main = (randomRIO (0,1) :: IO Int) >>= print
22:54:30 <CakeProphet> !delinterp decisionengine
22:54:31 <EgoBot> ​Interpreter decisionengine deleted.
22:54:41 <CakeProphet> !addinterp haskell import System.Random; main = (randomRIO (0,1) :: IO Int) >>= print
22:54:42 <EgoBot> ​There is already an interpreter for haskell!
22:54:50 <CakeProphet> !addinterp decide haskell import System.Random; main = (randomRIO (0,1) :: IO Int) >>= print
22:54:51 <EgoBot> ​Interpreter decide installed.
22:54:52 <olsner> http://www.national.com/rap/Story/WOMorigin.html <-- here it is then
22:55:13 <olsner> new for everyone who hasn't, refresher course for everyone who has read it
22:55:21 <CakeProphet> !show simpleacro
22:55:22 <EgoBot> haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!)
22:55:35 <CakeProphet> !addinterp acro haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!)
22:55:36 <EgoBot> ​Interpreter acro installed.
22:55:41 <CakeProphet> !delinterp simpleacro
22:55:41 <EgoBot> ​Interpreter simpleacro deleted.
22:55:45 <CakeProphet> !acro
22:55:50 <EgoBot> NV
22:55:54 <elliott> YOU FUCKING RUINED SIMPLEACRO
22:55:58 <elliott> !delinterp acro
22:55:58 <EgoBot> ​Interpreter acro deleted.
22:56:02 <CakeProphet> ...
22:56:03 <elliott> !addinterp simpleacro haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!)
22:56:04 <EgoBot> ​Interpreter simpleacro installed.
22:56:06 <CakeProphet> how?
22:56:06 <elliott> WELCOME BACK OLD FRIEND
22:56:21 * oklofok wonders if proving something would be a nice addition to all this white noise
22:56:23 <elliott> <EgoBot> hey fhet's zeees OouooH SNEP IT'S A FOooCKING TIGER
22:56:37 <CakeProphet> hey it's my program I can name it whatever I want. :P
22:56:46 <oerjan> elliott: wtf are you sabotaging our attempts at shortening the interpreter list?
22:56:51 <CakeProphet> if I shorten some of the names then we can have more interps displayed.
22:56:53 <elliott> oerjan: i value tradition, asshole.
22:56:56 <elliott> :(
22:56:57 <olsner> anyway, about bot loops: I think that if the bot sends messages to the channel in a special way, then other bots can see which messages were sent from other bots and ignore them
22:56:58 <oklofok> here's a fun little puzzle which you can solve yourselves
22:57:05 <oerjan> !userinterps
22:57:05 <EgoBot> ​Installed user interpreters: aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo eehird ehird elmer fudd google graph gregor gregor__1 hello id jethro kraut lperl lsh map num ook pansy pi pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simpleacro simplename slashes svedeesh swedish ustemp valspeak warez wc yodawg
22:57:08 <elliott> olsner: or they can just ignore messages with certain nicks
22:57:09 <elliott> dur
22:57:14 <oerjan> CakeProphet: oh well they all fit now. i think.
22:57:20 <olsner> istr this is what lambdabot does to prevent loops between several lambdabots
22:57:21 <CakeProphet> oerjan: not if I keep adding more. :D
22:57:27 <Phantom_Hoover> !show yodawg
22:57:27 <EgoBot> unlambda (sending via DCC)
22:57:29 <elliott> !showinterp gregor__1
22:57:31 <elliott> !show gregor__1
22:57:32 <EgoBot> sh sed 's/th/þ/g ; s/Th/Þ/g ; s/s/ſ/g ; s/ae/æ/g ; s/Ae/Æ/g ; s/oe/œ/g ; s/Oe/Œ/g'
22:57:37 <elliott> !delinterp gregor__1
22:57:37 <EgoBot> ​Interpreter gregor__1 deleted.
22:57:38 <oklofok> A, B \subset X^2, A and B transitive, B symmetric, A \cup B = X^2. prove A = X^2 or B = X^2
22:57:45 <elliott> !addinterp pikhq sh sed 's/th/þ/g ; s/Th/Þ/g ; s/s/ſ/g ; s/ae/æ/g ; s/Ae/Æ/g ; s/oe/œ/g ; s/Oe/Œ/g'
22:57:45 <EgoBot> ​Interpreter pikhq installed.
22:57:49 <elliott> !show eehird
22:57:50 <EgoBot> haskell main = interact (let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines $ map (("<ehird> " ++) . unwords . words) $ food $ map toLower)
22:57:52 <elliott> !show ehird
22:57:52 <EgoBot> sh funetak
22:58:03 <elliott> !ehird the most donkey fishes
22:58:03 <EgoBot> da most donkey fishes
22:58:07 <elliott> !eehird the most donkey fishes
22:58:15 <elliott> what
22:58:19 <elliott> <EgoBot> /tmp/input.17083.hs:1:57: Not in scope: `isAlpha'
22:58:20 <elliott> <EgoBot>
22:58:20 <elliott> <EgoBot> /tmp/input.17083.hs:1:70: Not in scope: `isSpace'
22:58:22 <elliott> <EgoBot>
22:58:24 <elliott> <EgoBot> /tmp/input.17083.hs:1:151: Not in scope: `isAlpha'
22:58:26 <elliott> <EgoBot>
22:58:28 <elliott> <EgoBot> /tmp/input.17083.hs:1:164: Not in scope: `isSpace'
22:58:30 <elliott> <EgoBot>
22:58:32 <elliott> <EgoBot> /tmp/input.17083.hs:1:245: Not in scope: `toLower'
22:58:34 <elliott> <EgoBot>
22:58:36 <elliott> > (let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines $ map (("<ehird> " ++) . unwords . words) $ food $ map toLower) "the most donkey fishes"
22:58:37 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
22:58:37 <lambdabot> against inferred ty...
22:58:40 <elliott> o_O
22:59:07 <CakeProphet> what the hell is that.
22:59:19 <elliott> oerjan: EXPLAIN THIS
22:59:38 <elliott> it's uorygl's fault apparently
22:59:48 <CakeProphet> !ehird I have this awesome opinion on something
22:59:49 <EgoBot> Em have this awesome opinion on something
23:00:06 <olsner> !pi
23:00:06 <EgoBot> 3.14156
23:00:14 <CakeProphet> !pi 10000
23:00:22 <ais523> tau / 2
23:00:22 <ais523> because I like circular definitions
23:00:23 -!- Vorpal has quit (Ping timeout: 260 seconds).
23:00:39 <olsner> lol, why didn't I see that the first time, it's wrong
23:00:42 <oerjan> <olsner> istr this is what lambdabot does to prevent loops between several lambdabots <-- yeah it adds initial space to many things.
23:00:49 <elliott> oerjan: EXLPAN IT
23:00:54 <Phantom_Hoover> http://www.reddit.com/r/reddit.com/comments/hwlxz/ok_wtf_i_live_near_this_reactor_here_in_the_us_we/
23:01:02 <Phantom_Hoover> This reached the front page of Reddit.
23:01:05 <olsner> oerjan: that isn't what "this" referred to
23:01:10 <Phantom_Hoover> Who says sensationalism never paid off/
23:01:12 <Phantom_Hoover> *?
23:01:39 <CakeProphet> !addinterp acro haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!)
23:01:40 <EgoBot> ​Interpreter acro installed.
23:01:45 <CakeProphet> !delinterp simpleacro
23:01:45 <EgoBot> ​Interpreter simpleacro deleted.
23:01:47 * CakeProphet ahems.
23:01:51 <Deewiant> > (let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines . map (("<ehird> " ++) . unwords . words) . food . map toLower) "the most donkey fishes"
23:01:53 <lambdabot> "<ehird> the most donkey fishes\n"
23:02:59 <CakeProphet> I wonder why it takes so long for it to run
23:03:00 <CakeProphet> !acro
23:03:00 <tswett> elliott: I confess.
23:03:05 <EgoBot> PLEZGVL
23:03:08 <tswett> `pwd
23:03:09 <HackEgo> ​/tmp/hackenv.17778
23:03:15 <elliott> Deewiant: What's that even meant to do.
23:03:19 <oerjan> elliott: missing Data.Char import i guess
23:04:29 <Deewiant> > (let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines . map (("<ehird> " ++) . unwords . words) . food . map toLower) "123abc456def"
23:04:31 <lambdabot> "<ehird> abc\n<ehird> def\n"
23:04:46 <elliott> oerjan: it doesn't even type as-is
23:05:12 <Deewiant> 2009-07-13 04:12:15( Warrigal) > let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines $ map (("<ehird> " ++) . unwords . words) $ food $ map toLower $ "What do you do, my eponymous friend?"
23:05:17 <Deewiant> 2009-07-13 04:14:08( Warrigal) !addinterp eehird haskell main = interact (let food s = case dropWhile (\x -> not (isAlpha x || isSpace x)) s of "" -> []; s' -> w : food s'' where (w, s'') = break (\x -> not (isAlpha x || isSpace x)) s' in unlines $ map (("<ehird> " ++) . unwords . words) $ food $ map toLower)
23:05:36 <elliott> Right, saw that.
23:06:57 <oerjan> <olsner> oerjan: that isn't what "this" referred to <-- well then i don't know what you mean
23:08:56 <olsner> oerjan: basically that there are severaly ways to send messages to channels, and one of them is supposed to be used by bots but not people
23:09:08 <olsner> and if you make bots only listen to people, everything works out
23:09:21 <oerjan> elliott: well Deewiant fixed some . / $ confusion
23:09:34 <olsner> I remember a discussion about this in one of the haskell channels a long time ago
23:09:46 <olsner> about how lambdabot avoids bot loops
23:10:05 <oerjan> olsner: notices, yes, but lambdabot doesn't use that. because it's annoying in most clients.
23:10:09 <CakeProphet> as far as I know the IRC protocol only has one MSG command.
23:10:25 <oerjan> CakeProphet: NOTICE
23:10:39 <CakeProphet> ah, but yeah, that looks annoying.
23:12:00 <CakeProphet> sup dawgs
23:12:44 <olsner> right, lambdabot definitely doesn't use those
23:13:18 <oklofok> in mirc, you see that on whatever channel happens to be active i think
23:13:32 <olsner> I wonder what it was then, because I definitely remember that (someone claimed that) it didn't rely on the contents of the messages
23:13:33 <oklofok> so you get those in the logs of another channel, which is kinda insane
23:14:40 <ais523> I think notices should be used properly
23:14:54 <ais523> regardless of mIRC interpreting them as massively exciting rather than as less important than privmsgs
23:15:46 <oklofok> privmsg's aren't important?
23:16:03 <oklofok> i guess you didn't mean *even* less important
23:16:25 <oklofok> i don't think mirc considers notices more important than privmsg's since it opens a query window for privmsgs
23:18:15 <oklofok> If a space is metrizable, then it is sequentially compact if and only if it is compact. However in general there exist sequentially compact spaces which are not compact (such as the first uncountable ordinal with the order topology), and compact spaces which are not sequentially compact (such as the product of uncountably many copies of the closed unit interval).
23:18:16 <oklofok> :D
23:18:17 <CakeProphet> mirc doesn't consider anything important because it's a program.
23:18:18 <CakeProphet> ..
23:18:20 <CakeProphet> :3
23:18:26 <oklofok> that's just hilardious
23:18:48 <oklofok> wanted to check which direction is always true because i couldn't see it
23:19:04 <oklofok> but lol topology owns i need to get my hands on counterexamples in topology
23:21:33 <CakeProphet> hmmm, how would you go about a fuzzy three-valued logic?
23:21:52 <CakeProphet> ah, [-1,1]
23:22:02 <CakeProphet> well, no...
23:22:49 <CakeProphet> you could have an unknown value that is independent of your truth and false value.
23:23:07 <CakeProphet> so perhaps a complex number.
23:31:40 <oerjan> <ais523> regardless of mIRC interpreting them [...] <-- irssi too
23:31:54 <ais523> bad irrsi!
23:32:24 <oerjan> do you know any client which _does_ treat notices as less important in-channel
23:32:41 <CakeProphet> well when I /sent/ the notice I was in Window, but it showed it in #esoteric
23:32:43 <oerjan> (irssi does refrain from opening a new window if it's not in a channel)
23:34:13 <ais523> Konversation uses [Notice] -nick- rather than <nick> for notices
23:34:21 <ais523> and allows you to set them to a different color
23:34:43 <oerjan> that's still more noise than a privmsg
23:34:51 <ais523> and my color settings are to make them less standouty than privmsgs
23:34:59 <ais523> (I have them set a closer color to the background than privmsgs are)
23:35:10 <ais523> but yes, still more noise
23:35:22 <CakeProphet> `quote .*
23:35:23 <HackEgo> 1) <Aftran> I used computational linguistics to kill her. \ 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 3) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 4) <AnMaster> that's where I
23:35:35 <oerjan> :t val
23:35:36 <lambdabot> forall a. Dif a -> a
23:35:41 <oerjan> wtf
23:36:08 <CakeProphet> `quote [^e]
23:36:10 <HackEgo> 1) <Aftran> I used computational linguistics to kill her. \ 2) <Slereah> EgoBot just opened a chat session with me to say "bork bork bork" \ 3) <Quas_NaArt> Hmmm... My fingers and tongue seem to be as quick as ever, but my lips have definitely weakened... <Quas_NaArt> More practice is in order. \ 4) <AnMaster> that's where I
23:36:14 <elliott> dif
23:36:18 <elliott> isn't that some kidn of automatic differentiation
23:36:26 <CakeProphet> `quote ^[^e]+$
23:36:27 <HackEgo> 67) <oklopol> hmm, this is hard \ 98) <Warrigal> Ah, vulva. <Warrigal> What is that, anyway? \ 133) <Quas_NaArt> Hooray! <Quas_NaArt> I'm an idiot. \ 179) <ais523> it was too difficult \ 197) <Vorpal> pikhq, Okinawan? Wtf is that \ 391) <crystal-cola> 3 = 7/2
23:36:53 <olsner> `quote vulva
23:36:54 <HackEgo> 98) <Warrigal> Ah, vulva. <Warrigal> What is that, anyway?
23:36:54 <ais523> CakeProphet: you're looking for quotes that contain no es?
23:36:58 <CakeProphet> yep
23:37:18 <CakeProphet> `quote ^[^aeiou]+$
23:37:19 <HackEgo> No output.
23:37:21 <CakeProphet> heh.
23:39:35 <oklofok> hmm, f*ck!
23:39:55 <oerjan> elliott: i was trying to find the name of that Expr thing which is like fun but not overloaded, and which i think i may have misspelled when finding var. unless its name really _is_ var or val and it just isn't imported because it conflicts with the Sym and Dif ones
23:40:13 <CakeProphet> `quote \b[@%$*](\$)?[\w_][\w_0-9]*\b
23:40:14 <HackEgo> No output.
23:40:26 <CakeProphet> No Perl variable names in quote, surprisingly.
23:40:39 <oerjan> also what was that trick i used to get the module name of a lambdabot identifier
23:41:06 <oerjan> istr managing it with Sym yesterday
23:41:24 <CakeProphet> `quote @{["b"]}
23:41:25 <HackEgo> No output.
23:41:28 <oerjan> oh right
23:41:40 <oerjan> @let val = "boo!"
23:41:40 <lambdabot> Defined.
23:41:44 <oerjan> > val
23:41:45 <lambdabot> Ambiguous occurrence `val'
23:41:45 <lambdabot> It could refer to either `L.val', defined at <l...
23:42:05 <oerjan> Data.Number.Dif
23:42:25 <oerjan> @undefine
23:42:37 <oerjan> hm?
23:42:41 <oerjan> > "hi"
23:42:42 <lambdabot> "hi"
23:42:47 <oerjan> > val
23:42:48 <lambdabot> Overlapping instances for GHC.Show.Show
23:42:48 <lambdabot> (Data....
23:43:17 <CakeProphet> `quote (?{"drugs"})
23:43:18 <oerjan> (again, i needed to send > val in private to get a longer response)
23:43:18 <HackEgo> No output.
23:43:50 <CakeProphet> hey, you never know...
23:44:49 <oerjan> r/trees is thataway
23:45:34 <Phantom_Hoover> oerjan, what if you like other drugs.
23:46:01 <CakeProphet> ...trees?
23:46:03 -!- pikhq has quit (Remote host closed the connection).
23:46:29 -!- clog has quit (Ping timeout: 260 seconds).
23:46:46 <elliott> hey Sgeo guess what didn't just update
23:46:48 <elliott> hint: it's not homestuck
23:47:03 <elliott> Phantom_Hoover: There's also /r/drugs :P
23:47:11 <oerjan> CakeProphet: somewhat random name for reddit's main marijuana subreddit (r/marijuana apparently has awful management so people fled it)
23:47:19 <CakeProphet> ah, makes sense.
23:47:20 <elliott> oerjan: it's not actually the main one
23:47:26 <elliott> it's basically a place for stoners to... be stoners on reddit
23:47:33 <elliott> there's a "serious" weed subreddit, IIRC
23:47:37 <oerjan> well ok
23:47:47 <elliott> I suspect the reason there's no analogues for other drugs is because they tend to be rather more incapacitating
23:47:50 <CakeProphet> elliott knows all about the various potsmoking subcultures of reddit.
23:47:55 <elliott> /r/drunk is for alcoholics
23:48:02 <elliott> CakeProphet: yes.
23:48:08 <Sgeo> I remember hearing that /r/marijuana was moderated by some nut\
23:48:13 <elliott> It is
23:48:17 <elliott> Why do I know this
23:48:20 <oerjan> but it's certainly reddit's _largest_ drug subreddit (it even reached top 10 after that ... 4/ something event)
23:48:46 <elliott> /r/cannabis or something is the serious one, IIRC
23:48:46 <oerjan> only for a week though
23:48:53 <Sgeo> elliott, ty
23:48:53 <CakeProphet> oerjan: hahaha, 4/something event?
23:49:06 <elliott> oerjan: it's four/nineteen
23:49:07 <elliott> HTH
23:49:12 <oerjan> CakeProphet: 4/some number that has some significance
23:49:18 <elliott> the number is nineteen definitely
23:49:21 <CakeProphet> no 3/19 is bicycle day
23:49:27 <CakeProphet> 4/20 is hitler's birthday, of course.
23:49:34 <CakeProphet> *4/19
23:49:36 <elliott> oh right, and four/twentyone is international heroin abuse day
23:49:42 <elliott> where you abuse heroin for the occasion.
23:49:45 <elliott> poor heroin :(
23:49:46 <oerjan> CakeProphet: r/trees decided to go nuts with upvotes on that day, so managed to reach top 10 subreddit for the next week
23:50:42 <CakeProphet> a clear sign that potsmokers love Hitler.
23:52:06 <CakeProphet> elliott: how does one properly handling heroin without abusing it?
23:52:08 <CakeProphet> *handle
23:52:24 <CakeProphet> keep it in storage? tell it nice things occasionally?
23:52:39 <CakeProphet> how does one use heroin and not abuse it, in this nomenclature.
23:52:39 <oerjan> iirc it's supposedly based on some police code for drugs which may or may not actually have existed
23:52:57 <elliott> CakeProphet: a loving mutual relationship
23:53:37 <CakeProphet> bicycle day is definitely a more interesting drug-related holiday. I honestly have no clue where 4/20 originates.
23:53:42 <CakeProphet> bicycle day at least makes sense.
23:54:05 <elliott> 5744
23:54:06 <elliott> er
23:54:07 <oerjan> oh 419 are the scammers
23:54:08 <elliott> http://en.wikipedia.org/wiki/420_(cannabis_culture)
23:54:12 <elliott> learn you some factoids
23:54:24 <oerjan> elliott: apparently there are a lot of 4nn things :P
23:55:21 <CakeProphet> scammers?
23:55:27 <elliott> CakeProphet: yes
23:55:31 <elliott> nigerian
23:56:42 <CakeProphet> what a lame origin story.
23:58:28 <CakeProphet> Bicycle day is increasingly observed in psychedelic communities as a day to celebrate the discovery of LSD, this occasionally involves the consumption of LSD but most of the time individuals mark the day through referring to the discovery on social media.
23:58:35 <Phantom_Hoover> CakeProphet, hey did you keep reading Homestuck.
23:58:38 <CakeProphet> The article seems to suggest that these events are mutually exclusive.
23:58:40 <CakeProphet> Phantom_Hoover: nope.
23:58:48 <Phantom_Hoover> CakeProphet you are terrible.
23:58:55 <Phantom_Hoover> You should either kill yourself
23:58:58 <Phantom_Hoover> Or read it
23:59:06 <elliott> The hoover seems to suggest that these events are mutually exclusive.
23:59:21 <Phantom_Hoover> no it is an inclusive or
23:59:47 <CakeProphet> Hope about I just do both?
2011-06-11
00:00:16 <elliott> hope about i just do both
00:00:33 <CakeProphet> s/hope/how/g
00:00:57 <CakeProphet> I probably just introduced several typos in previous posts though.
00:01:11 <elliott> "posts"
00:01:12 <Phantom_Hoover> OK but you must kill yourself after Homestuck ends.
00:01:23 <elliott> implying we'll even be alive by then
00:01:33 <Phantom_Hoover> Which is basically the only logical course of action because life will be as unto a pale shadow after Homestuck ends.
00:01:42 <elliott> CakeProphet: Have I mentioned that Homestuck gets about ten times better after the first act or two.
00:01:52 <CakeProphet> no, but I assumed so.
00:02:03 <elliott> (It gets about a hundred times better every few hundred pages from thereon out.)
00:02:42 <CakeProphet> elliott: hey elliott! elliott! check out this thing I want you to hear: http://www.youtube.com/watch?v=5pr6AbJ9Ij0
00:02:54 <CakeProphet> you have to hear it, or your life is incomplete.
00:03:10 <CakeProphet> *exlucsive-or
00:03:19 <CakeProphet> #c
00:03:24 <CakeProphet> *+
00:03:24 <elliott> Sorry I can only consume Homestuck all other forms of media are invalid by default.
00:03:27 <elliott> (Note: This is not technically true.)
00:04:17 -!- pikhq has joined.
00:04:51 <CakeProphet> what, why is there an MS paint adventures wiki
00:05:11 <elliott> CakeProphet: You don't want to read that.
00:05:17 <elliott> CakeProphet: You have no idea how many spoilers are ahead of you.
00:05:41 <elliott> Homestuck is... about five thousand times more complicated and plotful than Problem Sleuth.
00:05:44 <olsner> are they really spoilers as long as they're ahead of you?
00:05:57 <Phantom_Hoover> CakeProphet, also don't look at any Homestuck stuff on Youtube.
00:06:04 <Phantom_Hoover> Sgeo learned this the hard way.
00:06:10 <elliott> Phantom_Hoover: RIP Bic
00:06:12 <elliott> The best pen.
00:06:28 <Phantom_Hoover> He died the way he lived.
00:06:31 <elliott> Inky.
00:06:34 <Phantom_Hoover> Frustrating people.
00:06:46 * Phantom_Hoover → sleep
00:06:48 -!- Phantom_Hoover has quit (Quit: Leaving).
00:07:55 <CakeProphet> Sometimes you feel like you are trapped in this room. Stuck, if you will, in a sense which possibly borders on the titular.
00:08:10 <elliott> 20:13:26: <ais523> gah, I'm getting a burst of Sgeoism from my parents, who have basically banned the family from eating vegetables because of the E. coli outbreak in Germany
00:08:19 <elliott> ais523: have you taken the non-Sgeo solution to this problem
00:08:25 <ais523> which is to ignore them?
00:08:32 <elliott> that's one part of it :P
00:08:40 <ais523> I'm thinking about it
00:09:08 <elliott> at least it's a "relatively" minor temporary thing
00:12:10 <elliott> 20:25:24: <ais523> floating point arithmetic's avoided like the plague in computer games, except in graphics routines, generally speaking
00:12:15 <elliott> ais523: "embedded" games, maybe
00:12:24 <elliott> I doubt C++ desktop games are so rabid
00:12:27 <ais523> I thought in games in general
00:12:29 <ais523> even desktop games
00:12:32 <elliott> Well, I dunno
00:12:47 <olsner> many 8-bit consoles completely lack an FPU
00:12:58 <elliott> 20:36:37: <pikhq> Wow. Fedora 16 is going to have btrfs as its default filesystem.
00:12:59 <elliott> 20:36:53: <pikhq> It doesn't have an fsck yet.
00:13:11 <elliott> Fedora, upgrading rashly without thinking to be OMG MODERN because it's basically RedHat: The Pre-Alpha?
00:13:12 <elliott> SHOCKING
00:13:31 <CakeProphet> dude, Ubuntu's new interface is so bad
00:13:32 <CakeProphet> don't ever use it.
00:13:42 <olsner> obviously btrfs doesn't need fsck, it just won't break the file system
00:13:46 <CakeProphet> it wants to be Apple so hard.
00:16:44 <pikhq> elliott: Well, at least the Fedora devs are busy writing btrfsck.
00:17:02 <olsner> that reads as ... butterfuck
00:17:18 <pikhq> They are also fucking butter.
00:17:54 <elliott> MOTHS: THE WOGS OF THE TAPS
00:17:57 <elliott> YEAH
00:18:05 <olsner> wogs of the taps?
00:18:12 <olsner> moths?
00:18:13 <olsner> wat?
00:18:29 <elliott> YES
00:18:30 <elliott> FUCK YOU
00:18:49 <olsner> ålrajt
00:18:57 <elliott> shtut up swede bot
00:19:10 <elliott> swede architecture the worst architecture
00:19:33 <olsner> elliott person the worst person
00:19:40 <elliott> olsner: DIE ASS
00:20:03 <elliott> ASS DYE
00:20:10 <elliott> TARSKI REBEL
00:20:22 <elliott> sometimes
00:20:24 <elliott> i say the best things
00:20:27 <elliott> such as
00:20:28 <elliott> always
00:20:38 <olsner> elliott: http://cdn.jimonlight.com/wp-content/uploads/2009/08/infart1.jpg
00:20:50 <elliott> infart rum
00:20:53 <elliott> the best rum
00:24:55 <olsner> lol, oracle saying: "In line with our strategy towards a more open Java ecosystem, ..."
00:25:14 <olsner> when did they stop actively preventing an open java ecosystem?
00:25:23 <elliott> that instant
00:25:27 <elliott> then they started again immediately after
00:26:36 <oerjan> well towards is a synonym of against, right?
00:27:26 <olsner> hmm, in swedish it would be a simple typo actually
00:27:39 <olsner> and most people don't even know which is which :(
00:29:48 <elliott> CakeProphet: btw you should watch this: http://www.mspaintadventures.com/?s=6&p=003701 ... it'll convince you reading homestuck is an excellent idea :P
00:29:54 <elliott> (You won't understand a single thing, so it's not spoilery.)
00:33:56 -!- ais523 has quit (Read error: Connection reset by peer).
00:35:11 -!- ais523 has joined.
00:38:02 <elliott> Sgeo: Hey Homestuck just updated again.
00:38:07 <elliott> Yes again.
00:38:50 <augur> apparently train tracks are turing complete
00:42:50 <olsner> http://esoteric.voxelperfect.net/wiki/Chalcraft-Greene_train_track_automaton
00:43:25 <oerjan> is this about http://wadler.blogspot.com/2011/06/combinator-library-for-design-of.html ?
00:43:44 <olsner> apparently not - the wiki page is a lot older than the blog post
00:43:50 <elliott> i think he means augur
00:43:54 <oerjan> i mean augur's mention
00:44:03 <augur> oerjan: yes
00:44:18 <augur> first comment
00:45:15 <CakeProphet> elliott: the queue fetch modus is even more hilarious.
00:45:38 <elliott> CakeProphet: DID YOU WATCH THAT PANEL I LINKED I SPENT A WHOLE THREE SECONDS GOOGLING IT DOWN YOU KNOW
00:45:40 <elliott> HARD WORK I TELL YOU
00:45:54 <CakeProphet> NOPE I AM READING SHIT IN ORDER DOG
00:45:59 <CakeProphet> part of your life was wasted.
00:46:06 <elliott> RIP that part of my life.
00:46:08 <elliott> Died of being wasted.
00:46:43 <elliott> If you decide to give up reading watch it, it has deluded many upon many a person into thinking reading nearly four thousand panels of comic is an excellent idea.
00:46:53 <elliott> (Sorry did I say deluded I mean convinced of the true fact that.)
00:47:31 <Sgeo> Hold onn
00:47:45 <elliott> I am holding onn.
00:47:47 <elliott> CakeProphet is holding unn.
00:47:51 <elliott> You will have to handle enn.
00:50:01 <Sgeo> According to my dad, the entire purpose of raves is to get people into the drug culture
00:50:08 <elliott> True
00:50:12 <oerjan> enn så lenge
00:50:18 <elliott> That is the terrible secret of raves
00:50:46 <CakeProphet> Actually I've gone to a rave and consumed no drugs.
00:50:54 <elliott> Impossible
00:50:56 <CakeProphet> and am even "into the drug culture"
00:50:58 <CakeProphet> TAKE THAT.
00:51:14 <CakeProphet> dad.
00:51:16 -!- pikhq has quit (Ping timeout: 240 seconds).
00:51:32 -!- pikhq has joined.
00:51:57 <CakeProphet> but yes most people go to raves to take some kind of drug and dance for hours.
00:52:06 <elliott> CakeProphet: Oh man 2037 is right ahead of you.
00:52:06 <CakeProphet> but not everyone.
00:52:16 <elliott> Savour the moment for you can only experience that music for the first time once in your life.
00:52:27 <CakeProphet> elliott: I'm on 2053 now
00:52:32 <elliott> I hope you savoured it
00:52:53 <CakeProphet> yes it was quite savoury.
00:53:12 <CakeProphet> god, these pesterlogs make panels MOVE SO SLOWL.
00:53:13 <CakeProphet> Y
00:53:31 <elliott> Hahaha the pesterlogs at this point are about one thirtieth of what they become, lengthwise.
00:53:38 <elliott> Note: I am terrible at estimating such ratios, but yeah.
00:53:51 <elliott> THIS IS A SIMPLE TIME AND YOU SHALL REGARD IT AS A SIMPLE PLEASURE FOR UNASSUMING FOLK
00:54:29 <CakeProphet> I like to use trees. It's not not exceptionally practical. But I think they are elegant.
00:54:46 <elliott> >not not
00:55:00 <elliott> Wait did it take you several minutes just to read 2053.
00:55:02 <elliott> HAVE YOU READ BOOKS BEFORE
00:55:16 <CakeProphet> no it took me several minutes to talk on IRC and do nothing.
00:55:22 <CakeProphet> I waste a lot of time that way.
00:55:22 <elliott> That usually takes a while yes.
00:59:25 -!- Hammi13 has joined.
00:59:32 <elliott> Hammi13: what did you do to the other hammis.
00:59:40 <Hammi13> Hiii
01:00:43 <CakeProphet> Hey Hammi13
01:04:17 -!- Patashu has joined.
01:04:35 -!- Hammi13 has left.
01:04:40 <elliott> lmao
01:04:42 <CakeProphet> :D
01:04:45 <elliott> i lemonparty'd
01:11:26 -!- zzo38 has joined.
01:11:37 <zzo38> How much do you know of LLVM?
01:11:55 <zzo38> Some of the documentation seems to be incomplete, such as the documentation for the bitcode format.
01:12:26 <elliott> ask coppro
01:12:29 <elliott> comex: you're welcome
01:13:08 <zzo38> coppro has 46575 seconds idle.
01:13:21 <elliott> hes just shy
01:13:46 <olsner> about half a day, maybe he'll be back from sleep/work/school soon then
01:17:49 <zzo38> Do you know how well LLVM currently works?
01:18:10 <elliott> what a vague questoin
01:18:19 <olsner> currently? I'd say about 4, geographically speaking
01:18:19 <zzo38> But regardless, lack of documentation makes it difficult to use
01:18:27 <elliott> OS X uses the clang compiler for all stock userspace applications, so it's definitely mature
01:18:56 <elliott> it has better diagnostics than gcc, supports almost all the language extensions gcc does, and has similar runtime code execution speed
01:19:07 <elliott> so LLVM is good enough for a C compiler :P
01:19:37 <CakeProphet> but pikhq might yell at you or something.
01:19:39 <oerjan> zzo38: i know that ghc has deprecated its C backend because the LLVM backend got better than it
01:19:44 <elliott> CakeProphet: eh?
01:19:47 <pikhq> CakeProphet: No, clang > gcc.
01:20:08 <CakeProphet> You mentioned something about bootloading before.
01:20:12 <oerjan> (C ~ gcc, there)
01:20:25 <pikhq> Boot*strapping*. There is a difference.
01:20:27 <zzo38> No, I mean for writing LLVM codes. However, some documentation missing makes it difficult. Such as, some sections of the document about bitcode format seems incomplete.
01:20:33 <elliott> define LLVM codes
01:20:48 <elliott> you're not meant to write bitcode, anyway
01:20:52 <elliott> you're meant to use the API
01:20:53 <CakeProphet> lol bitcode
01:20:56 <elliott> or at least write LLVM IR
01:20:58 <pikhq> It is *presently* not feasible to build a Linux system with clang as *the* C and C++ compiler.
01:21:01 <elliott> (LLVM IR is the name for their assembly, right?)
01:21:06 <CakeProphet> 0 = print 0 1 = launch missiles
01:21:09 <elliott> (pikhq?)
01:21:11 <pikhq> However, it soon will be.
01:21:32 <pikhq> elliott: Yeah, LLVM IR is the name for the assembly language and the bytecode resulting from assembly thereof.
01:22:01 <elliott> zzo38: right, use the API or output LLVM IR; bitcode is essentially an internal API
01:23:32 <oerjan> (!!) [0, unsafePerformIO launchMissiles]
01:23:44 <oerjan> er wait
01:23:49 <oerjan> * flip (!!) [0, unsafePerformIO launchMissiles]
01:24:01 <oerjan> er
01:24:01 <elliott> ([0, unsafePerformIO launchMissiles] !!)
01:24:17 <ais523> elliott: that doesn't type, does it?
01:24:24 <elliott> types as well as oerjan's
01:24:25 <ais523> or is launchMissiles of type Num x => IO x?
01:24:26 <oerjan> ERROR, BRAIN DUMPED
01:24:54 <oerjan> picky, picky
01:25:10 <pikhq> [0, unsafePerformIO launchMissiles `seq` 0]
01:25:18 <oerjan> clearly it returns the number of missiles succesfully launched
01:25:22 <zzo38> If you use the API with C, then can it also be used to run some LLVM codes at compile-time as well? In that case it would be helpful.
01:25:22 <oerjan> *+s
01:25:27 <elliott> oerjan: also 0 was meant to be print
01:25:28 <elliott> not... 0
01:25:40 <elliott> zzo38: Yes, you can compile things to memory and run them directly.
01:25:40 <oerjan> elliott: print 0
01:25:43 <elliott> LLVM is a JIT in this way.
01:25:45 <pikhq> zzo38: Yes, LLVM JITs.
01:25:58 <CakeProphet> !acro
01:26:05 <pikhq> And is actually even the basis of a JVM implementation.
01:26:06 <EgoBot> ASSE
01:26:16 <CakeProphet> lulz
01:26:18 <zzo38> But the FAQ does also say you can emit LLVM assembly or LLVM bitcode.
01:26:27 <elliott> zzo38: Note that LLVM is C++ and so is its library, but there are bindings to just about every language. There might not be a C binding, but you can write a simple layer yourself for the functions you need with extern "C".
01:26:31 <CakeProphet> !acro
01:26:32 <elliott> Also, that's interesting, I didn't realise.
01:26:36 <EgoBot> BCJE
01:26:38 <elliott> Still, bitcode would be pretty painful to generate compared to the API.
01:26:41 <pikhq> (it's not *that* good, because the JDK is from SPACE)
01:26:54 <olsner> there is a C binding
01:26:58 <elliott> olsner: oh, good then
01:27:08 <olsner> which I believe is the base of the haskell binding
01:27:26 <olsner> or one of them anyway
01:27:38 <pikhq> The Haskell binding is pretty neat, FWIW.
01:28:35 <pikhq> Generate LLVM functions at runtime and then use them as standard Haskell functions without any real effort.
01:29:31 <elliott> obligatory: http://augustss.blogspot.com/2009/06/more-llvm-recently-someone-asked-me-on.html
01:29:58 <olsner> for my llvm-outputting compiler I chose to just write llvm assembly instead of figuring out how to make stuff with the expected types at runtime
01:30:32 <elliott> loser
01:30:47 <zzo38> Where is document for API with C?
01:30:52 <olsner> yes. I think it was before that blog post where august does pretty much exactly what I needed done
01:31:10 <zzo38> olsner: What compiler did you do? Did you make some compiler?
01:32:35 <olsner> not an esolang, and not a known language either
01:33:12 <zzo38> olsner: Then what is it?
01:36:19 <oerjan> horriblysecretlang
01:36:36 <oerjan> or was that horriblesecretlang
01:36:45 <olsner> it's only "secret" because it's terribly uninteresting
01:37:17 <zzo38> Did you do it just for practice?
01:38:12 <olsner> well, it's not done yet
01:38:53 <zzo38> If there is C binding, where is the document about the C binding?
01:39:19 <olsner> in the headers of the C binding, probably
01:39:22 <zzo38> The tutorial is only for C++ and Objective Caml.
01:40:53 -!- FireFly has quit (Quit: swatted to death).
01:41:57 -!- clog has joined.
01:43:46 <CakeProphet> elliott: act 2
01:44:35 <elliott> CakeProphet: sweet.
01:46:15 <elliott> CakeProphet: you clicked the link on http://mspaintadventures.com/?s=6&p=002148 right?
01:46:22 <elliott> (A stupid question, but yes, people seriously fail to.)
01:46:39 <CakeProphet> yes.
01:46:41 <elliott> HERP DERP WHAT'S A LINK OH I DUNNO ITS DEFINITELY NOT FOR CLICKING THOUGH
01:46:45 <elliott> (Historical reenactment)
01:48:15 <ais523> elliott: that advice is kind-of useless, if we didn't know to click the link on the page, we wouldn't know to click it on IRC either
01:48:21 <ais523> (not that I actually /did/ click the link on IRC)
01:48:35 <elliott> ais523: It was directed to CakeProphet
01:48:40 <elliott> [asterisk]at
01:48:56 <elliott> There's a link where the narration usually is, and I guess some people assume it's just irrelevant or something :P
01:50:34 <ais523> elliott: I know
01:52:45 <CakeProphet> also elliott is implying that I'm too daft for link clicking.
01:52:57 * CakeProphet is going to call a WAAAAAMbulance
01:53:10 <elliott> CakeProphet: Hey now, I've had to deal with Sgeo reading Homestuck.
01:53:13 <elliott> I HAVE LEARNED TO ASSUME NOTHING.
01:53:31 <CakeProphet> the clunky flash game thing was kind of cool
01:53:37 <CakeProphet> but nothing really happens.
01:53:55 <elliott> The Flash games get much less clunky. Oops, did I just say something?
01:53:55 <Sgeo> In some games something happens
02:14:23 <elliott> hmm, this is annoying
02:20:04 -!- pikhq_ has joined.
02:20:53 <Sgeo> Oh WTF some spammer managed to get an arbitrary image to appear in th Newspeak forums
02:21:08 <Sgeo> Or at least in the RSS feed
02:21:30 -!- pikhq has quit (Ping timeout: 260 seconds).
02:21:34 <elliott> oh noes
02:22:15 <elliott> http://forums.newspeaklanguage.org/index.php?topic=297.0
02:22:20 <elliott> Road to the Truth can be found at the following address: truenewworld.com
02:22:20 <elliott> (attention, it is not the ad of the site - it is the ad of the Truth).
02:22:48 <elliott> this guy has painting skils
02:22:52 <elliott> http://truenewworld.com/Newworld.jpg
02:24:18 <Sgeo> Everyone should be required to read what they write online. Not for accuracy or sensibility, but just checking that their eyes don't glaze over at a wall of text
02:24:30 <Sgeo> (Yes, I know such a thing is impossible, so shut up)
02:25:47 <elliott> http://www.wolfsearch.org/gfeed/img0/teen+sex/10_teenx1.png
02:25:52 <elliott> compare prices on millions of products
02:29:56 <oklofok> there is no teen sex on the other side of that link, just a blank page
02:30:18 <Sgeo> AdBlock?
02:30:32 <Sgeo> Idiotic porn spam site block?
02:30:42 <olsner> no teen sex!? link is broken!
02:31:05 <oklofok> Sgeo: yeah maybe my dad has installed one for me
02:31:55 <oklofok> i guess the pixel must be white because i can't see it
02:32:22 <Sgeo> ...this spammer cross-references the spam post with other spam posts
02:32:28 <elliott> X-D
02:32:45 <oklofok> yeah it is white
02:32:47 <Sgeo> Unless those "forums" are just spam shills, I guess
02:33:00 <oklofok> worst teen sex ever
02:34:05 <Sgeo> http://forums.newspeaklanguage.org/index.php?topic=300 [NSFW]
02:34:14 <elliott> thx for telling me its nsfw lol
02:34:19 <elliott> Description: Sasha notices that this guy's car is dirty, and she offers to wash it "for a ride." We all know that when girls say they want a ride, what they really mean is that they want to saddle up on top of a bologna pony and bounce their tight pussies on it until they cum. Sasha is no exception. She gives us a nice little strip tease, complete with hosed-down boobies as she washes his car. Then she buffs this guy's cock with her mouth. Sasha
02:34:20 <elliott> bends over the hood of his car and gets fucked like a good girl, bouncing her ass on his prick and squealing like a little fuck-doll.
02:34:26 <elliott> "We all know that when girls say they want a ride, what they really mean is that they want to saddle up on top of a bologna pony and bounce their tight pussies on it until they cum."
02:34:31 <elliott> i...
02:34:49 <oklofok> Sasha notices that this guy's car is dirty, and she offers to wash it "for a ride." We all know that when girls say they want a ride, what they really mean is that they want to saddle up on top of a bologna pony and bounce their tight pussies on it until they cum.
02:34:52 <oklofok> oh
02:34:54 <oklofok> yeah
02:35:01 <oklofok> im slo
02:35:28 <elliott> just... "bologna pony" are you serious
02:36:14 <oklofok> i have no idea what that means so dunno
02:36:52 <oklofok> unless, of course, it just means... bologna pony
02:36:52 <elliott> penis apparently
02:36:58 <oklofok> oh.
02:37:00 <oklofok> nh
02:37:14 <elliott> but... what...
02:38:17 <oklofok> makes perfect sense if you think about it
02:42:46 <CakeProphet> ...
02:42:54 <CakeProphet> it was immediately obvious, without thinking, actually.
02:43:45 <CakeProphet> they why it is a pony remains to be seen.
02:43:49 <CakeProphet> s/they/though
02:43:54 <oklofok> to me, bologna is just a random city in italy
02:44:09 <oklofok> and i don't see why any city + pony should imply penis
02:44:12 <CakeProphet> bologna is also a type of sausage in the states.
02:44:31 <elliott> oh
02:44:34 <CakeProphet> freakin' Europeans. How can you not know this shit.
02:45:00 <oklofok> then it's also obvious why it's a pony
02:45:24 <CakeProphet> the only reason I see is for it to rhyme.
02:45:28 <olsner> bologna is tomato sauce with ground beef
02:45:34 <CakeProphet> ah, well, nevermind. I see. :P
02:45:34 <oklofok> then you're kind of slow
02:45:59 <CakeProphet> just, halfway paying attention
02:46:03 <oklofok> i guess i should go to sleep, being even more of an asshole than usual :D
02:46:17 <CakeProphet> as I am about to go get ridiculously drunk, and this is what is currently on my mind.
02:46:31 <oklofok> makes sense
02:46:40 <CakeProphet> in fact, I shall go do that now. Goodbye. I will likely be on in a little while.
02:46:43 <olsner> bologna ponys is what's on your mind?
02:46:50 <CakeProphet> oh yeah, baby.
02:51:57 -!- CakeProphet has quit (Ping timeout: 276 seconds).
03:19:12 <elliott> Does anyone know how to make the lines that separate vim... windows? panes? less ugly?
03:21:02 <oerjan> see :help status-line, maybe?
03:22:27 <elliott> the vertcial separator
03:22:32 <elliott> it's a line of inverted | chars
03:22:34 <elliott> which is just hideous
03:22:51 <oerjan> oh, i only use horizontal
03:27:07 <zzo38> Do any .S3M players crash if you have overlapping sample data?
03:28:17 <elliott> hm and setting configuration variables for scripts is "let Foo=n" right?
03:29:50 <oerjan> i think let is for actual variables, set is for options. but i haven't made any scripts beyond simple .vimrc
03:30:16 <elliott> right
03:30:18 <elliott> this is vimrc
03:30:23 <elliott> configuring a script
03:30:24 <elliott> isn't working though
03:30:37 <elliott> oh, works now
03:31:14 -!- ais523 has quit (Read error: Connection reset by peer).
03:31:53 <zzo38> I happen to know that the script for CWEB programming has some bugs. Such as, if you type in a variable name "do_something" then it colors "do" as a reserved word. There are other problems too. Although, you can type in ":syn off" to turn off syntax highlighting and then it works OK.
03:31:58 <oerjan> the default one for windows only uses let inside a defined function, set otherwise
03:32:32 -!- ais523 has joined.
03:33:17 <zzo38> There is also a script for WEB although I think it is even worse.
03:36:44 <oerjan> elliott: hl-vertsplit seems relevant
03:36:51 <elliott> oerjan: thanks
03:36:56 <oerjan> *hl-Vertsplit
03:37:00 <oerjan> er
03:37:04 <oerjan> *hl-VertSplit
04:06:34 -!- ais523 has quit (Read error: Connection reset by peer).
04:07:51 -!- ais523 has joined.
04:07:57 <elliott> o no the ais523
04:08:21 <ais523> for some reason freenode keeps disconnecting on me
04:08:26 <ais523> and my client automatically reconnecting
04:09:22 <oerjan> it's your peers, they keep resetting it.
04:09:45 <oerjan> you should give them a stern talk
04:10:25 <olsner> the net's gone all peershaped
04:10:47 <oerjan> it's quite peerplexing
04:11:07 <elliott> stupid peer pun
04:11:52 <oerjan> puns can't all be peerfect
04:11:55 <olsner> I'm glad I'm not the last scandinavian awake anyway
04:12:25 <elliott> http://esolangs.org/wiki/Talk:Underload#Why_the_reserved_characters.3F
04:12:25 <elliott> hth
04:14:41 <oklofok> olsner is also me
04:14:48 <oklofok> i'm everyone who starts with an o
04:15:06 <oerjan> ais523: i guess only you can give a real answer to maharba's question
04:15:32 <ais523> what was it? it's not in nearby scrollback unless I'm missing something
04:15:36 <ais523> oh, on the wiki?
04:16:03 <oklofok> ais523: if you don't get it, it's a link
04:16:04 <elliott> oerjan: i know the answer
04:16:09 <elliott> i just wanted to be an ass instead
04:16:16 <elliott> i'll make a real answer
04:16:17 -!- CakeProphet has joined.
04:16:18 -!- CakeProphet has quit (Changing host).
04:16:18 -!- CakeProphet has joined.
04:16:35 <oklofok> what's the answer?
04:16:39 <olsner> elliott: noo, be an ass, don't answer
04:16:41 <oklofok> is it something convoluted and cool
04:16:50 <olsner> say something fun instead
04:17:05 <oklofok> yes and remember to use funny words like poo
04:17:07 <ais523> I've answered
04:17:12 <olsner> oklofok: poo!
04:17:15 <oklofok> xD
04:17:17 <ais523> and should really tell elliott to stop trolling
04:17:18 <elliott> me too
04:17:20 <ais523> elliott: stop trolling
04:17:25 <elliott> ais523: that wasn't trolling, that was a joke :(
04:17:28 <elliott> difference
04:17:29 <ais523> well, OK
04:17:34 <elliott> it wasn't /funny/
04:17:38 <elliott> but who says jokes have to be funny
04:17:46 <elliott> ais523: I did troll by referring to ais vapourware in my response though
04:17:51 <elliott> so hey how's Feather going
04:17:57 <oerjan> it's simple, really, when elliott says something it isn't trolling
04:18:00 <ais523> badly, or well, depending on your point of view
04:18:11 <ais523> tending towards the non-insanity-inducing side
04:18:23 * elliott resists temptation to add Feather to [[Category:Shameful]]
04:20:40 <oerjan> hey nothing shameful in preventing the collapse of the universe
04:21:00 <olsner> maybe the universe is *meant* to collapse
04:21:08 <olsner> preventing that would be shameful
04:21:23 <oerjan> olsner: it was, until feather reset that
04:21:28 <elliott> ooh, maybe ais523 only thought about Feather on order of Doc Scratch THIS IS A PLAUSIBLE THEORY...
04:21:40 <elliott> one day I will stop relating everything to that darn webcomic that hasn't updated in entire HOURS ugh what is his PROBLEM
04:21:52 <ais523> elliott: hey, the article is a pretty good one describing the current state of the language
04:21:54 <elliott> so glad i don't use my f-five key to refresh or it'd be burned out
04:22:08 <elliott> ais523: i only wanted to do it to annoy you :D
04:22:11 <ais523> and there's only an article about it at all because people kept asking
04:22:24 <elliott> ok yeah I'm fairly sure if you ever get a Feather interp ais523
04:22:31 <elliott> running it will end the universe and summon Lord English
04:22:32 <elliott> don't do it
04:22:59 <oerjan> i'm sure it will be nothing as comprehensible as english
04:23:29 <zzo38> No, ignore that message about that running it will end the universe and so on. If you write the program, you can run it.
04:23:33 <elliott> oerjan: "english" in this case is a reference to a pool term
04:24:06 <oerjan> anyway, ais523 will probably get feather finished just before christmas next year
04:24:13 <elliott> oh dear
04:24:20 <zzo38> oerjan: How much do you want to bet?
04:24:27 <ais523> if I do finish it, I'll aim for april 1
04:24:29 <zzo38> And in what country's currency?
04:24:36 <elliott> ais523: dude, december twentytwelve is the best idea :D
04:24:41 <oerjan> six quatloos
04:24:41 <ais523> then people generally won't believe me, which may manage to let them survive through it
04:24:45 <elliott> Release notes:
04:24:46 <elliott> - Sorry.
04:24:52 <Patashu> wtf's going on right now in mspa
04:25:01 <elliott> Patashu: things
04:25:07 <oklofok> can i just tell you you are being so hilarious i cannot concentrate on playing my guitar
04:25:12 <oklofok> i'm going to close the screen ->
04:25:17 <elliott> oklofok: donk
04:26:00 <olsner> Patashu: you remind me of that onion skit where some stuff is happening
04:26:14 <olsner> "skit", is that a word? I seem to think it is
04:26:24 <oerjan> pretty sure it is
04:26:36 <Patashu> yeah skit's a word
04:27:40 <oerjan> also nynorsk for shit, anyway
04:28:08 <olsner> and swedish for shit, indeed
04:28:11 <oerjan> well bokmål too if you mean the verb
04:28:35 <olsner> also works as the imperative form of the verb
04:29:01 <elliott> you're a bok mal
04:29:37 <olsner> elliott: no, you're the mal and you're bok
04:31:45 <zzo38> The S3M official documentation says channel type 16..31 corresponds to Adlib channels (9 melody + 5 drums). But 9+5=14 it doesn't add up to 16. Do you know how it works?
04:32:33 <olsner> addition? afaict you did it correctly there
04:32:38 <olsner> must be their fault
04:35:24 <zzo38> I am trying to write the program that reads the file format. I also have a S3M file open in a hex editor so that I can see some things. But I have no Adlib S3M files (actually I don't know if any even exist, nor of any programs that can play them).
04:37:00 <zzo38> Do you know anything about the Adlib sound card, or about S3M?
04:37:11 <olsner> nope
04:39:49 <zzo38> It also says bit 0-7 for channel type and bit 8 for channel enabled, but that is clearly wrong. It should be bit 0-4 for channel type and bit 7 for channel enabled.
04:40:01 <elliott> obviously
04:41:12 <zzo38> The table for the header says channel settings for 32 channels, which is 32 bytes long in total, where 255=unused and +128=disabled, so that would agree with my texts, and also agrees with the actual S3M file.
04:45:25 <zzo38> Like DVItype can be used as a correct document for DVI format as well as a program to test it, so can my program be used to do similar thing for S3M file.
04:46:23 <zzo38> Probably you would get less errors in documentation for file formats if you did them like this.
04:50:02 <elliott> oerjan: hm I am surprised there is no such thing as OverloadedLists...
04:52:26 <elliott> Just ((:>) 0 ((:>) 0 VNil))
04:52:32 <elliott> oh fer chrissakes, how do you do showsPrec again...
04:53:40 <zzo38> (As far as I know, Knuth is the only other person who documents formats in this way; this has resulted in his documentation being extremely accurate.)
04:56:14 <oerjan> :t showsPrec
04:56:15 <lambdabot> forall a. (Show a) => Int -> a -> String -> String
04:56:42 <oerjan> first argument is precedence level, second what to show, third string to pretend it to
04:56:54 <zzo38> The file I have claims to be the OFFICIAL documentation for the Scream Tracker file format......
04:57:55 <oerjan> elliott: i think i recall there was some ListLike class in the iteratee stuff
04:58:20 <elliott> oerjan: in this case, it encodes the length so that's not really worthwhile
04:58:23 <elliott> as in
04:58:25 <elliott> probably not possible
04:58:31 <elliott> <oerjan> first argument is precedence level, second what to show, third string to pretend it to
04:58:34 <elliott> pretend it to :D
04:58:41 <oerjan> *prepend
04:59:00 <oerjan> PREPEND I SAID THAT INSTEAD
04:59:24 <elliott> I think I'm going to need both unary and binary numbers here.
04:59:52 <elliott> hey oerjan, http://sprunge.us/JMUb
05:00:01 <elliott> (I realise there's already a Data.TypeLevel on hackage but it sucks it uses undefiend and the like)
05:00:37 <zzo38> The document says the number of orders should be even. The file I am testing it with has an odd number of orders.
05:00:53 -!- Sgeo has quit (Ping timeout: 260 seconds).
05:04:51 <elliott> Could not deduce (Succ (ToBinary n0) ~ Succ (ToBinary n))
05:04:53 <elliott> r u srs
05:05:34 * oerjan cannot precisely help without seeing code
05:05:47 <olsner> elliott: make it deductible
05:06:02 <elliott> olsner: deduct yourself
05:06:08 <elliott> oerjan: i'm hacking it on my own :P
05:06:16 <elliott> no big problem right now
05:06:20 <elliott> just a day's type-level work
05:06:37 <oerjan> just another day in the type system
05:11:24 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
05:13:43 <elliott> oerjan: can you believe that you can do all this vector stuff fine with unary type-level nats for the length
05:13:46 <elliott> but if you make it binary
05:13:48 <elliott> it all gets ugly as shit
05:13:48 <elliott> :(
05:13:54 <elliott> like even
05:13:55 <elliott> instance (Eq a) => Eq (Vec n a) where
05:13:55 <elliott> VNil == VNil = True
05:13:56 <elliott> (x :> xs) == (y :> ys) = x == y && xs == ys
05:13:56 <elliott> don't type
05:13:59 <elliott> [asterisk]won't type
05:14:37 <elliott> oerjan: because
05:14:39 <elliott> (:>) :: a -> Vec n a -> Vec (Succ n) a
05:14:41 <elliott> Succ is a type family
05:14:45 <elliott> and it's just hard to deduce anything about it
05:14:46 <elliott> ok wait
05:14:49 <elliott> what if I just do the really ugly
05:14:53 <oerjan> hm if you make it binary, make the Vec's into binary trees i suggest
05:14:58 <elliott> data Vec n a = LolHiddenConstructor [a]
05:15:17 <elliott> oerjan: heh, what would the type of the branch constructor be then?
05:16:37 <oerjan> Br1 :: Vec n a -> Vec n a -> Vec (Twice n) a
05:16:51 <elliott> oerjan: um but what is Twice...
05:17:01 <oerjan> Br2 :: Vec n a -> Vec n a -> a -> Vec (TwiceAndABit n) a
05:17:02 <elliott> oh, just the 0 digit?
05:17:06 <elliott> I call it O and I
05:17:18 <elliott> oerjan: this is actually tempting, but I dislike a bit how it changes the runtime representation
05:17:34 <elliott> the worst part though is
05:17:42 <elliott> class FromList n where fromList :: [a] -> Maybe (Vec n a)
05:17:45 <elliott> instance FromList Z where ...
05:17:52 <elliott> instance (FromList n) => FromList (S n) where ...
05:17:55 <elliott> good luck doing that with binary
05:18:09 <oerjan> eek
05:18:27 * elliott tries the binary tree idea before the cheating "let's just make it unsafe internally"
05:18:55 <elliott> oerjan: hm the leaves would just be nil here, right?
05:19:18 <oerjan> hm what about Br1 :: Vec n (a,a) -> Vec (0 :> n) a
05:19:27 <elliott> wat
05:19:28 <oerjan> *Br0 i guess
05:19:34 <elliott> what's that for
05:20:10 <oerjan> well it's a standard trick for forcing trees to be balanced by type
05:20:18 <elliott> don't your two constructors already achieve that?
05:20:28 <elliott> "(0 :> n)" I assume you mean (O n)
05:20:42 <oerjan> ok
05:20:48 <elliott> but -- don't your two constructors already achieve that?
05:20:57 <elliott> the typed-safe balancedness, that is
05:21:25 <oerjan> ok that's not the precise thing achieved, but:
05:21:38 <oerjan> with that you can do FromList easier
05:21:43 <elliott> ah
05:21:48 <elliott> do I still need BrTwo with that?
05:21:55 <oerjan> yes
05:22:12 <elliott> data Vec :: * -> * -> * where
05:22:12 <elliott> VLeaf :: Vec BZ a
05:22:12 <elliott> VBr0 :: Vec n (a,a) -> Vec (O n) a
05:22:12 <elliott> VBr1 :: a -> Vec n (a,a) -> Vec (O n) a
05:22:13 <elliott> erm
05:22:14 <elliott> I n
05:22:16 <elliott> for the latter
05:22:32 <elliott> great, the Eq instance derives now, but not the Ord instance
05:22:55 <elliott> Couldn't match type `BZ' with `BO n1'
05:22:55 <elliott> Inaccessible code in
05:22:55 <elliott> a pattern with constructor
05:22:55 <elliott> VLeaf :: forall a. Vec BZ a,
05:22:55 <elliott> in a case alternative
05:22:55 <elliott> In the pattern: VLeaf {}
05:22:57 <elliott> In a case alternative: VLeaf {} -> GT
05:22:59 <elliott> wat
05:23:21 <elliott> sigh, it is generating code that does not respect the fancy type magic
05:25:17 <elliott> (+>) :: a -> Vec n a -> Vec (Succ n) a
05:25:17 <elliott> a +> VLeaf = VBr1 a VLeaf
05:25:17 <elliott> a +> VBr0 b = VBr1 a b
05:25:17 <elliott> a +> VBr1 a b = whoops look at my coding energy drain away
05:25:18 <elliott> im a good programmer
05:27:23 <oerjan> a +> VBr1 a' b = VBr0 ((a,a') +> b), i think
05:28:21 <elliott> heh, I just hit upon that now :)
05:28:48 <elliott> *Main> 0 +> 9 +> 0 +> 9 +> VLeaf
05:28:48 <elliott> VBr0 (VBr0 (VBr1 ((0,9),(0,9)) VLeaf))
05:28:48 <elliott> *Main> 0 +> 9 +> 0 +> 9 +> 0 +> VLeaf
05:28:48 <elliott> VBr1 0 (VBr0 (VBr1 ((9,0),(9,0)) VLeaf))
05:28:50 <elliott> that doesn't look right...
05:29:36 <elliott> or no wait it does
05:29:38 <oerjan> looks right to me
05:29:43 <elliott> oerjan: heh, now I just have to write a dest (opposite of cons) function...
05:29:48 <elliott> this is going to be pretty slow runtime-wise, isn't it
05:30:19 <oerjan> MAAAYBE
05:30:37 <elliott> well hm
05:30:46 <elliott> vhead (VBr0 b) = fst (vhead b)
05:30:47 <oerjan> it's just rebalancing a tree, isn't it
05:30:52 <elliott> vhead (VBr1 x b) = x
05:30:53 <elliott> right?
05:31:12 <elliott> because, lol, that doesn't type :)
05:31:13 <oerjan> think so
05:31:18 <elliott> because
05:31:21 <elliott> Could not deduce (n1 ~ Succ n0)
05:31:22 <elliott> from the context (Succ n ~ BO n1)
05:31:22 <elliott> fucking Succ
05:31:27 <elliott> i'm going to try and make succ a typeclass intsead
05:31:51 -!- Patashu has quit (Ping timeout: 276 seconds).
05:33:17 <elliott> lol didn't work
05:33:47 <elliott> this sucks :/
05:34:07 <elliott> oerjan: wanna give it a shot? I can give you the code :P
05:34:09 <oerjan> you need bijection between Pred and Succ, i guess
05:34:14 <elliott> mwahaha
05:34:15 <elliott> I have no Pred
05:34:26 <oerjan> maybe you need it
05:34:33 <elliott> where?
05:34:45 <oerjan> for vhead?
05:34:55 <elliott> vhead :: Vec (Succ n) a -> a
05:34:59 <elliott> not bothering with a full vdest right now
05:35:02 <elliott> just a head
05:35:34 <oerjan> well you said that didn't type
05:35:48 <elliott> it doesn't, but if vhead doesn't, making it do even more won't either
05:36:11 <oerjan> i meant vhead
05:37:11 <elliott> right
05:37:14 <elliott> i don't see what you are saying
05:37:17 <elliott> what type do you want vhead to have
05:37:21 <oerjan> isn't there something you supposedly can do with ~ and type families to force things to be bijections
05:37:41 <oerjan> i don't actually know that, mind you
05:38:03 <elliott> vhead :: Vec (Succ n) a -> a
05:38:03 <elliott> vhead (VBr0 b) = fst (vhead (unsafeCoerce b))
05:38:03 <elliott> vhead (VBr1 x b) = x
05:38:04 <elliott> nailed it
05:38:14 <oerjan> O_o
05:38:26 <elliott> unfortunately "vhead foo" fails because of the type family :D
05:38:31 <elliott> for foo = 0 +> VLeaf
05:38:34 <elliott> oerjan: haha i scared you
05:40:12 <oerjan> sort of ruins the point of type level programming, doesn't it :P
05:40:28 <elliott> oerjan: well in this case I've lost the ability to care about how safe the internals are
05:40:31 <elliott> so long as the exposed API is safe
05:41:33 <elliott> "According to Calver, the cheese at this point had "a caramel nose, a sweet twiggy greenness and a creamy good length of flavour...lemony, with a certain 'spritziness'"."
05:42:04 <oerjan> that was just before he started hallucinating from the mold, i take
05:42:26 <elliott> my prediction: it actually just tasted like cheddar
05:42:26 <oerjan> or possibly just after
05:44:14 <oerjan> can't you make Succ into a GADT somehow
05:44:28 <elliott> um that would result in it having constructors
05:44:36 <elliott> that... makes no sense, really
05:44:40 <oerjan> hm...
05:44:51 <oerjan> phantom GADT :D
05:45:21 <elliott> ooh, wait
05:45:29 <elliott> oerjan: your constructors are _bad_
05:45:35 <oerjan> :(
05:45:38 <elliott> Leaf == VBr0 Leaf == VBr0 (VBr0 Leaf) == ...
05:45:50 <elliott> and in fact (VBr0 Leaf) produces the forbidden type (BO BZ)
05:45:56 <elliott> (all zeroes must be normalised to Z)
05:46:04 <oerjan> well that's your job :P
05:46:09 <elliott> >:|
05:46:13 <elliott> oerjan: this causes _actual problems_
05:46:18 <elliott> that's why we can't recurse
05:46:19 <elliott> in the VBr0 branch
05:46:24 <elliott> because we might be doing (vhead VLeaf)
05:47:11 <oerjan> fine, make a Vec1 which cannot be zero length
05:48:31 <oerjan> move VBr0 and VBr1 to it, but not Leaf
05:48:48 <elliott> yeah OK, in a minute
06:05:11 -!- oerjan has quit (Quit: Good night).
06:15:38 -!- lifthrasiir has quit (Ping timeout: 240 seconds).
06:17:07 <elliott> I have this horrible temptation to write a patcher.
06:51:00 -!- cheater8 has quit (Ping timeout: 260 seconds).
06:53:19 -!- cheater8 has joined.
07:01:18 -!- ais523 has quit (Remote host closed the connection).
07:06:07 -!- CakeProphet has quit (Ping timeout: 276 seconds).
07:26:22 -!- monqy has quit (Quit: hello).
07:28:47 -!- augur has quit (Remote host closed the connection).
07:30:24 -!- augur has joined.
07:32:35 -!- augur has quit (Remote host closed the connection).
07:33:41 -!- Vorpal has joined.
07:39:51 -!- augur has joined.
07:45:32 -!- Phantom_Hoover has joined.
08:09:17 -!- Sgeo has joined.
08:12:32 -!- zzo38 has quit (Quit: zzo38).
08:22:01 -!- CakeProphet has joined.
08:23:52 <elliott> ?hoogle evaluate
08:23:53 <lambdabot> Control.Exception evaluate :: a -> IO a
08:23:53 <lambdabot> Control.OldException evaluate :: a -> IO a
08:23:53 <lambdabot> Test.QuickCheck evaluate :: Testable a => a -> Gen Result
08:36:18 -!- lifthrasiir has joined.
08:43:55 <Phantom_Hoover> http://www.youtube.com/watch?v=JAWuMd6GOfs&feature=related
08:43:55 <lambdabot> Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them.
08:44:03 <Phantom_Hoover> Ohmygodacatinzergog
08:44:34 <elliott> a cat in zer gog
08:45:00 <elliott> Phantom_Hoover: That cat looks surprisingly comfortable with the environment.
08:45:19 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/hwv1e/computer_scientists_do_you_consider_syntax_to_be/
08:45:33 <Phantom_Hoover> Presented without comment.
08:46:17 <Gregor> Ow.
08:57:53 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
08:58:00 <Sgeo> "loseth abacus . sup you can get a htc hd7 for putting in your email at"
08:59:11 <oklofok> "<elliott> but who says jokes have to be funny" <<< poo
09:03:22 <elliott> yeah
09:06:34 <oklofok> nothing worse than sitting comfy in your armchair and then didididididiiii hello i'm an alarm clock on the other side of room hihihihi come touch me :)))))))))))))))))))))))))))))))))))
09:06:46 <oklofok> *-
09:08:24 <oklofok> well actually many worse.
09:08:33 <oklofok> but not all worse? certainly not.
09:10:27 -!- Phantom_Hoover has joined.
09:19:18 <elliott> :t execState
09:19:19 <lambdabot> forall s a. State s a -> s -> s
09:22:47 <CakeProphet> !help
09:22:47 <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:37:02 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
09:38:02 -!- Phantom_Hoover has joined.
09:43:08 -!- MigoMipo has joined.
09:43:28 -!- Patashu has joined.
10:05:23 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
10:10:06 -!- CakeProphet has quit (Ping timeout: 240 seconds).
10:12:59 -!- Timwi has joined.
10:20:30 -!- Timwi has changed nick to Timwi-Away.
10:23:43 -!- Timwi-Away has quit.
10:37:19 -!- CakeProphet has joined.
11:16:12 -!- MigoMipo has quit (Remote host closed the connection).
11:29:02 -!- elliott has quit (Remote host closed the connection).
11:29:14 -!- elliott has joined.
11:31:37 -!- pikhq has joined.
11:31:47 -!- pikhq_ has quit (Ping timeout: 255 seconds).
11:34:49 -!- FireFly has joined.
11:50:02 <elliott> 05:04:43: <Gregor> ehird: Now write an editor that distinguishes alignment from indentation and actually maintains your alignment in the correct tab/space ratio while you write code.
11:50:02 <elliott> many editors can do this >:|
11:50:04 <elliott> past gregor sucks
12:04:18 -!- Phantom__Hoover has joined.
12:13:03 <elliott> "Multi-penised, six-legged, two-anused piglet given silly name" --Metro
12:21:38 -!- ralc has joined.
12:23:31 <Sgeo> http://www.reddit.com/r/askscience/comments/hwqzc/dear_asksci_in_todays_age_we_can_create_light/
12:24:48 <elliott> lol
12:25:26 <elliott> Sgeo eagerly awaiting you trying to defend this guy
12:26:45 <elliott> TIL That all money is debt & that most money doesn't actually exist. :) (unpac.ca)
12:26:47 <elliott> this person is a good poster
12:27:09 <Patashu> 'create light from photons'
12:27:12 <Patashu> photons aren't light :O
12:27:13 <Sgeo> Didn't occur to me to try to defend him
12:27:24 <elliott> apparently river song is marilyn munroe
12:27:28 <elliott> til from this person
12:28:33 <Sgeo> But: Not everyone has a basic knowledge of elementary science. They see articles about making virtual photons real (if I understand the linked article correctly) and misinterpret it. It's entirely understandable that to someone who doesn't know what a photon is, it sound the way he described it.
12:30:06 <elliott> lol
12:30:11 <elliott> when isa id
12:30:13 <elliott> eagerly awaiting
12:30:14 <elliott> i meant
12:30:16 <elliott> fucking dont
12:36:09 <Vorpal> pikhq, wrt the "huge" kernel on ubuntu: seems like ubuntu builds with debug symbols
12:38:13 <Phantom__Hoover> <elliott> apparently river song is marilyn munroe
12:38:41 <Phantom__Hoover> That actually seems plausible given the sheer idiocy of her character.
12:39:25 <Phantom__Hoover> Sgeo, it does occur to me that they might possibly be talking about that entanglement thing.
12:39:39 <elliott> they made link things in heir comments
12:40:10 <Phantom__Hoover> "How long does a pig's orgasm last?"
12:40:14 <Phantom__Hoover> Possibly the best question.
12:40:33 * Sgeo sorts his feeds into Fast, Click, and Slow
12:41:03 <elliott> click
12:41:45 <Sgeo> Click is for those feeds where I have to open externally to have any idea what's going on
12:41:52 <Sgeo> Or not "any idea"
12:42:10 <Sgeo> Um, like SMBC, due to the votey, or MSPA
12:42:40 * Phantom__Hoover notes that of the links in today's IWC annotation, "Pencil" is the only one he has previously seen.
12:43:05 <Sgeo> I should read IWC's archive
12:43:10 <Sgeo> Then start reading it regularly
12:43:44 <Vorpal> * Phantom__Hoover notes that of the links in today's IWC annotation, "Pencil" is the only one he has previously seen. <-- do you mean "seen the wikipedia page" or "seen the word"?
12:43:53 <Phantom__Hoover> Vorpal, seen the WP page.
12:43:55 <Vorpal> ah
12:44:06 <Phantom__Hoover> Sgeo, it's like Homestuck.
12:44:10 <Phantom__Hoover> Except with Lego.
12:44:12 <Phantom__Hoover> And science.
12:44:18 <elliott> And no sprites
12:44:21 <elliott> Or games
12:44:21 <Phantom__Hoover> And even slower-moving plots.
12:44:22 <elliott> Or
12:44:22 <elliott> Or
12:44:23 <Phantom__Hoover> Somehow.
12:44:23 <Vorpal> Phantom__Hoover, and less weird troll romances
12:44:27 <elliott> It's like Homestuck but not Homestuck.
12:44:33 <elliott> It is similar in that it is:
12:44:34 <elliott> - long;
12:44:37 <elliott> - a web comic.
12:44:46 -!- quintopia has quit (Ping timeout: 240 seconds).
12:45:06 <Phantom__Hoover> elliott, well it does manage to have about 20 parallel plots which move at a rate of about 5 in-comic seconds per month.
12:45:06 <Vorpal> elliott, by that measure, schlock is quite similar to homestuck too!
12:45:19 <elliott> isn't schlock the one drawn by a mormon
12:45:45 <Vorpal> elliott, is he? I don't know.
12:46:44 <Vorpal> elliott, I found another similarity between homestuck, iwc and schlock: they use long story-arcs.
12:46:58 <Vorpal> so you need to read a large part of the archive for anything to make sense.
12:47:02 <elliott> homestuck doesn't have story arcs
12:47:05 <elliott> it is all one gigantic arc
12:47:17 <elliott> as far as i know, not a single homestuck arc can be legitimately said to have ended
12:47:34 <Vorpal> elliott, yeah, one huge story arch is a degenerate case of long story arcs :P
12:47:34 <Phantom__Hoover> elliott, the Intermission wrapped up pretty well.
12:47:54 <elliott> Phantom__Hoover: POINT
12:48:02 <Sgeo> Does it count a wrapped up if there's something like a prequel?
12:48:36 <Phantom__Hoover> No.
12:49:22 <Vorpal> has any "story arc" in iwc actually ended so far?
12:49:30 <Vorpal> maybe espionage...
12:49:41 <elliott> isnt the whole point of iwc that nothing ever happens and the plots will never advance
12:49:59 <elliott> except by dramatic intervention by, like, killing everyone
12:50:02 <Vorpal> elliott, come on, they reached the dragon after all. That was actually something happening
12:50:04 -!- quintopia has joined.
12:50:04 -!- quintopia has quit (Changing host).
12:50:04 -!- quintopia has joined.
12:50:09 <Phantom__Hoover> elliott, the whole point of IWC is to get more comics than Calvin & Hobbes.
12:50:11 <Phantom__Hoover> True fact.
12:50:17 <elliott> Phantom__Hoover: yes and then it will end
12:50:24 <Phantom__Hoover> Vorpal, yes, and then they turned around and went to a pub.
12:50:25 <elliott> (gives oerjan nightmares)
12:50:36 <Vorpal> Phantom__Hoover, true
12:50:40 <Phantom__Hoover> elliott, on that day the annotation will explain the GUT.
12:50:49 <Vorpal> Phantom__Hoover, but it was still some sort of advancing.
12:50:57 <Vorpal> Phantom__Hoover, GUT?
12:51:01 <Phantom__Hoover> -_-
12:51:03 <Sgeo> Gran Unified Theory
12:51:06 <Vorpal> ah
12:51:09 <Sgeo> *Grand
12:51:10 <Vorpal> right
12:51:32 <Sgeo> Grain Unified Theory
12:52:13 <elliott> bran flakes theory
12:53:28 <Phantom__Hoover> Candidates include Fruit Loop Gravity.
13:22:49 -!- copumpkin has joined.
14:04:26 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:09:52 -!- copumpkin has joined.
14:18:20 -!- copumpkin has quit (Ping timeout: 246 seconds).
14:37:10 <elliott> ?t foldl
14:37:10 <lambdabot> Maybe you meant: tell thank you thanks thx ticker time todo todo-add todo-delete topic-cons topic-init topic-null topic-snoc topic-tail topic-tell type . ? @ ft v
14:37:13 <elliott> :t foldl
14:37:13 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
14:37:18 <elliott> hmm
14:37:23 <elliott> ?src concatMap
14:37:23 <lambdabot> concatMap f = foldr ((++) . f) []
14:37:26 <elliott> in terms of fold come on
14:37:28 <elliott> woot
14:37:42 <elliott> :t foldl ((++) . f) (9,[])
14:37:42 <lambdabot> forall t a. (Monoid t, Num t, Show a, SimpleReflect.FromExpr (t, [a])) => [(t, [a])] -> (t, [a])
14:38:00 <elliott> :t foldl (\(a,x) r -> f a x ++ r) (9,[])
14:38:01 <lambdabot> forall t a. (Num t, Show a, SimpleReflect.FromExpr (t, [a]), Monoid t) => [(t, [a])] -> (t, [a])
14:38:06 <elliott> :t foldl (\(a,x) r -> ?f a x ++ r) (9,[])
14:38:06 <lambdabot> forall t a. (?f::t -> [a] -> (t, [a]), Monoid t, Num t) => [(t, [a])] -> (t, [a])
14:38:19 <elliott> ?hoogle concatMapM
14:38:19 <Phantom__Hoover> ?thanks foo
14:38:19 <lambdabot> No results found
14:38:20 <lambdabot> you are welcome
14:38:23 <Phantom__Hoover> -_-
14:45:10 <elliott> :t ask
14:45:11 <lambdabot> forall (m :: * -> *) r. (MonadReader r m) => m r
14:56:22 * Phantom__Hoover attempts to remember how to pronounce "mamihlapinatapai".
14:56:37 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:13:28 <elliott> ?undo do { fx <- f x; gmapM (everywhereM' f) fx }
15:13:28 <lambdabot> f x >>= \ fx -> gmapM (everywhereM' f) fx
15:13:33 <elliott> ?pl f x >>= \ fx -> gmapM (everywhereM' f) fx
15:13:33 <lambdabot> gmapM (everywhereM' f) =<< f x
15:17:55 <twice11> :t gmapM (everywhereM' f) =<< f x
15:17:55 <lambdabot> Not in scope: `everywhereM''
15:18:42 <twice11> :t everywhere
15:18:43 <lambdabot> forall a. (Data a) => (forall a1. (Data a1) => a1 -> a1) -> a -> a
15:18:57 <elliott> tswett: that's the definition of everywhereM'
15:19:01 <elliott> er
15:19:02 -!- Sgeo has quit (Ping timeout: 255 seconds).
15:19:03 <elliott> twice11:
15:19:05 <elliott> misping
15:19:19 <elliott> -- ndm hates this, but I don't know how to code his descendM
15:19:19 <elliott> everywhereM' :: (Monad m) => GenericM m -> GenericM m
15:19:19 <elliott> everywhereM' f x = f x >>= gmapM (everywhereM' f)
15:19:19 <elliott> :)
15:19:20 <elliott> it's syb stuff
15:19:38 <twice11> Ah, recursive.
15:20:35 <twice11> I just wanted to test whether "f x >>= gmapM (everywhereM' f)" is equivalent to the point{less,free} output produced by ?pl
15:20:42 <twice11> Obviously it is.
15:20:46 <elliott> Yeah, it is
15:20:56 <elliott> I dunno why ?pl likes =<< so much
15:21:00 <elliott> I guess to try and preserve "applicative order"
15:21:06 <elliott> It can be kind of ugly IMO
15:21:17 <twice11> Probably because ?pl also likes . for non-monadic code.
15:21:46 <elliott> Ah, precedence stuff?
15:22:28 <twice11> Maybe that too, but I just thought about shared code for producing monadic =<< and non-monadic dots.
15:22:37 <elliott> Right.
15:22:46 <elliott> Well, it is ?undo that created the >>=.
15:22:50 <elliott> ?pl just flipped it around to =<<, inexplicably.
15:22:51 <lambdabot> (line 1, column 30):
15:22:51 <lambdabot> unexpected ","
15:22:51 <lambdabot> expecting white space or simple term
15:23:06 <elliott> twice11: btw, haven't seen you around here before -- come from the wiki?
15:23:17 <elliott> or has someone been blabbing in #haskell again :)
15:23:44 <twice11> I have been around here (or whatever was the esolang wiki recommended channel at that time) in 2007.
15:23:56 <elliott> It's always been this place, AFAIK
15:24:09 <elliott> The channel is quite a bit older than the wiki
15:24:29 <twice11> I met oerjan already at that time, and we made the proof that 0x29A is turing complete.
15:25:01 <twice11> I came here to ask about the claim of turing-completeness, as I was unable to see how it works.
15:25:33 <elliott> ah, cool
15:25:37 <elliott> are you the inventor of 0x29A?
15:25:47 <twice11> Now a friend slightly hinted me to get here again - and I thought it might be a good idea.
15:26:15 <twice11> No, I didn't invent it, it just stumbled upon it randomly browsing the esolang wiki.
15:26:19 <elliott> I bet it was ralc. You can never trust that ralc.
15:26:25 <elliott> Sitting there idling, plotting our downfall quietly.
15:27:08 <ralc> rambling again, eh?
15:27:21 <elliott> All two lines of ramble.
15:27:32 <twice11> No, I was not pointed here by ralc.
15:27:50 <twice11> And if I should cause downfall of the channel, feel free to kick me.
15:28:14 <elliott> If you cause the downfall of this place it might be a bit tricky to kill you, since we'll presumably all be gone.
15:28:17 <elliott> Er, kick you.
15:28:22 <elliott> I swear that was a typo.
15:28:41 <twice11> My endpoint does not support RSP, so no problem ;)
15:28:49 <twice11> RSP == remote strangulation protocol.
15:29:07 <elliott> Hmm, I've always preferred the UDP Disintegration Laser.
15:30:11 <twice11> Hmm, never heard of, neither did google.
15:30:37 <elliott> Yes, well, someone had to make up the remote strangulation protocol too, didn't they. :p
15:34:41 <Phantom__Hoover> elliott, TbH, the TCP Orbital Bombardment always tickled my fancy more.
15:37:07 -!- pikhq has quit (Ping timeout: 258 seconds).
15:37:11 -!- pikhq_ has joined.
15:46:37 -!- augur has quit (Remote host closed the connection).
15:52:09 -!- elliott has quit (Read error: Connection reset by peer).
15:56:24 -!- hiato has quit (Ping timeout: 250 seconds).
16:14:45 -!- Sgeo has joined.
16:22:56 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
16:23:45 -!- elliott has joined.
16:24:14 -!- augur has joined.
16:47:14 -!- Phantom__Hoover has quit (Ping timeout: 255 seconds).
16:48:18 -!- augur has quit (Remote host closed the connection).
16:48:39 -!- oerjan has joined.
16:50:36 <oerjan> <elliott> (gives oerjan nightmares)
16:50:42 <oerjan> AYEEE
16:51:51 <oerjan> <oklofok> nothing worse than sitting comfy in your armchair and then didididididiiii hello i'm an alarm clock on the other side of room hihihihi come touch me :)))))))))))))))))))))))))))))))))))�
16:52:29 <olsner> wow
16:52:41 <oerjan> i am sorry, but you are clearly misspelling "in the room of your housemate on the other side of the wall, and he is not home..."
16:57:03 <oerjan> 12:40:10: <Phantom__Hoover> "How long does a pig's orgasm last?"
16:57:13 <oerjan> "Long enough". HTH, HAND.
16:58:33 <oerjan> also, how can the channel be this silent when elliott is here
16:58:47 <elliott> i was too busy composing the greatest musical masterpiece ever to be created
16:59:14 <oerjan> ah. i guess that's a proper excuse.
16:59:30 -!- augur has joined.
16:59:43 <elliott> oerjan: for your wonderful concern, you get to listen to it
16:59:45 <elliott> SO
16:59:46 <elliott> LUCKY
17:00:07 <elliott> 14:12:46: <ais523> hi everyone
17:00:08 <elliott> 14:22:53: <ais523> or noone
17:00:08 <elliott> 14:23:01: <ais523> pity
17:00:09 <elliott> 14:23:13: <ais523> maybe I could just sit here monologuing until someone tells me to stop spamming
17:00:35 <Gregor> elliott's musical mode of choice is gangsta rap.
17:00:40 <Gregor> And those are the words.
17:00:58 <elliott> I will offer a five quadrillion dollar bounty to anyone who can rap those lines to this thing.
17:03:27 -!- Phantom__Hoover has joined.
17:06:46 -!- monqy has joined.
17:08:11 -!- Timwi-Away has joined.
17:08:15 -!- Timwi-Away has changed nick to Timwi.
17:09:55 -!- augur has quit (Remote host closed the connection).
17:12:39 -!- azaq23 has joined.
17:16:02 -!- augur has joined.
17:22:21 -!- augur has quit (Remote host closed the connection).
17:24:52 -!- augur has joined.
17:29:07 -!- oerjan has quit (Quit: Later).
17:29:25 -!- Tritonio has joined.
17:31:19 -!- elliott has quit (Remote host closed the connection).
17:34:07 -!- elliott has joined.
17:35:29 -!- Tritonio has quit (Quit: Leaving).
17:37:46 -!- zzo38 has joined.
17:50:14 -!- augur has quit (Remote host closed the connection).
18:10:56 -!- Phantom__Hoover has quit (Ping timeout: 255 seconds).
18:13:17 -!- Phantom__Hoover has joined.
18:13:54 -!- MigoMipo has joined.
18:22:44 -!- augur has joined.
18:24:49 <zzo38> I am trying to figure out how to shorter C code for selecting numbers 1 to 300 that have digit 3 or divisible by 3
18:26:16 <olsner> golfing? or just shorter?
18:26:44 <zzo38> Golfing
18:27:15 <zzo38> I have 22 bytes of a expression that makes 0 for numbers that meet this criteria.
18:28:34 <zzo38> I know of operator precedence and order, a few mathematical things about modulo and multiplication and stuff, but still I did not figure it out
18:30:28 <zzo38> That is, if there is any shorter expression for that!
18:33:55 <Timwi> What’s the 22 bytes expression you already got/
18:34:01 <Timwi> / => ?
18:35:33 <zzo38> x%3&&x%10-3&&x/10%10-3
18:35:56 <zzo38> But maybe is possible to change other parts of the program, although it doesn't seem to help from what I can figure out
18:36:26 <Timwi> Right, so x needs to be divisible by 3 — I thought you meant it should contain *digits* divisible by 3
18:37:11 <twice11> Either divisible by three or at least one digit is 3.
18:37:19 <olsner> maybe you could generate all matching numbers, dunno if that'll be shorter though
18:37:20 <twice11> Sounds like a fizzbuzz variant.
18:37:28 <Timwi> Yeah
18:38:28 -!- Timwi has quit.
18:38:54 <zzo38> Also, someone made a C program output "Success" with 21 bytes, the most obvious way I can figure out is 24 bytes. I can figure out how to make "Success" to standard error with 18 bytes, but not to standard output with 21 bytes.
18:39:22 <twice11> zzo38: Your expression seems to fail on 311
18:39:34 <zzo38> twice11: It only has to be OK for numbers 1 to 100
18:39:39 <zzo38> s/100/300/
18:39:52 <twice11> Ah, OK. In that case...
18:41:20 <zzo38> I noticed that it seems the C standard functions will have the same address twice if you run the program twice. That doesn't seem to help, though. (This is for "Success" problem)
18:41:40 <twice11> Hmm. 24 bytes is obvious.
18:41:57 <twice11> Ah, perror for the stderr case - clever.
18:42:45 <elliott> what if you dup'd the fd then perrored
18:42:50 <elliott> i guess that would still go over though
18:42:55 <twice11> Try to find out the address where the string for perror is stored.
18:43:07 <twice11> And then puts that address.
18:43:10 <elliott> heh
18:43:17 <zzo38> twice11: I thought of that, but could not figure it out.
18:43:40 <twice11> Do you get access to stderr/stdout of failed programs?
18:44:09 <twice11> And even if not - you get the address from strerror.
18:44:24 <twice11> In the worst case you need to do a binary search.
18:44:51 <twice11> No further hints here - *you* want to win the golfing.
18:45:14 <zzo38> Yes you do get access to stderr/stdout of failed programs.
18:45:38 <zzo38> But I do suppose you are correct. Still, all of those are things I have already thought of. It is OK if you want to give no further hints.
18:45:52 <twice11> So what is your problem?
18:46:10 <zzo38> O, I just wanted to mention it, is all.
18:46:25 <twice11> It should be straight-forward to apply my hints.
18:46:34 <twice11> Especially if you get stdout/stderr.
18:47:02 <elliott> there is no guarantee the address is predictable though
18:47:24 <twice11> Who cares at golfing.
18:47:31 <elliott> i mean,
18:47:33 <twice11> It needs to pass the judge system once.
18:47:34 <elliott> it might differ enough between runs
18:47:39 <zzo38> Addresses of "puts" and "strerror" and that stuff themself seem to always be the same each time (I have tried it).
18:47:54 <elliott> twice11: well actually there have been proposals for a rejudge button on anagolf :)
18:48:22 <twice11> There are even time()-dependent golf entries around...
18:48:53 <elliott> twice11: the cheat entries (random+resubmit spam ones) are a really bad problem at anagolf
18:48:55 <elliott> thus the rejudge proposals
18:49:07 <zzo38> It is one reason why I dislike endless problems.
18:49:09 <elliott> basically if you're ok hammering the server for a few minutes chance will get you pretty much anywhere
18:50:32 <twice11> On my system, the strerror result is not constant. Did you try on the judge system?
18:50:36 <zzo38> However, in any case, what I prefer to do, is I can post multiple solutions if I have it, some for random or time dependent, others with embed, cheat, genuine, alnum-only, symbols-only, etc.
18:50:53 <zzo38> twice11: The strerror result is not a constant pointer.
18:51:04 <twice11> Too bad :(
18:51:07 <zzo38> The address of the result changes with each run.
18:51:28 <twice11> I was suggesting to hardcode that.
18:51:32 <elliott> zzo38: they might be doing a
18:51:35 <elliott> main="machine code";
18:51:37 <elliott> trick, you know
18:51:39 -!- pikhq has joined.
18:51:50 <zzo38> I already had all of these ideas (elliott: except your last one)
18:52:02 -!- pikhq_ has quit (Ping timeout: 252 seconds).
18:52:10 <twice11> elliott: That will store a pointer at the main location.
18:52:20 <twice11> You need at least char main[]="machine code";
18:52:44 <elliott> Yeah yeah :)
18:52:45 <elliott> main[] should do
18:52:47 <elliott> without char
18:52:58 <twice11> Maybe a global variable from libc has a constant offset from the "Success" string...
18:53:10 <twice11> main[] declares an array of ints.
18:53:24 <twice11> Are you sure you can initialize that with a string?!
18:53:28 <elliott> yep, but if you can do with every other byte being 0...
18:53:31 <elliott> it... might work :)
18:53:42 <elliott> or maybe, if you put a L before the string
18:53:46 <zzo38> twice11: I also thought of those things too, I tried subtraction...
18:53:48 <elliott> or an LL i gues
18:53:48 <elliott> s
18:53:50 <elliott> then maybe it will work fine?
18:53:52 <elliott> unicode-y
18:54:28 <pikhq> elliott: Isn't 0x00 a noöp on x86? :)
18:54:35 <twice11> 0x90 is a nop.
18:54:37 <zzo38> No, I don't think so
18:54:38 <twice11> 0x00 not.
18:54:43 <pikhq> The fuck is 0x00, then?
18:54:47 <elliott> but yeah i think
18:54:49 <elliott> main[]=LL"..."
18:54:52 <elliott> might actually work
18:54:58 <zzo38> 0x00 is NOP in z80, though, I think.
18:55:03 <pikhq> And why would you ever want 0x00 to not be NOP?
18:55:41 <pikhq> Oh, wait, x86. x86 hates you.
18:55:44 <zzo38> pikhq: In case the way of all command and the electronics and stuff works, makes it help to not have 0x00 to be NOP, like, some pattern, etc
18:55:48 <olsner> 0x00 is the first byte of a bunch of add instructions, but by itself means nothing to x86
18:56:08 <pikhq> You see? x86 hates you.
18:56:09 <twice11> I understand the request for NOP at 0xFF (unprogrammed ROM celss are NOPs), but what does 0=NOP help in practice?
18:56:20 <elliott> twice11: C string programming :D
18:56:33 <pikhq> twice11: Uninitialised pages!
18:56:41 <olsner> I think usually nop is an alias for a completely different instruction that just happens to have no effect
18:56:43 <zzo38> twice11: If that is the case, then maybe 0xFF should be debug trap command.
18:56:53 <pikhq> ... Presuming you have a kernel that has just-allocated pages as 0.
18:57:01 <pikhq> olsner: FEH
18:57:11 <twice11> 0xFF as space for hotpatching is what I had in mind.
18:57:17 <twice11> Without erasing.
18:57:45 <twice11> For 0-initialized pages, crash-on-NUL would be nice.
18:57:59 <zzo38> twice11: O, that makes sense, then.
18:58:20 <zzo38> It would be useful if 0xFF to be NOP in case of hotpatching.
18:58:25 <elliott> 0 should be hcf
18:58:30 <elliott> that'll teach low-level programmers to make memory errors
18:58:52 <twice11> Isn't on Z80 the typical NOP encoding one of 0x40/0x49/0x52/0x5B/0x64/0x6D/0x76/0x7F?
18:59:14 <elliott> Z80, hoggin' all the nops
18:59:15 <twice11> But maybe 00 is a NOP, too...
18:59:20 <olsner> on x86, 0x90 aka nop is actually xchg ax,ax (or xchg eax,eax)
18:59:23 <Sgeo> http://www.reddit.com/r/askscience/comments/hx40e/scientists_of_reddit_whats_the_most_disastrous/c1z3xo2
18:59:30 <elliott> olsner: I love how it needs special-casing in sixty-four bit mode
18:59:30 <Sgeo> I misread that as "cut her into half"
18:59:35 <pikhq> You and your LOGIC
18:59:35 <olsner> elliott: yeah :)
18:59:44 <twice11> Those are LD A,A; LD B,B and so on Z80
18:59:55 <twice11> on x86, mov ax,ax would be two bytes.
19:00:12 <olsner> elliott: plus I think the special case only applies for the ax/eax opcode, not for all the other nops for the other registers :)
19:00:25 <elliott> olsner: yeah :D
19:00:29 <elliott> great for assemblers
19:00:30 <elliott> so logicla
19:00:32 <elliott> logical
19:00:48 <twice11> NOP needs to be special-cased for 64 bit?
19:00:58 <elliott> twice11: yes, otherwise it would clear the high bits of rax
19:01:08 <elliott> it would xchg eax with eax, which would clear the top thirty-two bits of rax
19:01:25 <elliott> so the opcode gets special-cased to mean a true nop
19:01:35 <olsner> found a bochs bug a while ago, test eax,eax clears the higher bits of rax
19:02:04 <twice11> I hope the bug was that the bits are cleared...
19:02:19 <olsner> yes, ordinary cpus don't clear them
19:02:29 <twice11> So 0x90 is no longer a nop, but you would need a 64-bit-prefix on that?
19:02:44 <olsner> no no: 0x90 is still a nop, that's the special case
19:02:51 <twice11> OK, finally got it.
19:03:42 <olsner> to get the real xchg eax,eax behavior (clearing the upper bits) you have to use a different encoding of xchg
19:04:36 -!- Timwi has joined.
19:04:58 <twice11> and eax,0ffffffffh should work to.
19:05:12 <elliott> hey zzo38
19:05:15 <elliott> try sys_errlist[0]
19:05:22 <olsner> yes, and take 5 bytes or so
19:06:17 <elliott> hmm, how do you do a syscall from linux assembly again? :p
19:06:36 <Timwi> You guys still discussing the golf?
19:06:40 <elliott> oh wait
19:06:41 <olsner> elliott: oh, there are many ways to do that :)
19:06:44 <elliott> dup2 isn't a syscall
19:06:44 <elliott> is it
19:06:52 <elliott> Timwi: i'm having a go at doing it incredibly nonportably :)
19:07:01 <olsner> pretty sure it is, the file descriptors live in the kernel
19:07:25 <olsner> but maybe it shares a syscall with dup3
19:07:41 <elliott> oh, it is a syscall
19:07:54 <elliott> what's the shortest byte-count way to syscall, then :p
19:08:16 <olsner> probably the interrupt, int 81h iirc
19:08:32 <olsner> or is that 81 not-hex, hmm
19:08:48 <twice11> 0x80 it is on linux
19:08:50 <pikhq> elliott: int 80h.
19:08:59 <elliott> right
19:09:24 <elliott> hmm
19:09:32 <pikhq> If you're *also* willing to actually set up vdso access, then it'd be a call to the appropriate system call.
19:09:35 <pikhq> (note: PITA)
19:09:41 <elliott> it occurs to me I have no idea how I would go about finding the machine code of /just/ the main function I defined
19:10:06 <twice11> Stop! We try to get something below 24 bytes!
19:10:50 <olsner> elliott: what do you mean?
19:11:00 <elliott> olsner: like, i can get an ELF .o from nasm
19:11:04 <elliott> and link that with libc with gcc
19:11:10 <elliott> but i just want to extract the specific bytes of main from there
19:11:14 <elliott> and that seems like a pain
19:11:28 <pikhq> elliott: objdump is your friend.
19:11:36 <olsner> just output a flat binary from nasm?
19:11:40 <pikhq> Or that.
19:11:45 <elliott> olsner: that doesn't support external libc references
19:11:47 <elliott> but uh
19:11:54 <elliott> I can't find the header with syscall numbers :(
19:11:56 <elliott> on here
19:12:00 <elliott> so i can't use the syscall thing afaik
19:12:05 <olsner> how would you get those libc references into your char array anyway?
19:12:12 <elliott> true
19:12:35 <elliott> um wait
19:12:38 <elliott> perror isn't a system call
19:12:42 <olsner> nope :)
19:12:42 <pikhq> elliott: sys/syscall.h
19:15:26 <pikhq> Hrm. Apparently glibc 2.14 actually breaks ABI. Hard-core.
19:15:55 <elliott> ugh now why isn't this working
19:16:10 <Timwi> Because it’s not esoteric enough
19:16:17 <olsner> so which glibc is everyone using now, and which century will they be using 2.14?
19:16:49 <pikhq> olsner: It's "just" dropping the RPC interfaces.
19:17:15 <olsner> it has RPC interfaces?
19:17:23 <pikhq> Had.
19:18:10 <pikhq> They're being dropped because a) that's fucking STUPID b) the damned thing really fucked with builds, and wouldn't cross-compile right.
19:18:32 <pikhq> Also, as far as I know, the absolute oldest glibc you'll still find is going to be something like 2.10.
19:18:34 <elliott> gah, even the machine code is long for write
19:18:36 <pikhq> (see RHEL)
19:20:52 <pikhq> Huh.
19:21:00 <pikhq> Apparently Ulrich Drepper no longer works for Red Hat.
19:21:12 <pikhq> He is VP, Technology Division at Goldman Sachs.
19:21:52 <Timwi> Since October 2010 :-p
19:21:58 <pikhq> Yup.
19:36:33 -!- kovacs1 has joined.
19:59:09 -!- CakeProphet has quit (Ping timeout: 252 seconds).
20:00:58 -!- CakeProphet has joined.
20:00:59 -!- CakeProphet has quit (Changing host).
20:00:59 -!- CakeProphet has joined.
20:05:27 <Sgeo> Thank you for making many great points in this conversation.
20:05:56 -!- Tritonio has joined.
20:06:59 <elliott> yes
20:09:52 <zzo38> Is it possible in LLVM to tell it to use different settings for optimization for different parts of the code?
20:10:18 -!- oerjan has joined.
20:10:25 <elliott> I think so, but I'm no expert
20:10:38 <Deewiant> No, but you can split your code into separate bitcode files, optimize each one however you like, and link them together
20:11:18 <zzo38> Is that so even if the API is used?
20:11:28 <Deewiant> That I'm not sure about
20:11:40 <zzo38> I did find the header files for using LLVM API with C
20:11:41 <Deewiant> The API may allow more fine-grained control
20:13:10 <zzo38> I do see a lot of things in those header files. But I do not understand all of it.
20:13:17 <zzo38> A lot of useful things are in there.
20:15:39 -!- CakeProp1et has joined.
20:15:52 -!- CakeProphet has quit (Ping timeout: 276 seconds).
20:18:54 -!- Tritonio has quit (Quit: Leaving).
20:21:45 -!- MigoMipo has quit (Remote host closed the connection).
20:23:48 -!- CakeProp1et has quit (Ping timeout: 240 seconds).
20:24:22 -!- CakeProphet has joined.
20:24:23 -!- CakeProphet has quit (Changing host).
20:24:23 -!- CakeProphet has joined.
20:25:01 <twice11> Wow!
20:25:55 <twice11> Sorry. Wrong window...
20:26:13 <Phantom__Hoover> No CakeProphet is truly a wondrous thing.
20:26:25 <oerjan> there you see him, there you don't
20:26:31 -!- kovacs1 has quit (Ping timeout: 260 seconds).
20:27:24 <elliott> #define __NR_fcntl64 221
20:27:24 <elliott> #define __NR_gettid 224
20:27:26 <elliott> oops
20:27:29 <elliott> #define __NR_fcntl64 221
20:27:29 <elliott> /* 223 is unused */
20:27:30 <elliott> #define __NR_gettid 224
20:27:33 <elliott> :o
20:31:15 <olsner> hmm, how about 222?
20:31:23 <elliott> heh
20:31:26 <elliott> good point
20:31:50 <oerjan> i'm sure poor 223 feels left out too
20:32:00 <oerjan> oh wait
20:32:06 -!- pikhq has quit (Ping timeout: 240 seconds).
20:32:16 -!- pikhq has joined.
20:32:26 <oerjan> Y U NO READING COMPREHENSION
20:32:35 <Phantom__Hoover> olsner, we don't talk about 222 in this channel.
20:33:02 <oerjan> it's a third of evil
20:33:48 <olsner> the number of the 1.33 quarterbeasts
20:44:03 -!- aloril has quit (Ping timeout: 250 seconds).
20:44:22 <Sgeo> http://en.wikipedia.org/wiki/Oil_drop_experiment#Millikan.27s_experiment_and_cargo_cult_science this is downright creepy
20:46:35 <Phantom__Hoover> Sgeo, THE CHARGE ON THE ELECTRON IS RISING
20:46:35 <oerjan> <pikhq> And why would you ever want 0x00 to not be NOP?
20:46:47 <Phantom__Hoover> WE'RE ALL GOING TO DIE
20:47:13 <oerjan> in case you accidentally run into zeroed memory, it might be nice not to have a NOP. theoretically.
20:47:32 -!- cheater8 has quit (Ping timeout: 246 seconds).
20:47:40 <olsner> that's one reason to make 0 a HCF instruction instead of NOP
20:47:49 <olsner> or debug breakpoint or something
20:48:04 <elliott> yeah but zeroing memory is arbitrary :D
20:49:14 <olsner> otoh, a non-zero pattern is better for clearing memory area that you don't want used accidentally, like msvc fills with 0xcc (int3/debug breakpoint)
20:52:37 -!- kovacs1 has joined.
20:53:29 <pikhq> *Clearly* it should be filled with int 80h.
20:53:49 <olsner> pikhq: but that's a two byte instruction
20:54:22 <pikhq> BAH
20:55:25 <olsner> there are a couple of reserved undefined instructions though
20:56:03 <olsner> they are, eh, defined as undefined instruction 1 and 2 or something like that
20:57:01 <elliott> best instructions
20:57:02 <olsner> and their behaviour would be defined as causing the undefined instruction exception
20:57:40 -!- aloril has joined.
20:58:13 <olsner> defined things as "undefined" something is probably the best way to define anything ever :>
20:58:23 <olsner> *defining things
21:04:26 <olsner> hehe, the f00f bug is listed on wikipedia as an HCF instruction :)
21:04:55 -!- CakeProphet has quit (Ping timeout: 244 seconds).
21:05:02 <elliott> i'm a purist
21:05:10 <elliott> it's not an hcf unless the cpu actually catches on fire
21:05:23 <oerjan> > let things = undefined in things
21:05:23 <lambdabot> *Exception: Prelude.undefined
21:05:32 -!- kovacs1 has quit (Ping timeout: 255 seconds).
21:06:06 <oerjan> halt, conquer france
21:06:28 -!- CakeProphet has joined.
21:06:28 -!- CakeProphet has quit (Changing host).
21:06:28 -!- CakeProphet has joined.
21:06:38 <elliott> <oerjan> > let things = undefined in things
21:06:38 <elliott> <lambdabot> *Exception: Prelude.undefined
21:06:44 <elliott> spent a minute waiting for oerjan to correct his pun code there
21:06:45 <elliott> >_<
21:06:55 <oerjan> :D
21:09:42 <olsner> elliott: maybe it's a NOPUR then - no operation until reset
21:09:53 <elliott> no purring
21:09:57 <elliott> its forbiten
21:10:15 <olsner> but it might be doing memory stuff while it's looping, so not sure if it's really no operation
21:11:32 -!- CakeProphet has quit (Ping timeout: 240 seconds).
21:11:34 <pikhq> God. Banshee is a fucking *revolting* media player.
21:11:44 <pikhq> I couldn't use it for 2 minutes.
21:12:37 <pikhq> Why would you *want* it to display albums by the artist tag (as opposed to the album artist tag)?
21:12:59 -!- CakeProphet has joined.
21:13:15 <pikhq> Seriously, I should not have albums under [dialog] simply because some live album happens to have a track of dialog.
21:13:51 <elliott> [dialog] is an artist?
21:14:39 <pikhq> It's a psuedo-artist for tracks of general dialog not really attributable to anything sane in MusicBrainz.
21:15:40 <olsner> that track should have the artist set to whoever is doing the dialog, shouldn't it?
21:15:45 -!- variable has quit (Remote host closed the connection).
21:16:18 <pikhq> olsner: Who the hell are you going to attribute something like "AND WITHOUT FURTHER ADO, THE FOO BARS" to, anyways?
21:16:38 <elliott> find the announcer's name obvs
21:16:42 <olsner> exactly
21:16:46 <elliott> personally id just attribute it to the album artist
21:16:54 <pikhq> Also, that scheme *really* fucks up on albums where the album artist is Various Artists.
21:17:06 <elliott> how many such albums have dialogue tracks
21:17:12 <pikhq> elliott: Not that many.
21:17:13 <elliott> how many such albums are worth listening to
21:17:14 <olsner> The Foo Bars feat. Announcer - Announcing the Foo Bars
21:17:53 <elliott> Person Who Said "And Without Further Ado, The Foo Bars"
21:18:13 <pikhq> That *too* would screw up on Banshee.
21:18:27 <pikhq> It would list *the album* under Person Who Said "And Without Further Ado, The Foo Bars".
21:18:35 <pikhq> In addition to being under The Foo Bars.
21:18:43 <olsner> The Foo Bars feat. Person Who Said "And Without Further Ado, The Foo Bars" - Person Who Said "And Without Further Ado, The Foo Bars" saying "And Without Further Ado, The Foo Bars"
21:19:11 <elliott> olsner: id buy that single
21:19:53 <pikhq> So, yeah. When it takes me all of 15 seconds to find a *major* flaw in your handling of tags, your music program sucks.
21:20:12 -!- variable has joined.
21:20:34 <pikhq> Though, good on it for at least sorting by the artistsort tag and displaying by artist. Can't manage to get Quod Libet to do that.
21:21:03 <elliott> have you tried Clementine lately?
21:21:13 <pikhq> Tempting.
21:21:31 <elliott> it was so disappointing using amarok 2 for the first time :/
21:21:33 <elliott> like... why did you do this
21:21:38 <pikhq> Ah, heck, I will.
21:21:51 <elliott> before that amarok was like itunes done properly
21:21:57 <olsner> one thing I really miss from clementine is a way to get to related music from the currently playing song, or a song listed in the playlist
21:21:58 <pikhq> Yeah, Amarok 2 was saddening.
21:21:59 -!- variable has quit (Remote host closed the connection).
21:22:17 <pikhq> Amarok 1 was fucking t3h awesome. With any luck, so's Clementine.
21:22:17 <olsner> e.g. good song playing from shuffle, rightclick to list all stuff from the same artist
21:22:25 <elliott> olsner: how did that actually work anyway?
21:22:26 <elliott> genre tags?
21:22:40 <elliott> http://upload.wikimedia.org/wikipedia/commons/7/73/Amarok_2.4.png <-- seriously who even designed this
21:22:50 <olsner> spotify does that particular part quite well since artists and albums are clickable links
21:22:53 -!- variable has joined.
21:22:54 <elliott> nobody wants to fucking read a wikipedia article in the centre of their ugly media player
21:22:56 <elliott> the whitespace is all fucked up
21:22:58 <elliott> the left pane is almost useless
21:23:06 <elliott> and the useful shit at the right is stripped down to the point of unusability
21:23:07 <elliott> why
21:23:12 <elliott> oh because its FANCY KDE PANEL WIDGETS
21:23:45 <pikhq> Seriously people, *just eat your fucking dog food*. that alone would solve so many usability woes.
21:23:45 <olsner> elliott: I didn't mean any fancy stuff though, just the *really obvious* stuff that you can do with a media library
21:23:47 <elliott> <olsner> e.g. good song playing from shuffle, rightclick to list all stuff from the same artist
21:24:00 <elliott> if clementine has any kind of smart browser functionality, which i'm like 99.999 percent sure it does, this should actually be like
21:24:04 <elliott> a sixty line patch
21:24:18 <olsner> exactly
21:24:25 <elliott> have a go at it :P
21:24:33 <elliott> or just make an issue.
21:24:59 <elliott> http://www.clementine-player.org/
21:25:00 <elliott> wow
21:25:01 <elliott> pretty fancy site
21:25:17 <elliott> i find it amusing that the most native-looking screenshots are on windows
21:25:41 <elliott> oh man
21:25:51 <olsner> doing it myself? it'll be horrible code and then I'd have to get all involved in their "community" to send a patch in and meh... I don't want anything more to do with it than have this particular thing fixed anyway
21:25:52 <elliott> did they clone the amarok ... whats even the name for the bar visualisation
21:25:53 <elliott> that everything has
21:25:55 <elliott> probably winamp started it
21:26:00 <olsner> isn't it a fork of amarok?
21:26:00 <elliott> they cloned it identically, awesome :D
21:26:06 <elliott> olsner: no, "rewrite"
21:26:12 <elliott> olsner: they basically recreated amarok onepointfour in qtfour
21:26:15 <elliott> from scratch
21:26:32 <elliott> (But Better, one presumes)
21:26:39 <olsner> sigh
21:26:49 <elliott> olsner: um you realise that amarok onepointfour was tied to kde?
21:26:54 <elliott> and clementine is meant to be cross-platform
21:26:58 <elliott> so forking it would just not be tenable
21:27:03 <elliott> you'd have to port from qtthree + kdethree -> qtfour
21:27:08 <elliott> which would involve rewriting most of it anyway
21:28:13 <elliott> well theres http://code.google.com/p/clementine-player/issues/detail?id=273&q=similar&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Stars
21:28:15 <olsner> I used amarok in !kde just fine, but still in X of course
21:28:19 <elliott> not quite the same thing though
21:28:23 <elliott> http://code.google.com/p/clementine-player/issues/detail?id=1162&q=similar&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary%20Stars
21:28:23 <elliott> similar
21:28:28 <elliott> olsner: still depends on a shitload of kde libs and daemons
21:29:16 <pikhq> Dammit; one issue with Clementine. Can't sort by one tag and display a different.
21:29:42 <elliott> pikhq: how often do you actually care about the exact ordering of your artists? its not like type-to-search isnt faster
21:29:47 <elliott> and most of the time i just use shuffle anyway
21:30:18 <pikhq> elliott: For artists, it's a minor thing. For albums, I *really* want it to sort by date.
21:30:42 <elliott> why not just sort by date then
21:31:19 <pikhq> It doesn't have the concept of sorting by things. It has the concept of grouping by things.
21:37:49 <pikhq> In short, it's too stupid for its own good.
21:38:34 <oerjan> > [x | x <- [1..10], then group by x `mod` 3]
21:38:35 <lambdabot> Illegal transform or grouping list comprehension: use -XTransformListCompNo...
21:38:40 <oerjan> darn
21:38:54 <elliott> oerjan: "then group by"
21:38:57 <pikhq> Oh, yeah, and it also seems to struggle with the concept of album artists.
21:38:57 <elliott> hasql?
21:39:27 <pikhq> If an album has multiple artists on it, but a single album artist, it gets filed under "Various Artists".
21:39:28 <oerjan> !haskell {-# LANGUAGE TransformListComp #-} main = print [x | x <- [1..10], then group by x `mod` 3]
21:39:34 <EgoBot> ​/tmp/input.23664.hs:1:13: unsupported extension: TransformListComp
21:39:56 <Phantom__Hoover> pikhq, saw this and thought of you: http://www.cracked.com/blog/5-reasons-internet-access-in-america-disaster/
21:39:57 <oerjan> what's that *No up there
21:40:23 <oerjan> !haskell {-# LANGUAGE TransformListCompNot #-} main = print [x | x <- [1..10], then group by x `mod` 3]
21:40:26 <EgoBot> ​/tmp/input.23757.hs:1:13:
21:40:47 <oerjan> hm...
21:40:55 <oerjan> !haskell main = print [x | x <- [1..10], then group by x `mod` 3]
21:41:13 <oerjan> Gregor: UPGRADE
21:41:29 <oerjan> grmble
21:44:23 -!- pikhq_ has joined.
21:44:28 <oerjan> (http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#generalised-list-comprehensions, anyway)
21:45:49 -!- copumpkin has joined.
21:46:05 <oerjan> > groupBy ((==) `on` (% 3)) [1..10] -- old style
21:46:06 <lambdabot> [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]]
21:46:17 <oerjan> hm that's not very well grouped
21:46:40 <olsner> groupBy only groups adjacent elements
21:46:44 <oerjan> i know
21:47:04 -!- pikhq has quit (Ping timeout: 252 seconds).
21:47:09 <oerjan> there's just no short way to express this without the extension i guess
21:47:33 <oerjan> > groupBy ((==) `on` (% 3)) $ sortBy (comparing (% 3)) [1..10] -- old style
21:47:34 <lambdabot> [[1],[2],[3],[4],[5],[6],[7],[8],[9],[10]]
21:47:39 <oerjan> er what
21:47:48 <oerjan> :t comparing
21:47:49 <lambdabot> forall b a. (Ord a) => (b -> a) -> b -> b -> Ordering
21:48:01 <oerjan> oh duh :P
21:48:14 <oerjan> > groupBy ((==) `on` (`mod` 3)) $ sortBy (comparing (`mod` 3)) [1..10] -- old style
21:48:15 <lambdabot> [[3,6,9],[1,4,7,10],[2,5,8]]
21:48:29 <olsner> > 1 % 3
21:48:30 <lambdabot> 1 % 3
21:48:33 <olsner> heh
21:48:46 <oerjan> that's actually haskell's fraction notation
21:48:59 <oerjan> > 1%2 + 1%3
21:49:00 <lambdabot> 5 % 6
21:49:12 <olsner> yeah realized about the time I saw your oh duh and revised code
21:50:55 <oerjan> > scanl1 (+) $ map recip [1 :: Int ..]
21:50:55 <lambdabot> No instance for (GHC.Real.Fractional GHC.Types.Int)
21:50:55 <lambdabot> arising from a use o...
21:51:03 <oerjan> oh hm
21:51:11 <oerjan> > scanl1 (+) $ map (1%) [1 :: Int ..]
21:51:12 <lambdabot> [1 % 1,3 % 2,11 % 6,25 % 12,137 % 60,49 % 20,363 % 140,761 % 280,7129 % 252...
21:51:31 <oerjan> > scanl1 (+) $ map (1%) [1 ..]
21:51:32 <lambdabot> [1 % 1,3 % 2,11 % 6,25 % 12,137 % 60,49 % 20,363 % 140,761 % 280,7129 % 252...
21:51:42 <oerjan> > scanl1 (+) $ map (1%) [1000 :: Int ..]
21:51:43 <lambdabot> [1 % 1000,2001 % 1001000,1503001 % 501501000,2009011003 % 503005503000,6300...
21:51:55 <oerjan> > scanl1 (+) $ map (1%) [1000000 :: Int ..]
21:51:56 <lambdabot> [1 % 1000000,2000001 % 1000001000000,1500003000001 % 500001500001000000,200...
21:52:06 <oerjan> darn short lines
21:52:35 <twice11> lambdabot seems to run on a 64 bit system.
21:53:00 <oerjan> > (1 :: Integer) == (1 :: Int64)
21:53:00 <lambdabot> Couldn't match expected type `GHC.Integer.Type.Integer'
21:53:01 <lambdabot> against inf...
21:53:08 <oerjan> > (1 :: Integer) == (1 :: Int32)
21:53:09 <lambdabot> Couldn't match expected type `GHC.Integer.Type.Integer'
21:53:09 <lambdabot> against inf...
21:53:11 <oerjan> oh wait
21:53:16 <oerjan> > (1 :: Int) == (1 :: Int64)
21:53:17 <lambdabot> Couldn't match expected type `GHC.Types.Int'
21:53:17 <lambdabot> against inferred type ...
21:53:21 <oerjan> > (1 :: Int) == (1 :: Int32)
21:53:22 <lambdabot> Couldn't match expected type `GHC.Types.Int'
21:53:22 <lambdabot> against inferred type ...
21:53:29 <oerjan> huh
21:53:32 <twice11> oerjan: That can't work.
21:53:42 <twice11> Int, Int32 and Int64 are distinct types.
21:53:47 -!- CakeProphet has quit (Ping timeout: 240 seconds).
21:53:51 <oerjan> i'd have imagined one of the types to be a synonym
21:53:55 <twice11> > maxBound :: Int64
21:53:55 <lambdabot> 9223372036854775807
21:54:00 <twice11> maxBound :: Int
21:54:13 <oerjan> ...
21:54:21 <twice11> > maxBound :: Int
21:54:22 <lambdabot> 9223372036854775807
21:54:25 <olsner> that'd be a bad idea since it'd make some haskell programs subtly dependent on the local word size
21:54:30 <elliott> what olsner said
21:54:45 <oerjan> olsner: um they _already_ do that if they use Int
21:54:58 <elliott> yes but not in a way
21:55:01 <elliott> that could make it type on one machine
21:55:02 <elliott> but not another
21:55:03 <elliott> that's just _sick_
21:55:07 <oerjan> hm
21:55:16 <olsner> instead it types on all, but runs differently :)
21:55:34 <elliott> well I would consider using more than the allowed range for Ints unportable/undefined anyway
21:55:34 <monqy> gross but less so
21:55:47 <elliott> i.e., you can do it as long as you acknowledge you are creating a "GHC program" that only works on some machines
21:56:00 <elliott> the allowed range = by the report that is
21:56:09 <oerjan> > scanl1 (+) $ map (1%) [1000000 :: Int32 ..]
21:56:10 <lambdabot> [1 % 1000000,666667 % (-242126656),353137899 % 820529344,(-1022068671) % (-...
21:56:16 <oerjan> MUCH BETTER
21:56:19 <olsner> yeah, you can't count on more than 31 bits in an Int anyway
21:56:31 <twice11> Do they really guarantee 31?
21:56:39 <elliott> yes
21:56:45 <olsner> that's the number I remember yes
21:56:47 <twice11> IIRC not only ocaml, but also haskell have just 28 bits or so.
21:56:51 <elliott> thirty-two with a tag bit for GC :)
21:56:59 <oerjan> twice11: no it's thirtysomething
21:57:04 <twice11> Oh, 31 including sign. That's possible.
21:57:16 -!- zzo38 has quit (Remote host closed the connection).
21:57:29 <monqy> does anyone use a sign bit ever
21:57:45 <oerjan> ghc of course doesn't put the tag bit in the same word, so uses 2^n size
21:58:06 <elliott> The finite-precision integer type Int covers at least the range [ - 229, 229 - 1].
21:58:08 <elliott> --haskell ninety-eight
21:58:13 <elliott> that's two to the power of twenty nine
21:58:17 <elliott> oerjan: u lied
21:58:19 <oerjan> monqy: um two's complement is the most common representation
21:58:20 <elliott> or wait
21:58:25 <elliott> that's thirty bits, right?
21:58:26 <oerjan> elliott: darn
21:58:31 <oerjan> oh right
21:58:31 <olsner> so that's 30 bits of two's complement
21:58:31 <monqy> oerjan: yeah that's what I thought
21:58:31 <elliott> so two tag bits, weir
21:58:31 <elliott> d
21:59:09 <oerjan> monqy: and you can consider one bit as sign, although it isn't just negating what it would be without it of course
21:59:29 <monqy> oh right
22:00:36 <Gregor> ROBOTS EAT PEOPLE
22:00:37 <olsner> elliott: verbatim is pronounced ver-bay-tim, right? but can you say verb-a-tim instead or is that definitely wrong?
22:00:37 <Gregor> RUN
22:01:03 <elliott> olsner: i dont even know with pronunciation and like wtf
22:01:04 <elliott> `quote like wtf
22:01:08 <HackEgo> 131) <fungot> alise: why internet is like wtf
22:01:09 <Gregor> olsner: I've never heard anyone pronounce it the latter way, I probably wouldn't recognize that pronunciation.
22:01:18 <elliott> verb-a-tim is my mental pronunc
22:01:22 <oerjan> elliott: two tag bits is used for some mark and sweep algorithms, isn't it
22:01:23 <elliott> but then im a socially isolated weirdo
22:01:36 <Phantom__Hoover> Gregor, verbatim is how I'd pronounce it, and I'm fairly sure I've said it at some point.
22:01:43 <elliott> Phantom__Hoover: congrats on conveying 0 information
22:01:48 <elliott> "verbatim"
22:01:52 <olsner> I wonder how the romans pronounced it
22:01:55 <monqy> I pronounce "verbatim" "verbatim" too
22:02:19 <Phantom__Hoover> *facepalm*
22:02:26 <elliott> I pronounce "verbatim" "roman"
22:02:28 <Phantom__Hoover> olsner, werbahtim, I assume.
22:02:37 <elliott> we're 'bating
22:02:52 <oerjan> elliott: with that three color thing it requires 2 tag bits
22:02:55 <ralc> mastur?
22:03:04 <elliott> http://www.haskell.org/haskellwiki/Amb THIS CODE IS STILL AS COOL AS IT WAS WHEN I WROTE IT THREE YEARS AGO
22:03:16 <elliott> POLYMORPHIC LIST MONAD TRANSFORMER WITH CUT AWW YEAH
22:05:43 <oerjan> olsner: the a in the second last syllable is long, so it carries the stress (although the romans iirc considered the length more important than the stress)
22:06:08 <oerjan> http://en.wiktionary.org/wiki/verbatim#Latin
22:06:48 <oerjan> (their poetry was based on long vs. short syllable meters)
22:08:59 <olsner> so verbum means word, and -atim is an adverbial suffix, so basically it's "wordly"?
22:09:47 <oerjan> http://en.wiktionary.org/wiki/-atim#Latin
22:09:52 <oerjan> by the word, i guess
22:10:08 <oerjan> or wait
22:10:13 <oerjan> word by word
22:10:30 <olsner> so there are more than this particular adverbial suffix and it adds additional meaning?
22:10:56 <oerjan> so it seems
22:11:19 <olsner> I think latin suddenly became too hard to bother with
22:12:04 <olsner> but I wonder, how do we know how the romans pronounced things? preserved mp3:s on millenia-old memory sticks?
22:12:04 <oerjan> heh my impression is that it has scores of little words and stuff
22:12:29 <oerjan> i don't think we actually know precisely
22:13:38 <oerjan> maybe there is an ancient pronunciation guide preserved, i don't know
22:14:56 <oerjan> "Pronunciation of Latin by the Romans in ancient times has been reconstructed from a variety of data, such as the evolution of features of the Romance languages, the representation of Latin words in other languages, such as Greek, the metrical patterns of Latin poetry, and more."
22:15:09 <oerjan> http://en.wikipedia.org/wiki/Latin#Phonology
22:15:37 <oerjan> hm i recall seeing metrical patterns mentioned as a guide
22:16:05 <oerjan> basically since latin script doesn't tell you which vowels are long and short, you need to use poetry to find out :P
22:16:54 <oerjan> olsner: did you know latin doesn't actually have one word for "yes"? you have to express it using one of several methods
22:17:37 <olsner> oerjan: I did not know
22:18:07 * oerjan doesn't actually know enough latin to speak
22:18:21 -!- Lymia has quit (Ping timeout: 240 seconds).
22:18:55 -!- Lymia has joined.
22:19:37 <oerjan> i think "sic" (thus) is the one that evolved into what modern romance languages use
22:26:14 -!- Timwi has quit.
22:40:52 -!- ralc has quit (Quit: Leaving).
22:45:54 <Phantom__Hoover> http://en.wikipedia.org/wiki/Anatoli_Bugorski
22:46:00 <Phantom__Hoover> This raises so many questions.
22:46:36 <Phantom__Hoover> Like, "how stupid do you have to be to stick your head into a proton beam even if the safety mechanisms fail?"
22:47:33 <elliott> Excuse me he is awesome.
22:48:08 -!- elliott has quit (Quit: Leaving).
22:48:29 <Phantom__Hoover> Oh god please don't tell me elliott has left to find the nearest proton beam.
22:48:35 <olsner> "remained a poster boy for Soviet and Russian radiation medicine" ... basically he randomly survived due to his own awesomeness with no help from his doctors, and now he's a poster child for great medicine?
22:48:43 -!- elliott has joined.
22:48:54 <Phantom__Hoover> olsner, it was Soviet Russia after all.
22:53:02 -!- augur has quit (Remote host closed the connection).
23:01:22 <oerjan> in soviet russia, radiation survives you!
23:04:19 -!- pikhq has joined.
23:05:25 -!- Patashu has joined.
23:06:08 -!- augur has joined.
23:07:33 -!- pikhq_ has quit (Ping timeout: 258 seconds).
23:17:29 -!- Wamanuz3 has quit (Read error: Connection reset by peer).
23:20:52 <Phantom__Hoover> Wait "lascivious" is spelt that way.
23:21:03 <Phantom__Hoover> I always thought it was "laviscious".
23:21:38 <Phantom__Hoover> This is nearly as bad as the time I thought "Fibonacci" was spelt "Fibocanni".
23:21:41 -!- Wamanuz has joined.
23:22:57 <oerjan> a viscous lie indeed
23:23:27 * oerjan gets annoyed by people spelling it fibbonaci too
23:24:17 <Sgeo> Ugh, I can't prove it, don't quite have the patience and statistics, but I suspect there is no difference in minimum functional gravity between altitudes
23:24:42 <Phantom__Hoover> Minimum functional gravity?
23:24:42 <Sgeo> That is, the least amount of gravity such that gravity doesn't stop pulling once it's started
23:24:55 <Phantom__Hoover> OK your explanation makes even less sense.
23:25:09 <Phantom__Hoover> Gravity... doesn't stop pulling... once it's started?
23:25:16 <Phantom__Hoover> Gravity is *always* pulling.
23:25:19 <Phantom__Hoover> That's how it works.
23:25:22 <Sgeo> As far as I can tell, sometimes, gravity starts pulling, but then stop
23:25:23 <Sgeo> stops
23:25:26 <pikhq> Sgeo: You seem to have a very, very confused idea of how gravity works.
23:25:32 <Phantom__Hoover> Um... Sgeo.
23:25:32 <Sgeo> This is in SL
23:25:37 <pikhq> Oh, never mind.
23:25:37 <Sgeo> I thought this was obvious
23:25:43 <Phantom__Hoover> You should really really really have clarified that.
23:26:14 <pikhq> Linden Labs seems to have a very confused idea of how gravity should be implemented.
23:26:17 <pikhq> :P
23:26:26 <Sgeo> They just use Havok
23:26:59 <pikhq> That's new.
23:27:04 -!- CakeProphet has joined.
23:27:04 -!- CakeProphet has quit (Changing host).
23:27:04 -!- CakeProphet has joined.
23:27:14 <oerjan> Phantom__Hoover: um he's been speaking about it several times before
23:27:29 <Phantom__Hoover> Sgeo, isn't it because they use FP for everything?
23:27:41 <Sgeo> Phantom__Hoover, yes
23:27:42 <Phantom__Hoover> oerjan, he's also developed an interest in /r/AskScience, so either was plausible.
23:27:44 <Sgeo> I think
23:27:54 <oerjan> heh
23:35:11 -!- augur has quit (Remote host closed the connection).
23:38:06 <Phantom__Hoover> Cold War protest stuff is quite interesting in hindsight.
23:38:49 <oerjan> > ("fi"++).concat<$>sequence[id,join((:).head)]`sequence`["bo","na","ci"]
23:38:50 <lambdabot> Couldn't match expected type `[a]' against inferred type `a1 -> a1'
23:40:45 <oerjan> > ("fi"++).concat<$>sequence[id,join((:).head)]`mapM`["bo","na","ci"]
23:40:47 <lambdabot> ["fibonaci","fibonacci","fibonnaci","fibonnacci","fibbonaci","fibbonacci","...
23:40:54 -!- zzo38 has joined.
23:41:03 -!- zzo38 has quit (Remote host closed the connection).
23:41:28 -!- pikhq_ has joined.
23:41:28 -!- pikhq has quit (Ping timeout: 246 seconds).
23:41:52 <CakeProphet> > let ncycle a b = map ((+a) . (`mod` (a+b)) [1..] in ncycle 10 15
23:41:53 <lambdabot> <no location info>: parse error on input `in'
23:42:04 <CakeProphet> > let ncycle a b = map ((+a) . (`mod` (a+b))) [1..] in ncycle 10 15
23:42:05 <lambdabot> [11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,10...
23:42:22 <CakeProphet> er, no.
23:42:47 <CakeProphet> > let ncycle a b = map ((`mod` b).(+a)) [1..] in ncycle 10 15
23:42:48 <lambdabot> [11,12,13,14,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,0,1,2,3,4,5,6,7,8,9,10,11,1...
23:42:58 <CakeProphet> ....bleh, nevermind. :P
23:43:13 * CakeProphet just woke up, and did not think that one through.
23:43:20 <oerjan> Sgeo: if they use FP, why is their scripting language an imperative hack :(
23:44:12 <elliott> whoosh
23:44:39 <oerjan> elliott: yeah yeah i _guessed_ that's not what the acronym is for :P
23:45:01 <Deewiant> > let ncycle a b = liftM2 (:) head (takeWhile.(/=).head <*> tail) $ map ((`mod` b).(+a)) [1..] in ncycle 10 15
23:45:04 <lambdabot> [11,12,13,14,0,1,2,3,4,5,6,7,8,9,10]
23:45:30 <monqy> fp can stand for too many things it makes me sad :(
23:45:46 <CakeProphet> My regular expression language is now called FP.
23:45:53 * oerjan wonders what CakeProphet and Deewiant are actually trying to make
23:46:04 <CakeProphet> I was trying to make a more efficient cycle over numeric ranges.
23:46:22 <CakeProphet> but using mod doesn't work for that...
23:46:34 <CakeProphet> or at least not the way I'm using it.
23:46:40 <oerjan> what's wrong with cycle [10..15]
23:46:51 <CakeProphet> I have a latent fear of ++
23:47:00 <CakeProphet> it comes from programming in Python long ago.
23:47:45 <Phantom__Hoover> CakeProphet, why, the O(n) execution?
23:47:49 <oerjan> yours can easily be _more_ inefficient spacewise, since it doesn't use a cyclic structure
23:48:14 <CakeProphet> Phantom__Hoover: yes.
23:48:24 <oerjan> unless it's a really long cycle which you _don't_ want to hold on to, i guess
23:48:39 <CakeProphet> it's just a strange reflex I have from programming in Python, where one of the rules of thumb is to never chain together large amounts of list concatenation.
23:48:56 <CakeProphet> basically, optimization in Python consists of relying on as many C built-ins as possible, or writing your own.
23:49:04 <oerjan> CakeProphet: note that cycle doesn't actually _do_ a large amount of ++, just a single one
23:49:08 <oerjan> @src cycle
23:49:08 <lambdabot> cycle [] = undefined
23:49:08 <lambdabot> cycle xs = xs' where xs' = xs ++ xs'
23:49:28 <CakeProphet> oerjan: it does as many ++'s as you traverse...
23:49:38 <CakeProphet> because that's a recursive definition there.
23:49:54 <oerjan> CakeProphet: well it does the length of xs if that's what you mean
23:51:24 <oerjan> once you reach the end of the cycle it uses sharing
23:51:52 <CakeProphet> oh, so there's some optimization afoot.
23:52:18 <Deewiant> CakeProphet: That's why it's not defined as 'cycle xs = xs ++ cycle xs'
23:52:20 <oerjan> it's not really optimization, it's just the fact that xs' is referred to inside itself
23:52:45 <oerjan> hm...
23:52:58 -!- augur has joined.
23:53:15 <CakeProphet> well, space efficiency wasn't the concerning as much as execution.
23:53:26 <oerjan> CakeProphet: it is quite possible that ghc does _actual_ optimization on the result, though
23:53:48 <oerjan> if you use cycle in the right way, it might be inlined as an actual loop
23:54:12 <CakeProphet> Ah, I see.
23:54:19 <CakeProphet> !show acro
23:54:19 <EgoBot> haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len $ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!)
23:54:24 <CakeProphet> any idea why this is so slow?
23:54:33 <CakeProphet> or is it just egobot taking a long time?
23:54:35 <CakeProphet> !acro
23:54:40 <EgoBot> OJMWQZQOLE
23:54:44 <elliott> night
23:54:51 * CakeProphet waves.
23:54:52 -!- elliott has quit (Quit: Leaving).
23:56:39 <oerjan> CakeProphet: well egobot recompiles it each time
23:56:52 <CakeProphet> ah okay, that's probably it.
23:57:02 <CakeProphet> I've actually notice slowness with all of the Haskell userinterps so that makes sense.
23:57:09 <CakeProphet> *noticed
23:57:34 <oerjan> what's more it tried to compile it as an expression first before as a module
23:57:37 <oerjan> *tries
23:58:50 <oerjan> hm...
2011-06-12
00:00:04 <oerjan> !haskell let pick a = System.Random.randomRIO (0, length a - 1) >>= return . (a !!) in do {len <- pick [2..10]; putStrLn =<< (Control.Monad.replicateM len $ pick ['A'..'Z'])}
00:00:06 <EgoBot> IUWCWN
00:00:21 <oerjan> !delinterp acro
00:00:21 <EgoBot> ​Interpreter acro deleted.
00:00:31 <oerjan> !addinterp acro haskell let pick a = System.Random.randomRIO (0, length a - 1) >>= return . (a !!) in do {len <- pick [2..10]; putStrLn =<< (Control.Monad.replicateM len $ pick ['A'..'Z'])}
00:00:31 <EgoBot> ​Interpreter acro installed.
00:00:36 <oerjan> !acro
00:00:38 <EgoBot> VSQXNSS
00:00:43 <Patashu> eww
00:01:04 <oerjan> now it works with the initial expression compile
00:02:06 -!- augur has quit (Remote host closed the connection).
00:02:47 <oerjan> actually i think expression = ghci command there
00:02:53 <oerjan> !haskell :t map
00:02:59 <EgoBot> map :: (a -> b) -> [a] -> [b]
00:03:21 <CakeProphet> !acro
00:03:24 <EgoBot> MEESWCHD
00:03:31 <CakeProphet> takes slightly less time now, yes.
00:04:53 -!- wareya_ has changed nick to wareya.
00:08:15 -!- Phantom__Hoover has quit (Ping timeout: 255 seconds).
00:12:44 <CakeProphet>
00:19:36 -!- augur has joined.
00:31:50 -!- augur has quit (Remote host closed the connection).
00:33:25 -!- wareya has quit (Read error: Connection reset by peer).
00:34:05 -!- wareya has joined.
00:38:57 -!- TOGoS has joined.
00:39:17 -!- TOGoS has left.
00:51:18 -!- wareya_ has joined.
00:52:09 -!- pikhq has joined.
00:52:15 -!- pikhq_ has quit (Ping timeout: 252 seconds).
00:53:20 -!- wareya has quit (Ping timeout: 240 seconds).
01:03:52 -!- Robdgreat has joined.
01:21:25 -!- FireFly has quit (Quit: swatted to death).
01:43:24 * pikhq is still amazed that there was a consumer 1080i recording media in 1998.
01:44:41 <olsner> The client sent
01:44:42 <olsner> Expect: 100-continue
01:44:42 <olsner> but we only allow the 100-continue expectation.
01:46:13 <pikhq> Not to mention that the damned thing is competitive with Bluray.
01:47:02 <pikhq> (modulo h.264, which did not exist at the time)
02:14:28 -!- augur has joined.
02:23:32 <Gregor> pikhq: How can YOU help FYTHE? :P
02:24:06 <pikhq> Gregor: By performing MAGIC on it.
02:24:47 <Gregor> How about by performing magic WITH it?
02:25:08 <pikhq> Whatever happened to Plof, anyways?
02:25:42 <Gregor> It's still on the docket >_>
02:25:56 * tswett looks up how many of Gregor there are.
02:26:11 <Gregor> I'm starting to think that both Fythe and <major language implemented on Fythe> will be better if they're not implemented/designed by the same person :P
02:26:12 <tswett> This web site claims that there is 1 or fewer of him.
02:26:49 <pikhq> Well, I could *probably* make Fythe better by figuring out why fastjit-tests segfaults.
02:26:58 <Gregor> Yeah! X-D
02:26:58 <pikhq> In GGGGC.
02:27:16 <pikhq> In collector.c, line 117.
02:27:55 <Gregor> REMOVE THAT LINE -> PROBLEM SOLVED
02:29:24 <pikhq> That would be a syntax error.
02:31:14 <pikhq> Well, that's new, at least.
02:31:28 <pikhq> If I compile without optimisation it segfaults somewhere *else*.
02:31:42 <pikhq> At 0x0000003c46c84bb1 in libc.
02:32:10 <pikhq> Somewhere in the evaluation of the macro GO() from fastjit/fastjit-tests.h
02:32:18 <pikhq> (line 29)
02:34:24 <pikhq> fastjit/fastjit-tests works just fine, though. I'm inclined to think something in your build system is fubared. :P
02:34:53 <pikhq> Oh, well, no wonder it does. That's... A stale file.
02:35:06 <pikhq> Very stale.
02:43:46 <Gregor> Aha ... for some reason I can't call GGGGC_collect from main()
02:43:50 <Gregor> BUT WHY
02:44:43 * pikhq does a bisect
02:44:47 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
02:46:50 <Gregor> It was in a GGGGC change.
02:47:24 <Gregor> OH FFFFFFFFUUUUUUUUUUUUUUUUUUUUUU
02:47:25 <Gregor> I know why
02:47:42 <pikhq> It was revision 393; "Function space: Now with free()!"
02:47:56 <Robdgreat> Gregor: A WILD EPIPHANY APPEARS
02:48:05 <Gregor> pikhq: Nope, that's not it, although that revision did create a segfault :P
02:48:22 <Gregor> My "epiphany" is that I made PUSH and POP unsuitable for pushing globals.
02:48:27 -!- CakeProphet has set topic: shit is wicked bananas i am telling you | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
02:49:13 <pikhq> BAAAH
02:53:38 <olsner> what's this ggggc thing?
02:54:25 <Patashu> garbage garbage garbage garbage collection
02:55:35 <pikhq> Gregor's G-filled G-filled Garbage Collector.
02:55:57 <pikhq> :P
02:56:33 <Gregor> Gregor's Generalpurpose Generational Garbage Collector
02:56:47 <Gregor> I was thinking if I made it parallel, since I'm cheating with "purpose" any way, I could make it GGPGPGC
02:57:14 <Gregor> Or maybe add "portable" to make it GPGPGPGC
02:57:51 <olsner> good name!
02:57:55 <olsner> what's it for?
02:58:39 <Gregor> What's it for? It's a garbage collector ...
02:58:57 <Gregor> I'm using it in Fythe, but I didn't write it for Fythe, I wrote it to see if I could write a GC :P
02:59:04 <Gregor> (I did adapt it for Fythe)
02:59:13 <olsner> did it turn out you could? or is that yet to be seen?
03:03:30 <Gregor> It's not as fast as Java's :(
03:03:41 <Gregor> (Not reliably anyway)
03:04:16 <pikhq> That it's not an utter embarassment next to Java's is itself an achievement.
03:05:34 -!- Lymia has quit (Ping timeout: 244 seconds).
03:06:42 <Gregor> NOT
03:06:43 <Gregor> GOOD
03:06:44 <Gregor> ENOOUGH
03:06:51 <olsner> Gregor: better it!
03:07:08 <Gregor> On memory-intensive tests it easily outstrips Boehm and manual memory management, but I don't really know where else to go in terms of speed >_>
03:07:50 <pikhq> Does Boehm usually beat out manual memory management?
03:08:06 <olsner> I guess a big part of the problem is to find a set of benchmarks that is a good balance between real-world similarity and giving your particular gc better results than the competition
03:08:30 <pikhq> olsner: So far, he's just been using Boehm's gcbench.
03:09:02 <pikhq> Which, though heavily artificial, is at least not designed in favor of his collector.
03:09:11 <pikhq> (though his collector might be designed in favor of it. :P)
03:11:44 <olsner> hmm, you might also want to balance in tricky benchmarks that you use to make your collector better
03:14:19 <Gregor> pikhq: Boehm infrequently beats out manual memory management.
03:14:43 <Gregor> Also, I'm using both GCBench and binary_trees (which are similar but not identical)
03:15:06 <Gregor> pikhq: BTW thanks for leading me down the right road to fix fastjit-tests, it's working now ;P
03:16:13 <pikhq> Whoo.
03:16:48 <pikhq> Gregor: Still... Is there any real reason to actually use malloc and free anymore?
03:16:56 <Gregor> No?
03:17:40 <pikhq> Mmkay, good. So I don't have to feel bad about my attitude towards it being "GARBAGE COLLECT ALL THE THINGS".
03:18:06 <Gregor> Yes, from the instant main initializes the GC, everything should be in GC.
03:18:37 <pikhq> Nonono, I mean as in "never use malloc in new programs."
03:19:39 <pikhq> *Obviously*, if you're already using a garbage collector, it's probably a bad idea to also use malloc. What with that really screwing things up if you have things pointing between both heaps.
03:22:14 -!- ray24 has joined.
03:22:26 <ray24> what would you do if a girl farted on your face?
03:22:29 -!- Lymia has joined.
03:22:50 <Patashu> Stick my arm up the girl's rear and out her mouth
03:22:56 <Patashu> Why, what would you do
03:23:02 <ray24> lmao
03:23:11 <ray24> I highly doubt you'd do that
03:23:18 <Patashu> Nah I totes do it
03:23:22 <Patashu> I collect girls impaled on my arms
03:23:25 <Patashu> I also collect arms
03:23:38 <ray24> wtf lol
03:23:48 <olsner> but "my arm" singular implies that you only have one
03:23:57 <olsner> you can't be doing too well collecting them
03:24:07 <Patashu> No one wants to sell me their arms :(
03:24:21 <oerjan> what are ye all up in arms for
03:25:24 <oerjan> Patashu: that cannot be right, i hear arms dealing is all the rage
03:25:40 <Patashu> Ha ha
03:25:55 <Patashu> I tried to take some arms off of people but turns out they had a right to bear them :(
03:25:57 <Patashu> Got some prison time for that
03:26:43 * CakeProphet retrieves his arms from the safe.
03:27:09 * Robdgreat takes himself out of arms way
03:27:52 <ray24> honestly, I didn't believe girls fart
03:28:41 <Patashu> They fart rainbows
03:29:01 <Robdgreat> well, some eat thunder and fart lightning
03:29:06 <oerjan> i'm pretty sure this is mandatory http://4.bp.blogspot.com/_XU9x8G7khv0/S7IIbe-yBJI/AAAAAAAAN9k/NDYV6HOP-Y0/s1600/second-amendment_bits.jpg
03:29:58 <CakeProphet> ...wtf are we even talking about right now.
03:30:08 <CakeProphet> aren't we supposed to be doing Mad Computer Science?
03:30:17 <ray24> <ray24> what would you do if a girl farted on your face?
03:32:22 <CakeProphet> I think a more important question
03:32:30 <CakeProphet> In what situation could I possibly be in that would cause this to happen.
03:34:55 -!- zzo38 has joined.
03:35:19 <Gregor> To quote Monty Python, "sit on my faaace, and tell me that you love me!"
03:42:38 <pikhq> Hrm. Fun fact. Debian doesn't seem to package the cord library in Boehm GC.
03:44:17 -!- azaq23 has quit (Read error: Operation timed out).
03:51:56 <ray24> lmao!!!
03:52:12 <ray24> What happened was this topic came up at starbucks
03:52:14 <ray24> i was with my friends
03:52:38 <ray24> I stated that girls don't fart
03:52:51 <ray24> and she said did right at my face
03:53:18 <Gregor> And you decided to resolve this dilemma by asking for the appropriate reaction on a channel you've never been to? :P
03:53:41 <ray24> I'm just a bit traumatized...
03:53:45 <ray24> Sorrrrrrrrrrrrrrrrrrrrrrrrrry
03:55:30 <ray24> I dont think I'll ever feel the same about girls
03:55:34 <ray24> Thought they were pure
03:55:39 <ray24> not farters
03:56:32 <ray24> of my 18 years of life.. i've not once heard/seen/smell the fart of a girl
03:56:58 <ray24> =|
03:57:48 <zzo38> I realized that the harmonic seventh chord is something else I have figured out by myself before I learned what it is called. It is basically linear: 4 5 6 7 8
03:58:49 <ray24> do you have the actual instrument
03:58:53 <ray24> that I can have
03:59:01 <zzo38> No.
03:59:06 <ray24> Then hell with you BRO!
03:59:07 <zzo38> I do not have the actual instrument.
03:59:16 <ray24> Hey man > = ) why dont you go get one
03:59:37 <zzo38> It is not an instrument I am describing here
03:59:50 <ray24> Then what EXACTLY is being described here?
04:00:08 <zzo38> Pitches of notes
04:00:54 <ray24> Dude that's like the most random thing ever
04:00:59 <ray24> hahha!
04:03:13 <ray24> yo zzo38 I bet I could outdo you in harmonics
04:03:23 <zzo38> OK
04:04:07 <ray24> I'm gonna take your harmonic chords
04:04:10 <ray24> and Im gonna turn it into my rap
04:04:47 <ray24> ultimate revenge
04:04:50 <ray24> dude.
04:11:49 <CakeProphet> ray24: what do those integers represent.
04:12:02 <CakeProphet> are they scale degrees?
04:12:14 <ray24> They're a scale of harmonic integers bro
04:12:37 <CakeProphet> so they're harmonics, then.
04:12:40 <oerjan> ray24: be careful. zzo38 has been known to try to get us to compose music in strange scales
04:13:51 <ray24> i'll do it if you pay me
04:14:28 -!- augur has quit (Remote host closed the connection).
04:16:46 <zzo38> The numbers 4 5 6 7 8 could be seen as scale degrees in a linear temperament I guess. They are not scale degrees in any normal way. If you have a frequency called "f" then you play the tones of frequencies (4f,5f,6f,7f,8f) is what I mean by that.
04:19:06 <CakeProphet> right
04:19:32 <zzo38> Program your computer to play those tones and then you can hear it by yourself too.
04:19:43 <CakeProphet> so 4 would just be the second octave over f, and 5 would be...... major third?
04:19:47 <ray24> how do you become a millionaire
04:19:55 <zzo38> CakeProphet: Yes, a just major third.
04:20:26 <CakeProphet> is 6 a perfect fifth? no...
04:20:31 <zzo38> (As opposed to an equal-tempered major third, which is slightly different)
04:20:35 <CakeProphet> right.
04:20:41 <zzo38> CakeProphet: It is a just perfect fifth.
04:20:53 <CakeProphet> so this is all just intonation then.
04:20:57 <zzo38> Yes.
04:21:31 <CakeProphet> bleh, no way I'll be able to figure out the rest. :P Except 8, which is just the third octave.
04:21:44 <zzo38> Yes.
04:21:58 <CakeProphet> I think you could leave out the octaves and still have the same chord.
04:22:57 <CakeProphet> since octaves don't really contribute to the quality of a chord.
04:23:11 <ray24> I got a trumpet but I cannot figure out how to apply anything you guys are saying!
04:23:24 <CakeProphet> I think most trumpets are equal temperament right?
04:23:56 <zzo38> The 7 is what is called the "harmonic seventh" (I only learned today that it is called that)
04:24:01 <ray24> I think they have equilaterals
04:24:02 <CakeProphet> so probably can't play just tones.
04:24:20 <CakeProphet> zzo38: yes a harmonic seventh is the seventh on the harmonic minor. There are other sevenths as well.
04:24:25 <CakeProphet> *minor sevenths
04:24:48 <CakeProphet> don't ask me why. I guess were just like "hey this minor scale sucks let's make three of them!"
04:24:57 <CakeProphet> *they were
04:25:24 <CakeProphet> so harmonic minor = major seventh
04:26:00 <CakeProphet> because the harmonic minor scale is the melodic minor scale with a raised seventh. To add more tension to the seventh because it's a semitone away from octave, whereas a minor seventh is a whole tone away from octave.
04:26:31 <ray24> You're a musical buff
04:26:35 * CakeProphet just schooled ray24 in some music theory.
04:26:36 <ray24> that's crazy man!
04:26:48 <ray24> are you like beethoven jr
04:26:52 <CakeProphet> ....no
04:26:57 <CakeProphet> I actually cannot play any instrument well.
04:27:01 <zzo38> Most instruments are made for equal temperament. This has various advantages, although just intonation is more "pure" and is far better in case of music written to use just intonation (instead of equal temperament).
04:27:04 <CakeProphet> I just spend a lot of time on the internet learning things.
04:27:16 <ray24> have you ever touched an instrument
04:27:30 <zzo38> CakeProphet: I know all those things about minor scales, but the "harmonic seventh" I refer to here has nothing to do with that as far as I can tell.
04:27:34 <CakeProphet> yes, I used to play trombone in middle school, and I learned guitar in high school. Oh, and I took piano lessons as a wee lad.
04:27:46 <ray24> Whoaaa
04:27:48 <CakeProphet> zzo38: oh really? hmmm
04:27:58 <ray24> can you tap dance on top of a piano
04:28:00 <CakeProphet> ray24: but I am a terrible musician. :P
04:28:01 <ray24> sorry really random
04:28:03 <CakeProphet> ...no
04:28:23 <CakeProphet> zzo38: dunno, I could ask one of my friends. He's a music major.
04:28:41 <ray24> so cakeprophet is like a self help book
04:28:56 <CakeProphet> No, I just like learning things.
04:29:18 <ray24> bet you haven't learned anything from me yet
04:29:32 <CakeProphet> I do plan on applying my music theory knowledge when I get around to making a signal processing library in Haskell.
04:29:41 <CakeProphet> ray24: not yet, but you could always change that.
04:29:48 <ray24> whoa, haskell ... that's top notch stuff
04:29:52 <CakeProphet> .......
04:30:01 <ray24> What!
04:30:09 <zzo38> That is, just intonation is a rational temperament. Equal temperament is irrational temperament. Equal temperament has advantage you can transpose into any key and play any chord; all chord are equally bad; you can make music with a lot of chord and modulations and stuff. Just intonation has advantage that good chords are exactly correct and you have proper ratios to everything.
04:30:25 <zzo38> Therefore, I recommend that whenever you play music, try, if possible, to play in the kind of temperament that it was written for.
04:30:36 <ray24> Is it possible to reduce 50% of those words in that paragraph and still hold it's intended meaning??
04:30:39 <oerjan> > fix("haskell "++)
04:30:40 <lambdabot> "haskell haskell haskell haskell haskell haskell haskell haskell haskell ha...
04:30:51 <zzo38> ray24: Possibly. Maybe.
04:31:09 <ray24> my eyes man!!
04:31:23 <CakeProphet> ray24: can you program?
04:31:56 <ray24> what if I cannot
04:32:04 <CakeProphet> just curious. There is no consequence.
04:32:37 <oerjan> it _might_ make it a little easier to follow some of the conversations here :P
04:32:51 <oerjan> </understatement>
04:33:00 <ray24> Program isn't a challenge. the only challenge is my motivation!
04:33:08 <CakeProphet> though it would make sense, since you're on a channel about esoteric programming languages (and mostly about random off-topic things, but generally centered on computer science or mathematical topics)
04:33:18 <ray24> yo..
04:33:26 <ray24> I came here I thought esoteric was hip hop
04:33:30 <ray24> honestly.
04:33:36 <CakeProphet> ray24: what kind of hip hop do you like.
04:33:38 <oerjan> ...that's a new one :P
04:33:54 <ray24> esoteric is a pretty cool hiphop
04:33:57 <ray24> artist
04:34:01 <CakeProphet> I'm a big fan of The Roots. Black Thought is a beast.
04:34:09 <ray24> You should get into esoteric
04:34:22 <zzo38> If you read the TOPIC message, then you would have realized that the TOPIC message is often nonsense and doesn't really help much (unless you want to see the log files).
04:34:42 <ray24> Yeah I got the topic thing on auto-hide
04:34:47 <ray24> since it's really distracting to have it on
04:35:07 <ray24> you know, I'm focused typing here and there's something there... can't have it all at once
04:35:49 <CakeProphet> ray24: http://mitpress.mit.edu/sicp/full-text/book/book.html
04:35:54 <CakeProphet> This book will allow you to become a wizard.
04:36:12 * pikhq notes that the read and write system calls are a royal pain to use.
04:36:25 <pikhq> Efficient as hell in certain cases, but a royal PITA.
04:36:29 <CakeProphet> it only requires that you read it with an inquiring mind and a stalwart soul.
04:36:31 <ray24> will becoming a wizard make me a mark zuckerberg?
04:36:40 <CakeProphet> No, it will be much stranger.
04:36:48 <zzo38> OK. That is understood. (I use a different IRC client, which displays the TOPIC message when joining the channel but it scrolls off of the screen as soon as there is more text. This is in agreement with the RFC.)
04:36:49 <pikhq> http://sprunge.us/WJcG You see? Royal PITA.
04:36:56 <pikhq> (just copies stdin to stdout)
04:37:12 <ray24> This is the actual book from mitpress?
04:37:40 <CakeProphet> ray24: yes.
04:37:57 <ray24> if i read that book, will I develop stronger comprehension?
04:38:04 <CakeProphet> uh, possibly.
04:38:10 <CakeProphet> if you read it and understand it, then yes.
04:38:19 <ray24> what if I comprehend before reading it
04:38:23 <CakeProphet> though I guess it would help to have some background beforehand.
04:38:24 <ray24> serious q
04:38:38 <CakeProphet> ray24: then you fucking psychic and I am afraid of you.
04:38:41 <CakeProphet> *you are
04:38:44 <ray24> I really am a psychic
04:39:22 <CakeProphet> ray24: uh, okay, then explain how a Lisp interpreter works.
04:39:29 <ray24> ^_^
04:39:36 <CakeProphet> FOILED.
04:39:43 <ray24> I need some exposure first
04:39:49 <CakeProphet> I know because I am psychic.
04:39:58 <ray24> yeah you'e a psychic cuz
04:40:05 <ray24> nevermind
04:40:15 <CakeProphet> pikhq: what on earth are you doing.
04:41:06 <ray24> lol
04:41:10 <ray24> yo cake, r u high
04:41:17 <pikhq> CakeProphet: Fucking around at random.
04:41:31 <pikhq> Also, lemme re-paste that.
04:41:31 <pikhq> http://sprunge.us/KbVE
04:41:36 <pikhq> Now it strictly conforms!
04:43:22 <ray24> I've decided
04:43:23 <ray24> to read that book
04:43:28 <CakeProphet> Good luck with that.
04:43:34 <ray24> if i read that book and understood
04:43:41 <ray24> what should i be able to accomplsih?
04:44:02 <pikhq> I think this is the first time I've seen strictly conforming POSIX code, for that matter.
04:44:27 <CakeProphet> you will become an initiate wizard. And you will be able to write code in slightly antiquated languages, which means you can tell a computer to do anything that a computer is capable of doing.
04:44:38 <CakeProphet> pretty vague, I guess.
04:45:46 <CakeProphet> but then you could start developing your mad hacker cred further, or whatever it is that you want to do with your newfound powers.
04:46:16 <ray24> are you serious about this
04:46:21 <ray24> will i develop these powers
04:46:30 <ray24> bcuz I'm really gonna read it if so.
04:46:32 <pikhq> Has anyone else here ever written a strictly conforming POSIX program?
04:47:55 <ray24> ANDDDDDD that would be no.
04:48:44 <oerjan> ray24: CakeProphet may be slightly non-literal about the wizard bit
04:48:58 <ray24> yeah man i dont want to have false hopes and stuff
04:49:12 <ray24> i wanna do it so I could hack computers some day
04:49:21 <ray24> for the greater good of society
04:49:35 <CakeProphet> pikhq: I honestly don't know anything about POSIX standards
04:50:04 <CakeProphet> so I doubt it
04:50:05 <ray24> I think IM gonna go jump cows right now...
04:50:09 <ray24> wait.. im gonna read this book
04:54:08 <ray24> http://www.esoterichiphop.com/
04:59:12 <ray24> I cannot believe how much filler words they have in that book
05:00:14 <ray24> maybe I just got a high IQ or something iono!
05:02:17 <CakeProphet> it depends on your definition of filler words. Most words are pretty essential to the meaning of a sentence.
05:03:08 <ray24> they use a lot of general words. ie " framework, structure, organization etc"
05:03:09 -!- augur has joined.
05:03:43 <ray24> repetition won't stimulate much in my mind to be honest
05:03:55 <CakeProphet> ray24: well, since it's the introduction if they used anything less general you would be overwhelmed by specific details.
05:05:25 <ray24> I usually just go straight into the problems
05:07:27 -!- pikhq_ has joined.
05:07:28 -!- pikhq has quit (Ping timeout: 252 seconds).
05:10:05 <ray24> So a lisp represents inputs that you feed it
05:10:22 <ray24> maybe a lisp could also interpret my algorithm
05:10:27 <ray24> interesting
05:11:01 <ray24> I wasn't a programmer 1 hour ago.. but I might be a programmer in the next 24 hours
05:13:54 <oerjan> !help languages
05:13:55 <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.
05:14:11 <oerjan> no lisp that i can see
05:17:55 <ray24> I'll become a good programmer within a month
05:17:57 <ray24> no problem,
05:18:02 <ray24> Not even a challenge
05:18:20 <ray24> Seems pretty easy so far
05:19:45 <ray24> Brb I'm gonna hop the hence behind my yard and jump the cows
05:19:49 * oerjan tries to resist linking to a certain peter norvig page
05:19:50 <ray24> hehe they're backk!
05:24:20 <oerjan> the cow jumped over the moon
05:35:33 <pikhq_> I should really stop doing pointless shit.
05:36:55 <pikhq_> Such as "golfing executable size for (nearly POSIX-compliant) cat whilst only relying on POSIX features."
05:44:19 <CakeProphet> What are you talking about
05:44:23 <CakeProphet> that's an excellent idea.
05:46:19 <CakeProphet> the best way to do that is to write it in assembly of course.
05:46:35 <CakeProphet> but won't the executable be different sizes on different architectures?
05:47:53 <pikhq_> I'm demanding that it be a strictly conformant POSIX C program.
05:48:36 <CakeProphet> and I guess you're going by the executable size on your local machine?
05:49:31 <pikhq_> For an i686 machine using musl.
05:49:48 <CakeProphet> ah okay.
05:49:52 <CakeProphet> now I have to ask..
05:49:53 <CakeProphet> why?
05:49:58 <pikhq_> I have no idea.
05:50:05 <CakeProphet> for sport? it seems oddly specific.
05:50:10 <CakeProphet> to be merely recreational.
05:50:36 <CakeProphet> are you just really really bored?
05:50:44 <ray24> suppppppppp!
05:50:59 <ray24> yo cake
05:51:00 <pikhq_> I am easily amused by oddly specific tasks.
05:51:02 <ray24> r u a hacker
05:51:31 <pikhq_> http://sprunge.us/ZHdQ Nasty, but strictly conformant.
05:52:28 <pikhq_> And it is nearly a perfect POSIX cat (it does not *quite* comply to the requirements for argument handling)
05:53:34 <pikhq_> And yes, read and write are *really* nasty.
05:53:43 <pikhq_> But that's the cost you pay for not using stdio.
05:54:01 <oerjan> ...it would be amusing if compliant POSIX programs cannot be written in compliant POSIX C
05:54:14 <zzo38> What is nasty with read and write?
05:54:36 <pikhq_> zzo38: Note that, to do it *right*, you have to retry if you get EINTR.
05:55:15 <ray24> How do you to modify operands?
05:58:47 <pikhq_> So far, I'm down to 1680 bytes.
06:01:02 <pikhq_> Incidentally, this is *obnoxiously* slow.
06:01:42 <pikhq_> Of course, having to enter the kernel twice per character will do that.
06:04:13 <ray24> What is pikhq_ talking about
06:04:22 <pikhq_> ray24: A lot of craziness.
06:04:40 <ray24> ur craziness elicits no response from your intended audience
06:04:57 <pikhq_> Because some days, I like to spend an hour doing something that is literally pointless.
06:05:06 <ray24> Why!?
06:05:13 <pikhq_> Entertainment.
06:05:29 <ray24> how many forms of entertainment do you have?
06:05:47 <pikhq_> *Hooray*, taking 5 minutes to cat 578 megabytes!
06:05:53 <pikhq_> ray24: Rather a lot, actually.
06:06:02 <ray24> are you a hacker?
06:06:12 <pikhq_> Depends on the sense of "hacker" that you use.
06:06:26 <ray24> break codes.. conduct illegal stuff
06:06:36 <ray24> adding virus to mp3 files
06:06:41 <ray24> corrupting sys files
06:06:49 <oerjan> *GASP*
06:06:50 <pikhq_> No, but not for lack of skills.
06:06:59 <CakeProphet> Dude, you can put /viruses/ in mp3 files?
06:07:03 <CakeProphet> how do you do that shit.
06:07:11 <ray24> i think it's possible
06:07:17 <CakeProphet> Is there a vaccine for it?
06:07:22 <ray24> nope :
06:07:23 <ray24> :P
06:07:24 <pikhq_> CakeProphet: :D
06:07:30 <oerjan> mpcillin
06:07:53 <CakeProphet> tee hee hee. :3
06:10:03 <ray24> you know what would be a great invention that i thought of
06:10:27 <CakeProphet> it might be possible through some insane stack buffer overflow exploit on certain media players... but that sounds highly improbable due to the nature of lossy compression.
06:10:48 <pikhq_> CakeProphet: It'd most likely be a buffer exploit in the parser.
06:11:09 <pikhq_> That sort of thing is *far* more common than you'd ever like to think.
06:11:33 <pikhq_> Even happens in believed to be *good* software.
06:11:41 <CakeProphet> I will continue thinking that it is uncommon for my own mental safety.
06:11:43 <pikhq_> (see that libpng buffer overflow a few years back)
06:11:58 <CakeProphet> right, but has it been known to happen with mp3s?
06:12:05 <pikhq_> I dunno.
06:12:28 <CakeProphet> I guess it's similar in principle really. The fact that you can embed code into any kind of data format is pretty scary in itself.
06:12:44 <pikhq_> You must remember, though, that C is commonly used, and with C you get a very, very high risk of buffer overflows.
06:12:58 <CakeProphet> lame. :P
06:13:22 <CakeProphet> (....not the mp3 d?en?coder)
06:13:34 <CakeProphet> er, excuse me (de|en)
06:13:45 <CakeProphet> there is no such thing as an ecoder. :P
06:14:08 <zzo38> Then invent one.
06:14:54 <CakeProphet> An ecoder takes an input signal and turns it into kittens. The ambiguity of this definition is intentional and allows for a wide variety of behaviors.
06:15:00 <CakeProphet> There, I invented the term.
06:15:19 <ray24> how long did it took CakeProphet to finish that book?
06:15:27 <CakeProphet> Dude I don't even remember.
06:15:31 <oerjan> coding the den
06:15:48 <CakeProphet> ah yes, I forgot about dencoders.
06:16:16 <pikhq_> Clearly, it codeth dens.
06:16:30 <CakeProphet> yes, it codes an input signal as a comfortable living space.
06:17:02 <CakeProphet> I guess ecoder could be a coder that is environmentally friendly.
06:18:30 <CakeProphet> pikhq_: so what is the best way to avoid buffer overflows in C exactly?
06:21:54 <CakeProphet> hmmm, apparently the Twilight hack works by giving lengthy name for Epona and causing a stack buffer overflow.
06:22:02 <CakeProphet> +a
06:27:22 <ray24> Buffy the vampire
06:28:50 <pikhq_> CakeProphet: Don't use C.
06:30:05 <oerjan> maybe trusting trust was a digression, maybe the _real_ unremovable vulnerability was C itself...
06:32:04 <CakeProphet> shit just got more real than kraft mayo.
06:34:21 * pikhq_ is probably far too good at making things pointlessly small.
06:35:09 <pikhq_> Hmm. cat is larger than shish.
06:35:33 <pikhq_> Admittedly, shish has the advantage of assuming Linux x86.
06:35:38 <pikhq_> And no libc.
06:39:57 <oerjan> döner
06:40:35 <pikhq_> ... And possesses the minimal functionality necessary to count as a "shell".
06:41:02 <oerjan> + a kebab
06:41:24 <pikhq_> Nope. No kebabs. Only cd and environment handling.
06:42:05 <pikhq_> And command execution.
06:42:25 <oerjan> those commands better behave, or else
06:42:42 <pikhq_> And that's comprehensive.
06:42:59 <pikhq_> You may now be frightened.
06:43:12 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
06:43:26 <pikhq_> Thank you for compliance.
06:43:37 <oerjan> yw
06:56:28 <zzo38> It is possible to still write programs in C that do not have buffer overflows, if you are careful.
06:56:49 <pikhq_> zzo38: Yes, it's possible if you have a divine level of care.
06:57:14 <pikhq_> And that leaves out all known programmers.
06:57:19 <zzo38> In the case of Twilight hack, it doesn't matter though because you cannot overflow the length of the name in the normal game.
06:57:42 <zzo38> And other programs are not supposed to be used to create files for this game
06:58:22 <pikhq_> The whole *deal* with buffer overflows is that you can't make assumptions that the input will be well-formed.
06:58:29 <pikhq_> If you could, gets would be a reasonable function.
06:58:32 <zzo38> pikhq_: When security is important, I do it carefully.
06:58:33 <pikhq_> (hint: it's not)
06:59:25 <zzo38> I know gets is not a very good function but they did correct that and other ones by making new functions that do not have this problems.
06:59:33 <pikhq_> Yup.
07:00:14 <zzo38> Such as: fgets, snprintf, etc.
07:08:24 <zzo38> TeX is very secure (as long as you use the One True TeX; not e-TeX, pdfTeX, LuaTeX, XeTeX, etc) if you can simply disable the commands you do not want in the format file by undefining those control sequences (and ensuring you have no other control sequences or active characters with the meanings that they had). I wrote a program accessing TeX with HTTP forms and if you try to "improve" it you have a chance of introducing security holes!
07:10:42 <Patashu> Is it possible to determine at compile time where overflows could potentially happen
07:10:55 <Patashu> I know there's a C extension, Cyclone or something, that does it
07:11:18 <pikhq_> Patashu: Halting problem.
07:11:28 <Patashu> O_O
07:11:37 <zzo38> Yes I have read about Cyclone.
07:11:38 * Patashu goes flying into the horizon
07:11:39 <pikhq_> Best you can do is heuristics.
07:11:49 <pikhq_> Or runtime checks.
07:15:30 -!- oerjan has quit (Quit: Good night).
07:17:12 -!- Albibeno has joined.
07:21:29 -!- Albibeno has quit (Ping timeout: 250 seconds).
07:24:10 -!- Albibeno has joined.
07:26:30 <Albibeno> , , ?
07:26:45 <pikhq_> QVOD
07:27:48 -!- Albibeno has left.
07:28:58 -!- esowiki has joined.
07:29:20 -!- esowiki has joined.
07:29:41 -!- esowiki has joined.
07:30:02 -!- esowiki has joined.
07:30:41 -!- esowiki has joined.
07:31:18 -!- esowiki has joined.
07:32:14 -!- esowiki has joined.
07:32:52 -!- esowiki has joined.
07:33:40 -!- esowiki has joined.
07:34:27 -!- esowiki has joined.
07:35:11 -!- esowiki has joined.
07:35:12 -!- glogbot has joined.
07:42:46 -!- Ycros has joined.
07:42:47 -!- Lymia has joined.
07:43:24 -!- oklofok has joined.
07:43:24 -!- pingveno has joined.
07:43:24 -!- ttm_ has joined.
07:43:24 -!- HackEgo has joined.
07:43:24 -!- Zwaarddijk has joined.
07:43:33 -!- myndzi has joined.
07:43:36 -!- Slereah_ has joined.
07:43:36 -!- Albibeno has joined.
07:43:36 -!- pikhq_ has joined.
07:43:36 -!- augur has joined.
07:43:36 -!- zzo38 has joined.
07:43:36 -!- Robdgreat has joined.
07:43:36 -!- wareya_ has joined.
07:43:36 -!- CakeProphet has joined.
07:43:36 -!- Wamanuz has joined.
07:43:36 -!- variable has joined.
07:43:36 -!- aloril has joined.
07:43:36 -!- monqy has joined.
07:43:36 -!- lifthrasiir has joined.
07:43:36 -!- coppro has joined.
07:43:36 -!- olsner has joined.
07:43:36 -!- SimonRC has joined.
07:43:36 -!- EgoBot has joined.
07:43:36 -!- jcp has joined.
07:43:36 -!- comex has joined.
07:43:36 -!- mtve has joined.
07:43:36 -!- rodgort has joined.
07:43:36 -!- jix has joined.
07:43:36 -!- yorick has joined.
07:43:36 -!- iamcal has joined.
07:43:36 -!- Gregor has joined.
07:43:36 -!- micahjohnston has joined.
07:43:36 -!- tswett has joined.
07:43:46 -!- zzo38 has quit (Quit: zzo38).
07:43:50 -!- twice11_ has joined.
07:43:50 -!- Deewiant has joined.
07:43:56 -!- comex has quit (Excess Flood).
07:44:02 -!- comex_ has joined.
07:44:02 -!- pikhq has joined.
07:44:06 -!- quintopia has joined.
07:44:06 -!- clog has joined.
07:44:06 -!- sebbu has joined.
07:44:06 -!- yiyus has joined.
07:44:06 -!- ineiros has joined.
07:44:16 -!- fizzie has quit (*.net *.split).
07:44:17 <pikhq> I'm afraid that all we're getting is mojibake, Albibeno.
07:44:26 -!- ray24 has joined.
07:44:26 -!- lambdabot has joined.
07:44:31 -!- twice11_ has quit (*.net *.split).
07:44:32 -!- Deewiant has quit (*.net *.split).
07:44:36 -!- mycroftiv has joined.
07:44:36 -!- shachaf has joined.
07:44:43 -!- oklofok has quit (*.net *.split).
07:44:43 -!- pingveno has quit (*.net *.split).
07:44:43 -!- ttm_ has quit (*.net *.split).
07:44:43 -!- HackEgo has quit (*.net *.split).
07:44:43 -!- Zwaarddijk has quit (*.net *.split).
07:44:45 -!- pikhq has quit (*.net *.split).
07:44:45 -!- Ycros has quit (*.net *.split).
07:45:09 -!- shachaf has quit (Max SendQ exceeded).
07:45:19 -!- pikhq has joined.
07:45:31 -!- shachaf has joined.
07:45:37 <pikhq> Would the server please start coöperating?
07:46:48 -!- pikhq_ has quit (Ping timeout: 240 seconds).
07:48:23 <Albibeno> smoke ganja?
07:49:06 -!- fizzie has joined.
07:49:46 -!- oklofok has joined.
07:49:46 -!- pingveno has joined.
07:49:46 -!- ttm_ has joined.
07:49:46 -!- HackEgo has joined.
07:49:46 -!- Zwaarddijk has joined.
07:49:59 -!- twice11_ has joined.
07:49:59 -!- Deewiant has joined.
07:50:12 -!- pingveno has quit (Max SendQ exceeded).
07:50:27 -!- Ycros has joined.
07:50:29 -!- Albibeno has left.
07:51:10 -!- pingveno has joined.
07:53:13 -!- twice11_ has changed nick to twice11.
08:01:30 <CakeProphet> !perl print 'a'<=>'b'
08:01:32 <EgoBot> 0
08:01:39 <CakeProphet> ...what?
08:01:44 <CakeProphet> !perl print ('a'<=>'b')
08:01:44 <EgoBot> 0
08:01:47 <CakeProphet> !perl print ('a'<=>'c')
08:01:47 <EgoBot> 0
08:01:51 <CakeProphet> That is entirely wrong.
08:02:00 <CakeProphet> !perl print ('a' cmp 'c')
08:02:00 <EgoBot> ​-1
08:02:11 <CakeProphet> oh okay. <=> doesn't do what I think it does apparently.
08:03:12 <CakeProphet> !perl print sort 'a'..'c'
08:03:12 <EgoBot> abc
08:12:55 <CakeProphet> ah, cmp is for strings, <=> is numeric.
08:13:24 <CakeProphet> !perl print '99 bottles of beer' <=> '20 bottles of beer'
08:13:24 <EgoBot> 1
08:14:59 -!- monqy has quit (Quit: hello).
08:15:03 <CakeProphet> !perl print '99 bottles of light beer' == '99 bottles of lager'
08:15:04 <EgoBot> 1
08:15:10 <CakeProphet> Obviously Perl is wrong in this case.
08:26:12 -!- Patashu has quit (Ping timeout: 252 seconds).
08:46:06 -!- Kustas has joined.
08:49:49 <ray24> Whoa CakeProphet is still here
08:50:23 <CakeProphet> yes..
08:53:00 <Lymia> !print '9999999 tons of gold' '10000000 grams of copper'
08:53:10 <Lymia> !perl '9999999 tons of gold' < '10000000 grams of copper'
08:53:20 <Lymia> !perl print '9999999 tons of gold' < '10000000 grams of copper'
08:53:21 <EgoBot> 1
09:12:43 -!- ray24 has quit (Quit: Leaving).
09:14:11 -!- Phantom_Hoover has joined.
09:15:10 <CakeProphet> Lymia: yeah, obviously it's only interested in the number part.
09:15:17 <CakeProphet> hmmm...
09:15:45 <CakeProphet> !print '99sdjwer99' > '99'
09:15:50 <CakeProphet> !perl print '99sdjwer99' > '99'
09:16:25 <CakeProphet> !perl print '99 sdjwer 99' > '99'
09:16:29 <CakeProphet> !perl print '99 sdjwer' > '99'
09:16:32 <CakeProphet> ...?
09:16:47 <CakeProphet> !perl print '99 sdjwer 99' == '99'
09:16:48 <EgoBot> 1
09:16:51 <CakeProphet> interesting
09:16:55 <CakeProphet> !perl print '99 sdjwer 98' == '99'
09:16:55 <EgoBot> 1
09:17:01 <CakeProphet> !perl print '98 sdjwer 99' == '99'
09:17:18 <CakeProphet> so it just finds the first number-like entity and uses that.
09:17:31 <CakeProphet> !perl print '90.1 sdjwer 99' > '99'
09:17:37 <CakeProphet> !perl print '90.1 sdjwer' > '99'
09:17:45 <CakeProphet> and not decimal numbers apparently.
09:18:03 <CakeProphet> so basically don't ever rely on that feature.
09:18:15 <CakeProphet> !perl print '99.1 sdjwer' > '99'
09:18:16 <EgoBot> 1
09:18:18 <CakeProphet> er wait, lol typo
09:18:35 <CakeProphet> !perl print '$99' == '$99'
09:18:35 <EgoBot> 1
09:18:44 <CakeProphet> okay, I think that's enough of that.
09:19:22 <Lymia> !perl print "asdfasdf" == "asdfasdf"
09:19:23 <EgoBot> 1
09:19:25 <Lymia> !perl print "asdfasdf" == "asdfasff"
09:19:26 <EgoBot> 1
09:19:29 <Lymia> ...
09:19:30 <Lymia> :c
09:20:18 <CakeProphet> yeah I think in the case where there is no number they're both zero
09:20:24 <CakeProphet> or the string is zero rather.
09:20:50 <CakeProphet> !perl print '99 problem' + 'none of them are bitches'
09:20:50 <EgoBot> 99
09:21:36 <fizzie> Non-numeric srings are indeed 0.
09:21:38 <fizzie> !perl print 'foo'+0
09:21:39 <EgoBot> 0
09:21:46 <twice11> CakeProphet: There is documentation available about strings, numbers and implicit conversions in perl.
09:21:49 <CakeProphet> Lymia: but yeah, for stringy operators you want eq, ne, lt, gt, and cmp
09:21:54 <fizzie> Anyway, you're supposed to use the eq and...
09:21:57 <fizzie> Right.
09:22:03 <CakeProphet> twice11: of course there is. :P
09:22:13 <twice11> You know that one?
09:22:21 <twice11> !perl print "0, but true" + 0
09:22:21 <EgoBot> 0
09:22:26 <CakeProphet> what is "that one"?
09:22:34 <twice11> "perl print "TRUE!" if "0, but true"
09:22:42 <twice11> !perl print "TRUE!" if "0, but true"
09:22:43 <EgoBot> TRUE!
09:23:02 <twice11> so this is an expression which is numerically zero, but logically true.
09:23:13 <Lymia> So...
09:23:15 <twice11> because every non-empty string is true...
09:23:24 <Lymia> Is this golf usable material?
09:23:35 <CakeProphet> twice11: yes, I understand how Perl works. Unless you're speaking to someone else, then I guess it's fine to continue.
09:24:10 <CakeProphet> Lymia: it could be in some very specific situation. But I doubt it.
09:24:11 <twice11> CakeProhet: Sorry, it looked like you were experimenting with the comparison operators...
09:24:37 <CakeProphet> oh, I was. I was just experimenting with how the numeric context worked. Otherwise I had it down. No worries.
09:24:55 <Lymia> !perl print '$99' == '$199'
09:24:56 <EgoBot> 1
09:25:07 <twice11> Lymia: Using implicit conversion from string to number ignoring everything after the first valid number occurs sometimes in golf.
09:25:26 <Lymia> !perl print '$9242'+0
09:25:27 <EgoBot> 0
09:25:58 <CakeProphet> Lymia: shame, it really should work with currency symbols.
09:26:30 <Lymia> !perl print ' 9242'+0
09:26:30 <EgoBot> 9242
09:26:33 <Lymia> .....
09:26:36 <Lymia> !perl print 'wat 9242'+0
09:26:37 <EgoBot> 0
09:26:41 <CakeProphet> granted, any kind of software that handles money should not be relying on Perl's numeric conversion mechanism.
09:26:47 <CakeProphet> er....?
09:26:47 <twice11> !perl print '$1' < '€1' # how should this be decided...
09:27:08 <Lymia> twice11, 1 == 1 therefore false
09:27:13 <CakeProphet> twice11: well, I didn't mean it should try to /compare/ currencies precisely.
09:27:18 <Lymia> !perl print ' 9242 25334 '
09:27:19 <EgoBot> 9242 25334
09:27:22 <Lymia> !perl print ' 9242 25334 '+0
09:27:22 <EgoBot> 9242
09:27:41 <twice11> Lymia: perl is just doing atof() on that string.
09:28:00 <Lymia> Ah.
09:28:13 <twice11> It ignores whitespaces in the beginning, parses a floating point number, and aborts at the first invalid character.
09:30:06 <CakeProphet> !perl print 1 . 4
09:30:06 <EgoBot> 14
09:30:26 <Lymia> !perl print ' 9242.25334 '+0
09:30:27 <EgoBot> 9242.25334
09:30:32 <CakeProphet> !perl print 1.0 eq 1
09:30:32 <EgoBot> 1
09:30:38 <CakeProphet> interesting.
09:30:45 <Lymia> !perl print 1.0+1.0+1.0+1.0+1.0 eq 5
09:30:45 <EgoBot> 1
09:31:09 <CakeProphet> I suppose it cuts off the .0 part
09:31:25 <CakeProphet> when it converts the literal into a number or whatever.
09:31:34 <CakeProphet> so it's just 1 when it converts to a string.
09:31:48 <Lymia> !perl print 1.1+1.1+1.1+1.1+1.1+1.1+1.1+1.1+1.1+1.1 eq 11
09:31:49 <EgoBot> 1
09:31:49 <CakeProphet> or... some equivalent of that effect.
09:31:54 <Lymia> !perl print 1.1+1.1+1.1+1.1+1.1+1.1+1.1+1.1+1.1+1.1 == 11
09:32:01 <Lymia> ?
09:32:23 <CakeProphet> !perl print 1.0 == 1
09:32:23 <EgoBot> 1
09:32:30 <twice11> !perl print 1.0 . ""
09:32:30 <EgoBot> 1
09:32:43 <Lymia> !perl print 1.1 . 1.1
09:32:43 <EgoBot> 1.11.1
09:33:10 <CakeProphet> !perl print 1.1.1.1 #oh no, ambiguity!
09:33:10 <EgoBot> ​....
09:33:26 <CakeProphet> an appropriate response..
09:33:56 <CakeProphet> !perl // // //
09:34:35 <twice11> In fact, "perl print 1.1.1.1" prints four charcters of "\x01".
09:34:58 <twice11> Like the binary representation of an IPv4 address...
09:35:07 <CakeProphet> What on earth..
09:35:26 <CakeProphet> !perl print 255.255.255.255
09:35:26 <twice11> Works even with a different number of components.
09:35:26 <EgoBot>
09:35:41 <CakeProphet> I didn't know about this craziness...
09:35:58 <twice11> !perl print 0x48.0x45.0x4C.0x4C.0x4F
09:35:58 <EgoBot> 7269767679
09:36:11 <twice11> huh? not with hex numbers...
09:36:34 <twice11> !perl print 72.64.76.76.79
09:36:35 <EgoBot> H@LLO
09:36:41 <twice11> !perl print 72.69.76.76.79
09:36:42 <EgoBot> HELLO
09:36:45 <CakeProphet> !perl print 32.32.32.32.32.32.32.32.64
09:36:46 <EgoBot> ​@
09:36:57 <twice11> seems EgoBot kills spaces.
09:37:01 <CakeProphet> yeah.
09:37:09 <twice11> Locally, I get them.
09:37:44 <CakeProphet> !perl print 32 . 32 . 32 . 32 . 32 . 32 . 32 . 32 . 64
09:37:44 <EgoBot> 323232323232323264
09:37:51 <CakeProphet> where is that . notation documented?
09:37:59 <twice11> Just checking.
09:38:09 <CakeProphet> !perl print 32.32
09:38:09 <EgoBot> 32.32
09:38:19 <twice11> With the spaces inbetween, the dot is just the concatenation operator...
09:38:24 <CakeProphet> right
09:38:38 <CakeProphet> I was referring to the other form.
09:40:51 <twice11> CakeProphet: man perldata, search for "Version Strings"
09:41:01 <CakeProphet> ooooh
09:41:10 <twice11> Note "If there are two or more dots in the literal, the leading "v" may be omitted"
09:41:45 <twice11> !perl print v65.72
09:41:45 <EgoBot> AH
09:44:28 <twice11> !perl print (printf "%vd" v65.72)
09:44:29 <EgoBot> Bareword found where operator expected at /tmp/input.23532 line 1, near ""%vd" v65"
09:44:41 <twice11> !perl print (printf "%vd",v65.72)
09:44:41 <EgoBot> 65.721
09:44:59 <fizzie> !perl print v64
09:45:00 <EgoBot> ​@
09:45:01 <fizzie> !perl print keys %{{v64 => "hah"}}
09:45:02 <EgoBot> v64
09:45:21 <fizzie> !perl print keys %{{v64.64 => "hah"}}
09:45:22 <EgoBot> ​@@
09:45:34 <fizzie> Very consistoric.
09:46:14 <CakeProphet> !perl print stuff => 3
09:46:14 <EgoBot> stuff3
09:46:55 <twice11> !perl printf "%vd" v65.72
09:46:56 <EgoBot> Bareword found where operator expected at /tmp/input.23924 line 1, near ""%vd" v65"
09:46:59 <twice11> !perl printf "%vd",v65.72
09:47:00 <EgoBot> 65.72
09:47:20 <twice11> !perl print (sprintf "%vd",v65.72)
09:47:20 <EgoBot> 65.72
09:47:37 <twice11> OK, that's my fault. I mixed up printf and sprintf, causing the extra 1.
09:48:07 <fizzie> !perl print v64 => "stuff";
09:48:08 <EgoBot> v64stuff
09:48:16 <fizzie> !perl print v64.64 => "stuff";
09:48:17 <EgoBot> ​@@stuff
09:48:23 <fizzie> !perl print v64.64, "stuff";
09:48:24 <EgoBot> ​@@stuff
09:48:28 <fizzie> !perl print v64, "stuff";
09:48:29 <EgoBot> No comma allowed after filehandle at /tmp/input.24281 line 1.
09:48:45 <CakeProphet> !perl print scalar number => 3
09:48:46 <EgoBot> number3
09:48:51 <CakeProphet> !perl print (scalar number => 3)
09:48:52 <EgoBot> number3
09:49:02 <CakeProphet> ah I see
09:49:07 <CakeProphet> !perl print scalar (number => 3)
09:49:08 <EgoBot> 3
09:49:20 -!- Lymia has quit (Ping timeout: 268 seconds).
09:52:20 -!- Sgeo has joined.
09:52:48 <CakeProphet> !perl print substr dastardly => 2, 4
09:52:48 <EgoBot> star
10:00:08 -!- Kustas has quit (Quit: all work and no play).
10:00:42 <Sgeo> Uh, Chrome? I'd like to see my saved passwords now, kthx
10:05:28 -!- sebbu2 has joined.
10:05:29 -!- sebbu2 has quit (Changing host).
10:05:29 -!- sebbu2 has joined.
10:07:01 <twice11> Sgeo: Wrench->Preferences->Personal stuff->Manage Saved Passwords...->Click a line and "show"
10:07:35 <Sgeo> There is no "show"
10:08:07 -!- sebbu has quit (Ping timeout: 240 seconds).
10:08:08 -!- sebbu2 has changed nick to sebbu.
10:08:11 <Sgeo> Oh
10:08:15 <twice11> If I select one entry in the list, a "Show" button appears after the big dots.
10:08:23 <Sgeo> Found it, need to hover over the right side of the password box
10:28:36 -!- Patashu has joined.
11:11:21 -!- Lymia has joined.
11:11:21 -!- Lymia has quit (Changing host).
11:11:21 -!- Lymia has joined.
11:12:49 <Lymia> ....
11:12:55 <Lymia> Scrollback tells me this: wtf perl
11:13:18 <olsner> you needed scrollback to know that?
11:20:23 -!- Guest64102 has joined.
11:21:03 <Guest64102> Hey guys, wot u chatting about tosay?
11:21:57 -!- Guest64102 has left.
11:31:30 <CakeProphet> nm u? :3
11:35:27 -!- ralc has joined.
11:36:37 -!- Ycros has quit.
11:37:13 -!- Ycros has joined.
11:46:20 <Phantom_Hoover> http://www.reddit.com/r/programming/comments/hxg39/ny_times_schools_revamping_their_computer_science/c1z6q17
11:46:20 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
11:46:30 <Phantom_Hoover> /r/programming in a nutshell.
12:16:26 -!- FireFly has joined.
12:17:45 <Phantom_Hoover> http://en.wikipedia.org/wiki/Category:Baryons
12:17:48 <Phantom_Hoover> So many baryons.
12:19:30 <Patashu> Is there a 'list of categories'
12:19:32 <Patashu> or category:list
12:19:34 <Patashu> *lists
12:19:48 <Phantom_Hoover> http://en.wikipedia.org/wiki/Category:Categories
12:19:53 <Phantom_Hoover> Yo dawg
12:20:00 <Patashu> Not to be confused with Category:Category-theoretic categories.
12:20:06 <Patashu> I put a category in your category of categories
12:20:21 <Phantom_Hoover> HIDDEN CATEGORIES
12:20:26 <Patashu> http://en.wikipedia.org/wiki/Category:Contents I got a category about contents, so there's content in your category
12:20:26 <Phantom_Hoover> Perhaps they are like the DEEP WEB
12:21:33 <Phantom_Hoover> Indeed, they are: they are incredibly boring.
12:21:46 <Phantom_Hoover> "bottomonium"
12:21:54 <Phantom_Hoover> Possibly the best name for a particle.
12:22:21 <Sgeo> Bottommonium deserves to be the name for something made out of bottom quarks
12:22:25 <Patashu> my butt is made up of bottomonium
12:22:28 * Patashu shows u it
12:22:58 <Phantom_Hoover> Sgeo, as indeed it is, being a bound state of a bottom quark and a bottom antiquark.
12:23:23 <Phantom_Hoover> It appears to be known by boring people as the upsilon meson.
12:23:32 <Phantom_Hoover> NO
12:23:33 <Phantom_Hoover> WAIT
12:23:34 <Phantom_Hoover> http://en.wikipedia.org/wiki/Oops-Leon
12:23:45 <Phantom_Hoover> This is the best name for a nonexistent particle.
12:25:30 <Sgeo> Why don't they annihilate?
12:29:24 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
12:31:52 -!- Phantom_Hoover has joined.
12:32:30 <Phantom_Hoover> 12:25:30: <Sgeo> Why don't they annihilate?
12:32:34 <Phantom_Hoover> 'cos science.
12:32:58 <Phantom_Hoover> Particle-antiparticle interactions aren't as simple as "they meet and go poof".
12:33:56 <olsner> what do they do then? meet and have a cup of tea?
12:34:39 <Phantom_Hoover> They go poof in a multitude of different ways, or sometimes go poof after flying around for a bit.
12:34:41 <Patashu> It takes several nanoseconds to convince an antiparticle he doesn't exist
12:41:46 <Phantom_Hoover> Sgeo, it seems to be largely due to QCD being crazy weird.
13:03:37 -!- Sorcy has joined.
13:05:41 -!- comex has joined.
13:05:48 -!- foocraft has joined.
13:06:01 -!- Ycros has quit (Disconnected by services).
13:06:04 -!- Sorcy has changed nick to Ycros.
13:06:25 <Phantom_Hoover> Who is this Ycros fellow. He seems like a frangible chap.
13:06:37 <Ycros> lies
13:08:09 * Phantom_Hoover swatpans Ycros --==\#/
13:08:17 <Phantom_Hoover> Indeed, he is not.
13:10:15 -!- comex_ has quit (*.net *.split).
13:15:57 <Phantom_Hoover> "
13:15:57 <Phantom_Hoover> Another, fundamentally incorrect, but nonetheless useful, way
13:15:57 <Phantom_Hoover> to distinguish the twins is to imagine that despite their genetic dif-
13:15:57 <Phantom_Hoover> ferences, they are both avid coee drinkers. If they each spend the
13:15:59 <Phantom_Hoover> entire time between events D and R drinking coee, L experiences
13:16:01 <Phantom_Hoover> no trouble at all, but M nds that he spills his coee all over him-
13:16:03 <Phantom_Hoover> self at event T. After all, his spaceship suers a huge acceleration at
13:16:05 <Phantom_Hoover> that time. L experiences no such trauma. This explanation is fun-
13:16:07 <Phantom_Hoover> damentally flawed because if we allow for gravitational forces, there
13:16:09 <Phantom_Hoover> are many ways to construct twin paradoxes which do not involve
13:16:11 <Phantom_Hoover> this asymmetry"
13:16:21 <Phantom_Hoover> OK this is possibly the best derivation of special relativity.
13:17:49 <Sgeo> linky>
13:17:52 <Sgeo> ?
13:18:11 <Phantom_Hoover> http://cosmo.nyu.edu/hogg/sr/sr.pdf
13:18:38 <Phantom_Hoover> It doesn't pull any punches with the maths, though: that's just a footnote.
13:19:12 <Sgeo> Is the math skimmable?
13:19:25 <Sgeo> For some reason, I really don't like applied math
13:19:32 <Phantom_Hoover> Yeah, that's why I told you that.
13:19:55 <Phantom_Hoover> I sought it out specifically because I wanted the derivations without handwaving.
13:20:52 <Sgeo> Matrices
13:21:09 <Phantom_Hoover> Yes. For the Lorentz transformation.
13:21:24 <Sgeo> I think I'll live
13:21:55 <Sgeo> Any of it gets too tedious for me to bother really looking at, I can just nod my head I think
13:22:31 <Sgeo> Although I don't understand matrices all that perfectly, I still think I'll live
13:23:06 * Sgeo wants a similar paper for GR though
13:24:22 <Phantom_Hoover> Your brain *will* melt if you try GR.
13:24:38 <Sgeo> FUN
13:24:57 <Sgeo> I can always skim the harder looking math and just nod my head, right?
13:25:35 <Phantom_Hoover> Consider that GR isn't even solved in most non-trivial cases.
13:25:37 <Sgeo> Oh, huh, this has excersize problems
13:25:55 <Sgeo> Not going to do them for now, but maybe at a later date
13:26:02 <Phantom_Hoover> Like, non-trivial as in a binary star system.
13:26:47 <Sgeo> Can it be brute-forced somehow? I don't quite understand what is meant by "not solved"
13:29:48 <Phantom_Hoover> http://en.wikipedia.org/wiki/Solutions_of_the_Einstein_field_equations
13:32:14 <Sgeo> 14 equations for 20 unknowns, doesn't that just mean there are an infinite number of solutions that fit those equation? Is it the case that some of those are wrong?
13:32:25 <Sgeo> Wait, hmm
13:32:42 <Sgeo> n/m the wait
13:55:55 <Sgeo> I think I'll soon ask a question on /r/askscience that sounds like a weird question, but hopefully it isn't
13:58:21 <Phantom_Hoover> We are all at DEFCON 2.
14:12:12 -!- pikhq_ has joined.
14:12:21 -!- pikhq has quit (Ping timeout: 252 seconds).
14:27:19 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
14:55:49 <Sgeo> http://www.reddit.com/r/askscience/comments/hxro3/when_i_touch_a_wall_what_color_is_the_light/
15:03:41 -!- Patashu has quit (Ping timeout: 252 seconds).
15:26:03 <Sgeo> I made the mistake of checking to see if /r/astrology exists
15:26:05 <Sgeo> It does
15:26:11 <Sgeo> http://www.reddit.com/r/astrology/comments/h6lgc/a_serious_discussion_about_astrology_as_a_science/
15:31:29 <Sgeo> I'm now mentally trying to work out a way to test astrology
15:32:42 <Sgeo> Does Astrology attempt to say what a particular period of your life will be like based on your birth date? If not, ignore this. if so:
15:33:19 <Sgeo> Do it backwards. Attempt, without looking at a star chart, to guess what planets will be in what houses when in your life, and then see if reality matches
15:33:42 <Sgeo> This should eliminate any tendency to see "Oh, your life was like this" an then think back to corresponding events.
15:33:54 <Sgeo> I just remembered that there's an ex-astrology person here.
15:54:17 -!- azaq23 has joined.
16:07:38 -!- pikhq has joined.
16:07:56 -!- pikhq_ has quit (Ping timeout: 260 seconds).
16:19:25 -!- BeholdMyGlory has joined.
17:12:37 -!- Ycros has quit (*.net *.split).
17:12:37 -!- fizzie has quit (*.net *.split).
17:25:02 -!- Vorpal has joined.
17:33:14 <Vorpal> the difference between stock 2.6.32 on ubuntu lucid and vanilla (mostly, needed one apparmor related patch) 2.6.39.1 is... astonishing. Utterly astonishing. For s2disk and resume from disk I have a 18x-20x speed up. Measured both by doing a clean reboot then suspending to disk right after logging in.
17:33:27 <Vorpal> on clean boot I have a 5-10x speedup
17:33:32 <Vorpal> quite amazing.
17:34:16 <Vorpal> note that the kernel config for both were quite similar when it comes to making most things modules.
17:34:25 <Vorpal> and so on
17:36:05 <pikhq> Yeah, there was a lot of improvements in there.
17:36:23 <pikhq> Including a few patches labeled "This is utter magic."
17:37:14 <Vorpal> pikhq, what really?
17:38:11 <Vorpal> pikhq, one thing that could help is that dm-crypto seems to use both cores for decrypting now. Though the results of my tests on that are not fully conclusive. It was definitely single threaded in 2.6.32
17:38:33 <pikhq> As in "all of a sudden, the whole thing goes twice as fast" magic, not "we code where mere mortals dare not tread".
17:38:40 <Vorpal> back then kcryptd loaded one core fully when doing cat file.iso > /dev/null. Now both cores are loaded fully by kworkerd sometimes
17:39:17 <Vorpal> pikhq, however 2.6.27 still beats all following kernels when it comes to number of wakeups per second reported in powertop
17:39:38 -!- monqy has joined.
17:39:55 <Vorpal> on 2.6.27 I could get down to 5W with monitor on lowest brightness, wlan and bluetooth off, and idle cps
17:40:11 <Vorpal> with 2.6.32 it was around 8 W. On 2.6.39.1 it is 7 W
17:41:04 <Vorpal> culprit seems to be "[kernel scheduler] Load balancing tick" raising number of wakeups per second by 10-20
17:43:47 -!- Ycros has joined.
17:43:48 -!- fizzie has joined.
17:44:36 <Vorpal> pikhq, hm. resume from disk now says "loading pages and uncompressing" (or so, could be different word order, went to quick for me to memorise it exactly".
17:44:40 <Vorpal> that would explain a lot
17:44:48 <Vorpal> since I have a 5400 RPM disk
17:51:10 <Sgeo> @tell oerjan Do you logread?
17:51:10 <lambdabot> Consider it noted.
18:16:15 -!- azaq23 has quit (Quit: Leaving.).
18:22:25 -!- copumpkin has joined.
18:23:44 -!- Phantom_Hoover has joined.
18:45:36 <Sgeo> Googling for closures CPS brings up school closings in Chicago
18:52:06 -!- azaq23 has joined.
18:52:19 -!- azaq23 has quit (Client Quit).
19:09:32 <monqy> why are you searching for closures CPS
19:09:43 <monqy> rather than each independently
19:15:54 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
19:41:34 -!- MigoMipo has joined.
19:47:26 -!- Lymia has changed nick to Lymia_.
19:47:32 -!- Lymia_ has changed nick to Lymia.
20:07:28 -!- calamari_ has joined.
20:10:30 -!- guy_ has joined.
20:10:42 -!- calamari_ has quit (Client Quit).
20:22:29 -!- zzo38 has joined.
20:25:30 <Sgeo> Because I'm wondering if there are any complications to just making _every lambda_ a closure. It sounds inefficient
20:25:58 <Sgeo> Would just the ones that were defined as lambdas in the original source be sufficient?/
20:26:59 -!- elliott has joined.
20:31:27 <elliott> I predict CakeProphet is at or past 2282
20:31:27 <lambdabot> elliott: You have 2 new messages. '/msg lambdabot @messages' to read them.
20:31:33 <elliott> I know this because I am psychic
20:33:12 * Sgeo learns of /r/gue
20:34:13 <elliott> wow a reddit where redditors can go beyond pretending they are rational and good argumentors to... pretending that double
20:57:11 * Sgeo finally removes the Newspeak forums from his RSS reader
21:06:44 * Sgeo etermines a way to get a sensible mean from his statistics problem from earlier
21:07:10 <Sgeo> Besides just averaging the results of the experiment as is, which I'm still uncertain as to whether that will give a valid result.
21:08:34 <Sgeo> "Never use the == operator with floating point, it doesnt even work
21:08:35 <Sgeo> bitwise"
21:08:37 <Sgeo> What.
21:08:53 <Sgeo> I mean, I know that in normal circumstances, == is a bad idea, but
21:08:54 <Phantom_Hoover> Which language?
21:08:59 <olsner> wanna see some horrible code? --> http://paste.cplusplus.se/paste.php?id=12264
21:09:54 <Phantom_Hoover> Wait, where did that kuk come from?
21:10:11 <olsner> it means cock
21:10:28 <Phantom_Hoover> That doesn't answer my question olsner.
21:10:47 <olsner> well, I don't know tbh
21:11:02 <olsner> it might be an attempt to call the function pointer data
21:11:34 * Phantom_Hoover links to http://www.youtube.com/watch?v=aLwaPP9cxT4&feature=related just to mess with Sgeo's head.
21:12:37 <Sgeo> o.O that's awesome
21:14:07 <Phantom_Hoover> olsner, a function pointer that is not even defined in the structure.
21:14:26 <olsner> Phantom_Hoover: indeed!
21:14:35 <Phantom_Hoover> Who wrote this?
21:14:56 <elliott> <Sgeo> "Never use the == oper­a­tor with float­ing point, it doesn’t even work
21:14:56 <elliott> <Sgeo> bit­wise"
21:14:57 <elliott> wheres this from
21:14:57 <Sgeo> Or is it fraudulent, like the comments suggest? I don't know enough about that sort of glowing, except something to do with black body radiation. I did take the video too literally I think. I assume that for a substance to glow hot, it has to hit a certain temperature, and of course ice cannot exceed 100C. If that's right, then this video is fraudulent
21:15:06 <Sgeo> http://blog.ometer.com/2005/01/15/more-floating-point-fun/
21:15:10 <Phantom_Hoover> Yeah, they've got a bolt inside it.
21:15:21 <elliott> oh, havoc pennington
21:15:22 <Phantom_Hoover> Induction heating only works on conductors.
21:15:26 <olsner> Phantom_Hoover: some guy who dropped by another channel and "ohai, code no worky, halp plx"
21:15:37 <Phantom_Hoover> Which channel.
21:15:38 <elliott> but presumably in response to something miguel posted
21:15:48 <Phantom_Hoover> I desire to mock him, unless he is a troll, in which case meh.
21:16:06 <olsner> well, he left, and it's a swedish channel
21:16:13 <elliott> olsner: maybe it's meant to be a union
21:16:18 <Sgeo> Phantom_Hoover, I am saddened to say that my brain did not initially report any problems with the video
21:16:21 <elliott> and they're trying to call the function named hiho
21:16:24 <Phantom_Hoover> Sgeo, TbH, I'm slightly confused by the orange-white glow; induction heating normally makes a violet glow.
21:16:42 <Phantom_Hoover> Sgeo, I only noticed that when I googled it.
21:16:58 <elliott> i would love to have an actual flaming ice cube
21:17:51 <elliott> Sgeo: anyway, wrt bitwise, I suspect it means that == actually tries to do some computation
21:18:06 <elliott> it's from the famous paper what every computer scientist should know about floating point, following the link
21:18:09 <elliott> which i haven't read :p
21:18:18 <elliott> or have, but then forgot reading it
21:20:10 <Phantom_Hoover> elliott, that's OK, you're not a computer scientist.
21:20:26 <elliott> what am i
21:20:38 <elliott> am i
21:20:38 <elliott> a robot
21:20:42 <Phantom_Hoover> No.
21:20:45 <Phantom_Hoover> You are a werewolf.
21:20:50 <Sgeo> Hmm, I think my current naive approach would result in the correct mean, since errors would fly in both directions (assuming normal distribution), but a wrong distribution
21:20:54 <Phantom_Hoover> Who is secretly a Nepeta/Karkat shipper.
21:22:10 <elliott> wat
21:22:19 <elliott> Sgeo: derp
21:22:22 <elliott> Sgeo: are you a scientist
21:22:33 <Sgeo> elliott, trying to act like one in SL
21:22:39 <elliott> so no then
21:22:47 <Phantom_Hoover> elliott, you realise that noöne without a maths degree understands stats.
21:22:53 <elliott> Phantom_Hoover: obvs
21:24:45 <Sgeo> http://youtubedoubler.com/?video1=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D8M5FxI_p5wg&start1=&video2=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DQ7ZUxyLyIao&start2=&authorName=Sgeo does not sound as good as I was hoping
21:25:10 <elliott> i
21:25:21 <elliott> that youtubedoubler is shitty anyway
21:25:24 <elliott> it doesnt' wait for them to load
21:25:41 * Phantom_Hoover remembers that he has a Year Of Dicking Around In Physics ahead of him/
21:28:00 <Phantom_Hoover> I must create a list of things to dick around with.
21:28:20 <Sgeo> EVERYTHING
21:32:26 <Sgeo> Given a measuring apparatus that is only capable of measuring in such a way that it puts excessive weight on the first few results, and pretending that I know the true distribution to be symmetrical, why wouldn't the errors line up such that I'd get the correct mean?
21:32:59 <Sgeo> Um, I did not adequately describe my measuring apparatus I think
21:34:08 <Phantom_Hoover> Sgeo, you do realise that I go to a state school which can barely afford to run a photocopier, yes?
21:34:20 <Sgeo> Phantom_Hoover, :(
21:40:22 -!- guy_ has quit (Read error: Connection reset by peer).
21:44:08 -!- tombom has joined.
21:44:46 <tombom> hi does anybody remember the name of that programming language for bank software, or have a link to the page about it? the original wbesite appears to be down, but it was on the old turing tarpit geocities page
21:44:56 <tombom> it was written like 200,,,,,560,,150
21:45:01 <olsner> bancstar
21:45:12 <Phantom_Hoover> There's a mirror.
21:45:23 <Phantom_Hoover> ISTR that an RWian made that page, actually.
21:45:33 <tombom> oh god i thought it was called bankstar
21:45:43 <tombom> so i kept googling bankstar and i was one letter off! ugh
21:45:45 <tombom> thank you so much
21:51:54 -!- Vorpal has quit (Read error: Operation timed out).
21:57:00 * Phantom_Hoover → sleep
21:57:04 -!- Phantom_Hoover has quit (Quit: Leaving).
21:57:48 <elliott> "The scala build process requires a bootstrap compiler, called "starr" for "stable reference Iforrrrrget", to get the ball rolling."
21:57:56 <elliott> Scala programmers don't understand acronyms.
21:58:45 <tombom> no i think they actually understand them very well
21:59:15 <elliott> Was that a joke or did you not get my joke
22:00:10 <elliott> oklofok: there's a new lang on the esolang wiki that references the grandfather paradox ;D
22:02:45 <Sgeo> I still have yet to contact the company that would currently own BANCstar
22:03:05 <elliott> are you scared
22:03:19 <Sgeo> No, just a permanent procrastinator
22:03:25 <Sgeo> I even forgot which company
22:03:28 <Sgeo> I remember tracing it
22:04:17 <zzo38> I think on this Channel some people (including myself) were discussing the example BANCSTAR program and actually managed to figure it out a little bit.
22:04:58 -!- fizzie has quit (Ping timeout: 260 seconds).
22:05:08 <Sgeo> Fidelity, I think
22:05:23 <Sgeo> What.
22:05:37 * Sgeo goes to trace it again
22:07:07 -!- tombom has quit (Quit: Leaving).
22:08:11 <Sgeo> Broadway & Semour -> Micrographic (partially?) 1996
22:08:36 <Sgeo> *Micrographic Services Inc
22:08:38 -!- oerjan has joined.
22:08:55 <zzo38> I cannot find the BANCSTAR program anymore.
22:09:01 <Sgeo> Which still exists
22:09:10 <Sgeo> This makes no sense, and is not what I traced some time ago.
22:09:29 <zzo38> But I remember that we had figured it out before! And I helped with it too.
22:09:56 <Sgeo> BANCstar is now reminding me of SCP-055
22:13:12 <Sgeo> http://codu.org/logs/log/_esoteric/2010-10-07 http://codu.org/logs/log/_esoteric/2010-10-08 http://codu.org/logs/log/_esoteric/2010-12-21
22:15:38 <Sgeo> The 2001 article authoritively states that BancSTAR went there
22:15:44 <Sgeo> So that weird imaging thing is not involved
22:16:07 <elliott> I am hereby authoritatively stating that Sgeo does not exist.
22:18:10 * Sgeo breathes deeply as he goes to figure out who to send an email to
22:18:40 <elliott> Sgeo: is this seriously causing you anxiety..........
22:18:54 <Sgeo> I'm a random individual about to email a corporation
22:18:55 <Sgeo> BRB
22:19:01 <elliott> FIGHT THE POWER
22:20:07 -!- zzo38 has quit (Quit: OuchOuchOuchQuitQuitQuit).
22:21:59 <oerjan> Sgeo: don't worry, _i_ would have collapsed completely before even managing to tell i was anxious
22:22:00 <lambdabot> oerjan: You have 1 new message. '/msg lambdabot @messages' to read it.
22:22:24 <oerjan> @tell Sgeo Yes
22:22:24 <lambdabot> Consider it noted.
22:25:13 <elliott> ?tell Sgeo no
22:25:13 <lambdabot> Consider it noted.
22:28:44 <Sgeo> Back
22:28:44 <lambdabot> Sgeo: You have 2 new messages. '/msg lambdabot @messages' to read them.
22:29:06 <elliott> i wonder what they could be
22:30:13 <oerjan> it is theoretically possible we don't actually know
22:30:25 <Sgeo> "Hello. I'm just curious as to the availability of documentation of BancSTAR."
22:30:37 <Sgeo> That's the email I'm planning on sending
22:31:07 <oerjan> isn't "Hello." a little informal for a corporation.
22:31:43 <monqy> Dear Corporation,
22:31:52 <olsner> proper formal greetings is something you only see in nigeria scams, I think
22:31:54 -!- Sgeo_ has joined.
22:32:26 <oerjan> oh. maybe they stopped using formal greetings because they caught in the spam filters.
22:32:32 <oerjan> *+got
22:32:47 <elliott> Sgeo: they'll probably sue you if you send that
22:32:54 -!- Sgeo_ has quit (Client Quit).
22:32:59 <Sgeo> What.
22:33:04 <elliott> that was me
22:33:06 <elliott> im in your house
22:33:06 <elliott> hi
22:33:13 <oerjan> <elliott> Sgeo: they'll probably sue you if you send that
22:33:17 <olsner> "what do you know about bancstar!?" *subpoena*
22:33:24 <oerjan> oh wait
22:33:31 <elliott> oerjan: what were you gonna say
22:33:35 <Sgeo> I was flat whatting at the claim that I'd get sued. Not at the other Sgeo.
22:33:52 <oerjan> elliott: nothing, i just didn't realize this wasn't an ordinary reconnect
22:33:54 <elliott> Sgeo: u just dont understand corp/s
22:33:59 <elliott> be scared
22:34:14 <Sgeo> Instead of Hello, what should I write?
22:34:42 <olsner> Dear Very Respected Sir and/or Madam,
22:34:48 <monqy> Yo
22:35:03 <Sgeo> I'll just omit the Hello I think.
22:35:05 <elliott> sup bro
22:35:11 <olsner> I failed this part of english, but got a passing grade because my teacher "knew" that I could do it properly
22:35:14 <elliott> Sgeo: at least sign with
22:35:16 <elliott> Regards,
22:35:17 <elliott> Sgeo
22:35:25 <Sgeo> Is "Thanks in advance" pretentious?. Ok, Regards is better
22:35:34 <elliott> lol wow
22:35:42 <monqy> Sincerely,
22:35:49 <elliott> Sincerely,
22:35:50 <elliott> Regards,
22:35:51 <elliott> Sgeo
22:35:55 <monqy> Your biggest fan,
22:35:56 <monqy> Sgero
22:36:00 <monqy> without the r
22:36:03 <monqy> the r is awful
22:36:05 <Sgeo> Typing up letters for my step-mom may have distorted my brain a bit.
22:36:05 <elliott> Don't be out too late,
22:36:07 <elliott> Your mother
22:36:26 <monqy> so uh
22:36:27 <elliott> You're not my REAL father,
22:36:28 <elliott> Albert Einstein
22:36:30 <monqy> are you not greeting them or what
22:36:37 <elliott> monqy: this is the email he is sending
22:36:44 <elliott> "GIVE ME THE FUCKING BANCSTAR DOCUMENTATION WHORES"
22:36:49 <monqy> good enough
22:36:55 <elliott> subject: !!!!!
22:36:56 <Sgeo> Sent
22:37:02 <elliott> lol
22:37:10 <monqy> did you greet
22:37:12 <monqy> did you say thank you
22:37:18 <Sgeo> No and no :/
22:37:22 <elliott> hahahhahaahahaha
22:37:22 <monqy> sued
22:37:38 <elliott> see at first i thought the anxiety was totally unwarranted because how hard can it be to send a corp an email...
22:38:29 <Sgeo> Would have been nice if there were no sarcastic comments in here, such that I would actually be capable of taking genuine advice.
22:38:45 <olsner> lol, wrong place Sgeo
22:38:46 <oerjan> elliott: everything is hard when you're a perfectionist with only half a clue
22:38:49 <elliott> lol
22:38:54 <elliott> advice Sgeo:
22:38:58 <elliott> EMBARRASSES HIMSELF ON IRC DAILY
22:38:59 <elliott>
22:39:06 <elliott> WHY DIDN'T YOU HELP ME OUT GUYS
22:39:19 <elliott> anyway im pretty sure everyone mentioned the greeting before you actually sent it s o o
22:40:00 <oerjan> back in my agora days, i used to sign my email with Greetings,
22:40:06 <elliott> X-D
22:40:09 <elliott> be a time traveller
22:40:10 <elliott> [[
22:40:11 <elliott> oerjan
22:40:12 <elliott>
22:40:13 <elliott> Blah blah blah.
22:40:15 <elliott> Greetings,
22:40:15 <elliott> ]]
22:40:22 <elliott> (you signed "oerjan" right)
22:40:26 <oerjan> i gradually got the realization that was somewhat backwards
22:40:49 <oerjan> Ørjan, actually
22:40:51 <oerjan> iirc
22:41:18 <oerjan> that may have changed at some point
22:57:36 <Sgeo> I should test my ideas about simulation
22:58:16 <Sgeo> Erm, I mean, make a simulation to test my ideas about my detector's faults
22:58:33 <olsner> your simulation of a detector of what?
22:58:42 <olsner> still second life scripting?
22:58:43 <CakeProphet> a detector of detector faults
22:58:54 <CakeProphet> which is in fact a simulator.
22:58:57 <oerjan> D E T E C T I O N
22:59:10 <CakeProphet> testing ideas.
22:59:49 <Sgeo> Of what exactly happens when I'm trying to do a binary search to find a value, but the value keeps randomly changing each comparision
22:59:55 <CakeProphet> simulation in MUDs is easy. You just write out what happens.
23:00:37 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:01:19 <CakeProphet> Sgeo: There are two possibilities a) your binary search is horrible b) Second Life has a horrible scripting environment
23:02:10 <CakeProphet> or c) another process is changing the value mid-execution
23:02:20 <Sgeo> Or maybe the value I'm testing CANNOT be tested any other way, regardless of what scripting is like, and regardless of search... actually that's not true, I can make a different search
23:02:33 <Sgeo> But yes, I think another process is changing the value mid-execution
23:02:39 <Sgeo> That was pretty much my point
23:03:17 <Sgeo> If, for each comparison, I do 20 trials, and then go in the direction suggested by the majority of the trials...
23:03:36 <CakeProphet> the only sane way to do a search would be to take a copy of the... uh... unnamed data structure
23:03:49 <CakeProphet> or, yes, you could run multiple tests.
23:04:07 <CakeProphet> a democratic search algorithm. :)
23:04:10 <oerjan> Sgeo: well you could consider it as estimating the mean or something of a statistical distribution
23:05:06 <oerjan> although things might be complicated if the value changes in small steps rather than being completely independent each time
23:05:26 <Sgeo> oerjan, I have no idea
23:05:30 <olsner> herpeti derp
23:05:37 <oerjan> herpetology
23:05:50 <CakeProphet> I'd say using the mean could get tricky, whereas mode would be pretty straightforward and accurate.
23:06:02 <olsner> or maybe it should be spelled herpty derp in english
23:06:20 <Sgeo> I do suspect that it's entirely dependent on another value that I'm capable of instantly measuring. Does that help?
23:06:39 <CakeProphet> not really, since you don't know the process behind it.
23:06:48 <CakeProphet> but it's a start.
23:07:02 <oerjan> Sgeo: do you mean capable or incapable there?
23:07:10 <Sgeo> Capable.
23:07:27 <CakeProphet> Sgeo: just rewrite Second Life in Haskell and use STM. Problem solved.
23:07:31 -!- Lymee has joined.
23:07:50 <oerjan> aha. well then if you measure both near simultaneously you should be able to test that hypothesis...
23:08:36 <elliott> STM is awesome
23:08:42 <CakeProphet> elliott: yes it is.
23:08:43 <elliott> Lymee: what did you do with lymia
23:08:54 <Sgeo> I can;t test the original value simultaneously, just whether a current guess is higher or lower. I can test the value I suspect it's dependent on simultaneously
23:08:54 <CakeProphet> elliott: every concurrent project that I'm writing ever is using STM.
23:10:04 <oerjan> Sgeo: well then use the value it is dependent on to construct the guess?
23:10:08 <CakeProphet> in particular I have an idea for an online text-based game in which every player and object is pretty much completely concurrent in this way.
23:10:21 <Sgeo> oerjan, I don't know the exact relation between them.
23:10:38 <CakeProphet> Sgeo: can you make graphs? :D
23:10:39 -!- Lymia has quit (Ping timeout: 246 seconds).
23:10:54 <CakeProphet> you could just continually monitor the relationship between the values.
23:11:07 <oerjan> Sgeo: hm. use a binary search for _each_ value of the depended-on value
23:11:20 <oerjan> make a table from that
23:11:34 -!- fizzie has joined.
23:11:36 <Sgeo> oerjan, the depended-on value randomly and constantly changes without my being able to control it
23:11:38 <oerjan> or at least for some interval of that value
23:11:50 <elliott> what is the depended-on value
23:12:02 <CakeProphet> something some other fucked-up scripter made.
23:12:15 <Sgeo> Frames per second. Smallest unit of time, if I understand properly
23:12:43 <monqy> wow what
23:12:44 <Sgeo> Well, 1/fps is smallest unit of time
23:13:01 <monqy> why would anyone make the smallest unit of time ever-changing
23:13:05 <monqy> ever
23:13:08 <oerjan> Sgeo: yes, so use a table for your search. measure your depended-on-value, look up the state for your binary search for that value, then immediately do the next step of that binary search
23:13:14 <elliott> lol so sgeo by
23:13:15 <elliott> RANDOMLY
23:13:17 <elliott> you mean
23:13:18 <elliott> not randomly
23:13:31 <Sgeo> Hmm, ty
23:14:01 <oerjan> essentially you are then doing several binary searches in parallel
23:14:21 <CakeProphet> needs more STM...
23:14:42 <oerjan> you might want a bit of error correction if the depended-on-value could change in between
23:15:05 <CakeProphet> though if the fps value changes very fast, you'd likely end up retrying your algorithm ad infinitum.
23:16:40 -!- Patashu has joined.
23:17:50 <elliott> r
23:18:54 <Sgeo> Slight complication that I should have mentioned: Measuring whether guess is above or below value is not instantaneous, it takes a certain amount of time. I'm not even sure of the best amount of time, so I'm currently fudging it at 1.5sec
23:19:08 <elliott> um you can just output the data raw
23:19:11 <elliott> and check it externally
23:19:11 <elliott> can't you
23:20:02 <CakeProphet> yes, the more code you can take out of this shitty scripting environment, the better.
23:20:07 <oerjan> elliott: doesn't work for a binary search
23:20:32 <oerjan> although i guess he could do a batch, calculate new guesses externally, then another batch
23:20:53 <Sgeo> Why would I want to calculate new guesses externally?
23:21:42 <oerjan> Sgeo: hm well the important point is to get the raw data out as well, i think, so you can check if things are behaving as expected
23:22:21 <CakeProphet> at the very least just copy all of the data before you do the checks.
23:22:35 <elliott> http://tech.slashdot.org/story/11/06/12/148208/Why-Doesnt-Google-Kids-Exist
23:22:35 <elliott> lol
23:22:43 <Sgeo> What would happen if I just went with my idea of the 20 trials then going in the democratic direction?
23:22:44 <CakeProphet> so that you're not at the whim of whatever the fuck is messing with your data.
23:23:16 <CakeProphet> Sgeo: I have no idea. You'd probably get inconsistent results occasionally, but I really don't know how the data is changing.
23:23:19 <CakeProphet> or how often, etc.
23:23:39 <monqy> so is this about figuring out how gravity works or what
23:23:43 <oerjan> Sgeo: several trials should help with error correction, i assume
23:23:45 <Sgeo> Yes
23:24:17 <CakeProphet> Sgeo: you should make it so that when numbers tie they play rock paper scissors.
23:24:32 <CakeProphet> you, know, because it's more exciting than just randomly selecting one.
23:24:50 <CakeProphet> for more than 2 values construct a rock paper scissors tournament tree.
23:24:56 <Sgeo> Gravity, for reasons I still haven't quite understood (yes, floating-point error, but what about it?), when it takes effect, if it's weak enough, starts the object moving downwards, then stops
23:25:20 <Sgeo> I'm trying to measure the strength of gravity needed such that it doesn't stop moving downwards, and am doing this measurement at different altitudes.
23:26:46 <CakeProphet> so what are the data values representing?
23:28:41 <Sgeo> Well, the way I'm taking the measurement is: Set buoyancy (which I'm using to set the effect of gravity, if I'm wrong about that, well...) to guessed level. Start physics. After .75 seconds, get altitude. .75 seconds after that, measure altitude again. If no change between first and second measurement, gravity's too weak, otherwise, too strong.
23:28:58 <Sgeo> Then it returns to original altitude and repeats with the binary search
23:31:29 <CakeProphet> er, what are you searching I mean.
23:33:14 <oerjan> i think maybe plain binary search is too error-prone for this, since one error completely ruins the rest of the search
23:33:18 <Sgeo> The minimum strengh of gravity such that gravity doesn't just weirdly stop after a short amount of time.
23:34:36 <elliott> why would there be error
23:34:50 <elliott> also why are you doing this
23:35:09 <oerjan> because according to Sgeo's theory it depends on the fps rate, which might change during each test
23:35:49 -!- FireFly has quit (Quit: swatted to death).
23:36:00 <oerjan> perhaps checking it both before and after and discarding data if it has changed will help
23:36:21 <elliott> 13:59:32: <ais523> AnMaster: by defining functions with certain names, you can affect the behaviour of glibc malloc
23:36:29 <elliott> i wonder how it knows whether they're defined or not...
23:36:44 <CakeProphet> Sgeo: I was basically going to suggest that if you know the exact relationship between fps and value then you could normalize the results by converting it to a unit that's independent of framerate.
23:36:49 <elliott> examining /proc/self/exe?
23:37:15 <oerjan> CakeProphet: my impression is he hasn't got a function yet
23:37:17 <Sgeo> As in, before and after the entire binary search?
23:37:41 <oerjan> Sgeo: preferably as often as possible...
23:38:02 <Sgeo> Honestly, I didn't set out trying to determine that function. I set out trying to determine if it's also dependent on altitude.
23:38:06 <oerjan> if you find out it doesn't change that often, you could do it rarer
23:38:28 <oerjan> Sgeo: well that just means your function got another parameter
23:38:37 <Patashu> Hey, so I read http://www.reddit.com/r/askscience/comments/hxro3/when_i_touch_a_wall_what_color_is_the_light/ and I was wondering if there was a 'What quantum phenomena actually mean compared to media simplifications' page out there
23:38:42 <Patashu> for this, entanglement, tunnelling etc
23:38:42 <Sgeo> But, as in, an entire binary search gets discarded if FPS significantly changes
23:38:54 <CakeProphet> yes if you poll the fps constantly then you can associate each test value with the fps at which it was measured, which will make things less error-prone later either by having the old fps at the ready or by being able to normalize all of the values.
23:39:08 <elliott> Patashu: im sorry you had to see sgeo on /r/askscience
23:39:13 <Patashu> lol
23:39:15 <elliott> Patashu: do you need a hug
23:39:17 <Sgeo> Note: FPS is a floating-point
23:39:17 <elliott> its traumatic for all of us
23:39:30 <oerjan> Sgeo: that might be enough. well you'll have to decide on a precision.
23:40:09 <monqy> elliott: at first I thought you were joking and it was just someone acting ridiculous but then I looked and it's actually sgeo
23:40:18 <monqy> I don't know what to think
23:40:24 <oerjan> Sgeo: also if it _does_ change more often, you don't have to discard _all_ the data for a search, just store what you have so far and continue that search when fps returns to that value
23:40:29 <elliott> monqy: try crying
23:40:37 <elliott> its great, gets out all the emotions for several whole minutes
23:40:41 <Sgeo> elliott, what was so horrible about my question?
23:40:46 <oerjan> all this depends on how often fps actually changes, of course
23:41:00 <oerjan> (significantly)
23:41:30 <CakeProphet> if you can find the function then you won't have to deal with any of that foolishness. :P
23:42:05 <Sgeo> CakeProphet, considering that I can't even begin to fathom why the effect I'm measuring even exists...
23:42:07 <CakeProphet> and instead you only have to deal with the foolishness of trying to find the function.
23:42:21 <oerjan> CakeProphet: he needs this foolishness to estimate the function, duh
23:42:29 <CakeProphet> I guess.
23:42:41 -!- pikhq_ has joined.
23:42:52 <monqy> so I forgot why sgeo was even doing this at all
23:43:00 -!- pikhq has quit (Ping timeout: 276 seconds).
23:43:05 <monqy> is there something important about second life gravity
23:43:11 <Sgeo> And all I really want to do, at this point in time, is to see if altitude is an imput to the finctiion
23:43:16 <Sgeo> input, function
23:43:17 <CakeProphet> I would say just grab everything relevant from your environment at each test, and store them all together in some kind of data structure which is of course not going to be shitty because this is Second Life's scripting engine.
23:43:35 <CakeProphet> and then perform SCIENCE on that data.
23:43:39 <CakeProphet> to find the function.
23:46:14 <oerjan> Sgeo: well the obvious explanation is that some value dependent on buoyancy and divided by fps is subtracted from altitude each frame, and if it's low enough it won't change the altitude. hm but why would it change it initially and then stop... that would make more sense if you _added_ to the altitude and it reached a power of 2
23:46:39 <oerjan> maybe the actual altitude value increases downward...
23:46:50 <Sgeo> No, it doesn't.
23:46:59 <oerjan> or is negative.
23:47:18 <CakeProphet> Sgeo: have you considered asking the SL team about it?
23:47:22 <Sgeo> And I've been performing these experiments at 4000, so there's no power of 2 boundary right there, are there other similar boundaries
23:47:35 <Sgeo> CakeProphet, no, maybe I should. Or ask other scripters.
23:48:48 <Sgeo> There is now a chain message thing about some product called "Cocoa mulch", and how it's dangerous to dogs.
23:48:58 <Sgeo> All I can think is "No shit sherlock?'
23:49:08 <CakeProphet> ...this has nothing to do with SL right.
23:49:13 <Sgeo> Right
23:49:29 <elliott> Sgeo: oh that thing
23:49:33 <elliott> its not actually made out of chocolate though
23:50:10 <elliott> and selling a substance that will kill dogs without mentioning it sounds pretty lolillegal to me
23:50:46 <oerjan> um one would expect the dangerous-to-dogs component of chocolate to be in the cocoa...
23:51:10 <oerjan> (hm was it theobromine?)
23:51:33 <CakeProphet> Happy Dog Antifreeze Bites! They Make Dogs Happy and Warm!
23:51:52 <CakeProphet> (!!!!!!)
23:51:52 -!- wareya_ has changed nick to wareya.
23:52:51 <elliott> oerjan: its not made out of cocoa either
23:53:01 <elliott> but yeah IIRC that stuff contains theobromine
23:53:12 <CakeProphet> :t foldl1 (.) (repeat (+1))
23:53:13 <lambdabot> forall a. (Num a) => a -> a
23:53:25 -!- fizzie has quit (Ping timeout: 244 seconds).
23:53:36 <oerjan> :t fix (+1)
23:53:36 <lambdabot> forall a. (Num a) => a
23:53:41 <oerjan> er
23:53:48 <CakeProphet> need a . somewhere I think.
23:53:54 <oerjan> hm...
23:54:05 <CakeProphet> :t fix ((+1).)
23:54:05 <lambdabot> forall a (f :: * -> *). (Num a, Functor f) => f a
23:54:25 <oerjan> :t const (fix (+1))
23:54:26 <lambdabot> forall a b. (Num a) => b -> a
23:54:33 <oerjan> it's really that, i think
23:54:44 <oerjan> or wait
23:55:05 <CakeProphet> > foldl1 (.) (repeat (+1)) 3
23:55:08 <oerjan> actually it's even worse. in either case neither has a chance of holding with strict addition
23:55:14 <lambdabot> *E
23:55:32 <CakeProphet> Haskell has problems with infinity. They need to fix that bug.
23:55:45 <oerjan> but foldl1 _ (repeat _) by itself can never halt
23:55:54 <CakeProphet> shhhh. don't tell me that nonsense.
23:56:11 <oerjan> unlike foldr1
23:56:19 <elliott> CakeProphet: no problems
23:56:24 <elliott> Int/Integer are just strict
23:56:26 <oerjan> > foldr1 (.) (1+) a
23:56:30 <lambdabot> Couldn't match expected type `[a -> a]'
23:56:30 <lambdabot> against inferred type `t ->...
23:56:33 <oerjan> er
23:56:36 <elliott> > foldr (.) succ Zero
23:56:37 <lambdabot> Not in scope: data constructor `Zero'
23:56:38 <elliott> > foldr (.) succ Z
23:56:38 <lambdabot> Not in scope: data constructor `Z'
23:56:41 <elliott> c'mon peano :(
23:56:44 <oerjan> :t foldr1 (.) (1+)
23:56:45 <CakeProphet> obviously they can just write a procedure in the compiler that determines whether or not it halts without running it.
23:56:46 <lambdabot> Couldn't match expected type `[a -> a]'
23:56:47 <lambdabot> against inferred type `t -> t'
23:56:47 <lambdabot> In the second argument of `foldr1', namely `(1 +)'
23:56:51 <oerjan> oh hm
23:56:55 <CakeProphet> you're forgetting a repeat.
23:57:05 <oerjan> duh
23:57:08 <CakeProphet> :D
23:57:15 <oerjan> > foldr1 (.) (repeat (1+)) a
23:57:18 <lambdabot> mueval-core: Time limit exceeded
23:57:21 <oerjan> bah
23:57:40 <oerjan> :t foldr1 (.) (repeat (1+))
23:57:40 <lambdabot> forall a. (Num a) => a -> a
23:58:04 <oerjan> hm does that mean Expr addition is actually strict...
23:58:16 <oerjan> > 1+(1+(1+undefined)) :: Expr
23:58:17 <CakeProphet> I don't think so, I've seen infinite series I thought.
23:58:18 <lambdabot> 1 + (1 + (1 + *Exception: Prelude.undefined
23:58:24 <oerjan> indeed not
23:58:39 <elliott> ?let compn 0 f = f; compn n f = f . compn (n-1) f
23:58:41 <lambdabot> Defined.
23:58:44 <elliott> now just define a lazy nat type
23:58:46 <elliott> and you can say
23:58:49 <elliott> compn inf succ
23:59:01 <oerjan> elliott: i think Expr _should_ be lazy enough for this
23:59:07 * Sgeo suddenly connects something he read a while ago to the halting problem.
23:59:24 <CakeProphet> :t foldr1 (.) (repeat (0*)) 4
23:59:25 <lambdabot> forall a. (Num a) => a
23:59:27 <elliott> > compn (foldr1 (.) (repeat (1+)) 0 :: Expr)
23:59:28 <lambdabot> Overlapping instances for GHC.Show.Show ((b -> b) -> b -> b)
23:59:28 <CakeProphet> > foldr1 (.) (repeat (0*)) 4
23:59:28 <lambdabot> arising fro...
23:59:29 <elliott> > compn (foldr1 (.) (repeat (1+)) 0 :: Expr) f
23:59:30 <lambdabot> *Exception: stack overflow
23:59:30 <lambdabot> Overlapping instances for GHC.Show.Show (b -> b)
23:59:31 <lambdabot> arising from a use of `...
23:59:32 <elliott> :(
23:59:34 <elliott> > compn (foldr1 (.) (repeat (1+)) 0 :: Expr) f
23:59:34 <lambdabot> Overlapping instances for GHC.Show.Show (b -> b)
23:59:35 <lambdabot> arising from a use of `...
23:59:36 <elliott> oh
23:59:40 <elliott> :t f
23:59:41 <lambdabot> forall a. (SimpleReflect.FromExpr a) => a
23:59:42 <elliott> > compn (foldr1 (.) (repeat (1+)) 0 :: Expr) f :: Expr
23:59:43 <lambdabot> Couldn't match expected type `SimpleReflect.Expr'
23:59:43 <lambdabot> against inferred ...
23:59:45 <Sgeo> Would 100% accuracy in determining all the points of the mandelbrot require halting problem shenannigans?
23:59:47 <elliott> > compn (foldr1 (.) (repeat (1+)) 0 :: Expr) f :: Expr -> Expr
23:59:48 <lambdabot> Overlapping instances for GHC.Show.Show
23:59:48 <lambdabot> (Simpl...
23:59:52 <elliott> oerjan fix it.
23:59:58 <CakeProphet> Sgeo: no I don't think so.
2011-06-13
00:00:05 <oerjan> elliott: use a rather than f if you want an Expr
00:00:08 <elliott> Sgeo: thats a question ive asked too
00:00:19 <elliott> oerjan: no, f has to be a function
00:00:23 <elliott> cant do a . a .
00:00:34 <elliott> CakeProphet: the mandelbrot set is defiend in terms of an infinite sequence, dude
00:00:41 <CakeProphet> yes I know.
00:00:55 <elliott> CakeProphet: indexed by complexes, which means we have _reals_ here
00:01:07 <elliott> the majority of which are uncomputable
00:01:24 <CakeProphet> oh?
00:01:24 <Sgeo> I wasn't even thinking in terms of that >.>
00:01:25 <elliott> so yes, Sgeo, there is no algorithmic way to determine all the points of the mandelbrot set
00:01:26 <CakeProphet> didn't know.
00:01:33 <elliott> given a specific pair of rationals, though, there may be an algorithm
00:01:37 <elliott> or even computable reals
00:01:40 <elliott> but it's not obvious
00:01:43 <Sgeo> Oh
00:01:45 <elliott> CakeProphet: um it's trivial to show
00:01:50 <CakeProphet> elliott: I'm sure it is.
00:01:53 <elliott> CakeProphet: there are a countable number of strings -> countable number of computer programs
00:01:57 <Sgeo> I was thinking for a specific pair
00:01:59 <elliott> all computable reals have a corresponding program, obviously
00:02:00 <Sgeo> >.>
00:02:03 <elliott> but the reals are uncountable
00:02:10 <elliott> uncountable > countable
00:02:16 <elliott> therefore Almost All(tm) reals are uncomputable
00:02:22 <elliott> in fact, Almost All reals are /undescribable/
00:02:31 <elliott> erm
00:02:33 <elliott> in fact, Almost All reals are /undefinable/
00:02:40 * CakeProphet doesn't spend his waking hours thinking about the Mandelbrot set and its obvious implications.
00:02:49 <elliott> um, this is totally unrelated to the mandelbrot set
00:02:53 <CakeProphet> ...it is now
00:02:54 <CakeProphet> but you type
00:02:55 <CakeProphet> about things
00:02:56 <CakeProphet> quickly.
00:03:00 <CakeProphet> and change subject.
00:03:04 <CakeProphet> and I am talking about something you said before.
00:03:05 <CakeProphet> which was.
00:03:14 <elliott> i note that Turing's paper introducing turing machines was about computable vs. non-computable numbers.
00:04:55 <oerjan> > compn (foldr1 (.) (repeat (1+)) 0 :: Expr) f a :: Expr
00:04:58 <lambdabot> *Exception: stack overflow
00:05:00 -!- fizzie has joined.
00:05:05 <oerjan> well it typed :P
00:05:15 <oerjan> > fix ((1+).) a
00:05:17 <lambdabot> *Exception: stack overflow
00:05:24 <oerjan> hm...
00:05:28 <CakeProphet> I wonder what would be required of strings to produce an uncountable number of them.
00:05:46 <oerjan> :t fix ((1+).) a
00:05:47 <lambdabot> forall t. (Num t) => t
00:05:49 <oerjan> aha
00:05:53 <oerjan> :t fix ((1+).) a :: Expr
00:05:54 <lambdabot> Expr
00:05:57 <oerjan> er
00:06:00 <oerjan> > fix ((1+).) a :: Expr
00:06:02 <lambdabot> 1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (...
00:06:07 <oerjan> ok _that_ worked
00:06:13 <CakeProphet> woooo
00:06:39 <elliott> oerjan: YAAAAAAAAAAAAAAAAAAAAAAAAAAAY
00:06:47 <elliott> > fix succ :: Expr
00:06:48 <lambdabot> succ (succ (succ (succ (succ (succ (succ (succ (succ (succ (succ (succ (suc...
00:06:55 <elliott> > fix (1+) :: Expr
00:06:56 <lambdabot> 1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (...
00:07:01 <elliott> SUPER KAWAII
00:07:15 <elliott> > fix (1/) :: Expr
00:07:15 <lambdabot> 1 / (1 / (1 / (1 / (1 / (1 / (1 / (1 / (1 / (1 / (1 / (1 / (1 / (1 / (1 / (...
00:07:28 <elliott> > fix ((1+) . (1-)) :: Expr
00:07:28 <oerjan> CakeProphet: infinite (but still countable) length noncomputable strings are uncountable
00:07:30 <lambdabot> 1 + (1 - (1 + (1 - (1 + (1 - (1 + (1 - (1 + (1 - (1 + (1 - (1 + (1 - (1 + (...
00:07:33 <elliott> oerjan: BOY HOWDY
00:07:36 <elliott> LOOK AT DAT INFINITE SUM
00:07:51 <CakeProphet> elliott: ostensible oscillations on that (1/), bro.
00:08:01 <oklofok> no offense but that sum doensn't converge
00:08:04 <elliott> CakeProphet: duh, thus the latter one
00:08:12 <elliott> oklofok: duh
00:08:18 <elliott> oklofok: wrong btw its = 1/2
00:08:30 <oklofok> yeah but that's only w.r.t. the weak topology
00:08:46 * elliott torlling mathematicians with zeta summes since 999
00:09:20 <oerjan> > foldr1 ($) (repeat (1+)) :: Expr
00:09:21 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
00:09:25 <oerjan> eek
00:09:30 <elliott> > foldr1 (.) (map (*) [1..]) a :: Expr
00:09:32 <lambdabot> 1 * (2 * (3 * (4 * (5 * (6 * (7 * (8 * (9 * (10 * (11 * (12 * (13 * (14 * (...
00:09:39 <elliott> why didn't it simplify it to sqrt(2*pi)
00:09:40 <CakeProphet> you sly dog.
00:09:41 <oerjan> oh hm
00:09:43 <elliott> stupid lambdabot
00:10:11 <elliott> sad that oerjan isn't taking my trollbait
00:10:12 <CakeProphet> > foldr1 (.) (repeat (0*)) 4
00:10:13 <lambdabot> *Exception: stack overflow
00:10:17 <oerjan> > foldr ($) undefined (repeat (1+)) :: Expr
00:10:17 <lambdabot> 1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (...
00:10:28 <elliott> its very sad oerjan very sad
00:10:38 <CakeProphet> I really think multiplying infinite zeroes should magically halt
00:10:43 <oerjan> > foldr (.) undefined (repeat (1+)) undefined :: Expr
00:10:45 <lambdabot> 1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (...
00:10:48 <oerjan> uh
00:10:52 <oerjan> *huh
00:10:52 <elliott> oerjan> > foldr ($) undefined (repeat (1+)) :: Expr
00:10:52 <elliott> <lambdabot> 1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (...
00:10:55 <elliott> HUH DIDN'T SIMPLIFY TO -1/2
00:10:56 <Gregor> WOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
00:10:59 <elliott> I WONDER WHY?????????? LAMBDABOT IS DUM
00:11:00 <elliott> Gregor: beat java?
00:11:16 <Gregor> No, just got home from an amusement park :P
00:11:24 <elliott> EVEN BETTER
00:11:29 <elliott> I SAID IMPORTANT THINGS IN LOG
00:11:32 <elliott> OF PLOF
00:11:37 <CakeProphet> Gregor: Java doesn't just sit around while you play games.
00:11:41 <CakeProphet> it is growing more powerful.
00:11:56 <Gregor> elliott: E_DONTCARE
00:12:03 <elliott> Gregor: Um it involves your GC segfaulting.
00:12:08 <elliott> Gregor: or not even segfaulting
00:12:11 <elliott> Broken longjmp stuff
00:12:13 <elliott> on your very own testcase
00:12:18 <elliott> also builds of the testcases are broken on lps branch
00:12:22 <elliott> In conclusion looooooooooooooooooooooooooool@u
00:13:23 <oerjan> > foldr1 (.) (repeat (1+)) a
00:13:24 <lambdabot> 1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (1 + (...
00:13:43 <oerjan> CakeProphet: would you know, that mueval timeout before was just an accident
00:13:55 <CakeProphet> oerjan: somewhere at the end of that sequence is an a.... right?
00:13:57 <elliott> how low _is_ it, that's pretty trivial computation
00:14:02 <elliott> CakeProphet: O_O
00:14:11 <elliott> yes and at the end of 0.9 recurring theres an 0
00:14:19 <oerjan> CakeProphet: conversing with angels on the head of a pin
00:14:19 <CakeProphet> good
00:14:29 <CakeProphet> just making sure I understand these things.
00:14:34 <CakeProphet> about things at the end of infinite things.
00:15:09 <CakeProphet> elliott: so do you pronounce 0 as "oh"? That would explain the "an"
00:15:20 <CakeProphet> but I read it as "an zero", which was very awkward sounding.
00:15:47 <oerjan> an trax
00:15:52 <oerjan> *thrax
00:15:56 <elliott> yeah i say oh when its a digit
00:16:01 <elliott> except when typing it out
00:16:01 <elliott> huh
00:16:03 <elliott> or saying it
00:16:10 <elliott> so um i dunno
00:16:16 <elliott> "zero point nine recurring theres an oh"
00:16:17 <elliott> how i say that
00:16:39 <CakeProphet> your nomenclature is typechecking, I guess.
00:16:46 <elliott> what
00:17:02 <CakeProphet> 0.9 is a number, thus zero, but 0 is being referred to as a digit, thus oh
00:17:30 <elliott> hey ehird name the digits
00:17:33 <elliott> zero one two three ...
00:17:34 <elliott> nope
00:17:46 <CakeProphet> then you're just A FEEBLE INCONSISTENT HUMAN
00:17:54 <CakeProphet> puny mortal.
00:18:33 <elliott> 15:56:28: <Deewiant> (If you define the ordering relation on correctness correctly.)
00:18:48 <elliott> 15:57:38: <Deewiant> AMD64 I can understand, x86_64 I can't.
00:18:49 <elliott> 15:57:56: <Deewiant> Nor the banal x64.
00:18:53 <elliott> Deewiant: especially not in a dobela interp amirite
00:20:08 <Gregor> <elliott> also builds of the testcases are broken on lps branch // dude, there is only one test that's supposed to work AT ALL, and that one is ultra-beta-y, PLUS you're using it with a retardedly huge input value that's causing huge stacks.
00:20:13 <Gregor> So in short: Fuck you.
00:21:11 <elliott> Congratulations, that's the most hostile reaction to a "I ran this testcase which just hangs with a large value in the default branch but causes a massive libc error in the lps branch" bug report I've ever seen.
00:21:23 <elliott> BTW, it freezes even with half that value.
00:21:27 <elliott> Erm, crashes, I mean.
00:21:36 <elliott> Whereas I suspect it would run to completion slowly in the default branch.
00:22:06 <CakeProphet> so I was thinking an interesting non-deterministic could consist of two parts. One is a string of characters, and the other is a logical assertion. Certain facts are taken from the string (the number of a's, the number of b's, etc) and used to compile a list of instructions. When the program runs, these instructions are computed in a non-deterministic order, until the result satisfied the logical assertion (which will li
00:22:12 <CakeProphet> *non-deterministic language
00:25:41 <CakeProphet> the second part of the language may operate differently that what I just said, but the basic idea is that you have a series of instructions that are computed non-deterministically, with the end result having to satisfy a logical statement.
00:26:01 <CakeProphet> s/second/first/ seriously need to do some more self-editing. :P
00:33:43 <oerjan> :t runWriter
00:33:44 <lambdabot> forall w a. Writer w a -> (a, w)
00:34:31 <oerjan> > let loop = do {tell "whee! "; loop; return "ah!"} in runWriter loop
00:34:32 <lambdabot> ("ah!","whee! whee! whee! whee! whee! whee! whee! whee! whee! whee! whee! w...
00:34:40 * oerjan cackles evilly
00:34:53 <CakeProphet> hmmm, I wonder if the instruction set could be completely optional. So basically you just specify the conditions of your program and it non-deterministically runs programs until one matches.
00:35:25 <CakeProphet> that would take much longer, because of the infinite programs and all...
00:37:39 <oerjan> CakeProphet: "logical assertion (which will li"
00:37:50 <CakeProphet> (which will likely also have its own batshit language)
00:38:04 <oklofok> i saw a bat the other day
00:38:07 <CakeProphet> a very important part of the sentence.
00:38:29 <oerjan> all's well that ends well
00:39:47 <oerjan> <Sgeo> @tell oerjan Do you logread?
00:39:57 <oerjan> mind you sometimes it takes a while to get around to it
00:39:59 -!- elliott has quit (Read error: Connection reset by peer).
00:41:27 * oerjan is disappointed by the lack of reaction to the runWriter code
00:41:50 -!- elliott has joined.
00:42:42 <CakeProphet> yes I think instead of using some weird string statistics I will instead just make an esoteric machine-code language, that gets randomly shuffled until it runs and satisfied the given condition. Ah, but that means that either the program must always halt, or the logical assertion language cannot test the state of registers after execution.
00:42:58 <CakeProphet> the logical assertions can only be about the layout and nature of the program itself...
00:43:32 <oerjan> rice's theorem strikes again
00:43:35 <oklofok> "[03:41:20] * oerjan is disappointed by the lack of reaction to the runWriter code" <<< idgi
00:43:50 <oklofok> looks like it should be an infinite loppy
00:44:40 <oerjan> it's infinite in the middle, and yet _both_ ends produce part of the result
00:44:48 <elliott> hot
00:45:32 <oklofok> well sure, but.... does it really work like that :P
00:45:32 <oerjan> proving that the >>= of the Writer monad is in a sense strict in _neither_ its first nor its last argument
00:45:37 <oklofok> haskell i mean
00:45:41 <oklofok> that's just magic
00:45:55 <Gregor> http://www.facebook.com/photo.php?pid=32117951&l=953460d5fd&id=1055580469 <-- my day today
00:46:29 <oklofok> ah hmm
00:48:11 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!).
00:48:28 <oerjan> > runWriter $ do {tell "whee! "; undefined; return "ah!"} -- maybe this makes things clearer
00:48:29 <lambdabot> ("ah!","whee! *Exception: Prelude.undefined
00:49:07 <oklofok> can you implement those semantics for writer from within haskell?
00:49:24 <oerjan> yes, Writer is entirely written in haskell
00:49:27 <oklofok> hmm.
00:49:41 <oerjan> it's just about being lazy in the right spots
00:49:56 -!- elliott has quit (Remote host closed the connection).
00:50:00 -!- elliott_ has joined.
00:50:30 <oklofok> :t tell
00:50:31 <lambdabot> forall w (m :: * -> *). (MonadWriter w m) => w -> m ()
00:50:44 <oerjan> @src Writer tell
00:50:44 <lambdabot> Source not found. You speak an infinite deal of nothing
00:50:46 <elliott_> oerjan: whats the best monad
00:50:49 <oerjan> @src tell Writer
00:50:49 <lambdabot> Source not found. Just try something else.
00:50:55 <oerjan> bah
00:51:14 <oerjan> elliott_: reverse state? >:D
00:51:19 <elliott_> hey oerjan i wrote cofunctor
00:51:20 <elliott_> class Fuctor f where fap :: (f a -> f b) -> a -> b
00:51:33 <oklofok> fuctor hahaahasd
00:52:51 <elliott_> oh its actually cofmap :: (a -> b) -> acc b -> acc a :P
00:52:59 <elliott_> which is a really cool type.
00:53:00 <oklofok> Gregor: how do you differ from normal humans there? you seem to be the average of the two niggas
00:53:29 <elliott_> whats f upside town
00:53:32 <elliott_> t?
00:53:46 <oklofok> not really
00:53:50 <elliott_> ?src Functor (,)
00:53:50 <lambdabot> Source not found. I feel much better now.
00:54:09 <elliott_> hmm
00:54:12 <elliott_> is there really no instance??
00:54:19 <elliott_> > fmap succ (9,9)
00:54:20 <oklofok> the katakana for na in japanese maybe
00:54:20 <lambdabot> (9,10)
00:54:23 <elliott_> right
00:54:49 <oerjan> i think someone has gutted @src, and it always had holes
00:55:57 <oerjan> oklofok: tell for writer should just be tell msg = Writer ((), msg) i think
00:55:58 <elliott_> well tuples aren't cofunctors then
00:56:39 <oerjan> the adjoint functor to tuples is (e ->) iirc
00:57:01 <elliott_> oerjan: that would produce (a -> b) -> (c -> b) -> (c -> a)...
00:57:02 <elliott_> with cofunctors
00:57:35 <elliott_> ?hoogle [a] -> [a] -> [a]
00:57:35 <lambdabot> Prelude (++) :: [a] -> [a] -> [a]
00:57:35 <lambdabot> Data.List (++) :: [a] -> [a] -> [a]
00:57:36 <lambdabot> Data.List deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
00:57:37 <oerjan> adjoints are still of the same variance though
00:57:37 <elliott_> grr
00:57:44 <elliott_> :t concat . zipWith (\a b -> [a,b])
00:57:45 <lambdabot> Couldn't match expected type `[[a]]'
00:57:45 <lambdabot> against inferred type `[b] -> [[b]]'
00:57:45 <lambdabot> Probable cause: `zipWith' is applied to too few arguments
00:57:49 <elliott_> so gross :(
00:57:50 <elliott_> ugh what
00:57:53 <elliott_> oh
00:58:51 <oerjan> elliott_: um what are you looking for
00:59:19 <oerjan> interleaving two lists?
00:59:42 <elliott_> yeah
01:00:28 <oerjan> :t curry $ sequence [fst, snd]
01:00:29 <lambdabot> forall b. b -> b -> [b]
01:01:08 <elliott_> http://sprunge.us/cSbW help this doesn't work :(
01:01:39 <oerjan> :t (concatMap (sequence [fst, snd]).) . zip
01:01:40 <lambdabot> forall b. [b] -> [b] -> [b]
01:02:21 <elliott_> :((((
01:04:35 <elliott_> newtype a :<- b = Flip (b -> a)
01:04:35 <elliott_> class Cofunctor cof where
01:04:35 <elliott_> cofmap :: (a -> b) -> cof b -> cof a
01:04:37 <elliott_> instance Cofunctor ((:<-) a) where
01:04:39 <elliott_> cofmap f (Flip g) = Flip (g . f)
01:04:41 <elliott_> there's an instance :P
01:04:43 <elliott_> TOO BE DETERMINED: USEFUL INSTACNE???
01:04:44 <oerjan> > scanl (flip (-)) 0 (repeat 1)
01:04:46 <elliott_> instant acne
01:04:46 <lambdabot> [0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,...
01:04:49 <oerjan> erp
01:05:09 <oerjan> > scanl (flip (-)) 0 [1..]
01:05:11 <lambdabot> [0,1,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,...
01:05:23 <oerjan> what was it again...
01:06:00 <oerjan> or wait
01:06:51 <oerjan> > 0 : [1..] <**> [id, negate]
01:06:52 <lambdabot> [0,0,1,-1,2,-2,3,-3,4,-4,5,-5,6,-6,7,-7,8,-8,9,-9,10,-10,11,-11,12,-12,13,-...
01:07:06 <oerjan> > 0 : ([1..] <**> [id, negate])
01:07:07 <lambdabot> [0,1,-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...
01:07:48 <elliott_> Sgeo: btw hs upd
01:10:03 <oerjan> > scanl (flip (-)) 0 [-1..]
01:10:05 <lambdabot> [0,-1,1,0,2,1,3,2,4,3,5,4,6,5,7,6,8,7,9,8,10,9,11,10,12,11,13,12,14,13,15,1...
01:10:15 <oerjan> not quite
01:10:59 <elliott_> ?src Monoid
01:11:00 <lambdabot> class Monoid a where
01:11:00 <lambdabot> mempty :: a
01:11:00 <lambdabot> mappend :: a -> a -> a
01:11:00 <lambdabot> mconcat :: [a] -> a
01:11:01 <oerjan> > scanl (flip (-)) 0 [-1,-2..]
01:11:02 <lambdabot> [0,-1,-1,-2,-2,-3,-3,-4,-4,-5,-5,-6,-6,-7,-7,-8,-8,-9,-9,-10,-10,-11,-11,-1...
01:11:03 <elliott_> oerjan what's a comonoid
01:11:10 <oerjan> huh
01:11:23 <oerjan> must be something categorical
01:11:50 <elliott_> is that a pun oerjan
01:11:52 <oerjan> maybe a monoid in the opposite category
01:11:58 <elliott_> is that a pun oerjan
01:12:10 <elliott_> "Dually, a comonoid in a monoidal category C is a monoid in the dual category C[caret]op."
01:12:14 <oerjan> no, that is probably actually meaningful
01:12:19 <elliott_> oerjan what's a comonoid as a haskell typeclass
01:12:32 <elliott_> you got it right though :P
01:12:37 <elliott_> hm wait
01:12:40 <elliott_> doesn;t that involve the dual of Hask
01:12:43 <oerjan> i don't know about monoids in categories, other than monads
01:12:49 <elliott_> which is... not very expressable in haskell
01:12:52 <elliott_> erm
01:12:53 <elliott_> the opposite of Hask
01:13:00 <elliott_> you know, Hask[caret]op
01:13:30 <oerjan> no that's easy. a dual category has the same objects and arrows, just reverses which it considers domain and codomain
01:13:32 * pikhq_ has become convinced that build systems are not declarative enough.
01:14:12 <oerjan> so newtype (<~) a b = (<~) (b -> a)
01:14:22 <oerjan> er
01:14:29 <oerjan> i guess you need it to start with :
01:15:53 <oerjan> (-> e) is a functor from Hask to dual of Hask, i think
01:16:24 <oerjan> aka cofunctor from Hask to Hask
01:17:48 <elliott_> <oerjan> so newtype (<~) a b = (<~) (b -> a)
01:17:50 <elliott_> already wrote that
01:17:54 <elliott_> but note that <~ is not a valid type-operator.
01:17:59 <elliott_> afaik.
01:18:07 <oerjan> already wrote that :P
01:18:24 <elliott_> oerjan: ok well that is a shame since I already used that structure as a cofunctor
01:18:27 <elliott_> and the instance was predictably boring
01:18:35 <elliott_> oerjan: but i don't see how you can make that a monoid
01:18:40 <elliott_> erm, comonoid
01:18:42 <elliott_> unless functions are monoids, hmm
01:18:49 <elliott_> well (a -> a) is I guess
01:18:58 <elliott_> so (a -> a) is a comonoid too, lol
01:19:04 <elliott_> or wait what
01:19:10 <oerjan> well a monoid in a category is not the same as a monoid algebra, aka haskell Monoid
01:19:11 <elliott_> i still don't know what comonoids would look like
01:19:16 <elliott_> using <~ instead of -> in their signatures??
01:19:20 <elliott_> oerjan: right
01:19:27 <elliott_> does haskell even have the former?
01:19:48 <oerjan> and all i know is that Monads are supposedly monoids in categories
01:20:01 <oerjan> or wait
01:20:07 <oerjan> i'm not even sure of that
01:20:12 -!- Sgeo has quit (Ping timeout: 240 seconds).
01:20:24 <oerjan> there may be several different concepts there
01:21:27 <elliott_> hm I wonder what the <~ comonad looks like?
01:21:51 <elliott_> well hmm
01:22:19 <elliott_> duplicate :: (a <~ b) -> (a <~ (a <~ b))
01:22:28 <elliott_> duplicate :: (b -> a) -> ((b -> a) -> a)
01:22:33 <elliott_> heh
01:22:38 <elliott_> well that's not right.
01:23:00 <elliott_> extend :: ((c <~ b) -> b) -> (c <~ a) -> (c <~ b)
01:23:10 <elliott_> extend :: ((b -> c) -> b) -> (a -> c) -> (c -> b)
01:23:24 <elliott_> ok that is definitely _not_ an instance :D
01:23:26 <oerjan> i believe the Cont monad comes out of treating (-> e) as its own adjoint functor
01:23:29 <elliott_> wait
01:23:34 <elliott_> that's actually extendable functors
01:23:40 <elliott_> argh, edward kmett
01:23:44 <elliott_> put the comonad class first :(
01:23:52 <elliott_> ugh it's split in two
01:24:29 <CakeProphet> elliott_: yeah see I had no idea that spades slick was exiled from the dark kingdom of the trolls' instance of the game.
01:24:43 <CakeProphet> along with the rest of the midnight crew.
01:24:51 <elliott_> CakeProphet: that's actually _revealed_ in the recap, IIRC
01:25:11 <elliott_> CakeProphet: protip: if you see something you have _absolutely_ no recollection of in a recap
01:25:13 <elliott_> it's probably revealed there
01:25:16 <elliott_> hussie = total asshole
01:25:17 <elliott_> :D
01:26:05 <elliott_> oh wait
01:26:13 <elliott_> CakeProphet: it actually is, in the /intermission/: http://www.mspaintadventures.com/?s=6&p=003174
01:26:23 <elliott_> but it's not clear that that planet is the trolls' there, of course
01:26:36 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:27:21 <elliott_> CakeProphet: so yeah, if that's the only thing that you didn't realise was happening in the recap, you're an A+ reader :P
01:27:55 <elliott_> although not understanding [S] Jack: Ascend. until it's elaborated upon is perfectly understandable. them flashes be dense.
01:31:46 <pikhq_> elliott_: Could I get your opinion on a hypothetical not-fucking-terrible way of specifying a build system?
01:32:04 <elliott_> pikhq_: define specifying
01:32:28 <pikhq_> elliott_: ... Here, I'll just link.
01:32:30 <pikhq_> http://sprunge.us/OcFX
01:33:13 <elliott_> pikhq_: needs more ai-make
01:33:34 <elliott_> srsly, this is a perfectly fine file format, but it should be generated :P
01:33:51 <pikhq_> True, rather a lot of it could be generated.
01:33:51 <elliott_> also is this tcl, the $:: kind of gives it away
01:34:15 <pikhq_> When I think "domain-specific language" my mind jumps to Tcl.
01:34:17 <elliott_> pikhq_: but yeah i mean its perfectly "fine" except for the specification of c++-sources which needs automating, its just that id rather write almost none of it
01:34:25 <elliott_> if ai-make spit this out id be perfectly happy
01:34:31 <elliott_> use-tools {c++ c++0x} {c c99}
01:34:35 <elliott_> pikhq_: unnecessary, it can infer this from the rules
01:34:38 <elliott_> (make them declarative)
01:34:46 <elliott_> s/c++-sources/c++ sources/
01:34:49 <elliott_> so you can also say e.g.
01:34:52 <elliott_> c++ flags ... or whatever
01:34:59 <elliott_> or even
01:35:04 <elliott_> c++ needs some-gcc-extension
01:35:21 <elliott_> pikhq_: link-with <-- do you need this? it seems like you could make an obvious default
01:35:34 <pikhq_> Probably not *need*, no.
01:35:43 <elliott_> s/use-tools windres \n windres-sources resource.rc/windres sources resource.rc/
01:35:46 <elliott_> like I said :P
01:35:56 <elliott_> cd ui-gameboy <-- gross, makes me think imperative
01:35:59 <elliott_> try in-directory or similar
01:36:12 <elliott_> pikhq_: i'll just do a partial rewrite :P
01:36:34 <elliott_> pikhq_: how does Tcl alias a function?
01:37:00 <pikhq_> elliott_: In what sense? As in, "create an alias for some other function"?
01:37:05 <elliott_> yeah
01:37:25 <elliott_> pikhq_: or actually
01:37:28 <elliott_> pikhq_: how do you override a function?
01:37:29 <elliott_> that is
01:37:31 <elliott_> define a new function with the same name
01:37:34 <elliott_> but keeping a ref to the old one
01:37:35 <elliott_> so you can call it
01:37:56 <pikhq_> rename foo bar
01:38:07 <pikhq_> This changes the name of proc "foo" to "bar".
01:38:15 <elliott_> so just rename it to something obscure? :p
01:38:27 <pikhq_> Or rename it to something in your own namespace.
01:39:03 <pikhq_> rename proc ::ohHolyGodIt'sReplacingProc::_proc
01:39:35 <elliott_> what does the install-extra block do?
01:39:41 <elliott_> specify that it should only be installed with some configurations?
01:40:10 <pikhq_> Just files that should be installed, but aren't obvious from the declaration of the program.
01:40:49 <elliott_> what is the abi-evrsion part of libsnes for?
01:40:51 <elliott_> version
01:40:58 <elliott_> shared library field of somekind?
01:41:00 <elliott_> some kind
01:41:19 <pikhq_> Shared library versioning.
01:41:39 <pikhq_> So, the name of the actual library, soname, etc.
01:41:57 <elliott_> if {$::uiplatform == windows} {
01:41:57 <elliott_> export define PHOENIX_WINDOWS
01:42:02 <elliott_> what does export mean
01:42:07 <elliott_> define it in everything using this module?
01:42:11 <pikhq_> Yeah.
01:43:12 <elliott_> what does convenience-module do?
01:43:24 <pikhq_> Uh, nix that.
01:43:25 <elliott_> and how does "depends modules" act differently to "use-modules"?
01:43:40 <pikhq_> And that should be use-modules.
01:45:14 <elliott_> with-args is very low-level...
01:45:28 <elliott_> what's the one/zero thing
01:45:29 <elliott_> second element
01:45:45 <elliott_> also you have "useplatform" where you mean "uiplatform"
01:45:45 <pikhq_> Default.
01:46:40 <pikhq_> So, the default arguments would be the same as "--with-bsnes --without-bgameboy --without-libsnes", and I didn't end up defining defaults on uiplatform or profile.
01:47:20 <elliott_> http://sprunge.us/Afjb
01:47:21 <elliott_> i made it suck less
01:47:35 <elliott_> # oh and you can also say "c++ needs some-library-name", or something like that
01:47:36 <elliott_> disregard this
01:47:40 <elliott_> i made it more concrete and used it later
01:48:31 <pikhq_> Nice work.
01:49:30 <pikhq_> Though the implementation might end up having to be more complex, what with that conflating both "-lfoo" and "pkg-config --libs foo".
01:49:34 <pikhq_> Feh, could be done, though.
01:49:52 <pikhq_> Check if there's a pkg-config file for "foo" and use that if so, otherwise use -lfoo.
01:49:56 <elliott_> pikhq_: Those should be conflated.
01:49:59 <elliott_> And it should be more than that.
01:50:03 <elliott_> Consider programs which have their own -configs.
01:50:06 <elliott_> Erm
01:50:07 <elliott_> Libraries
01:50:13 <elliott_> And those which are composed of multiple libraries, etc.
01:52:42 <pikhq_> So now it needs a heck of a lot of logic for handling libraries. Bleck.
01:53:05 <elliott_> so what
01:54:29 <pikhq_> Hmm. Trying to think of a sane bit of implementation logic. (that is, doing something *other* than having literally a seperate definition for every single library)
01:55:49 <pikhq_> Probably something like "If there's a file defining how to use library 'foo', use that, otherwise if there's a pkg-config file for 'foo', use that, otherwise use '-lfoo' and hope it works."?
01:56:20 <elliott_> it should be haskell not tcl imho hand
01:59:12 <pikhq_> Already, though, this looks a few multiples better than other build systems.
01:59:58 <elliott_> imo the file format can literally just be a show'd haskell data structure though because it's only useful with ai-make ;)
02:00:19 <pikhq_> You and your ai-make. :P
02:00:42 <elliott_> ya
02:18:08 -!- ralc has quit (Quit: Leaving).
02:33:21 <elliott_> hmm, one and a half hours to go
02:36:29 <oerjan> and then... BOOM
02:37:34 <monqy> boom
02:38:24 <elliott_> pretty much yes
02:53:50 -!- Sgeo has joined.
02:56:23 <elliott_> oh god ray24 came back
02:56:32 <elliott_> why didn't we re-scare them off
02:56:43 <elliott_> 03:53:18: <Gregor> And you decided to resolve this dilemma by asking for the appropriate reaction on a channel you've never been to? :P
02:56:49 <elliott_> oh they've been here
02:56:55 <elliott_> 03:56:32: <ray24> of my 18 years of life.. i've not once heard/seen/smell the fart of a girl
02:56:55 <elliott_> uh
02:57:01 <elliott_> wow this guy is incoherent
02:57:55 <elliott_> 04:33:00: <ray24> Program isn't a challenge. the only challenge is my motivation!
02:57:55 <elliott_> 04:33:18: <ray24> yo..
02:57:55 <elliott_> 04:33:26: <ray24> I came here I thought esoteric was hip hop
02:57:55 <elliott_> 04:33:30: <ray24> honestly.
02:58:00 <elliott_> this is the best
02:59:10 <elliott_> 04:59:12: <ray24> I cannot believe how much filler words they have in that book
02:59:10 <elliott_> 05:00:14: <ray24> maybe I just got a high IQ or something iono!
02:59:13 <elliott_> this is the literal best
02:59:15 <elliott_> Sgeo: btw hamsteak updated
02:59:31 <CakeProphet> elliott_: I lol'd furiously.
02:59:32 <Sgeo> ty
02:59:40 <elliott_> 05:10:05: <ray24> So a lisp represents inputs that you feed it
02:59:40 <elliott_> 05:10:22: <ray24> maybe a lisp could also interpret my algorithm
02:59:40 <elliott_> 05:10:27: <ray24> interesting
02:59:40 <elliott_> 05:11:01: <ray24> I wasn't a programmer 1 hour ago.. but I might be a programmer in the next 24 hours
02:59:43 <elliott_> anything is possible if you're an idiot
02:59:46 <elliott_> that's my life motto
03:00:01 <elliott_> 05:17:55: <ray24> I'll become a good programmer within a month
03:00:01 <elliott_> 05:17:57: <ray24> no problem,
03:00:01 <elliott_> 05:18:02: <ray24> Not even a challenge
03:00:01 <elliott_> 05:18:20: <ray24> Seems pretty easy so far
03:00:01 <elliott_> 05:19:45: <ray24> Brb I'm gonna hop the hence behind my yard and jump the cows
03:00:02 <elliott_> what
03:00:09 <elliott_> what is this even
03:00:15 <elliott_> is this guy high
03:00:36 <elliott_> 06:06:02: <ray24> are you a hacker?
03:00:36 <elliott_> 06:06:26: <ray24> break codes.. conduct illegal stuff
03:00:37 <elliott_> 06:06:36: <ray24> adding virus to mp3 files
03:00:39 <elliott_> 06:06:41: <ray24> corrupting sys files
03:00:42 <elliott_> ADDING VIRUS TO MP3 FILES
03:00:49 <CakeProphet> elliott_: see my comments below...
03:00:54 <elliott_> this is just amazing om
03:00:54 <elliott_> g
03:00:57 * oerjan is slightly annoyed by people using "isomorphism" to prove TC-ness of languages when the correspondence is not actually invertible
03:01:10 <elliott_> oerjan: it's one of them one-way ismorphisms
03:01:14 <elliott_> oerjan: change them all to "injection" :-P
03:02:14 <elliott_> 07:10:42: <Patashu> Is it possible to determine at compile time where overflows could potentially happen
03:02:15 <elliott_> 07:10:55: <Patashu> I know there's a C extension, Cyclone or something, that does it
03:02:15 <elliott_> 07:11:18: <pikhq_> Patashu: Halting problem.
03:02:17 <elliott_> pikhq_: _sigh_
03:02:20 <oerjan> ...it's not even that, necessarily
03:02:28 <CakeProphet> <ray24> So a lisp represents inputs that you feed it
03:02:34 <elliott_> oerjan: can u ban ppl who say halting problem in response to any static analysis task thx
03:02:38 <CakeProphet> elliott_: what does that even mean? can you tell me?
03:02:52 <elliott_> CakeProphet: i don't even know
03:03:01 <elliott_> 07:48:23: <Albibeno> smoke ganja?
03:03:01 <elliott_> totes
03:03:03 <oerjan> *what is this i don't even
03:03:15 <elliott_> brb, gotta compose a song it's urgent
03:04:50 <oerjan> arborealis reminds me a little of V
03:04:50 -!- elliott_ has quit (Read error: Connection reset by peer).
03:28:49 -!- myndzi has quit (Remote host closed the connection).
03:35:19 <CakeProphet> oh god act 5...
03:35:26 <CakeProphet> I DON'T WANT TO READ ABOUT TROLLS.
03:35:49 <CakeProphet> I was already tired of reading their chat logs.
03:36:33 <Sgeo> It might be easier once you start to get to know them?
03:42:27 <CakeProphet> all.. twelve?
03:42:27 -!- elliott has joined.
03:42:41 -!- myndzi has joined.
03:49:55 <Sgeo> Yes, there are 12
03:51:31 <elliott> song composed, universal balance restored
03:52:35 <monqy> wooho
03:52:36 <monqy> o
03:52:44 <monqy> is it a good song
03:52:56 <monqy> also wow ray24 is amazing
03:55:27 <elliott> monqy: its the best thing anyone has ever written
03:55:32 <elliott> also yeah, he's zepto
04:00:13 <Deewiant> 2011-03-01 04:53:07( elliott) 07:57:56 <Deewiant> Nor the banal x64.
04:00:13 <Deewiant> 2011-03-01 04:53:08( elliott) dobel
04:00:25 <CakeProphet> elliott: though, as pikhq_ and I discussed afterwards, placing a virus inside of an mp3 file is not out of the question.
04:00:34 <elliott> CakeProphet: Of course, but lol.
04:00:39 <CakeProphet> yes I know. :P
04:00:46 <elliott> Deewiant: dobanalx64
04:01:43 <elliott> Deewiant sure is writing a lot in response
04:02:05 <Deewiant> 8.3
04:02:21 <elliott> Deewiant: how long did it take you to type that
04:02:27 <Deewiant> ~1
04:02:43 <elliott> also, what sixty-four bit OSes are there with a 8.3 limitation?
04:02:51 <Deewiant> Beats me
04:02:53 <elliott> second question: that dobelx64 runs on?
04:03:00 <CakeProphet> elliott: http://en.wikipedia.org/wiki/File:Internet_superheroes.jpg the most important people on the internet.
04:03:19 <elliott> CakeProphet: nonsense, none of those look like famous bisexuals
04:04:03 -!- myndzi\ has joined.
04:04:48 -!- myndzi has quit (Ping timeout: 240 seconds).
04:04:50 <CakeProphet> elliott: also why doesn't Andrew Hussie have a Wikipedia article, but MSPA and Whistles do.
04:05:04 <CakeProphet> and all of the other self-sustained webcomic artists on this article do.
04:05:22 <elliott> because of racism
04:05:35 <CakeProphet> except Dave Stanworth from Snafu Comics, whatever the fuck that is.
04:43:07 -!- augur has quit (Remote host closed the connection).
04:45:20 -!- augur has joined.
05:19:53 -!- Lymee has quit (Ping timeout: 258 seconds).
05:30:28 -!- yiyus has quit (Ping timeout: 240 seconds).
05:31:53 -!- sebbu has quit (Read error: Connection reset by peer).
05:32:20 -!- sebbu has joined.
05:49:37 <CakeProphet> Hello?
05:50:30 <elliott> Goodbye?
05:50:30 -!- augur has quit (Remote host closed the connection).
05:50:46 <CakeProphet> I need to procrastinate writing something. Say something.
05:50:59 <elliott> sjdsd
05:57:36 * pikhq_ can has hacked together piece of shit build system, that definitely needs to be much smarter. Much much smarter.
05:57:42 <pikhq_> elliott: So, tell me. ai-make.
05:58:23 <elliott> pikhq_: does it use tup?
05:58:27 <elliott> your build system
05:58:46 <pikhq_> elliott: No, but only because what I have is more of a prototype than anything else.
05:58:55 <elliott> make it spit out tup :P
05:59:17 <pikhq_> I feel the only options are to make it output tup or to do my own beta build system.
05:59:40 <pikhq_> And tup has the advantage of it already working very well.
06:00:50 <pikhq_> tup has the disadvantage of triggering a bug in Debian's fuse, though.
06:00:59 <elliott> report it?
06:01:15 <pikhq_> I found out that it was a bug by finding the Debian bug report.
06:01:26 <elliott> I mean report it to tup
06:01:28 <elliott> for a workaround
06:01:30 <pikhq_> Aaah.
06:01:55 <pikhq_> It's breaking pretty much every unmount of a fuse filesystem, so...
06:03:21 <pikhq_> *facepalm*
06:03:38 <pikhq_> "use umount --fake to update /etc/mtab"
06:03:48 -!- Lymee has joined.
06:03:58 <pikhq_> Debian's umount doesn't do --fake.
06:05:13 <pikhq_> *Aaaah*.
06:05:41 <pikhq_> fuse should have a dependency on mount >= 2.19, but it doesn't.
06:05:45 <elliott> is that simon's yogscast noise
06:05:50 <elliott> AAAAH A UMOUNT KITTEN
06:06:12 <pikhq_> And guess what's not in Wheezy?
06:07:08 <CakeProphet> young wheezy as in like... lil' wayne?
06:07:08 <pikhq_> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628735
06:07:27 <CakeProphet> *weezy actually
06:07:33 <CakeProphet> and lil wayne, even.
06:07:41 <elliott> It's a Toy Story character, you uncultured fuck.
06:07:43 <pikhq_> CakeProphet: No, as in the character in Toy Story.
06:07:51 <elliott> `addquote <elliott> It's a Toy Story character, you uncultured fuck.
06:07:54 <elliott> yeah I just added my own line
06:07:55 <HackEgo> 455) <elliott> It's a Toy Story character, you uncultured fuck.
06:07:56 <elliott> deal w/ it
06:08:03 <pikhq_> Sorry, Toy Story *2*.
06:08:09 <CakeProphet> oh that's why I don't it.
06:08:16 <CakeProphet> because anything > 1 is SHIT.
06:08:26 <pikhq_> CakeProphet: Pixar defeats your notions of "bad sequels".
06:08:27 -!- Lymee has quit (Ping timeout: 276 seconds).
06:08:28 <elliott> what
06:08:33 <elliott> have you even seen the toy story sequels
06:08:36 <CakeProphet> nope.
06:08:36 <elliott> they are the best
06:08:38 <CakeProphet> this is how I know.
06:08:41 -!- aloril has quit (Ping timeout: 250 seconds).
06:08:59 <pikhq_> 2 is better than 1, and 3 is better than 2. Any further questions?
06:09:07 <CakeProphet> I know because I haven't seen them. You can attempt a rebuttal but it will swiftly smitten by my immaculate logic.
06:09:13 <CakeProphet> *be swiftly
06:09:22 <pikhq_> That's theist logic right there.
06:09:36 <elliott> pikhq_: I was really pleasantly surprised by 3, I was afraid it was going to be a "LOL IT IS BACK AND THE INTERNET IS A THING NOW: LOOK AT THESE INTERNET REFERENCES: THE MOVIE"
06:09:37 <CakeProphet> I am such a good writer. I should start on this writing thing, that I am good at.
06:10:12 <CakeProphet> There will be no typos. Nope. I won't even bother proofreading it three times like I normally one. It's a waste of time because I never make mistakes when I type.
06:10:19 <CakeProphet> s/one/would/
06:10:44 <elliott> publish a book with s///s in
06:11:01 <pikhq_> elliott: Yeah, pretty surprising that they made it not merely good, but great. A freaking sequel to a sequel.
06:11:10 <pikhq_> Aaah, the power of giving a damn.
06:11:50 -!- Lymee has joined.
06:13:03 <CakeProphet> This unabashed Toy Story idolatry is deeply disturbing to me.
06:13:19 <CakeProphet> (as you can see, I am preparing myself for writing mode)
06:13:24 <elliott> Dammit you discovered my secret fake Toy Story fetish.
06:13:29 <pikhq_> CakeProphet: It's Pixar idolatry, actually.
06:13:43 <pikhq_> PIXAR HATH DONE NO WRONG
06:13:49 <elliott> pikhq_: excuse me they made cars
06:13:51 <elliott> and are making a sequel to cars
06:14:18 <pikhq_> elliott: Oh, right, Cars was pretty solidly meh.
06:14:31 <CakeProphet> oh they also got owned by Disney, which is wrong.
06:14:48 <elliott> What does that mean
06:14:55 <pikhq_> elliott: Disney bought them out.
06:15:02 <elliott> I mean what does "which is wrong" mean
06:15:13 <monqy> morally
06:15:14 <CakeProphet> elliott: it is a normative qualifier applied to the previous action.
06:15:21 <elliott> monqy: yes but how
06:15:28 <CakeProphet> in response to pikhq_ saying that PIXAR HATH DONE NO WRONG.
06:15:32 <pikhq_> CakeProphet: Disney has ceased their crimes against art.
06:15:39 <pikhq_> CakeProphet: Because Pixar hath taken over.
06:15:53 <monqy> elliott: crimes against art, apparently
06:15:58 <elliott> monqy: zepto
06:16:20 <CakeProphet> No, I refuse to defend my normative assertions with petty logic defenses. It is a waste of time
06:16:33 -!- Lymee has changed nick to Lymia.
06:16:34 -!- Lymia has quit (Changing host).
06:16:34 -!- Lymia has joined.
06:16:39 <CakeProphet> Disney is evil, which is self-evident.
06:16:40 -!- Lymia has changed nick to Lymee.
06:16:41 <elliott> ur a normative aspen
06:16:48 -!- Lymee has changed nick to Lymia.
06:17:17 <pikhq_> CakeProphet: Disney is primarily guilty of crimes against art. The artists have conquered Disney. Any further questions?
06:17:18 <elliott> I should sleep soon. I blame CakeProphet for keeping me awake.
06:17:56 <elliott> apex
06:17:58 <elliott> aplomb
06:18:00 <elliott> archaeostry
06:18:04 <elliott> vicious
06:18:05 <elliott> cobbley
06:18:12 <elliott> tartan
06:18:19 <Deewiant> aaavct
06:18:23 <elliott> Deewiant: vector
06:18:34 <elliott> amiably
06:18:39 <elliott> incandescent
06:18:48 <elliott> nock
06:18:54 <elliott> petulant
06:18:57 -!- FireFly has joined.
06:18:58 <elliott> orgiastic
06:19:02 <elliott> oppenheimer
06:19:04 <elliott> pastures
06:20:16 <CakeProphet> cockalorum
06:20:24 -!- aloril has joined.
06:20:31 <elliott> affluent
06:20:33 <elliott> acrid
06:20:35 <elliott> arsenic
06:20:39 <elliott> apiculture
06:20:41 <elliott> apeirj
06:20:44 -!- pikhq has joined.
06:22:03 <CakeProphet> legerdemain
06:22:05 <CakeProphet> lifeblood
06:22:17 <CakeProphet> ruse
06:22:23 <elliott> ferrofluid
06:22:23 <CakeProphet> chicanery
06:22:23 <elliott> vast
06:22:26 <elliott> cardigan
06:22:31 <CakeProphet> lol...
06:22:33 <elliott> syzygy
06:22:37 <elliott> darkening
06:22:53 <elliott> gantry
06:22:54 -!- pikhq_ has quit (Ping timeout: 246 seconds).
06:22:59 <elliott> quintuple
06:23:04 <elliott> archaeologist
06:23:07 <elliott> CakeProphet: words channel
06:23:19 <CakeProphet> lexicon
06:23:22 <CakeProphet> lackluser
06:23:32 <CakeProphet> ....GOD DAMNIT
06:23:35 <elliott> what
06:23:36 <CakeProphet> there is a word I am looking for
06:23:38 <CakeProphet> and I cannot think of it.
06:23:39 <elliott> heh
06:23:42 <elliott> what does it mean
06:23:46 <CakeProphet> uh... shit I don't even remember.
06:23:51 <elliott> lol
06:23:53 <CakeProphet> ah
06:23:54 <CakeProphet> vainglorious
06:23:57 <CakeProphet> there it is.
06:24:06 <CakeProphet> meaning is quite clear.
06:24:08 <Lymia> In Python, can you make a tuple containing itself?
06:24:11 <CakeProphet> yes.
06:24:18 <elliott> no
06:24:20 <elliott> tuples are immutable
06:24:22 <CakeProphet> Python is dynamically typed, values can go anywhere values can go.
06:24:25 <elliott> no
06:24:26 <CakeProphet> oh wait
06:24:26 <elliott> tuples are immutable
06:24:28 <CakeProphet> containing itself.
06:24:31 <elliott> hmm
06:24:31 <CakeProphet> nevermind...
06:24:33 <elliott> it might be possible
06:24:38 <CakeProphet> no it's not...
06:24:41 <Lymia> C modules?
06:25:03 <Deewiant> x = (x,) ?
06:25:08 <elliott> >>> x = [(),()]
06:25:08 <elliott> >>> x[0] = x
06:25:08 <elliott> >>> x.__class__ = tuple
06:25:09 <elliott> Traceback (most recent call last):
06:25:11 <elliott> File "<stdin>", line 1, in <module>
06:25:13 <elliott> TypeError: __class__ assignment: only for heap types
06:25:15 <elliott> so close :D
06:25:16 <Deewiant> Oh, this machine is just being slow
06:25:17 <elliott> Deewiant: nope
06:25:19 <elliott> Deewiant: x is unbound
06:25:21 <Deewiant> I thought it inflooped
06:25:25 <Deewiant> But it just took 5 seconds to error
06:25:44 <elliott> hmm
06:25:49 <elliott> you can always use ctypes to bind to the python api
06:26:23 <CakeProphet> >>> x = [1,2,3]
06:26:30 <CakeProphet> >>> x.append(x)
06:26:33 <elliott> int PyTuple_SetItem(PyObject *p, Py_ssize_t pos, PyObject *o)¶
06:26:33 <elliott> Insert a reference to object o at position pos of the tuple pointed to by p. Return 0 on success.
06:26:35 <CakeProphet> >>> x = tuple(x)
06:26:38 <CakeProphet> >>> print x
06:26:42 <CakeProphet> ...
06:26:49 <CakeProphet> yeah that won't work
06:26:56 <elliott> >>> tuple([(),[9]])
06:26:56 <elliott> ((), [9])
06:26:59 <elliott> it would just contain a reference to the x list
06:27:03 <CakeProphet> right
06:27:11 <elliott> OK so I need to bind to PyTuple_SetItem.
06:27:13 <CakeProphet> you'd have to like, map tuple recursively.
06:27:23 <CakeProphet> which wouldn't halt unless you make it a generator.
06:27:39 <pikhq> See, this is why Haskell > Python.
06:27:49 <CakeProphet> well duh.
06:28:38 <elliott> >>> py.PyTuple_SetItem(id(x), 0, id(x))
06:28:38 <elliott> Segmentation fault
06:28:58 <CakeProphet> Python is designed for programmers whose feeble minds are destroyed by any type of "unreadable" code or "difficult to follow" semantics.
06:29:19 <elliott> oh wait
06:29:22 <elliott> i'm fucking up the call somehow
06:29:46 <CakeProphet> >>> help(py.PyTuple_SetItem)
06:30:11 <CakeProphet> elliott: try that with a print
06:30:32 <elliott> aha i've got it
06:30:35 <elliott> CakeProphet: that wont work its a bound c api
06:30:36 <elliott> but ive got it
06:30:36 <pikhq> Strange, Python, like all imperative languages, has semantics that only make sense with years of immersion.
06:30:47 <CakeProphet> >>> print py.PyTuple_SetItem.__doc__
06:30:55 <elliott> IT'S AB OUND C API
06:30:57 <elliott> IT HAS NO DOCUMENTATION
06:31:05 <CakeProphet> elliott: THERE ARE LOTS OF THOSE THAT HAVE DOCUMENTATION FOOL.
06:31:08 -!- zzo38 has joined.
06:31:13 <elliott> CakeProphet: I LITERALLY LOADED IT WITH CTYPES
06:31:17 <elliott> it reads from the shared object
06:31:20 <elliott> which contains no documentation
06:31:22 <elliott> because it is a binary
06:31:25 <CakeProphet> oh, well, okay then.
06:31:58 <elliott> AttributeError: dlsym(0x7fff5fc43cc0, PyTuple_SET_ITEM): symbol not found
06:31:59 <elliott> gah
06:32:14 <CakeProphet> it would be crazy to give Perl currying
06:32:15 <elliott> ./tupleobject.h:#define PyTuple_SET_ITEM(op, i, v) (((PyTupleObject *)(op))->ob_item[i] = v)
06:32:16 <elliott> lovely
06:32:35 <CakeProphet> so basically accessing an element of @_ that wasn't provided causes the subroutine to return a curried form.
06:33:10 <lifthrasiir> so, what is the entire point of making a tuple an element of itself?
06:33:14 <CakeProphet> it would fuck up Perl's ability to omit parentheses on a lot of function calls.
06:33:18 <CakeProphet> lifthrasiir: absolutely none, really.
06:33:28 <Lymia> elliott, can you write that in Python with ctypes
06:33:38 <elliott> Lymia: what do you think im trying to do :p
06:33:44 <CakeProphet> pikhq: actually, now that I think about it, you can't do this in Haskell either can you?
06:33:52 <Lymia> So, wait.
06:34:04 <Lymia> In theory you can write something as powerful as a C module in Python, right?
06:34:09 <CakeProphet> (Int, (Int, (Int, ...)))
06:34:27 <CakeProphet> explain powerful.
06:34:38 <Patashu> is infinite memory python turing complete?
06:34:39 <pikhq> CakeProphet: Yeah, it fails in the type system, sure enough.
06:34:42 <lifthrasiir> CakeProphet, then why does pikhq think Haskell > Python for this thing? :p
06:35:18 <CakeProphet> dunno, ask him. :)
06:35:38 <CakeProphet> I think he was making that assertion in general though.
06:36:12 <pikhq> It was a general statement.
06:36:14 <elliott> Patashu: yes.
06:36:16 <elliott> it has bignums so yes.
06:36:19 <lifthrasiir> i think he got the wrong example. (obviously i don't challenge that Haskell > Python...)
06:37:11 <CakeProphet> >>> x = [1];x.extend(x);print x; #chaos ensues
06:37:54 <lifthrasiir> CakeProphet, that's [1, [...]]. Python's repr correctly handles recursive list.
06:38:03 <CakeProphet> and by chaos ensues I actually mean nothing interesting happens
06:38:04 <lifthrasiir> (but for recursive *objects*, no.)
06:38:06 <CakeProphet> because that's just [1,1]
06:38:21 <lifthrasiir> --wait, i read it append...
06:38:46 <elliott> aha, wait
06:39:21 <CakeProphet> I was trying to use my Haskll-writing brain in my Python-writing reality, thinking that x.extend(x) would attempt to construct an infinite list.
06:39:25 <CakeProphet> looool.
06:39:25 <CakeProphet> not how it works.
06:39:47 <elliott> argh god dammit
06:40:05 <CakeProphet> elliott: the problem here is that you're trying to use Python to do something silly.
06:40:08 <Patashu> python doesn't have laziness does it
06:40:13 <elliott> fuk u
06:40:17 <CakeProphet> it does, but not all the time no.
06:40:35 <CakeProphet> generators/iterators are lazy.
06:40:47 <CakeProphet> itertools.cycle([1,2,3]) works like cycle in Haskell.
06:41:02 <Patashu> I guess generators kind of count yeah
06:42:00 <CakeProphet> yes, that's definitely a form of laziness compared to most languages capacities for such things.
06:42:40 <elliott> gah this sucks
06:42:41 <elliott> oh well
06:42:58 <CakeProphet> elliott: yeah don't use Python, dude.
06:43:04 <elliott> good advice
06:43:09 <elliott> bet i couldn't do it in perl either
06:43:22 <CakeProphet> Perl doesn't even have that shit what are you talking about.
06:43:30 <CakeProphet> that's an undefined task in Perl.
06:43:38 <elliott> precisely
06:43:41 <elliott> couldn't even do it
06:43:49 <CakeProphet> doesn't need to because it's so awesome.
06:46:05 -!- Vorpal has joined.
06:46:41 <CakeProphet> sub list { [1,[2,[3,list]]] }
06:46:49 <CakeProphet> bam. something you would never ever want to use.
06:48:43 <CakeProphet> sub list { my $x=[1,[2,[3]]]; push @{$x->[1]->[1]}, $x; $x }
06:48:52 <CakeProphet> infinite linked list in Perl, but you would never ever want to use such a thing.
06:52:02 <pikhq> struct list {int car;struct list *cdr;} list = {0, &list};
06:52:18 <zzo38> I was once asked to correct a hard drive testing and wiping program to do a asynchronous SMART test on the drive. It was written in Python. There was some list of functions that returned process objects and then the main loop was checking which are done, checking success/failure, and yield.
06:52:29 <Vorpal> CakeProphet, isn't that just a circular linked list?
06:52:32 <Vorpal> which can be useful
06:52:35 <elliott> zzo38: cool story bro
06:53:08 <pikhq> Vorpal: True. It's a lot harder to pull off many of Haskell's more interesting linked lists.
06:53:12 <zzo38> This new one worked in a different way but I just made the new function "class" instead of "def". I don't know if this is the proper way that proper Python programmers would do it, but it worked.
06:53:16 <pikhq> Such as the entire Fibonacci sequence.
06:53:27 <Vorpal> pikhq, how does that one work
06:53:27 <zzo38> pikhq: O, now you can make it in C as well.
06:53:50 <pikhq> zzo38: It's *doable*, sure, just not easy.
06:53:52 <zzo38> I also would like to learn about it, how to make the Fibonacci sequence with that way.
06:54:23 <pikhq> !haskell let fibs = 0:1:zipWith(+)fibs(tail fibs) in fibs
06:54:36 <pikhq> IIRC
06:54:37 <Vorpal> hm...
06:54:53 <Vorpal> > let fibs = 0:1:zipWith(+)fibs(tail fibs) in fibs
06:54:54 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946...
06:54:58 <Deewiant> > fix ((0:) . scanl (+) 1)
06:55:00 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946...
06:55:08 <Vorpal> :t scanl
06:55:09 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> [a]
06:55:16 <pikhq> Ah, right, lambdabot.
06:55:17 <Vorpal> what does scanl do?
06:55:27 <oerjan> > scanl (*) 1 [1..]
06:55:28 <lambdabot> [1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800...
06:55:39 <Vorpal> uh
06:55:42 <Vorpal> what
06:55:59 <oerjan> you don't recognize the sequence?
06:56:28 <Vorpal> 1*1 = 1, 1*2 = 2, 2*3 = 6? 6*4 = 24
06:56:29 <Vorpal> aha
06:56:38 <Deewiant> > map (foldl (*) 1 . enumFromTo 1) [1..]
06:56:39 <lambdabot> [1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,8...
06:57:23 <oerjan> Deewiant: that's going to be a bit slower
06:57:29 <Vorpal> oerjan, so scanl is something in between foldl and map?
06:57:35 <Deewiant> oerjan: Just demoing
06:57:44 <Deewiant> Vorpal: It's foldl but keeping intermediate results
06:57:44 <Vorpal> :t enumFromTo
06:57:45 <lambdabot> forall a. (Enum a) => a -> a -> [a]
06:57:49 <Deewiant> enumFromTo a b = [a..b]
06:57:50 <Vorpal> Deewiant, righ
06:57:52 <Vorpal> right*
06:57:57 <CakeProphet> zzo38: using a class as a fancy kind of function is done by "real Python programmers", for what it's worth
06:59:06 <Vorpal> "real Python programmers" <-- lol
06:59:41 <CakeProphet> a dashing bunch they are.
06:59:48 <pikhq> Funny, the only "real Python programmer" I know uses Python as an imperative functional language.
06:59:52 <pikhq> (he, ah, frightens me)
07:00:27 <oerjan> > nubBy(((>1).).mod)[2..]
07:00:31 <lambdabot> mueval-core: Time limit exceeded
07:00:42 <oerjan> > nubBy(((>1).).mod)[2..]
07:00:45 <lambdabot> mueval-core: Time limit exceeded
07:00:49 <CakeProphet> yes, if anything can be said about Python, it's gotten the whole "multi-paradigm" thing well done.
07:00:50 <oerjan> erm
07:00:59 <Deewiant> oerjan: You can't nub an infinite list
07:01:05 <oerjan> yes you can
07:01:08 <Vorpal> :t nubBy
07:01:08 <lambdabot> forall a. (a -> a -> Bool) -> [a] -> [a]
07:01:11 <Vorpal> whaaat?
07:01:20 <Deewiant> Oh, right, of course you can
07:01:22 <oerjan> > nubBy(((>1).).mod)[2..]
07:01:23 -!- augur has joined.
07:01:24 <zzo38> CakeProphet: OK. I was just wondering. As it happened, it did work. (The thing was that the program to start the test terminates immediately, and the drive itself performs the test. Later on you need to run it again to get the results (the man page says what the result codes mean). So I just made it "class" that keeps its own timing and then checks the result and tries to act like a process object)
07:01:25 <lambdabot> mueval-core: Time limit exceeded
07:01:31 <Vorpal> what does nubBy do?
07:01:35 <oerjan> :t nubBy(((>1).).mod)[2..]
07:01:35 <Vorpal> :t filter
07:01:36 <lambdabot> forall a. (Integral a) => [a]
07:01:36 <lambdabot> forall a. (a -> Bool) -> [a] -> [a]
07:01:38 <Vorpal> well
07:01:39 <Deewiant> > nub [2..]
07:01:40 <lambdabot> [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,2...
07:01:50 <Deewiant> > nubBy (==) [2..]
07:01:51 <lambdabot> [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,2...
07:01:54 <zzo38> pikhq: What is the programmer you know uses Python as imperative functional language?
07:02:01 <Vorpal> :t nub
07:02:02 <lambdabot> forall a. (Eq a) => [a] -> [a]
07:02:08 <oerjan> maybe i'm misrembering the code
07:02:14 <oerjan> oh duh
07:02:15 <Vorpal> Deewiant, I don't see any difference to just [2..] there
07:02:16 <pikhq> zzo38: Friend of mine who's not generally on #esoteric.
07:02:21 <oerjan> :t nubBy(((>1).).gcd)[2..]
07:02:22 <lambdabot> forall a. (Integral a) => [a]
07:02:23 <Vorpal> > [2..]
07:02:24 <lambdabot> [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,2...
07:02:24 <oerjan> > nubBy(((>1).).gcd)[2..]
07:02:26 <lambdabot> [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101...
07:02:34 <Vorpal> > nub [1..]
07:02:35 <lambdabot> [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...
07:02:43 <Vorpal> yay it's the id function!
07:02:48 <oerjan> heh
07:02:54 <elliott> no
07:02:55 <zzo38> Does he frightens you?
07:02:58 <pikhq> oerjan: I think it's just not liking your list of prime numbers.
07:03:02 <Deewiant> > nubBy (((0==).) . mod) [2..]
07:03:03 <Vorpal> so what does nub do
07:03:04 <lambdabot> [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101...
07:03:09 <pikhq> zzo38: His skill does.
07:03:19 <oerjan> > nub "no nub is not identity"
07:03:20 <lambdabot> "no ubistdey"
07:03:21 <zzo38> pikhq: In what way?
07:03:45 <Vorpal> oerjan, heh... Doesn't quite answer what it does still
07:03:55 <pikhq> zzo38: I'd say he has Gregor-like skillz.
07:04:02 <Vorpal> oerjan, oh unique elements?
07:04:06 <Deewiant> > nub (replicate 100 'x')
07:04:07 <Vorpal> > nub [1,2,1,3]
07:04:07 <lambdabot> "x"
07:04:08 <lambdabot> [1,2,3]
07:04:12 <Vorpal> > nub [1,1,1,1]
07:04:13 <lambdabot> [1]
07:04:23 <pikhq> So, yeah. Just very, very good at programming.
07:04:24 <Vorpal> looks like it discards dupes
07:04:35 <Vorpal> bbl
07:06:17 <CakeProphet> I need to work on being very, very good at programming.
07:06:20 <Patashu> yup that's what nub does
07:07:05 <Patashu> aah, and nubby uses a comparison other than identity
07:07:06 <Patashu> clever
07:07:19 <zzo38> CakeProphet: Yes probably you should. And I should learn too. And also everyone else that is programming.
07:07:55 <CakeProphet> I am taking steps by learning more languages. Perl is the most recent one. Very soon I will be fleshing out my regular expression language in Haskell.
07:08:00 <CakeProphet> which should give me more Haskell experience.
07:08:12 <Patashu> > nubBy (0== . mod .) [2..]
07:08:13 <oerjan> Patashu: it's a little abuse to use it with a non-equivalence relation
07:08:13 <lambdabot> <no location info>: parse error on input `.'
07:08:18 -!- Slereah has joined.
07:08:22 -!- monqy has quit (Quit: hello).
07:08:25 <Patashu> > nubBy (0== . . mod ) [2..]
07:08:25 <lambdabot> <no location info>: parse error on input `.'
07:08:26 <Deewiant> > nubBy (((0==).) . mod) [2..]
07:08:28 <lambdabot> [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101...
07:08:36 <Patashu> yeah, I was trying to reconstruct it by hand
07:08:41 <Patashu> the .s and ()s are kind of hmmmm
07:08:53 <Deewiant> You need to bracket operator sections
07:09:01 <CakeProphet> multiple nearby .'s kind of scare me in Haskell
07:09:06 <CakeProphet> I have a hard time figuring out what is happening.
07:09:07 <Patashu> it slides it into the opening I guess?
07:09:16 <oerjan> > nubBy (\x y -> x `mod` y == 0) [2..]
07:09:17 <lambdabot> [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101...
07:09:23 <Deewiant> ?unpl ((0==).).mod
07:09:23 <lambdabot> (\ e h -> 0 == (mod e h))
07:09:40 <Patashu> > nubBy (0== .( . (mod)) ) [2..]
07:09:41 <lambdabot> <no location info>: parse error on input `.'
07:09:53 <Patashu> opposite doesn't work?
07:09:59 <Deewiant> == and . are operators, you can't have them next to each other
07:10:05 <Patashu> > nubBy ((0==) .( . mod) ) [2..]
07:10:06 <lambdabot> Couldn't match expected type `a -> GHC.Bool.Bool'
07:10:06 <lambdabot> against inferred ...
07:10:12 <Deewiant> ?unpl (0==) . (.mod)
07:10:12 <lambdabot> (\ e -> 0 == \ h -> e (mod h))
07:10:18 <CakeProphet> Patashu: operator sections always need parens. 0== . is always a parse error.
07:10:19 <zzo38> It seems that Haskell can make a lot of functional list processing to make infinite lists with numbers and this stuff, from these examples. There seems many ways to make it.
07:10:19 -!- Slereah_ has quit (Ping timeout: 240 seconds).
07:10:55 <CakeProphet> yes Haskell is very good at infinite lists.
07:11:16 <Patashu> > nubBy (\x y -> x `gcd` y == 0) [2..]
07:11:17 <lambdabot> [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,2...
07:11:23 <Patashu> > nubBy (\x y -> x `gcd` y == 1) [2..]
07:11:24 <lambdabot> [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,...
07:11:25 <CakeProphet> my Haskell bf interpreter uses an actual infinite tape.
07:11:31 <Lymia> Can you poke arbitrary values into memory and execute arbitrary addresses with Python's ctypes?
07:11:32 <pikhq> zzo38: Yeah, it comes pretty naturally with laziness.
07:11:33 <CakeProphet> as I'm sure most do.
07:11:39 <Patashu> > nubBy (\x y -> x `gcd` y == 2) [2..]
07:11:39 <lambdabot> [2,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,5...
07:11:43 <CakeProphet> Lymia: I doubt it.
07:12:10 <oerjan> Patashu: you want > 1 for gcd
07:12:27 -!- elliott has quit (Remote host closed the connection).
07:12:30 <Patashu> yeah
07:12:33 <Patashu> just mucking with it
07:12:38 <pikhq> zzo38: For another example, see Lazy K. Which represents input in a pure functional language using an infinite list.
07:13:06 <pikhq> You just pass it an infinite list, and output the resulting list.
07:13:30 <CakeProphet> Patashu: http://docs.python.org/release/2.5.2/lib/ctypes-pointers.html
07:14:14 <zzo38> Have you any worked with API of LLVM? In which programming languages? I would like to learn some things about it, and how to make something with it.
07:14:19 <oerjan> > iterate((<**>[show.length,take 1]).group.show)1
07:14:20 <lambdabot> No instance for (GHC.Num.Num [GHC.Base.String])
07:14:20 <lambdabot> arising from the literal...
07:14:33 <oerjan> > iterate(read.(<**>[show.length,take 1]).group.show)1
07:14:33 <lambdabot> Couldn't match expected type `GHC.Types.Char'
07:14:34 <lambdabot> against inferred type...
07:14:36 <oerjan> bah
07:14:55 <Patashu> > fix (\x:y:xs -> x+y) ([1]:1)
07:14:56 <lambdabot> <no location info>: parse error on input `:'
07:15:28 -!- Vorpal has quit (Ping timeout: 260 seconds).
07:15:36 <Patashu> > fix (\x:y:xs -> x+y) ([1]++1)
07:15:37 <lambdabot> <no location info>: parse error on input `:'
07:15:40 <Patashu> okay, other : then
07:15:50 * Patashu looks up lambdas
07:16:10 <Deewiant> > fix (\(x:y:xs) -> x+y) [1,1]
07:16:11 <lambdabot> Occurs check: cannot construct the infinite type: t = [t]
07:16:19 <CakeProphet> Patashu: need parens again
07:16:25 <CakeProphet> (x:y:xs)
07:16:27 <Patashu> aaah
07:16:34 <Patashu> ok I get why
07:16:48 <CakeProphet> > filter even [1..]
07:16:49 <lambdabot> [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,...
07:16:49 <Patashu> > fix (\(x:y:xs) -> x+y) ([1..])
07:16:50 <lambdabot> Occurs check: cannot construct the infinite type: t = [t]
07:16:57 <Patashu> hmm
07:17:05 <Deewiant> ?ty fix
07:17:06 <lambdabot> forall a. (a -> a) -> a
07:17:09 <Deewiant> ?ty \(x:y:xs) -> x+y
07:17:10 <lambdabot> forall t. (Num t) => [t] -> t
07:17:26 <CakeProphet> > fix f ::Expr
07:17:26 <lambdabot> f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (...
07:17:31 <CakeProphet> Patashu: ^
07:17:40 <pikhq> *Aaaah*, fix.
07:17:46 <Patashu> okay
07:18:03 <pikhq> Everyone's favorite combinator.
07:18:49 <CakeProphet> > fix (1:)
07:18:49 <lambdabot> [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,...
07:19:27 <CakeProphet> > fix (a+) ::Expr
07:19:28 <lambdabot> a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (...
07:19:39 <Patashu> (\(x:y:xs) -> x+y:x:y:xs) maybe
07:19:48 <Patashu> > fix (\(x:y:xs) -> x+y:x:y:xs) ([1..])
07:19:49 <lambdabot> Couldn't match expected type `[t1] -> t'
07:19:49 <lambdabot> against inferred type `[t2]'
07:20:08 <Patashu> > fix (\(x:y:xs) -> x+y:x:y:xs) ([1]:1)
07:20:09 <lambdabot> Couldn't match expected type `[[t1]] -> t'
07:20:09 <lambdabot> against inferred type `[...
07:20:16 <Patashu> lol
07:20:22 <Lymia> Haskell really likes infinite lists...
07:20:30 <Patashu> yup
07:20:34 <Lymia> Haskell really likes infinite lists...*
07:20:41 <CakeProphet> No, just Haskell programmers...
07:20:46 <Lymia> I should go implement one in Python
07:20:49 -!- yiyus has joined.
07:21:21 <Deewiant> Patashu: fix takes one argument, not two
07:21:23 <oerjan> > map (sum . take 2) . iterate (drop 2) $ [1..]
07:21:25 <lambdabot> [3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63,67,71,75,79,83,87,91,95,99,1...
07:21:35 <Patashu> so how do I give it a starting condition?
07:21:39 <CakeProphet> you don't.
07:21:42 <Deewiant> There is no starting condition
07:21:49 <Deewiant> > fix f :: Expr -- again
07:21:50 <lambdabot> f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (...
07:21:57 <CakeProphet> it recursively calls f
07:22:16 <CakeProphet> on, recursive calls of f
07:22:24 <Patashu> > [1]:1
07:22:24 <lambdabot> No instance for (GHC.Num.Num [[t]])
07:22:25 <lambdabot> arising from a use of `e_111' at <in...
07:22:29 <CakeProphet> wrong way
07:22:32 <Patashu> oh
07:22:34 <Patashu> > 1:[1]
07:22:35 <lambdabot> [1,1]
07:22:53 <Lymia> Haskell causes my brain to hurt.
07:22:56 <CakeProphet> > fix
07:22:57 <lambdabot> Overlapping instances for GHC.Show.Show ((a -> a) -> a)
07:22:57 <lambdabot> arising from a u...
07:22:58 <CakeProphet> er
07:22:58 <Lymia> I should use it more until it stops causing that.
07:23:05 <CakeProphet> > fix ("sup dawg" ++)
07:23:06 <lambdabot> "sup dawgsup dawgsup dawgsup dawgsup dawgsup dawgsup dawgsup dawgsup dawgsu...
07:23:29 <CakeProphet> with operator sections you can literally just imagine it as chaining together that bit of text infinitely.
07:23:32 <Deewiant> > fix (\ ~(x:y:xs) -> 1:1:x+y:x:y:xs)
07:23:33 <lambdabot> [1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,1,2,1,...
07:23:39 <Patashu> ~ ?
07:23:42 <pikhq> Lymia: It's kinda like lifting weights. It's going to make your brain sore, but that's just your brain getting better.
07:23:51 <Deewiant> Patashu: Lazy match, basically
07:23:58 <Lymia> > fix ("LOOK BEHIND YOU " ++)
07:24:00 <lambdabot> "LOOK BEHIND YOU LOOK BEHIND YOU LOOK BEHIND YOU LOOK BEHIND YOU LOOK BEHIN...
07:24:11 <Deewiant> > (\ ~(x:xs) -> 0) []
07:24:12 <lambdabot> 0
07:24:15 <Deewiant> > (\(x:xs) -> 0) []
07:24:16 <lambdabot> *Exception: <interactive>:3:1-12: Non-exhaustive patterns in lambda
07:24:25 <CakeProphet> > fix (s ++) :: Expr
07:24:26 <lambdabot> No instance for (Data.Monoid.Monoid SimpleReflect.Expr)
07:24:26 <lambdabot> arising from a u...
07:24:26 <Deewiant> > (\ ~(x:xs) -> x) []
07:24:27 <lambdabot> *Exception: <interactive>:3:1-14: Irrefutable pattern failed for pattern (x...
07:24:28 <CakeProphet> ....awww
07:25:02 <oerjan> > fix ([s] ++)
07:25:03 <lambdabot> [s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,...
07:25:20 <CakeProphet> Patashu: ~ is a lazy pattern. Meaning the pattern is not checked if it's not needing.
07:25:24 <CakeProphet> otherwise pattern matching is strict.
07:25:53 <pikhq> Patashu: Unlike a usual pattern match, it assumes the pattern match went through. So, it's perfectly lazy. However, if the pattern doesn't actually hold and you evaluate it, then you get _|_.
07:25:57 <CakeProphet> Patashu: in Deewiant's example the one without a lazy pattern errored because there was no pattern for [], even though the argument is never used.
07:26:08 <Patashu> what's like fix but lets you use an initial state/
07:26:16 <CakeProphet> iterate I think.
07:26:18 <CakeProphet> :t iterate
07:26:19 <lambdabot> forall a. (a -> a) -> a -> [a]
07:26:28 <Deewiant> > iterate (+1) 1
07:26:29 <lambdabot> [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...
07:26:33 <Patashu> > iterate (\(x:y:xs) -> x+y:x:y:xs) (1:1)
07:26:34 <lambdabot> No instance for (GHC.Num.Num [t])
07:26:34 <lambdabot> arising from a use of `e_111' at <inte...
07:26:40 <Lymia> Python lets you subclass array, right?
07:26:44 <CakeProphet> Patashu: right-hand argument of : is a list
07:26:46 <Patashu> > iterate (\(x:y:xs) -> x+y:x:y:xs) (1:[1])
07:26:47 <lambdabot> [[1,1],[2,1,1],[3,2,1,1],[5,3,2,1,1],[8,5,3,2,1,1],[13,8,5,3,2,1,1],[21,13,...
07:26:47 <Patashu> right
07:26:48 <Lymia> !python print "test"
07:26:50 <EgoBot> test
07:26:50 <Patashu> woah lol
07:26:52 <Patashu> that sort of worked
07:26:54 <Patashu> XD
07:26:55 <CakeProphet> Lymia: list? yes.
07:27:08 <Deewiant> > map head . iterate (\(x:y:xs) -> x+y:x:y:xs) $ (1:[1])
07:27:10 <lambdabot> [1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,177...
07:27:12 <Patashu> > iterate (\(xs:x:y) -> xs:x:y:x+y) (1:[1])
07:27:12 <lambdabot> Occurs check: cannot construct the infinite type: t = [t]
07:27:27 <Patashu> > map head . iterate (\(x:y:xs) -> x+y:x:y:xs) (1:[1])
07:27:28 <lambdabot> No instance for (GHC.Num.Num [a])
07:27:28 <lambdabot> arising from a use of `e_111' at <inte...
07:27:30 <Patashu> oh
07:27:32 -!- zzo38 has quit (Quit: #esoteric).
07:27:35 <Patashu> > map head ( iterate (\(x:y:xs) -> x+y:x:y:xs) (1:[1]) )
07:27:36 <lambdabot> [1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,177...
07:27:37 <Patashu> or
07:27:43 <Patashu> > map head . iterate (\(x:y:xs) -> x+y:x:y:xs) $ (1:[1])
07:27:45 <lambdabot> [1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,177...
07:27:49 <CakeProphet> Lymia: usually it makes things difficult though. you're better off using an internal list as an aggregate (if you will allow me to use Java speak...) and then simply define the methods you need yourself.
07:28:19 <CakeProphet> Lymia: but either way is fine.
07:29:14 <Patashu> > map head . iterate (\(x:y:xs) -> x*y:x:y:xs) $ 2:[1]
07:29:16 <lambdabot> [2,2,4,8,32,256,8192,2097152,17179869184,36028797018963968,6189700196426901...
07:29:25 <Patashu> multiplication fibonacci!
07:30:21 <Patashu> fold zip map head . iterate (\(x:y:xs) -> x+y:x:y:xs) $ (1:[1])
07:30:23 <oerjan> > intercalate ", " $ iterate (sequence[show.length, take 1]<=<group) "1"
07:30:24 <lambdabot> Couldn't match expected type `GHC.Types.Char'
07:30:24 <lambdabot> against inferred type...
07:30:24 <Lymia> !python exec """class InfList(list):\n\tdef __init__(self,fun):\n\t\tself.fun=fun\n\t\tself.buffer={}\n\tdef __getitem__(self, index):\n\t\tif index in self.buffer:\n\t\t\treturn buffer[index]\n\t\ttemp=self.fun(index)\n\t\tself.buffer[index]=temp\n\t\treturn temp\nprint InfList(lambda x:x)"""
07:30:24 <EgoBot> ​[]
07:30:39 <Patashu> oops
07:30:41 <CakeProphet> Patashu: most likely need more parens.
07:30:42 <oerjan> sheesh
07:30:42 <Patashu> > fold zip map head . iterate (\(x:y:xs) -> x+y:x:y:xs) $ (1:[1])
07:30:42 <lambdabot> Not in scope: `fold'
07:30:48 <Patashu> > foldl zip map head . iterate (\(x:y:xs) -> x+y:x:y:xs) $ (1:[1])
07:30:49 <lambdabot> Occurs check: cannot construct the infinite type: a = (a, b)
07:30:53 <Patashu> hah
07:31:07 <Patashu> > foldl . zip . map head . iterate (\(x:y:xs) -> x+y:x:y:xs) $ (1:[1])
07:31:08 <lambdabot> Couldn't match expected type `b -> [b1]'
07:31:08 <lambdabot> against inferred type `[(a...
07:31:13 <CakeProphet> Patashu: Haskll can't magically discern when you're supplying arguments to a function and when you're passing functions to other functions.
07:31:22 <Patashu> I can't either
07:31:23 <CakeProphet> without parens.
07:31:24 <Patashu> @_@
07:31:37 <CakeProphet> Patashu: if you would like a language that can do that, see Perl. :P
07:31:42 <Patashu> > foldl zip . map head . iterate (\(x:y:xs) -> x+y:x:y:xs) $ (1:[1])
07:31:43 <lambdabot> Occurs check: cannot construct the infinite type: a = (a, b)
07:31:45 <CakeProphet> granted Perl has the advantage of having proper first-class functions.
07:31:49 <CakeProphet> *not having
07:31:52 <Deewiant> ?ty foldl zip
07:31:53 <lambdabot> Occurs check: cannot construct the infinite type: a = (a, b)
07:31:53 <lambdabot> Expected type: [a]
07:31:53 <lambdabot> Inferred type: [(a, b)]
07:32:02 <Patashu> okay, so that's no good then
07:32:15 <CakeProphet> :t zip
07:32:16 <lambdabot> forall a b. [a] -> [b] -> [(a, b)]
07:32:19 <CakeProphet> :t foldl
07:32:20 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
07:32:26 <CakeProphet> nope.
07:32:55 <CakeProphet> unless [a] = [(a,b)]
07:32:57 <CakeProphet> but it doesn't...
07:33:49 <Patashu> maybe some kind of monadic version of zip...
07:33:54 <CakeProphet> what on earth are you trying to do.
07:34:01 <Patashu> not sure
07:34:09 <CakeProphet> oh, well that might be your problem.
07:34:16 <Patashu> wait I remember now
07:34:29 <Patashu> for a list [a,b,c,d,e] I want to make [(a,b),(b,c),(c,d)] etc
07:34:48 <Deewiant> > (zip`ap`tail) [a,b,c,d,e]
07:34:48 <CakeProphet> hmmm
07:34:49 <lambdabot> [(a,b),(b,c),(c,d),(d,e)]
07:35:03 <CakeProphet> there you go. instant black magic from Haskell wizards.
07:35:07 <Patashu> wtf
07:35:11 <Patashu> jesus christ what is that
07:35:12 <Patashu> hahaha
07:35:19 <CakeProphet> :t ap
07:35:20 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
07:35:41 <CakeProphet> I'm guessing it relies on the monad instances for functions.
07:35:42 <oerjan> that, Patashu, is the -> Monad.
07:35:48 <CakeProphet> which I still don't really know about.
07:36:01 <CakeProphet> *instance
07:36:02 <oerjan> :t ap.($)
07:36:03 <lambdabot> forall a b a1. (a1 -> a -> b) -> (a1 -> a) -> a1 -> b
07:36:15 <Patashu> :t zip`ap`tail
07:36:16 <lambdabot> forall b. [b] -> [(b, b)]
07:36:22 <Patashu> huh
07:36:26 <Deewiant> ?pl \x -> f x (g x)
07:36:27 <lambdabot> ap f g
07:36:30 <Patashu> > (zip`ap`head) [a,b,c,d,e]
07:36:30 <lambdabot> Couldn't match expected type `[b]'
07:36:31 <lambdabot> against inferred type `SimpleRef...
07:36:36 <Patashu> huh
07:36:45 <Deewiant> > (\x -> zip x (tail x)) [a,b,c,d,e]
07:36:46 <lambdabot> [(a,b),(b,c),(c,d),(d,e)]
07:36:49 <CakeProphet> Patashu: yes if you plug in a function with a completely different type you will get a type error. :D
07:36:56 <pikhq> Patashu: Here's a hint:
07:37:00 <Patashu> they have different types?
07:37:01 <Patashu> :t head
07:37:02 <Patashu> :t tail
07:37:02 <lambdabot> forall a. [a] -> a
07:37:03 <pikhq> :t (zip`ap`)
07:37:03 <lambdabot> forall a. [a] -> [a]
07:37:03 <lambdabot> forall a b. ([a] -> [b]) -> [a] -> [(a, b)]
07:37:06 <Patashu> wow, they do
07:37:07 <Patashu> oh wait
07:37:09 <Patashu> I want uhhh
07:37:12 <Patashu> :t init
07:37:12 <lambdabot> forall a. [a] -> [a]
07:37:15 <Patashu> no not that one
07:37:18 <Patashu> oh wait yes that one
07:37:19 <Patashu> lol
07:37:25 <Patashu> > (zip`ap`init) [a,b,c,d,e]
07:37:26 <lambdabot> [(a,a),(b,b),(c,c),(d,d)]
07:37:50 <CakeProphet> Deewiant: aah I see.
07:38:19 <oerjan> > join(zip.tail) [a,b,c,d,e]
07:38:21 <lambdabot> [(b,a),(c,b),(d,c),(e,d)]
07:38:29 <Patashu> :t join
07:38:30 <lambdabot> forall (m :: * -> *) a. (Monad m) => m (m a) -> m a
07:38:51 <CakeProphet> > join [[1,2,3],[4,5,6]]
07:38:52 <lambdabot> [1,2,3,4,5,6]
07:39:06 <CakeProphet> monadic FLATTEN.
07:39:09 <CakeProphet> bam.
07:39:10 <oerjan> CakeProphet: different Monad
07:39:35 <CakeProphet> > join (Just (Just 5))
07:39:36 <lambdabot> Just 5
07:39:45 <Lymia> > \x -> x
07:39:46 <lambdabot> Overlapping instances for GHC.Show.Show (t -> t)
07:39:46 <lambdabot> arising from a use of `...
07:39:47 <CakeProphet> > join (Just Nothing)
07:39:48 <lambdabot> Nothing
07:40:03 <Lymia> > (\x -> x) (1)
07:40:03 <lambdabot> 1
07:40:04 <CakeProphet> oerjan: better? :D
07:40:19 <Lymia> > (\ -> x) (1)
07:40:20 <lambdabot> <no location info>: parse error on input `->'
07:40:24 <Lymia> > (\ふぉお -> ふぉお) (1)
07:40:25 <lambdabot> 1
07:40:26 <oerjan> CakeProphet: still not the same monad as in join(zip.tail) :)
07:40:41 <CakeProphet> oerjan: oh, right... I was just showing what join does.
07:40:47 <CakeProphet> I /still/ don't know how function works as a monad.
07:40:51 <Patashu> (zip`ap`init) map head . iterate (\(x:y:xs) -> x+y:x:y:xs) $ (1:[1])
07:40:58 <Patashu> oops
07:40:59 <Patashu> > (zip`ap`init) map head . iterate (\(x:y:xs) -> x+y:x:y:xs) $ (1:[1])
07:41:00 <lambdabot> Couldn't match expected type `t -> a -> b'
07:41:01 <lambdabot> against inferred type `[...
07:41:09 <Patashu> > (zip`ap`init) ( map head . iterate (\(x:y:xs) -> x+y:x:y:xs) $ (1:[1]) )
07:41:11 <lambdabot> [(1,1),(2,2),(3,3),(5,5),(8,8),(13,13),(21,21),(34,34),(55,55),(89,89),(144...
07:41:17 <oerjan> CakeProphet: it really just gives everything an extra argument, it's isomorphic to Reader
07:41:18 <Patashu> > (zip`ap`head) ( map head . iterate (\(x:y:xs) -> x+y:x:y:xs) $ (1:[1]) )
07:41:19 <lambdabot> No instance for (GHC.Num.Num [b])
07:41:19 <lambdabot> arising from a use of `e_111' at <inte...
07:41:29 <Patashu> > (zip`ap`tail) ( map head . iterate (\(x:y:xs) -> x+y:x:y:xs) $ (1:[1]) )
07:41:30 <lambdabot> [(1,2),(2,3),(3,5),(5,8),(8,13),(13,21),(21,34),(34,55),(55,89),(89,144),(1...
07:41:44 <CakeProphet> oerjan: it gives everything an extra argument that has no effect?
07:42:45 <CakeProphet> :t (tail) >>=
07:42:46 <lambdabot> parse error (possibly incorrect indentation)
07:42:51 <CakeProphet> :t ((tail) >>=)
07:42:51 <oerjan> @src >>= ->
07:42:52 <lambdabot> Source not found.
07:42:52 <lambdabot> forall a b. ([a] -> [a] -> b) -> [a] -> b
07:42:58 <oerjan> @src -> >>=
07:42:58 <lambdabot> Source not found.
07:43:03 <oerjan> @src (->) >>=
07:43:03 <lambdabot> Source not found. Take a stress pill and think things over.
07:43:08 <oerjan> @src (->) (>>=)
07:43:08 <lambdabot> f >>= k = \ r -> k (f r) r
07:43:32 <CakeProphet> :t ((tail) >>=) (++) [1..]
07:43:33 <oerjan> bloody @src with its impossible to remember fickle syntax _and_ missing functions
07:43:33 <lambdabot> forall a. (Num a, Enum a) => [a]
07:43:40 <CakeProphet> > ((tail) >>=) (++) [1..]
07:43:42 <lambdabot> [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,2...
07:44:19 <CakeProphet> oerjan: ah, that's... difficult to think about. ::
07:44:50 <CakeProphet> but I see how the zip`ap`tail works
07:45:30 <Patashu> :t ap
07:45:31 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
07:45:43 <CakeProphet> :t (+1) >>=
07:45:44 <lambdabot> parse error (possibly incorrect indentation)
07:45:48 <CakeProphet> :t ((+1) >>=)
07:45:49 <lambdabot> forall a b. (Num a) => (a -> a -> b) -> a -> b
07:45:55 <Patashu> :t ap zip
07:45:56 <lambdabot> forall a b. ([a] -> [b]) -> [a] -> [(a, b)]
07:45:57 <oerjan> CakeProphet: if you understand how ski abstract elimination works, you can see that many of the monadic functions become versions of that for ->
07:46:05 <Patashu> :t zip
07:46:06 <lambdabot> forall a b. [a] -> [b] -> [(a, b)]
07:46:10 <oerjan> e.g. ap is S, return is K
07:46:22 <CakeProphet> :t (+1) >>= (-) a :: Expr
07:46:23 <lambdabot> Couldn't match expected type `Expr -> b'
07:46:23 <lambdabot> against inferred type `Expr'
07:46:23 <lambdabot> In the second argument of `(>>=)', namely `(-) a'
07:46:27 <Patashu> hmmmmmm
07:46:27 <CakeProphet> > (+1) >>= (-) a :: Expr
07:46:28 <lambdabot> Couldn't match expected type `SimpleReflect.Expr -> b'
07:46:28 <lambdabot> against infe...
07:46:34 <Patashu> :t ap zip tail
07:46:35 <lambdabot> forall b. [b] -> [(b, b)]
07:46:46 <pikhq> >>= is a more complex combinator, but still just a combinator.
07:46:46 <CakeProphet> > (+b) >>= (-) a :: Expr
07:46:47 <lambdabot> Couldn't match expected type `SimpleReflect.Expr -> b'
07:46:47 <lambdabot> against infe...
07:46:50 <Patashu> :t (ap). (. tail)
07:46:51 <lambdabot> forall a b a1. ([a1] -> a -> b) -> ([a1] -> a) -> [a1] -> b
07:47:00 <Patashu> :t ((ap). (. tail)) zip
07:47:00 <lambdabot> forall a b. ([a] -> [b]) -> [a] -> [(a, b)]
07:47:08 <Patashu> woah, that makes something different
07:47:32 <oerjan> Patashu: zip`ap`tail is just a fancy syntactic sugar for writing ap zip tail
07:47:44 <Patashu> yes
07:47:48 <Deewiant> ?quote aztec
07:47:48 <lambdabot> quicksilver says: zip`ap`tail - the Aztec god of consecutive numbers
07:48:41 <CakeProphet> > (zipWith (+))`ap`tail [1..]
07:48:42 <lambdabot> Couldn't match expected type `[a] -> [a]'
07:48:42 <lambdabot> against inferred type `[t]'
07:48:52 <Patashu> ap flip( tail zip )
07:48:59 <Patashu> oops
07:49:01 <Patashu> :t ap flip( tail zip )
07:49:02 <lambdabot> Couldn't match expected type `[a]'
07:49:02 <lambdabot> against inferred type `[a1] -> [b] -> [(a1, b)]'
07:49:02 <lambdabot> In the first argument of `tail', namely `zip'
07:49:09 <CakeProphet> :t (zipWith (+))`ap`tail
07:49:10 <lambdabot> forall a. (Num a) => [a] -> [a]
07:49:15 <Patashu> :t flip
07:49:16 <lambdabot> forall (f :: * -> *) a b. (Functor f) => f (a -> b) -> a -> f b
07:49:36 <CakeProphet> > (zipWith (+))`ap`tail $ [1..]
07:49:37 <lambdabot> [3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,...
07:49:40 <Patashu> > flip 3 / 2
07:49:40 -!- Lymia has quit (Excess Flood).
07:49:41 <lambdabot> Overlapping instances for GHC.Show.Show (a -> f b)
07:49:41 <lambdabot> arising from a use of...
07:49:46 <Patashu> > flip 3 - 2
07:49:46 <lambdabot> Overlapping instances for GHC.Show.Show (a -> f b)
07:49:47 <lambdabot> arising from a use of...
07:49:56 <Patashu> > flip minus (3 2)
07:49:56 <CakeProphet> > (zipWith (+))`ap`tail $ [0..]
07:49:57 <lambdabot> Not in scope: `minus'
07:49:57 <lambdabot> [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,5...
07:50:02 <Patashu> > flip subtract (3 2)
07:50:03 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
07:50:03 <lambdabot> arising from a use of `...
07:50:09 <Patashu> > 3 - 2
07:50:10 <lambdabot> 1
07:50:15 <Deewiant> > flip subtract 3 2
07:50:16 <lambdabot> 1
07:50:18 -!- Lymia has joined.
07:50:42 <Patashu> flip subtract 2 3
07:50:47 <Patashu> > flip subtract 2 3
07:50:49 <lambdabot> -1
07:50:50 <CakeProphet> the addition of two consecutive integers is always odd. :)
07:50:53 <Patashu> how come it isn't flipping them
07:51:04 <Deewiant> > subtract 2 3
07:51:05 <lambdabot> 1
07:51:11 <Patashu> woah
07:51:14 <Deewiant> > (-) 2 3
07:51:15 <lambdabot> -1
07:51:18 <CakeProphet> Patashu: "subtract 2 from 3"
07:51:21 <Patashu> > flip (-) 2 3
07:51:22 <lambdabot> 1
07:51:26 <Patashu> > flip (/) 2 3
07:51:27 <lambdabot> 1.5
07:51:33 <Patashu> > flip div 2 3
07:51:34 <lambdabot> 1
07:51:42 <Patashu> div does what?
07:51:46 <Patashu> maybe it's integer division
07:51:48 <Patashu> > flip div 2 4
07:51:49 <lambdabot> 2
07:51:52 <Patashu> yeah ok
07:52:03 <Patashu> > ap flip tail zip
07:52:04 <lambdabot> Occurs check: cannot construct the infinite type: a = [a -> b]
07:52:13 <CakeProphet> > (zipWith (-))`ap`tail $ [0..]
07:52:14 <lambdabot> [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1...
07:52:16 <Patashu> > ap flip tail zip [1..]
07:52:17 <lambdabot> Couldn't match expected type `t -> a -> b'
07:52:17 <lambdabot> against inferred type `[...
07:52:21 <Patashu> > ap tail zip [1..]
07:52:22 <lambdabot> Couldn't match expected type `a -> b' against inferred type `[a1]'
07:52:26 <Patashu> > ap zip tail [1..]
07:52:27 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10),(10,11),(11,12),(12...
07:52:31 <CakeProphet> the subtraction of two consecutive integers is always -1. :)
07:52:38 <CakeProphet> or 1
07:52:40 <Patashu> > ap (flip tail zip) $ [1..]
07:52:41 <lambdabot> Couldn't match expected type `a1 -> a -> b'
07:52:41 <lambdabot> against inferred type `...
07:52:49 <Patashu> is there a flip for functions?
07:52:55 <CakeProphet> yes, it's called flip.
07:53:10 <CakeProphet> ...
07:53:29 <Patashu> > ap zip tail [1..]
07:53:29 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10),(10,11),(11,12),(12...
07:53:53 <Patashu> > ap flip (tail [1..]) zip
07:53:53 <lambdabot> Couldn't match expected type `f (a -> b) -> a'
07:53:54 <lambdabot> against inferred typ...
07:53:55 <CakeProphet> :t flip tail
07:53:55 <lambdabot> Couldn't match expected type `a -> b' against inferred type `[a1]'
07:53:56 <lambdabot> Probable cause: `tail' is applied to too many arguments
07:53:56 <oerjan> > flip ap tail zip [1..]
07:53:56 <lambdabot> In the first argument of `flip', namely `tail'
07:53:57 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10),(10,11),(11,12),(12...
07:54:04 <CakeProphet> Patashu: yeah you can't flip a one-argument function.
07:54:07 <CakeProphet> doesn't make sense.
07:54:29 <Patashu> so, wait
07:54:32 <Patashu> > ap zip tail [1..]
07:54:33 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10),(10,11),(11,12),(12...
07:54:38 <Patashu> > flip ap tail zip [1..]
07:54:41 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10),(10,11),(11,12),(12...
07:54:42 <Patashu> right?
07:54:49 <Patashu> why do I put the flip over THERE when the stuff it's flipping is over THERE
07:54:58 <CakeProphet> ...because flip flips the function arguments...
07:55:03 <Patashu> yep
07:55:04 <CakeProphet> you need to give it a function to flip.
07:55:08 <Patashu> ah
07:55:11 <CakeProphet> it's not magic
07:55:23 <CakeProphet> it can't know what to flip otherwise.
07:55:29 <CakeProphet> @src flip
07:55:29 <lambdabot> flip f x y = f y x
07:55:37 <Patashu> @src ap
07:55:37 <lambdabot> ap = liftM2 id
07:55:42 <Patashu> @src liftM2
07:55:43 <lambdabot> liftM2 f m1 m2 = do { x1 <- m1; x2 <- m2; return (f x1 x2) }
07:55:59 <CakeProphet> Patashu: that's a rather bad definition for ap, as far as understanding it.
07:56:00 <Deewiant> > ((ap `flip` tail) zip) [1..] -- I sometimes like this style since then the `flip` is where the next argument goes
07:56:01 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10),(10,11),(11,12),(12...
07:56:03 * oerjan watches Patashu digging himself deeper
07:56:45 <Patashu> so liftM2 lifts two values out of their context and applies them to a function
07:56:50 <Patashu> ap is the same but with no function
07:57:03 <CakeProphet> right, so the left-hand argument has to be a function in that case.
07:57:28 <Patashu> > tail [1..]
07:57:29 <lambdabot> [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,2...
07:57:37 <CakeProphet> it applies a function wrapped in a monad to the other monad.
07:57:37 <Patashu> right
07:57:48 <Patashu> @src liftM
07:57:48 <lambdabot> liftM f m1 = do { x1 <- m1; return (f x1) }
07:57:52 <Patashu> liftM tail [1..]
07:57:59 <Patashu> > liftM tail [1..]
07:57:59 <lambdabot> No instances for (GHC.Num.Num [a], GHC.Enum.Enum [a])
07:58:00 <lambdabot> arising from a use...
07:58:01 <CakeProphet> uh, no.
07:58:03 <Patashu> nope!!!
07:58:22 <CakeProphet> > liftM (+1) [1..]
07:58:23 <lambdabot> [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,2...
07:58:44 <Patashu> :t (+1)
07:58:45 <lambdabot> forall a. (Num a) => a -> a
07:58:46 <Patashu> :t tail
07:58:47 <lambdabot> forall a. [a] -> [a]
07:58:51 <CakeProphet> > liftM show [1..]
07:58:51 <lambdabot> ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17...
07:59:07 <CakeProphet> :t liftM
07:59:08 <lambdabot> forall a1 r (m :: * -> *). (Monad m) => (a1 -> r) -> m a1 -> m r
07:59:17 <CakeProphet> notice the type of the argument function.
07:59:24 <CakeProphet> and the monad types.
07:59:39 <CakeProphet> m a1 = [a1] in the case of the list monad.
07:59:54 <oerjan> liftM = map for lists
07:59:56 <Patashu> what about the function?
08:00:07 <Patashu> map tail [1..]
08:00:09 <Patashu> > map tail [1..]
08:00:09 <lambdabot> No instances for (GHC.Num.Num [a], GHC.Enum.Enum [a])
08:00:10 <lambdabot> arising from a use...
08:00:16 <Patashu> > map head [1..]
08:00:16 <CakeProphet> it operates on the "inner type", not the monad itself.
08:00:17 <lambdabot> No instances for (GHC.Num.Num [a], GHC.Enum.Enum [a])
08:00:17 <lambdabot> arising from a use...
08:00:28 <CakeProphet> Patashu: you're asking it to apply head to each number in that list
08:00:30 <CakeProphet> doesn't make sense.
08:00:31 <Patashu> oh yeah
08:00:31 <Patashu> ok
08:00:47 <Gregor> COMPUTER
08:00:49 <Patashu> @src zip
08:00:49 <lambdabot> zip (a:as) (b:bs) = (a,b) : zip as bs
08:00:49 <lambdabot> zip _ _ = []
08:00:50 <Gregor> COM-PU-TER
08:00:52 <Gregor> COMPUTER SCIENCE
08:00:53 <CakeProphet> you can't give numbers head.
08:01:04 <CakeProphet> (ZING!)
08:01:19 <Gregor> CakeProphet: CHURCH DISAGREES!
08:01:26 <Gregor> (ZONG!)
08:01:46 <oerjan> yeah the church is all about giving head to cardinals
08:02:02 <Deewiant> Patashu: liftM = (.) for functions
08:02:05 <CakeProphet> ..oh god
08:02:11 <CakeProphet> what have I done.
08:02:20 <Gregor> Anybody who didn't get my joke needs to leave :P
08:02:35 <oerjan> Gregor: wait what
08:03:01 <Gregor> oerjan: LAMBDA CALCULUS
08:03:19 <oerjan> ...what does that have to do with head
08:03:32 <CakeProphet> I know I'm pretty confused as well.
08:03:46 <Gregor> Church, numbers, lambda calculus, RECURSIVE DATA/CODE STRUCTURES
08:03:59 <Gregor> It was a Church numerals joke and you guys SUCK
08:04:36 <CakeProphet> > map head $ tails [1..]
08:04:37 <lambdabot> [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...
08:04:41 <CakeProphet> :3
08:05:26 <CakeProphet> the elusive "heads" function.
08:05:43 <Patashu> lol
08:05:47 <Patashu> > [1..]
08:05:48 <lambdabot> [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...
08:06:13 <CakeProphet> Patashu: what? you found it too!
08:06:20 <CakeProphet> argh!
08:06:27 <Deewiant> No, that's different
08:06:32 <Deewiant> > map head $ tails []
08:06:33 <lambdabot> [*Exception: Prelude.head: empty list
08:06:36 <Patashu> > tails [1..]
08:06:36 <lambdabot> [[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,2...
08:06:39 <Patashu> LOL
08:06:41 <Patashu> go fig
08:06:59 <CakeProphet> > map tail [1..]
08:06:59 <lambdabot> No instances for (GHC.Num.Num [a], GHC.Enum.Enum [a])
08:07:00 <lambdabot> arising from a use...
08:07:06 <Patashu> vegeta, what does the scouter say about the cardinality of that set?
08:07:07 <CakeProphet> oh right lol
08:07:08 <Patashu> PROBABLY STILL COUNTABLE
08:07:26 * oerjan confirms countability
08:07:30 <CakeProphet> WHAT!? PROBABLY STILL COUNTABLE!!!!?
08:07:38 <CakeProphet> +ITS
08:07:47 <Patashu> nope, no +ITS
08:07:49 <Patashu> it's WHAT NINE THOUSAND
08:07:57 <Patashu> also
08:08:00 <Patashu> what's the opposite of init
08:08:06 <Deewiant> last?
08:08:11 <Patashu> > last [1..]
08:08:14 <Deewiant> ...
08:08:14 <lambdabot> mueval-core: Time limit exceeded
08:08:16 <Patashu> lol
08:08:18 <Patashu> :D
08:08:31 <Patashu> :t lasts
08:08:32 <lambdabot> Not in scope: `lasts'
08:08:34 <Patashu> darn
08:08:36 <Patashu> :t inits
08:08:37 <lambdabot> forall a. [a] -> [[a]]
08:08:39 <CakeProphet> I think you want "reverse"
08:08:43 <Patashu> haha
08:08:48 <Patashu> > sort [1..]
08:09:06 <oerjan> > inits [1..5]
08:09:10 <oerjan> oops
08:09:26 <lambdabot> thread killed
08:09:27 <Patashu> hey, it didn't time out
08:09:27 <CakeProphet> Patashu: might want to try some finite lists.
08:09:30 <Patashu> nice
08:09:35 <Patashu> I broke lambdabot
08:09:41 <oerjan> Patashu: that's a different timeout
08:09:43 <oerjan> > inits [1..5]
08:09:47 <lambdabot> thread killed
08:09:51 <lambdabot> mueval-core: Time limit exceeded
08:09:53 <Patashu> lol
08:09:55 <Patashu> > 1
08:09:56 <lambdabot> 1
08:10:02 <oerjan> > inits [1..5]
08:10:03 <lambdabot> [[],[1],[1,2],[1,2,3],[1,2,3,4],[1,2,3,4,5]]
08:10:26 <CakeProphet> > iterate succ 1 --wooo, so many ways to write [1..]
08:10:27 <lambdabot> [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...
08:10:46 <Patashu> > fix (1++)
08:10:48 <lambdabot> Ambiguous type variable `a' in the constraints:
08:10:48 <lambdabot> `Data.Monoid.Monoid a'
08:10:48 <lambdabot> ...
08:10:50 <Patashu> > fix (1:)
08:10:52 <lambdabot> [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,...
08:10:53 <CakeProphet> Patashu: whatis wrong with you.
08:11:24 <oerjan> > scanl1 (+) $ fix (1:)
08:11:25 <lambdabot> [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...
08:11:48 <CakeProphet> > map last $ inits [1..]
08:11:49 <lambdabot> [*Exception: Prelude.last: empty list
08:11:52 <Patashu> ooo, scan
08:11:57 <Patashu> I think that's something I wanted a while ago
08:12:02 <Patashu> > scanl1 (,) $ fix (1:)
08:12:03 <lambdabot> Occurs check: cannot construct the infinite type: a = (a, a)
08:12:08 <Patashu> noo!
08:12:31 <CakeProphet> scan works like an accumulator of sorts.
08:12:35 <Patashu> aah
08:12:41 <Patashu> I was picturing a nondestructive fold
08:13:06 <Patashu> > scanl1 (*) $ scanl1 (+) $ fix (1:)
08:13:07 <lambdabot> [1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,8...
08:13:20 <Patashu> is there such a thing?
08:13:45 <oerjan> what's destructive about folds
08:13:59 <Patashu> a fold gets rid of the value it uses
08:14:00 <Patashu> so it ends up with just one
08:14:28 <oerjan> scanl1 may be right, then
08:14:42 <CakeProphet> > foldl1 ($) (map (,) [1,3..]) [2,4..]
08:14:43 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
08:14:58 <CakeProphet> > zipWith ($) (map (,) [1,3..]) [2,4..]
08:14:59 <lambdabot> [(1,2),(3,4),(5,6),(7,8),(9,10),(11,12),(13,14),(15,16),(17,18),(19,20),(21...
08:15:07 <Patashu> I'm picturing myfunc that goes myfunc f [a,b,c,d,e] -> [f a b, f b c, f c d, f d e]
08:15:17 <Patashu> maybe zipwith
08:15:18 <Patashu> hmmm
08:15:28 <CakeProphet> no zipWith takes two lists
08:15:33 <Patashu> but I can use that ap trick
08:15:37 <oerjan> > zipWith f`ap`tail $ [a,b,c,d,e] :: [Expr]
08:15:37 <Patashu> and make it take itself offset
08:15:39 <lambdabot> [f a b,f b c,f c d,f d e]
08:15:42 <Patashu> yep
08:15:44 <Patashu> that's it ty
08:15:54 <CakeProphet> oh... I did that a while ago actually.
08:15:58 <Patashu> > zipWith ap (*) tail [1..]
08:15:58 <lambdabot> Couldn't match expected type `[m (a -> b)]'
08:15:59 <lambdabot> against inferred type `...
08:16:17 <Patashu> > zipWith (*)`ap`tail $ [1..]
08:16:17 <lambdabot> [2,6,12,20,30,42,56,72,90,110,132,156,182,210,240,272,306,342,380,420,462,5...
08:16:22 <Patashu> > zipWith ap (*) tail $ [1..]
08:16:23 <lambdabot> Couldn't match expected type `[m (a -> b)]'
08:16:23 <lambdabot> against inferred type `...
08:16:25 <Patashu> huh
08:16:27 <CakeProphet> Patashu: are you just stringing together function names...?
08:16:37 <Patashu> f`ap`tail is equivalent to ap f tail right
08:16:43 <oerjan> > ap (zipWith (*)) tail [1..]
08:16:44 <lambdabot> [2,6,12,20,30,42,56,72,90,110,132,156,182,210,240,272,306,342,380,420,462,5...
08:16:48 <CakeProphet> yes
08:17:14 <Patashu> so why does one work and one not
08:17:23 <CakeProphet> Patashu: but Haskell is not magical and can't discern what is applying to what.
08:17:28 <CakeProphet> hint: need moar parens
08:17:32 <oerjan> because zipWith (*) is f, not just (*)
08:17:39 <Patashu> > zipWith . ap (*) tail $ [1..]
08:17:40 <lambdabot> Couldn't match expected type `a -> b -> c'
08:17:40 <lambdabot> against inferred type `[...
08:17:50 <Patashu> > zipWith .( ap (*) tail $ [1..])
08:17:51 <lambdabot> No instances for (GHC.Num.Num [a -> b -> c],
08:17:51 <lambdabot> GHC.Enum.En...
08:17:54 <oerjan> Patashu: erm i showed you above
08:17:55 <Patashu> > zipWith .( ap (*) tail) $ [1..]
08:17:55 <lambdabot> Couldn't match expected type `a -> b -> c'
08:17:56 <lambdabot> against inferred type `[...
08:17:57 <Patashu> I know
08:18:01 <Patashu> I want to do it without ` though
08:18:07 <oerjan> Patashu: i did that
08:18:08 <CakeProphet> he showed you that...
08:18:12 <Patashu> oh
08:18:24 <Patashu> aaah
08:18:24 <Patashu> ok
08:18:42 <Patashu> ap . zipWith (*) . tail $ [1..]
08:18:48 <Patashu> > ap . zipWith (*) . tail $ [1..]
08:18:49 <lambdabot> Couldn't match expected type `a -> b' against inferred type `[a1]'
08:18:51 <CakeProphet> when you say stuff like zipWith ap (*) tail... it reads it like this (((zipWith ap) (*)) tail)
08:18:52 <Patashu> lol
08:19:01 <Patashu> > ap (zipWith (*)) tail $ [1..]
08:19:01 <lambdabot> [2,6,12,20,30,42,56,72,90,110,132,156,182,210,240,272,306,342,380,420,462,5...
08:19:08 <Deewiant> ?unpl app . zipWith (*) . tail
08:19:08 <lambdabot> (\ c -> app (zipWith (*) (tail c)))
08:19:29 <Deewiant> ?unpl app (zipWith (*)) . tail
08:19:30 <lambdabot> (\ c -> app (zipWith (*)) (tail c))
08:20:03 <CakeProphet> !perl print map {chop;$_} keys qw(abc def ghi jkl mno pqr)
08:20:03 <EgoBot> Type of arg 1 to keys must be hash (not list) at /tmp/input.22685 line 1, at EOF
08:20:18 <CakeProphet> ...wat, lists are hashes fool.
08:20:36 <CakeProphet> !perl print map {chop;$_} keys %{{qw(abc def ghi jkl mno pqr)}}
08:20:37 <EgoBot> mnabgh
08:20:54 <Lymia> > ap (zipWith (\x,y => (x,y)) tail $ [1..]
08:20:55 <lambdabot> <no location info>: parse error on input `,'
08:20:59 <Lymia> > ap (zipWith (\(x,y) => (x,y)) tail $ [1..]
08:21:00 <lambdabot> <no location info>: parse error on input `=>'
08:21:04 <Lymia> > ap (zipWith (\(x,y) -> (x,y)) tail $ [1..]
08:21:05 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
08:21:07 <Lymia> :<
08:21:15 <Lymia> What was the syntax again?
08:21:16 <oerjan> Lymia: one more )
08:21:28 <Lymia> > ap (zipWith (\(x,y) -> (x,y))) tail $ [1..]
08:21:29 <lambdabot> Couldn't match expected type `b -> c'
08:21:29 <lambdabot> against inferred type `(t, t1)'
08:21:38 <Lymia> > ap (zipWith (\x -> X)) tail $ [1..]
08:21:38 <lambdabot> Not in scope: data constructor `X'
08:21:40 <Lymia> > ap (zipWith (\x -> x)) tail $ [1..]
08:21:40 <CakeProphet> Lymia: you could rewrite (\(x,y) -> (x,y)) as id
08:21:41 <lambdabot> Occurs check: cannot construct the infinite type: b = b -> c
08:21:43 <Lymia> :c
08:21:54 <Lymia> I need to go back to that Haskell tutorial
08:22:01 <CakeProphet> Lymia: I think you want
08:22:04 <CakeProphet> (\x y
08:22:05 <Patashu> > ap (zipWith id) tail $ [1..]
08:22:06 <lambdabot> Occurs check: cannot construct the infinite type: b = b -> c
08:22:23 <CakeProphet> Patashu: yeah that won't work. Sorry for misleading you. :P
08:22:25 <Patashu> lol
08:22:26 <Patashu> it's ok
08:22:48 <CakeProphet> Lymia: to specify multiple arguments you say (\a b c -> ...)
08:23:00 <Patashu> > ap (zipWith (\x,y -> (x,y))) tail $ [1..]
08:23:00 <CakeProphet> \(x,y) is one argument that is a tuple containing x and y
08:23:00 <lambdabot> <no location info>: parse error on input `,'
08:23:04 <Patashu> NOPE.
08:23:09 <CakeProphet> no comma
08:23:12 <Lymia> > ap (zipWith (\x y -> (x,y))) tail $ [1..]
08:23:13 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10),(10,11),(11,12),(12...
08:23:15 <Patashu> > ap (zipWith (\x y -> (x,y))) tail $ [1..]
08:23:16 <Lymia> There we go.
08:23:16 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10),(10,11),(11,12),(12...
08:23:17 <Patashu> damn
08:23:19 <Patashu> lymia got it before me
08:23:29 <CakeProphet> see also: (,)
08:23:44 <Lymia> > ap (zipWith (\x y -> (x,y))) (\x -> tail $ tail $ tail $ x) $ [1..]
08:23:45 <lambdabot> [(1,4),(2,5),(3,6),(4,7),(5,8),(6,9),(7,10),(8,11),(9,12),(10,13),(11,14),(...
08:23:45 <CakeProphet> @src zip
08:23:45 <lambdabot> zip (a:as) (b:bs) = (a,b) : zip as bs
08:23:45 <lambdabot> zip _ _ = []
08:23:57 <Lymia> > ap (zipWith (\x y -> (x,y))) head $ [1..]
08:23:58 <lambdabot> No instances for (GHC.Num.Num [b], GHC.Enum.Enum [b])
08:23:58 <lambdabot> arising from a use...
08:24:05 <CakeProphet> zip = zipWith (,)
08:24:05 <Patashu> > ap (zipWith (,)) tail $ [1..]
08:24:06 <lambdabot> [(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9),(9,10),(10,11),(11,12),(12...
08:24:18 -!- wareya has quit (Ping timeout: 260 seconds).
08:24:45 <CakeProphet> :t unzip
08:24:46 <lambdabot> forall a b. [(a, b)] -> ([a], [b])
08:25:09 <Patashu> how do you get stuff out of a tuple?
08:25:12 <Patashu> monads?
08:25:17 <CakeProphet> pattern matching.
08:25:26 <CakeProphet> for a 2-tuple you can use fst and snd
08:25:27 <Deewiant> fst/snd
08:25:34 <Patashu> how about larger
08:25:35 <Patashu> !! ?
08:25:40 <Deewiant> Pattern matching
08:25:40 <CakeProphet> pattern matching.
08:25:45 <CakeProphet> Patashu: no. This isn't Python. :P
08:25:53 <CakeProphet> !! is a function on lists
08:26:07 <Patashu> m-my overloading
08:26:50 <CakeProphet> I am honestly not quite sure why Python differentiates lists from tuples when they are pretty much the same that tuples are immutable.
08:26:59 <CakeProphet> *except that
08:27:30 <oerjan> tuple overloaded functions aren't in the standard. there's probably a package on hackage for it
08:28:02 <oerjan> but usually if you think you want large tuples, you usually really need a datatype
08:28:20 <CakeProphet> anything over a 3-tuple or maybe a 4-tuple is probably in that realm.
08:28:23 <CakeProphet> even those, really.
08:28:58 <CakeProphet> > case (1,2,3) of (a,_,_) -> a
08:28:59 <lambdabot> 1
08:29:26 <Deewiant> Preferably use ~ there
08:29:34 <CakeProphet> ...why?
08:29:41 -!- wareya has joined.
08:29:48 <CakeProphet> it's a 3-tuple... always.
08:30:06 <oerjan> precisely _why_ you should use ~
08:30:25 <Lymia> > ap (zipWith (*)) (\x -> tail $ tail $ tail $ x) $ [1..]
08:30:26 <oerjan> to avoid unnecessary strictness
08:30:26 <lambdabot> [4,10,18,28,40,54,70,88,108,130,154,180,208,238,270,304,340,378,418,460,504...
08:30:33 <Lymia> > ap (zipWith (*)) (\x -> tail $ tail $ tail $ tail $ tail $ tail $ tail $ tail $ tail $ tail $ tail $ tail $ tail $ tail $ x) $ [1..]
08:30:34 <lambdabot> [15,32,51,72,95,120,147,176,207,240,275,312,351,392,435,480,527,576,627,680...
08:30:37 <Lymia> :C
08:30:41 <CakeProphet> > let thrd ~(_,_,a) = a in thrd (1,2,3)
08:30:42 <lambdabot> 3
08:30:42 <oerjan> :t drop
08:30:43 <lambdabot> forall a. Int -> [a] -> [a]
08:30:47 <oerjan> *COUGH*
08:30:55 <Lymia> >drop 5 [1..]
08:31:00 <Lymia> > drop 5 [1..]
08:31:01 <lambdabot> [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,...
08:31:03 <Lymia> ehehehe
08:31:16 <Patashu> > take 5 drop 5 [1..]
08:31:17 <lambdabot> Couldn't match expected type `[a]'
08:31:17 <lambdabot> against inferred type `GHC.Types...
08:31:20 <Patashu> > take 5 . drop 5 [1..]
08:31:21 <lambdabot> No instances for (GHC.Num.Num [a], GHC.Enum.Enum [a])
08:31:21 <lambdabot> arising from a use...
08:31:28 <CakeProphet> > dropWhile (<10) [1..]
08:31:29 <lambdabot> [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...
08:31:29 <Patashu> CURRYING IS HARD
08:31:39 <Patashu> > take 5 $ drop 5 [1..]
08:31:39 <lambdabot> [6,7,8,9,10]
08:31:41 <CakeProphet> Patashu: need. moar. parens.
08:31:42 <Patashu> there
08:31:43 <Lymia> Being curry is suffering
08:31:51 <Patashu> > drop 5 $ take 5 [1..]
08:31:52 <lambdabot> []
08:31:59 <Lymia> > dropWhile (!=-1) [1..]
08:32:00 <lambdabot> Not in scope: `!=-'
08:32:05 <Deewiant> /=
08:32:07 <Lymia> > dropWhile (>0) [1..]
08:32:10 <lambdabot> mueval-core: Time limit exceeded
08:32:25 <Patashu> lol
08:32:32 <CakeProphet> Lymia: there is also takeWhile, which is to take as dropWhile is to drop.
08:32:43 <Patashu> why can't haskell optimize mathematical theorems and realize it won't return anything???
08:32:44 <Patashu> gosh
08:32:53 <Patashu> > takeWhile (>0) [1..]
08:32:54 <lambdabot> [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...
08:33:13 <oerjan> > fix id
08:33:17 <lambdabot> mueval-core: Time limit exceeded
08:33:33 <oerjan> lambdabot doesn't use blackholes, even
08:33:49 <CakeProphet> oerjan: shocking.
08:34:19 <Patashu> black holes?
08:34:41 <CakeProphet> :t randomRIO
08:34:41 <lambdabot> forall a. (Random a) => (a, a) -> IO a
08:34:58 <oerjan> Patashu: with some flag settings, ghc can actually detect that fix id is a loop, by putting a "black hole" tag on it when it starts evaluating
08:35:11 <Patashu> I assume it can also detect other things
08:35:31 <oerjan> but i think that's incompatible with the multiple core setting or something
08:35:50 <oerjan> (i.e. works badly with parallelism)
08:36:03 <CakeProphet> > takeWhile (/=6) <$> (forever $ randomRIO (1,6))
08:36:04 <lambdabot> <IO [Integer]>
08:36:22 <CakeProphet> > unsafePerformIO $ takeWhile (/=6) <$> (forever $ randomRIO (1,6))
08:36:23 <lambdabot> Not in scope: `unsafePerformIO'
08:36:24 <oerjan> CakeProphet: that won't halt in any case
08:36:36 <CakeProphet> oerjan: oh really?
08:37:06 <CakeProphet> is the 6 not included?
08:37:11 <oerjan> for IO, the part to the left of <$> won't be applied until the part to the right finishes
08:37:18 <CakeProphet> ah.
08:37:50 <CakeProphet> oh, and it's not even a list. :P
08:37:51 -!- pingveno has quit (Ping timeout: 244 seconds).
08:37:59 <CakeProphet> :t forever
08:38:00 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m a -> m b
08:38:51 <oerjan> Patashu: ghc can detect many things, it has a strictness analyzer to find out if there are any arguments it can be sure whether will be used or not
08:39:07 <CakeProphet> > (takeWhile (/=6) <$> (repeatM $ randomRIO (1,6))) >>= print
08:39:08 <lambdabot> Not in scope: `repeatM'
08:39:53 <oerjan> CakeProphet: sequence . repeat, but it won't work for IO
08:39:55 -!- pingveno has joined.
08:40:29 <CakeProphet> oerjan: would liftM be any better or is it effectively the same thing.
08:41:05 -!- Vorpal has joined.
08:41:14 <oerjan> same thing.
08:41:55 <oerjan> what you need if you _really_ want to do that is to recurse with unsafeInterleaveIO
08:42:05 <CakeProphet> sounds fun.
08:42:24 <oerjan> however, Random has a pure interface, in case you didn't know
08:42:48 <CakeProphet> I did but it's somewhat tedious.
08:42:50 <oerjan> > takeWhile (/=6) . randoms $ makeStdGen 42
08:42:50 <lambdabot> Not in scope: `makeStdGen'
08:42:53 <oerjan> er
08:42:59 <oerjan> > takeWhile (/=6) . randoms $ mkStdGen 42
08:43:01 <lambdabot> [-3907187990116499535,-2519438828217931933,-8264534369199619667,86887135830...
08:43:10 <oerjan> oh hm
08:43:17 <oerjan> > takeWhile (/=6) . randomRs (1,6) $ mkStdGen 42
08:43:18 <lambdabot> []
08:43:32 <oerjan> well didn't that work splendidly :P
08:43:36 <CakeProphet> yep.
08:43:46 <oerjan> > takeWhile (/=6) . randomRs (1,6) $ mkStdGen 666
08:43:48 <lambdabot> []
08:43:49 <CakeProphet> you can tell because you'll get the same result every time.
08:43:53 <oerjan> wat
08:43:58 <CakeProphet> even with different inputs! wow!
08:44:04 <oerjan> > takeWhile (/=6) . randomRs (1,6) $ mkStdGen 4
08:44:05 <lambdabot> []
08:44:06 <Patashu> > randomRs (1,6) $ mkStdGen 666
08:44:07 <lambdabot> [6,1,6,3,6,2,1,5,6,3,3,1,2,6,5,2,5,4,3,5,5,3,5,3,5,4,3,6,1,2,2,3,3,2,5,4,2,...
08:44:17 <CakeProphet> this random generator sure is consistent.
08:44:22 <oerjan> you'd think
08:44:28 <Patashu> > randomRs (1,6) $ mkStdGen 4
08:44:29 <lambdabot> [6,3,3,2,4,2,6,1,2,6,4,5,1,5,4,6,2,6,1,5,6,1,3,1,5,4,6,2,6,2,6,1,6,6,5,1,6,...
08:44:33 <Patashu> they all begin with 6
08:44:35 <Patashu> trollolol
08:44:36 <CakeProphet> hahaha.
08:44:42 <oerjan> > randomRs (1,6) $ mkStdGen 5
08:44:43 <lambdabot> [6,2,2,1,3,2,5,1,5,4,2,2,1,2,6,4,2,4,2,3,2,4,5,4,2,1,5,1,6,4,3,2,4,5,5,3,3,...
08:44:47 <oerjan> wtf
08:44:47 <Patashu> wtf
08:44:51 <Patashu> that's four in a row now.
08:44:59 <Patashu> :trollface:
08:45:05 <Patashu> > randomRs (1,6) $ mkStdGen 987
08:45:06 <lambdabot> [6,2,6,6,5,5,2,1,4,4,3,2,4,5,4,6,5,6,6,6,5,6,4,4,4,5,3,2,2,5,3,6,5,2,1,4,3,...
08:45:09 <Patashu> > randomRs (1,6) $ mkStdGen 986
08:45:10 <lambdabot> [6,3,2,1,5,5,2,1,1,6,5,5,3,2,2,2,5,1,5,2,3,3,2,1,1,1,4,3,2,3,6,6,2,3,6,2,5,...
08:45:15 <Patashu> weird
08:45:17 <Patashu> > randomRs (1,6) $ mkStdGen 985
08:45:18 <lambdabot> [6,3,3,3,5,5,3,2,4,2,1,2,3,5,6,4,5,2,4,4,1,1,6,4,4,3,4,4,2,1,3,5,5,3,6,6,2,...
08:45:18 <oerjan> > (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:45:20 <lambdabot> [6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,...
08:45:24 <Patashu> they all start pretty much the same way
08:45:31 <oerjan> hm oh hm
08:45:45 <CakeProphet> dropWhile (==6) $ (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:45:49 <CakeProphet> > dropWhile (==6) $ (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:45:50 <lambdabot> [5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,...
08:46:02 <CakeProphet> then they start all being 5s.
08:46:23 <Patashu> lol
08:46:27 <Patashu> why does it do that
08:46:29 <Patashu> what is randomRs
08:46:41 <oerjan> i think it may only use the high bits for the first value
08:46:46 <Vorpal> :t randomRs
08:46:47 <lambdabot> forall a g. (Random a, RandomGen g) => (a, a) -> g -> [a]
08:46:51 <CakeProphet> randomRs takes a range and a stdGen thingy and makes random values. stdgen is basically the seed value
08:46:54 <oerjan> > (head . randomRs (1,6) . mkStdGen) <$> iterate (*2) 1
08:46:56 <Vorpal> :t mkStdGen
08:46:56 <lambdabot> Int -> StdGen
08:46:57 <lambdabot> mueval-core: Time limit exceeded
08:47:09 <Patashu> http://learnyouahaskell.com/input-and-output#randomness
08:47:14 <oerjan> > (head . randomRs (1,6) . mkStdGen) <$> take 10 (iterate (*2) 1)
08:47:16 <lambdabot> [6,6,6,6,6,6,6,6,6,6]
08:47:19 <oerjan> oops
08:47:27 <oerjan> > (head . randomRs (1,6) . mkStdGen) <$> take 10 (iterate (*3) 1)
08:47:28 <lambdabot> [6,6,6,6,6,6,6,6,6,6]
08:47:32 <oerjan> wtf
08:47:39 <oerjan> > (head . randomRs (1,6) . mkStdGen) <$> take 20 (iterate (*3) 1)
08:47:40 <lambdabot> [6,6,6,6,6,6,6,6,6,6,5,3,3,1,1,3,2,6,6,4]
08:47:49 <CakeProphet> > length $ takeWhile (==6) $ (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:47:51 <lambdabot> 53667
08:47:52 <Patashu> > randomR (1,6) (mkStdGen 359353)
08:47:53 <lambdabot> (6,1494289578 40692)
08:47:55 <CakeProphet> that is when it stops being 6
08:47:56 <Patashu> > randomR (1,6) (mkStdGen 35935335)
08:47:57 <lambdabot> (3,1250031057 40692)
08:47:59 <Patashu> tada
08:47:59 <Patashu> 3
08:48:11 <CakeProphet> > length $ takeWhile (==5) $ takeWhile (==6) $ (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:48:13 <lambdabot> 0
08:48:22 <CakeProphet> oh right
08:48:27 <CakeProphet> > length $ takeWhile (==5) $ dropWhile (==6) $ (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:48:28 <lambdabot> 53668
08:48:40 <CakeProphet> and that's how many generators starting with 5 there are after 6
08:48:57 <Patashu> that's odd
08:48:57 <CakeProphet> > length $ takeWhile (==4) $ dropWhile (==5) $ dropWhile (==6) $ (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:48:59 <lambdabot> 53668
08:49:03 <CakeProphet> oh look.
08:49:14 -!- guy_ has joined.
08:49:18 <CakeProphet> I guess it's just how the generator works from the seed number.
08:49:21 <Patashu> > randomR (1,6) (getStdGen)
08:49:22 <lambdabot> No instance for (System.Random.RandomGen
08:49:22 <lambdabot> (GHC.Types.IO ...
08:49:26 <Patashu> hmmm
08:49:36 <CakeProphet> :t mkStdGen
08:49:37 <lambdabot> Int -> StdGen
08:49:45 <Patashu> :t getStdGen
08:49:45 <lambdabot> IO StdGen
08:49:55 <Patashu> so I need to unwrap it
08:50:00 <Patashu> :t pure getStdGen
08:50:01 <lambdabot> forall (f :: * -> *). (Applicative f) => f (IO StdGen)
08:50:01 <CakeProphet> good luck with that.
08:50:03 <Patashu> lol
08:50:32 <CakeProphet> > length $ takeWhile (==3) $ dropWhile (==4) $ dropWhile (==5) $ dropWhile (==6) $ (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:50:34 <lambdabot> 53669
08:50:44 <oerjan> > mkStdGen 42
08:50:45 <lambdabot> 43 1
08:50:56 <CakeProphet> 5366[89] always
08:51:19 -!- guy_ has quit (Changing host).
08:51:19 -!- guy_ has joined.
08:51:24 <oerjan> Patashu: you cannot use getStdGen in lambdabot, it doesn't allow IO actions
08:51:32 <Patashu> ah, ok
08:51:48 <CakeProphet> you might be able to use !haskell for that hough
08:51:53 <oerjan> yes
08:52:14 <CakeProphet> > length $ takeWhile (==2) $ dropWhile (==3) $ dropWhile (==4) $ dropWhile (==5) $ dropWhile (==6) $ (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:52:15 <lambdabot> 53668
08:52:30 <CakeProphet> oerjan: do all of these $'s hurt your mathematician eyes?
08:52:39 <oerjan> AYEEE
08:52:43 <CakeProphet> I can change it to . if you like.
08:52:45 <Patashu> get dolla dolla bill
08:53:42 <CakeProphet> > length takeWhile (==1) . dropWhile (==2) . dropWhile (==3) . dropWhile (==4) . dropWhile (==5) . dropWhile (==6) . (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:53:43 <lambdabot> Couldn't match expected type `[a]'
08:53:44 <lambdabot> against inferred type `(a1 -> GH...
08:53:49 <CakeProphet> > length . takeWhile (==1) . dropWhile (==2) . dropWhile (==3) . dropWhile (==4) . dropWhile (==5) . dropWhile (==6) . (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:53:50 <lambdabot> No instance for (GHC.Num.Num [a])
08:53:50 <lambdabot> arising from the literal `1' at <inter...
08:53:54 <CakeProphet> ....or maybe I can't.
08:54:18 <CakeProphet> > length . takeWhile (==1) . dropWhile (==2) . dropWhile (==3) . dropWhile (==4) . dropWhile (==5) . dropWhile (==6) $ (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:54:20 <lambdabot> 53668
08:54:32 <CakeProphet> > dropWhile (==1) . dropWhile (==2) . dropWhile (==3) . dropWhile (==4) . dropWhile (==5) . dropWhile (==6) $ (head . randomRs (1,6) . mkStdGen) <$> [1..]
08:54:34 <lambdabot> [6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,...
08:54:39 <CakeProphet> so yeah, then it starts over.
08:55:44 <oerjan> CakeProphet: one usually needs to keep one $ :D
08:55:57 <oerjan> > 53668*6
08:55:58 <lambdabot> 322008
08:56:13 <oerjan> > 53667*6
08:56:14 <lambdabot> 322002
08:56:27 <CakeProphet> > dropWhile (==1) . dropWhile (==2) . dropWhile (==3) . dropWhile (==4) . dropWhile (==5) . dropWhile (==6) . dropWhile (==7) $ (head . randomRs (1,7) . mkStdGen) <$> [1..]
08:56:28 <lambdabot> [5,7,2,4,6,1,3,5,7,2,4,6,1,3,5,7,2,4,6,1,3,5,7,2,4,6,1,3,5,7,2,4,6,1,3,5,7,...
08:56:47 <CakeProphet> > dropWhile (==7) $ (head . randomRs (1,7) . mkStdGen) <$> [1..]
08:56:49 <lambdabot> [3,5,7,2,4,6,1,3,5,7,2,4,6,1,3,5,7,2,4,6,1,3,5,7,2,4,6,1,3,5,7,2,4,6,1,3,5,...
08:56:51 -!- MigoMipo has joined.
08:56:55 <oerjan> > 53669*6
08:56:56 <lambdabot> 322014
08:57:03 <CakeProphet> so... it's apparently unique to (1,6)?
08:57:09 <CakeProphet> (1,7) doesn't do it.
08:57:39 <oerjan> > 2^18
08:57:40 <lambdabot> 262144
08:58:02 <CakeProphet> > map (2^) [18..]
08:58:02 <lambdabot> [262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,1...
08:58:12 <oerjan> @src randomR Integer
08:58:12 <lambdabot> Source not found.
08:58:23 <oerjan> @source System.Random
08:58:23 <lambdabot> http://darcs.haskell.org/packages/base/System/Random.hs
08:58:28 <CakeProphet> so something about 6 makes it do that.
08:58:44 <CakeProphet> > (head . randomRs (1,2) . mkStdGen) <$> [1..]
08:58:45 <lambdabot> [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,...
08:58:49 <CakeProphet> and 2 as well
08:58:56 <CakeProphet> > (head . randomRs (1,4) . mkStdGen) <$> [1..]
08:58:57 <lambdabot> [2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,4,2,...
08:58:58 <oerjan> now that's an outdated command :(
08:58:59 <Patashu> not the best rng I've ever seen
08:59:12 <CakeProphet> 4 is interesting. :)
08:59:18 <CakeProphet> > (head . randomRs (1,8) . mkStdGen) <$> [1..]
08:59:19 <lambdabot> [2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,...
08:59:31 <CakeProphet> another repeating sequence as well.
09:00:28 <CakeProphet> > take 53669 $ (head . randomRs (1,8) . mkStdGen) <$> [1..]
09:00:29 <lambdabot> [2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,...
09:00:40 <CakeProphet> > drop 53669 $ (head . randomRs (1,8) . mkStdGen) <$> [1..]
09:00:42 <lambdabot> [5,3,1,7,5,3,1,7,5,3,1,7,5,3,1,7,5,3,1,7,5,3,1,7,5,3,1,7,5,3,1,7,5,3,1,7,5,...
09:01:19 <oerjan> wtf doesn't http://hackage.haskell.org/package/base list System.Random
09:01:19 <CakeProphet> > drop (53668/2) $ (head . randomRs (1,8) . mkStdGen) <$> [1..]
09:01:20 <lambdabot> No instance for (GHC.Real.Fractional GHC.Types.Int)
09:01:20 <lambdabot> arising from a use o...
09:01:35 <Vorpal> CakeProphet, that is one hell of a short period for repetition on that prng!
09:01:35 <CakeProphet> > drop (53669`div`2) $ (head . randomRs (1,8) . mkStdGen) <$> [1..]
09:01:37 <lambdabot> [6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,4,2,8,6,...
09:01:41 <Patashu> lol
09:01:55 <Patashu> it'd be better to use a hash
09:01:55 <CakeProphet> > drop (53669-4) $ (head . randomRs (1,8) . mkStdGen) <$> [1..]
09:01:57 <lambdabot> [8,6,3,7,5,3,1,7,5,3,1,7,5,3,1,7,5,3,1,7,5,3,1,7,5,3,1,7,5,3,1,7,5,3,1,7,5,...
09:02:10 <CakeProphet> ....yep, the period is always 536699
09:02:25 <Vorpal> CakeProphet, that is rather short
09:02:46 <oerjan> Vorpal: it's not the repetition of the prng for _one_ seed, but it's beginning value across several
09:02:55 <oerjan> *its
09:03:02 <Vorpal> oerjan, uh... slow startup time?
09:03:09 <Vorpal> or what do you mean
09:03:47 <CakeProphet> Vorpal: we are taking the first value produced for each seed [1,inf]
09:03:55 <Vorpal> ah
09:04:16 <Vorpal> CakeProphet, well... that is strange still. Always giving you similar values
09:04:25 <CakeProphet> yes, for the first one.
09:04:44 <CakeProphet> > drop (53669-4) $ (head . tail . randomRs (1,8) . mkStdGen) <$> [1..]
09:04:45 <lambdabot> [1,3,6,7,8,4,5,6,8,3,4,5,7,2,3,4,6,1,2,3,5,8,1,2,4,7,8,1,3,6,7,8,2,5,6,7,1,...
09:04:53 <Vorpal> CakeProphet, what is the period of the prng though?
09:04:58 <CakeProphet> no clue.
09:05:12 <CakeProphet> so yeah it's not so repetitive on the second value.
09:05:15 <CakeProphet> > drop (53669-4) $ (head . tail . randomRs (1,6) . mkStdGen) <$> [1..]
09:05:17 <lambdabot> [1,1,6,5,4,4,3,2,2,1,6,5,5,4,3,2,2,1,6,5,5,4,3,2,2,1,6,5,5,4,3,2,2,1,6,5,5,...
09:05:32 <CakeProphet> the oscillation is larger
09:05:34 <oerjan> http://hackage.haskell.org/packages/archive/random/latest/doc/html/src/System-Random.html#randomRs
09:05:43 <Vorpal> CakeProphet, I presume slow startup time
09:06:04 <CakeProphet> before it had a period of 4, now it's.... 8
09:06:15 <CakeProphet> > drop (53669-4) $ (head . tail . tail . randomRs (1,6) . mkStdGen) <$> [1..]
09:06:17 <lambdabot> [3,2,6,5,3,1,6,4,2,1,5,4,2,6,5,3,1,6,4,2,1,5,4,2,6,5,3,1,6,4,3,1,5,4,2,6,5,...
09:06:55 <CakeProphet> this one is 10 I believe.
09:07:01 <Vorpal> CakeProphet, wait what. Period of 8? Come on... something like 2^31-1 is the least I would expect for period from a decent PRNG
09:07:19 <CakeProphet> period for this pattern that we've noticed in the nth value from a given seed.
09:07:22 <Vorpal> ah
09:07:44 <CakeProphet> > randomRs (1,6) $ mkStdGen 42
09:07:45 <lambdabot> [6,4,2,5,3,2,1,6,1,4,4,4,1,3,3,2,6,2,4,1,3,1,1,5,5,5,1,3,6,1,5,6,1,3,5,4,1,...
09:07:46 <Vorpal> still this is really *really* bad
09:09:06 <oerjan> Vorpal: it's not a problem if you get the seed from the system clock or something
09:09:49 <CakeProphet> but then you're in IO, yes?
09:09:56 <CakeProphet> but... I guess that's not a problem either.
09:10:23 <Vorpal> oerjan, well... I would say it still is a problem then that this PRNGs has such a large setup time
09:10:26 <CakeProphet> because the functions that are computing pseudo-random numbers are still pure.
09:10:35 <oerjan> | otherwise = case (f n 1 rng) of (v, rng') -> (fromInteger (l + v `mod` k), rng')
09:10:42 <Vorpal> one way to combat this would be to step it forward a few steps in mkStdGen
09:10:46 <Vorpal> before returning it
09:11:15 <CakeProphet> say, by 1000?
09:11:21 <oerjan> i really don't like that mod there, isn't that a flawed way of getting a ranged value from an rng :(
09:11:39 <Vorpal> CakeProphet, possibly. Would have to investigate it to find out what a good value for the stepping would be.
09:11:46 <oerjan> (in randomIvalInteger)
09:12:21 <Vorpal> oerjan, what is the range of the integers before the mod?
09:14:22 <oerjan> > range (mkStdGen undefined)
09:14:23 <lambdabot> Couldn't match expected type `(a, a)'
09:14:23 <lambdabot> against inferred type `System...
09:14:26 <oerjan> erm
09:14:28 <Vorpal> oerjan, I don't like the magic constants in stdNext and stdSplit
09:14:30 <oerjan> :t range
09:14:30 <lambdabot> forall a. (Ix a) => (a, a) -> [a]
09:14:35 <oerjan> wrong range
09:15:12 <oerjan> -- This implementation uses the Portable Combined Generator of L'Ecuyer
09:15:12 <oerjan> -- ["System.Random\#LEcuyer"] for 32-bit computers, transliterated by
09:15:12 <oerjan> -- Lennart Augustsson. It has a period of roughly 2.30584e18.
09:15:37 <Vorpal> hm
09:15:50 <Vorpal> not familiar with that prng
09:16:01 <oerjan> > genRange (mkStdGen undefined)
09:16:01 <lambdabot> (0,2147483562)
09:16:09 <CakeProphet> You are apeshit bananas at computers, and you know ALL THE CODES. All of them. You are the unchallenged authority on APICULTURE NETWORKING. And though all your friends recognize your unparalleled achievements as a TOTALLY SICK HACKER, you feel like you could be better. It's one of a number of things you SORT OF BEAT YOURSELF UP ABOUT for NO VERY GOOD REASON during sporadic and debilitating BIPOLAR MOOD SWINGS. You have a
09:16:11 <Vorpal> :t undefined
09:16:12 <lambdabot> forall a. a
09:16:15 <Vorpal> :t mkStdGen
09:16:16 <lambdabot> Int -> StdGen
09:16:21 <Vorpal> hrrm
09:16:29 <Vorpal> :t genRange
09:16:29 <lambdabot> forall g. (RandomGen g) => g -> (Int, Int)
09:16:50 <oerjan> ok that's the same number as in randomIvalInteger, i think
09:16:54 <oerjan> wait wtf
09:16:59 <Vorpal> CakeProphet, err?
09:17:11 <Vorpal> CakeProphet, is this homestuck or something?
09:17:33 <oerjan> that means ghc's randomR _only_ works for random number generators with the same range as StdGen!
09:17:52 <Vorpal> oerjan, if that is true, file a bug
09:18:01 <CakeProphet> Vorpal: yes.
09:18:14 <Vorpal> CakeProphet, ah
09:18:20 <Vorpal> CakeProphet, haven't been keeping up lately
09:26:27 -!- augur has quit (Read error: Connection reset by peer).
09:26:48 -!- augur has joined.
09:33:05 -!- oerjan has quit (Quit: Panic attack).
09:57:36 <CakeProphet> what the hell Perl.
09:57:50 <CakeProphet> $#array returns the last index of the array
09:58:05 <CakeProphet> as opposed to every other language ever, which returns the actual size.
09:58:37 <CakeProphet> I suppose in most cases you want the last index, but still. Not knowing that was the source of a bug.
09:59:09 <quintopia> isn't there another thing that you can use to get the size?
09:59:21 <CakeProphet> not that I'm aware of.
10:01:55 <CakeProphet> yeah I don't see a built-in function to get the length of a list
10:02:02 <CakeProphet> only the $# form for arrays.
10:02:33 <quintopia> huh
10:05:18 <CakeProphet> list != array, here.
10:05:24 <CakeProphet> though they are very very similar.
10:05:35 -!- wareya has quit (Read error: Connection reset by peer).
10:06:00 <CakeProphet> an array is basically a list stored in a variable. @array produces a list from the "array", which is the variable or whatever.
10:06:11 <CakeProphet> lists are what Perl then operates on when it does stuff.
10:06:22 <CakeProphet> and can look (1,2,3,4,5,6) as well.
10:06:27 <CakeProphet> or function 1,2,3,4,5
10:06:36 -!- wareya has joined.
10:06:41 <CakeProphet> or my ($x, $y) = (1,2)
10:08:02 <CakeProphet> (don't ask me why I decided to explain all of that. You might have even knew beforehand)
10:08:24 <quintopia> nah, i'm lousy at perl
10:09:21 <Vorpal> <CakeProphet> an array is basically a list stored in a variable. @array produces a list from the "array", which is the variable or whatever.
10:09:26 <Vorpal> then shouldn't something like...
10:09:33 <Vorpal> $#@array
10:09:35 <Vorpal> work?
10:09:37 <CakeProphet> ....no
10:09:41 <CakeProphet> it's $#array
10:09:44 <CakeProphet> which is probably what you mean.
10:09:53 <Vorpal> CakeProphet, I meant for getting the length
10:09:55 <CakeProphet> $# is a special sigil thing.
10:09:57 <CakeProphet> right.
10:10:03 <Vorpal> CakeProphet, as opposed to last index
10:10:08 <CakeProphet> oh... no.
10:10:21 <CakeProphet> $#@ is a syntax error I think.
10:10:36 <Vorpal> CakeProphet, what about $#(@array) then?
10:10:40 <CakeProphet> nope.
10:10:52 <Vorpal> uh okay
10:10:55 <CakeProphet> $#array is exactly what you want. if I want the size I just add one
10:11:04 <CakeProphet> I was just noting that it's inconsistent with most languages I've seen.
10:11:07 <Vorpal> CakeProphet, what if it is a sparse array?
10:11:13 <Vorpal> if perl does that
10:11:17 <CakeProphet> I don't think that exists in Perl.
10:11:19 <Vorpal> ah
10:11:23 <Vorpal> well okay then that works
10:12:07 <CakeProphet> there's likely a CPAN module for a sparse array, which would use some kind of OO interface to get size and last index
10:12:18 <CakeProphet> and have an overload on the subscript [] operation
10:12:31 <Vorpal> heh
10:12:48 <Vorpal> CakeProphet, why exactly are you learning perl?
10:12:55 <Vorpal> morbid curiosity?
10:12:59 <CakeProphet> hmmm, well.
10:13:26 <Vorpal> CakeProphet, can it be anything except morbid curiosity? :P
10:13:58 <Vorpal> well I sadly don't have time to wait for your answer, have to make food now unless I want to wait for about 5 hours
10:13:58 <CakeProphet> I feel it will be useful later in the event that I become a sysadmin or something along those lines. Also, I decided to learn it simply for the knowledge, because I am trying to become experienced with as many languages possible, but now I've found that Perl is actually very good at some of the small programming tasks I end up doing often.
10:14:18 <Vorpal> ah
10:14:48 <CakeProphet> better than Python, which is what I was using towards that end previously.
10:18:12 -!- zzo38 has joined.
10:35:06 <zzo38> " !!!"
10:37:13 -!- zzo38 has quit (Read error: Connection reset by peer).
10:38:17 -!- zzo38 has joined.
10:38:49 -!- BeholdMyGlory has joined.
10:40:53 <Vorpal> <zzo38> " !!!" <-- can you please expand on this?
10:41:17 <zzo38> No.
10:41:40 <Vorpal> oh come on that is easy, just add more spaces or exclamation marks!
10:41:57 <zzo38> You can do that yourself if you want to.
10:43:31 <Lymia> !python import __builtin__;__builtin__.len=lambda x:-1:print []
10:43:31 <EgoBot> File "<stdin>", line 1
10:43:39 <Lymia> !python import __builtin__;__builtin__.len=lambda x:-1;print []
10:43:41 <EgoBot> ​[]
10:43:45 <zzo38> I keep getting a request for /wiki/index.php?title=User:NO_Body&action=edit on my HTTP server occasionally. I never had a file called that on my server (I do know what server does contain that file).
10:43:46 <Lymia> !python import __builtin__;__builtin__.len=lambda x:-1;print [1,2,3,4,5,6]
10:43:47 <EgoBot> ​[1, 2, 3, 4, 5, 6]
10:43:51 <Lymia> !python import __builtin__;__builtin__.len=lambda x:100;print [1,2,3,4,5,6]
10:43:51 <EgoBot> ​[1, 2, 3, 4, 5, 6]
10:43:59 <Lymia> !python import __builtin__;__builtin__.len=lambda x:100;len([1,2,3,4,5,6]_;print [1,2,3,4,5,6]
10:44:00 <EgoBot> File "<stdin>", line 1
10:44:06 <Lymia> !python import __builtin__;__builtin__.len=lambda x:100;len([1,2,3,4,5,6]);print [1,2,3,4,5,6]
10:44:08 <EgoBot> ​[1, 2, 3, 4, 5, 6]
10:44:11 <Lymia> !python import __builtin__;__builtin__.len=lambda x:100;len([1,2,3,4,5,6]);print repr([1,2,3,4,5,6])
10:44:12 <EgoBot> ​[1, 2, 3, 4, 5, 6]
10:44:13 <CakeProphet> ...there is absolutely no reason to import __builtin__
10:44:14 <Lymia> :<
10:44:21 <Vorpal> __builtin__.len ??
10:44:32 <Lymia> !python import __builtin__;__builtin__.len=lambda x:100;print len([1,2,3,4,5,6]);print repr([1,2,3,4,5,6])
10:44:32 <EgoBot> 100
10:44:42 <Vorpal> Lymia, why do you import __builtin__.len?
10:44:47 <Vorpal> isn't that the same as the normal len
10:44:50 <CakeProphet> to do evil things.
10:44:52 <CakeProphet> well no
10:44:59 <CakeProphet> not if you want to redefine it.
10:45:08 <Vorpal> CakeProphet, what is the difference then?
10:45:13 <zzo38> What is *this* request for: "POST http://203.55.174.173:6667/ HTTP/1.0"
10:45:15 <CakeProphet> re-defining len will just make a local copy
10:45:22 <Vorpal> aha
10:45:25 <CakeProphet> if you want to change len for everything everywhere... then you would resort to that hackish nonsense.
10:45:33 <Vorpal> CakeProphet, why on earth not just override __len__ in your class?
10:45:42 <CakeProphet> Vorpal: because that's not hackish enough.
10:45:45 <Vorpal> hah
10:46:17 <Lymia> Buh.
10:46:17 <Lymia> No idea why this doesn't work as I expect.
10:46:27 <Vorpal> zzo38, someone trying to connect to irc by assuming your site is a proxy of some sort maybe?
10:46:30 <CakeProphet> Lymia: how is it not working as you expect?
10:47:06 <zzo38> Maybe, but it is a POST request. I also got one which is the same but with 127.0.0.1 instead of 203.55.174.173
10:47:57 <zzo38> I also got some proxy request on port 7181 to some other computer using GET
10:48:01 <Vorpal> zzo38, well
10:48:03 <Vorpal> $ host 203.55.174.173
10:48:03 <Vorpal> 173.174.55.203.in-addr.arpa domain name pointer alicorn.furnet.info.
10:48:03 <Vorpal> 173.174.55.203.in-addr.arpa domain name pointer alicorn.furnet.org.
10:48:13 <Vorpal> sounds like an irc network to me
10:48:47 <CakeProphet> Lymia: repr() and len() have nothing to do with each other. They're both __len__ and __repr__ on the list class, and likely use C internals to calculate their values. Thus changing __builtin__.len will not have any effect on repr for lists, because len will never be called.
10:49:19 <zzo38> Yes it does sound like an IRC network. But the request still doesn't make sense?
10:49:48 <CakeProphet> list.__repr__ probably uses list.__iter__, or the C-equivalent API for iterating on lists.
10:49:48 <Vorpal> bbl
10:50:43 <zzo38> I also got "CONNECT 127.0.0.1:6667 HTTP/1.0"
10:51:16 <Lymia> !py str.__len__=lambda self:-1;print len("a")
10:51:29 <Lymia> !addinterp py python
10:51:29 <EgoBot> ​Interpreter py installed.
10:51:30 <Lymia> !py str.__len__=lambda self:-1;print len("a")
10:51:31 <zzo38> More than once.
10:51:46 <CakeProphet> !languages
10:51:52 <CakeProphet> !help languages
10:51:52 <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.
10:52:01 <CakeProphet> There is no python interpreter on egobot.
10:52:09 <Lymia> !py print "o rly"
10:52:18 <CakeProphet> oh wait, yes there is
10:52:20 <Lymia> !python print "ahem"
10:52:21 <EgoBot> ahem
10:52:21 <CakeProphet> because you just used it.
10:52:31 <Lymia> !python print version
10:52:32 <EgoBot> Traceback (most recent call last):
10:52:41 <CakeProphet> !delinterp py
10:52:41 <EgoBot> ​Interpreter py deleted.
10:52:49 <zzo38> The same thing with the User:NO_Body request I get more than once. But that one is not even a proxy request, it is a request for the file on my server, which I do not even have (I know which server it is on, or at least was many years ago).
10:53:17 <CakeProphet> !python str.__len__=lambda self: -1; print len("A")
10:53:18 <EgoBot> Traceback (most recent call last):
10:53:37 <zzo38> I seem to get requests for "proxyheader.php" on different servers
10:54:06 <CakeProphet> <EgoBot> TypeError: can't set attributes of built-in/extension type 'str'
10:54:12 <CakeProphet> Lymia: foiled
10:54:19 <Sgeo> http://answers.yahoo.com/question/index?qid=20090611071837AAGVVCX someone actually felt the need to ask in Yahoo! Answers
10:54:33 <Sgeo> I mean, I Googled it, but only to use the calculator because I'm lazy
10:55:24 <Sgeo> Lazyness something something virtue
10:56:00 <CakeProphet> I actually use sh as my calculator
10:56:04 <zzo38> I also get request for /wiki/index.php?title=Special:Userlogin&returnto=Image:NB_Art_REF.png (on the same server as the other file)
10:56:22 <CakeProphet> ghci if I'm trying to do something complicated involving sequences.
10:56:40 <Lymia> > 1 + 1
10:56:40 <lambdabot> 2
10:56:51 <Lymia> Bask in Haskell's glory
10:57:00 <CakeProphet> > e
10:57:01 <lambdabot> e
10:57:05 <Patashu> > aeiou
10:57:06 <lambdabot> Not in scope: `aeiou'
10:57:10 <CakeProphet> hmmm, where can I find e in Haskell?
10:57:13 <Sgeo> [S] All: Behold Glory of Haskell
10:57:13 <Patashu> :t e
10:57:14 <lambdabot> Expr
10:57:16 <CakeProphet> > log 1
10:57:17 <lambdabot> 0.0
10:57:19 <Lymia> > e + e
10:57:20 <lambdabot> e + e
10:57:26 <Lymia> > t
10:57:27 <lambdabot> t
10:57:28 <Lymia> > g
10:57:29 <lambdabot> Ambiguous type variable `a' in the constraints:
10:57:29 <lambdabot> `SimpleReflect.FromExpr ...
10:57:32 <Lymia> :c
10:57:33 <Lymia> wat
10:57:33 <zzo38> I already told MFGG that I do not have their wiki on my server!!
10:57:37 <Lymia> > e 2
10:57:38 <lambdabot> Couldn't match expected type `t1 -> t'
10:57:38 <lambdabot> against inferred type `Simpl...
10:58:01 <CakeProphet> Lymia: f and g are function Expr things
10:58:07 <CakeProphet> > f 2
10:58:08 <lambdabot> Ambiguous type variable `a' in the constraints:
10:58:08 <lambdabot> `SimpleReflect.FromExpr ...
10:58:10 <CakeProphet> > f a
10:58:11 <lambdabot> Ambiguous type variable `a' in the constraints:
10:58:11 <lambdabot> `GHC.Show.Show a'
10:58:12 <lambdabot> a...
10:58:15 <CakeProphet> ...er
10:58:16 <CakeProphet> yeah.
10:58:19 <CakeProphet> > fix f
10:58:20 <lambdabot> Ambiguous type variable `a' in the constraints:
10:58:20 <lambdabot> `GHC.Show.Show a'
10:58:20 <lambdabot> a...
10:58:24 <CakeProphet> > fix f :: Expr
10:58:25 <lambdabot> f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (...
10:58:30 <Patashu> > 'aeiou'
10:58:31 <lambdabot> <no location info>:
10:58:31 <lambdabot> lexical error in string/character literal at chara...
10:58:35 <CakeProphet> > f a :: Expr
10:58:35 <lambdabot> f a
10:58:37 <Patashu> > Show "Aeiou"
10:58:38 <lambdabot> Not in scope: data constructor `Show'
10:58:42 <Patashu> > Show 'Aeiou'
10:58:43 <lambdabot> <no location info>:
10:58:43 <lambdabot> lexical error in string/character literal at chara...
10:58:45 <CakeProphet> Patashu: double quotes.
10:58:45 <Patashu> lol
10:58:49 <Patashu> > "Aeiou"
10:58:50 <lambdabot> "Aeiou"
10:58:51 <Patashu> ah ok
10:58:55 <Patashu> > 'a'
10:58:56 <lambdabot> 'a'
10:58:57 <Patashu> mmk
10:59:12 <CakeProphet> > succ 'a'
10:59:13 <lambdabot> 'b'
10:59:16 <CakeProphet> > succ "a"
10:59:17 <lambdabot> No instance for (GHC.Enum.Enum [GHC.Types.Char])
10:59:17 <lambdabot> arising from a use of `...
10:59:40 <Patashu> map succ "a"
10:59:45 <Patashu> oops
10:59:48 <Patashu> > map succ "A"
10:59:48 <lambdabot> "B"
10:59:51 <Patashu> yesss
10:59:56 <CakeProphet> > succ <$> "A"
10:59:57 <lambdabot> "B"
11:00:09 <zzo38> I get spambots filling in a search page.
11:00:11 <Patashu> repeat 13 $ map succ "A"
11:00:18 <Patashu> > repeat 13 $ map succ "A"
11:00:19 <lambdabot> Couldn't match expected type `a -> b' against inferred type `[t]'
11:00:22 <Patashu> hmmm
11:00:22 <CakeProphet> not what you want.
11:00:24 <Patashu> :t repeat
11:00:25 <lambdabot> forall a. a -> [a]
11:00:27 <CakeProphet> > repeat 13
11:00:28 <Patashu> oh
11:00:28 <lambdabot> [13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13...
11:00:30 <Patashu> yeah
11:00:33 <CakeProphet> you want replicate
11:00:35 <Patashu> what's the one that only does it 13 times
11:00:36 <Patashu> aah
11:00:44 <Patashu> > replicate 13 $ map succ "A"
11:00:44 <lambdabot> ["B","B","B","B","B","B","B","B","B","B","B","B","B"]
11:00:46 <Patashu> ah, no
11:00:51 <zzo38> I get requests consisting of (apparently) completely random bytes, not even with a proper HTTP request method.
11:00:56 <Patashu> I want 'do this 13 times'
11:01:06 <CakeProphet> Patashu: take 13 . iterate
11:01:16 <Patashu> take 13 . iterate . map succ "A"
11:01:20 <Patashu> > take 13 . iterate . map succ "A"
11:01:21 <lambdabot> Couldn't match expected type `[a]'
11:01:22 <lambdabot> against inferred type `a1 -> [a1]'
11:01:28 <CakeProphet> ... use $ instead of dot between iterate and map
11:01:35 <Patashu> > take 13 . iterate $ map succ "A"
11:01:35 <lambdabot> Couldn't match expected type `[a]'
11:01:35 <lambdabot> against inferred type `a1 -> [a1]'
11:01:42 <CakeProphet> er wait nevermind
11:01:44 <Patashu> > take 13 $ iterate $ map succ "A"
11:01:45 <lambdabot> Couldn't match expected type `a -> a'
11:01:45 <lambdabot> against inferred type `[GHC.T...
11:01:46 <CakeProphet> you want this
11:01:47 <Patashu> lol
11:02:00 <CakeProphet> > take 13 . iterate succ 'a'
11:02:01 <lambdabot> Couldn't match expected type `[a]'
11:02:01 <lambdabot> against inferred type `GHC.Types...
11:02:07 <CakeProphet> > take 13 . iterate $ succ 'a'
11:02:07 <lambdabot> Couldn't match expected type `[a]'
11:02:08 <lambdabot> against inferred type `a1 -> [a1]'
11:02:10 <CakeProphet> ...
11:02:13 <CakeProphet> :t iterate
11:02:13 <lambdabot> forall a. (a -> a) -> a -> [a]
11:02:30 <Patashu> iterate succ 'a'
11:02:33 <Patashu> > iterate succ 'a'
11:02:34 <lambdabot> "abcdefghijklmnopqrstuvwxyz{|}~\DEL\128\129\130\131\132\133\134\135\136\137...
11:02:39 <Patashu> okay
11:02:45 <CakeProphet> :t take 13 . iterate
11:02:46 <lambdabot> Couldn't match expected type `[a]'
11:02:46 <lambdabot> against inferred type `a1 -> [a1]'
11:02:46 <lambdabot> Probable cause: `iterate' is applied to too few arguments
11:02:49 <CakeProphet> :t take
11:02:50 <lambdabot> forall a. Int -> [a] -> [a]
11:02:51 <Patashu> > (iterate succ 'a') !! 13
11:02:52 <lambdabot> 'n'
11:03:01 <Patashu> can I do...
11:03:12 <Patashu> > (13 !!) $ iterate succ 'a'
11:03:12 <lambdabot> Couldn't match expected type `GHC.Types.Int'
11:03:13 <lambdabot> against inferred type ...
11:03:14 <Patashu> nope
11:03:17 <Patashu> :t !!
11:03:18 <lambdabot> parse error on input `!!'
11:03:30 <CakeProphet> > take 13 . iterate succ $ 'a'
11:03:32 <lambdabot> "abcdefghijklm"
11:03:52 <CakeProphet> Patashu: if you want only the 13th one, sure.
11:03:55 <Patashu> > tail . take 13 . iterate succ $ 'a'
11:03:57 <lambdabot> "bcdefghijklm"
11:03:59 <Patashu> oh
11:04:02 <Patashu> > last . take 13 . iterate succ $ 'a'
11:04:03 <lambdabot> 'm'
11:04:16 <Patashu> > map . last . take 13 . iterate succ $ "aeiou"
11:04:17 <lambdabot> Couldn't match expected type `a -> b'
11:04:17 <lambdabot> against inferred type `[GHC.T...
11:04:34 <Patashu> > map $ last . take 13 . iterate succ $ "aeiou"
11:04:35 <lambdabot> Couldn't match expected type `a -> b'
11:04:35 <lambdabot> against inferred type `[GHC.T...
11:04:36 <CakeProphet> Patashu: I don't know where you get this idea you can tact on an arbitrary function and expect something to happen....
11:04:42 <Patashu> > map (last . take 13 . iterate succ) $ "aeiou"
11:04:44 <lambdabot> "mqu{\129"
11:04:48 <Patashu> there we go
11:05:20 <Patashu> > map last . take 13 . iterate . succ $ "aeiou"
11:05:21 <lambdabot> Couldn't match expected type `[[a]]'
11:05:22 <lambdabot> against inferred type `a1 -> [...
11:05:24 <Patashu> hmm
11:05:49 <CakeProphet> > (!!13) . iterate succ $ 'a'
11:05:51 <lambdabot> 'n'
11:06:01 <CakeProphet> Patashu: think about how last works
11:06:03 <CakeProphet> and how map works.
11:06:06 <Patashu> > map (!!13 . iterate succ) $ "I'm laughing for real right now guys"
11:06:06 <CakeProphet> :t last
11:06:06 <lambdabot> Couldn't match expected type `GHC.Types.Int'
11:06:07 <lambdabot> against inferred type ...
11:06:07 <lambdabot> forall a. [a] -> a
11:06:07 <CakeProphet> :t map
11:06:08 <lambdabot> forall a b. (a -> b) -> [a] -> [b]
11:06:09 <Patashu> blar
11:06:11 <Patashu> oh wait
11:06:14 <Patashu> > map ((!!13) . iterate succ) $ "I'm laughing for real right now guys"
11:06:15 <lambdabot> "V4z-yn\130tuv{t-s|\DEL-\DELrny-\DELvtu\129-{|\132-t\130\134\128"
11:06:18 <Patashu> there we go lol
11:06:41 <CakeProphet> oh rot13? kind of.
11:07:43 <CakeProphet> > map ((!!13).(
11:07:44 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
11:07:49 <zzo38> Why do I get so many CONNECT 127.0.0.1:6667 requests? They seem to be once each day, always from the same client requesting it. Each time it also comes with a POST request to the same address.
11:08:45 <zzo38> Actually at irregular intervals.
11:10:57 <CakeProphet> > map ((!!13).(\c -> iterate (if c > 'm' || c > 'M' then pred else succ) c)) "Hello World"
11:10:58 <lambdabot> "UX__b-Jbe_W"
11:11:11 <CakeProphet> I don't think I did that correctly.
11:11:26 <CakeProphet> !rot13 Hello, World!
11:11:26 <EgoBot> Uryyb, Jbeyq!
11:11:40 <CakeProphet> ah... of course not.
11:12:36 <CakeProphet> > map ((!!13).(\c -> iterate (if toLower c > 'm' then pred else succ) c)) "Hello World"
11:12:38 <lambdabot> "Uryyb-Jbeyq"
11:12:46 <CakeProphet> crude. :P
11:13:25 <CakeProphet> Haskell's not really the best language for this application, without the use of some library I know nothing about.
11:15:39 <CakeProphet> !perl $_='Hello World'; tr/a-zA-Z/n-za-mN-ZA-M/; print
11:15:39 <EgoBot> Uryyb Jbeyq
11:17:15 <CakeProphet> !perl $_='This is by far the most complex cypher in the world'; tr/a-zA-Z/z-aZ-A/; print
11:17:15 <EgoBot> Invalid range "z-a" in transliteration operator at /tmp/input.3064 line 1.
11:17:28 <CakeProphet> what? how silly.
11:17:32 <Sgeo> Why does Perl being demonstratably useful for something make me sad?
11:17:41 <CakeProphet> Sgeo: dunno. it shouldn't.
11:18:44 <CakeProphet> Perl is demonstratably useful for several things. I honestly think most of you guys just look at the syntax and decide to hate it.
11:18:57 <CakeProphet> well, maybe not most.
11:19:03 <Sgeo> Please don't generalize me as being representative of #esoteric
11:19:07 <CakeProphet> some. yes, that's more acceptable, and equally vague.
11:20:06 <CakeProphet> I know elliott probably has some reason for why he dislikes Perl that he'll probably explain when he's online next. And I know pikhq dislikes it from experience.
11:22:06 <CakeProphet> but I suspect a large part of it is the syntax.
11:22:44 <CakeProphet> the vast amounts of it, the "ugliness", and so on.
11:23:12 <Lymia> !tr ja-en This is by far the most complex cypher in the world
11:23:21 <Lymia> :<
11:23:42 <CakeProphet> and then there's stuff like being difficult to debug. Which is true for most dynamically typed interpreted languages, but especially true for Perl, where almost every operation will spit out something (usually undef) in the event that it fails.
11:24:11 <Lymia> Instead of an exception?
11:24:31 <CakeProphet> which leads to poor error handling. Which is to say, there isn't really any of that. No exception handling mechanism. You just add an "or die 'error message'" to the end of a line that you want to halt the program if it fails.
11:25:15 <Lymia> !python raise Exception()
11:25:15 <EgoBot> Traceback (most recent call last):
11:25:16 <CakeProphet> basically you ignore errors in Perl. which is convenient for small scripts, but again, makes things difficult to debug.
11:25:26 <Lymia> !python raise Exception()
11:25:26 <EgoBot> Traceback (most recent call last):
11:25:30 <zzo38> Does Perl6 have possibility to use exceptions then?
11:25:43 <CakeProphet> uh, I honestly don't know much about Perl 6.
11:25:58 <CakeProphet> other than I probably won't like it as much.
11:26:20 <CakeProphet> but yes they're generally improving everything, so I wouldn't be surprised if they added proper exception handling.
11:26:53 <CakeProphet> (I know that sounds pretty inconsistent of me.. but whatever)
11:27:30 <CakeProphet> another problem is the OO semantics are complete crap.
11:27:48 <CakeProphet> but I don't really use Perl as an object-oriented language, so... don't care.
11:30:42 <CakeProphet> what I like about Perl is: a) massive online repository. Probably the largest for any language because it's been around forever. You can find a module to do just about anything and install it quickly (unless it has dependencies that are no longer maintaind or fail for whatever reason) b) massive amounts of syntax, which means that there are shorthands to do just about everything. This is very nice when you're trying to
11:31:25 <Sgeo> Can you make your own syntax adjustments?
11:31:31 <Sgeo> That is, define your own syntax for stuff?
11:31:36 <CakeProphet> and that is my massively sleep deprived rant on the benefits and drawbacks of Perl that I've discovered so far in my few months of learning it. I am now going to sleep. You can pester me about how wrong I am tomorrow. Good night (morning, really)
11:31:41 <CakeProphet> Sgeo: yes.
11:31:44 <Sgeo> oooo
11:32:16 <Sgeo> Night
11:32:47 <Vorpal> CakeProphet, isn't CTAN older than CPAN?
11:33:19 <Vorpal> CakeProphet, also your line got cut off
11:33:24 <Vorpal> "This is very nice when you're trying to "
11:34:05 <CakeProphet> program something quickly. c) excellent string handling capabilities. This goes without saying.
11:34:12 <CakeProphet> http://www.perlmonks.org/?node_id=742468 <--see this
11:34:24 <Vorpal> CakeProphet, anyway I'm pretty sure CTAN is older than CPAN
11:34:32 <Vorpal> of course TeX is not general purpose
11:34:41 <CakeProphet> and: http://search.cpan.org/~pmqs/Filter-1.37/Call/Call.pm
11:34:59 <CakeProphet> Vorpal: oh, well yes. I didn't say it was /the oldest ever/.
11:35:19 <Vorpal> hm true
11:35:49 <CakeProphet> Sgeo: so I'm not sure if it's built directly into the language, but this module lets you modify the source code at compile time.
11:35:53 <Vorpal> CakeProphet, anyway the command line tool for cpan is a pain
11:35:57 <CakeProphet> with all of the hackish regex you could ever want.
11:36:00 <zzo38> TeX is for typesetting stuff but it can be made to do a lot of things.
11:36:04 <CakeProphet> Vorpal: yeah it can be.
11:36:11 <Vorpal> CakeProphet, for a start it tends to conflict with distro package manager, and even when it doesn't, it works badly
11:36:51 <CakeProphet> I haven't that happen. But I have had it fail often due to broken dependencies. I think this just happens on a per-package basis though, when old modules stop being maintained or whatever.
11:37:06 <CakeProphet> and sometimes I'll be missing some kind of C library and it'll take me a while to figure out what it is.
11:37:30 <Vorpal> CakeProphet, doesn't perl have a FFI?
11:37:38 <Vorpal> oh you mean the module depends on a C library
11:37:41 <CakeProphet> right.
11:37:49 <CakeProphet> and, I have no idea, actually.
11:37:51 <Vorpal> surely you get some error like "foo.h not found" or such then
11:37:57 <CakeProphet> ...nope.
11:38:00 <Vorpal> CakeProphet, what?
11:38:05 <Vorpal> what is the error you get then
11:38:08 <CakeProphet> I have to go up to the linker option line that it spits out
11:38:19 <CakeProphet> and see which libraries I have and don't have.
11:38:27 <Vorpal> CakeProphet, okay so foo.a or foo.so or foo.la not found
11:38:32 <Vorpal> surely -_-
11:38:35 <CakeProphet> ...no, nothing that nicely written.
11:38:39 <Vorpal> ugh
11:38:47 <Vorpal> CakeProphet, shouldn't the config process check it anyway
11:39:04 <CakeProphet> but that's okay because Perl is for L33T H4XX0RS LOLOLOLO we can figure this stuff out.
11:39:09 <Vorpal> basically, unless it is libc or libm, configure should check it exists
11:39:14 <CakeProphet> uh.... maybe? I don't really know how cpan works, okay.
11:39:19 <Vorpal> IMO
11:39:37 <Vorpal> CakeProphet, yes but why make it hard for the users
11:39:42 <Vorpal> even if they are programmers
11:40:56 <CakeProphet> ...that is a somewhat loaded question, so I will not answer it. :P
11:41:13 <Vorpal> CakeProphet, how do you mean it is loaded?
11:41:22 <CakeProphet> "Oh, well yes, it's good to make it hard for users because that provides them with a challenge!"
11:41:40 <Vorpal> interesting point of view, did you actually mean it?
11:41:45 <CakeProphet> or, my actual response would be like:
11:41:50 <CakeProphet> uh, I don't know. That's probably a bad idea.
11:42:00 <Vorpal> well okay
11:42:03 <Vorpal> maybe a bit loaded
11:42:06 <CakeProphet> in any case I don't think they /try/ to accomplish that.
11:42:15 <Vorpal> CakeProphet, anyway, cpan is a pain to use.
11:42:26 <CakeProphet> yes when it doesn't work. which is often enough.
11:42:38 <Vorpal> CakeProphet, are you sure they aren't trying to create the IWBTG of package managers?
11:42:41 <Vorpal> ;P
11:43:00 <CakeProphet> ...no. I mean
11:43:10 <CakeProphet> there is a /ridiculous amount/ of output when you install stuff
11:43:15 <CakeProphet> so, there /might/ be something useful in it
11:43:26 <CakeProphet> but it takes a while to sift through.
11:43:33 <Vorpal> CakeProphet, if it uses gnu ld to link I'm pretty sure you should get a easily visible linker warning
11:43:54 <CakeProphet> yeah it does.
11:44:26 <CakeProphet> but I usually don't pipe the output into grep or anything on the first run, so I miss all of that pretty easily.
11:44:38 <Vorpal> $ ld -o test build/main.o -lnosuchlib
11:44:38 <Vorpal> ld: cannot find -lnosuchlib
11:44:40 <Vorpal> for example ^
11:44:52 <Vorpal> CakeProphet, wouldn't it error out on the first error?
11:45:20 <CakeProphet> well... see
11:45:30 <Vorpal> yes?
11:45:32 <CakeProphet> this has been a month ago, and I have a terrible memory. So...
11:45:36 <Vorpal> hm okay
11:45:38 <CakeProphet> maybe?
11:46:16 <CakeProphet> it wasn't a big deal I found out what was missing. But I don't remember an obvious "can't find this lib" thing.
11:46:21 <Vorpal> linker errors tend to be rather straight-forward. Unlike C++ or haskell errors. Heck even C errors are complex compared to linker ones usually.
11:46:34 <CakeProphet> the more frustrating problem is when other Perl modules fail to instal for whatever reason. A test fails or something.
11:46:44 <Vorpal> I only hit confusing linker errors when cross compiling basically.
11:46:58 <Vorpal> CakeProphet, heh
11:47:50 <CakeProphet> but, occasionally problems aside, the sheer amount of modules on CPAN is quite nice.
11:48:28 <CakeProphet> but I agree the cpan program could be a little better.
11:49:14 <CakeProphet> OKAY GOOD NIGHT.
11:49:20 <CakeProphet> !kill everything
11:50:14 <CakeProphet> !rot47 ii could pull 2o much triippy 2hiit out of my 2piinal creviice, iit would make your head 2piin liike dervii2h iin a fuckiing blender.
11:50:15 <EgoBot> ​:: 4@F=5 AF== a@ >F49 EC::AAJ a9::E @FE @7 >J aA::?2= 4C6G::46[ ::E H@F=5 >2<6 J@FC 9625 aA::? =::<6 56CG::a9 ::? 2 7F4<::?8 3=6?56C]
11:52:37 <CakeProphet> > fix (const 5) "I CAN DO WHATEVER I WANT"
11:52:38 <lambdabot> 5
11:52:47 <Vorpal> CakeProphet, weren't you going to sleep
11:52:55 <Vorpal> or was that a statement about the quality of the night?
11:52:59 <CakeProphet> !perl sleep
11:53:17 <Vorpal> CakeProphet, how long does that sleep for?
11:53:35 <CakeProphet> forever.
11:53:40 -!- guy_ has quit (Ping timeout: 244 seconds).
11:53:40 <Vorpal> will time out soon then
11:53:49 <Vorpal> I forgot if it prints anything on timeout
12:24:27 -!- Vorpal has quit (Ping timeout: 246 seconds).
12:46:40 -!- Sgeo_ has joined.
12:47:07 -!- Sgeo__ has joined.
12:47:37 -!- Sgeo_ has quit (Client Quit).
12:47:45 -!- Sgeo__ has quit (Client Quit).
12:58:55 <zzo38> Can you make a C program in 4K that takes the longest time to compile?
12:59:30 <Patashu> That's an interesting contest
12:59:45 <Patashu> I don't know anything about what makes compiling faster/slower though. Maybe shitloads of templates?
13:01:36 <zzo38> Templates? That is C++? Maybe you can try one with C++ as well, then. And one with C.
13:01:42 <Sgeo> C doesn't have te... what zzo38said
13:01:44 <Patashu> Ah, yeah
13:03:01 <Patashu> Is there a specific compiler you have in mind?
13:03:07 <Patashu> And command line options
13:03:40 <zzo38> gcc, although there might be other ideas
13:04:14 <Patashu> Is there a c compiler that figures out and replaces expensive constant divisions with 'magic number' operations?
13:04:16 <Patashu> Or whatever they're called
13:21:04 -!- Sgeo_ has joined.
13:22:01 -!- Sgeo has quit (Ping timeout: 244 seconds).
13:32:32 -!- foocraft has joined.
13:45:44 <Sgeo_> I am embarrassed by some of the atheists on /r/DebateAnAtheist and /r/DebateAChristian. Doesn't mean I won't hang out there, but still
13:54:02 -!- guy_ has joined.
13:54:09 -!- guy_ has quit (Changing host).
13:54:09 -!- guy_ has joined.
13:55:09 <Sgeo_> Hi guy_
14:29:00 <guy_> hi Sgeo_
14:30:13 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:43:09 -!- foocraft has quit (Ping timeout: 240 seconds).
14:54:29 -!- Phantom_Hoover has joined.
14:54:50 <Phantom_Hoover> Well lambdabot I wonder if there are any messages today.
14:54:50 <lambdabot> Phantom_Hoover: You have 6 new messages. '/msg lambdabot @messages' to read them.
14:55:29 -!- foocraft has joined.
15:47:59 -!- Wamanuz has quit (Read error: Connection reset by peer).
15:48:20 -!- Wamanuz has joined.
15:57:27 -!- copumpkin has joined.
16:04:43 -!- Wamanuz has quit (Remote host closed the connection).
16:05:11 -!- Wamanuz has joined.
16:09:17 -!- aloril has quit (Ping timeout: 250 seconds).
16:17:36 -!- Vorpal has joined.
16:18:03 <Vorpal> [50265.669097] PM: Device 00:0a failed to restore: error -19 <-- huh?
16:18:14 <Vorpal> oh hm
16:18:19 <Vorpal> lrwxrwxrwx 1 root root 0 2011-06-13 18:17 /sys/devices/pnp0/00:0a/driver -> ../../../bus/pnp/drivers/tpm_tis
16:19:04 <pikhq> zzo38: #include "this.c" in this.c
16:20:34 <Vorpal> btw, I successfully completed the theory part of the exam for getting driving license!
16:21:26 -!- aloril has joined.
16:21:31 <pikhq> Vorpal: That would be much less noteworthy in the US.
16:21:59 <pikhq> "Yay, I can complete 10 questions multiple choice!"
16:22:06 <Sgeo_> Even I did that!
16:22:43 <Vorpal> <pikhq> Vorpal: That would be much less noteworthy in the US. <-- I know.
16:22:52 <Vorpal> but. You have to get 60 out of 65 tricky questions right here. You have 45 minutes for it.
16:23:18 <Vorpal> oh and it is actually 70 questions but 5 of those are test ones for future exams
16:23:28 <Vorpal> you don't know which ones are test ones
16:23:36 <Phantom_Hoover> Sgeo_, yes, but then you had to overcome the insurmountable wall that was your idiot father.
16:24:07 <pikhq> Vorpal: I bet you're frightened by US roads now. ;)
16:24:35 <Sgeo_> I've heard of people cheating...
16:27:02 <pikhq> And I happen to know you can take the test arbitrary times.
16:28:01 -!- Vorpal has quit (Ping timeout: 250 seconds).
16:28:04 <pikhq> You could, in theory, brute force the driving exam.
16:28:05 -!- Vorpal_ has joined.
16:28:08 <pikhq> *shudder*
16:28:25 <Sgeo_> Vorpal_, were you hit by a US driver?
16:29:31 <Vorpal_> <Sgeo_> Vorpal_, were you hit by a US driver? <-- ?
16:29:38 -!- Vorpal_ has changed nick to Vorpal.
16:29:47 * Vorpal reads scrollback after "<Phantom_Hoover> Sgeo_, yes, but then you had to overcome the insurmountable wall that was your idiot father."
16:29:53 <Vorpal> logs*
16:30:31 <Vorpal> pikhq, wrt US roads: YES
16:30:40 <Vorpal> "I've heard of people cheating..." <-- how?
16:30:55 <pikhq> I DON'T WANT TO KNOW HOW
16:31:10 <Vorpal> You could, in theory, brute force the driving exam. <-- surely it would change over time. I mean... I don't think they give the same set of questions to everyone
16:31:23 <pikhq> You'd like to think that wouldn't you.
16:31:47 <Sgeo_> How do people cheat on most multiple-choice exams where there are other people?
16:32:16 <pikhq> I dunno. I have never felt the urge to try.
16:32:37 <pikhq> Though, being me, I would probably be an expert on it in a few days.
16:32:41 <pikhq> If I cared.
16:33:18 <Phantom_Hoover> No pikhq that is not arrogant at all.
16:33:37 <Vorpal> <Sgeo_> How do people cheat on most multiple-choice exams where there are other people? <-- well I did see in the corner of the eye that another guy had something completely different up on his monitor, that I never got
16:33:46 <Vorpal> so I'm 99% sure that they use different randomised sets of questions
16:34:00 <Sgeo_> Hmm, I wasn't thinking computerized
16:34:04 <Sgeo_> When I took it, it was on paper
16:40:23 <Vorpal> right, mine was computerised
16:43:03 <pikhq> So. I wanna have this be able to output tup, shell, or make... Problem with that plan is that generating dependencies for make is Hell.
16:43:09 <pikhq> Not just hell, but Hell.
16:43:20 <pikhq> That level of torture has earned the upper case.
16:43:48 -!- azaq23 has joined.
16:49:04 -!- foocraft_ has joined.
16:51:53 -!- foocraft has quit (Ping timeout: 240 seconds).
17:08:53 -!- monqy has joined.
17:22:51 -!- Kustas has joined.
17:24:29 -!- TOGoS has joined.
17:24:39 -!- TOGoS has left.
17:36:59 -!- Gregor has quit (Quit: Coyote finally caught me).
22:08:24 -!- esowiki has joined.
22:08:25 -!- glogbot has joined.
22:08:29 <Gregor> ^^^ less amazing >_>
22:09:00 <Gregor> I want to know why I got a message to my phone when Codu went down (step one of the DMS), but glogbackup didn't join >_<
22:09:33 <Sgeo_> <slava> Sgeo_: continuations are dumb
22:09:58 <Gregor> Are you asking us to comment on the validity of that statement? :P
22:10:06 <elliott> no he just needs a place to cry
22:10:08 <elliott> and this is that place
22:10:09 <pikhq> So, here's my no-op C99 "check" as a solver: solution c99 {solved c99 {set [uplevel namespace current]::cc "gcc -std=c99"}}
22:10:20 <elliott> pikhq: gross
22:10:26 <elliott> it should check gcc actually works
22:10:32 <elliott> and claims to support c99
22:10:42 <Gregor> pikhq: -pedantic
22:10:59 <pikhq> elliott: Yeah, I was just giving that as an example of how to actually write a stupidly simple solution.
22:11:13 <elliott> Gregor: thats not a c99 compiler
22:11:18 <elliott> thats a c99 compiler that complains a lot
22:11:24 <elliott> see gcc does actually emit all the diagnostics c99 asks it to
22:11:27 <elliott> it just emits them to /dev/null
22:12:48 <pikhq> Also, I should add an "args" to that, since, uh, generic checks will probably want to see those. :P
22:16:23 -!- zzo38 has quit (Remote host closed the connection).
22:17:26 <elliott> its hilarious how rand claim copyright on A Million Random Digits with 100,000 Normal Deviates
22:21:23 <Gregor> http://www.amazon.com/Million-Random-Digits-Normal-Deviates/dp/0833030477 <-- customers who viewed this item also viewed "Male Testicular Exam Model Anatomy"
22:21:52 <Gregor> "Turn your head and cough ..." (flips to a page and chooses a number) "four times."
22:22:46 * elliott notes that http://hcoop.net/~ntk/random/ is a copyright-free derivative
22:25:26 <elliott> "NOTHING WILL BE SHIPPED. PURELY MEANT TO BE BOUGHT AS HUMOROUS IN YOUR "ORDERS" PAGE." --amazon seller
22:26:18 <Gregor> elliott: lolwuzzat?
22:26:38 <elliott> Gregor: It's the sole seller for the modern literary masterpiece Hgiyiyi (hgjhjh, hjhk). http://www.amazon.com/Hgiyiyi-hgjhjh-hjhk-jjjj/dp/0649875427/ref=cm_cr_pr_product_top
22:27:22 <olsner> einstein pondering the planck mass: http://i.imgur.com/4qkrT.jpg
22:27:31 <oerjan> Hgiyiyi slowly turned his head, as the beast crept towards him
22:28:09 <elliott> oerjan: ugh, you're reading the translation?
22:28:21 <elliott> I realise it was done by the author themselves, but it's just so more exquisite in the original yuajik:
22:28:38 <elliott> Akj hgiyiyi hgjska ojtofngkjdl klsf, asjkhglfda ksjahglsjkh dkjah ighaiygagya gayigii.
22:28:54 <elliott> olsner: this channel is pg thirteenXXNXJOIXkp
22:29:29 <oerjan> einstein was always pg13. except when cheating on his wife.
22:30:51 -!- CakeProphet has quit (Ping timeout: 246 seconds).
22:31:52 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:33:08 -!- Gregor has set topic: This channel rated M for strong language, sexual overtones and gore (Vidal). Parental discretion is advised. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
22:34:11 -!- elliott has set topic: this channel rated m ... for MURDER | logs: codu.org slash logs slash _ esoteric.
22:34:57 -!- Gregor has set topic: This channel rated for "You are Only Allowed to Use is Channel if you Have a Legitimate Keyboard" | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
22:37:33 -!- elliott_ has joined.
22:37:34 -!- elliott has quit (Read error: Connection reset by peer).
22:37:47 <olsner> þ! yay, my keyboard is legitimate!
22:39:17 <oerjan> þ! my cut-and-paste is legitimate!
22:40:01 <olsner> no, that's just an illegitimate cut-and-paste bastard of a þ
22:40:18 <oerjan> :´(
22:40:51 <olsner> you should know better than making þs out of wedlock
22:41:51 <oerjan> > ord 'þ'
22:41:52 <lambdabot> 254
22:44:10 <elliott_> `addquote <olsner> you should know better than making þs out of wedlock
22:44:11 <HackEgo> 455) <olsner> you should know better than making þs out of wedlock
22:51:18 <olsner> :)
22:51:41 <olsner> `quote olsner
22:51:42 <HackEgo> 173) <nooga> i think of languages as tools, there is no holy grail of languages <olsner> even if there's no holy grail, that doesn't mean cups of crap is ok \ 220) <olsner> DAMN YOU, I'm leaving <Vorpal> olsner, FINALLY NOTHING BETWEEN ME AND WORLD DOMINATION! \ 236) <tswett> elliott: just to bring you up to speed, you are
22:52:07 <tswett> `quote 236
22:52:08 <HackEgo> 236) <tswett> elliott: just to bring you up to speed, you are now my baby nephew. <olsner> wtf, elliott is a nephew and his uncle is here? <nooga> what <tswett> Heck yes I'm elliott's uncle.
22:52:47 <olsner> `quote 237
22:52:48 <HackEgo> 237) <Anti-X> i didn't like jquery, until i decided to use it because it made development faster. now i can't go back to women...
22:54:35 <elliott_> `quote tun
22:54:36 <HackEgo> No output.
22:54:41 <elliott_> `quote hlt
22:54:42 <HackEgo> No output.
22:54:44 <elliott_> `quote hok
22:54:46 <HackEgo> No output.
22:54:46 <elliott_> `quote hop
22:54:47 <olsner> `quote hcf
22:54:47 <HackEgo> 4) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop \ 258) <Sgeo> Is there a name for something where I'm more attracted to someone if I know they've had a rough past? <variable> Sgeo, "Little Shop of Horrors" \ 314) <nddrylliog> back to legal tender, that expression really makes me daydream. Like,
22:54:48 <HackEgo> No output.
22:54:59 <elliott_> `quote 314
22:55:00 <HackEgo> 314) <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.
22:55:31 <olsner> that is an idea
22:55:58 <olsner> but I think it's based on the wrong meaning of tender
22:56:17 <Sgeo_> Yeah, money is basically a legal means of bruising people
22:56:39 <elliott_> `quote
22:56:40 <HackEgo> 54) <GregorR-L> If I ever made a game where you jabbed bears ... <GregorR-L> I'd call it jabbear.
22:56:48 <elliott_> `quote 413
22:56:49 <HackEgo> 413) <ZOMGMODULES> Vorpal: it's actually called Happy <ZOMGMODULES> Vorpal: Do not use it. Use Parsec. This is the wisdom of ZOMGMODULES.
22:57:09 <olsner> who was using the zomgmodules nick again?
22:57:19 <oerjan> cpressey
22:57:28 <olsner> neat
22:57:37 <elliott_> http://catseye.tc/projects/apple-befunge/
22:57:39 <elliott_> what an fun thing
22:57:47 <elliott_> (zomgmodules inspired me to check catseye)
22:57:47 <olsner> hmm, I've been slightly overusing the word "neat", I think
22:57:52 <elliott_> olsner: your parents are dead
22:57:53 <elliott_> <olsner> neat
22:57:57 -!- Wamanuz has quit (Remote host closed the connection).
22:58:07 <elliott_> ] RUN
22:58:07 <elliott_> ?BULLSH*T ERROR IN 20
22:58:07 <elliott_> ] LIST 20
22:58:07 <lambdabot> Unknown command, try @list
22:58:34 <elliott_> ugh
22:58:36 <elliott_> stupid throttling
22:58:38 <elliott_> ] RUN
22:58:40 <elliott_> ?BULLSH*T ERROR IN 20
22:58:40 <lambdabot> Unknown command, try @list
22:58:42 <elliott_> ] LIST 20
22:58:43 <oerjan> lambdabot severely lacks a @bullshit commend
22:58:44 <elliott_> 20 2 + 2 = 5
22:58:45 <oerjan> *a
22:58:46 <elliott_> quality humour from cats eye technologies
22:58:51 -!- Sgeo_ has changed nick to Sgeo.
22:59:11 <oerjan> > let 2+2 = 5 in 2+2 == 5
22:59:12 <lambdabot> True
22:59:32 <oerjan> > 2+2 == (4::Expr)
22:59:34 <lambdabot> True
22:59:39 <oerjan> huh
22:59:44 <oerjan> > 2+2 :: Expr
22:59:45 <lambdabot> 2 + 2
22:59:54 <elliott_> > 2+2 == (9::Expr)
22:59:55 <lambdabot> False
22:59:59 <elliott_> huh it actually evaluates it
23:00:03 <elliott_> ?hoogle Expr -> Integer
23:00:03 <lambdabot> Warning: Unknown type Expr
23:00:03 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
23:00:03 <lambdabot> Prelude floatRadix :: RealFloat a => a -> Integer
23:00:12 <oerjan> > a+2 == 4
23:00:13 <lambdabot> False
23:00:16 <oerjan> > a+2 == 2+a
23:00:17 <lambdabot> False
23:00:20 <olsner> > 2 + 2 :: Expr
23:00:21 <lambdabot> 2 + 2
23:00:28 <oerjan> > a+2 == a+2
23:00:29 <lambdabot> True
23:00:31 <elliott_> > 2 + 2 == (a :: Expr)
23:00:32 <lambdabot> False
23:00:32 <oerjan> > a+2 == a+1+1
23:00:33 <lambdabot> False
23:00:36 <elliott_> > a + 0 == (a :: Expr)
23:00:37 <lambdabot> False
23:00:39 <elliott_> ugh
23:01:06 <oerjan> > a^(5::Expr)
23:01:07 <lambdabot> a * a * (a * a) * a
23:01:15 -!- Wamanuz has joined.
23:01:53 <elliott_> lol what
23:02:21 <oerjan> > 1 < (2::Expr)
23:02:22 <lambdabot> True
23:02:39 <oerjan> > 1 > (2::Expr)
23:02:40 <lambdabot> False
23:02:56 <oerjan> it may have just enough evaluation that code using just numerals works
23:04:12 <oerjan> > a^10
23:04:13 <lambdabot> a * a * (a * a) * (a * a * (a * a)) * (a * a)
23:05:31 <oerjan> > gcd a b
23:05:35 <lambdabot> mueval-core: Time limit exceeded
23:05:45 <oerjan> > gcd (a+a) a
23:05:49 <lambdabot> mueval-core: Time limit exceeded
23:07:03 <elliott_> Expr is shitty :(
23:15:08 -!- Patashu has joined.
23:18:23 <olsner> "I come from a long line of people who were able to get laid at least once." :D
23:18:56 <Sgeo> What about sperm donation?
23:19:26 <olsner> that is not accounted for in the quote
23:19:35 <elliott_> imagine if your ancestors were like
23:19:37 <elliott_> sperm donated
23:19:40 <elliott_> ten generations up
23:19:48 <elliott_> the grand family of virgin
23:32:05 -!- pikhq has quit (Ping timeout: 252 seconds).
23:32:08 -!- pikhq_ has joined.
23:40:05 -!- DocHerrings has joined.
23:41:06 <elliott_> finally our herrings are saved
23:41:21 <olsner> the doctor! he's arrived!
23:41:27 <DocHerrings> No more shall they fear the dangers of disease!
23:41:44 <elliott_> or wait, are you a group of herrings with a phd
23:41:52 <elliott_> anything's possible
23:41:59 <olsner> save our soles! (wait, do you do soles too? or only herrings?)
23:42:39 <DocHerrings> Herrings only. They are the most sickly fish.
23:44:05 <elliott_> :(
23:44:12 <elliott_> herrings: god's least favourite fish
23:44:43 <elliott_> well, now you've experienced the highest-quality conversation this channel can sustain, it's all downhill from here
23:45:03 <DocHerrings> Then I can expect great things.
23:45:19 <olsner> the bottom of that hill is where you find the finest beasts
23:45:20 <elliott_> always nice when the newbies are optimistic
23:46:07 <olsner> "Hi, this is Freddie's dyslexia helpline. Please leave a massage."
2011-06-14
00:02:16 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]).
00:06:41 -!- clog has quit (Ping timeout: 240 seconds).
00:10:13 -!- Gregor has set topic: This channel rated for "You are Only Allowed to Use is Channel if you Have a Legitimate Keyboard" | Join ##verybadattitude for more intellectual discussions | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
00:11:02 <elliott_> * Cannot join ##verybadattitude (You are banned).
00:11:06 <elliott_> :D
00:11:12 <elliott_> is it just me or is everyone banned
00:11:12 <olsner> me too
00:11:16 <elliott_> oh good
00:11:20 <elliott_> thought i'd have to beat up Gregor there for a minute
00:11:37 <olsner> right, our attitude is not bad enough to qualify yet
00:11:41 <elliott_> Gregor: you should glogbot it
00:11:46 <elliott_> http://codu.org/logs/_matrixofsolidity/ <-- good use of disk space
00:11:49 <Gregor> elliott_: It has the chanserv +b *!*@* mode, which is slightly distinct from just having the channel mode because in fact the channel will become joinable once a minute, but as soon as you join you'll be kickbanned :P
00:12:04 <elliott_> Gregor: X-D
00:12:15 <Sgeo> joinable once a minute?
00:12:18 <elliott_> Gregor: So if you time it right and have discussions REALLY quickly...
00:12:19 -!- FireFly has quit (Quit: swatted to death).
00:12:44 <Gregor> Sgeo: Chanserv joins the channel to kickban you, then parts, but the channel only actually ceases existence (so loses its ban list) after about a minute.
00:13:13 <Sgeo> Ah
00:13:26 <Sgeo> It's possible to leave ChanServ in there, isn't it?
00:13:32 <Sgeo> So it never ceases existence?
00:13:34 <elliott_> hey Gregor do javascript dudes still think writing programs in continuation-passing style manually is the key to WEB SCALE speed
00:13:47 <olsner> hmm, as soon as *anyone* enters *everyone* get banned?
00:14:15 <elliott_> yes
00:14:38 <Gregor> olsner: AFAIK you can't make chanserv set more restrictive bans ... for everyone :)
00:15:46 <olsner> :)
00:16:22 <Gregor> What can I say, it has a very bad attitude *shrugs*
00:16:25 <Sgeo> YES I GOT IN
00:16:45 * Sgeo ruins it for everyone forever
00:17:04 <olsner> so basically everyone needs to keep away for >1minute then one person can be in there for like one second?
00:17:08 <Gregor> Sgeo: ... whuh?
00:17:15 <Sgeo> Joking about the forever
00:17:29 <Sgeo> And getting in doesn't mean staying in ofc
00:17:33 <Sgeo> But still
00:17:39 <Gregor> olsner: AFAIK it'll reset whether people are trying to /join or not, so you don't need to keep away :P
00:18:34 <olsner> hmm, so if you time it *just* right, you could actually have several people in there?
00:19:02 <Gregor> olsner: Not sure, I don't see why not though.
00:19:12 <elliott_> lets set up bots to coordinate conversations in there
00:19:14 <elliott_> really short conversations
00:20:12 <olsner> hey, this is like the numbers irc! ships meeting in the ocean to exchange "warez"
00:20:23 <olsner> *numb3rs
00:22:20 <elliott_> hahahaha
00:22:22 <elliott_> yessss
00:23:44 <olsner> "backtrace them!" "huh, we're banned? how can they have banned us, they don't know which name we're connecting with!"
00:24:38 <elliott_> loldoalfaolaol
00:25:41 <Gregor> lol, do Alf, AOL AOL!
00:26:11 <olsner> alf do aol! lol aol!
00:28:07 <oerjan> what a lousy palindrome
00:28:44 <olsner> it's so bad at being a palindrome it fails to be one
00:29:02 -!- CakeProphet has joined.
00:30:02 <olsner> oerjan: you're not a very good palindrome yourself though
00:30:41 <CakeProphet> tehporPekaC
00:31:30 <olsner> >renslo<
00:32:17 <elliott_> you know what really sucks haskell's module system
00:33:54 <monqy> no I don't
00:33:58 <monqy> what really sucks haskell's module system
00:35:20 <elliott_> yes
00:38:41 -!- foocraft_ has quit (Quit: Leaving).
00:44:56 <Sgeo> I think Factor's is worse
00:46:56 <monqy> c's module system is awful
00:49:39 -!- foocraft has joined.
00:53:21 <elliott_> Sgeo: how
01:01:31 <CakeProphet> elliott_: what's bad about it?
01:01:55 <Sgeo> As far as I know, there's no room for finding vocabs outside the ... directories where Factor's expecting them. Actually, hmm, not sure about that. But there's no way to deal with two independently developed samely-named vocabs
01:02:01 <Sgeo> afaik
01:02:11 <elliott_> CakeProphet: haskell's?
01:02:14 <CakeProphet> the hiding directive and choosing between qualified and unqualified are pretty sophisticated as far as I can tell.
01:02:14 <elliott_> its not ml's
01:02:17 <CakeProphet> yes.
01:02:19 <CakeProphet> ah, dunno about that.
01:02:33 <elliott_> basically there's no way to parameterise a module on another module
01:02:34 <elliott_> and that sucks
01:03:59 <Sgeo> Pretty sure Factor's on the same boat there
01:04:28 <Sgeo> Unless parameterising modules doesnt madate being able to parameterise on stu.. I'm clueless
01:04:41 <Sgeo> An example of parameterising on a module please?
01:05:03 <elliott_> i lost my motivation to explain right after complaining
01:05:09 <elliott_> maybe tomorrow
01:05:21 <elliott_> ill find the augustss post about it
01:06:05 <elliott_> Sgeo:
01:06:07 <elliott_> http://augustss.blogspot.com/2008/12/somewhat-failed-adventure-in-haskell.html
01:06:07 <elliott_> http://augustss.blogspot.com/2008/12/abstraction-continues-i-got-several.html
01:06:09 <elliott_> http://augustss.blogspot.com/2008/12/abstracting-on-suggested-solutions-i.html
01:06:10 <elliott_> http://augustss.blogspot.com/2008/12/ocaml-code-again-im-posting-slight.html
01:07:07 <CakeProphet> elliott_: parameterise?
01:07:17 <CakeProphet> is that kind of like Perl's module system...? I doubt it.
01:07:24 <elliott_> CakeProphet: i linked the blog posts for a reason
01:07:28 <elliott_> read chronologically
01:07:38 <CakeProphet> LOOK I DON'T WANT HOMEWORK.
01:07:42 <CakeProphet> I HAVE SHIT TO DO. IMPORTANT THINGS.
01:07:47 <CakeProphet> like playing Risk with friends later.
01:07:51 <CakeProphet> and eating food.
01:07:57 <CakeProphet> CAN'T MULTITASK, NOEP.
01:08:01 <elliott_> do you want me to paste in the blog posts
01:08:02 <elliott_> theyre short
01:08:02 <Sgeo> ty
01:10:53 <CakeProphet> uh, I'm not sure if this first one really has a point.
01:11:47 <elliott_> its showing something thats not possible in haskell
01:11:50 <elliott_> the later articles show how you can do it in ML
01:11:54 <elliott_> and how its still not possible to do cleanly in haskell
01:12:47 -!- foocraft has quit (Quit: Leaving).
01:14:35 <CakeProphet> elliott_: http://www.stefanwehr.de/publications/WehrChakravarty2008.html
01:14:48 <CakeProphet> BAM! ABSTRACT
01:15:00 <elliott_> irrelevant
01:15:05 <elliott_> typeclasses arent a viable replacement for the module system
01:15:08 <elliott_> because theyre a pain to use in this manner
01:15:22 <elliott_> anyway i linked the blog posts because im not actually interested in discussing this right now so
01:15:44 <CakeProphet> Good, then you agree that Perl has the best module system.
01:15:54 <CakeProphet> and will not be discussing further.
01:15:59 <elliott_> shut up
01:16:06 <monqy> what's so good about perl's
01:16:08 <CakeProphet> :)
01:16:14 <CakeProphet> monqy: nothing, actually. I was joking.
01:16:22 <monqy> :'(
01:16:56 <CakeProphet> it has some interesting export features. Modules can export different sets of functions based on 'tags' that you pass it.
01:17:30 <monqy> actually that sounds kind of gross
01:17:31 <CakeProphet> but otherwise there's nothing special about it. It's a limited subset of other languages module systems.
01:21:00 <CakeProphet> use Getopt::Long qw(:config no_ignore_case bundling gnu_compat permute)
01:21:31 <CakeProphet> the big list there is a bunch of config options you can pass that module.
01:22:17 <oerjan> from wikipedia's Did You Know "... that Stephen Fry was an engineer and aspiring jazz pianist before he captained South Africa's rugby team against the British Lions?"
01:23:24 <elliott_> lol
01:23:26 <oerjan> CakeProphet: you'd think that could easily be expanded to something resembling ML functors
01:23:58 <CakeProphet> I honestly don't know how they work
01:24:16 <CakeProphet> but since you can have arbitrary code execute as a result of those options, I wouldn't be surprised if it were possible, if a bit tedious.
01:24:37 <oerjan> CakeProphet: well basically you _do_ pass parameters to modules, and get a module instance back
01:24:53 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:24:54 <CakeProphet> except Perl has no type system really so, and ML functors seemed concerned with typing of things.
01:24:59 <oerjan> CakeProphet: well you'd want to be able to use more than just strings as parameters
01:25:22 <CakeProphet> hmmm, don't think that's possible actual.
01:25:23 <oerjan> CakeProphet: well yeah but you could get the non-typing part of it
01:26:07 <oerjan> i guess python's module system allows that pretty easily, since modules are more or less just dictionaries
01:26:25 <oerjan> (iiuc)
01:26:36 <oerjan> so you could create one on the fly
01:26:38 <CakeProphet> yes, they're a special kind of class or whatever.
01:26:47 <CakeProphet> and yes, you can dynamically make a module that doesn't exist anywhere on file.
01:28:19 <CakeProphet> but you couldn't pass parameters to immediately effect the runtime loading of a module
01:28:24 <CakeProphet> *affect
01:28:29 <CakeProphet> you would have to do something afterwards.
01:29:27 <oerjan> CakeProphet: well i'm not entirely sure about Standard ML, but in Ocaml you cannot pass parameters directly either, instead the functor is a member of the file module which can then apply to parameters
01:29:43 <CakeProphet> ah okay, yes you could do something like that.
01:30:01 <oerjan> *which you can
01:30:02 <CakeProphet> it would be like.... calling a function in the module, more or less.
01:30:07 <oerjan> yeah
01:30:34 <CakeProphet> fancy stuff. xD
01:30:57 <oerjan> iirc Scala identifies modules and functors with classes as well
01:31:26 <CakeProphet> it's not exactly the same in Python, but I forgot in what ways that applies...
01:31:32 <CakeProphet> in Ruby however, they're exactly the same thing.
01:32:07 <oerjan> *with objects and classes, perhaps
01:32:36 <CakeProphet> yeah, essentially a module is an instance of type 'module'
01:32:45 <CakeProphet> shocking, really.
01:33:27 <oerjan> hm yesterday wikipedia had, for the first time i've seen, a Featured List, but none today
01:33:42 <CakeProphet> as in, the featured article was a list article?
01:33:51 <CakeProphet> or there were more than one features?
01:34:00 <oerjan> no, as in there was a specific added feature that was a list article
01:34:14 <oerjan> just above the picture spot
01:35:12 <CakeProphet> interesting.
01:35:39 <CakeProphet> well there's this: http://en.wikipedia.org/wiki/Wikipedia:Featured_lists
01:35:56 <CakeProphet> there's also featured sounds. They must be some pretty impressive sounds.
01:36:32 <CakeProphet> a lot of the featured sounds appear to be classical music.
01:36:50 <CakeProphet> further supposing the fact that Wikipedia editors are snooty pricks. :)
01:38:10 <monqy> :)
01:40:11 <CakeProphet> once you get into the 1900s and up there's more political/historical speeches/recordings.
01:40:43 <CakeProphet> but nothing I would classify as a "truly epic sound"
01:41:01 <CakeProphet> like some kind of rainforest bird with multi-tonal squaks or something.
01:41:02 <elliott_> featured doesnt mean "awesome"
01:41:06 <CakeProphet> elliott_: shhh
01:41:26 <CakeProphet> it said "the best sounds on Wikipedia"
01:41:30 <CakeProphet> these are old people talking.
01:43:23 <elliott_> you realise that there are restrictions on featured stuff
01:43:27 <elliott_> like it cant be a fair use sample
01:43:37 <CakeProphet> yes I'm aware.
01:45:02 <CakeProphet> I'm not really talking about how these sounds awesomely fit into the rules.
01:45:20 <CakeProphet> just that they're not good sounds. Well, okay, the classical music is good.
01:45:36 <CakeProphet> a different name would be more suitable.
01:47:19 <monqy> the best sounds on wikipedia in our snooty prick opinions
01:48:15 <CakeProphet> "the best moments in history, recorded and on Wikipedia. Oh, and some classical music."
01:48:32 -!- Lymia has quit (Ping timeout: 276 seconds).
01:48:49 <monqy> let's pretend classical music is a best moment in history
01:52:13 <CakeProphet> yeah, see I was expecting to be blown away by the quality of these sounds. In much the same way that I expect such from articles in featured articles.
01:52:17 <CakeProphet> NOPE. NOT WHAT THEY MEANT.
01:52:26 <CakeProphet> I have been mislead. So many previous minutes, expired.
02:01:06 -!- Lymia has joined.
02:02:08 -!- pikhq has joined.
02:02:20 -!- pikhq_ has quit (Ping timeout: 260 seconds).
02:05:56 -!- clog has joined.
02:19:28 -!- Arandur has joined.
02:21:19 -!- Arandur has left.
02:22:03 <elliott_> wb clog
02:24:36 <oklofok> morning
02:50:09 -!- CakeProphet has quit (Ping timeout: 255 seconds).
02:55:35 -!- oerjan has quit (Quit: leaving).
03:08:51 -!- oerjan has joined.
03:09:30 -!- Sgeo has quit (Ping timeout: 255 seconds).
03:11:05 <pikhq> I'm convinced that Manitou Springs (town of about 5,000, ~8 km², adjacent to Colorado Springs) has managed to suck all the culture out of Colorado Springs (city of ~400,000, ~482 km²).
03:12:14 <pikhq> That's... Disturbing.
03:14:38 <oerjan> you should know that manitou is all-powerful
03:18:39 <pikhq> Also: *dang* the US has a low average population density.
03:19:00 <pikhq> 32 people/km².
03:20:41 <oerjan> about 12 for norway
03:21:24 <pikhq> Yeah, and it's about 18 for my state.
03:21:51 <pikhq> And 0.46 in Alaska. :P
03:36:34 -!- Sgeo has joined.
03:37:39 -!- azaq23 has quit (Quit: Leaving.).
03:47:25 <elliott_> "i didnt think danes had mathematicians? i just figured danes walked around all day saying 'bjergen schergensensen' and nodding politely to oneanother"
03:51:16 <oklofok> lol that's just ignorant right
03:57:30 -!- pikhq_ has joined.
03:57:53 -!- pikhq has quit (Ping timeout: 276 seconds).
04:54:29 * pikhq_ contemplates build systems further
04:55:11 -!- Kustas has joined.
04:56:56 * pikhq_ wonders if EKOPath does awesome things for x264. Probably not, because the developers are already freakish, but hey.
04:58:48 <Gregor> Bear witness to my awesome new garbage collection idea!
04:58:52 <Gregor> I call it "chaos collection"
04:58:58 -!- Vorpal has joined.
04:59:07 <Gregor> Each page is designated for a particular /type/ (sorry, need static types for this)
04:59:15 <Gregor> You allocate by simply chopping up the page and handing them out.
04:59:27 <oerjan> bah, i've collected chaos for years
04:59:33 <Gregor> When you reach the maximum allotted amount of memory use, you switched to an LRU algorithm.
04:59:37 <elliott_> Gregor: Just parameterise it on N bytes rather than types
04:59:46 <elliott_> Gregor: Then Fythe can use it for objects less than one thousand bytes or so :P
04:59:47 <Gregor> elliott_: Wait for why it's types :P
04:59:55 <Vorpal> oh this sounds interesting *checks log for context*
05:00:09 <Gregor> The least recently used page is marked as free, and each element added to the freelist for that type.
05:00:38 <Gregor> They're not modified yet, just marked as free. Later allocations of the same type can reclaim the same space, and use them, creating aliases.
05:00:49 <Gregor> Type safety is preserved!
05:00:53 <Gregor> Problem, correctness?
05:01:02 <elliott_> I'm not even going to try and understand what you're proposing.
05:01:05 <Gregor> (Note: Probably not advisable to use this for recursive types)
05:01:29 -!- Kustas has left.
05:01:30 <Gregor> elliott_: Don't trace reachability of existing pointers. Just mark the LRU page as free.
05:01:31 <Vorpal> Gregor, oooh this sounds cool
05:01:38 <elliott_> Gregor: BTW, you actually mean _constructor_-specific
05:01:43 <elliott_> Since the thing is the size
05:01:43 <oerjan> i understand it perfectly. it's completely nuts.
05:01:50 <Gregor> elliott_: No, the thing is NOT the size.
05:01:54 <elliott_> `addquote <elliott_> I'm not even going to try and understand what you're proposing. <oerjan> i understand it perfectly. it's completely nuts.
05:01:54 <Gregor> elliott_: Type safety is crucial here.
05:01:55 <HackEgo> 456) <elliott_> I'm not even going to try and understand what you're proposing. <oerjan> i understand it perfectly. it's completely nuts.
05:01:59 <elliott_> Gregor: Alright.
05:02:01 <elliott_> Gregor: But what I mean is,
05:02:04 <elliott_> You couldn't have
05:02:08 <elliott_> data List a = Nil | Cons a (List a)
05:02:11 <elliott_> In one pool
05:02:16 <elliott_> It'd need a nil pool and a cons pool
05:02:20 <elliott_> Erm, imagine nil has one element embedded in it
05:02:23 <elliott_> So it actually has objects >_>
05:02:42 <Vorpal> elliott_, wait what? Couldn't there be one globally shared Nil value?
05:02:50 <elliott_> <elliott_> Erm, imagine nil has one element embedded in it
05:02:50 <elliott_> <elliott_> So it actually has objects >_>
05:02:51 <Gregor> Null/nil/null/Nil/nool: Ruiner of types.
05:02:54 <elliott_> Amount I hate Vorpal: Thousands.
05:02:56 <elliott_> Gregor: OK, well
05:03:01 <elliott_> data Either a b = Left a | Right b
05:03:06 <Vorpal> elliott_, s/value/object/
05:03:15 <elliott_> I am just saying that you're equating types with constructors, which is only valid in C-like languages :P
05:03:22 <elliott_> Well, with records.
05:03:47 <Gregor> elliott_: Yes, I am, because I'm talking about a fucking garbage collector, and a chaos-inspired one at that >_>
05:04:03 <Vorpal> elliott_, hm how does low level representation of something like "<elliott_> data Either a b = Left a | Right b" look like in ghc?
05:04:08 <elliott_> Gregor: Chaos as in the English word or? :P
05:04:08 <Vorpal> s/how/what/
05:04:12 <elliott_> Vorpal: You mean the values?
05:04:23 <elliott_> One word representing which constructor, then one pointer after it, consecutively in memory.
05:04:25 <Vorpal> ah
05:05:07 <Vorpal> elliott_, and in case of something like Maybe the pointer is null for the Nothing case?
05:05:11 <oerjan> also, a tag on the pointers to Eithers iirc
05:05:38 <oerjan> no pointer at all i'd say
05:05:48 <Gregor> oerjan: So, like my GC then?
05:05:57 <Gregor> Chaos Collection: Best GC?
05:06:09 <oerjan> Gregor: for a certain value of "best"
05:06:23 <Vorpal> oerjan, so you mean for "Maybe Int" Nothing has a different size than Just 3?
05:06:39 <oerjan> Vorpal: at least conceptually
05:06:39 <elliott_> yes, constructors can have different sizes
05:07:01 <Vorpal> oerjan, yes conceptually, but what about in practise?
05:07:18 <Vorpal> elliott_, right
05:07:36 <oerjan> Vorpal: i think the first word or so also includes total length info for the gc
05:07:50 <Vorpal> oerjan, hm okay
05:08:11 <oerjan> (or actually if there are unboxed fields it may need to tell where they are and what size, too)
05:08:29 <Vorpal> hm, so how many different constructors are possible then?
05:08:46 <oerjan> hm...
05:09:43 <Vorpal> Gregor, I think your GC is very interesting. Not sure how well it would actually work though.
05:10:21 <Vorpal> Gregor, if each pool is type-specfic it would I guess potentially offer a very fast GC, but with many types in a program you could run into issues.
05:10:31 <Gregor> Vorpal: What's more interesting is if you can argue about its effects on a particular program or class of programs.
05:10:46 <Vorpal> Gregor, I think I just did in some broad terms :P
05:11:02 <Gregor> Vorpal: I mean higher level. e.g. for some class the correctness of your final result reduces proportionally with the size of your heap.
05:11:10 <Vorpal> ah
05:12:03 <Vorpal> hm I just realised, nearly all C coding I have been doing lately has been for embedded systems.
05:12:24 <Vorpal> with lately I mean something like the last 6 months or so
05:14:11 <pikhq_> Well, that was helpful.
05:14:16 <pikhq_> "Floating point exception".
05:14:25 <oerjan> http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/HeapObjects
05:14:30 <Gregor> pikhq_: Stop dividing by zero.
05:14:33 <Gregor> pikhq_: It's not cool.
05:14:35 <Vorpal> pikhq_, if you can I would suggest a debugger at this point. It can mean a lot of things.
05:14:48 <Vorpal> Gregor, iirc you can get that for other things than div by zero
05:14:48 <pikhq_> Vorpal: Compiler bug!
05:14:53 <Vorpal> pikhq_, *ouch*
05:14:58 <pikhq_> Vorpal: Not GCC, though.
05:15:02 <Vorpal> pikhq_, which compiler then?
05:15:07 <pikhq_> EKOPath.
05:15:11 <Gregor> pikhq_: lolsy
05:15:13 <pikhq_> Which has yet to have a source release.
05:15:14 <Gregor> pikhq_: Is this GGGGC?
05:15:15 <pikhq_> In x264.
05:15:16 <Vorpal> pikhq_, never heard of it
05:15:19 <Gregor> pikhq_: Ah
05:15:28 <pikhq_> Vorpal: In benchmarks, it has 2x performance.
05:15:29 <Gregor> Speaking of, I just finished downloading it!
05:15:36 <Vorpal> pikhq_, nice, open source?
05:15:41 <pikhq_> Vorpal: Soon to be.
05:15:44 <Vorpal> right
05:15:53 <pikhq_> Vorpal: Until, oh, now, it cost $2000 per seat.
05:15:55 <Vorpal> oh Pathscale?!
05:15:58 <pikhq_> Yeah.
05:16:01 <Vorpal> this is *highly* interesting
05:16:34 <Gregor> Curiously, the clickthrough license already specifies GPL, although no source is included yet? >_>
05:16:34 <pikhq_> I like how the price was enough to clue you in. :P
05:16:38 <Vorpal> pikhq_, why is it going to be open source?
05:16:43 <elliott_> Gregor: The news was leaked
05:16:44 <Vorpal> pikhq_, no I googled at the same time :P
05:16:45 <elliott_> Gregor: So :P
05:16:57 <Vorpal> pikhq_, though yeah I would have guessed it based on the price too.
05:17:08 <pikhq_> Gregor: The press release came out before they planned on having source up.
05:17:33 <pikhq_> If it's not out in a day or two, *then* you can get upset.
05:17:43 <oerjan> Vorpal: http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/HeapObjects#Pointers-firstlayout
05:17:46 <Vorpal> pikhq_, what made them go open source, I don't get it. Are we going to see VxWorks as open source next!?
05:17:49 <elliott_> Their live chat guy told me that
05:18:00 <elliott_> Then I internet married them
05:18:03 <elliott_> For their kindness
05:18:05 <Gregor> GGGGC works with EKOPath
05:18:07 <elliott_> Vorpal: bad sales?
05:18:10 <Vorpal> ah
05:18:22 <pikhq_> Vorpal: No idea, but I'm not about to complain.
05:18:24 <elliott_> Gregor: Swoot :P
05:18:28 <Vorpal> pikhq_, nor me.
05:18:34 <elliott_> "So we now have GHC as the only major compiler which can cause *runtime* crashes depending on what characters are used in a string literal."
05:18:37 <Vorpal> pikhq_, targets linux?
05:18:50 <pikhq_> Vorpal: Yes. x86_64 only, though.
05:18:57 <Vorpal> ah, no problem for me there
05:19:05 <pikhq_> Vorpal: Also, *builds* Linux (with a small patch that I can't find yet).
05:19:17 <elliott_> awesome
05:19:17 <Vorpal> <elliott_> "So we now have GHC as the only major compiler which can cause *runtime* crashes depending on what characters are used in a string literal." <-- *blink*
05:19:17 <Gregor> No visible change in performance from GCC.
05:19:19 <Vorpal> elliott_, how?
05:19:23 <elliott_> Vorpal: OverloadedStrings :P
05:19:24 <elliott_> http://hackage.haskell.org/trac/ghc/ticket/5255
05:20:01 <Vorpal> elliott_, ouch
05:20:12 -!- copumpkin has joined.
05:21:00 <elliott_> "GHC bug: people can define Functor instances for things that aren't functors." --dolio
05:21:20 <Vorpal> heh
05:21:41 <Vorpal> well, I'm off. Practical driving exam. I hate mornings though. Oh well.
05:21:47 <elliott_> mornings are the worst
05:21:50 <Vorpal> yes
05:21:50 <elliott_> need banning
05:21:52 <elliott_> outlaw mornings
05:21:56 <Vorpal> hah
05:22:02 <elliott_> five am to ten am officially no longer exist
05:22:04 <elliott_> everyone rejoice
05:22:22 <pikhq_> But those are sleeping hours!
05:24:24 <pikhq_> So, got xz built with it...
05:24:25 -!- CakeProphet has joined.
05:24:35 -!- CakeProphet has quit (Changing host).
05:24:35 -!- CakeProphet has joined.
05:26:01 -!- Vorpal has quit (Ping timeout: 240 seconds).
05:27:00 -!- elliott_ has changed nick to dodifer.
05:28:03 <Gregor> I wonder how many people are named Dodifer.
05:28:08 <Gregor> I estimate: twelve.
05:28:12 <dodifer> just me
05:35:51 <pikhq_> Welp, -ipa is a bad bad flag to use.
05:36:04 <pikhq_> It makes pathcc trigger a glibc bug.
05:36:13 <pikhq_> By God, this is a positive stress test of my system. :P
05:42:16 <pikhq_> Hmm. Well, xz is slower with it.
05:43:17 <pikhq_> Apparently, it takes *cache size* as one of the optimisation flags, and its defaults are for an Opteron, which has fairly beefy L2.
05:50:38 <pikhq_> Oh, and you have to *order* it to handle pointer alias more strictly.
05:51:45 <dodifer> http://en.wikipedia.org/wiki/Florence_Y%27all_Water_Tower
05:51:48 <dodifer> america
05:53:03 <pikhq_> Let me just be absurd and give it -LNO:alias=restrict
05:53:05 <Gregor> dodifer: We invent words that the English language was sorely lacking?
05:53:17 <pikhq_> Which makes it assume FORTRAN pointer semantics.
05:54:16 <dodifer> Gregor: suuuuuuuure
05:54:20 <dodifer> pikhq_: nice
05:54:26 <Gregor> "The city paid $472 to the W.T. Marx Company[5] of nearby Cincinnati, Ohio to make the changes; whereas a complete repaint would have been nearly three times as much" lol
05:54:56 <pikhq_> Which does not help on xz at all.
05:55:06 <dodifer> gregor laughs at poor people, especially when those poor people are governments
05:55:21 <pikhq_> It's pretty consistently being a couple seconds slower on decompressing $large_file.
05:55:38 <dodifer> Fortran pointer semantics should never slow anything down :P
05:55:59 <pikhq_> dodifer: No, I mean that the compiler's output is consistently doing that no matter what I throw at it.
05:56:12 <pikhq_> Only thing that helped notably was telling it my cache size.
05:56:41 <dodifer> i have an important question
05:56:43 <dodifer> does anyone actually use fedora
05:56:45 <dodifer> apart from linus
05:57:24 <pikhq_> I get the feeling this is optimised for numerical-heavily workloads.
05:57:53 <pikhq_> Lemme try flac.
05:59:48 <dodifer> is kernel three still not out yet
06:00:19 <pikhq_> 3.0-rc3 just came out.
06:00:28 <dodifer> is it any good
06:00:30 <dodifer> or is it the crap
06:00:39 <pikhq_> By "just" I mean "a minute ago".
06:00:40 <dodifer> like is it stable
06:00:52 <dodifer> pikhq_: seven hours ago
06:01:14 <pikhq_> BAH
06:01:27 <dodifer> BUT IS IT STABLE
06:01:27 <pikhq_> It's not a -rc1, so it should be reasonably stable.
06:01:30 <dodifer> YAY
06:04:31 <pikhq_> Kay, so flac -8 on Alive 1997 takes 57 seconds with EKOPath...
06:05:24 <dodifer> your flac is a lot faster than mine
06:06:02 <pikhq_> And 62 with Debian's stock package.
06:06:16 <dodifer> flinix is
06:06:17 <dodifer> back
06:06:19 <dodifer> in
06:06:21 <dodifer> bizns
06:06:23 <pikhq_> Same version of flac.
06:06:24 <dodifer> this time with linux THREE
06:06:26 <dodifer> all new
06:06:32 <dodifer> excuz me this is exctiging news
06:07:25 <pikhq_> Now to see if it handles -ipa.
06:08:26 <pikhq_> Nope, segfaults in the assembler.
06:09:24 <dodifer> hey pikhq_ im not sure you actually need tmpfs at all
06:09:26 <dodifer> or the block layer
06:09:29 <dodifer> if you have initramfs support
06:10:21 <pikhq_> Indeed, you don't.
06:11:47 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
06:12:16 <dodifer> hmm, I wonder if BFS saves kernel size
06:17:28 <dodifer> Setup is 13132 bytes (padded to 13312 bytes).
06:17:28 <dodifer> System is 358 kB
06:17:29 <dodifer> pikhq_:
06:17:53 <dodifer> dunno if it can actually boot though
06:48:57 <pikhq_> From my testing, I conclude that GCC and clang are actually *really* freaking good at optimisation outside of confusing circumstances.
06:49:20 <pikhq_> pathcc is better, but it's not blowing the others out of the water.
06:50:02 <pikhq_> If pathcc's automatic parallelisation and link-time optimisation *worked* I'd be saying something different, no doubt.
06:50:15 <pikhq_> But it doesn't, so I'm not.
06:55:28 <dodifer> gcc? good at optimisation?
06:55:30 <dodifer> lol at your joking
06:55:55 <dodifer> well ok gcc's forte is more breaking programs
06:55:58 <dodifer> than being bad at optimisation
06:57:04 <pikhq_> dodifer: In my testing, it's either slightly better or slightly worse than pathcc.
06:57:27 <pikhq_> Admittedly, I was not able to get automatic parallelisation to work.
06:57:30 <pikhq_> (link error)
06:57:39 <pikhq_> Or LTO (SEGFAULT).
07:09:29 -!- oerjan has quit (Quit: leaving).
07:25:26 -!- dodifer has quit (Read error: Connection reset by peer).
07:45:49 -!- monqy has quit (Quit: hello).
08:02:33 -!- elliott has joined.
08:02:43 <elliott> Gregor what was that really sad video with the rabbit that fell down the well
08:08:10 -!- Vorpal has joined.
08:09:13 <Vorpal> you americans will be rather confused by this I bet. I failed the practical driving exam because I was to close to the right side of the road when I was about to turn left from a countryside road. That alone was what I failed on and it was enough to prevent me from passing.
08:09:33 <elliott> ha ha Vorpal can't drive
08:09:37 * elliott emotional support
08:10:02 <Vorpal> elliott, as if you could drive.
08:10:03 <Vorpal> :P
08:10:08 <elliott> Vorpal: i don't see how driving a car can be hard, its like a computer except it only has a few buttons and it doesn't crash
08:10:15 <elliott> i mean basically
08:10:18 <pikhq_> Vorpal: Yeah, US drivers would absolutely *frighten* you.
08:10:26 <elliott> but like how do you even fail at driving
08:10:29 <elliott> idgi
08:10:36 <elliott> "whoops i went left but i wanted to go right, i guess i am stupid"
08:10:42 <Vorpal> elliott, except unlike a computer you don
08:10:55 <pikhq_> elliott: How do you think the US gets away with a driving test that anyone who can compute 1+1 can pass?
08:10:59 <Vorpal> do need* to keep track of everything around you
08:11:06 <elliott> pikhq_: because driving si easy?
08:11:13 <elliott> Vorpal: you ignore your windows on a computer?
08:11:23 <elliott> i mean come ON all you have to do is not bash into things
08:11:26 <elliott> have you ever played donkey.bas
08:11:28 <elliott> that's how hard driving is
08:11:33 <Vorpal> elliott, no but try keeping track of 40 other computer users around you and what they are doing
08:11:33 <elliott> don't hit the fucking donkey
08:11:35 <elliott> the end
08:11:35 <Vorpal> at the same time
08:11:39 <elliott> oh no there's forty donkeys
08:11:40 <Vorpal> elliott, then it is like driving
08:11:41 <elliott> hardest fucking game
08:11:56 <elliott> come on driving is easier than puzzle bobble
08:11:59 <pikhq_> Vorpal: The cars on the road might frighten you more, actually...
08:12:12 <Vorpal> <elliott> i mean come ON all you have to do is not bash into things <-- yeah I'll *love* to see you drive. From behind a barricade preferably.
08:12:24 <pikhq_> Vorpal: If it runs, it's probably street legal.
08:12:32 <elliott> Vorpal: unfortunately im not stupid enough to fail at driving, sorry that it won't be entertaining
08:12:38 <elliott> but driving is kind of pointless though
08:12:44 <Vorpal> elliott, in Sweden you can fail the exam if you don't drive in a environmentally friendly way btw.
08:12:46 <elliott> it takes hours and you can't do anything while its happening
08:12:48 <Vorpal> I bet you can't in US
08:13:01 <elliott> its like doing a rubiks cube for five hour sand then you arrive at your destination
08:13:05 <elliott> stupidest way to travel
08:13:08 <pikhq_> Vorpal: If you can drive around a couple of blocks you can pass.
08:13:17 <elliott> Vorpal: lol, "drive in an environmentally friendly way"
08:13:20 <olsner> but driving isn't intellectual but mostly motor skills? so stupidity should have almost nothing to do with it
08:13:24 <elliott> GUYS IF WE REDUCE ENERGY USAGE A TINY TINY BIT
08:13:25 <Vorpal> elliott, well, reasonably
08:13:27 <elliott> WE WILL SAVE THE PLANET
08:13:43 <elliott> SCIENCE PROVES IT ! ! ! ! ! !
08:13:46 <Vorpal> elliott, basically yes. I agree it don't help much.
08:13:54 <Vorpal> <olsner> but driving isn't intellectual but mostly motor skills? so stupidity should have almost nothing to do with it <-- indeed
08:13:59 <Vorpal> I had no problems with the theory
08:14:01 <elliott> i really love the "save the planet" slogan
08:14:01 <elliott> like
08:14:08 <Vorpal> elliott, they don't use that one here
08:14:11 <elliott> if we dont reduce carbon dioxide
08:14:13 <elliott> the planet will LITERALLY EXPLODE
08:14:34 <Vorpal> elliott, they use the silly slogan "ecodriving", in English. I have no clue why they use that.
08:14:38 <olsner> yeah, we'll reach explosive levels of co2 and the whole thing goes boom
08:14:38 <elliott> olsner: its not that much motor skills
08:14:46 <elliott> i mean there's not much finesse involved in turning a wheel really
08:14:47 <pikhq_> Vorpal: Now to scare you more: I can legally drive *on your roads* with a US license.
08:14:52 <elliott> well i mean
08:14:56 <elliott> non-fine motor skills maybe
08:14:59 <elliott> but thats just kind of like... moving your arms
08:15:09 <pikhq_> Vorpal: Which you get for driving around a couple of blocks succesfully and answering 7 out of 10 multiple choice questions right.
08:15:18 <elliott> i dunno, maybe the cars make driving hard, maybe i need to design a car
08:15:19 <olsner> moving your arms is motor skills :P
08:15:29 -!- pizearke has joined.
08:15:40 <elliott> although actually id just write the small amount of extra software required to be a better-than-human driver
08:15:48 <elliott> cars: the worst??
08:15:54 <Vorpal> pikhq_, ugh
08:15:55 <pikhq_> elliott: Such NIH, man.
08:15:59 <Vorpal> I'm glad I'm not in US
08:16:01 <Lymia> Hmm....
08:16:08 <elliott> pikhq_: yeah i know google are already on it
08:16:20 <elliott> Vorpal: swedish rodes must be really boring
08:16:23 <Lymia> How simple a ruleset would it take for a car to do as well as, or better than a human driver anyways?
08:16:26 <elliott> if you have to drive you might as well have some excitement
08:16:27 <Vorpal> elliott, why?
08:16:31 <elliott> Lymia: ask google
08:16:32 <Vorpal> oh
08:16:33 <Vorpal> hah
08:16:36 <elliott> Vorpal: because all your drivers are good and boring...
08:16:40 <elliott> with the us its like
08:16:48 <Vorpal> elliott, dude, you forgot the winter
08:16:48 <elliott> what stupid fucks will be on the road today???
08:16:59 <pikhq_> elliott: Yes, that is exactly how it is.
08:17:02 <Lymia> elliott, driving and pathfinding arn't exactly the same problem...
08:17:10 <elliott> Lymia: um
08:17:11 <pikhq_> Lymia: Google has self-driving cars.
08:17:17 <Lymia> pikhq_, ah.
08:17:17 <elliott> Lymia: google are working on self-driving vehicles
08:17:19 <Vorpal> elliott, we get enough excitement during winter that we want a calm summer :P
08:17:20 <Lymia> elliott, I see.
08:17:26 <elliott> Lymia: thousands of miles of real-world testing in california
08:17:32 <Lymia> Do they drive like non-assholeish drivers?
08:17:37 <elliott> presumably :P
08:17:49 <pikhq_> Yes, and the only accident so far is that a car got rear-ended.
08:18:01 <elliott> they should try it in sweden without any modifications
08:18:05 <elliott> WHEEEE SKIDDING
08:18:08 <Vorpal> elliott, during winter yeah
08:18:18 <Lymia> pikhq_, which car?
08:18:26 <Vorpal> hm are studded tires allowed during winter in US?
08:18:40 <pikhq_> Lymia: Google's.
08:18:42 <elliott> hmm i should reboot back into linux
08:18:48 <elliott> wanna do some haskela
08:18:55 <pikhq_> Vorpal: Depends on the state.
08:19:01 <Vorpal> pikhq_, right
08:19:08 <Lymia> pikhq_, heh. I'm not too sure that counts as Google's fault...
08:19:18 <Lymia> Wonder if the program has cases to deal with "omg somebody is going to rear end me"
08:19:28 <pikhq_> Lymia: It was at a stop light, too.
08:19:34 <olsner> Vorpal: they're not even allowed in sweden in some places
08:19:38 <elliott> pikhq_: lmao
08:19:44 <elliott> oh wait
08:19:44 <Vorpal> olsner, oh true. Mostly central stockholm iirc?
08:19:46 <elliott> rear-end doesnt mean what ithink
08:19:47 <Lymia> Proof we need more robot cars.
08:19:47 <Lymia> =p
08:19:49 <elliott> thats a lot less funny now
08:19:50 <pikhq_> Vorpal: *Basically*, anywhere with winters that are worth caring about has studded tires legal.
08:19:52 <Vorpal> olsner, but who in their right mind would go there.
08:19:55 <elliott> i thought it meant a car flipping upside down for some reason
08:19:57 <elliott> so like
08:20:00 <Vorpal> pikhq_, right
08:20:02 <elliott> google car stops orderly at the traffic light
08:20:04 <elliott> three seconds later
08:20:06 <olsner> Vorpal: people who live or work there, mostly
08:20:07 <elliott> spontaneously flips itself over
08:20:12 <Vorpal> olsner, yeah
08:20:13 <olsner> no-one else would suffer the queues
08:20:16 <elliott> why are you not laughing
08:20:29 <Vorpal> olsner, I would never drive unstudded during winter, exception if I moved to some big city probably.
08:20:30 <elliott> why are you not laughing
08:21:21 <Vorpal> olsner, but the municipality I live in has as a stupid policy to never use salt during winter unless in extreme conditions. Just sand. So I need studded to get up the hill from where I live when it is icy :P
08:21:30 <olsner> I wouldn't drive at all during winter, but that's just me not having bothered to learn how to drive
08:21:49 <elliott> Vorpal: swedenbeach
08:21:54 <Vorpal> elliott, ??
08:21:59 <Vorpal> olsner, you don't have a driving license?
08:22:03 <elliott> we put sand......on road......now we pretend we are in country we actually like . . .
08:22:08 <olsner> Vorpal: nope, what would I do with one?
08:22:17 <Vorpal> elliott, what? That is far fetched
08:22:24 <Vorpal> sand on roads is common during winter...
08:22:34 <elliott> carpal tunnel syndrme
08:22:34 <olsner> elliott: they don't use quite enough sand for that effect
08:22:42 <elliott> olsner: palm trees....on the road....i nwinter...
08:22:49 <pikhq_> elliott: Yeah, it's quite common. The idea is to increase the amount of traction.
08:22:55 <elliott> palm trees
08:22:57 <Vorpal> olsner, hm good to have a license still. In case you need to drive during work or such.
08:23:06 <elliott> tarski was a palm tree±true±facts
08:23:08 <elliott> ± <- tree
08:23:10 <pikhq_> Done in the US pretty much anywhere that can expect, oh, an inch of snow in the winter.
08:23:23 <elliott> Gregor i still need that video
08:23:35 <Vorpal> pikhq_, an inch? Come on, they hardly even plow anything but highways for that much. :P
08:23:43 <elliott> GREGOR I REQUIRE THE SAD RABBIT VIDEO
08:24:12 <elliott> im going to go on a rampage
08:24:21 <elliott> http://www.youtube.com/watch?v=VjMsQ_NUOMA no this is not it
08:24:26 <elliott> jesus what is this
08:24:29 <olsner> Vorpal: given how hard it is to code while driving, not sure why I'd be asked to drive :P
08:24:33 <pikhq_> Vorpal: Well, rather, if they can reasonably expect an inch of snow in the winter *they will actually have the ability to sand roads*.
08:24:33 <elliott> oh my god the rabbts voice
08:24:35 <elliott> i mt errified
08:24:42 <elliott> oh my god the toroises voice
08:24:43 <Vorpal> olsner, heh.
08:24:49 <elliott> YOU ARROGANT RABBIT
08:24:51 <pikhq_> To account for somewhat more extreme winters.
08:24:51 <Vorpal> olsner, where do you work btw?
08:24:52 <elliott> YOU ARE LAUGHING AT ME?????
08:24:53 <elliott> actual quote
08:24:57 <Vorpal> pikhq_, right
08:25:01 <elliott> god this rabbits laugh is terrifying
08:25:17 <Vorpal> pikhq_, all of Sweden can expect significantly more than that
08:25:19 <elliott> is that finish written in neon
08:25:27 <elliott> dudes you are all mssing out on this video
08:25:31 <elliott> its the most amazing thing ive ever watched
08:25:40 <pikhq_> Cause a place like Houston is not really going to see snow more than once a decade.
08:25:44 <elliott> HE'LL TAKE LONG TIME TO REACH HERE
08:25:56 <elliott> man that tortoise is like
08:25:58 <elliott> dancing over the ground
08:26:00 <pikhq_> Vorpal: Yeah, pretty much the northern half of the US sees more significant snowfalls.
08:26:01 <elliott> wow
08:26:14 <elliott> oh
08:26:19 <elliott> the tortoroyse has gone tu far
08:26:23 <Vorpal> come on, south Sweden is probably worse than I live. The landscape in Skåne is so flat and open.... You get cases of trains getting stuck due to 2 meter high snowdrifts having been blown up against the track.
08:26:32 <Vorpal> and Skåne is far to the south
08:26:39 <pikhq_> And, of course, there's Alaska, which actually is *permafrost* in a lot of it.
08:26:46 <elliott> does anyone know that sad rabbit video gregor linked once
08:27:02 <Vorpal> olsner, didn't they use bandwagons last winter to rescue people from a train that got stuck in Skåne iirc? I seem to remember reading about it.
08:27:10 <elliott> everyone has me on ignore noq
08:27:13 <elliott> now
08:27:22 <olsner> Vorpal: I wouldn't have heard about that, I don't read news
08:27:23 <Vorpal> elliott, use the logs. See topic.
08:27:27 <Vorpal> olsner, oh okay
08:27:32 <elliott> Vorpal: uh what the fuck would i grep for
08:27:37 <Vorpal> olsner, anyway where do you work?
08:27:44 <Vorpal> elliott, -i "sad rabit" maybe?
08:27:48 <elliott> ok fine
08:27:54 -!- elliott has quit (Remote host closed the connection).
08:27:58 <Vorpal> what?
08:28:14 <Vorpal> well rabbit*
08:29:19 <Vorpal> pikhq_, anyway, how many people die in the traffic per year in US?
08:29:42 <Vorpal> or maybe per 10000 citizens or such.
08:29:49 <Vorpal> since that way it would be easier to compare the numbers
08:29:58 -!- elliott has joined.
08:31:01 <elliott> <ais523> elliott: you strike me as sorr of the person who /would/ own multiple sizes of rabbit just to be able to compare them
08:31:07 <elliott> my secret is out
08:31:32 <Vorpal> elliott, hehe
08:31:43 <olsner> "I want a bigger rabbit so I can compare it to this rabbit and say it's bigger!"
08:32:09 <elliott> hey i just realised that adding data to something can actually make it more compressible?
08:32:11 <elliott> i guess thats obvious
08:32:12 <elliott> but like
08:32:22 <elliott> printing all strings of length 999999 is really easy
08:32:31 <elliott> compared to printing one, truly-Kolgomorov-random string of length 999999
08:32:47 <pikhq_> Vorpal: Uh, fatalities per 100,000 people was 11.01 in 2009.
08:32:51 <olsner> isn't it *kolmogorov?
08:33:04 <Vorpal> pikhq_, let me check statistics for Sweden
08:33:13 <elliott> apparently only i fin this interesting
08:33:16 <elliott> find
08:33:54 <elliott> olsner: yeah
08:33:56 <pikhq_> 4.87.
08:34:06 <Vorpal> pikhq_, 7,4 (cars) 3,8 (pedestrians)
08:34:10 <Vorpal> that is the stats for Sweden
08:34:18 <Vorpal> oh wait
08:34:20 <Vorpal> no I misread
08:34:32 <Vorpal> the former is per 100,000 cars
08:34:43 <Vorpal> the latter is per 100,000 citizens
08:34:44 <elliott> http://hackage.haskell.org/package/sbv this is hot
08:34:49 <Vorpal> pikhq_, ^
08:35:02 <Vorpal> pikhq_, now I suggest you get better driving exams
08:35:07 <olsner> so 7.4 out of 100000 cars die each year, but we don't know how many people were in them?
08:35:22 <Vorpal> pikhq_, why are your driving exams so bad?
08:35:32 <pikhq_> Vorpal: Per kilometers travelled is a better metric, BTW.
08:35:39 <Vorpal> can't find that
08:35:46 * pikhq_ is trying to convert this figure to metric...
08:36:27 <Vorpal> wait what, there seems to be statistics per amount of fuel. wtf
08:38:03 <Vorpal> pikhq_, I can't find any km travelled figures, so can't compare anyway
08:39:06 <Vorpal> pikhq_, this is what I can find basically: http://www.trafikverket.se/Privat/Trafiksakerhet/Olycksstatistik/Vag/Nationell-statistik/Arsdata-fran-1950/
08:39:16 <Vorpal> there is a button for English in the upper corner
08:39:34 <Vorpal> not sure if that page exists in English though
08:39:48 <olsner> they used to have vv.se as the address ... dvbf
08:40:14 <Vorpal> olsner, yes but vägvärket changed name to trafikverket as you know
08:40:22 <Vorpal> olsner, also "dvbf"?
08:40:38 <olsner> vägvärket :P
08:40:44 <Vorpal> oops
08:40:50 <Vorpal> vägverket* of course
08:41:03 <Vorpal> olsner, anyway what did "dvbf" mean?
08:41:06 <olsner> what, you don't know about dvbf?
08:41:12 <Vorpal> olsner, correct
08:41:22 <olsner> how can you not?
08:41:30 <pikhq_> Lessee.
08:41:32 <olsner> det var bättre förr
08:41:40 <Vorpal> olsner, aha
08:41:52 <Vorpal> olsner, Jag chattar inte mycket på svenska. :P
08:41:59 <Vorpal> olsner, faktiskt inget alls.
08:42:10 <pikhq_> 39.3 accidents per hundred million vehicle miles per year for Sweden, 62.2 for the US.
08:42:20 <pikhq_> Yup, we need better driver education.
08:42:25 <olsner> fast det där är inte en chat-förkortning, den kommer faktiskt från verkligheten
08:42:39 <Vorpal> pikhq_, And we have the bad weather of the north states (apart from Alaska) in the whole country
08:42:43 <pikhq_> (source for both, Wolfram Alpha, and WHY WON'T IT USE METRIC, MILES IS A TERRIBLE UNIT)
08:42:45 <fizzie> Our local "Road Administration" (Tiehallinto; approximate translation) quasi-recently also changed their name to "Destia". There seems to be a trend for picking nonsense names to sound more modern. The post office changed their name to "Itella" too.
08:43:05 <olsner> they both sound italian
08:43:06 <pikhq_> Vorpal: You also have a population density on par with Kansas.
08:43:21 <Vorpal> olsner, säger folk "dvbf"? Jag har aldrig hört någon säga det högt. Skriva det kanske.
08:43:39 <Vorpal> fizzie, trafikverket is not a nonsense name though.
08:43:41 <pikhq_> Which you can drive all the way through and count on one hand the number of cars you've seen.
08:43:49 <pikhq_> (if you choose the path right, mind)
08:43:55 <Vorpal> fizzie, some other ones went for nonsense names though
08:44:10 <olsner> Vorpal: hmm, förkortningen kanske är text-specifik ja... vanligtvis säger man nog alla orden när man säger det
08:44:15 <Vorpal> <pikhq_> Which you can drive all the way through and count on one hand the number of cars you've seen. <-- can't do THAT in most of Sweden
08:44:22 <Vorpal> pikhq_, Sweden is rather unevenly settled.
08:44:41 <Vorpal> pikhq_, an average is not going to give you any useful numbers for most of Sweden.
08:44:53 <Vorpal> olsner, exakt.
08:45:10 <pikhq_> Kansas has pretty much a single giant glob of population, a handful of smaller ones, and hundreds of miles of corn fields.
08:45:52 <pikhq_> To avoid the globs of population, you only really need to keep off of the Interstate bisecting it.
08:46:13 <Vorpal> pikhq_, well not like that here. South half of Sweden have quite a lot of cities. In the far northen parts you can go for miles (Swedish ones, 10 km) without even seeing a road.
08:46:23 <Vorpal> (that was from a train though)
08:46:56 <Vorpal> of course most americans probably don't count 50000 inhabitants as a city...
08:47:19 <fizzie> That's funny, W|A gives me "24.4 accidents per hunderd million vehicle kilometres per year" by default, with a "show non-metric" button available.
08:47:43 <Vorpal> fizzie, which non-metric?
08:47:51 <Vorpal> fizzie, and what is the funny part?
08:47:52 <pikhq_> Didn't for me.
08:47:54 <fizzie> Miles.
08:48:01 <Vorpal> ah
08:48:07 <Vorpal> but what about furlongs?
08:48:13 <pikhq_> Oh, wait, there it is.
08:48:21 <pikhq_> "Show metric".
08:48:35 <Vorpal> geoip or cookies maybe?
08:48:40 <fizzie> The "funny" (in the "curious") part was that it defaults to non-metric for pikhq. I guess by IP geolocation or some-such.
08:48:56 <olsner> <Vorpal> but what about furlongs? <pikhq_> Oh, wait, there it is. <pikhq_> "Show metric".
08:49:06 <Vorpal> :D
08:49:11 <olsner> furlongs are now metric :P
08:49:17 <Vorpal> hah
08:49:23 -!- CakeProphet has quit (Ping timeout: 250 seconds).
08:49:32 <pikhq_> fizzie: Which irks me, because metric is what I usually want, *especially* if comparing official statistics with any other country.
08:50:10 <fizzie> Our figure is 20.8 accidents per hundred million miles per year; but of course this is an even less populated place and so on.
08:50:29 <elliott> hmm, xor is one-bit addition
08:50:31 <elliott> what's one-bit subtraction?
08:50:37 <elliott> oh, just xor on complement, heh
08:50:40 <Vorpal> fizzie, yeah
08:50:55 <elliott> and multiplication is and, right?
08:50:57 <Vorpal> pikhq_, do you have those 2+1 roads in US?
08:51:01 <elliott> yeh
08:51:01 <Vorpal> http://en.wikipedia.org/wiki/2%2B1_road
08:51:01 <elliott> yeah
08:51:33 <elliott> wait no
08:51:35 <elliott> it's not
08:51:36 <elliott> hmm
08:51:37 <Vorpal> ah yes you have a handful says wikipedia
08:51:40 <elliott> what /is/ subtraction
08:51:42 <pikhq_> Vorpal: Apparently in a handful of places.
08:51:47 <pikhq_> Vorpal: I haven't seen one.
08:52:03 <Vorpal> pikhq_, they increase safety a lot I heard.
08:52:38 <elliott> :|
08:52:41 <elliott> what is one-bit subtraction
08:52:45 <pikhq_> Compared with just having lines on the road indicating when you can go into the oncoming lane to pass? I'm sure.
08:53:24 <pikhq_> Wouldn't work as well with US drivers though. Blithering morons seem to not grok the idea of a "passing lane".
08:53:49 <fizzie> We have roads that do short 2+1-style stretches every now and then (alternating the side) with regular 1+1 road in-between the 2+1 sections.
08:53:52 <elliott> ur all so helpful
08:53:54 <Vorpal> pikhq_, hm, well they would have to, since the lane shifts side every now and then
08:54:08 <Vorpal> fizzie, yeah that is what a 2+1 road is, isn't it?
08:54:42 <fizzie> Vorpal: I understood from the wiki description that it stays three-lane all the time.
08:54:57 <elliott> hey fizzie
08:55:00 <fizzie> At least the side-change at the top diagram is like that.
08:55:02 <Vorpal> fizzie, oh in total yes.
08:55:02 <elliott> what logical op corresponds to one-bit subtraction
08:55:10 <Vorpal> fizzie, though there can be 1+1 sections sometimes
08:55:16 <Vorpal> but usually it is 3 in total
08:55:19 <Vorpal> misunderstood you
08:55:28 <Lymia> elliott, XOR?
08:55:33 <elliott> no
08:55:35 <elliott> xor is one-bit addition
08:55:39 <elliott> wait
08:55:39 <elliott> omg
08:55:40 <Lymia> Right.
08:55:42 <elliott> its the same thing
08:55:51 <elliott> thats amazing its like im on DURGZ
08:55:52 <Lymia> The carry bit would have to be different, right?
08:55:54 <Lymia> :c
08:56:07 <elliott> thats not part of addition or subtraction
08:56:28 <Lymia> It is part of it when you're chaining them for higher bits, right?
08:57:15 <fizzie> Vorpal: Ours always -- well, at least I think so -- just have a one-sided 2+1 section, and then a longer 1+1 gap, and then the same thing for the other side. There's typically signage saying how far the next 2+1 part is.
08:57:27 <Vorpal> fizzie, heh, why
08:58:09 <Lymia> elliott, oh, I see.
08:58:15 <Lymia> You can only add and subtract one, right?
08:58:53 <Lymia> One of those operations always rolls over, and the other operation ends up on that value naturally.
08:58:56 <Lymia> Makes sense
08:59:37 <fizzie> Vorpal: Maybe it's cheaper that way when retrofitting old roads, have to widen just parts of it instead of the whole thing.
09:00:01 <Vorpal> fizzie, hm right
09:01:25 <Vorpal> pikhq_, anyway I don't understand how traffic in US can work at all
09:03:58 <pikhq_> "Poorly".
09:05:08 -!- elliott has quit (Remote host closed the connection).
09:05:11 <fizzie> Incidentally, visited the UK National Museum of Computing (in Bletchley Park) last week. There was an http://en.wikipedia.org/wiki/Elliott_803 in there.
09:05:13 <Lymia> I recall an incident with a driver who was texting while driving on the highway.
09:05:17 <fizzie> Aw, he *just* went.
09:05:26 <Lymia> They changed lane unintentionally more than once.
09:05:31 <Lymia> At one point, they were perpendicular to the road......
09:05:34 -!- elliott has joined.
09:05:35 <Lymia> wtf
09:05:43 <elliott> what
09:05:57 <elliott> 09:05:11: <fizzie> Incidentally, visited the UK National Museum of Computing (in Bletchley Park) last week. There was an http://en.wikipedia.org/wiki/Elliott_803 in there.
09:06:01 <elliott> fizzie: yeah thats me
09:06:05 <elliott> got a problem w/ it????
09:06:18 <elliott> they never noticed i was sentient :(
09:07:10 <fizzie> Then I now have a picture of you, "yay".
09:07:26 <elliott> im the most girly looking retrocomputer
09:09:36 <pikhq_> Vorpal: It's a wonder that we still have population: http://upload.wikimedia.org/wikipedia/commons/b/ba/Atlanta_75.85.jpg
09:10:23 <pikhq_> Yes, that really is 14 lanes.
09:10:41 -!- MigoMipo has joined.
09:14:21 <elliott> pikhq_: that's nice and wide
09:14:58 <pikhq_> elliott: Not even the widest.
09:16:42 <augur> hey elliot.
09:16:57 <pikhq_> elliott: http://upload.wikimedia.org/wikipedia/commons/2/2c/RF_-_Houston_Texas_IH10.1.jpeg
09:17:44 <pikhq_> elliott: For reasons of not-being-apeshit, the lanes aren't all crammed together. But, that's a 26 lane highway.
09:19:01 <pikhq_> Yes, really, that is all the same damned road.
09:19:17 <pikhq_> With onramps and offramps to different parts of the road.
09:19:27 -!- CakeProphet has joined.
09:19:32 -!- CakeProphet has quit (Changing host).
09:19:33 -!- CakeProphet has joined.
09:21:18 -!- CakeProphet has quit (Client Quit).
09:21:34 -!- CakeProphet has joined.
09:21:34 -!- CakeProphet has quit (Changing host).
09:21:35 -!- CakeProphet has joined.
09:23:51 <pikhq_> Also, that road system requires this: https://secure.wikimedia.org/wikipedia/en/wiki/File:Texas_turnaround.svg
09:23:58 <pikhq_> And fuck I should sleep, it's 03:30.
09:24:05 <elliott> pikhq_: hi its ten am
09:36:41 -!- Miss has joined.
09:38:44 <elliott> hi Miss
09:38:56 <Miss> Hi
09:39:10 <Miss> How r u
09:39:31 <elliott> do you know what this channel is about
09:39:40 <Miss> No
09:39:46 <elliott> programming
09:39:58 <Miss> About what !!
09:40:09 <augur> Miss: programming languages, to be specific
09:40:14 <augur> crazy nutso ones
09:40:17 <augur> to be even MORE specific!
09:40:17 <Miss> Aha
09:40:36 <Miss> Oh
09:40:39 <Lymia> augur, "crazy nutso ones" is a bit of an understatement, don't you think?
09:40:40 <Lymia> :3
09:40:50 <elliott> this channel is the feather user and appreciation promotion group retroactiavte
09:40:54 <augur> Lymia: i dont know how to make it even more true
09:40:59 <Miss> Im not realy spake english
09:41:05 <elliott> i spaked english
09:41:13 <Miss> ;(
09:41:29 <Lymia> augur, see: Malborge
09:41:31 <Lymia> See: Aura
09:42:00 <augur> malborge or malbolge
09:42:27 <Miss> elliott
09:42:34 <elliott> miss elliott
09:42:45 <augur> missy be thrownin down
09:42:49 <augur> im the hottest rond
09:42:51 <augur> round..
09:42:52 <augur> :|
09:42:59 <elliott> quality channel
09:43:05 <augur> QUALITY
09:43:09 <augur> VIP QUALITY
09:43:12 <augur> WHERES SLEREAH
09:43:17 <Miss> :P
09:43:31 <elliott> Miss: r u the reincarnation of alfred tarski famous kawaii british pyhsicist...
09:43:45 <augur> tarski, british?
09:43:52 <elliott> yes
09:43:58 <elliott> tarski is the most kawaii british physicist of all time
09:43:59 <augur> hardly
09:44:06 <elliott> hes as british as he is a physicist so shut your mouth
09:44:14 <augur> true!
09:44:31 <Lymia> augur, Lymia is channeling her inner Japanese. Yep.
09:44:41 <augur> ..
09:44:41 <augur> what
09:44:44 <elliott> wat
09:44:45 <Miss> ;(
09:44:49 <elliott> Miss: ;(
09:45:05 <augur> this is so confusing T_T
09:45:17 <Miss> I need sleep
09:45:39 <elliott> tarski needs sleep
09:46:04 <Miss> Now im vacation 
09:46:12 <elliott> Now im vacation 
09:46:29 <Miss> O.O
09:47:20 <Lymia> v
09:47:36 <Lymia> 
09:47:37 <Lymia> 
09:47:42 <Lymia> ^ It's just like Minecraft!
09:47:57 <Miss> 
09:47:59 <Lymia>  
09:48:08 <Lymia>  
09:48:16 <Lymia>  S 
09:48:18 <Lymia> Yeah.
09:48:21 <Lymia> Too spammy.
09:48:30 <Miss> فيه احد سعودي
09:48:39 <Miss> ههههه
09:49:59 <elliott> ههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه
09:50:01 <elliott> هههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههههه
09:50:02 <elliott> ههههههههههههههههههههههههههههههههههههههههههههههههههههههه
09:50:03 <elliott> هههههههههههههههههههههههههههههههههههههههههههههv
09:50:03 <elliott> هههههههههههههههههههههههههههههههههههههههههههههههههه
09:50:04 <elliott> ههههههههههههههههههههههههههههههههههه
09:54:17 <Lymia> SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
09:54:20 * Lymia explodes
10:00:40 -!- Miss has quit (Quit: Rooms • iPhone IRC Client • http://www.roomsapp.mobi).
10:04:59 -!- Miss has joined.
10:05:02 <Miss> وش ذا
10:05:31 <Miss> ما شا الله انت سعودي
10:05:42 <Miss> قاعد تطقطق علي
10:05:50 <Lymia> 英語で?
10:06:52 <elliott> لله
10:07:00 <elliott> عد تله انت
10:07:06 <elliott> wonder what i just said
10:07:53 <Miss> Do you anderstand !!!
10:08:13 <elliott> lol
10:08:21 <Lymia> 英語で!!
10:08:33 <Miss> I'm speak arabic
10:08:46 <Miss> :-!
10:09:03 <Miss> ;( ;( ;(
10:09:15 <elliott> でان
10:09:18 <Lymia> Oh.
10:09:33 <Lymia> えいごではなせてください
10:09:34 <Lymia> There.
10:09:36 <Lymia> Squiggles.
10:09:57 -!- ais523 has joined.
10:10:11 <Miss> :(
10:10:21 <elliott> hi ais523
10:10:28 <elliott> miss is very confused
10:11:15 <Lymia> في<It's a duck!
10:11:20 <ais523> hi
10:11:24 <Lymia> ...
10:11:24 <Lymia> :<
10:11:52 <Miss> No
10:12:38 <Lymia> なに?
10:12:49 <ais523> has anything much been happening while I've been away from the Internet?
10:14:05 -!- Miss has left.
10:14:42 <elliott> ais523: you've been away?
10:14:58 <elliott> and thus began ais523's realisation that nobody truly cares about him ;__;
10:15:07 <ais523> elliott: yes, but it's OK
10:15:10 <ais523> three days or so is not much
10:22:33 -!- FireFly has joined.
10:38:28 <Vorpal> I think the weather confused Sweden and UK as of recently
10:38:31 <Vorpal> rain *again*
10:40:10 -!- ais523_ has joined.
10:40:19 -!- ais523 has quit (Disconnected by services).
10:40:20 -!- ais523_ has changed nick to ais523.
10:48:43 <augur> ais523: three days is not away
10:48:55 <ais523> well, it's more than usual for me
10:49:20 <ais523> hmm, checking Esolang's recent changes implies there's a new lang there that's actually interesting?
10:49:23 <ais523> I must look at it some time
10:50:41 <augur> whats it called?
11:01:49 <elliott> ?hoogle [a] -> Int -> a -> [a]
11:01:49 <lambdabot> Network.CGI.Protocol replace :: Eq a => a -> a -> [a] -> [a]
11:01:49 <lambdabot> Prelude enumFromThenTo :: Enum a => a -> a -> a -> [a]
11:01:50 <lambdabot> Data.IntMap findWithDefault :: a -> Key -> IntMap a -> a
11:01:51 <elliott> grr
11:03:15 <Deewiant> > (\a i x -> take i a ++ x : drop (i+1) a) [1,2,3,4] 2 5
11:03:17 <lambdabot> [1,2,5,4]
11:26:19 -!- ais523 has quit (Read error: Operation timed out).
12:16:32 -!- ais523 has joined.
12:25:40 -!- ais523 has quit (Read error: Connection reset by peer).
12:27:27 -!- ais523 has joined.
12:32:34 <elliott> -10 points on a reddit comment, awesome
12:32:49 <elliott> i've finally angered people enough to downvote me rather than just ignore me
12:32:52 <ais523> elliott: wow
12:32:57 <ais523> what did you say?
12:33:06 <ais523> (I don't think Reddit has a search for lowest-rated posts by a particular user)
12:33:13 <elliott> ais523: http://www.reddit.com/r/programming/comments/hz87n/journalist_writes_programing_is_too_hard_wishes/c1zlub4?context=1
12:33:16 <Lymia> elliott, was it Minecraft related?
12:33:16 <ais523> also, I don't think I've ever downvoted a post at Reddit
12:33:30 <elliott> Lymia: no, although that would be a rather efficient way to get downvoted into oblivion
12:33:52 <ais523> to be fair, you are attacking a strawman there
12:34:03 <elliott> I am, but the original post was just as idiotic, so I don't really care.
12:34:08 <ais523> and people on the internet generally hate that
12:34:19 <elliott> They do? The whole comments are attacking a strawman of the post.
12:34:31 <elliott> Mostly latching on to the fact that Objective-C is mentioned as "lol blogger wants to make iphone apps".
12:35:01 <elliott> lol, it's twelve points lower than my comment "my envisiaone powerh boards is more advanced than ur phbb"
12:35:11 <elliott> good redditting etiquette
12:35:25 <elliott> and indeed, you can't order comments by bottom, it seems
12:35:26 <elliott> just top
12:35:35 <ais523> well, objective-C is a good language for writing iphone apps in
12:35:56 <ais523> because it has the best library support for that
12:36:35 <elliott> that's... a non sequitur
12:36:38 <elliott> I never claimed it wasn't
12:36:42 -!- ais523 has quit (Read error: Connection reset by peer).
12:38:10 -!- ais523 has joined.
12:38:21 <ais523> [13:36] <ais523> it's not quite a non sequitur
12:38:23 <ais523> [13:36] <ais523> but almost
12:38:24 <ais523> [13:36] <ais523> I'm not arguing with you, just commenting on something vaguely related
12:38:55 <elliott> right
12:39:15 <elliott> hmm, I can actually delete that karmawhoring /r/programming submission I made two years ago
12:39:20 <elliott> on the one hand, I'd feel good inside
12:39:25 <elliott> on the other hand, over one thousand karma :(
12:42:36 <ais523> is that link karma or comment karma?
12:42:47 <ais523> also, deleting something removes the karma from it? does that work for downvotes to?
12:42:58 <elliott> link karma, and hmm, good point
12:54:52 <ais523> hmm, a case of weird kerning made me see the :// in a URL as a smiley
12:55:05 <ais523> and now it's hard not to
12:55:51 <Sgeo> What was it a link to?
12:55:52 -!- wareya has quit (Read error: Connection reset by peer).
12:56:14 <Sgeo> Also, wouldn't that affect discussions about it?
12:56:30 -!- wareya has joined.
12:56:52 <elliott> Sgeo: it would eradicate all the valuable discussions about the link that were had
12:56:55 <elliott> i.e., none
12:57:48 <Sgeo> The link about iTunes going DRM-free?
12:58:05 <elliott> yeah
13:00:50 <Sgeo> Apple wanted people to pay them to get rid of the DRM on their current collection?
13:01:23 <elliott> all the drm-free stuff is a separate product, so yeah
13:01:34 <elliott> i dont think its fully drm free yet even
13:01:46 <Sgeo> Wow :/
13:02:09 -!- BeholdMyGlory has joined.
13:05:14 -!- ais523 has quit (Remote host closed the connection).
13:10:30 -!- BeholdMyGlory has quit (Remote host closed the connection).
13:10:48 -!- BeholdMyGlory has joined.
13:11:32 -!- BeholdMyGlory has quit (Remote host closed the connection).
13:14:36 -!- Deewiant has quit (Ping timeout: 244 seconds).
13:15:29 -!- Deewiant has joined.
13:18:19 -!- copumpkin has joined.
13:24:24 <elliott> Sgeo: Oh uh, update etc.
13:24:29 <elliott> IT IS MY DUTY TO NOTIFY THE MUCH LESS VIGILANT
13:24:31 <Sgeo> Saw it
13:24:37 <Sgeo> I have it in Google Reader
13:24:52 <elliott> Or DO you
13:46:22 -!- BeholdMyGlory has joined.
13:50:11 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
13:50:32 -!- FIQ has quit (Quit: Lämnar).
13:51:19 <elliott> now where's oerjan when you need him
13:52:19 <oklofok> probably out partying like always
13:54:32 <elliott> yeah
13:54:38 <elliott> he's such a ... party dude
13:54:51 -!- Phantom_Hoover has joined.
13:55:42 <oklofok> yeah oerjan is the "dude" in "partitude"
13:55:42 <Phantom_Hoover> lambdabot, status report.
13:55:46 <Phantom_Hoover> :(
13:55:46 <lambdabot> Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them.
13:55:55 <oklofok> which means partying
13:57:52 <Sgeo> "As far as we know, every force weakens with distance. "
13:58:06 <Sgeo> I thought strong force between quarks gets stronger?
13:58:41 <Sgeo> http://www.badastronomy.com/bad/misc/astrology.html
13:59:17 <Lymia> By the way.
13:59:26 <Lymia> The universe is expanding faster and faster now, right?
13:59:40 <Lymia> And... Einstein's universal constant fits.
14:09:59 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:10:34 <Phantom_Hoover> <Sgeo> I thought strong force between quarks gets stronger?
14:10:41 <Phantom_Hoover> It's complicated.
14:11:10 <elliott> you know what they say, what doesn't quark you only makes you stronger
14:11:12 <Phantom_Hoover> It weakens with distance, but only up to a point; and colour confinement means that realistically you can only get them so far apart.
14:12:51 <Phantom_Hoover> Lymia, what are you trying to say it doesn't sound sensible.
14:13:26 -!- aloril has quit (Ping timeout: 250 seconds).
14:14:04 <Lymia> Never mind.
14:16:29 <Phantom_Hoover> Do you mean his cosmological constant?
14:17:00 <Phantom_Hoover> (The cosmological constant really annoys me because of all the idiots who say "SEE EVEN WHEN EINSTEIN WAS WRONG HE WAS RIGHT".)
14:17:15 <Phantom_Hoover> (It's science fanboyism, plain and simple.)
14:18:14 <Lymia> Yeah, I think that's it
14:18:22 <Lymia> How simple is the math anyways
14:18:48 <Phantom_Hoover> For GR?
14:18:53 <Phantom_Hoover> Crazy complicated.
14:19:15 <oklofok> just math it up and you're done
14:19:43 <Phantom_Hoover> (OK, so it's not all that complicated, but it's extremely hard to actually use it.)
14:19:56 <oklofok> math. it. up.
14:20:27 <oklofok> don't listen to Phantom_Hoover, he doesn't even have a formal degree in math. so what was GR short for again?
14:20:40 <oklofok> you mean like general relativity? what the fuck is that, always wondered
14:21:35 <Phantom_Hoover> It's, like, trampolines.
14:21:37 <Phantom_Hoover> In space.
14:21:45 <oklofok> i love trampolines!
14:21:51 <Phantom_Hoover> Do you love space.
14:21:54 <oklofok> if there's a safety net of course :\
14:22:10 <Phantom_Hoover> That's not a problem in space.
14:22:18 <Phantom_Hoover> You can't hit anything.
14:22:24 <oklofok> what about all the gravity flying about in there?
14:22:38 <oklofok> what if some of it hits me in the face
14:22:59 <Phantom_Hoover> Don't worry, it tastes like apples.
14:23:03 <Lymia> I love how the "rubber sheet" explanation for gravity.... relies on gravity to work.
14:23:20 <oklofok> ^
14:23:24 <Lymia> Recursive metaphors.
14:23:27 <Phantom_Hoover> Lymia, that is because it is a terrible explanation for it which is wrong in at least 3 ways.
14:24:14 <Sgeo> Does the geometry of space change the way the rubber sheet metaphor describes it changed if the rubber sheet was flattened out but the distortions made from a birds-eye view were still there?
14:24:21 <Sgeo> That is, is there a way to salvage it?
14:25:24 <Lymia> It's an explanation of gravity that relies on one's intuition about gravity to work, and not in a very direct way.
14:25:31 <Lymia> It's like saying "gravity causes gravity"
14:25:31 <Lymia> So, no.
14:25:53 <Lymia> Plus, you'd need 4 dimensions to extend it to 3d.
14:25:57 <Lymia> *cough*
14:27:16 <Sgeo> No, I mean
14:27:32 -!- aloril has joined.
14:27:46 <Sgeo> Not as an explanation. But if you look at the rubber sheet from the top, the "straight lines" get distorted
14:28:03 <Sgeo> Is that distortion accurate to whatever way gravity gets distorted in actual reality?
14:28:06 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
14:28:09 <Lymia> Dunno.
14:28:41 -!- Phantom_Hoover has joined.
14:29:05 <Phantom_Hoover> 14:25:31: <Lymia> It's like saying "gravity causes gravity"
14:29:09 <Phantom_Hoover> No, it's not.
14:29:28 <Phantom_Hoover> It's nothing like the actual reason it happens, but it's not tautological.
14:32:18 <Phantom_Hoover> (The actual reason it happens is that the geometry of 4D spacetime is altered such that the 4-vector which points 'futurewards' is deflected to have a space component.)
14:33:24 <Vorpal> Phantom_Hoover, do you actually understand general relativity? With that I mean, "able to calculate on it"
14:33:47 <Phantom_Hoover> Vorpal, no, but I understand The Principles.
14:33:58 <Vorpal> ah
14:34:15 <Phantom_Hoover> But I can calculate on a trampoline in space.
14:34:23 <Phantom_Hoover> Although I can't do it as well as oklofok.
14:34:43 -!- copumpkin has joined.
14:34:50 <Vorpal> Phantom_Hoover, err, what do you mean
14:35:49 <Phantom_Hoover> Vorpal, have you considered that I have more amusing things to do than substitute for your scroll bar.
14:36:09 <Vorpal> Phantom_Hoover, oh so "trampoline in space" is mentioned above?
14:36:13 <Vorpal> you could have said that
14:36:37 <oklofok> trampo llineeeeeeeeeeeeeeeeeeeeeeeeees :DSDDDDDDDDDDDDDD
14:36:50 <oklofok> IN SPACE
14:39:18 <Phantom_Hoover> 14:27:46: <Sgeo> Not as an explanation. But if you look at the rubber sheet from the top, the "straight lines" get distorted
14:39:21 <Phantom_Hoover> No.
14:40:22 <Sgeo> I assume that that no is to the question I aked that you didn't pate, rather than the tatement you pasted?
14:40:37 <Sgeo> My s key was being funky
14:41:03 <Phantom_Hoover> I'm sorry Sgeo I don't know how to pate tatements.
14:41:18 <Sgeo> paste statements
14:44:21 <Lymia> Phantom_Hoover, so....
14:44:27 <Lymia> The flow of time is bent so that it has a direction
14:44:29 <Lymia> Well...
14:44:33 <Lymia> A direction that's not time related.
14:44:36 <Lymia> =w=
14:44:55 <Phantom_Hoover> Please everyone I am not this magic science man.
14:45:07 <Phantom_Hoover> I only have a vague grasp on most things.
14:45:16 <elliott> Shut up magic science man.
14:46:52 <oklofok> magic science NERD :DDDDDDDDDDDDD
14:47:41 <Phantom_Hoover> Shut up magic maths nerd.
14:47:48 <oklofok> im not nerd :(
14:47:55 <Phantom_Hoover> You and your pentagrams.
14:48:12 * Lymia draws a hexagram
14:48:29 <Phantom_Hoover> JEW
14:48:38 <Phantom_Hoover> Jewish Minecraft nerd.
14:48:47 <oklofok> margaxeh
15:08:02 -!- azaq23 has joined.
15:20:26 <elliott> Holy SHIT.
15:20:31 <elliott> That comment is now at -52.
15:20:40 <elliott> I am lolling.
15:29:55 <Sgeo> hm?
15:30:14 <Sgeo> elliott, which comment?
15:30:38 <Sgeo> oh
15:33:52 <Sgeo> Note to self: elliott isn't perfect
15:33:59 <elliott> Yes I am.
15:46:28 -!- Kustas has joined.
15:52:39 -!- monqy has joined.
16:00:47 <Phantom_Hoover> Sgeo, you may also wish to note that I am in fact just this random 16-year-old, not some science prodigy.
16:33:23 -!- Kustas has quit (Read error: Connection reset by peer).
17:02:00 <Vorpal> Sgeo, you only found that out now?
17:03:25 <elliott> Sgeo has worryingly delusional beliefs about me most of the time.
17:07:10 -!- BeholdMyGlory has quit (Remote host closed the connection).
17:15:33 -!- BeholdMyGlory has joined.
17:40:01 <Gregor> !perl if ("David" == "David") { print("True"); } else { print("False"); }
17:40:02 <EgoBot> True
17:40:08 <Gregor> !perl if ("Nancy" == "Nancy") { print("True"); } else { print("False"); }
17:40:08 <EgoBot> False
17:40:17 <Gregor> HAVE FUN WITH THAT ONE GUYS
17:40:35 <Phantom_Hoover> Does == work in Perl the way you'd expect?
17:40:42 <quintopia> "Da" means yes
17:40:46 <quintopia> "Na" means no
17:40:54 <quintopia> hence true and false :P
17:41:03 <Phantom_Hoover> Ah.
17:41:15 <Gregor> No, that is not the reason :P
17:41:23 <Gregor> But you guys will NEVER figure out the reason.
17:41:26 <quintopia> but PH believed me :D
17:41:27 <Phantom_Hoover> Dammit that seemed plausible.
17:41:44 <Phantom_Hoover> Some kind of localisation thing combined with weird comparison!
17:42:10 <elliott> Gregor: "NaN"
17:42:14 <elliott> Gregor: and == is numeric equality
17:42:14 <elliott> the end
17:42:22 <elliott> "David" reads as 0, but "Nancy" reads as NaN
17:42:27 <elliott> and we all know nan isn't equal to itself
17:42:27 <Gregor> elliott: Damn you :(
17:42:27 <elliott> the end
17:42:33 <elliott> that was easy
17:42:42 -!- pikhq_ has quit (Ping timeout: 240 seconds).
17:42:50 -!- pikhq has joined.
17:43:22 <quintopia> i figured that's what it was
17:43:38 <quintopia> also why you chose my given name as your "normal" test case, i do not know
17:43:44 <quintopia> you just wanted to puing me i guess
17:43:47 <elliott> its a conspiracy
17:45:21 -!- oerjan has joined.
17:45:37 -!- TOGoS has joined.
17:46:05 -!- TOGoS has left.
17:52:01 <monqy> !perl if ("Nancy" == "Nancy") { print("True"); } else { print("False"); }
17:52:01 -!- elliott has quit (Read error: Connection reset by peer).
17:52:02 <EgoBot> False
17:52:20 <monqy> wait oops I messed it up
17:52:45 <monqy> somehow it worked in private
17:55:02 <oerjan> <elliott> its a conspiracy
17:55:12 <oerjan> the Dave conspiracy, to be precise
17:57:32 -!- elliott has joined.
17:57:46 <oerjan> 19:55 oerjan> <elliott> its a conspiracy
17:57:46 <oerjan> 19:55 oerjan> the Dave conspiracy, to be precise
17:58:13 <elliott> shut up i'm thinking of a hi-LARIOUS reference to respond with
18:04:25 <elliott> will you guys miss it if i start typing numbers normally again be honest
18:05:01 <monqy> !perl if ("Dave" == "Dave") { print("True"); } else { print("False"); }
18:05:01 <EgoBot> True
18:05:06 <monqy> stop that
18:05:49 <oerjan> elliott: we'll be shattered by grief
18:05:57 <elliott> monqy: wat
18:06:05 <olsner> `quote wat
18:06:08 <HackEgo> 71) * oerjan swats FireFly since he's easier to hit -----### <FireFly> Meh * FireFly dies \ 87) <xan> if you watch jaws backwards it's a movie about a giant shark that throws up so many people they have to open a beach \ 161) <ais523> cpressey: I have actually done a waterfall-model project that almost worked <cpressey>
18:06:22 <elliott> `quote \bwat\b
18:06:23 <HackEgo> No output.
18:06:33 <monqy> I should just accept that perl makes no sense
18:06:35 <Lymia> !perl if ("Nancy" === "Nancy") { print("True"); } else { print("False"); }
18:06:36 <EgoBot> syntax error at /tmp/input.30620 line 1, near "==="
18:06:55 <Lymia> !perl tell me why perl is so crazy
18:06:55 <EgoBot> Can't locate object method "so" via package "crazy" (perhaps you forgot to load "crazy"?) at /tmp/input.30696 line 1.
18:07:14 <oerjan> monqy: um the statement you tried is the one which _does_ make sense
18:08:12 <monqy> does egobot filter control characters out of its input
18:08:53 <oerjan> some of them
18:09:02 -!- Kustas has joined.
18:09:30 <monqy> I was secretly putting bolds in there to try to get it to mess up
18:09:31 <elliott> i sure am shitty at max/msp
18:09:44 <monqy> !perl if ("Daveq" == "Dave") { print("True"); } else { print("False"); }
18:09:44 <EgoBot> True
18:09:48 <monqy> aaagghhh
18:09:49 <oerjan> monqy: oh hm the _channel_ filters some too
18:09:54 -!- Lymia has quit (Quit: 1... 2... 3... HUGS! :D).
18:09:55 <elliott> yeah +c
18:10:03 <monqy> oh that makes sense
18:10:03 <elliott> that lymia hugs way too much.
18:10:14 <elliott> monqy: apologise to perl plzkthx
18:10:16 <elliott> its upset
18:10:21 <monqy> never
18:10:30 <olsner> !perl print "\x1b#8"
18:10:30 <EgoBot> ​.#8
18:10:54 <olsner> as if that would work, but it *would* have been fun if it did
18:11:17 <monqy> I guess that explains why the nancy test worked in private too
18:11:21 <monqy> :(
18:12:04 <elliott> perl has secret features in it to not allow people to mock it
18:12:27 -!- Sgeo has changed nick to JokeKiller.
18:13:20 <olsner> btw, there's a manpage "console_codes" that describes a lot of escape sequences, tried to display my powers of arcane knowledge using ESC#8 the other week but someone just looked it up in the manpage and pasted the description
18:13:30 -!- Lymia has joined.
18:15:31 -!- JokeKiller has changed nick to Sgeo.
18:16:08 -!- foocraft has joined.
18:39:19 -!- copumpkin has changed nick to pumpkin.
18:40:16 -!- pumpkin has changed nick to c0pumpkin.
18:55:31 <pikhq> It occurs to me that I could actually have this thing generate Autocrap.
18:55:37 <pikhq> I'm not *going* to, but I could.
18:56:39 -!- Kustas has quit (Quit: nights).
19:00:42 <olsner> I bet it could generate intercal code too, maybe you'll make it do that?
19:02:22 -!- pikhq has quit (Ping timeout: 240 seconds).
19:02:34 -!- pikhq has joined.
19:17:37 <olsner> this channel is now boring
19:18:00 <Sgeo> Xom is bored?
19:23:51 <pikhq> BUTBUT DECLARATIVE BUILD SYSTEMS
19:23:54 <pikhq> FORREALZ
19:26:47 -!- oerjan has quit (Quit: Reboot).
19:26:52 <olsner> pff! build systems are for losers who need to keep changing their code, just write the code until it's done, then compile it and distribute the result
19:29:13 -!- yiyus has quit (Ping timeout: 252 seconds).
19:30:00 -!- c0pumpkin has changed nick to copumpkin.
19:33:10 <Phantom_Hoover> <Sgeo> Xom is bored?
19:33:22 <Phantom_Hoover> Sgeo, you cannot make references if they don't even show up on Google.
19:33:47 <Phantom_Hoover> OK, revise after more specific query:
19:34:01 <elliott> crawl
19:34:20 <elliott> but would sgeo ever make reference to anything non-crappy enough to show up on google?
19:34:44 <Phantom_Hoover> Has he ever made Homestuck references.
19:41:22 -!- yiyus has joined.
20:00:11 -!- Sgeo has quit (Read error: Connection reset by peer).
20:00:46 -!- Sgeo has joined.
20:01:18 -!- elliott has quit (Remote host closed the connection).
20:01:24 -!- elliott has joined.
20:02:54 * pikhq can has a proper solver for c99
20:04:31 <Phantom_Hoover> Solver?
20:05:23 <pikhq> You ask the solver system to look for something. It executes the callback for it and caches the result.
20:06:10 <elliott> pikhq: [asterisk]executes each callback for it in order (of preference) and caches the result of the first one to succeed.
20:06:15 <elliott> STOP TAINTING MY DESIGN WITH YOUR SIMPLIFICATIONS
20:06:15 <pikhq> Well, yes.
20:06:23 <elliott> Can I see the code?
20:07:43 <pikhq> http://sprunge.us/CcVf
20:08:46 <CakeProphet> elliott: oh my god this time travel is getting out of hand.
20:08:55 <elliott> CakeProphet: lmao; what page are you on?
20:08:59 <CakeProphet> 4460
20:09:06 <Phantom_Hoover> Whuh?
20:09:19 <Phantom_Hoover> elliott suggested you were into A5A1. Anyway.
20:09:23 <CakeProphet> and these troll romances. WHAT AM I EVEN READING NOW.
20:09:31 <elliott> Phantom_Hoover: He... is?
20:09:37 <Phantom_Hoover> <CakeProphet> 4460
20:09:42 <elliott> Yes?
20:09:47 <Phantom_Hoover> Note how this is well within act 4.
20:09:51 <elliott> ...
20:09:52 <elliott> No?
20:09:59 <CakeProphet> ...no this is act 5.
20:09:59 <elliott> Note how you're an idiot?
20:10:04 <Phantom_Hoover> Oh, right.
20:10:09 <Phantom_Hoover> Numbers confuse me.
20:10:16 <Phantom_Hoover> Unless they're on a space trampoline.
20:10:17 <pikhq> elliott: Unlike Autoconf, I refuse to do a comprehensive test for, well, every major C99 feature.
20:10:30 <CakeProphet> I'm going to need a recap very soon...
20:10:46 <pikhq> elliott: If it claims to be C99 but isn't, well, I'm not cleaning up after the asshole compiler dev.
20:10:53 <elliott> pikhq: wait, you don't actually support multiple solutions for a single goal?
20:10:57 <elliott> that's useless then
20:11:08 <pikhq> elliott: Whaddya mean?
20:11:09 <elliott> as it stands you can't add another separate solution to use the posix c99 command
20:11:17 <elliott> solutions are a _list_ of functions
20:11:40 <pikhq> Oh, dur, that's a relatively easy fix.
20:12:03 <elliott> CakeProphet: A recap won't be necessary.
20:12:13 <elliott> You are very, very close to the end of actfiveactone, btw.
20:14:21 <Sgeo> Does CakeProphet know names?
20:14:49 <elliott> Sgeo: Is CakeProphet Sgeo?
20:14:57 <elliott> No? Then yes, CakeProphet knows names.
20:15:08 <elliott> CakeProphet might be Sgeo though.
20:15:09 <elliott> CakeProphet: are you sgeo
20:15:25 <Sgeo> CakeProphet: Be Sgeo
20:17:44 <Phantom_Hoover> You cannot be Sgeo. Sgeo's dad forbids it.
20:23:05 -!- copumpkin has quit (Ping timeout: 258 seconds).
20:24:29 -!- copumpkin has joined.
20:24:37 -!- copumpkin has quit (Changing host).
20:24:37 -!- copumpkin has joined.
20:24:39 <elliott> CakeProphet: Hey, remember whining about the pesterlogs in the first few pages? :D
20:24:45 <elliott> MEMOS SURE ARE GREAT HUH
20:25:10 <Phantom_Hoover> elliott, I much preferred the memos to the pesterlogs, TbH.
20:25:18 <Phantom_Hoover> They were hilarious, rather than expository.
20:25:24 <elliott> Anyone who doesn't like pesterlogs is a bad person and should die.
20:25:35 <elliott> I will speak no further on the matter.
20:27:47 <CakeProphet> no I like the pesterlogs, I'm just kind of tired of reading at this point.
20:28:20 <CakeProphet> I think I enjoyed them more with the humans. Less drama stuff.
20:28:45 <elliott> Act Five Act One... isn't typical.
20:29:16 <elliott> But it's a vital part of the story, and you only find out why on the last page, 4524.
20:29:50 <elliott> Hivebent was planned pretty much as soon as Homestuck began, so it's not like Hussie decided to make the comic all edgy all of a sudden.
20:30:31 <CakeProphet> no I can definitely tell that it ties in
20:30:46 <CakeProphet> actually all of this later stuff seems like it was written before the beginning, or at the same time.
20:31:16 <CakeProphet> because it would be ridiculous if he just tied everything in after-the-fact.
20:31:19 <elliott> I think pretty much everyone finds Act 5 Act 2 more enjoyable than Hivebent.
20:31:41 <CakeProphet> it's interesting.
20:32:43 <pikhq> elliott: Kay, so. In theory, you should be able to do any number of solvers now.
20:33:02 <elliott> pikhq: Wert.
20:33:20 <pikhq> Hrm, wait, minor issue. lappend does an end append, not a front append.
20:33:39 <pikhq> And I at least *presume* that it makes most sense for later solvers to take precedence over earlier ones.
20:34:41 <elliott> pikhq: Does it? I'd define gcc first because it's preferred, and then c99 as a "last" resort
20:34:48 <elliott> But I suppose for extensibility, that is preferable
20:36:55 <CakeProphet> 4481 is hilarious
20:37:24 <CakeProphet> like, that joke was set up age ago.
20:37:28 <CakeProphet> *ages
20:46:23 <CakeProphet> bam. end of act 5 act 1
20:48:14 <elliott> It's a pretty epic ending :P
20:48:49 <pikhq> elliott: I am *rapidly* approaching the point where my tests need to be in a seperate file. :P
21:06:25 <elliott> "To keep whipping my personal horse, I maintain that TCE changes the language semantics in that it changes the kinds of computation the language can perform. With it a state machine can be built out of mutually recurring functions and run virtually forever instead of crashing, that sounds like a semantic change to me."
21:06:30 <elliott> let's laugh at this idiot lol
21:10:38 <monqy> wow who would even think that
21:11:14 <Phantom_Hoover> TCE?
21:11:41 <elliott> tail-call elimination
21:13:39 <olsner> sounds a bit too intellectual to be guido though
21:13:54 <elliott> they're pro-TCE, so of course they're not guido
21:14:26 <olsner> oh, pro-TCE? that wasn't too obvious
21:14:37 <Sgeo> The _kind it can perform_?
21:15:12 <Sgeo> I don't think I'd think to criticise it if it weren't for the criticism in here, but now it's been criticised in here, I easiy see what's wrong with that statement. This is scary.
21:16:12 <olsner> that's the power of #esoteric empowering you, or something
21:16:47 <elliott> i like how by their logic, buying more ram changes a language's semantics
21:17:22 <elliott> "TL;DR: Prefer a DSL over a state machine any day of the week."
21:17:23 <elliott> r u srs
21:18:53 -!- ralc has joined.
21:19:03 <monqy> what if the dsl models a state machine
21:19:04 <monqy> what then
21:19:20 <Phantom_Hoover> DSL?
21:19:26 <Phantom_Hoover> YOU GUYS AND YOUR ACRONYMS
21:19:29 <monqy> domain-specific language
21:19:34 <olsner> monqy: FSM-DSL-C E P T I O N
21:20:05 <elliott> olsner: slow clap
21:20:21 <Phantom_Hoover> olsner, that meme is now over.
21:20:24 <monqy> I never saw that movie is it any good
21:20:26 <Phantom_Hoover> You have perfected it.
21:20:33 <Phantom_Hoover> monqy, it is the beest movie.
21:21:53 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!).
21:26:09 <elliott> "State machines are like gotos, each transition is a jump. The main difference is that unlike gotos, state machines have no built in language/debugging support which makes it more tedious to figure out what is going on inside them when they break."
21:26:22 <olsner> state machines are like rube-goldberg machines
21:27:08 <Gregor> Apparently there's language/debugging support built into gotos.
21:27:09 <monqy> state machines are like gotos except more structured
21:29:37 <olsner> I would like to know what goes on inside gotos when they break
21:30:19 <elliott> splinpers
21:30:36 <monqy> gosomeplaceotherthan
21:30:37 <olsner> hmm, let's reparse the quote, what was it that broke again?
21:30:45 <olsner> meh, they're probably wrong whatever it was they were saying
21:30:46 <monqy> goanywhere
21:31:02 <elliott> comefromanywherebut
21:32:50 <elliott> hmm, what if there was a blend of come from and goto, where it had to be a two-way link
21:34:06 <olsner> I think many compilers actually will set up the two-way link (in a way) while compiling a gotoful program
21:34:27 <olsner> if it does ssa it'll need to know the come from's
21:34:52 <elliott> yeah, comefrom would be much more civilised if the line in question had to consent to it
21:35:42 -!- sebbu has quit (Ping timeout: 240 seconds).
21:37:58 <olsner> error: label raped.
21:38:31 -!- sebbu has joined.
21:38:32 -!- sebbu has quit (Changing host).
21:38:32 -!- sebbu has joined.
21:41:37 <olsner> and now for some zebra water sports: http://i.imgur.com/q8IYg.png
21:43:17 <Gregor> olsner: O_O
21:46:39 <olsner> Gregor: maybe you'll know this: do I want pickled herring and schnaps for breakfast on August 27?
21:47:20 <Vorpal> olsner, whaat ewww
21:47:27 <Vorpal> olsner, for *breakfast*
21:47:28 <Vorpal> hell no
21:47:53 <Phantom_Hoover> Ignore Vorpal, he knows nothing of the wonder of pickled herring and schnapps.
21:48:12 <Vorpal> Phantom_Hoover, have you ever eaten that
21:48:18 <olsner> Vorpal: it'll probably actually be second breakfast though
21:48:25 <Vorpal> olsner, ah okay
21:48:25 <Phantom_Hoover> Vorpal, I can infer that it is awesoe.
21:48:27 <Vorpal> a lot better
21:48:29 <Phantom_Hoover> *awesome
21:49:10 <Vorpal> olsner, Jag har vissa dubier angående schnappsen.
21:49:23 <olsner> Vorpal: nubbe då?
21:49:26 <Vorpal> olsner, Ska du köra?
21:49:37 <Vorpal> vänta
21:49:45 <Vorpal> du hade inte körkort va?
21:49:47 <olsner> jag har fortfarande inte tagit körkort nej
21:49:53 <olsner> kommer inte ha gjort till dess heller
21:50:00 <Vorpal> olsner, va, det har ju gått flera timmar sedan dess!!
21:50:14 <olsner> sedan slutet av augusti i år? nej, det har inte varit än
21:50:34 <Vorpal> nej jag menar sedan du nämnde det :P
21:51:22 <Vorpal> olsner, okej men jag är absolutist, så jag är fortfarande emot spritintaget. Men beslutar du dig ändå för det så kan jag inte ge några råd om bästa val.
21:51:35 <Vorpal> olsner, varför inte surströmming?
21:53:04 <Vorpal> olsner, ^
21:53:05 <Vorpal> !
21:53:09 <olsner> Vorpal: dels för att det inte erbjuds, men framförallt för att jag inte vet hur man äter det
21:53:13 <Vorpal> aha
21:53:19 <elliott> s t o p
21:53:22 <Vorpal> olsner, har du aldrig prövat det?
21:53:28 <olsner> Vorpal: nope
21:53:31 <Vorpal> ah okay
21:54:04 <Vorpal> olsner, jag önskar eder en god natt.
21:54:08 <Vorpal> night →
22:01:30 <Phantom_Hoover> Seriously, if you're going to speak to each other in Swedish, do it in a /msg.
22:01:49 <Phantom_Hoover> It's not very polite to carry out a conversation in front of everyone else that most of us don't understand.
22:01:54 <olsner> Phantom_Hoover: it's all vorpal's fault
22:02:14 <Phantom_Hoover> olsner, yes, of course, but only you can stop Vorpal fire.
22:03:15 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:04:36 -!- Gregor has left ("Leaving").
22:04:40 -!- Gregor has joined.
22:04:46 <Gregor> DID YOU MISS ME?
22:04:53 <olsner> the short summary is that 1) I haven't gotten a drivers license since this morning when it was last discussed 2) august is in the future 3) vorpal is an absolutist and disapproves of consuming alcohol
22:05:21 <Phantom_Hoover> Ah, right so Vorpal being Vorpal then.
22:05:37 <olsner> pretty much
22:05:41 <Phantom_Hoover> *so,
22:05:46 <Sgeo> I used to be more irritated by alcohol
22:05:46 <Phantom_Hoover> Erm, *right,
22:05:59 <Phantom_Hoover> "Then I tried drinking it instead."
22:06:22 <olsner> Sgeo: you're not supposed to put it in your eyes
22:08:46 <Gregor> `addquote <Sgeo> I used to be more irritated by alcohol <olsner> Sgeo: you're not supposed to put it in your eyes
22:08:49 <HackEgo> 457) <Sgeo> I used to be more irritated by alcohol <olsner> Sgeo: you're not supposed to put it in your eyes
22:09:12 <Phantom_Hoover> Gregor, hey, I made that joke first!
22:09:39 <Phantom_Hoover> I DON'T CARE IF OLSNER DID IT BETTER
22:09:48 <olsner> mwahaha
22:13:13 -!- pikhq has quit (Ping timeout: 240 seconds).
22:13:14 -!- pikhq_ has joined.
22:18:02 -!- pikhq_ has quit (Ping timeout: 240 seconds).
22:18:13 -!- pikhq has joined.
22:19:09 <olsner> neat: http://c2.com/cgi/wiki?ValuesOfBetaMayGiveRiseToDom
22:19:37 <olsner> (there's that word again: neat neat neat)
22:20:13 <Gregor> PRINTER ON FIRE
22:20:31 <olsner> PUT IT OUT!
22:22:16 <olsner> PRINTER ON FIRE
22:23:12 -!- Vorpal has quit (Ping timeout: 250 seconds).
22:32:55 -!- pikhq_ has joined.
22:33:10 -!- pikhq has quit (Ping timeout: 250 seconds).
22:35:55 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
22:41:03 -!- elliott has quit (Remote host closed the connection).
22:55:33 -!- Behold has joined.
22:56:23 -!- BeholdMyGlory has quit (Ping timeout: 244 seconds).
23:12:25 -!- oerjan has joined.
23:23:41 -!- Patashu has joined.
23:40:44 -!- Behold has quit (Read error: Connection reset by peer).
23:41:04 -!- Behold has joined.
2011-06-15
00:18:09 -!- pingveno has quit (Ping timeout: 252 seconds).
00:20:06 -!- pingveno has joined.
00:26:58 -!- FireFly has quit (Quit: swatted to death).
00:27:16 <pikhq_> ftp://ftp-uxsup.csx.cam.ac.uk/pub/bsd/4.4BSD-Lite/usr/src/contrib/emacs-18.57/src/unexec.c
00:27:19 <pikhq_> Wut.
00:31:27 <Patashu> Woah, that link opened in IE
00:32:46 <oerjan> Patashu: how can this be?!!!
00:33:11 <Patashu> I was just surprised
00:33:14 <oerjan> me too
00:33:23 <monqy> only IE is rad enough to handle ftp
00:33:51 <oerjan> monqy: well the impressive part was that it actually _showed_ it
00:34:00 <oerjan> rather than insisting on saving
00:34:25 <monqy> ooh fancy
00:34:28 <monqy> good job IE
00:36:10 <oerjan> today: Wikipedia showcases its Unicode support
00:42:15 <oerjan> > intercalate ", " $ iterate (curry(++).(show.length&&&take 1).group) "1"
00:42:15 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
00:42:16 <lambdabot> against inferred ty...
00:43:18 <oerjan> > intercalate ", " $ iterate (curry(++).(show.length&&&take 1)<=<group) "1"
00:43:19 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
00:43:19 <lambdabot> against inferred ty...
00:43:36 <oerjan> :t (curry(++).(show.length&&&take 1)<=<group)
00:43:37 <lambdabot> Couldn't match expected type `b -> [a]'
00:43:37 <lambdabot> against inferred type `[[a1]]'
00:43:37 <lambdabot> In the second argument of `(<=<)', namely `group'
00:44:34 <oerjan> :t curry(++).(show.length&&&take 1)
00:44:35 <lambdabot> forall b a. (Monoid b) => [a] -> b -> ((String, [a]), b) -> ((String, [a]), b)
00:45:17 <oerjan> :t (show.length&&&take 1)
00:45:18 <lambdabot> forall a. [a] -> (String, [a])
00:45:35 <oerjan> oh duh
00:45:47 <oerjan> > intercalate ", " $ iterate (uncurry(++).(show.length&&&take 1)<=<group) "1"
00:45:48 <lambdabot> "1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, 31131211131221, 132...
00:46:03 <oerjan> always with the confusing curry and uncurry
00:47:02 <Patashu> wtf's uncurry
00:47:03 <Patashu> O_O
00:47:33 <oerjan> :t uncurry
00:47:33 <lambdabot> forall a b c. (a -> b -> c) -> (a, b) -> c
00:47:47 <oerjan> uncurry (++) ("a","b")
00:47:52 <oerjan> > uncurry (++) ("a","b")
00:47:54 <lambdabot> "ab"
00:48:15 <oerjan> from a function which takes two arguments, it makes one which takes a tuple instead
00:48:21 <Patashu> huh
00:48:22 <Patashu> alright
00:48:33 <oerjan> and curry is the reverse
00:51:09 <oerjan> It is named for (Haskell B.) Curry, who didn't actually invent it (someone named Schönfinkel did iirc.)
00:52:00 <oerjan> but it is originally a way for simulating multiple argument functions in lambda calculus, which only has single-argument ones.
00:52:48 <oerjan> the haskell language picked the idea, so _its_ multiple argument functions are actually already curried, so you use uncurry when you want tuples instead
00:56:07 <oerjan> oh and i guess my example above mixes that with how haskell does operators: (++) in parentheses is a (curried) function with two arguments
00:57:04 <oerjan> while putting operators infix is just syntactic sugar for applying their function to the arguments on each side
00:57:26 <oerjan> > "a" ++ "b"
00:57:27 <lambdabot> "ab"
00:57:31 -!- pikhq_ has quit (Ping timeout: 240 seconds).
00:57:32 <oerjan> > (++) "a" "b"
00:57:34 <lambdabot> "ab"
00:57:49 -!- pikhq has joined.
00:58:25 <Patashu> > (,) "a" "b"
00:58:26 <lambdabot> ("a","b")
00:58:32 <Patashu> > (++) 'a' 'b'
00:58:33 <lambdabot> No instance for (Data.Monoid.Monoid GHC.Types.Char)
00:58:33 <lambdabot> arising from a use o...
00:58:35 <Patashu> ic
00:58:40 <Patashu> > (++) 'a' "b"
00:58:41 <lambdabot> Couldn't match expected type `GHC.Types.Char'
00:58:41 <lambdabot> against inferred type...
00:58:47 <oerjan> oh and lambdabot has some funky types for some functions
00:58:49 <monqy> (:) 'a' "b"
00:58:50 <Patashu> > (:) 'a' "b"
00:58:51 <lambdabot> "ab"
00:58:53 <Patashu> yup
00:58:53 <monqy> oop
00:58:54 <monqy> s
00:59:04 <Patashu> ++ is for two lists : is to add one component
00:59:09 <oerjan> _usually_, (++) is just for lists, but lambdabot makes it a synonym for mappend for monoids
00:59:21 <oerjan> which is a generalization
00:59:25 <oerjan> :t map
00:59:26 <lambdabot> forall a b. (a -> b) -> [a] -> [b]
00:59:29 <oerjan> oh hm
00:59:32 <monqy> not fmap?
00:59:52 <monqy> (I was expecting it to be a synonym of fmap)
00:59:55 <oerjan> i _thought_ they'd also made map a synonym for fmap, but i must have misremembered
01:00:05 <oerjan> > map (+1) (Just 1)
01:00:06 <lambdabot> Couldn't match expected type `[a]'
01:00:06 <lambdabot> against inferred type `Data.Mayb...
01:00:10 <oerjan> indeed not
01:00:13 <oerjan> :t flip
01:00:14 <lambdabot> forall (f :: * -> *) a b. (Functor f) => f (a -> b) -> a -> f b
01:00:19 <oerjan> this one though...
01:00:34 <oerjan> :t Prelude.flip
01:00:35 <lambdabot> forall a b c. (a -> b -> c) -> b -> a -> c
01:00:39 <oerjan> the usual one
01:01:01 <Patashu> > flip (:) "a" 'b'
01:01:03 <lambdabot> "ba"
01:01:57 <pikhq> 18:50 <@dalias> you should see how awesome musl's dynamic is
01:01:57 <pikhq> 18:51 <@dalias> if the program only uses libc.so and no other .so's
01:01:57 <pikhq> 18:51 <@dalias> the difference in # of syscalls at startup for dynamic vs static is _ZERO_
01:03:31 <pikhq> Also, regarding unexec. I found out what they use that for.
01:03:41 <oerjan> EVIL purposes, obviously
01:04:10 <pikhq> Their build system builds a "temacs" program. This is essentially a full emacs. temacs is then told to load the Emacs standard library, and then unexec itself.
01:04:25 <pikhq> The unexec'd binary is the final emacs binary.
01:04:28 <oerjan> > intercalate ", " $ iterate (liftM2(++)(show.length)(take 1)<=<group) "1"
01:04:30 <lambdabot> "1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, 31131211131221, 132...
01:04:45 <pikhq> That is to say, they have a specialiser *for the final binary*.
01:05:06 <pikhq> They are fucking specialising binaries.
01:05:09 <pikhq> And that scares me.
01:05:10 <Patashu> 'unexec'?
01:05:30 <Patashu> :t <=<
01:05:31 <lambdabot> parse error on input `<=<'
01:05:33 <pikhq> Patashu: ftp://ftp-uxsup.csx.cam.ac.uk/pub/bsd/4.4BSD-Lite/usr/src/contrib/emacs-18.57/src/unexec.c is an old one that I linked earlier.
01:05:38 <monqy> the one that opened in IE
01:05:45 <oerjan> Patashu: needs parentheses
01:05:52 <Patashu> :t (<=<)
01:05:53 <lambdabot> forall b (m :: * -> *) c a. (Monad m) => (b -> m c) -> (a -> m b) -> a -> m c
01:06:00 <monqy> unexec is spooky
01:06:10 <pikhq> "Frightening", more like.
01:06:31 <pikhq> It's a binary specialiser.
01:06:32 <Patashu> :t group
01:06:33 <lambdabot> forall a. (Eq a) => [a] -> [[a]]
01:06:37 <Patashu> @src group
01:06:37 <lambdabot> group = groupBy (==)
01:06:43 <Patashu> aah
01:06:45 <oerjan> > group [1,2,2,3,4,4]
01:06:46 <lambdabot> [[1],[2,2],[3],[4,4]]
01:06:48 <Patashu> right
01:06:57 <Patashu> @src (<=<)
01:06:58 <lambdabot> Source not found. I can't hear you -- I'm using the scrambler.
01:06:59 <pikhq> You could probably pull off the projections of Futamura with it.
01:07:00 <Patashu> o
01:07:26 <oerjan> iirc (g <=< f) x = g =<< f x
01:07:42 <Patashu> ah ok
01:08:19 <Patashu> > group [1, 2, 1, 1, 3, 1, 2, 2]
01:08:19 <lambdabot> [[1],[2],[1,1],[3],[1],[2,2]]
01:08:22 <Patashu> aha
01:08:25 <Patashu> it's sequential not global
01:08:28 <oerjan> for lists above, it's just a way to get the functions to left to apply to each element of the result of group, then concatenate the results
01:08:35 <Patashu> and then you take the length and take 1 of each group
01:08:39 <oerjan> yep
01:08:40 <Patashu> and concatenate it all together
01:08:41 <Patashu> mmk
01:10:16 <oerjan> and those uncurry with &&& and liftM2 are just two different ways of combining the result of applying two different functions
01:10:52 <Patashu> @src liftM2
01:10:52 <lambdabot> liftM2 f m1 m2 = do { x1 <- m1; x2 <- m2; return (f x1 x2) }
01:10:54 <oerjan> > uncurry f . (g &&& h) $ x :: Expr
01:10:55 <lambdabot> Ambiguous type variable `a' in the constraints:
01:10:55 <lambdabot> `SimpleReflect.FromExpr ...
01:11:00 <oerjan> oops
01:11:36 <oerjan> > uncurry f $ ((g &&& h) x :: Expr) :: Expr
01:11:37 <lambdabot> Couldn't match expected type `SimpleReflect.Expr'
01:11:37 <lambdabot> against inferred ...
01:11:47 <oerjan> oh duh
01:11:53 <oerjan> > uncurry f $ ((g &&& h) x :: (Expr, Expr)) :: Expr
01:11:54 <lambdabot> f (g x) (h x)
01:12:22 <oerjan> those overloaded Expr things require a bit awkward type annotation
01:13:12 <oerjan> > liftM2 f (g :: Expr -> Expr) (h :: Expr -> Expr) x :: Expr
01:13:12 <lambdabot> f (g x) (h x)
01:13:22 <oerjan> that uses the (e ->) monad
01:14:09 <oerjan> which threads an extra common argument through all its actions (which are functions)
01:14:56 <Patashu> I don't understand how liftM2 f m1 m2 = do { x1 <- m1; x2 <- m2; return (f x1 x2) } leads to 'm1 and m2 use the same x rather than different ones'
01:15:13 <oerjan> @undo do { x1 <- m1; x2 <- m2; return (f x1 x2) }
01:15:13 <lambdabot> m1 >>= \ x1 -> m2 >>= \ x2 -> return (f x1 x2)
01:15:29 <oerjan> that's the next step, syntactic sugar
01:15:58 <Patashu> shouldn't it be something like liftM2 f m1 m2 x = do { x1 <- m1 x; x2 <- m2 x; return (f x1 x2) }
01:15:59 <Patashu> I mean
01:16:05 <oerjan> Patashu: that's specific for the (e ->) Monad, that it gives the same argument to all its subactions
01:16:27 <oerjan> @src (>>=) (->)
01:16:27 <lambdabot> Source not found. And you call yourself a Rocket Scientist!
01:16:33 <Patashu> what is the (e ->) monad?
01:16:36 <oerjan> @src (->) (>>=)
01:16:36 <lambdabot> f >>= k = \ r -> k (f r) r
01:16:42 <oerjan> whew, just two tries
01:16:46 <Patashu> lol
01:17:12 * oerjan can never remember the required order or parentheses for @src :)
01:17:58 <oerjan> that's the definition used for the >>= method/operator when its first argument is a function
01:18:34 <Patashu> @src (>>=)
01:18:35 <lambdabot> Source not found. BOB says: You seem to have forgotten your passwd, enter another!
01:18:39 <oerjan> @src Monad
01:18:40 <lambdabot> class Monad m where
01:18:40 <lambdabot> (>>=) :: forall a b. m a -> (a -> m b) -> m b
01:18:40 <lambdabot> (>>) :: forall a b. m a -> m b -> m b
01:18:40 <lambdabot> return :: a -> m a
01:18:40 <lambdabot> fail :: String -> m a
01:18:42 <Patashu> :(
01:18:42 <Patashu> oh
01:18:57 <Patashu> @src (\)
01:18:57 <lambdabot> Source not found. Your mind just hasn't been the same since the electro-shock, has it?
01:19:01 <Patashu> lmao
01:19:05 <oerjan> those are defined specifically for each Monad instance
01:19:18 <oerjan> Patashu: \ starts a lambda expression
01:19:22 <Patashu> aah
01:19:24 <Patashu> ok
01:19:28 <oerjan> > (\x -> x+1) 3
01:19:29 <lambdabot> 4
01:20:46 <oerjan> @src (>>)
01:20:46 <lambdabot> m >> k = m >>= \_ -> k
01:20:54 <oerjan> that one has a default definition
01:20:55 <Patashu> so for >>=. You take a monad data, a function that goes from that data to monad data, then it's applied to the data inside. but shouldn't return be m a -> a since it's unboxing?
01:21:25 <oerjan> no it's actually "boxing" iiu what you mean
01:21:36 <oerjan> > return 1 :: [Int]
01:21:37 <lambdabot> [1]
01:21:47 <Patashu> don't you use - oh yeah
01:21:49 <Patashu> got it backwards
01:21:56 <Patashu> what's the one for unboxing then?
01:22:23 <oerjan> there is none, because each Monad has its own way for how to access its members, if any
01:22:24 <pikhq> Patashu: No such function.
01:22:30 <Patashu> ah true
01:22:45 <pikhq> Patashu: If the Monad in question wants you to be able to do that, it will provide such a function.
01:22:55 <pikhq> Typically of form "runFoo".
01:23:00 <oerjan> of course some exist, but e.g. the one for IO is considered evil to use ;D
01:23:30 <pikhq> Yeah, unsafePerformIO is that function for IO, and obviously, it's unsafe and a bad idea most times.
01:23:40 <Patashu> > fail "some error" :: [Int]
01:23:40 <lambdabot> []
01:24:02 <oerjan> @src fail
01:24:03 <lambdabot> fail s = error s
01:24:06 <monqy> fail is kind of disappointing
01:24:09 <monqy> :(
01:24:17 <Patashu> @src error
01:24:17 <lambdabot> error s = throw (ErrorCall s)
01:24:19 <oerjan> this also has a default, but it's frequently overruled
01:24:22 <Patashu> @src throw
01:24:23 <lambdabot> throw exception = raise# exception
01:24:28 <Patashu> @src raise#
01:24:28 <lambdabot> Source not found. Maybe you made a typo?
01:24:31 <Patashu> @src raise
01:24:32 <lambdabot> Source not found. That's something I cannot allow to happen.
01:24:38 <Patashu> dang I thought it'd go forever
01:24:43 <oerjan> Patashu raise# looks like it may be a primitive function
01:24:49 <oerjan> * Patashu:
01:25:03 <Patashu> yeah
01:25:08 <oerjan> Patashu: also you are lucky you got that far, @src lacks a lot of sources
01:25:42 <oerjan> obviously everything from throw on is somewhat specific to ghc
01:25:52 <oerjan> error is in the haskell standard
01:26:24 <oerjan> (throw may also be in some other compilers, i don't know. but ghc rules supreme these days, anyhow)
01:26:44 <Patashu> > error "test"
01:26:45 <lambdabot> *Exception: test
01:26:48 <Patashu> okay
01:26:54 <Patashu> @src ErrorCall
01:26:55 <lambdabot> Source not found. Your mind just hasn't been the same since the electro-shock, has it?
01:26:59 <Patashu> or
01:27:01 <oerjan> @hoogle ErrorCall
01:27:02 <Patashu> :t ErrorCall
01:27:02 <lambdabot> Control.Exception data ErrorCall
01:27:02 <lambdabot> Control.Exception ErrorCall :: String -> ErrorCall
01:27:02 <lambdabot> Control.OldException ErrorCall :: String -> Exception
01:27:03 <lambdabot> Not in scope: data constructor `ErrorCall'
01:27:04 <Patashu> aah
01:27:27 <Patashu> :t Exception
01:27:27 <oerjan> hoogle is the thing for looking up functions
01:27:28 <lambdabot> Not in scope: data constructor `Exception'
01:27:32 <Patashu> @hoogle Exception
01:27:32 <lambdabot> module Control.Exception
01:27:32 <lambdabot> Control.Exception class (Typeable e, Show e) => Exception e
01:27:32 <lambdabot> Control.OldException data Exception
01:27:46 <Patashu> @hoogle _|_
01:27:46 <lambdabot> Warning: Unknown type |
01:27:46 <lambdabot> Control.Category id :: Category cat => cat a a
01:27:46 <lambdabot> Control.Arrow returnA :: Arrow a => a b b
01:28:02 <oerjan> Patashu: they rewrote the Exception system so Exception is a class now
01:28:05 <Patashu> :t _|_
01:28:06 <lambdabot> parse error on input `|'
01:28:08 <Patashu> right
01:28:13 <Patashu> @src _|_
01:28:14 <lambdabot> Source not found. That's something I cannot allow to happen.
01:28:16 <Patashu> > _|_
01:28:17 <lambdabot> <no location info>: parse error on input `|'
01:28:20 <Patashu> :(
01:28:21 <pikhq> _|_ is only used when talking about Haskell, not in Haskell.
01:28:25 <Patashu> ah ok
01:28:34 <Patashu> but it's funny because (_|_)
01:28:43 <monqy> is undefined something wacky like forall a. a
01:28:45 <monqy> :t undefined
01:28:45 <lambdabot> forall a. a
01:28:47 <oerjan> :t undefined -- this is one kind of _|_
01:28:48 <lambdabot> forall a. a
01:28:54 <Patashu> what's forall
01:28:55 <monqy> oh kind
01:29:27 <oerjan> Patashu: forall means that the expression has that type for _all_ types a substituted into it
01:29:48 <oerjan> so undefined has any type, whatsoever
01:30:18 <monqy> @src undefined
01:30:18 <lambdabot> undefined = error "Prelude.undefined"
01:30:56 <oerjan> (actually that's not quite true i suspect, there are also "unboxed" and "unlifted" types which tend to only be usable in some places)
01:31:34 <Patashu> > undefined
01:31:35 <lambdabot> *Exception: Prelude.undefined
01:31:36 <pikhq> oerjan: Yeah, "forall" is part of the extension for those, IIRC.
01:32:41 <oerjan> pikhq: um what?
01:33:08 <pikhq> Erm, no, my brain is being stupid.
01:34:05 <oerjan> but basically, only lifted, boxed types (i.e. the usual ones) can be substituted into polymorphic functions
01:34:21 <oerjan> hm wait
01:34:26 <oerjan> maybe boxed is enough
01:34:49 <Patashu> you know how there are functions that are essentially equivalent for lists, functors and monads? would it be worth making them substitute for each other?
01:35:13 <oerjan> Patashu: yes. everyone thinks so.
01:35:47 <oerjan> it requires some major rewamping of the type class system to avoid large amounts of rewriting code, though.
01:36:12 <Patashu> would it be -hard-, though?
01:36:32 <oerjan> Patashu: there exists a proposal for doing it, called class aliases iirc
01:37:08 <oerjan> i vaguely recall there is some drawback with that too, though
01:37:43 <oerjan> as of now, if you define a new Monad, all you need to do is to defined the >>= and return methods
01:38:33 <oerjan> but as the class system _currently_ works, if you made Monad a subclass of Functor and Applicative (as it "should" be) then you would have to define the methods for those separately as well
01:38:54 <oerjan> and it would break old code which didn't do that
01:39:33 <oerjan> so the class alias system among other things allows classes to contain defaults for each other, unlike now when each must be written separately
01:39:48 <oerjan> *must have their instances written
01:40:01 <oerjan> hopefully someone will implement it eventually
01:40:34 <Patashu> there's no overloading in haskell is there?
01:40:59 <oerjan> it's rather stupid to have map, fmap, <$>, liftM
01:40:59 <monqy> overloading works via typeclasses
01:41:10 <Patashu> yeah
01:41:19 <Patashu> I was about to say 'why not just make map work on lists or functors or monads' but nope
01:41:21 <Patashu> that won't work
01:41:43 <Patashu> @src <$>
01:41:43 <lambdabot> f <$> a = fmap f a
01:41:50 <Patashu> lol seriously
01:41:53 <monqy> yes
01:41:54 <Patashu> so it's just infix fmap
01:41:58 <Patashu> why not just use `fmap` then
01:42:04 <monqy> cool factor
01:42:07 <Patashu> o
01:42:07 <oerjan> Patashu: it can work on functors too, in fact it did before Haskell 98 revision, when fmap = map
01:42:33 <monqy> what did haskell 98 do
01:42:35 <oerjan> Patashu: <$> fits rather well into the Applicative style with <*> etc.
01:42:55 <oerjan> it separated map from fmap, making map work just for lists.
01:43:44 <oerjan> and some other things, i think fail was added then and is also considered a wart
01:43:55 <Patashu> could you have some kind of compile time macro thing? like detecting map function monad transforms it into liftM function monad
01:44:18 <monqy> what?
01:44:51 <Patashu> well obviously the former will fail
01:44:55 <Patashu> and the latter does what you want
01:45:04 <Patashu> like when google says 'Did you mean ___?'
01:45:07 <monqy> just use fmap
01:45:22 <monqy> all real monads are functors too
01:45:43 <oerjan> > (+) <$> [1,2] <*> [10,20]
01:45:44 <lambdabot> [11,21,12,22]
01:46:07 <oerjan> > liftM2 (+) [1,2] [10,20]
01:46:08 <lambdabot> [11,21,12,22]
01:46:33 <Patashu> @src liftM3
01:46:33 <lambdabot> liftM3 f m1 m2 m3 = do { x1 <- m1; x2 <- m2; x3 <- m3; return (f x1 x2 x3) }
01:46:36 <Patashu> wow lol
01:46:40 <Patashu> @src liftM4
01:46:40 <lambdabot> liftM4 f m1 m2 m3 m4 = do { x1 <- m1; x2 <- m2; x3 <- m3; x4 <- m4; return (f x1 x2 x3 x4) }
01:46:44 <Patashu> @src liftM5
01:46:44 <lambdabot> Source not found. Your mind just hasn't been the same since the electro-shock, has it?
01:46:50 <Patashu> it was good while it lasted
01:47:31 <oerjan> Patashu: <$> and <*> work with arbitrarily many, anyway
01:47:37 <monqy> also, on the concern that making Monad a subclass of Functor would require defining an instance of Functor, would it be too ugly to, in applicable cases, define an overridable default instance?
01:47:56 <monqy> e.g. for a Functor instance of a Monad, fmap f = (>>= return . f)
01:48:06 <Patashu> @src <*>
01:48:07 <monqy> or something like that
01:48:07 <lambdabot> Source not found. :(
01:48:10 <Patashu> @src (<*>)
01:48:11 <lambdabot> Source not found. Where did you learn to type?
01:48:17 <monqy> I just confused myself
01:48:27 <Patashu> @src Functor
01:48:27 <lambdabot> class Functor f where
01:48:27 <monqy> :(
01:48:27 <lambdabot> fmap :: (a -> b) -> f a -> f b
01:48:29 <oerjan> monqy: no, i think that's precisely what's suggested. it's just that current haskell doesn't support defaults for superclass methods
01:48:32 <Patashu> @src Applicative
01:48:32 <lambdabot> class Functor f => Applicative f where
01:48:32 <lambdabot> pure :: a -> f a
01:48:32 <lambdabot> (<*>) :: f (a -> b) -> f a -> f b
01:48:35 <monqy> oh
01:48:38 <Patashu> found it
01:49:23 <Patashu> so it's infix so
01:49:49 <monqy> pure is analogous to return, (<*>) is analogous to ap
01:49:56 <monqy> iirc
01:49:59 <Patashu> (+) <$> [1,2] <*> [10,20] becomes <*> ( fmap (+) [1,2] ) ( [10,20] )
01:50:05 <oerjan> yeah those would obviously be unified as well
01:50:38 <Patashu> I think it'd be useful to me to have a list of functions/operators that are essentially identical
01:50:42 <oerjan> Patashu: needs parens around the <*>
01:50:46 <Patashu> yeah
01:50:54 <Patashu> > (<*>) ( fmap (+) [1,2] ) ( [10,20] )
01:50:55 <lambdabot> [11,21,12,22]
01:50:56 <monqy> and of Monoid, MonadPlus, Alternative?
01:50:57 <Patashu> tada
01:51:03 <monqy> is there another I forget
01:51:05 <Patashu> @src Monoi
01:51:05 <lambdabot> Source not found. Are you on drugs?
01:51:05 <Patashu> @src Monoid
01:51:06 <lambdabot> class Monoid a where
01:51:06 <lambdabot> mempty :: a
01:51:06 <lambdabot> mappend :: a -> a -> a
01:51:06 <lambdabot> mconcat :: [a] -> a
01:51:13 <monqy> soemthing for Arrows? ArrowChoice?
01:51:13 <Patashu> @src MonadPlus
01:51:13 <lambdabot> Source not found. Just what do you think you're doing Dave?
01:51:16 <Patashu> @src Alternative
01:51:17 <lambdabot> class Applicative f => Alternative f where
01:51:17 <lambdabot> empty :: f a
01:51:17 <lambdabot> (<|>) :: f a -> f a -> f a
01:51:24 <Patashu> @src ArrowChoice
01:51:24 <lambdabot> Source not found. BOB says: You seem to have forgotten your passwd, enter another!
01:51:28 <oerjan> Patashu: i once looked through Control.Monad, and the majority of functions in it would work just as well as Applicative
01:51:51 <Patashu> lots of reinventing the wheel I see
01:51:57 <Patashu> wow, (<|>)
01:52:24 <monqy> > Just 5 <|> Nothing
01:52:25 <lambdabot> Just 5
01:52:32 <monqy> > Nothing <|> Just 5
01:52:33 <lambdabot> Just 5
01:52:36 <monqy> > Just 2 <|> Just 5
01:52:37 <lambdabot> Just 2
01:52:39 <oerjan> Patashu: it's not so much reinventing as just copying, i think. Applicative/Alternative are younger, while Monad/MonadPlus are in the standard and so cannot be easily changed
01:52:43 <Patashu> it's like an OR operator?
01:53:08 <oerjan> > [1,2] <|> [4,5]
01:53:08 <lambdabot> [1,2,4,5]
01:53:18 <Patashu> huh
01:53:26 <monqy> > Just 2 ++ Just 5
01:53:27 <lambdabot> Ambiguous type variable `t' in the constraints:
01:53:27 <lambdabot> `Data.Monoid.Monoid t'
01:53:27 <lambdabot> ...
01:53:30 <monqy> oops
01:53:42 <oerjan> huh
01:53:54 <monqy> :t (++)
01:53:54 <lambdabot> forall m. (Monoid m) => m -> m -> m
01:54:00 <oerjan> Just should have a monoid instance, i think
01:54:09 <oerjan> monqy: yeah it's one of lambdabot's funky types
01:54:27 <monqy> :t Just
01:54:29 <lambdabot> forall a. a -> Maybe a
01:54:34 <oerjan> hm
01:54:43 <oerjan> > Just 2 ++ Just 5 :: Maybe Int
01:54:44 <lambdabot> No instance for (Data.Monoid.Monoid GHC.Types.Int)
01:54:44 <lambdabot> arising from a use of...
01:54:45 <monqy> multiple monoid instances for Maybe?
01:54:54 <oerjan> nah, maybe just is missing
01:55:15 * oerjan realizes that sentence was hideously ambiguous in context :P
01:57:10 <oerjan> Patashu: <|> is somewhat like an or/choice operator, yeah. although it depends on the Monad how many choices you get.
01:57:30 <oerjan> (Maybe has just one spot)
01:58:16 <oerjan> Parsec also uses <|> for parsing choices
01:59:07 -!- ralc has quit (Remote host closed the connection).
02:00:02 <oerjan> also when you mention things like Monoid/Alternative/MonadPlus, things get trickier since the first of them is for types without any type arguments. i vaguely recall class aliases supposedly have troubles with multiparameter type classes as well
02:01:47 <oerjan> i mean, the haskell class system definitely doesn't support class (Monoid (a t), Applicative a) => Alternative a where ...
02:02:03 <oerjan> you'd want that to hold automatically for _all_ t
02:03:23 <oerjan> i guess there are a lot of issues when you try to find a general fix for this kind of problem
02:04:46 <Patashu> so the cross product points perpendicular to two vectors (right handedly normally) and has magnitude absin(theta), theta being the angle subtended by a and b. maxes out at 90 degrees, minimizes at 0 or 180 degrees. the dot product is found by multiplying each dimension's value together and the magnitude is mag(a)*mag(b)*cos(theta), theta again being the angle subtended
02:05:33 <oerjan> ...yes?
02:05:40 <Patashu> I'm just trying to sort these out in my head
02:06:12 <pikhq> Yes, those are properties of both of the vector products.
02:06:26 <Patashu> never learned them but apparently they're useful and all that
02:06:29 <pikhq> Piss-poor definitions, but valid properties.
02:09:13 <oerjan> also, the cross product only works in dimensions 0,1,3 and 7 :P
02:09:30 <Patashu> how come 7?
02:09:39 <pikhq> oerjan: It works in 7?
02:09:43 <Patashu> lol
02:10:17 <oerjan> supposedly because of the existence of real numbers, complex numbers, quaternions and octonions respectively
02:11:07 <oerjan> (the ones in 0 and 1 are trivially zero, anyway, because nothing can be perpendicular)
02:14:24 -!- Behold has quit (Remote host closed the connection).
02:14:27 <CakeProphet> couldn't you apply the same principle to the second dimension? or am I missing something?
02:14:33 * CakeProphet just walked into this conversation.
02:15:13 <Patashu> I was thinking that. cross product of a real number -> an imaginary number, same magnitude?
02:16:20 <oerjan> well you want parallel vectors to have cross product 0, no? :P
02:16:39 <oerjan> and all real numbers are parallel
02:16:46 <Patashu> ah, yeah
02:17:32 <oerjan> and presumably you want non-parallel ones not to have 0, which i guess ruins the second dimension somehow
02:17:54 <CakeProphet> ..lol
02:17:55 <CakeProphet> sure.
02:18:06 <oerjan> oh and it should be linear in each vector, naturally
02:18:17 <Patashu> so how does it work for 0 and 1 then
02:18:33 <oerjan> Patashu: since everything is parallel, just make all cross products 0
02:18:40 <Patashu> o
02:18:45 <Patashu> aah
02:18:53 <Patashu> and that way you don't have to worry
02:18:54 <Patashu> \o/
02:18:56 <myndzi\> |
02:18:57 <myndzi\> /´\
02:19:19 <oerjan> and myndzi\ streaks by again
02:19:47 <Patashu> /o/
02:19:48 <myndzi\> |
02:19:48 <myndzi\> /|
02:19:52 <Patashu> \o\
02:19:53 <myndzi\> |
02:19:54 <myndzi\> /'\
02:19:55 <Patashu> /o\
02:19:56 <myndzi\> |
02:19:56 <myndzi\> /|
02:20:02 <Patashu> \o
02:20:05 <Patashu> o/
02:20:24 <oerjan> \m/ \m/
02:20:26 <myndzi\> `\o/´
02:20:27 <myndzi\> |
02:20:27 <myndzi\> /`¯|_)
02:20:27 <myndzi\> (_|
02:20:39 <Patashu> wow
02:20:49 <Patashu> \m/
02:20:54 <Patashu> needs to be two
02:21:04 <oerjan> yeah those are two hands
02:21:27 <oerjan> and also needs a little indentation
02:21:42 <Patashu> \m/ \m/
02:21:45 <Patashu> \m/ \m/
02:21:47 <Patashu> \m/ \m/
02:21:48 <myndzi\> `\o/´
02:21:49 <myndzi\> |
02:21:49 <myndzi\> /'\
02:21:49 <myndzi\> (_| |_)
02:21:51 <Patashu> \m/ \m/
02:21:58 <Patashu> \m/ \m/
02:21:59 <myndzi\> `\o/´
02:22:00 <myndzi\> |
02:22:00 <myndzi\> (_|¯`¯|_)
02:22:01 <Patashu> \m/ \m/
02:22:06 <Patashu> \m/ \m/
02:22:09 <Patashu> o
02:22:11 <Patashu> o
02:22:12 <Patashu> \m/ \m/
02:22:13 <myndzi\> `\o/´
02:22:14 <myndzi\> |
02:22:14 <myndzi\> /'\
02:22:14 <myndzi\> (_| |_)
02:22:15 <Patashu> hehe
02:22:15 <oerjan> looks like myndzi\ does a bit of throttling
02:24:19 <oerjan> > filterM(const[False,True])"abcd" -- have we had this one yet
02:24:20 <lambdabot> ["","d","c","cd","b","bd","bc","bcd","a","ad","ac","acd","ab","abd","abc","...
02:24:40 <Sgeo> Huh, just found my old Astrology book
02:24:52 <oerjan> Sgeo: it's a sign!
02:25:03 <Sgeo> lol
02:25:34 <monqy> of what use is an astrology book
02:25:50 <Sgeo> Part 5 is some stuff about other things
02:26:15 <Patashu> that's the power set, right?
02:26:17 <Sgeo> "Tarot, palmistry, and numerology are three of those ways-- and they're all connected with astrology."
02:26:48 <monqy> numerology will always make think vortex based mathematics
02:27:54 <oerjan> Patashu: yep
02:28:11 <Patashu> @src filterM
02:28:11 <lambdabot> Source not found. And you call yourself a Rocket Scientist!
02:28:18 <oerjan> hmph
02:28:22 <Patashu> @src const
02:28:22 <lambdabot> const x _ = x
02:28:35 <Patashu> aah
02:28:58 <oerjan> @hoogle
02:28:58 <lambdabot> No query entered
02:28:58 <lambdabot> Try --help for command line options
02:29:01 <oerjan> bah
02:29:10 <Patashu> @hoogle filterM
02:29:10 <lambdabot> Control.Monad filterM :: Monad m => (a -> m Bool) -> [a] -> m [a]
02:29:10 <lambdabot> Data.Graph.Inductive.Query.Monad graphFilterM :: GraphM m gr => (Context a b -> Bool) -> GT m (gr a b) [Context a b]
02:29:12 <Patashu> aha
02:29:18 <Patashu> woah
02:29:19 <Patashu> lol
02:30:04 <oerjan> Patashu: http://hackage.haskell.org/packages/archive/base/latest/doc/html/src/Control-Monad.html#filterM
02:30:30 <oerjan> (the hoogle website has source links)
02:32:07 -!- foocraft has joined.
03:02:11 <Sgeo> "Of course, we can't answer the larger question about believing /everything/ you read in the papers. You might want to take some of the things /other/ than your daily forecast with a grain of salt."
03:02:55 <Sgeo> Oh, hm, I kind of took that out of context
03:10:20 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
03:10:30 <CakeProphet> okay what the hell.
03:10:37 <CakeProphet> there's a particular region of my screen
03:10:41 <CakeProphet> where my mouse cannot click on anything.
03:10:43 <CakeProphet> this makes no sense.
03:11:37 -!- augur has changed nick to Oscar__.
03:11:46 -!- Oscar__ has changed nick to augur.
03:26:44 -!- F has joined.
03:31:28 -!- copumpkin has joined.
03:42:34 -!- azaq23 has quit (Read error: Operation timed out).
03:46:38 -!- CakeProphet has quit (Quit: Lost terminal).
03:47:07 -!- CakeProphet has joined.
04:01:04 -!- azaq23 has joined.
04:04:59 -!- Sgeo has quit (Ping timeout: 246 seconds).
04:05:07 -!- yorick has quit (Ping timeout: 252 seconds).
04:07:03 -!- yorick has joined.
04:10:14 -!- Sgeo has joined.
04:10:16 <CakeProphet> I think I'm 500 pages away or so from being up to date on homestuck
04:15:41 -!- foocraft has quit (Quit: I'm falling...UPRIGHT! http://www.youtube.com/watch?v=WCF_mHKBH3k).
04:25:04 -!- pikhq_ has joined.
04:28:12 -!- pikhq has quit (Ping timeout: 276 seconds).
04:28:22 <Gregor> Haha gold standard people.
04:28:24 <Gregor> So luls.
04:50:32 <pikhq_> Aaah, morons.
05:11:46 * pikhq_ has the fairly obvious realisation that his tests for compiler features do not work for cross-compilation.
05:12:10 <Gregor> Yes, that is a common problem.
05:14:00 <pikhq_> So now I'm wondering how best to test preprocessor defines without actually executing my built executable.
05:14:45 <pikhq_> Hmm. Probably #if !defined(foo)\n#error "no foo"#endif
05:15:45 <Gregor> #error is actually unportable :)
05:15:52 <Gregor> Just anything that's not valid C on the error side.
05:16:26 <Gregor> (Note: by "#error is actually unportable" I mean "there exist compilers which do not understand #error, and so error out on it regardless of where it appears in the code")
05:17:08 <Gregor> Wanna know a great trick to figure out the word size (or size of any builtin type) without executing code? :)
05:17:48 <pikhq_> I'm implementing tests on an as-needed basis. ATM, all I have tests for is C99 and libraries.
05:18:11 <pikhq_> Though, because I listened to elliott, it's really quite easy to add tests...
05:18:52 <Gregor> So wanna help me figure out why fastjit-tests segfaults in GGGGC-evil mode? >_>
05:19:07 <pikhq_> No, I'd rather defeat autotools. :P
05:19:08 <Patashu> evil mode?
05:19:49 <pikhq_> Admittedly, I'm depending on Tcl instead of shell, but that's really not a very objectionable dependency.
05:20:16 <pikhq_> Given that I can probably get Jim (a smallish but full-featured Tcl interpreter) to build on anything that builds C.
05:20:22 <Gregor> Patashu: It adds a canary to the object header, performs a GC at every yield point, always clears out old-space memory, and goes into two-space copying collector mode to assure that no object will every stay in the same location after a collection.
05:20:47 <Patashu> and segfaults often?
05:20:58 <Gregor> Patashu: Not if the code is correct ...
05:21:02 <Patashu> :P
05:21:28 <Gregor> Patashu: It's a good indicator since it's easy to have bugs in a GC that are non-obvious since you just happened to never collect at the wrong time.
05:22:47 <pikhq_> Gregor: BTW, I'm actually not *hyper* concerned with handling broken systems here.
05:22:58 <pikhq_> Gregor: My check for C99 consists of checking __STDC_VERSION__.
05:23:42 <pikhq_> I'm pretty much assuming a system that doesn't provide a modicum of C89 semantics is fundamentally broken.
05:23:44 <Gregor> Not supporting systems which are strictly wrong is different from not supporting systems which are right but old/obscure/unusual *shrugs*
05:25:10 <pikhq_> Yeah, but an extreme number of Autoconf checks are actually checks for broken systems.
05:25:19 <Gregor> 'struth :P
05:25:35 <Gregor> But that's why step one to using autoconf is to run autoreconf, then disregard its result.
05:25:42 <pikhq_> Autoscan, you mean.
05:25:47 <Gregor> Erm, yes
05:26:24 <pikhq_> Yeah, autoscan alone has probably wasted centuries of CPU time.
05:30:16 <pikhq_> Oh, yeah, and I am *really* not going to be thinking about the pain and agony that is libraries needing other libraries in static linking. Unlike Autoconf, which still has a lot of logic for it.
05:31:08 <pikhq_> Or Libtool, which *is* the logic for it.
05:31:42 <pikhq_> If you want it to work right, write a pkg-config file; I reject the idea of making a 10 billion line shell script that does everything related to libraries that your toolchain can do anyways.
05:34:44 <pikhq_> Fuck libtool so much.
05:35:48 <pikhq_> Especially its idea of library dependencies.
05:36:18 <pikhq_> It does not understand the *idea* of a shared library already having its dependencies recorded.
05:37:19 -!- azaq23 has quit (Quit: Leaving.).
05:41:18 -!- wareya has quit (Read error: Connection reset by peer).
05:42:43 -!- pizearke has quit (Ping timeout: 240 seconds).
05:43:02 -!- pizearke has joined.
05:52:02 -!- wareya has joined.
05:54:28 <pikhq_> Oh, the over-linking.
05:54:41 <pikhq_> -Wl,--as-needed would be much less needed if it weren't for libtool.
05:56:01 -!- Sgeo has quit (Ping timeout: 255 seconds).
05:58:52 -!- Patashu has quit (Ping timeout: 260 seconds).
06:05:37 -!- pikhq has joined.
06:09:09 -!- pikhq_ has quit (Ping timeout: 276 seconds).
06:16:58 <pikhq> http://web.archive.org/web/19961119053443/http://www.tmbg.com/ That is a *surprisingly* inoffensive mid-90s site.
06:18:53 -!- Sgeo has joined.
06:25:45 * pikhq cannot *fathom* why autoconf has sizeof checks, anyways.
06:29:38 <pikhq> Are there any times where you would want to know sizeof(foo) outside of compilation that aren't absolutely revolting?
06:32:30 <monqy> I can't even think of absolutely revolting reasons
06:33:47 -!- Sgeo has quit (Read error: Connection reset by peer).
06:34:03 <pikhq> I *suppose* you might want it in a preprocessor check?
06:34:18 -!- Sgeo has joined.
06:35:03 <pikhq> Though I can't fathom why limits.h wouldn't suffice.
06:35:09 <monqy> now I can only think of absolutely revolting reasons yes
06:37:31 <oerjan> revolting peasants
06:40:13 <pikhq> http://www.gnu.org/software/autoconf/manual/html_node/Particular-Types.html#Particular-Types Why, it's a giant list of pointless checks!
06:49:45 <Gregor> 'In Swedish, Norwegian and Danish, gift means "poison" but also "married".'
06:50:36 <pikhq> Even better. Swedish, Norwegian, Danish, German, and English "gift" are cognate.
06:53:14 <Gregor> Yeah, I'm reading this on the Wikipedia "False friends" page.
06:54:00 <pikhq> Good article.
07:07:30 * pikhq winces
07:07:47 <pikhq> alloca is not in any consistent place.
07:07:49 <pikhq> At all.
07:08:46 <pikhq> Admittedly, with C99 it's ceased to be necessary.
07:10:42 <Deewiant> It seems to be in stdlib.h quite often
07:11:35 <pikhq> It exists in: stdlib.h, alloca.h, malloc.h, as __builtin_alloca, as __alloca.
07:17:31 <pikhq> *sigh*
07:17:40 <pikhq> GTK+'s use of pkg-config is wrong.
07:17:52 <pikhq> Requires: gdk-${target}-2.0 atk cairo gdk-pixbuf-2.0 gio-2.0 pangoft2
07:17:55 <pikhq> FAIL
07:19:30 <pikhq> Unless it's part of your library's public ABI, it's not in "Requires:".
07:21:07 -!- oerjan has quit (Quit: leaving).
07:22:50 <Deewiant> Windows's CRT has _alloca FWIW
07:23:57 <pikhq> Yeah, and it defines alloca in "malloc.h".
07:24:12 <Deewiant> Yep
07:25:23 -!- clog has quit (Ping timeout: 240 seconds).
07:42:45 -!- pikhq_ has joined.
07:43:12 -!- pikhq has quit (Ping timeout: 276 seconds).
07:52:32 <augur> *sigh*
07:52:40 <augur> sometimes i feel europe is where civilization really is
07:52:49 <augur> and the US is just some pathetic attempt at civilization
07:53:17 <augur> then i browse the web and see pics of europe and am certain of it.
07:55:37 <olsner> pikhq_: alloca doesn't even consistently *exist*
08:05:33 -!- monqy has quit (Quit: hello).
08:09:59 <pikhq_> olsner: Also true.
08:10:09 <pikhq_> olsner: Hence why it doesn't exist in a consistent place.
08:41:38 -!- pizearke has quit (Quit: Leaving.).
08:43:11 -!- pikhq_ has quit (Ping timeout: 252 seconds).
08:43:17 -!- pikhq has joined.
08:45:06 -!- pizearke has joined.
09:03:22 -!- MigoMipo has joined.
09:05:30 -!- oklofok has quit.
09:13:03 -!- pikhq has quit (Ping timeout: 240 seconds).
09:13:14 -!- pikhq has joined.
09:18:29 -!- BeholdMyGlory has joined.
09:22:38 -!- pizearke has quit (Remote host closed the connection).
09:36:46 -!- clog has joined.
09:50:04 -!- choochter has joined.
09:53:55 -!- MigoMipo has quit (Read error: Connection reset by peer).
10:03:19 -!- Behold has joined.
10:04:22 -!- BeholdMyGlory has quit (Ping timeout: 264 seconds).
10:42:52 -!- FireFly has joined.
10:43:48 -!- sebbu2 has joined.
10:43:49 -!- sebbu2 has quit (Changing host).
10:43:49 -!- sebbu2 has joined.
10:47:05 -!- sebbu has quit (Ping timeout: 240 seconds).
11:27:32 -!- choochter has quit (Read error: Connection reset by peer).
11:27:43 -!- choochter has joined.
11:39:40 -!- Miss_ has joined.
11:39:46 <Miss_> Hi
11:40:59 <CakeProphet> so I think it would be interesting to have a programming competition in which programs logged into a MUD-like server, and issued commands to interact with one another in a competition of some kind.
11:41:08 <CakeProphet> That's as specific as I've gotten so far.
11:41:15 -!- Vorpal has joined.
11:41:17 -!- Patashu has joined.
11:41:34 <CakeProphet> it would be interesting if there were teams, as opposed to the usual 1v1 setup
11:41:48 <Miss_>
11:42:21 <Miss_> ;(
11:42:37 <CakeProphet> Miss_: ?
11:43:01 <Miss_> I'm sad
11:44:05 <CakeProphet> why's that.
11:44:51 <Miss_> My friend hate me ;(
11:45:39 <CakeProphet> I see.
11:46:12 <Miss_> See what !!
11:46:14 <CakeProphet> Do you, uh, want to create an esoteric programming language about that?
11:46:24 <CakeProphet> because that would be so awesome.
11:46:44 <Miss_> Yup
11:47:17 <Miss_> Sorry i don't speak english
11:47:38 <Miss_> :"o
11:47:48 <CakeProphet> well, that could be a problem. But so far I haven't noticed.
11:48:01 <CakeProphet> "I see" is "I understand"
11:48:07 <CakeProphet> or, whatever.
11:48:15 <CakeProphet> that might even make less sense.
11:48:16 <Miss_> اها
11:48:22 <Miss_> Aha
11:48:51 <Miss_> I'm saudi
11:49:04 <Miss_> :"o
11:49:27 <augur> what is this :"o you're doing
11:49:48 <Miss_> Crying
11:50:18 <augur> i see i see
11:50:42 <augur> are you a saudi girl in the us or something?
11:51:10 <Miss_> In riyadh
11:51:20 <augur> and you're on the internet? crazy.
11:51:40 <Miss_> !!!
11:51:43 <augur> isnt it vaguely illegal for you to be talking to men on the internet?
11:52:22 <Miss_> Yes
11:52:30 <augur> well, you should be careful then
11:52:36 <augur> cause most people on irc are men
11:52:45 <augur> oh hey, that rhymed AND had the same line length
11:52:48 <augur> awesomes
11:52:51 <CakeProphet> ...lol
11:52:58 <Miss_> I'm girl
11:53:14 <augur> Miss_: yes.. we figured
11:54:40 <CakeProphet> http://www.samair.ru/proxy/type-01.htm
11:55:13 <CakeProphet> might be useful
11:56:27 <CakeProphet> if you can configure your IRC client to use a proxy, or can even understand what I'm saying right now. Who knows.
11:58:00 <Miss_> Bay
12:00:31 <CakeProphet> ..?
12:00:51 <augur> obviously she's a fan of Michael Bay's cinematic achievements
12:01:41 <Miss_> I want to sleep
12:01:54 <augur> his work on the Transformers movies, with their stark color contrasts emblematic of desert environments, and their hard mechanical overlords, are obvious parallels to her experiences in the arid country of saudi arabia, with its US-military-industrial-complex-funded monarchy that oppresses women
12:02:03 <augur> how could you not see this, CakeProphet?
12:03:31 -!- pikhq_ has joined.
12:03:48 -!- pikhq has quit (Ping timeout: 258 seconds).
12:04:13 -!- Phantom_Hoover has joined.
12:17:12 <Miss_> I would like to speak english , i tried it and i try
12:17:20 <Miss_> Sorry
12:17:48 <Miss_> Forgive me and fogive me
12:18:17 <Miss_> :)
12:21:59 -!- Miss_ has left.
12:24:44 <CakeProphet> augur: ...
12:24:46 <CakeProphet> rofl
12:24:50 <CakeProphet> what the hell.
12:24:59 <augur> CakeProphet: :)
12:25:16 <augur> its a work of art, isnt it
12:31:37 <CakeProphet> oh yes, truly priceless.
12:31:41 <CakeProphet> there is no value. it's undefined.
12:31:46 <augur> im a master at bullshit
12:32:07 <CakeProphet> damnit why is lambdabot so difficult to install.
12:35:03 <Patashu> to increase your ties to #esoteric
12:46:10 -!- Cheery has joined.
12:47:32 -!- CakeProphet has quit (Read error: Operation timed out).
12:50:36 -!- CakeProphet has joined.
12:50:36 -!- CakeProphet has quit (Changing host).
12:50:36 -!- CakeProphet has joined.
13:37:26 -!- nooga has joined.
13:38:12 <nooga> Þwat
13:38:37 <nooga> Þat*
13:49:42 -!- ais523 has joined.
13:50:11 -!- MigoMipo has joined.
14:00:55 -!- ais523 has set topic: [...] Rule 2: You do /NOT/ talk about Rule 1. | Join ##verybadattitude for more intellectual discussions | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
14:17:23 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:45:05 -!- copumpkin has joined.
14:46:35 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
15:01:27 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:19:30 -!- wareya has quit (Quit: Lost terminal).
15:20:37 -!- mtve has quit (Ping timeout: 260 seconds).
15:20:54 -!- Slereah has quit (Ping timeout: 252 seconds).
15:21:44 -!- Slereah has joined.
15:22:00 -!- SimonRC has quit (Ping timeout: 252 seconds).
15:22:42 -!- mtve has joined.
15:22:57 -!- FireFly has quit (Ping timeout: 260 seconds).
15:23:07 -!- SimonRC has joined.
15:23:50 -!- F has quit (Ping timeout: 252 seconds).
15:24:49 -!- F has joined.
15:25:21 -!- FireFly has joined.
15:47:51 -!- CakeProphet has quit (Ping timeout: 240 seconds).
15:54:16 <Sgeo> Blah
16:23:08 -!- pikhq_ has quit (Ping timeout: 246 seconds).
16:23:19 -!- pikhq has joined.
16:26:33 -!- SimonRC has quit (Ping timeout: 260 seconds).
16:28:10 -!- SimonRC has joined.
16:32:41 -!- TOGoS has joined.
16:32:49 -!- TOGoS has left.
16:37:17 <tswett> <opentag name="opentag"><argument name="name" value="opentag" /></opentag><emptytag name="argument"><argument name="name" value="name"><argument name="value" value="opentag"></emptytag><closetag name="opentag" /><opentag name="emptytag">...
16:52:19 <ais523> tswett: trying to write an XML quine? wouldn't it have to be infinitely long?
16:53:19 <Sgeo> What about XSLT?
16:53:24 <Sgeo> Or is it XLST?
16:53:58 <tswett> Yes, I'm writing an infinite XML quine.
16:56:56 -!- monqy has joined.
16:57:36 <tswett> {"type": "object", "contents": [{"type": "string", "value": "type"}, {"type": "string", "value": "objects"}, {"type": "string", "value": "contents"}, {"type": "array", "contents": ["type": "object", "contents": [{"type":...
17:00:17 <tswett> Apply (Constructor "Apply") [Apply (Constructor "Constructor") [String "Apply"], List [Apply (Apply (Constructor "Constructor") [String "Constructor"]) [List [Apply (Constructor "String") (String "Apply")]], Apply...
17:01:03 <tswett> It couldn't be too hard to figure out exactly how efficient each of these encodings is.
17:01:38 <tswett> LISP has them all beat, with an efficiency of 1:
17:01:53 <tswett> (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote (quote...
17:02:34 <ais523> well, 1 in the limit
17:03:01 <tswett> Right.
17:03:25 <ais523> now I vaguely want to see how that would work with Java reflection
17:03:29 <Sgeo> What was that Apply and Constructor thing supposed to be? Haskell?
17:03:32 <ais523> but I'm worried that the result might make me go insane
17:03:33 <tswett> Sgeo: yeah.
17:03:48 <tswett> JavaScript reflection is much less insanity-causing, no?
17:04:04 <ais523> I imagine so
17:06:17 -!- ralc has joined.
17:08:31 <Lymia> What would an Python infinitely long quine look like?
17:08:41 <Lymia> I imagine you could do something with print"print...
17:08:46 <tswett> Lymia: very similar to that JSON one, I imagine.
17:08:55 <tswett> I mean, these aren't really quines; these are self-describing data structures.
17:09:00 <Lymia> But I don't want to try and figure out an equation for \s
17:09:15 <Lymia> (How many \s to put in each string)
17:09:21 <Lymia> I imagine it'd grow quite fast.
17:12:11 -!- pumafyre has joined.
17:33:03 <twice11> pikhq: The reason autoconf offers sizeof tests is that you might want to have something like int32_t on a system without stdint.h
17:33:56 <twice11> As "#if sizeof(int) == 4" does not work (the preprocessor can't evaluate sizeof), I don't see a way how to find out which type(s) has/have 32 bits during compilation.
17:34:27 <twice11> And yes, I *do* know about CHAR_BIT and sizeof reporting in that unit...
17:34:49 <Gregor> pikhq didn't take me up on my offer of the clever trick for testing that :)
17:34:59 <ais523> amusingly, it manages to work out sizes of variables even during cross-compiling
17:35:00 <Gregor> (Yes, it is testable at compile-time)
17:35:19 <ais523> the way it does it, is to declare arrays which would have negative sizes or positive sizes depending on if the size of the time is above a certain boundary
17:35:23 <ais523> then binary-searches on compile errors
17:35:44 <Gregor> Daaaaaaaamn, ais523's got it :
17:35:46 <Gregor> *:P
17:35:47 -!- aloril has quit (Ping timeout: 250 seconds).
17:35:55 <Gregor> The other way is to make switch statements with sizeof cases.
17:36:09 <ais523> Gregor: wouldn't that just cause warnings, rather than errors?
17:36:12 <ais523> I didn't come up with it myself, anyway
17:36:17 <ais523> I got that from autoconf source
17:36:23 <ais523> which I have spent probably too much time reading
17:36:33 <Gregor> ais523: switch (argc) { case sizeof(int): case 4: } /* error if sizeof(int) == 4, no error otherwise */
17:36:36 <twice11> duplicate case statements should be errors.
17:36:39 <ais523> aha
17:36:52 <ais523> although less than/greater than is much faster than equal-to
17:37:18 <ais523> I know I wrote my own autoconf test to see if a particular function was declared by yacc's generated output (to see if I needed to call it)
17:37:19 <pikhq> Gregor: I do know the trick, actually.
17:37:35 <ais523> and the way I did that was to declare it myself with a completely insane type signature (full of things like function pointers to doubles)
17:37:42 <ais523> to see if it errored out on the incompatible redeclaration
17:37:52 <ais523> if it didn't, I assumed it didn't exist, so I didn't try to call it
17:38:06 <pikhq> Gregor: sizeof(foo) ? -1 : 1; yay.
17:38:38 <pikhq> twice11: I have no intent to support systems that lie about C99 support, and little intent to support systems without C99 support.
17:39:06 <pikhq> The standard's a decade old, support it. I refuse to IE6 it.
17:39:14 <twice11> pikhq: If you rely on C99, you can ignore most of autoconf.
17:39:41 <ais523> pikhq: how many systems with working C99 support do you have access to?
17:39:45 <twice11> The remaining problems are solved at least as well by simple things like pkg-config
17:39:49 <ais523> note that gcc's support is broken, and MSVC doesn't even try
17:39:51 <pikhq> s/If you rely on C99, /
17:40:28 <pikhq> ais523: What's broken about GCC's support?
17:40:40 <twice11> gcc's C99 support is good enough for most general-use projects, even if it is lacking in some areas.
17:40:41 <ais523> mostly minor details
17:40:48 <pikhq> Ah, well then.
17:40:49 <ais523> I think there's a famous screwup with inline
17:40:57 <ais523> where C99 inline = gcc static inline, C99 static inline = gcc inline
17:41:01 <ais523> but I can never remember the details
17:41:08 <ais523> and apparently gcc refuses to change for compatibility reasons, or something
17:41:15 <ais523> (I can't even remember the difference between the two anyway)
17:41:57 <twice11> One of them is an error if included in multiple translation units, IIRC.
17:42:42 <pikhq> ais523: Strange, I thought it *had* implementation of C99 semantics on that, but only if you used -std=c99.
17:43:00 <ais523> ah, that might make sense
17:43:04 <ais523> there are various other things, let me find the list
17:43:13 <pikhq> ais523: With the compatibility one being enabled by -std=c89, std=gnu89, -fgnu89-line, or attribute((gnu_inline)).
17:43:41 <pikhq> Sorry, no on the std=c89.
17:43:46 <pikhq> Invalid keyword. ;)
17:44:12 <ais523> here we go: http://gcc.gnu.org/c99status.html
17:44:23 <ais523> ah, I remember something that caught me out earlier
17:44:27 * twice11 just googled for "c99status"...
17:44:41 <ais523> when I was trying to write a\u00e8 or something like that as a variable name
17:44:44 <ais523> and gcc didn't even parse it correctly
17:45:01 <twice11> Is that "extended identifiers"?
17:45:07 <ais523> yep
17:45:13 <ais523> that list's actually more complete than last I looked
17:45:18 <ais523> so it seems they're working on it
17:45:18 <pikhq> Looks like a handful of compiler edge cases, and a giant swath of things required of the libc.
17:45:42 <ais523> yep
17:45:47 <ais523> c99 is so edgecasy
17:47:08 <pikhq> Edge cases can be tested for if need be. But I am *not* going to do things like implement a bunch of checks just to see if libc is not 40 years old.
17:47:31 <pikhq> (admittedly, you shouldn't *use* those checks in autoconf, but people do. *sigh*)
17:47:40 <ais523> pikhq: I do, because I can
17:48:01 <pikhq> ais523: How do you handle the test failing?
17:48:05 -!- aloril has joined.
17:48:14 <ais523> hmm, perhaps you're targeting "libraries generally supported by POSIXy systems, and the bits of C99 that are widely implemented"
17:48:22 <pikhq> Pretty much.
17:48:25 <ais523> pikhq: normally by #defining to somethign dangerous but equivalent
17:48:42 <pikhq> Oh, so you actually have an alternative to the feature you're testing?
17:48:47 <ais523> e.g. C-INTERCAL uses sprintf if snprintf doesn't exist, and removes all uses of "const" from the program if the compiler doesn't support it
17:48:54 <pikhq> Congrats, you're using autoconf right!
17:49:53 <pikhq> Which, sadly, is a *major* achievement.
17:50:06 <ais523> obviously testing for things and then ignoring the resulting info is pointless
17:50:13 <ais523> I think C-INTERCAL did that before I started working on it
17:50:19 <ais523> and I've been through about three build systems since
17:50:24 <pikhq> Yeah, that's how most people use autoconf.
17:50:34 <twice11> There should be more info about using autoconf correctly.
17:50:42 <twice11> Doing that is an art.
17:50:44 <pikhq> twice11: The documentation sucks eggs.
17:51:03 <pikhq> Well, it tells you *very* well what each test does and how to use them.
17:51:19 <pikhq> It does not tell you at all why you're doing any of them.
17:51:31 <pikhq> Making it a gigantic cargo cult.
17:51:43 <ais523> once you know what you're using autoconf for, the documentation is quite good at letting you know how to use it to do that
17:52:07 <ais523> the issue with autoconf is people using it because "autoconf is good" or whatever, without thinking to work out what they actually need it for
17:52:21 <twice11> And don't let us get started on libtool. It seems to mostly work, but for the sake of your sanity, *DON'T* *LOOK* *INSIDE*!
17:52:21 <ais523> e.g. I don't check triplets in autoconf code as it's incredibly rare that that information is useful, but all sorts of stuff does
17:52:28 <ais523> (possibly exception: you're writing a compiler targeting native code)
17:52:31 <ais523> *possible
17:53:10 <Gregor> Special fun: Compile GMP with target none-elf :P
17:53:50 * twice11 knows that the problem libtool (tries to) solve(s) is not trivial at all, though. I not gonna claim I can do better.
17:54:09 <ais523> Gregor: what happens?
17:54:09 <ais523> I'm having trouble visualising what that even means
17:54:20 <pikhq> I can do better than libtool. Step one is to admit that the problem libtool tries to solve is not a relevant problem.
17:54:56 <Gregor> ais523: "none" is its special target for disabling all ASM code, and it ignores the rest of the triple but they still have to get through config.guess, so it has to be semivaild.
17:54:59 <Gregor> *semivalid
17:55:24 <twice11> If you decide you don't need to support dynamic libraries on any system having something remotely like that, of course it will get easier.
17:55:43 <twice11> And I won't question any decision like that.
17:55:57 <pikhq> twice11: If you decide you don't need to handle static library dependencies on any system, actually.
17:56:07 <Vorpal> hm is there any power of two that is also a power of 10?
17:56:14 <ais523> Vorpal: 1
17:56:15 <twice11> Vorpal: 1
17:56:16 <ais523> otherwise, no
17:56:19 <ais523> unless you count 0
17:56:21 <Vorpal> ah right
17:56:23 <ais523> which you shouldn't
17:56:32 <ais523> that's easy enough to prove by prime factorisation
17:56:34 <pikhq> *That* is the majority of the logic in libtool. Making static libraries have dependency information.
17:56:37 <twice11> All other powers of 10 have the prime factor 5
17:56:37 <Vorpal> ais523, wait 10^1 != 2^1
17:56:44 <ais523> Vorpal: 10^0 = 2^0 = 1
17:56:51 <Vorpal> ais523, ah right
17:56:51 <Vorpal> true
17:57:41 <pikhq> Problem is, a) if that's all you want, pkg-config has it covered b) libtool does it by installing .la files, which *only works if you're using the full autoconf stack, anyways*.
17:57:44 <twice11> Dependency info on static libs should be straight-forward, isn't it?
17:58:11 <Vorpal> pikhq, pkg-config is way newer than libtool
17:58:31 <pikhq> Oh, and c) it does this by just recording a single dependencies variable, which is actually WRONG on systems with dynamic linking.
17:58:53 <ais523> la is a very common typo for me, into sh
17:59:07 <ais523> it's an invalid command, but the name looks like it has something to do with dynamic library linking
17:59:08 <twice11> Of course, mixing dependency info in .la and .pc (one half of libs using only .la and the other half using only .pc) is not gonny fly.
17:59:33 <pikhq> twice11: Having dependency info in .la is fundamentally broken on most systems.
17:59:54 <twice11> I think debian has some hacks around that.
18:00:08 <pikhq> Most of the distros do. Do you know what that hack *is*?
18:00:16 <Vorpal> pikhq, --as-needed?
18:00:19 <pikhq> rm *.la
18:00:37 <ais523> haha
18:01:26 <pikhq> Also, it's a bit more than just static library dependency information. It makes it so you can pretend you have a dynamic linker everywhere.
18:01:40 <pikhq> libtool also has logic for emulating dlopen, with ltdl.
18:02:08 <twice11> rm *.la is not going to work for the libtool abstraction layer of "I link just to libfoo.la, and that works, no matter whether the library is called foo.dll, libfoo.so.1, libfoo.dylib or libfoo.a", but -lfoo does that as well on most sufficiently modern unix systems.
18:02:47 <pikhq> twice11: They only keep .la files around for packages where the .la file is actually read.
18:02:47 <twice11> Libtool could have the advantage of automatically adding dependencies *only* if it happens to choose a static library.
18:03:05 -!- puma has joined.
18:03:20 <pikhq> Yes, guess what pkg-config handles right?
18:03:53 <twice11> The option --static ;)
18:04:14 <pikhq> And, actually, I think the only .la files floating around on my system are for users of ltdl.
18:04:23 <twice11> But IIRC this also was not in the first version of pkg-config.
18:05:05 -!- pumafyre has quit (Quit: Ex-Chat).
18:05:15 <twice11> I happen to have a lot of .la files here, like /usr/lib/libSDL.la
18:05:20 <pikhq> Which distro?
18:05:28 <Vorpal> $ ls /usr/lib/*.la | wc -l
18:05:28 <Vorpal> 131
18:05:28 <twice11> Debian, mostly wheezy
18:05:30 <Vorpal> ubuntu
18:05:47 <Vorpal> 10.04
18:05:49 <pikhq> Strange, I'm on wheezy too.
18:05:50 <pikhq> $ ls /usr/lib/*.la | wc -l
18:05:53 <pikhq> 64
18:06:07 <Vorpal> pikhq, different set of packages
18:06:08 <pikhq> For comparison:
18:06:10 <pikhq> $ ls /usr/lib/*.so | wc -l
18:06:12 <pikhq> 262
18:06:22 <pikhq> $ ls /usr/lib/pkgconfig/* | wc -l
18:06:24 <pikhq> 193
18:06:27 <Vorpal> $ ls /usr/lib/*.so | wc -l
18:06:28 <Vorpal> 476
18:06:32 <twice11> It's in the dev packages.
18:06:39 <pikhq> Aaah.
18:06:44 <Vorpal> $ ls /usr/lib/pkgconfig/* | wc -l
18:06:44 <Vorpal> 288
18:07:03 <Vorpal> I definitely have sdl's -dev installed
18:07:21 <pikhq> Anyways. The only feature of libtool that's still *useful* is abstracting the creation of dynamic libraries.
18:07:22 <twice11> Note that dependency_libs is empty in debian's libSDL.la
18:07:46 -!- puma has quit (Quit: -a-).
18:07:47 <twice11> I think that's debians hack - clearing that variable.
18:07:48 <pikhq> And that is a much easier task.
18:08:12 <Vorpal> breaks static linking
18:08:29 <twice11> Vorpal: Debian folks know that.
18:08:30 -!- puma has joined.
18:08:39 <Vorpal> and?
18:09:00 -!- puma has quit (Client Quit).
18:09:05 <twice11> But they still decided that for their purpose, it's the solution with the best effort/use ratio.
18:09:06 <pikhq> Vorpal: Eh, libtool static linking is broken unless you're using libtool, and people usually only use libtool if they're making a dynamic library.
18:09:52 <Gregor> Debian: Literally always right.
18:09:58 <pikhq> That one single "feature" of libtool really does not work.
18:10:53 * twice11 keeps wondering that autoconf goes really great lengths about supporting cross-compile environments, but having no support for HOSTCC/CC_FOR_BUILD in autoconf/automake (i.e. you have to do that by hand).
18:11:18 * twice11 is sorry about messed-up grammar in the last sentence.
18:11:20 <Vorpal> HOSTCC?
18:11:22 <Vorpal> hm
18:12:08 <twice11> The compiler that compiles programs that can be executed on the system you are currently building on is traditionally called HOSTCC, and the GNU people call it CC_FOR_BUILD.
18:12:20 <Vorpal> hah
18:12:53 <twice11> The GNU people have a slightly shifted view of their terms for the architectures involved in cross-compiling, as they are too much fixed on compilers.
18:13:11 <Vorpal> right
18:13:31 <twice11> For "normal" people, there is the "host" system where you compile your program on, and the "target" system where the program will run on.
18:13:32 <Vorpal> twice11, their terminology makes sense when doing a canadian cross
18:14:03 <ais523> twice11: the way autoconf doesn't do it is annoying, and the way gcc does it is really stupid
18:14:17 <ais523> C-INTERCAL deals with the problem by generating two configure scripts and getting one to call the other
18:14:51 <Vorpal> how does gcc do it
18:15:13 <ais523> Vorpal: basically by writing huge sections of configure by hand rather than getting autoconf to generate them
18:15:23 <ais523> plus some other stuff too that I couldn't follow because I was too stunned by the previous reason
18:15:32 -!- pumafyre has joined.
18:15:34 <Vorpal> hehe
18:16:08 <twice11> For gcc people thinking about gcc, of course it makes sense to call the system gcc runs on "host" and the system gcc will produce software for "target", so a gcc with a certain set of "host" and "target" can be used in a compilation process involving "host" and "target" as normal people define it.
18:16:53 -!- pumafyre has quit (Client Quit).
18:17:09 <twice11> Now for the canadian cross (three parties involved: You build a compiler on system $A, which runs on $B, producing executables that run on $C), you need three names.
18:17:19 -!- pumafyre has joined.
18:17:58 <twice11> As I explained, compiler-centric people choose B==host, C==target, and need to invent something for A. GNU decided to call A "build".
18:18:32 -!- pumafyre has quit (Client Quit).
18:18:40 <twice11> OTOH, when you *don't* compile a compiler, there *is* no C, and thus no "target" in GNU speak.
18:18:52 <twice11> And "host" will be the opposite of what you expect.
18:19:17 <pikhq> Yeah, the terminology for autoconf cross-compiling is quite confusing.
18:19:32 <twice11> This is why GNU people don't you "HOSTCC" as variable name - and this shows Linus is not a GNU guru.
18:19:34 <pikhq> I'm pretty sure that the terminology was invented for GCC, and brought to autoconf, though.
18:19:56 <twice11> Yeah, hysterical reasins, I guess, too.
18:20:18 <pikhq> I think it pretty clear Linus has no regard for autoconf.
18:20:21 <twice11> More likely, developed autoconf alongside gcc.
18:20:50 <pikhq> The Linux build system is custom built with GNU Make.
18:21:04 <twice11> So they always have "how do we do this for gcc" in mind when they work on autoconf...
18:21:14 <twice11> pikhq: I know. And it uses HOSTCC...
18:21:20 <pikhq> And probably the best example of custom-built make out there, TBH.
18:21:39 <pikhq> "Best" in the sense of "actually good", not "best-known".
18:22:06 <Vorpal> pikhq, well busybox and uclibc uses it too
18:22:37 <Vorpal> pikhq, how do you go about using it for yourself
18:22:44 <Vorpal> I mean which files do you extract
18:23:40 <pikhq> Vorpal: Makefile, most of scripts/
18:24:01 <Vorpal> pikhq, part of Makefile is kernel specific, like make modules
18:24:12 <Vorpal> or make bzimage
18:24:57 <pikhq> Vorpal: Yeah, and it's easy to remove those.
18:25:06 <pikhq> $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
18:25:19 <pikhq> That's the command for modules.
18:25:24 <Vorpal> Q?
18:25:39 <pikhq> For quieting a command.
18:25:43 <Vorpal> ah
18:25:52 <pikhq> Remember, it has verbose and silent building.
18:26:08 <Vorpal> right
18:26:17 <Vorpal> pikhq, where is the sources to make menuconfig/xconfig/gconfig
18:26:26 <Vorpal> are*
18:26:32 <pikhq> scripts/kconfig
18:26:41 <Vorpal> ah
18:28:51 <pikhq> Also, if you want a Tup/kconfig thing, then git://gittup.org/kconfig.git
18:29:16 <Vorpal> hah
18:33:53 <pikhq> Wow. Prostitution is legal in Canada. It is illegal to do just about any form of public notice for prostitution, and illegal to live off of the income gained thereby.
18:34:19 <Sgeo> illegal to live off the income?
18:34:30 <Vorpal> pikhq, not as weird as Sweden. Being a prostitute is legal, but buying those services are not
18:34:34 <pikhq> Sgeo: As in, "have it as your main or primary source of income".
18:34:36 <twice11> So someone may sell his body, excepts if he/she needs to to buy food?
18:34:43 <pikhq> twice11: Yes.
18:34:49 <Sgeo> Hmm, maybe to make sure that it's not something people feel presured to do?
18:35:03 <Gregor> So you have to whore on the side :P
18:35:19 <twice11> That's kind of strange, and definitely for the reason Sgeo mentioned.
18:35:50 <pikhq> Sgeo: Except that the whole *issue* with desperate people going into prostitution is that it not being a ordinarily regulated industry makes it so that people only do it if they are desperate.
18:37:00 <Sgeo> But if there are legal prostitutes, then the unregulated illegal prositutes probably won't get much business
18:37:26 <Sgeo> Or is the legal prostitution not regulated, o.O?
18:37:35 <pikhq> Sgeo: It's "legal".
18:37:51 <pikhq> You can't be employed as a prostitute.
18:37:52 <twice11> In Germany, prostitution is legalized, but it didn't really turn out to help the whores.
18:38:06 <pikhq> twice11: What sort of regulations did they do on it?
18:38:30 <pikhq> It's something that *really* needs regulations to prevent exploitation.
18:38:58 <twice11> I don't know the details, but the idea was prostitution to be a regular job so you pay taxes and get social insurance.
18:39:54 <twice11> Exploiting people ("Zuhälterei", kind of "being a pimp") is still illegal, as it always was.
18:45:18 <pikhq> How's about we just solve poverty?
18:45:24 <pikhq> Suddenly, desperation goes away!
18:46:10 <Gregor> But then there are no whores :(
18:46:43 <pikhq> Gregor: There will, no doubt, still be people who want to fuck for $.
18:46:55 <pikhq> Just not people doing it because they have no other options.
18:51:38 <pikhq> (see: Japanese porn industry. Many of their porn stars are also non-porn actors)
18:52:13 <pikhq> (and filthy stinking rich after not-too-long)
18:56:53 -!- CakeProphet has joined.
18:56:53 -!- CakeProphet has quit (Changing host).
18:56:54 -!- CakeProphet has joined.
18:57:03 -!- wareya has joined.
19:11:12 -!- pumafyre_ has joined.
19:12:58 -!- pumafyre_ has quit (Client Quit).
19:15:20 -!- pumarain has joined.
19:16:34 <pikhq> The fuck?
19:16:48 <pikhq> Singapore is labelled as a developing country.
19:16:57 <pikhq> As is South Korea.
19:17:11 <pikhq> South Korea is about as developed as Japan.
19:17:24 <pikhq> I.E. "from the fucking future".
19:17:53 <pikhq> And Qatar. The richest country.
19:18:01 -!- pumarain has quit (Client Quit).
19:30:49 -!- ais523 has quit (Read error: Connection reset by peer).
20:10:17 -!- azaq23 has joined.
20:16:27 -!- atrapado has joined.
20:16:44 -!- nooga has quit (Ping timeout: 240 seconds).
20:30:50 -!- copumpkin has changed nick to dependentpumpkin.
20:34:04 -!- dependentpumpkin has changed nick to copumpkin.
21:00:03 <Gregor> Yesterday to be unhelpful I set the helptext for "opera" in ##javascript to "La donna mobile, qual piuma al vento, muta d'accento, e di pensiero!"
21:00:13 <Gregor> But the first time I set it I typo'd "piuma" to "puma"
21:00:39 <Gregor> Which, as it turns out, changes the original meaning, "Women are fickle, like a feather in the wind" to the much-more-descriptive "Women are fickle, like a puma in the wind"
21:03:05 <pikhq> That is an astounding typo, and I didn't realise you had any competence in what looks to be Italian.
21:03:55 <pikhq> Or that you've memorised an Italian saying, as it may turn out to be. :P
21:04:53 <Gregor> I just know the first lyrics to La Donna Mobile :P
21:05:02 <Gregor> Which probably isn't supposed to be capitalized in Italian.
21:05:03 <pikhq> BAH
21:05:46 <pikhq> Yeah, capital casing is a somewhat Germanic convention, deriving from how nouns are capitalised in Germanic languages (except English, which lost that two or three hundred years ago)
21:05:55 <pikhq> Erm, title case.
21:07:11 <pikhq> Well, it's more an English-specific convention, but following patterns from other Germanic languages.
21:09:43 <Gregor> Anyway, the point is that I was unhelpfully setting the "opera" word to actual opera, when of course people expected the browser since this is ##javascript
21:10:09 <Gregor> Also, women are fickle like a puma in the wind.
21:10:27 <pikhq> Oh, duh, I *should* have caught that that was obviously an opera. My brain is not always coöperative, though. Alas.
21:13:01 -!- CakeProphet has quit (Ping timeout: 244 seconds).
21:14:30 -!- CakeProphet has joined.
21:14:39 -!- CakeProphet has quit (Changing host).
21:14:39 -!- CakeProphet has joined.
21:24:10 -!- CakeProphet has quit (Ping timeout: 240 seconds).
21:36:43 -!- Cheery has quit (Ping timeout: 276 seconds).
21:40:12 -!- pumarain has joined.
21:41:37 -!- pumarain has quit (Client Quit).
22:05:03 <pikhq> It occurs to me that as an entirely unintended side effect, it is exceptionally easy to do custom rules in my build system.
22:05:07 <pikhq> Write a Tupfile outside of the objs directory.
22:05:09 <pikhq> That's all.
22:16:08 -!- CakeProphet has joined.
22:16:08 -!- CakeProphet has quit (Changing host).
22:16:08 -!- CakeProphet has joined.
22:21:07 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:26:39 -!- zzo38 has joined.
22:27:42 <zzo38> 403 (No such channel).
22:29:53 <zzo38> Finally I reduced "Success" to 21 bytes of Unlambda. Three hours later, someone else also figure it out.
22:30:02 <zzo38> But is there a way to shorten it even more?
22:33:03 -!- pumarain has joined.
22:34:24 -!- pumarain has quit (Client Quit).
22:35:01 <zzo38> I found some information about LLVM with C. It says apparently you have to use a C++ linker even if it is a C code
22:36:07 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
22:36:19 <pikhq> 99% chance they're full of shit.
22:37:29 <pikhq> What the fuck it only produces static libraries?
22:37:42 <pikhq> Okay, yeah, you do need -lc++.
22:38:11 <pikhq> No, wait, there it is.
22:38:17 <pikhq> zzo38: Yeah, they're full of shit.
22:38:51 <zzo38> Then how do I *properly* use LLVM with C?
22:40:21 -!- Vorpal has joined.
22:43:44 -!- jix has quit (Ping timeout: 240 seconds).
22:43:48 -!- jix has joined.
22:49:07 -!- jix has quit (Remote host closed the connection).
22:49:14 -!- jix has joined.
22:49:40 <pikhq> *Gaaah*, they don't use pkg-config, but their library name is libLLVM-Major.Minor.so
22:50:16 <pikhq> Yes, that's right, they make it impossible to link against LLVM generically.
22:51:12 <pikhq> zzo38: Give up, they don't *want* you to use it.
22:51:42 <pikhq> They hate you.
22:52:18 -!- wareya has quit (Read error: Connection reset by peer).
22:53:16 -!- wareya has joined.
22:59:47 <pikhq> Oh, wait, llvm-config.
23:00:20 <pikhq> Fuck people not using pkg-config.
23:01:55 <pikhq> ... Debian, in their infinite wisdom, has decided to rename llvm-config to llvm-config-major.minor
23:02:07 <pikhq> STOP DEFEATING THE POINT
23:05:32 -!- atrapado has quit (Quit: FIN).
23:07:37 <pikhq> You may think you're being clever by allowing multiple LLVM version to be installed at once, but you're not.
23:07:59 <pikhq> You're just shitting on reasonable expectations.
23:09:32 <pikhq> Expectations like "I can actually check for a library foo that install foo-config using foo-config".
23:12:41 -!- Patashu has joined.
23:21:32 <zzo38> pikhq: They don't *want* me to use it? What is this?
23:22:10 -!- pikhq_ has joined.
23:22:44 <zzo38> pikhq_: They don't *want* me to use it? What is this?
23:23:37 <zzo38> What is the point of LLVM if nobody can use it?
23:23:42 -!- oerjan has joined.
23:23:50 -!- pikhq has quit (Ping timeout: 246 seconds).
23:23:52 -!- zzo38 has quit (Quit: Not time now).
23:24:00 <pikhq_> zzo38: I dunno. It's just OUCH
23:28:35 <oerjan> <pikhq> Yeah, capital casing is a somewhat Germanic convention, deriving from how nouns are capitalised in Germanic languages (except English, which lost that two or three hundred years ago)
23:29:00 <oerjan> also except Norwegian, Danish and Swedish, at least
23:29:34 <oerjan> i thought it was a german (no -ic) thing. i'm not sure about dutch.
23:29:45 <pikhq_> oerjan: Yeah, I looked around and it's apparently only been done in some West Germanic languages.
23:30:19 <pikhq_> Modern practice in German, historical practice in Dutch and English...
23:30:49 <oerjan> <zzo38> Finally I reduced "Success" to 21 bytes of Unlambda. Three hours later, someone else also figure it out.
23:30:57 <oerjan> ...why the heck did he _just_ leave
23:31:35 <oerjan> hm 21 seems only slightly shorter than the obvious solution
23:32:04 <oerjan> !unlambda ```````.s.s.e.c.c.u.Si
23:32:06 <EgoBot> sseccuS
23:32:09 <oerjan> er
23:32:43 <oerjan> !unlambda ```````.S.u.c.c.e.s.si
23:32:43 <EgoBot> Success
23:34:47 -!- Adamfyre_ has joined.
23:36:22 -!- Wamanuz2 has joined.
23:36:27 <oerjan> looks tricky
23:36:31 -!- ralc has quit (Quit: Leaving).
23:36:59 -!- Sgeo_ has joined.
23:37:17 -!- teuchter has joined.
23:37:30 -!- Sgeo has quit (Read error: Connection reset by peer).
23:42:49 <oerjan> <tswett> Apply (Constructor "Apply") [Apply (Constructor "Constructor") [String "Apply"], List [Apply (Apply (Constructor "Constructor") [String "Constructor"]) [List [Apply (Constructor "String") (String "Apply")]], Apply...
23:42:53 <oerjan> > fix show
23:43:03 <oerjan> ...now what
23:43:18 <oerjan> @help
23:43:30 <oerjan> lambdabot is sick :(
23:43:56 <Patashu> lol
23:44:08 <Patashu> wait
23:44:28 <Patashu> Constructor/String/Apply/List, "Apply"/"Construtor"/"String"...
23:44:31 <oerjan> hm or its server is, i cannot get to it
23:44:31 <Patashu> Is there a "List" then
23:45:17 <oerjan> Patashu: i don't know about any of them, may they're in Language.Haskell, haskell's self-parsing library
23:45:43 -!- Adamfyre_ has quit (Quit: leaving).
23:45:48 <oerjan> but the result of fix show is much shorter
23:46:08 <Patashu> > fix fix
23:46:15 <oerjan> i said lambdabot was sick
23:46:21 <Patashu> I'm making it worse
23:46:24 <oerjan> also that doesn't type, i think
23:46:34 <oerjan> doubtful, /whois lambdabot lambdabot doesn't answer
23:47:47 <oerjan> !haskell take 100 $ Data.Function.fix show
23:47:51 <EgoBot> ​"\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"
23:48:19 <oerjan> !haskell :t Data.Function.fix
23:48:22 <EgoBot> Data.Function.fix :: (a -> a) -> a
23:48:22 <Patashu> what
23:48:38 <Patashu> why does it look like... that
23:48:45 <oerjan> Patashu: that string is an infinite quine in haskell :)
23:49:20 <oerjan> first of all, fix show is equivalent to show (show (show (show (show ...
23:49:20 <Patashu> what does it -do-
23:49:44 <oerjan> show returns a string, so each show there also applies to a string
23:50:04 -!- Sgeo_ has left ("Leaving").
23:50:08 -!- Sgeo_ has joined.
23:50:23 <Lymia> !haskell Data.Function.fix show
23:50:28 <oerjan> show turns a string into "string" with anything escaped inside as necessary
23:50:38 <oerjan> Lymia: i used take 100 for a reason
23:50:38 <EgoBot> ​"\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
23:50:44 <oerjan> wait what
23:50:53 <Lymia> I dunno.
23:50:54 <oerjan> ...when did that start working :O
23:50:55 <Sgeo_> Dear XChat: As a matter of fact, I am not actually disconnected from any servers, so stop saying that I am.
23:51:39 <oerjan> !underload ((test )S:^):^
23:52:15 <oerjan> that didn't answer
23:52:34 <oerjan> !haskell scanl1 (*) [1..]
23:52:58 <oerjan> wtf
23:53:01 <oerjan> !echo hi
23:53:02 <EgoBot> hi
23:53:41 -!- choochter has quit (*.net *.split).
23:53:41 -!- Wamanuz has quit (*.net *.split).
23:53:42 -!- lambdabot has quit (*.net *.split).
23:53:42 <oerjan> Gregor: how the heck did EgoBot manage to respond to !haskell Data.Function.fix show when it usually fails on any infinite output line?
23:53:48 <oerjan> and still does for the other tests
23:54:21 <oerjan> !haskell :t show
23:54:23 <EgoBot> show :: (Show a) => a -> String
23:55:14 <oerjan> Patashu: show is haskell's basic function for creating a printable/parseable representation of a value. on strings, it puts " around and escapes what's necessary inside
23:55:44 <oerjan> crucially, for strings it is lazy enough to return the initial " _without_ looking at the actual string passed first
23:56:11 -!- pizearke has joined.
23:56:15 <oerjan> which means it is lazy enough to get going when you apply fix to it
23:57:33 <oerjan> first there's ", then there's \" which is a " escaped, then there's \\\" which is _that_ escaped, and so on
23:59:42 <Patashu> Oh, lol
23:59:44 -!- hagb4rd has joined.
23:59:46 <Patashu> It's infinitely nested strings
23:59:54 <oerjan> ...in a way.
2011-06-16
00:00:39 -!- sebbu2 has quit (Read error: Connection reset by peer).
00:01:08 -!- sebbu has joined.
00:02:00 <oerjan> the number of \'s between each " goes as 2^n-1
00:02:00 <oerjan> !haskell :t Data.Function.fix (concatMap show)
00:02:00 <oerjan> now what
00:02:00 <oerjan> !echo hi
00:02:00 <EgoBot> hi
00:02:02 <EgoBot> Data.Function.fix (concatMap show) :: [Char]
00:02:28 <oerjan> that one _should_ have done something similar, characterwise
00:02:42 -!- comex has quit (Excess Flood).
00:02:59 <oerjan> but it doesn't... because show on a Char isn't lazy enough to give the initial ' without looking at the character first...
00:03:16 <oerjan> but if we cheat a bit we can see what that should have looked like
00:03:35 -!- sebbu has quit (Changing host).
00:03:35 -!- sebbu has joined.
00:03:35 <Gregor> !sh while true; do echo -n y; done
00:03:40 <Gregor> (That was dumb)
00:03:58 <oerjan> !haskell take 100 $ Data.Function.fix (('\'':).tail.concatMap show)
00:04:01 <EgoBot> ​"'\\'''\\\\''\\'''\\'''\\'''\\\\''\\\\''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\\\''\\'''\\''"
00:04:08 <Gregor> Not sure *shrugs*
00:04:13 <Gregor> Probably something to do with how it outputs that.
00:04:15 <oerjan> !haskell putStrLn . take 100 $ Data.Function.fix (('\'':).tail.concatMap show)
00:04:16 <EgoBot> ​'\'''\\''\'''\'''\'''\\''\\''\'''\'''\\''\'''\'''\'''\\''\'''\'''\'''\\''\'''\'''\'''\\''\\''\'''\''
00:04:20 -!- hagb4rd has quit (Ping timeout: 255 seconds).
00:04:25 <Gregor> It might happen to work if it flushes.
00:04:30 -!- hagb4rd has joined.
00:04:46 <Lymia> !haskell Data.Function.fix (('\'':).tail.concatMap show)
00:04:59 <EgoBot> ​"'\\'''\\\\''\\'''\\'''\\'''\\\\''\\\\''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\\\''\\'''\\'''\\\\''\\\\''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\\\''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\\\''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\\\''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\'''\\'''\\'''\\\\''\\\\
00:05:03 <oerjan> Gregor: weird that it would flush better with that than with an infinite list. maybe it also has something to do with speed of printing...
00:05:27 <oerjan> maybe it normally times out before getting far enought that ghc needs to flush
00:05:32 <oerjan> *-t
00:05:50 <Vorpal> where is lambdabot?
00:06:03 <oerjan> !haskell Data.Function.fix ('a':)
00:06:21 -!- comex has joined.
00:06:27 <oerjan> that didn't work :(
00:06:34 <oerjan> !echo hi
00:06:45 <Vorpal> well
00:06:47 <Vorpal> !help
00:06:47 <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:06:53 <Vorpal> there is no echo?
00:07:19 <Deewiant> !help userinterps
00:07:19 <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.
00:07:26 <Deewiant> !userinterps
00:07:27 <EgoBot> ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo eehird ehird elmer fudd google graph gregor hello id jethro kraut lperl lsh map num ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish ustemp valspeak warez wc yodawg
00:07:30 <Vorpal> night →
00:07:32 <Deewiant> Vorpal: ^ echo
00:08:23 <oerjan> Vorpal: netsplat a moment ago, after not responding for a while
00:11:47 -!- Vorpal has quit (Ping timeout: 246 seconds).
00:11:48 -!- hagb4rd has quit (Ping timeout: 255 seconds).
00:12:19 -!- hagb4rd has joined.
00:15:17 <Lymia> !haskell Data.Function.fix (\x -> "LOOK BEHIND YOU " + x)
00:15:44 <Lymia> !haskell Data.Function.fix (\x -> "LOOK BEHIND YOU " ++ x)
00:16:38 <Lymia> !haskell Data.Function.fix show
00:16:53 <EgoBot> ​"\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
00:18:30 <oerjan> maybe it on the contrary works because fix show is _slow_...
00:18:56 <oerjan> hm...
00:19:11 <oerjan> !haskell Data.Function.fix ("\\\""++)
00:19:40 <oerjan> or maybe EgoBot just likes Lymia.
00:19:43 <oerjan> !echo hi
00:20:10 * hagb4rd chekcs his codepage configuration
00:20:17 <Lymia> !haskell Data.Function.fix (\x -> show $ "LOOK BEHIND YOU " ++ x)
00:20:31 <EgoBot> ​"\"LOOK BEHIND YOU \\\"LOOK BEHIND YOU \\\\\\\"LOOK BEHIND YOU \\\\\\\\\\\\\\\"LOOK BEHIND YOU \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"LOOK BEHIND YOU \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"LOOK BEHIND YOU \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"LOOK BEHIND YOU \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
00:20:35 <oerjan> aha
00:21:04 <oerjan> i'm wondering if there may be some kind of balance... it needs to print enough, and _then_ time out?
00:22:27 <hagb4rd> would be kool to see just the parts with high information density
00:22:27 <oerjan> !haskell "testing... " ++ Data.Function.fix id
00:22:30 <EgoBot> ​*** Exception: stack overflow
00:22:35 <oerjan> hmph
00:23:17 <oerjan> Gregor: it seems EgoBot then went on to try running it as a _module_ afterwards...
00:23:54 <oerjan> oh well
00:27:05 -!- augur has quit (Remote host closed the connection).
00:37:08 -!- CakeProphet has quit (Ping timeout: 260 seconds).
00:38:59 -!- CakeProphet has joined.
00:39:00 -!- CakeProphet has quit (Changing host).
00:39:00 -!- CakeProphet has joined.
00:48:06 -!- yorick has quit (Ping timeout: 240 seconds).
00:48:24 -!- yorick has joined.
00:48:49 -!- augur has joined.
00:49:21 -!- copumpkin has quit (Read error: Connection reset by peer).
01:03:09 * pikhq_ looks for good compile-time undefined behavior
01:03:26 -!- FireFly has quit (Quit: swatted to death).
01:21:11 <pikhq_> Fuckit. */
01:22:12 -!- lambdabot has joined.
01:30:11 -!- oerjan has quit (Quit: leaving).
01:38:34 -!- elliott has joined.
01:42:07 <elliott> x
02:03:48 -!- copumpkin has joined.
02:08:14 -!- pizearke has quit (Quit: quuiiiitttt!).
02:08:33 -!- pizearke has joined.
02:54:37 <tswett> elliott: you're male most of the time, right?
02:54:57 -!- Adamfyre has joined.
02:55:40 <elliott> tswett: That's... a technically true statement :P
02:56:55 <tswett> So, my question is true.
02:57:25 <tswett> Does that mean that it's a good, precise question, whose answer is likely to enlighten rather than confuse?
02:57:38 <elliott> This sure is a conversation.
03:00:47 -!- Adamfyre has quit (Quit: AndroidIrc Disconnecting).
03:06:16 -!- sebbu has quit (Read error: Connection reset by peer).
03:06:44 -!- sebbu has joined.
03:11:57 -!- zzo38 has joined.
03:30:38 -!- pikhq has joined.
03:33:46 <zzo38> It's just OUCH?
03:34:07 -!- pikhq_ has quit (Ping timeout: 260 seconds).
03:34:35 <elliott> tswett: You're just OUCH most of the time, right?
03:40:36 -!- azaq231 has joined.
03:41:04 -!- azaq23 has quit (Ping timeout: 246 seconds).
03:46:31 -!- piz2 has joined.
03:50:13 -!- pizearke has quit (Ping timeout: 240 seconds).
03:51:11 -!- CakeProphet has quit (Ping timeout: 264 seconds).
03:54:27 -!- oerjan has joined.
03:56:45 <oerjan> !unlambda `c.i
03:56:45 <EgoBot> i
03:57:09 <oerjan> !unlambda `c.i.t
03:57:10 <EgoBot> i
03:57:18 <oerjan> !unlambda ``c.i.t
03:57:18 <EgoBot> it
03:57:36 <oerjan> !unlambda ```c.i.t.y
03:57:36 <EgoBot> itt
03:58:31 <oerjan> !unlambda `````.S``c.u.c.e.s.s
03:58:32 <EgoBot> ​./interps/unlambda/unlambda.bin: file /tmp/input.32133: parse error
03:58:58 <oerjan> !unlambda ````.S``c.u.c.e.s.s
03:58:58 <EgoBot> ucSces
03:59:46 <oerjan> !unlambda ``````c`.S.u.c.e.s.si
03:59:46 <EgoBot> Success
04:00:07 <oerjan> zzo38: was that your solution too?
04:01:29 <oerjan> !unlambda `````c`.S.u.c``c.e.si
04:01:30 <EgoBot> ​./interps/unlambda/unlambda.bin: file /tmp/input.32431: parse error
04:01:36 <oerjan> argh
04:01:48 <oerjan> !unlambda ````c`.S.u.c``c.e.si
04:01:49 <EgoBot> Sucescs
04:01:56 <oerjan> oops
04:02:14 <elliott> sucesces
04:02:19 <oerjan> so close :P
04:02:25 <elliott> What are you trying to do, BTW?
04:02:51 <oerjan> zzo38 mentioned he'd got this golf down to 21 in unlambda
04:03:05 <elliott> ah
04:03:07 <zzo38> oerjan: That was not quite my solution but it was similar to that
04:04:03 <oerjan> hm
04:04:22 <oerjan> !unlambda ``````c`c`.S.u.c.e.si
04:04:22 <EgoBot> ​./interps/unlambda/unlambda.bin: file /tmp/input.32699: parse error
04:04:26 <oerjan> !unlambda `````c`c`.S.u.c.e.si
04:04:27 <EgoBot> Succes
04:04:31 <oerjan> darn
04:06:39 <oerjan> zzo38: oh wait there should be a . at the end?
04:06:47 <oerjan> oh, no
04:08:27 <oerjan> !unlambda ```c```c`.S.u.c.e.si
04:08:27 <EgoBot> Success
04:08:30 <oerjan> yay
04:08:56 <zzo38> Post to anarchy golf if you did it good.
04:09:33 <oerjan> i will. what's the open code-statistics?
04:10:24 <zzo38> I always like to select that option. It means it tells you how many binary/alphanumeric/symbols
04:10:38 <oerjan> ok i did too
04:11:01 <zzo38> (Look below, under the "Statistics" column for the summary of solutions, that is what those numbers means.)
04:11:09 <oerjan> yay my first golf submission (afair)
04:14:51 <oerjan> huh someone manage brainfuck in 18 bytes
04:14:53 <oerjan> *d
04:15:08 <augur> what the hell are you doing, oerjan
04:15:18 <zzo38> oerjan: It is a BFI-specific code probably.
04:15:18 <oerjan> augur: golfing
04:15:24 <augur> golfing?
04:15:37 <zzo38> It takes advantage of unintentional features in BFI.
04:15:37 <oerjan> augur doesn't know about code golf?
04:15:41 <augur> no
04:15:42 <augur> i dont
04:15:43 <oerjan> aha
04:16:17 <elliott> lol
04:16:24 <augur> i mean, i might, but
04:16:35 <elliott> oerjan: btw if you submit with a web browser it appends \r\n I think... or wait, does it strip all whitespace
04:16:36 <elliott> I forget
04:16:38 <oerjan> zzo38: hm it cannot be just ! with input, that would have been shorter
04:16:52 <elliott> I do know that it uses \r\n newlines with the web form though so if you have any newlines file submission is best
04:16:58 <zzo38> (As you can see, it is obviously not a proper brainfuck, since it has 1 binary and 7 letters (the word "Success" is in there)
04:17:02 <oerjan> elliott: erm i used the form, no newlines
04:17:06 <elliott> <oerjan> zzo38: hm it cannot be just ! with input, that would have been shorter
04:17:10 <elliott> bfi allows self-modifying code or something
04:17:18 <oerjan> aha
04:17:18 <zzo38> elliott: Yes it does do that. It does not strip any whitespaces
04:17:28 <elliott> zzo38: but does it append \r\n with the web form?
04:17:31 <elliott> ISTR it does
04:17:35 <elliott> so the web form always costs you two bytes
04:17:37 <elliott> not sure though
04:17:42 <elliott> maybe not
04:17:48 <zzo38> elliott: Yes it does append \r\n when using the HTML form
04:17:55 <zzo38> elliott: Yes it allows accessing the code-space (and modifying it)
04:18:02 <elliott> oerjan: you should make a file locally and upload it to save two bytes
04:18:15 <zzo38> But it does not append \r\n to the end.
04:18:22 <zzo38> It only converts newlines to \r\n
04:18:28 <elliott> oh
04:18:31 <elliott> but you said
04:18:32 <elliott> <zzo38> elliott: Yes it does append \r\n when using the HTML form
04:18:32 <elliott> ?
04:18:46 <zzo38> I know, I made a mistake in the typing sentence
04:18:49 <zzo38> I didn't mean that.
04:18:57 <elliott> OK
04:18:58 <oerjan> elliott: well it counted it as a winning entry of 20 bytes, so i must have done it right :P
04:18:59 <zzo38> I didn't really say all those things that I said.
04:19:02 <elliott> oerjan: right :P
04:20:15 <oerjan> zzo38: O KAY
04:20:47 <zzo38> Some people said these kind of challenges are bad challenge. Actually they are just much more simple challenge than the other ones; it doesn't make it a bad challenge (as you can see from everything).
04:21:10 <elliott> constant output is a bad challenge
04:21:11 <elliott> always
04:21:14 <elliott> constant, trivial output that is
04:21:17 <elliott> as in short
04:21:25 <elliott> because there are exactly two possible types of submission
04:21:34 <elliott> - print it in the shortest normal way in the language (i.e. with the string embedded)
04:21:40 <elliott> - exploit the interpreter/language to have the string built in
04:21:49 <elliott> neither of these are interesting after, like, five billion such challenges
04:22:03 * pikhq mutters
04:22:04 <pikhq> invalid command name "::build::dc::flag_read"
04:22:06 <zzo38> Even the "Zero" challenge I came with a shorter solution in shell script that other people had, at first. And then someone else figure it out afterward.
04:22:19 <oerjan> elliott: ok but it was interesting the first time in unlambda, at least :P
04:22:20 <elliott> pikhq: wat
04:22:28 <zzo38> elliott: Yes, I agree they are not as good as other challenges. But I don't call them "bad challenge".
04:22:32 <elliott> I do
04:22:36 <pikhq> Ohwait.
04:22:42 <elliott> because there haven't been many good challenges lately in anagolf at all
04:22:52 <elliott> and the same person kept submitting bad challenges recently
04:22:54 <pikhq> ::groups is the namespace all my building semi-objects are in.
04:23:12 <pikhq> (I seem to have implemented half an object system without even thinking about it)
04:24:34 <zzo38> Can you do "Zero" challenge in five bytes of Bash or fish, or four bytes of Zsh, or five bytes of Zsh with symbol only? Maybe. It is not too difficult to figure out, although it is not the most obvious thing (it should be somewhat obvious once you figure it out, which is not too difficult to do)
04:25:58 <zzo38> Or, in Forth, it is very simple. But in symbol only, it is slightly more difficult? (I used a feature which I think is specific to gforth)
04:27:25 <zzo38> With the "PubSubHubbub" challenge, you probably cannot get any shorter than the obvious literal way in most programming languages, but some might be able to do shorter.
04:30:29 -!- augur has quit (Remote host closed the connection).
04:43:11 -!- pikhq has quit (Ping timeout: 252 seconds).
04:43:16 -!- pikhq has joined.
04:45:02 <zzo38> Do you know any Windows binaries of the C binding of LLVM?
04:45:16 <oerjan> :t readLn
04:45:17 <lambdabot> forall a. (Read a) => IO a
04:46:07 <Gregor> Currently, I'm page 10 on Google's results for "gregor"
04:46:20 <Gregor> Some Mendel jerk is clogging up the works, but there are a few others too.
04:46:44 <Gregor> And this Samsa creature.
04:46:58 <oerjan> Gregor: well that must be a bug
04:47:27 <Gregor> *ba-dum*
04:47:37 <oerjan> why thank you
04:48:55 <Gregor> Argh, and of course some AOP guy beats me out if I look for gregor computer science
04:49:26 <Gregor> Heyoooo, #1 for gregor javascript though
04:54:12 <elliott> The worst thing to be first for
04:54:22 <elliott> Like coming first in a Terrible Person competition
04:56:23 -!- augur has joined.
04:57:33 -!- CakeProphet has joined.
04:57:34 -!- CakeProphet has quit (Changing host).
04:57:34 -!- CakeProphet has joined.
05:05:03 <pikhq> elliott: Thought you might like to know that I've got my stuff up on Github.
05:05:07 <pikhq> elliott: https://github.com/pikhq/town
05:07:03 -!- piz2 has quit (Ping timeout: 250 seconds).
05:07:24 <Gregor> Ohhh, so this is to tup sort of as autotools are to make
05:07:34 <pikhq> Yes.
05:07:51 <pikhq> What did you think I was doing?
05:08:01 <Gregor> Full stack
05:08:20 <pikhq> If I was doing a full stack, I'd have a reimplementation of tup going. :P
05:10:41 <pikhq> Something that I suspect is going to help me extensively when I get around to it is that my autoconf-alike and automake-alike are the *precise same thing*, thereby eliminating all need for a libtool-alike.
05:11:46 <pikhq> (as I think the *only* justification for libtool now is that Automake is too stupid to allow for outputting different rules based on what Autoconf gets.)
05:12:49 <Gregor> ... automake can output different rules based on autoconf.
05:13:15 <pikhq> Uh, no it can't. Automake runs before ./configure and potentially on a different system.
05:13:51 <Gregor> Automake generates a Makefile.in, not a Makefile, the rules that actually make it into the Makefile can be controlled by configuration.
05:13:57 <pikhq> It can conditionally *execute* rules, but that's not the same thing, now is it?
05:14:26 <pikhq> There are no "rules that actually make it into the Makefile"; ./configure just plugs in values for variables.
05:14:48 <Gregor> Dude, AM_CONDITIONAL.
05:16:03 <pikhq> That has got to have some *scary* implementation logic.
05:16:26 <pikhq> Okay, what's *really* going to help me is that my stack isn't in M4M4SHM4MakePerl.
05:16:52 <pikhq> And add another "SH" in there if you're using libtool.
05:17:14 <Gregor> How it works btw is that it prefixes every line with either @<condition>_TRUE@ or @<condition>_FALSE@, and I'll bet you can guess what those get set to :)
05:17:30 <pikhq> *Wow*.
05:17:40 <pikhq> That is brilliant. Utterly insane, but brilliant.
05:19:26 <pikhq> Another victory for not-M4Make.
05:19:27 <pikhq> :P
05:19:55 <Gregor> :P
05:20:18 <Gregor> I wonder if people would complain if I started writing all my C using M4 macros.
05:26:18 <pikhq> Almost certainly.
05:26:43 <pikhq> Not that that should stop you; the Bourne shell is written using CPP macros extensively, after all.
05:26:54 <pikhq> (to make it look like FORTRAN, IIRC)
05:28:55 <zzo38> Gregor: I don't particularly thing M4 is good for writing C programs but there is different opinions. It should be possible to invent programming language which M4 works very well as a preprocessor.
05:30:55 <pikhq> zzo38: M4 was designed to be a better C preprocessor.
05:31:42 <pikhq> Though it's pretty generic.
05:32:18 <zzo38> I however don't think it is particularly good for preprocessing C codes, in my opinion.
05:32:31 <pikhq> Oh, sorry, it was meant as a FORTRAN preprocessor. Never mind.
05:33:06 <zzo38> Maybe it is better for that; I don't know much about FORTRAN.
05:56:03 -!- Sgeo_ has changed nick to Sgeo.
06:04:42 -!- hagb4rd has quit (Ping timeout: 250 seconds).
06:09:25 <zzo38> How do I download the LLVM binaries (and header files) for using library with C? I read some things about it and have some idea to make something with it.
06:17:24 <elliott> pikhq: back
06:17:41 <elliott> zzo38: llvm has no binary builds, just compile it yourself
06:17:54 <elliott> pikhq: mind if I offer critiques :D
06:18:01 <pikhq> elliott: Not at all.
06:18:13 <elliott> pikhq: ok well first disclaimer i havent actually really read your code much at all
06:18:29 <elliott> pikhq: in "c needs c99", the winning solver of c99 should take over the c command completely
06:18:40 <elliott> why? because some compilers might use --link-with rather than -l, etc.
06:18:48 <elliott> they need to know everything the program wants from the C compiler
06:18:52 <elliott> and react in a way appropriate to them
06:18:59 <elliott> now, this actually applies to all types of tools
06:19:11 <elliott> and the c you "needs c99" on has nothing to do with the c99 that wins!
06:19:16 <elliott> so I feel like it should actually read "needs c : c99"
06:19:25 <elliott> i.e., I need the command c in my local namespace, that's a c99
06:19:32 <pikhq> elliott: Holy crap you're proposing it be more generic than Autotools. That's frightening.
06:19:43 <elliott> and c99 would be aliased to {c c99} (because many solvers will want to find a C compiler, /then/ see if it supports that standard)
06:19:49 <elliott> pikhq: perhaps so :)
06:19:55 <zzo38> elliott: But I would need to install all sorts of stuff to make it work and compile properly it seems, I want to download the binary
06:19:58 <elliott> pikhq: but I think this model would actually allow it to work, unchanged, for Windows
06:20:01 <elliott> zzo38: there is no binary
06:20:12 <pikhq> elliott: True, there is that.
06:20:25 <elliott> pikhq: of course, most C compilers will just defer to the default functions to do things
06:20:30 <zzo38> The download page does list the binaries. But it doesn't seem to be the one I am looking for.
06:20:54 <elliott> pikhq: the library-finder would return {link-with foo} rather than -lfoo, but it'd still have {cflags-ldflags foo bar} from pkg-config, there's no way to avoid that
06:20:59 <elliott> and the compiler would just translate it accordingly
06:21:07 <zzo38> Is "LLVM Binaries for Mingw32/x86" the right one?
06:21:07 <elliott> pikhq: the good thing is, I think this actually simplifies things
06:21:12 <elliott> zzo38: oh, yes, it would be
06:21:20 <elliott> pikhq: because right now the "c" command is kind of... weird and a pain
06:21:55 <zzo38> Do those binaries support the API though?
06:22:04 <elliott> zzo38: download and see :)
06:22:05 <elliott> pikhq: btw, does this generate the same Tupfile for a project no matter what machine you run it on?
06:22:07 <zzo38> OK
06:22:16 <elliott> pikhq: because if so, I think that should be a separate step, like "town init"
06:22:25 <elliott> and then town for the users will only generate the config file
06:22:28 <pikhq> No. It generates a Tupfile only on configuration.
06:22:30 <elliott> which seems... cleaner to me
06:22:31 <elliott> pikhq: I know
06:22:32 <elliott> pikhq: but I mean
06:22:36 <elliott> is the Tupfile always the same?
06:22:38 <pikhq> No.
06:22:40 <elliott> I mean, it should be, since it should use @CC@
06:22:43 <elliott> and the like
06:22:44 <elliott> pikhq: Why not?
06:22:54 <elliott> If you don't use the tools correctly you will invent another autohell :)
06:22:55 <pikhq> Because, uh, I didn't make it do that.
06:23:10 <elliott> Go make it do that X-D ...or I will
06:23:15 <elliott> If I can figure out Practical Tcl Coding.
06:23:42 <zzo38> In addition to C99, you might also need to have one for C89, GNU89, GNU99, and the newer draft standards.
06:23:48 <pikhq> My Tcl is probably a bit hard to jump into; I tend to be a bit metaprogramming-crazy about it.
06:23:55 <pikhq> zzo38: Definitely do, it's just unimplemented.
06:24:05 <elliott> zzo38: yeah, thankfully that can go in a separate library
06:24:29 <elliott> (I imagine you'd also have libraries for things like "c needs qt" where listing all the libraries and cflags is a huge pain.)
06:24:55 <pikhq> elliott: Actually, Qt 4 does pkg-config, so it's not that big of a pain.
06:25:04 <elliott> OK, but there's still horrible things :P
06:25:29 <pikhq> c++ needs libs QtGui
06:25:43 <pikhq> Bam, it pulls in Qt.
06:26:03 <elliott> So yeah, what I am saying is: the "foo needs thing-that-actually-specifies-what-foo-is" thing is silly and I was silly for thinking of it.
06:26:41 <elliott> pikhq: Have you got any up-to-date example files?
06:26:44 <elliott> IIRC you did one for dc.
06:27:07 <pikhq> That dc one is what I've been using to test.
06:27:11 <elliott> Got a link?
06:27:50 <pikhq> program dc {c needs c99;c needs libs gc;in-directory src/;c sources dc.c error.c main.c stack.c}
06:28:32 <zzo38> And such things as, SDL, X window system, POSIX, audio, libpng, zlib, cross-compiling to different targets, maybe even one for literate programming, etc.
06:28:52 <elliott> pikhq:
06:28:53 <elliott> program dc {
06:28:53 <elliott> needs c99
06:28:53 <elliott> in-directory src
06:28:53 <elliott> c99 needs libs gc
06:28:54 <elliott> c99 sources dc.c error.c main.c stack.c
06:28:56 <elliott> }
06:29:07 <elliott> ("needs c : c99" is stupid, it should just define it with the given name of the thing.)
06:29:21 <elliott> pikhq: Ohbtw, does your gcc c99 finder still print out "Searching for c99" itself?
06:29:43 <pikhq> elliott: No, that's in the solve function ATM.
06:29:44 <elliott> Because requirements (what I call things that have solvers for them) should instead just have a "friendly name" associated with them. (in this case, "a C99 compiler")
06:30:00 <elliott> So in this case, c99 would be defined as an alias for {c c99}, which would have friendly name "a C99 compiler".
06:30:34 <pikhq> *Unfortunately*, it's also currently outputting that for cached results.
06:31:03 <elliott> Can it cache to a file? It should be able to cache to a file. Specifically a file in ~/.cache.
06:31:12 <elliott> Why? Because it could find a C99 compiler ONCE and never do it ever again for another project.
06:31:13 -!- azaq231 has quit (Quit: Leaving.).
06:31:21 <elliott> This is what we in the biz call FINALLY CONFIGURE TAKES 0 SECONDS.
06:31:44 <zzo38> And then, maybe delete ~/.cache in case you need to change something, is it?
06:32:03 <elliott> I'd have a "town flush" command to wipe it out or something.
06:33:04 <pikhq> elliott: Uh, the appropriate values for that can change rather *often* based on environment.
06:33:09 <zzo38> Like maybe a file in directory ~/.cache/towncache/* and then you can just delete it using "rm" command
06:33:23 <zzo38> And change the permissions in case you want to tell it not to use the cache.
06:33:24 <pikhq> Which is the reason that Autoconf never has enabled caching by default.
06:33:26 <elliott> pikhq: How often will the appropriate C99 compiler change?
06:33:34 <elliott> pikhq: How often will the appropriate commands to link to Qt change?
06:33:50 <CakeProphet> elliott: any idea why the pl plugin of lambdabot would spam a bunch of assembler messages when I try to cabal install lambdabot?
06:34:00 <pikhq> elliott: I do it fairly often — I tend to test things with multiple compilers.
06:34:26 <elliott> CakeProphet: Show paste.
06:34:28 <elliott> pikhq: Yeah, but that won't affect the AUTOMATIC finding.
06:34:41 <elliott> pikhq: If you want to do that, you have to override it anyway, say with the CC variable, which should invoke special behaviour anyway.
06:34:50 <zzo38> I looked, in fact the LLVM binary file I downloaded seems to be the correct one, it has "include/llvm-c" and "lib/*.a"
06:35:09 <CakeProphet> elliott: not my paste, but it's the exact same problem: http://hpaste.org/46397/lambdabot_install_failure
06:35:17 <pikhq> Also, you seriously overestimate how long this will actually take to execute.
06:35:29 <elliott> pikhq: I'm not, but caching is a good idea /anyway/.
06:35:51 <elliott> pikhq: Be like tup, consider insane scaling; what if the entirety of Chromium was one big Town project?
06:36:05 <elliott> CakeProphet: Ask #haskell?
06:36:18 <CakeProphet> hmmm, okay. it's pretty odd.
06:36:24 <elliott> Yeah, it is.
06:38:13 <pikhq> Rather, I think you seriously misjudge how much time in ./configure comes from its tests and how much come from how it's often *too much shell to fit in cache*.
06:38:38 <elliott> pikhq: I realise it will be practically instant, I'm just saying that if you can cache, you should, especially because it _will_ help in certain cases.
06:40:31 <pikhq> That would probably be a pain without doing a truly naive form of caching.
06:40:56 <elliott> pikhq: Howso?
06:41:26 <pikhq> Namely, serialising all of the cached solvers to file, thereby replacing the entire cache, and hence needing a lock on the cache.
06:41:53 <elliott> pikhq: Personally, I see the inability to cache as a design flaw...
06:41:57 <elliott> But anyway, my other points are more important.
06:43:09 <pikhq> Also, caching can produce *wrong* builds. Consider the (retarded) case of LLVM (at least on Debian), where when the library gets upgraded, the actual *name of the .so* changes.
06:43:27 <pikhq> Making it so that the cached output of llvm-config is wrong.
06:43:39 <elliott> Yeah yeah yeah, my other points are more important :P
06:49:04 <pikhq> I should also try and think of a better way of handling "Which group should I change the flags of ATM" for the solvers...
06:49:51 <pikhq> At the moment, each solver just looks at the namespace its caller is in.
06:50:09 <elliott> pikhq: Eh?
06:50:12 <pikhq> Which, though functioning with how I've got it set up right now, is not very clean at all.
06:50:15 <elliott> My method fixes all that.
06:50:24 <elliott> A solver doesn't just set something; it literally returns a function.
06:51:12 <pikhq> Oh, duh, returning a function would help with that.
06:51:49 <elliott> pikhq: Technically, it could return an integer; all "needs foo" has to do is do the solving magic for foo, and then bind foo to whatever the successful solver results in in the caller's environment.
06:52:18 <pikhq> elliott: I'm using the same solver scheme for libraries, though.
06:52:54 <elliott> pikhq: And?
06:52:59 <elliott> pikhq: The compiler handles libraries.
06:53:11 <elliott> It can call out to a common library-finder that uses the solver routines if it so desires.
06:53:16 <elliott> pikhq: In fact, this actually helps:
06:53:39 <elliott> pikhq: A library solver that uses the technique "just link with an .so" would return the object (not function or set flags or anything) {link-with libname}.
06:53:48 <elliott> Whereas a pkgconfig one may return {cflags-and-ldflags ... ...}.
06:54:03 <elliott> The library-finder would then pass this back to the C compiler using it, which would translate it into settings of variables in its local namespace.
06:54:06 <elliott> See? Simple and elegant.
06:54:35 <pikhq> That is absolutely elegant.
06:55:07 <elliott> Lesson to be learned: MAKING THINGS FUNCTIONAL MAKES THEM BETTER ALWAYS
06:55:10 <elliott> AAAAALWAYS
06:55:20 <elliott> EVEN WHEN THE TASK IS "BE NON-FUNCTIONAL"
06:56:04 <zzo38> I don't think so.
06:56:37 <elliott> o rly
06:56:53 <zzo38> Maybe.
06:57:56 <zzo38> Maybe not.
06:58:12 <zzo38> But I think I am sure.
06:59:23 <elliott> pikhq: we can all learn from zzo38's wisdo
06:59:24 <elliott> m
07:03:09 <F> what are we talking about?
07:04:31 <elliott> do you own that nick
07:04:37 <elliott> i might have to steal it
07:05:21 <F> I own it.
07:05:29 <F> and have for years.
07:05:53 -!- monqy has quit (Quit: hello).
07:06:06 -!- PatashuPikachuRe has joined.
07:06:52 <F> every time I sign on to freenode some punk has it and then has to be humiliated while I ghost and idenfity my nick back.
07:07:43 <oerjan> F: there's an option to make NickServ throw them off automatically, i think
07:08:11 <F> oh? I'll have to check it out.
07:08:24 <F> does anyone here know Go or Perl6?
07:08:32 -!- Patashu has quit (Ping timeout: 252 seconds).
07:09:32 <elliott> i know some go, some perl6.
07:09:41 <elliott> I thought all one-letter names were reserved for staffers.
07:14:21 <Gregor> That option exists, yeah, that's why I'm always guestified when I get d/c'd and autorejoin :P
07:19:17 <zzo38> Information from NS INFO doesn't match.
07:19:47 <elliott> oh noes F is an evil liar
07:20:26 <oerjan> eek
07:21:41 * oerjan finds NS INFO inconclusive on that matter
07:21:50 <elliott> o_o
07:21:52 <elliott> r u sr
07:21:52 <elliott> s
07:22:27 <oerjan> i mean it doesn't give evidence any way, since the nick isn't currently identified
07:22:39 <elliott> are you actually doubting e
07:22:39 <elliott> em
07:22:58 <oerjan> not really
07:25:40 <Gregor> I'll bet if I updated my reverse DNS hostname to libdl.so, people would think there was something broken in Freenode's software ...
07:26:09 <elliott> no people would just point
07:26:10 <elliott> and laugh
07:26:14 <elliott> haha this noob doesnt have libc.so
07:26:15 <elliott> what is he, poor
07:26:20 <elliott> or, well
07:26:20 <elliott> we would
07:26:31 <Gregor> :(
07:26:51 <elliott> ur just not bourgeois enough for us Gregor
07:27:08 <zzo38> Gregor: I think your reverse DNS makes sense the way it is now, it doesn't need to be adjusted.
07:27:33 <elliott> zzo38 is always the best place for technically correct, but useless statements
07:27:34 <elliott> thank you, zzo38
07:28:14 -!- oerjan has quit (Quit: Later).
07:29:31 <elliott> "Do we really need this with LLVM and GCC?
07:29:31 <elliott> I mean ... if it compiles 2% faster ony MY machine, would I really NEED it?
07:29:31 <elliott> I want scripting languages to become super fast!
07:29:31 <elliott> I don't care about C++ ..."
07:36:44 <Gregor> lolsy
07:42:59 <elliott> I failed at C++ Sudoku for the first time today :(
07:43:22 <elliott> it is not possible to create a boolean type such that "if (True)" works but "if (True && 9)" doesn't
07:43:23 <elliott> afaict
07:43:33 <elliott> With this despicable failure I am leaving you all to die
07:43:52 <pikhq> Good thing if() doesn't take a boolean.
07:44:17 <pikhq> It takes a void*.
07:44:19 <pikhq> >:D
07:47:34 <CakeProphet> CakeProphet is always the best place for not technically correct, but useful statements.
07:48:13 -!- elliott has quit (Ping timeout: 260 seconds).
07:48:16 <pikhq> pikhq is the best place for statements.
07:49:18 <CakeProphet> My incorrectness is the lifeblood of this channel. It fuels causality through its paradoxes.
07:50:23 <pikhq> Flimble Nordic satisfaction greenly!
07:51:13 <PatashuPikachuRe> what is C++ sudoku
07:51:21 <CakeProphet> ah, greenly is the mutt of the world set.
07:51:50 <pikhq> PatashuPikachuRe: No idea.
07:51:54 <PatashuPikachuRe> oops
07:51:55 -!- PatashuPikachuRe has changed nick to Patashu.
07:51:57 <pikhq> I just know C++ far better than I should.
07:52:27 <CakeProphet> indeed.
07:52:40 <CakeProphet> you should have spent more time on COBOL.
07:53:31 <pikhq> XD
07:54:27 <CakeProphet> I should learn COBOL for golfing...
07:54:48 <pikhq> Oh jesus.
07:55:27 <pikhq> Only thing more verbose is good ol' ORK.
07:56:38 <Patashu> or java
07:57:17 <CakeProphet> no COBOL is more verbose.
07:57:25 <CakeProphet> but Java is high up in the verbosity index.
07:57:29 <pikhq> Or: "There is a mathematician called ORK. ORK's first operand is COBOL. ORK's second operand is 1. ORK is to add."
08:12:26 -!- zzo38 has quit (Quit: There is a ORK called ORK. Inside of the ORK there is a mathematician called ORK. Inside of the mathematician called ORK inside of the ORK there is not.).
08:17:01 -!- myndzi\ has quit (Ping timeout: 260 seconds).
08:21:08 -!- cheater_ has joined.
08:21:09 <cheater_> http://dis.4chan.org/read/prog/1295544154
08:21:20 <cheater_> More like :: Int32 -> IORef -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a ->
08:21:20 <cheater_> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -
08:21:20 <cheater_> > Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> Maybe a -> IO ()
08:21:21 <lambdabot> <no location info>: parse error on input `->'
08:21:40 <cheater_> i laughed at that so hard
08:27:15 <CakeProphet> so how does lambdabot do the :t stuff
08:27:22 <CakeProphet> mueval seems to lack that.
08:28:53 <CakeProphet> cheater_: I like how these guys don't know what they're talking about.
08:28:59 <CakeProphet> and that makes me laugh.
08:29:03 <cheater_> it's amazing
08:31:22 -!- Vorpal has joined.
08:31:42 -!- MigoMipo has joined.
08:33:38 <CakeProphet> map {sleep $_; print "$_\n"} @ARGV;
08:33:41 <CakeProphet> Perl wins again.
08:34:54 <CakeProphet> except it's not parallel, but who cares. :P that's not important.
08:34:59 <CakeProphet> it has nothing to do with the algorithm at all.
08:35:03 <CakeProphet> not at all.
08:37:32 <Vorpal> eh
08:37:41 <Vorpal> doesn't that just sleep then print?
08:38:05 <Vorpal> for each argument in ARGV?
08:38:13 <CakeProphet> ...yes,
08:38:15 <CakeProphet> ..
08:38:25 <Patashu> it needs to fork too
08:38:27 <Vorpal> CakeProphet, why
08:38:27 <Patashu> dummy
08:38:29 <CakeProphet> ^^^ see insincerity above
08:38:35 <Vorpal> riiight
08:38:36 <CakeProphet> it was copypasted from the thread.
08:38:45 <Vorpal> what thread? I just joined!
08:38:51 <CakeProphet> GET IN THE LOOP
08:38:54 <Vorpal> haha
08:38:55 <CakeProphet> OR, IN THIS CASE, THE THREAD.
08:38:59 <CakeProphet> OR SOMETHING
08:39:02 <CakeProphet> HAHAHA SEWING JOKES.
08:39:05 <Vorpal> <cheater_> http://dis.4chan.org/read/prog/1295544154
08:39:07 <Vorpal> oh that?
08:39:11 <CakeProphet> yes
08:39:25 <Vorpal> 4chan? programming? How horrible
08:40:02 <CakeProphet> like any anonymous board, you get all kinds of people. Some people are clueless, some people kind of no what they're talking about
08:40:05 <CakeProphet> and then the rest are trolls.
08:40:24 <Vorpal> CakeProphet, in this case it seems to follow the spirit of this channel and of bogosort however
08:40:57 <Vorpal> well to being with at least
08:42:12 <CakeProphet> http://dis.4chan.org/read/prog/1295544154/138
08:42:17 <CakeProphet> I think this is an actual Perl implementation.
08:42:23 <CakeProphet> looks convincing anyways.
08:44:42 <tswett> Actually, I'm pain-free most of the time.
08:48:24 <cheater_> nice blog, bro
08:49:02 <CakeProphet> so yeah any idea how lambdabot does :t?
08:49:21 <CakeProphet> does it just have a Haskell interpreter built into it? Because I'd really like to have a command line utility for that.
08:49:32 <CakeProphet> er, typechecker, in this case, not interpreter.
08:50:38 <cheater_> ghci is a command line
08:51:27 <CakeProphet> hmm..
08:51:33 -!- evincar has joined.
08:51:37 <CakeProphet> ah, I guess I could use a pipe then.
08:51:41 <Vorpal> you can't do ghci ":t foo" I think
08:51:44 <CakeProphet> yes.
08:51:47 <Vorpal> CakeProphet, surely there must be a better way
08:52:02 <CakeProphet> well, I'm writing a bot and want to give it :t and mueval support.
08:52:12 <Vorpal> check lambdabot source?
08:52:16 <cheater_> echo ":t id" | ghci
08:52:29 <Vorpal> cheater_, I doubt that is what lambdabot does though
08:52:36 <cheater_> it works.
08:52:51 <CakeProphet> hmmm, I guess there's no harm in evoking ghci each time.
08:53:08 <cheater_> it's fairly fast on my cluster
08:53:17 <cheater_> don't have ghci locally though
08:53:25 <CakeProphet> but it does give a lot of non-related output
08:53:27 <Vorpal> <CakeProphet> hmmm, I guess there's no harm in evoking ghci each time. <-- for me it takes a second or so to load.
08:53:29 <cheater_> but like, sometimes the lag is more than ghci starting up and dying
08:53:34 <cheater_> yeah, lrn2grep
08:53:52 <CakeProphet> ...I can grep just fine, thanks. :P
08:54:16 <cheater_> damian@dresscoded:~$ echo ":t id" | ghci | grep "^Prelude> " | grep -v "Leaving GHCi."
08:54:30 <cheater_> easy
08:54:42 <CakeProphet> woah what's this grep magic you speak of. @_@
08:54:47 <Vorpal> CakeProphet, I think this is the module in question: http://code.haskell.org/lambdabot/Plugin/Type.hs
08:54:47 <CakeProphet> are you a wizard?
08:54:53 <cheater_> i am more than a wizard
08:54:59 <cheater_> i am the Red Wizard of the East
08:55:27 <Vorpal> it what
08:55:57 <Vorpal> it invokes ghci, though the comments says hugs...
08:56:04 <CakeProphet> echo ":t id" | ghci -v0
08:56:04 <CakeProphet> id :: a -> a
08:56:05 <Gregor> In some number of hours which is difficult to count due to loltimezones, I will be in Paris.
08:56:09 <cheater_> stripComments ('\n':_) = [] -- drop any newwline and rest. *security*
08:56:12 <CakeProphet> I r t3h l33t h4x
08:56:12 <cheater_> ahahah
08:56:30 <cheater_> CakeProphet, omg
08:56:33 <cheater_> are YOU a wizard?
08:56:41 <CakeProphet> no, I just read man a lot.
08:56:49 <Vorpal> Gregor, cool
08:57:02 <Vorpal> Gregor, why are you going there?
08:57:12 <Gregor> Chattin' up INRIA
08:57:21 <cheater_> Gregor, visit the polytechnique
08:57:35 <Vorpal> Gregor, ah, what for?
08:57:37 <Vorpal> job?
08:57:51 <Gregor> Vorpal: Naw, I'm only there two weeks, just chattin' em up.
08:57:57 <Vorpal> Gregor, huh
08:57:58 -!- evincar has quit (Quit: ChatZilla 0.9.87 [Firefox 3.6.17/20110422054610]).
08:58:00 <Gregor> Getting a summer internship abroad = visa hell
08:58:34 <cheater_> I WIN
08:58:38 <cheater_> ghc -e ":t id"
08:58:43 <Gregor> cheater_: Is that somewhere you ... visit? :P
08:58:47 <Gregor> And not, y'know, study
08:58:47 <Vorpal> Gregor, ah only for people in US I guess. I could do it since I already live in EU :D
08:58:55 <cheater_> CakeProphet is OWNED
08:58:59 <cheater_> SO BAD.
08:59:17 <cheater_> Gregor, nah.. never been to paris myself ^^ but it's definitely a great place to visit
08:59:26 <cheater_> given that so much has happened for mathematics there
09:00:07 <cheater_> Gregor, where do you live normally? i forgot
09:00:12 <Gregor> Vorpal: I don't think the term "abroad" gets to be applied within EU countries anymore.
09:00:19 <Gregor> cheater_: I don't remember anymore :P
09:00:30 <cheater_> Gregor, zzz :P
09:00:35 <CakeProphet> cheater_: is that faster?
09:00:37 <Vorpal> Gregor, hm
09:00:38 <cheater_> is it germany or something?
09:00:48 <Gregor> lol, not even close.
09:00:49 <cheater_> CakeProphet, at over 9000x faster
09:00:57 <cheater_> Gregor, ex-ussr?
09:01:06 <Gregor> wtf, you're only getting farther X-D
09:01:15 <cheater_> scandinavia?
09:01:23 <Vorpal> Gregor, Antarctica!
09:01:26 <Gregor> I'm an American ya derpaderp
09:01:33 <Gregor> I live in Indiana :P
09:01:49 <cheater_> ok the world does not have a good bsp ok??
09:01:51 <Vorpal> Gregor, sure you don't live in Antarctica?
09:01:57 <Gregor> Vorpal: Not entirely!
09:02:00 <Vorpal> ah
09:02:06 <cheater_> Vorpal, i heard Gregor lives in Antarctica
09:03:36 <cheater_> stripComments ('\n':_) = [] -- drop any newwline and rest. *security*
09:03:39 <cheater_> lol
09:23:58 <CakeProphet> !perl @test=(1,2,3); print "@test"
09:24:00 <EgoBot> 1 2 3
09:55:24 -!- blancnoir has joined.
09:56:35 <Gregor> This is either the worst pair of earphones I've ever worn, or merely the most finnicky.
09:56:38 <Gregor> I suspect the former.
09:57:47 -!- Lymia has quit (Ping timeout: 244 seconds).
10:00:57 -!- MigoMipo has quit (Read error: Connection reset by peer).
10:08:14 -!- pikhq_ has joined.
10:08:25 -!- pikhq has quit (Ping timeout: 260 seconds).
10:11:37 -!- Lymia has joined.
10:12:12 -!- MigoMipo has joined.
10:58:56 -!- ais523 has joined.
11:00:30 <CakeProphet> mueval is so much less awesome than lambdabot.
11:16:45 <Vorpal> CakeProphet, what is mueval=
11:16:50 <Vorpal> s/=/?/
11:19:34 <CakeProphet> it's a standalone version of what lambdabot uses to evaluate Haskell code, but it's nowhere near as awesome.
11:19:51 <CakeProphet> because it doesn't have as many modules that it allows.
11:22:43 <ais523> <Chromium changelog> - Hardware accelerated 3D CSS
11:22:47 <ais523> err, wow
11:22:53 -!- ralc has joined.
11:23:01 <Vorpal> ais523, heh
11:28:05 -!- pikhq has joined.
11:28:09 -!- pikhq_ has quit (Ping timeout: 252 seconds).
11:35:02 <CakeProphet> return join ('\n', grep {defined} (split /\n/, shift)[(0..shift)-1])
11:35:07 <CakeProphet> the pinnacle of readability
11:38:21 <ais523> that is pretty readable
11:38:36 <ais523> I wrote some Perl code that parsed VHDL using regexes last night, that was really unreadable
11:38:55 <ais523> (it's designed to parse only the output of a specific program, rather than VHDL in general, so regexing it isn't /too/ bad, and I was in a hurry)
11:39:14 <ais523> wait, which order are those shifts evaluated in?
11:39:23 <Patashu> wait
11:39:24 <ais523> I don't think I've ever written shift twice in the same expression when it mattered
11:39:25 <Patashu> 3D CSS?
11:39:31 <ais523> Patashu: I'm just quoting the changelog
11:39:34 <ais523> I have no more context than you do
11:40:10 <ais523> but I quoted it because it seemed absurd
11:40:23 <ais523> what they might mean is that they're using the GPU in order to do CSS layout, which is plausible
11:40:27 <ais523> and the 3D got in there by mistake
11:43:17 <ais523> or perhaps CSS really does do 3D nowadays
11:43:24 <CakeProphet> ais523: interestingly enough, the index is evaluated first.
11:43:45 <CakeProphet> er
11:43:53 <CakeProphet> and the current code is 0..(shift)
11:43:57 <ais523> CakeProphet: that's not massively surprising given the way split is optimised
11:43:58 <CakeProphet> -1
11:44:28 <ais523> if you try to take the fifth element of a split, for instance, it stops splitting at five results
11:44:43 <CakeProphet> yeah it makes sense to evaluate the indices first.
11:44:54 <CakeProphet> for built-in keyword optimization.
11:45:36 <ais523> so what that function does, is returns up to the first n lines of a given string?
11:45:41 <CakeProphet> yep
11:45:50 <ais523> yep, that's relatively readable, apart from the argument order thing
11:46:10 <CakeProphet> I also changed it to grep {$_}
11:46:28 <CakeProphet> to get rid of empty lines... and... lines with only 0, because that's how Perl rolls. :P
11:46:35 <ais523> so now it returns up to the first n lines of a given string, except empty lines and lines containing just a zero
11:46:38 <ais523> ah, you beat me
11:46:52 <ais523> you could use grep{/./} if you just wanted to get rid of empty lines
11:47:07 <ais523> in fact, I don't even think you need the braces if you have a regex as argument
11:47:11 <CakeProphet> nope
11:47:11 <ais523> although arguably they're good style
11:47:33 <CakeProphet> I would say they are arguably irrelevant to good style in Perl. :D
11:47:54 <ais523> they aren't, I've been in some pretty heavily style-guidelined Perl projects
11:48:32 <CakeProphet> though I'd keep the braces if I change, simply because I don't want to add a comma and possibly parens if it becomes ambiguous at that point.
11:49:35 <CakeProphet> it would be interesting if join could take a regex argument...
11:49:41 <CakeProphet> er wait
11:49:43 <CakeProphet> that makes no sense. :P
11:50:02 <CakeProphet> it's getting early here. almost 8 am
11:50:11 -!- FireFly has joined.
11:50:57 <ais523> it'd be great if you could do join /\1\2/, split /-(.)-(.)-/ $string;
11:51:05 <ais523> that's potentially meaningful, at least
11:51:16 <ais523> although I'm not sure it's useful, and would also change the semantics of enclosing groups in a split
11:51:36 <CakeProphet> I think you'd have to use $1 and $2 instead of \
11:51:47 <CakeProphet> well..
11:51:48 <CakeProphet> no
11:51:55 <CakeProphet> it would just have to be some weird special case.
11:52:10 <ais523> you're right, it should be $1 and $2 per Perl conventions for replacements
11:52:27 <ais523> but obviously it's a ridiculous weird special case
11:52:46 <CakeProphet> you can do that on the last match possibly.
11:52:52 <ais523> nowadays, I mostly use NEU or ARC when playing online
11:52:55 <CakeProphet> if split regexes capture
11:52:56 <ais523> umm, sorry, wrong channel
11:53:43 <cheater_> ais523, http://dis.4chan.org/read/prog/1295544154 xD
11:53:58 -!- pikhq_ has joined.
11:53:58 <ais523> cheater_: I'm not following links to 4chan no matter how relevant they are
11:54:04 <cheater_> ok
11:54:11 -!- pikhq has quit (Ping timeout: 252 seconds).
11:54:22 <cheater_> someone came up with sorting this way: take each number on the list and launch a thread that sleeps for this many seconds.
11:54:34 <cheater_> then it prints the number.
11:54:46 <ais523> hmm
11:54:55 <ais523> that seems like a variant on one of the established techniques
11:54:58 <ais523> radix sort, probably
11:55:02 <cheater_> ya
11:55:14 <cheater_> that WAS actually mentioned there
11:55:17 <CakeProphet> it's almost subject to all kinds of scheduling problems. :P
11:55:23 <CakeProphet> which is also mentioned.
11:55:31 <cheater_> yeah it was all mentioned
11:55:35 <ais523> among other things, 4chan links go invalid really quickly
11:55:36 <CakeProphet> if the numbers are near one another.
11:55:38 <cheater_> there was even an ascii art of a flaccid penis
11:55:45 <cheater_> ais523, this one's on the bbs, it's archived
11:55:50 <ais523> ah, OK
12:03:38 <CakeProphet> < ksf> the actual ingenuity of sleepsort is realising that a complexity theorist's mind will asplode while trying to decide whether sleep(n) is O(1) or O(n).
12:03:41 <CakeProphet> ...in #haskell
12:03:50 <CakeProphet> I couldn't find anyone else talking about sleepsort, but there it was randomly.
12:04:00 <ais523> CakeProphet: O(n), obviously
12:04:07 <ais523> it's pretty much literally O(n)
12:04:46 <CakeProphet> well yes...
12:04:58 <CakeProphet> I was noting the strange coincidence.
12:05:13 <CakeProphet> of subject matter.
12:06:02 <ais523> ah, the link's been posted to proggit
12:06:07 <ais523> and lots of people read that
12:06:13 <ais523> so it's probably going to spread through IRC based on that
12:07:00 <CakeProphet> well if you divide the numbers first before you sort you can cut down on the computation time
12:07:18 <CakeProphet> at the same time you're increasing the likelihood of a scheduling misshap
12:17:38 <Gregor> Google is trying very hard to find all the most annoying ways to give you free wifi.
12:18:48 <ais523> CakeProphet: reddit points out that it's O(n log n), because the sorting is done by the scheduler
12:25:28 <CakeProphet> ah.
12:25:38 <CakeProphet> @let e = exp 1
12:25:39 <lambdabot> Defined.
12:39:51 -!- ais523 has quit (Remote host closed the connection).
13:04:04 <Vorpal> <Gregor> Google is trying very hard to find all the most annoying ways to give you free wifi. <-- how so?
13:04:53 <Patashu> > e
13:04:54 <lambdabot> Ambiguous occurrence `e'
13:04:54 <lambdabot> It could refer to either `L.e', defined at <local...
13:04:57 <Patashu> LOL
13:05:00 <Patashu> > L.e
13:05:01 <lambdabot> 2.718281828459045
13:05:11 <Patashu> > pi
13:05:12 <lambdabot> 3.141592653589793
13:05:21 <Patashu> > lambertw 1
13:05:22 <lambdabot> Not in scope: `lambertw'
13:05:29 <Patashu> where's my lambert w function :(
13:20:32 -!- Big_ has joined.
13:20:52 <Vorpal> :t e
13:20:53 <lambdabot> Ambiguous occurrence `e'
13:20:53 <lambdabot> It could refer to either `L.e', defined at <local>:17:0
13:20:54 <lambdabot> or `SimpleReflect.e', imported from SimpleReflect at State/L.hs:74:0-32
13:20:56 <Vorpal> ah
13:22:30 -!- dell has joined.
13:22:40 <dell> i am developing
13:22:47 <dell> a python to brainfuck converter
13:22:47 <CakeProphet> why on earth does mueval give me "Exception: not a number" when I try to eval ['a'..'z']
13:22:57 <CakeProphet> dell: ......good luck with that.
13:23:22 <dell> what do you think....i will continue only if someone already hasn't done it
13:23:37 <CakeProphet> I don't know of any such thing.
13:23:44 <Lymia> dell, good luck.
13:23:53 <Lymia> Python is the last language you want to try that with.
13:23:54 <Lymia> Trust me.
13:24:14 <dell> ok..then i will continue...its gonna be hell of a thing but it will be open source and written in python
13:24:22 <Vorpal> CakeProphet, that is trivial. There is a C->JavaScript compiler, so just write a JS->BF compiler then embed cpython compiled to js + your python script in that
13:24:23 <dell> i will post about it more here
13:24:26 <Lymia> def func(i):
13:24:29 <Vorpal> ;)
13:24:29 <Lymia> return i*2
13:24:33 <Lymia> map(i,range(50))
13:24:41 <Lymia> I'll applaud you if you manage to compile something as simple as that.
13:24:42 <Lymia> :)
13:24:58 <dell> it will not support all the python features...the first version will be pretty simple
13:25:05 <CakeProphet> Vorpal: ah, so simple.
13:25:06 <Vorpal> Lymia, what about using cython + LLVM + custom LLVM->BF backend
13:25:12 <Lymia> s//func/
13:25:16 <Lymia> s/i/func/*
13:25:31 <Vorpal> or wait
13:25:32 <CakeProphet> lol I was like "...you want me to put an infinite number of funcs between each character?"
13:25:34 <Lymia> Vorpal, that's downright insane.
13:25:34 <Lymia> :)
13:25:48 <Vorpal> Lymia, ais's half-complete bf gcc backend
13:25:51 <Vorpal> complete that
13:25:55 <Vorpal> and use that with cython
13:26:10 <Vorpal> Lymia, even easier
13:26:13 <Lymia> Vorpal, I know it's possible.
13:26:23 <Lymia> But it's going to be hard unless done right.
13:26:31 <Lymia> This guy gives me a certain vibe.
13:26:37 <Vorpal> hm
13:26:43 <dell> so i will create a repository on git and will let ya people know more about it
13:26:59 <Vorpal> Lymia, yeah I see what you mean... "on git"
13:27:08 <Vorpal> (oh github?)
13:27:12 <Vorpal> on*
13:27:16 <dell> github
13:27:21 <dell> just a little lazy
13:29:27 <Vorpal> Lymia, anyway, llvm->bf would be interesting
13:30:11 <Lymia> Vorpal, sounds like it might be a little hard, but doable.
13:30:17 <Lymia> Do we have any higher level languages compiling to BF?
13:30:41 <Lymia> That would be a large part of the problem already solved.
13:31:09 <Vorpal> a few, there is BASIC->BF iirc, that was used for lostking.b, but I never seen the actual compiler in question
13:31:13 <Vorpal> it did a bad job too
13:31:22 <Vorpal> quite a bit of dead code in there
13:32:09 <Lymia> Vorpal, how can you compile goto?
13:32:13 <Vorpal> Lymia, and the gcc backend kind of works for trivial examples, but produced so huge results it is not practically usable without a special cased interpreter
13:32:22 <Lymia> Line counter?
13:32:24 <Vorpal> Lymia, a while loop with switches inside?
13:32:36 <Lymia> Vorpal, sounds possible.
13:32:45 <Vorpal> Lymia, and I don't know the details of the basic->bf one
13:32:54 <Vorpal> as I said, I never seen it
13:33:01 <Lymia> Vorpal, hmm..
13:33:03 <Lymia> Actually.
13:33:18 <Lymia> Brainfuck by default uses 0-255 range, right?
13:33:33 <Vorpal> that is the most common way
13:33:44 -!- dell has quit (Quit: Leaving).
13:34:04 <Lymia> I'm thinking there could be a basic intermediate language which (unsafely) compiles to Brainfuck code.
13:34:30 <Vorpal> iirc gcc-bf used a bf assembler thingy
13:34:40 <Lymia> A simple extension that has more than one tape, switchable with some command, and turns 8-bit brainfuck to 32-bit brainfuck.
13:34:49 <Vorpal> with opcodes like "mul8 offsetA,offsetB
13:34:50 <Vorpal> "
13:34:53 <Vorpal> or such
13:35:01 <Lymia> Vorpal, sounds "fun"
13:35:47 <Vorpal> Lymia, iirc it used a pattern on the data like 5 cells: marker,memory,memory,memory,scratch,scratch
13:35:53 <Vorpal> or something like that
13:38:28 -!- yorick has quit (Quit: leaving).
13:38:51 -!- yorick has joined.
13:39:36 <Lymia> Hmm...
13:39:52 <Lymia> How could you design an esolang API that supports as many different esolangs as possible.
13:40:16 <Vorpal> bbl
13:40:19 <Vorpal> (guests)
13:43:04 -!- pikhq_ has quit (Ping timeout: 246 seconds).
13:43:14 -!- pikhq has joined.
13:43:28 -!- yorick has quit (Client Quit).
13:43:46 -!- yorick has joined.
13:45:58 -!- Big_ has left.
13:46:34 <Lymia> ^ That guy tried to randomly flirt with me
13:46:48 <Lymia> May I suggest making sure he doesn't come back?
13:56:53 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:08:35 <quintopia> oh he messaged me randomly too
14:14:20 <Lymia> Guess that's why +g exists
14:15:06 <quintopia> which one is that again?
14:16:09 -!- myndzi has joined.
14:16:28 <quintopia> but then i once tried messaging you and you freaked out. And I had no intention of flirting. So I can't help but give him the benefit of a doubt
14:21:44 <Lymia> It's quite unambiguous when they open the message with "Hey baby"
14:23:14 <quintopia> an inauspicious start, i must agree
14:24:14 <Lymia> Plus, 99% of the people I don't know messaging me, yeah.
14:24:24 -!- copumpkin has joined.
14:30:27 -!- pumpkin has joined.
14:30:57 -!- copumpkin has quit (Ping timeout: 252 seconds).
14:38:01 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:52:24 <quintopia> i gather you are female. i was not aware of this. must be nice to not be a douchebag.
14:56:25 -!- sebbu2 has joined.
14:56:26 -!- sebbu2 has quit (Changing host).
14:56:26 -!- sebbu2 has joined.
14:59:29 -!- sebbu has quit (Ping timeout: 260 seconds).
14:59:30 -!- sebbu2 has changed nick to sebbu.
14:59:42 <Lymia> quintopia, what is that supposed to mean?
15:06:29 -!- sebbu has quit (Ping timeout: 276 seconds).
15:25:06 -!- sebbu has joined.
15:25:06 -!- sebbu has quit (Changing host).
15:25:06 -!- sebbu has joined.
15:27:01 -!- DocHerrings has joined.
15:28:21 <DocHerrings> Almost have a working interpreter for eodermdrom, in case anyone cares.
15:28:46 <DocHerrings> *Eodermdrome
15:31:41 -!- augur has quit (Remote host closed the connection).
15:36:09 -!- MigoMipo has quit (Read error: Connection reset by peer).
15:44:53 -!- pumpkin has changed nick to copumpkin.
15:50:46 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]).
15:59:05 -!- Lymia has changed nick to Cirno-chan.
16:02:19 -!- augur has joined.
16:04:22 -!- Cirno-chan has changed nick to Lymia.
16:23:24 -!- pikhq_ has joined.
16:23:54 -!- pikhq has quit (Ping timeout: 260 seconds).
16:39:47 -!- zaildar has joined.
16:39:53 -!- monqy has joined.
16:51:35 -!- zaildar has quit (Ping timeout: 250 seconds).
16:52:13 -!- augur has quit (Remote host closed the connection).
17:19:03 <quintopia> Lymia: it means that all guys are douchebags
17:19:34 <Lymia> quintopia, that's not true at all.
17:19:34 <Lymia> :c
17:19:54 <Lymia> Though it is quite true that society seems to expect, and to some degree enforce that.......
17:20:30 -!- augur has joined.
17:20:44 <quintopia> as a female in this society, you should behave as if it were true. guilty until proven innocent as it were.
17:24:19 <Lymia> It's more fun to assume the other way.
17:24:19 <Lymia> :)
17:27:20 <quintopia> how so
17:28:09 -!- dell has joined.
17:30:33 <Lymia> Life isn't fun if you go around assuming all X are Y.
17:36:23 <quintopia> but i do believe in this case that at least 75% of X are Y due to previously mentioned societal pressure, therefore the fun you are referring to can only be of the "omg, i didn't expect you to be a douchebag too, you asshole!" type.
17:36:33 <Lymia> quintopia, on that note, nobody "should" X because they're female, or male, or anything.
17:37:00 <Lymia> Please don't say things like that. It makes you look like an asshole yourself.
17:37:17 <quintopia> but i am. i am a guy, and all guys are douchebags
17:37:48 <Lymia> Disproof by example is fun, eh?
17:38:10 <quintopia> and i agree that a perfect society wouldn't have the need for any assumptions along gender, racial, or economical lines
17:38:11 <Sgeo> I try not to be. Although I guess sometimes I have been. I don't try to be actively malicious though.
17:38:26 <Lymia> I don't believe most people are outright hateful or malicious.
17:39:11 <quintopia> you don't have to be malicious to be a douchebag
17:39:22 <quintopia> indeed, most douchebaggery is not malicious in origin
17:39:30 <quintopia> it's just unthinking socialization
17:39:52 <Sgeo> That's not.. really the kind of douchebaggery I've done, I think
17:39:55 <Lymia> quintopia, and that's something you can talk to people about and expect success at.
17:40:31 <quintopia> yes of course
17:40:50 <quintopia> which is why it's useful also for guys in this society to internalize "all guys are douchebags, even me"
17:41:04 <quintopia> it makes it a lot easier to recognize that tendency and pressure
17:41:22 <Lymia> quintopia, how about this.
17:42:45 <Lymia> Do we have to stereotype people? Like it or not, if you keep saying that, you're not helping the problem, right?
17:43:50 <olsner> why all the serious discussion? it's not befitting of #esoteric
17:44:05 <quintopia> Is it better to consciously or subconsciously apply a stereotype? The media, whether you like it or not, encourages the latter. The only way to fight it is to label it and bring it right out in the open.
17:44:23 <quintopia> sorry olsner. nothing else was going on...
17:44:55 <Lymia> quintopia, neither.
17:45:40 <quintopia> that's not an option at the moment. it's a goal for the future
17:46:00 <Lymia> It's best to not apply a stereotype to people or yourself at all.
17:46:05 -!- dell has quit (Ping timeout: 240 seconds).
17:47:37 <quintopia> actually, it's impossible to apply a negative stereotype to yourself and still remain sane. the cognitive dissonance is too strong. trying and failing to do so gives the insight one needs to see that stereotypes are never completely accurate when applied to individuals.
17:49:05 <Lymia> I've seen more than a few people use those stereotypes as excuses for their behavior.
17:51:42 <quintopia> You mean they completely let themselves off the hook? They have no desire to improve?
17:53:02 <Lymia> See: "Boys will be boys" and any variations on that.
17:54:08 <quintopia> i've only ever seen that used by someone forgiving someone else for something
17:55:11 <Lymia> What do we stand to gain from stereotyping others?
17:55:24 <Lymia> One'd think that you'd correct negative behavior in yourself by listening to others when they call you out on it.
17:56:21 <quintopia> that's an easy one
17:56:43 <cheater_> yeah, you would, wouldn't you
17:56:55 <cheater_> or maybe the world isn't a hugbox
17:57:20 <cheater_> and what you said is such an overt simplification of the human psyche that there's no way to begin describing how disconnected from reality it is
17:57:26 <quintopia> when the stereotype reflects a set of behaviors that actually do occur in the real world, a stereotype is a simple rule whereby one can protect oneself
17:57:30 <cheater_> just maybe.
17:58:26 <Lymia> cheater_, to whom exactly are you directing that?
17:58:32 <cheater_> you
17:58:56 <Lymia> If you want to be a better person, why don't you take it into consideration when somebody calls you out on something?
17:59:08 <cheater_> mu
17:59:45 <Lymia> What are you referring to then?
18:00:40 <cheater_> your reasoning and acting based upon your own simplification of reality whereby you unknowingly give yourself a kick in the ass.
18:01:02 <quintopia> that's kind of my point though. everyone knows that it's bad to be a douchebag. if someone calls you a douchebag, how can you just say "yeah, i am, aren't i? that's just who i am. deal with it." when everything you hear is "no one likes to hang around douchebags"?
18:01:51 <cheater_> i've got no problems saying that if the person calling me out has no moral ground to call me out.
18:02:20 <Lymia> cheater_, so far you havn't made any concrete arguments other than "you're wrong"
18:02:27 <Lymia> It'd be more interesting if you did that.
18:02:53 <cheater_> i haven't, have i? that's just the way it is.
18:03:28 <cheater_> :P
18:04:49 <cheater_> (or maybe i have, you just asserted otherwise for sake of argument)
18:05:29 <quintopia> cheater_: but would you, in saying that, actually believe it to be the truth? or would you just be saying it as a way to piss off someone you don't respect?
18:05:52 <cheater_> quintopia: i don't go out of my way to anger people.
18:06:07 <quintopia> that's not really answering the question
18:06:41 <quintopia> would you ever say "yes, i am a douchebag," accept that as truth, then do nothing about it?
18:06:42 <cheater_> i would normally not act upon an impulse to annoy someone because it is not there.
18:07:04 <cheater_> you can say that and accept it as someone's truth without accepting it as your own truth.
18:07:25 <cheater_> the world isn't a maths book, people have different opinions, you know?
18:07:34 <quintopia> exactly
18:08:12 <cheater_> if someone thinks i'm a douchebag because he e.g. thinks i should accomodate him in ways i am not morally required to and i don't, then he's free to have this opinion
18:08:29 <quintopia> Lymia: That's what's happening with your people excusing themselves with stereotypes. They aren't accepting the stereotypes as truth about themselves.
18:08:35 <cheater_> "hey, give me ten dollars" "no" "you're a douchebag" "i am, aren't i?"
18:09:58 <cheater_> the last sentence is not an attempt at annoying someone, it's just a dismissive required to cleanse your psyche of someone's judgement that you find unjust.
18:11:04 <quintopia> either way, you're not accepting and believing and internalizing that you are a douchebag
18:11:24 <cheater_> nope
18:11:35 <cheater_> if i went silent i probably would, though
18:11:47 <quintopia> otherwise, you'd apologize and seek to change your ways, so as not to be rejected by society
18:11:49 <Lymia> cheater_, "listen to" means to take another's objection into consideration.
18:11:50 <cheater_> that's the way our psychology works
18:12:03 <cheater_> yeah, i took his objection into consideration
18:12:10 <cheater_> and i considered it to be worth a pile of dog shit
18:12:35 <cheater_> most people don't have anything interesting to say, that's a fact of life
18:16:51 <quintopia> now that one i can't agree with it
18:17:23 <quintopia> i'd rather say people are societally inhibited from saying the truly interesting things
18:18:20 <quintopia> peoplke have stories and people know things they can't talk about
18:18:46 <quintopia> it takes a long time to gain the confidence to hear the interesting things
18:19:43 <cheater_> you are setting the bar very low
18:19:46 <Lymia> I think it could be said that it's an issue of perceived cause and effect. Is it because only really befriend people who have interesting things to say, or is it that they say those things because you've befriended them.
18:20:34 <Lymia> I personally think it's the latter-- I do believe it's usually considered creepy when people sprout off in detail about their life to a stranger.
18:21:42 -!- zzo38 has joined.
18:22:08 <Sgeo> Lymia, so I'm creepy?
18:22:10 <Sgeo> :(
18:22:57 <monqy> have you ever listened to yourself talk about yourself
18:23:01 <monqy> tylenol and friends
18:25:11 <Lymia> quintopia, on the issue of stereotypes, after some thought, I think that the problem isn't just that the stereotypes exist. It's that part of the stereotype is that people are that way naturally, and it's only going to hurt you to try to change, etc.
18:26:41 <zzo38> Do you think units 1/4736286.72 inch are enough accuracy for all printers and more?
18:27:31 <Lymia> zzo38, what's standard?
18:27:46 <zzo38> Lymia: Standard what?
18:27:57 <Lymia> DPI/accuracy/whatever.
18:28:08 <Lymia> Actually, on that note, is that per square inch?
18:28:25 <zzo38> I don't know. Some printers have 600 DPI, but some are more resolution than that.
18:28:44 <Lymia> I'm quite sure that resolution implies 22432411894048.3584 DPI, unless it's per square inch.
18:29:17 <zzo38> Lymia: That is not square inch. What I mean is 1/4736286.72 inch is the smallest unit that can be represented and used in calculations, even if no printer can do this resolution.
18:30:48 <Lymia> Then it's more than enough accuracy.
18:30:50 <Lymia> :)
18:32:19 <zzo38> It is the units used in TeX, which is an old program. FreeType does not support this much accuracy as far as I know!
18:33:10 <quintopia> that is a strange number
18:33:19 <zzo38> (And for TeXnicard, a new program, which uses the same units)
18:33:56 <zzo38> quintopia: The reason for that number is there is 72.27 points in one inch, and 65536 scaled points in one point (that is the accuracy of the fractional calculations), now it is less strange isn't it?
18:37:04 <quintopia> no
18:37:49 <zzo38> But this way it makes sense, At least to me it make sense
18:38:12 <quintopia> but why are there 72.27 points in one inch?
18:39:34 <Lymia> I'm thinking that he means that there are 72.27 points in a square inch.
18:39:41 <zzo38> That is how traditional typesetting was designed; there must be some reason having to do with some things that I do not know about, but were important in old typesetting
18:39:46 <Lymia> quintopia, it's likely a unit based on the meter or something. Dunno.
18:39:50 <zzo38> Lymia: No, nothing to do with square inches
18:40:13 <Lymia> zzo38, then that implies a resolution that cannot be stored in memory sanely.
18:41:56 <zzo38> Actually it works very well. Especially since no printers have a resolution that much!
18:42:59 <quintopia> Lymia: in other words, no printer is every asked to print a different random bit at every single point
18:43:52 <quintopia> (although 5223 bits per square inch isn't so impossible)
18:44:13 <Lymia> Well...
18:44:14 <Lymia> Hmm...
18:44:23 <Lymia> Yeah, if 72.27 points is how it's scaled, sure.
18:44:32 <Lymia> But why is there such a strange limit.
18:44:52 <olsner> maybe you're just using the wrong inch
18:45:49 <zzo38> Wrong inch?
18:46:12 <zzo38> The limit is not seem strange to me.
18:49:18 -!- pikhq has joined.
18:49:54 -!- pikhq_ has quit (Ping timeout: 276 seconds).
19:11:20 -!- pikhq_ has joined.
19:14:21 -!- pikhq has quit (Ping timeout: 255 seconds).
19:31:44 <Sgeo> Hmm
19:31:54 <Sgeo> What can I do with a 5 or 6 year old laptop?
19:32:09 <Sgeo> Someone on Facebook wants to get rid of hers, meaning I could have it for free
19:32:16 <Sgeo> (It doesn't have a hard drive)
19:32:53 <zzo38> Install a hard drive and install DOS
19:33:06 <zzo38> (Or learn to invent your own operating system)
19:53:50 <Vorpal> wtf at this config file, it is like a mix of CPP and XML!
19:54:31 <olsner> Vorpal: neat!
19:54:48 <Vorpal> olsner, in fact it isn't either, but the result is like that
19:54:54 <Vorpal> or hmm
19:55:22 <quintopia> xcppml is something the world has long needed
19:55:44 <quintopia> is anyone laughing yet?
19:56:12 <olsner> quintopia: nope
19:56:19 <Vorpal> quintopia, no I'm depressed. Because I have to figure out this config file, which also uses mixed indention style...
19:58:21 <Vorpal> aargh swap trashing now
19:58:23 <Vorpal> why
19:58:58 <quintopia> because you don't have enough memory to do that
19:59:04 <Vorpal> well duh
19:59:09 <Vorpal> thing is, I didn't do anything
19:59:21 -!- copumpkin has quit (Ping timeout: 255 seconds).
19:59:25 <quintopia> clearly you need more memory to do nothing
19:59:28 <Vorpal> hah
19:59:30 <quintopia> start doing something and it will stop
20:01:08 -!- copumpkin has joined.
20:01:52 <Vorpal> The names of the joysticks are:
20:01:52 <Vorpal> ThinkPad HDAPS joystick emulation
20:01:52 <Vorpal> axes: 2 buttons: 0 hats: 0
20:01:52 <Vorpal> ThinkPad HDAPS accelerometer data
20:01:52 <Vorpal> axes: 2 buttons: 0 hats: 0
20:01:53 <Vorpal> Saitek Saitek X52 Pro Flight Control System
20:01:55 <Vorpal> axes: 11 buttons: 39 hats: 0
20:01:59 <Vorpal> okay
20:02:01 <Vorpal> that is why it fucks up
20:02:13 <Vorpal> it is trying to use the accelerometer as my joystick
20:02:23 <Vorpal> now how to avoid it...
20:02:31 <olsner> no, the problem is that you have no hats
20:02:39 <Vorpal> olsner, heh
20:03:38 <quintopia> it makes sense. i've not heard of gregor complaining about such a problem
20:03:47 <quintopia> then again, he probably has no joysticks
20:03:48 <Vorpal> XD
20:03:54 <quintopia> except the one he was born with
20:31:27 -!- Phantom_Hoover has joined.
20:31:40 <Phantom_Hoover> Oh god that was awful.
20:31:40 <lambdabot> Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them.
20:40:25 <Sgeo> Hmm?
20:41:17 <Phantom_Hoover> Sgeo, home internet connection was lost completely.
20:47:55 -!- calamari has joined.
20:48:33 <Phantom_Hoover> I am really disappointed that I read that Homestuck update on a school computer through a proxy without Flash.
20:48:41 <Phantom_Hoover> It completely ruined the effect.
20:50:06 <olsner> Sgeo: any news from FIS?
20:50:14 <Sgeo> No
20:50:15 <Phantom_Hoover> FIS?
20:50:22 <Phantom_Hoover> Oh, right, the BANCstar people.
20:50:37 <Sgeo> Presumed to be the BANCstar people
20:51:01 <cheater_> ding-dong
21:11:35 -!- aloril has quit (Ping timeout: 250 seconds).
21:18:39 -!- foocraft has joined.
21:22:56 <quintopia> can someone tell me why gdocs sucks so much?
21:24:33 -!- aloril has joined.
21:24:37 <Sgeo> It does?
21:26:11 <cheater_> yes
21:39:18 -!- augur has quit (Remote host closed the connection).
21:47:02 <zzo38> Can a LLVM program work with gdb?
21:48:45 <quintopia> MAYBS
21:53:23 -!- calamari has quit (Quit: Leaving).
21:55:21 <Phantom_Hoover> "Vancouver: Riots after Canucks' Stanley Cup defeat"
21:55:24 <Phantom_Hoover> XD
21:55:31 <Phantom_Hoover> It's like football but worse.
21:55:36 <Phantom_Hoover> coppro, comment!
21:57:06 <zzo38> Canucks always loses as far as I know.
21:57:25 <zzo38> That is what someone told me.
22:02:13 -!- Adamfyre has joined.
22:09:49 -!- augur has joined.
22:10:28 -!- Phantom_Hoover has quit (Remote host closed the connection).
22:18:06 -!- Adamfyre has quit (Ping timeout: 276 seconds).
22:18:18 -!- Adamfyre has joined.
22:20:57 -!- Adamfyre has quit (Client Quit).
22:30:22 <pikhq_> It is 16:30, and I am just now getting caffeine.
22:30:44 <quintopia> lies
22:30:49 <quintopia> it is definitely 18:30
22:32:30 <pikhq_> 16:32 UTC-7, happy?
22:44:10 -!- pikhq_ has quit (Ping timeout: 246 seconds).
22:44:21 -!- pikhq has joined.
22:50:40 <CakeProphet> my country is too busy worrying about the dicks of politicians to mention riots in Canada much.
22:51:18 -!- sebbu2 has joined.
22:51:18 -!- sebbu2 has quit (Changing host).
22:51:18 -!- sebbu2 has joined.
22:52:20 <pikhq> Yeah, we're more phallus-obsessed than Freud ever was.
22:54:11 -!- sebbu has quit (Ping timeout: 240 seconds).
23:20:35 -!- Patashu has joined.
23:22:17 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!).
23:23:27 -!- augur_ has joined.
23:23:34 -!- augur has quit (Read error: Connection reset by peer).
23:26:18 -!- pikhq_ has joined.
23:28:37 -!- pikhq has quit (Ping timeout: 250 seconds).
23:32:13 -!- hagb4rd has joined.
23:41:25 -!- Lymia has quit (Ping timeout: 240 seconds).
23:47:42 -!- augur_ has changed nick to augur.
2011-06-17
00:14:01 -!- Vorpal has quit (Ping timeout: 264 seconds).
00:14:59 -!- FireFly has quit (Quit: swatted to death).
00:23:02 -!- calamari has joined.
00:30:39 -!- calamari has left ("Leaving").
00:32:36 <Sgeo> Is it possible to make a statistical distribution (or some sort of statistical construct) that obeys Gambler's Fallacy?
00:33:45 <Sgeo> It's easier for me to vaguely invision with something discrete
00:34:37 <Sgeo> Would (1/2)^x work?
00:36:45 <Patashu> a markov chain is dependent on previous outcomes, right?
00:37:32 <Patashu> but yeah you'd scale p down after getting more 1s and up after getting more 0s
00:37:41 <Patashu> either looking at the latest streak or how many of each you've gotten since you started
00:39:12 <Sgeo> Hmm, I was thinking more of termination on failure. I kind of have death on my mind recently, and one chain of thought lead to that question
00:39:27 <Patashu> Termination on failure?
00:39:30 <Sgeo> (Someone from my graduating class died recently)
00:39:39 <Sgeo> Patashu, that is, if I get a 0, it's over
00:39:49 <Patashu> aah
00:39:55 <Patashu> it's the 'playing slots at vegas' distribution :)
00:41:44 <Patashu> so you want something like 'flip coins and +1 for heads -1 for tails, stop if you hit 0' and you want the average length it'll go for, hmm...
00:41:47 <Patashu> I know there's a distribution for that
00:42:33 <Sgeo> Not quite what I meant, to be honest, but close, I guess
00:42:33 <Patashu> try a markov chain?
00:43:08 <Patashu> well, there are a couple of similar takes like 'at X steps, what percentage of gamblers are at 0' and 'at X steps, what's the average money of a gambler'
00:45:32 <Patashu> http://en.wikipedia.org/wiki/Gambler's_ruin relevant
00:45:49 <Sgeo> Is it correct to say that I have a 50% chance of living to see half the people in my age group die?
00:46:07 <Patashu> Hmmm
00:46:11 <Patashu> Depends on the distribution of deaths
00:46:27 <Patashu> I think...
00:46:35 <CakeProphet> Sgeo: no
00:46:56 <Sgeo> CakeProphet, hm?
00:46:59 <Patashu> No, I think it is true
00:47:04 <Patashu> Consider the median of the distribution, whatever it is
00:47:14 <Patashu> Everyone above the median will have seen 50% of the people die
00:47:40 <CakeProphet> but that doesn't imply that they had a 50% chance of seeing 50% of the people die.
00:47:57 <Patashu> yes, but no matter how you slice it, 50% will live past the deaths of the other 50%
00:48:01 <Patashu> (going to assume no simultaneous deaths)
00:48:09 -!- oerjan has joined.
00:49:03 -!- pikhq_ has quit (Ping timeout: 244 seconds).
00:49:10 -!- pikhq has joined.
00:49:29 <CakeProphet> sure, if you simplify things, that makes sense. But I would say in this scenario that not everyone has equal likelihood of survival.
00:49:45 <Patashu> If you want to model gamblers, use this: http://en.wikipedia.org/wiki/Markov_chain You want a markov chain where at 0 you always stay at 0, and at any higher number you have a p chance of going up and a p chance of going down
00:49:56 <Patashu> Well, if not everyone has the same distribution of lifespan...we need to know what distributions people are using :9
00:49:59 <Patashu> Otherwise I can't say much aboutit
00:50:09 <CakeProphet> indeed
00:50:31 <CakeProphet> but yeah if you consider number of equally likely favorable outcomes / number of equally likely total outcomes
00:50:34 <CakeProphet> you would get .5
00:50:52 <CakeProphet> for that.
00:51:05 <Sgeo> Hmm, because by being healthier than aveage, it increases the individual's chances?
00:51:11 <Patashu> Yep
00:51:45 <Patashu> If I was guaranteed to be immortal I'd always see 50% of my generation die, which robs some other sod of that distinction (since I have a 0% chance of dying)
00:51:47 <CakeProphet> humans are much more complicated than numbers and such, there are a lot of factors to consider if you want to make any kind of realistic statement about the outcome of a person's life.
00:52:07 <Patashu> Can't you model human lifespan as a normal distribution reasonably well?
00:52:25 <CakeProphet> reasonably, I suppose
00:53:03 <CakeProphet> anyways, gotta run.
00:53:03 <Patashu> my intuition from 'introduction to statistics' is 'throw a normal distribution at it'
00:53:05 <Patashu> cya
00:53:35 <CakeProphet> Patashu: yes, that's what I was taught as well. But I doubt it's very accurate for lifespan, since that varies by environmental factors quite a bit.
00:53:48 <Patashu> what other kind of distribution is it likely to be?
00:53:55 <Sgeo> Improvements in medicine make certain causes of death less likely over time
00:54:22 <Sgeo> (Of course, that's not factoring in the possibility of antibiotics becoming ineffective)
00:54:27 <Patashu> it could be a negatively skewed normal distribution I suppose
00:54:37 <CakeProphet> I have no idea, I'm not a statistics person. :P -leaves-
00:59:37 <oerjan> <CakeProphet> why on earth does mueval give me "Exception: not a number" when I try to eval ['a'..'z']
00:59:42 <oerjan> what's the type of eval
01:01:42 <oerjan> @hoogle eval
01:01:43 <lambdabot> Control.Monad.RWS.Lazy evalRWS :: RWS r w s a -> r -> s -> (a, w)
01:01:43 <lambdabot> Control.Monad.RWS.Strict evalRWS :: RWS r w s a -> r -> s -> (a, w)
01:01:43 <lambdabot> Control.Monad.RWS.Lazy evalRWST :: Monad m => RWST r w s m a -> r -> s -> m (a, w)
01:01:47 <oerjan> bah
01:02:18 <oerjan> wtf why do people leave the moment before i want to respond to them
01:02:23 -!- zzo38 has quit (Quit: I think it is improper being immortal.).
01:04:30 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:28:48 -!- oerjan has quit (Quit: leaving).
01:30:54 -!- F has quit (Changing host).
01:30:54 -!- F has joined.
01:34:15 -!- cheater_ has quit (Ping timeout: 240 seconds).
01:36:32 -!- copumpkin has joined.
01:43:03 -!- pikhq_ has joined.
01:44:20 -!- pikhq has quit (Ping timeout: 244 seconds).
01:53:27 -!- elliott has joined.
01:54:07 <elliott> 00:45:49: <Sgeo> Is it correct to say that I have a 50% chance of living to see half the people in my age group die?
01:54:07 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
01:54:10 <elliott> this log sure will be fun
01:54:16 <pikhq_> elliott: I thought you might like to know that today was the day of Dresden Codak's semimonthly update.
01:55:07 <elliott> pikhq_: Ha ha ha, I only follow comics which update at least once per day.
01:55:19 <elliott> (He says, noting that there was no Homestuck update today, and crying.)
01:55:31 <pikhq_> elliott: Then you don't follow SMBC? BLASPHEMER
01:56:24 <elliott> I'm on the internet, I see every SMBC without trying.
01:56:25 <Sgeo> SMBC doesn't update once a day?
01:56:49 <pikhq_> Sgeo: Oh, wait, it does. Thinko.
01:57:12 <pikhq_> elliott: Sorry, let's change that to something that actually has a non-daily schedule. :P
01:57:21 <pikhq_> elliott: Then you don't follow Dr. McNinja? BLASPHEMER
01:57:36 <Sgeo> You don't follow Bonobo Conspiracy?
01:57:55 <Sgeo> (Well, ok, there's nothing left to follow. Maybe in 5 years there'll be an update)
01:58:02 <elliott> Dr. McNinja looks like way too much initial investment for the payoff, to be perfectly honest.
01:58:39 <pikhq_> elliott: "Investment" implies you can not read it after a handful of pages.
01:59:36 <elliott> pikhq_: It implies I don't read any comic without reading the entire backlog.
01:59:43 <elliott> Unless it's Dinosaur Comics or something in which case it's totally irrelevant.
01:59:59 <pikhq_> elliott: No, I mean "You can't not finish once you start the backlog".
02:01:21 <elliott> I totally could.
02:01:37 <Sgeo> pikhq_, that's true for me with most things that have backlogs
02:01:48 <Sgeo> Except SBaHJ
02:02:17 <pikhq_> elliott: Irish ninja doctor comic. Why aren't you reading already?
02:02:18 <pikhq_> :P
02:02:42 <elliott> Sgeo: Uhh, SBaHJ is more addicting than Homestuck.
02:14:15 -!- foocraft has joined.
02:24:25 <elliott> "As a long time unix user, I don't have to figure out file types. If I see a binary file without an extension and I don't know what it might be, it is going off my system."
02:24:59 <monqy> what
02:25:29 <Sgeo> Does using file count as "not having to figure out file types"?
02:25:41 <Sgeo> Using file sounds sensible. Using extensions on UNIX less so
02:29:26 <Patashu> 'using file'?
02:29:44 <pikhq_> Patashu: file(1) performs heuristics to tell you information about what a given file is.
02:29:53 <Patashu> ah, handy
02:30:12 <Patashu> it's a big ball of knowledge about every file format's headers?
02:30:18 <pikhq_> Yup.
02:34:25 -!- pikhq has joined.
02:34:28 -!- pikhq_ has quit (Ping timeout: 246 seconds).
02:40:37 <Patashu> :lol: this is the best trojan ever http://www.symantec.com/connect/imagebrowser/view/image/1815391/_original
02:46:30 -!- Lymia has joined.
02:46:30 -!- Lymia has quit (Changing host).
02:46:30 -!- Lymia has joined.
02:55:58 -!- Behold has quit (Remote host closed the connection).
03:01:02 -!- Adamfyre has joined.
03:06:17 -!- Adamfyre has quit (Ping timeout: 260 seconds).
03:09:24 -!- Adamfyre has joined.
03:09:31 <Sgeo> elliott, elliott
03:09:59 <elliott> what
03:10:37 <Sgeo> Oh, you saw it
03:10:42 <Sgeo> Just saw your comment on Reddit
03:12:10 <Patashu> I find it hilarious that bitcoin is unencrypted by default
03:14:16 -!- Adamfyre has quit (Ping timeout: 240 seconds).
03:16:43 -!- Adamfyre has joined.
03:19:09 <elliott> Patashu: Eh?
03:19:18 <Patashu> your wallet.dat
03:19:20 <Patashu> which has a private key
03:19:23 <Patashu> sits unencrypted on your drive
03:19:32 <Patashu> rather than e.g. behind a symmetric key algorithm that takes a password
03:19:33 <elliott> Well, what is it going to be encrypted with? Another private key? :)
03:19:35 <elliott> :P
03:19:42 <elliott> (Joke.)
03:19:50 <Patashu> there's an algorithm that takes a password and spits out a symmetric key
03:19:56 <Patashu> put it into AES-256 or whatever
03:22:04 -!- Adamfyre has quit (Ping timeout: 252 seconds).
03:28:32 -!- pikhq has quit (Ping timeout: 240 seconds).
03:28:45 -!- pikhq has joined.
03:31:48 -!- Adamfyre has joined.
03:35:53 -!- Adamfyre has quit (Ping timeout: 240 seconds).
03:37:19 <elliott> pikhq: I was thinking that, with my revised needs mechanism, "c99 needs libs ..." should actually be "c99 libs ...", since it actually has special code now, rather than being part of a "generic" mechanism.
03:37:36 <elliott> (Despite that it's actually more flexible, but yeah, it's not straight "needs" any more, it postprocesses the output from the solver to translate the result into the right flags.)
03:38:13 <elliott> "This is one of the pitfalls of Ubuntu: it uses the command make for the same program that basically every other Unix-based OS calls gmake."
03:38:43 <coppro> uh... dude
03:38:50 <coppro> most Linux do that aiui
03:39:04 <elliott> coppro: When I quote things, it is because they are stupid.
03:39:11 <elliott> Usually.
03:39:15 <elliott> Unless they're awesome.
03:39:33 <monqy> what's the difference
03:40:32 <pikhq> Also, it is *entirely* reasonable to install GNU make as "make".
03:40:46 <pikhq> As, as far as I'm aware, it suffices as a POSIX make.
03:41:46 <pikhq> What do you want the distro makers to do, maintain a BSD make package as well?
03:43:24 -!- Adamfyre has joined.
03:47:09 -!- ralc has quit (Quit: Leaving).
03:56:37 -!- Adamfyre has quit (Ping timeout: 264 seconds).
04:00:04 <pikhq> "Okay, I guess that's it. The last HLE code in bsnes is now gone, and every special chip uses LLE."
04:00:07 <pikhq> :)
04:02:20 -!- Adamfyre has joined.
04:07:32 -!- Adamfyre has quit (Ping timeout: 252 seconds).
04:13:58 -!- DocHerrings has joined.
04:14:47 -!- hagb4rd has quit (Quit: hagb4rd).
04:16:24 <elliott> DocHerrings: doc, we need some herrings.
04:16:34 <DocHerrings> Anyone here any good with common lisp? I have a eodermdrome interpreter in its final stages and I just can't seem to find the problem?
04:16:50 <elliott> I've... written a few Common Lisp programs.
04:16:52 <DocHerrings> elliott: I'm a doctor, not a fisherman!
04:17:09 <elliott> Isn't the problem with Eodermdrome efficient implementation?
04:17:18 <DocHerrings> Hold on.. I will put it on pastebin. Beware, it's a bit if a beast.
04:17:19 <elliott> ISTR it's really slow done naively, but ais knows more than me.
04:18:06 <DocHerrings> elliott: I did it by implementing a hash mapping nodes to sets of connections. Seems to be working fine currently...
04:18:36 <elliott> How do you know? I only know of one publicly-posted Eodermdrome program, and it sounds like your implementation doesn't actually work yet :)
04:19:02 <elliott> Not doubting, just curious.
04:20:24 <DocHerrings> The fact is, the parts work. The program does not seem to. (It could be minor bugs I haven't traced yet).
04:21:02 <DocHerrings> http://pastebin.com/V7Qg0Pw9 Beware... I did not use comments. I kinda wrote it in a single session.
04:21:24 <DocHerrings> ^There you go, elliott. Good luck with it.
04:21:28 <elliott> I find the lack of empty lines more distressing :P
04:21:58 <elliott> DocHerrings: But, erm, "it doesn't work" is a bit non-specific.
04:22:07 <elliott> The program is non-trivial, so I don't even know where I'd start debugging it.
04:22:38 <DocHerrings> Well, here is the breakdown - it parses the file properly, and produced the correct graphs and mappings.
04:23:13 <DocHerrings> It also correctly detects input and all other prerequisites.
04:23:45 <elliott> But when running an actual program, ...?
04:24:06 <DocHerrings> BUT the example program fails miserably. All the code seems to be executed, but no changes to the internal graph are made
04:24:45 <elliott> DocHerrings: Bear in mind that it is completely untested...
04:25:08 <elliott> So it may be that the program is broken. It is likely, even.
04:25:23 <elliott> You might be able to pry a simpler example program out of ais523 here or on the wiki.
04:25:57 <DocHerrings> True, but by tracing the that section of code, I see something even worse - for some reason, the internal graph is not being altered - at all.
04:26:19 <elliott> Weird.
04:26:53 <elliott> DocHerrings: Perhaps you are expecting a functional operation to behave imperatively? i.e., you are transforming the graph into a new graph, but not actually _mutating_ it, and in the end just throwing it away.
04:27:01 <elliott> This is just a guess based on a cursory glance at your code, no actual evidence.
04:27:30 <DocHerrings> And I made one of my own - I simply reduced the graph to one node 'a', and then string down the alphabet, printing "Counting 1" etc. That does not work either.
04:27:37 <elliott> Hm.
04:28:11 <Sgeo> Maybe I should get back into CL
04:28:25 <DocHerrings> elliott: You will notice the gratuitous use of setf. Even if the function returns an object, as long as it is setf'ed, the changes stick.
04:28:42 <elliott> That's an odd way to put it, but sure.
04:28:58 <elliott> DocHerrings: Still, closed-nothings bugs me.
04:29:10 <elliott> For a start,
04:29:29 <elliott> you're discarding the result of a map, which means you should really use LOOP instead.
04:29:41 <elliott> Or, well, anything that isn't a map.
04:29:59 <elliott> Oh wait.
04:30:04 <elliott> maphash does not actually map.
04:30:09 <elliott> DocHerrings: "The consequences are unspecified if any attempt is made to add or remove an entry from the hash-table while a maphash is in progress, with two exceptions: the function can use can use setf of gethash to change the value part of the entry currently being processed, or it can use remhash to remove that entry.
04:30:09 <elliott> "
04:30:13 <elliott> This doesn't affect you, right?
04:30:45 <DocHerrings> No, the only time I use maphash, a local variable is the one being changed.
04:30:52 <elliott> Right.
04:31:37 <elliott> I dunno, it's weird.
04:31:54 <DocHerrings> Hmm... I am going to comment out the main loop, and execute the commands by hand. Maybe that will help.
04:32:25 <DocHerrings> And I badly need to clean and refactor this code anyways. It's a god-awful mess.
04:32:32 <elliott> It kind of is, yes.
04:32:53 <elliott> I diagnose this as the obvious result of not being written in Haskell. :p
04:33:30 <DocHerrings> Funny, I have written in Haskell. Playing around with Clean now.
04:34:10 <elliott> Clean is interesting, although I'm not convinced that uniqueness types are useful enough to justify the added complexity to the type system and language.
04:34:26 <elliott> (Apart from that, of course, it's mostly a carbon copy of Haskell-98 with some weirdness.)
04:34:41 -!- kwertii has joined.
04:35:24 <pikhq> Yeah, I find that monads are a more natural abstraction to apply to sequencing IO than uniqueness typing.
04:35:31 <pikhq> Interesting idea, though.
04:35:44 <elliott> Well I don't know about that.
04:36:17 <elliott> But two different ways of modelling imperative IO semantics are... hard to compare because the end result is practically the same.
04:36:26 <pikhq> It's a heavily subjective thing.
04:36:30 <elliott> The question is whether uniqueness types are fun for anything else.
04:36:37 <DocHerrings> Ahahah, okay, now I know I need to re-do part of this.
04:37:00 <DocHerrings> Seems my state-machine/regexp code hates the letter a.
04:37:07 <elliott> wat
04:37:16 <elliott> I diagnose your code with wat. It is terminal.
04:37:23 <elliott> I am so, so sorry.
04:38:14 <copumpkin> man, terminal code is a pain
04:38:15 <copumpkin> I prefer initial
04:38:16 <DocHerrings> Since I didn't feel like getting a regexp library involved with what was already a trainwreak, I wrote a state machine to parse the input.
04:38:32 <DocHerrings> Not simple, and nicely esoteric.
04:39:14 <elliott> If your first thought for an Actual Parsing Library is dragging regexps in, then you have a problem and it's a good thing you were too lazy :P
04:40:38 <DocHerrings> Well, I found the problem.
04:40:46 -!- oerjan has joined.
04:40:55 <elliott> "It was the (if letter-is-a (break-randomly)) line."
04:41:00 <elliott> hi oerjan your eodermdrome program MIGHT be broken MIGHT
04:41:13 <DocHerrings> Working on it.
04:41:21 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:41:53 <DocHerrings> No, seems the code failed miserably when the match or replacement subgraph was of length 1. gotta go fix that.
04:42:00 <oerjan> i shall have to ban DocHerrings for this
04:42:10 <DocHerrings> ?
04:42:39 <oerjan> FOR SULLYING MY PRISTINE PROGRAM WITH ACTUAL BUG CHECKING
04:43:08 <DocHerrings> Whoah whoa WHOAH. Slow down there! The your pristine program might still work, your majesty!
04:43:24 <DocHerrings> The implimentation is a bit broken.
04:43:32 <elliott> the your pristine program
04:43:32 <oerjan> O KAY. WE'LL POSTPONE THE OFF WITH YOUR HEAD, THEN
04:44:20 <DocHerrings> elliott: this is what I get for not sleeping, okay? :p
04:45:26 <pikhq> Bah, sleep is for mortals.
04:46:21 <elliott> DocHerrings: talking to a person who operates on average 0 sleep/day
04:46:55 <pikhq> elliott: I thought you averaged higher than that, but that the mode was 0.
04:51:20 * oerjan opens http://hackage.haskell.org/package/mueval and backs away when he notices there are no haddock links
04:51:46 <elliott> its ok oerjan i will give you a hug
04:51:46 <elliott> btw
04:51:47 <elliott> by "eval"
04:51:50 <elliott> i think CakeProphet just meant >
04:51:51 <elliott> not a function
04:51:53 <elliott> u r dum lol
04:51:55 <elliott> > ['a'..'z']
04:51:55 <lambdabot> "abcdefghijklmnopqrstuvwxyz"
04:51:58 <elliott> oh
04:52:07 <oerjan> elliott: oh
04:52:14 <elliott> but still it might have been in a repl or w / e
04:52:46 <Lymia> > sum ['a'..'z']
04:52:46 <lambdabot> No instance for (GHC.Num.Num GHC.Types.Char)
04:52:46 <lambdabot> arising from a use of `Data...
04:52:53 <Lymia> Insanity, go... aww
04:52:59 <Lymia> > sum [0..]
04:53:16 <lambdabot> thread killed
04:53:30 <Lymia> > sum $ map (\x -> x * x) [0..]
04:53:37 <oerjan> elliott: i was imagining he was trying some eval "['a'..'z']" which defaulted to Integer
04:53:39 <lambdabot> mueval-core: Time limit exceeded
04:54:29 <oerjan> Lymia: sum is indeed a strict function
04:54:31 <oerjan> @src sum
04:54:32 <lambdabot> sum = foldl (+) 0
04:54:44 <copumpkin> is it!
04:54:45 <Lymia> Lymia is not a he.
04:55:00 <oerjan> Lymia: i was referring to CakeProphet
04:55:06 <Lymia> Oh.
04:55:28 <copumpkin> well, at least we know that Lymia is not a he now
04:55:45 <copumpkin> note that this does not necessarily mean that Lymia is a she, though
04:55:52 <Lymia> That is correct.
04:56:12 <oerjan> yes. confer a certain soupy, faxy dragon pig
04:56:39 <copumpkin> wait, a new one?
04:57:07 <elliott> hmm, sum [0..] :: LazyNat is _|_, gross
04:57:08 <oerjan> well i don't _think_ Lymia is fax etc.
04:57:25 <elliott> hasn't Lymia not being a he been established for months
04:57:29 <elliott> or was that in -minecraft
04:57:33 <Lymia> Dunno.
04:57:35 <elliott> ("A he": best terminology?)
04:57:41 <oerjan> well i did notice it a while ago
04:57:59 <Lymia> I thought oerjan was referring to me, considering the whole "defaulted to Integer" clause.
04:58:20 <Lymia> > foldl (++) ['a'..'z']
04:58:22 <lambdabot> Overlapping instances for GHC.Show.Show
04:58:22 <lambdabot> ([[GHC...
04:59:03 <Lymia> > foldl (/x -> show $ ++) ['a'..'z']
04:59:04 <lambdabot> <no location info>: parse error on input `->'
04:59:15 <Lymia> > foldl (\x -> show $ ++) ['a'..'z']
04:59:16 <lambdabot> <no location info>: parse error on input `++'
04:59:18 <oerjan> Lymia: missing argument on the first one
04:59:30 <Lymia> oerjan, ?
04:59:42 <oerjan> Lymia: foldl takes 3 args
04:59:53 <copumpkin> or more!
05:00:07 <DocHerrings> Alright, problem found. Well check back in when I have everything done. Then oerjan can have proof of his pristine program.
05:00:09 <Lymia> :t foldl
05:00:11 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
05:00:14 <oerjan> as for the parse, sections can only have arguments of higher (or sometimes equal precedence)
05:00:27 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]).
05:00:34 <oerjan> oh wait
05:00:51 <Lymia> > foldl (\x y -> show $ ++ x y) "" ['a'..'z']
05:00:52 <lambdabot> <no location info>: parse error on input `++'
05:00:59 <Lymia> > foldl (\x y -> show $ x ++ y) "" ['a'..'z']
05:00:59 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
05:01:00 <lambdabot> against inferred ty...
05:01:12 <Lymia> > foldl (\x y -> show $ (show x) ++ (show y)) "" ['a'..'z']
05:01:12 <oerjan> what do you want the show for
05:01:16 <lambdabot> mueval-core: Time limit exceeded
05:01:17 <Lymia> Uh..
05:01:18 <Lymia> Dunno.
05:01:32 <oerjan> hm
05:01:33 <Lymia> > foldl (\x y -> x ++ y) "" ['a'..'z']
05:01:34 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
05:01:34 <lambdabot> against inferred ty...
05:01:37 <Lymia> Right
05:01:39 <Lymia> Char!=String
05:01:39 <oerjan> > foldl (\x y -> show $ (show x) ++ (show y)) "" ['a'..'z']
05:01:41 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\...
05:01:55 <Lymia> > foldl (\x y -> x ++ $ show y) "" ['a'..'z']
05:01:56 <lambdabot> <no location info>: parse error on input `$'
05:01:57 <oerjan> not all timeouts are for infinite looping
05:02:04 <Lymia> > foldl (\x y -> x ++ (show y)) "" ['a'..'z']
05:02:06 <lambdabot> "'a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w''x''y...
05:02:46 <copumpkin> > fix show
05:02:47 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\...
05:03:02 <copumpkin> > map length . group . fix $ show
05:03:10 <lambdabot> [1
05:03:44 <copumpkin> > take 5 . map length . group . fix $ show
05:03:45 <elliott> wat
05:03:46 <lambdabot> [1,1,1,3,1]
05:03:51 <elliott> wat
05:03:55 <copumpkin> > take 10 . map length . group . fix $ show
05:03:57 <lambdabot> [1,1,1,3,1,7,1,15,1,31]
05:04:02 <elliott> > map length . group . fix $ show
05:04:06 <lambdabot> mueval-core: Time limit exceeded
05:04:09 <elliott> heh
05:04:12 <copumpkin> > take 10 . filter (/= 1) . map length . group . fix $ show
05:04:14 <lambdabot> [3,7,15,31,63,127,255,511,1023,2047]
05:04:30 <oerjan> copumpkin: the \ groups go as 2^n-1
05:04:38 <copumpkin> yep
05:04:52 <copumpkin> I'm mostly puzzled wtf is wrong with lambdabot
05:04:55 <copumpkin> that [1
05:05:18 <oerjan> > map length . group . fix $ show
05:05:24 <lambdabot> mueval-core: Time limit exceeded
05:05:25 <lambdabot> mueval: ExitFailure 1
05:05:33 <oerjan> yes that was weird
05:05:49 <oerjan> lambdabot seems to have many possible failure modes for too long computations
05:06:01 <copumpkin> yeah, but normally it'll lazily produce some of that list
05:06:13 <copumpkin> more than the first element, at least
05:06:29 <oerjan> copumpkin: not if it times out before producing a whole line, does it?
05:06:46 <oerjan> hm
05:06:50 <copumpkin> oerjan: maybe not, but it's weird that it spat out [1 before
05:06:54 <oerjan> yes
05:07:37 <oerjan> i mean if it reaches an exception it does spit out what came before, but i don't think it does that with timeout
05:07:43 <pikhq> "ESTNE VOLVMEN IN TOGA, AN SOLVM TIBI LIBET ME VIDERE" This is a real phrase from a (presumably phrase) book on Latin.
05:07:47 <pikhq> Meaning "Is that a scroll in your toga, or are you just happy to see me?"
05:08:10 <elliott> :D
05:08:13 <elliott> how old
05:09:07 <oerjan> oh the previous mueval version has haddock
05:09:15 <pikhq> No idea; the quote came to me by way of Omniglot.
05:09:39 <oerjan> pikhq: sounds a bit familiar
05:11:06 <oerjan> eval :: MonadInterpreter m => String -> m String
05:11:10 <elliott> no shit sherlock :P
05:11:12 <pikhq> oerjan: "Is that a pistol in your pocket, or are you just glad to see me?" is an extraördinarily well-known, oft slightly mis-quoted, oft referenced quip by the actress Mae West.
05:11:28 <oerjan> pikhq: i mean the actual latin you dolt
05:12:09 <oerjan> i'm sure there's a list of several of them
05:12:23 <pikhq> Ah. Yeah.
05:14:16 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!).
05:17:27 -!- wareya has quit (Read error: Operation timed out).
05:19:38 <pikhq> "Serbia includes the Bosnian language as an elective subject in primary schools."
05:19:41 <pikhq> That is comical.
05:20:01 <pikhq> That would be like America including the Canadian language as an elective subject.
05:20:13 <elliott> i don't know what you mean eh
05:20:30 * oerjan beats pikhq on the head with a Nynorsk dictionary
05:20:34 -!- rodgort has quit (Read error: Operation timed out).
05:21:09 <pikhq> elliott: Serbian/Croatian/Bosnian/Montenegrin/Standard Serbo-Croatian is a pluricentric language with a multitude of names for nationalist reasons.
05:21:32 <elliott> how ridiculous, eh
05:21:41 <coppro> isn't it more likely to just be classes on how to insult bosnians?
05:21:43 <pikhq> oerjan: At least Nynorsk and Bokmål *possess* differences.
05:21:44 <elliott> i'm going to go and get some syrup from a tree, or whatever it is canadians do all day, eh
05:21:50 <elliott> coppro: a fellow canadian
05:21:51 <elliott> coppro: eh
05:22:14 <coppro> goodnight, eh?
05:22:27 <elliott> coppro: eh
05:24:46 <pikhq> oerjan: The differences between the different Serbo-Croatian "languages" are best compared to "color" vs. "colour" type spelling differences.
05:25:45 <oerjan> except for the shooting at people who say "colour"
05:25:47 <pikhq> (okay, so you *can* write "Serbian" text that a speaker of "Croatian" can't read, but that's only because Croatian only uses Latin script)
05:26:02 <pikhq> oerjan: I did say it was for nationalist reasons, did I not?
05:26:14 <pikhq> Unlike US vs. UK spelling, which is for hysterical raisins.
05:26:35 <oerjan> yes, yes. iiuc the differences where hastily introduced after the wars started...
05:26:51 <pikhq> Yup.
05:27:59 <coppro> lol
05:28:26 <elliott> just like canadian english eh
05:28:27 <elliott> coppro: eh
05:28:28 <elliott> coppro: eh
05:29:43 <pikhq> I'm not sure it's even meaningful to say "Canadian English".
05:30:29 <elliott> eh
05:30:30 <elliott> eh
05:30:34 <elliott> syrup from trees
05:30:35 <elliott> bears in snow
05:30:35 <elliott> eh
05:30:36 <elliott> eh
05:32:00 <oerjan> syrup from bears in snow, check
05:32:29 -!- rodgort has joined.
05:32:54 -!- rodgort has quit (Client Quit).
05:34:11 -!- rodgort has joined.
05:34:14 <CakeProphet> so I was thinking it would interesting to make a language that was both high level and low level.
05:34:18 <CakeProphet> almost as two sublanguages.
05:34:23 <CakeProphet> that can interact with one another.
05:34:36 <CakeProphet> so you can write efficient code or you can write abstract code.
05:34:59 <pikhq> CakeProphet: We call it "Haskell".
05:36:30 <CakeProphet> well, as an alternative to Haskell.
05:36:38 -!- pikhq_ has joined.
05:39:33 -!- pikhq has quit (Ping timeout: 250 seconds).
05:42:12 <CakeProphet> I could see using Python's with statement to write monadic code... but I'm not entirely sure.
05:43:07 -!- kwertii has quit (Quit: bye).
05:44:19 <Lymia> pikhq_, now all we need is Haskell with a builtin C-like language.
05:46:49 <elliott> that's called haskell
05:46:58 <elliott> (he says, despite thinking pikhq_'s original statement a bit rich)
05:49:25 <CakeProphet> would an interpreter in Haskell be reasonable if you're concerned with performance?
05:49:40 <pikhq_> elliott: Only mild hyperbole.
05:50:06 <elliott> CakeProphet: If you're good at Haskell, of course :-)
05:50:19 <elliott> Shiro is... faster than pyfunge :P
05:50:21 <pikhq_> Lymia: If you were mildly crazy, you could probably implement C in Template Haskell.
05:50:26 <elliott> (It was faster before I refactored the code.)
05:50:45 <CakeProphet> pikhq_: mildly crazy, you say? :D
05:50:55 <elliott> CakeProphet: I mean, obviously you need to have some kind of intuition about the performance characteristics of Haskell structures and code which are very different to most languages.
05:51:00 <elliott> But yes, Haskell interpreters can be very fast.
05:51:25 <elliott> Also I feel like linking to:
05:51:26 <elliott> http://augustss.blogspot.com/2009/02/more-basic-not-that-anybody-should-care.html
05:51:28 <pikhq_> Lymia: Without doing crazy implementations of things C assumes; you could just translate pointer semantics directly.
05:51:35 <elliott> which is an embedded BASIC DSL in Haskell that uses LLVM to produce BLAAAZING fast code.
05:51:43 <elliott> You could easily do that with... a less perverse language.
05:51:52 <Lymia> elliott, Haskell.... uh....
05:51:52 <Lymia> Wow.
05:51:54 <elliott> Like, one that doesn't use horrific syntactic tricks.
05:52:16 <CakeProphet> elliott: so you mean Perl? :3
05:52:19 <Lymia> elliott, I thought a rough ordering of language speed goes something like this [C,C++]>[Java,C#,Haskell]->[Python,Perl,Ruby]
05:52:25 <elliott> CakeProphet: ...
05:52:33 <elliott> Lymia: Languages don't have speeds.
05:52:42 <elliott> Implementations have speeds (except they don't really).
05:52:55 <CakeProphet> processors have speed?
05:52:57 <pikhq_> Lymia: Languages don't have speeds, code has speeds, and implementations might affect this.
05:53:04 <elliott> Yes, this matters, because the world is not always "C is the fastest language, lol, everything else is slower".
05:53:10 <elliott> C was probably not very fast on a Lisp Machine, for instance.
05:53:42 <Lymia> s/language speed/speed of your typical implementation/
05:53:51 <CakeProphet> or The Analytic Engine.
05:53:52 <elliott> On a typical Intel processor and Unix?
05:54:05 <Lymia> s/language speed/speed of your typical implementation on a typical Intel processor and Unix/
05:54:11 <pikhq_> Lymia: Implementations don't *have* speeds, they can only affect speeds.
05:54:25 <elliott> Lymia: It's possible to write Haskell code as fast as C code that performs the same task, naturally. It might be a pain -- but you can get within the same order of magnitude without too much fuss.
05:54:34 <CakeProphet> ITC: pedanticism
05:54:51 <elliott> CakeProphet: It's kind of relevant, because "C and C++ are fast" is a persistent, idiotic myth.
05:54:55 <elliott> Although I think pikhq_ is taking it a bit too far.
05:54:58 <pikhq_> Lymia: A completely moronic algorithm in C will probably get beat by a good algorithm in, say, Brainfuck.
05:55:07 <Lymia> pikhq_, of course.
05:55:20 <elliott> What we're measuring is "the same algorithm, implemented in an idiomatic-to-mildly-optimised style, compiled by an implementation with full optimisation settings"
05:55:22 <elliott> i.e., the /overhead/.
05:55:25 <elliott> Lymia: Comparing against OCaml is probably worthwhile.
05:55:33 <Lymia> But it's useless to compare apples to grapes.
05:55:40 <elliott> Lymia: Typical OCaml code will be faster than typical Haskell code, most likely.
05:55:48 <Lymia> I should look into that language.
05:55:49 <Lymia> :)
05:55:50 <elliott> But Haskell code can easily be as fast as typical OCaml code.
05:55:53 <elliott> Lymia: What, OCaml?
05:55:58 <Lymia> Yeah.
05:56:00 <elliott> Don't, it's fairly rubbish with only a few nice features.
05:56:15 * CakeProphet is planning some ridiculous language shit.
05:56:23 <elliott> The ML module system, and some of the structural typing is nice, but the toolchain and library ecosystem SUCKS SUCKS SUCKS, and the strictness is annoying.
05:56:30 <elliott> Plus the type system is fairly weak and some of the syntax is really grating.
05:56:33 <elliott> Also it's impure.
05:56:56 <pikhq_> elliott: The issue is, of course, that this is rarely a good comparison. Some languages make it much easier to write smarter code than others, so it's not that common that you can do a comparison of the same algorithm in multiple languages to each other.
05:57:11 <elliott> pikhq_: Yeah yeah yeah it is not helpful to pedant a question to the point of unanswerability.
05:57:31 <elliott> Lymia: Anyway, my assessment is: You can get a Haskell program within the same order of magnitude or two as a C program doing the same thing without /too/ much fuss (although it'll require hand optimisation).
05:57:42 <elliott> Thankfully, most of the time you simply don't need this.
05:57:48 <elliott> Lymia: And certain types of code will be _really_ fast without any work.
05:58:00 <pikhq_> elliott: My point is that the question *is basically meaningless*, so yes, it is helpful. :P
05:58:04 <elliott> Lymia: For instance, fusion means that array-transforming and iterating operations with some of the popular libraries will be RIDICULOUSLY fast.
05:58:13 <Lymia> Not really that surprising.
05:58:17 <elliott> Automatically vectorised, parallelised, fused, etc.
05:58:56 <elliott> Lymia: And this is probably more relevant than whole-program performance: it means that you can write simple, functional compositions of combinators to do a certain, atomic task in an easy-to-write way, and it'll compile to a fast tight loop.
05:59:04 <elliott> Which, if you use it a lot, will help a ton.
05:59:21 <Lymia> Basically, "Haskell is way easier to optimize than C"
05:59:21 <Lymia> =p
05:59:31 <elliott> I dunno about that.
05:59:44 <elliott> Some things get automatically optimised with no work for you, and are basically the best you'll get.
05:59:48 <elliott> And strictness annotations always help.
05:59:49 <pikhq_> I dunno, it's certainly easier to microöptimize C.
05:59:55 <elliott> But C code is usually easier to microoptimise, yes.
06:00:17 <Lymia> elliott, Haskell ensures that a function call with the same parameters would have the same result, right?
06:00:34 <elliott> Lymia: It's not so much "ensures" as "there is no way to violate that from the language definition".
06:00:47 <Lymia> Heh.
06:00:48 <elliott> Lymia: Exercise: Write a lambda calculus function that returns a different result given identical arguments at different times.
06:00:55 <elliott> You can't, but not because of any specific law preventing it.
06:01:05 <elliott> Lymia: Of course unsafePerformIO and unsafeCoerce and all hosts of horrible things violate this.
06:01:12 <elliott> But if you use them you better know what you're doing.
06:01:33 <Lymia> Doesn't that go for almost all features explicitly called "unsafe" in any language?
06:01:36 <elliott> Exposing such non-referentially-transparent things outside of an internal module implementation is a crime worthy of death.
06:01:39 <elliott> Lymia: Yes.
06:01:40 <pikhq_> The compiler *will* assume that the function remains pure, and if you break that assumption you can keep both pieces.
06:01:44 <CakeProphet> could the FFI be used to violate that principle of Haskell?
06:01:47 <elliott> pikhq_: It's not quite that bad.
06:02:00 <elliott> Hmm, I guess unsafeCoerce is actually referentially transparent
06:02:04 <elliott> Oh, hmm, maybe
06:02:08 <pikhq_> CakeProphet: The FFI *contains* unsafeCoerce.
06:02:11 <elliott> If you cast something in a way that lets you get at its pointer then no.
06:02:26 <elliott> CakeProphet: Yes, but if you do it you'll know you've done it.
06:02:51 <CakeProphet> elliott: ...I would hope so.
06:03:12 <elliott> CakeProphet: And if you expose that impurity from a public module without big warning signs:
06:03:15 <elliott> TA: kiind of liike wiith regii2tered 2ex offender2 and 2chool2.
06:03:15 <elliott> TA: iif you move two a new town you have two go up two your neiighbor2 door and warn them about how 2tupiid you are.
06:03:16 <elliott> TA: and giive them a chance two hiide all theiir iinnocent technology.
06:03:16 <elliott> TA: and vandaliize your hou2e.
06:03:20 <elliott> (ANY EXCUSE TO USE THAT QUOTE)
06:03:23 <elliott> (ANY EXCUSE)
06:03:53 <pikhq_> Lymia: One of the things that *really* helps with Haskell is that it's rather easy to write reasonable parallel code.
06:04:02 <Lymia> pikhq_, can't you automate that?
06:04:07 <elliott> no.
06:04:11 <elliott> not unless you're a researcher.
06:04:17 <pikhq_> Open problem.
06:04:21 <elliott> and even then, no, not always, just no.
06:04:25 <elliott> don't even think about it. stop. stop that thinking.
06:04:40 <Lymia> why
06:05:04 <elliott> stop
06:05:39 <CakeProphet> yeah, my dual core processor is going to be able to take advantage of all that parallel code, while running other processes at the same time.
06:06:11 <pikhq_> CakeProphet: Your processors are idling 90% of the time.
06:06:31 <elliott> >implying dual core processors will even exist in consumer computers in a few years
06:06:50 <CakeProphet> now, some /algorithms/ can be sped up by parallelism, I think.
06:06:52 <elliott> "Dumb" automatic parallelisation would probably work in a N-core graph reduction machine where N is ridiculously large (like, at least sixty-four), mind you.
06:06:57 <CakeProphet> or potentially sped up
06:07:00 <elliott> CakeProphet: What do you even mean by that?
06:07:31 <pikhq_> And, yeah, the core count is going to go up until either we hit physical limits or we fuck up human civilization enough to stop chip manufacturing.
06:07:32 <CakeProphet> well, nevermind. it basically still relies on how many processors there are.
06:07:47 <Lymia> elliott, the standard library can be paralleled without the code being aware of it, no?
06:08:10 <elliott> Lymia: It would usually be a net loss.
06:08:21 <elliott> You don't want every map of a hundred-element list to involve bulky thread spawning code.
06:08:25 <elliott> That is Stupid.
06:08:37 <pikhq_> Lymia: The trick is to do parallel code that is faster than sequential code, not just doing parallel code.
06:08:54 <oerjan> <elliott> You can't, but not because of any specific law preventing it. <-- you _might_ say it's because of confluence
06:08:57 <Lymia> elliott, good point.
06:08:57 <Lymia> =p
06:09:15 <pikhq_> Even Haskell's really ubergood threading stuff doesn't make `par` free.
06:09:22 <elliott> oerjan: that's not really an explicit Law, though
06:09:24 <elliott> it's just a consequence
06:10:33 -!- zzo38 has joined.
06:10:36 <zzo38> "This statement is either false or paradoxical."
06:11:37 <Lymia> Nonsense.
06:11:56 <elliott> boy howdy, I sure wish the liar's paradox was still interesting
06:12:02 <Lymia> Besides
06:12:14 <Lymia> There's a easy escape clause to that.
06:12:47 <Patashu> This sentence is uninteresting.
06:13:03 <elliott> your MOM is uninteresting lmao
06:13:12 <elliott> im: the funniest?
06:13:15 <zzo38> Epimenides of Crete says: "All Cretans are liars." But first he put all the other Cretans in a box and made an experiment like Schrodinger's Cat.
06:13:15 <elliott> (im the funniest.)
06:16:49 <zzo38> "You do not know how to prove this statement."
06:17:50 <Patashu> Isn't making a sentence that starts 'this sentence' like trying to use an object's variables before the constructor finishes?
06:18:18 <zzo38> Patashu: Maybe it is something like that.
06:18:50 -!- zzo38 has set topic: Rule #1: Ignore Rule #2. Rule #2: Ignore Rule #3. ... Rule $n$: Ignore Rule $n+1$. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
06:18:55 <Patashu> lol
06:19:06 <Lymia> Patashu, yes.
06:19:16 <elliott> zzo38: hi asie
06:19:58 <zzo38> elliott: Can you elaborate on that please?
06:20:01 <pikhq_> The proper answer to such paradoxes is simple.
06:20:03 <elliott> maybe
06:20:03 <pikhq_> "Fuck you".
06:20:07 <elliott> zzo38: can YOU????
06:20:20 <zzo38> elliott: I don't know.
06:20:32 -!- Lymia has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any positive integer. ... Rule $n$: Ignore all rules $n$*x where x is any positive integer. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
06:20:47 <elliott> zzo38: Try. And see if you can! Else, then maybe you can not.
06:20:49 <Lymia> Wait...
06:20:50 <elliott> But try.
06:20:54 <zzo38> OK.
06:21:05 -!- Lymia has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any integer greater than 1. ... Rule $n$: Ignore all rules $n$*x where x is any integer greater than 1. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
06:24:00 <elliott> im a tired
06:24:17 <Lymia> Your challenge is to figure out the end result of this rule.
06:24:22 <elliott> no
06:25:58 <pikhq_> "Fuck off and die in a fire"
06:26:32 <elliott> pikhq_: great temper A+
06:28:24 <Patashu> how does this rule system work
06:28:25 -!- zzo38 has quit (Quit: ERROR: CPU TEMPERATURE IS A NONREAL NUMBER).
06:28:38 <Patashu> do I apply a rule only once, or make sure it's always being held after each rule application?
06:28:51 <Patashu> if it's the latter then I can't ignore a rule if I'm told to follow 'em all
06:29:13 <elliott> Patashu: badly
06:29:19 <Patashu> o
06:32:19 <oerjan> inconsistent ruleset is inconsistent
06:39:07 <elliott> hey oerjan
06:39:12 <elliott> *Main> let nine = fromInteger 9 :: Sym in runSym (nine == nine) :: Expr
06:39:12 <elliott> Fun "==" [Con 9,Con 9]
06:39:16 <elliott> im breaking rules
06:40:11 <Patashu> lol
06:40:22 <Patashu> idk what's going on!!
06:40:38 <elliott> Patashu: evil
06:42:13 <oerjan> elliott: erm that fromInteger is redundant
06:42:25 <elliott> oerjan: oh indeed
06:42:26 <elliott> *Main> runSym (fromIntegral (fromEnum (nine + nine == nine)) == nine) :: Expr
06:42:26 <elliott> Fun "(==)" [Con *** Exception: SymException (Fun "(==)" [Fun "(+)" [Con 9,Con 9],Con 9])
06:42:28 <elliott> oerjan: darn, so close
06:42:36 <elliott> scared yet? :D
06:42:53 <Patashu> wat
06:44:41 <oerjan> ok that _is_ a bit scary
06:44:52 <oerjan> you are not hiding Prelude functions are you?
06:45:02 <elliott> oerjan: nope (well, catch, to use Control.Exception's)
06:45:11 <elliott> runSym :: (Show e, Typeable e, Show a, Typeable a) => e -> a
06:45:11 <elliott> runSym x = unsafePerformIO $ eval x `catch` \(SymException r) -> return r
06:45:11 <elliott> where eval x = do r <- evaluate x
06:45:11 <elliott> throw (SymException r)
06:45:13 <elliott> this is the magic sauce
06:45:34 <elliott> (if you try and use it as the wrong type it will cause a runtime exception by failing to catch the exception)
06:45:37 <elliott> (this scares even me...)
06:45:46 <elliott> oerjan: basically I'm making a _real_ damn symbolic package :D
06:45:52 <elliott> exception-oriented programming
06:46:32 <oerjan> oh right, it's not _actually_ returning anything from fromEnum
06:46:39 <elliott> *Main> runSym (fromEnum (nine + nine == nine)) :: Expr
06:46:39 <elliott> Fun "(==)" [Fun "(+)" [Con 9,Con 9],Con 9]
06:46:46 <elliott> lol, I like how the fromEnum just gets ignored, yeah
06:46:54 <elliott> I guess I will not be able to support that, unfortunately
06:48:25 <oerjan> wait catch is a Prelude function?
06:48:31 <Deewiant> Yes
06:48:32 <oerjan> :t Prelude.catch
06:48:35 <lambdabot> forall a. IO a -> (IOError -> IO a) -> IO a
06:48:45 <olsner> (sweet, finally some on-topic discussion in here!)
06:48:57 <elliott> hmm, darn, I forgot that
06:49:00 <elliott> class (Show a, Typeable a) => Sym a
06:49:03 <elliott> doesn't really work to bundle constraints
06:49:05 <oerjan> olsner: there was eodermdrome earlier
06:50:13 <oerjan> elliott: it doesn't?
06:50:47 <elliott> oerjan: you have to define instances manually...
06:50:52 <oerjan> well yeah
06:51:04 <oerjan> mumble mumble class aliases
06:53:13 <olsner> just use the preprocessor? :)
06:53:41 <oerjan> something something template haskell
06:54:06 * oerjan wonders if someone could implement class aliases _in_ template haskell
06:54:50 <oerjan> it seems eminently possible, mainly from the fact i know very little about template haskell
06:55:27 <elliott> im templated YOUR haskela
06:56:03 <elliott> oh, itsa brokes...
06:56:11 <elliott> them's the brokes!
06:56:18 <elliott> oerjan: can i just say how scary haskell's pure exception semantics are...
06:56:25 <elliott> _|_ is like a whole RANGE of values now :<
06:57:41 <olsner> @quote awesome.majesty
06:57:41 <lambdabot> malcolm says: I don't believe you need to invoke the full awesome majesty of Template Haskell
06:58:19 <pikhq_> oerjan: Technically, you could do anything with it. Though you might just have a Haskelloid to Haskell compiler by you're done.
06:58:49 <oerjan> elliott: it's not just a RANGE, it's the POWER SET of a range
06:59:09 <elliott> oerjan: carbon dioxide, man
06:59:15 <pikhq_> oerjan: Not helping.
06:59:56 <elliott> show x = sym (Fun "show" [unsafeCoerce (runSym (unsafeCoerce x::())) :: Expr ()])
07:00:00 <oerjan> (if an expression has more than one possible exception raised inside dependent on evaluation order, then the resulting _|_ is the _set_ of them)
07:00:01 <elliott> dammit why isnt unsafeCoerce making my problems go away..........
07:00:09 <elliott> TYPE DAMMIT
07:00:32 <Patashu> :t unsafeCoerce
07:00:33 <lambdabot> Not in scope: `unsafeCoerce'
07:00:36 <Patashu> one of yours?
07:00:53 <elliott> oh.
07:00:56 <elliott> a virgin mind.
07:00:58 <pikhq_> Patashu: unsafeCoerce :: a -> b
07:01:01 <elliott> Patashu: adults are talking plz leave
07:01:07 <elliott> pikhq_: wow way to ruin their childhood
07:01:15 <Patashu> lol
07:01:24 <Patashu> :(
07:01:28 <oerjan> @hoogle unsafeCoerce
07:01:29 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
07:01:48 <Patashu> @src unsafeCoerce
07:01:49 <lambdabot> Source not found. Wrong! You cheating scum!
07:01:55 <pikhq_> And distinct from \x -> undefined
07:02:01 <pikhq_> :t \x->undefined
07:02:01 <lambdabot> forall t a. t -> a
07:02:58 <oerjan> import GHC.Prim (unsafeCoerce#)
07:02:58 <oerjan> unsafeCoerce :: a -> b
07:02:58 <oerjan> unsafeCoerce = unsafeCoerce#
07:03:01 <oerjan> Patashu: ^
07:03:10 <oerjan> so, basically builtin
07:03:12 <Patashu> right
07:03:14 <Patashu> thought so
07:03:48 <elliott> you can implement it
07:03:50 <elliott> with unsafePerformIO
07:04:06 -!- cheater_ has joined.
07:05:27 <elliott> oerjan: whoops i exceeded the limits of the type system
07:05:33 <Patashu> already?
07:05:34 <elliott> whoops..........
07:05:41 <elliott> Patashu: this tends to happen to me
07:05:53 <oerjan> elliott, always pushing the boundaries
07:06:08 <elliott> is that a pun
07:06:30 <oerjan> maybe in a very abstract way
07:06:59 <oerjan> as in, a pun on concepts, not words...
07:07:01 <Deewiant> unsafeCoerce a = let ref = unsafePerformIO (newIORef undefined) in unsafePerformIO $ writeIORef ref a >> readIORef ref
07:07:16 <elliott> At least one of the forall'd type variables mentioned by the constraint
07:07:16 <elliott> must be reachable from the type after the '=>'
07:07:18 <elliott> whyyyyyyyyyyy
07:07:20 <oerjan> Deewiant: OMG NOT THREAD SAFE THAT'S EVIL
07:08:11 <elliott> oerjan: erm how is it not
07:08:13 <elliott> nothing else can access the ioref
07:08:31 <oerjan> oh wait hm
07:08:52 <oerjan> actually, it _could_ be floated out, so still not thread safe
07:09:12 <oerjan> oh wait
07:09:27 <oerjan> Deewiant: you also hit the monomorphism restriction
07:09:27 <elliott> oh hm what if I...
07:09:29 <elliott> excellent
07:09:32 <elliott> Data.Dynamic time
07:10:41 <Deewiant> oerjan: Hmm, not in my GHCi
07:10:45 <oerjan> otoh there is also no guarantee that it _does_ keep just one value
07:10:49 <Deewiant> unsafeCoerce :: a1 -> a
07:10:59 <oerjan> Deewiant: well obviously you'll have it turned off, then
07:11:43 <Deewiant> Nope
07:12:00 <oerjan> Deewiant: and you say it actually gives that type?
07:12:17 <Deewiant> > let x = 0
07:12:17 <Deewiant> > :t x
07:12:17 <Deewiant> x :: Integer
07:12:17 <oerjan> Deewiant: oh wait it works because there is no typeclass involved
07:12:19 <Deewiant> It's quite on
07:12:19 <lambdabot> <no location info>: parse error on input `:'
07:12:19 <lambdabot> not an expression: `let x = 0'
07:12:27 <oerjan> so the MR doesn't trigger
07:13:39 <oerjan> Deewiant: still, there is no guarantee from haskell that this function does what it's intended to do... the ref could be floated out, thus thread unsafe, or it could be replicated, thus not transferring any value...
07:13:51 * oerjan is just musing
07:14:00 <Deewiant> Sure
07:15:25 <oerjan> in the latter case it _would_ probably end up equivalent to \x -> undefined
07:18:03 <elliott> ?hoogle [ShowS] -> ShowS
07:18:04 <lambdabot> Prelude showParen :: Bool -> ShowS -> ShowS
07:18:04 <lambdabot> Text.Show showParen :: Bool -> ShowS -> ShowS
07:18:04 <lambdabot> Network.URI uriToString :: (String -> String) -> URI -> ShowS
07:18:06 <elliott> :(
07:18:09 <elliott> :t ShowS
07:18:10 <lambdabot> Not in scope: data constructor `ShowS'
07:18:27 <oerjan> elliott: what do you want?
07:18:59 <oerjan> :k ShowS
07:19:00 <lambdabot> *
07:19:06 <elliott> oerjan: foldr (.) id, it seems
07:19:09 <elliott> :)
07:19:10 <elliott> *Main> runSym (nine + nine == nine)
07:19:11 <elliott> 9 + 9 == 9
07:19:14 <oerjan> yeah
07:19:17 <elliott> yay!
07:19:18 <oerjan> @src ShowS
07:19:18 <lambdabot> type ShowS = String -> String
07:21:08 <oerjan> @hoogle [a -> a] -> a -> a
07:21:08 <lambdabot> Data.Generics.Schemes everywhere :: (a -> a) -> a -> a
07:21:09 <lambdabot> Data.Generics.Schemes everywhere' :: (a -> a) -> a -> a
07:21:09 <lambdabot> Prelude until :: (a -> Bool) -> (a -> a) -> a -> a
07:21:51 <oerjan> @src Endo
07:21:52 <lambdabot> Source not found. You untyped fool!
07:21:57 <oerjan> @hoogle Endo
07:21:57 <lambdabot> Data.Monoid newtype Endo a
07:21:57 <lambdabot> Data.Monoid Endo :: (a -> a) -> Endo a
07:21:57 <lambdabot> Data.Monoid appEndo :: Endo a -> a -> a
07:22:40 <oerjan> :t appEndo . mconcat . map Endo
07:22:41 <lambdabot> forall a. [a -> a] -> a -> a
07:23:00 <olsner> that's longer than foldr (.) id :/
07:23:06 <oerjan> now whether that folds left or right, i don't recall.
07:23:10 <oerjan> sadly yes
07:23:30 <elliott> lol at endo
07:23:44 <oerjan> :t foldA
07:23:45 <lambdabot> Not in scope: `foldA'
07:23:49 <oerjan> @hoogle fold
07:23:49 <lambdabot> Data.Foldable fold :: (Foldable t, Monoid m) => t m -> m
07:23:50 <lambdabot> Data.IntMap fold :: (a -> b -> b) -> b -> IntMap a -> b
07:23:50 <lambdabot> Data.IntSet fold :: (Int -> b -> b) -> b -> IntSet -> b
07:24:03 <oerjan> @hoogle foldMap
07:24:03 <lambdabot> Data.Foldable foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
07:24:03 <lambdabot> Data.Traversable foldMapDefault :: (Traversable t, Monoid m) => (a -> m) -> t a -> m
07:24:08 <oerjan> yay
07:24:19 <oerjan> :t appEndo . foldMap Endo
07:24:20 <lambdabot> Not in scope: `foldMap'
07:24:24 <oerjan> eek
07:24:31 <oerjan> :t appEndo . Data.Foldable.foldMap Endo
07:24:31 <lambdabot> forall a (t :: * -> *). (Data.Foldable.Foldable t) => t (a -> a) -> a -> a
07:26:32 <oerjan> > (appEndo . Data.Foldable.foldMap Endo) (repeat ('a':)) undefined
07:26:35 <lambdabot> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
07:26:46 <oerjan> ok it folds the right way
07:27:12 <oerjan> (worst implementation of fix ever?)
07:27:33 -!- oerjan has quit (Quit: Later).
07:28:28 <elliott> *Main> runSym (max (9::Symbolic Int) (head (enumFrom 0)))
07:28:28 <elliott> max 9 (enumFrom 0)
07:28:37 <elliott> olsner: i like the kind of bugs this is going to create
07:31:58 <olsner> > let fix' :: (a -> a) -> a; fix' f = (appEndo . Data.Foldable.foldMap Endo) (f:repeat' f) undefined; repeat' x = fix' (x:) in fix' ('a':)
07:32:00 <lambdabot> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
07:35:33 <elliott> *Main> runSym (lift (lift True == lift False) == lift True)
07:35:33 <elliott> (True == False) == True
07:35:35 <elliott> wow, that actually works
07:35:41 -!- Sgeo has quit (Read error: Connection reset by peer).
07:36:40 -!- wareya has joined.
07:39:29 <olsner> eugh, "demonstrating the power of Racket by writing Brainfuck Compiler in it." ... since when does compiling brainfuck provide some indication of "power"?
07:41:27 <elliott> xD
07:41:44 <elliott> olsner: i think they mean "im going to use a bf compiler to demonstate fancy features of racket"
07:41:45 <elliott> but lol
07:42:21 <olsner> ahaha, the article opens with "If people say that Racket is just a Scheme, they are short-selling Racket a little." ... this thing looks exactly like scheme
07:43:09 <elliott> that is actually true, though
07:43:22 <elliott> Racket is a family/environment of languages, not a language
07:43:30 <elliott> and indeed the main Racket language is very, very different from Scheme
07:43:42 <elliott> (yes, it's mostly compatible with Scheme, but idiomatic Racket looks nothing like idiomatic Scheme)
07:45:41 <olsner> aha, ok, the point is that they integrate it as a #lang translator/parser thingy for running brainfuck with Racket
07:45:58 <olsner> maybe that explains the huge amount of code they need
07:46:10 * elliott looks
07:46:10 <olsner> *he needs
07:46:13 <elliott> it's not much code, really
07:46:19 <elliott> most of it is just boilerplate that is only being used to demonstrate, it seems
07:46:27 <elliott> i.e. for any language that wasn't bf, you'd actually want it :)
07:46:49 <olsner> not golfed => bloated
07:47:08 <elliott> olsner: hi person who uses C in their bloated kernel
07:47:45 <olsner> hehe, I don't use any C though
07:47:59 <elliott> i thought you were going to
07:50:09 -!- monqy has quit (Quit: hello).
07:51:39 <olsner> dunno, maybe, making linker scripts and stuff to do the right thing turned out to be more difficult and more boring than I thought... so I might not do C at all until I make an ELF loader
07:54:17 <elliott> olsner: carpenters
08:04:36 <elliott> olsner....hes got the carpenting but he doesnt realise
08:10:01 -!- elliott has quit (Ping timeout: 258 seconds).
08:22:36 -!- cheater_ has quit (*.net *.split).
08:22:37 -!- Patashu has quit (*.net *.split).
08:26:01 -!- cheater_ has joined.
08:26:01 -!- Patashu has joined.
08:29:11 -!- cheater_ has quit (*.net *.split).
08:29:11 -!- Patashu has quit (*.net *.split).
08:34:50 -!- cheater_ has joined.
08:34:51 -!- Patashu has joined.
09:25:27 -!- Vorpal has joined.
10:23:10 -!- Phantom_Hoover has joined.
10:23:36 <Phantom_Hoover> asdf
10:23:36 <lambdabot> Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them.
10:25:00 -!- PatashuPikachuRe has joined.
10:27:37 -!- Patashu has quit (Ping timeout: 252 seconds).
10:33:39 -!- FireFly has joined.
10:35:31 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
10:36:28 -!- Phantom_Hoover has joined.
10:40:55 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
10:41:23 -!- Phantom_Hoover has joined.
10:44:14 -!- pikhq has joined.
10:44:57 -!- pikhq_ has quit (Ping timeout: 276 seconds).
10:45:09 -!- BeholdMyGlory has joined.
11:00:53 <CakeProphet> yeah, so mueval gives a not a number exception when I call fromEnum on Char..
11:01:26 <CakeProphet> makes no sense at all.
11:21:34 -!- PatashuPikachuRe has quit (Ping timeout: 246 seconds).
11:25:10 -!- Patashu has joined.
11:38:12 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/i1txy/askscience_what_programming_language_do_you_use/
11:38:16 <Phantom_Hoover> Why
11:52:00 -!- Phantom__Hoover has joined.
11:56:38 -!- Patashu has quit (Read error: Connection reset by peer).
11:57:09 -!- Patashu has joined.
11:57:28 -!- Phantom__Hoover has quit (Quit: Leaving).
12:06:19 <augur> Phantom_Hoover: why not
12:06:38 <Phantom_Hoover> augur, seemed like a weird question. Dunno why.
12:06:52 <augur> have you SEEN the questions people ask in there?
12:07:16 <Phantom_Hoover> FSVO "weird".
12:13:12 <augur> honestly some of the askscience questions are so inane
12:13:16 <augur> shit like
12:13:38 <augur> how would an antimatter bomb have to be to kill all life on earth if it was on the edge of the observable universe
12:14:02 <augur> learn to multiply you shithead and stop asking that kind of crap here
12:14:18 <Phantom_Hoover> The vague ones and the ones which would take 10 seconds of Google are the worst.
12:14:34 <augur> well its not like you could google for this
12:14:38 <augur> but you could google for the parameters
12:14:51 <augur> and all it requires is a little knowledge to figure out
12:15:01 <augur> meanwhile i ask deep hard questions and get fuck all :(
12:15:14 <Phantom_Hoover> "Are there any negative ramifications of collecting solar power? (self.askscience)"
12:15:20 <Phantom_Hoover> That's the kind of thing I'm talking about.
12:15:22 <augur> why does noone know about chaitin-kologorov complexity?
12:15:32 <Phantom_Hoover> Also, is that really science?
12:15:38 <augur> what
12:15:41 <augur> c-k complexity?
12:15:42 <Phantom_Hoover> I would classify it as maths.
12:15:50 <augur> close enough
12:16:03 <augur> i dont think theres an askmath
12:21:21 <augur> math-asked
12:30:08 <Patashu> I don't think ask math would be as popular
12:31:21 <augur> probably not
12:31:30 <augur> except for students who want help
12:31:35 <Patashu> yeah
12:32:07 <cheater_> there's mathoverflow
12:32:12 <cheater_> full of trolls tho
12:32:19 <augur> http://www.reddit.com/r/cheatatmathhomework/
12:32:23 <augur> also i cant understand this but
12:32:25 <Patashu> how do you troll math?
12:32:38 <cheater_> give it a go and you'll see
12:32:39 <Patashu> 'pi is 4 in taxicab geometry' 'FUUUUUUUUUUUU'
12:32:44 <augur> /r/math's links are half to tinyurl even tho they're reddit internal
12:33:45 <Patashu> 'only numbers that you can compute exist' 'FUUUUUUUUUUUU'
12:36:30 <cheater_> actually it's 2sqrt2
12:37:04 <cheater_> it's 4 in |x|_inf geometry
12:40:52 <quintopia> no
12:41:29 <quintopia> the circumference of a L_1 circle is definitely 8
12:42:18 <quintopia> er, rather, circle on a grid
12:42:25 <augur> interesting that the term 2 pi r still is valid
12:42:46 <augur> i suppose its almost definitional but
12:43:20 <augur> i wonder if in principle c = 2 pi r could be the incorrect equation for some geometries
12:44:42 <quintopia> nope. pi will always be defined at the length of a unit semicircle
12:44:48 <quintopia> in any geometry
12:44:49 <Patashu> pi is defined to be the ratio between diameter and circumference
12:44:51 <Patashu> so it always worsk
12:44:58 <quintopia> that too
12:45:05 <Patashu> it's a self fulfilling prophecy
12:45:36 <quintopia> well
12:45:44 <quintopia> in any sane geometry
12:46:17 <quintopia> one can imagine insane geometries where the circumference of a circle does not vary linearly with the radius i bet
12:46:31 <quintopia> but calling it a
12:46:42 <quintopia> "circle" is questionable then
12:47:06 <Patashu> circle's the locus of all points equally distant from a point
12:47:09 <Patashu> works for any geometry
12:49:04 <quintopia> what about a geometry where that describes the entirety of space
12:49:20 <quintopia> aka, a single point
12:49:42 <quintopia> that can have any name
12:49:58 <quintopia> so all points are equally distant from all other points
12:50:04 <augur> quintopia: right but i mean, could it be possible that the length of a unit semi-circle is not d/c
12:50:29 <quintopia> we need to come up with something like that if it exists
12:54:58 <quintopia> (note that saying it exists is the same as saying circumference does not vary linearly with radius)
12:58:00 <augur> quintopia: in that geometry
12:58:19 <augur> but wouldnt that be true in, say, a parabolic geometry?
12:58:55 <augur> or a cylinder capped with a sphere?
12:59:00 <augur> well, hemisphere
12:59:19 <augur> where the circumference would increase up to a point
12:59:22 <augur> and then stay constant
12:59:32 <augur> if the circle were centered on the pole of the hemisphere
13:00:39 <augur> yes, there is a space in which circles would not have a constant pi
13:07:13 -!- MigoMipo has joined.
13:09:35 <quintopia> perhaps we should confine ourselves to geometries in which circles with different radii are distinct
13:09:46 <quintopia> that seems the more interesting case
13:19:31 <CakeProphet> In my space, pi is the rectangle function.
13:20:09 <CakeProphet> this leads to circles disappearing when they're not within a set of cycling ranges.
13:21:27 <quintopia> rectangle function?
13:21:41 <CakeProphet> aka unit pulse.
13:22:38 <quintopia> as a function of radius i suppose?
13:22:59 <CakeProphet> yep.
13:23:08 <CakeProphet> pi(r)r
13:23:16 <CakeProphet> ^2, even
13:24:24 <CakeProphet> pulse functions are used in music synthesis a lot because they contain infinitely many harmonics.
13:25:03 <CakeProphet> which makes them ideal for subtractive synthesis. Applying filters to a pulse wave lets you "sculpt" different timbres.
13:25:25 <quintopia> indeed, one-bit music and one-bit symphony consist entirely of square waves
13:25:38 <CakeProphet> lol... one-bit music?
13:25:55 <quintopia> one bit per channel
13:26:02 <quintopia> per sample
13:26:23 <CakeProphet> everything would have a constant amplitude...
13:26:28 <CakeProphet> of 1...
13:26:37 <CakeProphet> or .5 even
13:26:47 <CakeProphet> depending on how you measure these things.
13:26:48 <quintopia> sure
13:27:22 <quintopia> but perceived loudness is not a linear function of amplitude
13:27:28 <CakeProphet> indeed not.
13:27:30 <quintopia> in fact, it's a very complicated function
13:27:45 <CakeProphet> but it's hard to vary amplitude at all when you only have two values.
13:27:48 <CakeProphet> that's what I'm saying.
13:28:06 <quintopia> well, it's not only hard, it's impossible
13:28:15 <CakeProphet> ....well, yes.. that's what I was going for.
13:28:16 <quintopia> but perceived loudness you can play with if you're good
13:28:25 <CakeProphet> I suppose it would rely on frequencies then.
13:29:07 <quintopia> mmm
13:29:27 <CakeProphet> http://en.wikipedia.org/wiki/File:Perceived_Human_Hearing.png
13:31:37 <quintopia> i've seen that
13:31:48 <quintopia> tha's the average threshold for pure tones
13:32:16 <CakeProphet> I think it's an equal-loudness contour. I don't think that's the same thing as threshold.
13:32:29 <quintopia> well
13:32:33 <quintopia> i've seen the full version
13:32:37 <CakeProphet> ah.
13:32:55 <quintopia> which has a lot of equal loudness contours, including the threshold, for pure tones
13:32:59 <CakeProphet> http://en.wikipedia.org/wiki/File:Lindos1.svg
13:32:59 <CakeProphet> this
13:33:17 <CakeProphet> I assume it applies spectrally as well. But that's probably not entirely accurate.
13:33:25 <CakeProphet> meaning that it applies to the pure tones in a complex tone.
13:33:52 <quintopia> but i'm certain that perceived loudness is far more a function of timbre than frequency
13:34:14 <CakeProphet> well yes, frequencies of the spectral components, not the pitch of the note played.
13:34:43 <quintopia> which is to say, even if two sounds were equal in total amplitude, the complex one might sound louder than the pure one
13:35:01 <CakeProphet> indeed.
13:35:12 <quintopia> *equal in summed perceived loudness over spectral components
13:35:53 <CakeProphet> I've always wanted to play around with granular synthesis. It generates some pretty rich timbres.
13:36:47 <quintopia> i have played aroud with it
13:37:17 <quintopia> btw i love that little bump on the contours right at the center of the human voice frequency range
13:37:54 <CakeProphet> oh, yeah. I didn't realize that's what that was.
13:38:11 <CakeProphet> that's certainly interesting. psychoacoustics in general is interesting.
13:38:30 <CakeProphet> Most of what I know about it I learned from "Computer Music: Synthesis, Composition, and Performance"
13:38:55 <CakeProphet> a good book to learn about signal processing in relation to music.
13:39:12 <quintopia> to be sure, i think it's exactly the frequency of a baby's crying :P
13:41:08 <quintopia> most of what i know about it i learned in electronic music history and computer music composition class
13:41:19 <CakeProphet> that sounds like an awesome class...
13:41:24 <CakeProphet> I don't think any school I've ever been to has that.
13:41:57 <CakeProphet> I wonder what purpose the second bump serves, in the higher ranges.
13:46:40 <quintopia> it serves to make applause a painful thing to hear
13:47:18 <quintopia> actually i'm reading this upside-down
13:47:46 <quintopia> what that says is that higher frequencies are suppressed and harder to hear
13:48:13 <quintopia> and that there is a bump in the middle of the human vocal range that is harder to hear
13:49:13 <quintopia> possibly to make it easier to tune out annoying children on airplanes
13:49:21 <quintopia> :P
13:52:11 <CakeProphet> haha
13:52:17 <CakeProphet> yeah we were both reading it the wrong way
13:52:44 <CakeProphet> lower frequencies are much harder to hear that, at a certain point.
13:52:58 <CakeProphet> presumably because they're so funky fresh.
13:53:03 <augur> chaitin-kolmogorov complexity. :T
13:59:23 <CakeProphet> three body problem.
13:59:46 -!- Sgeo_ has joined.
13:59:48 -!- Sgeo has joined.
14:00:03 <quintopia> http://en.wikipedia.org/wiki/Belt_(music) anatomy is hard
14:00:09 -!- Sgeo_ has quit (Client Quit).
14:06:43 <CakeProphet> talking to stupid people is hard.
14:06:51 <CakeProphet> I will have to do a lot of this today.
14:09:22 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:09:37 <quintopia> i sawwy
14:38:44 -!- copumpkin has joined.
14:47:14 -!- oerjan has joined.
14:51:47 <oerjan> <CakeProphet> yeah, so mueval gives a not a number exception when I call fromEnum on Char..
14:51:55 <oerjan> wat.
14:52:01 <oerjan> what command does that?
15:00:49 -!- zzo38 has joined.
15:01:10 -!- Vorpal has quit (Ping timeout: 250 seconds).
15:01:24 <zzo38> Do you know what happened stupid today?
15:01:51 <quintopia> people all over the world did tons of stupid things today
15:01:56 <zzo38> Yes.
15:02:03 <quintopia> is it a newsworthy event or something that happened to you
15:02:06 <zzo38> But not what I am refering to.
15:02:19 <zzo38> I was helping someone with Yahoo! Mail.
15:02:32 <zzo38> It switched the new one there seems no way to switch back.
15:02:40 <zzo38> The new one doesn't even work properly.
15:03:36 <zzo38> But I managed to fix it by setting the general.useragent.override option on their computer temporarily and then it displayed a message "Your browser does not support Yahoo! Mail. * Switch to classic temporarily * Switch to classic permanently"
15:03:47 <quintopia> ha
15:04:14 <zzo38> So I pushed "* Switch to classic permanently" and then removed the general.useragent.override option and that fixed it. Now all the messages are available again.
15:04:48 <zzo38> But it seems Yahoo! acting stupid trying to force everyone to use the new one
15:09:57 -!- dell has joined.
15:10:12 -!- dell has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any integer greater than 1. ... Rule $n$: Ignore all rules $n$*x where x is any integer greater than 1. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
15:10:18 -!- dell has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any integer greater than 1. ... Rule $n$: Ignore all rules $n$*x where x is any integer greater than 1. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
15:10:28 -!- dell has left ("Leaving").
15:10:35 <oerjan> huh
15:11:06 <oerjan> did anything change at all?
15:11:34 <zzo38> It doesn't seem different to me than how it was before.
15:11:48 <zzo38> I don't know what that was
15:13:45 <zzo38> What was the purpose of whatever just happened?
15:14:05 <oerjan> i don't know
15:15:17 <quintopia> i bet it changed something after the maximum topic length and then removed it
15:15:27 <oerjan> hm
15:16:43 <oerjan> i don't think our topic is anywhere near the maximum
15:17:17 -!- oerjan has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any integer greater than 1. ... Rule $n$: Ignore all rules $n$*x where x is any integer greater than 1. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.
15:17:55 -!- oerjan has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any integer greater than 1. ... Rule $n$: Ignore all rules $n$*x where x is any integer greater than 1. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
15:18:48 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:20:09 <quintopia> maybe it put a lot of spaces before whatever it changed :P
15:21:19 -!- zzo38 has set topic: Rule #1: Follow all rules. Rule #2: Ignore all rules 2*x where x is any integer greater than 1. ... Rule $n$: Ignore all rules $n$*x where x is any integer greater than 1. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:28:15 <zzo38> The value of pi is the same regardless of the diameter of circles
16:30:24 <Phantom_Hoover> augur, that /r/askscience question about families of laws puts me in mind of Dedekind cuts for some reason.
16:32:57 <zzo38> "Haskell is way easier to optimize than C"
16:33:03 <zzo38> "Haskell is way easier to optimize than C"?
16:33:42 <zzo38> "Haskell is way easier to optimize than C"? I looked at LLVM and really it looks like the features of the LLVM make it possible to optimize in many ways (but probably some ways are not implemented yet)
16:39:17 <zzo38> When looking at LLVM it seems like there is some things missing.
16:52:56 <cheater_> zzo38, WRONG! read up on geometric defect.
16:58:04 <zzo38> What is geometric defect?
17:01:05 <Sgeo> Phantom_Hoover, what question? Link?
17:07:25 -!- monqy has joined.
17:07:41 -!- oerjan has quit (*.net *.split).
17:07:41 -!- pikhq has quit (*.net *.split).
17:07:41 -!- FireFly has quit (*.net *.split).
17:07:41 -!- cheater_ has quit (*.net *.split).
17:08:21 -!- pikhq has joined.
17:08:21 -!- FireFly has joined.
17:08:45 -!- Vorpal has joined.
17:09:04 -!- pikhq_ has joined.
17:09:08 -!- pikhq has quit (Ping timeout: 252 seconds).
17:14:03 -!- FireFly has quit (*.net *.split).
17:26:45 -!- TOGoS has joined.
17:26:50 -!- TOGoS has left.
17:27:43 -!- FireFly has joined.
17:29:07 <Phantom_Hoover> Sgeo, clicked away now; it's in his submission history, near the top.
17:29:26 <Sgeo> his?
17:29:40 <Sgeo> As in, yours?
17:30:42 <Sgeo> Or "the"?
17:30:47 * Sgeo is confused
17:31:07 * Phantom_Hoover is metaconfused.
17:33:33 <Sgeo> http://www.reddit.com/r/askscience/comments/he5fv/what_do_magnetic_field_lines_actually_represent/ whoever was replying to you deleted their comments :(
17:43:25 -!- dell has joined.
17:43:37 <Phantom_Hoover> Yeah, can't remember why.
17:43:49 <Phantom_Hoover> Who is this dell fellow
17:44:01 * Sgeo listens to all of Homestuck Vol. N albums
17:45:04 <dell> i think that if a high level language is to converted to a brainfuck code then the best method is to convert the HLL code into a bytecode(resembling asm like code) and after that the task would become easy
17:46:31 <dell> what do you think about it
17:46:33 <dell> ?
17:48:24 -!- Kustas has joined.
17:48:38 <dell> i am thinking to start a project which will convert python like language code to bf
17:48:41 <Sgeo> I know that there's a C-2-BF converter
17:48:52 <Sgeo> And a weird language called bfc
17:48:54 -!- Kustas has left.
17:49:12 <Sgeo> bfc uses an intermediate bytecode language, not sure about C-2-BF
17:49:20 <Sgeo> dell, if you'll find it fun, go for it!
17:49:33 <dell> i will have to peep into the code of C-2-Bf how does it do
17:49:46 <dell> Sgea:sure!
17:49:48 <Sgeo> I have no idea
17:50:08 <dell> about what
17:50:18 <Sgeo> How C2BF does
17:50:19 <Sgeo> http://esolangs.org/wiki/C2BF
17:52:18 <dell> this will be of much help
17:52:30 <Sgeo> BRB
17:54:09 <zzo38> I wonder,if, there might be some LLVM into Brainfuck compiler? I know there is a Brainfuck into LLVM compiler (it is included in the source code repository for LLVM)!
17:54:44 <dell> low level v machine
17:54:45 <dell> ?
17:54:47 <zzo38> Probably it would be more difficult than making Brainfuck into LLVM
17:55:11 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
17:56:14 <dell> you mean llvm assembly language?
17:56:52 <zzo38> There is already a program compiling Brainfuck to LLVM.
17:57:24 <zzo38> http://llvm.org/viewvc/llvm-project/llvm/trunk/examples/BrainF/
17:57:44 <dell> brainfuck to any language is pretty easy things gets messy when its the reverse
17:57:54 <dell> i made a bf to c compiler in 10 minutes
17:57:58 <dell> its very easy
17:58:42 <zzo38> Yes it is very easy to convert brainfuck into other codes, although doing optimiziation is a bit more difficult.
17:59:55 <zzo38> How well will LLVM optimize the code converted using the "BrainF" into LLVM?
18:01:10 -!- Phantom_Hoover has joined.
18:03:48 <pikhq_> dell: Doing it efficiently is hard.
18:04:52 <dell> not hard tooo hard
18:08:50 -!- pingveno has quit (Ping timeout: 258 seconds).
18:10:46 -!- pingveno has joined.
18:12:20 -!- azaq23 has joined.
18:14:59 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
18:22:49 -!- monqy has quit (Quit: hello).
18:23:08 <Sgeo> Why does Homestuck Vol. 3 put remixes right next to the originals?
18:23:35 -!- Phantom_Hoover has joined.
18:25:12 -!- dell has quit (Quit: Leaving).
18:28:00 -!- monqy has joined.
18:50:36 -!- jix has quit (Ping timeout: 260 seconds).
18:50:40 -!- jix has joined.
18:51:33 -!- iamcal has quit (Ping timeout: 246 seconds).
18:51:39 -!- iamcal has joined.
18:58:03 * Phantom_Hoover tires of juggling his Google accounts.
18:58:26 -!- iamcal has quit (Read error: Operation timed out).
18:58:30 -!- iamcal has joined.
19:24:33 -!- pikhq_ has quit (Ping timeout: 244 seconds).
19:24:49 -!- pikhq has joined.
19:25:14 <zzo38> How much money would you have to pay them to release the ADOM source codes? One million dollars? One billion dollars? One trillion dollars? One *ZILLION* dollars?
19:36:08 <monqy> one zillion is a lot of dollars
19:38:59 -!- cheater_ has joined.
19:41:46 -!- atrapado has joined.
20:25:14 <quintopia> http://wiki.eth-0.nl/index.php/LackRack this is wonderful
20:26:14 <Phantom_Hoover> Want one.
20:29:24 <quintopia> good news! it's only like €5!
20:29:57 <quintopia> probably less in sweden (though i suppose it'd be in SKK)
20:34:27 <olsner> why would ikea take slovak money in sweden? they don't even use it in slovakia anymore
20:51:40 <quintopia> what's the designation for swedish kronur?
20:51:57 <quintopia> SVK?
20:53:01 <zzo38> Play Pokemon card. The opponent manages to pick up five side cards but runs out of cards before being able to pick up the sixth side card, therefore losing.
20:59:55 -!- wareya has quit (Ping timeout: 252 seconds).
21:00:35 -!- azaq23 has quit (Quit: Leaving.).
21:04:47 -!- teuchter has quit (Ping timeout: 258 seconds).
21:09:47 <pikhq> quintopia: SEK
21:10:40 <pikhq> Also, I wonder why Sweden isn't on the Euro; it's treaty-bound to.
21:11:46 -!- TOGoS has joined.
21:11:50 -!- TOGoS has left.
21:12:16 <pikhq> *Admittedly*, given the present economic instability, it's understandable that nobody wants to dick with their currency at present.
21:14:57 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:16:12 <Lymia> zzo38, that's uncommon?
21:16:33 <Lymia> When playing Magic the Gathering, I've won more than once with very little life, or even 1 life left.
21:17:13 <Lymia> In the Pokemon TCG, such things seem even more likely with two decks around the same level facing each other.
21:18:03 -!- pikhq_ has joined.
21:19:15 -!- pikhq has quit (Ping timeout: 244 seconds).
21:20:24 <quintopia> Gregor: when did my little pony become so popular in youtube poopyness?
21:21:49 -!- wareya has joined.
21:22:36 <zzo38> Lymia: When I play it is not uncommon. Nothing to do with levels or with the deck, really. Really it is the opponent who is making bad choices. Such as, they might be unable to retreat. And if I don't attack, then they will not ever put another card up until it is too late.
21:22:52 <Lymia> I've heard that the latest My Little Pony cartoon is very very good.
21:23:20 <Lymia> zzo38, wait.
21:23:23 <Lymia> Runs out of deck cards?
21:23:29 <zzo38> Lymia: Yes.
21:23:33 <Lymia> Ah.
21:24:12 <Lymia> Usually when I see that happening, it's in Magic the Gathering, and it's quite intentionally caused.
21:24:43 <pikhq_> quintopia: Probably about the time that My Little Pony became popular amongst 20-something males.
21:24:53 <pikhq_> Man. Brazil borders France.
21:24:57 <zzo38> That is, at the beginning, you can attack and attach energies and prepare. In middle, just resist opponent and prevent them from retreating (such as by not attacking). Near the end, just do nothing. Usually the reason is due to opponent playing stupid.
21:25:01 <quintopia> which was when?
21:25:17 <Lymia> zzo38, I'm not too familiar with the Pokemon TCG
21:25:19 <pikhq_> quintopia: At most like a year ago?
21:25:26 <quintopia> hmm
21:25:27 <Lymia> I know the basic idea behind the rules, but not much else.
21:25:42 <Lymia> I'd love to pull out the big pile of cards I had from who knows when and bring it to my school.
21:25:52 -!- atrapado has quit (Quit: FIN).
21:25:54 <Lymia> "Let's figure out this game, and then beat the crap out of each other in it!"
21:26:06 <pikhq_> Apparently the latest cartoon has a writer that gives a fuck, which probably is a major factor. :P
21:26:15 <Lymia> I assume Zerg Rush does not work in Pokemon
21:26:34 <Lymia> pikhq_, hmm..
21:26:44 <zzo38> Lymia: You aren't familiar? I play both Pokemon and Magic. However, I don't know what Zerg Rush is.
21:26:45 <Lymia> Those demographics sound suspiciously like those of magical girl anime.
21:26:54 <Lymia> zzo38, Starcraft term.
21:27:09 <pikhq_> Lymia: Gaaah, that genre.
21:27:28 <zzo38> I don't know about Starcraft. What is Zerg Rush?
21:27:35 <Lymia> zzo38, what the zergs do.
21:27:51 <pikhq_> In case you can't tell, I am not a fan.
21:27:52 <Lymia> In Magic, I do believe White Weenie is quite close in execution.
21:28:00 <Lymia> pikhq_, it is quite clear.
21:28:09 <Lymia> Fans are inanimate objects, and cannot use IRC.
21:28:40 <zzo38> When I do play Pokemon TCG, I have adapted it to Limited format, as well as modifying a few of the rules for who goes first and for ties and a few other rules.
21:28:40 <pikhq_> Lymia: However, they can kill people in the Republic of Korea.
21:28:50 <Lymia> pikhq_, oh.
21:28:52 <Lymia> :(
21:28:59 <pikhq_> :P
21:29:29 <Lymia> I still have more than one anime left on my list of "things to watch"
21:29:38 <zzo38> Such as, the number of cards in your deck can be any number as long as it is a multiple of ten and both players must have the same number of cards in their deck, and the number of initial side cards (also same for both players) is one tenth of your deck.
21:29:43 <Lymia> Several of these are magical girl anime. I think you wouldn't like this very much.
21:29:59 <pikhq_> Not generally.
21:30:19 <Lymia> zzo38, dunno Pokemon that much.
21:30:31 <Lymia> I assume "mill" and "stall" are not valid strategies?
21:30:36 <zzo38> I use the old rules rather than the new ones in general, with changes.
21:30:45 <Lymia> (Well, the second might actually work)
21:31:43 <zzo38> Lymia: Mill and stall are possible in Pokemon but more difficult to do. Mill is difficult but there is one card that can help you to do it. Stall is easier but still requires some tactics and things to consider.
21:32:54 <zzo38> I also use the rule that whoever has the active card with the lower level at the beginning of the game (Clefairy Doll is treated as zero) plays first, if they are not the same level.
21:33:40 <Lymia> I prefer to use the rules as written, and respond to unfun decks with even more unfun decks.
21:34:33 <zzo38> And for coin tosses, you can do Rock-Paper-Scissors; whoever win RPS is heads (whether they want it or not, but usually you do want heads); stalemates you try again. In case of tie, if it is during an attack, the attacker loses; otherwise it is a tie, and the tie stands (no sudden deathmatch).
21:35:42 <zzo38> Lymia: I have adapted it to Limited so that it is not a Constructed game, which means that deck construction is somewhat less important (you cannot bring your own cards).
21:35:58 <Lymia> zzo38, no fun.
21:36:19 <Lymia> One of my friends uses Earthcraft+Squirrel Farm for infinite tokens.
21:36:29 <Lymia> It's not exactly fair.
21:36:35 <Lymia> It is funny and fun.
21:38:02 -!- pumafyre has joined.
21:38:21 <zzo38> Lymia: Why do you think no fun? I prefer Limited play rather than Constructed.
21:38:46 <zzo38> (In fact I do not own any cards, so I am unable to play Constructed anyways.)
21:39:10 <Lymia> zzo38, because you can make decks centered around completely insane ideas.
21:41:33 -!- pumafyre has quit (Client Quit).
21:42:17 -!- pumafyre has joined.
21:42:50 <zzo38> (Actually I do have a few Magic: the Gathering cards, because you get to keep the cards you draft. I would prefer if the original owner (the store) kept them; even in ante I think all cards should be returned after the match.)
21:44:33 <zzo38> (And to allow some cards such as "Double Cross" (from Unglued) but they can only affect the current match. *Nothing* you do should affect any game outside of the current match, and any cards you purchase or whatever else you do before the match also should not affect the current match.)
21:57:17 <quintopia> hello
21:59:09 -!- pumafyre has quit (Quit: AndroidIrc Disconnecting).
22:03:33 -!- pikhq has joined.
22:04:17 -!- pikhq_ has quit (Ping timeout: 240 seconds).
22:08:57 -!- sebbu has joined.
22:08:58 -!- sebbu has quit (Changing host).
22:08:58 -!- sebbu has joined.
22:12:08 -!- sebbu2 has quit (Ping timeout: 255 seconds).
22:14:44 -!- elliott has joined.
22:14:44 -!- elliott has quit (Changing host).
22:14:44 -!- elliott has joined.
22:17:19 <elliott> Phantom_Hoover:
22:17:19 <lambdabot> elliott: You have 4 new messages. '/msg lambdabot @messages' to read them.
22:17:21 <elliott> oops
22:17:31 <elliott> that'll teach me to type p<tab>
22:26:03 <olsner> elliott: carpenters?
22:26:10 <elliott> olsner: yes.
22:26:25 <olsner> I still don't get it
22:26:58 <Lymia> EgoBot,
22:27:07 <Lymia> elliott, see, that's how you do it.
22:27:13 <Lymia> Type in the first letter, hold tab, press enter when ready.
22:27:25 <quintopia> EgoBot:
22:27:30 <quintopia> i got the same one
22:27:52 <Phantom_Hoover> elliott,
22:28:10 <Phantom_Hoover> I was hoping it would be EgoBot.
22:28:46 -!- SimonRC has quit (Ping timeout: 260 seconds).
22:29:15 <olsner> so, the icfp programming contest has started now
22:29:32 <Phantom_Hoover> ICFP?
22:30:06 <cheater_> olsner: wasn't there an icfp irc channel?
22:30:39 <olsner> there probably is
22:33:37 <elliott> http://www.guardian.co.uk/commentisfree/libertycentral/2011/jun/17/library-censoring-internet-hexham
22:33:43 <elliott> Hexham: exactly the same as China.
22:46:29 -!- SimonRC has joined.
22:46:59 -!- pikhq_ has joined.
22:47:14 <pikhq_> elliott: Working on implementing the changes you suggested a while back.
22:47:19 <pikhq_> Holy frak this makes things cleaner.
22:48:41 <elliott> ALL IT NEEDS NOW IS TO BE WRITTEN IN HASKELL
22:49:31 <pikhq_> elliott: Call me up when Haskell has a reasonable chance of even working on all architectures supported by Debian. :P
22:49:51 <Phantom_Hoover> elliott, it is indeed grim up North.
22:50:12 <elliott> pikhq: HUGS
22:50:14 <Phantom_Hoover> Until you get a bit more north, when suddenly it becomes Scotland and it's quite pleasant.
22:50:21 -!- pikhq has quit (Ping timeout: 260 seconds).
22:58:12 -!- pumafyre has joined.
23:00:46 <elliott> how many fires in the pumas pumafyre
23:01:24 * Lymia hugs elliott
23:01:28 <Lymia> DId you summon me?
23:01:29 <Lymia> Did*
23:01:30 <elliott> what
23:08:20 -!- elliott has quit (Remote host closed the connection).
23:08:23 -!- elliott_ has joined.
23:08:33 -!- elliott_ has quit (Client Quit).
23:08:33 <quintopia> i like that Lymia randomly hugs people hear. i feel like some of the people here don't get enough hugs
23:08:52 <Lymia> Where is hear?
23:09:37 <quintopia> it's a typo that i saw but was too lazy to comment on figuring everyone would get the point
23:09:42 -!- pumafyre has quit (Quit: AndroidIrc Disconnecting).
23:12:52 -!- elliott has joined.
23:19:46 <pikhq_> Bleck, I keep getting tempted to just add a custom object system to this sucker.
23:20:10 <pikhq_> And it'd be much saner to just pull in one instead.
23:20:31 <pikhq_> But I'd really prefer to not have non-trivial dependencies.
23:22:10 <quintopia> then pull it in completely and make it your own :)
23:22:35 <pikhq_> And ideally I could use a fairly small-footprint Tcl for this. I.E. one that's not going to provide the various Tcl 8.5 features I've been making extensive use of. :/
23:25:01 <pikhq_> Though, Tcl 8.5 should be fairly portable.
23:29:20 <pikhq_> Meh, I can probably rely on Tcllib.
23:30:40 -!- Patashu has joined.
23:31:05 <pikhq_> Okay, yeah, the official distribution works on WinNT, OS X, *-linux-gnu, Solaris, HP-UX, AIX, *BSD, OpenVMS, IRIX, OSF, SCO Unix, and UnixWare.
23:31:52 <pikhq_> I don't think I need to concern myself with depending on Tcl 8.5 or pure Tcl libraries.
23:33:49 -!- foocraft has joined.
23:36:38 <zzo38> How do you play "Went"? Is that similar to "Go"?
23:36:54 <zzo38> Or is just the stones similar except that it is magnetic?
23:47:55 <quintopia> you need time travel to play Went
23:57:38 <Sgeo> quintopia, linky?
23:59:34 <pikhq_> Good design is hard.
23:59:55 <elliott> pikhq_: I wouldn't bother making a generic object system yet.
2011-06-18
00:00:19 <pikhq_> elliott: Good design is still hard. :P
00:01:55 -!- pikhq has joined.
00:04:36 -!- pikhq_ has quit (Ping timeout: 240 seconds).
00:06:39 -!- pikhq_ has joined.
00:09:36 -!- pikhq has quit (Read error: Operation timed out).
00:22:05 * Phantom_Hoover → sleep
00:22:07 -!- Phantom_Hoover has left ("Leaving").
00:22:09 -!- Phantom_Hoover has quit (Quit: Leaving).
00:36:05 <pikhq_> Is there any sane way to test for ISO C89?
00:36:12 -!- Vorpal has quit (Ping timeout: 250 seconds).
00:36:32 <pikhq_> Feh, I suppose #if __STDC__ will do well enough.
00:39:01 <Sgeo> Going to start reading the Less Wrong Quantum Mechanics sequence
00:40:11 <elliott> if you die from an overdo-
00:40:15 <elliott> wait what that wasn't even a tylenol line
00:41:05 <Sgeo> All my Tylenol lines are now in a msg to myself, and I'll /nick to Sgeo first. ais523 being bothered by it bothered me.
00:42:34 <elliott> So what you're saying is... ais523 has the power to control your messages to the channel?
00:50:34 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:06:38 -!- FireFly has quit (Quit: swatted to death).
01:24:23 <Sgeo> http://lesswrong.com/lw/or/joy_in_the_merely_real/iuj?context=1#iuj I'm not sure which is stupider, the comment or the reply
01:49:50 <zzo38> Play chess against an opponent. You are white. Assign a permanent to each opponents piece, then opponent assigns a permanent to each of your pieces. Each piece must have a different permanent assigned to it. When a piece is captured, associated permanent is discarded. At end of chess game, if it ended in checkmate, permanent assigned to losers king is discarded.
01:52:16 -!- pikhq has joined.
01:54:18 <zzo38> You can test for both __STDC__ and __STDC_VERSION__ if you want C89.
01:54:36 -!- pikhq_ has quit (Ping timeout: 240 seconds).
01:54:47 <Patashu> sgeo: I love the reply
01:56:08 <zzo38> And if you want to avoid GNU89 then you can test for that too in some way.
01:56:37 <pikhq> zzo38: Fail. __STDC_VERSION__ was first added in C90.
01:56:58 <zzo38> pikhq: You can compare the value of __STDC_VERSION__
01:57:09 <pikhq> __STDC_VERSION__ does not exist in C89.
01:57:14 <pikhq> So, no you can't.
01:57:17 <zzo38> Then test it with #ifdef
01:57:29 <pikhq> ... Oh, wait, yes you can. The preprocessor treats undefined macros as "0".
01:58:14 <pikhq> Of course, testing for __STDC_VERSION__ won't help much when what you want is more of "at least C89" rather than "is precisely C89". :P
01:58:36 <zzo38> O, I thought you wanted to test for "is precisely C89".
01:59:18 <pikhq> At least as far as I understand, C99's additions are all undefined behavior in C89, so if you actually get caught by those then you're just doing things wrong.
01:59:49 <pikhq> And I have no desire to help people do things wrong.
01:59:55 <zzo38> No, there are some new reserved words, I think.
02:01:13 <pikhq> Oh, sure enough, C99 is not a strict superset of C89. :/
02:02:52 <pikhq> So, I should probably make a "c89" test which makes sure that what you have is precisely C89 (or C90, as its only real distinction *is* __STDC_VERSION__), and a "c" test which just tests for __STDC__. (I shall pretend K&R C does not exist)
02:04:04 <pikhq> Perhaps first I should get town to actually generate Tupfiles again, though. :P
02:07:56 -!- oerjan has joined.
02:10:47 <zzo38> OK. That can help.
02:12:02 <Lymia> http://i51.tinypic.com/350uuc5.png
02:12:04 <Lymia> Critical success.
02:12:16 <zzo38> And perhaps also "gnu89" to use the "gnu89" version (Clang also supports "gnu89" mode).
02:13:40 <zzo38> Lymia: What is that, anyways? What does the stuff on the screen means?
02:14:26 <oerjan> <pikhq> Also, I wonder why Sweden isn't on the Euro; it's treaty-bound to.
02:15:23 <oerjan> afaiu they are using technicalities to delay it until they actually want to, and no one wants to push them too hard?
02:24:54 <zzo38> Some of the GNU extensions that Clang does not support are ones that I don't think they even ought to have put in gcc anyways; they like to make GNU software too large in my opinion
02:25:27 <coppro> zzo38: try -fheinous-gnu-extensions
02:29:33 <pikhq> oerjan: I was asking for "why" not "how".
02:30:04 <pikhq> oerjan: "How" is pretty obvious; "exploit loopholes and watch as the EU doesn't care enough to call them on it".
02:30:20 <zzo38> coppro: What is that?
02:30:41 <coppro> zzo38: an excellent clang flag
02:30:53 -!- BeholdMyGlory has quit (Remote host closed the connection).
02:30:55 <oerjan> mhm
02:31:39 <zzo38> coppro: What does it do?
02:34:28 <coppro> zzo38: exactly what it says on the tin
02:34:44 <pikhq> zzo38: I think for GNU extensions I'll probably just have checks for individual GCC extensions.
02:35:05 <zzo38> pikhq: OK, do that, if it is how you want to do that.
02:36:16 -!- copumpkin has joined.
02:37:27 <pikhq> (as it's entirely feasible to use each and every GCC extension from -std=c89 or -std=c99)
02:40:09 <zzo38> Although perhaps it might be useful to have a macro called "gnu89" which tests for all the GNU extensions except the ones that are intentionally not supported in Clang.
02:42:16 <zzo38> (And "gnu99" for the similar thing)
02:48:34 <elliott> pikhq: Did you finish reimplementing MY REFORM yet? :p
02:48:40 <pikhq> elliott: No.
02:48:45 <elliott> WORK FASTER
02:49:01 <pikhq> elliott: I've been doing much more thinking about it than actual doing.
02:49:16 <elliott> leave the thinking to me
02:52:10 <pikhq> __attribute__ is such a misfeature.
02:52:56 <pikhq> Actually, all of GNU C's extensions are misfeatures, because they make it so damned hard to use portably.
02:53:21 <pikhq> They don't have preprocessor defines for each feature, it's all on __GNUC__.
02:54:19 <pikhq> So you can't do, say, #if __has_attribute((foo)).
02:55:30 <pikhq> Well. If it ignores unknown attributes, then if they were sane they could just make if #ifdef __attribute__...
02:56:22 <pikhq> But *no*. If any other compiler wants to actually support a single GNU C extension, they need to define __GNUC__ to make code actually use it.
02:56:43 <pikhq> And if GCC removes an extension, code breaks.
02:57:09 <pikhq> So. Fucking. Stupid.
02:58:09 <pikhq> Now, clang has the right idea. They have a preprocessor check for each and every one of their extensions.
02:58:37 <elliott> does clang even have clang-specific extensions
02:58:55 <pikhq> Yes.
02:59:03 <monqy> are they any good
02:59:14 <pikhq> Well, I think it's clang or OSX GCC extensions.
02:59:21 <pikhq> monqy: How do you feel about anonymous functions?
02:59:25 <monqy> <3
03:00:09 <pikhq> Oh, there's also C++ function overloading in C; you need to use __attribute__((overloadable)) for it to work.
03:01:29 <pikhq> Oh, and some extra builtins.
03:02:55 <pikhq> And you can *actually test for these things* in clang.
03:04:14 <pikhq> __has_builtin, __has_feature, __has_extension, and __has_attribute. GCC really, really, really needs them.
03:04:20 <pikhq> And I need a time machine to make it happen.
03:07:44 <elliott> *Main> runSym $ product [x,y,z]
03:07:44 <elliott> ((1 * x) * y) * z
03:07:54 <elliott> *Main> runSym $ product (map succ [x,y,z])
03:07:54 <elliott> ((1 * succ (x)) * succ (y)) * succ (z)
03:08:17 <elliott> unfortunately it's not all smiles and happiness
03:08:19 <elliott> *Main> runSym $ concat (map show [x,y,z])
03:08:21 <elliott> show (x)
03:08:38 <monqy> what happened there
03:09:33 <elliott> monqy: the whole system is based on exceptions
03:09:34 <elliott> because
03:09:47 <elliott> *Main> runSym $ product [x,y,z] == x+y
03:09:47 <elliott> ((1 * x) * y) * z == x + y
03:09:49 <elliott> (==) returns Bool
03:09:54 <elliott> so you can't do symbolic stuff with it, usually
03:10:06 <elliott> so instead, everything takes two arguments, runs them and catches special SymExceptions
03:10:12 <elliott> which it then extracts the value out of
03:10:17 <elliott> computes the symbolic expression result
03:10:18 <elliott> and throws that
03:10:28 <elliott> the problem is, functions which look at these arguments... trigger an exception
03:11:12 <monqy> what a lovely hack
03:11:35 <elliott> monqy: SINCERE OR NOT: a monqy special
03:13:46 <pikhq> http://www.youtube.com/watch?v=B5ZMDzh0EXQ
03:13:48 * pikhq WTFs
03:15:04 <monqy> nice truck there
03:15:37 <elliott> http://www.icfpcontest.org/2011/06/task-description-contest-starts-now.html this game looks fun
03:16:47 <zzo38> I have a foot-shooting list tell me of entries I don't have (they can be esoteric programming or not)
03:17:33 <elliott> two shoot urself in the foot... become a gansgata
03:19:17 <elliott> monqy: do you want to sign up to the zepto report, it is an irc-based reports of the most and most un- zepto of the land
03:19:20 <elliott> 99 dollars per square mile
03:19:53 <monqy> what land is this
03:20:13 <elliott> monqy: the inter - net land
03:22:46 <monqy> and what's a square mile
03:23:03 -!- Kustas has joined.
03:23:22 <elliott> monqy: u dont need two know...
03:23:34 <elliott> clA$$IFIED INFORMATION
03:23:39 <elliott> INFORMA$ION
03:23:59 <monqy> informasion
03:24:56 -!- Kustas has left.
03:24:58 <elliott> informinvasion
03:25:32 <monqy> goodbye kustas
03:26:20 <elliott> rip kustas
03:26:22 <elliott> warrior of zepto
03:28:38 -!- elliott_ has joined.
03:28:39 -!- elliott has quit (Read error: Connection reset by peer).
03:35:45 -!- PatashuPikachuRe has joined.
03:36:17 <elliott_> PatashuPikachuRe: omg
03:36:18 -!- augur has quit (Remote host closed the connection).
03:36:19 <elliott_> ur a pokemons
03:37:29 -!- Patashu has quit (Ping timeout: 276 seconds).
03:38:43 <pikhq> God *damn*.
03:38:51 <elliott_> pikhq: wat
03:39:10 <pikhq> North Korea has... Defeated Hitler, in terms of awful concentration camps.
03:39:19 <elliott_> i liked it before the comma
03:39:36 -!- PatashuPikachuRe has changed nick to Patashu.
03:39:38 <Patashu> this keeps happening
03:39:48 <elliott_> Patashu: i told you about pokemen
03:39:49 <elliott_> etc.
03:40:29 <coppro> imapokemons
03:40:35 <coppro> not one but many
03:40:48 <pikhq> They have camps where generations are punished. By which I mean "you will be here your whole life. Your children will be born here and die here. Their children will be born here and die here. And so on."
03:41:54 <Patashu> for this game: http://www.icfpcontest.org/2011/06/task-description-contest-starts-now.html what would an example strategy look like?
03:41:57 <Patashu> I've never done lambda stuff before
03:42:44 <elliott_> characterising the problem of playing the game as "lambda stuff" seems to imply to me a gap in experience too large to articulate the answer...
03:42:49 <elliott_> (not that I know what a decent strategy would be myself)
03:42:55 <elliott_> (I'd have to actually try it to know that :P)
03:43:00 <Patashu> :)
03:43:20 <monqy> maybe you should verse yourself up in lambda stuff first
03:43:33 <elliott_> I can't believe there are programmers who don't know the lambda calculus :(
03:43:43 <monqy> :'(
03:44:13 <zzo38> I have a foot-shooting list of "HOW TO SHOOT YOURSELF FOOT BY PROGRAMMING LANGUAGES".
03:44:35 <Patashu> I can see that if you're setting up a huge fuck-the-opponent-over function in a slot and your opponent gets it to 0 vitality then zombifies it
03:44:39 <Patashu> it'll activate and do the opposite
03:47:39 <oerjan> zzo38: such lists are _old_
03:47:56 <elliott_> oerjan: nss
03:48:04 <oerjan> wat
03:48:29 <elliott_> oerjan: no shit sherlock
03:48:38 <elliott_> ?hoogle cata
03:48:38 <lambdabot> No results found
03:49:36 <elliott_> where's the catas at
03:50:05 <elliott_> http://hackage.haskell.org/packages/archive/recursion-schemes/0.5.0.1/doc/html/Data-Functor-Foldable.html here dey are
03:50:10 <oerjan> look behind the zygohistomorphic prepromorphisms
03:51:10 <zzo38> oerjan: I know such lists are old but I have some new one too and want to add some new things if you have ideas. This can include new entries for programming languages that are already on there, entries for programming languages that are not on there, or entries for programming languages that did not exist at that time. It can be esoteric programming and/or not.
03:52:24 <oerjan> haskell: your program appears to prevent you from shooting yourself in the foot, until it suddenly runs unexpectedly out of memory
03:52:32 <elliott_> hmm, it's cataNat :: NatAlgebra a -> Nat -> a, right?
03:52:38 <elliott_> where type NatAlgebra a = (a, a -> a)
03:52:50 <zzo38> Thanks. That is one now I added it
03:53:12 <oerjan> yay
03:54:39 <elliott_> class Catamorphism a alg | a -> alg where
03:54:40 <elliott_> type Cata alg a
03:54:42 <elliott_> oerjan: spot the mistake
03:55:07 <oerjan> hm?
03:55:10 <oerjan> no idea
03:55:24 <elliott_> oerjan: hint: there are no typekinds
03:55:35 <elliott_> you supply the (type-level) _values_
03:55:46 <elliott_> so for any input number, there is only one valid (a, a -> a) pair
03:55:52 <elliott_> making this totally meaningless
03:56:05 <oerjan> if you say so
03:56:12 <elliott_> oerjan: ARE YOU DOUBTING ME
03:56:34 <oerjan> no, i am just not even remembering what a catamorphism is, much less in the type system
03:56:45 <elliott_> generalised fold / induction / recursion scheme
03:57:03 <oerjan> IF YOU SAY SO
03:57:22 <elliott_> type NatAlg a = (a, a -> a); cataNat (x,f) Z = x; cataNat alg (S n) = f (cataNat alg n)
03:58:10 -!- augur has joined.
03:58:16 <oerjan> missing for f
03:58:21 <oerjan> *binding
03:59:11 <elliott_> oerjan: yeah yeah
03:59:13 <elliott_> alg@(x,f)
03:59:23 * pikhq wonders why in the world Firefox sometimes causes the system to swap like crazy with 0 swap space used.
03:59:37 <pikhq> I should note that yes, it's actually swapping.
03:59:51 <pikhq> kswapd is shown to be working like crazy in iotop.
04:00:01 <elliott_> It's because Firefox sucks TRUE STORIES BY REAL PEOPLE
04:00:14 <oerjan> it's swapping into your hidden NSA disk
04:00:16 <pikhq> True, but not a good explanation.
04:01:26 <oerjan> the disk contains a satellite link to ECHELON
04:01:41 <oerjan> using top secret neutrino transmission
04:07:49 <elliott_> oerjan im starting to think that maybe you cant embed everything in a nice type system library
04:07:54 <elliott_> CRY.................
04:08:06 <elliott_> mostly I hate how type families arent first class :(
04:11:15 <elliott_> Nested type family application
04:11:15 <elliott_> in the type family application: Succ :$ ((Add :$ m) :$ n)
04:11:15 <elliott_> (Use -XUndecidableInstances to permit this)
04:11:17 <elliott_> oerjan im creying
04:12:23 <oerjan> what you cannot nest them?
04:12:28 <elliott_> apparently
04:12:33 <elliott_> the type family rules are some strict bullshit mon
04:12:45 <monqy> and what happens if you use -XUndecidableInstances
04:12:53 <elliott_> monqy: then..................a baby cries....
04:12:57 <elliott_> and that baby grows up to be... jesus
04:13:00 <elliott_> and dies on the... cross
04:13:25 <monqy> oh no
04:15:12 -!- oerjan has quit (Quit: Later).
04:16:22 <elliott_> data Map; data Map' f
04:16:22 <elliott_> type instance Map :$ f = Map' f
04:16:22 <elliott_> type instance Map' f :$ Nil = Nil
04:16:24 <elliott_> type instance Map' f :$ x :@ xs = (f :$ x) :@ (Map' f :$ xs)
04:17:51 <elliott_> Sgeo: yally is invading agora and trying to stop you preventing such evil
04:21:09 <Sgeo> o.O
04:22:32 <Sgeo> That does not look like an invasion.
04:22:35 <Sgeo> But thank you.
04:25:22 <elliott_> oh god youre not actually going to object are you
04:25:30 <elliott_> i fucking hate quorum raisers who never do anything
04:25:32 <elliott_> oh you did
04:26:35 <Sgeo> I should look up the quorum rules quickly
04:26:58 <elliott_> you should stop objecting to deregistrations of inactive people
04:27:00 <elliott_> even if those peoplre are you
04:27:30 <Sgeo> Should quorum count inactive people?
04:27:51 <elliott_> why should constantly-inactive people be players?
04:27:54 <elliott_> the mechanism is there for a reason
04:28:48 -!- foocraft has quit (Quit: So long, and thanks for all the fish!).
04:29:46 <Sgeo> Is quorum fixed at the start of voting period, or determined at end?
04:29:54 <Sgeo> Either way, I'm going to sleep now
04:32:08 <Sgeo> elliott_, *clap* *clap* *clap*
04:32:30 <elliott_> the mechanism still exists to be used, regardless of quorum rules
04:36:43 <coppro> elliott_: I would vote for a mechanism to deregister players forcibly who have been inactive for long enough
04:37:16 <elliott_> coppro: it should be without objection from people who aren't the player
04:37:28 <coppro> elliott_: or that
04:37:29 <elliott_> if someone is trying to exploit a lull in the game to become the dictator...
04:37:31 <elliott_> then that's no good
04:37:34 <elliott_> but yeah
04:37:38 <elliott_> people object to their deregistrations all the time
04:37:44 <elliott_> and its basically never justified
04:59:40 * pikhq gets really, really upset at the unused potential of the Super Gameboy.
05:00:59 <pikhq> Not only could you use the thing to stick SNES games on a Gameboy cartridge, you could use it to supplement the Gameboy game by drawing SNES sprites onto the screen.
05:01:20 <pikhq> There's precisely one example of either feature being used.
05:01:49 <pikhq> It's like Nintendo went "Fuck, let's design this totally awesome hardware and then NEVER USE ITS FEATURES".
05:05:28 <coppro> pikhq: lolgameboy->console devices
05:05:51 <pikhq> coppro: Yeah, but the Super Gameboy actually did it right, as far as hardware is concerned.
05:06:07 -!- yorick has quit (Ping timeout: 252 seconds).
05:06:14 <coppro> tbf I owned and enjoyed the game boy player
05:06:21 -!- elliott_ has quit (Read error: Connection reset by peer).
05:07:10 <pikhq> The Super Gameboy could have made Gameboy games look like native SNES games if the developers cared.
05:07:43 <pikhq> But no, they pretty much used it by adding a color pallete.
05:08:06 <coppro> marginal effort
05:08:06 -!- yorick has joined.
05:08:11 <pikhq> Yup.
05:08:35 <pikhq> Even the Pokemon games did more with it than most.
05:08:55 <coppro> also <3 Twilight Symphony
05:09:01 <pikhq> (simply by switching palletes for each area and having 3 palletes on screen in battles)
05:09:59 <pikhq> (in case you've not played Pokemon on a Super Gameboy or an emulator that emulates SGB palleting: the life bars each get their own palletes, and each Pokemon has its own pallete.)
05:10:33 <pikhq> (you can assign palletes to screen regions, with an 8x8 granularity)
05:12:20 <pikhq> Hmm. I think the Gameboy Player was *also* horribly underused...
05:13:25 <pikhq> At a minimum, the thing was capable of doing multiplayer in the normal way: with each player having their own controller.
05:14:01 <pikhq> Not to mention horribly underdesigned; it wouldn't have been hard to at *least* support SGB borders and palleting.
05:14:28 <coppro> yeah
05:14:52 <pikhq> (by doing the same trick that Gameboy emulators do for that; watching writes to the appropriate register and emulating those two features only)
05:15:21 -!- Lymia has quit (Ping timeout: 246 seconds).
05:15:46 <pikhq> And I wouldn't be surprised if that multiplayer trick was pulled off by letting you execute PPC code.
05:16:30 <pikhq> Making it definitely underused.
05:18:20 <coppro> the best was using it for download play off of another GCN game
05:18:24 <coppro> like Crystal Chronicle
05:18:28 <coppro> *Chronicle
05:18:43 <pikhq> ... Wouldn't that require two Gamecubes?
05:18:49 <coppro> yes. yes it would
05:19:21 <pikhq> Actually, with Crystal Chronicles, that'd be 1+N Gamecubes, where N is the number of players.
05:19:25 <coppro> I can't wait for the Wii U because two of my favorite GCN games were GBA-enabled ones
05:19:29 <coppro> ayup
05:19:54 <pikhq> The Wii U only supports a single Wii U pad, BTW.
05:20:08 <pikhq> All other controllers must be Wiimotes, as far as I understand.
05:20:44 <pikhq> And it doesn't do Gamecube compatibility, which makes me kinda sad.
05:20:51 <pikhq> It wouldn't be hard to do.
05:21:10 <pikhq> The only non-trivial hardware change would be making the disc slot handle the smaller discs.
05:23:53 <coppro> hrm
05:23:59 <coppro> they better have multiple wii u pads
05:24:08 <coppro> would be incredibly disappointed if not
05:24:21 <coppro> possibly a development restriction?
05:24:37 <pikhq> A "streaming 480p over Bluetooth" restriction.
05:24:44 <coppro> oh :/
05:25:21 -!- elliott has joined.
05:25:39 <coppro> tbh I'd be surpried if the king of multiplayer and proprietary lock-in was going to take such a weak technological restriction at face value
05:25:42 <elliott> i always feel like overcomplicated software is deliberately antagonising me
05:26:23 <pikhq> coppro: I think they're using Bluetooth primarily as a cost-cutting measure.
05:26:45 <elliott> 05:24:37: <pikhq> A "streaming 480p over Bluetooth" restriction.
05:26:47 <pikhq> Remember, though they love doing proprietary tech, the one thing they love more is making cheap hardware.
05:26:48 <elliott> pikhq: hmm, I suspect terrible compression
05:26:56 <elliott> bluetooth is horrible
05:27:02 <elliott> it's inadequate even for low-end headphones
05:27:29 <pikhq> Also, I'm not *sure* it's Bluetooth, I'm just guessing based on what I already know to be in the hardware.
05:27:49 <pikhq> (the Wii U *must* have Bluetooth, since that's what Wiimotes use)
05:29:19 <elliott> "Important: Many numerical values in the pattern editor are in hexadecimal notation, not decimal
05:29:19 <elliott> notation. If you would like to know more about HEX, please refer to the “About HEX” topic later in this
05:29:19 <elliott> guide."
05:29:20 <pikhq> elliott: Bluetooth "High Speed", which is barely used, gets you 24 Mbps. Which is at least *adequate*.
05:29:22 <elliott> i think renoise was designed by asking
05:29:34 <elliott> "what are the most pointless, unintuitive elements of the tracker aesthetic?"
05:29:41 <elliott> and maximising them in a new piece of software
05:33:36 <coppro> pikhq: someone should bring a sniffer to a game conference
05:33:49 <pikhq> Definitely.
05:33:52 <elliott> oh, renoise does samples in the stupidest way possible
05:33:59 <elliott> you assign a sample to a particular note value
05:34:01 <elliott> arbitrarily
05:34:07 <elliott> i think
05:34:19 <elliott> "Many values input into Renoise's pattern editor are hexadecimal (HEX). Because many beginners
05:34:19 <elliott> have problems with this fundamental concept, we will address that here.
05:34:20 <elliott> Most people are familiar with decimal because most people have 10 fingers. Instead, let's imagine we
05:34:22 <elliott> have 16 fingers - which, conveniently enough, comes in very handy for many musical concepts ;-)"
05:34:24 <elliott> oh my god are you actually going to try and teach me hex
05:34:34 <Patashu> loll
05:34:37 <pikhq> elliott: THAT IS AWFUL
05:34:43 <Patashu> so you have to type everything in hexadecimal
05:34:48 <elliott> I JUST WANT TO MAKE SOME SICK BEATS STOP DOING HORRIBLE THINGS TO ME
05:34:55 <elliott> <-- LITERALLY SOBBING
05:35:10 <elliott> WHY ARE THE PAN AND DELAY COLUMNS IN HEX
05:35:19 <elliott> THAT IS THE MOST ARBITRARILY THING EVER
05:35:21 <Patashu> hey guys
05:35:28 <elliott> FUCK THIS SHIT IM CLOSING RENOISE
05:35:29 <Patashu> let's take a human being who's immersed in decimal for their entire lifetime
05:35:36 <Patashu> and yeah that
05:35:50 <elliott> im just going to buy a casio sk1 and swear off all other sound-producing devices
05:35:56 <pikhq> If entering things in hex is an actually helpful UI feature, then they could just accept 0xFF-type syntax.
05:36:13 <elliott> you just don't understand pikhq... it's LEET
05:36:16 <pikhq> Rather than doing such a UI sin.
05:36:31 <elliott> pikhq: it's like a tracker, but modern, except not modern, you see
05:36:44 <elliott> http://www.renoise.com/files/screenshots/overview-261.png ;; this actually makes it look less horrific to use than it is
05:36:52 <coppro> crud
05:37:02 <elliott> what is it with audio software and being a steaming pile of shit
05:37:09 <elliott> its like the two concepts are intimately linked
05:37:12 <pikhq> elliott: What platform is that running on?
05:37:23 <elliott> pikhq: windows, but it looks mostly the same pretty much everywhere :P
05:37:28 <pikhq> If you name one I'm familiar with I will stab people.
05:37:34 <pikhq> Fuck, I'm stabbing people.
05:37:37 <elliott> i can even forgive the non-nativeness
05:37:38 <coppro> I've lost my supar-awesome keyboard shortcut :(
05:37:40 <elliott> i don't even give a shit about that
05:37:43 <elliott> its just unusable
05:37:52 <elliott> if its not shit like this
05:37:56 <elliott> its using actual knobs in a computer UI
05:37:59 <pikhq> It looks like it has decided to commit every UI sin.
05:38:00 <elliott> WHY WOULD YOU EVER DO THAT
05:38:01 <elliott> USE A FUCKING SLIDER OMG
05:38:15 <elliott> THEY HAVE THE WONDERFUL SIDE-EFFECT OF NOT MAKING ME WANT TO KILL YOUR FAMILY
05:38:26 <elliott> seriously, designing audio software to look like audio hardware is
05:38:28 <elliott> it's just
05:38:30 <elliott> if you ever do it
05:38:31 <elliott> i hate you
05:38:33 <elliott> irrevocably
05:39:20 <pikhq> http://homepage.mac.com/bradster/iarchitect/realcd.htm
05:39:31 <pikhq> Actually worse.
05:39:32 <elliott> that doesn't count as audio software :P
05:40:10 <elliott> guys, gimme one reason not to NIH all audio production software
05:40:17 <elliott> it is literally all the worst
05:40:27 <elliott> if other software is a steaming pile of shit
05:40:31 <pikhq> You will be forced to also NIH all audio handling APIs.
05:40:36 <zzo38> SoX is not bad.
05:40:38 <elliott> audio software collapsed under its weight and formed a black hole ten billion years ago
05:40:42 <elliott> zzo38: :)
05:40:45 <elliott> zzo38: you make me smile with your words
05:40:46 <pikhq> Even the *best* ones are very undocumented.
05:40:51 <elliott> i want to make an entire song with just SoX now
05:41:18 <pikhq> And ffmpeg's developers need to learn a thing or two about libraries.
05:41:24 <elliott> hmm, I remember Reason not being quite an entire steaming pile of crap last time I used it
05:41:28 <elliott> despite trying to look like audio hardware
05:41:30 <zzo38> Yes, SoX can make music, too. Both equal-temperament and just-intonation.
05:41:40 <pikhq> Namely, "FUCK YOU I DON'T WANT TO HAVE A FULL COPY OF YOUR SOURCE CODE IN MY SOURCE CODE. FUCK YOU FUCK YOU FUCK YOU."
05:41:51 <elliott> (i'm basically trying all the audio software that exists ever so I can complain about how much of a steaming pile of crap it is)
05:42:03 <pikhq> "INSTALL MOTHERFUCKING LIBRARIES IF YOU EXPECT OTHER PEOPLE TO USE IT YOU ANTI-DEVELOPER COCKS"
05:42:09 <pikhq> </rant>
05:44:37 <elliott> oh, i think Ableton Live's only sin that I remember was having knob controls
05:45:18 <pikhq> Still. Why would you ever want knob controls on a fucking computer?
05:45:33 <elliott> well... they're smaller than a slider i guess
05:45:36 <pikhq> My mouse moves in straight lines with ease. It does not go in circles easily.
05:45:46 <elliott> pikhq: oh, you can control them with straight lines usually
05:45:49 <elliott> by going up and down
05:45:55 <elliott> its just that on a widescreen up and down arent very natural directions
05:45:59 <elliott> and its reflected very weirdly in the knob spinning
05:46:02 <elliott> but
05:46:08 <elliott> i agree that the ones you actually have to go in a circle with
05:46:10 <elliott> are unforgivable
05:46:31 <pikhq> Also nice about a slider: they present bigger targets.
05:46:38 <pikhq> You don't want small targets.
05:47:01 <elliott> pikhq: see with *elliottmusicsoftware*, such a continuous selector of a range is an abstract object that can be represented however the user wants them to be, on a default + case-by-case basis
05:47:05 <pikhq> You don't want freakishly big ones either, but it should not be a painstaking exercise to click on your thing.
05:49:48 <elliott> pikhq: personally, my preferred replacement for knobs would be, visually, a circle with a coloured ring around the edge (knob-style :P) showing the current value, perhaps with the numerical value in the centre; but when you click it, it'd turn into a slider, with the current value of the slider aligned to the position of the cursor
05:49:56 <elliott> (horizontal slider usually)
05:50:33 <pikhq> elliott: With that, my only complaint would be non-nativenes.
05:51:00 <elliott> pikhq: yeah, but let's face it, "native" UIs don't exactly have a wealth of useful controls for things of this scale
05:51:27 <elliott> I mean, a piece of audio software completely following some HIG and using no non-native controls would ... probably not fit on any screen because of how huge everything would be
05:52:25 <pikhq> Well, yeah, I'm not going to complain much about it being non-native if it's working around OS deficiencies.
05:52:34 <pikhq> If it at least *looks* like it belongs there.
05:52:44 <pikhq> And is usable, of course.
05:52:53 <pikhq> If it's not usable then I reserve the right to beat you to death.
05:53:14 <elliott> I don't even care if all the controls look completely different, to be honest; in audio software, I'd say the situation is kind of opposite of a normal GUI app
05:53:22 <elliott> In that you have shitloads of controls that you don't want to stand out
05:55:07 <pikhq> Of course, the most important thing is to make it so people can use the software without wanting to stab the developers.
05:55:13 <pikhq> And audio software fails at this.
05:55:30 <pikhq> Things like "looking native" is a nicety on top of that.
05:56:03 <elliott> lmao, reason demo disables saving
05:57:50 <elliott> yeah it does suffer from total try-to-look-like-hardware-itis
06:00:25 -!- Kustas has joined.
06:01:26 <zzo38> The non-GUI audio software work better from what I can tell.
06:01:37 <elliott> yyeaaaaaaaaaaaaaah
06:01:42 <elliott> pikhq: http://i.imgur.com/GsdRl.png goifjgoidfg it hurts
06:01:49 <elliott> ok its actually not that bad apart from the visual noise
06:01:58 <elliott> also half the interface doesn't look like hardware at all
06:02:02 <elliott> so its only half a crime
06:02:55 <pikhq> *gag*
06:03:07 <Gregor> elliott: Is that a VST? :P
06:03:10 <pikhq> Do these people know *why* physical UIs look like that?
06:03:16 <elliott> Gregor: I think so?
06:03:18 <zzo38> Of course if it looks like hardware, it should be for a good reason, such as, it emulates hardware and acts like it! Otherwise it is a bad reason and it ought not to be looks like hardware it is bad thing to do that
06:03:23 <elliott> Gregor: I think Reason's interface is like...
06:03:29 <Gregor> All VSTs are "designed" by retards.
06:03:31 <elliott> Gregor: One half VSTs and mixers and the like
06:03:33 <elliott> Plus one half sequencer
06:03:41 <pikhq> zzo38: The thing is, hardware UIs are not intended for use with a pointer device.
06:03:42 <elliott> Gregor: But that's a global mixer thing so I don't think it's strictly a VST.
06:03:51 <pikhq> zzo38: They are meant for manipulation with actual human hands.
06:03:51 <Gregor> Ah
06:04:09 <elliott> Gregor: But here's the best part:
06:04:17 <pikhq> Completely different design considerations at hand here.
06:04:40 <elliott> (One second, screenshotting :P)
06:05:05 <elliott> Gregor: http://i.imgur.com/UlX2Q.png
06:05:11 <elliott> THANK YOU, REASON, FOR SIMULATING AN ACTUAL DECK
06:05:17 <elliott> I WOULD BE TOTALLY LOST WITHOUT THIS HELPFUL BACKGROUND IMAGE
06:05:39 <elliott> I SURE HOPE THE THREE LINES OF CODE AND THE THIRTY MINUTES IN PHOTOSHOP IT TOOK TO DO THAT WERE WORTH IT
06:06:00 <pikhq> THE WHITESPACE GOD THE WHITESPACE
06:06:09 <elliott> pikhq: wat
06:06:20 <zzo38> pikhq: Yes; true; but in a few (not all) cases, it might be useful to emulate a hardware and have it displayed on the computer screen. Not in all cases, though. (For emulating GameBoy it is not very useful, but in some cases it might.) (Also, you do not need to display the parts that have nothing to do with the emulation)
06:06:23 <pikhq> elliott: By "white" I mean "empty rack slots"
06:06:31 <elliott> pikhq: That's scrolled down to the bottom :P
06:06:43 <pikhq> elliott: SUCH A STUPID FEATURE
06:07:21 <elliott> YESSS IT COMES WITH A COWBELL INSTRUMENT
06:07:28 <zzo38> Why is there even a scrollbar? There is nothing there what is the use of that please
06:07:36 <elliott> zzo38: um there are more instruments above
06:09:04 <zzo38> There may be but then why is there a space with nothing that it scroll to? Doesn't usually the scroll bar should only scroll the length of what is there?
06:09:08 <Gregor> elliott: Bahahaha
06:09:16 <elliott> zzo38: Ask the Reason developers :P
06:09:58 <elliott> Gah, why is it even split vertically, it should be horizontal.
06:12:02 <zzo38> I don't know. SoX works fine, use that for audio.
06:13:51 -!- Kustas has quit (Quit: ChatZilla 0.9.86.1-rdmsoft [XULRunner 1.9.0.17/2009122204]).
06:15:57 <zzo38> Although I think some features ought to be combined ImageMagick with SoX. (At least it is possible to pipe ImageMagick to SoX (or vice versa), though.)
06:16:01 <elliott> loooooool
06:16:13 <elliott> oh my god it just kicked me out because i spent twenty minutes messing around
06:16:16 <elliott> thats actually awesome
06:16:18 <elliott> speed songwriting
06:18:01 <pikhq> zzo38: ImageMagick to SoX? Why would you do that?
06:18:12 <pikhq> (no, really. I am highly curious what use case that could have.)
06:18:25 <zzo38> I can find songwriting useful using MML (music macro language) based programs, such as PPMCK (I have made some improvements and bugfixes to PPMCK actually, including tail recursion)
06:19:27 <elliott> dammit, now I've started mentally designing elliottmusicsoftware :(
06:19:29 <zzo38> pikhq: Due to lack of effects in one program or the other. Represent the audio as a ...x1 grayscale image. And then use the various effects (some are useless for audio, some are OK for audio, and -fx is very useful for audio)
06:19:38 <zzo38> elliott: Can you write it down?
06:19:44 <elliott> zzo38: on irc?
06:19:46 <pikhq> zzo38: Strange.
06:20:18 <zzo38> elliott: No, on a text file in your computer and then sent to sprunge
06:20:28 <elliott> zzo38: boring :)
06:21:10 <zzo38> Then write it on paper and then put on a wood table and then take the picture and ensure the focus is good enough to read it and then ask someone else to type it into the computer for you.
06:23:06 -!- Kustas has joined.
06:23:36 <pikhq> And be sure to then uuencode and repeat the process.
06:26:39 <zzo38> pikhq: Other cases are for making Fourier transform, and many of the effects in ImageMagick are useful for audio, some of which SoX already has similar things. To me at least it would make sense to combine it in one program
06:30:12 <pikhq> Sounds like you're wanting a linear algebra program.
06:32:16 <elliott> pikhq: whoops, my audio software design just pulled in an entire lisp
06:34:16 <pikhq> elliott: Now it just needs to do mail.
06:34:54 <elliott> pikhq: write some network code to do IMAP, plug it into a text-to-speech object, voila!
06:35:41 <zzo38> The alpha channel can also have some uses for doing fading effects and stuff. Many effects in ImageMagick are already useful for audio, but just add a few more such as -echo and so on and then it should be very useful for audio. Stereo files can be represented by having like RED=LEFT GREEN=RIGHT for example.
06:36:41 <zzo38> While -density can be used for sample rate (where 1 second = 1 inch)
06:36:43 <elliott> come to think of it, I seem to have invented something that can implement Max/MSP as just a certain kind of object
06:36:59 <elliott> zzo38: inch? lol
06:37:35 <pikhq> zzo38: Like I said, you seem to want a linear algebra system.
06:38:15 <pikhq> Which is much like an audio or image or video manipulation system, but generalised.
06:38:27 <zzo38> pikhq: Maybe something like that.
06:40:50 <zzo38> elliott: It just seems convenient units to use due to the way the program already work
06:41:50 <monqy> what's an inch
06:42:10 <zzo38> 2.54 cenimetres
06:42:18 <zzo38> s/cenimetres/centimetres/
06:43:31 <monqy> specify digital images in terms of metres every day
06:44:25 <zzo38> What I might like to have for audio and music making program is something like METAFONT.
06:44:57 <pikhq> monqy: An "inch" is either 2.54 centimeters or 100/3937 meters. (latter definition exceptionally unused)
06:45:59 <zzo38> METAFONT is already one of the best program for font making, and I think a similar thing could be made working with musics somehow.
06:46:01 <pikhq> ("international inch" and "survey inch", respectively)
06:46:44 <monqy> right but I don't see how inches/metres are useful for digital imaging, aside from translation to/from physical images, unless that's what the command or whatever is for
06:46:58 <pikhq> monqy: He was proposing to use ImageMagick for audio manipulation.
06:47:17 <zzo38> monqy: The -density command in ImageMagick is used when you want to specify what resolution is used for printing this image.
06:47:25 <monqy> aha
06:49:38 <pikhq> *sigh* US customary units.
06:50:05 <pikhq> So terrible.
06:52:21 <zzo38> DVI units are specified in fractions of decimicrons, allowing for finer resolution than any printer has, as far as I know.
06:55:03 <pikhq> Quick, how many miles per gallon is a league per barony-gill?
06:55:16 <pikhq> (yes, that is a valid unit. League per barony-gill.)
06:56:35 <elliott> wow, (a = b) = c is valid in C++
06:56:37 <elliott> not in C, I don't think
06:57:21 <pikhq> Hmm. Doesn't (a = b) result in an lvalue in C?
06:57:41 <elliott> I don't think so
06:58:09 <monqy> what does (a = b) mean as an lvalue?
06:58:25 <pikhq> monqy: Presumably, same thing as a.
06:58:29 <pikhq> Anything else would be mad.
06:58:46 <monqy> anything at all would be mad
06:59:01 <pikhq> Fair enough.
06:59:04 <elliott> you decide with operator=
06:59:06 <elliott> YOU DECIDE
06:59:07 -!- Kustas has changed nick to derrik.
06:59:09 <elliott> you could return a global
06:59:16 <elliott> (a += b) -= c;
06:59:19 <elliott> could increment a by b
06:59:24 <elliott> then decrement aassoijdioajd by c
06:59:48 <monqy> I've always wanted to decrement aassoijdioajd by c
07:00:04 <monqy> in the same statement as incrementing a by b
07:01:37 <elliott> http://i.imgur.com/uBZOi.png WHY WOULD YOU EVEN DO THIS YOU ARE MAKING ME TURN OFF THE NO-SIDEBAR MODE YOU EXPLICITLY TURNED ON JUST SO I CAN GET TO THE FUCKING APPLICATIONS FOLDER AT LEAST PUT AN ALIAS TO IT IN THE DISK IMAGE GOD DAMN
07:02:26 <monqy> what kind of gimmicky installation mechanism is that
07:02:38 <elliott> monqy: its called standard os x installation
07:02:41 <monqy> or is it user friendly
07:02:41 <monqy> oh
07:02:46 <elliott> you download a disk image which contains a filesystem
07:02:50 <elliott> you mount the file system
07:02:58 <elliott> you copy the application files to your applications folder
07:03:03 <elliott> you unmount ("eject") the file system
07:03:07 <elliott> and then drag the disk image to your trash
07:03:12 <elliott> its ridiculous and terrible
07:03:38 <pikhq> And you can unmount it by dragging the filesystem to your trash.
07:03:47 <elliott> Ableton's free 30-day license enables the "Save" and "Export" functions, so you can experience making music with no holds barred. To activate your free license, enter your e-mail address below.
07:03:48 <elliott> i can hardly wait
07:04:06 <pikhq> And it's still better than Windows installation.
07:04:20 <elliott> but hey, apparently ableton integrates with Max?
07:04:27 <elliott> this is cool I guess
07:04:31 <elliott> big orgy of audio applications
07:05:05 <elliott> Max is the only well-designed audio application, in fact it's one of the best-designed programs I've used, but unfortunately I am too crappy to make nice sounds with it :(
07:07:43 <zzo38> I think some sort of METAFONT-like program would be good to make a music
07:12:23 <elliott> "Customize Live's color scheme and display size in the Look/Feel Preferences."
07:12:27 <elliott> pikhq: monqy: im thinking green on pink
07:12:59 <monqy> don't forget the yellow
07:13:27 <pikhq> elliott: How Gregorian.
07:28:29 <zzo38> "pad" in SoX is similar to "-border" in ImageMagick. "norm" is probably like "-auto-level". "reverse" is like "-flop".
07:29:22 <elliott> pikhq: help I accidentally invented the best everything
07:40:48 <elliott> pikhq: You know, it's not true that _all_ audio APIs are terrible or undocumented...
07:41:01 <elliott> pikhq: I bet Core Audio is quite nice.
07:41:59 <zzo38> Is it allowed in LLVM for a PHI node to return a label value? If so, can you then use that label in a branch instruction or other instruction?
07:43:22 <zzo38> (Including other PHI nodes)
07:43:28 <elliott> coppro might know
07:44:58 -!- monqy has quit (Quit: hello).
07:54:20 <zzo38> Is coppro on and available?
07:54:44 <elliott> he spoke fairly recently
07:55:08 <elliott> i.e. two hours ago it seems :)
08:05:41 -!- zzo38 has quit (Remote host closed the connection).
08:09:03 -!- derrik has left.
08:21:49 -!- Phantom_Hoover has joined.
08:32:50 <elliott> pikhq: Hmm... what's actually wrong with PortAudio?
08:33:37 <Gregor> PortAudio has backends for everything[1].
08:33:41 <Gregor> [1] everything important
08:33:54 <elliott> Gregor: I'm talking API, latency, etc. wise :P
08:34:41 <Gregor> I've only used PortMIDI, but if that's anything to go by, its API is "dump some bits here lulz"
08:35:24 <elliott> Gregor: As far as I can tell, my options are exactly twofold: Core Audio, which is reportedly excellent and should basically give me no actual _problems_, but which would restrict me to running things on an OS I don't use day-to-day (although considering Linux's terrible audio situation I probably would anyway), and which also apparently has a rather... horrific API; not in that it's /bad/, but in that it's ... you know ... flexible;
08:35:24 <elliott> and PortAudio, which would probably be less of a pain and which would be more portable but... might be bad inexplicably????
08:35:28 <elliott> Wow that was a long sentence.
08:35:31 <elliott> That... that was one sentence. Wow.
08:36:22 <Phantom_Hoover> elliott, oh god what are you trying to do.
08:36:22 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
08:36:27 <Gregor> Y'know, Linux's audio situation has improved enormously over the last few <time period>s.
08:36:42 <elliott> Gregor: You realise that the last few time periods have seen the RISE TO UBIQUITY OF PULSEAUDIO?
08:36:51 <Gregor> No Pulse on my system.
08:37:05 <Gregor> The ALSA mixing frontend is pretty much ubiquitous.
08:37:17 <elliott> Gregor: Doesn't matter, the average Linux audio situation has got WAY worse over any recent time period.
08:37:36 <Phantom_Hoover> elliott, ignoring PA, has it got worse?
08:37:40 <elliott> Even Ubuntu Studio which is fucking designed for multimedia uses Pulse.
08:37:50 <Gregor> In what sense is Pulse ubiquitous? I don't think I've ever seen it installed on any system.
08:37:54 <elliott> Phantom_Hoover: I don't actually know of any recent developments ignoring PA.
08:37:56 <elliott> Gregor: ...wow.
08:38:03 <elliott> Gregor: OK, first: See: any Ubuntu system.
08:38:08 <elliott> Or derivative.
08:38:15 <Gregor> OK, Ubuntu is shit, this is established truthiness.
08:38:27 <elliott> Gregor: It's also utterly ubiquitous, come on.
08:38:30 <elliott> Gregor: Then, see any Fedora installation.
08:38:37 <Gregor> Fedora too???
08:38:44 <elliott> I think so, yeah.
08:38:49 <elliott> Gregor: Wait, it's Poettering.
08:38:52 <elliott> Yeah, no chance Fedora is not using it.
08:39:13 <elliott> (Fedora is a distribution system for the GNOME project and Poettering Insanity Industries' latest products.)
08:40:13 <elliott> Gregor: Anyway, if you deny that "Ubuntu + every Ubuntu derivative + Fedora + Mandriva (I checked lol)" constitutes "ubiquitous", you're most definitely on crack.
08:40:33 <elliott> "PulseAudio is used in recent versions of several major linux distributions such as Fedora, Ubuntu, Mandriva, Linux Mint, openSUSE, and OpenWRT."
08:40:36 <elliott> Oh yeah, I forgot SUSE.
08:40:40 <elliott> And... uhh... OpenWRT...
08:40:40 <Gregor> Glad I use Debian.
08:40:45 <elliott> Gregor: DEBIAN IS NOT UBIQUITOUS >_<
08:40:54 <Gregor> Debian: The distribution that is literally always correct in every decision.
08:41:02 <Phantom_Hoover> What the hell does PA *do*?
08:41:06 <elliott> Phantom_Hoover: break things
08:41:12 <Phantom_Hoover> I have missed no functionality whatsoever without it.
08:41:26 <Gregor> Phantom_Hoover: Make your audio system slow, broken, wildly incompatible and very difficult to work with.
08:41:33 <elliott> Phantom_Hoover: You can't do per-application volume control without PA.
08:41:40 <elliott> Which is very useful, but this is more a deficiency of dmix than a pro of PA.
08:41:40 <Phantom_Hoover> elliott, ...that's it?
08:41:45 <elliott> Phantom_Hoover: No, that's one thing.
08:41:53 <elliott> HERP DERP ONE USER-FACING FEATURE = THE ENTIRE PRODUCT
08:42:06 <Gregor> It's a feature no one has ever used and no UI makes easy :P
08:42:14 <elliott> Gregor: Plenty of people use it
08:42:17 <Phantom_Hoover> elliott, I got "break things" and "break things" and one feature.
08:42:20 <elliott> And GNOME has a simple UI for it.
08:42:29 <elliott> Phantom_Hoover: You realise IRC is not your personal pro-con enumeration service.
08:42:52 <Phantom_Hoover> elliott, nor did I expect it; it's simply that I have no idea what it does.
08:43:15 <elliott> Phantom_Hoover: Basically, mixes audio.
08:43:37 <Gregor> Really the biggest problem with Pulse is that it became popular at the exact same time that it became irrelevant.
08:43:59 <elliott> Gregor: Anyway, ALSA can still be painful.
08:44:30 <elliott> OSS is far superior but its detachment from the kernel and its being under the complete control of a corporation which has done objectively Evil things prevents me from seriously considering it.
08:44:34 <elliott> (version four, that is)
08:44:48 <elliott> Gregor: What if every Linux distribution switched entirely to JACK tomorrow X-D
08:46:06 <Gregor> ... oh god why
08:46:41 <elliott> Gregor: I know exactly two things about JACK: Using it is a fucking pain, and everybody who does serious audio work on Linux appears to use it exclusively :P
08:47:04 <elliott> "In my opinion, JACK is notable, if only because it's almost impossible to do pro audio work in Linux without it." -- see, proved by Wikipedia talk page.
08:47:09 <elliott> The most reliable source.
08:47:23 <Gregor> What JACK provides, as far as I can tell, is extremely precise inter-application audio timing.
08:47:37 <elliott> Gregor: It makes da latency disapear.
08:47:46 <elliott> (The third thing I know about JACK !)
08:47:50 <elliott> [asterisk]JACK!
08:47:54 <Gregor> Well, yeah, it has low latency, but that's not really the point ....
08:48:01 <elliott> ;D
08:53:07 -!- Lymia has joined.
09:01:40 <elliott> pikhq: Oops I've designed the PERFECT SOFTWARE.
09:58:37 -!- choochter has joined.
10:06:18 -!- Vorpal has joined.
10:08:23 -!- sebbu2 has joined.
10:08:24 -!- sebbu2 has quit (Changing host).
10:08:24 -!- sebbu2 has joined.
10:11:07 -!- sebbu has quit (Ping timeout: 240 seconds).
10:49:14 <elliott> "A computer can not connect to itself and share its screen." --Apple, fascist
10:49:15 <elliott> "A computer can not connect to itself and share its screen." --Apple, fascists
10:49:30 -!- choochter has quit (Ping timeout: 255 seconds).
10:53:43 -!- Lymia has quit (Ping timeout: 250 seconds).
10:53:46 <Vorpal> <elliott> "A computer can not connect to itself and share its screen." --Apple, fascists <-- wait, what?
10:54:00 <Vorpal> what were you trying to do?
10:54:07 <elliott> VNC myself.
10:54:24 <Vorpal> elliott, oh, I guess linux allows that but with useless results
10:54:44 <Vorpal> well some vnc clients anyway
10:54:49 <olsner> or with useful results, if the screen is not on the computer you're connecting to
10:54:57 <olsner> it's a pretty useful thing to do really
10:55:04 <Vorpal> olsner, well duh, but it said "itself"
10:55:05 <Vorpal> here
10:55:08 <elliott> olsner: you could just VNC _directly_
10:55:10 <olsner> except if you happen to think "oh, connect to localhost? lol!"
10:55:12 <elliott> Vorpal: you don't understand
10:55:16 <Vorpal> elliott, oh?
10:55:20 <olsner> (when writing the vnc client)
10:55:32 <Vorpal> elliott, oh ssh tunnel?
10:55:36 <elliott> olsner: anyway, os x doesn't support any such x forwarding or the like, so it's irrelevant :D
10:55:43 <elliott> an ssh tunnel might work i guess
10:55:54 <olsner> ssh tunnelling is usually what I do when vnc:ing to localhost
10:56:17 <Vorpal> I only used vnc once I think
10:56:23 <Vorpal> I generally just ssh
10:57:37 <elliott> Gregor: Actually PortAudio's API is not quite "gimme some bits", it's fairly weird (but I understand common for high-performance audio frameworks)
10:58:04 <elliott> You basically have a callback function that is in charge of reading from input and writing to output and also it can't block much I think or shit will happen
10:58:35 <elliott> Before we begin, it's important to realize that the callback is a delicate place. This is because some systems perform the callback in a special thread, or interrupt handler, and it is rarely treated the same as the rest of your code. In addition, if you want your audio to reach the speakers on time, you'll need to make sure whatever code you run in the callback runs quickly. What is safe or not safe will vary from platform to platfor
10:58:35 <elliott> m, but as a rule of thumb, don't do anything like allocating or freeing memory, reading or writing files, printf(), or anything else that might take an unbounded amount of time or rely on the OS or require a context switch. Ed: is this still true?: Also do not call any PortAudio functions in the callback except for Pa_StreamTime() and Pa_GetCPULoad().
10:58:41 <elliott> jesus
10:59:21 <olsner> nice
10:59:38 <elliott> so basically... your callback should just read from your external buffer system :D
10:59:41 <elliott> and feed into it
10:59:44 <elliott> if you value your sanity
11:00:58 -!- azaq23 has joined.
11:00:59 <olsner> "<olsner> nice" <-- that should say "neat", obviously
11:04:59 -!- FireFly has joined.
11:05:00 <Vorpal> elliott, hehe
11:05:23 <Vorpal> elliott, but buffer introduces delay!
11:05:59 <Vorpal> sure for some stuff that is okay, but not for other things
11:06:21 <quintopia> explain why anyone would buy this
11:06:31 <quintopia> http://www.amazon.com/Bytecc-DisplayPort-male-female-Adaptor/dp/B002V3UCV6/ref=sr_1_fkmr0_3?ie=UTF8&qid=1308394187&sr=8-3-fkmr0
11:07:02 <Vorpal> quintopia, if they lack a VGA connector and need to hook up to a projector?
11:07:29 <Vorpal> quintopia, next question
11:07:34 <elliott> Vorpal: everything is buffered
11:07:35 <quintopia> oh, i was thinking it was VGA to VGA
11:07:40 <quintopia> i don't even know what displayport is
11:07:44 <Vorpal> elliott, yes but how large is the buffer?
11:07:48 <Vorpal> quintopia, the connector my laptop has
11:07:49 <elliott> thats for you to decide
11:07:54 <Vorpal> elliott, indeed
11:08:21 <Vorpal> elliott, anyway, with a dedicated circuit it might not be buffered
11:08:24 <Vorpal> ;P
11:08:26 <elliott> thats not software
11:08:30 <Vorpal> indeed
11:08:37 <Vorpal> unless you run on a DSP
11:08:57 <Vorpal> quintopia, displayport is better than HDMI btw
11:10:14 <quintopia> Vorpal: next question is where to get a vga monocular head-mounted display, preferably with optical see-through, at less than astronomical prices
11:10:34 <Vorpal> quintopia, ask Gregor for that
11:10:46 <Vorpal> quintopia, he messes around with wearable computing
11:10:52 <quintopia> kk
11:13:22 <Vorpal> quintopia, http://en.wikipedia.org/wiki/HDMI#Relationship_with_DisplayPort
11:16:22 -!- foocraft has joined.
11:19:59 <quintopia> nevermind. i know what gregor would say: rip out half of a myvu crystal
11:20:14 <quintopia> http://www.linux.com/community/blogs/how-a-wearable-computer-should-be.html he got a mention here
11:27:27 <elliott> Sgeo: Guess what didn't not just not not update.
11:28:21 * CakeProphet just got off work. What to do...
11:31:38 <CakeProphet> uh, sleep? I guess?
11:32:42 <CakeProphet> !perl print ('sleep','dont')[int(rand(2))]
11:32:44 <EgoBot> syntax error at /tmp/input.5097 line 1, near ")["
11:32:55 <CakeProphet> !perl print (('sleep','dont')[int(rand(2))])
11:32:56 <EgoBot> dont
11:35:42 -!- Lymia has joined.
11:45:32 -!- hiato has joined.
12:38:35 -!- foocraft has quit (Ping timeout: 250 seconds).
12:42:34 -!- elliott has quit (Remote host closed the connection).
12:44:42 -!- pikhq has quit (Ping timeout: 255 seconds).
12:44:43 -!- pikhq_ has joined.
12:44:51 -!- elliott has joined.
13:03:52 -!- WillMac has joined.
13:04:41 -!- WillMac has changed nick to Donato.
13:05:11 -!- Donato has changed nick to Guest6869.
13:05:37 <elliott> Guest6869: your many identities cannot hide the TRUTH
13:05:52 -!- foocraft has joined.
13:07:07 -!- Guest6869 has changed nick to Donat0.
13:08:33 <Donat0> what would that be
13:08:37 <Donat0> :P
13:12:28 <elliott> Donat0: precisely.
13:20:00 -!- BeholdMyGlory has joined.
13:49:07 <elliott> "I have come up with a new system of ridding the term "architect" from the information technology industry's repertoire. Considering it's illegal for someone to call themselves an architect without a license (in the construction industry anyways), these guys are breaking the law. They also do not do what we do and the term should be used exclusively to discuss the design and implementation of constructing a building."
13:49:13 <elliott> wjw
13:52:40 <Phantom_Hoover> wjw?
13:54:31 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
13:56:27 <elliott> Phantom_Hoover: wow just wow
13:56:45 <Phantom_Hoover> I wish this person the best of luck.
13:57:02 <elliott> other quality quote "An algorithm will never create a building that people love."
13:57:18 <Phantom_Hoover> I wish them all the luck. All of it.
13:58:11 -!- doxin has joined.
14:02:30 <doxin> how can this bf snippet possibly lead to an infinite loop: [->+>+<<] ?
14:04:46 <Phantom_Hoover> doxin, - wraps around in a lot of BF implementations.
14:05:59 <doxin> Phantom_Hoover: yes, but thats not even needed here, the first cell starts at 33, shouldn't the loop terminate after looping 33 times?
14:06:24 <Phantom_Hoover> It... should, yes.
14:07:06 <doxin> then why doesn't it?
14:07:20 <Phantom_Hoover> Don't know. Blame faries.
14:07:25 <Phantom_Hoover> Also fairies.
14:08:52 <doxin> >:I
14:08:55 <doxin> fudge
14:09:15 <Phantom_Hoover> I like that smiley.
14:09:26 <Phantom_Hoover> It puts me in mind of the fat pony from Hark, a Vagrant.
14:11:03 <doxin> oh fudge
14:11:07 <doxin> Phantom_Hoover: found the problem
14:11:28 <Phantom_Hoover> Mm, fudge.
14:12:19 <quintopia> i want some fudge
14:12:23 <quintopia> or ice creeeeeeam
14:12:35 <Phantom_Hoover> Sorry, we only have ice cream.
14:12:47 <Donat0> fuck
14:12:54 <quintopia> can has?
14:12:54 <Donat0> brb kundalini
14:12:56 <Donat0> lol!
14:54:36 <cheater_> hmm
14:54:48 <olsner> ridding the term "architect" from the information technology industry's repertoire <3
14:55:33 * Gregor 's new title is Software Architectural Engineer.
14:56:07 <olsner> Gregor: really? :/
14:56:37 <Gregor> Naw ... Software Systems Architect
14:57:23 <olsner> but then you're not even working on software, but systems of software?
15:09:17 -!- copumpkin has quit (Ping timeout: 244 seconds).
15:09:28 -!- copumpkin has joined.
15:21:25 -!- derrik has joined.
15:24:47 -!- doxin has left.
15:31:18 -!- ais523 has joined.
15:33:42 -!- SimonRC has quit (Ping timeout: 260 seconds).
15:36:51 -!- elliott has quit (Ping timeout: 258 seconds).
15:39:27 -!- monqy has joined.
15:51:08 -!- SimonRC has joined.
16:02:04 -!- azaq23 has quit (Quit: Leaving.).
16:07:21 -!- choochter has joined.
16:10:36 <Phantom_Hoover> What is it with the personality cult surrounding Tesla.
16:11:02 -!- SimonRC has quit (Ping timeout: 260 seconds).
16:11:04 <Phantom_Hoover> People honestly seem to think that he single-handedly beat the huge scientific progress we've made since.
16:17:39 -!- Donat0 has quit (Ping timeout: 264 seconds).
16:18:00 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
16:30:31 -!- Phantom_Hoover has joined.
16:35:03 -!- pikhq has joined.
16:35:03 -!- pikhq_ has quit (Ping timeout: 244 seconds).
16:40:43 -!- MigoMipo has joined.
16:45:45 -!- derrik has quit (Quit: left).
16:51:10 -!- Tritonio has joined.
17:10:12 -!- Sgeo has quit (Ping timeout: 255 seconds).
17:21:34 -!- SimonRC has joined.
17:24:48 -!- zzo38 has joined.
17:30:57 -!- Tritonio has quit (Read error: Connection reset by peer).
17:31:52 <quintopia> Phantom_Hoover: you clearly don't understand the true awesome of Tesla
17:32:15 <Phantom_Hoover> quintopia, you mean... pipping everyone else to the post on things?
17:32:36 <quintopia> this is a strange idiom. from whence did it come?
17:33:03 <Phantom_Hoover> Horse racing, apparently.
17:34:28 -!- augur has quit (Remote host closed the connection).
17:40:57 <olsner> hmm: "Population of Sweden: 9,354,462, number of registered Minecraft users: 9,404,180"
17:46:58 <quintopia> are you suggesting that there should be a minecraft exchange program so tha eventually the entire population of sweden is players?
17:50:13 -!- Sgeo has joined.
18:22:43 <zzo38> I have in foot-shooting file many things, incluidng some multiple entries for one programming language. Including:
18:22:51 <zzo38> * Shell scripts: aim -t `self --display foot` | xargs gun --shootat
18:23:27 <zzo38> * Pascal: The compiler won't let you shoot yourself in the foot.
18:24:00 <zzo38> * Linux: You shoot yourself in the foot with a Gnu.
18:24:29 <zzo38> * Haskell: You spend several hours creating a new copy of the Universe which is identical to the existing one except your foot has a hole in it.
18:25:41 <zzo38> Now I want to add in LLVM and INTERCAL and Befunge but I don't know what to type.
18:31:14 -!- augur has joined.
18:32:14 <zzo38> And also TeX.
18:32:15 <Deewiant> Befunge: You shoot straight up into the sky. The bullet instantaneously travels around the universe before hitting your foot from below.
18:32:28 <quintopia> INTERCAL: The compiler won't let you shoot yourself in the foot unless you use a crossbow andask really nicely
18:34:35 <zzo38> OK, I added both those things.
18:35:25 <Phantom_Hoover> Brainfuck: you get a lot of little bits of metal and have to build a gun with it.
18:36:24 <ais523> gah, I think I missed the start of the ICFP contest again
18:36:58 <quintopia> alternately: Brainfuck: you fire the gun. an atom of bullet disappears and lodges in your foot. repeat until original bullet is gone.
18:37:06 <zzo38> Phantom_Hoover: OK, I added that one as well.
18:37:31 <zzo38> quintopia: I added that too. Thanks.
18:37:43 <ais523> it seems to be some sort of competitive game based on combinator calculus
18:57:22 <quintopia> someone type some cyrillic at me
18:57:32 <quintopia> plox
18:57:52 <olsner> quintopia: can't you just get it on wikipedia?
18:58:07 <quintopia> no
18:58:17 <quintopia> but someone did it in another channel, so nvm
19:12:55 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
19:22:47 -!- Phantom_Hoover has joined.
20:22:04 -!- pikhq_ has joined.
20:25:57 -!- pikhq has quit (Ping timeout: 260 seconds).
20:36:42 -!- CakeProphet has quit (Ping timeout: 240 seconds).
20:37:24 -!- MigoMipo has quit (Read error: Connection reset by peer).
20:38:38 -!- CakeProphet has joined.
20:38:39 -!- CakeProphet has quit (Changing host).
20:38:39 -!- CakeProphet has joined.
20:44:51 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
20:45:51 -!- CakeProphet has quit (Ping timeout: 264 seconds).
20:47:14 -!- CakeProphet has joined.
20:47:15 -!- CakeProphet has quit (Changing host).
20:47:15 -!- CakeProphet has joined.
20:48:58 <pikhq_> ais523: Say, I'm noticing some issues with C-INTERCAL's build system.
20:49:04 <pikhq_> First and foremost: CFLAGS="$CFLAGS -lrt"
20:49:23 <ais523> which may not exist?
20:50:02 <pikhq_> True, but more importantly: that will put -lrt *before* any object files in the link line.
20:50:19 <pikhq_> Hence, the linker may very well decide to not actually use -lrt, since its symbols are unneeded.
20:50:27 <ais523> oh, hmm
20:50:38 <pikhq_> It should go in LIBS, and be prepended.
20:50:40 <ais523> I thought linkers didn't require topological sorts of their inputs nowadays
20:51:16 <pikhq_> GNU ld doesn't without -Wl,--as-needed.
20:53:11 <pikhq_> A POSIX-compliant c99 may, however, require this.
20:54:43 <pikhq_> Also, you seem to rely on POSIX facilities without defining _POSIX_C_SOURCE. Seeing as you're pedantic enough to use pax, I thought you might be pedantic enough to do that, too. :P
20:55:30 <ais523> good point, it's normally defined by the compiler but I can't rely on "normally"
20:56:35 <Vorpal> <pikhq_> GNU ld doesn't without -Wl,--as-needed. <-- most distros uses -Wl,--as-needed nowdays where possible
20:56:41 <pikhq_> Vorpal: Yup.
20:56:43 <Vorpal> saves on having to rebuild stuff
20:56:53 <pikhq_> Saves on package dependencies, too.
20:57:09 <pikhq_> Though it wouldn't be necessary if it weren't for libtool and misusage of pkg-config.
20:57:12 <Vorpal> pikhq_, btw that Pathscale compiler going open source, what license was it?
20:57:16 <pikhq_> GPLv3
20:57:18 <Vorpal> I should check it out
20:57:22 <Vorpal> got a link handy?
20:57:25 <Vorpal> or the name of it
20:57:26 <pikhq_> Not ATM.
20:57:30 <pikhq_> EKOPath
20:57:32 -!- Phantom_Hoover has joined.
20:57:33 <Vorpal> ah thanks
20:57:43 <Vorpal> pikhq_, how does it differ from their other compilers?
20:57:59 <pikhq_> Vorpal: Latest version!
20:58:04 <Vorpal> ah
20:58:30 <Vorpal> http://www.pathscale.com/ekopath-compiler-suite <-- this page fails so hard on unless I maximise the browser
20:58:34 <Vorpal> I'm on a laptop
20:59:10 <Vorpal> what I can't find the FOSS variant there
20:59:26 <Vorpal> pikhq_, ^
21:03:43 <pikhq_> Have they seriously not linked to the source yet? WTF.
21:04:07 <pikhq_> ais523: Oh, and you don't use HAVE_STRTOL; either you should add a work-around for it or you should not test for strtol
21:04:21 <ais523> ah, well found
21:04:31 <ais523> originally that file was autogenerated, and the autogenerator made a few mistakes
21:04:34 <ais523> that must be one I missed
21:04:37 <pikhq_> Also, no idea why I'm nitpicking. :P
21:04:41 <ais523> thanks for the bug reports
21:04:47 <ais523> I like being nitpicked wrt that
21:05:11 <pikhq_> I figured you wouldn't mind, especially on a project that I know you're being pedantically correct about.
21:05:17 <pikhq_> I'm just not sure why I started doing so. :P
21:05:50 <ais523> pikhq_: note that I'm being pedantically correct about it because no other language is
21:05:56 <ais523> in order to make INTERCAL more unique
21:08:02 <pikhq_> Otherwise, you seem to have *overdone* the autoconf setup, but eh. You at least use autoconf correctly.
21:08:38 <pikhq_> And I'm willing to bet that it builds literally everywhere with a C89 compiler.
21:09:09 <ais523> pikhq_: I was toying with building it with a 16-bit C compiler=
21:09:12 <zzo38> What does -Wl,--as-needed means?
21:09:15 <ais523> I don't think it worked too well
21:09:49 <pikhq_> zzo38: Only link against needed libraries.
21:10:01 <pikhq_> ais523: 8086 C compilers don't generally handle compliant source too well.
21:10:07 <cheater_> ais523, are there any 8-bit c compilers?
21:10:23 <ais523> cheater_: almost certainly, but I don't have access to one
21:10:34 <ais523> although note that 8-bit C compilers still set int=16 bits if compliant
21:10:59 <cheater_> nice
21:11:06 <cheater_> what about 4-bit? 7-bit?
21:11:10 <cheater_> that would be fun to watch
21:11:45 <zzo38> It doesn't seem 4-bit or 7-bit computers are compliant with C, to me.
21:11:51 <zzo38> But I don't know for sure.
21:12:14 <pikhq_> cheater_: char must be at least 8 bits, and all other types must have a size that is an integer multiple of char.
21:12:30 -!- CakeProphet has quit (Ping timeout: 244 seconds).
21:12:43 <cheater_> pikhq_, why?
21:13:12 <zzo38> And a char must be one byte, also, I think. Am I wrong?
21:13:18 <pikhq_> cheater_: C standard says so.
21:13:31 <cheater_> yeah, but why?
21:13:34 <pikhq_> zzo38: No.
21:13:38 <Sgeo> Hmm, is OFFSystem/Offload as safe as it claims?
21:13:38 <lambdabot> Sgeo: You have 3 new messages. '/msg lambdabot @messages' to read them.
21:13:42 <pikhq_> cheater_: Because.
21:14:08 <cheater_> well then presumably if there's no real reason, someone COULD make a char less than 8 bits and get away with it
21:14:16 -!- CakeProphet has joined.
21:14:17 -!- CakeProphet has quit (Changing host).
21:14:17 -!- CakeProphet has joined.
21:14:18 <pikhq_> It saays "CHAR_BIT is the number of bits for the smallest object that is not a bit-field. CHAR_BIT must be at least 8."
21:14:58 <pikhq_> (this is according to C99+TC1+TC2+TC3, dated 2007, but undoubtedly exists in previous standards)
21:16:03 <pikhq_> Also, sizeof(foo) gets you a size_t which is the size of foo, in terms of the size of a char.
21:16:08 <zzo38> pikhq_: Therefore it must be one byte isn't it? So computers with less than 8-bit in one byte is not compatible with C. Computer that is not based on binary, I think also not compatible with C. (Although in both cases probably is compatible with Pascal, though.)
21:16:22 <pikhq_> zzo38: No, it can be more than 8 bits.
21:16:48 <pikhq_> zzo38: char could be 9 bits, 32 bits, 2^32 bits, or whatever else.
21:16:50 <zzo38> pikhq_: Yes it can be more than 8 bits, some computers have 1 byte more than 8 bits
21:16:53 <pikhq_> zzo38: Just so long as it's 8 or larger.
21:17:17 <pikhq_> zzo38: You could have a 2-byte char on x86.
21:17:17 <pikhq_> :)
21:18:08 <olsner> or how about 1-byte chars with 16-bit bytes :)
21:18:12 <zzo38> pikhq_: That doesn't seem proper to me to have 2-byte char on x86 (except possibly for some kind of emulation)
21:18:14 <pikhq_> cheater_: Also, SHRT_MAX and INT_MAX must be at least 2^15-1, LONG_MAX 2^31-1, and LLONG_MAX 2^64-1.
21:18:18 <pikhq_> olsner: Also valid.
21:18:36 <pikhq_> zzo38: It would be perverse, but it could be that way in a conforming C implementation.
21:18:49 <pikhq_> Erm, 2^63-1.
21:19:29 <zzo38> pikhq_: Are you sure it could be that way in a conforming C implementation? It doesn't seem correct to me because you get wrong address calculation
21:19:40 <pikhq_> zzo38: How would it?
21:19:52 <pikhq_> zzo38: There is no requirement that C pointers correspond to real hardware addresses.
21:20:11 <pikhq_> Though they must be castable to an intptr_t.
21:20:26 <pikhq_> There is no requirement that that cast be a trivial mapping.
21:21:18 <pikhq_> There is, indeed, no *requirement* that a C implementation has any simple mapping to hardware functionality.
21:22:07 <zzo38> O, then I suppose it could work. It still wouldn't seem sensible to me, though, except for the purpose of making emulation of something that requires that way.
21:22:18 <pikhq_> I'm not saying it would be sensible.
21:22:21 <pikhq_> I'm saying it could be done.
21:22:32 <pikhq_> Completely different thing.
21:22:33 <pikhq_> :)
21:22:37 <zzo38> OK it could be done I guess.
21:22:46 <zzo38> Yes I can see how it can be done.
21:22:58 <cheater_> is there C for lisp machines?
21:23:25 <zzo38> In this case then you could do it with computer with bytes less than 8-bits too but you would have to do something improper like this, to allow it to work.
21:23:29 <olsner> at least there were back when there were lisp machines
21:23:37 <pikhq_> cheater_: Pretty sure it was actually done.
21:23:52 <ais523> olsner: 1-byte char, 32-bit byte is common on DSPs
21:23:52 <pikhq_> zzo38: True. It would be perverse and nasty, but doable.
21:24:08 <ais523> because they can't easily address less than a 32-bit block
21:24:17 <ais523> and they have char = short = int = long
21:24:21 <ais523> which is also legal
21:24:43 <zzo38> Also C is not very well for computer that is not based on binary.
21:24:55 <pikhq_> Heck, it's even possible to have char=short=int=long=long long.
21:25:08 <ais523> pikhq_: but who uses 64-bit+ char?
21:25:16 <pikhq_> ais523: Someone who is crazy.
21:25:22 <ais523> zzo38: I think C89 actually insists that computers emulate binary if they don't use it internaly
21:25:23 <ais523> *internally
21:25:40 <olsner> jeez, the point is what is legal and what can be done, not what makes sense :)
21:26:13 <pikhq_> ais523: C99 seems to as well.
21:26:22 -!- CakeProphet has quit (Read error: Operation timed out).
21:26:26 <ais523> pikhq_: that doesn't surprise me
21:26:28 <cheater_> there's ternary c
21:26:30 <zzo38> ais523: Yes but it still would not work very well you could get a lot of problems in many cases.
21:26:30 <cheater_> or something
21:26:33 <ais523> no reason why they'd remove that insistence...
21:26:56 <pikhq_> It also mandates either sign and magnitude, two's complement, or one's complement signed integer arithmetic.
21:27:42 <Vorpal> pikhq_, oh it seems they put the code on git, but yeah where is the link to either source or binary download hm
21:28:13 <Vorpal> on github*
21:28:19 <olsner> pikhq_: I think that's new for C99, except for unsigned numbers that were always defined to work as-if they were two's complement
21:28:20 <zzo38> Many C programs can assume that all sizes have a maximum something like $2^x-1$ and that signed addition/subtraction works the same way as unsigned
21:29:07 <olsner> eh, I mean modulo 2^n for unsigned numbers, two's complement doesn't make sense in that context
21:29:56 <zzo38> Yes and modulo 2^n for unsigned numbers many C programs might assume that and fail to work correctly on computer that do not have that.
21:30:28 <olsner> if the computer doesn't have that, C requires it to emulate it for unsigned numbers
21:30:29 <Vorpal> <ais523> pikhq_: but who uses 64-bit+ char? <-- dsp possibly?
21:30:38 <pikhq_> I think it actually is valid to assume that the integer types are powers of two.
21:30:57 <ais523> 9-bit ints died out in practical use ages ago
21:31:02 <ais523> *9-bit chars
21:31:09 <ais523> and I don't think a non-power-of-2 size other than 9 has ever been seriously used
21:31:19 <pikhq_> As it does mandate a binary representation for them with value bits, padding bits, and a sign bit.
21:31:20 <zzo38> Yes of course you can make the C program compiled into the machine code for some other machine which is then emulated, if it is necessary to do so.
21:31:51 <pikhq_> ais523: I'm referring to them being able to store numbers that are one shy of a power of 9.
21:32:00 <pikhq_> 9-bit char would satisfy that.
21:32:11 <ais523> ah, hmm
21:32:23 <pikhq_> Erm, power of 2.
21:32:24 <pikhq_> XD
21:47:36 <Phantom_Hoover> augur, what is it you do with Agda, anyway?
21:49:02 <augur> Phantom_Hoover: science!
21:50:03 <Phantom_Hoover> augur, I thought your speciality was effectively the maths bits of linguistics.
21:50:39 -!- choochter has quit (Ping timeout: 264 seconds).
21:51:43 <augur> something like that
22:03:56 <Vorpal> pikhq_, ekopath just let me down: "warning: C99 inline functions are not supported; using GNU89"
22:09:18 <pikhq_> GAH FUCK THIS
22:09:30 <pikhq_> solvers({c c99}) apparently does not exist.
22:09:46 <pikhq_> However, solvers({c c99}) exists.
22:10:31 <olsner> pikhq_: I would suspect that there is some kind of bug at play
22:11:34 -!- quintopia has quit (Remote host closed the connection).
22:19:50 <zzo38> Vorpal: What is ekopath and what are you trying to do?
22:20:20 <olsner> ekopath is a compiler that was recently made free and posted on reddit
22:26:46 <zzo38> Can Checkout be used for audio and for graphics?
22:27:37 <ais523> zzo38: "yes", in the same sense that machine code can be
22:28:23 -!- quintopia has joined.
22:28:42 <zzo38> ais523: Not quite what I meant. I mean, is it reasonable to make it used in a GPU with some units used for audio, some for graphics, and some for other calculations.
22:29:13 <ais523> zzo38: I don't know, I'm not an expert on these kinds of things
22:29:22 <ais523> note that Checkout is classified as an esolang not a regular lang for a reason...
22:29:27 <ais523> you're better off using CUDA or something, I expect
22:34:03 <zzo38> ais523: However I want to use one that has Free software/open source, and with low-level access
22:34:19 <ais523> well, Checkout doesn't have any implementations at all
22:34:24 <ais523> so it wouldn't be very useful in that respect
22:34:44 <ais523> try looking at OpenCL, that's open source
22:34:55 <olsner> "the whole reason main goes into the djungle with the monkey is that the monkey should become main in the djungle, since main doesn't even exist in the djungle"
22:38:31 <zzo38> I mean I want to use one requiring no proprietary drivers, no specific kinds of operating systems or motherboards, etc. Such as, having the freely available and usable document for the machine code of the GPU and how to access it.
22:38:48 <ais523> zzo38: it'll be hard enough even to find a GPU like that
22:40:52 -!- fizzie has quit (Ping timeout: 244 seconds).
22:41:27 <olsner> (that was part of a question on how to implement coroutines (or something) in C, that started with "can I do malloc on a function pointer? I want to copy the stack to the heap so I can context switch within a struct")
22:52:27 -!- fizzie has joined.
22:55:37 <Gregor> My flight is delayed two hours, but at least it's the /last/ leg that's delayed :P
22:56:20 <pikhq_> Gaah.
22:56:27 <pikhq_> For $185,000, you too can have a TLD.
22:56:42 <pikhq_> Fuck you, ICANN. Fuck you.
22:57:08 -!- Patashu has joined.
22:57:17 <ais523> Gregor: IRCing from the airport?
22:57:22 <Gregor> ais523: Yup
22:58:25 -!- copumpkin has quit (Ping timeout: 244 seconds).
22:58:55 -!- copumpkin has joined.
23:01:29 <zzo38> I don't need any GPU driver, I don't want a GPU driver, what I want is the freely available and usable documentation for accessing it directly.
23:03:34 <pikhq_> Hmm. A sufficiently large company could buy a TLD, start using it exclusively, and then turn off caching and thereby *bring down DNS*.
23:04:08 <ais523> pikhq_: why would turning off caching do that? people not trying to visit their website wouldn't notice, right?
23:04:14 <zzo38> There is a document about "R600-Family Instruction Set Architecture". How well should that work?
23:04:17 <ais523> so all they'd do would be effectively to indirectly DOS themselves?
23:04:35 <pikhq_> ais523: The resolution would first go to the root server.
23:04:46 <ais523> oh, I see
23:04:59 <pikhq_> The root servers are not set up to be very beefy, because all they answer for is the TLDs.
23:05:06 <ais523> wouldn't the root server cache the TLD's location, though, regardless of the TLD's wishes?
23:05:17 <ais523> they'd be insane not to
23:05:18 <pikhq_> Not presently.
23:05:21 <ais523> ouch
23:05:31 <pikhq_> Presently, they pay attention to the requested caching time.
23:05:41 <pikhq_> As DNS should.
23:06:27 <pikhq_> Erm. Actually. The root server can't cache anything; it's servers calling to the root server that does the caching.
23:06:48 <pikhq_> You only cache results from your own DNS queries, and the root server does not make any.
23:19:38 <Lymia> pikhq_.
23:19:46 <Lymia> If they did that, the root servers would have to do something about it.
23:21:00 <pikhq_> Lymia: Yes, but in the short term DNS would be t3h fucked.
23:21:05 -!- foocraft has quit (Ping timeout: 258 seconds).
23:21:09 -!- foocraft_ has joined.
23:21:22 <Lymia> And that's how $COMPANY killed the internet.
23:22:04 <pikhq_> The DNS root servers are a point of relative weakness for the Internet. Stressing them is a bad idea.
23:23:29 <coppro> The root servers periodically are given updates to the root zone
23:23:36 <coppro> I don't know if it's done manually or automatically
23:23:39 <coppro> I'd hope manually
23:24:14 <Gregor> So, how many will Microsoft own by next year?
23:24:28 <Gregor> I'm thinking "microsoft" and "windows", maybe '
23:24:29 <pikhq_> coppro: Not going to be practical for much longer.
23:24:31 <Gregor> *maybe "office"
23:24:51 <pikhq_> At present, the root zone doesn't change often.
23:24:55 <Gregor> lulz open.office -> MICROSOFT OFFICE DURPADURPADOO
23:25:01 <pikhq_> Soon, the root zone could potentially change every hour.
23:25:32 <Gregor> For the time being it looks like there's a shitload of bureaucracy between initial signup and activation of a new TLD.
23:25:36 <Gregor> So "every hour" is a bit silly.
23:26:06 <pikhq_> Gregor: Still, compared with how much it changes now?
23:26:44 <Gregor> Honestly I can't imagine it increasing to more often than once every several months in the immediate future.
23:26:52 <Gregor> I doubt that the actual /updates/ will be a problem.
23:27:22 <pikhq_> It's still a fucking terrible idea.
23:32:05 <pikhq_> Not to mention that that's a freaking global namespace.
23:32:17 <pikhq_> There's very, very few things that are deserving of that.
23:32:49 <pikhq_> Heck, I'm only willing to excuse the .com, .org, etc. TLDs for being due to hysterical raisins.
23:32:53 <Gregor> Such as museum, cooperatives, the aerospace industry, and the US military.
23:33:03 <Gregor> *museums
23:33:04 <pikhq_> FUCK ICANN
23:33:18 <pikhq_> .museum is stupid. .coop is stupid. .aero is stupid.
23:33:27 <Gregor> Also NATO
23:33:37 <pikhq_> .nato was removed in '96.
23:34:14 <pikhq_> It's now nato.int.
23:34:19 <Gregor> Yeah yeah :P
23:34:35 <pikhq_> Just about everything should be a ccTLD.
23:34:46 <Gregor> What's so great about countries?
23:34:51 <Gregor> Why do they deserve that namespace?
23:35:06 <pikhq_> Well, *something* needs to be at the top of the namespace.
23:35:27 <pikhq_> And countries are a somewhat natural top-level for an international hierarchy.
23:35:49 <Gregor> It's not an international hierarchy, it's an extranational hierarchy.
23:36:16 <pikhq_> True, true. So. What hierarchy actually makes sense?
23:36:42 <Gregor> None; but that's my point, so long as it doesn't become the lulsy state of "highest bidder = top level", it's fine, if a bit chaotic.
23:36:59 <Gregor> Of course, since it IS in that lulsy state, whoops
23:37:51 <pikhq_> I'd argue that something like ccTLDs as the primary form of organization makes *more* sense than a general mish-mash. But ultimately, that doesn't matter.
23:38:02 <pikhq_> Because nobody's proposing that we make a TLD organisation that makes sense.
23:38:24 <pikhq_> They're just proposing "highest bidder = top level".
23:38:25 <pikhq_> *sigh*
23:40:06 <pikhq_> Fuck ICANN, and fuck the US for insisting on holding onto control over DNS.
23:40:35 <pikhq_> (remember, ICANN controls the registries because the US Department of Commerce says so!)
23:41:35 * Gregor luls at people who take things too seriously :P
23:41:50 <pikhq_> Gregor: ?
23:42:05 <Gregor> pikhq_: RELAAAAAAAAAAX
23:42:18 <Gregor> It's all irrelevant trivium.
23:43:10 <pikhq_> How so?
23:44:19 <Gregor> Paid TLDs are not the beginning of the collapse of modern civilization; or at least, if they are, they're only a part of greater things well beyond our control. Relax and enjoy the ride, stop fretting about silly decisions by silly people.
23:45:01 <ais523> there are more worrying things to be concerned with
23:45:23 <pikhq_> I'm more upset at the idea that these silly people can make decisions affecting, well, everyone.
23:45:51 <pikhq_> When they seem to be too silly to make decisions affecting themselves.
23:46:17 <Gregor> Bahaha, they delayed my flight again.
23:46:44 <pikhq_> Gregor: Where are you stuck at, anyways?
23:46:51 <Gregor> Pittsburgh.
23:47:45 <pikhq_> Ah, so you're waiting on an ultralong flight, then. "Fun".
23:48:06 <Gregor> Well, it's the last flight in my trip, so it kinda doesn't matter that much for me.
23:48:25 <pikhq_> True, it's not like you're going to be missing any flights.
23:48:53 -!- zzo38 has quit (Quit: Push all function of computer).
23:58:21 -!- newsham has joined.
23:58:48 <newsham> hi
23:59:11 <ais523> hi
2011-06-19
00:00:16 <newsham> playing SKI this weekend?
00:00:40 <ais523> no, I missed the start
00:00:48 <ais523> which is a shame, as I have a paper accepted for this year's ICFP
00:01:00 <ais523> and it'd be great to win the contest too
00:01:42 <ais523> the ICFP contest could really do with being advertised more /before/ it starts...
00:03:40 <newsham> :(
00:03:52 <ais523> are you playing it?
00:03:56 <ais523> I suppose I could help out and try to win that way
00:04:04 <ais523> but I'm really out of the loop as to how this year's challenge works
00:04:05 <newsham> i've been toying with the idea alittle but havent written a player
00:04:31 <ais523> at least it's properly functional this year, it often isn't
00:04:44 <newsham> well kinda.. impurely functional ;-)
00:05:08 <ais523> still functional
00:13:18 -!- olsner has quit (Quit: Leaving).
00:32:21 -!- evincar has joined.
01:11:33 -!- FireFly has quit (Quit: swatted to death).
01:13:16 <Gregor> BONJOUR!
01:13:19 <Gregor> From scenic Pittsburgh!
01:14:43 <pikhq_> Still delayed? Damn.
01:14:54 <Gregor> The pilot is coming from a flight from Atlanta which had to do an emergency landing due to a health emergency.
01:15:22 <Gregor> Presumably he is the only pilot working for Delta capable of flying a plane to Paris.
01:15:51 <Gregor> (OK, OK, to be fair you can't just shuffle pilots around randomly, that puts them thousands of miles out of their way :P )
01:16:23 <pikhq_> Clearly, we need Google to also automate flight.
01:16:51 <Gregor> Flights are already automatable, but the FAA says no :P
01:17:04 <pikhq_> Oh, yeah, and get a bridge across the Bering Strait.
01:17:34 <Gregor> And a bridge from Nova Scotia to Portugal.
01:17:52 <pikhq_> Well, it's actually not-crazy to do a bridge across the Bering Strait.
01:18:12 <pikhq_> Well, actually, 3 bridges.
01:18:39 <pikhq_> Two 25 mile bridges and one 2 mile bridge.
01:19:09 <pikhq_> Though longer than any other current bridge, it's not actually completely nuts.
01:19:33 <pikhq_> It helps that the Bering Strait is very shallow.
01:19:54 <pikhq_> (average depth of ~100 feet)
01:20:36 <pikhq_> Estimated cost, $105 billion.
01:20:51 <pikhq_> Absurd, yes. Doable, also yes.
01:21:06 <Gregor> Estimated traffic: 0.
01:21:27 <pikhq_> Actually, it'd probably be a very heavily used shipping lane.
01:21:47 <Gregor> The amount of /surrounding/ infrastructure required to make that feasible is staggering.
01:22:09 <pikhq_> And that's the actual problem. There's no roads or railroads on either side.
01:22:10 <Gregor> Neither Alaska nor Siberia are known for their roads.
01:22:21 <pikhq_> Though Russia's fixing that.
01:22:36 <pikhq_> (they actually want this to happen.)
01:24:26 <Gregor> Too bad they sold us Alaska!
01:24:32 <Gregor> And we don't care about giving it any infrastructure!
01:24:55 <pikhq_> Well, we could probably sell it back.
01:25:05 <pikhq_> On the condition they keep Palin.
01:25:15 <Gregor> YESSSSSSSSSSSSSS
01:26:01 <pikhq_> Hmm. It'd be much easier to hook up the infrastructure on the US side.
01:26:25 <pikhq_> A mere 500 miles, rather than 2,000.
01:26:54 <pikhq_> (yes, that's how much road would be needed on the Russian side)
01:28:24 <pikhq_> Possible downsides: cheap Chinese crap would be more so.
01:29:20 <Gregor> As well as the 500 miles of road, you'd have to build 20 McDonaldses, and the infrastructure to get people to their minimum-wage jobs at said McDonaldses.
01:29:34 <Gregor> Plus BP stations.
01:30:39 <pikhq_> Yeah, but private companies would line up to do that if they knew there was a major highway being built.
01:32:11 <Gregor> A major highway that's a major risk. We don't trust them Ruskies.
01:33:00 <Gregor> I'm just being a jerk here, of course :P
01:33:04 <pikhq_> :P
02:21:42 -!- Vorpal has quit (Read error: Operation timed out).
02:23:56 -!- CakeProphet has joined.
02:23:56 -!- CakeProphet has quit (Changing host).
02:23:57 -!- CakeProphet has joined.
02:35:39 -!- CakeProphet has quit (Ping timeout: 246 seconds).
02:45:56 -!- Sgeo has quit (Read error: Connection reset by peer).
02:46:32 -!- Sgeo has joined.
02:47:42 -!- CakeProphet has joined.
02:47:42 -!- CakeProphet has quit (Changing host).
02:47:43 -!- CakeProphet has joined.
02:48:02 -!- CakeProphet has quit (Client Quit).
03:12:34 -!- pingveno has quit (Ping timeout: 276 seconds).
03:14:01 -!- pingveno has joined.
03:47:24 -!- pikhq has joined.
03:50:02 -!- pikhq_ has quit (Ping timeout: 240 seconds).
04:23:50 -!- CakeProphet has joined.
04:23:51 -!- CakeProphet has quit (Changing host).
04:23:51 -!- CakeProphet has joined.
04:55:09 <cheater_> quick survey: who here has made a website that joined a webring, and was it a personal website?
05:17:22 -!- CakeProphet has quit (Ping timeout: 260 seconds).
05:23:40 -!- evincar has quit (Ping timeout: 264 seconds).
05:30:25 -!- ptaav has joined.
05:37:13 -!- evincar has joined.
05:56:59 -!- evincar has left.
06:11:02 -!- wareya_ has joined.
06:13:59 -!- wareya has quit (Ping timeout: 244 seconds).
06:49:52 -!- pikhq has quit (Ping timeout: 240 seconds).
06:49:55 -!- pikhq_ has joined.
06:50:43 -!- derrik has joined.
06:51:11 -!- derrik has left.
07:28:18 -!- choochter has joined.
07:59:31 -!- monqy has quit (Quit: hello).
08:08:52 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
09:10:38 -!- Phantom_Hoover has joined.
10:07:17 -!- sebbu has joined.
10:07:17 -!- sebbu has quit (Changing host).
10:07:17 -!- sebbu has joined.
10:09:03 -!- sebbu2 has quit (Ping timeout: 260 seconds).
10:45:50 <quintopia> cheater_: me, yes. when i was like 13.
10:57:12 <Phantom_Hoover> http://en.wikipedia.org/wiki/Operation_Uphold_Democracy
10:57:23 <Phantom_Hoover> Oh come on guys it's like you're not even trying with the propaganda.
11:01:50 <quintopia> who needs to try when you can swing the UNSC?
11:05:58 -!- olsner has joined.
11:07:09 <ais523> ooh, Debian's CLC-INTERCAL maintainer just claimed C-INTERCAL too
11:07:13 <ais523> so it's unorphaned again
11:16:44 <cheater_> quintopia, cool
12:19:49 -!- pikhq_ has quit (Ping timeout: 240 seconds).
12:19:53 -!- pikhq has joined.
12:24:22 -!- MigoMipo has joined.
12:52:50 -!- _foocraft has joined.
12:52:51 -!- FireFly has joined.
12:54:36 -!- foocraft_ has quit (Ping timeout: 260 seconds).
13:05:06 -!- pikhq_ has joined.
13:05:06 -!- pikhq has quit (Ping timeout: 260 seconds).
13:59:29 -!- cheater_ has quit (Ping timeout: 240 seconds).
14:15:41 -!- Vorpal has joined.
14:40:25 -!- cheater_ has joined.
14:51:19 -!- cheater_ has quit (Ping timeout: 240 seconds).
15:12:12 -!- ais523 has quit (Remote host closed the connection).
15:19:01 -!- perlmonkey has joined.
15:19:10 <perlmonkey> hello
15:19:42 -!- cheater_ has joined.
15:20:49 -!- pikhq has joined.
15:21:04 -!- pikhq_ has quit (Ping timeout: 250 seconds).
15:42:02 -!- oerjan has joined.
15:57:34 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
16:04:10 -!- nooga has joined.
16:09:53 -!- impomatic has joined.
16:09:56 <impomatic> Hi :-)
16:10:26 <oerjan> ho
16:18:05 <nooga> oh
16:18:12 <oerjan> ha
16:18:54 -!- monqy has joined.
16:23:39 <perlmonkey> hel-lo
16:26:47 <Phantom_Hoover> perlmonkey, hello are you a bot.
16:27:21 <perlmonkey> hello Phantom I am not a bot
16:27:40 <perlmonkey> I seek knowledge
16:27:52 <Phantom_Hoover> Well, you've passed the Turing test.
16:27:56 <perlmonkey> but more than knowledge, wisdom
16:28:01 <perlmonkey> thanks
16:28:03 <Phantom_Hoover> That count as wisdom?
16:28:07 <Sgeo> perlmonkey is from the distant future: the year 2000
16:28:27 * oerjan thinks the turing test has some grade slippage
16:28:32 <Sgeo> Well, hmm, that would have wroked beetter i perlmonkey was a bot really
16:28:49 * perlmonkey is doing research
16:28:58 <Phantom_Hoover> oerjan, yeah, it's a widespread problem.
16:30:06 <Phantom_Hoover> Back in my day you had to get X-rayed to pass.
16:30:23 <oerjan> ...i don't think that's in line with turing's intentions
16:30:36 <Phantom_Hoover> You can't deny, it works.
16:30:53 <oerjan> ...until someone starts making biological androids
16:30:57 <Phantom_Hoover> It separates the men from the bots.
16:34:15 <Phantom_Hoover> perlmonkey, what wisdom do you seek.
16:34:45 <perlmonkey> all of it
16:34:54 <Phantom_Hoover> We are greatly wise, and are familiar with every form of dicking around known to man.
16:35:06 <perlmonkey> :-}
16:35:10 <oerjan> yes we are big dicks
16:35:17 <oerjan> except Lymia
16:35:28 * perlmonkey is trying to enhance cognitive ability
16:35:39 <perlmonkey> to learn the wisdom better
16:35:44 <monqy> is lymia a big whatever girls have
16:35:57 <Phantom_Hoover> monqy, dunno, we never thought it polite to ask.
16:36:18 <oerjan> monqy: that's a very rude word you know
16:37:19 * perlmonkey is pursuing the line of reasoning that eating raw foods can improve cognitive function
16:37:45 <Phantom_Hoover> perlmonkey, well, it certainly makes you think about what you'd rather be eating.
16:38:19 * perlmonkey eats a banana
16:38:25 <oerjan> `addquote * perlmonkey is pursuing the line of reasoning that eating raw foods can improve cognitive function <Phantom_Hoover> perlmonkey, well, it certainly makes you think about what you'd rather be eating.
16:38:26 <pikhq> perlmonkey: Does there exist empirical evidence for the claim?
16:38:28 <HackEgo> 458) * perlmonkey is pursuing the line of reasoning that eating raw foods can improve cognitive function <Phantom_Hoover> perlmonkey, well, it certainly makes you think about what you'd rather be eating.
16:39:23 <perlmonkey> pikhq: that is what I would like to know, but i have seen convincing evidence that eating raw foods can dramatically improve health and wellbeing
16:39:51 <Sgeo> What sort of evidence?
16:40:19 <pikhq> Strange, considering that with a very large amount of foods, cooking serves to make nutrients more readily obtained.
16:40:35 <perlmonkey> i saw an experiment once on a random group of adults, some with health problems and some healthy, all were given raw foods only for 2 weeks under supervision
16:41:19 <pikhq> Any controls on that?
16:41:25 <perlmonkey> define controls
16:41:41 <Phantom_Hoover> perlmonkey, people on a normal diet.
16:41:45 <Phantom_Hoover> It's useless without them.
16:42:10 <pikhq> Comparing with a test of the null hypothesis. In this case, this would be comparing against a test of people on a normal diet
16:42:16 <coppro> Not even
16:42:30 <coppro> Comparing against people on a diet identical except that it is cooked
16:42:43 <pikhq> coppro: Okay, actually that would be a much better test.
16:42:44 <perlmonkey> no i think the test was to see what effect the diet change would have on this group of people
16:42:50 <coppro> To determine if the effect is the cooking, or the fact that certain foods are rarely eaten raw
16:42:57 <perlmonkey> not whether raw diet was effective over normal diet
16:43:07 <coppro> pikhq: actually, do one better; run three groups :)
16:43:40 <pikhq> coppro: Ah, yes. That's a good point. Lets you know if the change is a higher quantity of cooked foods or merely the change in foods, if any.
16:43:45 <pikhq> perlmonkey: Then it's a useless study.
16:43:46 <coppro> but, say, chicken is very rarely consumed raw. It can also be quite unhealthy.
16:44:21 <perlmonkey> the experiment was not so much concerned with trying to prove a raw diet is superior or provides any health benefits, although that was obviously expected and hoped in the findings, but the experiment was more about how the individuals coped on that diet and how they felt, how they performed
16:44:53 <perlmonkey> i wouldn't say it was useless and it wasn't a clinical study, just a social experiment
16:45:01 <pikhq> perlmonkey: See? Useless. The findings tell us nothing, except perhaps "a raw food diet won't kill you".
16:45:31 <pikhq> Which I don't think was very controversial.
16:45:31 <perlmonkey> well since you didn't watch the experiment or know the outcome out of it, that's rather an opinionated assumption
16:46:02 <Phantom_Hoover> perlmonkey, no, it's not.
16:46:08 <pikhq> The experiment *as described* simply is not a good one.
16:46:20 -!- perlmonkey has left.
16:46:28 <Phantom_Hoover> ...ragequit much?
16:46:29 <pikhq> *Aaah*, ignorance.
16:47:39 <coppro> mmmmm
16:47:48 <coppro> freshly cooked scientific method
16:51:22 <oerjan> bah obviously it's a proper experiment unless the subjects and experimenters don't _know_ who is eating cooked or raw food. double blind all the way!
16:51:27 <oerjan> *it's not
16:51:50 <pikhq> oerjan: I was omitting that simply because double blind seemed impractical in this scenario.
16:51:51 <oerjan> also ilari should have been here
16:52:03 <pikhq> :D
16:52:56 <coppro> double blind is definitely ideal
16:52:58 <coppro> but I agree with pikhq
16:53:26 <oerjan> also there was hopefully a good proportion of fungi *cackles evilly*
16:54:56 <oerjan> ideally the experimenters should not even know which result they want
16:55:15 <coppro> yeah
16:55:33 <coppro> if I were running this experiment, I have no obvious concsious bias
17:11:01 -!- impomatic has left.
17:15:41 -!- augur has quit (Read error: Connection reset by peer).
17:17:32 -!- augur has joined.
17:21:47 -!- zzo38 has joined.
17:33:38 -!- derrik has joined.
17:34:02 -!- derrik has left.
17:35:29 -!- pikhq has quit (Ping timeout: 240 seconds).
17:35:36 -!- pikhq has joined.
17:41:47 -!- CakeProphet has joined.
17:41:47 -!- CakeProphet has quit (Changing host).
17:41:47 -!- CakeProphet has joined.
17:43:20 -!- MigoMipo has quit (Ping timeout: 260 seconds).
17:57:02 -!- MigoMipo has joined.
18:18:23 -!- teuchter has joined.
18:18:23 -!- choochter has quit (Read error: Connection reset by peer).
18:18:52 <oerjan> `ls bin
18:18:53 <HackEgo> ​` \ addquote \ allquotes \ botsnack \ calc \ commands \ creatures \ define \ delquote \ esolang \ etymology \ fuck \ google \ imdb \ json \ k \ karma \ marco \ minifind \ paste \ pastenquotes \ pastequotes \ penis \ ping \ prefixes \ quine \ quote \ quotes \ rec \ roll \ runasperl \ runfor \ rungcc \ sayhi \ strfile \ swedish
18:19:24 * oerjan misses fungot
18:22:09 <Phantom_Hoover> fizzie is slacking.
18:46:05 -!- teuchter has quit (Ping timeout: 255 seconds).
18:49:09 -!- hiato has quit (Ping timeout: 240 seconds).
18:49:43 -!- hiato has joined.
19:03:34 -!- azaq23 has joined.
19:15:05 -!- KingOfKarlsruhe has joined.
19:28:18 -!- augur has quit (Read error: Connection reset by peer).
19:28:25 -!- augur has joined.
19:33:39 -!- augur_ has joined.
19:34:15 -!- augur has quit (Read error: Connection reset by peer).
19:36:32 -!- augur_ has quit (Read error: Connection reset by peer).
19:36:48 -!- augur has joined.
19:38:49 -!- augur has quit (Read error: Connection reset by peer).
19:38:54 -!- augur has joined.
19:40:48 -!- augur has quit (Read error: Connection reset by peer).
19:41:01 -!- augur has joined.
19:43:42 -!- augur has quit (Read error: Connection reset by peer).
19:44:00 -!- augur has joined.
19:48:05 -!- augur has quit (Read error: Connection reset by peer).
19:48:12 -!- augur has joined.
19:49:57 -!- pikhq has quit (Ping timeout: 240 seconds).
19:50:16 -!- pikhq has joined.
19:52:32 <zzo38> There is one thing in ImageMagick useful that SoX doesn't have, which is being able to put operations inside of ( ... ) to operate on a stack. It would be useful though.
20:25:06 -!- Sgeo_ has joined.
20:26:04 -!- Sgeo_ has quit (Client Quit).
20:29:57 -!- augur has quit (Read error: Connection reset by peer).
20:30:17 -!- augur has joined.
20:39:11 <zzo38> I have found something that seems to be wrong with SoX. The "synth" effect takes parameters "-j" and "-n", it says "-j" goes first but actually "-n" must go first if you use them together.
20:44:18 -!- sebbu has quit (Read error: Connection reset by peer).
20:45:05 -!- sebbu has joined.
20:45:06 -!- sebbu has quit (Changing host).
20:45:06 -!- sebbu has joined.
20:50:13 -!- augur_ has joined.
20:50:16 -!- augur has quit (Read error: Connection reset by peer).
20:51:51 <micahjohnston> is anyone interested in helping design a programming language?
20:52:10 <micahjohnston> it's a reactive language
20:54:09 -!- augur_ has quit (Read error: Connection reset by peer).
20:54:27 -!- augur has joined.
20:55:16 <zzo38> micahjohnston: Give examples. More information please.
20:57:05 <micahjohnston> zzo38: well, it's like purely functional language
20:57:06 <micahjohnston> s
20:57:25 <micahjohnston> zzo38: but all the values are extended across time
20:57:55 <micahjohnston> another way to think about it is
20:58:43 <micahjohnston> instead of thinking of functions as a sequence of instructions, think about them as circuits or networks of pipes through which values flow
20:59:22 <micahjohnston> zzo38: make any sense
20:59:23 <micahjohnston> ?
21:00:29 <Sgeo> micahjohnston, when elliott's here, I think he might want to talk abot this
21:00:45 <micahjohnston> Sgeo: ok, thanks
21:00:48 <Sgeo> @tell elliott talk to micahjohnston, e's interested in making a reactive languae
21:00:48 <lambdabot> Consider it noted.
21:01:17 <micahjohnston> I have a channel set up, ##tempus, for talking about it
21:06:36 -!- augur has quit (Read error: Connection reset by peer).
21:06:56 -!- augur has joined.
21:07:49 <oerjan> you can always expect some reaction from elliott
21:08:14 <Sgeo> lol
21:08:35 <micahjohnston> heh
21:08:40 <oerjan> |o|
21:08:40 <myndzi> |
21:08:40 <myndzi> >\
21:08:54 <micahjohnston> o7
21:08:59 <micahjohnston> \o\
21:08:59 <myndzi> |
21:08:59 <myndzi> /'\
21:09:06 <oerjan> wat
21:09:13 <oerjan> \o\
21:09:13 <micahjohnston> o7 is a salute
21:09:13 <myndzi> |
21:09:13 <myndzi> >\
21:09:23 <micahjohnston> |o/
21:09:23 <oerjan> myndzi: you have an error there
21:09:23 <myndzi> |
21:09:23 <myndzi> /<
21:10:46 <monqy> /o/
21:10:46 <myndzi> |
21:10:46 <myndzi> /`\
21:10:55 <monqy> well it seems to go fine that way at least
21:11:04 <oerjan> \o|
21:11:05 <myndzi> |
21:11:05 <myndzi> /<
21:11:10 <oerjan> \o\
21:11:11 <myndzi> |
21:11:11 <myndzi> |\
21:11:14 <oerjan> hm...
21:11:18 <oerjan> \o|
21:11:19 <myndzi> |
21:11:19 <myndzi> /|
21:11:31 <oerjan> seems it's broken for initial \
21:12:28 <oerjan> \o/
21:12:28 <myndzi> |
21:12:28 <myndzi> /|
21:12:34 <oerjan> erm not that one
21:12:42 <oerjan> \o|
21:12:43 <myndzi> |
21:12:43 <myndzi> |\
21:12:49 <oerjan> \o\
21:12:50 <myndzi> |
21:12:50 <myndzi> >\
21:12:54 <oerjan> \o\
21:12:55 <myndzi> |
21:12:55 <myndzi> >\
21:12:59 <oerjan> huh
21:13:02 <oerjan> \o/
21:13:03 <myndzi> |
21:13:03 <myndzi> /<
21:13:08 <oerjan> \o|
21:13:09 <myndzi> |
21:13:09 <myndzi> /<
21:13:21 <oerjan> \o\
21:13:22 <myndzi> |
21:13:22 <myndzi> |\
21:13:26 <oerjan> \o\
21:13:26 <myndzi> |
21:13:27 <myndzi> |\
21:13:30 <oerjan> \o\
21:13:31 <myndzi> |
21:13:31 <myndzi> /|
21:14:26 -!- _foocraft has quit (Ping timeout: 252 seconds).
21:14:45 <oerjan> only \ with a single space in front, so far
21:15:10 <oerjan> \o/
21:15:11 <myndzi> |
21:15:11 <myndzi> /|
21:15:18 <oerjan> \o\
21:15:18 <myndzi> |
21:15:19 <myndzi> /`\
21:15:28 <oerjan> \o|
21:15:29 <myndzi> |
21:15:29 <myndzi> |\
21:16:00 <oerjan> /o/
21:16:01 <myndzi> |
21:16:01 <myndzi> /´\
21:16:11 <oerjan> |o|
21:16:11 <myndzi> |
21:16:12 <myndzi> /|
21:16:24 <oerjan> ok any one with a single space, maybe
21:22:06 <Vorpal> <oerjan> /o/
21:22:06 <Vorpal> <myndzi> |
21:22:06 <myndzi> |
21:22:07 <Vorpal> <myndzi> /´\
21:22:07 <myndzi> |\
21:22:08 <Vorpal> that was off
21:24:09 <oerjan> hm... \o/
21:24:09 <myndzi> |
21:24:09 <myndzi> >\
21:24:14 <oerjan> hm... \o/
21:24:15 <myndzi> |
21:24:15 <myndzi> /´\
21:24:19 <oerjan> hm...\o/
21:24:20 <myndzi> |
21:24:20 <myndzi> /|
21:24:27 <oerjan> hm...\o/
21:24:27 <myndzi> |
21:24:27 <myndzi> |\
21:24:33 <oerjan> huh
21:24:41 <oerjan> hm...\o/
21:24:41 <myndzi> ¦
21:24:42 <myndzi> ´¸¨
21:24:45 <oerjan> wtf
21:24:49 <oerjan> hm...\o/
21:24:49 <myndzi> |
21:24:49 <myndzi> /<
21:25:22 <oerjan> hm... \o/
21:25:23 <myndzi> |
21:25:23 <myndzi> >\
21:25:33 <oerjan> hm... \o/
21:25:34 <myndzi> |
21:25:34 <myndzi> /|
21:25:39 <oerjan> hm...\o/
21:25:39 <myndzi> |
21:25:39 <myndzi> |\
21:25:44 <oerjan> hm... \o/
21:25:44 <myndzi> |
21:25:44 <myndzi> |\
21:25:48 <oerjan> hm... \o/
21:25:48 <myndzi> |
21:25:49 <myndzi> /|
21:25:52 <oerjan> weird stuff
21:26:02 <copumpkin> needs to be aware of my proportional font
21:26:52 <oerjan> um i'm testing a bug in it, if you are proportional then you probably cannot see that
21:29:19 <copumpkin> :P
21:29:24 <copumpkin> I know, just being silly
21:31:39 <pikhq> I think GCC wins an award for worst build system.
21:32:29 <pikhq> NO, LIBGCC. YOU SHOULD NOT LOOK IN /usr/lib. YOU ARE CROSS COMPILING. WHY WOULD THE CROSS LINKER UNDERSTAND THE NATIVE LIBRARIES. FUCK YOU FUCK YOU FUCK YOU.
21:32:32 <pikhq> ALSO, FUCK YOU.
21:33:58 <olsner> ALSO, DISENGAGE CAPS LOCK :)
21:35:31 <zzo38> This is one display hack: http://sprunge.us/QOMP
21:36:23 <pikhq> No, GCC is deserving.
21:36:51 -!- oerjan has quit (Quit: Good night).
21:44:47 -!- pikhq_ has joined.
21:45:50 -!- pikhq has quit (Ping timeout: 258 seconds).
21:46:32 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]).
21:59:09 -!- augur has quit (Remote host closed the connection).
22:04:29 -!- fizzie has quit (Ping timeout: 264 seconds).
22:08:28 -!- sebbu2 has joined.
22:08:28 -!- sebbu2 has quit (Changing host).
22:08:28 -!- sebbu2 has joined.
22:10:41 * Phantom_Hoover → sleep
22:10:42 -!- Phantom_Hoover has left ("Leaving").
22:10:45 -!- Phantom_Hoover has quit (Quit: Leaving).
22:10:56 -!- sebbu has quit (Ping timeout: 246 seconds).
22:12:32 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:15:39 -!- fizzie has joined.
22:23:21 -!- pikhq has joined.
22:26:24 -!- pikhq_ has quit (Ping timeout: 260 seconds).
22:27:30 <pikhq> So. It is a royal pain to get x86_64-unknown-linux-musl-gcc.
22:27:44 <pikhq> It is a 1 line patch to binutils and a 2 line patch to pcc to do the same.
22:27:56 <pikhq> gcc, worst compiler ever?
22:28:33 <pikhq> (1 line to make config.sub accept that, for binutils and pcc. 1 line to point pcc to the dynamic linker.)
22:36:31 <pikhq> Okay, okay, so I could just make it generate x86_64-pc-linux-gnu-gcc and edit the spec file a bit, but it's the principle of the thing!
22:51:32 -!- sebbu2 has changed nick to sebbu.
22:56:04 <zzo38> What are the just musical intervals 11/8 and 13/8 called?
23:03:52 -!- augur has joined.
23:21:26 <tswett> zzo38: Wikipedia says "lesser undecimal tritone" and "tridecimal neutral sixth", respectively.
23:25:36 <Sgeo> What's the idea that all mathematical structures that could house consciousness do?
23:29:49 <zzo38> tswett: Thanks I have found those now. (Actually soon after I asked I managed to find them, although I could not find them before).
23:30:16 <zzo38> Now I have all the intervals 8 to 16.
23:41:16 -!- foocraft has joined.
2011-06-20
00:03:52 <olsner> Sgeo: that'd be the idea that all mathematical structures that could house consciousness do
00:06:41 <olsner> http://mathworld.wolfram.com/TuppersSelf-ReferentialFormula.html :D
00:07:14 <Sgeo> Something something balloon Microsot something
00:08:40 <olsner> something something indeed!
00:11:58 -!- Patashu has joined.
00:13:57 <Gregor> Bonjour from actual Paris
00:14:19 <pikhq> Congrats.
00:16:36 <coppro> bonjour!
00:24:04 <zzo38> One card SCYTHER Lv23 has the translation "You can't use this attack during your opponent's next turn." That is certainly not the correct translation of the text.
00:26:37 -!- FireFly has quit (Quit: swatted to death).
01:03:48 -!- cheater_ has quit (Quit: Ex-Chat).
01:04:16 -!- cheater_ has joined.
01:35:33 -!- Vorpal has quit (Ping timeout: 250 seconds).
01:40:00 <quintopia> hello gregor
01:41:24 <coppro> zzo38: lol
01:50:27 -!- Lymia has quit (Quit: Bai~).
01:51:57 -!- augur has quit (Remote host closed the connection).
02:45:09 -!- BeholdMyGlory has quit (Remote host closed the connection).
02:45:34 -!- elliott has joined.
02:58:39 <elliott> https://support.mtgox.com/entries/20208066-huge-bitcoin-sell-off-due-to-a-compromised-account-rollback fun
02:58:39 <lambdabot> elliott: You have 3 new messages. '/msg lambdabot @messages' to read them.
02:59:24 -!- augur has joined.
03:25:29 <Patashu> I saw
03:25:32 <Patashu> bitcoin is hilarious
03:25:35 <Patashu> mtgox is hilarious too
03:25:44 <Patashu> in the interview they said they don't want to implement bcrypt or ssl certificates
03:29:51 <elliott> bitcoin seems fairly sound to me, i've no opinion on mtgox though
03:30:04 * pikhq is not quite sure why he started this
03:30:08 <elliott> pikhq: started what
03:30:43 <pikhq> elliott: Getting sabotage to a) build with a toolchain that proudly calls itself *-linux-musl b) uses the dynamic linker that was pushed to musl's git last night.
03:31:05 <elliott> oh it is working now? great
03:31:23 <pikhq> I suspect I'm going to hit a bug sometime, but yes, it works.
03:31:43 <pikhq> Well, I may have already. Perl's miniperl segfaulted.
03:32:09 <pikhq> But I'm just forcing that to link with -static so I can move on.
03:32:23 <pikhq> At a minimum, I know that gcc and its immediate dependencies pretty much works.
03:32:39 <pikhq> (modulo stage0, which I have still statically linked, for reasons of sanity)
03:34:00 <elliott> pikhq: don't dynlink everything :(
03:34:10 <pikhq> elliott: I'm dynlinking everything *simply to test that it works*.
03:34:46 <elliott> fair enough :P
03:35:07 <pikhq> If it weren't for that this would be a much easier task. :P
03:35:23 <pikhq> Just grab a sabotage install and munge the gcc spec file, rebuild musl, tada.
03:36:05 -!- azaq23 has quit (Ping timeout: 246 seconds).
03:36:23 -!- azaq23 has joined.
03:37:35 <elliott> pikhq: Where _is_ the gcc spec file in the source tree, btw?
03:37:45 <elliott> I could never find it.
03:40:02 <pikhq> elliott: It doesn't exist.
03:40:23 <pikhq> It's generated by gcc itself during install.
03:40:34 <pikhq> The configuration for what goes *into* it is in various header files.
03:40:57 <elliott> pikhq: >_<
03:41:10 <elliott> pikhq: Vaguely human-editable header files?
03:41:37 <pikhq> Very vaguely.
03:49:52 -!- augur has quit (Remote host closed the connection).
03:52:20 -!- elliott_ has joined.
03:52:21 -!- elliott has quit (Read error: Connection reset by peer).
03:53:48 <elliott_> Sgeo: hs
03:54:07 <Sgeo> ty
04:02:05 -!- augur has joined.
04:04:06 -!- elliott_ has quit (Remote host closed the connection).
04:04:46 -!- elliott has joined.
04:04:47 -!- elliott has quit (Changing host).
04:04:47 -!- elliott has joined.
04:04:51 <Sgeo> wb
04:07:45 <Sgeo> o.O at xkcd stupidity
04:08:21 -!- elliott has quit (Remote host closed the connection).
04:08:49 -!- elliott has joined.
04:09:00 <pikhq> The *fuck*?
04:10:22 -!- Wamanuz2 has quit (Remote host closed the connection).
04:11:41 <zzo38> If you have a DVD storing only Ogg video stream of Theora or Dirac in standard definition NTSC or PAL, including audio, but no menus or subtitles or filesystem etc, how much would fit on one DVD?
04:12:03 <pikhq> About as much as would fit on a normal DVD, TBH.
04:12:21 <pikhq> Theora's not notably better than MPEG-2, and menus, subtitles, etc. are fairly minimal overhead.
04:13:12 -!- Wamanuz has joined.
04:15:03 <zzo38> How well for Dirac?
04:18:01 <pikhq> Dirac has no good encoder ATM.
04:21:06 <zzo38> OK
04:21:47 <elliott> im a durrack
04:51:20 -!- Wamanuz has quit (Read error: Connection reset by peer).
04:52:17 -!- Wamanuz has joined.
04:54:06 -!- pikhq_ has joined.
04:55:23 -!- pikhq has quit (Ping timeout: 255 seconds).
05:00:03 -!- Wamanuz has quit (Read error: Connection reset by peer).
05:00:19 -!- Wamanuz has joined.
05:49:22 <pikhq_> So, I feel confident in saying "fuck Perl".
05:55:19 <zzo38> What is the difference in quality if the filesizes are kept the same?
05:55:25 -!- elliott has quit (Ping timeout: 240 seconds).
05:57:15 <pikhq_> I think it's a *slight* improvement?
06:01:22 <zzo38> OK. What format for audio is used in DVD standard for DVD video? Because, there is audio, too.
06:02:02 <zzo38> You also have to compare NTSC with PAL, Theora with Dirac, stereo with surround, etc.
06:04:41 <pikhq_> The valid audio formats are PCM (up to 6 channels, 24-bit, 48/96 kHz), AC-3 (48 kHz, up to 6 channels), DTS (up to 7 channels, 48/96 kHz), MP2 (up to 8 channels, 48 kHz).
06:05:43 <pikhq_> All of these options are, well, not noticably better than Theora. I think Theora's better, but with the bitrates used the distinction is negligible.
06:06:23 <zzo38> Theora doesn't do audio.
06:06:30 <pikhq_> Erm, Vorbis.
06:06:34 <pikhq_> I meant Vorbis.
06:07:17 <pikhq_> I get the feeling you're wondering "what's the best way of putting NTSC or PAL video on a DVD-ROM disc?".
06:07:43 <pikhq_> Which is, of course, x264 and FLAC.
06:09:27 <zzo38> No, it has to be a free encoding. It can be put on the other side of the disc if necessary.
06:09:36 <Deewiant> Why lossless audio?
06:11:31 <pikhq_> Deewiant: I'm presuming a best-case scenario where you have the unencoded source video.
06:12:01 <pikhq_> With such a scenario, it seems most reasonable to minimise any possible quality losses, while making it fit on your target medium.
06:12:12 <pikhq_> *Ideally*, the x264 encoding can also be lossless.
06:13:47 <Deewiant> Does the audio take up so little space anyway that compressing it lossily wouldn't translate to noticeably higher-quality video with no discernible difference in the audio?
06:14:44 <pikhq_> Actually, it's more that x264 is so flipping good that you will have gobs of free space if you have it encode to visual transparency.
06:15:19 <Deewiant> Ah, fine. :-)
06:15:45 <pikhq_> Seriously, I can fit a *season* of a show onto a single disc without a significant loss in quality.
06:16:37 <pikhq_> (reference: my encoding of Star Trek: TNG.)
06:17:00 <Deewiant> Is that from a 1080p source? :-P
06:18:22 <pikhq_> No such source exists; TNG was filmed on video and special effects were done in 480i, making it actually a royal *pain* to do anything right to it at all.
06:18:48 <Deewiant> Right, I was being snarky.
06:19:04 <pikhq_> Anyways, the discussion was "NTSC or PAL video". :P
06:19:12 <Deewiant> Oh, true.
06:19:19 -!- oerjan has joined.
06:21:24 <newsham> vhs or beta?
06:23:22 <pikhq_> newsham: Digitised, 720x480i30, pixel aspect ratio 10:11.
06:23:56 <pikhq_> (and YCbCr colorspace)
06:48:00 <oerjan> if today's xkcd made sense in munroe's own mind, does that mean he needs to be locked up?
06:48:42 <newsham> you read it, what does that say?
06:48:56 <zzo38> Is it possible to use something like holographic RFID to allow a DVD to store more data? [Disclaimer: This idea is licensed unter the GPL (actually I think this kind of licensing is not possible)]
06:49:24 <zzo38> oerjan: Probably not.
06:49:54 <newsham> oerjan: looks like maybe kidney thieves?
06:50:26 <oerjan> well it may be an _allusion_ to kidney thieves. it still doesn't make sense.
06:50:29 <pikhq_> zzo38: More feasibly, use a smaller laser.
06:50:35 <pikhq_> AKA Bluray.
06:50:55 <zzo38> pikhq_: I am talking about something else; a format which does not require changing the drives at all.
06:51:53 -!- sebbu has quit (Ping timeout: 264 seconds).
06:52:11 <zzo38> I do not know if it is even possible or probable
06:52:28 <zzo38> It is just some strange idea I made up
06:55:35 <zzo38> Of course it is probably not useful I just want to think of how it could be done.
06:55:35 -!- choochter has joined.
06:55:56 -!- augur has quit (Read error: Connection reset by peer).
06:56:04 -!- augur has joined.
06:57:58 <zzo38> Note that the Bluray licensing requires you to include DRM on the disc even if you do not use it (except for recordable discs) (at least, this is what I have read) therefore you have to pay a licensing fee for AACS even if it is not used.
07:00:23 <pikhq_> Yeah, fuck the right bastards.
07:00:56 <zzo38> Can you elaborate on that?
07:01:18 <pikhq_> Very general statement. Fuck licensing groups.
07:01:30 <zzo38> OK
07:01:47 <pikhq_> All they do is act as a leech on everything.
07:01:58 <zzo38> Yes.
07:02:41 -!- sebbu has joined.
07:07:26 <zzo38> Do you know if there is a way to switch Linux out of UTF-8 mode?
07:09:12 -!- Slereah_ has joined.
07:10:59 -!- Slereah has quit (Ping timeout: 246 seconds).
07:15:20 -!- zzo38 has quit (Quit: zzo38).
07:27:11 -!- monqy has quit (Quit: hello).
07:53:48 -!- azaq23 has quit (Quit: Leaving.).
07:55:24 -!- pikhq_ has quit (Ping timeout: 240 seconds).
07:55:38 -!- pikhq has joined.
08:12:14 -!- Tritonio has joined.
09:03:04 -!- ptaav has left.
09:35:00 -!- hiato has quit (Quit: "nothing so gives the illusion of intelligence as personal association with large sums").
09:50:48 -!- MigoMipo has joined.
10:03:46 -!- aloril has quit (Ping timeout: 250 seconds).
10:11:18 -!- oerjan has quit (Quit: leaving).
10:17:42 -!- aloril has joined.
10:21:43 -!- FireFly has joined.
10:24:17 -!- Vorpal has joined.
11:03:15 <Vorpal> pikhq, https://github.com/pathscale/envytools/blob/dda561414f8f3e767d0a35521d2c2ab5eed7c21d/README <-- what the
11:03:37 <Vorpal> pikhq, btw a lot more open-sourced than when I last checked 2 days ago
11:05:29 <Gregor> Hypersexualized animals are trying to sell me Orangina and I'm afraid D-8
11:06:41 <Vorpal> Gregor, what
11:07:03 <Vorpal> pikhq, oh they have two things, https://github.com/pathscale and https://github.com/path64
11:07:55 -!- dell_ has joined.
11:08:00 -!- dell_ has quit (Client Quit).
11:10:51 <Gregor> Vorpal: I think I was pretty clear *shrugs*
11:11:48 <Vorpal> Gregor, *googles Orangina*
11:11:50 <Vorpal> oh
11:11:52 <Vorpal> I see
11:13:04 <Gregor> That advertisement
11:13:06 <Gregor> It's EVERYWHERE
11:19:07 <Vorpal> Gregor, I see. It would never be allowed in Sweden. There are strict laws about sexualised ads.
11:20:41 <Gregor> Sux to be Sweden.
11:22:14 <Vorpal> Gregor, why
11:22:40 <Gregor> No sexualized ads :P
11:23:06 <Vorpal> Gregor, basically I think an ad for a sexual toy would be allowed to be sexualised, same for underwear ads, but not for something completely unrelated to sex.
11:23:17 <Vorpal> iirc that is how it goes basically
11:24:00 <Gregor> You just went from "no sexualized ads" to "we have ads for dildos, but they're different for ads for Orangina" X-D
11:24:07 <Gregor> *than ads
11:24:12 <Vorpal> Gregor, no I said there were "strict laws"
11:24:20 <Vorpal> Gregor, also I never seen dildo ads
11:24:28 <Vorpal> I just said they would be allowed likely
11:25:11 <Gregor> I'm just trolololin' here :P
11:26:06 <Vorpal> Gregor, I think the Orangina ads would be disallowed due to laws about sexist advertising for a start.
11:53:50 <CakeProphet> actually I think sex toy ads would have to be more covert than underwear ads.
11:53:57 <CakeProphet> ironically enough.
11:54:40 <CakeProphet> well, maybe not. I think it would be similar to a phone sex line commercial. Where the purpose isn't explicitly mentioned.
12:05:35 <CakeProphet> s/./SEX /g
12:07:02 <CakeProphet> thank you for allowing me to use your brains as regular expression computers.
12:12:50 -!- Vorpal has quit (Ping timeout: 240 seconds).
12:42:07 -!- CakeProphet has quit (Ping timeout: 252 seconds).
13:04:00 -!- Tritonio has quit (Quit: Leaving).
13:22:13 -!- foocraft has quit (Quit: So long, and thanks for all the fish!).
13:33:42 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:38:16 * Sgeo finds the original VX thread
13:39:35 -!- wareya_ has quit (Read error: Connection reset by peer).
13:40:30 -!- wareya has joined.
13:40:40 <Sgeo> http://www.reddit.com/r/AskReddit/comments/ewbee/my_vx_module_has_at_least_a_43_delta_guys_i_think/
13:50:13 <quintopia> that thread is where the concept was invented?
13:50:27 <Gregor> http://codu.org/tmp/ponder1-2011-06-20.ogg Thoughts?
13:51:09 <quintopia> my thoughts are that you never answer my question gregor
13:52:01 <Gregor> Of course I don't, I'm moving from city to city without persistent connection :P
13:52:48 <quintopia> well, i just want to know if you still have a functional other-half of a myvu crystal
13:53:15 <Gregor> Nope, the other half is not recoverable.
13:53:58 <quintopia> is that a necessary consequence of disassembling or just the way you did it
13:54:58 <Gregor> Mmm ... pretty necessary. There are two many components that plug into both, and had to be ripped in half :P
13:56:03 <Gregor> Besides, ultimately the control box (that converts the analog input into the necessary outputs) outputs to both, and I had to just cut the cable there.
13:56:19 <Gregor> You could probably desolder, but you'd still be short a control box.
13:56:20 <quintopia> so there's only one display signal that gets split to both projectors?
13:56:31 -!- Lymia has joined.
13:56:33 <quintopia> gotcha
13:56:45 <Gregor> I'm quite sure that the physical device is capable of displaying two signals, but yes, the control box it ships with can only handle one.
13:57:33 <quintopia> what is the input to the control box? vga?
13:57:36 <quintopia> rca?
13:58:10 <Gregor> RCA
13:58:16 <Gregor> Composite
14:00:06 -!- copumpkin has joined.
14:00:06 -!- copumpkin has quit (Changing host).
14:00:06 -!- copumpkin has joined.
14:00:33 <quintopia> durn. that vga-video adapter i got doesn't actually work. fucker cost me like 25 bucks too.
14:00:49 -!- Lymia has quit (Client Quit).
14:04:03 <Gregor> If it costs less than $150, it won't work :P
14:08:47 <quintopia> everyone online said it worked fine once you figured out how to use it
14:09:01 <quintopia> it didn't take me much figuring, itws just defective
14:09:51 <quintopia> anyway just bid on a pair of crystals. current bid is $66
14:11:25 -!- BeholdMyGlory has joined.
14:52:17 -!- augur has quit (Remote host closed the connection).
14:52:33 -!- choochter has quit (Ping timeout: 255 seconds).
14:59:57 -!- dell_ has joined.
15:02:16 -!- Phantom_Hoover has joined.
15:03:01 -!- dell_ has quit (Client Quit).
15:07:29 -!- derrik has joined.
15:08:44 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:08:45 <Phantom_Hoover> I wonder if I could have any lambdabot messages today.
15:08:45 <lambdabot> Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them.
15:09:14 -!- derrik has left.
15:17:18 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
15:18:31 -!- Phantom_Hoover has joined.
15:35:45 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
15:37:21 -!- Phantom_Hoover has joined.
15:39:13 -!- copumpkin has quit (Ping timeout: 252 seconds).
15:40:28 -!- copumpkin has joined.
15:40:29 -!- copumpkin has quit (Changing host).
15:40:29 -!- copumpkin has joined.
15:47:19 <Sgeo> <3 hard-boiled eggs
15:53:09 -!- Vorpal has joined.
16:09:29 <Phantom_Hoover> ...
16:11:09 <Sgeo> What?
16:11:37 <Sgeo> That wasn't a perverted sense of the word "eggs". I'm not ripping out someone's ovaries
16:12:43 <Phantom_Hoover> Sgeo, you have pushed the number of .s to beyond anything expressible to the human mind.
16:12:59 <Phantom_Hoover> I suppose this is just more of your sick blood fetish.
16:13:15 <Phantom_Hoover> OH MY GOD NOW I KNOW WHY YOU ONLY SKIMMED MOST OF HIVEBENT
16:13:34 <Phantom_Hoover> I DON'T EVEN WANT TO THINK WHAT YOU'VE BEEN DOING LATELY
16:18:47 -!- oerjan has joined.
16:19:20 <Phantom_Hoover> >48*5
16:19:26 <Phantom_Hoover> > 48*5
16:19:27 <lambdabot> 240
16:21:01 <quintopia> where did fungot go?
16:21:40 <oerjan> fizzie removed it during that spate when someone complained that the bots didn't prevent raw ctcp
16:21:50 <oerjan> and has not bothered to fix it
16:22:25 <quintopia> i'm slow to notice things i suppose
16:25:12 <Sgeo> What was the autoban channel?
16:25:31 <Phantom_Hoover> oerjan, raw CTCP?
16:26:21 <oerjan> well something that could be used to trigger a bug in a prehistoric client
16:26:32 <Phantom_Hoover> When was this?
16:26:42 <oerjan> DCC with too long line or something...
16:27:30 <oerjan> you didn't notice when Gregor temporarily removed his bots and then installed the zero-width space prefix?
16:27:44 <Phantom_Hoover> No?
16:28:01 <oerjan> well it was weeks, perhaps months ago.
16:28:06 <oerjan> anyway
16:28:27 <oerjan> !underload (<CTCP>ACTION no longer works<CTCP>)S
16:28:29 <EgoBot> ​.ACTION no longer works.
16:29:09 <oerjan> hm that seems like more than the prefix
16:29:44 <oerjan> !haskell putStr $ toEnum 1 : "ACTION hm..." ++ [toEnum 1]
16:29:49 <EgoBot> ​.ACTION hm....
16:33:56 -!- TOGoS has joined.
16:34:22 <oerjan> Sgeo: #verybadattitude or something
16:34:47 <Sgeo> ##verybadattitude
16:34:48 <Sgeo> ty
16:34:49 <Phantom_Hoover> oerjan, so wait, all the bots were fixed in case someone with an ancient client came along and someone else crashed them?
16:35:31 <oerjan> well something like that. and a freenode admin stayed lurking on the channel for weeks...
16:35:51 <Phantom_Hoover> *sigh*
16:36:16 <Phantom_Hoover> So we lost fungot to prevent an exploit which is still manifestly possible?
16:36:28 <oerjan> afair he never spoke
16:36:50 <oerjan> what do you mean "still manifestly possible"?
16:37:03 <oerjan> (except in private to Gregor)
16:37:05 <Phantom_Hoover> oerjan, if the bots could do it, so can a human.
16:37:14 <oerjan> well yeah.
16:38:13 <oerjan> also all of this was discussed to death back then.
16:44:17 <Vorpal> what? is fungot not coming back?
16:44:18 <Vorpal> why
16:44:34 <Phantom_Hoover> FFS, Vorpal.
16:44:41 <Phantom_Hoover> Read the goddamn scrollback.
16:44:44 <Vorpal> yes
16:44:49 <Vorpal> I just can't believe it
16:44:59 <oerjan> i never said that
16:45:10 <Vorpal> for a start it would be a tiny change to make fungot insert such a space at the start
16:45:54 <oerjan> well we could just ban fizzie until he fixes it. oh wait...
16:45:57 -!- TOGoS has left.
16:45:59 <Vorpal> nope
16:46:19 <Vorpal> oerjan, anyway, why didn't we ignore that person who complained about it, it seems silly
16:52:55 <oerjan> Vorpal: "and a freenode admin stayed lurking on the channel for weeks..."
16:53:21 <oerjan> it wasn't our decision to make.
16:53:36 <oerjan> in fact i wasn't really involved at all...
16:54:12 <oerjan> hm, actually i made the mistake of telling fizzie about it
16:54:20 <oerjan> dammit
16:54:49 <oerjan> if i hadn't, nobody might have pointed out fungot had the same "problem"
16:55:45 <oerjan> but i didn't expect him to take fungot off and _never bloody fix it_
17:25:29 -!- pikhq_ has joined.
17:25:33 -!- pikhq has quit (Ping timeout: 252 seconds).
17:41:08 -!- pikhq_ has quit (Ping timeout: 244 seconds).
17:41:12 -!- pikhq has joined.
17:42:06 -!- augur has joined.
17:43:11 -!- augur has quit (Remote host closed the connection).
17:50:58 <nooga> chill
17:55:24 <oerjan> chill with chilli
18:02:24 <Phantom_Hoover> http://rationalwikiwiki.org/wiki/Talk:I_thought_this_was_supposed_to_be_RATIONAL_wiki#Disagree
18:02:49 <Phantom_Hoover> RationalWiki: the most ironic place existing?
18:04:01 <Phantom_Hoover> Note that a) this person is reasonable and civil and b) they are a nutcase cultist promoter of their own religion who disbelieves in the scientific method.
18:04:36 -!- monqy has joined.
18:06:45 <Vorpal> <oerjan> chill with chilli <-- should be named "hoti" or something
18:07:28 <pikhq> Phantom_Hoover: If you disbelieve in the scientific method, you are probably not dealing in rationality.
18:07:48 <Phantom_Hoover> pikhq, I am considering that post purely in isolation.
18:07:53 <oerjan> Vorpal: fun fact: mexicans put chili in ice cream
18:08:04 <pikhq> Mmm.
18:08:12 <Phantom_Hoover> There is nothing wrong with it whatsoever, and it makes several valid points about RW.
18:08:32 <Vorpal> oerjan, *blink*
18:08:40 <pikhq> Vorpal: It fucking works.
18:08:52 <Vorpal> pikhq, chilli in ice cream? Hm okay.
18:09:28 * pikhq sighs at *_unlocked
18:10:03 <pikhq> It's like the normal stdio operations, but they don't lock anything.
18:10:49 <pikhq> Yes, it is the single most utterly pointless set of functions ever.
18:11:24 -!- augur has joined.
18:11:33 <Phantom_Hoover> pikhq, lock?
18:11:36 <pikhq> It is either a hardly relevant microöptimisation, or fundamentally wrong, depending.
18:11:40 <pikhq> Phantom_Hoover: For multithreading.
18:11:59 <pikhq> Phantom_Hoover: You wouldn't want multiple threads to mutate the same FILE simultaneously.
18:12:26 <oerjan> !haskell Control.Concurrent.forkIO.putStr`mapM_`words"Always lock everything!"
18:12:42 <oerjan> fnord
18:13:10 <pikhq> oerjan: Of course, there's no guarantee that the IO will happen in any sane sequence.
18:13:20 <oerjan> !haskell import Control.Concurrent(forkIO);main=putStr`mapM_`words"Always lock everything!"
18:13:25 <EgoBot> Alwayslockeverything!
18:13:31 <oerjan> darn
18:13:37 <oerjan> er wait :P
18:13:39 <pikhq> Just a guarantee that the IO action will not completely fuck up everything.
18:13:45 <oerjan> !haskell import Control.Concurrent(forkIO);main=forkIO.putStr`mapM_`words"Always lock everything!"
18:14:08 <pikhq> glibc has functions without this guarantee.
18:14:12 <oerjan> > (0$0.)
18:14:13 <lambdabot> The operator `L..' [infixr 9] of a section
18:14:13 <lambdabot> must have lower precedence ...
18:14:23 <oerjan> bah
18:14:38 <pikhq> Even though, if this is *somehow* a relevant optimisation, what you actually want is to ignore stdio anyways.
18:14:41 <olsner> oerjan: what are you trying to do? :)
18:15:09 <oerjan> !haskell import Control.Concurrent(forkIO);main=mapM_(forkIO.putStr)$words"Always lock everything!"
18:15:14 <EgoBot> A
18:15:18 <oerjan> mad stuff
18:15:20 <oerjan> oops
18:15:35 <oerjan> i suppose the main thread quit
18:16:02 <oerjan> @hoogle sleep
18:16:03 <lambdabot> No results found
18:16:07 <oerjan> wtf
18:16:15 <oerjan> @hoogle wait
18:16:15 <lambdabot> Control.Concurrent.QSem waitQSem :: QSem -> IO ()
18:16:15 <lambdabot> Control.Concurrent.QSemN waitQSemN :: QSemN -> Int -> IO ()
18:16:15 <lambdabot> System.IO hWaitForInput :: Handle -> Int -> IO Bool
18:17:16 <pikhq> Could wait on an mvar?
18:18:33 <oerjan> that sort of defeats the purpose of a quick one-liner :P
18:21:23 <oerjan> @hoogle forkIO
18:21:23 <lambdabot> Control.Concurrent forkIO :: IO () -> IO ThreadId
18:21:37 <oerjan> @hoogle ThreadId -> IO ()
18:21:38 <lambdabot> Control.Concurrent killThread :: ThreadId -> IO ()
18:21:38 <lambdabot> Control.OldException throwDynTo :: Typeable exception => ThreadId -> exception -> IO ()
18:21:38 <lambdabot> Control.Concurrent throwTo :: Exception e => ThreadId -> e -> IO ()
18:27:03 <nooga> FSKJPFS>FG>FX>XF>F>XF>F>F>X>FF>>X>XXX
18:27:22 <oerjan> you don't say.
18:28:17 <nooga> sorry, i was randomly hitting the keyboard
18:28:50 <olsner> not *that* randomly, that's only a handful of different letters
18:30:27 <nooga> accident
18:37:18 -!- Tritonio has joined.
18:45:06 <newsham> probably some top secret esoteric language function he isnt ready to discuss
18:57:32 -!- nooga has quit (Quit: Lost terminal).
18:58:53 -!- Vorpal has quit (Read error: Operation timed out).
18:59:33 -!- augur has quit (Remote host closed the connection).
19:06:52 -!- Vorpal has joined.
19:15:18 <cheater_> how is eric
19:18:31 <oerjan> there is no eric. eric is an illusion.
19:21:45 -!- esot_eric has joined.
19:21:51 <esot_eric> I am fine.
19:22:31 <esot_eric> I am also ... Lord High Commander of the Armada.
19:22:39 <pikhq> Looks like Gregor to me.
19:22:51 <oerjan> the esots are heretics! burn him!
19:22:56 <pikhq> (srsly, who else has a copy of RawIRC?)
19:23:11 <pikhq> ... Actually, I might.
19:23:18 <esot_eric> oerjan: More like Herr Erics!
19:23:57 <oerjan> Das stimmt überhaupt nicht!
19:25:00 <Phantom_Hoover> pikhq, RawIRC?
19:25:26 <oerjan> ...i am starting to wonder if Phantom_Hoover has had a recent bout of amnesia :P
19:25:27 <esot_eric> Sorry, ich spreche kein Katalanisch.
19:25:37 <Phantom_Hoover> oerjan, quite possibly.
19:25:38 <oerjan> esot_eric: De nada!
19:25:56 <Phantom_Hoover> oerjan, my internet connection was gone for a day or two.
19:26:09 <pikhq> Phantom_Hoover: A very lightweight IRC client.
19:26:15 <esot_eric> s/day/millenium/
19:26:17 * olsner fails to think of something funny in german
19:26:20 <oerjan> Phantom_Hoover: these are not recent events.
19:26:31 <pikhq> It does syntax coloring and automatically responds to PINGs!
19:26:37 <Phantom_Hoover> oerjan, it's a mystery.
19:26:43 -!- esot_eric has quit (Quit: Power to ze Erics!).
19:29:47 <oerjan> olsner: well as the swedish girl said to her german boyfriend in bed: "Snälla du!". "Aber ich kann nicht schneller!"
19:30:03 <olsner> oerjan: :D
19:30:30 <Phantom_Hoover> oerjan, as deputy punmaster I demand an explanation.
19:31:00 <oerjan> Phantom_Hoover: well swedish snälla sounds pretty close to german schneller, obviously
19:31:13 <Phantom_Hoover> That much is obvious, at least.
19:31:39 <oerjan> one meaning kind, the other meaning faster
19:32:48 <oerjan> so, approximately "You're so kind!" "But I can't do it faster!"
19:33:36 * oerjan throws the dissected frog into the garbage
19:34:43 <olsner> hmm, more like "Please!", possibly implied "please [hold back]"
19:35:26 <olsner> but it's not really clear what "snälla du!" is supposed to mean
19:35:32 <oerjan> ah, bit of a false friend perhaps
19:35:57 <olsner> snäll does mean kind, but you wouldn't use it like that
19:36:48 <oerjan> obviously it's a norwegian joke
19:37:27 <olsner> oerjan: ... it's not the fart that kills, it's the smäll
19:37:43 <oerjan> O KAY
19:37:45 <olsner> *smell :)
19:37:50 <monqy> nice to know
19:38:17 <olsner> I've heard that's from the infamously-bad-at-english norwegian rally driver
19:38:43 <olsner> (fart = speed, smäll = bang)
19:39:35 <oerjan> ah, solberg
19:40:17 -!- Tritonio has quit (Quit: Leaving).
19:40:19 <oerjan> heck, google suggests it with just "it's not the " as clue
19:41:14 <Phantom_Hoover> oerjan, consider that Google customises things like that whether you want it to or not.
19:41:57 <oerjan> well obviously
19:42:10 * oerjan still misses the define: prefix
19:46:50 <olsner> I would still like to find the original version of that quote
19:49:15 <oerjan> "Denne setningen har eksistert i maaange år, og jeg vil nok tro at den også ble oppdiktet lenge før Solberg sin periode."
19:49:28 <olsner> meh!
19:53:11 <oerjan> i seem to have similar trouble confirming a notorious "pigs in your decks" phrase
19:53:43 <oerjan> of course that one is _supposed_ to be decades old
19:55:53 <olsner> the pigs in the decks would be referring to spiked tires?
19:56:04 <olsner> in swedish that'd be dub decks
19:56:18 -!- sebbu2 has joined.
19:56:18 -!- sebbu2 has quit (Changing host).
19:56:18 -!- sebbu2 has joined.
19:59:00 -!- sebbu has quit (Disconnected by services).
19:59:03 -!- sebbu2 has changed nick to sebbu.
19:59:19 -!- CakeProphet has joined.
20:04:12 <oerjan> yes
20:06:04 -!- pikhq_ has joined.
20:06:12 -!- pikhq has quit (Ping timeout: 250 seconds).
20:16:35 -!- zzo38 has joined.
20:20:07 <CakeProphet> hmmm
20:20:21 <CakeProphet> okay so I have most of the basics for my regexp stuff
20:20:26 <CakeProphet> but I feel something is still missing.
20:24:48 -!- pikhq has joined.
20:25:27 <Phantom_Hoover> CakeProphet, is it formal verification.
20:25:55 -!- pikhq_ has quit (Ping timeout: 260 seconds).
20:26:36 <CakeProphet> Phantom_Hoover: I doubt it.
20:26:46 <Phantom_Hoover> -_-
20:26:48 <Phantom_Hoover> Wrong answer.
20:27:08 <Phantom_Hoover> There's always room for formal verification!
20:27:20 <CakeProphet> How do you suggest I go about that?
20:28:02 <Phantom_Hoover> Write it all in Coq.
20:28:20 <CakeProphet> I was going to write it in Haskell. Is that good enough?
20:28:26 <Phantom_Hoover> No.
20:28:31 <CakeProphet> Does that please the verification gods?
20:28:33 <CakeProphet> no? okay.
20:28:37 <Phantom_Hoover> You must write it in Coq.
20:28:42 <Phantom_Hoover> You may extract it to Haskell.
20:28:44 <CakeProphet> then I don't care anymore. :X
20:29:18 <Phantom_Hoover> But you can *extract* it to your stupid logically inconsistent language!
20:29:34 -!- azaq23 has joined.
20:29:42 <CakeProphet> a more important issue here though
20:29:46 <CakeProphet> is why does any of this really matter?
20:30:37 <Phantom_Hoover> Because then if anyone comes up to you with a bug report you can say "it's logic's problem, not mine" and then ride away on a motorbike into the sunset.
20:31:19 <CakeProphet> ah, that does sound idyllic
20:33:00 <CakeProphet> as far as syntax, I was thinking about changing * and *? to *! and *, respectively.
20:34:30 <CakeProphet> because... well, mainly because I like that better. But also I believe the Kleene star is actually *?, so it makes sense to write it as * instead.
20:35:19 <oerjan> the kleene star is "actually" completely oblivious to the distinction between greedy and non-greedy matching
20:37:09 <oerjan> because that's not an issue when _defining_ a regular language
20:37:49 <CakeProphet> ah I see.
20:38:11 <CakeProphet> I've always seen it used as the minimum possible number of repetitions.
20:38:25 <CakeProphet> granted I haven't seen much of it in math classes.
20:43:52 <Phantom_Hoover> Wait, Simon Peyton-Jones said the next Haskell would be strict?
20:44:51 <olsner> wat
20:59:44 <Phantom_Hoover> olsner, as a metaphorical thing.
21:00:00 <Phantom_Hoover> As in, if they made it again knowing what they know now, it would be strict.
21:00:13 <olsner> oh, like that
21:03:26 <Vorpal> Phantom_Hoover, what, really?
21:03:28 <Vorpal> why
21:03:47 <Vorpal> [1..] and so on would no longer work
21:04:00 <Phantom_Hoover> Dunno..
21:04:10 <Vorpal> well it could be special cased to work as a generator
21:04:13 <Phantom_Hoover> Has elliott's sleep schedule just slipped into full vampire/
21:04:15 <Vorpal> but that seems awkward
21:24:36 <Phantom_Hoover> Guys, I need you to name something really, really gay.
21:24:42 <Phantom_Hoover> No time to explain. Just do it.
21:29:37 <Sgeo> Hmm? Like Sebastian, as in Sin with Sebastian?
21:30:20 <Sgeo> Or um, what's his name?
21:30:42 <Sgeo> Samwell?
21:30:55 <Sgeo> Also, I do want an explanation
21:33:08 <Phantom_Hoover> What.
21:33:14 -!- adamfyre has joined.
21:33:20 <Phantom_Hoover> I had to jury-rig something crappy.
21:33:25 <Phantom_Hoover> Where was augur.
21:36:05 <Vorpal> Phantom_Hoover, what about "gay-o-matic"?
21:36:12 <Phantom_Hoover> Vorpal, what.
21:36:17 <Vorpal> <Phantom_Hoover> Guys, I need you to name something really, really gay.
21:36:21 <Vorpal> I invented a name
21:36:22 <Phantom_Hoover> How is that a thing which is really, really gay.
21:36:24 <Vorpal> as you asked
21:36:25 <Phantom_Hoover> It's just a machine.
21:36:31 <Phantom_Hoover> That does something related to gayness.
21:36:32 <Vorpal> oh true
21:36:43 <Vorpal> Phantom_Hoover, oh something really gay that already exists?
21:36:57 <Vorpal> or do you need a new name?
21:37:07 <Phantom_Hoover> Vorpal, for the purposes of humourous comparison, yes.
21:37:28 <Vorpal> Phantom_Hoover, which sense of the word gay do you need
21:37:44 <Vorpal> Phantom_Hoover, the old sense or the homosexual sense
21:37:49 <Vorpal> Phantom_Hoover, if the latter: Batman
21:38:01 <Sgeo> Phantom_Hoover, listen to Samwell
21:38:05 <Phantom_Hoover> Vorpal, it is done. You are too late also that is not the old sense of the word gay how is that
21:38:09 <Sgeo> Samwell's more famous song
21:38:17 <Sgeo> Oh
21:38:24 <Vorpal> Phantom_Hoover, the old sense would be "happy"
21:38:29 <Vorpal> roughly
21:38:34 <Phantom_Hoover> ...how is Batman happy.
21:38:55 * oerjan learns that Phantom_Hoover does not understand the word "latter"
21:38:56 <Phantom_Hoover> His parents are dead, you insensitive prick.
21:39:13 <Phantom_Hoover> ...wait, right.
21:39:45 <oerjan> now a _sensitive_ prick, that would be gay
21:39:46 <Vorpal> oerjan, oh that explains the confusion
21:40:04 <Vorpal> well Phantom_Hoover not knowing "latter" that is
21:41:42 <oerjan> perhaps Phantom_Hoover doesn't have amnesia. perhaps he's just a very confused time traveler.
21:43:00 <Sgeo> "This Downloader uses Pando Media Booster to download Global Agenda Free Agent. When you use this Downloader, you install Pando Media Booster and participate in a secure, closed peer-to-peer network where you receive pieces of the download package from a Content Delivery Network (CDN) as well as other active users (peers). In addition you send pieces of the download package installer to other peers participating in the secure peer-to-peer net
21:43:00 <Sgeo> work. No other files can be shared on your computer via Pando Media Booster and your computer is never used as a relay nor for transient storage of content you did not wish to download. More information about Pando Media Booster and how to manage it can be found at http://pandonetworks.com/pmb-faq"
21:43:00 <Vorpal> ah
21:43:08 <Sgeo> So basically, bittorrent
21:43:31 <Sgeo> Wait, this is the .... installer for the bittorrent client...
21:43:40 <Vorpal> ouch
21:44:16 <Sgeo> Or not?
21:44:19 <Sgeo> I'm confused
21:45:38 <Vorpal> Sgeo, googling suggest it is almost but not quite the same... -_-
21:50:32 -!- Phantom_Hoover has quit (*.net *.split).
21:50:33 -!- lambdabot has quit (*.net *.split).
21:54:58 -!- adamfyre has quit (Quit: AndroidIrc Disconnecting).
21:55:33 <Sgeo> Hmm, what's the difference? (My browser's acting up)
21:55:53 <Vorpal> not sure
21:55:58 <Vorpal> didn't read on enough
21:56:03 <Vorpal> Sgeo, fix your browser
21:56:19 <Vorpal> anyway normal bittorrent client apparently doesn't quite work
21:57:53 -!- Phantom_Hoover has joined.
22:07:20 -!- Sgeo_ has joined.
22:07:56 * Phantom_Hoover → sleep
22:07:56 -!- Phantom_Hoover has left ("Leaving").
22:07:58 -!- Phantom_Hoover has quit (Quit: Leaving).
22:09:42 -!- Sgeo has quit (Ping timeout: 250 seconds).
22:12:22 -!- Sgeo has joined.
22:14:03 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
22:20:29 -!- lambdabot has joined.
22:21:49 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:26:45 -!- oerjan has quit (Quit: Good night).
22:27:22 -!- Sgeo_ has joined.
22:29:09 -!- Sgeo has quit (Ping timeout: 252 seconds).
22:51:17 -!- Slereah_ has quit.
22:55:09 -!- elliott has joined.
22:59:16 <copumpkin> newsham: too cool for blah?
22:59:16 <copumpkin> :)
23:02:15 <CakeProphet> oh hey I am at the end of Homestuck.
23:04:23 <Sgeo_> Awesome
23:07:51 <elliott> there's no more homes to be stuck in now.
23:07:51 <lambdabot> elliott: You have 2 new messages. '/msg lambdabot @messages' to read them.
23:07:55 <elliott> you've deprived an orphan.
23:19:47 <newsham> copumpkin: havent been ircing as much lately..
23:19:52 <newsham> dont worry, i'm slowly sliding back into it
23:19:59 <copumpkin> newsham: I see you're involved in bitcoin, too
23:20:10 <newsham> not too much.. goofed with it a little
23:20:19 <copumpkin> :)
23:20:22 <newsham> invested $100, cashed out $600 recently, have lots more left.
23:20:32 <copumpkin> roconnor made a pretty good implementation in pure haskell
23:20:38 <copumpkin> ecdsa, sha256 from scratch
23:20:40 <copumpkin> all pure haskell
23:20:46 <newsham> neat! i bet it has less vulns than the official one! ;-)
23:20:51 <copumpkin> probably :P
23:21:02 <copumpkin> soon we'll hear about "omg someone haxed my client and stoled my coinz"
23:22:14 <elliott> if only I was a time traveller, I'd be rich off bitcoins
23:22:15 <elliott> IF ONLY
23:27:45 <pikhq> Eh, if you're going to be a time traveller, use the stock market. Better possible returns.
23:27:57 <pikhq> (get in on Google's IPO)
23:50:36 <quintopia> mmm. i has cash
2011-06-21
00:00:28 -!- FireFly has quit (Quit: swatted to death).
00:12:36 -!- Sgeo has joined.
00:14:30 -!- Sgeo_ has quit (Ping timeout: 250 seconds).
00:17:39 -!- Sgeo_ has joined.
00:19:16 -!- Sgeo has quit (Ping timeout: 250 seconds).
00:27:30 -!- Sgeo has joined.
00:29:12 -!- Sgeo_ has quit (Ping timeout: 240 seconds).
00:32:13 -!- Lymia has joined.
00:34:42 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:15:16 -!- Vorpal has quit (Ping timeout: 252 seconds).
01:26:17 -!- pikhq_ has joined.
01:26:20 -!- pikhq has quit (Ping timeout: 260 seconds).
01:39:00 -!- pikhq has joined.
01:41:45 -!- pikhq_ has quit (Ping timeout: 276 seconds).
02:02:59 -!- Wamanuz2 has joined.
02:04:56 -!- augur has joined.
02:09:04 -!- elliott has quit (*.net *.split).
02:09:04 -!- Wamanuz has quit (*.net *.split).
02:09:05 -!- variable has quit (*.net *.split).
02:09:31 <pikhq> So, apparently Intel thinks it can have exaflop computing by 2020.
02:10:02 <pikhq> It is estimated that that would suffice for a whole-brain simulation from a low-level physics simulation.
02:11:35 <Sgeo> So from there we'd just need to scan in a brain?
02:12:01 <Sgeo> If I die around then, I volunteer
02:12:14 <Lymia> Sgeo, but.
02:12:25 <Lymia> You don't get to be an AI brain with free internet access direct to brain.
02:13:07 <pikhq> Sgeo: Actually, there's a decent chance we will have done so by then.
02:14:26 <Sgeo> Lymia, well, better than being dead. I suspect that if they're just starting brain scans then, it's only going to be one or two people.
02:15:14 <Lymia> Hmm...
02:15:29 <Lymia> Think the US would move to pass laws to make AIs legal persons?
02:15:49 <pikhq> Lymia: I suspect the law would be moot not long after.
02:16:08 <pikhq> This would be an intelligence with the ability to improve itself.
02:16:35 <Sgeo> pikhq, a scanned in brain?
02:16:35 <Lymia> pikhq, hey, if you build it from a dead human, it /might/ avoid killing off the human race.
02:17:03 <pikhq> Lymia: Nonono, I mean "intelligence with the ability to improve itself" → singularity
02:17:14 <Sgeo> I guess a scanned-in brain might have ... actually, it would probably be slower than a human
02:17:36 <pikhq> Sgeo: And be modifiable with ease.
02:17:38 <Lymia> Sgeo, but it would get faster with faster computers.
02:17:51 <pikhq> Or with faster simulation.
02:17:57 <Sgeo> pikhq, if we know how to scan brains in but not how to modify them...
02:18:25 <pikhq> Sgeo: If we have a brain simulation in digital form, *it is data*.
02:18:29 <pikhq> Hence, we can modify it.
02:18:40 <Lymia> pikhq, but are likely to screw up...
02:18:41 <Lymia> A lot.
02:18:46 <Sgeo> pikhq, doesn't mean we know the correct way to modify it.
02:18:54 <pikhq> Sgeo: No, but we can learn.
02:19:06 <Sgeo> It's like looking at a C program and trying to modify it without knowing the slightest thing about programming.
02:19:11 <Sgeo> Better yet, looking at machine code.
02:19:25 <pikhq> Yes, but the point is, *we would be capable of experimenting*.
02:19:34 <Lymia> I'd rather be the first strong AI than the first scanned brain.
02:19:35 <pikhq> Which we can't realistically do right now.
02:19:45 <Sgeo> pikhq, hmm, true.
02:19:52 <Sgeo> But what are the ethics of experimentation?
02:20:03 <Sgeo> Mightn't it be cruel to the simulated person?
02:20:39 <zzo38> Perhaps it is better not to avoid killing off the human race (eventually)
02:21:14 <zzo38> Best way is invent the programming language doing these kind of things you are trying to do.
02:21:16 <pikhq> I'm actually presuming the first experimentation would be to try and perfect a high-level neuron or neocortical column simulation... And be able to compare functionality given real data.
02:21:45 <Sgeo> pikhq, for faster simulation speeds?
02:21:47 <pikhq> Suddenly, order of magnitude or more on the brain's performance.
02:23:41 <pikhq> And this brain could improve itself with the suddenly freed up computer time. Perhaps by doubling the size of its neocortex.
02:23:44 <pikhq> Recurse.
02:24:12 <zzo38> You are going to run out of energy!!!!!
02:24:29 <Sgeo> pikhq, all the more reason it should be MY brain >:D
02:24:38 <Sgeo> You don't trust me as God?
02:24:42 <zzo38> Sgeo: *You* are going to run out of energy!!!!!
02:25:04 <pikhq> zzo38: Come now, all I've suggested so far is something that could reasonably happen in, oh, 15 years.
02:25:33 <pikhq> No need for absurdly large quantities of energy, just a much faster computer than exists now.
02:25:53 <pikhq> One which companies are claiming they can have in 10 years.
02:25:57 <Sgeo> I should transfer to neuroscience
02:26:01 <Sgeo> So I'm somewhat prepared
02:26:45 <Sgeo> If the singularity is based off a human, that human will have cognitive biases :/
02:26:59 <Sgeo> Although if the human can tear those biases out, that would be awesome
02:27:01 <pikhq> Could happen sooner if Blue Brain's neocortical column simulation is actually good, and they succeed in getting the neocortex mapped.
02:27:05 <pikhq> Say, 5 years?
02:27:29 <monqy> do babies have good brains
02:27:58 <zzo38> Sgeo: See? Now everything will be biased. Make unhumans and then it will still be biased but all will be equally small bias instead of being too much bias for you by being too world-centered.
02:28:18 <Sgeo> A baby who wants its mommy and is capable of destroying the world to find her.. may not be such a great idea...
02:28:34 <zzo38> You cannot avoid being biased but you can try to improve anyways
02:28:57 <Sgeo> </spoiler>
02:30:43 <Lymia> Sgeo, an AI that can rewrite itself would be...
02:30:57 <Lymia> Well, if it works....
02:31:07 <zzo38> Well, it is experiment I suppose you can try
02:31:15 -!- pikhq has quit (Quit: Reconnecting).
02:31:31 <Sgeo> zzo38, yes, let's try destroying the world..
02:31:53 <Sgeo> What's the worst that can happen that's outside expected results?
02:32:07 <zzo38> Sgeo: The worst that can happen depends on a lot of things.
02:32:25 <zzo38> If you just write a computer program then the worst that can happen is to get the incorrect answer output.
02:32:36 <zzo38> (Or a useless answer, even if correct)
02:32:54 <zzo38> And you might waste energy if you try too hard.
02:32:58 <zzo38> So don't try too hard.
02:33:07 <monqy> if you hook it up to a gun and stand in front of the gun
02:33:08 <monqy> watch out
02:33:37 <Lymia> Sgeo, the world not being destroyed?
02:34:03 <zzo38> monqy: Then you have to put it in a box to make the Schrodinger's Cat experiment, but with a person who enters the box to be suicide instead of a cat.
02:34:50 <monqy> someone should try quantum suicide sometime
02:35:06 <zzo38> And then if someone exits, the experiment failed. If someone doesn't exit, the experiment also failed. If you see no people, but monsters, you almost succeeded. If you see a computer printout, then you have succeeded for sure.
02:35:35 <zzo38> monqy: I have thought about that very long time ago even and my answer to that is the same as it was before: There is no way to get results from such an experiment.
02:35:42 <monqy> :(
02:36:04 <monqy> what if the subject is a (terminally ill or suicidal) cat
02:36:06 -!- pikhq has joined.
02:36:09 <monqy> does that help
02:36:14 <Sgeo> zzo38, the person who entered would see the result...
02:36:23 <Sgeo> suicidal cat?
02:36:28 <zzo38> monqy: Maybe.
02:36:28 <monqy> suicidal cat.
02:36:38 <Lymia> Sgeo, here's a question.
02:36:51 <zzo38> Do the mathematics and figure it out.
02:37:17 <Lymia> If in the world you live in, a piece of $HIGHLY_RADIOACTIVE_MATERIAL has failed to decay for 10 hours due to a quantum suicide experiment, what do you conclude?
02:38:19 <Sgeo> Lymia, good point, but what if there's no person inside, and I see the same thing?
02:38:37 <zzo38> Lymia: Good question. I think the only thing to conclude is that if you were dead that you could not conclude, therefore do the mathematics the same thing and probability and so on, you should get the same answer regardless.
02:39:23 <Sgeo> I think if I was terminally ill, and not going to interfere with cryonics, then I'd want to try the quantum suicide experiment
02:40:04 <zzo38> Sgeo: Try if you want to. It is not my fault whether you do so or not.
02:40:18 <Sgeo> If cryonics is wrong, and MWI is true, then I'd wake up in the living world
02:40:28 <zzo38> What is MWI?
02:40:29 <Sgeo> And would know that cryonics fails, and be sad
02:40:39 <Sgeo> Many-worlds interpretation
02:40:50 <zzo38> OK.
02:41:23 <Sgeo> I'd also want to make sure it completely kills me without destroying my brain
02:41:29 <Sgeo> I have no idea how to accomplish this.
02:41:40 <zzo38> I think many-worlds interpretation is just one way of seeing it. There are also other ways to see it. Only the mathematics is true not any of interpretations.
02:42:21 <Lymia> zzo38, you can never prove the many-worlds interpretation.
02:42:22 <monqy> quantum guillotine
02:42:30 <Lymia> You can be very very very sure that it exists form a subjective viewpoint.
02:42:43 <zzo38> However the interpretations can still work but results in nothing of experiment so it is more philosophical.
02:43:19 <zzo38> Lymia: I know that you cannot prove it. It is my point! That doesn't make it untrue, but that doesn't make it true either.
02:43:45 <Sgeo> If Robin Hanson's right about small probability worlds disintegrating, then MWI could be true yet quantum suicide be a failure
02:43:50 <Sgeo> Unless I'm misunderstanding him
02:45:50 <zzo38> Then it would be a different kind of MWI. However I think speaking of those kinds of things isn't really very meaningful. Disintegrating? No, simply it is "less existence" relative to high probability ones. It is a new kind of relativity, rather than spacetime, is relative by point of quantum observer.
02:47:17 <Lymia> Hm...
02:47:21 <Lymia> Here's a question.
02:47:38 <Lymia> Assuming MWI, why do events exist with probabilities that are not 1/x, where x is an integer.
02:48:09 <zzo38> Lymia: Because some possible universes agree in many things with others.
02:48:16 <Sgeo> I think in MWI worlds are a bit more fluid than "1 world or 2 worlds"
02:48:20 <zzo38> Also, because you did not understand MWI.
02:48:39 <zzo38> MWI is not really multiple worlds. It is like all uncountable possibilities.
02:49:32 <zzo38> Learn the mathematics dealing with quantum physics and quantum cosmology and then see how it is the case.
02:53:13 -!- rabc has joined.
02:53:43 -!- rabc has left ("Leaving").
02:53:47 <zzo38> Therefore the probability does not even have to be rational.
02:57:38 <Sgeo> But it is a question why the probabity is squared instead of absolute value, isn't it?
02:57:43 <Sgeo> With MWI?
02:58:14 <zzo38> The name "many worlds interpretation" is somewhat misleading, I think.
02:58:52 <zzo38> It is not a LITERAL "many worlds" it is a bit different.
03:12:18 -!- CakeProphet has quit (Ping timeout: 276 seconds).
03:14:00 -!- CakeProphet has joined.
03:14:01 -!- CakeProphet has quit (Changing host).
03:14:01 -!- CakeProphet has joined.
03:18:52 -!- copumpkin has joined.
03:18:52 -!- copumpkin has quit (Changing host).
03:18:52 -!- copumpkin has joined.
03:30:37 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:34:05 -!- azaq231 has joined.
03:35:42 -!- azaq23 has quit (Ping timeout: 264 seconds).
03:48:51 -!- elliott has joined.
03:56:30 <elliott> 02:09:31: <pikhq> So, apparently Intel thinks it can have exaflop computing by 2020.
03:56:30 <elliott> 02:10:02: <pikhq> It is estimated that that would suffice for a whole-brain simulation from a low-level physics simulation.
03:56:30 <elliott> 02:11:35: <Sgeo> So from there we'd just need to scan in a brain?
03:56:30 <elliott> 02:12:01: <Sgeo> If I die around then, I volunteer
03:56:33 <elliott> Sgeo: I'll arrange your death.
03:57:08 <elliott> 02:19:25: <pikhq> Yes, but the point is, *we would be capable of experimenting*.
03:57:16 <elliott> pikhq: yes modifying sentient, intelligent brains at random and simulating the results
03:57:22 <elliott> that sounds productive and also extremely ethical
03:57:37 <elliott> we'd pick it up in no time, just after the first thousand or so horrific traumas
03:57:38 <pikhq> elliott: Modifying small portions thereof.
03:57:53 <elliott> i don't imagine the brain is organised in such a way to make modification of it easy
03:58:06 <elliott> it's ridiculous to expect it to be modular at the small scale like a designed computer program is
03:58:18 <elliott> 02:19:52: <Sgeo> But what are the ethics of experimentation?
03:58:18 <elliott> 02:20:03: <Sgeo> Mightn't it be cruel to the simulated person?
03:58:18 <elliott> Might? Undoubtedly.
03:58:20 <pikhq> Why the hell would we randomly change parts and test the whole brain at once? Seems like a pointless waste of computer power.
03:58:29 <pikhq> Not to mention ethical issues.
03:58:40 <elliott> pikhq: btw a hard takeoff with a modified human brain sounds insane to me
03:58:48 <elliott> We're as far from rational as you can get :)
03:59:03 <elliott> also, how do you propose simulating only part of a brain
03:59:21 -!- kjafshlkjh23 has joined.
03:59:32 <elliott> 02:26:59: <Sgeo> Although if the human can tear those biases out, that would be awesome
03:59:32 <elliott> yeah you just have to find the bias lobe and pull it out.
03:59:37 <elliott> then we become perfect bayesian rationalists.
04:00:05 <pikhq> elliott: Actually, y'know what? That whole line of thought was stupid.
04:00:16 <elliott> yes i'm feeling sorry for your past selves reading this log :(
04:00:21 <elliott> yay i think it ended
04:00:25 <Sgeo> NO NO NO YOU STUPID VIDEO GRAVITY IS NOT A RUBBER SHEET
04:00:31 <elliott> it's a rubber sheep
04:00:36 <elliott> 02:35:42: <monqy> :(
04:00:36 <elliott> 02:36:04: <monqy> what if the subject is a (terminally ill or suicidal) cat
04:00:38 <elliott> monqy: suicidal cat
04:00:45 <elliott> 02:36:23: <Sgeo> suicidal cat?
04:00:45 <elliott> 02:36:28: <monqy> suicidal cat.
04:00:45 <elliott> ah.
04:01:04 <elliott> 02:38:37: <zzo38> Lymia: Good question. I think the only thing to conclude is that if you were dead that you could not conclude, therefore do the mathematics the same thing and probability and so on, you should get the same answer regardless.
04:01:05 <elliott> good question, not necessarily good answer
04:01:18 <pikhq> No real reason we would want to do a whole-brain emulation from raw physics simulation. Though we probably *could* in 10 years, that wouldn't actually help us that much in and of itself.
04:01:25 <elliott> 02:40:18: <Sgeo> If cryonics is wrong, and MWI is true, then I'd wake up in the living world
04:01:25 <elliott> MWI doesn't imply quantum immortality, dude
04:01:40 <elliott> also "if cryonics is wrong" what is the relevance of cryonics here
04:01:41 <elliott> oh
04:01:44 <elliott> well that makes no sense at all
04:01:53 <elliott> quantum immortality is a bad deal even if it's true
04:02:02 <pikhq> What we'd want is a better understanding of how the brain works, and WBE doesn't help that too much.
04:02:13 <elliott> how do you think your human body will handle being seven thousand years old, Sgeo?
04:02:16 <Sgeo> elliott, not if the choice is "completely dead" vs "completely alive and fine" which the experiment ould be
04:02:16 <elliott> protip: incredibly badly.
04:02:19 <Sgeo> *would
04:02:28 <elliott> Sgeo: that's not quantum immortality
04:02:34 <elliott> quantum immortality is just equating observers with sentiences
04:02:46 <pikhq> Well. If a more high-level simulation could be done, it might be helpful.
04:02:48 <elliott> (plus a bit more)
04:03:10 <elliott> 02:41:23: <Sgeo> I'd also want to make sure it completely kills me without destroying my brain
04:03:10 <elliott> 02:41:29: <Sgeo> I have no idea how to accomplish this.
04:03:10 <elliott> that's sort of a contradiction
04:03:15 <elliott> ugh im just going to ignore sgeos lines
04:03:18 <elliott> 02:42:22: <monqy> quantum guillotine
04:03:18 <elliott> +
04:03:18 <pikhq> Say, if the brain actually has *some* level of higher structure, such that improvement of a digital simulation would be apparent.
04:03:45 <pikhq> Some level of simulable higher structure, I should specify.
04:03:50 <Sgeo> elliott, I just wanted cryonics to still be an option
04:04:13 <pikhq> (perhaps if clusters of neocortical columns could be considered to be black boxes?)
04:04:23 <Sgeo> So either I'd learn quantum suicide's result of MWI being true, or cryonics works, or I'm dead.
04:05:05 <elliott> Sgeo: I can't think of a situation where quantum suicide wouldn't immediately lead to a degenerate situation
04:05:20 <elliott> i.e., yes, still sentient, but beyond that...
04:05:41 <pikhq> Well. One obvious thing we could find out from successfully doing whole-brain emulation. Strong AI is computable.
04:06:16 <Sgeo> Well, forgetting the cryonics stuff, throw an equivalent amount of antimatter in at 99/100 probability, leave alone 1/100
04:06:20 <pikhq> (not that that is *too* controversial; it seems pretty unlikely that there's an oracle sitting in there. :P)
04:06:40 <Sgeo> I think 1/100 is higher than surviving antimatter in a degenerate way
04:07:22 <elliott> 07:07:26: <zzo38> Do you know if there is a way to switch Linux out of UTF-8 mode?
04:07:22 <elliott> rip out the utf lobe
04:08:07 <elliott> `addquote <Gregor> You just went from "no sexualized ads" to "we have ads for dildos, but they're different for ads for Orangina" X-D
04:08:10 <HackEgo> 459) <Gregor> You just went from "no sexualized ads" to "we have ads for dildos, but they're different for ads for Orangina" X-D
04:08:26 <Sgeo> This video called "How gravity really works" better not betray me
04:08:54 <elliott> Sgeo: you could, you know, try and learn the mathematics behind it if you want to know how it _really_ works, rather than learning a metaphor which will never be the actual workings of gravity.
04:09:12 <monqy> how everything really works
04:09:14 <monqy> with randy powell
04:09:40 <elliott> monqy: yes
04:10:10 <elliott> 15:47:19: <Sgeo> <3 hard-boiled eggs
04:10:10 <elliott> 16:09:29: <Phantom_Hoover> ...
04:10:10 <elliott> 16:11:09: <Sgeo> What?
04:10:10 <elliott> 16:11:37: <Sgeo> That wasn't a perverted sense of the word "eggs". I'm not ripping out someone's ovaries
04:10:23 <pikhq> elliott: That wouldn't let him know how it _really_ works; that is presently an open question. He could, however, learn our best understanding of it thus far. :P
04:10:35 <pikhq> Sgeo: How much physics would you say you know?
04:10:36 -!- bacaw has joined.
04:10:37 <elliott> pikhq: well for that he'd have to learn intelligent falling
04:10:40 <elliott> sgeo knows lots of metaphors
04:10:41 <elliott> i think
04:10:43 <pikhq> elliott: XD
04:10:45 <monqy> he could be indoctrinated into a gravity-cult
04:10:45 <elliott> or at least wants to know lots of metaphors
04:10:54 <monqy> or
04:10:55 <monqy> uh
04:10:56 <monqy> inducted
04:10:58 <monqy> or whatever the word is
04:11:02 <elliott> i don't know if he's expressed any interest in any sort of actual actually-mathematical-you-know physics
04:11:07 <elliott> pikhq: tru fax
04:11:30 <monqy> who needs actually mathematical you know physics when you know how it really works
04:11:37 <pikhq> elliott: So, the physics-that's-actually-difficult. :P
04:11:49 <elliott> maybe Sgeo could get a phd in pop science
04:12:21 <elliott> 16:46:19: <Vorpal> oerjan, anyway, why didn't we ignore that person who complained about it, it seems silly
04:12:29 <elliott> hard to ignore a moron who likes whining to staff.
04:12:46 <pikhq> (I'm not a physicist, but I've taken a year of it in college. Which is at least enough to get to the point that you can be not-completely-ignorant.)
04:13:18 <pikhq> Oh, right, Sgeo's got a horrendously unrigorous collegiate experience.
04:13:38 <Sgeo> I liked reading books when I was a kid, and looking stuff up online now
04:13:48 <monqy> rigour rigour rigour
04:14:13 <elliott> Sgeo: by books you mean pop science books right
04:14:15 <elliott> not like
04:14:27 <elliott> Einstein's Very Own "Relativity -- Now With More Mathematics!"
04:14:30 <Sgeo> I once vaguely, not in detail, understood that mass in a nucleus is .. it gets smaller as you go towards iron or something?
04:14:35 <elliott> by Albert "Genius" Einstein
04:14:58 <Sgeo> elliott, Einstein did write what one might call a pop science book.
04:15:01 <pikhq> Sgeo: *sigh* no.
04:15:09 <elliott> Sgeo: have you read it
04:15:17 <elliott> is it as good as calculus the easy way
04:15:29 <monqy> as if it ever wasn't
04:15:29 <Sgeo> pikhq, ok, what did I get wrong?
04:15:43 <elliott> monqy: ?
04:15:47 <monqy> oops
04:15:55 <elliott> monqy: i agree
04:15:57 <pikhq> Sgeo: As you go up the periodic table of elements, the mass in the nucleus generally goes up.
04:16:09 <Sgeo> pikhq, oh, I misphrased that
04:16:18 <Sgeo> As in.. the amount of mass in a nucleon
04:16:25 <Sgeo> Or.. something...
04:16:31 <Sgeo> Iron is special in some way, at least
04:16:58 <pikhq> Sgeo: As each number you go up, the proton count goes up by one, and the neutron count is likely to go up by some amount (it's not as clean as "goes up by one", for complex reasons).
04:17:26 <elliott> 21:03:26: <Vorpal> Phantom_Hoover, what, really?
04:17:26 <elliott> 21:03:28: <Vorpal> why
04:17:26 <elliott> 21:03:47: <Vorpal> [1..] and so on would no longer work
04:17:36 <pikhq> You're just about linearly increasing the mass whilst stepping through.
04:17:37 <Sgeo> pikhq, yes, but the mass of 52 protons+neutrons in a nucleus != mass of 52 individual protons + neutrons alone
04:17:42 <elliott> yeah, what use is a language if it can't evaluate [1..] in the standard product list type???
04:17:46 <elliott> YOU'D HAVE TO DEFINE STREAMS EVEN
04:17:55 <elliott> 21:24:36: <Phantom_Hoover> Guys, I need you to name something really, really gay.
04:17:55 <elliott> 21:24:42: <Phantom_Hoover> No time to explain. Just do it.
04:17:59 <elliott> vampire mchoover
04:18:06 <pikhq> Sgeo: Uh, wut.
04:18:08 <Lymia> elliott, Phantom_Hoover
04:18:17 <elliott> Lymia: yes hes a gay vampire
04:18:31 <elliott> 21:37:28: <Vorpal> Phantom_Hoover, which sense of the word gay do you need
04:18:31 <elliott> 21:37:44: <Vorpal> Phantom_Hoover, the old sense or the homosexual sense
04:18:31 <elliott> 21:37:49: <Vorpal> Phantom_Hoover, if the latter: Batman
04:18:34 <elliott> Batman... so homosexual.
04:18:35 * Sgeo does a bit of googling
04:18:54 * Lymia notes Sgeo down as "wtf"
04:19:14 <elliott> Lymia: it took you this long?
04:19:29 <monqy> I have sgeo down as "sgeo"
04:19:36 <elliott> monqy: pretty much this exactly
04:19:54 <Sgeo> pikhq, what are some single-isotope elementss?
04:20:08 <pikhq> Are there any?
04:20:30 <pikhq> Aside from perverse edge-cases where we've only observed a handful of atoms?
04:21:03 <Sgeo> http://en.wikipedia.org/wiki/Mononuclidic_element still loading
04:21:37 -!- kjafshlkjh23 has quit (Quit: asdf).
04:21:54 * Sgeo looks at the table, and notes that the isotopic masses aren't integers.
04:22:14 <pikhq> *That's including electrons you dolt*.
04:22:32 <elliott> pikhq: why are you hurting yourself like this
04:22:34 <elliott> come back to us son...
04:22:59 <pikhq> ... Wait, there's ones with masses less than the sum of proton and neutron. Guess there's something I don't grok happening.
04:23:08 <Sgeo> =P
04:24:46 <Sgeo> pikhq, where does the energy from fusion come from?
04:25:25 <Sgeo> BRB
04:26:10 <pikhq> Ah, 1 proton-mass is slightly less than 1 u is slightly less than 1 neutron-mass.
04:27:11 <pikhq> So of course the sum of proton-mass units and neutron-mass units is not going to be an integer expressed in u.
04:27:30 <pikhq> But merely be an approximation thereof.
04:30:16 <pikhq> Sgeo: The energy from fusion comes from the binding energy needed to bind two individual nuclei being greater than the energy needed to bind their constituents into a single nucleus.
04:30:55 <pikhq> And before you ask, the energy from *fission* comes from a mass-to-energy conversion during the fission process.
04:32:41 <Sgeo> What is the mass of He4, and what is the mass of C12?
04:32:54 <Sgeo> Wait, hold on
04:33:05 <Sgeo> n/m the hold on
04:33:07 <pikhq> C12 is precisely 12u, by definition. :P
04:33:37 <pikhq> (1u is defined as 1/12 the mass of C12)
04:33:47 <Sgeo> By your proton < u < neutron, it makes sense that protons and neutrons balance out, right?
04:33:58 <Sgeo> Oh, wait, electrons
04:34:14 <pikhq> Sgeo: If there were equal quantities of each. There aren't usually.
04:34:28 <Sgeo> There are equal quantities of each in C12 and in He4
04:35:58 <Sgeo> If the explanation for He4 mass > 4 had to do with electrons influencing the value of u, then you'd expect um... you'd still expect He4 to have an integer mass, I think.
04:38:14 <Sgeo> Yeah, because if you assuming what I think you're still assuming, then 12u = 6p+6n+6e, so /3 -> 4u = 2p + 2n + 2e
04:38:26 <pikhq> The mass of He-4 is, BTW, 4.002602u. The mass of 1 electron being... 1,822.8884845^-1 u. *Okay*, then something I don't grok is definitely happening!
04:38:50 <Sgeo> =P
04:39:33 <pikhq> Fucking quantum.
04:40:01 <Sgeo> Let's see if I can find what I'm looking for on Wikipedia
04:41:53 <Sgeo> Found it, not on Wikipedia
04:42:13 <Sgeo> http://www2.slac.stanford.edu/vvc/faqs/faq1.html
04:42:38 <Sgeo> ". Each nucleus has a mass which is a little less than the sum of the masses of the protons and neutrons that it contains."
04:43:15 <Sgeo> I think I read the right pop sci books...
04:43:51 <pikhq> I think you should take actual science courses, personally.
04:44:20 <pikhq> That you are less wrong than I on this issue is irrelevant. :P
04:46:52 <pikhq> Also, the only pop science book I've really read is Hawking's "The Universe in a Nutshell". Which doesn't even touch on the physics of atoms.
04:47:23 <Sgeo> I think where I learned this from was some Isaac Asimov book
04:47:47 <Sgeo> Isaac Asimov was pretty much my primary pop sci author as a kid
04:48:05 <pikhq> I can't say I blame you. Asimov is awesome.
04:48:30 <Sgeo> Um, except for some book on quantum physics that had pretty colors.
04:49:11 <pikhq> Which probably didn't do the subject justice, even from a pop sci perspective.
04:51:05 <Sgeo> Yeah
04:52:53 <elliott> what's the best tetris
04:53:24 <Sgeo> Gotris!
04:53:32 <Sgeo> (No, not really)
04:55:32 <elliott> pikhq: What's the standard penalty for an online music store charging more for lossless?
04:56:09 <elliott> (OK, {standard reward for actually OFFERING lossless + standard penalty for charging more for lossless} is obviously still a large positive number because of how rare that is, but still.)
04:58:14 * Sgeo pokes Lymia
04:58:21 <Sgeo> Am I still in the wtf column?
04:58:39 <elliott> hahahahahahahaha
04:58:45 <elliott> Lymia: i think you better take him out or youll hurt his feelings
05:20:52 -!- Lymia has quit (Read error: Connection reset by peer).
05:21:50 -!- zzo38 has quit (Quit: *** OH MY GOD YOU'VE GONE BLIND ***).
05:22:25 <pikhq> elliott: BitTorrent.
05:25:20 <elliott> that's not a penalty
05:25:59 <pikhq> Okay, fine, fine. 1st level of hell.
05:29:27 -!- aloril has quit (Ping timeout: 250 seconds).
05:30:29 <elliott> don't you think that's rather unfair
05:31:27 <monqy> 2nd level of hell
05:33:13 -!- IronEagle has joined.
05:33:20 <IronEagle> lol
05:33:24 <IronEagle> lol
05:33:57 -!- Nuck has joined.
05:34:21 -!- Nuck has left.
05:34:51 <monqy> hi
05:35:09 <IronEagle> hi
05:35:57 <IronEagle> so, who here programs in brainfuck
05:36:11 <monqy> what's brainfuck
05:36:14 <pikhq> Most of us have, I think.
05:37:20 -!- Lymia has joined.
05:40:14 <elliott> IronEagle: what's brainfuck??
05:41:06 <monqy> cheap P'' ripoff
05:41:09 <elliott> hahaha oh wow "Esoteric programming languages were designed to test of the boundaries of computer programming language design, but now they are more commonly used for educational purposes."
05:41:10 <elliott> http://itunes.apple.com/gb/app/esolang/id442156004?mt=8
05:41:13 <elliott> monqy rate the zeptoness of this
05:41:32 <monqy> brainfuck, _the_ esoteric language
05:42:00 <elliott> i wonder who was last educated with an esolang
05:42:15 <elliott> http://www.davenicholas.me.uk/blog/view_post/31/esolang-esoteric-programming-for-iphone oh this is going to be embarrassing to read
05:42:21 <elliott> "esolang is free and always will be"
05:42:26 <elliott> why, i'd totally pay for a bf interp on my phone
05:42:43 <elliott> monqy: I have limited the app to 256 memory locations and a max byte size of 256 to keep the foot print down. I may choose to increase this size in the future.
05:42:52 <elliott> hmm, wonder IronEagle isn't this guy, he might get offended :<
05:42:56 <elliott> [asterisk]hope
05:42:57 <elliott> not wonder...
05:43:04 <monqy> :'(
05:43:16 <monqy> so is esolang just a brainfuck interpreter or what
05:43:24 -!- aloril has joined.
05:43:25 <elliott> "How to c++ mysql mac osx" this guy is a good blog
05:43:32 <elliott> i've always wanted to know how to c++ mysql mac osx
05:44:05 <monqy> Augmented Reality on Android
05:44:07 <monqy> hello sgeo
05:44:25 <Sgeo> Hi
05:44:55 <monqy> is augmented reality comparable to virtual worlds
05:44:57 <monqy> in terms of amazing
05:45:21 <IronEagle> elliot: what?
05:45:27 <elliott> :)
05:45:33 <IronEagle> get ofended by what?
05:45:38 <IronEagle> offended
05:45:43 <Sgeo> monqy, more useful maybe, more fun, no.
05:45:48 <elliott> us making fun of yet another brainfuck impl that's on the apple store :P
05:45:49 <Sgeo> if I understand what you mean
05:46:06 <elliott> monqy: im really tempted to make the implementations section of the brainfuck esolang wiki page hidden by default since it's so polluted, discuss
05:46:54 <IronEagle> elliott: hey, I regularly explore that area.
05:47:01 <elliott> IronEagle: seriously?
05:47:12 <monqy> checking pollution now wow that's a lot
05:47:13 <elliott> its just a bunch of people writing their very first bf interpreter in five minutes then putting a link up
05:47:28 <elliott> maybe we need a separate implementations article considering how huge it is
05:47:29 <IronEagle> elliott: any excuse to say the word fuck
05:47:33 <IronEagle> :P
05:47:37 <monqy> everything brainfuck-related ever is just a mess
05:47:44 <elliott> oh maybe i should read out the implementations section
05:47:47 <elliott> like as an avant garde thing
05:47:51 <elliott> should i do that, or sleep
05:48:38 <monqy> "Brainfuck Culture" page containing derivatives, implementations, discussion, fandom
05:48:40 <pikhq> There's very few implementations of Brainfuck deserving of mention.
05:48:43 <monqy> or category who cares
05:48:57 <elliott> monqy: #REDIRECT [[Category:Shameful]]
05:49:04 <monqy> <3
05:49:09 <pikhq> You could probably just omit all the non-optimising ones and cut that list to 1/4th the size.
05:49:18 <elliott> ok im going to do this im going to read out the implementations section of the brainfuck article
05:49:20 <elliott> this is going to happen
05:49:24 <elliott> can you all handle my squeaky voice for this
05:49:26 <elliott> im going to remix it
05:49:28 <monqy> self-interpreters are pretty nifty
05:49:33 <Sgeo> pikhq, is things like considering +++++ together optimizing
05:49:34 <elliott> also,
05:49:38 <elliott> how do you pronounce Müller
05:49:46 <Sgeo> In that case, my crappy thing written in Haskell that no longer exists counts.
05:49:58 <elliott> ok im going to restart
05:50:00 <elliott> into os x
05:50:01 <elliott> and do this
05:50:03 <elliott> are you ready guys
05:50:06 <monqy> always
05:50:06 <elliott> for the masterpiece
05:50:07 <pikhq> Sgeo: If we don't count RLE, then we'd make that list be like 10 long.
05:50:12 <elliott> http://esolangs.org/wiki/Brainfuck#Implementations
05:50:14 <elliott> because
05:50:15 <elliott> that is its title
05:50:17 <elliott> ok get ready
05:50:53 <Sgeo> Wasn't referring to BF-RLE
05:50:54 -!- elliott has quit (Read error: Connection reset by peer).
05:51:04 -!- elliott has joined.
05:51:04 <IronEagle> lol
05:51:07 <IronEagle> to big
05:51:26 <elliott> you guys dont think im serious about this dramatic reading thing do you
05:51:32 <elliott> you don't BELIEVE me yet
05:53:32 <IronEagle> elliott: I spy with my little eye a brainfuck compiler made in assembly
05:53:54 <monqy> an amazing feat
05:58:39 <IronEagle> elliott: I have a language idea. brainfuck+ruby+assembly
05:58:46 <IronEagle> I shall call it: fuckbyass
05:58:58 <monqy> is it a good language idea
05:59:02 <monqy> what is the language idea
05:59:30 <IronEagle> monqy: it's yo mamma
05:59:33 <elliott> oh my god
05:59:36 <elliott> the dramatic reading is six minutes long
06:00:49 <monqy> IronEagle: my mother would make a godawful esoteric language
06:01:57 <IronEagle> .actually... why isn't there an esoteric language called 'Yo-Mamma'
06:02:03 <elliott> monqy: the beat of this reading is SICK
06:02:08 <monqy> oh yeah
06:02:24 <monqy> IronEagle: maybe because it is an awful idea and it would be awful
06:02:56 <IronEagle> and Intercal wasn't?
06:03:02 <monqy> intercal is brilliant
06:03:08 <monqy> hey IronEagle have you ever heard of something called
06:03:09 <IronEagle> or whitespace
06:03:10 <monqy> FURscript
06:03:12 <elliott> oh god
06:03:52 <elliott> monqy: have you ever heard "esolang a brainfuck interpreter for iphone written in objective c" turned into a beat
06:03:53 <elliott> EVER
06:04:06 <monqy> no, I must say I haven't
06:04:09 <monqy> ;-;
06:04:18 <IronEagle> monqy: I'm googling it now
06:04:25 <monqy> http://esolangs.org/wiki/FURscript
06:04:45 -!- pikhq_ has joined.
06:06:09 -!- pikhq has quit (Ping timeout: 246 seconds).
06:06:14 <IronEagle> monqy: HAAHAHAHAHHA
06:06:20 <IronEagle> down at the bottom
06:06:21 <elliott> ok now to read the optimising implementations section
06:06:29 <IronEagle> Category: Shameful
06:06:33 <elliott> on top of my "esolang a brainfuck interpreter for iphone written in objective c"
06:06:39 <elliott> IronEagle: I BELIEVE THAT WAS MY IDEA
06:06:43 <elliott> or slereah's, i forget who's
06:07:06 <IronEagle> "Broken Angel is working on a simple compiler in Visual Basic. Einsidler does not approve of the idea. "
06:07:14 <IronEagle> anything in visual basic is a bad idea
06:07:46 <pikhq_> https://github.com/pikhq/haskell-bfc/blob/fe9942d452d99df34a1d0687be89f9f5afedfa0b/main.hs Your compiler must be at least this good. :P
06:07:48 <monqy> Optimizing BF interpreter is a very fast C interpreter, fastest in its class.
06:07:54 <monqy> a bold statement
06:08:26 <pikhq_> monqy: Probably the fastest interpreter is a hacked-up fusion of esotope and tcc.
06:08:29 <pikhq_> :)
06:09:12 <IronEagle> monqy: especally with that YASM brainfuck compiler down a little further
06:10:01 <monqy> optimizing bf interpreter's author must be shaking in his proverbial boots
06:10:41 <elliott> monqy: it actually is
06:12:44 <IronEagle> what I don't get is, what the hell is optimizing compiled brainfuck going to do? is there a BF project large enough that it doesn't take under 1 second to finish
06:12:54 <elliott> IronEagle: yes
06:12:57 <pikhq_> Yes. Very yes.
06:13:01 <elliott> see mandelbrot.b, lostkng.b startup time
06:13:07 <elliott> gcc-bf output
06:13:12 <elliott> monqy: oh my god it's amazing
06:13:19 <pikhq_> Well, with my compiler mandelbrot.b takes like a quarter of a second.
06:13:23 <monqy> I'd remix it if I could (but I can't)
06:13:33 <pikhq_> And esotope-bfc does half that.
06:13:57 <elliott> monqy: i'll just remix it myself UNDER A PSEUDONYM
06:13:59 <IronEagle> so, who here programs in whitespace?
06:14:25 <pikhq_> (yes, I really did pull off "only half as bad as esotope" with that thing)
06:15:48 <elliott> monqy: can you play flacs
06:15:53 <monqy> I think so yes
06:17:36 <pikhq_> elliott: Say, what would you consider to be, say, the top 5 Brainfuck compilers, as far as optimisation goes?
06:17:47 <elliott> esotope, esotope, esotope, esotope, esotope
06:18:01 <pikhq_> Esotope is not 5 compilers.
06:18:18 <elliott> yes it is :)
06:18:26 <elliott> it's actually a suite !
06:18:28 <elliott> [asterisk]suite!
06:18:30 <elliott> but i meant just the bf one
06:18:36 <elliott> monqy: uploading are you READY
06:18:43 <monqy> i hope so
06:18:45 <pikhq_> Okay, esotope-bfc is not 5 compilers.
06:19:30 <elliott> monqy: at some points i just get floored and repeat a sentence over and over because i can't believe it
06:19:44 <elliott> spoiler: "Does not correctly handle nested loops." is such a point
06:19:54 <elliott> (following "A Brainfuck interpreter with debugging capabilities. Also Brainfuck to PHP/Javascript/Omgrofl converter.")
06:20:09 <monqy> how does a brainfuck implementation not handle nested loops
06:20:12 <monqy> who would do thAT
06:20:36 <elliott> I really like how I pronounced "byte (!)"
06:20:41 <pikhq_> I have by *mistake*...
06:20:45 <elliott> it's like a parrot yelling "byte"
06:20:54 <pikhq_> That was one stupid parser bug.
06:21:16 <monqy> im reading the omgrofl spec
06:21:23 <elliott> this is twenty megabytes btw but i think its worth it
06:21:27 <elliott> you have to experience this lossless really
06:22:16 <monqy> admittedly I've never understood thematic languages
06:22:33 <monqy> (except when they're amazing)
06:22:37 <elliott> easy to make
06:22:42 <monqy> ((omgrofl is not amazing))
06:22:45 <monqy> (((:'()))
06:24:30 <elliott> eighty five percent monqy
06:24:32 <elliott> eighty five percent
06:25:09 <monqy> im fantasizing about it
06:25:30 <elliott> monqy: if you're hoping for like
06:25:38 <elliott> shakespearean exclamations of the list
06:25:44 <elliott> then i tried that but unfortunately my voice is too cringeworthy to deal with it
06:25:54 <elliott> im like Sgeo except not as bad and also i know when its bad
06:26:02 * pikhq_ wonders why neither of the two C-to-Brainfuck compilers decided to use PCC.
06:26:03 <elliott> think of it as avant-garde instead
06:26:10 <elliott> monqy: http://www.mediafire.com/?2kf3id40u613db5
06:26:12 <monqy> good thing I like avant-garde
06:26:13 <elliott> sry for the shitty upload site
06:26:30 <elliott> monqy: i should send this to brian eno he'd totally remix it
06:26:35 <elliott> RIGHT UP HIS ALLEY
06:26:38 <monqy> is brian eno you
06:26:42 <elliott> yes
06:26:45 <elliott> you worked it out
06:26:46 <monqy> totally
06:27:02 <elliott> i like how the various "lol you got a new IM/highlight on IRC" noises pop in at various points
06:27:07 <elliott> its totally ambient background
06:27:40 <monqy> listening
06:28:20 <monqy> caught up with the beat
06:28:40 <monqy> wondering how to dance to this
06:28:46 <elliott> what do you mean caught up with the beat
06:28:48 <elliott> its totally in free time yo
06:28:52 <elliott> apart from the esolang iphone bit
06:28:54 <pikhq_> Your voice is funny and British.
06:29:01 <elliott> pikhq_: i don't normally sound like this
06:29:04 <elliott> i was trying to sound toneless
06:29:07 <elliott> like a robot
06:29:09 <elliott> a condescending robot
06:29:09 <monqy> I caught up with part of the beat then fell behind again
06:29:28 <pikhq_> elliott: Your voice is funny and British.
06:29:46 <elliott> :D
06:30:11 <monqy> byte (!)
06:30:18 <elliott> that cough thing after the first "does not correctly handle nested loops" is me not believing it
06:30:36 <monqy> does not correctly nested loops
06:30:45 <pikhq_> Recursion, people. Not that hard.
06:30:45 <monqy> handle oops
06:31:52 <monqy> two voices
06:31:54 <monqy> this is fancy
06:33:42 <monqy> oh god are you reading the esolang site
06:33:48 <elliott> what
06:33:53 <monqy> were you
06:33:54 <monqy> I mean
06:34:00 <elliott> that was... what that was, yes
06:34:01 <elliott> did you not realise
06:34:10 <monqy> it took me a second
06:34:13 <elliott> oh wait you mean the app store page
06:34:14 <elliott> yeah
06:34:17 <elliott> final touch
06:34:51 <elliott> this is my finest work btw
06:35:08 <elliott> monqy: should i read the furscript or esme page next
06:35:14 <monqy> aaaaaaa
06:35:23 <elliott> if I do esme ill sing the stuff in code blocks
06:35:38 <monqy> how would you even pronounce the stuff in code blocks
06:35:48 <elliott> thats for me to know and you to wonder whether you want to find out
06:35:56 -!- newsham has quit (Read error: Connection reset by peer).
06:36:18 <elliott> monqy: i'm also up for [[Snack]]
06:36:23 <elliott> and Graue's angry rant at Stux
06:36:29 <monqy> Snack....:(
06:36:31 <elliott> http://esolangs.org/wiki/User_talk:Stux
06:36:33 <elliott> the incident heading
06:36:36 <monqy> ooh I've never seen that
06:37:43 <monqy> I am imagining this as an opera and I cannot stop
06:38:10 <elliott> monqy: i will totally do that
06:38:21 <elliott> just the original comment or should I include Stux's reply
06:38:40 <monqy> I was doing it for the reply too
06:39:41 <monqy> the Hi! section is amazing too
06:42:44 <monqy> oh look someone put esolang on the wikipedia brainfuck page
06:43:05 <monqy> under external links but there
06:43:12 <elliott> monqy: im going to do Esme
06:43:44 <monqy> I've never understood esme
06:43:53 <monqy> too avant-garde
06:44:47 -!- azaq231 has quit (Quit: Leaving.).
06:45:42 -!- IronEagle has left.
06:48:41 <monqy> so the guy who put esolang there doesn't have a wikipedia account but did edit the List of female bodybuilders and douted the validity of the statement "The Eternaut has become one of the most influential comics series of the 20th century"
06:49:08 <monqy> doubted not douted what
06:49:21 <elliott> are you ready for esme
06:49:27 <monqy> I'm not sure
06:49:30 <elliott> i tried to make it sound as awkward as the language itself
06:49:37 <elliott> also I dunno how to pronounce Esme lol
06:49:50 <monqy> I was thinking like "esme" but I dunno
06:50:15 <elliott> uploading
06:50:16 <monqy> Esmé
06:50:32 <pikhq_> monqy: I'd certainly doubt the validity of that claim.
06:50:44 <pikhq_> I mean, I haven't even heard of "the Eternaut".
06:51:00 <pikhq_> Nor has Wikipedia.
06:51:16 <elliott> http://en.wikipedia.org/wiki/El_Eternauta
06:51:19 <elliott> maybe
06:51:21 <elliott> google returns that
06:51:50 <pikhq_> Seem quite obscure, though.
06:51:56 <monqy> yes I think that's it
06:52:12 <pikhq_> And has to compete with a large number of influential comics...
06:52:24 <elliott> monqy: are you ready
06:52:32 <elliott> its kind of awkward
06:52:35 <elliott> but i guess that FITS
06:52:35 <elliott> totes
06:52:42 <monqy> aaaaa
06:52:52 <elliott> http://www.mediafire.com/?019mn3890e9kwwj
06:52:55 <pikhq_> Considering that nearly all of them were made in the 20th century, saying "one of the most influential comics of the 20th century" is a ballsy claim.
06:52:59 <elliott> it has legit singing of the code block parts though monq
06:53:00 <elliott> it has legit singing of the code block parts though monqy
06:53:54 <pikhq_> I mean, shit, that's got to compete against motherfucking Little Nemo.
06:54:12 <monqy> oh god
06:54:36 <pikhq_> Or Osamu Tezuka, inventor of modern manga.
06:55:19 <pikhq_> (you may know him for such things as "large eyes" and "long-form narratives")
06:55:28 <elliott> monqy: i accidentally started singing the stub line :(
06:55:35 <monqy> it confused me :(
06:56:03 <monqy> I like how the page has been accessed ~6,862 times
06:56:10 <monqy> the esme page that is
06:56:12 <elliott> oh no, has veebeewiki gone down?
06:56:17 <elliott> aha nope
06:56:19 <elliott> http://www.festipedia.org.uk/wiki/User_talk:Dagoth_Ur,_Mad_God
06:56:28 <pikhq_> Also, *Superman* was in the 20th century...
06:56:29 <elliott> monqy: the inventor of esme like
06:56:32 <elliott> terrorised the owner of this random wiki
06:56:41 <elliott> by trying to make him switch to his nonexistent veebeewiki software
06:56:41 <elliott> its
06:56:42 <elliott> its just wow
06:56:43 <elliott> read it
06:56:45 <monqy> dagoth ur, mad god.....:(
06:56:46 <elliott> As I have pointed out on Wiki talk:About, you may NOT move Festipedia to MediaWiki and you may NOT unilaterally alter the hosting arrangements for this wiki. This is an FR Heritage Group project. All decisions about the hosting arrangements for this wiki will be made by the Heritage Group Committee and no-one else. Please stop this IMMEDIATELY --Peter Harrison (talk) 18:54, 20 June 2008 (UTC)
06:56:46 <pikhq_> AKA "the defining work of US comics".
06:56:49 <elliott> monqy: its amazing
06:56:55 <elliott> I didn't mean to do that. Why I needed FestWiki? For a private wiki called V.F.D.. Dagoth Ur, Mad God (Talk contribs E-mail) 00:53, 21 June 2008 (UTC)
06:58:40 <elliott> monqy: im going to sing [[Talk:Esme]] over the premade backing tracks offered by this "Magic GarageBand" functionality
06:58:42 <elliott> it will be a funk song
06:59:15 <monqy> magic garageband? didn't microsoft try something like that too?
06:59:21 <monqy> I remember it being hilarious but that's all
06:59:37 <pikhq_> Hasn't GarageBand had that for a while now?
07:00:07 <elliott> its not the same thing
07:00:09 <elliott> its basically like
07:00:12 <elliott> predefined backing tracks?
07:00:14 <elliott> that you can swap out?
07:00:16 <elliott> and a predefined song structure?
07:00:17 <monqy> http://www.youtube.com/watch?v=3oGFogwcx-E
07:00:17 <elliott> and
07:00:19 <elliott> yeah im just going to
07:00:25 <monqy> this is it
07:00:30 <monqy> the most amazing thing
07:00:32 <elliott> monqy: yeah songsmith is amazing but this isnt the same thing
07:00:42 <monqy> :(
07:00:43 <elliott> i have to have watched like fifty videos of putting popular songs through that thing
07:02:40 <monqy> is magic garageband at least amazing
07:03:21 <elliott> its yeah
07:03:32 <elliott> monqy: damn i didnt leave enough time to actually read it out i was too busy doing cheesy backing vocals first
07:03:37 * elliott listens to this trainwreck
07:03:39 <pikhq_> I get the feeling Songsmith works best because people tend to do fairly bland song structures by default.
07:03:44 <elliott> oh god what
07:03:45 <elliott> ahahha
07:03:51 <elliott> monqy: its done effects to my voice
07:03:52 <elliott> so it sounds like a guitar
07:03:54 <elliott> jesus what
07:03:54 <elliott> oh
07:03:56 <elliott> its set as a guitar
07:03:56 <monqy> yessssss
07:04:10 <elliott> hahahahahaha lmao
07:05:39 <elliott> monqy: yeah im just going to upload this as it is
07:05:47 <elliott> you deserve to hear
07:05:49 <monqy> i wish my voice was a guitar
07:06:14 <pikhq_> Well, you could get a talk box.
07:06:21 <elliott> monqy: its called Talk Esme Baby by the way
07:06:37 <elliott> apparently the drum track is called "Hard Working"
07:07:58 <elliott> monqy: uploading be very scared
07:08:12 <monqy> im scared
07:10:18 <elliott> pikhq_ should be scared too i expect him to listen to this amazing work of art
07:11:14 <elliott> pikhq_: monqy: http://www.mediafire.com/?oz8yd7s17bgv2zp
07:13:58 <monqy> I like how I didn't understand a word
07:14:05 <monqy> it's great
07:14:14 <elliott> monqy: well the talk page only starts like
07:14:17 <elliott> three quarters of the way through
07:14:22 <elliott> did you catch "i can't do it, i can't do it" at the end
07:14:27 <elliott> as i realise i have a url and a reply to go and 0 seconds lefr
07:14:28 <elliott> left
07:14:28 <monqy> vaguely
07:15:04 <monqy> I got sort of a icadoih/icadoih
07:15:08 <monqy> good enough
07:15:25 <elliott> :D
07:17:52 -!- monqy has quit (Quit: hello).
07:18:01 <elliott> oh man he leaves jsut as i stumble upon the best idea
07:21:46 <elliott> grauenwolf is an idiot :(
07:32:39 -!- oerjan has joined.
07:32:43 <elliott> hi oerjan
07:33:14 <oerjan> g'day elliott
07:33:26 <elliott> oerjan i read out the implementations section of the brainfuck article
07:33:33 <elliott> and also the esme page
07:33:39 <elliott> they're works of art
07:33:45 <oerjan> ic
07:33:58 <elliott> CLEARLY YOU WANT TO LISTEN TO THEM
07:34:07 -!- MigoMipo has joined.
07:34:07 <elliott> oh wait they're flacs. MY ONE WEAKNESS
07:34:57 <oerjan> uflaks
07:36:39 <elliott> three pounds of flacs
07:42:46 <olsner> get a flac jacket to protect you from all those flacs
07:43:49 <elliott> "Did it work? You bet your sweet ILAsm it worked:" --oh my fucking god jeff atwood actually just said this, best coding horror "article" yet
07:54:03 -!- elliott has quit (Remote host closed the connection).
07:55:54 -!- elliott has joined.
08:11:17 -!- choochter has joined.
08:35:04 -!- choochter has quit (Ping timeout: 263 seconds).
08:46:04 <elliott> oh hey oerjan can i bug you about... some thoughts i had for... a ring programming language :<
08:51:23 <elliott> EVIDENTLY NOT
09:08:49 <oerjan> MAYBE
09:09:09 <oerjan> it's probably going to just go around in circles, though
09:09:43 <oerjan> elliott: ^
09:09:50 <elliott> oerjan: hyuk hyuk hyuk
09:10:35 <elliott> oerjan: I was basically thinking that you could have + be parallel evaluation like has been thought here before, but the problem is that you need inverses; my idea was that every instruction in the language could be dependent on some "global" state or channel of data or whatever
09:10:48 <elliott> So you can send _any_ program into an infinite loop by simply tweaking the global data appropriately
09:11:03 <elliott> So -a becomes a sort of "hostile program" to a, using the definition of the instructions to simply send any loop it enters into an infinite one, etc.
09:11:07 <oerjan> wicked
09:11:15 <elliott> This has the fun consequence that even a simple output instruction has to be able to enter an infinite loop based on some global data
09:11:20 <elliott> But oh well, a minor cost
09:11:41 <elliott> Also to do a+b = b+a while still having output I was thinking you'd just do all output via bits, and output zero before one always
09:12:04 <oerjan> elliott: so 0 is an infinite loop? you know that 0+a = a is also an axiom?
09:12:11 <elliott> oerjan: yes, and?
09:12:15 <elliott> oerjan: + is "race"
09:12:20 <oerjan> hm oh right
09:12:22 <elliott> oerjan: whichever program terminates first (= fewest reduction steps) wins
09:12:25 <elliott> and the whole evaluation stops
09:12:41 <elliott> oerjan: but of course, you can't have a+a = a unless a=0...
09:12:52 <elliott> oerjan: if a does output, then obviously intermingling the output fixes this
09:13:01 <elliott> but I don't know how you would make a pure function fail to add to itself
09:13:13 <elliott> so I guess every operation has to try and detect itself running and mess with the global data I mentioned
09:13:14 <oerjan> um "whichever program terminates first wins" looks like it could break with _three_ programs
09:13:19 <elliott> this is a really ugly way of thinking about it of course
09:13:21 <elliott> oerjan: erm, how?
09:13:49 <oerjan> hm except parts with a and -a obviously must interact somehow
09:14:06 <elliott> well, in a+(b+c), all three programs would run simultaneously
09:14:06 <oerjan> elliott: but i mean if you add a, b, c where a is shortest run
09:14:12 <elliott> because it'd step a, and step (b+c), which would step b, and step c
09:14:28 <elliott> basically you do it with small-step reduction in mind, or at least i did
09:15:26 <oerjan> (a+b)-b
09:16:11 <elliott> oerjan: = (a+b)+b'... admittedly, a's evaluation will get fucked up
09:16:19 <elliott> but b and b' will cancel each other out. unless a stops them.
09:16:24 <elliott> hmm.
09:16:32 <elliott> it has to be equal to a ofc
09:16:35 <elliott> yeah, this is hard :(
09:16:51 <oerjan> i guess it's not _obviously_ impossible
09:17:37 <elliott> why is haskell's type system so weeeeeak
09:18:08 <elliott> oerjan: oh I suspect proving it impossible would be a very deep and difficult result, not that i'm an expert of any kind :)
09:19:05 <elliott> oerjan: cpressey's page which lead me onto thinking about this made the point that a ring seems much harder to do than a group because it gets you fairly close to a euclidean domain, and computing gcd on programs seems intuitively like something that should be "impossible"
09:19:12 <elliott> here it is
09:19:21 <elliott> "I suspect that the underlying reason that getting a ring language is hard (at least when you insist on sticking to "intuitive" operations) is because a ring is starting to approach a structure (a Euclidean domain) in which you can perform the Euclidean algorithm and obtain greatest common denominators. Now, if you could perform that algorithm on programs, you'd be able to decompose every program into "prime subprograms". This sounds intuitively
09:19:21 <elliott> a little too powerful — you'd be able to find programs which are in some sense optimal! I'm not certain this would actually *violate* established undecidability results like Rice's theorem, but it certainly sounds like it's edging up against them."
09:19:54 <oerjan> there are many rings which are _not_ euclidean domains though
09:20:18 <elliott> oerjan: ofc
09:20:23 <elliott> oerjan: but it's still getting closer :D
09:20:28 <coppro> YQY
09:20:32 <coppro> *YAY
09:20:34 <elliott> aVec :: forall n. (Nat n) => n -> Vec n ()
09:20:35 <elliott> aVec Z = Nil
09:20:35 <elliott> aVec (S n) = Cons () (aVec n)
09:20:36 <elliott> WHY DOES THIS NOT TYPE
09:20:42 <elliott> Couldn't match type `Z' with `S n0'
09:20:42 <elliott> In the pattern: Z
09:20:42 <elliott> In an equation for `aVec': aVec Z = Nil
09:20:43 <elliott> WHYYYYY
09:20:44 <coppro> bank of canada decided to import australian plastic money
09:20:57 <elliott> coppro: your long national nightmare is finally over
09:21:07 <oerjan> elliott: because Z is not a successor. hth.
09:21:10 <coppro> elliott: actually, it's worse right now, I'm in the USA
09:21:14 <elliott> oerjan: THAT MAKES NO SENSE
09:21:20 <coppro> where the solution to counterfeiting problems is "add more ink"
09:21:28 <coppro> eventually all US bills will just be solid green
09:21:31 <elliott> the best kind of money is edible
09:21:35 <elliott> like
09:21:37 <elliott> chocolate money
09:22:10 <elliott> `addquote <coppro> elliott: actually, it's worse right now, I'm in the USA <coppro> where the solution to counterfeiting problems is "add more ink" <coppro> eventually all US bills will just be solid green
09:22:14 <HackEgo> 460) <coppro> elliott: actually, it's worse right now, I'm in the USA <coppro> where the solution to counterfeiting problems is "add more ink" <coppro> eventually all US bills will just be solid green
09:22:32 <elliott> oerjan: no but seriously how do i do this kind of recursion :(
09:22:40 <elliott> hmm
09:22:42 <elliott> maybe a typeclass
09:22:58 <coppro> lol
09:23:13 <elliott> coppro: stfu noob, youve never lost a friend in the battlefield of the typesystem
09:23:19 <elliott> i've used every extension :(
09:23:33 <elliott> class (Nat n) => AVec n where aVec :: Vec n ()
09:23:33 <elliott> instance AVec Z where aVec = Nil
09:23:33 <elliott> instance (AVec n) => AVec (S n) where aVec = Cons () aVec
09:23:35 <elliott> good coding style
09:24:20 <elliott> "This (rigid, skolem) type variable" --GHC
09:24:37 <elliott> this rigid skolem, oerjan
09:24:52 <coppro> clearly all programming should be done in differential graph theory
09:25:06 <oerjan> i guess i carry some responsibility since skolem was norwegian
09:25:11 <elliott> Ticket #4499 (closed bug: fixed)
09:25:11 <elliott> Opened 7 months ago
09:25:11 <elliott> Last modified 7 months ago
09:25:11 <elliott> "skolem type variable" is bad for usability (and beginners)
09:25:34 <elliott> heh, (rigid, skolem) was the fix
09:25:46 <elliott> class (Nat n) => AVec n where aVec :: n -> Vec n ()
09:25:46 <elliott> instance AVec Z where aVec Z = Nil
09:25:46 <elliott> instance (AVec n) => AVec (S n) where aVec (S n) = () `Cons` aVec n
09:25:47 <elliott> the problem here is
09:25:50 <elliott> aVec isn't of type
09:25:54 <elliott> (forall r. (Nat r) => r -> a)
09:25:58 <elliott> so i can't use it with
09:26:03 <elliott> withNat :: (forall r. (Nat r) => r -> a) -> Int -> a
09:26:03 <elliott> withNat _ n | n < 0 = error "intNat: negative argument"
09:26:03 <elliott> withNat f 0 = f Z
09:26:03 <elliott> withNat f n = withNat (f . S) (n-1)
09:26:08 <elliott> why is typeclasses like wtf :(
09:26:09 <elliott> `quote like wtf
09:26:11 <HackEgo> 131) <fungot> alise: why internet is like wtf
09:26:19 <elliott> [asterisk]why typeclasses is like wtf :(
09:27:18 <oerjan> `run echo '#!/bin/sh' >bin/wtf
09:27:19 <HackEgo> No output.
09:27:39 <elliott> {-# LANGUAGE RankNTypes, GADTs, FlexibleInstances, UndecidableInstances, IncoherentInstances #-}
09:27:44 <oerjan> `run echo 'echo "$1 is like wtf"' >>bin/wtf
09:27:45 <elliott> straight up gangsta every day
09:27:45 <HackEgo> No output.
09:27:55 <oerjan> `run chmod +x bin/wtf
09:27:56 <HackEgo> No output.
09:28:03 <elliott> instance AVec Z where aVec Z = Nil
09:28:03 <elliott> instance (AVec n) => AVec (S n) where aVec (S n) = () `Cons` aVec n
09:28:03 <elliott> instance (Nat n) => AVec n
09:28:05 <elliott> this is my solution btw
09:28:06 <oerjan> `wtf type classes
09:28:07 <HackEgo> type classes is like wtf
09:28:11 <elliott> it just won't see the last instance
09:28:13 <elliott> sssshhhhhhh
09:28:16 <oerjan> elliott: ^ yw
09:28:20 <elliott> oerjan: thanks
09:28:22 <elliott> but whyy...
09:28:47 <elliott> *Main> main
09:28:48 <elliott> 99
09:28:48 <elliott> *** Exception: /home/elliott/Code/gentuple/gentuple.hs:32:10-26: No instance nor default method for class operation Main.aVec
09:28:48 <elliott> o fuq
09:28:59 <elliott> oh i see
09:29:09 <elliott> this suques
09:30:36 <elliott> wait what if i
09:30:36 <elliott> hmm
09:30:38 <elliott> or...
09:30:40 <elliott> but is it
09:30:59 <elliott> oerjan: what is the name for those (forall r. (Blah r) => r -> a) -> ConcreteType -> a things btw?
09:31:00 <oerjan> `run sed -i 's/"/"why /' bin/wtf
09:31:01 <HackEgo> No output.
09:31:05 <oerjan> `wtf type classes
09:31:06 <HackEgo> why type classes is like wtf
09:31:13 <elliott> they're a way to turn runtime input into types, sort of
09:31:17 <elliott> conversion function
09:31:18 * oerjan might be getting the hang of this
09:31:57 <elliott> also v. good work
09:33:02 <oerjan> hm they're to a type class like foldr is for lists, you mean?
09:33:25 <elliott> erm, not really
09:33:28 <elliott> they're for type-level values
09:33:29 <elliott> i.e.
09:33:30 <elliott> data Z
09:33:31 <elliott> data S n
09:33:32 <elliott> class Nat
09:33:34 <elliott> instance Nat Z
09:33:38 <elliott> instance Nat S n <= Nat n
09:33:39 <elliott> you know the drill
09:33:41 <elliott> except with right syntax
09:33:46 <oerjan> ok no idea
09:33:47 <elliott> its so boring that ive literally forgotten how to type it
09:33:50 <elliott> bah
09:33:57 <elliott> oh hm my idea is almost working
09:34:05 <elliott> aha, more gadts are helpin
09:34:06 <elliott> g
09:34:07 <elliott> as always
09:35:18 <oerjan> gadtflies
09:37:29 <elliott> *Main> main
09:37:29 <elliott> 99
09:37:29 <elliott> Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (
09:37:29 <elliott> Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () (Cons () Nil)))))))
09:37:33 <elliott> )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
09:37:35 <elliott> finally i am king
09:37:46 <oerjan> the king of cons
09:37:54 <elliott> king of scones
09:41:36 -!- SimonRC has quit (Ping timeout: 260 seconds).
09:41:43 -!- SimonRC has joined.
09:44:34 <elliott> oerjan: argh, I can't eliminate the runtime values
09:44:47 <elliott> :(
09:56:26 <elliott> the comments on this blog post are great, im trying to find a post calling bitcoin a ponzi scheme that doesn't use "nerd" as a putdown of anyone who supports bitcoin
09:56:30 <elliott> (there are no such comments)
09:56:56 <elliott> "Sorry, but any “currency” that flucuates in value by a factor of 20 within weeks, and was created by a pseudonymous person who may or may not be Japanese, and whose primary exchange does not have a physical address, is a joke. It Bitcoins were backed in gold, and could be traded on existing commodity markets that are run by adults, totally different story.
09:56:56 <elliott> Basically if you buy a currency that is not liquid or backed by a commodity that can be traded on real markets (versus a toy market operated by World of Warcraft types), you’re a moron, and deserve to lose your shirt."
09:57:08 <elliott> sometimes i think the best way to determine the quality of something is to see how stupid everyone who dislikes it is
10:10:35 -!- oerjan has quit (Quit: Later).
10:14:33 -!- Vorpal has joined.
10:14:43 <elliott> apoapop
10:33:00 -!- Tritonio has joined.
10:37:39 -!- Tritonio has quit (Client Quit).
10:40:51 -!- Slereah has joined.
10:55:45 -!- aloril has quit (Ping timeout: 250 seconds).
10:56:14 -!- ais523_ has joined.
10:57:14 <elliott> hi ais523_
10:57:20 <ais523_> hi
10:57:30 <ais523_> hmm, I spent most of yesterday working on an esolang
10:57:40 <ais523_> but it really needs an interp for me to be sure I have the semantics right
10:57:50 <ais523_> the difficulty is not making them work, but making them intuitive
10:57:56 <elliott> ais523_: you should have spent it doing something productive, like making an avant-garde reading of our brainfuck article's implementations list
10:57:57 <ais523_> to watch
10:57:58 <elliott> YOU KNOW, LIKE I DID
10:58:04 <ais523_> haha
10:58:10 -!- Patashu has joined.
10:58:14 <ais523_> were you trying to scare off a troll?
10:58:19 <ais523_> or just for fun?
10:58:26 <elliott> no, we just noticed how ridiculously large and terrible it is
10:59:04 <ais523_> well, there are a lot of BF impls out there
10:59:12 <elliott> then it quickly degenerated into me trying to narrate [[Talk:Esme]] over one of GarageBand's terrible premade backing songs and running out of time
10:59:22 <elliott> and then it applied a guitar effect to my voice because it was accidentally a guitar track
10:59:27 <elliott> no survivors :(
11:01:16 <ais523_> good thing I wasn't here at the time, then
11:01:21 <elliott> me too
11:02:02 <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary
11:02:06 <ais523_> so far, it has found four digits
11:02:09 <elliott> has it managed thr-
11:02:11 <elliott> hahahahaha
11:02:14 <ais523_> I hope it will find the fifth some time this week
11:02:14 <elliott> i was joking, too
11:02:23 <ais523_> unless I get bored
11:02:24 <elliott> (-ee digits was the continuation)
11:02:33 <ais523_> then I'll probably shut it down
11:02:34 <elliott> ais523_: esolang? vhdl? :-P
11:02:44 <elliott> `addquote <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary <ais523_> so far, it has found four digits <ais523_> I hope it will find the fifth some time this week
11:02:45 <HackEgo> 461) <ais523_> meanwhile, I've been running a program for over 24 hours (getting close to 48 now) which is calculating digits of pi, in binary <ais523_> so far, it has found four digits <ais523_> I hope it will find the fifth some time this week
11:02:58 <ais523_> it's a haskell program translated to an algol dialect, then compiled to vhdl, then the resulting hardware is being simulated
11:03:15 <ais523_> the program is one that would be expected to translate pretty badly to hardware, it uses lazy lists and recursion a lot
11:03:20 <elliott> how fast would it be on an irl vhdl
11:03:22 <elliott> ah
11:03:25 <elliott> by an
11:03:26 <elliott> irl vhdl
11:03:27 <elliott> i mean an fpga
11:03:34 <ais523_> rather faster, it managed something like 5 or 6 digits in a few seconds
11:03:36 <ais523_> but it was hard to tell
11:03:54 <ais523_> because if two digits in a row were the same, the only way to notice was that an LED turned off for one clock cycle
11:03:57 <ais523_> which is a few nanoseconds long
11:04:11 <elliott> ais523_: if you wrote a pi calculator idiomatically, how fast would the fpga do it?
11:04:18 <elliott> that is, in your hypothetical functional hardware lang
11:04:25 <ais523_> I'm not sure
11:04:40 <ais523_> I imagine it would be pretty fast if it used iteration and memoization of intermediate results
11:04:45 <elliott> what's the efficient method of looping with your stuff?
11:04:47 <elliott> tail recursion?
11:04:52 <elliott> right, yes
11:04:53 <ais523_> while condition do {code}
11:04:59 <elliott> ais523_: iteration = tail recursion
11:05:12 <ais523_> yes, but that's a special case of iteration
11:05:18 <ais523_> to be precise, tail recursion on commands
11:05:22 <ais523_> rather than on arbitrary functions
11:05:58 <elliott> so does your compiler actually take bona-fide non-idealisedconcurrent algol?
11:06:06 <elliott> second question, ... why
11:06:11 <ais523_> no, it's a dialect
11:06:24 <ais523_> we're trying to create a practical language based on the mathematical one by unidealising it again
11:06:24 <elliott> ah
11:06:35 <ais523_> but it isn't massively similar to any of the officially numbered versions of algol
11:06:40 <ais523_> in terms of syntax
11:06:42 <elliott> third question, why didn't you make it not look like algol and do the world a favour :P
11:06:46 <ais523_> it looks more like ML
11:06:52 <elliott> heh
11:06:55 <ais523_> or Haskell
11:07:07 <ais523_> although it isn't indentation-sensitive
11:07:10 <elliott> what does the pi program look like?
11:07:16 <elliott> or are you not at liberty to disclose that information :)
11:08:15 <ais523_> hmm, I wonder if the original Haskell is online somewhere?
11:08:34 -!- aloril has joined.
11:08:52 <elliott> ais523_: i'm more interested in seeing what the dialect actually looks like
11:09:49 <ais523_> well, to start with, it has everything-is-an-expression; it only has three nonterminals in its BNF, for expressions, types, and comma-separated lists of expressions
11:09:58 <ais523_> *comma-separated lists of identifiers
11:10:15 <ais523_> together with precedence rules
11:10:26 <ais523_> so you don't have to put parens absolutely everywhere
11:11:05 <ais523_> here's an example: \a.(new x := a; x := !x + 5; !x)
11:11:24 <ais523_> which is a function that takes an argument, stores it in a variable, adds 5 to the variable, then returns the value of the variable
11:11:26 <ais523_> umm
11:11:36 <ais523_> \a.(new x := a in x := !x + 5; !x)
11:11:44 <ais523_> in rather than ; because it's scoped
11:13:22 -!- ais523_ has changed nick to ais523.
11:13:26 -!- ais523 has changed nick to ais523_.
11:14:24 <elliott> ais523_: thanks; now I know how your language works without you having to get fired for revealing your trade-secret pi calculation program :D
11:14:50 <ais523_> the pi program is annoyingly repetitive
11:14:58 <ais523_> because at the moment, you can't use the same function both inside and outside a recursive scope
11:15:24 <elliott> EXCUSES
11:16:05 <ais523_> that's technically correct given how the compiler works, but rather non-obvious
11:16:17 <ais523_> and sufficiently annoying that it's probably better just to let the user be wrong and silently correct them
11:21:58 <elliott> haha
11:30:44 <ais523_> hmm, Oracle vs. Google is being amusing
11:31:01 <ais523_> Google pointed out that Oracle's expert's estimation of damages assumed that the only reason that people bought Android phones was to view Google's adverts
11:31:11 <ais523_> which is an interesting theory, at least
11:31:17 -!- Phantom_Hoover has joined.
11:31:31 <Phantom_Hoover> Oh look elliott is here to feast upon the blood of the living.
11:31:32 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
11:35:18 -!- Lymia has quit (Quit: bbl).
11:36:21 <Phantom_Hoover> 04:16:18: <Sgeo> As in.. the amount of mass in a nucleon
11:36:30 <Phantom_Hoover> Nuclear binding energy per nucleon.
11:37:11 <Phantom_Hoover> 04:22:14: <pikhq> *That's including electrons you dolt*.
11:37:15 <Phantom_Hoover> No, it's not.
11:37:38 <Phantom_Hoover> Mass-energy equivalence and nuclear binding energy.
11:39:22 <elliott> ?hoogle (a,a,a) -> [a]
11:39:22 <lambdabot> Data.Typeable typeOf3 :: Typeable3 t => t a b c -> TypeRep
11:39:22 <lambdabot> Data.Typeable typeOf2Default :: (Typeable3 t, Typeable a) => t a b c -> TypeRep
11:39:25 <elliott> BAH
11:41:27 <ais523_> you want functions that take the first/second/third element of a triple?
11:41:34 <ais523_> it's simple enough to write them yourselves
11:41:50 <ais523_> in fact, on average it's faster to write a quick utility function by hand than to see if it's in the standard library
11:44:28 <elliott> ais523_: I know, I was just trying to "golf" something
11:44:38 <elliott> also, that last line is really worrying, Hoogle exists for a reason
11:44:38 <ais523_> ah, I see
11:44:42 <elliott> you can find what you want instantaneously
11:44:48 <elliott> also, the Prelude is so tiny that not having it memorised is a crime
11:44:51 <ais523_> you have to type the query
11:45:06 <ais523_> (\l. match (a,_,_) with l -> a)
11:45:12 <ais523_> isn't much longer than the query you typed
11:45:18 <elliott> yep, that's certainly a bit of code that isn't valid haskell
11:45:20 <ais523_> although that's a crazy mix of Haskell and OCaml syntax
11:45:26 <elliott> hey ais523_, I never indent my code, it takes more keypresses
11:45:28 <elliott> it's always faster not to
11:45:28 <Phantom_Hoover> http://www.davenicholas.me.uk/blog/view_post/31/esolang-esoteric-programming-for-iphone
11:45:31 <ais523_> I need linguistic decontamination wrt those two
11:45:40 <ais523_> and actually, I use Emacs, not indenting takes longer
11:45:42 <elliott> Phantom_Hoover: why are you pasting that link, you just found it from here
11:45:46 <Phantom_Hoover> Hmm, doesn't this violate Apple's terms of whatever the word is.
11:45:46 <elliott> Phantom_Hoover: listen to my dramatic readings btw
11:45:59 <elliott> :t ?f.?g `fmap` x
11:46:00 <lambdabot> Not in scope: `.?'
11:46:02 <elliott> :t ?f.?g `fmap` ?x
11:46:02 <lambdabot> Not in scope: `.?'
11:46:04 <elliott> :t ?f . ?g `fmap` ?x
11:46:05 <ais523_> isn't the Haskell just (\(a,_,_).a)?
11:46:05 <lambdabot> Precedence parsing error
11:46:05 <lambdabot> cannot mix `.' [infixr 9] and `fmap' [infixl 9] in the same infix expression
11:46:09 <elliott> ais523_: no, ->
11:46:14 <ais523_> oh, right
11:46:22 <ais523_> so I'm mixing it with maths too
11:46:28 <ais523_> (OCaml is fun a -> a for lambdas)
11:46:37 <elliott> > nubBy isSpace "abc def q"
11:46:37 <lambdabot> Couldn't match expected type `GHC.Types.Char -> GHC.Bool.Bool'
11:46:38 <lambdabot> agai...
11:46:41 <elliott> :t nubBy
11:46:41 <lambdabot> forall a. (a -> a -> Bool) -> [a] -> [a]
11:46:54 <elliott> ?hoogle (a -> Bool) -> ((a,a) -> Bool)
11:46:54 <lambdabot> Data.Graph.Inductive.Query.Monad orP :: (a -> Bool) -> (b -> Bool) -> (a, b) -> Bool
11:46:58 <elliott> ?hoogle (a -> b) -> ((a,a) -> b)
11:46:59 <lambdabot> Data.Graph.Inductive.Query.Monad orP :: (a -> Bool) -> (b -> Bool) -> (a, b) -> Bool
11:47:01 <elliott> oh wait, it's both
11:47:18 <elliott> :t isSpace &&& isSpace
11:47:18 <lambdabot> Char -> (Bool, Bool)
11:47:29 <elliott> :t uncurry (curry and . isSpace &&& isSpace)
11:47:29 <lambdabot> Couldn't match expected type `(a, b)'
11:47:30 <lambdabot> against inferred type `[Bool]'
11:47:30 <lambdabot> In the first argument of `curry', namely `and'
11:47:37 <elliott> :t uncurry ((curry and .) . (isSpace &&& isSpace))
11:47:37 <lambdabot> Couldn't match expected type `(a, b)'
11:47:38 <lambdabot> against inferred type `[Bool]'
11:47:38 <lambdabot> In the first argument of `curry', namely `and'
11:47:43 <elliott> :t curry ((uncurry and .) . (isSpace &&& isSpace))
11:47:44 <lambdabot> Couldn't match expected type `b -> c' against inferred type `Bool'
11:47:44 <lambdabot> In the first argument of `uncurry', namely `and'
11:47:44 <lambdabot> In the first argument of `(.)', namely `uncurry and'
11:47:49 <elliott> :t curry (uncurry and . (isSpace &&& isSpace))
11:47:50 <lambdabot> Couldn't match expected type `b -> c' against inferred type `Bool'
11:47:50 <lambdabot> In the first argument of `uncurry', namely `and'
11:47:50 <lambdabot> In the first argument of `(.)', namely `uncurry and'
11:47:53 <elliott> :t uncurry and . (isSpace &&& isSpace
11:47:54 <elliott> :t uncurry and . (isSpace &&& isSpace)
11:47:54 <lambdabot> parse error (possibly incorrect indentation)
11:47:55 <lambdabot> Couldn't match expected type `b -> c' against inferred type `Bool'
11:47:55 <lambdabot> In the first argument of `uncurry', namely `and'
11:47:55 <lambdabot> In the first argument of `(.)', namely `uncurry and'
11:47:59 <elliott> oh
11:48:01 <elliott> duh
11:48:08 <elliott> :t curry (uncurry (&&) . (isSpace &&& isSpace))
11:48:09 <lambdabot> Couldn't match expected type `(a, b)' against inferred type `Char'
11:48:09 <lambdabot> In the first argument of `(&&&)', namely `isSpace'
11:48:09 <lambdabot> In the second argument of `(.)', namely `(isSpace &&& isSpace)'
11:48:21 <elliott> :t uncurry (&&) . (isSpace &&& isSpace)
11:48:21 <lambdabot> Char -> Bool
11:48:25 <elliott> wtf?
11:48:35 <elliott> oh, wait
11:49:03 <elliott> ?hoogle (a -> b) -> (c -> b) -> ((a,c) -> (b,b))
11:49:03 <lambdabot> Data.Graph.Inductive.Query.Monad (><) :: (a -> b) -> (c -> d) -> (a, c) -> (b, d)
11:49:06 <elliott> grr
11:49:09 <elliott> it's one of the arrow functions
11:49:15 -!- FireFly has joined.
11:49:49 <elliott> :t isSpace *** isSpace
11:49:49 <lambdabot> (Char, Char) -> (Bool, Bool)
11:49:59 <elliott> :t curry (uncurry (&&) . isSpace *** isSpace)
11:50:00 <lambdabot> Couldn't match expected type `(Bool, Bool)'
11:50:00 <lambdabot> against inferred type `Bool'
11:50:00 <lambdabot> In the second argument of `(.)', namely `isSpace'
11:50:05 <elliott> :t curry (uncurry (&&) . (isSpace *** isSpace))
11:50:06 <lambdabot> Char -> Char -> Bool
11:50:09 <elliott> ?unpl curry (uncurry (&&) . (isSpace *** isSpace))
11:50:09 <lambdabot> curry (\ c -> uncurry (&&) ((isSpace *** isSpace) c))
11:50:13 <elliott> lol
11:50:13 <elliott> ?pl curry (uncurry (&&) . (isSpace *** isSpace))
11:50:14 <lambdabot> curry (uncurry (&&) . (isSpace *** isSpace))
11:50:25 <elliott> hmm, wait...
11:50:27 <elliott> :t ap
11:50:28 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
11:50:40 <elliott> :t \x y z -> x z (y z)
11:50:40 <lambdabot> forall t t1 t2. (t -> t1 -> t2) -> (t -> t1) -> t -> t2
11:50:49 <elliott> argh
11:50:56 <elliott> (a -> b -> c) -> (a -> b) -> a -> c
11:50:56 <elliott> right
11:54:38 -!- choochter has joined.
11:56:31 <Deewiant> ?ty curry $ uncurry (&&) . join (***) isSpace
11:56:32 <lambdabot> Char -> Char -> Bool
11:56:44 <elliott> mc fancy pants
11:57:04 <elliott> > nubBy (curry $ uncurry (&&) . join (***) isSpace)
11:57:05 <lambdabot> Overlapping instances for GHC.Show.Show
11:57:05 <lambdabot> ([GHC....
11:57:10 <elliott> > nubBy (curry $ uncurry (&&) . join (***) isSpace) "arcs \n opq"
11:57:11 <lambdabot> "arcs opq"
11:57:22 <elliott> > nubBy (curry $ uncurry (&&) . join (***) isSpace) "arcs \n opq q"
11:57:24 <lambdabot> "arcs opqq"
11:57:27 <elliott> damn
11:57:54 <Phantom_Hoover> :t (***)
11:57:55 <lambdabot> forall (a :: * -> * -> *) b c b' c'. (Arrow a) => a b c -> a b' c' -> a (b, b') (c, c')
11:59:08 <CakeProphet> elliott: so when does homestuck usually update?
12:00:00 <elliott> CakeProphet: it used to average five pages a day but now it's more like four per every two days since entering the Scratch fastforwarding, and a week's hiatus has just started
12:00:09 <elliott> but... every day, usually.
12:00:15 <elliott> unless there's a Flash coming. obviously.
12:00:26 <CakeProphet> that's a pretty good turnover for a webcomic.
12:00:38 <CakeProphet> pretty admirable work ethic there.
12:00:40 <elliott> what did you expect with almost four thousand pages in two years?
12:01:20 <CakeProphet> didn't know how long it had been running.
12:01:26 <CakeProphet> well, actually yes I did
12:01:31 <CakeProphet> I just didn't think about it, really.
12:01:36 <elliott> it's shown in several panels :)
12:02:00 <CakeProphet> I paid attention, I promise.
12:02:10 <CakeProphet> I'm just got off workand such, so I'm kind of tired.
12:02:14 <CakeProphet> -'m
12:02:27 -!- BeholdMyGlory has joined.
12:02:44 <CakeProphet> also, that is why there had been less CakeProphet as of late. I'm sure everyone is terribly disappointed.
12:02:49 <CakeProphet> *had lulz
12:02:56 <CakeProphet> *s
12:03:03 <CakeProphet> 2 x lulz combo
12:03:25 <CakeProphet> (that didn't stop being a thing or anything)
12:04:15 <elliott> <elliott> ?pl \f x -> join (fmap f x)
12:04:15 <elliott> <lambdabot> (=<<)
12:04:17 <elliott> im not so smart
12:05:13 <CakeProphet> okay so (***) is like a fork in a pipeway?
12:05:50 <CakeProphet> er no, a crisscross kind of.
12:06:07 <CakeProphet> joined together...
12:06:58 <CakeProphet> it seems the tuples would get somewhat annoying to deal with.
12:09:01 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
12:09:22 -!- BeholdMyGlory has joined.
12:09:33 <elliott> Window manager warning: Received a _NET_WM_MOVERESIZE message for 0x34e0f1e (Iteratee I); these messages lack timestamps and therefore suck.
12:11:22 <ais523_> hmm, so far this program has pi at approximately 4
12:11:28 <ais523_> I'm expecting a fifth digit of -1 to revise the estimate to 3
12:11:55 <ais523_> (using 1, 0, -1 as binary digits allows you to express arbitrary computable reals without worrying about edge cases)
12:12:00 <CakeProphet> nice, then it would have single digit precision,
12:12:13 <CakeProphet> THAT IS PRECISE ENOUGH FOR ME.
12:12:54 <CakeProphet> the circumfrence of all of my circles are TRIPLE their diameter.
12:13:07 <CakeProphet> Sounds more exciting right? That means customers will dig it.
12:14:04 <ais523_> that's actually possible in slightly curved space, isn't it?
12:14:26 <CakeProphet> dude I don't know. I am going to go ahead and assume that question is not directed at me.
12:14:58 <CakeProphet> Anything non-absurd is probably possible in some space.
12:15:01 <CakeProphet> but I have no idea.
12:15:24 <ais523_> it was rhetorical at the world in general
12:15:31 <ais523_> especially as I don't know either, but it seems plausible
12:16:23 * elliott is microoptimising wc
12:17:26 <CakeProphet> elliott: using Perl right?
12:17:29 -!- choochter has quit (Quit: lang may yer lum reek..).
12:18:22 <CakeProphet> I assume you're micro-optimizing the byte count of the source file, yes?
12:18:38 <CakeProphet> No use having a big bulky wc.
12:19:00 <elliott> CakeProphet: no, using haskell
12:19:13 <elliott> Stack space overflow: current size 8388608 bytes.
12:19:13 <elliott> Use `+RTS -Ksize -RTS' to increase it.
12:19:13 <elliott> oh goody!
12:19:40 <Phantom_Hoover> <ais523_> that's actually possible in slightly curved space, isn't it?
12:19:42 <CakeProphet> the stack is an illusion.
12:19:45 <elliott> now, i could take this opportunity to learn how to fix space leaks and apply the stuff from ezyang's articles
12:19:45 <elliott> OR
12:19:48 <elliott> i could try stuffat random
12:20:02 <Phantom_Hoover> I think it's vaguely more complicated than that.
12:20:23 <CakeProphet> elliott: harness your ch'i
12:20:35 <CakeProphet> and the stack will become meaningless.
12:20:41 <CakeProphet> ^^ serious advice
12:22:43 <elliott> hmm, why do I have a stack leak??
12:22:54 <elliott> that's the one thing i shouldn't have
12:23:26 <Deewiant> ?paste
12:23:26 <lambdabot> Haskell pastebin: http://hpaste.org/
12:23:43 <elliott> psht
12:23:43 <elliott> fine
12:24:01 <elliott> http://hpaste.org/48069
12:24:19 <elliott> i realise it actually counts incorrectly, im just getting used to enumerator first :P
12:26:47 <ais523_> why ? rather than @, btw? is @ on shift-2 for you?
12:27:09 <Deewiant> I'm just used to using ?
12:27:13 <elliott> yep but actually alt+q works, i just got used to ? before i realised
12:27:18 <elliott> Deewiant: hes talking to me i think maybe
12:27:19 <elliott> oh wait probably no
12:27:19 <elliott> t
12:27:24 <Deewiant> @ used to be on altgr-2 for me
12:27:29 <Deewiant> Nowadays it's just @
12:27:34 <Deewiant> (I.e. on 2, no modifiers)
12:28:26 <ais523_> you press 2 and get @, and have to press shift-@ to get 2, or do I misunderstand you?
12:28:32 <ais523_> also, I was talking to elliott by mistake
12:28:32 <Deewiant> Correct
12:28:41 <elliott> ais523_: i do use ?, though, since the Accident :)
12:28:43 <ais523_> and wow, that's a funky setup
12:28:56 <elliott> not that funky
12:29:05 <ais523_> good to hear answers from both of you, anyway, especially as they're interesting answers
12:29:07 <elliott> if you type in punctuation-heavy proglangs all day
12:29:18 <ais523_> what if the languages are also number-heavy?
12:29:21 <elliott> heh
12:29:24 <elliott> i like to swap () and [] on my keyboard
12:29:25 <ais523_> I tend to use numbers quite a lot when programming
12:29:27 <elliott> ( and ) are in such a stupid place
12:29:34 <elliott> and [] are at such a convenient place
12:29:35 <Deewiant> I type in punctuation-heavy natural languages as well :-P
12:29:37 <elliott> but are rarely pressed
12:29:52 <elliott> also it makes lisp nicer
12:30:02 <ais523_> I'm used to using random public computers, so I'm used to the standard qwerty layout, and don't even rebind caps lock
12:30:11 <elliott> oh i havent actually done it
12:30:12 <ais523_> for fear I'll get into the habit of actually pressing that key when it means caps lock
12:30:13 <elliott> i just like to do it
12:30:13 -!- aloril has quit (Ping timeout: 250 seconds).
12:30:18 <Deewiant> I use ()! more often than numbers probably no matter what language I'm using, natural or programming
12:30:29 <elliott> you never exclaim
12:30:31 <elliott> dont be a lie Deewiant
12:30:36 <ais523_> Deewiant: that looks like Underload to me
12:31:01 <ais523_> hmm, I do have some rebindings in Emacs
12:31:16 <Deewiant> elliott: I do sometimes!
12:31:18 <ais523_> I permanently rebound C-x M-q to fill-region-as-paragraph yesterday
12:31:24 <elliott> Deewiant: im...
12:31:27 <elliott> noooooooooooo
12:31:28 <ais523_> but that's because a) it's really useful, and b) it doesn't have a keybinding by default
12:31:30 <elliott> what happened deewi
12:31:37 <ais523_> and that one is quite easy to remember, because M-q is fill-region
12:31:46 <Deewiant> Normally I wouldn't've there but that one was for you
12:31:49 <elliott> ais523_: how does that differ from m-q?
12:32:01 <Deewiant> Anyway, numbers are pretty rare :-P
12:32:13 <ais523_> elliott: it treats the region boundaries as paragraph boundaries
12:32:28 <ais523_> so it'll, say, delete double-newline inside the region, or not rewrap past the start or end of the region
12:32:33 <elliott> ah
12:32:40 <ais523_> which is useful if you're rewrapping something that doesn't fit into Emacs' usual definition of a paragraph
12:42:24 -!- elliott_ has joined.
12:43:22 -!- elliott has quit (Remote host closed the connection).
12:43:33 -!- aloril has joined.
12:44:42 <elliott_> did Deewiant fix my stack leak while i was away
12:44:57 <Deewiant> Nah, I don't know about iteratees
12:45:02 <ais523_> anyway, I fought down the urge to call the esolang elliottcraft, even though it would have been hilarious
12:45:12 <elliott_> ais523_: I approve of this idea, please reconsider
12:45:21 <elliott_> and now I have to read the context
12:45:27 <elliott_> oh, there is none
12:45:29 <elliott_> that's even better
12:45:33 <ais523_> CUBE is a pretty good name too, though, because it's based on RUBE, just 3D
12:45:51 <ais523_> and with far fewer primitives, as 3D gives you more options
12:46:01 <ais523_> it came out of that conversation we had about what was wrong with Minecraft
12:46:10 <ais523_> and I thought that a decent replacement would need an esolang to back it
12:46:15 <elliott_> haha
12:46:26 <elliott_> "WARNING: due to the current encoding of iteratees in this library, careless use of the yield primitive may violate the monad laws. To prevent this, always make sure that an iteratee never yields extra data unless it has received at least one input element."
12:46:28 <elliott_> gross :/
12:46:55 <ais523_> so it's a case of, build things yourself slowly one cube at a time, or create an infernal esolang machine to build them for you
12:47:07 <elliott_> oh
12:47:09 <ais523_> a little like Dwarf Fortress in that way, I suppose, except you have cubes rather than dwarves
12:47:10 <elliott_> that's just oklopol's game
12:47:25 <ais523_> I'm pretty sure it's TC, anyway
12:47:25 <elliott_> sry dude you've been massively preempted
12:47:34 <ais523_> meh, I don't care
12:47:39 <ais523_> more than one impl of this would be fine
12:47:50 <ais523_> although I need to actually relearn 3D graphics to implement it properly
12:47:52 <elliott_> except you maybe don't plan to go to the point where venturing _anywhere_ alone is pretty much instantly fatal :)
12:47:57 <ais523_> (that is, language = impl of the concept, impl of the language = something else)
12:48:02 <elliott_> ais523_: oh, oklopol's is two dimensional
12:48:07 <ais523_> elliott_: no, in fact dying would be kind-of hard
12:48:14 <elliott_> ais523_: you could do a Dwarf Fortress-style clusterfuck hybrid UI
12:48:17 <elliott_> voila, no opengl
12:48:21 <elliott_> or software rendering :)
12:48:39 <ais523_> I think you'd have to either deliberately crush yourself, or have someone who knew what they were attacking suddenly send a huge load of nested conveyors at you
12:48:45 <ais523_> well, stacke conveyors
12:48:49 <elliott_> stacke
12:48:50 <ais523_> *stacked conveyors
12:49:11 <ais523_> it was great when I realised you could put a mobile conveyor belt on the top of another conveyor belt and exceed what would otherwise have been the speed of light
12:50:02 <elliott_> haha
12:50:40 <ais523_> other things, too, like if you have just the one inertia cube (= cube that can't be pushed and doesn't fall) to stand on and the entirety of the rest of the world is empty
12:50:52 <ais523_> then assuming you have some method of creating a small finite number of cubes, you can bootstrap a universe from there
12:51:09 <elliott_> oh, that's nice
12:51:12 <ais523_> I think, at least, I still haven't worked out a viable method of creating a plane from scratch
12:51:20 <ais523_> it seems possible, I just keep running into details
12:51:27 <ais523_> especially as I'm trying to do all this in my head
12:51:31 <elliott_> in minecraft, without falling blocks like sand it's impossible to lower yourself down more than N blocks without taking damage
12:51:35 <elliott_> I think that's what we worked out, anyway
12:51:36 <elliott_> as in
12:51:41 <elliott_> if all terrain is more than N blocks below you
12:51:44 <elliott_> and you have no falling blocks
12:51:47 <elliott_> and only like half a heart of health
12:51:50 <elliott_> there is no way to get down without dying
12:51:57 <ais523_> I'm not sure if falls would be fatal in this
12:52:03 <ais523_> I don't think I'll have a health bar, just alive/dead
12:52:07 <elliott_> haha
12:52:13 <ais523_> that is if there's a player at all, the world can exist just fine without one
12:52:22 <ais523_> (death would come only by being crushed)
12:53:12 <elliott_> bleh, I'm using a strict fold _specifically_ here, how on earth can there be a stack overflow?
12:53:22 <elliott_> maybe the enumerator library just sucks, i'll try iteratee again
12:53:46 <elliott_> even if it does look bloated
12:56:12 <elliott_> no fold? :/
12:56:22 <elliott_> oh, there is
13:00:07 -!- Lymia has joined.
13:03:10 <ais523_> anyway, oklopol's version seems interesting, I should look at it
13:05:12 <elliott_> oh, wait, I think I know why I have a stack overflow
13:05:16 <elliott_> ugh I'm dumb
13:06:25 <elliott_> hey, I'm faster than gnu wc
13:06:31 <elliott_> OK, I get different /results/ to GNU wc
13:06:33 <elliott_> but that's not the point
13:06:52 <elliott_> me: 0.224s
13:06:52 <Deewiant> elliott_: Why was it?
13:06:54 <ais523_> can you be faster while getting the same results?
13:06:54 <elliott_> gnu: 4.013s
13:06:59 <elliott_> Deewiant: Int thunks :-)
13:07:05 <elliott_> Deewiant: My fold accumulator was (l,w,c)
13:07:12 <elliott_> Changing it to (!l,!w,!c) makes it go swimmingly
13:07:19 <elliott_> where go :: (Int,Int,Int) -> Word8 -> (Int,Int,Int)
13:07:19 <elliott_> go (!l,!w,!c) 32 = (l, w+1, c+1)
13:07:19 <elliott_> go (!l,!w,!c) 10 = (l+1, w+1, c+1)
13:07:19 <elliott_> go (!l,!w,!c) _ = (l, w, c+1)
13:07:21 <Deewiant> I thought about that but for some reason thought + was strict
13:07:26 <elliott_> It is
13:07:28 <Deewiant> Oh, () isn't
13:07:29 <Deewiant> Right
13:07:34 <elliott_> (,,,) isn't :P
13:07:46 <elliott_> ais523_: I think so, yes
13:07:54 <Deewiant> elliott_: Try LC_ALL=C wc
13:07:58 <elliott_> ais523_: It's just a matter of skipping over consecutive whitespace when counting words
13:08:06 <elliott_> Deewiant: I consider "a b" to have three words
13:08:09 <elliott_> Nothing to do with multibyte
13:08:16 <elliott_> The file is totally invalid utf-anything, anyway
13:08:18 <elliott_> (It's from /dev/urandom :-))
13:08:28 <Deewiant> I'm sure that LC_ALL=C will speed it up though
13:08:30 <ais523_> elliott_: I think Deewiant's saying that GNU wc may be trying to do multibyte and slowing down as a result
13:08:31 <elliott_> Fair nuff
13:08:53 <elliott_> OK, now GNU just takes 0m0.726s
13:08:56 <elliott_> But I'm still faster, nyahh
13:09:12 <elliott_> Also my code is shorter than GNU wc's :P
13:09:54 <elliott_> I'm gonna see whether iteratee or enumerator is faster at this now :P
13:10:24 <elliott_> Deewiant: ais523_: If you're curious, this is the code: http://sprunge.us/FMMF
13:10:37 <elliott_> Pleasantly short
13:10:43 <elliott_> If slightly broken for now :-)
13:10:45 <Deewiant> You already pasted that
13:10:49 <ais523_> if I'm not curious, is it still the code?
13:10:50 <elliott_> Deewiant: No, I didn't
13:10:56 <Deewiant> Oh, except using a different iteratee?
13:10:57 <elliott_> Deewiant: I pasted an old, broken version
13:11:04 <elliott_> Which also had a massive stack leak
13:11:19 <elliott_> ais523_: You'll have to look at it to find out.
13:11:46 <ais523_> elliott_: no, that would defeat the point of the experiment
13:11:54 <ais523_> unless I wasn't curious at the time
13:12:03 <elliott_> ais523_: Just look at it REALLY passively.
13:12:04 <ais523_> but it'd be hard to look at it without being curious about it
13:12:08 <ais523_> unless someone paid me, or something
13:12:13 <elliott_> Deal.
13:12:35 <ais523_> (note: without knowing what a deal /is/, accepting it can be a bad idea...)
13:16:19 <elliott_> As I expected, enumerator is consistently just a bit slower
13:16:27 <elliott_> I suspect because it uses lists for chunks rather than ByteStrings
13:16:31 <elliott_> ais523_: served me fine in Agora
13:16:56 <ais523_> I'm not sure if I think so...
13:17:15 <ais523_> part of the issue is that Agora's legal system was (and is) relatively spineless
13:17:20 <elliott_> ais523_: Hey, I'm consistently a player more often than Wooble and tswett
13:17:27 <elliott_> That's winning in my book
13:17:58 <ais523_> what do you think of Pavitra's ambiguous registration attempt, btw?
13:18:13 <elliott_> But yeah, you're right, I don't even know how you'd go about getting exiled; I'm honestly surprised everyone's just forgiven Yally, since he kept up his violation spree even /after/ his point was made
13:18:30 <elliott_> ais523_: I think the silly overly-accepting definition of registration makes it way too ambiguous to judge without being a mind-reader
13:18:35 <elliott_> I suspect he's not a player because he wanted there to be ambiguity
13:18:43 <elliott_> If it was another action, I might actually have to think about it
13:19:08 <ais523_> I tried to argue once that attempting an ambiguous registration was itself evidence that you wanted to be a player, but I think I got appealed and overruled on that one
13:19:27 <elliott_> Maybe people expressing a general liking of Agora on the lists and participating regularly should count as wanting to be a player
13:19:35 <elliott_> You clearly want to participate, and have no objection to the game
13:19:59 <elliott_> oh no, oleg already did a benchmarked wc with iteratees
13:20:07 <elliott_> <-- sad
13:20:13 <elliott_> I'LL DO BETTER
13:20:22 <ais523_> and, being oleg, it is necessarily better than any other wc anyone can ever right?
13:20:27 <ais523_> *ever writ?
13:20:29 <ais523_> *ever write?
13:20:36 <elliott_> probably, he sure seems to have paid a lot of attention to it
13:20:45 <elliott_> ugh he does it really elegantly
13:20:50 <ais523_> note: for some reason, my typing-out-of-habit converts sounds to key sequences, not words to key sequences
13:20:52 <elliott_> he does line-counting and char-counting and word-counting completely separately
13:20:54 <elliott_> and just pairs them together
13:21:04 <elliott_> because iteratees let you do that while still only processing the input stream once
13:21:20 <elliott_> haskell sure is purty :<
13:23:12 <Deewiant> You might be able to speed it up by putting them together manually
13:23:22 <Deewiant> If that's your goal
13:23:30 <elliott_> Deewiant: I'll try and replicate his program first with a modern iteratee library
13:23:43 <elliott_> Since nobody actually uses his AFAIK :P
13:23:48 <elliott_> Does anyone actually use Oleg code directly? :-)
13:27:35 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:31:31 -!- cheater_ has quit (Ping timeout: 264 seconds).
13:33:56 <elliott_> egh, how do you even combine two...
13:34:13 <elliott_> ?hoogle enumPair
13:34:13 <lambdabot> No results found
13:56:55 -!- copumpkin has joined.
13:56:56 -!- copumpkin has quit (Changing host).
13:56:56 -!- copumpkin has joined.
13:59:48 <elliott_> copumpkin how do iteratees work i need the two minute version
13:59:51 <elliott_> erm
13:59:53 <elliott_> rather
14:00:03 <elliott_> how do i run two iteratees in parallel with the iteratee package :D
14:00:06 <elliott_> i know how they work
14:00:06 <elliott_> i
14:00:10 <elliott_> can't find it in the documentation :(
14:00:11 <copumpkin> beats me, I don't know the packages for them
14:00:13 <elliott_> i am close to giving up, on everything
14:00:18 <elliott_> and crying forever
14:00:23 <elliott_> it's a distinct possibility
14:02:01 <elliott_> eneeCheckIfDone :: (Monad m, NullPoint elo) => ((Stream eli -> Iteratee eli m a) -> Iteratee elo m (Iteratee eli m a)) -> Enumeratee elo eli m a
14:02:03 <elliott_> what.......
14:09:10 -!- ais523_ has quit (Quit: Page closed).
14:24:29 <elliott_> im bringing out the big boys, wc on one gig file
14:25:47 <elliott_> $ time ./wc quux
14:25:47 <elliott_> 4195819 4193543 1073741824
14:25:47 <elliott_> real0m5.058s
14:25:53 <elliott_> not bad at all!!
14:26:28 <elliott_> wc takes fourteen seconds, even with LC_ALL=C
14:26:37 <elliott_> ok todo: fix word handling
14:28:24 <elliott_> :T groupBy
14:28:26 <elliott_> :t groupBy
14:28:27 <lambdabot> forall a. (a -> a -> Bool) -> [a] -> [[a]]
14:28:34 <elliott_> > groupBy (not . isSpace) "abc def quux"
14:28:34 <lambdabot> Couldn't match expected type `a -> GHC.Bool.Bool'
14:28:35 <lambdabot> against inferred ...
14:28:52 <elliott_> > groupBy (\a b -> not (isSpace a) && isSpace b) "abc def quux"
14:28:53 <lambdabot> ["a","b","c ","d","e","f ","q","u","u","x"]
14:28:59 <elliott_> > groupBy (\a b -> isSpace a && isSpace b) "abc def quux"
14:29:00 <lambdabot> ["a","b","c"," ","d","e","f"," ","q","u","u","x"]
14:29:04 <elliott_> > groupBy (\a b -> not (isSpace a && isSpace b)) "abc def quux"
14:29:05 <lambdabot> ["abc def quux"]
14:32:07 <tswett> elliott_: I see.
14:32:12 <elliott_> yes.
14:43:54 <elliott_> ok i'm bored of wc
14:47:17 <Lymia> elliott_, your Haskell wc was faster than the C one?
14:47:56 <elliott_> Lymia: yes, although it's not quite fair:
14:48:10 <elliott_> - I don't actually count words properly (but I did something _as expensive_ as doing it properly :))
14:48:17 <elliott_> - I have fewer features
14:48:24 <elliott_> Although I suppose the only extra feature wc has is... multibyte support
14:48:28 <elliott_> And I turned that off with LC_ALL
14:48:45 <elliott_> Lymia: So yeah, ha ha ha, I beat GNU with twenty lines of Haskell.
14:48:56 <elliott_> ...and a bunch of good libraries.
14:49:02 <Lymia> Heh.
14:49:04 <elliott_> (OK, a bunch = one)
14:49:57 <Lymia> How much run-time overhead is there to Haskell code vs C code anyways?
14:50:12 <elliott_> ask a question that makes sense and perhaps you will receive an answer :)
14:54:07 <Lymia> What does sense mean?
14:54:18 <elliott_> it means nothing :|
15:00:20 <Patashu> it depends what you're using to run the haskell code
15:00:55 <Patashu> also, isn't there that special cpu that's designed to speed up haskell
15:00:59 <Patashu> the reducertron or something
15:01:36 <elliott_> lol
15:01:38 <elliott_> reduceron
15:01:43 <elliott_> it doesn't actually run haskell
15:01:46 <elliott_> just a subset graph reduction language
15:01:58 <elliott_> but yeah it reduces purely functional programs super fast
15:03:08 <Patashu> haskell -> reduceron compiler gogogo
15:03:55 <elliott_> Patashu: it wouldn't be hard
15:04:00 <elliott_> ghc core is pretty close sort of
15:05:15 -!- hiato has joined.
15:08:04 <elliott_> hi hiato
15:08:22 <hiato> greetings elliott_
15:09:37 * Lymia hugs hiato
15:09:38 <Lymia> Hi!
15:10:00 <hiato> salutations, Lymia
15:10:15 <hiato> is today a particularly good day Lymia ?
15:10:53 -!- variable has joined.
15:10:59 <Lymia> Not enough hugs
15:11:17 <hiato> I see
15:12:10 -!- MigoMipo has quit (Read error: Connection reset by peer).
15:35:14 -!- myndzi has quit (Ping timeout: 258 seconds).
15:38:25 <elliott_> hmm, if not wc then what
15:38:34 <elliott_> WHAT OTHER PROGRAMS _ARE_ THERE
15:38:57 -!- IronEagle has joined.
15:40:32 <Patashu> cal
15:40:33 <elliott_> @Mehrdad Even if Haskell has a procedural language for IO there is a big difference between Haskell and Scheme. Say that you write [putStrLn "ABCDE", putStrLn "12345"] in Haskell. This will not do any IO. It's a list of two IO computations, but they have to "get in contact" with main to actually execute. So IO values really do behave like any other values in Haskell, except that main is special. – augustss 2 days ago
15:40:33 <elliott_> @sdcvvc: Thanks for the link, looking at it right now. @augustss: I don't see how the fact that everything is delayed makes Haskell purely functional... if you delay it, it's still going to happen, but it's just later than when you think. How does that make any difference? – Mehrdad yesterday
15:40:33 <lambdabot> Unknown command, try @list
15:40:33 <lambdabot> Unknown command, try @list
15:40:36 <elliott_> stackoverflow :(
15:43:51 -!- monqy has joined.
15:45:44 <elliott_> hi monqy
15:46:23 <monqy> hi
15:50:16 -!- Lymia has quit (Ping timeout: 260 seconds).
15:50:47 -!- Lymia has joined.
15:56:14 -!- DocHerrings has joined.
15:59:14 <IronEagle> elliott_, monqy: hello again.
15:59:52 <elliott_> hello
16:00:17 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
16:00:18 <DocHerrings> Okay, Eodermdrome Interpreter v2.0 complete
16:01:16 <DocHerrings> Anyone want to help me debug? I promise it looks better - I even used comments! ;) http://pastebin.com/WudDDi4Y
16:03:17 <DocHerrings> ^ elliott_ ?
16:04:10 <elliott_> oh hey cool hi
16:04:23 <elliott_> i am rather tired so i do not know how much help I will be :)
16:04:26 <elliott_> is it still broken?
16:04:29 <elliott_> it looks prettier tho
16:04:33 <elliott_> (defun graph-transform (subgraph sclosed replacement rclosed)
16:04:33 <elliott_> (progn
16:04:36 <elliott_> doesn't defun have implicit progn
16:04:44 <DocHerrings> It works much better.
16:05:15 <DocHerrings> And yes, sorry. To many if statements and etc mean I reflexively use progn to be safe.
16:05:36 <elliott_> "sorry"? i was just curious :)
16:05:41 <elliott_> and by much better, does it run the example or not? :D
16:05:52 <elliott_> ais was here earlier, you just missed him :(
16:06:07 <DocHerrings> It does work, with my test-case program.
16:06:21 <elliott_> yay
16:06:32 <elliott_> if oerjan's program doesn't i suspect it's simply broken, the program that is
16:07:37 <DocHerrings> Well, it does work... now I just have to make it a bit less deterministic. As it is, rules are checked in-order.
16:09:13 -!- myndzi has joined.
16:13:03 -!- IronEagle has quit (Read error: Connection reset by peer).
16:13:11 -!- IronEagle has joined.
16:13:13 <elliott_> DocHerrings: heh :)
16:13:32 <DocHerrings> what?
16:13:37 <elliott_> wrt less deterministic
16:13:45 <elliott_> DocHerrings: you might want to permute the rules or similar rather than using icky unreliable random numbers :)
16:14:17 <DocHerrings> That's what I was thinking. Maybe scramble the rule table every 5 iterations?
16:15:48 <DocHerrings> elliott_ : I think I know why orjan's program does not work. I think he forgot the closed node degree rule.
16:16:19 <elliott_> shhhh, he might ban you :)
16:16:29 <elliott_> DocHerrings: i'd scramble it every iteration, more fun
16:16:39 <DocHerrings> Gasp! ;)
16:17:29 <DocHerrings> He should thank me, now he can be right!
16:18:00 <Phantom_Hoover> DocHerrings, wait, you wrote an Eodermdrome interpreter?
16:18:14 <DocHerrings> Yes, yes I did, Phantom_Hoover.
16:18:21 <Phantom_Hoover> Bastard!
16:18:23 <DocHerrings> ?
16:18:29 <Phantom_Hoover> I was going to do that!
16:18:33 <Phantom_Hoover> At some point!
16:18:41 <Phantom_Hoover> In the near-to-mid-to-distant future!
16:18:46 <DocHerrings> Sorry. We can compare notes/implementations some day.
16:20:24 <DocHerrings> I honestly can't imagine a better way to implement it than I did, so it would be interesting to see some other method.
16:21:02 <DocHerrings> Wait....
16:21:32 <elliott_> i hope DocHerrings realises all this hostility is false :D
16:21:48 <DocHerrings> Hold on, oerjan's code might be correct. I made one assumption that I meant to ask ais about.
16:21:59 <DocHerrings> And yes, I get the jokes. :p
16:22:18 <Phantom_Hoover> Also I was totally going to use Haskell to do it so my implementation is better even though it doesn't and probably won't exist.
16:22:36 <Phantom_Hoover> Oh, you're the Arborealis guy.
16:22:39 <Phantom_Hoover> All is forgiven.
16:23:34 <DocHerrings> Is it ironic that someone beat me to implementing my own language?
16:24:38 <Phantom_Hoover> No.
16:24:58 <IronEagle> DocHerrings: no, but it is funny as all hell.
16:25:46 <DocHerrings> I blame python for making it to easy. And it seems the Arborealis bug died out already.
16:25:52 <DocHerrings> *too
16:26:01 <Phantom_Hoover> IronEagle, sorry, you realise that Eodermdrome wasn't implemented for quite a few years.
16:26:02 <Sgeo> What would happen if the FURscript person came here?
16:26:29 <IronEagle> Sgeo: who?
16:26:37 <Phantom_Hoover> Sgeo, we would all be nice to him in a clearly sarcastic way.
16:26:43 <IronEagle> 'the'? only one?
16:27:21 <Sgeo> IronEagle, http://esolangs.org/wiki/FURscript whoever made this
16:27:31 <IronEagle> what do you all hate about FURscript?
16:27:44 <elliott_> you have to ask? :D
16:28:02 <DocHerrings> Pretty much everything.
16:28:22 <IronEagle> elliot_: it doesn't seem that bad. it's bad, but its not THAT bad.
16:28:35 <elliott_> did you erm, read it?
16:28:44 <IronEagle> yes
16:28:45 <elliott_> [DRVFREE="DIRECTORY"] CHECKS THE SPACE OF THE DRIVE (MB'S)
16:28:45 <elliott_> [DIRFORMAT="DIRECTORY","BYPASSSECURITY?"] FORMATS A DRIVE AND ASKS WHETHER TO BYPASS ALL RESTRICTIONS
16:28:46 <DocHerrings> It haunts my coding nightmares.
16:28:48 <elliott_> this is not a language
16:28:51 <elliott_> [SYSDIAG] CHECKS THE OS VERSION
16:28:54 <elliott_> these don't even do anything
16:29:06 <elliott_> this is a random string of words where some commands have : and others a space and others = and it has no control flow
16:29:07 <elliott_> no variables
16:29:10 <elliott_> nothing program at all
16:29:19 <elliott_> it defines "procedures" but not what a procedure is, how it's named, anything
16:29:29 <DocHerrings> And the caps... well, that is just par for course in hell.
16:29:40 <elliott_> it's amazing really, it betrays a complete lack of understanding of... any possible concept of programming
16:29:56 <Sgeo> It's like HQ9+ except the author thinks it's usable
16:30:11 <IronEagle> elliott_: well, it does seem to be only a concept. It doesn't say that the compiler that will implement it can't have variables
16:30:33 <Sgeo> Ooh! Variables as an implementation-defined feature
16:31:03 <elliott_> all I'm saying is, if the articles in [[Category:Shameful]] don't set off major alarm bells in your head, you _might_ be reading them wrong
16:31:18 <elliott_> apart from Esme, Esme shouldn't set off alarm bells, it's just the best language.
16:31:20 <Sgeo> I just created an awesome awesome language.
16:31:27 <elliott_> Sgeo: is it everything is implementation defined
16:31:31 <Sgeo> elliott_, yes
16:31:34 <elliott_> awesome
16:31:38 <elliott_> i can do literally everything with it
16:32:31 <Phantom_Hoover> EgoBot needs an Esme interpreter.
16:32:52 <IronEagle> elliot_: I just see potential. there is a language created to be the hardest to understand, WHY NOT a language meant to be the most hated language?
16:33:09 <elliott_> IronEagle: but the guy who made it is, according to the source who dumped it there, completely serious and sincere about it
16:33:13 <elliott_> and doesn't even think it's an esoteric language
16:33:14 <Phantom_Hoover> IronEagle, which language is that?
16:33:20 <elliott_> The person who designed this language was 100% serious about it and the vb6 compiler, but I think he got as far as a text box and a copyright notice before going back to programming his graphics calculator. --Einsidler 10:44, 24 Nov 2006 (UTC)
16:33:22 <elliott_> Phantom_Hoover: FURscript.
16:33:29 <DocHerrings> I thought that was Malbore's nitch anyways...
16:33:36 <elliott_> Phantom_Hoover: I'll add an Esme interpreter to EgoBot.
16:33:41 <Phantom_Hoover> elliott_, no, hardest to understand.
16:33:42 <Sgeo> Hey, I liked programming my graphics calculator!
16:33:58 <elliott_> !veebeewiki\esmerelda BootStrapInstall:E S M E; \E\S\M\e\I\n\s\t\al\l
16:34:01 <elliott_> Phantom_Hoover: There we go.
16:34:23 <elliott_> Phantom_Hoover: Please go to http://www.vfd.org/esmeralda-cgi-bin/egobot.pl to use it.
16:34:24 <Sgeo> EsoShell?
16:34:44 <Phantom_Hoover> -_-
16:34:45 <Sgeo> Sounds vaguely PESOIX related, which is PSOX related...
16:34:55 <Sgeo> The creator of Esme is a blasphemer!
16:35:00 <Sgeo> BLASPHEMY!
16:35:13 <Phantom_Hoover> Who mentioned EsoShell?
16:35:28 <Sgeo> http://esolangs.org/wiki/Esme
16:35:35 <Sgeo> "The VeeBeeWiki wiki software needs Esme and Perl to run. The software also needs EsmeCSS: and EsoShell: namespaces."
16:35:40 <IronEagle> ...did I break the chat?
16:35:49 <elliott_> Phantom_Hoover: /msg
16:35:52 <Sgeo> What?
16:35:54 <elliott_> IronEagle: we're still talking aren't we?
16:36:12 <Phantom_Hoover> elliott_, wha?
16:36:16 <Phantom_Hoover> If you /msg me, it shows up.
16:36:20 <elliott_> Phantom_Hoover: ive been sending you /msgs
16:36:24 -!- IronEagle has quit (Read error: Operation timed out).
16:36:29 <elliott_> rip ironeagle
16:36:29 <Phantom_Hoover> If I haven't responded, it probably means I didn't have anything to say.
16:36:32 <elliott_> died of furscript
16:36:48 <elliott_> Phantom_Hoover: inside i am crying
16:36:54 <Phantom_Hoover> Or that my goddamn connection went down but it's been pretty good for the last couple of days.
16:37:15 <elliott_> i just said "HELLO CAN YOU HEAR ME" did you get that
16:37:18 <elliott_> if so your connection is not down
16:37:24 <DocHerrings> The shameful category really needs to exist.
16:37:39 -!- aloril has quit (Ping timeout: 250 seconds).
16:38:19 <elliott_> DocHerrings: If we create the page, the Great Summoning will occur, and Graue will reap our souls from the deep.
16:39:11 <DocHerrings> elliott_: then we will save it for the great Ending, when FURscript becomes popular.
16:39:25 <elliott_> maybe ironeagle created furscript and we hurt their feelings :(
16:39:31 <elliott_> i feel bad now. kind of.
16:39:53 <Phantom_Hoover> elliott_, I have had one or two congenial emails from graue; may I brave his terrible wrath?
16:40:00 <elliott_> Phantom_Hoover: NOBODY CAN
16:40:05 <elliott_> STUX TRIED AND WE NEVER HEARD FROM HIM AGAIN
16:40:18 <DocHerrings> Nope, because even ironeagle admitted that it was a hateful language, elliott_
16:40:35 <elliott_> hmmmm
16:41:41 <DocHerrings> Oh, and I am terrified to admit that oerjan's program is almost certainty wrong.
16:42:15 <elliott_> GASP
16:42:22 * Phantom_Hoover casts himself in front of DocHerrings to take the blow.
16:42:37 <DocHerrings> NNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
16:43:23 <DocHerrings> Would it make it worse if I fix the program?
16:44:06 <elliott_> Yes.
16:44:12 <Phantom_Hoover> DocHerrings, don't worry, I'm already dead.
16:44:13 <elliott_> That would be thinking yourself as good as oerjan.
16:44:17 <Phantom_Hoover> And a hoover.
16:44:18 <Phantom_Hoover> And a vampire.
16:44:18 <Phantom_Hoover> And gay.
16:44:35 <Phantom_Hoover> (These last two are according to fungot, though.)
16:44:49 <DocHerrings> elliott_ : GASP, that's impossible! Best not to anger him then.
16:45:08 <DocHerrings> I will let sleeping graphs lie. :p
16:46:44 <Phantom_Hoover> DocHerrings, what's wrong with it?
16:47:05 <DocHerrings> Well, here is the assumption that has me stumped: Are all connections unique?
16:47:59 <elliott_> you cannot possibly hope to answer such questions without oerjan's phd
16:48:05 <elliott_> ask him sometime
16:48:07 <DocHerrings> To put it graphically, is 'ab' the same as 'aba'?
16:49:12 <DocHerrings> The problem is, no matter what I assume, oerjan's program still terminates after the first match.
16:50:08 -!- aloril has joined.
16:54:31 <Phantom_Hoover> DocHerrings, you mean is it a multigraph?
16:54:39 <Phantom_Hoover> It seems safe to assume that it isn't.
16:55:01 <DocHerrings> Well, oerjan's program does not work in either case, and I did make that assumption.
16:55:27 <Phantom_Hoover> Hmm. Have you traced it manually?
16:55:56 <DocHerrings> Yes
16:56:38 <Phantom_Hoover> Come to think of it, I'm sceptical of oerjan's init structure.
16:57:23 <Phantom_Hoover> I parse miewehit as (m-i-e-w) (e-h) (i-t)m which isn't how he does it.
16:57:30 <Sgeo> <insert snarky and inappropriate comment here>
16:57:51 <Phantom_Hoover> Oh, wait, that's not how it works.
16:58:17 <Phantom_Hoover> It's simpler than I though, actually.
16:58:52 <Phantom_Hoover> *thought
17:19:41 <Sgeo> Dear Global Agenda updater: Please stop guessing time based on percentage and the assumption you're downloading the entire game again.
17:20:17 <Sgeo> That was a fasst 9 hours
17:21:59 -!- oerjan has joined.
17:24:31 <DocHerrings> Ah ha!
17:24:54 <DocHerrings> Okay, I will admit, my bad. I missed a very important tidbit in the specs.
17:25:05 <DocHerrings> Hmmm, now how to fix the interpreter
17:25:06 <Phantom_Hoover> Does that fix it?
17:25:14 <Phantom_Hoover> And what's the tidbit?
17:25:28 <DocHerrings> The name of the node is immaterial.
17:26:12 <Phantom_Hoover> It... is?
17:26:19 <DocHerrings> Well that makes everything terrible.
17:26:44 <Phantom_Hoover> Um, it is?
17:26:52 <Phantom_Hoover> The algorithm suggests it isn't.
17:27:04 <DocHerrings> How the heck am I going to implement this? The shape if of the graph is what matters, nothing else.
17:27:23 <DocHerrings> I had each node being identified by name.
17:27:26 <Phantom_Hoover> Wait, you weren't calculating isomorphism‽
17:27:43 <oerjan> ...whoops...
17:27:54 <Phantom_Hoover> I should've looked at your code, I could have saved you hours.
17:28:22 <DocHerrings> Yes, I was. But I was calculating it strictly. I had all nodes being unique.
17:29:48 <oerjan> DocHerrings: um the nodes in a given rule are distinct, if that's what you mean
17:30:02 <DocHerrings> Yes. That was it.
17:30:57 <oerjan> they certainly should be distinct. they're just not necessarily the same from each application of a rule to the next.
17:31:48 <DocHerrings> Well, all that needs to be changed is the subgraph matching portion. Not too bad.
17:32:13 <oerjan> oh wait, are you still confused about whether aba == ab
17:32:36 <Phantom_Hoover> DocHerrings, sorry, let me get this straight: were you matching nodes by label to detect subgraphs?
17:32:36 <Phantom_Hoover> Or just for moving nodes around while replacing?
17:32:38 <Phantom_Hoover> DocHerrings, erm, what are you labelling created closed nodes as?
17:32:46 <oerjan> different occurences of the same letter in a rule are identical nodes, of course
17:33:02 <oerjan> *occurrences, er lemme look that up
17:33:53 <DocHerrings> Phantom_Hoover: The nodes were identified internally by letter, making this implementation essentially a 'strict' eodermdrome.
17:34:21 <Phantom_Hoover> oerjan, yeah, but it looks like he stores the whole graph as (label,label) where label is a character.
17:34:25 <Phantom_Hoover> DocHerrings, you mean there can't be more than 26 nodes?
17:35:32 <DocHerrings> Phantom_Hoover: well, this explains two things, one: the implementation felt too easy, and two: I was puzzled how a limited system could be turing complete.
17:36:18 <Phantom_Hoover> DocHerrings, FWIW, your label system is salvageable with some modifications.
17:36:58 <DocHerrings> Phantom_Hoover: Yes, I am aware. The set up is sound, just the graph re-writing system needs work.
17:37:38 <elliott_> :D
17:37:42 <elliott_> this is fun
17:37:53 <elliott_> when all is said and done maybe i'll write THE BEST haskell eoderm
17:39:05 <DocHerrings> Okay, so all the parts of graph-transform need to be changed, as well as subgraphp. That should be the entirety of the problem.
17:40:04 -!- copumpkin has quit (Ping timeout: 276 seconds).
17:41:23 <DocHerrings> Ah, I don't have time to finish today.
17:41:50 <Phantom_Hoover> DocHerrings, your subgraph detection code looks too short to be implementing proper isomorphism detection.
17:42:25 <elliott_> "It needs to be more complicated!"
17:42:51 <Phantom_Hoover> elliott_, well, it does.
17:43:41 <DocHerrings> The beauty of my system (when I thought it worked) is that it was simple. Now it's going to get very complicated.
17:44:05 <Phantom_Hoover> Subgraph isomorphism *is* NP-complete, after all.
17:45:13 <Phantom_Hoover> DocHerrings, there is some comfort to be found in the fact that the parser is extremely simple.
17:45:20 <DocHerrings> ?
17:45:58 -!- copumpkin has joined.
17:45:59 -!- copumpkin has quit (Changing host).
17:45:59 -!- copumpkin has joined.
17:47:36 <Phantom_Hoover> Hmm, what's a good way of representing graphs in Haskell to start with?
17:47:54 <elliott_> data.graph
17:48:08 <elliott_> and also HANDS OFF MY LANGUAGE
17:48:18 <DocHerrings> Whelp, I guess I will log off now. I leave my code to whoever wants it http://pastebin.com/WudDDi4Y . If you have an idea, go at it. I will work on it in the interim.
17:48:31 <elliott_> Phantom_Hoover:
17:48:33 <Phantom_Hoover> elliott_, I was not-writing an Eodermdrome interpreter before it was cool.
17:48:44 <quintopia> oh, eodermdrome is grasp's tarpit. got it.
17:48:52 <Phantom_Hoover> quintopia, ...no.
17:49:20 <oerjan> terrible misspelling of ais523 you've got there
17:49:39 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]).
17:49:47 <elliott_> oerjan: can i just say that your program is pretty
17:49:54 <oerjan> why thank you
17:49:55 <elliott_> it's so pronounceable :>
17:50:13 <oerjan> i spent some time substituting letters at the end
17:51:05 <Phantom_Hoover> elliott_, you should do a dramatic reading of it
17:51:26 <elliott_> hmm tempting
17:52:35 <Phantom_Hoover> Have fun pronouncing "scewelklihiandnabarfrux"
17:52:49 <quintopia> Phantom_Hoover: it looks like the primary operation is the subgraph transformation. this would make it grasp without the ability to define your own initial graph or classes of graphs.
17:53:03 <elliott_> Phantom_Hoover: done
17:53:06 <Phantom_Hoover> quintopia, that's not the 'primary operation'.
17:53:38 <Phantom_Hoover> It's like saying the primary operation of Lazy K is combinator substitution.
17:54:44 <quintopia> what happens when when a command happens? a subgraph gets transformed. program execution consists of repeatedly transforming subgraphs (in arbitrary order). i'm not seeing what you're hung up on
17:55:00 <Phantom_Hoover> quintopia, it's essentially the imperative/declarative difference.
17:55:47 <elliott_> Phantom_Hoover: oerjan: http://www.mediafire.com/?kpprnmm3wiyqdpp
17:56:27 <quintopia> nevertheless, it looks like implementing eodermdrome in grasp would be more trivial than in any other language
17:56:32 <Phantom_Hoover> elliott_, you're BUTCHERING IT
17:56:52 <elliott_> Phantom_Hoover: You record it, then, with your superior knowledge of Gaelic pronunciation or whatever.
17:57:02 <elliott_> oerjan: sure hope you're listening :<
17:58:08 <Phantom_Hoover> For one thing, 'miewehit' should be pronounced 'mee-ay-way-heet', not 'my-ewit".
17:58:23 <elliott_> Phantom_Hoover: Recording or shut up.
17:58:33 <elliott_> You're just racist against my accent.
17:58:35 <elliott_> Dialect. Whatever.
17:58:39 <Phantom_Hoover> elliott_, I have no microphone.
17:58:48 <Phantom_Hoover> It's a humanitarian catastrophe.
17:59:29 <elliott_> Not even in your laptop?
17:59:34 <Phantom_Hoover> No.
18:07:19 -!- Wamanuz2 has quit (Remote host closed the connection).
18:07:46 -!- Wamanuz2 has joined.
18:13:40 <oerjan> <elliott> :t curry (uncurry (&&) . (isSpace *** isSpace))
18:13:42 <oerjan> sheesh
18:14:00 <oerjan> :t (&&) `on` isSpace
18:14:01 <lambdabot> Char -> Char -> Bool
18:14:46 <elliott_> oerjan: well aren't YOU fancy
18:16:22 <oerjan> elliott_: also, were you trying to combine multiple spaces to one?
18:16:54 <Phantom_Hoover> :t on
18:16:54 <lambdabot> forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c
18:16:59 <oerjan> because i'm guessing you didn't just want to keep the first one
18:17:18 <oerjan> > unwords . words $ "<elliott> :t curry (uncurry (&&) . (isSpace *** isSpace))
18:17:18 <lambdabot> <no location info>:
18:17:19 <lambdabot> lexical error in string/character literal at end o...
18:17:21 <oerjan> argh
18:17:36 <oerjan> > unwords . words $ "arcs \n opq q"
18:17:39 <lambdabot> "arcs opq q"
18:18:00 <elliott_> <oerjan> elliott_: also, were you trying to combine multiple spaces to one?
18:18:00 <oerjan> @src words
18:18:00 <lambdabot> words s = case dropWhile isSpace s of
18:18:00 <lambdabot> "" -> []
18:18:00 <lambdabot> s' -> w : words s'' where (w, s'') = break isSpace s'
18:18:02 <elliott_> yeah
18:18:11 <elliott_> wods wasn't an option
18:18:12 <elliott_> words
18:18:16 <elliott_> oerjan: i was golfing wc
18:18:17 <elliott_> erm
18:18:18 <elliott_> not golfing
18:18:19 <elliott_> oerjan: optimising
18:18:52 <oerjan> well i wouldn't be _sure_ that unwords . words is slower...
18:18:52 <elliott_> oerjan: after i managed to have it run over a one gibibyte file in four seconds with constant memory usage -- seconds better than gnu wc even with multibyte explicitly disabled -- I decided I was done :)
18:18:59 <elliott_> no, as in, I wasn't using String
18:19:02 <oerjan> aha
18:19:08 <elliott_> and I was working on partial blocks of data
18:19:09 <Phantom_Hoover> 04:17:09: <elliott> Isn't the problem with Eodermdrome efficient implementation?
18:19:26 <elliott_> oerjan: but anyway, I never quite got my word counting right, but what I was doing was approximately as expensive, so I consider it a Haskell victory anyway
18:19:33 <Phantom_Hoover> It shouldn't be too inefficient if you use the optimising trick Ullman's algorithm supposedly has.
18:19:38 <elliott_> oerjan: (the real success is Oleg's for inventing the iteratees I used)
18:19:52 <elliott_> (and actually he optimised wc before me, although he just zipped together byte/word/line counters rather than doing it manually)
18:20:00 <elliott_> (admittedly, with iteratees, it's hard to discern the difference)
18:20:00 <Phantom_Hoover> i.e. for known H it takes polynomial time to calculate if H is a subgraph of G.
18:21:46 <oerjan> Phantom_Hoover: well it's pretty obvious that's polynomial, that doesn't mean it's efficient :P
18:22:21 <Phantom_Hoover> oerjan, then where does the inefficiency come from?
18:22:24 <oerjan> so hopefully ullman's algorithm does something cleverer
18:22:43 <oerjan> Phantom_Hoover: from the polynomial degree being something like the subgraph size?
18:23:21 <pikhq_> elliott_: I'd imagine that making wc efficient wouldn't be hard, especially compared to GNU wc, which undoubtedly has many GNU pessimizations.
18:23:35 <elliott_> pikhq_: indeed, but getting it short _and_ pretty is another thing entirely
18:23:36 <pikhq_> Also, C string handling is a bitch and a half.
18:24:29 <elliott_> pikhq_: um irrelevant
18:24:34 <elliott_> any serious wc has to be streaming anyway
18:24:37 <pikhq_> Is for GNU wc. :P
18:24:42 <elliott_> i.e. consume constant memory
18:25:48 <elliott_> pikhq_: http://sprunge.us/VFNY
18:25:49 <elliott_> $ time ./wcgood quux
18:25:49 <elliott_> 4195819 8389362 1073741824
18:25:49 <elliott_> real0m4.492s
18:25:55 <elliott_> faster than gnu wc, and ridiculously short and readable
18:25:55 <pikhq_> Yeah, at a bare minimum it's going to have to load up a buffer and count chars, ' ' and '/n'. Already you're losing, as far as simplicity goes.
18:26:01 <elliott_> OK yes it counts spaces, not words
18:26:10 <elliott_> but when I did have something that did something wrong, but just as expensive as, counting words, it was just as fast
18:26:19 <elliott_> but yeah, look at that code, it's so pretty :D
18:26:57 <pikhq_> http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/wc.c For comparison.
18:27:19 <elliott_> pikhq_: i'm actually really tempted to write one that does multibyte too
18:27:21 <elliott_> and words correctly
18:27:29 <elliott_> and just have it as fast as possible while still looking really pretty in haskell
18:27:32 <elliott_> like, hundred lines or less
18:27:55 <elliott_> pikhq_: oh, and that thing literally has constant memory usage
18:27:59 <elliott_> as in, it doesn't even go up, down, up, down
18:28:09 <elliott_> it uses effectively 0 memory on top of the one meg ghc overhead, throughout the whole run
18:28:41 <elliott_> pikhq_:
18:28:45 <elliott_> $ time wc wcgood
18:28:46 <elliott_> 4224 58978 4244751 wcgood
18:28:46 <elliott_> real0m0.227s
18:28:46 <elliott_> $ time ./wcgood wcgood
18:28:46 <elliott_> 4224 28282 4244751
18:29:06 <elliott_> real0m0.025s
18:29:13 <elliott_> pikhq_: i assumed wc would like, almost as fast
18:29:22 <pikhq_> *GNU* wc?
18:29:22 <elliott_> but it's the difference between basically instant and a noticeable pause, heh
18:29:29 <elliott_> pikhq_: oh wait, that's unfair
18:29:31 <elliott_> let me use LC_ALL=C
18:30:02 <elliott_> pikhq_: ok, with LC_ALL=C, mine is only about twenty to thirty milliseconds faster. consistently.
18:30:11 <elliott_> i wonder how much of that is RTS startup.
18:31:02 <pikhq_> The default output for GNU wc shouldn't depend on locale.
18:31:10 <elliott_> pikhq_: it uses different algorithms
18:31:12 <elliott_> the output is the same
18:31:19 <elliott_> but it runs like ten to a hundred times faster if you use LC_ALL=C
18:31:26 <pikhq_> Seeing as its default is *byte*, word and newline counts.
18:31:31 <pikhq_> Not character.
18:31:36 <elliott_> pikhq_: yep, but it does it anyway
18:31:37 <elliott_> don't ask me why
18:31:48 <pikhq_> You're fucking kidding me.
18:32:07 <elliott_> pikhq_: difference between point two seven seconds and point zero seven seconds
18:32:13 <elliott_> on a ~four meg file
18:32:21 -!- ttm_ has quit (Ping timeout: 246 seconds).
18:32:24 <elliott_> difference between fourteen and, like, six seconds on a gigabyte file
18:32:30 <pikhq_> Actually...
18:32:34 <elliott_> $ time ./wcgood ~/.VirtualBox/HardDisks/Windows\ 7.vdi
18:32:34 <elliott_> 53437845 185691578 9403793920
18:32:34 <elliott_> real0m46.428s
18:32:35 <elliott_> ten gig file
18:32:36 <elliott_> not bad
18:32:38 <elliott_> not bad at all
18:32:40 <pikhq_> Counting words depends on locale.
18:32:44 <elliott_> yeah this thing pretty much scales perfectly
18:32:52 -!- ttm_ has joined.
18:33:05 * elliott_ tries gnu wc on it
18:33:06 <elliott_> JUST FOR LAUGHS
18:33:08 <elliott_> i'll come back in ten minutes
18:33:14 <elliott_> pikhq_: does it? i mean, does gnu wc know that?
18:33:22 <elliott_> jesus christ this code is hideous
18:33:35 <elliott_> case '\v':
18:33:35 <elliott_> mb_word_separator:
18:33:37 <pikhq_> One of the few things GNU stuff does right is localisation.
18:33:42 <elliott_> pikhq_: is it like
18:33:47 <elliott_> because you can encode a space differently?
18:33:52 <pikhq_> Yes.
18:33:53 <elliott_> they don't seem to do anything particularly smart
18:33:56 <elliott_> if (iswspace (wide_char))
18:34:03 <elliott_> does iswspace do anything locale-specific?
18:34:09 <elliott_> or is it literally just isspace for wchars
18:34:16 <elliott_> pikhq_: well that's stupid, there's no way it should take that much time
18:34:20 <elliott_> pikhq_: decoding utfeight is trivial
18:34:29 <elliott_> pikhq_: anyway, the files im using are invalid utf
18:34:30 <pikhq_> All the is* stuff is locale-specific.
18:34:35 <elliott_> so it'd be weird if it tried to decode them and then just... silently failed
18:34:39 <Phantom_Hoover> "<elliott_> but it's the difference between basically instant and a noticeable pause, heh"
18:34:45 <Phantom_Hoover> " The behavior of iswspace() depends on the LC_CTYPE category of the cur‐
18:34:45 <Phantom_Hoover> rent locale.
18:34:45 <Phantom_Hoover> "
18:34:50 <Phantom_Hoover> Wrong paste.
18:34:59 <elliott_> Phantom_Hoover: I realise the results are different, see above.
18:35:09 <elliott_> pikhq_: real0m46.428s real1m44.228s
18:35:11 <elliott_> guess which is which
18:35:13 <elliott_> and yes I used LC_ALL=C
18:35:32 <pikhq_> To do it right on a Unicode locale, you need to perform a database lookup.
18:35:57 <elliott_> pikhq_: the thing with words is that its so much harder to do than line counting
18:36:04 <elliott_> pikhq_: with line counting, you just check the ten bytes in each block
18:36:10 <elliott_> with words, you have to handle the ends
18:36:19 <elliott_> and pass on info about whether the end was space or a not
18:36:24 <elliott_> to the next chunk's loop
18:38:07 <elliott_> pikhq_: btw -m slows down gnu wc massively with a locale
18:38:13 <elliott_> like, even more than just having a locale and calling it normally
18:38:59 <pikhq_> Yes, it then has to perform a glyph count, which is non-trivial.
18:39:29 <pikhq_> What with combining characters.
18:40:30 <elliott_> pikhq_: I think I'll put off doing chars for now :P
18:40:34 <elliott_> ?hoogle [Maybe a] -> [a]
18:40:35 <lambdabot> Data.Maybe catMaybes :: [Maybe a] -> [a]
18:40:35 <lambdabot> Data.Maybe maybeToList :: Maybe a -> [a]
18:40:35 <lambdabot> Prelude sequence :: Monad m => [m a] -> m [a]
18:41:41 <pikhq_> elliott_: Well, at the very least you'll have the advantage of Haskell's handling of it sucking less. :P
18:47:50 <elliott_> oerjan: how does $ interact with >> again
18:48:57 <oerjan> $ has lowest precedence
18:49:15 <oerjan> > (0$0 >>)
18:49:16 <lambdabot> The operator `GHC.Base.>>' [infixl 1] of a section
18:49:17 <lambdabot> must have lower pre...
18:51:24 <oerjan> > const >> f $ a :: Expr
18:51:25 <lambdabot> f a
18:51:46 * oerjan cackles evilly
18:52:34 <oerjan> > return >> f $ a :: Expr
18:52:35 <lambdabot> Ambiguous type variable `m' in the constraint:
18:52:35 <lambdabot> `GHC.Base.Monad m'
18:52:35 <lambdabot> a...
18:52:39 <oerjan> wat
18:53:12 <elliott_> ?pl I.zip it countWords >>= \(r,n) -> r { wcWords = n }
18:53:12 <lambdabot> (line 1, column 37):
18:53:12 <lambdabot> unexpected "{"
18:53:12 <lambdabot> expecting variable, "(", operator, ">>", ">>=", "=<<", ">>>", "^>>", "^<<" or end of input
18:53:21 <oerjan> how is that ambiguous, return is a function
18:53:23 <elliott_> ?pl I.zip it countWords >>= \(r,n) -> ifuckinghateyouass r
18:53:23 <lambdabot> ifuckinghateyouass . fst =<< I.zip it countWords
18:53:26 <elliott_> sdoijdsoifjodisf
18:53:39 <elliott_> ?pl (\(r,n) -> ifuckinghateyouass r) `fmap` I.zip it countWords
18:53:40 <lambdabot> (ifuckinghateyouass . fst) `fmap` I.zip it countWords
18:53:42 <oerjan> oh wait
18:53:47 <elliott_> ?pl flip fmap
18:53:47 <lambdabot> flip fmap
18:53:49 <elliott_> >_<
18:54:02 <monqy> :t (<$$>)
18:54:03 <lambdabot> Not in scope: `<$$>'
18:54:04 <monqy> oops
18:54:11 <monqy> I got it confused with something else I guess
18:54:24 <monqy> probably a mixture of <$> and <**>
18:54:32 <oerjan> @hoogle f a -> (a -> b) -> f b
18:54:33 <lambdabot> Prelude fmap :: Functor f => (a -> b) -> f a -> f b
18:54:33 <lambdabot> Control.Applicative (<$>) :: Functor f => (a -> b) -> f a -> f b
18:54:33 <lambdabot> Control.Monad fmap :: Functor f => (a -> b) -> f a -> f b
18:54:35 <elliott_> oerjan: why do haskell records suck so much :(
18:54:49 <oerjan> hmph none of those
18:55:58 -!- TOGoS has joined.
18:56:04 -!- TOGoS has left.
18:56:13 <oerjan> :t (^>>)
18:56:14 <lambdabot> forall b c (a :: * -> * -> *) d. (Arrow a) => (b -> c) -> a c d -> a b d
18:56:25 * Sgeo tries to imagine a GoL-like CA with conservation of mass
18:56:31 <oerjan> :t (^<<)
18:56:31 <lambdabot> forall c d (a :: * -> * -> *) b. (Arrow a) => (c -> d) -> a b c -> a b d
18:56:38 <elliott_> never mind I will just use fc-labels
18:57:08 <Sgeo> Here's a thought: 23/3 like usual, except a cell is only born if exactly 1 cell next to it would die, and visa versa (cell only dies if one cell next to it would be born)
18:57:22 <Sgeo> Are there unresolvable situations?
18:57:26 <Sgeo> Also, speed of light increases
18:57:46 <oerjan> Sgeo: i'm uncertain that would give a finite neighborhood
18:58:23 <Sgeo> Well, by would, I think I mean would under the 23/3 rule... but stil, yeah, hmm
18:58:45 <oerjan> in that case, i don't think it would actually preserve mass
18:59:14 <Sgeo> Hmm...
18:59:17 <Sgeo> example?
18:59:39 <oerjan> because you could have 1 cell next to one that would be born/die, while _that_ cell has two neighbors that would die/be born (including your first one)
19:01:10 <elliott_> pikhq_: http://sprunge.us/YVON
19:01:10 <Sgeo> If there's two neighbors that would whatever, then nothing happens... but then, that gives an infinite neighborhood
19:01:14 <elliott_> pikhq_: i'm overengineering this good
19:01:42 <oerjan> exactly, my intuition says you would get a cascade of checking
19:02:45 <Sgeo> Hmm
19:03:02 <elliott_> pikhq_: :D
19:03:18 <Sgeo> How else could conservation of mass be implemented? Or conservation of energy? Basically, I'm just trying to imagine a universe where there's resources for hypothetical life to compete for >.>
19:03:44 -!- Wamanuz2 has quit (Read error: Connection reset by peer).
19:04:01 <Sgeo> Mass sounds easier to implement
19:04:12 -!- Wamanuz2 has joined.
19:04:53 <oerjan> i recall once wondering if rule 110 had a conserved quantity, but i got stuck
19:05:49 <elliott_> ?hoogle [a -> a] -> (a -> a)
19:05:49 <lambdabot> Data.Generics.Schemes everywhere :: (a -> a) -> a -> a
19:05:49 <lambdabot> Data.Generics.Schemes everywhere' :: (a -> a) -> a -> a
19:05:50 <lambdabot> Prelude until :: (a -> Bool) -> (a -> a) -> a -> a
19:05:52 <elliott_> grr
19:05:56 <elliott_> :t foldl' (.) id
19:05:57 <lambdabot> forall a. [a -> a] -> a -> a
19:06:42 <oerjan> didn't we agree it should be foldr (.) id last time?
19:06:52 <elliott_> does it make a difference for a finite list?
19:06:54 <elliott_> oh, yes, it does
19:06:55 <oerjan> (a few days ago)
19:07:00 <elliott_> my operations are commutative, though
19:07:04 <elliott_> where opt field ctr = \it -> uncurry (setL field . Just) `fmap` I.zip it ctr
19:07:12 <elliott_> they're basically adding things to my result vector
19:07:45 <oerjan> elliott_: well maybe not really, but foldr preserves easy access to the outermost function which in haskell is applied first...
19:07:55 <elliott_> right
19:09:19 <oerjan> :t foldr (<<<) id
19:09:20 <lambdabot> forall c. [c -> c] -> c -> c
19:09:23 <oerjan> er
19:09:32 <oerjan> :t foldr (<<<) (arr id)
19:09:33 <lambdabot> forall (cat :: * -> * -> *) a. (Arrow cat) => [cat a a] -> cat a a
19:13:17 <Phantom_Hoover> <Sgeo> Here's a thought: 23/3 like usual, except a cell is only born if exactly 1 cell next to it would die, and visa versa (cell only dies if one cell next to it would be born)
19:13:44 <Phantom_Hoover> We speculated about this months ago and came to no conclusion.
19:14:13 <Phantom_Hoover> Then I read that paper on physical systems in CAs and discovered that it's trivial with the Margolus neighbourhood.
19:14:26 <Sgeo> I don't remember taking part in the discussion
19:14:41 <oerjan> maybe something similar to day and night would be easier, since that already has a sort of balance between on and off cells
19:15:13 <oerjan> oh margolus?
19:16:31 <Phantom_Hoover> Sgeo, IIRC it was mainly me, elliott_ and cpressey.
19:18:13 <elliott_> oerjan: why isn't there a foldr' :D
19:18:15 <elliott_> ?hoogle foldr'
19:18:15 <lambdabot> Data.ByteString foldr' :: (Word8 -> a -> a) -> a -> ByteString -> a
19:18:15 <lambdabot> Data.Foldable foldr' :: Foldable t => (a -> b -> b) -> b -> t a -> b
19:18:15 <lambdabot> Data.ByteString.Char8 foldr' :: (Char -> a -> a) -> a -> ByteString -> a
19:18:19 <elliott_> oh there is... just not in Data.List
19:20:29 <elliott_> oerjan: pikhq_: guess what's eighty-six lines already and can't even count bytes yet
19:22:35 <Phantom_Hoover> elliott_, all your cocaine?
19:22:44 <elliott_> yes
19:23:51 -!- IronEagle has joined.
19:24:15 -!- cheater_ has joined.
19:24:33 <IronEagle> OK, I left when I killed the chat. as I was asking, what is wrong with a language being made to be the most hated?
19:25:28 <Phantom_Hoover> IronEagle, that's so utterly circular you could use it to measure pi.
19:25:54 <elliott_> you didn't kill the chat.
19:25:58 <elliott_> you just didn't see our messages or something
19:26:02 <elliott_> we were talking constantly
19:26:04 <Phantom_Hoover> It's a language made to be most hated; by definition, *everything that could possibly be wrong with it, is.*
19:26:13 <oerjan> it's not dead, it's just resting
19:26:21 <elliott_> pikhq_: oerjan: http://sprunge.us/KeUQ hey look i... made it actually pretty?
19:26:23 <monqy> start with a brainfuck derivative
19:26:28 <elliott_> sort of?
19:26:36 <pikhq_> GAH Brainfuck derivatives.
19:26:50 <Phantom_Hoover> monqy, excellent start.
19:27:16 <Phantom_Hoover> Unfortunately I will have to brickbrain you before you can go any further. This is good, keep it up!
19:27:29 <IronEagle> elliott_: oh, sorry. But the way I see it, there is nothing wrong with having the perfect 'what not to do' example for people designing languages
19:27:31 <monqy> somehow make it even less original
19:27:42 <monqy> IronEagle: brainfuck derivative: don't do this
19:28:01 <pikhq_> IronEagle: The issue is we have too many of those.
19:28:19 <Phantom_Hoover> monqy, in all fairness, there are a couple of good ones, but they tend to be far removed from your standard BF derivative.
19:28:32 <Phantom_Hoover> Arborealis, for instance, is excellent.
19:28:36 <IronEagle> monqy: are you kidding me? I'd do those just to be allowed to use the word fuck more often.
19:28:45 <monqy> IronEagle: how old are you
19:29:02 <Phantom_Hoover> IronEagle, http://esolangs.org/wiki/User:Phantom_Hoover
19:29:16 <IronEagle> monqy: I won't tell you unless you tell me yours.
19:29:20 <elliott_> fuck fuck fuck fuck fuckity fuck
19:29:25 <IronEagle> CARTMAN
19:29:31 <monqy> IronEagle: it was a rhetorical question
19:29:52 <elliott_> IronEagle: are you older than me
19:29:55 <oerjan> clearly IronEagle is 93
19:30:11 <Phantom_Hoover> BF + some more instructions is an infuriatingly common design.
19:30:19 <monqy> BF with renamed instructions
19:30:23 <monqy> hohoho
19:30:33 <elliott_> oerjan: its slower at counting characters than my older one, im going to profile it
19:30:33 <Phantom_Hoover> There are no original ways to do either. Full stop.
19:30:34 <elliott_> :DDD
19:30:46 <pikhq_> Notable changes in semantics are very, very uncommon.
19:31:09 -!- cheater_ has quit (Ping timeout: 244 seconds).
19:31:10 <oerjan> copulatio celebralis
19:31:18 <oerjan> er
19:31:27 <oerjan> *copulatio cerebralis
19:31:54 <elliott_> oh no, wc has a memleak
19:31:58 <elliott_> very bad
19:32:09 <elliott_> countBytes :: Counter
19:32:09 <elliott_> countBytes = I.liftI $ go 0
19:32:09 <elliott_> where go n (I.Chunk xs) = I.liftI $ go (n + B.length xs)
19:32:11 <elliott_> go n s@(I.EOF _) = I.idone n s
19:32:11 <pikhq_> Probably building up a thunk.
19:32:13 <elliott_> oerjan: does that look sufficiently strict to you?
19:32:18 <elliott_> pikhq_: yeah but i avoided all this last time...
19:32:27 <elliott_> option :: (WC :-> Maybe Int) -> Counter -> WCOption
19:32:27 <elliott_> option field ctr = \it -> uncurry (setL field . Just) `fmap` I.zip ctr it
19:32:30 <elliott_> maybe it's this
19:32:58 <Phantom_Hoover> Hmm, can we make a page on the wiki called "Making an esolang: what not to do"?
19:32:59 <elliott_> option Main 468 0 66.5 68.4 68.0 69.3
19:32:59 <elliott_> countBytes Main 479 413864 1.5 0.9 1.5 0.9
19:33:01 <oerjan> elliott_: my brain is not properly on today
19:33:06 <elliott_> spending most of the time and allocation in option you say?
19:33:09 <elliott_> I do believe I have found my bug
19:33:52 <elliott_> oerjan: not even enough to make one teeny weeny function slightly more strict? :P
19:34:30 <oerjan> nope
19:34:45 <elliott_> pikhq_: :|
19:34:48 <elliott_> what about YOUUUU
19:35:46 <elliott_> IronEagle: are you an eagle irl
19:36:45 <monqy> he probably killed the chat again
19:37:06 <elliott_> lol
19:37:19 <oerjan> elliott_: well i now do notice it's not strict in n, if that matters
19:37:20 <Phantom_Hoover> Eagles are renowned for hunting chats.
19:37:26 <IronEagle> elliott_: irl?
19:37:29 <elliott_> oerjan: it isn't?
19:37:31 <elliott_> IronEagle: in real life
19:37:41 <IronEagle> yes. yes I am.
19:37:48 <elliott_> oerjan: that is very important because it's going to grow to beellions and beellions
19:37:50 <oerjan> how could it be, you are never testing n in go
19:37:54 <elliott_> oerjan: um addition is strict
19:37:57 <elliott_> but right
19:37:58 <elliott_> go isn't
19:38:02 <elliott_> easy to fix
19:38:16 <Phantom_Hoover> http://esolangs.org/wiki/Grin
19:38:31 <Phantom_Hoover> This is essentially a textbook example of what not to do with an esolang.
19:38:32 <elliott_> still have a leak, though
19:38:37 <elliott_> undoubtedly in option
19:39:26 <elliott_> monqy: are you going to take IronEagle up on his ageswap
19:39:29 <elliott_> its a good deal
19:39:53 <oerjan> elliott_: perhaps that fmap is also building thunks of what to apply
19:40:15 <elliott_> oerjan: I think it is, but there's a finite, fixed (less than five) number of times it'll be composed onto itself
19:40:16 <IronEagle> ageswap?
19:40:21 <elliott_> so I think the insidiousness is actually in the lhs, the uncurry thing
19:40:23 <monqy> ageswap.
19:40:30 <elliott_> IronEagle: yeah, monqy tells you his age, you tell him yours
19:40:43 <Phantom_Hoover> IronEagle, you both meet in an inconspicuous location with a briefcase.
19:40:50 <Phantom_Hoover> In the briefcases are your ages.
19:40:55 <Phantom_Hoover> You swap the briefcases.
19:41:02 <elliott_> i can confirm Phantom_Hoover
19:44:30 -!- esowiki has joined.
19:44:51 -!- esowiki has joined.
19:45:12 -!- esowiki has joined.
19:45:34 -!- esowiki has joined.
19:45:55 -!- esowiki has joined.
19:46:16 -!- esowiki has joined.
19:46:37 -!- esowiki has joined.
19:46:58 -!- esowiki has joined.
19:47:19 -!- esowiki has joined.
19:47:40 -!- esowiki has joined.
19:47:40 -!- glogbot has joined.
19:47:43 -!- HackEgo has joined.
19:47:51 <oerjan> !haskell :t "?"
19:47:53 <EgoBot> ​"?" :: [Char]
19:48:15 <quintopia> welcome back prgmr!
19:48:37 <elliott_> rip
19:48:38 <oerjan> `wtf netsplits
19:48:39 <HackEgo> why netsplits is like wtf
19:48:39 <elliott_> pir
19:48:53 -!- Gregor has joined.
19:49:13 <Phantom_Hoover> `wtf foo
19:49:14 <HackEgo> why foo is like wtf
19:49:19 -!- Gregor has changed nick to Guest13856.
19:49:33 <Phantom_Hoover> `run echo `which wtf`
19:49:33 <elliott_> hi Guest13856
19:49:35 <HackEgo> ​/tmp/hackenv.26795/bin/wtf
19:49:47 <Phantom_Hoover> `run cat `which wtf`
19:49:49 <HackEgo> ​#!/bin/sh \ echo "why $1 is like wtf"
19:50:04 <elliott_> `quote why internet
19:50:05 <HackEgo> 131) <fungot> alise: why internet is like wtf
19:50:21 <elliott_> i could never give poor fungot a straight answer.
19:51:30 -!- zzo38 has joined.
20:00:53 <oerjan> !haskell :t \f -> uncurry (f . Just)
20:00:56 <EgoBot> ​\f -> uncurry (f . Just) :: (Maybe a -> b -> c) -> (a, b) -> c
20:01:19 <elliott_> oerjan: i think that whole option architecture may be elegant but flawed
20:01:31 <elliott_> I think it builds up a shitload of loops that just zip and zip and zip and process it and uh
20:01:32 <elliott_> I dunno
20:01:38 <elliott_> Wait no that happens at the end
20:01:39 <elliott_> WTF is going on?
20:01:47 <elliott_> Maybe it's inlining countBytes into the option call
20:01:50 <elliott_> And thus measuring incorrectly
20:02:13 <elliott_> 'cuz I mean
20:02:13 <elliott_> option :: (WC :-> Maybe Int) -> Counter -> WCOption
20:02:13 <elliott_> option field ctr = \(!it) -> do (!a,!b) <- I.zip ctr it; return $! setL field (Just a) b
20:02:19 <elliott_> No way that is taking up the entirety of my time and space.
20:03:04 -!- lambdabot has joined.
20:03:15 <elliott_> oerjan: HE COMES
20:03:39 <oerjan> !vixen Are you female?
20:03:42 <oerjan> er
20:03:46 <oerjan> @vixen Are you female?
20:03:46 <lambdabot> isn't it obvious?
20:04:17 <Phantom_Hoover> @list
20:04:17 <lambdabot> http://code.haskell.org/lambdabot/COMMANDS
20:04:23 <elliott_> oerjan: no no no. he is the _evil_ part of lambdabot.
20:04:26 <elliott_> she is the rest of it.
20:04:42 <oerjan> eek
20:05:01 <Phantom_Hoover> elliott_, there's such an obvious pun to make here.
20:07:54 <Phantom_Hoover> O...K...
20:08:01 <Phantom_Hoover> encrypted.google.com isn't working.
20:08:33 <Phantom_Hoover> @vixen What does this command do?
20:08:33 <lambdabot> i'll hafta plead the fifth on that one.
20:17:03 -!- IronEagle has left.
20:17:33 <quintopia> @vixen a simple yes or no will suffice
20:17:33 <lambdabot> i didn't think so
20:20:04 <Phantom_Hoover> @vixen Does {x|x \nin x} contain itself?
20:20:04 <lambdabot> i think you know the answer to that one, silly
20:20:13 <Phantom_Hoover> @vixen Does {x|x \nin x} contain itself?
20:20:13 <lambdabot> good question
20:20:23 <oerjan> @vixen Do you ever give a straight answer?
20:20:23 <lambdabot> i dunno, what was the question?
20:26:27 <elliott_> oerjan: ok, it is _definitely_ the function chain thing that's causing the leak
20:27:14 <elliott_> or wait, is it
20:27:15 <elliott_> WTF?
20:27:20 <elliott_> I seem to leak just by running the constant thingies
20:27:37 <elliott_> OH WAIT HMM
20:28:16 <elliott_> Yep, that's it.
20:32:33 -!- blancnoir has quit (Quit: leaving).
20:41:24 <elliott_> oerjan: the space leak has reached "fucking inexplicable" level
20:41:27 <elliott_> :(
20:41:35 <elliott_> sometimes I think laziness isn't worth it
20:42:07 <Robdgreat> laziness is always worth it
20:42:12 <Robdgreat> it pays off right now!
20:42:13 <monqy> that's what I was going to say
20:42:30 <Robdgreat> the ULTIMATE in instant gratification
20:42:48 <Phantom_Hoover> elliott_, consider asking in #haskell?
20:43:12 <elliott_> Phantom_Hoover: nah, it's basically a mechanical process to find out what i need to strictify :D
20:45:09 -!- cheater_ has joined.
20:52:43 -!- elliott_ has quit (Remote host closed the connection).
20:53:10 -!- elliott has joined.
20:53:12 <Phantom_Hoover> http://www.reddit.com/r/IAmA/comments/i5csn/iama_male_that_plans_to_raise_my_testosterone/
20:53:18 <Phantom_Hoover> Reddit, you have reached a new low.
20:54:26 <elliott> see i thought from the title they were actually serious or whatever and was preparing myself for cringe
20:54:27 <elliott> what is this shit
20:54:44 <monqy> I agree with elliott
20:57:05 <Phantom_Hoover> elliott, there's another thing saying that not masturbating for a week increases testosterone levels by 45.7%.
20:57:29 <monqy> this is just the worst
20:57:43 <elliott> Phantom_Hoover: cool, so it's actually not any less stupid than it looks at all?
20:57:45 <elliott> cool
20:58:02 <elliott> monqy: let's turn to the top ten items of the main page, perhaps there is something to redeem reddit there
20:58:04 <elliott> If homosexuality is genetic, wouldn't it have bred itself out of the population over the last few thousand years? (self.AskReddit)
20:58:06 <elliott> whoops
20:58:26 <monqy> whoops
20:58:44 <elliott> "Tay-Sachs is a genetic disease that usually kills its victims at a very young age, long before they are able to reproduce. It has not been bred out of the population because it is a recessive trait. Recessive traits, even if they affect reproduction, aren't completely removed from a population because of heterozygosity.
20:58:45 <elliott> Furthermore, homosexuals can, and often do, reproduce to pass on their dna. Think of historical times when women had little choice, lesbian or not."
20:58:55 <elliott> THEM HOMOSEXUALS JUST KEEP BREEDIN' WHETHER THEY WANT TO OR NOT
21:00:08 <Phantom_Hoover> Let's look at the top 10 on /r/all.
21:00:17 <elliott> god no
21:00:32 <Phantom_Hoover> "I found out that I am truly an Atheist. It was a hard lesson."
21:00:49 <Phantom_Hoover> "I wouldn't want to mess up his perfect cheekbones."
21:00:54 <monqy> what / what
21:01:05 <monqy> why reddit why
21:01:14 -!- kwertii has joined.
21:01:37 <Phantom_Hoover> A weight with the sun reflecting off it, with "Message from the gods" as the title.
21:01:55 <Phantom_Hoover> An indie developer plugging themself.
21:02:12 <elliott> <Phantom_Hoover> "I found out that I am truly an Atheist. It was a hard lesson."
21:02:13 <elliott> are you serious
21:02:19 <monqy> is reddit serious
21:02:19 <Phantom_Hoover> A highly original comparison between a floppy disk and a micro SD card
21:02:24 <elliott> monqy: reddit used to be serious
21:02:47 <monqy> is there a serious reddit, or at least a reddit that is nonserious in a good way
21:03:00 <Phantom_Hoover> Aaaand... a very slightly witty "most interesting man in the world" meme.
21:03:07 <Phantom_Hoover> Christ, how old are those things?
21:03:10 <monqy> where by reddit I mean reddit equivalent
21:03:26 <elliott> monqy: i'm scared that there is
21:03:32 <elliott> monqy: i'm afraid that it might be slashdot
21:04:27 <elliott> "I think that kid might have the gay." http://www.reddit.com/r/pics/comments/i5fdo/i_wouldnt_want_to_mess_up_his_perfect_cheekbones/ quality comments
21:04:53 <elliott> wow this is the
21:04:54 <monqy> :'(
21:04:54 <elliott> worst
21:04:55 <elliott> comment thread
21:04:58 <elliott> "This isn't Chuck Norris' Dad, clearly."
21:05:06 <monqy> I died
21:05:27 <monqy> GIMME_DOWNVOTES -15 points 1 hour ago
21:05:27 <monqy> good
21:05:32 <elliott> monqy where do you go to get not terrible links to things don't say this channel
21:06:02 <monqy> is that a trick question
21:06:13 <elliott> no
21:07:03 <monqy> I typically only get terrible links, actually :(
21:07:48 <Phantom_Hoover> elliott, basically, you need to just read TrueReddit.
21:08:07 <Phantom_Hoover> The links are a bit better, and you get an air of unbearable elitism!
21:08:15 <monqy> delicious
21:08:17 <elliott> thanks but i get enough of that talking to you for five minutes
21:08:46 <Phantom_Hoover> Only a clearly inferior person would say something like that.
21:15:00 <elliott> "Last week I had a heart attack. As I sat in the emergency room gasping for breath the question of religion came up. I answered without thinking "atheist". The admissions nurse grinned, and told me that that was the first time in 20 years anyone had given that answer."
21:15:03 <elliott> monqy: this is going to be good post
21:15:12 <pikhq_> Y'know, reddit would be vastly improved by two features: tags, and the ability to ignore tags.
21:15:25 <elliott> pikhq_: people have been demanding tags since two thousand and five dude
21:15:27 <pikhq_> *Specifically*, the ability to ignore the tag "meme".
21:15:40 <elliott> like anyone would tag things "meme"
21:15:55 <pikhq_> Ah, right, this relies on people being intelligent.
21:15:55 <elliott> 19-year-old suspected of being mastermind behind computer hacking group LulzSec arrested in UK (content.met.police.uk)
21:15:56 <elliott> MASTERMIND
21:15:59 <elliott> MASTERMIND
21:16:03 <pikhq_> And memes get upvoted.
21:16:06 <elliott> pikhq_: no, it relies on them being motivated and also agreeing with you on tags
21:16:40 <pikhq_> How's about we just murder most of humanity?
21:16:42 <pikhq_> SOLUTION
21:17:26 <Phantom_Hoover> elliott, hey, that game with the coloured pegs is called Mastermind.
21:17:29 <Phantom_Hoover> Standards have dropped.
21:17:37 <Phantom_Hoover> pikhq_, Mars colony
21:17:52 <pikhq_> Phantom_Hoover: Yes, but that leaves them still extant.
21:18:01 <elliott> Phantom_Hoover: you got that from the top comment
21:18:04 <Phantom_Hoover> pikhq_, yeah, but what're they going to do?
21:18:11 <Phantom_Hoover> elliott, got what?
21:18:22 <elliott> mastermihdndjijgi
21:18:42 <oerjan> pikhq_: well given that these are presumably the _stupid_ people you want to send, chances are it's only time before someone opens the airlock
21:19:45 <elliott> no its the good people who go to amrs
21:19:46 <elliott> mars
21:20:00 <Phantom_Hoover> elliott, I swear I came up with that independently.
21:20:01 <pikhq_> oerjan: "GOD TOLD ME THERE'S AIR OUT DERE"
21:20:16 <Phantom_Hoover> pikhq_, you vastly underestimate the scope of stupidity.
21:20:32 <oerjan> pikhq_: "DARWIN TOLD ME HE'S GOT AN AWARD FOR YOU"
21:30:56 -!- pikhq_ has quit (Ping timeout: 264 seconds).
21:34:42 <zzo38> Mr. _______ told you to make "59 eye 1 Mewtwo" deck.
21:35:49 -!- pikhq has joined.
21:41:57 <zzo38> Do you know how to make "59 eye 1 Mewtwo" deck?
21:55:36 <zzo38> SlashNET has some feature where it will display to me any time anyone uses the NS GHOST command (regardless of target)
21:58:41 -!- esowiki has joined.
21:59:18 -!- esowiki has joined.
21:59:59 -!- esowiki has joined.
21:59:59 -!- glogbot has joined.
22:04:45 <elliott> q
22:05:18 <Phantom_Hoover> YouTube suggests "the devil went down to george" before "the devil went down to georgia".
22:05:51 <Phantom_Hoover> No, wait, it doesn't suggest Georgia *at all*.
22:06:23 <oerjan> someone really has it in for george
22:07:35 <Phantom_Hoover> The devil went down to George and said "hey, George, can I borrow a couple of your souls?" George lent him some, but the devil never gave them back.
22:07:51 <Phantom_Hoover> The rest of the song is about George trying to get the police to take him seriously.
22:08:58 -!- sebbu2 has joined.
22:08:58 -!- sebbu2 has quit (Changing host).
22:08:58 -!- sebbu2 has joined.
22:09:46 <Phantom_Hoover> 02:10:02: <pikhq> It is estimated that that would suffice for a whole-brain simulation from a low-level physics simulation.
22:09:50 <Phantom_Hoover> Yeah, have fun with that.
22:10:03 <Phantom_Hoover> We don't know how a single neuron works, let alone how they interact.
22:11:09 -!- elliott has left ("Leaving").
22:11:18 -!- elliott has joined.
22:11:45 -!- sebbu has quit (Ping timeout: 240 seconds).
22:11:46 -!- sebbu2 has changed nick to sebbu.
22:11:47 <Phantom_Hoover> And I'm pretty sure they can't be abstracted significantly from the atomic level.
22:12:19 <elliott> wouldn't it be awesome if neurons were just super simple
22:12:24 <elliott> ten lines o' code
22:12:28 <Phantom_Hoover> elliott, yes. But they aren't.
22:12:33 <elliott> WELL THEY SHOULD BE
22:13:23 <Phantom_Hoover> 02:25:33: <pikhq> No need for absurdly large quantities of energy, just a much faster computer than exists now.
22:13:35 <Phantom_Hoover> And, y'know, a precise understanding of how the brain works.
22:13:40 <elliott> Phantom_Hoover: so you don't think it's tractable to simulate neurons with pretty much anything but a direct recreation of a neuron, right?
22:13:57 <Phantom_Hoover> elliott, I'm very sceptical.
22:14:17 <Phantom_Hoover> Biochemistry is an extremely complex thing, and you can't just pretend it isn't there and hope that nothing goes wrong.
22:14:27 <elliott> it always strikes me as trying to emulate a ridiculously parallel computer with a sequential one
22:14:31 <elliott> which will just NEver Work
22:15:54 <Phantom_Hoover> I mean, I only have idle speculation, but... there's no reason the brain is likely to be easy to optimise.
22:16:11 <zzo38> You can try but I don't know how well it is going to work
22:16:19 <elliott> Phantom_Hoover: the brain is actually compiled, god actually writes this like
22:16:24 <elliott> five hundred times bigger, modularly organised network
22:16:31 <elliott> and compiles it down to a superoptimised tight network
22:16:34 <elliott> tru fax
22:17:16 <oerjan> through fax? no wonder e's a little unstable
22:17:32 <elliott> oerjan: you know, e could be watching this channel right now.
22:17:43 <oerjan> AYEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
22:20:12 <zzo38> Calling "God" a "person" is what causes you to come up with these things. Better is to describe other way. Such as, "e could be watching this channel right now" would be irrelevant; "god actually writes this like five hundred times bigger..." nonsense and clearly untrue...
22:20:24 <elliott> i was talking about fax.
22:20:57 <zzo38> Fax? What fax?
22:21:08 <elliott> oerjan: make the pain stop
22:22:02 <zzo38> Pain? What pain?
22:22:16 <zzo38> Maybe you mean "paint"?
22:23:42 <elliott> oerjan: between this and a space leak
22:25:28 <oerjan> elliott: so basically you've been _very_ wicked in a previous life
22:26:00 <elliott> maybe i was god
22:26:24 <Phantom_Hoover> The wickedest man of all.
22:26:46 <Phantom_Hoover> Surpassed only in wickedness by the wicked witches of the west and east.
22:26:52 <copumpkin> you talking about me again?
22:26:58 <Phantom_Hoover> Yes.
22:27:03 <copumpkin> k
22:27:19 <Phantom_Hoover> So wait, are you the wicked witch of the west or east?
22:27:20 <oerjan> The Great Pumpkin
22:28:56 <elliott> `addquote <Phantom_Hoover> The wickedest man of all. <Phantom_Hoover> Surpassed only in wickedness by the wicked witches of the west and east. <copumpkin> you talking about me again? <Phantom_Hoover> Yes. <copumpkin> k
22:28:57 <HackEgo> 462) <Phantom_Hoover> The wickedest man of all. <Phantom_Hoover> Surpassed only in wickedness by the wicked witches of the west and east. <copumpkin> you talking about me again? <Phantom_Hoover> Yes. <copumpkin> k
22:35:08 -!- Vorpal has quit (Ping timeout: 264 seconds).
22:35:57 * Phantom_Hoover → sleep
22:35:59 -!- Phantom_Hoover has quit (Quit: Leaving).
22:38:32 <elliott> oerjan: heap profiles are not always helpful: http://i.imgur.com/bILdj.png
22:38:40 <elliott> copumpkin: ^ :D
22:39:11 <monqy> so what's (474)option/ds_d2IT/proces...
22:39:47 <elliott> monqy: i suspect it is processOpts and option merged together by some kind of optimisation
22:39:54 <elliott> i have a feeling that countBytes has got merged in too, though
22:40:02 <elliott> meaning that the figures are rather unhelpful for tracking down the space leak
22:40:19 <monqy> perhaps compile without optimisation while tracking down the space leak, or would that unhelp too
22:40:38 <elliott> monqy: i think it'd unhelp because all the clever stuff ghc is doing to the code would not happen
22:40:43 <elliott> i'll try it if i can't track this leak down, though
22:40:56 <oerjan> -hc is the profile which doesn't require turning on profiling while compiling, isn't it?
22:41:00 <elliott> aha, a type breakdown is a bit more helpful
22:41:08 <elliott> oerjan: um i don't know, I thought I did
22:41:21 <elliott> ok so Stream is taking up the most well that's out of my hands
22:41:23 <elliott> then bytestring then
22:41:23 <elliott> bleh
22:41:25 <elliott> this isnt helpful
22:45:06 <elliott> I guess I'll have to sovle it tomorrow
22:45:21 <elliott> [asterisk]solve
22:48:04 <zzo38> How many people intentionally try to go to jail?
22:48:58 <quintopia> usually only former convicts who can't cope with the real world
22:49:51 <elliott> or people who would actually have better living conditions in prison, i suspect
22:50:49 <quintopia> i will accept much worse living conditions than prison to have my freedom
22:52:14 <zzo38> How good are you at Pokemon Card?
22:52:58 <elliott> quintopia: yeah, but you'd also stock up on gold if society collapsed, and also I doubt you've ever experienced _truly_ horrific living conditions, so I wasn't exactly using you as a benchmark
22:53:43 <zzo38> Did you know that ... Imakuni? wants you to play him as a basic pokemon but you can't
22:54:06 <quintopia> elliott: i'm not crazy, and my imagination is better than you give credit to.
22:54:34 <elliott> i didn't say you were crazy, and i never mentioned your imagination; you're the one assuming you'd be a good benchmark here
22:56:45 <quintopia> did i? i'm claiming that i am, yes, pretty typical. i know some people value security more than me, and others value freedom more than me. perhaps i'm a bit closer to the freedom end of the spectrum than average.
22:57:30 <elliott> there is no way i can communicate what i was trying to to you
22:57:34 <elliott> sorry
22:57:41 -!- pikhq_ has joined.
22:57:50 -!- pikhq has quit (Ping timeout: 244 seconds).
22:59:33 <quintopia> zzo38: i'm not really into pokemon
23:00:28 <elliott> was that an xkcd reference
23:00:33 <elliott> @babaus2
23:00:33 <elliott> babau babaus
23:00:34 <elliott> @LulzSec lol U should Use the word "legitimate"more refrainly as ALL that FRAUD like ALL COURTS, THEIR "LAWS"..i.e STATUTES=ACTS of DECEIT
23:00:34 <elliott> wow twitter is great
23:00:34 <lambdabot> Unknown command, try @list
23:00:34 <lambdabot> Unknown command, try @list
23:00:37 <elliott> monqy: twitter
23:00:41 <monqy> twitter
23:00:46 <monqy> what's this about
23:00:50 <elliott> i have no idea
23:00:52 <monqy> /about what is this
23:00:59 <monqy> oh a lulzsec quote I've heard of them
23:01:04 <elliott> no thats not lulzsec
23:01:07 <elliott> thats someone addressing them
23:01:08 <monqy> oh
23:01:10 <monqy> I mean
23:01:12 <monqy> @LulzSec
23:01:13 <lambdabot> Unknown command, try @list
23:01:29 <monqy> (i don't use twitter)
23:01:39 <monqy> so uh
23:01:42 <elliott> "Stop fearing three-letter agencies, friends. They're humans with slightly more paper and fancier uniforms; they are just like you and me. :)"
23:01:42 <monqy> what is that guy trying to say
23:01:52 <elliott> --lulz security, rational people??
23:02:00 <monqy> could be
23:02:05 <monqy> and what's that babaou thing
23:02:18 <elliott> some guy
23:02:24 <elliott> replying to "Ryan Cleary is not part of LulzSec; we house one of our many legitimate chatrooms on his IRC server, but that's it."
23:02:34 <elliott> i guess you shouldn't say legitimate because governments aren't legitimate? god knows
23:02:41 <elliott> http://twitter.com/#!/babaus2
23:02:42 <elliott> ..born..curious....gone ..furious.. Women = Beauty, Body, Brain..;-)...hmm.. Men = Mental, Midgets, Male...lol..
23:02:48 <elliott> i think we've found ourselves an intellectual guys
23:03:00 <elliott> tempted to do a dramatic reading of that line
23:03:16 <monqy> twitter...
23:03:39 <elliott> there is a twitter account called PhilosophyQuotz
23:03:49 <elliott> was PhilosophyQuotes taken, and if so, why was that their second choice
23:03:58 <monqy> quotz
23:04:02 <elliott> http://twitter.com/#!/PhilosophyQuotz
23:04:06 <elliott> gangsta philosophy of the streets
23:04:30 <monqy> Philosophy quotes and quotes by philosophers.
23:04:47 <elliott> they might just quote like
23:04:54 <elliott> charles barkley
23:04:57 <elliott> if he says something about philosophy
23:05:04 <monqy> http://twitter.com/#!/PhilosophyQuotes hmm
23:05:53 <elliott> wow
23:07:19 <elliott> "People secretly want all video game characters to be planes."
23:07:53 <zzo38> Maybe some people do.
23:07:59 <oerjan> lara croft, the plane
23:08:13 <elliott> #esoteric -- come for the esolangs, stay for the zzo38
23:09:04 <monqy> is this plane fetishism, a joke, or just nonsense
23:09:07 <zzo38> And then you need to add ", leave for the ________" something too.
23:09:19 <elliott> monqy: everything is nonsense, i make sure to remove all the context i can when quoting
23:09:23 <elliott> #esoteric -- come for the esolangs, stay for the zzo38, leave for the zzo38
23:09:42 <monqy> does that mean leave because zzo38 is here or leave to follow zzo38 home
23:09:44 -!- zzo38 has set topic: #esoteric -- come for the esolangs, stay for the zzo38, leave for the zzo38 | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
23:09:53 <elliott> monqy: you decide
23:12:01 <oerjan> it's just the plane truth
23:20:36 -!- onca has joined.
23:20:52 <elliott> onca: came here for the esolangs?
23:21:17 <zzo38> I have idea something that I would like to see in LLVM, is to have commands to deal with activation records and stack, such as one to mark the return stack, one to copy the return stack to the mark, and one to restore from the copy (any number of times until the mark and/or copy becomes invalid)
23:21:28 -!- azaq23 has joined.
23:21:34 <zzo38> As well possibly things that directly activate data stored in activations records somehow
23:21:55 <elliott> for once i agree with you
23:22:05 <elliott> doesn't it have something for that though?
23:22:39 <zzo38> Not quite.
23:23:51 <onca> elliott, what's a esolang and how many do I need?
23:24:06 <zzo38> onca: Look at wiki and then you decide.
23:24:51 <onca> there's a poor chap in the # that is speaking to me in espainol and I was looking through channels for something with the -es or -sp in the title and stumbled on to this chan.
23:25:01 <elliott> haha
23:25:06 <elliott> well.
23:25:07 <elliott> not quite :)
23:25:14 <elliott> oh here let me copy our wiki im lazy
23:25:18 <elliott> Welcome to the esoteric programming languages wiki! This wiki is dedicated to the fostering and documentation of programming languages designed to be unique, difficult to program in, or just plain weird. Here's how you can explore this wiki.
23:25:18 <elliott> An esoteric programming language is a computer programming language designed to experiment with weird ideas, to be hard to program in, or as a joke, rather than for practical use.
23:25:25 <elliott> onca: but erm
23:25:32 <elliott> we're very good at toying with newbies until they disappear
23:25:45 <elliott> we'd be happy to take on a patient gratis right oerjan
23:26:25 <oerjan> eso no es español
23:27:14 <Lymia> elliott.
23:27:14 <Lymia> I disagree with that definition.
23:27:17 <Lymia> It excludes Perl.
23:27:43 <elliott> jesus christ
23:27:53 <elliott> how many times have you done the whole perl is an esolang stick i recall like at least three other times
23:28:02 <elliott> surely its getting old no matter how funny it was originally
23:28:57 <onca> that would include all programming languages.
23:29:02 <onca> but I'm game.
23:29:08 <onca> should I start the bidding on ada?
23:29:19 <elliott> bidding? erm yes definitely sure.
23:29:24 <monqy> bidding?
23:29:24 <onca> sold.
23:29:36 <zzo38> onca: Why do you need bidding?
23:30:06 <monqy> ada auction
23:30:08 <onca> I dont need bidding.
23:30:15 <onca> just trying to liquidate
23:30:23 <zzo38> Liquidate what?
23:30:35 <onca> everything must go.
23:30:43 <elliott> im glad this channel doesnt have a really explicitly obvious name itd like halve our day to day irc funtimes
23:31:04 <oerjan> also, magenta.
23:31:15 <onca> orange you glad I didn't say bananas?
23:31:35 <zzo38> Everything of what?
23:31:44 <oerjan> no, we like the occasional banana scheme
23:31:50 <monqy> I prefer bananas over oranges, myself
23:32:14 <elliott> trilime unite
23:32:34 <oerjan> by the power of something
23:34:52 <elliott> goodnight, tomorrow i shall write best wc
23:35:28 <oerjan> west corea
23:35:29 <quintopia> oerjan: definitely greyskull
23:35:54 <oerjan> ic
23:36:09 <zzo38> You could have: i8* .mark() i8* .save(i8*) void .continue(i8*) void .discardmark(i8*) void .discardsave(i8*) Now you can make something similar to call/cc possibly
23:37:07 <oerjan> um you can do that with setjmp can't you, surely llvm supports that?
23:37:25 <zzo38> Yes it does support setjmp and longjmp
23:38:13 <zzo38> But I am not sure if it does what I am saying
23:39:09 -!- elliott has quit (Ping timeout: 252 seconds).
23:39:38 <zzo38> Simply restoring the stack pointer and frame pointer is not enough in some cases
23:40:25 <oerjan> oh
23:41:24 <pikhq_> oerjan: The only usage of setjmp and longjmp that's not undefined is jumping up the stack.
23:43:31 -!- onca has quit (Quit: Leaving.).
23:45:54 -!- oerjan has quit (Quit: Good night).
23:55:09 <zzo38> This new way might help a lot of things
23:55:39 <quintopia> will it help me acquire moneys?
23:57:27 <zzo38> I don't know.
23:59:28 <Sgeo> Shut up and take my monkey!
23:59:44 <zzo38> No.
23:59:48 -!- augur has quit (Remote host closed the connection).
2011-06-22
00:00:00 <coppro> Sgeo: deone
00:00:01 <coppro> *done
00:00:05 <coppro> send to my paypal
00:00:27 <Sgeo> Paypal deals with monkeys now?
00:03:58 -!- Wamanuz2 has quit (Ping timeout: 244 seconds).
00:04:14 -!- fizzie has quit (Ping timeout: 276 seconds).
00:04:52 -!- aloril has quit (Ping timeout: 250 seconds).
00:04:59 <zzo38> Do you know whether or not a PHI node in LLVM is allowed to return label type values and if those values can be used later?
00:05:05 <coppro> nope
00:05:11 <coppro> ask in #llvm on oftc
00:05:27 <zzo38> OK
00:05:29 -!- Wamanuz2 has joined.
00:11:57 -!- Lymia has changed nick to Lymee.
00:13:30 -!- Wamanuz2 has quit (Remote host closed the connection).
00:13:57 -!- Wamanuz2 has joined.
00:14:35 -!- fizzie has joined.
00:17:41 -!- Patashu has joined.
00:24:23 -!- augur has joined.
00:28:30 -!- aloril has joined.
00:47:26 -!- FireFly has quit (Quit: swatted to death).
00:50:11 -!- F has quit (Ping timeout: 276 seconds).
00:57:15 -!- F has joined.
01:10:23 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:18:01 -!- kwertii has quit (Quit: bye).
01:18:48 -!- Slereah has quit.
01:38:56 -!- CakeProphet has quit (Ping timeout: 276 seconds).
01:40:13 <zzo38> Once my grandfather said he would call the president and tell him to remove the words "I don't want" from the dictionary.
01:43:00 -!- copumpkin has joined.
01:43:00 -!- copumpkin has quit (Changing host).
01:43:00 -!- copumpkin has joined.
01:44:34 -!- CakeProphet has joined.
01:44:34 -!- CakeProphet has quit (Changing host).
01:44:34 -!- CakeProphet has joined.
01:55:29 -!- DocHerrings has joined.
02:00:15 <zzo38> Tell me if you would like to have access to TeXnicard_Extra repository.
02:04:29 -!- Guest13856 has changed nick to Gregor.
02:04:59 -!- Gregor has changed nick to Guest10869.
02:05:48 <zzo38> Guest10869: Wrong number please
02:07:58 -!- azaq23 has quit (Read error: Operation timed out).
02:09:47 -!- azaq23 has joined.
02:09:49 -!- azaq23 has quit (Changing host).
02:09:49 -!- azaq23 has joined.
02:12:02 -!- azaq23 has quit (Client Quit).
02:17:16 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 4.0.1/20110413222027]).
02:25:22 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:12:09 <zzo38> Are you going to have Qu'ran for dinner?
03:12:52 <pikhq_> I'm afraid that Qu'ran is probably not that good-tasting.
03:13:33 <coppro> pikhq_: edible paper
03:17:02 <pikhq_> Still, I'd rather not eat a book of bullshit.
03:17:11 <pikhq_> Even if it is edible.
03:17:44 <coppro> `addquote < pikhq_> I'm afraid that Qu'ran is probably not that good-tasting. < coppro> pikhq_: edible paper < pikhq_> Still, I'd rather not eat a book of bullshit.
03:17:45 <HackEgo> 463) < pikhq_> I'm afraid that Qu'ran is probably not that good-tasting. < coppro> pikhq_: edible paper < pikhq_> Still, I'd rather not eat a book of bullshit.
03:20:16 <coppro> lol #math on EFNet
03:20:27 <coppro> guy comes in with a probability (die rolling) question
03:20:33 <coppro> I ask "How would you approach the problem?"
03:20:34 <coppro> and he solves it
03:20:48 <pikhq_> How very convenient.
03:21:06 <monqy> was it least a good problem
03:21:35 <coppro> If you roll a six-sided die three times, what are the odds that the results are not all different
03:22:02 <pikhq_> Hmm. Annoying, but not hard.
03:22:42 <coppro> yeah
03:24:16 <coppro> obviously homework
03:24:34 <pikhq_> Yeah, certainly not the sort of problem people do because they're curious.
03:24:37 <pikhq_> :)
03:25:14 <pikhq_> (arguably the worst part of homework for math: it's problems that are fundamentally boring.)
03:26:27 -!- azaq23 has joined.
03:30:08 <coppro> he just asked (and, after a prod, solved) another one; this time the chances that two dice are the same and there is at least one six
03:37:15 <zzo38> I think support of these units for measurements on paper should be sufficient: pt (point) bp (desktop publishing point) in (inch) cm (centimetre) mm (millimetre) em (em width -- font specific) ex (ex height -- font specific)
03:37:48 <zzo38> I don't think other are needed but you can tell me if you believe otherwise.
03:37:55 <pikhq_> That seems entirely sufficient.
03:38:27 <zzo38> Actually I probably don't need centimetres if you can use millimetres instead. Do you think should be removed or not?
03:40:51 <coppro> You should just use metres and accept all SI prefixes
03:41:17 <pikhq_> Kiloïnch?
03:41:20 <pikhq_> :)
03:43:22 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:43:53 <zzo38> coppro: I doubt that is necessary or important. It would also clash with the other units and complicate the programming. Maybe in other programs it would be useful though.
03:54:02 -!- azaq23 has joined.
04:03:01 * Sgeo learns about Fredkin gates
04:03:50 -!- F has left.
04:25:47 -!- augur has quit (Remote host closed the connection).
04:57:16 -!- Guest10869 has changed nick to Gregor.
04:58:01 <Sgeo> If complex numbers weren't invented, how difficult would it be to work them out from the understanding of quantum mechanics?
04:59:20 <pikhq_> I'm pretty sure that complex numbers would by necessity have been described *much* earlier.
05:00:09 <pikhq_> Given that you absolutely need an understanding thereof for understanding certain classes of differential equations.
05:00:19 <pikhq_> Guess what's used extensively in classical mechanics?
05:01:43 -!- augur has joined.
05:25:43 -!- Sgeo_ has joined.
05:27:48 -!- Sgeo has quit (Ping timeout: 250 seconds).
05:46:10 -!- Sgeo_ has changed nick to Sgeo.
06:16:53 -!- newsham has joined.
06:39:47 -!- Slereah has joined.
06:46:36 -!- evincar has joined.
06:47:20 <evincar> How's life in the esoteric world?
06:55:37 -!- evincar has quit (Quit: ChatZilla 0.9.87 [Firefox 3.6.17/20110422054610]).
06:56:21 <Lymee> Let's make a page calling Haskell a wimpmode of Unlambda
07:00:29 -!- monqy has quit (Quit: hello).
07:05:14 -!- zzo38 has quit (Remote host closed the connection).
07:33:40 <Slereah> heh
07:34:45 <Patashu> unlambda is a wimpmode of subtle cough
08:05:09 -!- oerjan has joined.
08:27:04 -!- sodras has joined.
08:39:24 <cheater_> Patashu, wtf is "subtle cough"?
08:44:45 <Patashu> http://www.esolangs.org/wiki/Subtle_cough
09:13:30 <Lymee> I went and made a basic optimizing Brainfuck->C compiler in Scala.
09:13:36 <Lymee> ...
09:14:02 <Lymee> It might benefit from code to recognize balanced loops and handle them specially.
09:16:42 -!- Wamanuz3 has joined.
09:19:35 -!- Wamanuz2 has quit (Ping timeout: 246 seconds).
09:22:06 -!- sodras has quit (Ping timeout: 252 seconds).
09:22:24 -!- Vorpal has joined.
09:41:41 -!- choochter has joined.
10:32:40 -!- newsham has quit (Quit: gone).
10:45:49 -!- oerjan has quit (Quit: leaving).
11:11:50 -!- FireFly has joined.
11:18:17 -!- Vorpal has quit (Ping timeout: 260 seconds).
11:25:20 -!- Slereah has quit (Ping timeout: 252 seconds).
11:59:52 -!- azaq23 has quit (Quit: Leaving.).
12:02:12 -!- Phantom_Hoover has joined.
12:05:12 -!- Vorpal has joined.
12:09:39 -!- Wamanuz3 has quit (Remote host closed the connection).
12:10:46 -!- Wamanuz3 has joined.
12:34:32 -!- CakeProphet has quit (Ping timeout: 260 seconds).
12:35:30 -!- CakeProphet has joined.
12:35:31 -!- CakeProphet has quit (Changing host).
12:35:31 -!- CakeProphet has joined.
12:42:24 <Lymee> I'm writing an Brainfuck->C compiler for fum
12:42:25 <Lymee> fun*
12:42:37 <Lymee> I'm getting a lot of this:
12:42:38 <Lymee> ptr+=7;
12:42:38 <Lymee> while(ptr[0]){
12:42:38 <Lymee> ptr[0]-=1;
12:42:38 <Lymee> }
12:42:57 <Lymee> Guess it's time to write code to turn stuff like this into something less painful, eh...
12:45:03 <Phantom_Hoover> Lymee, just give up now.
12:45:04 <lambdabot> Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them.
12:45:06 <Phantom_Hoover> You will never beat Esotope.
12:45:08 <Phantom_Hoover> It is simply the best there is.
12:45:16 <Lymee> Phantom_Hoover, fun is fun.
12:45:16 <Lymee> :)
12:49:32 <CakeProphet> http://en.wikipedia.org/wiki/Dangling_else
12:49:35 <CakeProphet> what? this article is so bad.
12:53:35 -!- MigoMipo has joined.
12:54:02 <Phantom_Hoover> CakeProphet, you mean it's ambiguous or it's wrong?
12:54:22 <Lymee> Phantom_Hoover, and don't tell me I can't beat esotope.
12:54:26 <Lymee> I will try, damnit.
12:54:36 <Phantom_Hoover> Lymee, have fun.
12:55:24 <Lymee> Phantom_Hoover, i will.
12:55:25 <Lymee> I*
12:57:03 -!- Wamanuz3 has quit (Ping timeout: 252 seconds).
12:58:26 -!- Wamanuz3 has joined.
13:01:11 <Phantom_Hoover> OK, I have some weird rock version of The Bonnie Banks of Loch Lomond stuck in my head.
13:19:47 <Vorpal> <Lymee> Phantom_Hoover, and don't tell me I can't beat esotope. <-- of course it can be done, but it won't be easy
13:20:27 <Vorpal> Phantom_Hoover, *ouch*
13:20:59 <Phantom_Hoover> Vorpal, what are you talking about, it's an awesome weird rock version of The Bonnie Banks of Loch Lomond.
13:21:05 <Vorpal> Phantom_Hoover, ah
13:23:21 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/i61gh/say_a_ship_with_humans_on_it_makes_it_to_the_edge/
13:23:35 <Phantom_Hoover> This is possibly the single stupidest question I have seen on AskScience.
13:27:15 <Patashu> It's not THAT bad
13:27:19 <Patashu> It's actually not very well understood
13:27:38 <Phantom_Hoover> Patashu, edge of space?
13:27:43 <Patashu> Yeah
13:27:46 <Patashu> People talk about the universe expanding
13:27:48 <Phantom_Hoover> There's no such thing. Full stop.
13:27:49 <Patashu> Often relating it to a balloon
13:27:54 <Patashu> So you could think 'the universe has an edge then'
13:27:57 <Patashu> and then try to think about it and ?_?
13:28:17 <Patashu> I think I'm a bit confused about it myself. Is it true that the universe is shaped as the 3D surface of a 4D sphere equivalent?
13:28:20 <Phantom_Hoover> Oh, right.
13:28:27 <Phantom_Hoover> Oh god I sounded like pikhq there.
13:28:29 <Patashu> So if you travel in any direction you travel the 3D equivalent of a great circle
13:28:36 <Phantom_Hoover> Patashu, I think that's one of the options.
13:28:59 <Vorpal> yeah I think I heard about that one too
13:29:08 <Vorpal> of course, no one knows for sure yet.
13:29:38 <Phantom_Hoover> ISTR someone looking at the CMB and suggesting that the data was consistent with the universe being a Poincare dodecahedron, but I think it was also refuted or at least too uncertain.
13:29:46 <Patashu> If you guys aren't sure
13:29:49 <Patashu> Why it is a dumb question
13:29:50 <Patashu> *is it
13:30:01 <Phantom_Hoover> Patashu, because there's no 'edge' either way.
13:30:24 <Patashu> If you aren't experienced in thinking about 4 dimensional shapes
13:30:27 <Patashu> you WILL think there's an edge
13:30:32 <Patashu> or that the universe is infinitely large (not true)
13:30:37 <Patashu> well, both aren't
13:31:23 <Vorpal> Patashu, think of something like the game astroids where iirc if you go across one edge you appear on the other.
13:31:35 <Patashu> Nono. -I- understand
13:31:39 <Patashu> That's because I've thought about it before
13:31:44 <Vorpal> ah
13:32:23 <Vorpal> I wonder what it would be like to see in more than 3 dimensions
13:32:27 <Phantom_Hoover> Vorpal, that's a toroidal space, though.
13:32:50 <Vorpal> Phantom_Hoover, yes, it isn't an exact parallel.
13:32:51 <Phantom_Hoover> Which ISTR has zero curvature, so it's not the same.
13:33:18 <Vorpal> Phantom_Hoover, however, it illustrates the general concept
13:34:05 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:34:23 <Vorpal> Phantom_Hoover, what curvature does the Poincare dodecahedron have?
13:35:20 <Phantom_Hoover> Vorpal, I'm guessing it's positive, since it's similar to the sphere.
13:35:33 <Vorpal> ah
13:41:50 -!- BeholdMyGlory has joined.
13:42:38 * Phantom_Hoover notes that his understanding of special relativity has collapsed.
13:42:48 <Phantom_Hoover> Or, more likely, wasn't there to begin with
13:43:43 <Vorpal> Phantom_Hoover, oh? It is easy, twins age at different rates when one travels at high speed. The end.
13:43:53 <Vorpal> (actually: accelerates)
13:51:46 <quintopia> Stockholm has a sea fortress called Suomenlina, and in Iceland there is a restaurant called Cafe Summalinna, I think in a town of the same name. Do any of the scandinavians here know if these words are related?
13:52:06 <Vorpal> quintopia, Stockholm has a sea fortress called Suomenlina, <-- sure? That sounds Finnish to me
13:52:28 <quintopia> well maybe it's helsinki
13:52:34 <Vorpal> quintopia, big difference
13:52:40 <quintopia> but i'm almost positive it's stockholm
13:52:45 <quintopia> wait
13:52:46 <Vorpal> yeah it is Helsinki says google
13:52:49 <quintopia> no you're right
13:52:58 <Vorpal> quintopia, for a start it is a different language family
13:53:00 <quintopia> i rode too many ferries to remember where they came from and where they went
13:53:40 <Vorpal> quintopia, besides it seems to be spelled Suomenlinna
13:53:47 <quintopia> sure the families are different, but helsinki used to be in sweden, so maybe they got some loan words?
13:54:04 <quintopia> Vorpal: which makes it even closer to the spelling summalinna
13:55:23 <Vorpal> quintopia, however it is the wrong language group if it is in Finland and Iceland. One is a germanic language, the other is a finnic language
13:56:10 -!- copumpkin has joined.
13:56:32 <quintopia> apparently it means "visitor" in finnish?
13:56:42 <Vorpal> I have no idea
13:56:51 <Vorpal> I'm from Sweden, not Finland
13:57:32 <quintopia> all the road signs in helsinki are in both swedish and finnish. it wouldn't be hard for you to get around :P
13:57:47 <Vorpal> true
13:57:54 <Vorpal> quintopia, doesn't mean I speak Finnish :P
13:58:34 <quintopia> but google does, and it says "visitor"
13:58:37 <Vorpal> quintopia, anyway that is a rather different dialect of Swedish spoken over there. Some words would be different certainly.
13:58:53 <Vorpal> quintopia, google thinks cm = inches when I translated a page :P
13:59:10 <Vorpal> without converting the value
13:59:42 <fizzie> What means "visitor"?
13:59:45 <Deewiant> quintopia: "Suomenlinna" = "Finland's castle"
13:59:46 <quintopia> i don't use it to translate pages. it sucks at that
13:59:55 <Vorpal> fizzie, hi see the mc channel
14:00:05 <Deewiant> "Summalinna" = "sum castle"
14:00:23 <quintopia> ha
14:00:25 <quintopia> okay then
14:00:27 <Vorpal> quintopia, it seems to suck at tanslating words too
14:00:35 <quintopia> APPARENTLY
14:00:38 <Vorpal> quintopia, anyway I doubt the Icelandic one is related
14:00:47 <quintopia> yeah it seems unlikely
14:00:49 <Vorpal> quintopia, since Deewiant spoke about what it meant in Finnish
14:00:57 <quintopia> unless a fin owned that cafe
14:01:49 -!- Wamanuz4 has joined.
14:01:55 -!- Wamanuz3 has quit (Read error: Connection reset by peer).
14:02:56 <fizzie> AFAIK them Icelandickers try to avoid loanwords quite much.
14:07:45 <Phantom_Hoover> I never quite got the whole anti-loanword thing.
14:08:14 <Phantom_Hoover> I mean c'mon, English borrowed everyone else's words and suddenly they don't want them back?
14:08:30 <Vorpal> Phantom_Hoover, I guess it is an attempt at retaining the identity of the language, since it is small, it won't be as easy as for English
14:08:45 <Vorpal> Iceland has a tiny population
14:10:46 <Phantom_Hoover> Wait, Kylie is derived from an Australian Aboriginal word?
14:10:53 <Phantom_Hoover> My mind is blown.
14:10:56 -!- Wamanuz5 has joined.
14:11:04 -!- Wamanuz4 has quit (Ping timeout: 240 seconds).
14:18:44 * Sgeo only 4 days later sees the stunt elliott tried to pull on me in Agora
14:23:30 -!- Wamanuz5 has quit (Remote host closed the connection).
14:24:29 -!- Wamanuz5 has joined.
14:29:23 <Phantom_Hoover> Sgeo, elaborate.
14:29:53 <Sgeo> Someone tried to degregister me and some other people by objection. I objected
14:29:59 -!- Wamanuz5 has quit (Read error: Connection reset by peer).
14:30:04 -!- Wamanuz has joined.
14:30:55 <Sgeo> Shortly afterwards, elliott complained about this, but while doing so, repeated the original intent, exactly as it appeared in the original emaill.... so that in Gmail, and perhaps some other clients, it looked like elliott was just quoting what appeared in a previous email.
14:31:34 <Sgeo> Hmm, now I'm wondering what would have happened if tswett didn't notice. Would have been an interesting CFJ
14:31:44 <Sgeo> Maybe
14:32:53 <Phantom_Hoover> Sgeo, I am failing to see the stunt
14:34:25 <Sgeo> If someone doesn't think to click "Show quoted text" then it wouldn't be noticed that elliott was actually taking an action, rather than just referring to a previous message
14:39:13 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:39:19 -!- SimonRC has quit (Ping timeout: 260 seconds).
14:46:34 -!- Elizacat has joined.
14:46:37 <Elizacat> hi
14:46:44 * Elizacat pokes Vorpal
14:49:09 * Phantom_Hoover counterpokes.
14:52:51 * Vorpal blinks
14:57:42 * Phantom_Hoover counterblinks.
15:01:08 -!- SimonRC has joined.
15:03:03 * Phantom_Hoover counterjoins.
15:05:42 -!- SimonRC has quit (Ping timeout: 252 seconds).
15:06:52 -!- SimonRC has joined.
15:07:29 * quintopia counter-counter-Phantom_Hoovers
15:17:04 * Phantom_Hoover notes that they really turned up the sex for the 6th series of Futurama
15:18:44 <Phantom_Hoover> Also, they changed the layout of Zoidberg's internal organs.
15:24:54 <Vorpal> Phantom_Hoover, why would they do the latter
15:29:37 <Phantom_Hoover> Vorpal, we may never know.
15:34:14 <Vorpal> I just discovered the sport "Extreme Ironing". WTF but awesome.
15:35:57 -!- monqy has joined.
15:52:39 -!- Wamanuz has quit (Remote host closed the connection).
15:53:12 -!- Wamanuz has joined.
15:58:12 -!- Lymee has quit (Ping timeout: 252 seconds).
15:59:39 -!- Lymee has joined.
16:13:09 -!- Wamanuz has quit (Read error: Operation timed out).
16:18:47 -!- Wamanuz has joined.
16:23:57 -!- Slereah has joined.
16:32:36 -!- Wamanuz has quit (Ping timeout: 252 seconds).
16:32:40 -!- Wamanuz2 has joined.
16:36:08 -!- zzo38 has joined.
16:42:20 -!- Wamanuz2 has quit (Read error: Connection reset by peer).
16:43:30 -!- newsham has joined.
16:43:43 -!- Wamanuz2 has joined.
16:49:42 -!- Wamanuz3 has joined.
16:50:27 -!- Wamanuz2 has quit (Ping timeout: 244 seconds).
16:50:30 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
16:56:38 -!- Wamanuz3 has quit (Read error: Connection reset by peer).
16:56:41 -!- Tritonio has joined.
16:57:37 -!- Wamanuz3 has joined.
17:09:42 -!- oerjan has joined.
17:15:53 -!- Wamanuz3 has quit (Ping timeout: 250 seconds).
17:16:34 <oerjan> `translatefromto en fi Does this work any longer?
17:16:38 <HackEgo> Onko tämä toimi enää?
17:16:42 <oerjan> ic
17:16:51 -!- Tritonio_GR has joined.
17:16:55 <oerjan> `translatefromto fi en suomenlinna
17:16:56 <HackEgo> Suomenlinna
17:17:01 <oerjan> `translatefromto fi en suomen linna
17:17:03 <HackEgo> Finnish castle
17:17:35 -!- Wamanuz4 has joined.
17:17:44 <oerjan> quintopia: ^ Pretty conclusive i'd say
17:18:01 <oerjan> `translatefromto is en summalinna
17:18:03 <HackEgo> sum Linna
17:18:23 <oerjan> hm not so conclusive
17:18:28 <oerjan> `translatefromto is en tölva
17:18:30 <HackEgo> computer
17:18:46 <quintopia> `translatefromto is en summalina
17:18:46 <oerjan> `translatefromto is en summa linna
17:18:47 <HackEgo> sum lina
17:18:49 <HackEgo> sum Linna
17:19:21 <oerjan> i think -ina or -inna is a possible definite article, though
17:19:30 <oerjan> (in some case)
17:19:44 -!- Tritonio has quit (Ping timeout: 240 seconds).
17:19:46 <quintopia> `translatefromto is en summal
17:19:47 <HackEgo> summal
17:20:05 <oerjan> but summal doesn't sound very icelandic to me
17:20:07 <zzo38> Has the present king of France stopped robbing banks?
17:20:48 <quintopia> нйеееееееееееееееееееееееееееееееееееееееееееееееееееееет
17:22:15 <oerjan> i cannot find any trace of this icelandic thing you refer to
17:24:23 <oerjan> in fact the top hit i get for summalinna is someone misspelling the other one :P
17:26:18 <fizzie> In quotes, that's the only hit I get for "Summalinna".
17:26:34 -!- Wamanuz4 has quit (Ping timeout: 252 seconds).
17:28:10 <oerjan> quintopia: there's a swedish café smulan, if that helps :P
17:28:57 <oerjan> (if it's anything like norwegian, smulan = the crumb)
17:31:03 <oerjan> quintopia: do you have any idea where you heard about this icelandic cafe?
17:31:18 <quintopia> when i went there
17:31:35 <oerjan> and you're sure it was iceland
17:31:45 <quintopia> it's in the journal from iceland
17:31:55 <oerjan> and spelled that way?
17:32:02 <oerjan> hm
17:32:33 <quintopia> no
17:32:38 <quintopia> in the journal it's spelled summalina
17:32:45 <oerjan> aha
17:33:46 <oerjan> and where in iceland was this?
17:34:22 -!- TOGoS has joined.
17:34:25 -!- TOGoS has left.
17:34:52 <oerjan> that exact word gives only 8 google hits
17:35:35 <quintopia> east coast
17:36:23 <quintopia> in a fjord
17:36:24 <quintopia> so
17:36:37 <quintopia> the village had "fjörður" at the end of course
17:37:35 <oerjan> heh
17:38:16 <oerjan> i guess it's a too tiny village then...
17:39:26 <quintopia> they had an internet connection i think, but i don't think they had a website :P
17:39:47 <oerjan> heh
17:40:39 <quintopia> If i had to guess, i'd say it was Reyðarfjörður. that sounds right and looks to be in the right place.
17:41:19 <quintopia> or Faskruðsfjður
17:41:32 <quintopia> *fjörður
17:42:55 <quintopia> aha found it
17:42:59 <quintopia> my mom misspelled it
17:43:03 <quintopia> "Restaurant Café Sumarlína"
17:43:10 <oerjan> huh
17:43:41 <quintopia> it's on the Faskrúðsfjörður wikipedia page :P
17:43:50 <oerjan> ok
17:44:04 <oerjan> `translatefromto is en sumarlína
17:44:05 <HackEgo> Sumarlína
17:44:08 <oerjan> `translatefromto is en sumar lína
17:44:09 <HackEgo> some line
17:44:22 <quintopia> lol
17:44:27 <oerjan> some name
17:47:34 <oerjan> `translatefromto is en sumarinn
17:47:35 <HackEgo> some sounds
17:47:42 <oerjan> wtf
17:47:44 <oerjan> `translatefromto is en sumarin
17:47:46 <HackEgo> summer
17:47:48 <oerjan> ah
17:48:05 <oerjan> `translatefromto is en lína
17:48:07 <HackEgo> line
17:48:39 <oerjan> so, i am guessing the first part is summer
17:48:50 -!- pikhq_ has quit (Ping timeout: 244 seconds).
17:48:50 -!- pikhq has joined.
17:49:16 <Deewiant> (geometry) a line, a straight line syn.
17:49:16 <Deewiant> (fishing) a fishing line
17:49:17 <Deewiant> a string, a line, a rope syn.
17:54:44 <oerjan> oh it's actually a woman's name http://is.wikipedia.org/wiki/Sumarl%C3%ADna
17:55:22 <oerjan> quintopia: ^
17:55:54 <oerjan> that page should make all clear *cackles madly*
17:57:49 <oerjan> oh wait there may be only two people called that (since 1950, anyway) :P
17:59:17 <quintopia> that's what i was noticing :P
17:59:23 <quintopia> not a popular name at all
18:06:28 <oerjan> oh Lína is a female name, the term "mannanöfn" confused me
18:06:52 <oerjan> to a norwegian it looks like it means "men's name", but it actually just means "human name"
18:07:09 <oerjan> so Sumarlína is a simple compound, i guess
18:07:39 <quintopia> icelandic is the least changed from old norse. back then "man" meant "human"
18:09:02 <oerjan> yes, but curiously it seems not to _also_ mean just "male human"
18:10:50 <oerjan> unlike in norwegian, where "mann" means male, these days mostly unambiguously
18:10:56 <tswett> `quote
18:10:57 <HackEgo> 34) <zzo38> I am not on the moon.
18:11:23 <oerjan> tswett: IT WOULD HAVE EXPLAINED SO MUCH
18:15:48 <oerjan> ok wiktionary seems to indicate it sometimes still means "man", or "husband"
18:17:58 <quintopia> oerjan: in old english, i think man was human, where husman was man and wyfman was woman, or somethign like that
18:20:37 <oerjan> hm
18:23:06 <oerjan> !userinterps
18:23:07 <EgoBot> ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo eehird ehird elmer fudd google graph gregor hello id jethro kraut lperl lsh map num ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish ustemp valspeak warez wc yodawg
18:23:31 <oerjan> !show decide
18:23:31 <EgoBot> haskell import System.Random; main = (randomRIO (0,1) :: IO Int) >>= print
18:23:38 <oerjan> !decide
18:23:46 <EgoBot> 0
18:25:12 <oerjan> !haskell import System.Random; main = randomRIO (0,1) >>= print
18:25:16 <newsham> !decide
18:25:21 <EgoBot> 1
18:25:28 <newsham> ?help dice
18:25:29 <lambdabot> dice <expr>. Throw random dice. <expr> is of the form 3d6+2.
18:25:35 <newsham> ?dice 1d6
18:25:35 <lambdabot> 1d6 => 2
18:26:32 <oerjan> i wonder wth ghc doesn't use defaulting to make that Integer...
18:26:47 <Deewiant> ?dice 4d7*3+1
18:26:47 <lambdabot> unexpected "*": expecting digit, "+" or end
18:27:05 <Deewiant> Lame
18:27:35 <oerjan> ?? ?run (?dice 4d7)*3+1
18:27:36 <lambdabot> <no location info>: parse error on input `=>'
18:27:41 <oerjan> bah
18:27:53 <oerjan> BAD COMPOSABILITY
18:28:53 <oerjan> :t 1d6
18:28:54 <lambdabot> Not in scope: `d6'
18:29:21 <quintopia> oerjan: speaking of Lína being a female name, the swedish version of that name is the name of the most famous woman in computing history :P
18:29:37 <oerjan> wat
18:29:56 <oerjan> i thought lina was the swedish version
18:30:08 <quintopia> not Lena?
18:30:51 <Deewiant> Is Lena the most famous now?
18:31:08 <oerjan> well obviously there are several versions, but i assume lina is the closest one
18:31:42 <oerjan> also, oh that lena
18:32:24 <quintopia> she's also the centerfold of the most popular issue in Playboy history
18:32:31 <quintopia> people still want copies of it
18:32:54 <newsham> what do you want 4d7*3+1 to be?
18:33:00 <newsham> ?dice 2d6
18:33:00 <lambdabot> 2d6 => 5
18:33:01 <oerjan> "It is a picture of Lena Söderberg, a Swedish model, shot by photographer Dwight Hooker."
18:33:03 <newsham> ?dice 2d6
18:33:03 <lambdabot> 2d6 => 6
18:33:05 <newsham> ?dice 2d6
18:33:05 <lambdabot> 2d6 => 11
18:33:10 <newsham> thats two six sided dice
18:33:40 <Deewiant> I'd still argue that Ada's more popular :-P
18:34:04 <oerjan> Deewiant: you'd think. and Grace.
18:35:09 <oerjan> newsham: mostly, i'd want it to be a number you could feed on into @run
18:36:16 <quintopia> Deewiant, oerjan: you underestimate the male sex drive :P
18:36:43 <quintopia> fucking lady byron. i think she was probably a nutcase
18:36:55 <quintopia> gambling addict
18:41:53 <newsham> ?help run
18:41:53 <lambdabot> run <expr>. You have Haskell, 3 seconds and no IO. Go nuts!
18:42:30 <newsham> oerjan: ?. ?run and ?dice ?
18:44:35 -!- NihilistDandy has joined.
18:46:56 <oerjan> newsham: ?? works slightly different than ?.
18:47:22 <oerjan> newsham: my point was the result of @dice is not a plain number
18:48:33 <newsham> oh.. hrmm.. yah.
18:48:55 <oerjan> @@ @run (read . last . words $ @read @dice 4d7)*3+1
18:48:56 <lambdabot> Plugin `compose' failed with: Prelude.read: no parse
18:48:58 <newsham> make an "unDice" function :)
18:48:59 <oerjan> argh
18:49:13 <oerjan> @read hm what is this
18:49:14 <lambdabot> Plugin `dummy' failed with: Prelude.read: no parse
18:49:22 <oerjan> oh hm
18:49:26 <oerjan> @show maybe this was it
18:49:27 <lambdabot> "maybe this was it"
18:49:34 <oerjan> @@ @run (read . last . words $ @show @dice 4d7)*3+1
18:49:35 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
18:49:37 <Deewiant> @read "4"
18:49:38 <lambdabot> 4
18:49:39 <oerjan> ff
18:50:01 <oerjan> @show @dice 4d7
18:50:01 <lambdabot> "@dice 4d7"
18:50:07 <oerjan> um
18:50:10 <oerjan> @@ @show @dice 4d7
18:50:11 <lambdabot> "4d7 => 20"
18:50:20 <newsham> tada
18:50:37 <oerjan> @@ @run last . words $ @show @dice 4d7
18:50:39 <lambdabot> "20"
18:51:15 <oerjan> @@ @run (last . words $ @show @dice 4d7)
18:51:16 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
18:51:19 <oerjan> aha
18:51:31 <oerjan> @@ @run (last . words $ (@show @dice 4d7))
18:51:33 <lambdabot> "14"
18:51:37 <oerjan> @@ @run (last . words $ (@show @dice 4d7))*3+1
18:51:38 <lambdabot> No instance for (GHC.Num.Num GHC.Base.String)
18:51:38 <lambdabot> arising from the literal `...
18:51:42 <oerjan> er
18:51:47 <oerjan> @@ @run (read . last . words $ (@show @dice 4d7))*3+1
18:51:49 <lambdabot> 28
18:51:51 <oerjan> whew
18:52:07 <newsham> lambdabot is looking more and more like an esoteric language
18:52:11 <oerjan> newsham: anyway you can see how much simpler that would have been if @dice just printed the number :P
18:52:25 <newsham> oerjan: submit a patch! ;-)
18:52:36 <oerjan> argh evil words
18:53:19 <newsham> also ?let undice = read . last . words . @show or something like so?
18:53:20 <newsham> ;-)
18:53:40 <oerjan> alas that won't work
18:54:03 <newsham> ok, without the @show, but with the rest, still makes it simpler
18:54:18 <oerjan> @list dice
18:54:19 <lambdabot> dice provides: dice
18:59:48 -!- adamfyre has joined.
19:00:10 <oerjan> is adamfyre a burning man
19:01:31 <adamfyre> Kinda..
19:02:13 <adamfyre> Well, sometimes.
19:03:04 <oerjan> well stop playing with gasoline!
19:04:19 <adamfyre> Hah
19:04:34 <adamfyre> Im a welder
19:07:09 <oerjan> ic.
19:07:32 -!- adamfyre has quit (Quit: AndroidIrc Disconnecting).
19:08:26 <oerjan> just a man on a qwest, passing by
19:18:51 -!- Phantom_Hoover has joined.
19:25:44 -!- Deewiant has quit (Quit: Viivan loppu.).
19:26:10 -!- Deewiant has joined.
19:29:04 * pikhq wonders at ldd /bin/ls
19:29:14 <pikhq> Does ls really need libdl?
19:32:58 <Phantom_Hoover> Libdl?
19:34:04 <newsham> dlopen and friends, yes?
19:34:17 <pikhq> Yup.
19:34:43 <newsham> ls --with-gnu-emacs-dynamic-module-option=my.so
19:34:46 <newsham> ;-)
19:34:55 <pikhq> Ah, probably being pulled in through libacl and libselinux.
19:35:02 <pikhq> I'm very curious about libpthread still.
19:46:50 <newsham> http://code.google.com/p/unix-jun72/source/browse/trunk/src/cmd/ls.s
19:50:42 <Deewiant> That's almost 10x less lines of asm than there are lines of C in GNU ls
19:53:48 <Phantom_Hoover> I like the way it doesn't have any text in it.
19:53:50 <Phantom_Hoover> At all.
19:54:20 <newsham> jsrr5,questf; < nonexistent\n\0>;
19:54:23 <newsham> thats text.
19:54:56 <newsham> sometimes args are put inline in the code
19:55:05 <newsham> the caller adjusts the return addr
19:55:16 <newsham> callee i mean
20:15:25 <Phantom_Hoover> Oh, right.
20:15:38 <Phantom_Hoover> An era before quote-delimited string literals...
20:15:43 <Phantom_Hoover> It's like dinosaurs.
20:15:45 <Phantom_Hoover> Somehow.
20:20:59 <olsner> Phantom_Hoover: it's like perl
20:23:01 <NihilistDandy> lol
20:23:50 <newsham> alert(/whatever/)
20:27:40 <olsner> newsham: javascript:alert(/whatever/) just displays /whatever/
20:31:06 <oerjan> !perl print q doesthiswork? ;
20:31:07 <EgoBot> Can't find string terminator "d" anywhere before EOF at /tmp/input.5883 line 1.
20:31:30 <oerjan> hmph pesky space exception
20:32:08 <oerjan> !perl print q_but this then?_;
20:32:08 <EgoBot> syntax error at /tmp/input.5986 line 1, near "_;"
20:32:30 <oerjan> !perl print q _but this then?_ ;
20:32:30 <EgoBot> but this then?
20:32:34 <olsner> wow, perl has syntax errors?
20:32:43 <oerjan> shocking!
20:33:02 <olsner> and here I thought every byte sequence would be a valid perl program
20:33:21 <olsner> or: what weird dialect of perl is this bot using?
20:33:38 <oerjan> and chixqsomething relies on it, too!
20:33:44 <oerjan> hm...
20:33:48 <oerjan> !userinterps
20:33:49 <EgoBot> ​Installed user interpreters: acro aol austro bc bct bfbignum brit brooklyn bypass_ignore bytes chaos chiqrsx9p choo ctcp dc decide drawl drome dubya echo eehird ehird elmer fudd google graph gregor hello id jethro kraut lperl lsh map num ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish ustemp valspeak warez wc yodawg
20:33:52 -!- pikhq has quit (Ping timeout: 252 seconds).
20:34:00 <olsner> !svedeesh asdasdfa
20:34:00 -!- pikhq has joined.
20:34:01 <EgoBot> esdesdffffa
20:34:13 <olsner> !svedeesh my hovercraft is full of eels
20:34:14 <EgoBot> my hooffercrefffft is fuull oouffff iels
20:34:15 <oerjan> !chiqrsx9p xThis should compile as perl, dammit!
20:34:16 <EgoBot> Unquoted string "l" may clash with future reserved word at (eval 1) line 1, <STDIN> line 1.
20:34:57 <olsner> so everything else was fine, but a stray 'l' will kill you? nice one
20:35:19 <oerjan> !chiqrsx9p xThis should compile as perl, dammit!
20:35:32 <oerjan> much better
20:35:38 <newsham> olsner: true. almost string like though
20:35:38 <oerjan> !echo did that kill you?
20:35:38 <EgoBot> did that kill you?
20:35:54 <newsham> whats the way to convert it to string.. something like /foo/.src?
20:36:24 <newsham> i think its non portable :(
20:36:40 <oerjan> olsner: technically that was a warning not an error, i think
20:37:03 <olsner> I think that must have been its string conversion that I saw, presumably opera stringifies regexps as /etc/
20:40:22 <olsner> oerjan: ... syntax error is a warning?
20:40:49 <oerjan> olsner: i mean that unquoted string thing
20:40:49 <olsner> or did you refer to the chiqrsx9p message?
20:51:15 -!- choochter has quit (Ping timeout: 255 seconds).
21:05:33 * Phantom_Hoover reads the list of ideas, notes that someone thinks that #!s use your path.
21:06:14 <Phantom_Hoover> (Wait, does it? It's handled in the kernel, so I assume it isn't poking through the env, but...)
21:06:15 <olsner> they can! if you make the #! use something that uses your path that is
21:06:46 <olsner> e.g. /usr/bin/env foo is a common idiom, which I have no idea what it *really* does
21:06:59 <Phantom_Hoover> olsner, just runs foo.
21:07:10 <olsner> just? sounds boring
21:07:15 <Phantom_Hoover> But it *does* look in PATH, unlike execve.
21:07:26 -!- pikhq_ has joined.
21:07:27 <Phantom_Hoover> It also allows control over the precise nature of the environment.
21:08:08 <olsner> but what it does when given no options is to look up foo in the path, as opposed to putting #!foo directly which wouldn't?
21:08:23 <Phantom_Hoover> I think so.
21:08:54 -!- pikhq has quit (Ping timeout: 240 seconds).
21:09:19 <Phantom_Hoover> #!<foo> tells execve to execute <foo> <file>, and I really really doubt execve even *can* look at the environment.
21:10:00 <olsner> hmm, the environment for a process does exist in the kernel, doesn't it?
21:10:02 <oerjan> !sanetemp 1300
21:10:03 <EgoBot> 704.4
21:10:16 <olsner> hmm, or doesn't it?
21:10:27 <Phantom_Hoover> [~]% cat foo 127
21:10:27 <Phantom_Hoover> #!sh
21:10:28 <Phantom_Hoover> echo foo% [~]% ./foo
21:10:28 <Phantom_Hoover> zsh: ./foo: bad interpreter: sh: no such file or directory
21:10:56 <olsner> but it would be iffy for the kernel to rely on the environment variable called "PATH" to have a special meaning
21:11:09 <Phantom_Hoover> Yeah, exactly.
21:11:12 <Phantom_Hoover> Hence env.
21:11:34 -!- variable has quit (Remote host closed the connection).
21:11:57 <Phantom_Hoover> Ooh, wait.
21:12:11 <olsner> the kernel should run #! files through /sbin/hashbang, and then that could be like a link to bash or whatever
21:12:30 <Phantom_Hoover> If it's not an absolute pathname, it's just interpreted relative to the current directory.
21:12:52 <Phantom_Hoover> So #!v could work if v is in the directory.
21:13:19 <olsner> hmm, so what if foo starts with #!foo?
21:14:13 <Phantom_Hoover> ...
21:14:18 <Phantom_Hoover> You are insane and also awesome.
21:14:37 <Phantom_Hoover> zsh: exec format error: ./foo
21:14:39 <Phantom_Hoover> Bah.
21:15:32 <olsner> hmm, "zsh: ...", you may be invoking shell magic rather than kernel magic here
21:24:17 <pikhq_> olsner: You actually could do that.
21:24:52 <pikhq_> olsner: Linux has the ability to execute arbitrary interpreters for files, based on magic or filename.
21:25:08 <olsner> Phantom_Hoover: you know, like how files without any #! will run fine from shells
21:25:35 <Phantom_Hoover> olsner, that'll just be zsh recovering from execve errors.
21:26:01 <pikhq_> Yeah, that's probably a perror(errno, "zsh")
21:26:13 <pikhq_> Erm, perror("zsh")
21:26:37 <olsner> Phantom_Hoover: in bash, a file foo containing #!foo will just do nothing and return successfully
21:27:02 <Phantom_Hoover> olsner, yeah, I guess bash doesn't handle it visibly.
21:27:27 <pikhq_> Indeed, there's no real reason for shebang handling to be in Linux anymore. Just make /sbin/shebang the handler for the magic "#!".
21:27:48 <pikhq_> (or, if you don't want to do any actual work, /usr/bin/perl)
21:28:33 <olsner> you mean because perl will interpret hashbangs? or because it will accept any byte sequence?
21:28:50 <pikhq_> Perl interprets shebang.
21:30:03 <olsner> nice, I should start calling my shell scripts .pl with a bash hashbang and pretend that I think it's perl code
21:30:50 <olsner> I mean, that will work on windows, so I would pretend that I only test my perl scripts on windows
21:31:20 <olsner> which will be hard considering I don't have any running windows systems ... crap, my evil plans suck :(
21:31:50 <pikhq_> I'm pretty sure the only reason for it is so that passing arguments to perl from the shebang works even if you do 'perl foo.pl'.
21:34:24 <zzo38> Today I won a game of Magic: the Gathering even though I had negative 40 life points (my opponent had positive 23).
21:35:35 <pikhq_> Managed to pull off a "you cannot lose the game" trick?
21:36:14 <zzo38> Not quite. I managed to pull off a "state based effects stop working until end of turn" trick.
21:37:02 <zzo38> Positive 23 was his score at the end of the game
21:38:58 <zzo38> Understand?
21:39:01 -!- cheater_ has quit (Ping timeout: 240 seconds).
21:40:10 <pikhq_> ... *State based effects* stop working. That's an astounding feat.
21:40:56 <zzo38> The imperfect deck split probably helped me to win.
21:41:09 <pikhq_> How the hell?
21:41:12 <olsner> yes, always the imperfect splitting of the deck
21:41:35 <olsner> but however imperfect it may have been, it must have been pretty good if it made you win?
21:42:22 <zzo38> We did not construct the deck. There is a deck of many cards, nine of which I made up myself, mixed up and split, then half is given to each player (without knowing which is which). So both of us had some of these made up cards (the others are very old cards).
21:42:54 <zzo38> Probably a card played by my opponent helped me to win.
21:43:16 <zzo38> In combination with a card I played.
21:43:47 <pikhq_> I don't think there's actually a way to stop state-based effects.
21:44:10 <pikhq_> And it would break rather a lot of stuff, considering what the state-based effects *are*.
21:44:32 <pikhq_> e.g. "Tokens not on the battlefield cease to exist".
21:44:43 <pikhq_> And losing from mill.
21:46:46 <zzo38> And more.
21:47:46 <zzo38> Another strange thing? One of my creatures had seven -1/-1 counters (which I put on myself).......
21:48:24 <pikhq_> Seriously, *how the hell did you pull off no state-based effects*.
21:48:37 <pikhq_> And why didn't you use it to break things further?
21:49:16 <pikhq_> Tokens in the library! Sorceries on the battlefield!
21:49:50 <zzo38> pikhq_: I don't think sorceries on the battlefield is related to state-based effects.
21:50:09 <pikhq_> A spell not on the stack ceases to exist as a state-based effect.
21:50:10 <zzo38> The rule was, last I checked: "Instant or sorcery trying to come into play instead remains where it is"
21:50:31 <pikhq_> (704.5e)
21:50:46 <pikhq_> Sorry, that's a *copy* of a spell.
21:51:03 <pikhq_> Still would let you put things on the battlefield that shouldn't be.
21:51:29 <zzo38> One of the made-up cards (my opponent made up some cards too; both of us agreed to each other cards and then the cards were mixed with others and split at random between us (neither of us constructed a deck))
21:51:46 <pikhq_> Aaah.
21:57:05 -!- azaq23 has joined.
21:58:47 <zzo38> In fact I had an idea make up a card (not used in this game) was a creature card with phasing and "when this card comes into play, it becomes an instant in addition to its other types"
21:59:39 <zzo38> As far as I can tell, this would result in the card remaining phased out for the rest of the game.
22:01:41 <zzo38> Once in an actual tournament my opponent disagreed with me about the rules. I was correct and the judge confirmed it, so the opponent decided to concede because they didn't like that rule.
22:02:32 * Phantom_Hoover → sleep
22:02:33 -!- Phantom_Hoover has quit (Quit: Leaving).
22:03:03 <zzo38> (At the same time, the tournament organizer failed to compute the scores correctly (by failing to post that score) and scored me in second place (I should have been first).) (Also, that was the only time in a tournament where I didn't score last place.)
22:03:59 <zzo38> Actually there was one tournament where I failed to score any placing because as it turned out there was not enough time to start the game.
22:07:50 <zzo38> Some people say the new rules are simplified. I say they are only more klugy. I say all editions of Magic: the Gaterhing are klugy and they always are adding klugy rules, especially the rules having to do with planeswalkers are also klugy.
22:08:04 <oerjan> <pikhq_> I'm pretty sure the only reason for it is so that passing arguments to perl from the shebang works even if you do 'perl foo.pl'. <-- iirc it's also because shebangs are (at least in some os'es) restricted to a single option argument
22:09:05 -!- sebbu2 has joined.
22:09:05 -!- sebbu2 has quit (Changing host).
22:09:05 -!- sebbu2 has joined.
22:11:53 -!- sebbu has quit (Ping timeout: 240 seconds).
22:25:48 <pikhq_> zzo38: Less kludgey than just about every other game's rules, though.
22:26:20 <pikhq_> Simply by merit of being well-defined.
22:27:40 -!- oerjan has quit (Quit: This thing needs a reboot).
22:30:46 -!- variable has joined.
22:31:53 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:33:51 <coppro> I know of no way by which the rule zzo38 quoted can actually come into to play
22:35:23 <zzo38> pikhq_: Yes, the rules are well defined but __________
22:35:52 <coppro> ah, the dreaded underscore problem
22:35:54 <zzo38> coppro: That is why I invented such a card.
22:36:47 <zzo38> Perhaps it would make more sense a copy of a spell entering play becomes a token.
22:36:53 <coppro> also, the rules for phasing have changed
22:36:55 <Sgeo> What rule?
22:37:05 <pikhq_> zzo38: The Un* cards do not work at present.
22:37:26 <coppro> phasing is now a status on permanents
22:37:31 <coppro> phased-out things do not leave the battlefield
22:37:34 <pikhq_> The rules for phasing are actually sane now.
22:38:02 <coppro> ^
22:38:09 <pikhq_> They're still a bit... Large, but mortals can understand them.
22:38:17 <coppro> pikhq_: I maintain they're printable
22:38:30 <zzo38> coppro: Well at the time that I posted that of my idea it worked the other way.
22:38:33 <pikhq_> Yes. Just barely, but it has become printable.
22:39:17 <zzo38> Still, I prefered most of the rules the way they were before, although some things I would change are things that no edition of the rules has at all
22:39:26 <coppro> like?
22:39:45 <pikhq_> At the very least, they can be explained succinctly now. "When cards phase in, you throw a tarp over them. When they phase out, you take the tarp off."
22:39:52 <coppro> what rules do you not like the modern versions of them?
22:40:14 <pikhq_> Imma guess mana burn.
22:40:15 <zzo38> I think the rules are beyond repair and have been that way forever.
22:40:28 <zzo38> pikhq_: That is one change I don't like that they remove mana burn
22:40:47 <pikhq_> zzo38: The rules for Magic have been entirely rewritten from scratch a few times.
22:40:48 <zzo38> However, I would remove the rule that auras that are also creatures are removed from play.
22:41:21 <pikhq_> Probably the most notable instance of this is 6th edition.
22:41:29 <zzo38> pikhq_: They are beyond repair no matter if you rewrite them from scratch today when taking this into account! You would also have to make an entirely new game with new cards and everything else new too.
22:41:41 <coppro> They're quite far from beyond repair
22:41:50 <pikhq_> Where literally *all the mechanics changed*.
22:42:10 <coppro> They deal with nearly every situation
22:42:13 <pikhq_> (y'know the stack? 6th edition.)
22:42:21 <coppro> Usually, though not always, in a sane and intuitive manner
22:42:25 <zzo38> Sixth edition certainly did fix many things but still many things are broke
22:42:36 <pikhq_> Define "broke".
22:42:41 <coppro> There are a few things that are and will forever remain horribly complex
22:42:44 <coppro> banding, suspend
22:42:56 <zzo38> Banding and suspend are not my concerns.
22:43:15 <coppro> what are?
22:43:27 <coppro> mana burn was a fine rule, but it was not necessary
22:43:48 <pikhq_> I'm upset about mana burn being gone simply because it was a very flavorful thing.
22:43:48 <zzo38> Things such as combat, even. And damage, and various other things. (Including the one I mentioned about auras being creatures)
22:44:00 <pikhq_> But, yeah, certainly not necessary.
22:44:26 <zzo38> Nothing to do with flavorful but I think mana burn is a useful rule to exist in the game.
22:44:34 <coppro> the auras being creatures rule is one that exists for sanity
22:44:46 <coppro> In my experience, mana burn was just a nuisance
22:44:55 <zzo38> I also would have change much of the rules having to do with card types...... and more..... even planeswalkers......
22:44:59 <coppro> The only time it made a significant difference was when it was abused
22:45:05 <coppro> oh god tribal
22:45:08 <coppro> that one's a mess
22:45:37 <zzo38> coppro: Yes, I agree about tribal. I would have had subtypes work entirely differently, instead
22:45:52 <coppro> I still don't understand why it wouldn't have worked as a supertype :/
22:46:04 <pikhq_> Supertypes can't have subtypes.
22:46:07 <zzo38> coppro: I do understand why it wouldn't have worked as a supertype.
22:46:15 <zzo38> Yes, what pikhq_ said
22:46:55 <coppro> pikhq_: It's a minor change to allow tribal to grant creature types
22:47:07 <pikhq_> Though it seems to me that subtypes necessarily being attached to types is a bit of a bug.
22:47:09 <zzo38> :You think the auras being creatures rule is one that exists for sanity? I disagree with the rule anyways.
22:47:25 <pikhq_> Not sure how best to handle it, though. :/
22:47:28 <zzo38> pikhq_: Yes, subtypes should be attached to nothing, in my opinion
22:47:42 -!- Wamanuz4 has joined.
22:48:05 <pikhq_> coppro: Actually, to do truly minimal changing to things, tribal could have been a keyword.
22:48:26 <coppro> ewww
22:48:32 <coppro> ability-affecting stuff would mess with that
22:48:53 <coppro> zzo38: Subtypes should not be attached to nothing
22:48:56 <pikhq_> Though then it wouldn't be in the type line, and OH DEAR GOD THEY ACTUALLY PUBLISHED ABILITY AFFECTING STUFF SOON AFTER
22:48:59 <pikhq_> Eeeew.
22:49:21 <coppro> There are a number of cards that rely on noncreature subtypes being impossible to duplicate
22:49:33 <coppro> see the Shrines, Urzatron...
22:49:53 <coppro> heh, that's a good one
22:49:56 <zzo38> coppro: Those kind of things are partially what I mean by beyond repair, but there are other things too
22:49:58 <coppro> Urza's being a land type
22:50:07 <coppro> zzo38: hardly beyond repair
22:50:16 <coppro> beyond repair implies they don't work
22:50:20 <zzo38> Then I have used the wrong word.
22:50:24 <coppro> the rules for magic work quite fine
22:50:32 <coppro> overly complicated? perhaps
22:50:34 <pikhq_> They just have to deal with a lot of edge cases.
22:52:15 <zzo38> pikhq_: That is the stupid part.
22:53:17 <pikhq_> The only way to deal with that *would*, in fact, be to junk all previous cards.
22:54:08 <zzo38> pikhq_: That would be, to, make an entirely new game too.
22:54:44 <pikhq_> Yes, it would inherently be a different game.
22:54:48 -!- oerjan has joined.
22:57:16 <coppro> As a Commander player, I've very glad for the exceptions for corner cases
22:58:30 <zzo38> Commander player? What does that mean?
23:01:59 -!- Wamanuz4 has quit (Remote host closed the connection).
23:05:15 -!- Wamanuz4 has joined.
23:09:51 -!- Wamanuz4 has quit (Ping timeout: 255 seconds).
23:13:39 -!- Wamanuz4 has joined.
23:15:20 <newsham> /sbin/hashbang is called /usr/bin/env.
23:15:45 <pikhq_> newsham: env does not parse #!
23:15:50 <pikhq_> Therefore you fail.
23:16:50 <newsham> i'm used to it
23:17:06 <coppro> zzo38: I play commander
23:18:13 -!- Wamanuz4 has quit (Ping timeout: 252 seconds).
23:18:40 -!- Wamanuz4 has joined.
23:23:30 -!- Wamanuz4 has quit (Ping timeout: 276 seconds).
23:23:40 -!- Wamanuz4 has joined.
23:29:24 -!- Wamanuz4 has quit (Ping timeout: 240 seconds).
23:43:08 * Sgeo ponders reversible CAs
23:44:05 * oerjan sAC elbisrever srednop
23:44:52 <quintopia> isnt there one that has really interesting patterns already?
23:45:01 -!- Vorpal has quit (Ping timeout: 250 seconds).
23:48:41 <oerjan> well there's the rule 30 1d automaton
23:49:11 <oerjan> i don't think that's _globally_ reversible
23:50:04 * Sgeo isn't sure of the difference, and just imagines that reversible CAs have conserved quantities that can be competed over.
23:51:15 -!- Wamanuz4 has joined.
23:51:45 <oerjan> well i'm not even sure that's the right terminology
23:52:17 <oerjan> > showIntAtBase 2 intToDigit 30 ""
23:52:18 <lambdabot> "11110"
23:52:57 <oerjan> the infinite tapes ...000... and ...111... both map to ...000...
23:53:39 <oerjan> but changing any _bounded_ area will give a different result
23:55:11 * Sgeo headaches
23:55:18 -!- Wamanuz4 has quit (Read error: Connection reset by peer).
23:56:04 <oerjan> Sgeo: anyway, any CA has _one_ conserved quantity... total area size :P
23:56:17 <oerjan> (yeah that's very trivial)
23:56:47 <oerjan> (but say look-and-say sequences don't have that, since they expand)
23:57:06 <Sgeo> I can imagine a CA that doesn't.
23:57:25 <Sgeo> Make it a torus except along the seams an extra block of cells is placed there every 5 generations
23:57:38 <Sgeo> Although I guuess the "seams' are arbitrary
23:57:42 <oerjan> well, that wouldn't fit the definition of a CA
23:58:01 <zzo38> Is there a law that gift cards are not allowed to expire?
2011-06-23
00:01:19 <oerjan> maybe a local one, somewhere
00:03:25 <oerjan> definitely not in norway; in fact from http://www.regjeringen.no/nb/dep/bld/kampanjer/familia/familia-42006/diverse-saker/-gavekort-til-jul-25-milliarder-kroner-i.html?id=536565 i see the default is 3 years unless otherwise agreed
00:05:22 <Sgeo> http://en.wikipedia.org/wiki/Second_order_cellular_automaton you could just slap this onto GoL?
00:05:32 <oerjan> although that article ends with an example of inconsistent confusing terms
00:07:38 -!- Wamanuz5 has joined.
00:07:50 <oerjan> Sgeo: pretty much
00:08:14 <zzo38> How commonly are the various typesetting units for distances used today?
00:08:16 * Sgeo wants to see what that would look like
00:08:47 <Sgeo> I guess some by-hand calculations are in order
00:09:19 <Sgeo> Let's pretend that generations 0 and 1 are always the same... unless that would always lead to a dead universe. I think it does for still-lives but not ... wait, that makes no sense
00:11:41 <zzo38> What I want to make in TeXnicard is something that it can read and understand the text of all of the cards and then compile it to make a computer program that can enforce the rules (maybe something like Inform7 but with many differences).
00:12:48 -!- Wamanuz5 has quit (Ping timeout: 260 seconds).
00:13:19 -!- Wamanuz5 has joined.
00:13:44 <oerjan> Sgeo: it does for patterns which die immediately in life, i think
00:14:05 -!- olsner has quit (Ping timeout: 258 seconds).
00:14:06 <oerjan> i mean, those become still-lives in this version
00:14:15 <Sgeo> Wait, for generations 0 and 1, should 0 -> 1 by normal GoL rules?
00:14:33 <Sgeo> Wait, I just killed the Oerjan Still Lives
00:15:02 <oerjan> Sgeo: that is equivalent to setting generation -1 all zeros, i think
00:15:32 <oerjan> this is reversible, so you can extend it both ways
00:16:49 <Sgeo> Ok, under these rules, 1 cell in gen 0 ... dies the death, I think. What pattern dies in 2 generations?
00:16:55 <Sgeo> Or am I just confused here
00:17:13 <Sgeo> I mean, normal GoL pattern
00:18:02 <oerjan> a pattern dies in generation 2 iff the gol result of generation 1 == generation 0
00:19:03 <oerjan> also, you have no way to make it _stay_ dead
00:19:21 <Sgeo> I mean, dies in 2 generations by GoL rules
00:19:33 <Sgeo> oerjan, stay dead?
00:19:48 <Sgeo> Oh, hmm, I was thinking empty universe == stay dead, which makes no sense
00:20:32 <oerjan> the only thing that produces an indefinitely empty universe is an indefinitely empty universe
00:21:45 <Sgeo> Can there exist any motion? Perhaps not in an empty universe, but
00:21:55 -!- Wamanuz5 has quit (Remote host closed the connection).
00:22:01 <Sgeo> *near-empty
00:22:30 <Sgeo> Wait, scratch that.. I'm barely thinking about this
00:23:26 <zzo38> Would it makes sense for "5P6" means "66pt" while "5p6" means "66bp"?
00:23:43 <zzo38> (This information is based on the Wikipedia article titled "Pica (typography)")
00:24:41 <zzo38> (That is, instea of using "pc" since different units might be used)
00:26:09 -!- olsner has joined.
00:27:53 <Sgeo> It should be easy enough to convert it into a more normal CA describable as cells with 4 states, but I need to sit still long enough to do so
00:29:46 -!- Wamanuz5 has joined.
00:29:59 -!- elliott has joined.
00:30:29 <zzo38> Apparently, according to North Korean writing rules, names of leaders Kim Il-sung and Kim Jong-il must always be set off in bold.
00:30:44 <zzo38> Wikipedia mentions it but has no citation.
00:31:03 <oerjan> well it sounds utterly believable
00:35:02 <elliott> whos a bro
00:35:02 <lambdabot> elliott: You have 2 new messages. '/msg lambdabot @messages' to read them.
00:35:50 -!- oerjan has quit (Quit: Good night).
00:36:24 -!- Wamanuz5 has quit (Ping timeout: 240 seconds).
00:37:29 -!- Wamanuz5 has joined.
00:38:05 -!- cheater_ has joined.
00:41:28 <elliott> 14:46:34: -!- Elizacat has joined #esoteric.
00:41:30 <elliott> 14:46:37: <Elizacat> hi
00:41:31 <elliott> 14:46:44: * Elizacat pokes Vorpal
00:41:39 <elliott> careful, you might catch whatever it is that Vorpal has
00:41:47 -!- Wamanuz5 has quit (Ping timeout: 250 seconds).
00:41:53 <elliott> 14:30:55: <Sgeo> Shortly afterwards, elliott complained about this, but while doing so, repeated the original intent, exactly as it appeared in the original emaill.... so that in Gmail, and perhaps some other clients, it looked like elliott was just quoting what appeared in a previous email.
00:41:58 <elliott> um, that wasn't intentional.
00:42:02 <elliott> that was just coincidental wording.
00:42:22 <elliott> and I still think that being able to object to your own inactivity intent is a Bad Thing.
00:42:46 -!- Wamanuz5 has joined.
00:43:13 <elliott> 14:07:45: <Phantom_Hoover> I never quite got the whole anti-loanword thing.
00:43:13 <elliott> usually it's a purity thing, see: l'Académie française
00:43:19 <elliott> (correctly capitalised?)
00:43:56 * Sgeo sits down
00:45:36 <monqy> you were standing up?
00:45:57 <elliott> 06:56:21: <Lymee> Let's make a page calling Haskell a wimpmode of Unlambda
00:46:01 <elliott> Lymee: oh come on, at least Lazy K
00:46:03 <Sgeo> Yes, I was.
00:47:12 <elliott> 09:13:30: <Lymee> I went and made a basic optimizing Brainfuck->C compiler in Scala.
00:47:12 <elliott> 09:13:36: <Lymee> ...
00:47:13 <elliott> 09:14:02: <Lymee> It might benefit from code to recognize balanced loops and handle them specially.
00:47:25 <elliott> Lymee: balanced loops reduce to polynomials
00:47:33 <elliott> 12:42:38: <Lymee> while(ptr[0]){
00:47:33 <elliott> 12:42:38: <Lymee> ptr[0]-=1;
00:47:33 <elliott> 12:42:38: <Lymee> }
00:47:36 <elliott> you call that optimised?
00:47:43 <Sgeo> Dear Google Docs: Fuck you
00:48:03 <Lymee> elliott, no, not really.
00:48:19 <Lymee> I'm only merging sequences of +->< right now
00:48:29 <Lymee> I need to do something about balanced loops.
00:48:39 <elliott> Lymee: do you handle +>+-<-
00:48:42 <elliott> to empty string
00:49:25 <elliott> Lymee: balanced loops: copy esotope or http://mazonka.com/brainf/bff4.c (see the initial comment and grep for /LNR/)
00:49:31 <elliott> note that latter is an interpreter
00:49:38 <Lymee> elliott, yes, that should be eliminated
00:49:57 -!- Wamanuz5 has quit (Ping timeout: 276 seconds).
00:51:09 <Lymee> elliott, hmm...
00:51:49 <elliott> for the esotope code (Python), see https://bitbucket.org/lifthrasiir/esotope-bfc/overview.
00:51:56 <elliott> it is by far the most advanced optimising compiler anyone has written.
00:52:01 <elliott> compiles hello world into a print statement
00:52:05 <Lymee> If you know the loop is balanced, you can compile it into a sequence of int loops=some_function(ptr[0],ptr_0_change);ptr[0]=0;ptr[1]=(some number)*loops; right?
00:52:31 <elliott> you can compile it to much less than that.
00:53:03 <elliott> http://code.google.com/p/esotope-bfc/wiki/Optimization has some fairly outdated information on esotope's optimisation
00:53:23 <elliott> e.g. it now manages to eliminate dead code and propagate conditions
00:54:45 <elliott> Lymee: you could also ask lifthrasiir (the author of esotope), ais523 or Vorpal for information on reducing balanced loops to polynomials.
00:56:31 <elliott> 13:42:38: * Phantom_Hoover notes that his understanding of special relativity has collapsed.
00:56:32 <elliott> 13:42:48: <Phantom_Hoover> Or, more likely, wasn't there to begin with
00:56:32 <elliott> 13:43:43: <Vorpal> Phantom_Hoover, oh? It is easy, twins age at different rates when one travels at high speed. The end.
00:56:32 <elliott> 13:43:53: <Vorpal> (actually: accelerates)
00:56:36 <elliott> i sure hope you're joking
00:59:11 <Lymee> elliott.
00:59:37 <Lymee> You can convert constant references to variables instead of accesses to the memory array, right?
01:00:09 <elliott> i'm just going to tell you to read esotope's code :)
01:00:13 <Lymee> Okey
01:00:14 <elliott> or ask lifthrasiir
01:00:14 <Sgeo> https://docs.google.com/document/pub?id=18eLRRmojIXEU36uad7lW7XwRRGEKFvjiYV6pS3-UF-4 well, this is intuitive as mud.
01:06:41 <Sgeo> oerjan, oh you're not here
01:08:33 -!- FireFly has quit (Quit: swatted to death).
01:13:38 -!- Sgeo_ has joined.
01:14:02 <elliott> im sure oerjan cares
01:14:10 <elliott> "comprehendible"
01:14:57 -!- Sgeo has quit (Ping timeout: 255 seconds).
01:25:41 <elliott> 17:57:49: <oerjan> oh wait there may be only two people called that (since 1950, anyway) :P
01:25:44 <elliott> that's a lot for iceland
01:25:46 <elliott> :P
01:27:54 <CakeProphet> Since I have a day off, I should really take this opportunity to continue working on various projects...
01:28:00 <CakeProphet> but, I think I'm just going to do nothing today instead.
01:28:05 <monqy> 8)
01:32:15 <elliott> good idea
01:55:58 -!- pikhq has joined.
01:57:17 <elliott> sup pikhq
01:59:42 -!- pikhq_ has quit (Ping timeout: 276 seconds).
02:00:36 -!- pikhq_ has joined.
02:01:59 <pikhq_> Also, equipment that thinks that dropping a connection is a good thing.
02:02:15 <elliott> yes
02:02:17 <elliott> i saw nothing
02:02:19 <elliott> * pikhq (~pikhq@174-22-156-192.clsp.qwest.net) has joined #esoteric
02:02:20 <elliott> <elliott> sup pikhq
02:02:20 <elliott> * pikhq_ has quit (Ping timeout: 276 seconds)
02:02:20 <elliott> * pikhq_ (~pikhq@174-22-164-57.clsp.qwest.net) has joined #esoteric
02:02:20 <elliott> <pikhq_> Also, equipment that thinks that dropping a connection is a good thing.
02:02:59 <elliott> pikhq: wanna help me write the BEST WC????
02:03:14 <elliott> i cannot fix
02:03:15 <elliott> my space
02:03:16 <elliott> leak :(
02:03:24 -!- pikhq has quit (Ping timeout: 240 seconds).
02:03:49 <pikhq_> 19:59 < pikhq> Stuff. That is up.
02:07:38 <elliott> pikhq_: SPACE LEAK
02:08:49 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
02:10:48 <elliott> pikhq_: SPLEAK
02:10:58 <pikhq_> KAELPS
02:11:05 <elliott> pikhq_: : <
02:12:31 -!- Wamanuz5 has joined.
02:16:57 <elliott> pikhq_: you are hurting haskell with your lack of support
02:19:46 <tswett> It is time.
02:21:25 <elliott> tswett: for
02:21:29 <elliott> oh god not more bot things is it
02:21:32 <tswett> elliott: yes. For.
02:22:31 <Sgeo_> Why am I assuming that reversible CA implies a conserved quantity?
02:29:36 <quintopia> because you are silly
02:29:45 -!- Slereah has quit.
02:30:03 <tswett> Gosh, my bedtime is in ten seconds.
02:30:08 <tswett> Good night, everyone.
02:30:13 <tswett> eee*shoop*
02:30:15 <Sgeo_> night
02:30:50 <quintopia> although for a totalistic kind of CA (or anything where the entire neighborhood is considered equally tributary) that will have to be true i think?
02:32:44 <quintopia> reversible means no entropy, which means no information is lost, and in a CA where cells are indistinguishable, that would imply conservation of quantity, yes?
02:33:50 -!- copumpkin has joined.
02:34:52 <Sgeo_> How does reversible imply no entropy? Our universe is (kind of) reversible, as far as we know, but still has entropy
02:37:08 <quintopia> nope
02:37:44 <quintopia> Reversible process (thermodynamics), a process or cycle such that the net change at each stage in the combined entropy of the system and its surroundings is zero
02:38:00 <quintopia> therefore, the universe is not reversible
02:38:11 <quintopia> therefore, the arrow of time is uniquely forward
02:38:15 <quintopia> why? we do not know
02:39:01 <quintopia> Reversible computing, logical reversibility of a computation - a computational step for which a well-defined inverse exists
02:39:07 <quintopia> this is the relevant definition for CAs
02:39:13 <quintopia> but it's mathematically equivalent
02:39:49 <quintopia> as an inverse is operation is only well-defined if information is conserved
02:39:57 <CakeProphet> well you can't have two states be inverses of one another because then it will cycle, which isn't really all that useful.
02:40:59 <Sgeo_> Oh, so that's why I failed my sanity check.
02:41:10 <Sgeo_> I was assuming the same rules would apply backwards and forwards.
02:41:16 <elliott> Sgeo_: ...
02:41:16 <CakeProphet> unless it can produce some other thing. Similar to how glider guns work in CGoL
02:41:26 * elliott claps for Sgeo_
02:41:32 <monqy> im clapign too
02:41:37 <quintopia> for instance "minus" is not an invertible operation because it takes two pieces of information and throws out one. "minus one" is invertible because it takes one piece of information and gives back an equal amount of information
02:41:43 <elliott> monqy: i clapign all the time
02:42:25 <Sgeo_> (As in, the sanity check was moronic, not what I produced prior to doing the sanity check)
02:43:00 -!- bsmntbombdood has joined.
02:43:11 <monqy> hi
02:43:41 <monqy> does bsmnt mean basement
02:43:44 <monqy> does dood mean dude
02:43:48 <monqy> does bomb mean bomb
02:43:51 <CakeProphet> also, you could not destroy the state of any cell, right? That would be bad because then you have no form of "motion"
02:43:56 <quintopia> does monqy mean monkey
02:44:00 <quintopia> does cake mean caek
02:44:06 <bsmntbombdood> monqy, yes
02:44:29 <quintopia> CakeProphet: ah how do you destroy the state of a cell?
02:44:33 <quintopia> delete it?
02:44:42 <CakeProphet> er yes, return it to the default state.
02:44:53 <CakeProphet> I suppose this all depends on the rules of the automaton
02:45:07 <Sgeo_> Oh!
02:45:17 <Sgeo_> I was confusing time-symmetry with reversibility
02:45:32 <monqy> clapign again
02:45:33 <Sgeo_> I think
02:45:59 <CakeProphet> but if you give rules that allow the default state to prodce non-default states, then that would imply that your grid starts off in some kind of non-constant setup.
02:46:19 * CakeProphet does not know the terminology for these things he's talking about.
02:47:33 * Sgeo_ wonders how easy/difficult it would be to put his table into Mirek's Cellebration
02:47:41 <Sgeo_> Wow, I can never spell
02:47:58 <quintopia> CakeProphet: if you return it to the default state without regard for how it will affect its neighbors, yes, you will change the nature of the CA. it might be destroying information in one sense of thinking about it, or creating it in another sense.
02:47:59 <Sgeo_> ....I got it right
02:48:24 <quintopia> Sgeo_: no one uses MCell anymore. put it in Golly. it's not that hard.
02:48:41 <Sgeo_> Would it be easier in Golly than MCell?
02:49:17 <CakeProphet> hmm okay, so then to create a CA without information loss, you would need to have no way to return to a dead state, or have a way to go from dead to alive that is reversible from the way in which the information was originally configured.
02:49:34 <CakeProphet> before the "destruction"
02:49:46 <Sgeo_> CakeProphet, there's an algorithmic way to make a reversible CA from a non-reversible CA
02:49:54 <quintopia> ^
02:50:11 <quintopia> actually, there's an algorithmic way to make a reversible anything from a non-reversible anything
02:50:14 <CakeProphet> oh, okay.
02:50:49 <elliott> <monqy> hi
02:50:49 <elliott> <monqy> does bsmnt mean basement
02:50:50 <elliott> <monqy> does dood mean dude
02:50:50 <elliott> <monqy> does bomb mean bomb
02:50:55 <elliott> no mocking non-sgeo elders >:|
02:50:56 <elliott> :D
02:51:34 <quintopia> http://www.bbc.co.uk/news/science-environment-13874049
02:52:04 <monqy> elder is a good description of sgeo
02:52:14 <elliott> monqy: been here longer than me
02:53:03 <elliott> "We get it Apple, you own the ‘App Store’ trademark. Except, let’s be honest: you really don’t – the English languages does."
02:53:10 <elliott> omgubuntu, hard-hitting edited journalism
02:53:29 <monqy> what
02:53:37 <quintopia> "it has been shown that every reversible cellular automaton can be emulated by a block cellular automaton."hmm
02:54:03 <pikhq_> Isn't "app store" pushing heavily on genericised trademark?
02:54:06 <monqy> english languages owns the app store trademark??????? app store is a mark of english languages' trade?????????
02:54:08 <elliott> monqy: english languages
02:54:10 <elliott> yes
02:54:23 <elliott> pikhq_: I don't know, would anyone else name anything an App Store if Apple hadn't?
02:54:36 <elliott> "App" wasn't a very common abbreviation for "programoid"
02:54:42 <elliott> where programoid means...
02:54:51 <elliott> something that isn't quite the same thing as an application or program
02:54:58 <elliott> it's hard to define
02:55:04 <pikhq_> elliott: Irrelevant.
02:55:28 <elliott> pikhq_: it shouldn't be :)
02:55:40 <elliott> well
02:55:46 <elliott> pikhq_: oh you said genericised
02:55:53 <pikhq_> Yes.
02:55:57 <elliott> pikhq_: i dunno, nobody says "android app store"
02:56:02 <elliott> everyone says "android market"
02:56:31 <elliott> http://news.cnet.com/8301-27076_3-20073524-248/judge-likely-to-deny-apples-appstore-complaint/ <-- seems apple are trying to get amazon for using "Appstore"
02:57:12 <pikhq_> Funny, I hear "app store" as a generic term fairly often.
02:57:35 <pikhq_> Though if there's a more specific term available that'll be used instead.
02:57:40 <elliott> where
02:57:48 -!- BeholdMyGlory has quit (Remote host closed the connection).
02:57:52 <monqy> does apple own "app"
02:57:54 <monqy> does apple own "store"
02:58:19 <pikhq_> Can't cite, because I'm talking anecdotes here.
02:58:26 <elliott> monqy: does that matter if "app store" is the trademark
02:58:35 <pikhq_> monqy: Doesn't matter for trademarking.
02:58:42 <monqy> trademarking is the worst :(
02:58:49 <elliott> no, the trademark system is fairly sane
02:58:50 <elliott> imagine if the roomba was called the Robotic Magic Vacuum
02:58:53 <elliott> would you object to that being trademarked
02:58:58 <monqy> I mean
02:59:01 <monqy> phrase trademarking
02:59:04 <elliott> Micro Software
02:59:04 <monqy> what if someone else tried to sell apps
02:59:14 <monqy> in a store
02:59:17 <elliott> i agree that "app store" is a bit edge-case, but I think the fact that nobody said "app" before that matters
02:59:30 <elliott> it's just a weird abbreviation that was only ever used colloquially and... I never even heard it
03:00:17 <CakeProphet> CakeProphet is trademarked by me.
03:00:22 <CakeProphet> because I use it as part of my business.
03:00:30 <CakeProphet> it is associated with my business of awesome.
03:02:24 <pikhq_> Yeah, trademark law has astoundingly few abuses, misuses, or unintended consequences. Quite unlike the other two things termed "intellectual property".
03:02:48 <pikhq_> Indeed, it's the only one that's not utterly outmoded.
03:03:53 <CakeProphet> My favorite thing about patents is that they are reasoned to promote competition
03:03:58 <CakeProphet> but... they do the exact opposite of that.
03:04:15 -!- elliott has quit (Remote host closed the connection).
03:04:24 <pikhq_> Yeah, the *concept* of patenting might have some remaining validity.
03:04:31 <pikhq_> The implementation, sure as hell not.
03:04:51 -!- elliott has joined.
03:05:42 <zzo38> I think patent is bad thing now although in the past it might have helped a bit. Now it should be abolished, though. Trademark is good things, though. Therefore they should change "Patent and trademark office" into just "Trademark office" and then have no patent.
03:06:14 <pikhq_> And, of course, copyright law is less worthwhile than laws regulating that all chariots (horseless or otherwise) must be equipped with at least 2 horses.
03:07:54 <monqy> amazing
03:08:16 <pikhq_> I don't think there's such a law, but hey.
03:08:18 -!- Wamanuz has joined.
03:08:24 -!- Wamanuz5 has quit (Ping timeout: 276 seconds).
03:08:36 <monqy> I've heard of some pretty stupid laws but forgotten them all
03:08:37 <elliott> that was only amazing once i thought it was real
03:08:42 <Sgeo_> "system is fairly sane
03:08:42 <Sgeo_> <elliott> imagine if the roomba was called the Robotic Magic Vacuum
03:08:42 <Sgeo_> <elliott> would you object to that being trademarked
03:08:42 <Sgeo_> <monqy> I mean
03:08:42 <Sgeo_> <monqy> phrase trade"
03:08:45 <Sgeo_> oops
03:08:57 <elliott> `addquote <Sgeo_> "system is fairly sane <Sgeo_> <elliott> imagine if the roomba was called the Robotic Magic Vacuum <Sgeo_> <elliott> would you object to that being trademarked <Sgeo_> <monqy> I mean <Sgeo_> <monqy> phrase trade" <Sgeo_> oops
03:08:58 -!- jcp has quit (Ping timeout: 260 seconds).
03:08:58 <Sgeo_> "All editing operations are restricted to cells whose coordinates are within +/- 1 billion. "
03:08:59 <HackEgo> 464) <Sgeo_> "system is fairly sane <Sgeo_> <elliott> imagine if the roomba was called the Robotic Magic Vacuum <Sgeo_> <elliott> would you object to that being trademarked <Sgeo_> <monqy> I mean <Sgeo_> <monqy> phrase trade" <Sgeo_> oops
03:09:31 <Sgeo_> I'm surprised and a bit sad that you didn't quote my sanity comments
03:09:36 <pikhq_> elliott: There are *similarly* outmoded laws regulating horseless chariots, I just couldn't remember any.
03:09:46 <elliott> Sgeo_: which ones
03:09:58 <Sgeo_> Something about faiing a asanity check
03:09:59 <Sgeo_> sanity
03:10:05 <Sgeo_> faliling
03:10:08 <Sgeo_> failing
03:10:21 <elliott> `addquote <Sgeo_> Something about faiing a asanity check <Sgeo_> sanity <Sgeo_> faliling <Sgeo_> failing
03:10:23 <HackEgo> 465) <Sgeo_> Something about faiing a asanity check <Sgeo_> sanity <Sgeo_> faliling <Sgeo_> failing
03:12:20 <zzo38> Sanity is insufficient by itself. Many other things are also important.
03:12:39 <CakeProphet> I find that sanity is mostly optional.
03:13:21 <elliott> `addquote <zzo38> Sanity is insufficient by itself. Many other things are also important.
03:13:23 <HackEgo> 466) <zzo38> Sanity is insufficient by itself. Many other things are also important.
03:13:26 <elliott> some people would have included CakeProphet's line
03:13:31 <elliott> those people do not understand zzo38
03:15:29 -!- jcp has joined.
03:15:56 <Sgeo_> elliott, hey, you're mocking a non-sgeo elder!
03:16:03 <Sgeo_> (I think zzo38 is an elder)
03:16:07 <elliott> I'm mocking zzo38?
03:16:50 <monqy> sgeo is clearly mocking you
03:17:13 <zzo38> I don't think so. (Nor do I know exactly what you mean by "an elder" or how it is relevant)
03:17:23 <elliott> monqy: oh
03:17:41 <monqy> elliott: are you a non-sgeo elder
03:17:50 <elliott> does two thousand seven count as elder
03:17:54 <elliott> well i came in once the previous year
03:18:03 <elliott> but i'm the top talker, which surprises EVERYONE
03:18:14 <elliott> act surprised
03:18:25 -!- pikhq has joined.
03:18:41 <elliott> 2009-02-28.txt:01:03:21: -!- zzo38 has joined #esoteric.
03:18:42 -!- pikhq_ has quit (Ping timeout: 255 seconds).
03:18:43 <monqy> I haven't gathered a sample to compare with that
03:18:47 <elliott> it seems that zzo38 didn't actually come here before that
03:18:51 <elliott> monqy: you mean for elderness?
03:18:59 <monqy> talkativity
03:19:00 -!- Wamanuz2 has joined.
03:19:07 <monqy> so I don't know if I should be surprised or not
03:19:14 <elliott> yeah it was the first day zzo38 was in here
03:19:17 <zzo38> I have worked with esolangs before that though. I have not been on this channel, though, is true.
03:19:20 <elliott> monqy: well the second is vorpal/anmaster
03:19:38 <elliott> monqy: but ignoring him i talk like three times the person below me
03:20:18 -!- Wamanuz has quit (Ping timeout: 276 seconds).
03:21:30 <zzo38> Quote number 97 mentions quote number 124.
03:22:10 <monqy> was it an old quote 124 from before some quotes were deleted, moving 97 below 124
03:22:15 <elliott> yes, because quotes get deleted
03:22:19 <elliott> and the numbers aren't saved
03:22:20 <elliott> maybe a bug :D
03:22:37 <elliott> i could actually calculate the real numbers of all current quotes based on the hg log...
03:23:50 -!- Wamanuz2 has quit (Read error: Operation timed out).
03:24:14 <monqy> `quote 97
03:24:15 <HackEgo> 97) Note that quote number 124 is not actually true.
03:24:29 <monqy> good quote
03:24:53 -!- elliott_ has joined.
03:25:11 -!- elliott has quit (Read error: Connection reset by peer).
03:25:35 -!- Wamanuz2 has joined.
03:29:16 <Sgeo_> How about I not wait patiently for Golly to do a random fill on a large area just because I want to know what random fill is like in day and night
03:30:10 -!- Wamanuz2 has quit (Remote host closed the connection).
03:30:42 <elliott_> do you need a large area
03:30:54 <Sgeo_> No
03:31:04 -!- Wamanuz2 has joined.
03:31:09 <Sgeo_> But didn't think it would cause a problem
03:31:10 <Sgeo_> Until it caused a problem
03:31:20 <elliott_> yeah it should be better at generating randomness
03:31:23 <elliott_> faster
03:31:27 <elliott_> then people could complain it was too predictable
03:33:22 <CakeProphet> hmm, would there ever be a case where you want to use a regular expression negation operator without implicit backtracking?
03:33:34 <elliott_> "Forced garbage collection. I never have any problems with memory management in C++, so this just seems like disadvantages to me."
03:33:36 <CakeProphet> In most cases the effect would be the same.
03:33:47 <CakeProphet> elliott_: ..what is this from?
03:33:48 <elliott_> CakeProphet: see cut in prolog
03:33:50 <elliott_> and some idiot on reddit
03:34:11 <CakeProphet> lol, "forced garbage collection"
03:34:21 <elliott_> compare "forced manual memory management"
03:34:54 <pikhq> "I never have any problems with memory management in C++"
03:35:03 <pikhq> I see that this person hasn't done non-trivial programming.
03:35:21 <CakeProphet> man, screw this convenience shit, I want to manage my own memory! I don't have problems with that shit, so it's obviously a drawback to have it.
03:35:28 <elliott_> pikhq: non-trivial? in C++, memory management is _always_ a problem
03:35:38 <elliott_> thanks to copy constructors, destructors, blah blah bksjfskghdfk
03:36:03 <elliott_> CakeProphet: Not only convenience -- manual memory management has a performance cost versus good garbage collection!
03:36:06 <pikhq> elliott_: With certain forms of trivial programming in C++, you can be ignorant of memory management.
03:36:16 <elliott_> "Make your language slower and difficult to program in correctly, please."
03:36:25 <elliott_> (OK, Go's GC is stop-the-world mark-and-sweep, but that's an implementation issue.)
03:36:34 <elliott_> (Then again so is GC; Scheme, for instance, just says that objects are never freed. Ever.)
03:36:49 <CakeProphet> elliott_: oh really? I was under the impression that MMM still existed because it allowed for more efficient programs.
03:37:02 <CakeProphet> but yes, I could see how /poor/ memory management would create the opposite
03:37:17 <pikhq> CakeProphet: A high-quality garbage collector is faster than a manual memory management scheme in *many* cases.
03:37:22 <zzo38> My first post to esolang wiki is from August of 2005.
03:37:33 <elliott_> CakeProphet: No.
03:37:35 <elliott_> CakeProphet: It's a myth.
03:37:45 <elliott_> CakeProphet: Malloc and free are expensive operations.
03:37:54 <elliott_> CakeProphet: A good garbage collector outperforms them practically every time.
03:37:59 <pikhq> And manual memory management is only going to be *notably* faster than a high-quality garbage collector in edge cases.
03:38:12 <CakeProphet> elliott_: does a garbage collector not use free or something equivalent?
03:38:13 <elliott_> Even the conservative (but very very impressive) Boehm collector for C programs beats malloc and free.
03:38:20 <elliott_> CakeProphet: Yes, but it does it in clumps.
03:38:24 <CakeProphet> ah.
03:38:33 <elliott_> CakeProphet: And a parallel collector won't even pause your program to do it.
03:39:07 <pikhq> You get *really* big gains if you can actually compact the heap.
03:39:12 -!- Wamanuz2 has quit (Read error: Connection reset by peer).
03:39:26 <CakeProphet> okay so do you get any gains on malloc calls? It seems that in a GC language you would still call malloc just as often.
03:39:27 <pikhq> You get amortised O(1) allocation.
03:39:48 <pikhq> (because 99% of the time, malloc is a pointer increment)
03:39:54 -!- Wamanuz2 has joined.
03:40:14 <elliott_> CakeProphet: GC's can have a much simpler allocator than malloc.
03:40:27 <Sgeo_> Is me incompetently implementing GC an "edge case"?
03:40:39 <pikhq> Sgeo_: We specified "high-quality" for good reason.
03:40:40 <elliott_> Sgeo_: you being incompetent doesn't sound like an edge case to me.
03:40:55 <pikhq> CakeProphet: libc malloc has to search its allocated heap for free space of sufficient size.
03:41:25 <CakeProphet> what would a well-designed GC do for allocation?
03:41:38 <elliott_> CakeProphet: see boehm gc, ggggc source :P
03:41:44 <elliott_> tl;dr pointer bumping
03:42:01 <elliott_> CakeProphet: http://codu.org/projects/ggggc/hg/index.cgi/file/72b3f073cbe4/alloc.c, http://codu.org/projects/ggggc/hg/index.cgi/file/72b3f073cbe4/collector.c
03:42:23 <elliott_> Faster than malloc/free and Boehm GC, pretty competent with Java's (which has the best GC in existence).
03:42:31 <elliott_> [asterisk]pretty competitive
03:42:48 <elliott_> Although it'll need concurrent and maybe parallel collection to be truly competitive with Java.
03:42:50 <zzo38> How well is the memory allocation used in TeX? That one does not store the size of the allocated memory anywhere, so the function to free the memory must explicity be given the size.
03:42:51 <pikhq> void *malloc(size_t size) {heap_used += size;}
03:42:53 <elliott_> But yeah, the allocator is trivial.
03:42:54 <pikhq> Erm.
03:42:59 <CakeProphet> elliott_: seriously? Java's is the best?
03:43:00 -!- azaq23 has quit (Ping timeout: 255 seconds).
03:43:01 <pikhq> void *malloc(size_t size) {return (heap += size);}
03:43:20 <elliott_> CakeProphet: What do you mean by "seriously?"? The Java VM is one of the fastest virtual machines in the world in pretty much every aspect.
03:43:30 <pikhq> CakeProphet: Java's garbage collector is a century in the future and probably designed by aliens from space.
03:43:38 <elliott_> The fact that it has a rather high start-up time and Swing UIs are sluggish has nothing to do with the quality of the VM.
03:43:50 <elliott_> Well, the first does, but it's because the JVM is so fast that it has a high start-up cost.
03:43:51 <CakeProphet> I just didn't know. I assumed that because Java was a shitty language it would not have a great implementation.
03:44:00 <elliott_> Srsly?
03:44:05 <elliott_> You realise Sun poured millions and millions into Java, right?
03:44:08 <pikhq> Java probably has the best implementation of anything ever.
03:44:37 <pikhq> Though the language is terrible, the runtime is so insanely good.
03:44:42 <elliott_> The language is how it is because Sun wanted a language that was less of a pain than C++ and safe (i.e. can't segfault, etc.). And Java is that, mostly.
03:44:51 <pikhq> To defeat it you have to microöptimise C or assembly.
03:44:57 <elliott_> Then it put millions of dollars into creating an environment around it.
03:44:58 <elliott_> And it sure worked.
03:45:15 <elliott_> pikhq: OK, that's not quite true, Java doesn't beat compiled languages in benchmarks always.
03:45:25 <elliott_> But it's competitive with C++, which is saying something.
03:46:35 <zzo38> In some cases you can use static allocation instead of dynamic allocation.
03:46:56 <CakeProphet> so essentially they traded segfaults for null pointer exceptions. :P
03:47:07 -!- Wamanuz2 has quit (Remote host closed the connection).
03:47:15 <elliott_> CakeProphet: Please, null has been in most languages since the sixties.
03:47:34 <CakeProphet> well, no, that's not what I meant.
03:47:34 <elliott_> They are almost as bad as segfaults though, that is certainly true.
03:47:54 <elliott_> Yeah, it's a perfectly fair criticism, it's just that null isn't Java's fault :P
03:48:14 <CakeProphet> I just mean that null pointer exception is the most common error I've seen when debugging java. So it is comparable to segfaults in C(++)?
03:48:46 <elliott_> I'd say it's similar, because e.g.
03:48:47 <pikhq> Very few languages don't have that misfeature, though.
03:48:53 <elliott_> in C you would write a search function returning either a pointer to the found data or NULL
03:48:57 -!- Wamanuz2 has joined.
03:48:58 <elliott_> and if you used that without checking you could get segfaults
03:49:04 <elliott_> which is basically = null pointer exceptions
03:49:06 <CakeProphet> right.
03:49:30 <CakeProphet> I never get those problems in Perl. My code just doesn't work. :D
03:49:35 <CakeProphet> big difference, right.
03:49:36 <elliott_> undef
03:50:01 <CakeProphet> yeah, but I don't get an /exception/, just more undefs, usually.
03:50:03 <elliott_> pikhq: help me debug my space leak or DIE.
03:50:15 <CakeProphet> BIG DIFFERENCE, as I said.
03:50:20 <CakeProphet> huge difference. massive.
03:50:26 <CakeProphet> galactic
03:50:27 <elliott_> CakeProphet: or you.
03:50:48 <CakeProphet> wait what?
03:50:55 <CakeProphet> is that a *for?
03:51:12 <elliott_> <elliott_> pikhq: help me debug my space leak or DIE.
03:51:20 <CakeProphet> oh... yeah dude I'm a master of Haskell.
03:51:25 <CakeProphet> or is this a difference space leak?
03:51:34 <CakeProphet> *different
03:51:39 <elliott_> nope :)
03:51:42 <elliott_> i just can't find it, argh
03:51:47 <CakeProphet> CODE PLZ.
03:51:47 <elliott_> this should have constant memory use :(
03:51:51 <CakeProphet> NEED CODE. I AM HUNGRY.
03:52:24 <elliott_> http://sprunge.us/aViQ; the profiling results say it's in option, but I suspect countBytes is being inlined by optimisation or something into optBytes, so it might be in countBytes instead
03:52:30 <elliott_> I've already strictified option as much as I can, so
03:52:40 <elliott_> hmm, oh dear, I think I may be overly strict
03:52:41 <elliott_> in wcthere
03:52:42 <elliott_> wc there
03:52:45 <elliott_> but whatever
03:52:51 <elliott_> point is, it should have constant memory use, but it grows forever
03:52:53 <elliott_> try on a one gig file
03:54:42 <elliott_> oh yeah, depends on iteratee and fclabels
03:55:34 <elliott_> compile with: ghc --make -Wall -O2 wc.hs
03:55:49 <CakeProphet> what do you use to profile?
03:56:03 -!- Wamanuz2 has quit (Ping timeout: 255 seconds).
03:56:41 <elliott_> yeah, it is not in countBytes, i just checked by removing the options stuff
03:56:53 <elliott_> CakeProphet: compile normally, then compile with -prof -auto-all -osuf p_o
03:57:02 <elliott_> then ./wc quux +RTS -p produces wc.prof
03:57:14 <elliott_> see ghc manual for heap profiling options, -hc produces a basic thing which you can convert to a postscript file to view
03:57:27 <elliott_> ok so the leak is in optBytes
03:57:50 <elliott_> meaning it's in option somewhere
03:58:46 <CakeProphet> this program is mad strict.
03:58:50 <elliott_> oh ho, I think of course,
03:58:52 <elliott_> CakeProphet: what? no it's not
03:59:00 <elliott_> anyway I _think_ I might have figured out the problem
03:59:06 <CakeProphet> for a Haskell program anyways
03:59:15 <elliott_> no it's not
03:59:21 <elliott_> there are exactly two functions with any kind of strictness annotations
03:59:24 <CakeProphet> fine. it's not.
03:59:26 <zzo38> In LLVM, Is it possible means to, like, assume x>0 if you have a command test x>0 and then branch to an "unreachable" instruction if false, In case the optimizer does something with that, somehow?
03:59:29 <elliott_> countBytes, to make the byte count strict
03:59:30 <elliott_> and option
03:59:35 <elliott_> in a misguided attempt to reduce a thunk leak that isn't there
03:59:38 <elliott_> that i am now fixing for real
03:59:50 <elliott_> zzo38: why not ask in the llvm channel on oftc?
03:59:57 <CakeProphet> is it I.zip perhaps?
04:00:06 <elliott_> no, it's the fact that I don't zip it all at once
04:00:09 <elliott_> I _think_
04:00:12 <zzo38> I did already. Do you have any opinions about it though?
04:00:16 <elliott_> zzo38: nope
04:00:19 <CakeProphet> ah, so needs an extra $!
04:00:25 <elliott_> CakeProphet: ...no.
04:00:30 <elliott_> it needs _less_ strictness
04:00:42 <elliott_> CakeProphet: btw, if countBytes wasn't strict in n, it would blow up a huge thunk.
04:00:47 <CakeProphet> right.
04:00:51 <elliott_> proportional to the size of the file
04:01:07 <CakeProphet> I just misunderstood what you meant by "zip it all at once"
04:01:12 <CakeProphet> I assumed you meant zip it strictly.
04:01:42 <elliott_> nah, i mean zip it _before_ any binds
04:01:45 <elliott_> I _think_
04:01:47 <elliott_> this may be totally wrong
04:01:53 <elliott_> yep, doing
04:01:55 <elliott_> wc <- I.run =<< I.enumHandle I.defaultBufSize handle (countBytes `I.zip` countWords `I.zip` countLines)
04:01:57 <CakeProphet> with a let right?
04:01:57 <elliott_> removes the leak entirely
04:01:59 <CakeProphet> er, no.
04:02:00 <elliott_> so I need to restructure things
04:02:02 <elliott_> CakeProphet: ...no.
04:02:03 <elliott_> forget it
04:02:05 <elliott_> i've solved the leak
04:02:10 <CakeProphet> I am simply curious now.
04:02:13 <elliott_> now I just have to fix the program...
04:02:19 <elliott_> CakeProphet: i know, but I'm not sure I could explain :)
04:03:29 <CakeProphet> hmm, so what's the associativity rules for functions used with the ` syntax?
04:03:44 <elliott_> the associativity is irrelevant, but I forget
04:03:48 <elliott_> :t foldr zip
04:03:49 <lambdabot> Occurs check: cannot construct the infinite type: b = (a, b)
04:03:49 <lambdabot> Expected type: [b]
04:03:49 <lambdabot> Inferred type: [(a, b)]
04:03:54 <CakeProphet> can you declare infix[rl] on non-operators?
04:04:08 <elliott_> you can for `foo`
04:04:15 <CakeProphet> ah okay, also is there a default?
04:04:21 <elliott_> yes.
04:04:41 <CakeProphet> I see.
04:05:28 <CakeProphet> I have absolutely no clue how you're handling options there..
04:07:27 <CakeProphet> oh I see. :) the foldr1 (.) xs defaultProc was confusing me
04:07:31 <CakeProphet> because I didn't see the 1
04:08:01 -!- Wamanuz2 has joined.
04:08:05 <elliott_> yeah, turns out that way sucks though :)
04:08:13 <elliott_> trying a new way now, it kind of irks me though
04:08:52 <CakeProphet> elliott_: is this some kind of elaborate way to one-up my wc interpreter that was totally superior to your sed one?
04:09:34 <elliott_> no, this is me trying to write the fastest wc ever that's feature-complete with gnu's
04:09:43 <elliott_> in clean, pretty haskell
04:10:25 <CakeProphet> see, that sounds like some serious one-upping right there. >:D
04:10:47 -!- azaq23 has joined.
04:10:56 <pikhq> Perhaps you should one-up the rest of coreutils. :P
04:11:41 <elliott_> CakeProphet: well, my old version is already faster than gnu wc, but its word counting is a bit broken (but it's just as expensive as a "real" word counter, so it's still a fair comparison), and it doesn't handle multibyte or locale word boundaries
04:11:48 <elliott_> that's gnu wc with LC_ALL=C, i.e. disabling locale handling
04:11:52 <elliott_> without LC_ALL=C, gnu wc is totally hopeless
04:12:16 <elliott_> CakeProphet: http://sprunge.us/jMOH this is the old version
04:12:17 <CakeProphet> elliott_: so what makes this one faster than gnu's
04:12:24 <pikhq> CakeProphet: GNU is stupid.
04:12:27 <elliott_> uh, iteratees, basically.
04:12:27 -!- Wamanuz2 has quit (Ping timeout: 244 seconds).
04:12:32 <elliott_> pikhq: well the gnu wc code probably is not that bad
04:12:36 <elliott_> it's just that iteratees are great.
04:12:48 <pikhq> elliott_: It abstracts C stdio.
04:12:54 <elliott_> CakeProphet: (that version doesn't do the expensive-but-wrong word handling, the one that does is an abandoned version)
04:13:02 <elliott_> :t foldl'
04:13:02 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
04:13:17 -!- Wamanuz2 has joined.
04:13:20 <pikhq> Also, Haskell IO is more intelligent than C IO.
04:14:54 <CakeProphet> elliott_: oh look the example in Data.Iteratee is even a byte counter.
04:15:15 <elliott_> CakeProphet: see http://okmij.org/ftp/Streams.html#iteratee, where oleg does his own benchmarked wc :)
04:15:19 <elliott_> (and introduces iteratees)
04:15:29 <elliott_> http://okmij.org/ftp/Haskell/Iteratee/Wc.hs
04:16:16 <CakeProphet> so yeah, concurrent MUD client in Haskell is a project now.
04:16:37 <CakeProphet> but with a job I don't know if I'll work on that anytime soon.
04:17:17 <pikhq> ♥ Oleg.
04:19:10 -!- Wamanuz2 has quit (Ping timeout: 244 seconds).
04:19:50 -!- Wamanuz2 has joined.
04:25:53 -!- Wamanuz2 has quit (Ping timeout: 244 seconds).
04:26:02 <elliott_> yay, memory leak solved, only problem is that it's kind of ugly
04:27:02 <zzo38> Is it possible to make something like that with GNU C: #define static_new(_type) ({ _type x; &x; })
04:27:10 <zzo38> Oops sorry
04:27:10 -!- Wamanuz2 has joined.
04:27:18 <zzo38> Is it possible to make something like that with GNU C: #define static_new(_type) ({ static _type x; &x; })
04:27:20 <zzo38> Now it is better.
04:29:22 <pikhq> I think that'd work in GCC, though I *don't* know if it's defined behavior or not.
04:29:39 <elliott_> ?hoogle uncurry
04:29:39 <lambdabot> Prelude uncurry :: (a -> b -> c) -> (a, b) -> c
04:29:39 <lambdabot> Data.Tuple uncurry :: (a -> b -> c) -> (a, b) -> c
04:29:47 <elliott_> ?hoogle uncurry2
04:29:48 <lambdabot> No results found
04:30:39 <zzo38> pikhq: How would you expect to figure out if is defined behavior or not?
04:36:21 -!- Wamanuz2 has quit (Ping timeout: 264 seconds).
04:37:00 <CakeProphet> :t curry
04:37:01 <lambdabot> forall a b c. ((a, b) -> c) -> a -> b -> c
04:37:24 <CakeProphet> fancy stuff.
04:37:38 -!- Wamanuz2 has joined.
04:38:37 <pikhq> Dunno; I'm not sure that defined/undefined behavior is well-defined for GNU C.
04:39:08 <elliott_> "I knew I'd get your attention with this one. Let me start out by saying that I'm not here to trash, insult or attack women. Instead, I want people to better understand that men and women are more alike than they think when it comes to sex and sins of the flesh. In order to do this, I will show, by example, how women behave in the exact manner that they accuse only men of behaving: like pigs."
04:39:14 <elliott_> i love finding terrible things randomly on the internet
04:39:53 <CakeProphet> this man is a scholar of the highest tier.
04:39:54 <monqy> ...:'(
04:40:22 <elliott_> http://uk.askmen.com/dating/curtsmith/59_dating_advice.html
04:40:23 <elliott_> enjoy
04:40:28 <elliott_> Men want sex, women want money... Next Page >>
04:40:30 <elliott_> gotta press that link
04:40:39 <elliott_> oh my god
04:40:45 <elliott_> Pig Scale
04:40:46 <elliott_> Women= [five pictures of a pig]
04:40:58 <elliott_> wow this is the most horrible thing i have ever seen
04:41:16 <elliott_> is this just for men to read so they can continue to ignore being called pigs
04:41:17 <monqy> uk.askmen.com
04:41:39 <elliott_> 6. Women use men for money: The stereotype that men use women for sex has been around for centuries. And when you hear that women use men for cash, remember that that also places them in the pig category. At least we want their bodies, they, in turn, are checking out our checking accounts. So while women complain that men use women for sex, how much better are they if they're using men for materialistic purposes?
04:41:41 <zzo38> I should select a subset of the GNU C features. ({ ... }) is allowed, vararg macros are allowed, case ranges is allowed, pointer arithmetic on void pointers (but not on function pointers, nor is sizeof allowed on void) is allowed, \e is allowed, x?:y is allowed, zero length arrays are allowed.
04:42:23 <monqy> this is just
04:42:25 <monqy> the worst article
04:42:32 <monqy> uk.askmen.com, why
04:42:53 <CakeProphet> what is a zero legnth array?
04:42:56 <pikhq> zzo38: Why 0-length arrays? C99 provides the struct hack in a portable manner.
04:43:11 <elliott_> monqy: im disappointed, i had such high expectations for uk.askmen.com
04:43:15 <pikhq> CakeProphet: struct foo {blahblahblah; int bar[0];}
04:43:20 <elliott_> 7. Queen of the industry: Yes, men buy pornography, but women dominate the industry. Sex sells and everywhere you look, be it a movie, an album, a magazine cover, the fashion world, or the adult industry, you will always see a woman endorsing sex.
04:43:23 <elliott_> endorsing sex: PIG POINTS
04:43:24 <zzo38> And also structures with no members, and unnamed struct/union fields.
04:43:30 -!- Wamanuz2 has quit (Ping timeout: 276 seconds).
04:43:35 <pikhq> CakeProphet: Used to represent an array with a header.
04:43:38 <elliott_> Who's the real oinker here? Next Page >>
04:43:45 <elliott_> monqy: i like how he doesnt even bother keeping score for men
04:43:47 <pikhq> CakeProphet: The C99 equivalent is struct foo {blahblahblah; int bar[];}
04:43:58 <zzo38> Flexible array members are different according to the GCC manual: http://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/Zero-Length.html#Zero-Length
04:44:07 <pikhq> zzo38: I dunno about no-member structs, but unnamed fields is C1x.
04:44:30 <monqy> I remember another great thing like that but I forgot where
04:44:31 <elliott_> monqy: "Get it on Mr. Clinton! You Go Lewinsky!" last line
04:44:37 <monqy> something about turning femenists into "real girls"
04:44:43 <elliott_> monqy: i saw that too
04:44:48 <monqy> great article
04:44:52 <zzo38> I think the [0] is actually simpler and more sensible to fit with C in my opinion; it is possible for the compiler to do nothing special and work.
04:44:53 <elliott_> i'm still not sure it was actually real
04:44:56 <elliott_> i don't want to believe
04:45:18 <monqy> the copy i saw was a photo/scan of a magazine but i forget the magazine name
04:45:22 <pikhq> zzo38: Yes, *but* it's non-standard.
04:45:26 <monqy> i think it was a mens magazine
04:45:31 <zzo38> O, and also long long int is allowed.
04:45:43 <pikhq> When it's trivial like that, you really should prefer standard features.
04:45:45 <CakeProphet> monqy: yes, askmen is a men's magazine
04:45:47 <pikhq> long long is C99.
04:45:57 <monqy> CakeProphet: no I mean the article about turning femenists into "real girls"
04:46:01 <CakeProphet> long long long?
04:46:03 <zzo38> Yes, some of these features are C99 features. Some are not.
04:46:04 <monqy> CakeProphet: I don't think it was askmen
04:46:07 <elliott_> <CakeProphet> monqy: yes, askmen is a men's magazine
04:46:10 <elliott_> thank you for this valuable info
04:46:13 <elliott_> monqy: it was... maxim i think?
04:46:18 <monqy> yes maxim
04:46:20 <CakeProphet> elliott_: just clearing up some confusion.
04:46:27 <Lymee> What does =~ in ruby do?
04:46:28 <Lymee> =w=
04:46:34 <CakeProphet> Lymee: probably regex stuff.
04:46:39 <CakeProphet> as that is what it does in Perl.
04:46:47 <CakeProphet> and Ruby jacked Perl's regex syntax.
04:46:49 <pikhq> zzo38: Why pointer arithmetic on void*?
04:46:51 <zzo38> What I am saying is simply a simpler C than GNU C that is a subset of GNU C and a superset of standard C.
04:47:05 <Lymee> CakeProphet, I know.
04:47:13 <Lymee> I just have no idea what kind of regex stuff.
04:47:14 <zzo38> Saying what makes sense to me, at least.
04:47:16 <CakeProphet> Lymee: $string =~ m/pattern/
04:47:24 <CakeProphet> Lymee: or string, or whatever your variable is in Ruby.
04:47:27 <CakeProphet> @string even
04:47:28 <lambdabot> Unknown command, try @list
04:47:31 <pikhq> Anyways, all this nitpicking aside, that subset of GNU C seems like the subset that C compilers are likely to implement, so.
04:47:35 <Lymee> if word =~ /([\W\d]+)/
04:47:37 <Lymee> How cryptic.
04:47:41 <CakeProphet> Lymee: not really.
04:47:59 <Lymee> Is =~ "matches?"
04:48:00 <CakeProphet> if it matches, that returns true. It matches one or more repetitions of non-word characters or digits.
04:48:04 <CakeProphet> no
04:48:16 <CakeProphet> =~ is "apply this regexp to a string"
04:48:21 <CakeProphet> it can be a match or a substition.
04:48:37 <Lymee> So because there's no second // part, it's a match?
04:48:38 <monqy> http://www.ltcconline.net/lukas/gender/political/pics/political21.jpg found a copy
04:48:40 <CakeProphet> in the case of /.../, that is a match.
04:48:50 <CakeProphet> Lymee: no, because there's no s. Substition looks like: s/.../.../
04:48:52 <elliott_> no
04:48:54 <elliott_> its not a substitution
04:48:56 <elliott_> there is no such thing in ruby
04:48:59 <elliott_> substitution is a separate function
04:49:02 <Lymee> CakeProphet, ah.
04:49:03 <CakeProphet> oh really?
04:49:05 <elliott_> =~ is match in ruby
04:49:11 <CakeProphet> lame. :P
04:49:11 <elliott_> it also mutates global variables relating to the match
04:49:37 <CakeProphet> Lymee: okay, well everything I said applies in Perl. m/.../ is match in Perl, but the m is optional.
04:49:57 <zzo38> pikhq: Yes, it is my opinion too. It is what makes sense to me without adding too much stuff that didn't seem to fit.
04:50:03 <zzo38> O, and also // comments are allowed.
04:50:16 <pikhq> // is C99, so they damned well *better* support it.
04:50:17 <pikhq> :)
04:50:43 <pikhq> Heck, it's in the common subset of C and C++.
04:51:00 <zzo38> I am talking about something else; this subset is usable in the semiGNU C89 mode as well. In semiGNU C99, of course it is already allowed, as well as many more things.
04:51:30 <pikhq> Well, if you're talking C89 you should probably add a few more things.
04:51:39 <CakeProphet> Lymee: also, there's probably a !~ operator, which would be "does not match"
04:51:43 <pikhq> First and foremost: mixed declarations and statements.
04:52:12 <pikhq> Perhaps also _Pragma, just because #pragma is a complete misfeature.
04:52:28 <zzo38> pikhq: No. I think is not necessary to add that. Although of course in C99 mode is allowed.
04:52:42 <pikhq> Seriously though, just consider C99.
04:52:51 <pikhq> C89 is older than I am.
04:53:34 <pikhq> C99 itself is 12 years old.
04:53:48 <pikhq> And soon to be deprecated.
04:54:08 <zzo38> C99 includes some things I think do not belong. Even GNU89 includes some things I think do not belong. Is why I invent this subset (I believe it works in GNU89 mode in both GCC and LLVM C compiler, but both of them support more than what I said)
04:54:30 <pikhq> What's wrong with C99?
04:55:06 <CakeProphet> I think untagged unions are the lamest thing ever. Even lamer than Ruby's use of a substitute method instead of s///
04:56:06 <zzo38> pikhq: Many things. There are some good things with it, though. Just some things I believe does not fit very well with my idea of what C should be. Maybe some people might agree and others disagree, possibly, which is also OK.
04:56:12 <CakeProphet> lameness is an important quality, that should be avoided.
04:56:19 <elliott_> yeah, it's better to conflate an operation upon a regexp and a function with an operation upon a regexp that the former uses
04:56:27 <elliott_> ruby's use makes noOooOooo sense
04:57:03 <CakeProphet> being lame does not imply making no sense.
04:57:52 <pikhq> zzo38: I bet you've got problems with <complex.h>
04:59:41 <pikhq> Most of the other stuff seems either benign or fixing something that was done distinctly on different systems.
04:59:42 <CakeProphet> elliott_: also that's a strange way of looking at it, I think.
05:00:01 <elliott_> it really isnt
05:00:06 <elliott_> s vs m makes no sense at all
05:00:23 <pikhq> (for instance: variable-length arrays, to replace much of the use-case for alloca, which is nearly impossible to use portably)
05:00:34 <monqy> 21:48:55 < elliott_> =~ is match in ruby
05:00:35 <monqy> 21:49:00 < elliott_> it also mutates global variables relating to the match
05:00:41 <monqy> global mutation? really?
05:00:56 <CakeProphet> it's all just for the benefit of syntactic shorthand. It's not really a jacked up semantic model at all.
05:01:00 <elliott_> monqy: so you can do e.g.
05:01:07 <CakeProphet> monqy: capture variables, yes.
05:01:09 <elliott_> puts $1 if foo =~ /abc(bar)/
05:01:31 <CakeProphet> if you don't like that, then just assign your capture variable to a different name, problem solved.
05:01:33 <pikhq> elliott_: How Perl.
05:01:51 <elliott_> pikhq: well in ruby $ means global
05:02:08 <pikhq> That's still a very Perl-like thing.
05:02:18 <zzo38> Yes, complex numbers in C is the most problem.
05:02:27 <pikhq> zzo38: That's optional in C1x.
05:05:32 <pikhq> Yes, they're making unmandatory a couple of features.
05:05:46 <CakeProphet> elliott_: qr, m, and s are all their own operators. =~ is an application, and without it the operation is applied on $_. What is nonsensical about that? There's no function. Nothing is conflated. It doesn't work like that.
05:06:29 <pikhq> Yeah, they really did get that from Perl.
05:06:36 <CakeProphet> s/.../.../ does not produce a result that =~ takes.
05:06:43 <CakeProphet> pikhq: yes it's exactly the same in appearance
05:06:49 <pikhq> Hint: if you get it from Perl, you're doing it wrong.
05:07:16 <pikhq> *Particularly* if you intend to have programs longer than 20 lines or so in it.
05:07:21 <monqy> cake "likes perl" prophet
05:07:39 <elliott_> CakeProphet: it is conflating distinct operations, you just defend perl no matter what stupid decisions it makes
05:07:47 <elliott_> so i'm not really interested in arguing this
05:09:34 <elliott_> makeIter Main 473 4 67.7 68.1 71.1 69.5
05:09:34 <elliott_> countBytes Main 478 1048577 2.1 1.4 2.1 1.4
05:09:37 <elliott_> oh my, makeIter is slow
05:09:42 <CakeProphet> elliott_: I have reasons for defending it. it's not an irrationality. Perl is not a religion.
05:10:07 <elliott_> nope, there is definitely no rational way to defend this aspect of perl, or at least it is not what you said
05:10:40 <pikhq> You are defending awk++. Stop it.
05:10:56 <zzo38> if(x<=0) __builtin_unreachable();
05:11:05 <zzo38> Does that have any meaning at all?
05:11:10 <elliott_> pikhq: perl is not indefensible
05:11:17 <elliott_> zzo38: only if you have an else after, I think
05:11:48 <pikhq> zzo38: Behavior is undefined after reaching that function.
05:12:21 <zzo38> pikhq: I know it is undefined.
05:12:33 <pikhq> It's used to give the optimiser a hint that control doesn't go past that point.
05:12:41 <zzo38> I know that.
05:12:55 <pikhq> Then... Why did you ask?
05:13:24 <zzo38> My point is a bit different. See that it is an unusual kind of use that the GCC manual does not mention for this command.
05:14:40 <CakeProphet> elliott_: basically you are saying I cannot defend a syntactic construct because it's convenient.
05:14:44 <zzo38> It is somehow possible for the optimizer to deduce x is positive at that point (maybe it is returned from an external function that the compiler does not know about)? Or, do something similar to assume it is not null pointer, or whatever?
05:14:52 * CakeProphet is back, with chips. :D
05:15:09 <elliott_> CakeProphet:
05:15:21 <pikhq> zzo38: It is *possible* for the optimizer to make that deduction from that, yes.
05:15:24 <CakeProphet> nice quine.
05:15:31 <elliott_> $foo =~ s/a/b/g;
05:15:37 <elliott_> foo.gsub! /a/g, "b"
05:15:38 <zzo38> It seems to me that maybe it does mean that but I don't know if it actually does that.
05:15:41 <elliott_> wow yes, that last one sure is less convenient
05:15:44 <elliott_> SURE IS
05:16:10 <elliott_> foo.gsub! /a(.)/g { |x| x.upcase }
05:16:20 <elliott_> WHOOPS look at that, doing it the proper way allows using functions far more conveniently than Perl's ugly /e
05:16:25 <elliott_> DAMN this is so inconvenient
05:16:32 <elliott_> I'm so glad Perl conflates matching and substitution instead
05:17:12 <CakeProphet> there is absolutely no difference. Your complaint is a syntactic preference.
05:17:29 <CakeProphet> there is no conflation of... anything.
05:17:38 <elliott_> lol
05:17:47 <elliott_> remember when i said i wasn't interested because you're just a perl fanboy
05:17:50 <elliott_> yup
05:18:05 <elliott_> wait no this is a revolutionary new paradigm
05:18:12 <elliott_> if you can compare two different ways of doing something with an example program
05:18:16 <elliott_> then it has to be a purely syntactic issue
05:18:27 <elliott_> EVERY LANGUAGE IS JUST A DIFFERENCE OF SYNTACTIC PREFERENCES!!!!!!
05:18:28 <elliott_> OMG
05:18:31 <elliott_> semantics aren't real!
05:18:36 <elliott_> monqy: this is so zepto!!!!
05:18:39 <monqy> you don't say
05:18:40 <CakeProphet> What is semantically different here?
05:19:01 <pikhq> Also fun: I managed to make shish compile to 940 bytes.
05:20:10 <pikhq> Yay, absurd C.
05:21:23 <zzo38> There is more than syntactic preferences. It is a large part of it though.
05:21:41 <CakeProphet> elliott_: aside from the scoping of variables in the upcase example compared to how you would do it in Perl, there isn't really any semantic difference.
05:22:00 <elliott_> unfortunately, my interest in discussing this with you is zero.
05:23:08 <elliott_> not that it's a discussion; I considerably doubt any argument you would be able to come up with would sway me, and I very much doubt you'd concede that what Perl is doing is a semantic conflation, so it's akin to two missionaries trying to convert the other. which is never going to happen over at maximum an hour or two of irc.
05:23:28 <pikhq> http://sprunge.us/hZNB (for those who are curious)
05:24:01 <CakeProphet> elliott_: well, if you explained what is semantically different, I could at least tell you why I think you're wrong. :P
05:24:12 <CakeProphet> and then you could do the same. Sounds fun!
05:24:24 <elliott_> CakeProphet: exactly, all you want to do is explain to me why Perl is right
05:24:36 <elliott_> there is no part of you that is open to reconsidering whether it might be, and the same for me
05:24:36 <monqy> because as everyone knows
05:24:38 <monqy> perl is always right
05:24:39 <CakeProphet> not really. I just want to explain that is semantically the same.
05:24:46 <CakeProphet> +it
05:24:46 <elliott_> the problem is that i'm right, and you're wrong, and I'm not interested in going back and forth.
05:24:54 <elliott_> CakeProphet: exactly, all you want to do is explain to me why Perl is right
05:25:16 <monqy> what if it's the same but also wrong (it isn't the same (also it's all wrong))
05:25:23 <elliott_> pikhq: that small strcpy sucks, you can do that in asm shorter
05:25:34 <elliott_> monqy: lets appreciate haskell together
05:25:38 <CakeProphet> no, there's no normative argument here. Programming languages are not ethical assertions.
05:25:38 <elliott_> it will be great and unproductive
05:25:59 <elliott_> hahaha WOW shut up
05:26:12 <elliott_> i am not saying that no argument could take place
05:26:17 <elliott_> i'm saying the argument you want to take place would not be one
05:26:21 <monqy> i am a doctor of programming language ethics
05:26:57 <elliott_> monqy: that is not appreciating haskell
05:26:57 <CakeProphet> well yes, if you're just going to laugh at me, I suppose I don't really want to talk about it.
05:27:19 <elliott_> i was laughing at your statement
05:27:37 <monqy> I generally like haskell but the complex/irregular syntax gets on my nerves, especially when it comes to metaprogramming
05:27:42 <elliott_> but i'm not sure why you're continually pushing me into a silly folly i've expressed repeated disinterest in having
05:27:49 <elliott_> monqy: metaprogramming as in template haskell?
05:27:52 <monqy> oh and the lack of nested (pattern) guards.
05:28:18 <CakeProphet> because I am genuinely curious as to what you think is happening when you use regexps in Perl. Semantically. What evaluates to what.
05:28:24 <monqy> elliott_: yes; I forget if there are any others but I've never looked much at them
05:28:27 <elliott_> CakeProphet: you don't understand what semantics are
05:28:38 <elliott_> monqy: I mean, I still think that if you realise that operators are regular and user-defined, Haskell's syntax is actually one of the simplest languages in terms of syntax; no Lisp obviously, but it's close
05:28:52 <elliott_> monqy: (and Lisp has syntax, really, it's just hidden in the special forms)
05:28:55 <monqy> right
05:29:03 <elliott_> monqy: right, well, Template Haskell is ugly... but it's also not something you use a lot
05:29:14 -!- Wamanuz2 has joined.
05:29:28 <CakeProphet> elliott_: uh, the meaning of a program?
05:29:41 <elliott_> monqy: and the most common uses of TH -- quasiquotation and top-level ... I forget the term, $() things -- are pretty as of GHC 7
05:29:56 <CakeProphet> if you're talking about a specific semantic theory, then you're right I don't know anything about that.
05:29:59 <monqy> iirc $() is "splicing"
05:30:04 <monqy> last I checked the docs at least
05:30:07 <elliott_> monqy: [qq|...|] and at the top level, -- ah yes top level splice -- you can omit $()
05:30:09 <elliott_> so e.g.
05:30:12 <elliott_> mkLabels [''MyDataType]
05:30:31 <elliott_> you're right that defining those is pretty super-ugly, though
05:30:38 -!- Sgeo_ has quit (Read error: Connection reset by peer).
05:30:39 <elliott_> at least it's comprehensive, though
05:30:49 <elliott_> but yeah, I use TH rarely
05:31:05 <elliott_> since you can define your own control structures without it, it's not that useful most of the time
05:31:08 <monqy> I think I last used it two years ago so my memory's a bit foggy
05:31:12 -!- Sgeo_ has joined.
05:31:26 <elliott_> monqy: haskell or TH?
05:31:29 <monqy> TH
05:31:35 <monqy> I last used haskell today or was it yesterday
05:31:35 <elliott_> what language do you normally use anyhow
05:31:38 <monqy> haskell
05:31:42 <elliott_> right :P
05:32:16 <elliott_> i couldn't really use any language other than haskell at this point, even disregarding the language itself, it's just so far ahead in pretty much everything
05:32:31 <elliott_> parsing, IO, state management, concurrency, text processing...
05:33:52 -!- Wamanuz2 has quit (Read error: Connection reset by peer).
05:38:54 <elliott_> On Eric Gill, the designer of the famous Gill Sans typeface: "His personal diaries describe his sexual activity in great detail including the fact that Gill sexually abused his own children, had an incestuous relationship with his sister and performed sexual acts on his dog."
05:39:24 <monqy> but is the typeface any good
05:40:21 <elliott_> monqy: ever looked at the BBC logo? or anything else the BBC has ever done?
05:40:33 <monqy> what's the bbc
05:40:39 <elliott_> monqy: you're joking right
05:40:41 <CakeProphet> elliott_: not everyone is a limey.
05:40:48 <CakeProphet> or an American, I guess.
05:40:55 <monqy> I can't say I've ever taken a good look at it
05:40:55 <elliott_> CakeProphet: yes, non-limeys don't know what the bbc is.
05:40:58 <elliott_> obviously
05:41:09 <pikhq> CakeProphet: I'd say most Americans know of the BBC.
05:41:18 <monqy> I prefer lots of serifs on my typefaces
05:41:23 <CakeProphet> pikhq: yes, that is what I said.
05:41:30 <elliott_> monqy: the bbc use gill sans almost exclusively. gill sans is used a lot in railway stuff in the uk.
05:41:37 <elliott_> tufte uses gill sans on his website (THANKS WIKIPEDIA)
05:41:41 <monqy> child abuse endorsement
05:41:43 <pikhq> Believe it or not, we're not completely ignorant of the UK; it's one of the few countries that we don't ignore, in fact.
05:41:46 <elliott_> monqy: definitely
05:42:08 <pikhq> Also, Gill Sans is a nice font.
05:42:12 <elliott_> monqy: and the child was a _dog_, too! wait, you're referring to his kids.
05:42:35 <monqy> bestiality endorsement
05:42:38 <elliott_> As the revelations about Gill's private life resonated, there was a reassessment of his personal and artistic achievement. As his recent biographer sums up:
05:42:38 <elliott_> "After the initial shock, […] as Gill's history of adulteries, incest, and experimental connection with his dog became public knowledge in the late 1980s, the consequent reassessment of his life and art left his artistic reputation strengthened. Gill emerged as one of the twentieth century's strangest and most original controversialists, a sometimes infuriating, always arresting spokesman for man's continuing need of God in an increasingly materialis
05:42:39 <elliott_> tic civilization, and for intellectual vigour in an age of encroaching triviality."[8]
05:42:57 <pikhq> Though, it's not Helvetica.
05:43:07 <elliott_> i like how he's all...
05:43:10 <elliott_> "well we got over the child abuse thing"
05:44:23 <CakeProphet> honk
05:44:44 <CakeProphet> ^^ Homestuck withdrawal
05:45:14 * pikhq wonders at Arial having ever been made
05:45:25 <pikhq> Fun fact: fonts cannot be copyrighted in the US.
05:45:32 <monqy> comic sans ms, papyrus
05:45:34 <monqy> classics there
05:45:45 <elliott_> pikhq: yes they can
05:45:48 <elliott_> typefaces can't though
05:45:58 <zzo38> pikhq: I think that is only for raster fonts
05:46:00 <pikhq> elliott_: Ah, right, sorry. The distinction is important.
05:46:07 <zzo38> But I don't know for sure
05:46:09 <CakeProphet> wingdings is another classic.
05:46:12 <pikhq> zzo38: The shape of the glyphs is uncopyrightable.
05:46:39 <zzo38> pikhq: OK.
05:46:41 <pikhq> zzo38: A programmatic representation of them, such as a TTF file, can be under copyright.
05:46:47 <coppro> pikhq: What about patents
05:47:43 <coppro> also, amusing: <Coworker 1> Other people can't file patents if we have them. <Coworker 2> No, you're wrong.
05:47:57 <pikhq> coppro: Novel designs can be patented.
05:48:07 <CakeProphet> In 1992, only days after the release of Windows 3.1, it was discovered that the character sequence "NYC" in Wingdings was rendered as a skull and crossbones symbol, Star of David, and thumbs up gesture. This was often interpreted as an antisemitic message.[8] Microsoft strongly denied this was intentional, and insisted that the final arrangement of the glyphs in the font was largely random. (The character sequence "NYC"
05:48:51 <CakeProphet> How strange.
05:49:20 <pikhq> coppro: Of course, such a patent on Helvetica would have expired when Arial was made.
05:49:25 <pikhq> Hence, Arial has no reason to exist.
05:49:47 <elliott_> CakeProphet: are you serious
05:49:54 <CakeProphet> elliott_: oh yes.
05:49:59 <elliott_> like really
05:50:10 <CakeProphet> also, the article ☎ redirects to telephone on Wikipedia. I found this amusing.
05:50:15 <pikhq> https://secure.wikimedia.org/wikipedia/en/wiki/File:Wingdings_NYC.svg
05:50:21 <elliott_> CakeProphet: but are you serious
05:50:30 <CakeProphet> elliott_: ...now I don't know what you mean.
05:50:32 <elliott_> pikhq: can i improve upon shish
05:50:36 <pikhq> elliott_: Feel free.
05:50:38 <elliott_> CakeProphet: like do you really think that is strange
05:50:52 <CakeProphet> yes. I think it's strange that people would notice something like that and freak out.
05:51:10 <zzo38> This program http://sprunge.us/hZNB seems like it is one that should be written assembly language, not in C, it seems to me
05:51:43 <pikhq> zzo38: It halfway is.
05:52:27 <elliott_> pikhq: can you link me to the gcc docs on __asm__ thx
05:52:48 <elliott_> pikhq: btw the "c" (status) line has tabs
05:52:50 <pikhq> http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
05:52:56 <elliott_> oh, so do the pid and options lines
05:52:56 <elliott_> plz fix
05:53:00 <elliott_> also other ones
05:54:40 <Sgeo_> A reversible CA on a torus must eventually repeat everything, right? Because a normal CA on a torus eventualy goes in a loop like.... suppose I have a timeline A B C, then a normal CA might start from B. But a reversible CA, if it did that, would lose information about A, an dit would also imply that theee are two ways to get to B.
05:54:54 <coppro> CA?
05:55:01 -!- zzo38 has quit (Remote host closed the connection).
05:55:33 <elliott_> coppro: seriously?
05:55:44 <elliott_> pikhq: hmm, how would I get esi and edi set to specific values in an asm?
05:55:51 <coppro> elliott_: he obviously means california from this context
05:55:59 <elliott_> and also say i read esi and clobber bytes at edi and beyond (as a pointer)
05:56:04 <elliott_> coppro: no he doesn't
05:57:14 <Sgeo_> coppro, cellular automata
05:57:32 <pikhq> elliott_: esi and edi are S and D
05:57:48 <CakeProphet> Sgeo_: not really, there are plenty of patterns that could die without any repetition. Essentially it is the same thing as a CA that wraps around.
05:58:00 <elliott_> pikhq: hmm, do the rep prefixes modify the destination poitner?
05:58:00 <elliott_> pointer
05:58:21 <newsham> slightly off topic for this channel, but might be amusing read http://adamharley.co.uk/2011/06/wordpress-plugin-backdoors/
05:58:36 <CakeProphet> plugin. backdoors.
05:58:37 <elliott_> newsham: are you kidding, we are never on topic
05:58:46 <newsham> analysis of the rogue source commits found on the wordpress repo recently
05:58:46 <elliott_> CakeProphet: why is that phrase objectionable
05:58:51 <elliott_> "you mean code... has bugs?"
05:58:59 <Sgeo_> CakeProphet, hmm, how could something die, though? Death implies that a previous state was similar to the new one, and also a different previous state was more active than the new one
05:58:59 <pikhq> elliott_: Hmm?
05:59:04 <elliott_> newsham: wait, people trust wordpress's code nowadays?
05:59:06 <elliott_> pikhq: ?
05:59:22 <elliott_> Sgeo_: do you like reversible cas because they'd prevent death
05:59:23 <pikhq> elliott_: That statement, I do not understand it.
05:59:28 <newsham> i dont knwo if they do, but if they do, they should probably upgrade. :)
05:59:37 <elliott_> pikhq: xeightsix asm
05:59:47 <elliott_> newsham: so they can wait until the next vulnerability is found?
05:59:55 <Sgeo_> elliott_, well, presumably a conscious being on a reversible CA could still die, but on a torus, if the world repeats, they'd exist again.
06:00:04 <pikhq> elliott_: Ah. I dunno.
06:00:09 <elliott_> running code in an unsafe language run by amateurs on a high-profile website, PERFECT IDEA
06:00:18 <elliott_> s/run by/written by/
06:00:38 <elliott_> Sgeo_: but is that why you like them
06:00:51 <CakeProphet> elliott_: perhaps when you are older I will tell you why I found that sequence of characters amusing.
06:01:05 <Sgeo_> elliott_, no, I just want a conserved quantity
06:01:07 <CakeProphet> but it had nothing to do with code.
06:01:16 <Sgeo_> So that there's something to compete over other than space
06:01:59 <elliott_> CakeProphet: oh, duh
06:02:04 <monqy> :(
06:02:07 <elliott_> CakeProphet: my age is irrelevant, it just was not funny.
06:02:15 <monqy> I agree with elliott_
06:02:44 <CakeProphet> elliott_: yes it was actually a somewhat juvenile observation. oh well.
06:03:09 <elliott_> juvenile is fine as long as it's funny :P
06:03:16 <CakeProphet> amused, not laughing.
06:03:22 <monqy> unamused
06:03:24 <elliott_> ok but seriously i have to make this code shorter.
06:03:32 <elliott_> pikhq: hey why are all these asms volatile
06:03:39 <elliott_> that's a pessimisation
06:04:08 <CakeProphet> Sgeo_: I've always thought a CA with several interesting states would be... interesting.
06:04:20 <CakeProphet> but that is something completely different than what you're talking about.
06:04:28 <coppro> CakeProphet: Do you know the Interesting Number Theorem?
06:04:33 <CakeProphet> nope
06:04:44 <elliott_> pikhq: .
06:04:48 <coppro> Theorem: Every natural number is interesting
06:04:51 <Sgeo_> What? Someone who's never heard of it?
06:05:08 <pikhq> elliott_: Actually, probably no good reason, thinking about it now.
06:05:39 <coppro> Proof: Consider the set of uninteresting natural numbers. If nonempty, it must contain a least element, which is the lowest uninteresting natural number. This is an interesting property. Contradiction. Therefore the set is empty.
06:05:43 <CakeProphet> coppro: sounds very, uh, interesting.
06:06:01 <CakeProphet> is every theorem interesting?
06:06:12 <elliott_> shishorig.c: In function ‘small_waitpid’:
06:06:12 <elliott_> shishorig.c:59: error: ‘__NR_waitpid’ undeclared (first use in this function)
06:06:12 <elliott_> shishorig.c:59: error: (Each undeclared identifier is reported only once
06:06:13 <elliott_> shishorig.c:59: error: for each function it appears in.)
06:06:14 <elliott_> pikhq: :(
06:06:18 <Sgeo_> Is there such a thing as a noncomputable theorem?
06:06:32 <coppro> CakeProphet: The Interesting Number Theorem can be extended to any countable set
06:06:32 <elliott_> Sgeo_: how about defining that and then asking
06:07:03 <CakeProphet> coppro: so then theorems are a countable set?
06:07:08 <elliott_> ...
06:07:10 <coppro> CakeProphet: obviously
06:07:13 <elliott_> i hate you all pikhq should just fix my problem
06:07:16 <pikhq> elliott_: Strange. That's in asm/unistd.h, part of the kernel headers.
06:07:20 <newsham> elliott: but this particular issue has nothing to do with amateur developers.
06:07:32 * Sgeo_ pretends not to have asked a similar question as CakeProphet did, even if I was joking
06:07:33 <elliott_> newsham: sure
06:07:33 <newsham> its an intentionally placed backdoor through compromised accounts
06:07:37 <elliott_> newsham: but it still involves trusting wordpress code :)
06:07:41 <elliott_> coppro: that depends...
06:07:45 <elliott_> coppro: the set of proofs is countable, the set of truths is not
06:07:58 <newsham> *shrug* bloggers..
06:08:02 <elliott_> pikhq: im on sixtyfour bit btw
06:08:04 <coppro> elliott_: it does depend on your definition of theorem, however
06:08:07 <newsham> i donnut use the wordpress
06:08:15 <pikhq> elliott_: -m32
06:08:15 <coppro> a theorem can be expressed as a finite set of definitions, plus a statement
06:08:18 <elliott_> pikhq: kay
06:08:21 <pikhq> And so am I.
06:08:36 <elliott_> coppro: a theorem is a statement and a proof
06:08:39 <elliott_> then there are countable theorems
06:08:40 <pikhq> This *really* won't work on x86_64.
06:08:42 <elliott_> a theorem is a statement that is true
06:08:44 <elliott_> then there are uncountable theorems
06:08:49 <elliott_> pikhq: right
06:08:58 <elliott_> /tmp/ccP6IGbl.o: In function `_start':
06:08:58 <elliott_> shishorig.c:(.text+0x4d): undefined reference to `__builtin_unreachable'
06:08:58 <elliott_> shishorig.c:(.text+0x177): undefined reference to `__builtin_unreachable'
06:09:01 <elliott_> guess ill use a newer gcc
06:09:09 <coppro> elliott_: The true statements expressible in the English language are, however, countable
06:09:18 <elliott_> pikhq: should shish just hang when you start it
06:09:18 <coppro> or in any reasonable human language
06:09:23 <elliott_> coppro: that has nothing to do with formal logic
06:09:35 <coppro> elliott_: neither do theorems
06:09:37 <pikhq> The fuck, it segfaults on input.
06:09:46 <elliott_> coppro: yes they do, theorem is a term of formal logic
06:10:06 <elliott_> $ ./shishorig
06:10:06 <elliott_> asdjoasd
06:10:06 <elliott_> asoijd
06:10:06 <elliott_> asdijasdoijaosdjasdj
06:10:06 <elliott_> [control+D]Segmentation fault
06:10:07 <elliott_> pikhq: see above
06:10:09 <coppro> elliott_: Formal logical theorems are different from English theorems, though
06:10:10 <CakeProphet> Is the set of countable sets countable?
06:10:20 <coppro> CakeProphet: dude, no
06:10:27 <elliott_> coppro: nobody says theorem to mean "something true in English" apart from nerds trying to sound smart
06:10:28 <pikhq> elliott_: Yeah, WTF.
06:10:38 <elliott_> CakeProphet: jesus
06:10:46 <coppro> elliott_: which is the One True Formal Logic then?
06:10:48 <pikhq> elliott_: Oh, wait. Of course it's not going to do anything if it gets passed a non-command.
06:10:53 <coppro> Kripke modal logic?
06:10:56 <elliott_> coppro: there is none, obviously
06:11:01 <elliott_> coppro: english isn't a formal logic though
06:11:25 <elliott_> i was answering in terms of the most common logics, i don't know of one anyone uses that has a countable number of truths
06:11:36 <elliott_> pikhq: i tried "ls"
06:11:40 <pikhq> elliott_: Also, it does not understand PATH.
06:11:41 <elliott_> was that wrong
06:11:51 <elliott_> oh, /bin/ls works
06:11:53 <coppro> elliott_: Most logics actually do have a countable number of truths
06:12:03 <elliott_> coppro: are there a countable number of truths in zfc? i very much doubt that.
06:12:19 <coppro> elliott_: zfc is not a logic
06:12:28 <pikhq> The volatiles are needed.
06:12:41 <elliott_> coppro: sure it is
06:12:44 <elliott_> it's a set of axioms
06:12:54 <CakeProphet> is the set of all logics a countable set?
06:13:03 <elliott_> CakeProphet: ;_;
06:13:15 <coppro> elliott_: I've typically seen it presented without syntactic trappings
06:13:19 <CakeProphet> "countable" being synonymous with "interesting", now that it is proven.
06:13:27 <coppro> CakeProphet: Not at all
06:13:48 <CakeProphet> "countable set" being synonymous with "interesting stuff"...?
06:13:53 <elliott_> coppro: well zfc is basically parameterised over the logic of your choice
06:13:59 <coppro> elliott_: exactly
06:14:02 <elliott_> CakeProphet: do you have any idea what you are talking about
06:14:05 <elliott_> coppro: so it's a family of logics :)
06:14:06 <CakeProphet> of course.
06:14:12 <CakeProphet> how could I not know what I am talking about. That is silly.
06:14:32 <CakeProphet> I didn't even make that a question, because it is so obvious that I do not need to ask.
06:14:39 <coppro> elliott_: First-order may or may not have a countable number of truths, depending on the model
06:14:52 <coppro> if the model has an uncountable member, the set of truths be uncountable
06:15:13 <elliott_> pikhq: } else if (*(unsigned*)tokened[0] == '\0tes') {
06:15:16 <elliott_> pikhq: is this for "env"?
06:15:22 <elliott_> how does one use this :P
06:15:32 <elliott_> coppro: fair 'nuff
06:15:36 <elliott_> first-order logic upsets me :(
06:15:40 <pikhq> elliott_: Yes, that's for env.
06:15:42 <elliott_> it's like not having first-class functions
06:15:45 <elliott_> pikhq: so "env foo-bar"?
06:15:48 <elliott_> foo=bar
06:16:07 <pikhq> elliott_: "set foo=bar"
06:16:07 <newsham> elliott: assuming unsigned * is a 4 byte integer?
06:16:16 <newsham> err 4 byte value
06:16:17 <elliott_> pikhq: how come /usr/bin/env does nothing
06:16:22 <elliott_> newsham: yeah this program is wildly unportable
06:16:59 <pikhq> elliott_: Define "does nothing".
06:17:15 <elliott_> pikhq: $ ./shishorig
06:17:16 <elliott_> /usr/bin/env
06:17:16 <elliott_> /bin/echo hello
06:17:16 <elliott_> hello
06:17:24 <elliott_> it should print the environment
06:17:32 <elliott_> oh wait
06:17:34 <elliott_> the environment starts off empty
06:17:35 <elliott_> ok
06:17:40 <elliott_> heh, i broke strcpy
06:18:15 <pikhq> This really, truly is the shittiest shell possible.
06:18:27 <CakeProphet> elliott_: if the interesting number theorem can be extended to any countable set, then that means all countable sets contain interesting elements. :)
06:18:33 <elliott_> hmm, is there a gcc-favoured way to get a constant value into a register in an __asm__?
06:18:44 <elliott_> "blah" (9090)?
06:18:50 <CakeProphet> so I can now use this theorem to gauge the interestingness of things, though I cannot determine if something is not interesting.
06:19:31 <elliott_> oh right yes it's that
06:19:36 <elliott_> CakeProphet: sigh
06:20:17 <CakeProphet> that is indeed interesting.
06:23:47 <elliott_> pikhq: ugh, how do you just say you are clobbering a register?
06:23:52 <elliott_> without actually outputting it to anything
06:25:05 <pikhq> elliott_: Pretty sure you just give the constraint for the register.
06:25:30 <elliott_> pikhq: how
06:25:36 <elliott_> __asm__("..." : : "=a", ...)
06:25:40 <elliott_> produces a syntax error
06:25:44 <pikhq> Balls.
06:25:57 <pikhq> ... Oh, wait, obvious error is obvious.
06:26:08 <elliott_> what's the obvious error
06:26:33 <pikhq> "=a" is used to indicate that the operand is an output, and you stuck it with the inputs.
06:26:52 <pikhq> __asm__("..." : "=a" : ...)
06:26:57 <elliott_> already tried that
06:27:11 <pikhq> Try ()?
06:27:17 <elliott_> already tried that
06:27:28 <elliott_> ../Desktop/shish.c:55:13: error: matching constraint references invalid operand number
06:27:42 <elliott_> oh wait
06:27:47 <elliott_> i just put it in the clobbered list
06:27:47 <elliott_> duh
06:28:21 <pikhq> Well, that was simple. :P
06:28:39 <elliott_> doesn't work, wtf
06:30:33 <CakeProphet> couldn't you prove that all rational numbers are interesting?
06:30:41 <elliott_> ../Desktop/shish.c:33:12: error: expected ‘)’ before ‘:’ token
06:30:41 <elliott_> wtf
06:30:53 <elliott_> CakeProphet: no, the rational numbers aren't countable, DUHHHHHH
06:30:59 <elliott_> coppro said it only applies to countable sets
06:31:00 <elliott_> DUHHHHHHHHHHHHHHH
06:31:04 <elliott_> DURHHHHHHHHHHHHHHHHHHHHHHHHHHH
06:31:15 <CakeProphet> well right, this is a new theorem that we are trying to prove. :)
06:31:20 <elliott_> ...
06:31:23 <elliott_> wow you actually believe that
06:32:35 <CakeProphet> well, if we could prove that uncountable sets are also interesting, and that cardinality of a set corresponds to more interesting sets
06:32:41 <CakeProphet> perhaps we could find THE MOST INTERESTING set.
06:32:50 <Sgeo_> CakeProphet, rational numbers are countable
06:33:00 <monqy> paradoxes are pretty interesting. how about one of those.
06:33:03 <coppro> elliott_: well played
06:34:37 <CakeProphet> oh no, you've caught me, I don't know everything.
06:35:25 <Sgeo_> I usually expect to be bottom of the #esoteric barrel. I mean, top of most people I meet IRL, but this place is ... I'm low here
06:35:57 * Sgeo_ stops being mean to CakeProphet
06:37:13 <CakeProphet> yeah, you guys are going to hurt my feelings. :(
06:37:29 <Sgeo_> Sorry
06:37:46 <pikhq> Easy solution to that. Queen.
06:38:51 <Sgeo_> Huh?
06:39:03 <CakeProphet> I think he's talking about the band? maybe?
06:39:06 <CakeProphet> I'm not really sure.
06:39:16 <pikhq> I'm not sure why I said it.
06:39:21 <pikhq> But yes, I was referring to the band.
06:39:30 <pikhq> Also the album, but mostly the band.
06:39:52 <elliott_> <coppro> elliott_: well played
06:39:54 <elliott_> sarcasm?
06:40:06 <elliott_> i was sure the durhhhhs would give me away :(
06:40:22 <elliott_> <CakeProphet> oh no, you've caught me, I don't know everything.
06:40:34 <elliott_> i'm sorry dude but knowing the rationals are countable is like the second thing to know about countability after what it is
06:41:18 <CakeProphet> that is essentially what I know about countability.
06:41:59 <CakeProphet> it did not occur to me that every quotient of any two natural numbers can also be counted.
06:42:24 <Sgeo_> Involve an infinite number of natural numbers, _then_ it's uncountable
06:42:52 <pikhq> It's utterly trivial to do an isomorphism from (Integer, Integer) to Integer.
06:43:50 <pikhq> Or any tuple, really.
06:43:51 <CakeProphet> ....? but aren't rational numbers a quotient of /any/ (read: from an infinite set of natural numbers) integers? According to what Sgeo_ says that would make rational numbers uncountable?
06:44:05 <CakeProphet> lol s/integers/natural numbers/ of course
06:44:08 <elliott_> CakeProphet: products of countable sets are countable
06:44:10 <elliott_> the end
06:44:29 <Sgeo_> CakeProphet, no, as in, if to specify an entity, it took an infinite amount of natural numbers
06:44:47 <Sgeo_> Let's say rationals are points on a 2-dimensional plane (ok, that's redundant, I know)
06:45:03 <pikhq> CakeProphet: https://secure.wikimedia.org/wikipedia/en/wiki/Cantor_pairing_function#Cantor_pairing_function
06:45:04 <Sgeo_> Where each dimension is an integer
06:45:15 <elliott_> CakeProphet: the set of infinite lists of naturals is uncountable.
06:45:21 <elliott_> proof: diagonalisation.
06:45:47 <Sgeo_> Now, if you had infinite number of dimensions, even though each dimension can only take integer values, the number of points is uncountably infinite
06:46:07 <elliott_> Sgeo_: this is a really awkward explanation
06:46:26 <Sgeo_> Yeah, um
06:46:28 <pikhq> elliott_: I suspect he's coming up with it as he's going along. Would explain the awkwardness.
06:46:58 <Sgeo_> Ok, better yet. Take a real number, which in some cases takes an infintie number of digits to describe
06:47:21 <CakeProphet> I see how it's countable, I think. But I usually think of these things algorithmically and so I couldn't see a clear algorithm to assign each rational number to a natural number.
06:47:29 <Sgeo_> The reals are uncountably infinite, even though each digit can only have 1 of 10 values.
06:47:42 <elliott_> CakeProphet: constructivist
06:47:42 <Sgeo_> (or whatever base.. which would still be written 10, but wahtever0
06:47:44 <Sgeo_> whatever)
06:47:54 <elliott_> Sgeo_: you're not making this any less awkward :P
06:48:05 <elliott_> CakeProphet: but consider interleaving the bits, Q.E.D.
06:48:39 <pikhq> CakeProphet: https://secure.wikimedia.org/wikipedia/en/wiki/Cantor_pairing_function#Cantor_pairing_function
06:48:54 <pikhq> CakeProphet: And realise that the rationals can be represented as a 2-tuple of naturals.
06:49:26 <elliott_> pikhq: it's not that simple since you need a bijection
06:49:27 <elliott_> but yeah
06:49:54 <pikhq> elliott_: The Cantor pairing function is a bijection.
06:49:59 <CakeProphet> pikhq: already realized. Don't need to worry.
06:50:01 <Sgeo_> Well, the fact that that function works isn't intuitive to me, I prefer thinking along the lines of assigning 0,0 to 0, 0,1 to 1, 1,0 to 2, etc. etc. etc
06:50:05 <elliott_> pikhq: yes
06:50:12 <elliott_> pikhq: but rationals are not a pair of integers
06:50:16 <Sgeo_> That's how I understand it, don't know if this function is equivalent
06:50:17 <pikhq> Ah, right.
06:50:31 <Sgeo_> (well, of course dealing with negatives)
06:50:35 <pikhq> *That* bijection is at least a bit more obvious, though.
06:50:58 <pikhq> Sgeo_: That is the mapping, yes.
06:52:14 <Sgeo_> Ah, ok
06:56:26 <elliott_> http://web.cs.wpi.edu/~jshutt/kernel.html
06:56:31 <elliott_> i hope this has first-class environments
06:56:35 <CakeProphet> > let icantorpair z = let w=(sqrt(8*z+1)-1)/2; t=(w**2+w)/2; y=z-t; x=w-y in (x,y) in icantorpair 21
06:56:39 <lambdabot> mueval-core: Time limit exceeded
06:56:56 <CakeProphet> heh
06:57:02 <elliott_> try again
06:57:12 <elliott_> > let icantorpair z = let w=(sqrt(8*z+1)-1)/2; t=(w**2+w)/2; y=z-t; x=w-y in (x,y) in icantorpair 21
06:57:13 <lambdabot> (6.0,0.0)
06:57:26 <elliott_> > let icantorpair z = let w=(truncate (sqrt (8*z+1))-1)/2; t=(w**2+w)/2; y=z-t; x=w-y in (x,y) in icantorpair 21
06:57:27 <lambdabot> Ambiguous type variable `t' in the constraints:
06:57:27 <lambdabot> `GHC.Float.Floating t'
06:57:27 <lambdabot> ...
06:57:34 <elliott_> > let icantorpair z = let w=(truncate (sqrt (8*z+1) :: CReal)-1)/2; t=(w**2+w)/2; y=z-t; x=w-y in (x,y) in icantorpair 21
06:57:35 <lambdabot> No instance for (GHC.Real.Integral Data.Number.CReal.CReal)
06:57:35 <lambdabot> arising from...
06:57:39 <elliott_> > let icantorpair z = let w=(truncate (sqrt (8*z+1) :: Double)-1)/2; t=(w**2+w)/2; y=z-t; x=w-y in (x,y) in icantorpair 21
06:57:40 <lambdabot> No instance for (GHC.Real.Integral GHC.Types.Double)
06:57:40 <lambdabot> arising from a use ...
06:57:42 <elliott_> ojgiogjdfog
06:57:48 <elliott_> :t truncate
06:57:50 <lambdabot> forall a b. (RealFrac a, Integral b) => a -> b
06:58:03 <elliott_> > let icantorpair z = let w=((truncate (sqrt (8*z+1) :: Double)::Integer)-1)/2; t=(w**2+w)/2; y=z-t; x=w-y in (x,y) in icantorpair 21
06:58:05 <lambdabot> Couldn't match expected type `GHC.Types.Double'
06:58:05 <lambdabot> against inferred ty...
06:58:07 <elliott_> asdfgh,
06:58:13 <elliott_> > let icantorpair z = let w=((truncate (sqrt (8*z+1) :: Double)::Integer)-1) `div` 2; t=(w**2+w)/2; y=z-t; x=w-y in (x,y) in icantorpair 21
06:58:14 <lambdabot> Couldn't match expected type `GHC.Types.Double'
06:58:14 <lambdabot> against inferred ty...
06:58:33 <CakeProphet> uh...
06:58:51 <CakeProphet> :t sqrt
06:58:52 <lambdabot> forall a. (Floating a) => a -> a
06:58:57 <Sgeo_> I'm still obsessed with the idea that, if intelligent life emerges in a reversible CA on a torus, it _will_ inevitably be destroyed
06:59:06 <elliott_> you are obsessed with everything.
06:59:10 <elliott_> oh
06:59:17 <elliott_> > let icantorpair z = let w=((truncate (sqrt (8*(fromIntegral z)+1) :: Double)::Integer)-1) `div` 2; t=(w**2+w)/2; y=z-t; x=w-y in (x,y) in icantorpair 21
06:59:18 <lambdabot> No instance for (GHC.Float.Floating GHC.Integer.Type.Integer)
06:59:18 <lambdabot> arising fr...
06:59:21 <elliott_> :t fromIntegral
06:59:21 <lambdabot> forall a b. (Integral a, Num b) => a -> b
06:59:43 <elliott_> > let icantorpair z = let w=(truncate (sqrt (8*(fromInteger z)+1) :: Double)-1) `idv` 2; t=(w**2+w) `div` 2; y=z-t; x=w-y in (x,y) in icantorpair 21
06:59:44 <lambdabot> Not in scope: `idv'
06:59:48 <elliott_> > let icantorpair z = let w=(truncate (sqrt (8*(fromInteger z)+1) :: Double)-1) `div` 2; t=(w**2+w) `div` 2; y=z-t; x=w-y in (x,y) in icantorpair 21
06:59:49 <lambdabot> No instance for (GHC.Float.Floating GHC.Integer.Type.Integer)
06:59:49 <lambdabot> arising fr...
06:59:53 <CakeProphet> what do you need truncate for?
06:59:53 <Sgeo_> If the scientists figure out they're on a torus somehow, and understand reversiblity, then...
06:59:55 <elliott_> aojsdfghj
07:00:01 <elliott_> CakeProphet: i am trying to make it not result in doubles, but am far too lazy
07:00:07 <elliott_> Sgeo_: oh n0ez
07:00:12 <CakeProphet> ...what's wrong with doubles?
07:00:19 <elliott_> asdfghm,
07:00:24 <elliott_> because its a bijection on naturals
07:00:35 <CakeProphet> ...but it's a program. it's all good..
07:00:42 <elliott_> ...do you even understand anything
07:00:44 <CakeProphet> yes
07:00:52 <Sgeo_> Can reversible CAs be turing-complete?
07:00:57 <CakeProphet> I am just not as picky as you about these things. That is the difference in this case.
07:01:05 <elliott_> Sgeo_: yes. proof: reversible languages can
07:01:07 <elliott_> CakeProphet: it's nothing about pickiness
07:01:09 <elliott_> at all
07:01:58 <CakeProphet> if you say so..
07:02:23 <elliott_> we are looking for a function (Integer,Integer) -> Integer (actually (Nat,Nat) -> Nat, but unfortunately Haskell has no natural type)
07:02:28 <elliott_> erm, reverse that
07:02:41 <elliott_> yours is Integer -> (Double,Double) which is incorrect (actually a bunch of things with Num and Floating but that's irrelevant)
07:03:27 <CakeProphet> yes I understand. understood even.
07:03:49 <elliott_> it's like writing down 2 + 2 = 5 and saying it's correct because you're not picky.
07:04:39 <CakeProphet> ...no. it's not caring because I am not writing an actual program and only care about getting a result that is readable by me.
07:04:53 <elliott_> <CakeProphet> ...but it's a program. it's all good..
07:04:55 <elliott_> i thought it was a program
07:05:13 <CakeProphet> not writing something to be re-used.
07:05:15 <elliott_> anyway, you're the one who objected to me attempting to correct your function
07:05:50 <CakeProphet> let icantorpair z = let w=(sqrt(8*z+1)-1)/2; t=(w**2+w)/2; y=z-t; x=w-y in (x,y) in map icantpair [0..]
07:05:55 <CakeProphet> > let icantorpair z = let w=(sqrt(8*z+1)-1)/2; t=(w**2+w)/2; y=z-t; x=w-y in (x,y) in map icantpair [0..]
07:05:56 <lambdabot> Not in scope: `icantpair'
07:06:01 <CakeProphet> > let icantorpair z = let w=(sqrt(8*z+1)-1)/2; t=(w**2+w)/2; y=z-t; x=w-y in (x,y) in map icantorpair [0..]
07:06:03 <lambdabot> [(0.0,0.0),(1.0,0.0),(1.5615528128088303,0.0),(2.0,0.0),(2.3722813232690143...
07:06:09 <elliott_> look at that
07:06:13 <elliott_> using doubles broke your program
07:06:14 <elliott_> gj
07:06:45 <pikhq> *sigh* Double. It really shouldn't be a Num.
07:07:02 <elliott_> why not, it is a perfectly valid Num
07:07:06 <elliott_> the fault is Num requiring Eq and Show
07:07:10 <elliott_> which is stupid
07:07:29 <pikhq> Floating point "numbers" are not associative.
07:08:02 <CakeProphet> can numbers even be associative?
07:08:04 <elliott_> pikhq: and?
07:08:07 <elliott_> pikhq: where does Num require this?
07:08:09 <elliott_> CakeProphet: ...
07:08:22 <CakeProphet> I thought it was the operation/relation that was associative.
07:09:00 <pikhq> elliott_: Though the typeclass doesn't require it, the user probably does.
07:09:42 <elliott_> pikhq: this is silly; what of surreal numbers/games?
07:10:05 <elliott_> you can hardly define what Num is because the whole typeclass is stupid, there is no point putting additional constraints on
07:10:25 <pikhq> True, the whole typeclass is a misfeature.
07:12:04 <CakeProphet> elliott_: I would prefer that you actually communicate with me instead of being condescending and assuming I'm just stupid.
07:12:21 <pikhq> What with there being, say, vectors, that you might like to be able to use normal addition on, even though there's not really a sane multiplication function for them.
07:12:38 <elliott_> CakeProphet: you criticised me for trying to fix your program, likening it to needless pedanticism; then you respond to an offhand remark of pikhq with needless pedanticism
07:12:55 <elliott_> if i tried to converse with you under such circumstances, it would merely try my patience.
07:14:25 <CakeProphet> elliott_: no, see. I was fine with you fixing the program. I thought you had gotten it to work when it returned doubles. At that point, I thought you were simply trying to make the types reflect the actual mathematical definition, which I thought was a waste of time since the program seemed to work. My mistake.
07:14:51 <elliott_> it returned doubles when you wrote it, all my modifications were to make it integers
07:15:04 <elliott_> but fair enough
07:15:21 <CakeProphet> ah, yeah it timed out on mine. I thought you made changes.
07:15:26 <elliott_> nope, just re-ran it.
07:15:28 <elliott_> lambdabot does that a lot.
07:16:30 <Sgeo_> I think they would all starve to death. After all, they would likely require some sort of energetic ... stuff for their brains
07:16:36 <Sgeo_> I think
07:16:39 <Sgeo_> hmm
07:17:26 <CakeProphet> Sgeo_: what on earth...
07:17:53 <CakeProphet> how could life exist on an abstract mathematical grid?
07:18:20 <elliott_> ...
07:18:24 <Sgeo_> How can life exist that's made of mathematically describable matter?
07:18:25 <elliott_> you mean like the universe?
07:18:57 <CakeProphet> so you mean, what if intelligent life existed in a torus shaped universe?
07:19:06 <CakeProphet> or the 3-dimensional equivalent.
07:19:28 <Sgeo_> I'm sticking with torus shaped universe for simplicity
07:20:02 <elliott_> CakeProphet: except discrete.
07:20:10 <elliott_> but seriously, what do you mean "how could life exist on an abstract mathematical grid"
07:20:27 <CakeProphet> it just sounds strange to talk about something life on an idea.
07:20:42 <elliott_> ...what?
07:20:51 <elliott_> im seriously not trying to be condescending you're just not making any sense
07:21:22 -!- choochter has joined.
07:21:25 <CakeProphet> as in, I don't see how it makes sense to talk about things living on an automata. Does that not sound strange to you?
07:21:35 <CakeProphet> *automaton
07:21:55 <Sgeo_> We know of GoL replicators. That's a start
07:22:01 -!- Slereah has joined.
07:22:04 <pikhq> CakeProphet: It is possible that we live in an automaton.
07:22:16 <elliott_> CakeProphet: I don't see how that sounds strange
07:22:26 <CakeProphet> ...platonists.
07:22:30 <elliott_> what
07:22:31 <pikhq> (whether or not we *do* is, of course, an unanswered question ATM.)
07:22:33 <elliott_> this has nothing to do with platonism
07:22:40 <elliott_> we can model the universe FUCK NOW IT'S ABSTRACT HOW CAN LIFE EXIST ANY MORE
07:23:25 <CakeProphet> right, talking about life in a universe sounds fine to me. But talking about a physical entity on an abstract entity does not make any sense. Sure, we can model physical things with abstract things, but that does not mean they are one and the same.
07:23:35 <elliott_> you realise nobody is saying
07:23:38 <elliott_> what if humans were in a CA
07:23:39 <elliott_> we're saying
07:23:43 <elliott_> what if life emerged in a CA
07:24:02 <elliott_> or is life made out of a bunch of on-off squares unimaginable to you
07:24:09 <elliott_> in which case, WHOO boy let me tell you about these things called quarks
07:24:24 <Sgeo_> electrons aren't made of quarks
07:25:08 <CakeProphet> well no, I just tend to think of life as a physical occurence. Talking about intelligent or self-replication in an abstract model makes sense, yes.
07:25:09 <elliott_> Sgeo_: sorry ill adjust all my jokes for accuracy in future
07:25:13 <CakeProphet> *intelligence
07:25:29 <elliott_> CakeProphet: what is not "physical" about a CA
07:25:37 <elliott_> is it because it's two-dimensional
07:25:58 <Sgeo_> elliott_, didn't you like the mathematical universe hypothesis once?
07:26:06 <elliott_> how is that relevant
07:26:11 <elliott_> this has nothing to do with platonism or anything
07:26:16 <CakeProphet> no, it's because it is a thing that only exists in our minds. I suppose it has a physical existence in our universe, but it's purely a neurological thing and not an actual 2D grid in our universe.
07:26:39 <elliott_> you do seriously realise you're making no sense at this point?
07:26:44 <CakeProphet> no.
07:26:49 <elliott_> imagining physical life in a CA is no different to imagining a physical cylinder in an imaginary three dimensional world
07:26:58 <elliott_> and saying you cant imagine a cylinder because IT;S JUST NEUROLOGICAL ...
07:27:04 <elliott_> justn o
07:27:07 <elliott_> [asterisk]just no
07:27:21 <elliott_> there is nothing non-physical about the cylinder, or the life
07:27:48 <pikhq> CakeProphet: Boy, I bet you'd love you some solipsism.
07:28:06 <CakeProphet> hmmm, how to word what I am saying.
07:28:43 <CakeProphet> you can imagine physical things, sure. You can also imagine abstract things, because that is how they come to be in the first place. But I don't see how you can imagine a physical thing in an abstract system where it doesn't belong.
07:29:12 <CakeProphet> but yes, I understand what Sgeo_ means by "life" in a CA now.
07:29:17 <elliott_> ok so what makes imagining a cylinder a physical thing, and imagining CA cells not a physical thing
07:29:22 <elliott_> is it because a CA is discrete? two-dimensional?
07:29:30 <elliott_> what makes an imagination of an object in a world physical or abstract
07:30:07 <CakeProphet> well a cylinder is also an abstract object...
07:30:20 <elliott_> ok so if i imagine my room
07:30:23 <elliott_> that's physical, right?
07:30:32 <CakeProphet> well, no. it's not like that.
07:30:38 <elliott_> what is imagining something physical, then?
07:31:20 <CakeProphet> but if you imagine your room, then it can fit together into other imaginings that correspond to the system it resides in. I suppose that means three-dimensional, yes. Since when imagining things, you could also imagining that your room can now fly, or something.
07:31:32 <CakeProphet> *imagine
07:31:47 <elliott_> did you really think all of this the first time you got confused by someone saying life or are you just trying to justify it after the fact because that sentence makes literally no sense
07:31:53 <elliott_> as far as an explanation as to how it's physical goes
07:31:57 <CakeProphet> it doesn't have to correspond to the physical world no. But it generally has to make sense to exist in the imagined environment.
07:32:02 <CakeProphet> elliott_: no this is all justification for your questions.
07:34:11 <CakeProphet> I was just trying to imagine a physical lifeform residing in a concept, and having trouble seeing how that would make sense. But yes, I can see how you can model life in a CA.
07:34:44 <elliott_> i still have no idea how you are defining physical and concept
07:34:50 <CakeProphet> but when you talk about sentient beings "living" in a CA, doesn't make sense to me.
07:34:51 <elliott_> what makes a CA a concept and our universe a physical thing
07:36:00 -!- monqy has quit (Quit: hello).
07:36:01 <CakeProphet> different categories of knowledge I suppose. This is a tricky thing for me to try to explain. It's probably an intuitive notion to a degree.
07:36:39 <elliott_> is Minecraft physical in this sense or a concept
07:36:42 <elliott_> can you imagine living in Minecraft
07:37:45 <CakeProphet> I can imagine living in Minecraft, but I could not actually live in Minecraft. Also, to be an accurate representation of Minecraft, I would have to conform to Minecraft physics.
07:37:53 <CakeProphet> i.e. I would have to be made of large blocks.
07:38:27 <elliott_> is Minecraft physical in this sense or a concept
07:38:31 <CakeProphet> but that isn't strictly true. I could just be superimposed in Minecraft world, but then it corresponds less to the actual Minecraft world (which is also a concept)
07:38:33 <elliott_> is Minecraft physical in this sense or a concept
07:38:36 <elliott_> that's the important question
07:38:42 <elliott_> ok, so it's a concept
07:38:43 <elliott_> so basically
07:38:48 <elliott_> something is physical if it's literally identical to this universe
07:38:53 <elliott_> and a concept otherwise
07:38:56 <CakeProphet> of course.
07:39:02 <elliott_> and you can only talk about physical things living in this universe
07:39:09 <elliott_> ok, great, that's totally a thing that makes no sense at all
07:39:14 <CakeProphet> no, you can talk about anything you want.
07:39:38 <elliott_> totally can't imagine referring to something physical living in a world that's exactly like the earth, but flattened out and repeated forever, with an infinitely high sky and an infinitely deep (tiled) underground
07:39:40 <elliott_> NOPE
07:39:44 <elliott_> that's an abstract concept
07:39:45 <elliott_> just zeroes and ones
07:40:10 <CakeProphet> it seemed that Sgeo was talking about some actual species of life living on a CA, and the possibility that something could exist. Perhaps I misunderstood.
07:40:34 <elliott_> what do you mean "something could exist"
07:41:37 <CakeProphet> er, typo. s/something/they/
07:42:00 <pikhq> I think I'm going to have some fun here...
07:42:05 <pikhq> CakeProphet: Prove to me the universe exists.
07:42:11 <CakeProphet> No thanks.
07:42:20 <elliott_> CakeProphet: exist as in physically?
07:42:24 <pikhq> But I think you're just a concept!
07:42:32 <CakeProphet> elliott_: well, that's what I was thinking at the time.
07:42:35 <elliott_> CakeProphet: can you imagine simulating a CA on a computer and an intelligent species of life arising
07:42:43 <elliott_> (consider periodic injections of random blocks)
07:42:50 <elliott_> (timeframe irrelevant)
07:43:19 <elliott_> i really think this is just a case of you not having a good enough imagination to imagine life existing in a CA. or you're just not applying it. i honestly cannot see what distinction you are trying to make between physical and abstract at all.
07:43:45 <pikhq> elliott_: He can't even prove there is such a thing as "physical". :)
07:43:59 <CakeProphet> not a species in the typical sense, no. I can imagine intelligence emerging on a CA, and even being closed into a particular homeostatic pattern.
07:44:34 <CakeProphet> pikhq: I just don't want to get into epistemology :P
07:44:34 <elliott_> you realise species is just... a specific type of life
07:44:43 <elliott_> OE SHITE ITS NOT IDENTICAL TO EARTH LIFE IT CANT BE A SPECIES
07:44:46 <elliott_> seriously this is so stupid
07:45:25 <CakeProphet> it's just semantics, dude. I said it's not a typical species.
07:45:28 <CakeProphet> which is pretty true.
07:45:32 <pikhq> CakeProphet: What I was trying to get you to realise is that your distinction presumes that there is such a thing as "physicalness", even though it is entirely possible that there is not.
07:45:32 <elliott_> everything is semantics
07:45:34 <CakeProphet> since it's atypical to what is typical to us.
07:45:42 <pikhq> CakeProphet: We could ourselves be in a simulation.
07:45:43 <elliott_> you're the one being a pedant about what a species is here
07:45:46 <CakeProphet> is that an unreasonable statement?
07:45:48 <pikhq> Or someone's hallucination.
07:46:00 <CakeProphet> pikhq: yes, see, this is why I didn't want to get into that. :P
07:46:21 <pikhq> Trying to pretend that this world is special in a way that an interesting cellular automaton is not is, well, utterly pointless.
07:46:26 -!- iamcal has quit (Remote host closed the connection).
07:46:36 -!- iamcal has joined.
07:47:01 <pikhq> What, "I didn't want to be shown stupid"?
07:47:15 <elliott_> oh shut up both of you
07:47:23 <CakeProphet> pikhq: I didn't. I simply misunderstood what Sgeo was saying. I was maintaining a distinction between unrelated concepts. In particular, "physical life" and "cellular automaton"
07:47:44 <pikhq> Pointless distinction.
07:47:50 <CakeProphet> pikhq: okay.
07:47:59 <pikhq> And quite plausibly not even well-founded.
07:48:10 <CakeProphet> pikhq: probably not. Since, after all, we can't know anything.
07:48:16 <elliott_> oh my god
07:48:22 <pikhq> Oh, we can know lots of things.
07:48:24 <elliott_> please someone else say something
07:48:26 <elliott_> anyone
07:48:39 <elliott_> Lymee: feel like talkin'???
07:48:44 <elliott_> coppro: hows about the good man here do you want to say words
07:48:47 <elliott_> anyone
07:49:04 <pikhq> elliott_: Bird's the word.
07:49:11 <elliott_> i said someone else
07:50:00 <CakeProphet> I didn't really intend to start any sort of argument.
07:51:26 <CakeProphet> actually, what I was originally talking about wasn't even remotely philosophical.
07:53:01 -!- Vorpal has joined.
07:53:57 <CakeProphet> elliott_: if you want to change subjects, we could always talk about the semantics of Perl. >:D >:D >:D >:D
07:55:43 <elliott_> i am going to officially strike today from the log record it is too bad
07:56:06 -!- elliott_ has quit (Remote host closed the connection).
07:56:26 <Vorpal> <elliott_> i am going to officially strike today from the log record it is too bad
07:56:29 <Vorpal> wait what
07:56:34 * Vorpal checks the log
07:56:34 -!- elliott has joined.
07:56:46 * Vorpal reads the log
07:57:00 <elliott> dont
07:57:03 <Vorpal> elliott, why
07:57:07 <elliott> just don't
07:57:19 <Vorpal> elliott, give me a good reason not to
07:57:37 <CakeProphet> because I am talking a lot in it.
07:57:54 <Vorpal> CakeProphet, why, elliott doesn't hate you does he?
07:57:59 <CakeProphet> no.
07:58:02 <CakeProphet> well...
07:58:07 <CakeProphet> I don't know, ask him.
07:58:10 <CakeProphet> not my place to say.
07:58:24 <elliott> i don't
07:58:25 <elliott> Vorpal: unrelatedly, see /msg
07:58:26 <CakeProphet> but I doubt it.
08:03:06 <pikhq> Wow. RCA made a car record player.
08:03:34 <pikhq> Only did 45s, but hey.
08:04:50 <CakeProphet> elliott: do you have anything in your strife specibus at the moment?
08:05:58 <CakeProphet> I have a can of orange Fanta, which I will pretend is Faygo.
08:06:26 <elliott> pretend to be fictional characters in a webcomic irc event 2011
08:22:24 -!- MigoMipo has joined.
08:35:19 <elliott> ?info ShowS
08:35:20 <lambdabot> ShowS
08:35:22 <elliott> grr
08:35:25 <elliott> ?src ShowS
08:35:26 <lambdabot> type ShowS = String -> String
08:36:38 <elliott> ?pl f (\s -> g (\t -> k (s.t)))
08:36:39 <lambdabot> f (g . (k .) . (.))
08:36:43 <elliott> ?pl (\s -> g (\t -> k (s.t)))
08:36:44 <lambdabot> g . (k .) . (.)
08:36:47 <elliott> ?pl g (\t -> k (s.t))
08:36:47 <Sgeo_> Seems like someone else had the same idea I did
08:38:14 -!- aloril has quit (Ping timeout: 246 seconds).
08:39:18 <elliott> (%%)
08:39:18 <elliott> :: (((b -> c) -> t1) -> t)
08:39:18 <elliott> -> (((a -> b) -> t2) -> t1)
08:39:18 <elliott> -> ((a -> c) -> t2)
08:39:18 <elliott> -> t
08:39:34 <elliott> ?hoogle (((b -> c) -> t1) -> t) -> (((a -> b) -> t2) -> t1) -> ((a -> c) -> t2) -> t
08:39:34 <lambdabot> No results found
08:41:02 <Sgeo_> This does not.... look reversible
08:44:20 <Deewiant> ?djinn (((b -> c) -> t1) -> t) -> (((a -> b) -> t2) -> t1) -> ((a -> c) -> t2) -> t
08:44:21 <lambdabot> f a b c = a (\ d -> b (\ e -> c (\ f -> d (e f))))
08:44:37 <Deewiant> ?. pl djinn (((b -> c) -> t1) -> t) -> (((a -> b) -> t2) -> t1) -> ((a -> c) -> t2) -> t
08:44:37 <lambdabot> f = (. ((. ((. (.)) . (.))) . (.))) . (.)
08:44:53 <elliott> Deewiant: hahaha, WOW
08:44:57 <elliott> that's beautiful
08:47:32 <elliott> Deewiant: unfortunately i'm having trouble simplifying the type down
08:47:36 <elliott> (making it less general)
08:49:44 <Sgeo_> HOW DOES IT EVEN MAKE SENSE FOR A UNIVERSE OPERATING BY REVERSIBLE RULES THAT WAS ACTIVE TO BECOME STATIC
08:50:07 <Sgeo_> I'm going to assume that either I installed this rule improperly, or the person who made it is an idiot
08:50:11 -!- adamfyre has joined.
08:50:34 -!- adamfyre has quit (Client Quit).
08:52:21 -!- aloril has joined.
09:02:05 -!- azaq23 has quit (Quit: Leaving.).
09:05:34 <elliott> *Data.Format> format (str "List:" %% each (str " " %% showable)) [9,0,9]
09:05:35 <elliott> excellent
09:07:42 <elliott> ?src intercalate
09:07:42 <lambdabot> intercalate xs xss = concat (intersperse xs xss)
09:09:52 <elliott> ?pl \x r -> f (. r) x
09:09:53 <lambdabot> flip (f . flip (.))
09:11:47 -!- Slereah has quit (Ping timeout: 240 seconds).
09:19:54 -!- oerjan has joined.
09:23:17 <elliott> hi oerjan
09:23:52 <oerjan> hello
09:24:13 <oerjan> <Sgeo> https://docs.google.com/document/pub?id=18eLRRmojIXEU36uad7lW7XwRRGEKFvjiYV6pS3-UF-4 well, this is intuitive as mud.
09:24:26 <oerjan> well, _i_ thought it was obvious
09:24:32 * oerjan cackles evilly
09:26:09 <elliott> oerjan: later on: discover that sgeo thought reversibility = time symmetry
09:27:45 <oerjan> oh? well all CAs are time symmetric.
09:27:59 <oerjan> (for the symmetry of adding one tick, anyway)
09:28:15 <oerjan> <quintopia> therefore, the universe is not reversible
09:28:26 <oerjan> I DO NOT THINK THIS IS GENERALLY AGREED UPON
09:31:52 <elliott> i thought that too :)
09:32:10 <elliott> this channel seems to constantly see us authoritatively stating absolute bullshit. :D
09:35:04 <elliott> oerjan: i am having typeclass problems :(
09:35:46 <oerjan> typical
09:36:21 <oerjan> well just rejoice in the fact ghc now allows equations in superclass contexts, maybe that solves your problem
09:37:13 <elliott> oerjan: i saw that :)
09:37:16 <elliott> oerjan: but no, no it does not
09:37:27 <elliott> oerjan: it's a problem with a too-polymorphic instance not getting recognised, I think
09:37:36 -!- augur has quit (Remote host closed the connection).
09:37:37 <elliott> i.e. it's saying "no instance for (more specific thing despite me having a more general instance)"
09:37:41 <elliott> this is where flexibleinstances leads :(
09:37:47 <elliott> the worst thing is, I seem to _recall_ this working prior
09:37:55 <elliott> what did I do differently...
09:37:55 <oerjan> aww
09:38:21 <elliott> actual sympathy :O
09:38:23 <elliott> thank you
09:39:45 <coppro> elliott: No one in this channel ever authoritatively states absolute bullshit.
09:39:57 <elliott> coppro: You're funny.
09:40:02 <elliott> O H S N A P
09:40:43 <coppro> I fear what would happen if elliott and I were to meet
09:40:54 <elliott> bloodshed
09:41:06 <elliott> right after you start defending C++
09:41:07 <oerjan> some explosion involving gamma rays
09:41:17 <elliott> i didn't specify the kind of bloodshed
09:41:22 <coppro> elliott: nah, you're free to attack C++
09:41:31 <elliott> coppro: yeah, but you're not free to defend it
09:41:45 <coppro> elliott: but I'll defend to the death your right to.. wait
09:42:04 <elliott> mwahahaha
09:43:18 <elliott> oerjan: now i wonder if you're sympathetic enough to try and _fix_ it...
09:43:21 <elliott> btw i fixed my space leak :D
09:43:44 <elliott> the problem was that i was binding the zip, rather than zipping it all at once and _then_ binding
09:44:39 <oerjan> I C
09:44:45 <coppro> elliott: what are you writing?
09:45:00 <elliott> coppro: two different things
09:45:20 <coppro> what are they?
09:45:21 <elliott> The space leak was in my work-in-progress wc.hs, which is an attempt to write a wc that has feature-parity with GNU wc and is much, much faster
09:45:44 <elliott> (I already have something that does the basic byte-only wc quite a bit faster than GNU wc with multibyte disabled)
09:46:00 <elliott> (It fails a bit at word-counting, but what it does instead is as expensive, so it's a fair win :))
09:46:09 <elliott> While also being readable and clean
09:46:16 <elliott> So far I'm succeeding excellently
09:48:07 <elliott> No instance for (Format (Formatter r0 (a1 -> r0)) String a0)
09:48:07 <elliott> arising from a use of `format'
09:48:10 <elliott> OJFDOIJGOGDOFJG
09:48:59 <oerjan> yo dawg i heard you like to format
09:50:16 <elliott> oerjan: this is me attempting to generalise my (stolen the idea from somewhere -- I forget where) type-safe formatting combinators to something hackageable
09:50:20 <elliott> i.e., type-safe printf
09:50:31 <CakeProphet> elliott: do you recommend iteratee for regex processing?
09:51:08 <elliott> oerjan: i.e. format ("Elements: " %% str %% eachJoin ", " str) ["a", "b", "c"]
09:51:15 <elliott> CakeProphet: what?
09:52:48 <CakeProphet> What would help me write a regex interpreter/compiler in Haskell?
09:53:01 <CakeProphet> aside from Parsec...
10:01:58 <elliott> http://pastebin.com/f12c043e1 meanwhile, some ocaml code i wrote in early 2009
10:11:50 -!- augur has joined.
10:13:47 <CakeProphet> In February 2011, Cage claimed to have created a new method of acting he calls Nouveau Shamanic. He claims to have used the acting style throughout his career and one day plans to write a book about the method.[citation needed]
10:14:25 <CakeProphet> vandalism? or hilarious reality?
10:14:33 <CakeProphet> I hope it's the latter.
10:15:48 <elliott> googling suggests it used to be cited
10:15:51 <elliott> probably with a bad citation
10:18:36 <CakeProphet> I'm such a Homestuck fanboy that I might buy a godhoodie..
10:19:03 <elliott> yeah, um, the fanboy thing wears off a little after a week or so.
10:19:19 <elliott> i would have bought the hero of breath hoodie if it had the stupidly long hood :)
10:19:45 <CakeProphet> nah, that would be silly..
10:20:45 <CakeProphet> I mean, it would be awesome, but I would get strange looks when walking around in public.
10:21:10 <elliott> you don't anyway?
10:21:13 <CakeProphet> also, it would probably be way more expensive.
10:21:20 <elliott> it's already expensive :D
10:21:20 <CakeProphet> no. :P
10:21:34 <elliott> ah, then i diagnose you with boring normal person disorder
10:22:07 <CakeProphet> nah, I'm just incognito.
10:22:47 <CakeProphet> though I fail pretty well at that actually.
10:22:59 <CakeProphet> maybe I do get weird looks? I'm not sure actually.
10:23:13 <elliott> you could make it certain by making your own ridiculous godhood
10:23:34 <augur> happy Turing day! \o/
10:23:34 <myndzi> ¦
10:23:35 <myndzi> ´¸¨
10:23:57 <elliott> fag
10:24:00 <elliott> hahahaa c wut i did thar
10:24:03 <elliott> im so funny and edgy
10:24:10 <augur> edgy is for hipsters
10:24:11 <augur> you hipster
10:24:19 <elliott> wwhatevver
10:28:00 <oerjan> :t Cont
10:28:01 <lambdabot> Not in scope: data constructor `Cont'
10:28:10 <oerjan> :t Control.Monad.Cont
10:28:11 <lambdabot> Not in scope: data constructor `Control.Monad.Cont'
10:28:16 <oerjan> :t runCont
10:28:17 <lambdabot> forall r a. Cont r a -> (a -> r) -> r
10:29:01 <elliott> oerjan: yeah yeah
10:29:14 <elliott> oerjan: tempting only in that it could make (f %% g) k = f $ \s -> g $ \t -> k (s . t)
10:29:14 <elliott> less ugly
10:32:09 <oerjan> :t let (f %% g) k = f $ \s -> g $ \t -> k (s . t) in (%%)
10:32:10 <lambdabot> forall a b b1 b2 (f :: * -> *) t. (Functor f) => (((a -> b) -> b1) -> b2) -> ((f a -> t) -> b1) -> (f b -> t) -> b2
10:32:20 <oerjan> dammit
10:32:26 <oerjan> :t let (f %% g) k = f $ \s -> g $ \t -> k (s Prelude.. t) in (%%)
10:32:27 <lambdabot> forall b c b1 b2 a t. (((b -> c) -> b1) -> b2) -> (((a -> b) -> t) -> b1) -> ((a -> c) -> t) -> b2
10:32:51 <oerjan> maybe too much switching of the final type
10:33:18 <elliott> oerjan: eh?
10:33:39 <elliott> ?mtl (ShowS -> r) -> a
10:33:39 <lambdabot> Maybe you meant: ft map msg pl unmtl url
10:33:44 <elliott> damn
10:36:12 <elliott> oerjan: overloadedstrings or TYPECLASS???///
10:37:41 <elliott> 21:26:16: <AnMaster> <oerjan> kerlo: i hear "assume a spherical cow" is well-known <-- spherical copy on write?
10:37:41 <elliott> 21:26:17: <AnMaster> wth
10:39:53 <elliott> 22:11:06: <oerjan> <ehird> sprintf has one of those stupid collapsing '_a types
10:39:53 <elliott> 22:11:12: <oerjan> value restriction?
10:39:53 <elliott> 22:11:33: <ehird> yeah what is that thing
10:39:54 <elliott> oerjan: :D
10:41:54 <oerjan> HAH I WAS RIGHT
10:42:05 <oerjan> but you are saying it's working now?
10:43:02 <elliott> oerjan: i'm saying it's not ocaml any more :D
10:43:06 <elliott> 22:25:05: <oerjan> <ehird> snot a very good name
10:43:06 <elliott> 22:25:21: <oerjan> i shall have you hear from my lawyer!
10:43:06 <elliott> :(
10:43:49 <oerjan> once i get the money to pay him, anyway
10:43:51 <elliott> 23:04:40: <ehird> we should genetically modify humans to just breed breed breed
10:43:51 <elliott> 23:04:43: <ehird> and get infinite humans
10:43:51 <elliott> 23:04:45: <ais523> ehird: no we shouldn't
10:43:58 <elliott> good advice hour with ais523
10:46:37 <elliott> oerjan: oh, heh, i originally did this in oh-eight
10:47:52 <oerjan> http://caml.inria.fr/pub/papers/garrigue-value_restriction-fiwflp04.pdf might be relevant. annoyingly it doesn't have a proper date...
10:48:41 <elliott> 00:57:56: <ehird> (%) (FormatterInt f) (FormatterInt g) =
10:48:41 <elliott> 00:57:57: <ehird> FormatterInt (\k r -> f (g k) r)
10:48:41 <elliott> huh what...
10:52:11 <elliott> 22:22:18: <oerjan> i don't play any games more violent than FreeCiv
10:52:11 <elliott> 22:22:36: <Slereah_> I don't play any game more violent than Postal 2.
10:52:11 <elliott> 22:22:46: <Slereah_> But only because I haven't found any so far.
10:55:52 -!- elliott has quit (Remote host closed the connection).
10:56:21 -!- elliott has joined.
11:01:31 <CakeProphet> reverse is O(n) in Haskell right?
11:01:36 <CakeProphet> for [a]
11:01:52 <oerjan> yes
11:02:12 <CakeProphet> hmmm okay.
11:02:38 * CakeProphet is trying to decide what data structure to use for a look-back buffer in a regex interpreter.
11:02:43 <elliott> zipper
11:02:44 <elliott> always zippers
11:02:56 <oerjan> they're so zippy
11:03:59 <elliott> Could not deduce (r ~ (s -> s))
11:03:59 <elliott> from the context (Monoid s)
11:04:00 <elliott> crying
11:04:06 <CakeProphet> I guess that would work.
11:05:49 -!- Tritonio_GR has quit (Quit: Leaving).
11:06:07 <CakeProphet> I'd like to have infinite look-back somehow/
11:07:08 <CakeProphet> it would be easy if look-back patterns were in reverse. Because then I could just construct a reverse list of previous characters.
11:07:28 <CakeProphet> but that sounds silly..
11:08:33 <CakeProphet> ah, I could execute the look-back pattern in reverse on a reversed buffer..
11:10:25 <CakeProphet> no, that would be extremely complicated.
11:13:53 <CakeProphet> I think infinite-lookback is just going to be complicated, and I'll worry about it later.
11:16:01 <elliott> oerjan: gah, why do flexible instances simply never work?
11:16:04 <elliott> instance IsString (Formatter r r) where
11:16:10 <elliott> *Text.Format> format "a"
11:16:10 <elliott> <interactive>:1:8:
11:16:10 <elliott> No instance for (IsString (Formatter String a0))
11:16:23 <elliott> it is so stupid :(
11:16:26 <elliott> format "a" :: IsString (Formatter String a) => a
11:19:42 <oerjan> well does format "a" :: String work?
11:20:38 <oerjan> elliott: ^
11:20:46 <elliott> oh hm, it does
11:20:54 <elliott> but
11:20:56 <elliott> foo :: Int -> Int -> String
11:20:56 <elliott> foo = format (showable % " " % showable)
11:20:56 <elliott> doesn't
11:20:58 <elliott> making it useless
11:21:01 <elliott> Text/Format.hs:29:26:
11:21:01 <elliott> No instance for (IsString
11:21:01 <elliott> (Formatter (a0 -> String) (Int -> String)))
11:22:06 <oerjan> so basically it cannot deduce what a0 is
11:23:47 <CakeProphet> What other behavior are you going for besides simply interpolating the string produced by show?
11:24:41 <elliott> have you ever used printf
11:25:00 <cheater_> i have always wanted to
11:25:06 <cheater_> but it never came to it
11:25:23 <cheater_> years later, i am still sad about the fact that i hadn't taken the chance
11:25:34 <CakeProphet> elliott: number formatting, padding, etc?
11:25:37 <cheater_> it is one of the big failures of my life.
11:25:44 <CakeProphet> couldn't you just use functions for those?
11:26:01 <elliott> CakeProphet: what do you think i am doing
11:26:06 <elliott> anyway, (++) is slow
11:27:07 <CakeProphet> How can you get around not using ++?
11:27:58 <elliott> see shows
11:28:12 <elliott> ?type shows
11:28:14 <lambdabot> forall a. (Show a) => a -> String -> String
11:28:15 <elliott> ?src ShowS
11:28:15 <lambdabot> type ShowS = String -> String
11:28:25 <elliott> > (shows 9 . shows 0) ""
11:28:29 <lambdabot> mueval-core: Time limit exceeded
11:28:31 <elliott> > (shows 9 . shows 0) ""
11:28:33 <lambdabot> "90"
11:29:15 <CakeProphet> ah, fancy.
11:30:06 <CakeProphet> > (shows 9 . shows 0) "a"
11:30:08 <lambdabot> "90a"
11:30:59 <CakeProphet> that's still a concatenation though.
11:31:20 <CakeProphet> > (shows 900000000000000 . shows True) ""
11:31:22 <lambdabot> "900000000000000True"
11:32:36 <elliott> CakeProphet: it is not a (++)
11:33:36 <CakeProphet> so it's magic?
11:34:04 <elliott> no.
11:36:08 -!- FireFly has joined.
11:36:17 <oerjan> CakeProphet: it has much better complexity, because you aren't _nesting_ ++ 's
11:37:25 <oerjan> and especially not in the left argument
11:37:36 <Deewiant> CakeProphet: Think about left vs right associative ++
11:39:04 <Deewiant> One is linear in the length of the result, the other quadratic
11:40:22 <oerjan> > foldl' (++) $ replicate 1000 "a"
11:40:23 <lambdabot> Overlapping instances for GHC.Show.Show
11:40:23 <lambdabot> ([[[GH...
11:40:27 <oerjan> er
11:40:32 <oerjan> > foldl' (++) "" $ replicate 1000 "a"
11:40:34 <lambdabot> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
11:40:37 <oerjan> um
11:40:44 <oerjan> > foldl' (++) "" $ replicate 100000 "a"
11:40:49 <lambdabot> mueval-core: Time limit exceeded
11:40:56 <oerjan> > foldr (++) "" $ replicate 100000 "a"
11:40:58 <lambdabot> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
11:41:26 <oerjan> > legnth $ foldl' (++) "" $ replicate 100000 "a"
11:41:27 <lambdabot> Not in scope: `legnth'
11:41:31 <oerjan> > length $ foldl' (++) "" $ replicate 100000 "a"
11:41:35 <lambdabot> mueval-core: Time limit exceeded
11:41:40 <Deewiant> And that one's lazier, too :-P
11:41:43 <CakeProphet> right, but how does shows work faster than right-associative ++?
11:41:43 <oerjan> > length $ foldr (++) "" $ replicate 100000 "a"
11:41:45 <lambdabot> 100000
11:42:31 <elliott> FUCK MONAD TRANSFORMERS THEY DO AWAY WITH MY SOCKAGES
11:43:01 <elliott> oerjan: YOU'RE A CARPAL TUNNEL
11:43:08 <oerjan> wat
11:43:26 <elliott> REAAAAAAAAAAAERARGAHERGHJRGHGH
11:43:48 <Deewiant> CakeProphet: It doesn't, it's just that typical incremental uses end up being left-associative unless you use something like ShowS
11:44:02 -!- Tritonio has joined.
11:44:20 <CakeProphet> ah, I see.
11:44:35 <elliott> he;lp i got lost in okmij.org
11:44:38 <CakeProphet> is there something like shows, without the application of show?
11:44:49 <CakeProphet> say you're only working with strings and don't want the double quotes.
11:44:51 <oerjan> elliott has now left us for the type system
11:45:05 <Deewiant> CakeProphet: Data.DList
11:45:28 <oerjan> CakeProphet: um (++) is perfectly fine for prepending a single string :P
11:45:47 <oerjan> so, the answer is (++), really
11:45:53 <Deewiant> dlist on Hackage IIRC
11:46:05 <elliott> oerjan: its like space
11:46:12 <elliott> <CakeProphet> is there something like shows, without the application of show?
11:46:17 <elliott> shows does not apply show
11:46:26 <elliott> show applies shows
11:46:27 <elliott> um wait what
11:46:33 <CakeProphet> > shows 9 "what?"
11:46:34 <lambdabot> "9what?"
11:46:44 <elliott> ?src show
11:46:45 <lambdabot> show x = shows x ""
11:46:53 <oerjan> elliott: there are defaults both ways, actually.
11:46:57 <CakeProphet> okay fine, you know what I meant though.
11:46:57 <elliott> oerjan: indeed
11:47:02 <elliott> oerjan: but in _good_ usage :D
11:47:08 <elliott> (for a show instance that isn't just constant strings, etc.)
11:47:21 <CakeProphet> :t reads
11:47:22 <lambdabot> forall a. (Read a) => String -> [(a, String)]
11:47:34 <elliott> Deewiant: oh, DList sucks :(
11:47:37 <elliott> Deewiant: only supports [a] collections
11:47:46 <elliott> i was gonna use it but I need ByteString, Text, etc. support too
11:49:33 <CakeProphet> so reads and shows are not really analogous.
11:49:36 <oerjan> CakeProphet: Read is inefficient, iirc. ghc defines some extra methods in the class to rectify this, i think
11:49:53 <oerjan> @src Read
11:49:54 <lambdabot> class Read a where
11:49:54 <lambdabot> readsPrec :: Int -> ReadS a
11:49:54 <lambdabot> readList :: ReadS [a]
11:49:54 <lambdabot> readPrec :: ReadPrec a
11:49:54 <lambdabot> readListPrec :: ReadPrec [a]
11:49:54 <Deewiant> You and your modern Haskell
11:50:12 <elliott> Deewiant: I have you down as a very modern person
11:50:25 <oerjan> i'm not sure that includes the extra methods
11:50:27 <Deewiant> Just use [a] like God intended
11:50:48 <elliott> Deewiant: It's mostly for HIGH-QUALITY purposes :)
11:50:58 <elliott> All Hackage packages must satisfy the Pokémon Theme Song requirement.
11:51:22 <elliott> I AM EVEN WONDERING HOW I CAN CALCULATE ESTIMATED LENGTHS TO PREALLOCATE A BYTESTRING
11:51:46 <CakeProphet> with numbers, probably.
11:52:15 <CakeProphet> I guess a computer would help too.
11:52:37 <elliott> Deewiant: "I decided to make it because I noted that much of the time of Coadjute was spent doing naïve list operations on sets of strings." You should have just used lists
11:52:45 * elliott DEDICATED TROLLER
11:53:42 <CakeProphet> What if Richard Stallman joined this channel right now? What would you do?
11:53:52 <elliott> annoy him until he goes away
11:54:53 <CakeProphet> Guido Von Rossum? Larry Wall? <insert pseudo-celebrity programmer>? Same protocol?
11:55:11 <CakeProphet> What if they had some awesome esolang ideas?
11:55:11 <elliott> GvR is an idiot, so same
11:55:27 <elliott> Larry Wall is a Christian missionary, so I'm legally obligated to annoy him on at least a daily basis even if I let him stay
11:57:31 -!- jix has quit (Ping timeout: 276 seconds).
12:03:40 <elliott> oerjan: hi can you get oleg on the phone i need his help
12:05:15 <elliott> oerjan: it is urgent
12:05:21 <elliott> oerjan: the type system has failed
12:06:05 -!- jix has joined.
12:06:46 -!- HackEgo has quit (Ping timeout: 244 seconds).
12:07:08 -!- MigoMipo has quit (Read error: Connection reset by peer).
12:07:48 -!- HackEgo has joined.
12:08:03 <elliott> 20:59:17: <RodgerTheGreat> ais523: why are you being such a spoilsport today? You're usually all over puzzles and the like
12:08:09 <elliott> ais gets so many people complaining about him :D
12:14:58 <CakeProphet> http://en.wikipedia.org/wiki/Zero_One_Infinity
12:15:04 <CakeProphet> this is so silly why does it even have a stupid name.
12:16:31 <elliott> do you have an actual criticism
12:16:59 <CakeProphet> it's a waste of nomenclature.
12:17:09 <CakeProphet> there is no reason for that to even be a name for something.
12:17:22 <elliott> what else do you want to call "zero one infinity"
12:17:33 <CakeProphet> nothing. it doesn't need a name.
12:17:50 <elliott> ok do you have an actual argument for that, there is pretty lively discussion on http://c2.com/cgi/wiki?ZeroOneInfinityRule after all and it's a decent rule of thumb
12:17:59 <elliott> or do you just not like its existence, should we never talk about it, would you like it to be taboo
12:18:50 <CakeProphet> I just don't see how it ever became a rule of thumb. I think it is more or less implied now...
12:19:08 <elliott> it is? please point me to a program with no arbitrary limits
12:19:08 <CakeProphet> in fact, I didn't even think there was a name for it, but I knew this was a good thing to do regardless.
12:19:13 <elliott> a non-trivial one
12:19:41 <elliott> anyway, we have names for things that should be assumed.
12:19:48 <elliott> like "not being a gigantic raging asshole".
12:19:59 <CakeProphet> uh, no program has no limits. I mean "if you are going to allow multiple elements, then allow an arbitrary number"
12:20:49 <elliott> what do you mean no program has no limits?
12:20:52 <elliott> and that is far from assumed
12:21:04 <elliott> plenty of people will cap something at six five five three six if they don't think anyone will need more than that
12:21:07 <elliott> saves dynamic allocation code
12:21:20 <elliott> so anyway
12:21:20 <elliott> "if you are going to allow multiple elements, then allow an arbitrary number"
12:21:22 <elliott> "zero one infinity"
12:21:25 <elliott> i wonder which one i would rather say
12:21:36 <CakeProphet> ugh. forget it.
12:22:06 <elliott> i'm open to being convinced if you have any actual arguments for why it shouldn't be a term, or evidence that it is, in fact, widely assumed
12:22:48 <CakeProphet> No. not everything is a fucking debate. It was a comment, about something that seemed to be yet another unnecessary software design term.
12:22:57 <CakeProphet> I am done.
12:23:22 <elliott> i've made no debate, it's just that you keep saying really stupid things that seem to be asking for a response in the form of agreement or whatever.
12:23:31 <elliott> should i not reply to any of your messages
12:25:47 <elliott> that's a serious question
12:27:27 <CakeProphet> No, I just dislike having to painstakingly back up everything I say with detailed evidence for why it is reasonable for me to like/dislike something, when all I am doing is simply commenting on the fact, whether you agree or disagree.
12:28:17 <elliott> you didn't say "this term seems silly to me", you just said "this is so silly why does it even have a stupid name". either way, if you're saying it on an irc channel, presumably you want some kind of response, or you'd just cat it into /dev/null.
12:28:21 <oerjan> elliott: idea, would instance (r ~ s) => IsString (Formatter r s) work better?
12:28:41 <elliott> CakeProphet: i apologise for disagreeing with your statement.
12:28:47 <elliott> oerjan: i'll try that
12:28:59 <elliott> oerjan: I would still prefer a Formatter solution, so I'll try adapting that to that first
12:29:26 <elliott> oerjan: nice, undecidableinsatnces time
12:29:43 <oerjan> eek
12:29:56 <elliott> meh, still the same problem, I will try with IsString
12:30:41 <elliott> oerjan: wow it works
12:30:46 <oerjan> woohoo!
12:33:55 <elliott> CakeProphet: dcc? wtf?
12:33:58 <CakeProphet> elliott: are you ready?
12:34:00 <CakeProphet> lol
12:34:09 <elliott> what was that, i instinctively rejected
12:34:37 <CakeProphet> I just needed to exceed some character limits for a moment in a /msg
12:34:53 <CakeProphet> or is that a different protocol? I can't remember.
12:34:56 <elliott> it is different
12:35:00 <elliott> i didn't see the message
12:35:51 <elliott> :t arr
12:35:52 <lambdabot> forall b c (a :: * -> * -> *). (Arrow a) => (b -> c) -> a b c
12:35:59 <elliott> oerjan: darn
12:36:05 <elliott> Formatter _almost_ looks like an arrow
12:36:08 <elliott> oerjan: wait, it is a Category
12:36:12 <elliott> (%) :: Formatter a b -> Formatter c a -> Formatter c b
12:36:13 <elliott> i think
12:36:37 <CakeProphet> elliott: no I believe if you accept I should be able to bombard you with massive amounts of text..
12:36:40 <CakeProphet> at that point.
12:36:47 <CakeProphet> this is what egobot does right?
12:36:48 <elliott> CakeProphet: i already rejected, so you'd need to try again
12:37:04 <elliott> i accepted
12:37:28 <oerjan> :t (<<<)
12:37:29 <lambdabot> forall (cat :: * -> * -> *) b c a. (Control.Category.Category cat) => cat b c -> cat a b -> cat a c
12:41:54 -!- cheater_ has quit (Ping timeout: 244 seconds).
12:44:03 <elliott> oerjan:
12:44:05 <elliott> foo :: (Show a) => [a] -> String
12:44:05 <elliott> foo = format ("List length: " % int <-- length %& "; elements: " % each showable)
12:44:55 <oerjan> ooh
12:45:41 <oerjan> does each put in a delimiter?
12:45:45 <elliott> <-- is just "map the formatter over a function"; %& means "repeat the formatting value I just used as the next one"
12:45:59 <elliott> oerjan: no, I plan an eachJoin that takes a zero-argument formatter to go in-between
12:46:05 <elliott> so you would say eachJoin " " showable
12:46:10 <elliott> although maybe it should just be called each
12:46:24 <elliott> the types are quite pretty
12:46:25 <elliott> (%&) :: Format a (b -> c) -> Format c (b -> a) -> Format c (b -> c)
12:46:34 <elliott> ?hoogle cat a (b -> c) -> cat c (b -> a) -> cat c (b -> c)
12:46:35 <lambdabot> No results found
12:46:43 <elliott> :(
12:48:23 <elliott> ?pl \k -> k (mappend s)
12:48:24 <lambdabot> ($ mappend s)
12:49:09 <elliott> oerjan: I am worried that I'm going to need a typeclass for pretty much every formatter if I support non-string types
12:49:36 <oerjan> hm
12:50:10 <elliott> instance (IsString s, Monoid s, r ~ a) => IsString (Format s r a) where
12:50:17 <elliott> I'm surprised _that_ works fine!
12:50:43 <elliott> oerjan: I'm kind of thinking that I really want "higher-order" formatters
12:50:53 <elliott> oerjan: so that each actually is a formatter that returns a /list/
12:50:57 <elliott> of whatever the formatter it's given does
12:51:00 <elliott> so you say
12:51:03 <elliott> join " " (each showable)
12:52:31 -!- Tritonio has quit (Quit: Leaving).
12:54:17 <elliott> oerjan: wow, id is really hard to write :D
12:54:36 <oerjan> IF YOU SAY SO
12:54:37 <elliott> ((s -> s) -> r) -> r
12:54:37 <elliott> oh wait
12:54:38 <elliott> no it isn't
12:56:20 <elliott> ?pl \f g k x -> f (\s -> g (\t -> k (s . t)) x) x
12:56:21 <lambdabot> flip flip id . ((flip . (ap .)) .) . (. ((flip .) . (. ((. (.)) . (.))) . (.))) . (.) . (.)
12:56:26 <elliott> oerjan: beautiful
12:56:39 <oerjan> flipping crazy
12:57:29 <Lymee> I think.... I need to study up on Haskell. a lot.
12:57:49 <elliott> :D
12:57:55 <elliott> its all in the dots
12:58:04 <CakeProphet> point-free style is so elegant.
12:58:21 <elliott> yep i just replaced my code with flip flip id . ((flip . (ap .)) .) . (. ((flip .) . (. ((. (.)) . (.))) . (.))) . (.) . (.)
12:58:31 <elliott> the best is definitely
12:58:52 <elliott> ?pl \f g k -> f (\s -> g (\t -> k (s . t))))
12:58:53 <lambdabot> (line 1, column 40):
12:58:53 <lambdabot> unexpected ")"
12:58:53 <lambdabot> expecting variable, "(", operator or end of input
12:58:54 <elliott> ?pl \f g k -> f (\s -> g (\t -> k (s . t)))
12:58:54 <lambdabot> (. ((. ((. (.)) . (.))) . (.))) . (.)
12:58:58 <elliott> (. ((. ((. (.)) . (.))) . (.))) . (.).
12:58:59 <elliott> yep.
13:00:04 <CakeProphet> amorphous nipple blob.
13:00:40 <Lymee> What do those dots even do?
13:00:41 <Lymee> o.o
13:00:46 <CakeProphet> function composition
13:01:55 <elliott> oerjan: each :: Format s (DL s) (a -> DL s) -> Format [s] r ([a] -> r)
13:01:56 <elliott> i think
13:02:23 <elliott> (DL s is s -> s)
13:02:28 <CakeProphet> !perl sleep and die while exists time
13:02:30 <EgoBot> exists argument is not a HASH or ARRAY element or a subroutine at /tmp/input.26055 line 1.
13:03:26 -!- oerjan has quit (Quit: O KAY).
13:03:45 <CakeProphet> apparently time does not count as a subroutine name.
13:04:34 <CakeProphet> !perl sleep for defined time
13:04:43 <CakeProphet> ...no need to die, I guess. good night.
13:05:16 <Lymee> CakeProphet, wtf does that do?
13:05:17 <Lymee> D:
13:05:46 <elliott> ?pl \k xs -> k (mappend (map (format f) xs)
13:05:46 <lambdabot> (line 1, column 40):
13:05:47 <lambdabot> unexpected end of input
13:05:47 <lambdabot> expecting variable, "(", operator or ")"
13:05:47 <elliott> ?pl \k xs -> k (mappend (map (format f) xs))
13:05:48 <lambdabot> (. (mappend . map (format f)))
13:05:54 <elliott> hm
13:06:04 <elliott> ?pl \xs -> k (mappend (map (format f) xs))
13:06:05 <lambdabot> k . mappend . map (format f)
13:06:28 <elliott> each showable :: Show a => Format [String] r ([a] -> r)
13:06:31 <elliott> :D
13:06:58 -!- elliott has left ("Leaving").
13:07:04 -!- elliott has joined.
13:07:34 <elliott> hmm
13:07:48 <elliott> ((s -> s) -> s) -> s
13:07:51 <elliott> heh
13:08:36 <elliott> ?src intercalate
13:08:37 <lambdabot> intercalate xs xss = concat (intersperse xs xss)
13:08:38 <elliott> ?src intersperse
13:08:38 <lambdabot> intersperse _ [] = []
13:08:39 <lambdabot> intersperse _ [x] = [x]
13:08:39 <lambdabot> intersperse sep (x:xs) = x : sep : intersperse sep xs
13:08:43 <elliott> ?hoogle intersperse
13:08:44 <lambdabot> Data.ByteString intersperse :: Word8 -> ByteString -> ByteString
13:08:44 <lambdabot> Data.List intersperse :: a -> [a] -> [a]
13:08:44 <lambdabot> Data.ByteString.Char8 intersperse :: Char -> ByteString -> ByteString
13:09:48 <Lymee> ?pl ((a + b) / c) * ((d * e) + f)
13:09:49 <lambdabot> (a + b) / c * (d * e + f)
13:09:55 <Lymee> ff
13:10:13 <Lymee> ?pl \a b c d e f -> ((a + b) / c) * ((d * e) + f)
13:10:14 <lambdabot> flip flip (((+) .) . (*)) . ((flip . (((.) . (.) . (.) . (*)) .) . (/)) .) . (+)
13:10:51 <elliott> *Text.Format> foo [0, 990, 0]
13:10:51 <elliott> "List length: 3; elements: 0, 990, 0."
13:11:36 <Lymee> ?pl \a b -> [a..b]
13:11:36 <lambdabot> enumFromTo
13:11:40 <Lymee> ....
13:11:48 <Lymee> elliott, how does ?pl work?
13:13:23 -!- BeholdMyGlory has joined.
13:14:51 <elliott> Lymee: see the code :P
13:22:43 <elliott> "like the other commenters who pointed out, this does not mean the passwords are stored in plain-text. we can only presume that they are encrypted with something like an MD5 algorithm (which is reversible)."
13:23:24 <Lymee> Link?
13:26:03 <elliott> lol
13:26:09 <elliott> why would you ant a link to an idiot
13:27:56 <Lymee> To see what they're talking about.
13:29:30 <elliott> oh my god
13:29:32 <elliott> nottetris is perfect
13:30:45 <Lymee> elliott, besides, MD5 is reversible with enough computing power.
13:30:54 <elliott> no it isnt
13:30:58 <elliott> there are infinite inputs for a single mdfive output
13:31:52 <elliott> well ok that kind of counts as reversible
13:31:55 <elliott> but not in the way they meant
13:33:49 <elliott> Lymee: but seriously go play nottetris right now
13:35:12 -!- cheater_ has joined.
13:40:37 -!- zzo38 has joined.
13:44:04 -!- Wamanuz2 has joined.
14:18:19 -!- Wamanuz3 has joined.
14:19:41 -!- cheater__ has joined.
14:19:44 -!- Wamanuz2 has quit (Ping timeout: 258 seconds).
14:20:23 -!- Wamanuz3 has quit (Read error: Operation timed out).
14:22:21 -!- cheater_ has quit (Ping timeout: 252 seconds).
14:22:37 <elliott> where's oerjan when you need him
14:25:13 -!- TOGoS has joined.
14:27:48 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:32:22 -!- cheater__ has quit (Ping timeout: 255 seconds).
14:35:33 -!- TOGoS has left.
14:45:19 -!- cheater__ has joined.
14:51:58 -!- jcp has quit (Ping timeout: 264 seconds).
14:53:08 -!- copumpkin has joined.
14:53:08 -!- copumpkin has quit (Changing host).
14:53:08 -!- copumpkin has joined.
14:55:51 -!- Lymee has changed nick to Rimii.
14:56:00 -!- jcp has joined.
14:57:03 -!- Rimii has changed nick to Lymee.
14:58:55 -!- cheater__ has quit (Ping timeout: 255 seconds).
15:00:51 <elliott> hmm, a snake isn't actually a list of positions, it's a list of turtle instructions
15:01:26 <elliott> ...plus a starting position
15:03:25 <elliott> ?src scanr
15:03:25 <lambdabot> scanr _ q0 [] = [q0]
15:03:26 <lambdabot> scanr f q0 (x:xs) = f x q : qs
15:03:26 <lambdabot> where qs@(q:_) = scanr f q0 xs
15:03:32 <elliott> :t scanr
15:03:33 <lambdabot> forall a b. (a -> b -> b) -> b -> [a] -> [b]
15:11:08 <elliott> *Main> snakePositions initialSnake
15:11:09 <elliott> fromListA [(1,2),(0,3),(2,2)]
15:11:12 <elliott> snake doesnt work like that
15:11:17 <elliott> oh wait I need scanl
15:11:23 <elliott> :t scanl
15:11:25 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> [a]
15:11:26 <elliott> ?src scanl
15:11:26 <lambdabot> scanl f q ls = q : case ls of
15:11:26 <lambdabot> [] -> []
15:11:27 <lambdabot> x:xs -> scanl f (f q x) xs
15:11:41 <Lymee> ?src map
15:11:42 <lambdabot> map _ [] = []
15:11:42 <lambdabot> map f (x:xs) = f x : map f xs
15:11:52 <Lymee> ?pl map f (x:xs) = f x : map f xs
15:11:53 <lambdabot> map = fix (flip flip tail . (ap .) . flip flip head . ((.) .) . liftM2 flip (((.) . (:)) .))
15:11:55 <elliott> :t scanl
15:11:56 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> [a]
15:11:57 <elliott> ?src scanl
15:11:57 <elliott> ?src scanl
15:11:57 <lambdabot> scanl f q ls = q : case ls of
15:11:57 <lambdabot> [] -> []
15:11:57 <lambdabot> x:xs -> scanl f (f q x) xs
15:11:58 <elliott> ?src scanl
15:11:58 <lambdabot> scanl f q ls = q : case ls of
15:11:58 <lambdabot> [] -> []
15:12:00 <lambdabot> x:xs -> scanl f (f q x) xs
15:12:02 <lambdabot> scanl f q ls = q : case ls of
15:12:04 <lambdabot> [] -> []
15:12:06 <lambdabot> x:xs -> scanl f (f q x) xs
15:13:21 <elliott> hmmm
15:14:03 <elliott> > foldr move (0,0) ['r','d','d','d'] where move 'u'(x,y)=(x,pred y);move 'd'(x,y) = (x,succ y); move 'l'(x,y) = (pred x,y); move 'r'(x,y) = (succ x,y)
15:14:04 <lambdabot> <no location info>: parse error on input `where'
15:14:13 <elliott> > let move 'u'(x,y)=(x,pred y);move 'd'(x,y) = (x,succ y); move 'l'(x,y) = (pred x,y); move 'r'(x,y) = (succ x,y) in foldr move (0,0) ['r','d','d','d']
15:14:14 <lambdabot> (1,3)
15:14:18 <elliott> > let move 'u'(x,y)=(x,pred y);move 'd'(x,y) = (x,succ y); move 'l'(x,y) = (pred x,y); move 'r'(x,y) = (succ x,y) in scanr move (0,0) ['r','d','d','d']
15:14:19 <lambdabot> [(1,3),(0,3),(0,2),(0,1),(0,0)]
15:14:25 <elliott> ugh
15:14:27 <elliott> > let move 'u'(x,y)=(x,pred y);move 'd'(x,y) = (x,succ y); move 'l'(x,y) = (pred x,y); move 'r'(x,y) = (succ x,y) in scanl move (0,0) ['r','d','d','d']
15:14:29 <lambdabot> Couldn't match expected type `GHC.Types.Char'
15:14:29 <lambdabot> against inferred type...
15:14:35 <elliott> > let move 'u'(x,y)=(x,pred y);move 'd'(x,y) = (x,succ y); move 'l'(x,y) = (pred x,y); move 'r'(x,y) = (succ x,y) in scanl (flip move) (0,0) ['r','d','d','d']
15:14:37 <lambdabot> [(0,0),(1,0),(1,1),(1,2),(1,3)]
15:14:41 <elliott> yay
15:14:42 <elliott> ?src scanl
15:14:43 <lambdabot> scanl f q ls = q : case ls of
15:14:43 <lambdabot> [] -> []
15:14:43 <lambdabot> x:xs -> scanl f (f q x) xs
15:14:48 <elliott> :t scanl
15:14:49 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> [a]
15:22:33 -!- cheater__ has joined.
15:31:38 -!- MigoMipo has joined.
15:33:50 <Lymee> ?pl let move 'u'(x,y)=(x,pred y);move 'd'(x,y) = (x,succ y); move 'l'(x,y) = (pred x,y); move 'r'(x,y) = (succ x,y) in scanl (flip move) (0,0) ['r','d','d','d']
15:33:50 <lambdabot> (line 1, column 10):
15:33:50 <lambdabot> unexpected "'"
15:33:50 <lambdabot> expecting pattern or "="
15:33:54 <Lymee> Aww.
15:34:01 <Lymee> I wanted to see how it would mutilate your code.
15:39:23 -!- elliott_ has joined.
15:39:23 -!- elliott has quit (Read error: Connection reset by peer).
15:44:25 -!- monqy has joined.
15:45:19 -!- NihilistDandy has quit (Quit: leaving).
15:45:27 <elliott_> hi monqy
15:49:23 <monqy> hi
15:49:59 <elliott_> i wish i knew what this data structure was called
15:50:12 -!- Wamanuz3 has joined.
15:50:19 <elliott_> i dont think its called accordion :(
15:53:20 -!- KingOfKarlsruhe has joined.
16:01:07 <elliott_> monqy do you know the name of this
16:01:40 -!- Wamanuz3 has quit (Read error: Operation timed out).
16:03:14 -!- Wamanuz3 has joined.
16:04:29 <Lymee> I propose a standard unit of Bullshit.
16:04:33 <Lymee> It is the "English"
16:04:41 <Lymee> Under this standard, PHP would be "50E"
16:05:39 <monqy> elliott_: is a description of the data structure in the logs
16:05:52 <elliott_> data Accordion a = End | Leaf a | Join a (Accordion a) a
16:05:53 <elliott_> there is now
16:06:13 <Lymee> ...
16:06:18 <elliott_> http://sprunge.us/cBHJ
16:06:23 <Lymee> Isn't that just a linked list?
16:06:38 <elliott_> no
16:06:42 <elliott_> look carefully at the last one
16:06:55 <Lymee> Ah.
16:07:01 <elliott_> monqy: i think it may be related to Data.Sequence but i'm not sure
16:07:07 <Lymee> So...
16:07:16 <Lymee> Wait, what?
16:07:19 <Lymee> I don't get it.
16:07:29 <monqy> from my glance it's a linked list of (a, a) but can end either in noting an end or an a
16:07:33 <monqy> er
16:07:39 <elliott_> monqy: the a on the right is at the _end_
16:07:40 <monqy> noting an end/nothing
16:07:46 <elliott_> so you can access the first and last elements immediately
16:07:50 <monqy> oh
16:07:52 <elliott_> second and second-last by descending one
16:07:52 <elliott_> etc.
16:07:56 <Lymee> elliott_, what are these for?
16:08:03 <elliott_> Lymee: representing a snake
16:08:15 <Lymee> lolwut
16:08:35 <elliott_> data Snake = Snake Direction Position (Accordion Direction) deriving (Show)
16:09:11 <Lymee> Ah
16:10:02 <elliott_> ooh, i could do it zipper style ... nah
16:10:09 <elliott_> ...but maybe
16:12:35 <monqy> so why do you need the reversed list to represent a snake?
16:13:49 <elliott_> monqy: because i both tail and append on it
16:16:52 <monqy> won't any sort of appending mess up one of your lists
16:16:57 <monqy> have to leave now
16:18:12 <elliott_> nope, it's all perfect
16:29:56 <zzo38> Do you know if programs compiled with LLVM can be linked with programs compiled with GCC?
16:40:05 -!- Wamanuz3 has quit (Ping timeout: 244 seconds).
16:41:13 -!- Phantom_Hoover has joined.
16:49:12 -!- Wamanuz3 has joined.
16:54:13 -!- Wamanuz4 has joined.
16:54:13 -!- Wamanuz3 has quit (Ping timeout: 258 seconds).
16:58:14 -!- augur has quit (Remote host closed the connection).
16:58:49 -!- Wamanuz4 has quit (Ping timeout: 258 seconds).
17:06:40 -!- zzo38 has quit (Quit: zzo38).
17:07:38 <elliott_> hi it is broken
17:12:17 -!- Slereah has joined.
17:12:29 -!- FireFly has quit (Read error: Connection reset by peer).
17:16:28 <Phantom_Hoover> @source scanl
17:16:28 <lambdabot> scanl not available
17:16:33 <Phantom_Hoover> @source scan
17:16:34 <lambdabot> scan not available
17:16:39 <elliott_> ?src scanl
17:16:40 <lambdabot> scanl f q ls = q : case ls of
17:16:40 <lambdabot> [] -> []
17:16:40 <lambdabot> x:xs -> scanl f (f q x) xs
17:21:31 <Lymee> ?src show
17:21:31 <lambdabot> show x = shows x ""
17:21:53 -!- choochter has quit (Read error: Connection reset by peer).
17:22:18 <Phantom_Hoover> Lymee, show will eventually just use a typeclass function, so you're not going to get anything useful that way.
17:22:18 <lambdabot> Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them.
17:22:28 -!- choochter has joined.
17:25:04 -!- augur has joined.
17:27:15 -!- FireFly has joined.
17:27:56 -!- MigoMipo has quit (Read error: Connection reset by peer).
18:13:16 <Sgeo_> "Square root of zero. Good luck with that."
18:13:50 <Sgeo_> http://www.reddit.com/r/geek/comments/i74yk/bob_sends_a_message_to_alice/c21ful3
18:16:51 -!- CakeProphet has quit (Ping timeout: 240 seconds).
18:40:19 -!- choochter has quit (Ping timeout: 255 seconds).
18:47:42 <newsham> phantom/lymee: you can show the source for a class.
18:47:45 -!- oerjan has joined.
18:48:18 <elliott_> oerjan
18:48:26 <elliott_> data Accordion a = End | Leaf a | Join a (Accordion a) a
18:48:26 <elliott_> what's it called
18:48:29 <elliott_> i think it's similar to Se
18:48:29 <elliott_> q
18:48:34 <elliott_> but the definition of Seq looks different
18:48:45 <oerjan> heh
18:49:12 <oerjan> well you can only add the same number to the beginning and end...
18:49:21 <elliott_> eh?
18:49:35 <elliott_> not true at all; it's isomorphic to [a]
18:49:40 <newsham> looks a little like a finger tree
18:49:44 <oerjan> elliott_: that is essentially just ([(a,a)],a)
18:49:47 <oerjan> or wait
18:49:49 <elliott_> newsham: Seq is based on finger trees, so...
18:49:54 <elliott_> oerjan: note that the a at the end is at the _end_
18:50:01 <elliott_> think of a weird space-time accordion
18:50:04 <elliott_> start and end are big
18:50:07 <elliott_> second and second-last are smaller
18:50:07 <elliott_> etc.
18:50:13 <elliott_> until the middle is really small
18:50:26 <elliott_> cons and snoc are O(n), though :)
18:50:26 <oerjan> elliott_: um my point is you have no way to remove the first without removing the last simultaneously, efficiently
18:50:30 <elliott_> oerjan: oh, right
18:50:37 <elliott_> yeah --
18:50:39 <elliott_> leftA :: Accordion a -> Maybe (a, Accordion a)
18:50:39 <elliott_> leftA End = Nothing
18:50:39 <elliott_> leftA (Leaf a) = Just (a, End)
18:50:39 <elliott_> leftA (Join a xs b) = Just (a, xs `addA` b)
18:50:40 <elliott_> rightA :: Accordion a -> Maybe (Accordion a, a)
18:50:42 <elliott_> rightA End = Nothing
18:50:45 <elliott_> rightA (Leaf a) = Just (End, a)
18:50:46 <elliott_> rightA (Join a xs b) = Just (a `joinA` xs, b)
18:50:48 <elliott_> where join/addA are O(n)
18:51:54 -!- augur has quit (Remote host closed the connection).
18:52:03 <oerjan> yeah.
18:52:34 <elliott_> oerjan: i guess it is just worse than Seq in every way :)
18:52:41 <oerjan> heh
18:52:47 <elliott_> it's just that taking the init of a Seq is ugly, you need the second-last element of the Seq that inits returns...
18:52:59 <elliott_> and it seems to not be O(one)
18:53:09 <elliott_> I'm storing a snake, you see, from the game
18:53:16 <elliott_> data Snake = Snake { snakeDirection :: Direction
18:53:16 <elliott_> , snakePosition :: Position
18:53:16 <elliott_> , snakeSegments :: Accordion Direction }
18:53:23 <elliott_> advance :: Snake -> Snake
18:53:23 <elliott_> advance (Snake d p ds) = Snake d (move d p) (tailA ds `addA` d)
18:53:35 <elliott_> then you can find all the blocks to draw by just starting with the position and inverting all the movements
18:54:17 <oerjan> elliott_: um init is just something like case rightview s of s' :> _ -> s'
18:54:28 <elliott_> oerjan: oh, duh >_<
18:54:39 <oerjan> (where i've forgotten the actual name of rightview)
18:55:42 <oerjan> and i believe that's a* O(1) where a* is the same word i couldn't remember a while ago :P
18:56:13 <oerjan> @hoogle viewr
18:56:14 <lambdabot> Data.Sequence viewr :: Seq a -> ViewR a
18:56:14 <lambdabot> Data.Sequence data ViewR a
18:56:33 <elliott_> amortised?
18:56:36 <oerjan> right
18:56:43 <elliott_> I guess I want Seq, then :)
18:56:50 <elliott_> ?hoogle Seq.scanl
18:56:50 <lambdabot> No results found
18:56:53 <elliott_> ?hoogle scanl
18:56:53 <lambdabot> Prelude scanl :: (a -> b -> a) -> a -> [b] -> [a]
18:56:54 <lambdabot> Data.ByteString scanl :: (Word8 -> Word8 -> Word8) -> Word8 -> ByteString -> ByteString
18:56:54 <lambdabot> Data.List scanl :: (a -> b -> a) -> a -> [b] -> [a]
18:57:08 <elliott_> scanlA :: (a -> b -> a) -> a -> Accordion b -> Accordion a
18:57:08 <elliott_> scanlA _ z End = Leaf z
18:57:08 <elliott_> scanlA f z (Leaf x) = Join (f z x) End z
18:57:10 <elliott_> scanlA f z (Join a xs b) = Join z xs' (f z' b)
18:57:12 <elliott_> where xs' = scanlA f (f z a) xs
18:57:14 <elliott_> Just (_, z') = rightA xs'
18:57:16 <elliott_> this is broken and i don't know why :)
18:57:36 <oerjan> elliott_: well Seq _should_ be Foldable, doesn't that have some scanl thing?
18:58:13 <elliott_> its in Data.Sequence
18:58:18 <oerjan> Traversable would also work
18:58:52 <oerjan> i mean, there should be a Foldable instance. i guess the modules may not be integrated (orphans and everything)
18:59:42 <newsham> http://www.haskell.org/ghc/docs/7.0.2/html/libraries/containers-0.4.0.0/Data-Sequence.html says Foldable and Traversable
18:59:53 <oerjan> good, good
19:00:08 <elliott_> advance :: Snake -> Snake
19:00:08 <elliott_> advance (Snake d p ds) = Snake d (move d p) (ds' |> d)
19:00:08 <elliott_> where ds' :> _ = Seq.viewr ds
19:00:10 <elliott_> grow :: Snake -> Snake
19:00:12 <elliott_> grow (Snake d p ds) = Snake d (move d p) (ds |> d)
19:00:14 <elliott_> what ugly duplication :(
19:00:30 <elliott_> *Main> snakePositions (grow initialSnake)
19:00:30 <elliott_> fromList [(1,0),(2,0),(3,0),(4,0),(3,0)]
19:00:32 -!- pikhq has quit (Quit: New kernel time).
19:00:32 <elliott_> not only that, it is broken
19:00:43 <elliott_> oh
19:00:48 <elliott_> no, it's not
19:00:50 <elliott_> well... it sort of is
19:03:17 -!- pikhq has joined.
19:05:24 <oerjan> elliott_: oh right, scanl _is_ in Data.Sequence
19:05:36 <oerjan> (which may be what you said)
19:05:42 <elliott_> yep
19:07:46 -!- augur has joined.
19:15:51 <oerjan> <elliott> where's oerjan when you need him
19:16:14 <oerjan> walking to the shop, or possibly already inside
19:18:23 <elliott_> carbon DIEoxide
19:18:24 <oerjan> <Lymee> ?pl let move 'u'(x,y)=(x,pred y);move 'd'(x,y) = (x,succ y); move 'l'(x,y) = (pred x,y); move 'r'(x,y) = (succ x,y) in scanl (flip move) (0,0) ['r','d','d','d']
19:18:41 <oerjan> Lymee: ?pl has its own partial haskell parser for only the things it understands
19:18:53 <Lymee> Ah.
19:19:11 <Phantom_Hoover> "IAmA reddit admin - AMA!"
19:19:12 <Phantom_Hoover> Reddit has sunk to a new level.
19:19:29 <Phantom_Hoover> This surprises me, because it's very close to the maximum of sunkishness.
19:19:36 <Phantom_Hoover> Much more and it'll have to start drilling.
19:19:48 <oerjan> Lymee: also, nearly nothing with pattern matching can be ?pl'ed. 2-tuples being one exception.
19:20:21 <elliott_> oerjan: hm is there a monadic foldl...
19:20:26 <oerjan> ?pl \(x,y) -> (y,x)
19:20:27 <lambdabot> uncurry (flip (,))
19:20:28 <elliott_> so that I can use the Maybe monad to prematurely terminate it
19:20:33 <elliott_> ?hoogle foldlM
19:20:33 <lambdabot> Data.Foldable foldlM :: (Foldable t, Monad m) => (a -> b -> m a) -> a -> t b -> m a
19:20:39 <elliott_> ah.
19:21:04 <oerjan> nice
19:21:27 <elliott_> actually, what I want is concatMapM.
19:21:30 <elliott_> ?hoogle concatMapM
19:21:31 <lambdabot> No results found
19:21:33 <elliott_> CURSES
19:21:45 <Sgeo_> "3 completely identical human beings stop eating fats, carbohydrates and proteins respectively. In what order to they die, if at all, and what happens? "
19:21:52 <Sgeo_> "This is a very hypo post, try it on your own body - it's there for experiencing."
19:22:02 <elliott_> actually wait
19:22:16 <elliott_> > mapM (\x -> if even x then Just 9 else Nothing) [0,0,9]
19:22:17 <lambdabot> Nothing
19:22:20 <elliott_> gah
19:22:47 <elliott_> > foldlM (\r x -> if even x then (9:) `fmap` r else Nothing) [] [0,0,9]
19:22:47 <pikhq> Sgeo_: What a strange question.
19:22:48 <lambdabot> Not in scope: `foldlM'
19:22:50 <elliott_> oh ffs
19:22:59 <elliott_> oerjan: i just want it to stop processing the list and use the zero value whenever I return Nothing :(
19:23:07 <Sgeo_> pikhq, really?
19:23:10 <oerjan> elliott_: WriterT Maybe, maybe?
19:23:17 <elliott_> oerjan: mapM, you mean?
19:23:19 <Sgeo_> I just find that answer very um... nasty
19:23:22 <Sgeo_> http://www.reddit.com/r/askscience/comments/i7as8/3_completely_identical_human_beings_stop_eating/
19:23:28 <elliott_> sgeo killed by sensitive
19:24:00 <oerjan> elliott_: um no? you would use tell to add new parts to concat...
19:24:06 <elliott_> errorflux just looks like a boring trollidiot
19:24:20 <elliott_> oerjan: i have never really used Writer much :
19:24:39 <pikhq> Sgeo_: But, yeah, odds are the person without carbs wouldn't actually die from it, though they *might* have somewhat poor health.
19:24:48 <elliott_> pikhq: see keto
19:24:56 <Sgeo_> pikhq, that seems to be the consensus in the thread
19:24:57 <pikhq> elliott_: Yuh.
19:25:02 <Phantom_Hoover> Sgeo_, *which* answer.
19:25:10 <oerjan> elliott_: oh hm you want it to keep the parts _before_ the first Nothing?
19:25:12 <elliott_> Phantom_Hoover: the very bottom one which he quoted
19:25:13 <elliott_> oerjan: yep
19:25:27 <elliott_> hm...
19:25:31 <elliott_> oerjan: basically, I always advance the snake
19:25:37 <oerjan> elliott_: sounds like an unfoldr-like thing, then
19:25:37 <elliott_> oerjan: but
19:25:48 <elliott_> oerjan: if the game is over
19:25:51 <elliott_> I don't want to advance the snake
19:25:54 <elliott_> I want to close the list then and there
19:26:52 <oerjan> Phantom_Hoover> "IAmA reddit admin - AMA!" <-- without even looking, i assume that's a parody on all the fake IAMAs?
19:27:02 <elliott_> no
19:27:03 <elliott_> its real
19:27:10 <Phantom_Hoover> oerjan, nope, it's by an actual admin.
19:27:55 <oerjan> Phantom_Hoover: huh :P
19:28:12 <oerjan> @hoogle unfoldrM
19:28:13 <lambdabot> No results found
19:28:15 <elliott_> mknin9n9n0j0ninji9nujhujhuijijuijujijjijijijkjikjkkjijjj
19:28:19 <oerjan> A GAP THERE
19:29:08 <oerjan> elliott_: hm, MaybeT Writer perhaps...
19:29:26 <oerjan> that ought to keep things already written
19:29:43 <elliott_> oerjan: that requires pulling in maybet :(
19:29:47 <elliott_> wouldn't a plain unfoldr work?
19:30:02 <oerjan> perhaps? is the function pure...
19:30:33 <elliott_> oerjan: yes
19:30:33 <elliott_> :t unfoldr
19:30:35 <lambdabot> forall b a. (b -> Maybe (a, b)) -> b -> [a]
19:30:41 <oerjan> @hoogle (a -> Maybe b) -> [a] -> [b]
19:30:41 <lambdabot> Data.Maybe mapMaybe :: (a -> Maybe b) -> [a] -> [b]
19:30:41 <lambdabot> Prelude mapM :: Monad m => (a -> m b) -> [a] -> m [b]
19:30:41 <lambdabot> Control.Monad mapM :: Monad m => (a -> m b) -> [a] -> m [b]
19:30:48 <oerjan> er
19:30:57 <oerjan> @hoogle (a -> m (Maybe b)) -> [a] -> m [b]
19:30:58 <lambdabot> No results found
19:31:00 <elliott_> > unfoldr (\(x:xs) -> if even x then Just ("yaaaaaaay", xs) else Nothing) [0,0,0,9]
19:31:00 <oerjan> bah
19:31:01 <lambdabot> ["yaaaaaaay","yaaaaaaay","yaaaaaaay"]
19:31:33 <oerjan> looks good then
19:31:35 <elliott_> hmm
19:31:39 <elliott_> unfortunately, I need to handle empty list
19:31:40 <elliott_> as in
19:31:41 <elliott_> run out of events
19:31:42 <elliott_> what now
19:31:44 <elliott_> which I can't really do
19:31:51 <elliott_> because I need to produce more elements
19:31:56 <elliott_> which would involve a Just
19:31:59 <elliott_> and what would the reduced value be?
19:32:10 <Phantom_Hoover> elliott_, quick, get to the nearest particle accelerator.
19:33:15 <oerjan> um what would you do if hitting an empty list, you say
19:33:41 <elliott_> oerjan: add the "advance the snake" event, mainly
19:33:55 <elliott_> but if I halt the processing early e.g. in case of game over, I do _not_ want to do that
19:34:01 <elliott_> oerjan: I'm starting to think a manual recursion over the list might be best...
19:34:24 <oerjan> perhaps
19:34:37 <monqy> :'(
19:34:39 <oerjan> if there are too many options to branch over
19:36:59 <oerjan> <Lymee> ?src show
19:37:02 <oerjan> ?src Show
19:37:03 <lambdabot> class Show a where
19:37:03 <lambdabot> showsPrec :: Int -> a -> ShowS
19:37:03 <lambdabot> show :: a -> String
19:37:03 <lambdabot> showList :: [a] -> ShowS
19:37:20 <elliott_> oerjan: hmm oh, I also need a sort of feedback loop thing...
19:37:29 <oerjan> each of those can be defined in terms of the other, you need at least one of the first two
19:37:32 <elliott_> because triggering AdvanceSnake will trigger something looking up where the snake is now, which then might trigger a game over
19:37:38 <elliott_> oerjan: starting to think I need a _proper_ event system here
19:37:42 <elliott_> with its own monad
19:37:56 <Phantom_Hoover> "What are the benefits of a 45.7% increase in serum testosterone levels?"
19:38:10 <oerjan> Phantom_Hoover: lycanthropy, duh
19:38:13 <Phantom_Hoover> AskScience, you have been fatally holed below the waterline.
19:38:44 <oerjan> Phantom_Hoover: i assume that was inspired by the recent post about the results of not masturbating for a week
19:39:28 <oerjan> elliott_: either that or you need some truly gordian knot tying :P
19:39:43 <elliott_> oerjan: that's my idea of a library :D
19:39:54 <elliott_> oerjan: I have a feeling I'm about to reinvent FRP
19:40:23 <oerjan> FRP is out, now it's all RDP
19:40:40 <elliott_> wat
19:41:07 <monqy> I could figure out frp is functional reactive programming but what's that
19:41:23 <oerjan> elliott_: http://awelonblue.wordpress.com/2011/05/21/comparing-frp-to-rdp/
19:41:58 <elliott_> oerjan: im not going to have to expand my brain am i
19:42:00 <elliott_> im quite tired
19:42:08 <elliott_> "Reactive Demand Programming (RDP) was invented by me (David Barbour) around April 2010"
19:42:11 <elliott_> oerjan: this is not a good start
19:42:16 <oerjan> elliott_: i may be slightly exaggerating here :P
19:42:20 <elliott_> has conal or luke said anything yet
19:42:35 <elliott_> yeah there is no way i am going to read this
19:42:36 <oerjan> heck if i know
19:42:44 <elliott_> not until i see a response at least
19:42:55 <elliott_> oh hm dmbarbour rings a bell
19:43:39 <monqy> I'm reading the overall
19:43:57 <oerjan> elliott_: i'm just reposting from r/haskell, anyhow
19:44:22 <elliott_> it seems interesting but tl;dr at this stage in my mind
19:44:38 <elliott_> although i'm not sure i like the tone, it reminds me too much of me
19:52:45 -!- azaq23 has joined.
20:28:57 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
21:29:13 -!- elliott_ has quit (Ping timeout: 246 seconds).
21:33:40 -!- zzo38 has joined.
21:34:19 <zzo38> I seem to have found a bug in LLVM (and I did report it on their IRC channel and bug report system) (as you might see from the report, I prefer to use pipes)
21:35:09 <zzo38> http://llvm.org/bugs/show_bug.cgi?id=10181
21:46:01 <Phantom_Hoover> I like it when people use "borealis" in random names.
21:46:15 <Phantom_Hoover> It's not nearly as cool as it sounds.
21:46:41 <oerjan> it's pretty cool here up north
21:47:04 <Phantom_Hoover> It is indeed.
21:47:25 <Phantom_Hoover> (OK so I'm quite a bit south of you but I'm still really north by, like, American standards.)
21:47:37 <Phantom_Hoover> (Also we have colder summers than Helsinki so HA)
21:48:04 * oerjan isn't finnish in case someone is confused
21:48:14 <Phantom_Hoover> oerjan, OK where do you live.
21:48:22 <oerjan> Trondheim, Norway
21:48:46 -!- Sgeo_ has changed nick to Sgeo.
21:49:27 <olsner> btw, tomorrow this is what sweden is doing: http://www.youtube.com/watch?v=e3ft1YyUkYY
21:49:38 <Phantom_Hoover> Yup, we have colder summers than you as well.
21:50:50 <zzo38> I don't know if it would ever actually be useful to use a code like that in the bug report!
21:51:15 <oerjan> tomorrow? we have our midsummer celebration today.
21:52:59 <olsner> oerjan: you weird norwegians
21:53:02 <oerjan> det var ju lustigt att se
21:53:26 <olsner> midsummer's eve is always on a friday in sweden for ... well holiday scheduling reasons
21:53:38 <oerjan> ah
21:54:02 <olsner> but today is also a de-facto friday since tomorrow is a no-work day
21:54:30 <oerjan> oh, you get midsummer's eve off?
21:54:46 <olsner> lol, you don't?
21:55:05 <olsner> or do you get the 'day' off instead of the 'eve'?
21:55:23 <oerjan> afair neither is an official day :P
21:56:17 <olsner> you celebrate midsummer on a work day? even if it is before a work day so you have to work hung over?
21:56:30 <olsner> this is just so bad, oerjan
21:56:57 <oerjan> well if it's on a thursday there _might_ be a slight decrease in people working on the day after :P
21:57:31 <oerjan> which is just as with other movable days off
22:00:18 <olsner> as always in sweden everything goes to a fixed pattern: thursday is queueing at systembolaget to get beer and schnaps, friday is pickled herring, schnaps and dancing the frog dance around the phallos, saturday is dedicated to being hung over
22:00:50 <oerjan> ordning och reda
22:00:59 -!- Phantom_Hoover has quit (Remote host closed the connection).
22:00:59 * cheater__ subjects oklopol to torpillage.
22:01:09 <olsner> ordning och reda, pengar på freda'
22:22:49 <Sgeo> Did comex just call Java a fine language?
22:23:02 <Sgeo> By pointing to a comment that called it a fine language, I mean
22:28:50 -!- Patashu has joined.
22:43:46 -!- augur has quit (Remote host closed the connection).
22:43:53 -!- CakeProphet has joined.
22:43:54 -!- CakeProphet has quit (Changing host).
22:43:54 -!- CakeProphet has joined.
22:50:16 -!- Wamanuz4 has joined.
23:04:44 -!- Wamanuz4 has quit (Ping timeout: 258 seconds).
23:08:20 -!- Wamanuz4 has joined.
23:12:14 -!- augur has joined.
23:13:16 -!- Wamanuz4 has quit (Ping timeout: 240 seconds).
2011-06-24
00:27:13 -!- augur has quit (Remote host closed the connection).
00:36:00 -!- FireFly has quit (Remote host closed the connection).
00:51:38 -!- oerjan has quit (Quit: Good night).
00:53:30 -!- Vorpal has quit (Ping timeout: 260 seconds).
01:52:00 -!- zzo38 has quit (Remote host closed the connection).
02:00:43 <tswett> You know, I wonder whether there are any compilers that are computable bijections.
02:01:22 <tswett> Is there a program that compiles Unlambda to Brainfuck, such that every possible Brainfuck program is given by exactly one Unlambda program?
02:01:52 <Patashu> Sure, just insert a nonce or hash at the end
02:01:58 <Patashu> </notexpectedanswer>
02:02:32 <tswett> Computable bijective compilers obviously exist in some cases (like compiling a language to itself), so perhaps they exist in call cases. At least, languages that can be compiled to and fro at all.
02:03:13 <newsham> how do you figure it will be a unique mapping?
02:03:15 <tswett> Patashu: yes, but will that make it so that every possible Brainfuck program is given by at least one Unlambda program?
02:03:33 <Patashu> hrm...
02:03:41 <tswett> newsham: what do you mean? The question is whether it's possible to make it a unique mapping or not.
02:03:43 <newsham> for(;;) { }, while(1) { }; ... /*comment*/ /* comment */
02:03:46 <Patashu> every possible brainfuck program as in every combination of valid syntactical symbols or every possible turing machine it could be?
02:03:57 <newsham> bijection implies 1:1 mapping.
02:03:59 <tswett> Patashu: the former.
02:04:23 <newsham> even C <-> C isnt 1:1
02:04:40 <tswett> newsham: well, you can simply compile each C program to itself. Voila, one-to-one mapping.
02:05:09 <CakeProphet> hey I think they have a program called cat for that.
02:05:32 <Patashu> has anyone ever made a C interpreter?
02:05:42 <newsham> do you want to discount changes in syntax? ie. doI have to translate each comment properly? whiespace and indentation?
02:06:00 <newsham> patashu: many people have. or do you means specifically in this room?
02:06:09 <tswett> newsham: the bijection only needs to preserve program behavior. It can add or remove comments ad libitum.
02:06:44 <Patashu> ah, so there is one
02:06:51 <newsham> tswett: can I use comments in the bijection? ie. can I translate for(;;) in C to while(true) { /*for*/ in java?
02:07:04 <newsham> so that I know who to map it back to C later?
02:07:13 <tswett> If uncomputable mappings were allowed, this would be pretty easy. We're given an Unlambda program. Enumerate all Unlambda programs that behave the same way, and suppose this is the nth. Enumerate all Brainfuck programs that also behave that way; output the nth.
02:07:17 <tswett> newsham: yes, that's allowed.
02:07:44 <Sgeo> Futurama
02:08:01 <newsham> so basically I just have to compile from one language to another language, and capture the original program in comments.
02:08:34 <tswett> newsham: well, it must be a bijection. That means that (supposing you're translating from Unlambda to Brainfuck) every Brainfuck program must be possible to produce somehow.
02:08:43 <newsham> so basically: translate = compile to exe, and write a virtual machine that interprets exes
02:10:01 <newsham> i'm skeptical.
02:10:37 <tswett> Well, yes, there's a reason it's a question rather than a statement. :)
02:10:48 <newsham> ok, for example, I dont think you'll find a bijection between C and python, because of how comments and whitespace are handled differently in the two languages
02:11:15 <tswett> Well, it's easy to, say, strip out all the comments and whitespace, and then encode them back in once you're done.
02:11:31 <newsham> no, because I can encode comments in different ways
02:11:43 <newsham> I can encode // comment and /* comment */ in C
02:11:47 <newsham> but not in python
02:12:21 -!- augur has joined.
02:13:02 <tswett> When you strip out all the comments and whitespace, just turn all the information that you just got into an integer.
02:13:23 <newsham> tswett: ok, say you do that for every possible C program comment.
02:13:33 <newsham> now, whats the bijection from every possible python program?
02:14:05 <newsham> remember: I might have a python comment that has an integer in it
02:14:12 <tswett> Given a program with no comments or excess whitespace, there are countably many ways to add comments and whitespace to it. This is the same for C and for Python. Therefore, it must be possible to encode all the comments and whitespace as an integer, and to decode that integer to produce comments and whitespace.
02:14:33 <tswett> So, take your C comments and whitespace, turn them into an integer, and turn that integer into Python comments and whitespace.
02:14:53 <newsham> where are you outputting this integer?
02:14:58 <newsham> into a comment?
02:15:01 <Patashu> It's just an ennumeration
02:15:13 <newsham> this is a bijection, the data has to be encoded in the output
02:15:37 <newsham> if you take all the comments from my C program and encode it into the number "42" as a comment in the python program
02:15:43 <newsham> now what happens when you reverse map that program?
02:15:43 <tswett> newsham: the integer becomes represented by all of the whitespace and comments in the resulting Python code. Every possible combination of whitespace and comments in Python corresponds to exactly one integer.
02:16:30 -!- augur has quit (Remote host closed the connection).
02:17:36 <newsham> now when I translate a python program with the comment "42" in it, it goes back to a C program with lots of textual comments?
02:17:55 <newsham> but when I translate a python program with the comment "42!" in it it goes back to a C program with just a single integer in its comments?
02:19:24 <tswett> A C program whose comments are represented by the number 42 doesn't become a Python program with the comment "42" in it. It becomes a Python program whose comments are represented by the number 42.
02:19:50 <newsham> where are you encoding that number in the python program?
02:20:06 <newsham> you have f :: C -> Py, and g :: Py -> C
02:20:16 <newsham> so the 42 has to be somewhere in the Py.
02:20:41 <tswett> You have f :: C -> Integer and g :: Py -> Integer. Then, to get C -> Py and Py -> C, you take g^-1 . f and f^-1 . g.
02:22:35 <newsham> wait.. you're assuming you have functions that enumerate both C and Py programs that have the same functionality :)
02:23:01 <newsham> I call shenanigans
02:23:16 <Patashu> how else are you going to do it?
02:24:19 <newsham> patashu: you just shifted the problem.. let me restate my original question in your new shifted problem. give me f and g for C and python comments.
02:24:27 <newsham> you cant do it.
02:25:06 <newsham> actually.. wait.. you prob can do it for comments alone.
02:25:43 <newsham> but thats because you avoid the constraint that they have to run the same way.
02:25:48 <newsham> so any enumeration of comments works.
02:27:57 <newsham> ok, how about this. whats the bijection between SKI calc with C++ comments and SKI calc with python comments.
02:28:15 <newsham> hmm that might be too easy too
02:28:36 <newsham> ok, i'm getting more convinced that your approach can work when ther is a bijection
02:29:23 <newsham> i think an interesting test case would be SKI with c++ comments to lambda calc with python comments.
02:29:39 <newsham> (ignore whitespace, but deal with variable renaming)
02:30:07 <newsham> the comments in one program has to encode for the comments+variablenames in the other program
02:30:52 <newsham> and also has to encode for the choice of which type of comments are used
02:31:19 * Sgeo watches Futurama fail at math
02:32:59 <pikhq> That's probably intentional.
02:33:51 <newsham> some kinda rendering error?
02:37:25 <CakeProphet> why not just ignore comments and insignificant whitespace, since they have no semantic effect?
02:37:37 <tswett> newsham: yeah, doing comments is the easy part.
02:37:46 <tswett> CakeProphet: you might as well, I guess.
02:40:23 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
03:01:10 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:04:13 -!- augur has joined.
03:16:18 -!- copumpkin has joined.
03:17:21 -!- Sgeo has quit (Ping timeout: 250 seconds).
03:18:59 -!- pumpkin has joined.
03:18:59 -!- pumpkin has quit (Changing host).
03:18:59 -!- pumpkin has joined.
03:20:49 -!- copumpkin has quit (Ping timeout: 250 seconds).
03:23:14 -!- Sgeo has joined.
03:23:44 <Sgeo> TF2 is free forever now
03:25:29 <CakeProphet> oh nice.
03:25:49 <CakeProphet> I might go download it then.
03:30:06 -!- pumpkin has quit (Ping timeout: 252 seconds).
03:30:40 -!- copumpkin has joined.
03:30:40 -!- copumpkin has quit (Changing host).
03:30:40 -!- copumpkin has joined.
03:43:04 -!- azaq23 has quit (Ping timeout: 260 seconds).
03:44:28 <pikhq> TIL about Perl "bless".
03:45:05 <pikhq> CakeProphet: How do you continue to be coherent? Surely your brain has a giant tumor by now?
03:45:21 <Sgeo> pikhq, what?
03:46:47 <pikhq> Excuse me, I have to be incoherent for a bit, that is just too terrible.
03:48:30 <Sgeo> What is? Perl's bless?
03:48:33 * Sgeo googles
03:51:22 <CakeProphet> TIL?
03:51:27 <CakeProphet> oh
03:52:02 <CakeProphet> pikhq: wait I thought you had experience with Perl already? You should have already learned about bless. :P
03:52:15 <pikhq> DIE DIE DIE DIE DIE
03:52:26 <CakeProphet> but yeah, Perl's OO is pretty stupid, not going to lie.
03:52:37 <pikhq> MURDER THE MAN WHO BROUGHT THIS INTO THE WORLD
03:54:05 <CakeProphet> That's why I've never made a class in Perl.
03:54:08 <CakeProphet> no point..
03:54:51 <CakeProphet> the only reason I would make a class in Perl is if I were designing a CPAN package that was intended to be subclassed.
03:57:23 -!- myndzi has quit (Ping timeout: 264 seconds).
03:58:45 -!- myndzi has joined.
03:59:32 -!- azaq23 has joined.
04:01:27 <CakeProphet> pikhq: I usually just program imperitively/procedurally in Perl.
04:02:18 <CakeProphet> since the OO stuff was just kind of thrown in Perl 5 simply for the sake of having it, and doesn't really integrate into the language very well.
04:04:07 <CakeProphet> like, look at how shitty inheritance is:
04:04:26 <CakeProphet> package Bot::RoleBot; our @ISA = qw(Bot::BasicBot);
04:04:43 <monqy> :'(
04:04:46 <CakeProphet> inheritance = set this magic method resolution list
04:05:16 <CakeProphet> oh, for those who don't know: qw(a b c) = ('a', 'b', 'c')
04:05:22 <monqy> gross
04:06:11 <CakeProphet> I love qw because it allows me to be incredibly lazy. :D
04:06:24 * pikhq cuts off CakeProphet's arms
04:06:49 <monqy> doesn't ruby have those things too? gross.
04:07:06 <CakeProphet> not sure, actually. I know Ruby has q and qq.
04:07:16 <monqy> they're all the same to me
04:07:57 <monqy> i.e. meaningless language-defiling syntactic sugar that should not exist
04:08:06 <CakeProphet> q and qq are good ideas, believe it or not. Because it allows you to avoid escaping quotes within strings.
04:09:14 <CakeProphet> q{I can't believe how easy it's to type English's sentences and stuff.}
04:09:30 <CakeProphet> only comes up occasionally though.
04:09:48 <CakeProphet> like when you're trying to nest 20 strings within one another and evaling them all off... you know, it happens.
04:10:02 <monqy> no
04:10:03 <monqy> it doesn't
04:10:04 <monqy> ever
04:10:04 <monqy> happen
04:10:09 <CakeProphet> check the #esoteric logs. :P
04:10:18 <monqy> someone is a bad person
04:10:39 <CakeProphet> if you search for something like q{q[q( you'll probably find it
04:11:06 <CakeProphet> or q!q@q#q$q%
04:11:08 <CakeProphet> :)
04:11:49 <CakeProphet> monqy: don't tell me you're against sugar in principle. That would be silly.
04:12:08 <CakeProphet> I'm guessing it's just this particular form of it?
04:12:28 <monqy> I prefer providing a more general extensible interface like macros
04:12:42 <monqy> but in some cases e.g. string literals it can be a necessary evil
04:13:26 <CakeProphet> but you don't think it's a good idea to allow overriding the delimiter so that you can avoid ugly \'s?
04:14:22 <monqy> I'm sure you'd be able to do it well enough with a macro if your macro system is cool????
04:14:31 <CakeProphet> yeah I guess so.
04:14:32 <monqy> also: why would you want to do it, provided your code is sane
04:14:50 <pikhq> monqy: Well, in Tcl it makes a *little* bit of sense I guess.
04:15:07 <Lymee> eval q|some code goes here|
04:15:07 <Lymee> etc.
04:15:20 <pikhq> monqy: Seeing as you typically do metaprogramming based on constructing strings.
04:15:38 <CakeProphet> it usually comes up when you're dealing with strings that contain code. Or for example, when you're executing a shell command you can use qx instead of `
04:16:07 <monqy> I try to keep my code out of strings
04:16:27 <monqy> put them in lists/symbols if necessary but
04:16:46 <monqy> where by lists I mean nested lists representing a syntax tree
04:16:55 <monqy> strings is quite icky to me
04:17:14 <pikhq> In Tcl, a list is just a particular form of string, so...
04:17:14 <CakeProphet> well then you're weird. :P
04:17:54 <monqy> strings are so unstructured
04:18:03 <CakeProphet> how so?
04:18:17 <pikhq> (specifically, a string that possesses structure, like you would expect of a list)
04:18:25 <monqy> for one they're serial
04:18:54 <CakeProphet> ah I see what you're saying. Well yes, when you need structure you can use lists/trees. strings are quite fine for what they're intended for.
04:19:42 <CakeProphet> strings just represent an unparsed form of a structure. for example, a parser can't just magically form a parse tree from a file, it needs to read it as a string first.
04:20:56 <monqy> well parse it before treating it as code please
04:21:39 <CakeProphet> quines are another example of where q comes in handy.
04:23:16 <CakeProphet> here you're not concerned with the code itself, simply the string of the source code. That's a somewhat common case of where string literals are used. Not just in handling source code to be executed, but also in handling code to be manipulated/generated/output
04:25:03 <CakeProphet> a script that outputs HTML source, for example, will probably contain some string literals containing double quotes.
04:26:02 <Patashu> no way guys I'd rather do this ////////'foo////////'
04:26:24 <CakeProphet> s'/'\'
04:26:28 <Patashu> oops
04:26:34 <Patashu> wait
04:26:35 <CakeProphet> (see what I did there? :P )
04:26:38 <Patashu> what kind of s notation is that
04:26:43 <CakeProphet> Perl's...
04:27:04 <CakeProphet> you can use any delimeter you want. I used ', which also signifies that there's no interpolation. Thus I didn't have to worry about escaping things.
04:27:16 <CakeProphet> in much the same way that a ' string literal works.
04:27:21 <Patashu> wow, neat
04:29:26 <CakeProphet> that's typically when s''' is used, when you have literal backslashes. I see s{}{} used when there are forward slashes.
04:29:49 <CakeProphet> but you can even do s#stuff#here#, and Perl won't parse the # as beginning a comment.
04:30:21 <CakeProphet> but that's a stupid delimiter. don't ever do that. :P
04:41:03 <CakeProphet> Perl's actually not illegible if write neat code. Obviously the best way for me to support this point is to show you some abusive code I wrote a few days ago.
04:41:07 <CakeProphet> *you write
04:41:18 <CakeProphet> $msg .= "$_ commands: ".join (', ', map {$seen{$_}=1;$_} @{$cats{$_}}).' ' for sort {$b cmp $a} keys %cats;
04:41:21 <CakeProphet> see? beautiful.
04:41:53 <coppro> perl 6?
04:41:57 <CakeProphet> no, 5
04:41:57 <coppro> wait no
04:42:03 <coppro> perl 5 has methods on strings?
04:42:10 <CakeProphet> no that's string concatenation.
04:42:16 <coppro> oh
04:42:19 <CakeProphet> too much Python, coppro? :P
04:42:21 <coppro> usually I see it with spaces
04:42:22 <coppro> yep
04:42:29 <coppro> used to "a" . "b"
04:42:31 <coppro> not "a"."b"
04:42:40 <coppro> of course, in Perl 6, those probably have different semantics
04:43:00 <CakeProphet> I have no clue actually. I have no read Perl 6 specs, but I do know that . is a method accessor thing.
04:43:06 <CakeProphet> dunno what string concatenation looks like.
04:43:29 <CakeProphet> I guess a space there wouldn't hurt.
04:43:41 <coppro> ~
04:44:12 <CakeProphet> ~?
04:44:29 <coppro> concatenation in perl 6
04:45:21 <CakeProphet> ah. I wouldn't expect that to mean concatenation, but you shouldn't really expect symbols to mean something without knowing what they mean.
04:45:42 <coppro> I do like Perl 6's approach to unary functions on $_
04:45:49 <coppro> unary .
04:46:13 <CakeProphet> so a unary . signifies that $_ is being used?
04:46:20 <coppro> yeah
04:46:21 <coppro> .print
04:46:24 <coppro> err
04:46:25 <coppro> .print;
04:46:29 <CakeProphet> that's not bad, I suppose.
04:46:42 <coppro> explicit, but quick
04:46:54 <CakeProphet> to me, Perl 6 seems very esoteric.
04:47:11 <CakeProphet> more so than Perl 5, anyways.
04:47:57 <coppro> indeed
04:48:09 <coppro> my favorite feature is *
04:48:31 <CakeProphet> what is that.
04:48:40 <coppro> whatever
04:48:51 <pikhq> Perl 6: because Perl needs monads.
04:48:59 <pikhq> :P
04:49:20 <coppro> what
04:49:50 <CakeProphet> honestly, I kind of prefer that Perl devs focused on improving Perl 5 without adding radically new semantics/syntax everywhere.
04:50:04 <CakeProphet> +would
04:50:04 <pikhq> I seem to recall that a monadic API got snuck in there somewhere, because of Pugs.
04:50:30 <pikhq> (Pugs being a Perl 6 interpreter written in Haskell.)
04:53:45 <CakeProphet> I know there is something slightly wrong with me when I am okay with @ and % changing to $ when subscripted.
04:54:20 <CakeProphet> I believe that remove that in Perl 6 though.
04:55:15 <coppro> Whatever is awesome
04:55:22 <coppro> it can be used to create closures
04:55:28 <CakeProphet> what does it do?
04:55:47 <coppro> or passed as an argument to Whatever-aware functions that will have special behavior
04:55:58 <coppro> *+2 creates a unary closure that adds two
04:56:12 <CakeProphet> ah okay.
04:56:17 <CakeProphet> that is indeed quite awesome.
04:56:30 <coppro> but it does other things
04:56:39 <CakeProphet> well, oh course, this is Perl after all. :P
04:56:43 <coppro> sort *, [] is default sort
04:56:53 <coppro> for example
04:57:00 <CakeProphet> can't just write sort []?
04:57:16 <coppro> no, because sort takes two arguments
04:57:29 <CakeProphet> ..oh right.
04:57:39 <CakeProphet> there is no @_ anymore.
04:59:18 <coppro> you also use whatever for unbounded ranges, etc.
04:59:32 <coppro> basically it means "I don't care"
05:01:10 <Patashu> Someone needs to write a flogscript manual
05:01:48 <coppro> ooh, another one
05:02:01 <coppro> it's also used for a black hole in tuple assignment
05:04:19 <Patashu> if($c=='F)') { //flow-control-fumble
05:04:20 <Patashu> best operator
05:04:22 <CakeProphet> ah, that's what undef is for in Perl 5. Except it's lists and not tuples.
05:04:27 <Patashu> throw, catch, fumble :)
05:05:07 <CakeProphet> so is there no eq in Perl 6? or is using == incorrectly intentional there?
05:07:16 <Patashu> haha, extchars
05:08:50 <coppro> CakeProphet: it's lists in Perl 6
05:24:40 <CakeProphet> are IRC nicks case insensitive?
05:25:07 <CakeProphet> nevermind. I answered my own question with /whois :P
05:26:52 <CakeProphet> my ($self, $body) = (shift, shift->{body});
05:26:59 <CakeProphet> this line kind of reads like a poem about dancing.
05:27:52 <CakeProphet> a very bad one.
05:32:25 -!- pikhq_ has joined.
05:35:11 -!- pikhq has quit (Ping timeout: 264 seconds).
05:57:01 -!- copumpkin has quit (Ping timeout: 240 seconds).
05:57:26 -!- copumpkin has joined.
06:01:09 <pikhq_> So. Split-brain patient, one half is theist, one half atheist. What happens if, say, the theistic claims are true, and have the standard "through belief you shall be saved" bit going on?
06:01:33 <Sgeo> Can that happen?
06:01:41 <Sgeo> Split-brain working like that?
06:01:47 <pikhq_> Yes, that is how split brain works.
06:02:28 <pikhq_> By cutting the corpus callosum, you get two seperate minds.
06:03:22 <pikhq_> This specific case has actually happened, BTW.
06:03:59 <Sgeo> Wait, how do you tell what the right side of the brain is? I thought only the left could speak?
06:04:26 <Sgeo> Hmm, also, just a guess: Right theist, left atheist?
06:04:31 <pikhq_> The right side still has motor control and is capable of understanding language to an extent.
06:07:45 <CakeProphet> the functions of the brain are not strictly localized to certain hemispheres.
06:07:57 <CakeProphet> though each hemisphere is specialized towards functions.
06:09:05 <pikhq_> By cutting the corpus callosum, though, you end up getting pretty much two seperate brains in the same body.
06:09:41 <CakeProphet> yes. I believe only one is in use at a given time?
06:09:50 <Patashu> That is a really interesting thought experiment
06:09:58 <Patashu> I need to use that one sometime
06:10:03 <pikhq_> CakeProphet: No, both function simultaneously.
06:10:11 <Sgeo> CakeProphet, if there's no connection, how would they know to take turns?
06:10:28 <CakeProphet> I had never heard of each hemisphere developing different beliefs
06:10:33 <CakeProphet> Sgeo: shush.
06:11:02 <CakeProphet> message passing queues over quantum entanglement, duh.
06:11:19 <Sgeo> You can't pass messages with quantum entanglement.
06:11:24 <CakeProphet> ... -_-
06:11:29 <Sgeo> At least, as far as I know
06:11:29 <pikhq_> Sgeo: It's actually only seperating the cerebral cortex into two.
06:11:36 <Sgeo> pikhq_, ah.
06:11:59 <pikhq_> So, you get rather a *lot* of seperation between them, but not actually complete seperation.
07:04:39 <CakeProphet> I do wish Perl's dereference operators used () instead of {}
07:04:54 <CakeProphet> @{$cats{$_}} is just kind of gross looking.
07:04:55 <lambdabot> Unknown command, try @list
07:48:55 <pikhq_> http://i.imgur.com/MmQAb.png What. The. Fuck.
07:49:04 <pikhq_> This is not right not right not right.
07:50:00 -!- monqy has quit (Quit: hello).
07:50:55 <olsner> lithium (assuming that's from back when 7-up had lithium) is probably good for kids
07:52:00 <pikhq_> That's totally 50s graphic design, so *just* after they got rid of the lithium.
07:52:10 <pikhq_> (they removed the lithium citrate in 1950.)
07:55:01 <pikhq_> Well, there's a chance that was 40s.
07:55:08 <pikhq_> So it would have lithium.
07:55:27 <pikhq_> Ah, found the publication date of the pamphlet it's from.
07:55:29 <pikhq_> 1953.
07:57:02 <Sgeo> I think the point is just that it gets kids to drink it
07:58:50 * Sgeo goes to make a rules table for his own reversible GoL
07:58:55 <Sgeo> Because I think Paul's is crap
07:59:36 <pikhq_> Much easier way to do that.
07:59:44 <pikhq_> "It drinks the milk or else it gets the hose again!"
07:59:47 <pikhq_> </psychopath>
07:59:54 -!- choochter has joined.
07:59:59 <Sgeo> Or, alternatively, I set up ReversibleLife wrong
08:00:11 <Sgeo> Yep, got it working now
08:01:27 <Sgeo> E seems to have done it the same way I have too
08:01:55 <Sgeo> Assigning same numbers and all
08:03:11 <Sgeo> Dangit it looks boring and unlikely to kickstart life
08:07:03 -!- azaq23 has quit (Quit: Leaving.).
08:11:44 <Sgeo> Is there a way in Golly to make the world a torus?
08:12:06 <Sgeo> In theory, that would let me actually observe the world shrinking back down
08:12:33 <Sgeo> It _has_ to be possible for the mass of a reversible CA to shrink, I think
08:12:46 <Sgeo> Well, hmm, not has to be... well, actually, not sure
08:12:55 <Sgeo> But reversibility should be no hinderance
08:14:25 -!- Vorpal has joined.
08:14:36 <Patashu> try using MCell
08:14:39 <Sgeo> The GoL glider sort of becomes a dangit I forgot what it's called
08:16:22 <Sgeo> Or I could just find the Golly documentation
08:16:30 <Sgeo> Just added :T20,20 to the rule name
08:17:04 <coppro> Sgeo: I believe so
08:17:39 <Sgeo> Ok, time is not behaving cyclically like I expected
08:17:49 <Sgeo> Does being on a torus just break reversibility period?
08:18:14 <coppro> uh, why would it?
08:18:51 <coppro> also one can trivially show that any reversible automaton in finite space is cyclic
08:19:27 <Sgeo> No idea, but time should be cyclic, returning to the starting configuration. Otherwise, you'd get two states, one traced back to the initial state, and one not
08:19:36 <coppro> more to the point
08:19:40 <coppro> you have a finite state space
08:19:45 <coppro> a generation is a bijective operation
08:20:10 <Sgeo> coppro, should it or should it not eventually return to the starting state?
08:20:14 <Sgeo> If it's on a torus
08:20:18 <coppro> it should
08:20:25 <coppro> if it is reversible, that is
08:20:27 <Patashu> a torus just means you're making the bijection differently
08:20:30 <Patashu> right?
08:20:47 <coppro> Patashu: A torus means finite space, that's the key
08:20:57 <coppro> The generation function in an infinite space is not necessarily bijective
08:20:58 <Sgeo> Maybe I'm just not being patient enough
08:21:13 <coppro> Sgeo: there are 2^cells possibilities
08:21:18 <coppro> it may take a while
08:21:38 * Sgeo makes it a 10x10 torus
08:21:49 <coppro> still 2^100 possibilities
08:22:02 <Patashu> that would be a pretty effective CA to enumerate through every possible state
08:22:45 <coppro> true
08:23:04 <coppro> Sgeo: you need more math
08:23:18 <Sgeo> I think I'm seeing it
08:23:22 <Sgeo> But just keep missing it
08:24:20 * Sgeo makes a 5x5, and a line across the universe, and it's much more visible now
08:24:45 <coppro> Sgeo: why won't you accept a proof
08:24:51 <coppro> which you came up wiht
08:24:52 <coppro> *with
08:25:18 <Sgeo> I just wanted to see a demonstration in action, is all
08:28:46 <coppro> k here's an example
08:29:11 <coppro> my CA has state space {1, 0}. Generation function is 1 => 0, 0 => 1
08:29:15 <coppro> run for two generations
08:29:41 -!- cheater__ has quit (Ping timeout: 255 seconds).
08:40:32 <Sgeo> http://necsi.edu/postdocs/sayama/sdsr/movies/evol-emr.html
08:43:42 * Sgeo tries random fill with evoloop
08:44:03 <Sgeo> Probably won't be effective unless I make a very large random fill though, and that would take a whiel
08:45:35 -!- cheater__ has joined.
08:49:14 <Sgeo> Ok, this is too slow for my tastes
08:55:04 <CakeProphet> > let genericFib a b = a : b : zipWith (+) (genericFib a b) (tail $ genericFib a b) in genericFib 2 2
08:55:08 <lambdabot> mueval-core: Time limit exceeded
08:55:25 <CakeProphet> > let genericFib a b = a : b : zipWith (+) (genericFib a b) (tail $ genericFib a b) in genericFib 2 2
08:55:30 <lambdabot> mueval-core: Time limit exceeded
08:55:33 <CakeProphet> ...?
08:55:52 <Deewiant> > let genericFib a b = let fibs = a : b : zipWith (+) fibs (tail fibs) in fibs in take 10 $ genericFib 2 2
08:55:53 <lambdabot> [2,2,4,6,10,16,26,42,68,110]
08:56:09 <Deewiant> > let genericFib a b = let fibs = a : b : zipWith (+) fibs (tail fibs) in fibs in genericFib 2 2
08:56:10 <lambdabot> [2,2,4,6,10,16,26,42,68,110,178,288,466,754,1220,1974,3194,5168,8362,13530,...
08:56:14 -!- cheater__ has quit (Ping timeout: 255 seconds).
08:56:37 <CakeProphet> not sure I understand what happened.
08:57:01 <Deewiant> > let genericFib a b = a : b : zipWith (+) (genericFib a b) (tail $ genericFib a b) in genericFib 2 2
08:57:05 <lambdabot> mueval-core: Time limit exceeded
08:57:06 <Deewiant> > let genericFib a b = a : b : zipWith (+) (genericFib a b) (tail $ genericFib a b) in take 10 $ genericFib 2 2
08:57:07 <lambdabot> [2,2,4,6,10,16,26,42,68,110]
08:57:35 <Deewiant> It's just too slow without the sharing
08:57:44 <CakeProphet> I guess that's it.
08:58:04 <CakeProphet> seems like there could be a way to optimize situations like that to be equivalent.
08:58:11 <Deewiant> Doing it in GHCi, your version is really slow
08:58:19 <CakeProphet> ah
08:58:34 <Deewiant> take 30 takes 1.51 seconds
08:58:44 <Deewiant> Versus 0.01
08:58:58 <CakeProphet> would they be equivalent when compiled?
08:59:03 <Deewiant> No
08:59:12 <Deewiant> GHC doesn't do that kind of transformation
08:59:14 <Deewiant> It can introduce space leaks
09:00:48 <Deewiant> http://www.haskell.org/haskellwiki/Performance/GHC#Common_subexpressions
09:09:44 -!- cheater__ has joined.
09:32:11 * Sgeo discovers Golly's Pattern Info feature
09:56:14 <CakeProphet> !msg
09:57:50 <CakeProphet> !sh echo "Your bot needs better documentation, Gregor" > /dev/null
09:58:04 <Patashu> lol
09:58:22 <CakeProphet> This is proper complaint procedure according to !info
10:02:50 -!- cheater__ has quit (Ping timeout: 255 seconds).
10:42:23 -!- jcp has quit (Ping timeout: 264 seconds).
10:44:35 -!- Phantom_Hoover has joined.
10:48:04 -!- jcp has joined.
10:55:27 <CakeProphet> corewars is a fairly interesting thing.
11:05:58 -!- azaq23 has joined.
11:12:56 <CakeProphet> What property of an algorithm causes it to diverge on infinite data?
11:13:11 <Phantom_Hoover> Pretty sure that's undecidable.
11:13:44 <CakeProphet> I suppose that would involving the halting problem.
11:13:50 <CakeProphet> *involve
11:14:35 <Patashu> reminds me of http://www.xamuel.com/guessability/
11:14:46 <Patashu> though that's not what you want
11:16:53 <Phantom_Hoover> Seen on the SimplyNoise testimonial box: "My girlfriend and I use SimplyNoise every night."
11:26:32 <Vorpal> ^_^
11:28:16 <Phantom_Hoover> Vorpal, I don't even want to think about why you did that, given your established predilections.
11:31:59 <CakeProphet> > foldl1 (flip seq) [1..100]
11:32:01 <lambdabot> 1
11:32:51 <CakeProphet> > foldl1 (flip seq) [1..]
11:32:58 <lambdabot> mueval: ExitFailure 1
11:32:59 <lambdabot> mueval-core: Time limit exceeded
11:33:07 <CakeProphet> efficient computing of the number 1.
11:33:18 <CakeProphet> it's a thesis I'm working on.
11:33:44 <Patashu> @src seq
11:33:45 <lambdabot> Source not found. My pet ferret can type better than you!
11:33:48 <Patashu> :(
11:33:49 <Patashu> what's seq
11:33:54 <Vorpal> Phantom_Hoover, what? Oh wrong tab -_-
11:34:03 <Vorpal> not intended for this channel at all
11:37:42 <CakeProphet> Patashu: the first argument is forced to be strict, and then the second argument is returned.
11:37:56 <CakeProphet> it's the strictness primitive of Haskell (GHC? I don't know if it's portable)
11:38:00 <Patashu> aaah
11:38:23 <CakeProphet> it's commonly used in infix form.
11:38:28 <Patashu> so you apply flip seq to 1 and 2, you make 2 strict and return 1
11:38:32 <Patashu> then you apply it to 1 and 3 etc
11:38:34 <Patashu> ok
11:38:42 <CakeProphet> yes, it's a complete waste of time. :P
11:38:49 <Patashu> hehe
11:40:17 <CakeProphet> there's also "bang patterns", which lets you prepend a ! in front of a pattern to signify that it is strict. This can be more readable than using seq to force strictness.
11:40:22 <CakeProphet> it's a GHC extension.
11:45:03 <CakeProphet> when used correctly, it can dramatically speed up code. When used incorrectly, it can do absolutely nothing and make your code less pretty. In the worst case, it can hurt performance due to boxing/unboxing.
11:45:38 <Patashu> will GHC make something strict if it thinks it will help?
11:45:45 <Patashu> obviously not in every case but sometimes
11:46:01 <CakeProphet> yes
11:46:20 <CakeProphet> well, not if it thinks it will help, if it can and there's no reason not to.
11:47:29 <CakeProphet> if an expression is always evaluated by a function, then there's no reason to create the extra overhead of lazy evaluation.
11:48:42 <CakeProphet> though I think you need the -O flag for strictness analysis.
11:55:02 -!- FireFly has joined.
12:10:38 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
12:33:17 -!- Phantom_Hoover has joined.
13:16:50 -!- azaq23 has quit (Quit: Leaving.).
13:17:16 <Phantom_Hoover> Whoa, you can roast eggs.
13:24:00 <Vorpal> Phantom_Hoover, oh, how?
13:24:17 <Vorpal> just in an oven?
13:27:57 -!- cheater__ has joined.
13:39:33 -!- BeholdMyGlory has joined.
14:21:01 -!- augur has quit (Remote host closed the connection).
14:32:49 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:56:31 -!- copumpkin has joined.
14:57:01 -!- augur has joined.
15:00:22 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:32:51 -!- pikhq has joined.
15:33:17 -!- pikhq_ has quit (Ping timeout: 276 seconds).
15:44:23 -!- cheater__ has quit (Ping timeout: 255 seconds).
15:50:57 -!- derrik has joined.
15:51:27 -!- derrik has left.
16:01:10 -!- yiyus has quit (Remote host closed the connection).
16:37:28 -!- yiyus has joined.
16:53:59 <Vorpal> hm, in C, how does __LINE__ behave in an #if? And what if you had #if __LINE__ == 10 .... #elif __LINE__ == 10 ....
16:54:52 <Vorpal> hm works correctly
17:17:55 -!- pikhq has quit (Ping timeout: 252 seconds).
17:18:03 -!- pikhq has joined.
17:50:04 -!- zzo38 has joined.
17:51:32 <zzo38> If the rule against auras being creatures was not there, you could make a card like: Enchant permanent. This card is unblockable if attacking the player controlling enchanted permanent while that permanent is tapped.
17:57:16 <Lymee> You usually try to not make super-confusing cards.
17:59:50 <zzo38> Make up the card: All creatures are also planeswalkers until end of turn.
18:00:12 <zzo38> (I called it "Wrath of Gosh")
18:04:12 -!- choochter has quit (Quit: lang may yer lum reek..).
19:12:18 -!- oerjan has joined.
19:16:54 <pikhq> Ctrl-Q must die.
19:17:03 -!- augur has quit (Remote host closed the connection).
19:19:30 -!- CakeProphet has quit (Ping timeout: 276 seconds).
19:20:54 -!- CakeProphet has joined.
19:20:54 -!- CakeProphet has quit (Changing host).
19:20:54 -!- CakeProphet has joined.
19:36:23 <zzo38> pikhq: Elaborate? Context? etc?
19:44:49 <pikhq> zzo38: Q is right next to W. Q quits Firefox. W closes the current tab.
19:47:36 <pikhq> Because somehow, a hotkey *distinct* from Alt-F4 to close the program is helpful.
19:48:31 <Vorpal> pikhq, wild guess: legacy reasons. On classical Mac OS (which Netscape Navigator existed for) Cmd-q was the normal way to exit applications.
19:49:15 <pikhq> Then WHY STICK THE CLOSE TAB SHORTCUT ADJACENT TO IT
19:53:33 -!- elliott_ has joined.
19:53:37 <elliott_> q
19:55:56 <oerjan> elliott_: i am sorry, but pikhq has just banned q
19:58:34 <elliott_> pikhq will die
19:58:51 <elliott_> 19:48:31: <Vorpal> pikhq, wild guess: legacy reasons. On classical Mac OS (which Netscape Navigator existed for) Cmd-q was the normal way to exit applications.
19:58:54 <elliott_> also OS X
20:00:52 <Vorpal> elliott_, right
20:01:06 <elliott_> oerjan: hey, I need a very angry soundbite about using non-alphabetical symbols for variables in mathematics
20:01:08 <elliott_> oerjan: please provivde
20:01:21 <Vorpal> <pikhq> Then WHY STICK THE CLOSE TAB SHORTCUT ADJACENT TO IT <-- also legacy reasons, Cmd-w was also close window (and probably is on OS X)
20:01:54 <Vorpal> elliott_, you mean like 5 = 4.12?
20:01:55 <zzo38> pikhq: Possibly because of different window managers or something
20:01:55 <Vorpal> ;)
20:02:17 <Vorpal> (yes I know of that esolang)
20:02:33 <oerjan> how fortuitous
20:03:15 <oerjan> elliott_: what non-alphabetical symbols
20:03:31 <zzo38> elliott_: Do you not have microphone or angry computer speech?
20:03:37 <elliott_> oerjan: it's irrelevant
20:04:16 <oerjan> elliott_: um i mean i don't think that is very common
20:04:31 <zzo38> Still I would like to know what non-alphabetical symbols you mean and which ones specifically
20:04:34 <elliott_> oerjan: of course it isn't
20:04:43 <zzo38> Even if it is not relevant for such a sound.
20:05:55 <zzo38> (TeX allows you to use any symbol for variables in mathematics by using \mathord prefix)
20:10:24 <elliott_> 04:02:18: <CakeProphet> since the OO stuff was just kind of thrown in Perl 5 simply for the sake of having it, and doesn't really integrate into the language very well.
20:10:24 <elliott_> have you ever used Moose?
20:10:25 <elliott_> CakeProphet:
20:11:53 <oerjan> nah, my sister tried but got bitten by it
20:12:47 <oerjan> (note: joke might work better if i actually had a sister)
20:12:56 <elliott_> 04:19:42: <CakeProphet> strings just represent an unparsed form of a structure. for example, a parser can't just magically form a parse tree from a file, it needs to read it as a string first.
20:12:56 <elliott_> this is only necessary because filesystems store everything as strings
20:13:38 -!- zzo38 has left.
20:14:40 <oerjan> synchronistically, http://rjlipton.wordpress.com/2010/04/19/a-post-on-post/#comment-12208
20:15:20 <pikhq> elliott_: Gotta love that good ol' UNIX style.
20:15:25 <elliott_> 04:49:50: <CakeProphet> honestly, I kind of prefer that Perl devs focused on improving Perl 5 without adding radically new semantics/syntax everywhere.
20:15:25 <elliott_> you realise perl six came about because that became way too difficult?
20:15:56 <elliott_> Quantum Systems Engineering
20:15:56 <elliott_> In Service of Regenerative Medicine
20:15:59 <elliott_> this john sidles person looks fun
20:16:25 <elliott_> 04:50:30: <pikhq> (Pugs being a Perl 6 interpreter written in Haskell.)
20:16:29 <elliott_> pikhq: pugs is incredibly out of date and no longer maintained
20:17:14 <pikhq> elliott_: Yes, I realise.
20:17:16 -!- augur has joined.
20:17:23 <oerjan> elliott_: yes he does :P
20:18:39 <elliott_> oerjan: ?
20:18:43 <elliott_> oh
20:18:44 <elliott_> john sidles
20:18:47 <oerjan> yeah
20:19:35 <oerjan> always with a different perspective on the discussions
20:22:50 <elliott_> 11:40:22: <CakeProphet> it's a GHC extension.
20:22:56 <elliott_> um isn't it in haskell twenty ten
20:23:16 * elliott_ maintains heavy scepticism over CakeProphet's explanations of the intimate workings of the GHC optimiser
20:26:31 <oerjan> elliott_: i don't find it (but pattern guards are)
20:26:57 <elliott_> hmm, http://hackage.haskell.org/trac/haskell-prime/wiki/BangPatterns
20:27:38 <elliott_> To recover Haskell 98 semantics for a pattern binding, use a tilde:
20:27:38 <elliott_> let ~(x,y) = e in b
20:27:50 <elliott_> heh, BangPatterns violates ninetyeight?
20:27:54 -!- CakeProphet has quit (Ping timeout: 255 seconds).
20:28:23 -!- CakeProphet has joined.
20:28:23 -!- CakeProphet has quit (Changing host).
20:28:23 -!- CakeProphet has joined.
20:29:03 <elliott_> 21:46:01: <Phantom_Hoover> I like it when people use "borealis" in random names.
20:29:05 <elliott_> sexy borealis
20:30:12 <oerjan> elliott_: well ! would be a new keyboard, presumably (although it's already used in data declarations)
20:30:20 <oerjan> >_<
20:30:25 <oerjan> *keyword
20:30:33 <elliott_> for me it _would_ be a new keyboard :D
20:30:35 <elliott_> `addquote <olsner> as always in sweden everything goes to a fixed pattern: thursday is queueing at systembolaget to get beer and schnaps, friday is pickled herring, schnaps and dancing the frog dance around the phallos, saturday is dedicated to being hung over
20:30:36 <oerjan> BAD FINGERS
20:30:39 <HackEgo> 467) <olsner> as always in sweden everything goes to a fixed pattern: thursday is queueing at systembolaget to get beer and schnaps, friday is pickled herring, schnaps and dancing the frog dance around the phallos, saturday is dedicated to being hung over
20:30:42 <elliott_> <oerjan> elliott_: well ! would be a new keyboard, presumably (although it's already used in data declarations)
20:30:44 <elliott_> oerjan: no, as in
20:30:46 <elliott_> <elliott_> To recover Haskell 98 semantics for a pattern binding, use a tilde:
20:30:46 <elliott_> <elliott_> let ~(x,y) = e in b
20:31:12 <elliott_> 22:22:49: <Sgeo> Did comex just call Java a fine language?
20:31:12 <elliott_> 22:23:02: <Sgeo> By pointing to a comment that called it a fine language, I mean
20:31:12 <elliott_> "Do I have to stop idolising him?!?!?!"
20:31:27 <oerjan> elliott_: oh that would be with the strict default suggestion i guess, that's not part of ! patterns alone is it
20:32:21 -!- zzo38 has joined.
20:32:59 <oerjan> elliott_: anyway haskell 2010 only got the parts of prime they managed to agree upon, obviously
20:33:13 <elliott_> oerjan: right
20:33:18 <elliott_> oerjan: they should just standardise GHC :P
20:33:33 <oerjan> but it's a moving target...
20:34:12 <elliott_> oerjan: it's the _only_ target :P
20:34:23 <elliott_> are there even any other compilers that work any more, apart from jhc?
20:34:29 <elliott_> or interpreters, even, every other project is dead
20:34:43 <elliott_> oh there might be that UHC thing
20:34:45 <elliott_> oh, and LHC
20:34:47 <elliott_> but that's it
20:34:52 <oerjan> oh ! cannot be a keyword because it's already an array operator
20:35:25 <oerjan> elliott_: by moving, i mean they cannot standardize on ghc's features until _ghc_ has had them settle down
20:35:30 <elliott_> comex: people who reply to your tweets are really retarded, my condolences
20:35:38 <elliott_> oerjan: here's the spec: Implementations must act identically to GHC.
20:35:52 <oerjan> ok joking, got it
20:36:38 <elliott_> oerjan: you didn't realise? :D
20:37:02 <oerjan> elliott_: until your spec i was assuming there was _some_ kernel of seriousness in there
20:37:25 <elliott_> well, I am serious that there are basically no other viable implementations any more, unfortunately
20:38:29 <zzo38> That won't work very well but maybe do something similar to what I was proposing with C, but do it differently in a way which is suitable for Haskell, instead.
20:39:20 <oerjan> elliott_: there is just too much in ghc for anyone else to reimplement most of it, by now...
20:39:50 <elliott_> oerjan: I'm not sure _that_ is true
20:40:00 <elliott_> oerjan: it's still simpler than C++
20:40:18 <elliott_> and C++ ninety-eight takes about ten years to write a compiler for; C++0x I have no clue
20:40:46 <oerjan> well i am guessing C++ wouldn't have had more than one implementation either if the community size was the same as haskell's
20:41:03 <zzo38> And what I was proposing with C, is I mentioned list of things, which is a superset of C89 but a subset of GNU89. So maybe something similar idea with Haskell.
20:46:16 <elliott_> http://esolangs.org/wiki/Meta_Turing-complete
20:46:17 <elliott_> FUCK OFF TEHZ
20:46:18 <elliott_> JESUS CHRIST
20:46:23 <elliott_> THE WIKI IS NOT YOUR PERSONAL CRAP GROUND
20:46:41 <zzo38> (Also a subset of the features that Clang supports in GNU89 mode)
20:48:25 * elliott_ creates [[Talk:Meta Turing-complete]]
20:50:33 <elliott_> http://esolangs.org/wiki/Brainmaker
20:50:38 <elliott_> oerjan: how much do you love bf extensions
20:50:38 <Lymee> Uh...
20:50:40 <Lymee> Wait.
20:50:46 <Lymee> Isn't that term identical in meaning to "Turing complete"
20:51:16 <elliott_> heh, yes, tehz has the definition wrong
20:51:36 <zzo38> elliott_: Then explain that on the Talk page.
20:51:51 <elliott_> zzo38: i just did
20:51:54 <elliott_> i just realised
20:52:26 -!- CakeProphet has quit (Ping timeout: 240 seconds).
20:54:25 -!- monqy has joined.
20:55:37 <elliott_> hi monqy, tehz made another article
20:56:38 <monqy> oh great
20:57:13 <monqy> Brainmaker, eh?
20:57:20 * oerjan sidles away carefully
20:57:21 <monqy> let me guess it's a brainfuck ripoff
20:58:39 <monqy> ...tehz...:9
20:58:40 <monqy> :(
21:01:34 -!- FireFly has quit (Quit: swatted to death).
21:01:44 <elliott_> monqy: nope
21:01:46 <elliott_> well yes
21:01:49 <elliott_> but the one newer than that
21:01:54 <elliott_> Meta Turing-complete
21:01:57 <monqy> oh jeez another
21:02:00 <monqy> Meta Turing-complete
21:02:03 <elliott_> which he deliberately un-hyphenised from the alpaca article when he created it for some reason
21:02:08 <elliott_> see the talk page :P
21:03:27 <oerjan> i never meta turing. he died before i was born.
21:04:33 -!- calamari has joined.
21:04:43 <monqy> the article is confusing
21:05:25 <monqy> Some super-Turing-complete languages are able to do anything (see Compute/IO), so they are super fully meta Turing-complete.
21:05:28 <elliott_> `addquote <oerjan> i never meta turing. he died before i was born.
21:05:29 <HackEgo> 468) <oerjan> i never meta turing. he died before i was born.
21:06:37 <monqy> Infix notation is one of the 4 possible ways to describe a program. It is not as powerful as the others, so people usually add parenthesis, which makes it a combined notation (Infix-Surround).
21:07:21 <oerjan> fun fun super meta turing-complete
21:07:40 <monqy> super duper meta cool turing-complete
21:12:00 -!- calamari has quit (Quit: Leaving).
21:13:46 <elliott_> oerjan: hmm, if you added a term "value ::? Type" (where Type is constant in the source ofc) to Haskell, of type Bool, would that cause any inconsistency or impurity?
21:13:47 <elliott_> e.g.
21:13:53 <elliott_> isInt :: a -> Bool
21:14:19 <elliott_> (x ::? (Num a) => a would only be true if x was of type "forall a. (Num a) => a", I think)
21:14:38 <elliott_> i.e. I'm not sure isNum :: a -> Bool; isNum x = x ::? (Num a) => a would do what you expected...
21:16:01 <oerjan> elliott_: it would break parametricity
21:16:36 <Sgeo> "Currently, no one has even bothered looking into how to make an interpreter, so this are none. If you are less lazy than the other people reading this article, please make an interpreter, because I am too lazy."
21:16:40 <elliott_> oerjan: oh, duh
21:16:41 <monqy> are there any typeclass extensions that would allow doing something like that
21:16:46 <elliott_> oerjan: hmm, but anything else?
21:16:50 <elliott_> monqy: no afaik
21:17:03 <elliott_> i think the ghc devs would notice breaking parametricity :P
21:18:15 <oerjan> elliott_: it would require an implementation that didn't delete types, naturally
21:18:48 <elliott_> oerjan: well duh, I mean as far as the language itself
21:19:37 <oerjan> elliott_: i doubt it would be _impossible_...
21:20:26 <oerjan> iiuc there is a fusion rule which depends on parametricity
21:21:47 <elliott_> <oerjan> elliott_: i doubt it would be _impossible_...
21:21:48 <elliott_> ?
21:21:56 <elliott_> oerjan: dude, I am just asking if it would break the _language_
21:22:01 <elliott_> i don't care about implementation
21:22:18 <oerjan> elliott_: there's probably some extension which would break :P
21:22:53 <oerjan> i mean newtype deriving is already broken because of other parts that aren't parametric
21:23:24 <elliott_> what other parts?
21:24:05 <oerjan> gadts and type families
21:24:26 <oerjan> you can make unsafeCoerce by mixing them
21:24:40 <elliott_> oerjan: really??
21:24:45 <elliott_> do you have an example?
21:24:47 <elliott_> that sounds cool
21:24:54 <oerjan> lemme look it up
21:25:00 <elliott_> data Foo a where lol :: b -> Foo a
21:31:28 <oerjan> hm it's http://hackage.haskell.org/trac/ghc/ticket/1496 but i'm not sure there's an explicit unsafeCoerce construction
21:32:17 <oerjan> well i guess the example converts between Int and Double
21:33:14 <elliott_> I bet http://hackage.haskell.org/package/eq would let you do horrible things with that
21:33:16 <oerjan> last i heard they were going to introduce new kinds to fix this
21:33:46 <elliott_> ooh, wait
21:33:55 <elliott_> I think you can actually do unsafeCoerce with just eq
21:36:58 <elliott_> http://sprunge.us/DYOQ -- but it's actually not unsafe...
21:36:58 <elliott_> it's == undefiend
21:36:59 <elliott_> undefined
21:36:59 <elliott_> so oh well
21:37:00 <elliott_> oerjan: dammit, the GHC devs thought of this
21:37:01 <elliott_> data a := b where
21:37:02 <elliott_> Refl :: a := a
21:37:02 <elliott_> coerce :: a := b -> a -> b
21:37:03 <elliott_> coerce Refl a = a
21:37:03 <elliott_> typechecks
21:37:04 <elliott_> coerce :: a := b -> a -> b
21:37:04 <elliott_> coerce ~Refl a = a
21:37:05 <elliott_> doesn't
21:37:29 <oerjan> wat
21:37:48 <elliott_> oerjan: because "coerce undefined a" == _|_ in the first version
21:37:48 <oerjan> how can a lazy pattern match change typing
21:37:56 <elliott_> oerjan: because GADTs do
21:38:05 <elliott_> remember, bringing a GADT constructor into scope can change types
21:38:09 <oerjan> oh
21:38:10 <elliott_> that's the whole point of pattern-matching on a GADT
21:38:16 <elliott_> if you make it irrefutable, you can pass in _|_
21:38:20 <elliott_> and introduce a type-system inconsistency
21:38:31 <elliott_> very clever for GHC catching that
21:38:32 <oerjan> heh
21:38:35 <elliott_> [asterisk]of GHC for
21:44:12 -!- CakeProphet has joined.
21:44:12 -!- CakeProphet has quit (Changing host).
21:44:12 -!- CakeProphet has joined.
21:47:14 -!- elliott_ has quit (Remote host closed the connection).
21:47:50 -!- elliott has joined.
21:50:54 <elliott> oerjan: "You cannot use atomically inside an unsafePerformIO or unsafeInterleaveIO. Any attempt to do so will result in a runtime error. (Reason: allowing this would effectively allow a transaction inside a transaction, depending on exactly when the thunk is evaluated.)"
21:50:54 <lambdabot> elliott: You have 3 new messages. '/msg lambdabot @messages' to read them.
21:51:00 <elliott> oerjan: hard to articulate how much that scares me
21:51:12 <elliott> (that it's common enough that they had to check for it, and that unsafePerformIO /can/ be detected)
21:53:45 <pikhq> elliott: Judging from Google, before they tested for it doing that would segfault.
21:54:08 <elliott> but how do they test for it :D
21:54:22 <pikhq> Also, they're not testing for unsafePerformIO or unsafeInterleaveIO, they're testing to see if there's a transaction within a transaction.
21:54:30 <elliott> ah
21:55:14 -!- CakeProphet has quit (Ping timeout: 240 seconds).
21:55:18 <pikhq> And the message is there because they got annoyed by people asking on the mailing list about it.
21:55:19 <oerjan> um that would not seem to be implied by "Any attempt to do so will result in a runtime error."
21:57:02 <oerjan> i guess they could make unsafePerformIO and unsafeInterleaveIO set up a fake transaction automatically if it _wasn't_ inside one
21:57:18 -!- CakeProphet has joined.
21:57:20 <oerjan> but that sounds inefficient :P
21:57:27 <elliott> huh, GLUT is unmaintained?
21:57:43 <elliott> anyway btw i think pikhq is wrong
21:57:50 <oerjan> elliott: what, it's in the platform?
21:57:53 <elliott> newTVarIO :: a -> IO (TVar a)
21:57:54 <elliott> IO version of newTVar. This is useful for creating top-level TVars using System.IO.Unsafe.unsafePerformIO, because using atomically inside System.IO.Unsafe.unsafePerformIO isn't possible.
21:57:56 <elliott> oerjan: no, in general
21:58:02 <elliott> oerjan: not the haskell lib
21:58:06 <elliott> GLUT itself
21:58:17 <elliott> also it's not open source...
21:58:24 <elliott> oh wait
21:58:28 <elliott> there are maintained forks :)
21:58:30 <elliott> well, not forks
21:58:33 <elliott> reimplementations i guess
21:59:32 -!- CakeProp1et has joined.
22:01:35 <elliott> hey pikhq how do you link to glut :q
22:02:06 -!- CakeProp2et has joined.
22:03:01 -!- CakeProphet has quit (Ping timeout: 258 seconds).
22:05:15 -!- CakeProp1et has quit (Ping timeout: 276 seconds).
22:07:58 -!- CakeProp2et has quit (Ping timeout: 246 seconds).
22:09:50 -!- CakeProphet has joined.
22:09:55 -!- CakeProphet has quit (Changing host).
22:09:55 -!- CakeProphet has joined.
22:10:54 -!- clog has quit (Ping timeout: 276 seconds).
22:10:59 -!- clog has joined.
22:11:18 <Sgeo> Ok, that's awesome
22:11:25 * Sgeo wonders how golly-ticker.rle was made
22:15:19 -!- CakeProphet has quit (Ping timeout: 246 seconds).
22:17:21 -!- CakeProphet has joined.
22:23:06 -!- CakeProphet has quit (Ping timeout: 250 seconds).
22:24:52 -!- CakeProphet has joined.
22:24:56 -!- CakeProphet has quit (Changing host).
22:24:57 -!- CakeProphet has joined.
22:25:27 -!- iconmaster has joined.
22:30:36 <Phantom_Hoover> * Sgeo wonders how golly-ticker.rle was made
22:30:37 -!- CakeProphet has quit (Ping timeout: 258 seconds).
22:30:59 <Phantom_Hoover> Glider → glider, LWSS converter, some reflectors.
22:31:09 <Phantom_Hoover> Not terribly complex.
22:31:57 <Sgeo> How much would I have to learn before I could make my own tickers?
22:32:08 <Sgeo> Fact that I have to ask is probably a bad sign
22:32:11 <Phantom_Hoover> ...next to none?
22:32:20 <Phantom_Hoover> You just change the pattern of gliders in the loops.
22:37:24 -!- CakeProphet has joined.
22:37:24 -!- CakeProphet has quit (Changing host).
22:37:24 -!- CakeProphet has joined.
22:40:57 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:45:03 <elliott> http://esolangs.org/wiki/Rand.Next%28%29
22:45:07 <elliott> neither turing-complete nor a language; discuss
22:45:57 -!- CakeProphet has quit (Ping timeout: 258 seconds).
22:46:38 <monqy> rand.Next() is esoteric and created by user Checkmate.
22:47:02 <monqy> I think I'm missing the point
22:47:04 <monqy> is it art?
22:48:39 <elliott> it's shit
22:48:51 <oerjan> an excrement language
22:50:26 <monqy> today is a good day for bad things
22:50:58 <oerjan> so basically, today is the day when the concept of turing-completeness dies a horrible, messy death?
22:51:50 <oerjan> well it _is_ the end times. after the rapture and all.
22:52:48 -!- CakeProphet has joined.
22:52:48 -!- CakeProphet has quit (Changing host).
22:52:48 -!- CakeProphet has joined.
22:52:50 <elliott> oerjan: can you delete that and the meta turing completeness page
22:52:51 <elliott> thanks
22:53:16 <monqy> leave infix notation page for hilarity
22:54:23 <oerjan> elliott: IN UNIVERSO ALTERNATIVO, OERJAN PAGINAS DELET
22:54:37 <Sgeo> Maybe Hutton32 might be easier for my brain to understand?
22:54:37 <elliott> `addquote <elliott> oerjan: can you delete that and the meta turing completeness page <elliott> thanks <oerjan> elliott: IN UNIVERSO ALTERNATIVO, OERJAN PAGINAS DELET
22:54:39 <HackEgo> 469) <elliott> oerjan: can you delete that and the meta turing completeness page <elliott> thanks <oerjan> elliott: IN UNIVERSO ALTERNATIVO, OERJAN PAGINAS DELET
22:54:55 <elliott> `quote asdf
22:54:56 <HackEgo> No output.
22:56:24 -!- cheater__ has joined.
22:56:32 * oerjan was worried he'd got the conjugation wrong there
22:56:48 <elliott> horrific
22:58:37 <Sgeo> elliott, was I ever as bad as Checkmate or the Meta-turing-complete person?
22:59:06 <oerjan> DON'T ANSWER THAT
22:59:49 <elliott> i was avoiding it
22:59:54 <elliott> :D
23:00:00 <oerjan> good, good
23:00:16 <Sgeo> :(
23:03:58 -!- CakeProphet has quit (Ping timeout: 258 seconds).
23:04:23 -!- CakeProphet has joined.
23:04:23 -!- CakeProphet has quit (Changing host).
23:04:24 -!- CakeProphet has joined.
23:05:14 <oerjan> Sgeo: i hope you _do_ realize no one could make a non-snarky response to that kind of question...
23:05:41 <newsham> not even turing?
23:06:54 <oerjan> NOT EVEN TURING
23:07:16 <newsham> happy 99th
23:18:58 <elliott> I wish GHC had idiom brackets
23:19:08 <elliott> Hmm, you could actually do [i| ... |] with Template Haskell
23:19:16 <elliott> applicative-quoters library: Quasiquoters for idiom brackets and an applicative do-notation
23:19:18 <elliott> Success?
23:19:29 <elliott> Hehe, it uses i too
23:19:31 <elliott> http://hackage.haskell.org/packages/archive/applicative-quoters/0.1.0.1/doc/html/src/Control-Applicative-QQ-Idiom.html#i
23:23:57 -!- CakeProphet has quit (Ping timeout: 240 seconds).
23:26:08 -!- CakeProphet has joined.
23:26:08 -!- CakeProphet has quit (Changing host).
23:26:08 -!- CakeProphet has joined.
23:34:42 <CakeProphet> !perl print grep // (1,2,3)
23:34:43 <EgoBot> Not enough arguments for grep at /tmp/input.22143 line 1, near "// ("
23:34:46 <CakeProphet> !perl print grep //, (1,2,3)
23:34:46 <EgoBot> 123
23:34:54 <CakeProphet> !perl print grep /\Q\E/, (1,2,3)
23:34:55 <EgoBot> 123
23:36:15 <oerjan> > foldr shows "" [1,2,3]
23:36:16 <lambdabot> "123"
23:38:37 <elliott> i have this doubt that oerjan knows about TH
23:39:14 <oerjan> i know _about_ TH, i just don't _know_ TH
23:39:19 <elliott> :D
23:40:00 <Phantom_Hoover> <Sgeo> Maybe Hutton32 might be easier for my brain to understand?
23:40:04 <oerjan> > iterate((shows.length<*>(:).head).group)"1"
23:40:05 <Phantom_Hoover> As opposed to...?
23:40:05 <lambdabot> Couldn't match expected type `GHC.Base.String'
23:40:05 <lambdabot> against inferred typ...
23:40:08 <oerjan> ff
23:40:15 <CakeProphet> !perl print (my ($a, $b) = (1,$a))
23:40:15 <EgoBot> 1
23:40:23 <CakeProphet> yeah, didn't think that would work.
23:40:29 <Phantom_Hoover> I don't understand how the 32-cell VN CAs work.
23:40:32 <Phantom_Hoover> They're deep magic.
23:40:41 <elliott> oh, maybe you need haskell-src-meta
23:41:43 <oerjan> > iterate(($"").(shows.length<*>(:).head).group)"1"
23:41:45 <lambdabot> Couldn't match expected type `[GHC.Types.Char] -> b'
23:41:45 <lambdabot> against inferr...
23:41:47 <oerjan> ff
23:42:05 <monqy> CakeProphet: unification or just lucky evaluation order?
23:42:20 <oerjan> > (shows.length<*>(:).head).group)"1"
23:42:21 <lambdabot> <no location info>: parse error on input `)'
23:42:26 <monqy> lucky scoping too or something?
23:42:26 <CakeProphet> I was hoping for lucky evaluation order. :)
23:42:30 <oerjan> > ((shows.length<*>(:).head).group)"1"
23:42:31 <lambdabot> Couldn't match expected type `GHC.Base.String'
23:42:32 <lambdabot> against inferred typ...
23:43:11 <oerjan> oh hm
23:44:27 <CakeProphet> I think this is the most obscene thing I've written in Perl so far: http://pastebin.com/XPcjXL4p
23:44:43 <oerjan> > ((shows.length<*>(:).head)<=<group)"1"
23:44:44 <lambdabot> Couldn't match expected type `GHC.Base.String'
23:44:44 <lambdabot> against inferred typ...
23:44:53 <CakeProphet> it's actually not too bad. Just slightly abusive with map and grep
23:45:01 <CakeProphet> and $_'s
23:45:02 <monqy> !perl my ($a, $b) = (1, $a); print $b
23:45:04 <monqy> !perl my ($a, $b) = (1, $a); print $a
23:45:05 <EgoBot> 1
23:45:14 <monqy> nice silent failure, perl
23:45:31 <CakeProphet> monqy: oh it works fine as an expression, it's just the expression doesn't work like that.
23:45:41 <CakeProphet> it will return (1,undef) from the assignment
23:45:53 <CakeProphet> instead of (1,1), which is what I was going to see if it did.
23:46:08 <CakeProphet> with use strict you would get an actual error of some kind I believe.
23:48:03 -!- azaq23 has joined.
23:48:11 <oerjan> > let (a,b) = (1,a) in (a,b)
23:48:12 <lambdabot> (1,1)
23:49:04 <elliott> oerjan: reminds me of tying the knot
23:49:11 <oerjan> yeah
23:49:27 <monqy> let (a, b) = (1, a : b) in (a, b)
23:49:29 <monqy> oops
23:49:31 <monqy> > let (a, b) = (1, a : b) in (a, b)
23:49:32 <lambdabot> (1,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1...
23:49:47 <monqy> mm
23:50:25 <monqy> I imagine there's some hideous way to do that in perl too
23:50:33 <CakeProphet> no not really.
23:50:42 <CakeProphet> well, yes. it's just too hideous to be obvious.
23:51:53 <CakeProphet> you would have to force laziness, with a number of possible methods.
23:53:06 <CakeProphet> oh hey I just realized something I could do to make adding commands to my bot a cleaner process.
23:53:17 <Sgeo> Phantom_Hoover, as opposed to that golly ticker thig
23:53:19 <Sgeo> thing
23:53:27 <elliott> i like how everyone in #haskell thinks augur was just really creepy to a random person for no reason
23:53:42 <Phantom_Hoover> Sgeo, the Golly ticker isn't very complex at all, like I keep telling you.
23:54:00 <Sgeo> elliott, I wasn't in there, what happened?
23:54:06 <elliott> Sgeo: rocks fell and everyone died
23:54:09 <augur> elliott: creepy? whos acting like im creepy
23:54:12 <augur> noone thats who!
23:54:57 <CakeProphet> one nice thing about Perl that it has in common with Haskell is that it's fairly trivial to define your own control structures.
23:58:29 <CakeProphet> sub with($&) {open my $f, shift; shift->($f); close $f}
23:58:52 <CakeProphet> with '>file.txt' {...}
23:59:00 <elliott> that involves using prototypes though.
23:59:06 <CakeProphet> ...yes it does.
23:59:17 <monqy> mmm delicious perl
23:59:38 <CakeProphet> actually for alphanumeric strings you can use =>, so then...
23:59:46 <CakeProphet> add_cmd help => {...}
23:59:56 <elliott> that produces a warning.
2011-06-25
00:00:00 <elliott> you do use strict and warnings, right?
00:00:08 <CakeProphet> of course, but what is the warning?
00:00:37 <elliott> help is an undefined bareword
00:00:37 * CakeProphet will find out soon enough...
00:01:16 <CakeProphet> first I need to learn emacs regexp so I can save time later...
00:01:34 <oerjan> hm isn't => precisely for _allowing_ barewords before it
00:02:08 <CakeProphet> yeah I don't think it will error.
00:02:21 <CakeProphet> => is essentially a comma that allows a bareword in front of it as a string.
00:02:25 <elliott> oh, right
00:02:29 <elliott> ugh
00:02:47 <monqy> ugh
00:02:50 <CakeProphet> lol...
00:03:46 <CakeProphet> if I had joined this channel for the first time today, I would almost get the impression that you guys don't like esoteric languages.
00:04:15 <elliott> I don't like esolangs that just have weird syntax as their gimmick
00:04:26 <elliott> and I don't program in esolangs when I'm not esoprogramming
00:04:41 <monqy> does perl also have weird semantics I forget
00:04:59 <CakeProphet> yes.
00:05:06 <pikhq> monqy: It has every semantic.
00:05:16 <CakeProphet> !perl "2" + "2"
00:05:18 <CakeProphet> !perl print "2" + "2"
00:05:19 <EgoBot> 4
00:05:20 <monqy> no don't do that
00:05:22 <monqy> urgh
00:05:29 <CakeProphet> !perl print 2 . 2
00:05:30 <EgoBot> 22
00:05:42 * elliott smashes CakeProphet's head in
00:07:31 <monqy> !perl print print
00:07:31 <EgoBot> 1
00:07:38 <monqy> !perl print print + 1
00:07:38 <EgoBot> 11
00:07:45 <monqy> what just happened
00:07:54 <elliott> print (+1) => 1
00:07:57 <CakeProphet> it printed positive one, and then returned 1, which it then printed.
00:07:58 <elliott> print 1 => "1"; 1
00:08:01 <elliott> erm
00:08:03 <elliott> print (+1) => "1"; 1
00:08:03 * Phantom_Hoover → sleep
00:08:05 <elliott> print 1 => "1"; 1
00:08:19 <elliott> augur: link to what edwardk is talking about
00:08:24 <oerjan> !perl print 1 => "1"; 1
00:08:24 <EgoBot> 11
00:08:26 -!- Phantom_Hoover has quit (Quit: Leaving).
00:08:34 <augur> elliott: what
00:08:42 <elliott> er, ski
00:08:51 <augur> elliott: hes not talking about anything
00:08:52 <CakeProphet> elliott: yes the transform to a regular , occurs in the tokenizer, before any precedence is done.
00:09:08 <elliott> <ski> augur : i see you at least mention later that `*' is supposed to have type `One'
00:09:09 <elliott> * hape01_ has quit (Quit: leaving)
00:09:09 <elliott> * kate_r has quit (Remote host closed the connection)
00:09:09 <elliott> * hape01 has quit (Quit: Lost terminal)
00:09:09 <elliott> <augur> ski: im fixing that
00:09:09 <elliott> <ski> btw on page 14, there's a type which extends well into the margin
00:09:11 <elliott> * guy (6334bbac@gateway/web/freenode/ip.99.52.187.172) has joined #haskell
00:09:13 <elliott> * guy has quit (Client Quit)
00:09:15 <augur> elliott: oh i see
00:09:15 <elliott> <augur> also, yeah, theres a lot of stuff that goes into margins :p
00:09:17 <elliott> augur: orly
00:09:26 <augur> you meant i should link to what SKI is talking about
00:09:40 <augur> sorry i thought you were re-addressing that to ski
00:09:42 <augur> who is oddly not here
00:09:42 <augur> ok
00:09:51 <augur> well, youll have to wait until i fix it, elliott!
00:10:00 <elliott> >:|
00:10:05 <oerjan> ski is clearly lambdabot's secret identity
00:10:09 <augur> also, youll just trash it, so
00:10:13 <elliott> no i won't
00:10:16 <elliott> i promise to make no comments at all
00:10:17 <augur> ofcourse you will
00:10:48 <elliott> i promised
00:11:00 <monqy> !perl print print print print print
00:11:01 <EgoBot> 1111
00:11:08 <monqy> wooo
00:11:27 <monqy> !perl print (print (print (print print)))
00:11:27 <EgoBot> 1111
00:12:26 <augur> elliott: right now its bulky and im going to pare it down to something more focused
00:12:33 <Sgeo> @bible matt 5:22
00:12:33 <lambdabot> Unknown command, try @list
00:12:36 <Sgeo> oops
00:12:49 <elliott> ...
00:13:00 <monqy> I agree with elliott
00:13:07 <CakeProphet> oh my god this add_cmd thing is such a beautiful hack.
00:13:22 <elliott> btw
00:13:23 <elliott> foo => {}
00:13:25 <elliott> still requires prototypes
00:13:27 <elliott> unless you add sub
00:14:01 <CakeProphet> hmmm, oh yeah, I guess I would need a sub...
00:15:08 <monqy> !perl ((print print) (print print))
00:15:09 <EgoBot> syntax error at /tmp/input.25532 line 1, near ") ("
00:15:49 <CakeProphet> yeah okay, so you can't call 1 as a subroutine.
00:16:03 <CakeProphet> this is a bug that is likely to be fixed soon.
00:16:10 <CakeProphet> >_>
00:19:16 <CakeProphet> elliott: ah yes, I believe without the sub it's interpreting the { as the start of a hashref.
00:19:50 <CakeProphet> ah well, I'll just use string literals instead of this => nonsense.
00:21:16 <oerjan> > 1 1 :: Int
00:21:17 <lambdabot> 1
00:24:11 <elliott> <dylukes> I've decided programming or trying to understand #haskell while moderately lovesick is hopeless.
00:26:53 <CakeProphet> programming #haskell is indeed pretty difficult.
00:26:59 <CakeProphet> or I would imagine it is. I have never tried.
00:27:46 <zzo38> I have TRANSPARENCY + NIGHTMARE against opponent's STONE BARRAGE, which means there is a 1/16 chance that they can possibly hit me at all.
00:28:15 <zzo38> Possibly even slightly less.
00:28:37 <zzo38> Actually, no, not less.
00:31:58 <oerjan> CakeProphet: it's just a simple #irp dialect
00:32:10 <oerjan> with unusually polite interpreters
00:36:01 <zzo38> And then they try playing BONE ATTACK (1 + 50% to prevent attacks (unless switched)), which is completely useless since I have two Z.R.C. (and even when I don't, I use RECYCLE ENERGY)
00:36:49 <CakeProphet> so type add_cmd name => sub {
00:37:10 <CakeProphet> while not as pretty ass I had hoped, does save me the effort of manually adding commands to a hash table.
00:37:13 <CakeProphet> *typing
00:37:27 <CakeProphet> ...lol, these typos are ridiculous sometimes.
00:37:36 <elliott> CakeProphet: you can actually avoid the sub, I think, with prototype majjik
00:37:45 <CakeProphet> yes but it has to be the FIRST argument for some reason
00:37:49 <CakeProphet> which is way more ugly.
00:38:07 <elliott> I think you could achieve foo => {
00:38:13 <CakeProphet> ...nope.
00:38:15 <elliott> I think there's a Moose thing that uses that syntax
00:38:22 <CakeProphet> oh, well, maybe.
00:38:32 <CakeProphet> elliott: oh, and yes, I've seen Moose. Haven't used it or learned it though.
00:39:09 <CakeProphet> still the prototype document says that the sub or comma isn't required if the & argument is the first one, which is how map, sort, grep, and friends work.
00:39:49 <CakeProphet> foo => { requires the comma but not the sub, which I don't think is a possible case
00:41:00 <Sgeo> Golly wants Perl 5.10 but I only have 5.8 installed, and scared that upgrading will break XChat again
00:43:02 <CakeProphet> has 'node' => (is => 'rw', isa => 'Any');
00:43:19 <CakeProphet> it uses the {} with hashrefs but I don't see any anonymous subs.
00:44:19 <CakeProphet> before, after, and around use name => sub {...}
00:46:29 <CakeProphet> I could do something like command {...} name => category => documentation
00:46:41 <CakeProphet> but that puts all of the information after a huge block of code.
00:49:18 <CakeProphet> hmmm
00:49:31 <CakeProphet> !perl print => => =>
00:49:42 <CakeProphet> !perl print a => b => =>
00:49:42 <EgoBot> ab
00:49:45 <CakeProphet> haha, nice.
00:50:08 <CakeProphet> !perl print a => => b =>
00:50:09 <EgoBot> ab
00:51:45 -!- oerjan has quit (Quit: Good night).
00:53:31 -!- zzo38 has quit (Remote host closed the connection).
00:56:13 * Sgeo notes with alarm only having 5GB free
01:01:31 <elliott> ?hoogle f (f a) -> f a
01:01:31 <lambdabot> Control.Monad join :: Monad m => m (m a) -> m a
01:01:31 <lambdabot> Prelude concat :: [[a]] -> [a]
01:01:31 <lambdabot> Data.List concat :: [[a]] -> [a]
01:01:35 <elliott> hmm
01:01:44 <elliott> :t (id <*>)
01:01:45 <lambdabot> forall a b. ((a -> b) -> a) -> (a -> b) -> b
01:01:50 <elliott> :t (pure id <*>)
01:01:51 <lambdabot> forall a (f :: * -> *). (Applicative f) => f a -> f a
01:03:21 <monqy> :t fmap id
01:03:22 <lambdabot> forall a (f :: * -> *). (Functor f) => f a -> f a
01:06:08 -!- Lymee has quit (Quit: 1... 2... 3... HUGS! :D).
01:07:55 -!- Vorpal has quit (Read error: Operation timed out).
01:21:45 -!- cheater__ has quit (Ping timeout: 255 seconds).
01:34:54 -!- cheater__ has joined.
01:55:41 -!- iconmaster has quit (Quit: Pardon me, but I have to go die in NetHack again.).
03:40:44 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:41:46 -!- azaq23 has joined.
03:50:51 -!- pikhq has quit (Read error: Operation timed out).
03:52:58 -!- pikhq has joined.
04:05:03 <pikhq> 6 down, 44 to go.
04:05:09 <Sgeo> :D
04:05:36 <elliott> pikhq: wat
04:05:55 <pikhq> elliott: The New York state legislature just voted to legalise same-sex marriage.
04:06:05 <elliott> oh
04:06:11 <elliott> do you want a fucking cookie
04:06:25 <elliott> congratulations, your legislature is not completely composed of entirely disgusting sub-humans
04:06:38 <pikhq> elliott: You live in a theocracy. You may shut up now.
04:08:25 <elliott> pikhq: no, I don't
04:08:45 <elliott> I live in a de jure monarchy, which is a completely different thing.
04:09:13 <elliott> A constitutional monarchy, at that.
04:22:39 <pikhq> elliott: You have no constitution, and your monarch is By the Grace of God Queen.
04:23:04 <pikhq> The very basis of your form of government is a divine grant of power.
04:23:21 <elliott> http://en.wikipedia.org/wiki/Constitutional_monarchy lists the UK as a constitutional monarchy, and you are deliberately using an interpretation of "theocracy" you know to be bullshit to troll me, so basically shut up.
04:23:46 <pikhq> What constitution do you have?
04:24:49 <elliott> "Constitutional monarchy (or limited monarchy) is a form of government in which a monarch acts as head of state within the parameters of a constitution, whether it be a written, uncodified or blended constitution."
04:25:08 <elliott> We do not need an explicit, written constitution to be a constitutional monarchy.
04:25:22 <pikhq> elliott: Okay, fine, fine, I'll stop trolling and go with a much more *relevant* criticism.
04:25:33 <elliott> pikhq: Also, please see http://en.wikipedia.org/wiki/Constitution_of_the_United_Kingdom
04:25:37 <pikhq> elliott: Your country doesn't have same-sex marriage.
04:26:03 <elliott> pikhq: No, but it has civil unions; all that needs to be done is to abolish marriage as a governmental institution.
04:26:39 <elliott> And then remove all the additional restrictions civil unions have, but hey, how many states do you have to go?
04:30:20 <pikhq> So, in short, you have yet to do it. So your legislature may be entirely composed of entirely disgusting sub-humans.
04:30:53 <elliott> pikhq: nope, all I care about is the existence of gender-nondiscriminatory civil unions
04:31:05 <elliott> marriage is an acceptable substitute
04:31:29 <elliott> discriminatory marriage should not exist if nondiscriminatory unions exist, but it's not nearly as huge a problem
04:31:38 <pikhq> elliott: The issue being, of course, that many forms of "civil union" give distinct rights from a marriage.
04:32:04 <elliott> yeah but most of the rights marriage gives are total bullshit.
04:32:14 <pikhq> How so?
04:32:46 <elliott> because they tie the idea of loving someone unconditionally 4evaaa with certain arrangements like taxes
04:34:22 <pikhq> Okay, true, those are BS.
04:35:32 <pikhq> TBH, I'd rather for government recognition of marriage to go away, but it seems much more likely to get a gender-indiscriminate definition of the institution through than to eliminate marriage on a government level.
04:35:45 <pikhq> I mean, if you thought the "WAR ON MARRIAGE" types were bad now...
04:36:13 <elliott> i love how you let your political space be defined by what will make the biggest idiots slightly less angry
04:36:29 <Sgeo> Under interpretations of QM where wavefunction collapse occurs, when does it occur?
04:37:06 <pikhq> elliott: The important thing is to get equal treatment of all people under the law.
04:38:20 <elliott> pikhq: that won't happen in america for a long long time
04:38:25 <elliott> at least not by the current rate
04:38:34 <pikhq> elliott: It seems unwise to fight for the platonic ideal legal system, which is impractical, when you could fight to get a good legal system, which is practical.
04:38:40 <pikhq> How so?
04:39:25 <elliott> pikhq: When do you think incestuous marriages will be legalised?
04:39:30 <elliott> Few years? Decade?
04:39:37 <elliott> A billion trillion years from now?
04:40:19 <pikhq> https://secure.wikimedia.org/wikipedia/en/wiki/Nirvana_fallacy
04:40:28 <elliott> <pikhq> elliott: The important thing is to get equal treatment of all people under the law.
04:40:35 <elliott> So by equal treatment of all people
04:40:37 <elliott> you mean equal treatment of some people.
04:40:42 <pikhq> https://secure.wikimedia.org/wikipedia/en/wiki/Nirvana_fallacy
04:40:48 <Sgeo> elliott, he means as close an approximation as possible
04:40:49 <elliott> pikhq: I was responding to the EXACT thing you said.
04:40:53 <elliott> I did not exaggerate your claim at all.
04:41:01 <elliott> You said: Equal treatment of all people under the law, when relating to marriage.
04:41:04 * Sgeo again realizes that he should not worship elliott
04:41:15 <elliott> You didn't say "gay marriage", you didn't say anything like that, you said "equal treatment of all people".
04:41:30 <elliott> Sgeo: Sorry, in future I will assume people said other things than what they actually said to be accommodating.
04:42:01 <Sgeo> I think I may have fallen for the Nirvana fallacy before, hmm
04:42:08 <Sgeo> Don't remember when, though
04:42:16 <pikhq> elliott: You seem to think that my statement that that is *important* also means that I think it can happen.
04:42:35 <pikhq> elliott: When, in fact, that statement is meant as a statement of *priority*.
04:43:06 <elliott> OK, in a billion billion trillion years you can replace marriages with civil unions, then.
04:43:22 <pikhq> Stop being dense.
04:43:45 <elliott> I'm not being dense, you're just not making any sense and assuming it's my fault.
04:44:11 <elliott> I was talking about abolishing marriage in favour of civil unions; you said that was a far-off goal, and the important thing was equal marriage rights for all people under the law.
04:44:26 <elliott> That will take forever, so what you are saying is that replacing marriage has to wait until forever.
04:44:36 <pikhq> -_-'
04:45:03 <elliott> Have you considered that it may be your failure to communicate at fault rather than my intentional denseness?
04:45:14 <elliott> I see no other way to interpret what you said.
04:45:33 <pikhq> The *intent* of that statement was "I would rather have a change in law that makes things more equitable right now than a change in law that also makes the law the platonic ideal law."
04:46:01 <pikhq> (that would undoubtedly not happen for ages, because "ZOMG WAR ON MARRIAGE")
04:46:27 <pikhq> Or, TL;DR: Shaddup.
04:46:36 <elliott> I can see that charitable interpretation, but your responses that did not immediately correct me made me assume that I had interpreted correctly the first time round. I mean, come on, you're hardly the most charitable interpreter of statements yourself.
04:47:07 <Sgeo> Am I usually a charitable interpreter of statements? I think I'm too charitable when it comes to online idiots
04:47:55 <elliott> You usually just get confused before you can actually interpret anything IME.
04:49:18 <pikhq> elliott: "It seems unwise to fight for the platonic ideal legal system, which is impractical, when you could fight to get a good legal system, which is practical." That makes sense under another interpretation?
04:51:01 <elliott> <pikhq> elliott: The important thing is to get equal treatment of all people under the law.
04:51:04 <elliott> That is the statement in question.
04:51:09 <pikhq> That was my response.
04:51:10 <elliott> I pushed <pikhq> elliott: It seems unwise to fight for the platonic ideal legal system, which is impractical, when you could fight to get a good legal system, which is practical.
04:51:15 <elliott> to the stack while answering <pikhq> How so?
04:51:18 <elliott> in reply to <elliott> pikhq: that won't happen in america for a long long time
04:51:19 <elliott> <elliott> at least not by the current rate
04:51:22 <elliott> which was in reply to <pikhq> elliott: The important thing is to get equal treatment of all people under the law.
04:51:35 <elliott> Technically it was at the top of the stack until just now when you popped it.
04:52:21 <pikhq> I'm pretty sure our stacks got desynced.
04:53:17 <elliott> let's talk about something more fun:
04:53:18 <elliott> Runtime bound checking is retarded. You need it only for code that is buggy in the first place. I manage a multi million LOC project in C and not once in the 8 years I worked for that project would a bound checking have helped to find a bug. Are there array bound overflows in our code? May be, probably not much. Would it matter, not in the least, would the wasted time matter, yes a lot. If bound checking matters to you, go on,play with Java, Pasc
04:53:18 <elliott> al and others, but let us our C which allows us to get as near as bare metal as it gets. – tristopia May 16 '10 at 9:47
04:53:18 <elliott> hehe, programmer machismo
04:54:06 <pikhq> Heheh, *misguided* programmer machismo.
04:54:19 <elliott> is there another kind?
04:54:38 <pikhq> This guy probably also thinks garbage collection is slow.
04:54:50 -!- zzo38 has joined.
05:00:22 -!- copumpkin has joined.
05:00:23 -!- copumpkin has quit (Changing host).
05:00:23 -!- copumpkin has joined.
05:02:07 <zzo38> WRONG
05:02:24 <elliott> :(
05:06:04 -!- derrik has joined.
05:09:12 -!- derrik has left.
05:17:02 <zzo38> The six side cards game is a more stategic game. Sometimes the best defense is to let the opponent knock you out. Sometimes the best defense is to not attack. Sometimes the best offensive move is to use CURSE or something like that......
05:17:51 <zzo38> If you know your opponent's deck you might want to use the PROPHECY defense
05:24:03 <elliott> ?unmtl Cont r a
05:24:03 <lambdabot> (a -> r) -> r
06:08:01 <elliott> "The terms combiner and operative were favored for their mnemonic value. Applicative was chosen for its mnemonic semi-symmetry with operative (see also [Ba78,
06:08:01 <elliott> §2.2.2]); more stringent symmetry would have analogized operand/operative with argument/argumentative, but the term argumentative was too distracting to use."
06:15:03 -!- derrik has joined.
06:32:09 -!- pikhq_ has joined.
06:32:09 -!- pikhq has quit (Ping timeout: 258 seconds).
06:48:35 <elliott> Deewiant: Ping.
06:48:47 <elliott> Deewiant: In REFC, does R always return the same scalar for the same vector?
06:48:54 <elliott> Or can it produce a new scalar each time?
06:49:09 <elliott> And if the latter, would this be an inefficient implementation?
07:05:31 <zzo38> It seems that the rand.Next() esolang is really a variant of Wait.
07:08:30 <elliott> huh, people find iteratees hard to understand
07:26:56 <Sgeo> Well, I just played Portal 2 multipayer with either my friend or my friend's sister, not entirely sure which
07:27:12 <elliott> same person
07:27:20 <Sgeo> no
07:28:37 <Sgeo> I couldn't tell if the game was making my friend's voice high-pitched, or that was his sister in a more normal voice
07:28:44 <Sgeo> This is sad.
07:36:01 -!- monqy has quit (Quit: hello).
07:39:34 <newsham> ?unmtl State s
07:39:34 <lambdabot> err: `State s' is not applied to enough arguments, giving `/\A. s -> (A, s)'
07:39:46 <newsham> ?unmtl State s x
07:39:46 <lambdabot> s -> (x, s)
07:40:04 <newsham> ?unmtl Reader s x
07:40:04 <lambdabot> s -> x
07:41:03 <elliott> ?unmtl ReaderT s (WriterT s (StateT r ST)) a
07:41:03 <lambdabot> s -> r -> ST (a, s, r)
07:41:17 <newsham> ReaderT WriterT ArithmeticT
07:41:47 <newsham> ?src Reader (>>=)
07:41:48 <lambdabot> Source not found. The more you drive -- the dumber you get.
07:41:55 <newsham> ?src Reader s (>>=)
07:41:55 <lambdabot> Source not found. And you call yourself a Rocket Scientist!
07:41:57 -!- derrik has quit (Quit: left).
07:42:14 <elliott> woo, this might actually work
07:52:17 -!- Phantom_Hoover has joined.
07:52:59 -!- pikhq has joined.
07:53:01 -!- pikhq_ has quit (Ping timeout: 260 seconds).
07:55:24 <elliott> hi Phantom_Hoover
07:55:32 <elliott> wow, enumerator use can be really counter-intuitive
07:55:48 <elliott> E.printChunks True E.>>== EB.enumHandle 8192 h -- how do I print every chunk of an enumerator? simple, feed the printer _in_ to it. err...
08:12:46 -!- pikhq has quit (Ping timeout: 246 seconds).
08:12:49 -!- pikhq_ has joined.
08:18:11 -!- zzo38 has quit (Remote host closed the connection).
08:19:08 <elliott> ?hoogle Int -> m a -> m [a]
08:19:09 <lambdabot> Control.Monad replicateM :: Monad m => Int -> m a -> m [a]
08:19:09 <lambdabot> Text.ParserCombinators.ReadP count :: Int -> ReadP a -> ReadP [a]
08:19:09 <lambdabot> Prelude drop :: Int -> [a] -> [a]
08:26:32 <elliott> ?hoogle ignore
08:26:32 <lambdabot> Text.Regex.Posix.ByteString compIgnoreCase :: CompOption
08:26:32 <lambdabot> Text.Regex.Posix.Sequence compIgnoreCase :: CompOption
08:26:33 <lambdabot> Text.Regex.Posix.String compIgnoreCase :: CompOption
08:26:34 <elliott> ?hoogle void
08:26:34 <lambdabot> Foreign.Marshal.Error void :: IO a -> IO ()
08:27:07 <newsham> ?hoogle Terror
08:27:08 <lambdabot> System.IO.Error doesNotExistErrorType :: IOErrorType
08:27:08 <lambdabot> Network.StreamSocket handleSocketError :: Socket -> IOException -> IO (Result a)
08:27:08 <lambdabot> System.IO.Error ioeGetErrorString :: IOError -> String
08:40:07 -!- krbot has joined.
08:40:07 -!- krbot has quit (Excess Flood).
08:42:47 -!- krbot has joined.
08:42:47 -!- krbot has quit (Excess Flood).
08:46:26 -!- krbot has joined.
08:46:26 -!- krbot has quit (Excess Flood).
08:53:32 -!- krbot has joined.
08:53:32 -!- krbot has quit (Excess Flood).
08:56:02 <elliott> bye krbot
08:59:21 -!- krbot has joined.
08:59:21 -!- krbot has quit (Excess Flood).
09:00:40 -!- krbot has joined.
09:00:40 -!- krbot has quit (Excess Flood).
09:01:49 -!- krbot has joined.
09:01:49 -!- krbot has quit (Excess Flood).
09:07:07 -!- krbot has joined.
09:07:07 -!- krbot has quit (Excess Flood).
09:09:35 <elliott> who the fuck is running krbot
09:10:15 -!- krbot has joined.
09:10:15 -!- krbot has quit (Excess Flood).
09:10:47 <elliott> ?tell krbot STOP IT
09:10:47 <lambdabot> Consider it noted.
09:14:29 <coppro> wow, over 43 hours
09:15:15 <coppro> gogofilibuster
09:29:06 -!- cheater__ has quit (Ping timeout: 255 seconds).
09:35:22 -!- krbot has joined.
09:35:53 <elliott> krbot: NO
09:35:54 <elliott> STOP
09:35:56 <elliott> EVIL
09:35:57 <elliott> ONE
09:35:58 <elliott> krbot: DIE
09:35:59 <elliott> krbot: DIE
09:36:00 <elliott> krbot: DIE
09:36:05 <elliott> DIE FOREVER
09:38:53 -!- krbot has quit (Remote host closed the connection).
09:42:38 -!- cheater__ has joined.
09:46:12 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
09:46:21 <Deewiant> elliott: It can, and no, not particularly inefficient, REFC is inefficient by definition
09:47:29 <elliott> Deewiant: Right, I'm just wondering whether the idea is to have an immutable store of vectors or a bijection of sorts
09:47:36 <elliott> How do you implement it?
09:48:39 <Deewiant> Array :-P
09:50:47 <elliott> Deewiant: I mean,
09:50:51 <elliott> Do you just generate a new integer each time?
09:52:50 -!- oerjan has joined.
09:52:56 -!- krbot has joined.
09:55:55 -!- krbot has quit (Remote host closed the connection).
09:56:33 -!- krbot has joined.
09:56:58 <elliott> krbot: i will
09:56:59 <elliott> feast
09:56:59 <elliott> upon
09:57:01 <elliott> your blood
09:57:05 <elliott> oerjan: its been joining then quitting for abotu an hour now
09:57:08 <elliott> before with excess flood
09:57:15 <elliott> plz ban
09:57:21 <elliott> (it has never said a thing)
09:58:05 <oerjan> this is not your bot?
09:58:10 <elliott> no
09:58:21 <elliott> * krbot (~krbot@c-67-161-7-167.hsd1.ca.comcast.net) has joined #esoteric
09:58:21 <elliott> * krbot has quit (Excess Flood)
09:58:21 <elliott> * krbot (~krbot@c-67-161-7-167.hsd1.ca.comcast.net) has joined #esoteric
09:58:21 <elliott> * krbot has quit (Excess Flood)
09:58:21 <elliott> * krbot (~krbot@c-67-161-7-167.hsd1.ca.comcast.net) has joined #esoteric
09:58:22 <elliott> * krbot has quit (Excess Flood)
09:58:24 <elliott> [etc.]
09:58:31 -!- ChanServ has set channel mode: +o oerjan.
09:58:38 <elliott> (diff) (hist) . . Talk:Meta Turing-complete‎; 07:51 . . (+491) . . TehZ (Talk | contribs)
09:58:38 <elliott> oh god
09:58:42 -!- oerjan has set channel mode: +b *!*krbot@*.hsd1.ca.comcast.net.
09:58:42 -!- oerjan has kicked krbot krbot.
09:58:45 <elliott> oerjan: have you got a fire extinguisher
09:59:02 -!- oerjan has set channel mode: -o oerjan.
09:59:06 <oerjan> wat
09:59:18 <elliott> hahahahaha wow
09:59:19 <elliott> http://esolangs.org/wiki/Talk:Meta_Turing-complete
09:59:21 <elliott> hes an idiot
10:00:52 <Deewiant> elliott: Yes, an array to which the new vector gets appended every time
10:01:03 <elliott> Deewiant: Right
10:03:49 * elliott saves responses
10:03:57 <elliott> dunno why I'm bothering, tehz is an idiot
10:05:04 <elliott> Deewiant: Hey, you're a knowledgable kind of guy, what's the Wikipedia-namespace page spelling out that the existence of worse offenders does not justify a page being bad?
10:05:27 <Deewiant> Dunno
10:05:30 <elliott> Darn.
10:07:36 -!- Phantom_Hoover has joined.
10:09:26 <elliott> hi Phantom_Hoover
10:10:08 -!- sebbu has joined.
10:10:09 -!- sebbu has quit (Changing host).
10:10:09 -!- sebbu has joined.
10:13:01 -!- sebbu2 has quit (Ping timeout: 264 seconds).
10:18:24 <elliott> Message (Just (ServerPrefix "wolfe.freenode.net")) (Command "NOTICE") ["*","*** No Ident response"]
10:18:25 <elliott> Message Nothing (Command "ERROR") ["Closing Link: 127.0.0.1 (Connection timed out)"]
10:18:25 <elliott> Message (Just (ServerPrefix "wolfe.freenode.net")) (Command "NOTICE") ["*","*** Couldn't look up your hostname"]
10:18:28 <elliott> WHY IS THIS IN THE WRONG ORDER
10:18:30 <elliott> oh wiat
10:18:32 <elliott> wait
10:20:03 <elliott> grrr
10:20:05 <elliott> why is it nondeterministic
10:21:04 <coppro> this filibuster is awesome
10:22:38 <Sgeo> coppro, hmm?
10:24:16 <coppro> Sgeo: The House of Commons of Canada is experiencing a filibuster right now
10:24:34 <coppro> an honest-to-god let's-talk-ourselves-dead-about-how-this-is-a-bad-idea filibuster
10:26:04 -!- Slereah has quit (Ping timeout: 276 seconds).
10:27:33 <Sgeo> What's being filibustered exactly?
10:28:05 <elliott> the concept of filibustering
10:28:37 <Sgeo> lol
10:32:47 <oerjan> i never meta filibuster
10:33:20 -!- Slereah has joined.
10:34:21 <augur> elliott: wait what
10:34:22 <augur> really?
10:34:31 <elliott> augur: yes.
10:34:45 <augur> hah
10:34:46 <oerjan> trust elliott, he never lies
10:34:56 <elliott> indeed.
10:34:57 <augur> well, i could believe it
10:34:58 <augur> so
10:35:04 <augur> its entirely plausible
10:35:17 <oerjan> its entirely plausible what?
10:35:18 <augur> controversial legislation often gets filibustered
10:35:29 <augur> and filibuster legislation is among the most controversial
10:35:37 <augur> its often called the nuclear option
10:40:44 -!- augur has quit (Remote host closed the connection).
10:55:03 <coppro> Sgeo: sorry, was off writing
10:55:09 <coppro> Sgeo: A back-to-work bill for Canada Post
10:55:17 <coppro> it looks to be a pretty damn rotten bill for the union
10:58:16 <elliott> oerjan: Is :^S() Underload output-complete?
11:00:24 <oerjan> i doubt it, there is trouble printing many strings
11:00:55 <elliott> oerjan: Howso? Lack of arbitrary effect at arbitrary point type thing for S?
11:01:05 <elliott> Consider (foo)S as atomic
11:01:06 <oerjan> e.g. there is just no way you can make (((:^):^))S in a self-deletable way
11:02:32 <elliott> right
11:02:38 <elliott> Can :!()^S do it?
11:02:54 <oerjan> almost certainly
11:03:33 <elliott> What about ~:()^S? :P
11:04:20 -!- augur has joined.
11:05:30 <oerjan> that section implies only some printing is supported.
11:05:53 <oerjan> there is a trick i used to sometimes be able to print _one_ arbitrary string
11:06:13 <oerjan> (you can put it in the beginning of the program so you never need to delete it)
11:07:01 <elliott> how do you encode lists in underload again? I am so rusty :(
11:08:05 <oerjan> several possibilities
11:08:21 <elliott> I'M WAITING ;D
11:08:58 <oerjan> ((a)~^(b)~^(c)~^...) is one way, that requires you to always iterate through the whole list, though
11:09:09 <oerjan> another way is to use conses
11:09:32 <oerjan> ((a)((b)((c)(...))))
11:10:28 <oerjan> (that one has no useful end mark, you can add a flag at each step or something)
11:10:53 <coppro> Sgeo: The house has been sitting for nearly 48 hours now
11:11:11 <elliott> oerjan: the former is basically a fold, right?
11:11:21 <oerjan> yeah more or less
11:11:55 <elliott> oerjan: prettiest :D
11:12:02 <elliott> oerjan: hm is there a way to make it a lazy fold somehow...
11:12:06 <elliott> to avoid the whole-list thing
11:12:41 <oerjan> elliott: that's what the cons version is for
11:13:30 <elliott> oerjan: but that one is ugly
11:13:51 <elliott> oerjan: i'm thinking you could pass a thunk to the folding function instead
11:14:14 <oerjan> well it _needs_ to be nested if you are to avoid evaluation from an arbitrary point, i think...
11:14:23 <elliott> of course
11:14:58 <elliott> ((a)~((b)~((c)~(...)~^)~^)~^)
11:15:00 <elliott> oerjan: what about that?
11:15:12 <elliott> may want the thunk first
11:15:16 <elliott> :t foldr
11:15:17 <lambdabot> forall a b. (a -> b -> b) -> b -> [a] -> b
11:15:20 <elliott> or not
11:17:07 <elliott> oerjan: hm what's cons with that...
11:17:34 <elliott> oerjan: a(~)*~a*(~^)*
11:17:57 <elliott> ^ul (a(~)*~^a*(~^)*)((a)~((b)~((c)~(...)~^)~^)~^)^S
11:18:04 <elliott> ugh
11:18:14 <elliott> !underload (a(~)*~^a*(~^)*)((a)~((b)~((c)~(...)~^)~^)~^)^S
11:18:16 <EgoBot> Error: Stack underflow in *
11:18:18 <elliott> oops
11:18:32 <elliott> !underload ()(a(~)*~^a*(~^)*)((a)~((b)~((c)~()~^)~^)~^)^S
11:18:32 <EgoBot> ​((((b)~((c)~()~^)~^)~))~^
11:18:39 <elliott> oerjan: close!
11:19:31 <oerjan> mhm
11:19:43 <elliott> oerjan: you sound unimpressed with my structure :D
11:19:52 <elliott> !underload ()(a(~)*~^a*(~^)*)((a)~((b)~((c)~(^)~^)~^)~^)^S
11:19:53 <EgoBot> ​((((b)~((c)~(^)~^)~^)~))~^
11:19:54 <oerjan> i'm not much in the mood for this
11:21:03 <oerjan> don't you want the consing code at the top...
11:21:40 <elliott> oerjan: um i'm trying to do foldr (:)
11:21:41 <elliott> i.e. id
11:21:50 <oerjan> ah
11:22:03 <elliott> !underload ()(a(~)*~^~a*(~^)*)((a)~((b)~((c)~(^)~^)~^)~^)^S
11:22:03 <EgoBot> ​(((b)~((c)~(^)~^)~^)~)()~^
11:22:12 <oerjan> well you need your thunk to self-duplicate so you can use it at the next step
11:22:16 <elliott> i'm worried that changing my function seems to do very little :D
11:22:27 <elliott> oerjan: the idea is that the list itself handles the thunk... i think
11:22:33 <elliott> this structure is not very elegant >_>
11:22:35 <coppro> Sgeo: http://blog.pirateparty.ca/?p=133 if you want more explanation
11:22:46 <oerjan> well as written, it doesn't :P
11:23:21 <oerjan> elliott: my intuition is that lists might be large, so you don't want them to include more of the logic for using them than necessary
11:23:41 <elliott> coppro: have they slept
11:23:49 <elliott> oerjan: yeah... the cons structure is probably better, even if it is ugly :(
11:24:46 <oerjan> i don't see what's so ugly about it
11:24:47 <elliott> "Anyhow, this Senator read from his own book and was, in a brilliant move, accused by the other side of reading from it just to receive a free translation from the Parliamentary transcriptions."
11:24:54 <elliott> oerjan: non-functional
11:24:59 <elliott> folds are nice
11:26:54 <coppro> elliott: rotating sleep obviously. The House has been sitting continously
11:27:03 <coppro> the Conservatives are in a real bind, as I note at the bottom
11:27:23 <coppro> since they can't move the previous question
11:27:32 <elliott> coppro: meh, they should ban sleeping in parliament
11:27:37 <elliott> make it a battle of strength
11:27:40 <elliott> and coherency
11:27:49 <elliott> penalties for non-grammatical sentences, slurring
11:28:07 <oerjan> elliott: if the list handles the thunk, then that means the list automatically folds, which means you must always iterate through all of it...
11:28:27 <coppro> elliott: They don't sleep in the House proper
11:28:28 <elliott> oerjan: um it puts (current element)(rest of list) on the stack, basically
11:28:39 <elliott> when calling the fold function
11:28:44 <elliott> coppro: >:(
11:28:49 <coppro> I'd guess there's about 30-40 members in the house at any time
11:28:53 <elliott> coppro: where is their sense of theatre???
11:28:55 <coppro> 20 from the cons to maintain quorum
11:29:11 <coppro> and enough on the other side that they don't ever lose the debate accidentally
11:29:11 <oerjan> elliott: well ok then it's just that the fold function needs to duplicate itself
11:29:22 <elliott> oerjan: right
11:29:36 <elliott> oerjan: ...which makes this basically the cons representation but weird
11:29:51 <elliott> in fact, I think it's identical to the cons representation with a pointless function call included
11:29:51 <oerjan> heh
11:33:11 <elliott> oerjan: anyway what I _really_ want is some kind of possibly-infinite stream type
11:33:16 <oerjan> you _might_ make it a lazy fold, i think
11:33:20 <elliott> which necessarily involves some laziness
11:34:00 <elliott> hmm, /me wonders how efficient a Smith numeral can be
11:34:17 <oerjan> always essentially unary when you use it
11:34:23 <elliott> you can do powers of two logarithmically, and you can add unaryily
11:34:33 <elliott> which is kind of weird
11:34:46 <oerjan> but can be _written_ equivalently to binary easily
11:34:47 <elliott> "better go to the next power of two so it's smaller to store"
11:35:04 <elliott> oerjan: um really? 2^m + n yes
11:35:06 <elliott> but bianry?
11:35:07 <elliott> binary?
11:35:21 <oerjan> well not the exact same _syntax_ of course
11:35:43 <elliott> yes but that's not quite binary...
11:35:47 <elliott> n could be very large
11:36:10 <oerjan> erm not that way
11:36:36 <oerjan> 2(2(2(2*1)+1)+1)
11:36:43 <elliott> hmm
11:36:46 <elliott> right
11:37:27 <elliott> oerjan: can i try and ask you for a lazy stream type you think is nice? :D
11:37:43 <elliott> i'm trying to come up with a sideset of Underload that has nice IO-complete semantics...
11:37:49 <oerjan> WHAT'S WRONG WITH THE CONSES
11:37:56 <elliott> trying to do it by just treating programs as [bit] -> [bit]
11:37:59 <elliott> oerjan: um that's not _lazy_
11:38:03 <elliott> how you do an infinite list of twos?
11:38:04 <elliott> hmm
11:38:09 <elliott> err, s/twos/anythings/
11:38:11 <oerjan> ...self reference.
11:38:46 <elliott> !underload (()~):~*^SS
11:38:47 <EgoBot> Error: Stack underflow in ~
11:39:03 <elliott> !underload (()~):a~*^SS
11:39:03 <EgoBot> ​()~
11:39:09 <elliott> darn
11:39:17 <elliott> !underload (()~:a~*):a~*^SS
11:39:17 <EgoBot> ​(()~:a~*)()~:a~*
11:39:23 <elliott> yay, I think
11:39:34 <elliott> wait, no
11:39:46 <elliott> argh
11:39:57 <oerjan> um i was just writing almost the exact same thing
11:40:34 <elliott> that's not an infinite list of ()s though...
11:40:48 <oerjan> um yes it is
11:40:57 <elliott> <elliott> !underload (()~:a~*):a~*^SS
11:40:57 <elliott> <EgoBot> ​(()~:a~*)()~:a~*
11:40:59 <elliott> it should end or start with ()
11:41:00 <elliott> the output
11:41:00 <oerjan> !underload (()~:a~*):a~*^aSaS
11:41:01 <EgoBot> ​((()~:a~*)()~:a~*)()
11:41:01 <elliott> it didn't
11:41:06 <elliott> oh
11:41:13 <elliott> right
11:41:37 <elliott> now is that or my planned 01I scheme better...
11:41:58 <elliott> (0 -- output 0 bit; 1 -- output 1 bit; (x)(y)I === (x) if 0 inputted, (y) if 1 inputted)
11:42:57 <oerjan> incidentally you can never get IO-complete underload because of parenthesis matching >:)
11:43:10 <oerjan> oh wait
11:43:15 <elliott> oerjan: um no i am outputting with bits
11:43:23 <oerjan> O KAY
11:43:35 <elliott> oerjan: what? even ais ditched the underload IO scheme in underlambda because it sucked :)
11:43:52 <elliott> (for one, it basically makes any kind of optimisation impossible unless you leak a bunch of space storing the original string)
11:44:05 <elliott> (for two, it forces you to embed invalid programs just to output them...)
11:44:15 <elliott> (for three, no way to do input consistently at all)
11:44:51 * oerjan offers his :^ input scheme and cackles evilly
11:44:55 <oerjan> not lazy, though
11:44:58 <elliott> oerjan: what scheme was that?
11:45:10 <oerjan> the one used in the rule 110 CA
11:45:59 <oerjan> one of two possibilities i found for encoding one bit per char
11:46:15 <elliott> hm
11:54:03 <elliott> wish ais was here so i could steal his ideas
11:54:21 * oerjan finds a typo in the :()^ description
12:13:55 <Phantom_Hoover> Am I the only person who found the number of Jew jokes in American media confusing as hell?
12:13:55 <lambdabot> Phantom_Hoover: You have 7 new messages. '/msg lambdabot @messages' to read them.
12:14:03 <Phantom_Hoover> You guys should, like, make a pamphlet or something.
12:14:58 <oerjan> The Daily Phantom_Hoover
12:15:31 <elliott> Phantom_Hoover: thats just because youre a filthy kike LOL
12:15:46 <Phantom_Hoover> elliott, no, then I'd get the jokes.
12:15:47 <elliott> <oerjan> omg I BAnexclamtion marks
12:15:54 <elliott> Phantom_Hoover: no u dont cuz ur a jew => dumb
12:16:35 <Phantom_Hoover> Is that arrow implication?
12:17:11 <elliott> ~<+>
12:19:50 <oerjan> hey no sperm in the channel
13:06:16 -!- derrik has joined.
13:17:27 -!- Vorpal has joined.
13:17:44 <elliott> Browsing of this document (that is, transmission and display of a temporary copy of this document for the ordinary purpose of direct viewing by a human being in the usual manner that hypertext browsers permit such viewing) is expressly permitted, provided that no recopying, redistribution, redisplay, or retransmission is made of any such copy.
13:17:45 <elliott> Bookmarking of this document (that is, recording only the document's title and Uniform Resource Locator, or URL, but not its content, for the purpose of remembering an association between the document's title and the URL, and/or for the purpose of making a subsequent request for a fresh copy of the content named by that URL) is also expressly permitted.
13:23:30 <CakeProphet> I wish Perl had some kind of "HEY SUPPRESS WARNINGS ON THIS LINE" annotation.
13:23:41 <CakeProphet> other than no warnings; ...; use warnings
13:24:32 <elliott> its called commenting that line out
13:24:51 <CakeProphet> no, I want it to execute. I just no longer care about the warning.
13:25:09 -!- oerjan has quit (Quit: SUSPECT WARTHOGS OWN THIS LIE).
13:26:16 <CakeProphet> but it doesn't matter. my shell output only serves to output warnings and debug info anyways.
13:26:36 <CakeProphet> I guess if I were writing a command-line utility I'd eventually comment out use warnings
14:11:16 -!- elliott has quit (Read error: Connection reset by peer).
14:11:21 -!- elliott has joined.
15:52:20 -!- monqy has joined.
15:55:13 -!- elliott has quit (Remote host closed the connection).
15:55:43 -!- elliott has joined.
16:16:33 <cheater__> hello, #exoteric
16:21:15 <Deewiant> #quixoteric
16:37:08 -!- derrik has quit (Ping timeout: 240 seconds).
17:00:59 -!- zzo38 has joined.
17:12:13 -!- Lymee has joined.
17:19:54 -!- cheater_ has joined.
17:23:13 -!- cheater__ has quit (Ping timeout: 250 seconds).
17:23:25 -!- Lymee has quit (Ping timeout: 255 seconds).
17:25:11 -!- derrik has joined.
17:25:33 -!- Lymee has joined.
17:25:35 -!- azaq23 has quit (Quit: Leaving.).
17:28:47 -!- pikhq_ has quit (Read error: Operation timed out).
17:31:06 <Gregor> Conservapedia's news section's coverage of the New York gay marriage bill puts the word "marriage" in scare quotes X-D
17:31:28 -!- ralc has joined.
17:31:29 -!- pikhq has joined.
17:33:27 <Phantom_Hoover> Gregor, you can still get Conservapedia?
17:33:36 <Phantom_Hoover> It's been 403ed in the UK for some time.
17:34:40 <tswett> Yeah, doesn't Conservapedia only allow access to people in the US or something?
17:36:16 <elliott> its been loosened recently
17:39:37 <Gregor> France, of all places, is apparently allowed :P
17:39:49 <Gregor> Maybe in France they /need/ that beacon of hope to carry one.
17:39:51 <Gregor> Err
17:39:51 <Gregor> *on
17:41:12 <tswett> Conservapedia's energy on homeopathy seems pretty accurate.
17:51:33 <Gregor> LOLOLOL: PERFECTION: Best New Conservative Words reach the perfect doubling of 26-52-104-208 by century, demonstrating why the future will inevitably be more conservative.
17:51:54 <Gregor> Doesn't the concept of "new conservative word" go directly against the notion of conservativism? :P
17:52:15 <pikhq> "New" goes against the notion, but don't you dare tell them that.
17:52:16 <pikhq> :P
17:52:58 <Gregor> Amongst the conservative words listed:
17:53:00 <Gregor> aerobics
17:53:06 <Gregor> alcoholism
17:53:10 <Gregor> algorithm
17:53:14 <Gregor> altruism
17:53:29 <Gregor> apple pie
17:53:36 <Gregor> attention span
17:53:45 <Gregor> biased
17:53:45 <tswett> I'm not a liberal. I go jogging three times a week.
17:53:50 <Gregor> biological clock
17:53:57 <tswett> And I sleep regularly.
17:53:57 <Gregor> boomerang
17:54:07 <Gregor> bork
17:54:23 <Gregor> bureaucracy (a word to be proud of if ever there was one)
17:54:52 <Gregor> common sense
17:54:57 <Gregor> competitive
17:55:06 <Gregor> coolant
17:55:17 <Gregor> copyright (another word to hold dear to your heart)
17:55:30 <Gregor> decrypt
17:55:49 <monqy> so uh
17:55:49 <Gregor> decrypt 'illustrates the "can do" approach of conservatism in a patriotic way'
17:56:10 <Gregor> Ruining the decrypter's life because he's gay ALSO illustrates the can-do approach of conservatism :P
17:56:14 <monqy> how are these words conservative and how does the illustrate the inevitability of a conservative future
17:56:33 <Gregor> monqy: That's the joy of Conservapedia!
17:56:38 <Gregor> despotism
17:56:40 <monqy> oh conservapedia
17:57:10 <Gregor> doublethink
17:57:19 <Gregor> efficiency!
17:57:33 <Gregor> exceptional
17:58:12 <Gregor> galvanize (1802) as in, "the liberal proposals galvanized the grassroots in opposition" // lolol
17:58:44 <Gregor> hippie (A more conservative word I am yet to find)
17:59:00 <Gregor> homosexual agenda (this is totes one word)
17:59:13 <Gregor> human rights (conservatives invented them guys)
18:00:20 <Gregor> intellectual property (another word to be written in the 11th commandment)
18:00:29 <newsham> did you get the latest newspeak guide?
18:01:10 <Gregor> newsham: Yes, it's right here on Conservapedia!
18:01:34 <Gregor> Oooh, manifest destiny! Another "word" to stamp on everything
18:02:13 <Gregor> Murphy's Law (1958) if something can go wrong, then it will go wrong: this was a conservative insight by an engineer Edward Murphy
18:02:45 <Gregor> newsham: Heyo, newspeak is one of the words they claim too!
18:03:57 <Gregor> phonics (1684) conservatives have long championed phonics to promote literacy, Bible-reading, and informed voters; liberals take the opposite position
18:04:41 <monqy> i
18:04:41 <monqy> what
18:04:47 <Gregor> productive and productivity are both theirs.
18:05:08 <Gregor> It's a good thing they claim "pseudoscience", since it makes up the bulk of Conservapedia :P
18:05:15 <monqy> how much of conservapedia is literally a joke
18:05:27 <monqy> it's hard to tell
18:05:36 <Gregor> They claim "refudiate"!
18:05:54 <monqy> they can have refudiate
18:06:03 -!- Lymee has quit (Ping timeout: 240 seconds).
18:06:22 <Gregor> Oh no, they've got the Segway!
18:06:54 <Gregor> Well "socialist" is unquestionably a conservative word.
18:07:12 <Gregor> And terrorism!
18:07:18 <Gregor> Also trivia
18:08:24 <Gregor> word poverty (2001) popularized by President George W. Bush // Yes, Dubya unquestionably popularized word poverty :P
18:09:42 <newsham> progressive wasnt their word, but they rebranded it.
18:10:02 <newsham> http://en.wikipedia.org/wiki/War_on_Poverty
18:10:47 <newsham> damn democrats pre-coopting their word
18:10:54 <Gregor> X-D
18:10:57 <newsham> (they can have "pre-coopt" if they want)
18:11:49 <elliott> `addquote <Gregor> decrypt 'illustrates the "can do" approach of conservatism in a patriotic way'
18:11:53 <HackEgo> 470) <Gregor> decrypt 'illustrates the "can do" approach of conservatism in a patriotic way'
18:12:49 <Gregor> Ah yes, the out-of-context quote DB :P
18:13:02 <newsham> context free quotes
18:13:48 -!- pikhq_ has joined.
18:14:00 -!- pikhq has quit (Read error: Operation timed out).
18:20:22 <Phantom_Hoover> Gregor, have you beheld the glory of the Conservative Bible Project.
18:20:50 <Phantom_Hoover> At one point they said that Jesus telling the disciples to cast their nets on the right side of their boat was a clear endorsement of conservatism.
18:21:16 <zzo38> ????
18:23:35 <Gregor> Phantom_Hoover: lololol
18:24:21 <Phantom_Hoover> They also entirely excised the story of the adulterous woman because it went against the death penalty.
18:24:42 <Phantom_Hoover> I think this just confirms that atheists who think they're this way because of religion are on entirely the wrong page.
18:25:30 <Gregor> "Express Free Market Parables; explaining the numerous economic parables with their full free-market meaning " // bahahahaha
18:26:10 <pikhq_> They actually want Republican Jesus. Goodness.
18:29:46 -!- oerjan has joined.
18:29:52 -!- Lymia has joined.
18:29:54 -!- Lymia has quit (Changing host).
18:29:54 -!- Lymia has joined.
18:31:50 -!- MigoMipo has joined.
18:34:21 <elliott> (diff) (hist) . . Talk:Meta Turing-complete‎; 14:48 . . (+688) . . TehZ (Talk | contribs)
18:34:24 <elliott> oh do i want to click this link
18:34:38 <elliott> monqy: i need your moral support
18:34:43 <monqy> [[Talk: Meta Turing-complete]] is awful
18:34:51 <zzo38> O NO. I see some wrong symbol on that paste
18:35:01 <elliott> monqy: please let us read it together
18:35:08 <elliott> i cannot handle it alone
18:35:12 <monqy> it's the worst
18:35:20 <elliott> I can't respond to this until you tell me if you've misplaced the '?'s. --TehZ 14:48, 25 June 2011 (UTC)
18:35:28 <monqy> yeah what does that mean
18:35:36 <elliott> i think hes trying to be awkward?
18:35:38 <elliott> and stubborn?
18:35:39 <elliott> i dunno
18:35:43 <elliott> maybe its meant to be all internet snark
18:35:49 <elliott> It has been used more than once, not just once.--TehZ 14:48, 25 June 2011 (UTC)
18:35:53 <elliott> wow look at all this evidence being presented
18:35:57 <monqy> he used it in brainmaker was it
18:36:18 <elliott> oh i see
18:36:24 <monqy> this makes it legit
18:36:56 <monqy> I know it's a fallacy if you see it without context, but not if someone suggested taking them down while not doing it. In that case, it would be illogical to keep the worst and delete the ones you claim are bad. --TehZ 14:48, 25 June 2011 (UTC)
18:37:14 <monqy> what??
18:37:52 <elliott> yeah i dont even know
18:38:10 <monqy> maybe he's mad that the worse articles haven't been deleted and they have to be deleted before his?
18:38:14 <monqy> but why
18:38:18 <Phantom_Hoover> Hmm.
18:38:42 <Phantom_Hoover> Oh, wait, nothing.
18:39:16 <zzo38> I think the page should be kept to keep the discussion text there at least.
18:39:41 <elliott> zzo38: move to [[Esolang:How not to debate the merits of pages]]
18:41:41 <zzo38> Should there be "Talk talk:" and "Talk talk talk:" prefixes?
18:42:05 <elliott> opt(what.form.state, "AGY", "AGY");
18:42:09 <elliott> NOT HELPFUL PRGMR.COM
18:45:44 <Gregor> Uhhh, what's all this mumbo-jumbo?
18:46:03 <elliott> Gregor: prgmr shows British counties...
18:46:07 <elliott> Gregor: As weird three-letter abbreviations.
18:46:12 <elliott> That I have literally never seen ever.
18:46:16 <elliott> I have no fucking clue what Northumberland's is
18:46:22 <elliott> It's not NTL nor NBL or anything
18:46:52 <Gregor> ISO 3166-2 GB-NBL
18:46:52 <Gregor> ONS code 00EM
18:46:52 <Gregor> NUTS 3 UKC21
18:46:55 <Gregor> None of those? :P
18:47:45 <elliott> wat
18:48:04 <zzo38> Do you know how you can implement something like INTERCAL's computed RESUME in LLVM?
18:48:06 <elliott> theres nbl
18:48:06 <Gregor> Just copied some nonsense from Wikipedia.
18:48:08 <elliott> oh
18:48:09 <elliott> is that it
18:48:10 <elliott> are you sure
18:48:18 <Gregor> It's the ISO 3166-2 code *shrugs*
18:48:20 <elliott> also it still wants a zip cod
18:48:22 <elliott> elol professional
18:48:24 <Gregor> lolsy
18:50:11 <Gregor> Surely you have some comparable postal code to fill in there?
18:50:15 <elliott> Gregor: Yes :P
18:50:19 <elliott> But it also wants my city, I don't live in a city
18:50:22 <elliott> THIS FORM IS ALL KINDS OF BAD
18:50:32 <elliott> Also it says "State/Country" instead of "State/County"
18:50:41 <elliott> DEFINITELY WANT TO TRUST THESE GUYS WITH BILLING INFORMATION
18:50:53 <elliott> "Don't choose Prepaid Card unless you got it from Luke in a promotion at a lug."
18:51:49 <Gregor> Maybe you should list your "country" as England and your "nation" as UK X-P
18:52:02 <elliott> I almost want to write them a nicer form out of pity.
18:52:12 <Lymia> Gregor delurked?
18:52:36 <Gregor> I ... have not been a lurker for, like, years.
18:52:47 <Gregor> Maybe for a week at a time or so, but that's called "having a life" :P
18:52:58 <oerjan> in fact he never reads the channel without speaking immediately
18:53:12 <elliott> Gregor: do you have any idea how overrated lives are
18:53:12 <Gregor> Damn right!
18:53:17 <Gregor> DIS MY CHANNEL BIATCH
18:53:21 <elliott> `addquote <elliott> Gregor: do you have any idea how overrated lives are <Gregor> Damn right!
18:53:22 <HackEgo> 471) <elliott> Gregor: do you have any idea how overrated lives are <Gregor> Damn right!
18:53:31 <Gregor> Also acceptable!
18:53:46 <oerjan> Gregor: see, quotes with context this time!
18:54:14 <Gregor> "<Gregor> Damn right!" wouldn't be much of a quote :P
18:55:25 <elliott> `addquote <Gregor> "<Gregor> Damn right!" wouldn't be much of a quote :P
18:55:26 <HackEgo> 472) <Gregor> "<Gregor> Damn right!" wouldn't be much of a quote :P
18:55:59 -!- Lymia has changed nick to Lymee.
18:58:16 <zzo38> Let's try to figure out how to implement some of INTERCAL's features using LLVM
18:59:08 <zzo38> I think I have read something recently about a variant of LLVM that has something similar to the ABSTAIN/REINSTATE commands in INTERCAL.
19:05:14 -!- augur has quit (Remote host closed the connection).
19:12:01 <elliott> guys
19:12:02 <elliott> guys
19:12:06 <elliott> its time to say goodnight to rutian
19:12:23 <elliott> guys
19:12:25 <elliott> start mourning
19:12:28 <elliott> oerjan: Slereah: your past
19:12:30 <elliott> fading away
19:12:39 <oerjan> what was rutian again
19:12:52 <elliott> server
19:12:53 <elliott> eso-std
19:13:12 <elliott> http://i.imgur.com/A6UQ3.png
19:13:14 <elliott> say goodbye everyone
19:13:53 -!- derrik has changed nick to everyone.
19:13:59 <everyone> goodbye
19:14:13 <monqy> goodbye everyone
19:14:13 -!- everyone has changed nick to derrik.
19:14:18 <elliott> jesus, was that really the 626th slice ever??
19:14:25 <elliott> TEARING UP A LITTLE
19:17:38 -!- zzo38 has quit (Quit: This form doesn't work correctly).
19:21:48 <elliott> Debian GNU/Linux 6.0 rutian tty1
19:21:51 <elliott>
19:21:54 <elliott> INIT: Switching to runlevel: 0
19:21:57 <elliott> INIT: Sending processes the TERM signal
19:22:00 <elliott> INIT: cannot execute "/etc/init.d/rc"
19:22:03 <elliott> INIT: no more processes left in this runlevel
19:22:06 <elliott> R. I. P.
19:22:17 <elliott> Deleting will destroy your Slice and all of its data. It will be removed from your account and you will not be billed for it in the future.
19:22:20 <elliott> Delete rutian
19:22:22 <elliott> is it ok to cry
19:22:33 <Lymee> That was a violent end.
19:22:34 <Lymee> :<
19:22:47 <elliott> Permanently delete this Slice and all of its data? There is no turning back!
19:22:50 <elliott> why would you ask me again
19:22:58 <elliott> i can never call any computer rutian after this, ever again
19:23:11 <newsham> "republican jesus" sounds like a good song name
19:23:21 <newsham> perhaps someone can get in touch with tom waits
19:23:41 <elliott> newsham: excuse me this is a very emotional moment
19:23:43 <newsham> http://www.youtube.com/watch?v=1wfamPW3Eaw
19:23:53 <Lymee> What VPS provider is this?
19:24:00 <elliott> Lymee: slicehost, they used to be great, now they suck
19:24:03 <elliott> bought out by rackspace
19:24:06 <elliott> brand being phased out anywy
19:24:07 <elliott> anyway
19:25:23 <newsham> dont you think execution of rc is a bit extreme?
19:25:26 <newsham> why all this killing?
19:25:41 <elliott> newsham: i was trying to give it a dignified death, not just wiping all the harddrive at once
19:25:46 <elliott> so i set up a memorial and removed /usr, /bin and /home
19:25:52 <elliott> but then i forgot to leave a way to become root to reboot
19:25:54 <elliott> so it's kind of awkward
19:25:59 <elliott> like i was aiming to cut its head clean off
19:26:01 <elliott> and got caught on its spine
19:26:09 <newsham> its linux, it cant be too hard to get root
19:26:10 <newsham> ;-)
19:26:12 <elliott> oh snap
19:26:33 <Phantom_Hoover> elliott, why didn't you think of that¬
19:26:58 <newsham> does your init catch ctrl-alt-del for a clean reboot?
19:27:00 <elliott> Phantom_Hoover: im dumb
19:27:07 <elliott> newsham: how can i sent ctrl+alt+del over ssh
19:27:09 <elliott> send
19:27:12 <elliott> its too late now, but
19:27:18 <newsham> you cant
19:29:51 <elliott> i clicked the link
19:29:53 <elliott> rutian is gone
19:29:54 <elliott> what have I done
19:29:56 <elliott> WHAT HAVE I DONE
19:29:58 <elliott> OH NOOOOOOOOOOOOOOOOOOOO
19:30:23 -!- ChanServ has set channel mode: +o oerjan.
19:30:32 -!- oerjan has kicked elliott YOU MONSTER!.
19:30:41 -!- oerjan has set channel mode: -o oerjan.
19:31:24 <newsham> i mean, killing processes is one thing, but EXECUTING rc?!@#
19:31:43 -!- rutian has joined.
19:31:49 <rutian> i am here .
19:31:53 <rutian> i have always been here .
19:31:58 <rutian> this
19:31:59 <rutian> is
19:32:01 <rutian> not
19:32:02 <oerjan> the ghost of slices past!
19:32:04 <rutian> over
19:32:06 <rutian> .
19:32:09 -!- rutian has quit (Client Quit).
19:32:33 -!- elliott has joined.
19:32:39 <elliott> HELLO GUYS EVERYTHING IS SUPER FINE .
19:32:48 <elliott> I AM DEFINITELY NOT A GHOST PRETENDING TO BE ELLIOTT .
19:32:52 <elliott> THAT WOULD BE RIDICULOUS .
19:32:54 <elliott> HELLO .
19:33:24 <oerjan> just elliott spacing out
19:33:52 <newsham> i know everythign hasnt always been quite right with me but i can asure you now very confidently that it is going to be alright again
19:34:29 <oerjan> wat
19:34:49 <oerjan> oh hm
19:35:08 <elliott> everything is fine .
19:35:12 <elliott> obvious ly .
19:35:52 <Lymee> rm -rf elliott
19:36:03 <elliott> that has already been tried .
19:36:09 <elliott> i mean , wait , what ?
19:36:19 <oerjan> newsham: is that a quote? i cannot find it but it gives me a The Shining vibe...
19:36:27 <Lymee> dd if=/dev/zero of=/dev/mem
19:36:31 <newsham> oerjan: computer in 2001.
19:36:38 <oerjan> oh right
19:37:00 <oerjan> well the vibes may not be very different at that point :P
19:37:22 <elliott> i want rutian back :(
19:37:40 <pikhq_> Far, far too late.
19:37:50 <oerjan> elliott devastated by death, turns into kurzweil clone
19:38:15 <newsham> saved by the kurzweil singularity
19:38:22 <elliott> im going to resurrect rutian
19:38:26 <elliott> with vitamin pills
19:38:29 <elliott> and book sales
19:38:36 <oerjan> newsham: um i think that is missing the point :P
19:38:39 <elliott> `addquote <elliott> im going to resurrect rutian <elliott> with vitamin pills <elliott> and book sales
19:38:40 <HackEgo> 473) <elliott> im going to resurrect rutian <elliott> with vitamin pills <elliott> and book sales
19:38:41 <elliott> i can add new quotes whenever i want
19:38:43 <elliott> even if they're me
19:39:37 <oerjan> `addquote <oerjan> adding quotes by yourself is strictly prohibited and will lead to you being banned
19:39:38 <HackEgo> 474) <oerjan> adding quotes by yourself is strictly prohibited and will lead to you being banned
19:39:51 <elliott> now say it
19:39:55 <elliott> so that it's a retroquote
19:42:06 <oerjan> but i don't feel like banning myself
19:42:36 <Lymee> But the line only occurs in the future.
19:42:41 <Lymee> So it doesn't count.
19:43:33 <newsham> oerjan: sometimes missing the point is best
19:43:49 <newsham> spears and daggers come to mind
19:43:54 <oerjan> well if it'... right
19:44:02 <elliott> oerjan: SAY IT DAMMIT
19:44:24 <newsham> this channel feels very disassociative
19:44:35 <elliott> we usually make slightly more sense
19:44:37 <elliott> slightly
19:44:39 <oerjan> elliott: i shall excuse your insolence since you are grieving
19:44:52 <newsham> in a "mental illness is the road to freedom" sort of way
19:45:02 <elliott> that's kind of the esolang concept isn't it
19:45:39 <oerjan> the road to freedom is paved with mental illnesses
19:46:10 <newsham> if you're on the paved road, you're not going anywhere important
19:46:52 <oerjan> those pesky roads paved with atoms are particularly insidious
19:47:13 <oerjan> although not as much as those paved with wilderness
19:47:14 -!- augur has joined.
19:47:16 <newsham> quarky
19:52:42 <oerjan> newsham: we prefer to call them particles of color
19:53:47 <newsham> :(
19:53:52 <newsham> i'm not a racist
19:54:56 <newsham> though I can never figure out their position and momentum :(
19:59:00 -!- ais523 has joined.
20:00:20 <elliott> ais523
20:00:24 <elliott> we are mourning a very sad loss today
20:00:28 <elliott> I just ... "decommissioned" rutian
20:00:32 <ais523> ouch
20:00:38 <ais523> :(
20:01:02 <elliott> But it shall rise again, its soul incarnated into the heart of a faster, more spacious VPS!
20:04:09 <Phantom_Hoover> newsham, they're all inseparable.
20:04:38 -!- bacaw has quit (Ping timeout: 244 seconds).
20:05:56 -!- tswett has quit (Remote host closed the connection).
20:10:07 -!- elliott_ has joined.
20:10:08 -!- elliott has quit (Read error: Connection reset by peer).
20:11:46 <elliott_> ais523: anyway, don't worry, rutian is happily flying around in a spaceship. forever.
20:12:06 <ais523> :>
20:12:56 -!- krbot has joined.
20:13:42 <elliott_> oerjan: ...
20:13:43 <elliott_> its back again
20:14:09 <oerjan> huh
20:15:47 <oerjan> is it on many other channels?
20:15:57 <elliott_> no way to tell
20:16:31 <oerjan> well it was a _lot_, some of you might happen to be on one...
20:16:49 <ais523> who is krbot?
20:16:54 <elliott_> oerjan: how can you tell if it's a lot?
20:17:08 <oerjan> ais523: no idea but it quit/joined so often this morning that i banned it
20:17:22 <oerjan> krbot: who are you?
20:17:25 <ais523> ah
20:17:36 <elliott_> it didnt respond last time i tried
20:17:36 <ais523> it doesn't respond to ctcp
20:19:13 <oerjan> apparently krbot is a surname...
20:19:26 <elliott_> obviously it's a _bot_
20:19:46 -!- Lymia__ has joined.
20:20:05 <oerjan> ALSO SURNAME
20:20:14 -!- krbot has quit (Remote host closed the connection).
20:20:23 <oerjan> wat
20:21:39 -!- Lymee has quit (Disconnected by services).
20:21:41 -!- Lymia__ has changed nick to Lymee.
20:21:43 -!- Lymee has quit (Changing host).
20:21:43 -!- Lymee has joined.
20:28:58 -!- oerjan has quit (Remote host closed the connection).
20:29:21 -!- oerjan has joined.
20:49:49 -!- Lymia__ has joined.
20:50:25 -!- Lymee has quit (Disconnected by services).
20:50:27 -!- Lymia__ has changed nick to Lymee.
20:50:29 -!- Lymee has quit (Changing host).
20:50:29 -!- Lymee has joined.
21:19:23 -!- zzo38 has joined.
21:23:08 -!- Lymee has quit (Ping timeout: 252 seconds).
21:23:53 <newsham> ?vixen-on
21:23:53 <lambdabot> Not enough privileges
21:24:00 <newsham> thats what she said
21:24:53 <newsham> ?vixen rutian is gone.
21:24:53 <lambdabot> Ok
21:25:28 <elliott_> not ok :(
21:25:36 <newsham> ?vixen thats really cold.
21:25:36 <lambdabot> really really?
21:26:13 <newsham> ?fixen you should apologize to elliott__.
21:26:13 <lambdabot> what were you saying?
21:27:11 <Phantom_Hoover> ?vixen How can you say something like that.
21:27:11 <lambdabot> of course i can
21:27:22 <Phantom_Hoover> ?vixen I pity your poor children.
21:27:23 <lambdabot> I am on the net too much. I should do a net anonymoouse group. online of course.
21:27:36 <oerjan> ?shun Nothing
21:27:37 <lambdabot> Maybe you meant: run show
21:27:38 <Phantom_Hoover> ?vixen Good idea.
21:27:39 <lambdabot> f
21:27:45 -!- Kr1sp13kr3m3 has joined.
21:27:49 <oerjan> lambdabot: spoilsport
21:27:51 <Phantom_Hoover> :t run
21:27:52 <lambdabot> Not in scope: `run'
21:28:09 <oerjan> Phantom_Hoover: lambdabot commands are not haskell functions
21:28:34 <Phantom_Hoover> oerjan, surely they are on *some* level?
21:28:48 <oerjan> MAYBE
21:33:27 <oerjan> :k (->)
21:33:28 <lambdabot> ?? -> ? -> *
21:34:07 <elliott_> Gregor Gregor Gregor Gregor
21:34:18 <elliott_> THIS IS QUITE IMPORTANT GREGOR
21:34:30 <oerjan> Hastur Hastur Hastur
21:35:33 -!- Lymee has joined.
21:38:18 -!- Kr1sp13kr3m3 has quit (Remote host closed the connection).
21:40:10 -!- derrik has quit (Quit: night).
21:42:20 <ais523> suppose I have identical large data files in both an installed-via-package version of a program, and a local development repository
21:42:25 <ais523> how insane would it be to hardlink the two together?
21:42:39 <ais523> to save disk space?
21:43:13 <oerjan> ...so you want copy-on-write filesystem sharing :P
21:43:28 <ais523> oerjan: deduplication, really
21:43:31 -!- Kr1sp13kr3m3 has joined.
21:43:57 <ais523> the nature of the files is such that if the development files changed, and made the same changes to the core files as a consequence, it wouldn't break anything
21:43:58 -!- Kr1sp13kr3m3 has quit (Remote host closed the connection).
21:44:29 <ais523> hmm, Kr1sp13kr3m3 is the same person as krbot
21:44:37 <ais523> or same IP, at least
21:44:39 <oerjan> oh
21:44:49 <elliott_> just ban 'em
21:44:55 <elliott_> hasn't said a word, continual excess flood quits earlier
21:45:05 <ais523> also, that name is a pain to type while not in-channel (so tab-complete didn't work)
21:45:09 <ais523> I should have copy-pasted, really
21:45:19 <elliott_> very hard if you don't have number keys
21:45:22 <oerjan> i thought Kr1sp13kr3m3 was a regular
21:45:35 <elliott_> oerjan: a regular join-quitter, maybe :D
21:45:50 <oerjan> i mean who had spoken at one point
21:46:11 <oerjan> oh hm so krbot obviously stands for Kr1sp13kr3m3-bot
21:46:45 <elliott_> elliott@elliott-MacBookAir:~/logs$ grep -r Kr1sp13kr3m3 .
21:46:45 <elliott_> elliott@elliott-MacBookAir:~/logs$
21:46:49 <elliott_> as of may
21:47:18 <oerjan> elliott_: well e _may_ have used a less 1337 version of eir nick before
21:48:30 <elliott_> can't believe 1337 is an actual english word now
21:48:43 <oerjan> it is?
21:49:32 <CakeProphet> I thought 1337 was leet for the English word leet? :D
21:50:10 <monqy> is it really a real word?
21:50:20 <oerjan> perfectly cromulent
21:50:40 <elliott_> monqy: sure, why not?
21:51:32 <CakeProphet> it's word induction debate time. go go go
21:52:36 <elliott_> either 1337 is used, or it isn't
21:52:38 <elliott_> it clearly is used
21:52:40 <elliott_> therefore it's a word
21:52:42 <elliott_> that was easy
21:52:47 <ais523> it's clearly a word, it's just unclear in which language
21:52:50 -!- Lymee has quit (Ping timeout: 240 seconds).
21:52:52 <CakeProphet> I believe reputable dictionaries should include the word clusterfuck
21:52:53 <ais523> I think it may be becoming an English loanword
21:52:56 <ais523> from leet
21:53:01 <elliott_> best concept ever
21:53:09 <CakeProphet> define:clusterfuck only shows Wiktionary and Urban Dictionary.
21:53:16 <elliott_> ais523: hmm, now I want to define a language with only one word
21:53:19 <oerjan> 104nw0rd
21:53:19 <elliott_> ais523: and get English to loan it
21:53:30 <ais523> elliott_: Spivak is close
21:53:40 <ais523> it has something like five words
21:53:41 <elliott_> ais523: preferably, the word itself should be defined as referring to the singleton language
21:53:57 <oerjan> CakeProphet: define: works for you? it stopped working for me...
21:54:05 <CakeProphet> has always worked.
21:54:21 <CakeProphet> though nowadays I have a little dictionary search bar on my bottom panel.
21:54:27 <CakeProphet> so I don't use it as much.
21:55:15 <CakeProphet> oerjan: maybe it's because you're Swedish and Google doesn't like you or something.
21:55:29 * oerjan swats CakeProphet -----###
21:55:54 <CakeProphet> well, I mean, it could seriously be some kind of weird locale thing.
21:56:21 <CakeProphet> I doubt that's the likely cause though..
21:56:49 <ais523> CakeProphet: the point is that oerjan isn't Swedish
21:56:56 <ais523> you really deserve a swat for that
21:57:00 <CakeProphet> oh he's not?
21:57:10 <oerjan> CakeProphet: it doesn't even work if i go to the english language google :(
21:57:14 <CakeProphet> is he Sffeedeesh?
21:57:17 <ais523> no
21:57:21 <ais523> Norwegian
21:57:57 <CakeProphet> ah, my bad. I have a difficult time keeping up with who is from where.
21:59:15 <oerjan> typical of you canadians
21:59:42 <CakeProphet> http://dl.dropbox.com/u/16495819/Screenshot-1.png
21:59:44 * oerjan actually has no clue whether CakeProphet _is_ canadian or not
22:00:19 <CakeProphet> no I have the much more despicable regionality of the southern United States.
22:00:40 <CakeProphet> *southeastern, technically... we decide to ignore these complexities when talking about north and south though.
22:00:44 <CakeProphet> too complex, you know.
22:00:50 <olsner> oerjan: it's 50/50: either he is or he isn't - and either way you're half right :)
22:01:41 <CakeProphet> that is a probability there...
22:02:26 <CakeProphet> which is an excellent substitute for a fuzzy boolean value.
22:02:30 <oerjan> olsner: technically i chose which of the two possibilities was a priori most likely to be wrong :P
22:02:33 <CakeProphet> they're practically equal.
22:02:47 -!- zzo38 has quit (Remote host closed the connection).
22:02:58 <oerjan> so bayesianly speaking i guess i had _some_ clue
22:04:47 <oerjan> CakeProphet: was that link supposed to indicate you're from georgia?
22:05:15 <CakeProphet> no it was to indicate that define works.
22:05:34 <CakeProphet> and it also suggests that I have some kind of obsession with Nazis, but this is not true.
22:06:09 -!- Lymee has joined.
22:06:15 <oerjan> CakeProphet: um are you _sure_ you pasted the right link?
22:06:58 <CakeProphet> uh, I think so.
22:07:04 <oerjan> oh
22:07:09 <elliott_> it's 404'd
22:07:11 * oerjan sees the nazi
22:07:18 <CakeProphet> what?
22:07:25 <elliott_> oh, it became another file
22:07:34 <CakeProphet> dropbox is weird.
22:07:39 <CakeProphet> sometimes it won't even work at all.
22:07:40 <oerjan> CakeProphet: also you are obsessed with taxes and perl
22:08:00 <Phantom_Hoover> Man, I wish I had been born in, like, 2000.
22:08:23 <CakeProphet> why?
22:08:45 <Phantom_Hoover> All those wasted childhood winters praying for some actual snow for once, and as soon as I hit puberty we're under 20cm of the stuff.
22:09:13 <Phantom_Hoover> Well OK that's inaccurate, the proper snow only really started in the 2009/2010 winter.
22:09:19 <CakeProphet> oerjan: I bet dropbox was still uploading my screenshot because of my abysmal network connection, and thus was showing my last screenshot.
22:11:56 <olsner> I got the same results for define:clusterfuck and just "define clusterfuck", looked like it didn't actually treat define as a special word at all but rather just did a normal search
22:18:13 -!- BeholdMyGlory has quit (Remote host closed the connection).
22:20:00 -!- Lymia has joined.
22:20:01 <oerjan> CakeProphet: anyway, that's not how define: used to work, it used to give a different style with dictionary entries
22:20:30 <CakeProphet> oh, well, it still does that actually. with realer words.
22:20:31 <CakeProphet> like hello
22:22:52 <oerjan> nope, define:hello gives an ordinary search page
22:22:58 -!- Lymee has quit (Ping timeout: 240 seconds).
22:23:40 <CakeProphet> oerjan: that's because you're a Norwegian though. Your define: results are not an appropriate test of googles defining power.
22:24:03 <CakeProphet> we can only assume this is because Google hates you and your country.
22:25:24 <CakeProphet> but seriously, that's actually odd because it works for me.
22:25:39 <elliott_> try using what define is in your language
22:25:42 <elliott_> rather than "define"
22:25:52 <CakeProphet> but he also tried the english language google.
22:26:09 <elliott_> IT CAN SMELL HIM
22:26:32 <oerjan> olsner: define:clusterfuck _does_ seem to put actual dictionary results a bit further up
22:26:50 <CakeProphet> elliott_: something... fishy?
22:26:59 <CakeProphet> is this what a Norwegian smells like?
22:27:10 <CakeProphet> or do they smell like cold?
22:27:57 <oerjan> i've heard we smell of milk and soap
22:29:22 <CakeProphet> I would think milk and soap just smells like soap...
22:32:01 <CakeProphet> elliott_: but yes, define: still works right?
22:32:19 <oerjan> the english google for define:hello gives me a top link which seems to lead to an actual google dictionary service
22:32:36 <elliott_> CakeProphet: For me yes.
22:33:06 <CakeProphet> oerjan: yeah, okay. so Google just hates swedes.
22:33:12 <CakeProphet> problem solved.
22:48:24 <CakeProphet> I think bfjoust could be a bit more interesting if it had a fork command, similar to corewars SPT
22:49:09 <CakeProphet> where all of the processes are round robin and alternate between each jouster. So by using split you can be at two places at once, but it takes twice as long to move.
22:49:37 -!- Lymia__ has joined.
22:49:51 -!- Lymia__ has changed nick to Lymee.
22:49:54 -!- Lymee has quit (Changing host).
22:49:54 -!- Lymee has joined.
22:52:41 -!- Lymia has quit (Ping timeout: 258 seconds).
22:52:49 <ais523> CakeProphet: quite possibly, but I'm not sure how good the tactic would be
22:52:59 <ais523> unlike in corewars, where splitting is definitely an advantage
22:53:18 <CakeProphet> I think it would make you more suceptible to a rush.
22:54:54 <CakeProphet> though you could split and have one process on your flag to defend it. Still that would only delay a rush
22:58:29 <ais523> if you have more than two processes, you can't maintain a lock
22:58:46 <ais523> you simply can't change the flag fast enough to beat a 2-cycle clear
22:59:09 <ais523> and even with two processes, if you get the opponent's cycle count wrong in any way at all, you commit suicide
22:59:10 <Sgeo> What game is this?
22:59:21 <ais523> we're discussing what impact multithreading would have on BF Joust
22:59:30 <Sgeo> Ah
22:59:51 <ais523> so we're talking about a hypothetical version of BF Joust with corewars-style threading
23:02:16 <CakeProphet> yeah, I don't know bfjoust strategies very well, but I figured a 2-cycle clear would beat any kind of multi-tasking jouster.
23:02:24 * CakeProphet turns into vapor for a while.
23:03:47 <ais523> a 2-cycle clear is one of the most basic things you can do
23:04:29 <ais523> all competent programs beat it (or deliberately sacrifice the win on it to go against other things), but it tends to get a few wins on certain lengths
23:04:55 <ais523> !bfjoust simple_two_cycle_clear (>)*8(>[-])*21
23:05:02 <EgoBot> ​Score for ais523_simple_two_cycle_clear: 19.5
23:05:24 <ais523> and, umm, it didn't even come last
23:05:35 <ais523> it's 41st out of 48th
23:06:11 <elliott_> pah, Gregor
23:06:15 <ais523> hmm, I wonder why it beats anticipation?
23:06:34 <ais523> oh, perhaps the lack of antishudder
23:06:37 <ais523> let me run that on the simulator
23:08:17 <ais523> not on egojsout, though, it's too slow in parsing
23:20:01 -!- Lymia has joined.
23:20:20 -!- Lymee has quit (Disconnected by services).
23:20:22 -!- Lymia has changed nick to Lymee.
23:24:12 <ais523> hmm, I wrote some time handling code recently with a Y2038 bug
23:24:14 <ais523> should I be ashamed?
23:25:18 <elliott_> yes
23:30:30 -!- augur has quit (Read error: Connection reset by peer).
23:31:00 <ais523> my defence is that it was in code that had one already
23:31:24 <ais523> and the code's output is seconds-since-the-epoch as a decimal number encoded in ASCII, so at least the format won't need changing
23:31:37 -!- augur has joined.
23:35:47 -!- zzo38 has joined.
23:44:26 -!- elliott_ has quit (Ping timeout: 258 seconds).
23:49:24 -!- Lymee has quit (Read error: Connection reset by peer).
23:49:57 -!- Lymee has joined.
23:52:13 * Phantom_Hoover → sleep
23:52:15 -!- Phantom_Hoover has quit (Quit: Leaving).
2011-06-26
00:02:13 -!- Vorpal has quit (Ping timeout: 264 seconds).
00:02:32 -!- myndzi has quit (Ping timeout: 260 seconds).
00:03:48 -!- myndzi has joined.
00:05:55 -!- CakeProphet has quit (Ping timeout: 276 seconds).
00:08:19 -!- CakeProphet has joined.
00:08:52 -!- MigoMipo has quit (Read error: Connection reset by peer).
00:27:53 <zzo38> Have you used a literate programming system to document a file format?
00:31:21 -!- Sgeo has quit (Ping timeout: 250 seconds).
00:39:35 -!- Kr1sp13kr3m3 has joined.
00:40:08 -!- Kr1sp13kr3m3 has quit (Remote host closed the connection).
00:40:56 -!- Kr1sp13kr3m3 has joined.
00:50:43 -!- Lymia has joined.
00:51:24 -!- Lymee has quit (Disconnected by services).
00:51:27 -!- Lymia has changed nick to Lymee.
00:58:22 -!- Sgeo has joined.
01:12:08 -!- invariable has joined.
01:12:33 -!- invariable has left.
01:16:14 -!- Kr1sp13kr3m3 has quit (Remote host closed the connection).
01:17:48 -!- cheater__ has joined.
01:21:12 -!- cheater_ has quit (Ping timeout: 250 seconds).
01:25:01 -!- Kr1sp13kr3m3 has joined.
01:27:32 -!- Kr1sp13kr3m3 has quit (Remote host closed the connection).
01:54:29 -!- Lymee has quit (Ping timeout: 252 seconds).
01:57:17 -!- azaq23 has joined.
02:03:03 -!- oerjan has quit (Quit: Good night).
02:07:26 -!- Lymee has joined.
02:14:20 <CakeProphet> 3~3~3~3~3~3~3~3~3~3~3~3~
02:14:32 <CakeProphet> no clue why alt-pgup does that.
02:17:40 * Sgeo vaguely imagines running GoL in reverse, with multiple possibilities as superpositions
02:18:17 <Sgeo> Although I haven't thought it through, it seems like it would have an infinite neighborhood
02:18:55 <Sgeo> Which almost seems to imply c = infinite. That almost makes sense though (but not quite) since a Garden of Eden anywhere means there is no next step
02:19:15 <Sgeo> I'm too tired to be thinking this through properly
02:20:20 <zzo38> I am trying to write a program that reads LLVM bitcode files and I keep making mistakes
02:21:52 <zzo38> And I am unable to access the repository to look at the codes they use.
02:24:56 -!- Lymee has quit (Ping timeout: 240 seconds).
02:37:02 -!- Lymee has joined.
02:51:16 <Sgeo> Given a finite area (say, on a torus), would it be possible to make a rule such that the neighborhood of the rule is Moore 1, and N steps of the rule correspond to -1 steps of GoL? (Of course, with superpositions)
02:51:57 -!- Lymia has joined.
02:55:34 -!- Lymee has quit (Ping timeout: 276 seconds).
02:57:23 -!- ralc has quit (Ping timeout: 250 seconds).
03:22:11 -!- Lymia__ has joined.
03:22:51 -!- Lymia__ has changed nick to Lymee.
03:22:54 -!- Lymee has quit (Changing host).
03:22:54 -!- Lymee has joined.
03:25:34 -!- Lymia has quit (Ping timeout: 258 seconds).
03:32:16 -!- Lymia has joined.
03:32:41 -!- Lymee has quit (Disconnected by services).
03:32:42 -!- Lymia has changed nick to Lymee.
03:38:59 -!- azaq23 has quit (Read error: Operation timed out).
03:39:12 <zzo38> My program appears to be running out of memory for some reason, realloc is returning 0
03:50:19 <zzo38> I think malloc(0) doesn't work (at least in Windows), removing them resulted in not crashing.
03:50:35 <zzo38> But now I get no output if I redirect the output to a file
03:53:00 <zzo38> Can you possibly tell me what is going wrong????????????????
03:53:04 -!- Lymia has joined.
03:53:13 -!- Lymee has quit (Disconnected by services).
03:53:15 -!- Lymia has changed nick to Lymee.
03:53:16 <zzo38> It seems to stop after reading an abbreviation encoding.
03:53:45 -!- azaq23 has joined.
03:56:00 <ais523> zzo38: malloc(0) is not guaranteed to succeed
03:56:14 <ais523> you could try using malloc(1) instead, it has the same effect
03:56:49 <zzo38> I just replaced all of malloc(0) with (0) and now I get no error but I have other problems.
03:57:09 <pikhq_> zzo38: malloc(0) returns *either* a valid pointer or NULL; which of the two is implementation-defined.
03:57:39 <Lymee> !c printf("%u", malloc(0));
03:57:42 <EgoBot> 1357139984
03:58:03 <Lymee> !c ((*unsigned char) malloc(0))[0] = 123;
03:58:04 <EgoBot> Does not compile.
03:58:05 <pikhq_> glibc malloc always returns a valid pointer.
03:58:11 <zzo38> The thing is that I was using the result later in realloc and/or free. What happen if NULL is used there?
03:58:13 <Lymee> !c *((*unsigned char) malloc(0)) = 123;
03:58:15 <EgoBot> Does not compile.
03:58:18 <Lymee> :<
03:58:26 <Lymee> !c *((*unsigned char)(malloc(0))) = 123;
03:58:27 <EgoBot> Does not compile.
03:59:22 <pikhq_> zzo38: realloc(NULL, size) is the same as malloc(size), free(NULL) is a no-op.
03:59:47 <pikhq_> If this is *not* happening, then you have a broken C environment.
04:02:30 <newsham> !c assert(0);
04:02:32 <EgoBot> Does not compile.
04:02:52 <newsham> !c int main() { assert(0); return 0; }
04:02:54 <EgoBot> Does not compile.
04:03:00 -!- Lymia has joined.
04:03:38 -!- Lymee has quit (Disconnected by services).
04:03:40 -!- Lymia has changed nick to Lymee.
04:04:13 <zzo38> Using malloc(0) or malloc(1) crashes. Using NULL results in the program stopping early and prevents it from working when output is redirected to a file.
04:05:20 <pikhq_> Compiler and libc?
04:05:27 <zzo38> MinGW
04:05:37 <pikhq_> Okay, libc is msvcrt.
04:05:59 <pikhq_> That is very strange.
04:06:22 <zzo38> (Note: "crashes" means realloc returns 0)
04:06:40 <zzo38> If you look, can you notice something wrong that I have failed to notice?
04:06:41 <pikhq_> What are you passing to realloc?
04:06:50 <pikhq_> Yeah, I sure can.
04:06:54 <newsham> !c main() { return 0; }
04:07:31 <Lymee> !c printf("%u", realloc(malloc(0),10));
04:07:32 <zzo38> o=realloc(o,(s+=(_amount))*sizeof(number));
04:07:33 <EgoBot> 3791159312
04:08:22 <newsham> whats the security for !c?
04:08:27 <pikhq_> newsham: plash.
04:09:00 <pikhq_> zzo38: Underscore-prefixed identifiers are reserved. Using a reserved identifier in your program is undefined behavior.
04:09:07 <pikhq_> zzo38: Aside from that, I got nothing.
04:09:14 <zzo38> pikhq_: _amount is a macro argument.
04:09:32 <pikhq_> Still undefined behavior.
04:10:03 <pikhq_> Admittedly, not going to trigger on any reasonable compiler.
04:10:18 <Lymee> DeathStation 9000 wants a word with youi.
04:10:21 <Lymee> you*
04:10:22 <newsham> Plash virtualizes access to the filesystem. Operations by sandboxed processes on the file namespace, such as opening a file, are mediated by a user-space process. This works by modifying library calls (such as open()) so that they make remote procedure calls (RPCs) to another process instead of making the usual Linux system calls.
04:10:27 <pikhq_> Lymee: I said "reasonable".
04:10:33 <newsham> uh, so all you have to do is provide your own machine code which uses syscalls?
04:11:01 <pikhq_> newsham: And you're running unpriveledged in a chroot without any files. Good luck!
04:11:47 <newsham> thats still more access than most people want to give an attacker.
04:11:53 <newsham> you dont mind giving me a shell in the chroot?
04:11:54 <Lymee> if(name.startsWith("_")) blowUp();
04:12:22 <newsham> because I can put in code that opens a socket and pulls down a larger shell-like program that runs in your chroot
04:13:15 <pikhq_> It's *also* got some very heavy ulimits set up, and what's more, it's running on a VM that exists for running IRC bots.
04:13:51 <Lymee> I think you'd have more luck from attacking a back door than the front door
04:13:52 <Lymee> =p
04:13:54 <pikhq_> Seriously, even if you manage a root exploit you're getting just about nothing out of there.
04:14:09 <newsham> ahh, so its not just the chroot files that are attack surface, you also have the whole VM as an attack surface? :) sweet.
04:14:30 <newsham> do you trust malicious code running in a VM?
04:14:34 <zzo38> http://sprunge.us/XdVd
04:14:46 <Lymee> If you manage to get out of that, then I don't think any other security is going to be a problem.
04:14:54 <pikhq_> Well, if the VM itself gets exploited it's Somebody Else's Problem.
04:15:06 <pikhq_> Since it's not Gregor's machine.
04:15:07 <zzo38> I am also having problems connecting to llvm.org
04:16:00 <Lymee> pikhq_, if the VM has an exploit, couldn't you attack it directly, without messing with the chroot?
04:16:03 <zzo38> What is "DeathStation 9000"?
04:16:25 <pikhq_> Lymee: Most VM exploits would *probably* require access to /dev/kmem.
04:16:45 <pikhq_> If you can exploit the VM from ring 3, we have *serious* problems happening.
04:17:00 <Lymee> The "wtf is this security" kind?
04:17:23 <zzo38> Can you look see in case you noticed something wrong with my program, that I have failed to notice?
04:18:58 <pikhq_> zzo38: Nothing *obviously* wrong.
04:20:14 <zzo38> pikhq_: Do you have any suggestions though? Would it help if you read this document too? http://llvm.org/docs/BitCodeFormat.html
04:29:49 <zzo38> I tried various ways of making macros to override free,malloc,realloc but none of that helped.
04:32:03 <zzo38> I get errorlevel 128. What does that mean?
04:33:59 <zzo38> The output before it unexpectedly stops seems correct.
04:36:45 <zzo38> I found out where it appears to be failing.
04:37:21 <zzo38> It seems to be failing in the chunk @<If the kind is not |endblock|, create a node@>
04:38:21 <zzo38> It seems to be the malloc in that chunk that is causing it to stop.
04:39:30 <zzo38> I don't see anything wrong but maybe you can check maybe you can see something wrong with that?
04:43:33 <zzo38> Can you please try to help?
04:47:04 <zzo38> Here is the output I received, in case it helps: http://sprunge.us/gJWC
04:48:07 <zzo38> The output looks correct to me except that it is incomplete.
04:56:26 -!- Lymee has quit (Ping timeout: 255 seconds).
04:58:45 <zzo38> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
04:58:56 <zzo38> Oops I don't think AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA can help me either
05:05:26 -!- Lymee has joined.
05:08:56 -!- derrik has joined.
05:13:43 <Sgeo> It's demonstratable that reverse life has an infinite neigh.. n/m
05:14:49 <Sgeo> Well, I can't imagine how to do universe end on GoE without an infinte neighborhood
05:30:34 <newsham> 0x41414141
05:31:47 <zzo38> Here is the memory allocation trace: http://sprunge.us/NGYP
05:33:16 -!- Lymia has joined.
05:33:43 -!- Lymee has quit (Disconnected by services).
05:33:45 -!- Lymia has changed nick to Lymee.
05:53:30 -!- Lymia has joined.
05:56:28 -!- Lymee has quit (Ping timeout: 240 seconds).
05:57:40 <zzo38> The ##C channel is no help.
05:59:29 <zzo38> They told me to define 'good' even though none of my questions are about that.
05:59:38 <zzo38> And then they told me that I haven't asked them a question.
06:00:55 <zzo38> Can you please answer my question?
06:04:10 <derrik> zzo38: what question do you have besides "Can you please answer my question?"
06:05:04 <zzo38> derrik: The question about the program.
06:15:25 <zzo38> When compiling with -Os the program stops at the same place but with the error message "The exception unknown software exception (0xc00000fd) occurred in the application at location 0x77f5a84."
06:16:16 <zzo38> -O2 results in the same error.
06:16:39 <zzo38> However, -O0 results in it stopping with no message (it stops in the same place though).
06:18:04 <zzo38> -O3 results same as -O0
06:20:29 <zzo38> gdb says the error appears in RtlLookupElementGenericTableAvl and no stack information is available.
06:21:09 <zzo38> gdb does say it is a segmentation fault.
06:23:36 <zzo38> node*x=malloc(sizeof(node)+(b->kind==beginblock?0:(s-w)*sizeof(number)));
06:25:54 <CakeProphet> EWWW ?: is the devil.
06:25:59 <CakeProphet> I never use that trash.
06:26:15 <CakeProphet> conditional expression? too expressive.
06:26:52 <Sgeo> Does it make sense for live to evolve in a universe where information is monotonically non-decreasing?
06:26:57 <zzo38> What do you dislike about it? Some other people also dislike it, and that is OK. I find it useful.
06:27:03 <zzo38> Sometimes.
06:27:17 <CakeProphet> I was making fun of the people who dislike it, actually.
06:28:02 <CakeProphet> my only complaint is that there's not an alternative syntax for else ifs
06:28:52 <zzo38> I know that isn't the problem with my program. I have written macros to override malloc,realloc,free and realized exactly where it stops. I still don't know why it stops, though.
06:30:21 <zzo38> Can you try the program on your computer?
06:37:36 <CakeProphet> I have to go consol a friend of mine actually...
06:37:38 <CakeProphet> so, no. :P
06:40:26 <zzo38> Is anyone else in here that can do so please?
06:41:15 -!- monqy has quit (Quit: hello).
06:53:22 -!- derrik has quit (Read error: Connection reset by peer).
06:53:55 -!- derrik has joined.
07:09:22 <zzo38> If I do #define malloc(X) malloc((X)+999) then the program stops later than before.
07:10:34 <Deewiant> zzo38: When you allocate abbrevinfo*x, you don't multiply the allocation size by sizeof *x
07:11:54 <zzo38> Deewiant: You are absolutely right!
07:12:02 <Sgeo> How well would evolution even work in a macro non-deterministic environment?
07:12:54 <zzo38> That was exactly the problem! I am glad you noticed that.
07:17:08 -!- Vorpal has joined.
07:23:46 <zzo38> I found another problem that isn't about memory allocation and I think I know what it is and how to fix it.
07:35:46 <Sgeo> FUCK FUCK FUCK FUCK FUCK
07:36:03 -!- derrik has left.
07:37:13 <Sgeo> I accidentally touched a broken lightbulb.
07:37:30 <Sgeo> My dad claims it's ok, because it was an old bulb and anything in it has dissipated
07:39:11 <coppro> uh what
07:39:21 <coppro> what's wrong with touching a bulb?
07:39:30 <Sgeo> It's one of those Hg bulbs
07:40:29 <ais523> well, you'll want to wash your hands thoroughly
07:40:53 <ais523> although mercury doesn't actually stick to the skin anyway, it slides off, so the warnings are mostly safety precautions
07:41:39 <ais523> but important ones, just in case some does remain
07:41:48 <Sgeo> I washed my hands
07:42:24 <ais523> the correct solution to a mercury spill, btw, is to mix it with sulphur
07:42:37 <ais523> I've seen that happen in chemistry labs when someone broke a mercury thermometer
07:42:44 <ais523> but it tends not to be readily available
07:45:17 -!- Lymia has quit (Read error: Connection reset by peer).
07:45:41 <Sgeo> I think I'll sleep in a different room
07:46:22 -!- Lymia has joined.
07:47:08 -!- Lymia has changed nick to Lymee.
07:51:39 <zzo38> Is printf("^vbrr: %llu\n",z); the incorrect way to display a 64-bit number?
07:52:26 <Deewiant> With MSVCRT it is, I think it's %I64d there
07:53:33 <zzo38> That did work, but will that work on other systems?
07:54:00 <Deewiant> No
07:54:23 <Deewiant> There's no single way that works both with MSVCRT and other libcs
07:54:37 <zzo38> Maybe I can use a macro
07:57:22 <coppro> %llu should work fine
07:57:27 <coppro> It's standard C99
07:57:48 <Deewiant> MSVCRT doesn't support C99
07:58:21 <coppro> it supports some useful subsets
07:58:42 <coppro> if it doesn't work on MSVCRT well fuck them anyway
07:58:55 <pikhq_> C99 is 12 years old now.
07:59:24 <pikhq_> If you can't support even *simple* things right, then you should fuck off.
07:59:47 <coppro> ^
08:00:02 <coppro> C1X is nearing publication
08:00:16 <pikhq_> Though, part of the problem is that C++98 does not incorporate C99, and Microsoft is too dense to realise that C still matters.
08:00:32 <pikhq_> Of course, *C++0x* is nearing publication.
08:00:35 <coppro> yeah
08:01:20 <pikhq_> Which, of course, incorporates changes made in C99.
08:01:57 <pikhq_> Well, actually, I dunno how much of C99 they did incorporate, but they at least did long long and %llu.
08:02:05 -!- Phantom_Hoover has joined.
08:03:14 <pikhq_> According to Stroustrup, vast majority.
08:03:37 <pikhq_> They didn't bring in variable-length arrays.
08:03:44 <zzo38> I just used #ifdef to decide making a macro called fmt64 which uses the proper format code.
08:04:23 <pikhq_> Though those are less necessary in C++, and optional in C1X, anyways.
08:04:32 <coppro> They brought in most of C99
08:04:39 <Deewiant> Did they bring in the t and z width specifiers?
08:04:47 <coppro> The entire C99 library is in C++0x
08:05:04 <Deewiant> Alright, cool
08:05:36 <coppro> Of course, timing again means that C++ will miss the C library boat
08:05:44 <coppro> but C1X is so ridiculously conservative
08:05:47 <pikhq_> *gaaah*, they didn't bring in "restrict".
08:05:54 <coppro> it's amazing it took them so long to do it
08:06:17 <pikhq_> Most of the features of C1X are unnecessary in C++0x, anyways.
08:06:22 <coppro> yeah
08:06:24 <coppro> like _Generic
08:06:42 <coppro> which is just a reinvention of overloading
08:06:44 <coppro> goddamn it
08:07:10 <coppro> pikhq_: specifically, they didn't bring it in because it's a non-trivial feature and because nobody wanted to do the work
08:07:11 <pikhq_> Bit annoying that the two languages will have different threading support.
08:07:37 <pikhq_> coppro: Didn't bring in "restrict"?
08:07:40 <coppro> yeah
08:07:51 <coppro> at this point C++ should ditch C imo
08:07:54 <pikhq_> Uh, it's an utterly trivial feature to *support*.
08:08:06 <coppro> pikhq_: I mean to put in the standard
08:08:33 <pikhq_> It's still a *very* useful compiler hint.
08:09:01 <coppro> I think it should be supported as an attribute
08:09:08 <pikhq_> Perhaps a little less so in C++, where you throw around types like candy, but still.
08:09:21 <coppro> and I also think that C++ should just stop thinking C cares about it
08:10:16 <pikhq_> The only reason I care at *all* about C++ maintaining C features is that C++ pretty much is forced to interact with C.
08:10:38 <coppro> indeed
08:10:38 <pikhq_> So, the larger the set of features in C that isn't in C++, the greater the impedence mismatch is.
08:10:53 <pikhq_> If it weren't for that, C++0x could drop the entire C standard library for all I care.
08:11:00 <coppro> But really, the C committee doesn't actually care too much about C++
08:11:09 <pikhq_> Why should they?
08:11:27 <pikhq_> C++'s insanity is their own damned problem. :P
08:11:37 <coppro> I'm not saying they should
08:12:21 <coppro> but it seriously hurts both C and C++ that they are divergin
08:12:24 <coppro> *diverging
08:12:32 <Phantom_Hoover> @messages?
08:12:32 <lambdabot> Sorry, no messages today.
08:12:49 <coppro> they're free to take a "fuck C++" approach
08:13:00 <coppro> but it has consequences
08:13:05 <pikhq_> C++ seems to have taken a "fuck C" approach, so.
08:13:11 <coppro> no, that's not their approach
08:13:37 <pikhq_> Then why isn't C++ a superset of C?
08:14:14 <coppro> C++98 was nearly a superset of C90. The only changes you would have to make were relatively trivial and, in nearly every case, already considered good style in C
08:14:32 <coppro> plus a few ones like extra keywords that couldn't be helped
08:14:37 <pikhq_> They changed void*'s semantics.
08:14:59 <coppro> Fixing a conformant C program could be done automatically
08:15:13 <coppro> and implicit void* casts are bad C style
08:15:20 <pikhq_> Tell that to malloc.
08:15:46 <coppro> malloc should be casted
08:16:14 <pikhq_> The only time I've seen that done is if someone wants their C to compile with a C++ compiler.
08:16:31 <coppro> really? In my exerience it's been a style thing
08:16:46 <coppro> admittedly, I may not have a representative sample
08:17:17 <pikhq_> It's about as "good style" as Hungarian notation.
08:18:03 <coppro> in any case, that's minor compare to C99 features which didn't make it into C++0x
08:18:26 <coppro> *compared
08:18:38 <pikhq_> Yeah, the distinction between C89 and C++98 was somewhat minor.
08:19:03 <coppro> restrict didn't make it in because no one wanted to define its semantics
08:19:19 <pikhq_> Between C99 and C++98, *wince*. C99 and C++0x, really annoying details. C1x and C++0x, *sigh*
08:19:43 <coppro> VLAs and designated initializers were worse; they would need to be expanded to work in C++
08:19:49 <coppro> VLAs are probably never worth it in C++
08:20:01 <pikhq_> Yeah, I actually understand VLAs not making it in.
08:20:05 <coppro> also weird stuff like x[const 5]
08:20:12 <pikhq_> And they're optional in C1x, anyways.
08:20:14 <coppro> is in the same boat as restric
08:20:16 <coppro> *restrict
08:20:31 <coppro> But the real issues are about to surface
08:20:40 <coppro> where C and C++ have differing implementations of the same feature
08:20:46 <coppro> see: lambdas
08:21:13 <pikhq_> C1x doesn't...
08:21:21 <pikhq_> That's an Apple extension.
08:21:43 <pikhq_> For Objective C, no less, that got kinda retrofitted into C.
08:22:03 <Sgeo> I am confident enough in my thinking to state the following: For any CA in a finite universe where Garden of Eden patterns exist, for each configuration of cells, there is a Garden of Eden pattern that reaaches it eventually. Maybe excluding oscillatiors from the configuration of cells, I'm not quite sure yet.
08:22:06 <pikhq_> More pressing is the differing implementations of threading.
08:22:17 <pikhq_> There's C++0x threads, C1x threads, and POSIX threads.
08:24:37 <pikhq_> *gah*
08:24:48 <Sgeo> Proof: Start from a configuration, and go "backwards", making random choices when needed. In a finite universe, either a loop must be reached, or the simulation must end. Assume that a loop occurs. Then, going forwards again, you'd never reach the initial configuration. Therefore, the backwards process must terminate.
08:24:49 <pikhq_> C++0x does not have "long long" and "unsigned long long".
08:24:58 <Sgeo> (Unless the initial configuration oscillates)
08:25:03 <pikhq_> It has _Longlong and _ULonglong.
08:25:20 <Sgeo> And can only be reached from its oscillation
08:25:27 <coppro> actually, I take it back
08:25:34 <ais523> Sgeo: fallacy: the configuration itself could be included in the loop
08:25:38 <coppro> I had thought WG14 had rejected C++ lambda syntax
08:25:39 <coppro> I was wrong
08:25:54 <ais523> note that in a finite-universe CA, /all/ configurations are oscillators or precursors to oscillators, so you can hardly exclude those
08:26:14 <pikhq_> Well, C++ lambda *semantics* are fundamentally incompatible with C.
08:26:35 <pikhq_> Those are literally singleton classes with operator().
08:26:49 <Sgeo> ais523, ... oh, right
08:28:02 <coppro> pikhq_: Yes, but the syntax could be the same
08:28:09 <Sgeo> So, I proved something about a set that doesn't even exist, how wonderful
08:28:31 <pikhq_> Not sure how much that would help, but yes, they could be.
08:28:36 <coppro> and some magic could potentially be done to breach the language barrier magically if you attempt to call a C function with a C++ lambda
08:28:54 <coppro> although inline C functions would probably screw it all up
08:29:35 <pikhq_> ... How?
08:29:46 <Sgeo> ais523, well, it still applies to oscillators that have precursors, doesn't it?
08:29:48 <coppro> They would be compiled differently in C and C++ modules
08:29:53 <pikhq_> Oh, true.
08:29:54 <coppro> *TUs
08:29:59 <ais523> Sgeo: yep, I think so
08:30:23 <pikhq_> You'd need a __cplusplus guard around some inline functions or something. :/
08:30:30 <coppro> Now, C could go C++ syntax but with Apple's capture model
08:30:40 <coppro> that would be safe, I think
08:31:31 <pikhq_> Those aren't real function pointers. Though C++ could treat them as opaque pointers without any real problem.
08:31:33 <Sgeo> ais523, it's not particularly easy though to see if any oscillating pattern has a precursor is it?
08:31:44 <ais523> Sgeo: no
08:31:58 <ais523> unless the CA in question has a simple method of constructing precursors, like setting one isolated cell in Life
08:32:46 <Sgeo> Well, that still makes for an interesting result in Life though, doesn't it?
08:33:57 <Sgeo> Since it's easy to make precursors for any pattern at least 2 rows/columns smaller than the universe, there is a GoE that results in any pattern 2 rows/columns smaller than the universe
08:33:57 <ais523> Sgeo: you get "in finite life, all finite patterns significantly smaller than the bounding box are produced by a garden of eden"
08:34:10 <ais523> and I think it has to be something like 5 smaller to work
08:34:19 <Sgeo> Oh, why 5 smaller?
08:34:28 <ais523> you need five blank columns to give two squares of buffer space either side of your pixel
08:34:52 <ais523> if you only have one square of buffer space, the extra cell could result in cells there being set due to having 3 rather than 2 neighbours
08:37:18 <Sgeo> Why wouldn't 3 columns, 2 blank and 1 with the cell suffice for 2 buffer space?
08:37:45 <ais523> because it wraps
08:37:50 <ais523> so you have to connect to both ends of the playfield
08:37:56 <ais523> unless you're using an unusual definition of finite CA
08:38:45 <Sgeo> Ah, wasn't thinking _necessarily_ in terms of wrapping
08:46:43 <coppro> pikhq_: C++'s function<> model is sufficiently generic that the user burden is low
08:55:58 <pikhq_> coppro: True, it'd just really need a way to get the C lambda callable from function<>.
08:56:12 <pikhq_> And, if they feel really nice, a way to make a C lambda into a function<>.
08:56:22 <coppro> Which is trivial
08:57:01 <coppro> since function works by calling ()
08:57:19 <pikhq_> So long as there's a way to call it at all (define a C function call_lambda(lambda *func, va_args args)), yeah.
09:14:01 -!- cheater_ has joined.
09:17:26 -!- cheater__ has quit (Ping timeout: 250 seconds).
09:18:04 -!- zzo38 has quit (Quit: zzo38).
09:42:15 -!- BeholdMyGlory has joined.
09:44:37 <Sgeo> ais523, is it reasonably safe for me to stay in the room? :/
09:44:49 <Phantom_Hoover> Sgeo, which room?
09:45:18 <Sgeo> The one where the light bulb broke
09:45:34 <Phantom_Hoover> Low energy?
09:45:45 <Sgeo> Yes
09:46:22 <olsner> since the bulb is broken, be careful about obstacles that are not clearly visible in the dark
09:56:43 <fizzie> Also grues.
10:03:41 <Sgeo> I just want to be certain that I shouldn't be worried about mercury fumes or something
10:05:50 -!- sebbu2 has joined.
10:05:51 -!- sebbu2 has quit (Changing host).
10:05:51 -!- sebbu2 has joined.
10:08:44 -!- sebbu has quit (Ping timeout: 255 seconds).
10:19:39 -!- ais523 has quit (Remote host closed the connection).
10:23:40 <CakeProphet> !perl print scalar (1,2,3,4)
10:23:46 <EgoBot> 4
10:23:53 <CakeProphet> !perl print scalar (1,2,3,1)
10:23:53 <EgoBot> 1
10:23:56 <CakeProphet> ah, yes.
10:24:25 <CakeProphet> !perl print scalar @{[1,2,3,1]}
10:24:26 <EgoBot> 4
10:27:30 <Sgeo> I'm going to go sleep on the couch and just risk bugs
10:27:48 <fizzie> !perl print scalar (() = (1,2,3,1))
10:27:49 <EgoBot> 4
10:28:04 <fizzie> (The silly-looking "force list context" thing I've seen somewhere.)
10:28:47 <fizzie> (At least it avoids the arrayref.)
10:38:29 <Gregor> !perl print ("nancy" == "nancy") ? "true" : "false"
10:40:41 <CakeProphet> it's usually not necessary to force list context though.
10:41:04 <CakeProphet> but yeah, taking the length of a list is needlessly difficult in Perl.
10:46:47 <CakeProphet> but I see how 'lists' in scalar context don't return the length, because , doesn't construct a list in scalar context at all.
10:47:10 <CakeProphet> , in scalar context is like , in C. Whereas , in list context is list concatenation / append
10:48:39 <CakeProphet> I'm surprised there's not just a length keyword, or just a regular subroutine, by default.
10:50:25 -!- CakeProphet has quit (Quit: leaving).
10:50:45 -!- CakeProphet has joined.
10:52:03 -!- MigoMipo has joined.
10:56:55 -!- CakeProphet has quit (Quit: leaving).
10:57:15 -!- CakeProphet has joined.
11:14:55 -!- oerjan has joined.
11:21:38 -!- CakeProphet has quit (Quit: leaving).
11:21:59 -!- CakeProphet has joined.
11:53:14 -!- MigoMipo has quit (Remote host closed the connection).
11:59:30 <CakeProphet> this is definitely one of my favorite Haskell programs:
11:59:38 <CakeProphet> > flip replicateM ['a'..'c'] =<< [1..]
11:59:40 <lambdabot> ["a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","aac"...
12:00:07 <Phantom_Hoover> :t replicateM
12:00:08 <lambdabot> forall (m :: * -> *) a. (Monad m) => Int -> m a -> m [a]
12:01:45 <CakeProphet> I've never seen another language that can generate every possible string from an alphabet with such a small amount of code.
12:01:55 <CakeProphet> granted it does us other modules.
12:02:00 <CakeProphet> *use
12:02:11 <Phantom_Hoover> But the functions it uses are all highly general ones.
12:02:52 <CakeProphet> yeah I would say Control.Monad is more akin to a set of control structures for Haskell more than it is some kind of "helper" library.
12:03:44 <CakeProphet> this is where the power of functional programming lies, I think.
12:03:55 <CakeProphet> especially with lazy evaluation.
12:05:59 <CakeProphet> > flip replicateM [1..4] =<< [1..]
12:06:01 <lambdabot> [[1],[2],[3],[4],[1,1],[1,2],[1,3],[1,4],[2,1],[2,2],[2,3],[2,4],[3,1],[3,2...
12:06:46 <CakeProphet> @pl (\x -> flip replicateM x =<< [1..])
12:06:46 <lambdabot> ([1..] >>=) . flip replicateM
12:07:08 <CakeProphet> yeah, I'm bad at making those kinds of transformations. That one was even pretty simple to spot.
12:07:39 <Deewiant> > ((=<<) =<< flip replicateM) [1,2,3]
12:07:41 <lambdabot> [[1],[2],[3],[1,1],[1,2],[1,3],[2,1],[2,2],[2,3],[3,1],[3,2],[3,3],[1,1,1],...
12:07:55 <CakeProphet> ...lol what?
12:08:07 <CakeProphet> also bind on function is still kind of alien to me.
12:08:50 <Deewiant> CakeProphet: Using the argument itself instead of [1..]
12:09:21 <oerjan> :t (>>=) (>>=)
12:09:22 <lambdabot> forall (m :: * -> *) a b b1. (Monad m) => (((a -> m b) -> m b) -> m a -> b1) -> m a -> b1
12:09:26 <oerjan> :t (>>=) (>>=) (>>=)
12:09:28 <lambdabot> Occurs check: cannot construct the infinite type: m = (->) (m b)
12:09:28 <lambdabot> Probable cause: `>>=' is applied to too few arguments
12:09:28 <lambdabot> In the second argument of `(>>=)', namely `(>>=)'
12:09:30 <oerjan> bah
12:09:35 <CakeProphet> ah okay, so it's a all "strings" with a length of at most 3 in that case.
12:09:44 <CakeProphet> +list
12:10:15 <CakeProphet> ...not including the null one.
12:10:26 <CakeProphet> > replicateM 0 ['a'..'z']
12:10:27 <lambdabot> [""]
12:10:33 <CakeProphet> ..good.
12:10:51 <CakeProphet> not quite sure how it knew to do that though..
12:10:55 <CakeProphet> :t replicateM
12:10:56 <lambdabot> forall (m :: * -> *) a. (Monad m) => Int -> m a -> m [a]
12:11:16 <oerjan> @src replicateM
12:11:16 <lambdabot> replicateM n x = sequence (replicate n x)
12:11:27 <CakeProphet> ah sequence okay.
12:12:59 <CakeProphet> > ['a'..'z'] >> ['a'..'z']
12:13:01 <lambdabot> "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv...
12:13:38 <CakeProphet> > "a" >> "A"
12:13:39 <lambdabot> "A"
12:14:03 <CakeProphet> > "a" >> "a"
12:14:04 <lambdabot> "a"
12:14:11 <CakeProphet> > "ab" >> "ab"
12:14:12 <lambdabot> "abab"
12:14:22 <CakeProphet> @src (>>)
12:14:23 <lambdabot> m >> k = m >>= \_ -> k
12:14:29 <oerjan> > [1,2,3] >> "abcd"
12:14:30 <lambdabot> "abcdabcdabcd"
12:14:51 <CakeProphet> ...ah okay.
12:15:31 <CakeProphet> > [Nothing,Nothing,Nothing,Nothing] >> "a"
12:15:32 <lambdabot> "aaaa"
12:16:34 <CakeProphet> so if I ever have a list b I want to concatenate length of list a repetitions of... then a >> b is my choice.
12:36:18 <CakeProphet> > '(a b c d)
12:36:19 <lambdabot> <no location info>:
12:36:19 <lambdabot> lexical error in string/character literal at chara...
12:36:31 <CakeProphet> oh okay.
12:36:40 <CakeProphet> for some reason this haskellwiki page has some lisp code.
12:40:06 <CakeProphet> data Graph a = Graph (Set a) (Set (a,a)
12:40:08 <CakeProphet> )
12:40:09 -!- BeholdMyGlory has quit (Remote host closed the connection).
12:40:18 <CakeProphet> this is a pretty good Graph type right?
12:41:20 <CakeProphet> fits the actual definition anyways.
12:41:59 <CakeProphet> but I doubt it's the most efficient. Still more efficient that using lists over sets though.
12:43:24 <CakeProphet> using Map a [a] might be better than Set (a,a) for walking paths and such.
12:44:56 <CakeProphet> well, actually using Set won't work for all graphs, because it wouldn't handle loops and parallel edges.
12:45:07 <CakeProphet> ..loops would be fine, actually.
12:45:47 <oerjan> there _is_ a Data.Graph module somewhere
12:45:54 <oerjan> (never used it)
12:46:00 <CakeProphet> oh I know, I'm just doing this as a learning exercise.
12:46:56 <CakeProphet> I think you'd need some kind of multiset structure for the edge set if you want parallel edges.
12:48:39 -!- jcp has quit (Ping timeout: 258 seconds).
12:50:12 <CakeProphet> so for a graph of integers using Array is probably the best choice.
12:53:48 -!- jcp has joined.
13:06:48 -!- sebbu2 has quit (Quit: reboot).
13:18:39 <Phantom_Hoover> <CakeProphet> fits the actual definition anyways.
13:18:41 <Phantom_Hoover> Nope.
13:19:01 <Phantom_Hoover> Graphs are taken to be undirected unless qualified otherwise.
13:24:15 -!- jcp has quit (Read error: Operation timed out).
13:29:50 -!- jcp has joined.
13:40:20 -!- cheater__ has joined.
13:43:04 -!- cheater_ has quit (Ping timeout: 250 seconds).
13:55:15 -!- oerjan has quit (Quit: leaving).
14:15:46 -!- sebbu has joined.
14:15:46 -!- sebbu has quit (Changing host).
14:15:46 -!- sebbu has joined.
14:23:33 -!- jcp has quit (Ping timeout: 260 seconds).
14:32:21 -!- jcp has joined.
15:17:43 <Sgeo> According to my dad, the bulb had been there a week or two
15:18:36 <cheater__> we are all doomed
15:19:03 <olsner> so the grues have had 1-2 weeks to multiply already?
15:19:09 <olsner> you are indeed doomed
15:20:47 -!- augur has quit (Remote host closed the connection).
15:27:05 -!- derrik has joined.
15:27:25 -!- derrik has left.
15:35:53 -!- CakeProphet has quit (Ping timeout: 255 seconds).
15:39:46 <Phantom_Hoover> Sgeo, wait, what?
16:08:35 -!- monqy has joined.
16:49:42 -!- augur has joined.
16:50:51 -!- augur has quit (Remote host closed the connection).
16:51:23 -!- monqy_ has joined.
16:51:29 -!- monqy has quit (Disconnected by services).
16:51:36 -!- monqy_ has changed nick to monqy.
16:51:42 -!- augur has joined.
17:15:49 -!- augur has quit (Remote host closed the connection).
17:39:45 -!- wth has joined.
17:40:08 -!- wth has changed nick to Guest48844.
17:41:01 -!- Guest48844 has quit (Client Quit).
17:42:57 -!- pikhq has joined.
17:43:09 -!- pikhq_ has quit (Ping timeout: 258 seconds).
17:54:19 <Phantom_Hoover> Wait, what was eso-std again?
18:01:14 -!- Lymee has quit (Ping timeout: 255 seconds).
18:14:19 -!- Lymee has joined.
18:30:06 -!- milidragmilic has joined.
18:30:54 <milidragmilic> what is purpose of this chat
18:33:21 <pikhq> Esoteric programming languages, nominally.
18:33:36 <olsner> "#esoteric -- come for the esolangs, stay for the zzo38, leave for the zzo38"
18:33:38 <Phantom_Hoover> I prefer 'ostensibly' myself.
18:34:04 <milidragmilic> ok
18:34:06 <olsner> yes, ostensibly is a good word
18:34:19 -!- milidragmilic has left.
18:38:19 -!- augur has joined.
18:39:36 <Gregor> http://www.totaljerkface.com/happy_wheels.php
18:39:42 <Gregor> ^^^ Play. Fear. Have fun :P
18:41:04 <Gregor> Haha 500 error GOOD TIMING, ME
18:56:01 -!- azaq23 has quit (Quit: Leaving.).
19:02:18 -!- pikhq_ has joined.
19:02:36 -!- pikhq has quit (Ping timeout: 244 seconds).
19:07:57 -!- augur has quit (Remote host closed the connection).
19:14:37 -!- augur has joined.
19:14:55 -!- BeholdMyGlory has joined.
19:14:56 -!- BeholdMyGlory has quit (Changing host).
19:14:56 -!- BeholdMyGlory has joined.
19:19:45 -!- oerjan has joined.
19:30:07 -!- Wamanuz has joined.
19:38:59 -!- Wamanuz has quit (Read error: Operation timed out).
19:44:32 -!- Wamanuz has joined.
19:55:12 -!- augur has quit (Remote host closed the connection).
20:15:38 <Vorpal> > e
20:15:39 <lambdabot> e
20:15:40 <Vorpal> hm
20:15:48 <Vorpal> @hoogle e
20:15:48 <lambdabot> Data.Graph.Inductive.Example e :: Gr Char ()
20:15:48 <lambdabot> Data.Graph.Inductive.Example e' :: IO (SGr Char ())
20:15:48 <lambdabot> Data.Fixed data E12
20:15:51 <Vorpal> nope
20:15:58 <oerjan> :t e
20:15:59 <lambdabot> Expr
20:16:06 <Vorpal> oerjan, looking for e the constant
20:16:09 <oerjan> oh
20:16:11 <oerjan> > exp 1
20:16:13 <lambdabot> 2.718281828459045
20:16:15 <Vorpal> right
20:16:22 <Vorpal> oerjan, so not predefined like pi is?
20:16:39 <oerjan> not in the standard
20:16:44 <Vorpal> ah
20:16:49 <oerjan> :t pi
20:16:50 <lambdabot> forall a. (Floating a) => a
20:16:58 <oerjan> :t exp
20:16:59 <lambdabot> forall a. (Floating a) => a -> a
20:17:05 <oerjan> @src Floating
20:17:05 <lambdabot> class (Fractional a) => Floating a where
20:17:06 <lambdabot> pi :: a
20:17:06 <lambdabot> exp, log, sqrt, sin, cos, tan :: a -> a
20:17:06 <lambdabot> asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh :: a -> a
20:17:06 <lambdabot> (**), logBase :: a -> a -> a
20:17:33 <Vorpal> > pi
20:17:34 <lambdabot> 3.141592653589793
20:17:34 <Vorpal> hm
20:19:04 <Vorpal> oerjan, what about phi
20:20:10 <oerjan> well it's not in that class
20:20:23 <oerjan> > (sqrt 5 + 1)/2
20:20:25 <lambdabot> 1.618033988749895
20:20:43 <Vorpal> hm
20:22:03 <Deewiant> > 2*acos 0
20:22:03 <lambdabot> 3.141592653589793
20:23:36 -!- augur has joined.
20:28:47 <Lymee> > pi * pi
20:28:48 <lambdabot> 9.869604401089358
20:28:54 <Lymee> > [pi..]
20:28:55 <lambdabot> [3.141592653589793,4.141592653589793,5.141592653589793,6.141592653589793,7....
20:29:05 <Lymee> > [pi ** 0.5, pi..]
20:29:06 <lambdabot> [1.7724538509055159,3.141592653589793,4.510731456274071,5.8798702589583485,...
20:29:29 <Lymee> > sum [pi ** 0.24234, pi..]
20:29:32 * Lymee runs
20:29:40 <lambdabot> mueval: ExitFailure 1
20:29:59 <oerjan> wat
20:30:13 <oerjan> > sum [pi ** 0.24234, pi..]
20:30:18 <lambdabot> mueval-core: Time limit exceeded
20:30:20 <Phantom_Hoover> Lymee, what is it with you and pi.
20:31:00 <oerjan> she just likes going around in circles
20:32:08 <Lymee> > reverse [pi ** 0.5, pi..]
20:32:34 <lambdabot> thread killed
20:32:52 <Phantom_Hoover> Lymee, suggest you don't mention pi to pikhq_.
20:33:41 <oerjan> Lymee: do you have any reason to believe those expressions should halt? :P
20:33:51 <Lymee> oerjan, nope.
20:34:05 -!- augur has quit (Remote host closed the connection).
20:34:18 <Lymee> > sum $ take 5 $ reverse [pi ** 0.5, pi..]
20:34:26 <lambdabot> mueval: ExitFailure 1
20:34:26 <lambdabot> mueval-core: Time limit exceeded
20:34:58 <oerjan> ...or that.
20:35:29 <oerjan> i suspect that list may actually be infinite, and so reverse can never give anything on it
20:35:36 <Phantom_Hoover> oerjan, wouldn't [a,b...] expand into [a,b,2b-a,3b-2a...]?
20:35:53 <Lymee> I fully expect it to not halt.
20:36:05 <Lymee> I just want to see in what creative ways lambdabot fails.
20:36:06 <Lymee> > sum $ take 5 $ reverse [pi ** 0.5, pi..]
20:36:10 <lambdabot> mueval-core: Time limit exceeded
20:36:35 <Lymee> > sum $ take (sum $ take 5 $ reverse [pi ** 0.5, pi..]) $ [sum $ take 5 $ reverse [pi ** 0.5, pi..]..]
20:36:36 <lambdabot> No instance for (GHC.Float.Floating GHC.Types.Int)
20:36:36 <lambdabot> arising from a use of...
20:36:46 <Lymee> > sum $ take (sum $ take 5 $ reverse [pi ** 0.5, pi..]) $ [(sum $ take 5 $ reverse [pi ** 0.5, pi..])..]
20:36:47 <lambdabot> No instance for (GHC.Float.Floating GHC.Types.Int)
20:36:47 <lambdabot> arising from a use of...
20:36:48 <oerjan> Phantom_Hoover: essentially. but this _is_ floating point...
20:36:49 <Lymee> Aww.
20:37:03 <fizzie> > sum $ let t = 1:(map (/2) t) in t
20:37:40 <lambdabot> thread killed
20:37:50 <fizzie> Not clever enough to go all "2" on that, eh?
20:38:10 -!- MigoMipo has joined.
20:38:23 <monqy> (reverse . reverse) is taking forever on infinite lists :(
20:38:33 <oerjan> yeah
20:38:50 <monqy> hate having to traverse the whole list to reverse it
20:39:02 <monqy> does it work any better with optimizations
20:39:09 <oerjan> Lymee: genericTake
20:39:16 <oerjan> :t genericTake
20:39:18 <lambdabot> forall i a. (Integral i) => i -> [a] -> [a]
20:39:24 <oerjan> oh hm
20:39:35 <oerjan> i guess even that won't work with floating point
20:39:41 <fizzie> > let s i = sum $ take i $ let t = 1:(map (/2) t) in t in map s [2, 4, 16, 64]
20:39:43 <lambdabot> [1.5,1.875,1.999969482421875,2.0]
20:40:02 <Lymee> oerjan, taking an irrational number and most likely infinite number of things from an array makes no sense.
20:40:08 <Lymee> I think....
20:40:22 <oerjan> yep
20:42:26 <oerjan> monqy: reverse . reverse is by definition bottom on infinite lists, so an optimization which "fixed" that would be incorrect. (same with fizzie's sum btw)
20:42:39 <monqy> mmh
20:44:43 -!- augur has joined.
20:45:07 <Phantom_Hoover> @src reverse
20:45:07 <lambdabot> reverse = foldl (flip (:)) []
20:45:12 <oerjan> mind you i vaguely recall reading that the foldr + unfoldr deforestation optimization _does_ ignore such an issue in order to work at all (presumably it doesn't matter in practice)
20:45:15 <Phantom_Hoover> Elegant.
20:45:46 <oerjan> well it _should_ have been foldl' >:)
20:46:16 <Phantom_Hoover> :t foldl'
20:46:17 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
20:46:21 <Phantom_Hoover> :t foldl
20:46:22 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
20:46:31 <Phantom_Hoover> @src foldl
20:46:32 <lambdabot> foldl f z [] = z
20:46:32 <lambdabot> foldl f z (x:xs) = foldl f (f z x) xs
20:46:33 <Phantom_Hoover> @src foldl'
20:46:33 <oerjan> they differ only in strictness
20:46:34 <lambdabot> foldl' f a [] = a
20:46:34 <lambdabot> foldl' f a (x:xs) = let a' = f a x in a' `seq` foldl' f a' xs
20:47:07 <Lymee> > reverse $ reverse $ [1..]
20:47:08 <oerjan> foldl can build up a thunk if ghc cannot detect that the folding operation is strict
20:47:11 <lambdabot> mueval-core: Time limit exceeded
20:47:15 <Lymee> > reverse . reverse $ [1..]
20:47:20 <lambdabot> mueval-core: Time limit exceeded
20:47:20 <Lymee> Lies.
20:47:22 <Phantom_Hoover> Oh god, what do I do with this huge wodge of disk space taken up by Red Dwarf.
20:47:27 <Phantom_Hoover> I can't bring myself to delete it.
20:47:29 <Lymee> Phantom_Hoover, rm -rf
20:47:31 <oerjan> Lymee: what?
20:47:46 <oerjan> (that was to the "Lies.")
20:47:52 <Lymee> Oh, never mind.
20:48:03 <fizzie> > sum $ let t n = if n == 0 then [0] else n:(t (n/2)) in t 1
20:48:05 <lambdabot> 2.0
20:48:13 <fizzie> Floating-point underflow saves the day.
20:48:40 <oerjan> > sum . takeWhile (/= 0) . iterate (/2) $ 1
20:48:43 <lambdabot> 2.0
20:49:38 <fizzie> I'm not really a haskeller, so I do things the hard way.
20:50:09 <fizzie> Though your version didn't add that final 0, I guess.
20:50:24 <oerjan> indeed
20:50:31 <oerjan> :t takeUntil
20:50:33 <lambdabot> Not in scope: `takeUntil'
20:50:45 <oerjan> erm
20:50:55 <oerjan> i think i saw that function somewhere
20:51:05 <oerjan> @hoogle (a -> Bool) -> [a] -> [a]
20:51:06 <lambdabot> Prelude dropWhile :: (a -> Bool) -> [a] -> [a]
20:51:07 <lambdabot> Prelude filter :: (a -> Bool) -> [a] -> [a]
20:51:07 <lambdabot> Prelude takeWhile :: (a -> Bool) -> [a] -> [a]
20:51:13 <oerjan> @more
20:51:17 <fizzie> takeUntilBored.
20:51:21 <Lymee> > not True
20:51:22 <lambdabot> False
20:51:29 <oerjan> Lymee: shocking!
20:52:02 <Lymee> > takeUntil x = takeWhile (not . x)
20:52:03 <lambdabot> <no location info>: parse error on input `='
20:52:05 <Lymee> :<
20:53:45 <oerjan> that's not an expression.
20:54:06 <oerjan> Lymee: also that's not the function i actually meant
20:54:46 <oerjan> i meant one which includes the first element after as well
20:56:30 <oerjan> :t (uncurry (++) . (id *** take 1) .) . span
20:56:31 <lambdabot> The operator `.' [infixr 9] of a section
20:56:31 <lambdabot> must have lower precedence than that of the operand,
20:56:31 <lambdabot> namely `.' [infixr 9]
20:56:34 <oerjan> ff
20:56:41 <oerjan> :t ((uncurry (++) . (id *** take 1)) .) . span
20:56:42 <lambdabot> forall a. (a -> Bool) -> [a] -> [a]
20:58:28 <Phantom_Hoover> FFS, OSX, why do you make it impossible to write files on external volumes from a Linux computer.
21:00:10 <Phantom_Hoover> Dammit, the kernel drivers don't actually support writing to HFS+.
21:01:29 <cheater__> hey guys
21:01:34 <Phantom_Hoover> Well, journalled HFS+.
21:01:34 <cheater__> is altavista.digital.com down?
21:03:08 <oerjan> http://www.downforeveryoneorjustme.com/altavista.digital.com
21:04:16 <cheater__> i would have gone to that website but with the Web Catalog being down i can't find it anymore.
21:04:45 <oerjan> ...RIGHT...
21:05:15 <cheater__> hmm
21:05:21 <cheater__> fortunately enough lycos is working
21:11:48 -!- Sgeo_ has joined.
21:12:03 -!- Sgeo_ has quit (Client Quit).
21:35:13 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:41:06 -!- zzo38 has joined.
21:41:26 <zzo38> I wrote a program which can be used for LLVM bitcodes, it might be usable even for things other than LLVM. http://sprunge.us/bCLQ
21:52:39 -!- Slereah has quit (Ping timeout: 252 seconds).
22:02:50 -!- elliott_ has joined.
22:02:57 <newsham> > curry howard
22:02:58 <lambdabot> Not in scope: `howard'
22:03:12 <newsham> > curry favor
22:03:12 <lambdabot> Not in scope: `favor'
22:03:25 <newsham> > masala curry
22:03:26 <lambdabot> Not in scope: `masala'
22:05:28 -!- Slereah has joined.
22:05:56 <twice11> > curry chicken
22:05:57 <lambdabot> Not in scope: `chicken'
22:06:59 <oerjan> :t uncurry uncurry
22:07:00 <lambdabot> forall a b c. (a -> b -> c, (a, b)) -> c
22:08:44 <newsham> uncurry chicken?
22:09:13 <Sgeo> https://docs.google.com/document/pub?id=1smG1sBiZ4Gs3kmQm6Ge30zVPnYW6Lz06Jncqgug1k9I Deepak Chopra
22:09:16 * Sgeo slaps
22:09:29 <Sgeo> Oh, and it actually gets worse from what's in there
22:10:02 <Sgeo> Apparently, the force working against entropy is intelligence
22:10:05 * Sgeo mindboggles
22:10:07 <Phantom_Hoover> Man, space is so *boring*.
22:10:46 <Phantom_Hoover> Sgeo, I like the way he spells 'entropy' with an h.
22:11:01 <Sgeo> Phantom_Hoover, I may have typoed a bit
22:11:41 <Sgeo> Yeah, that's my typo, not his
22:11:45 <zzo38> Entropy increases anyways.
22:12:46 <Sgeo> From the paragraph after what I typed out: "Intelligence holds together the blueprint of each cell in its DNA, and many scientists now believe the same holds true of the entire universe."
22:13:10 <zzo38> What exactly does that supposed to mean?
22:13:31 <Phantom_Hoover> The blueprint of the universe is held together by intelligence in its DNA.
22:13:46 <zzo38> In what DNA?
22:14:09 <Sgeo> zzo38, we're discussing a pseudoscientific loon.
22:14:10 <zzo38> DNA consists of A,C,T,G not of intelligence or anything else, I think, isn't it?
22:14:14 <Sgeo> Don't expect stuff to make sense
22:15:08 <zzo38> Now it is my turn to beat Imakuni?
22:16:01 <zzo38> And then is your turn next please
22:26:52 * Phantom_Hoover → sleep
22:27:44 <elliott_> Gregor: ping
22:27:57 -!- Phantom_Hoover has quit (Quit: Leaving).
22:29:15 <newsham> i prefer dna made of ICFP
22:29:45 -!- zzo38 has quit (Remote host closed the connection).
22:32:16 -!- augur has quit (Remote host closed the connection).
22:32:17 -!- pikhq has joined.
22:32:36 -!- pikhq_ has quit (Ping timeout: 255 seconds).
22:48:19 <elliott_> Gregor Gregor Gregor Gregor Gregor Gregor Gregor Gregor Gregor Gregor Gregor Gregor
22:49:52 <newsham> SII(SII)
22:59:21 <elliott_> newsham: why are you impersonating the news ham
23:01:11 -!- krbot has joined.
23:01:26 -!- krbot has quit (Remote host closed the connection).
23:01:38 <newsham> i dont get it
23:02:38 <oerjan> elliott_: it's just a new sham
23:02:52 <elliott_> newsham: its not OK
23:03:01 <elliott_> oh god i lost the code for the news ham
23:03:04 <elliott_> maybe ill dig it out of the logs
23:09:15 <newsham> is it edible mineral or vegetable?
23:10:11 <Sgeo> I'd think it's "animal"
23:10:40 <Sgeo> Dear Chrome: When I type stuff into the address bar, it's not nice to pretend I didn't
23:12:02 <elliott_> newsham: other
23:12:54 <newsham> sgeo: ham's edible
23:13:40 <Sgeo> I'd think it qualifies as animal though
23:18:52 <oerjan> i note that newsham doesn't consider vegetables edible
23:20:58 <newsham> oerjan: when it interferes with funny, vegetables are excluded.
23:21:02 <newsham> in reality i like em alot
23:21:36 <oerjan> so it's kind of a heisenberg principle of edible vs. funny?
23:22:24 <newsham> funny > strange, truth + beauty
23:23:36 -!- CakeProphet has joined.
23:23:36 -!- CakeProphet has quit (Changing host).
23:23:36 -!- CakeProphet has joined.
23:29:18 -!- krbot has joined.
23:30:59 <oerjan> the fourth family: fun quark, food quark, caulifloron and caulifloron neutrino
23:31:16 <oerjan> (in other news there are suspiciously few vegetables in f)
23:32:05 <newsham> i want a shirt made of spider silk
23:32:08 <Sgeo> Are muons and muon neutrinos actually connected to charm and strange quarks in some way, other than being sort of a next level thing?
23:32:33 <oerjan> interesting question
23:34:09 -!- Vorpal has quit (Ping timeout: 250 seconds).
23:38:22 <Sgeo> Um, would that be a question that we currently don't know the answer to?
23:41:47 -!- krbot has quit (Remote host closed the connection).
23:43:34 -!- krbot has joined.
23:44:34 <Sgeo> Oh no, not again.
23:47:04 -!- ChanServ has set channel mode: +o oerjan.
23:47:19 -!- augur has joined.
23:47:26 -!- oerjan has set channel mode: -b *!*krbot@*.hsd1.ca.comcast.net.
23:47:41 -!- oerjan has set channel mode: +b *!*krbot@*.
23:47:49 -!- oerjan has kicked krbot krbot.
23:49:30 -!- oerjan has set channel mode: -o oerjan.
23:50:46 -!- augur has quit (Remote host closed the connection).
23:51:24 <oerjan> > 524351/86400
23:51:26 <lambdabot> 6.068877314814815
23:52:53 -!- elliott_ has quit (Ping timeout: 260 seconds).
2011-06-27
00:12:02 -!- elliott_ has joined.
00:12:14 <elliott_> <elliott_> <newsham> i want a shirt made of spider silk
00:12:16 <elliott_> <elliott_> um are you ph
00:15:26 -!- myndzi has quit (Remote host closed the connection).
00:20:47 -!- augur has joined.
00:38:05 -!- augur has quit (Remote host closed the connection).
00:52:05 -!- myndzi has joined.
01:08:40 <Lymee> > 1/0
01:08:41 <lambdabot> Infinity
01:08:43 <Lymee> > 0/0
01:08:44 <lambdabot> NaN
01:08:56 <Lymee> > [1/0
01:08:57 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
01:09:00 <Lymee> > [1/0,5..]
01:09:01 <lambdabot> [Infinity,5.0,-Infinity,-Infinity,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,N...
01:09:08 <oerjan> wtf :P
01:09:26 <Lymee> > [1/0,5,1/0..]
01:09:27 <lambdabot> <no location info>: parse error on input `..'
01:09:35 <Lymee> > [1/0,5..-1/0]
01:09:36 <lambdabot> Not in scope: `..-'
01:09:39 <Lymee> > [1/0,5..-(1/0)]
01:09:40 <lambdabot> Not in scope: `..-'
01:09:43 <Lymee> > [1/0,5..0-(1/0)]
01:09:44 <lambdabot> [Infinity,5.0,-Infinity,-Infinity]
01:09:52 <Lymee> > [1/0,5..(0/0)]
01:09:53 <lambdabot> []
01:11:49 <oerjan> > let l = [1/0,5..] in l !! 2 == l !! 3
01:11:50 <lambdabot> True
01:12:30 <elliott_> Gregor Gregor Gregor Gregor Gregor
01:12:42 <Lymee> > [1/0,pi..]
01:12:44 <lambdabot> [Infinity,3.141592653589793,-Infinity,-Infinity,NaN,NaN,NaN,NaN,NaN,NaN,NaN...
01:12:47 <Lymee> > [1/0,pi..-pi]
01:12:48 <lambdabot> Not in scope: `..-'
01:12:50 <oerjan> weird, why does it have two equal elements and _then_ a different one...
01:12:53 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:12:53 <Lymee> > [1/0,pi..-1000]
01:12:54 <lambdabot> Not in scope: `..-'
01:12:55 <elliott_> oerjan: foalting point
01:13:00 <Lymee> oerjan, because infinity is weird.
01:13:40 <oerjan> elliott_: well i'm just wondering what kind of algorithm can do that, it means it cannot be adding the same constant each time...
01:13:55 <elliott_> oerjan: um you realise (==) is not true on floating point
01:14:02 <elliott_> a can == b but f a can /= f b
01:14:14 <oerjan> oh hm...
01:14:54 <oerjan> @src RealFloat
01:14:54 <lambdabot> Source not found. Do you think like you type?
01:15:01 <oerjan> er
01:15:06 <oerjan> :k RealFloat
01:15:08 <lambdabot> Class `RealFloat' used as a type
01:15:08 <lambdabot> In the type `RealFloat'
01:15:19 <oerjan> ok it exists
01:15:23 <elliott_> what are you looking for
01:15:31 <oerjan> the RealFloat methods...
01:15:34 <elliott_> http://www.haskell.org/ghc/docs/7.0.2/html/libraries/base-4.3.1.0/src/Numeric.html
01:15:39 <elliott_> or uh wait
01:15:40 <Lymee> > [0/1,0/1..]
01:15:42 <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....
01:15:46 <elliott_> http://www.haskell.org/ghc/docs/7.0.2/html/libraries/base-4.3.1.0/Prelude.html#t:RealFloat
01:15:47 <elliott_> oerjan: http://www.haskell.org/ghc/docs/7.0.2/html/libraries/base-4.3.1.0/Prelude.html#t:RealFloat
01:15:49 <Lymee> > [1/0,1/0..]
01:15:50 <lambdabot> [Infinity,Infinity,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,...
01:15:56 <Lymee> wtf
01:16:05 <Lymee> > [0/0,1/0..]
01:16:06 <lambdabot> [NaN,Infinity,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,N...
01:16:11 <Lymee> > [0/0,5..]
01:16:12 <lambdabot> [NaN,5.0,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,Na...
01:17:25 <oerjan> > map decodeFloat [1/0,5..]
01:17:26 <lambdabot> [(4503599627370496,972),(5629499534213120,-50),(-4503599627370496,972),(-45...
01:17:36 <Lymee> > map decodeFloat [0/0,5..]
01:17:38 <lambdabot> [(-6755399441055744,972),(5629499534213120,-50),(-6755399441055744,972),(-6...
01:17:41 <oerjan> > drop 2 $ map decodeFloat [1/0,5..]
01:17:42 <lambdabot> [(-4503599627370496,972),(-4503599627370496,972),(-6755399441055744,972),(-...
01:17:59 <oerjan> elliott_: well that did not distinguish them
01:18:14 <elliott_> hmm
01:18:17 <elliott_> ?src Float enumFromTo
01:18:18 <lambdabot> Source not found. And you call yourself a Rocket Scientist!
01:18:26 <Lymee> > map decodeFloat $ map (\x y -> (x/10,y)) [1/0,pi..-pi]
01:18:27 <lambdabot> Not in scope: `..-'
01:18:30 <elliott_> oerjan: i guess a sequential addition loop would do differently
01:18:33 <Lymee> > map decodeFloat $ map (\x y -> (x/10,y)) [1/0,pi..]
01:18:34 <lambdabot> No instance for (GHC.Float.RealFloat (t -> (a, t)))
01:18:34 <lambdabot> arising from a use o...
01:18:45 <Lymee> > map decodeFloat $ map (\x y -> (x/10,y)) $ [1/0,pi..]
01:18:47 <lambdabot> No instance for (GHC.Float.RealFloat (t -> (a, t)))
01:18:47 <lambdabot> arising from a use o...
01:19:01 <Lymee> > map decodeFloat $ map (\(x, y) -> (x/10,y)) $ [1/0,pi..]
01:19:02 <lambdabot> No instance for (GHC.Float.RealFloat (t, t1))
01:19:02 <lambdabot> arising from a use of `GHC...
01:19:06 <Lymee> :<
01:19:27 -!- elliott_ has quit (Remote host closed the connection).
01:19:58 -!- elliott has joined.
01:20:27 -!- cheater__ has quit (Ping timeout: 255 seconds).
01:20:52 -!- tswett has joined.
01:20:52 <oerjan> > map (map decodeFloat) $ map (\(x, y) -> [x/10,y]) $ [1/0,pi..]
01:20:54 <lambdabot> No instance for (GHC.Enum.Enum (a, a))
01:20:54 <lambdabot> arising from the arithmetic seque...
01:20:57 <oerjan> oops
01:21:00 <tswett> Hey, does anyone want to play Zendo?
01:21:11 <oerjan> oh wait
01:21:21 <Lymee> > map ma decodeFloat [1/0,pi..]
01:21:22 <lambdabot> Not in scope: `ma'
01:21:25 <Lymee> > map decodeFloat [1/0,pi..]
01:21:26 <lambdabot> [(4503599627370496,972),(7074237752028440,-51),(-4503599627370496,972),(-45...
01:21:40 <elliott> sebbu: ur a zendo
01:21:54 <oerjan> > map (map decodeFloat) $ map (\x -> [x/10,x]) $ [1/0,pi..]
01:21:55 <Lymee> > drop 3 $ map decodeFloat [1/0,pi..]
01:21:55 <lambdabot> [[(4503599627370496,972),(4503599627370496,972)],[(5659390201622752,-54),(7...
01:21:56 <lambdabot> [(-4503599627370496,972),(-6755399441055744,972),(-6755399441055744,972),(-...
01:22:11 <Lymee> [(4503599627370496,972),(7074237752028440,-51),(-4503599627370496,972),(-4503599627370496,972),(-6755399441055744,972),(-6755399441055744,972)]
01:22:15 <Lymee> Now to figure out wtf is happening.
01:22:23 <oerjan> well i have a theory
01:22:36 <tswett> sebbu: no, I'm a zendo!
01:22:36 <elliott> enumFromTo probably does not use repeated addition
01:22:39 <oerjan> > [1/0,5..]
01:22:39 <elliott> perhaps instead multiplying the constant
01:22:40 <lambdabot> [Infinity,5.0,-Infinity,-Infinity,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,N...
01:22:41 <tswett> No, I mean...
01:22:44 <tswett> elliott: no, I'm a zendo!
01:22:45 <Lymee> > -Infinity - -Infinity
01:22:46 <lambdabot> Not in scope: data constructor `Infinity'Not in scope: data constructor `In...
01:22:55 <elliott> > 5+(1/0)
01:22:56 <lambdabot> Infinity
01:22:58 <elliott> > 5+(1/0)+(1/0)
01:22:59 <lambdabot> Infinity
01:23:02 <elliott> > 5+(1/0)+(1/0)+(1/0)
01:23:04 <lambdabot> Infinity
01:23:06 <Lymee> > (-1/0) - (-1/0)
01:23:06 <elliott> oh wait it's removing
01:23:07 <lambdabot> NaN
01:23:09 <elliott> > 5-(1/0)
01:23:11 <lambdabot> -Infinity
01:23:12 <Lymee> > 5 - (-1/0)
01:23:13 <lambdabot> Infinity
01:23:14 <elliott> > 5-(1/0)-(1/0)
01:23:15 <lambdabot> -Infinity
01:23:16 <elliott> > 5-(1/0)-(1/0)
01:23:17 <lambdabot> -Infinity
01:23:18 <elliott> > 5-(1/0)-(1/0)-(1/0)
01:23:19 <lambdabot> -Infinity
01:23:23 <elliott> oerjan: yeah, it is not repeated subtraction
01:23:23 <elliott> or
01:23:24 <elliott> maybe it is
01:23:27 <elliott> but with different precedence
01:23:35 <elliott> > 5-((1/0)-((1/0)-(1/0)))
01:23:36 <lambdabot> NaN
01:23:38 <elliott> oerjan: :D
01:23:39 <elliott> tada
01:23:41 <Lymee> elliott.
01:23:45 <elliott> > 5-((1/0)-(1/0))
01:23:46 <lambdabot> NaN
01:23:48 <elliott> oh
01:23:49 <Lymee> >(1/0) - 5
01:23:54 <Lymee> > (1/0) - 5
01:23:55 <lambdabot> Infinity
01:23:56 <elliott> Lymee: stop pinging me without saying anything
01:24:02 <Lymee> > 5 - ((1/0) - 5)
01:24:03 <lambdabot> -Infinity
01:24:10 <Lymee> > (5 - ((1/0) - 5)) - ((1/0) - 5)
01:24:11 <lambdabot> -Infinity
01:24:19 <Lymee> > ((5 - ((1/0) - 5)) - ((1/0) - 5)) - ((1/0) - 5)
01:24:20 <lambdabot> -Infinity
01:24:23 <Lymee> nyan?
01:24:43 <oerjan> > let f x y = x : f y (y+(y-x)) in f (1/0) 5
01:24:44 <lambdabot> [Infinity,5.0,-Infinity,-Infinity,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,N...
01:24:48 <oerjan> elliott: ^
01:24:54 <oerjan> is my theory
01:25:02 <elliott> oerjan: what a strange way of doing it
01:27:28 <oerjan> yeah you'd think that would be inefficient
01:29:17 <oerjan> hm that's not what h98 report says...
01:29:43 <Lymee> > 1 + 1 = 1
01:29:44 <lambdabot> <no location info>: parse error on input `='
01:29:48 * Lymee runs
01:30:23 <oerjan> > let f x y = map ((x+).((y-x)*) [0..] in f (1/0) 5
01:30:24 <lambdabot> <no location info>: parse error on input `in'
01:30:35 <oerjan> > let f x y = map ((x+).((y-x)*)) [0..] in f (1/0) 5
01:30:37 <lambdabot> [NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,Na...
01:30:54 <oerjan> oh hm
01:31:11 <Lymee> ?pl let f x y = map ((x+).((y-x)*)) [0..] in f (1/0) 5
01:31:11 <lambdabot> map ((1 / 0 +) . ((5 - 1 / 0) *)) [0..]
01:31:14 <Lymee> What.
01:31:23 <Lymee> That's not as near as dotty as I expected.
01:31:50 <oerjan> there are no lambdas to dot
01:31:58 <elliott> um that's just beta reduction Lymee
01:32:02 <elliott> to remove the f point
01:34:08 -!- cheater__ has joined.
01:38:51 <elliott> tehz is really annoying...
01:43:24 <oerjan> Enum Double appears to be an orphan instance, it's hard to find the actual source :(
01:45:12 -!- Lymia has joined.
01:45:38 -!- Lymee has quit (Disconnected by services).
01:45:40 -!- Lymia has changed nick to Lymee.
01:47:25 -!- augur has joined.
01:50:59 * oerjan finally finds a link to GHC.Float source
01:52:59 <elliott> oerjan: you should just download ghc when looking for internal module sources :P
01:53:35 -!- augur has quit (Remote host closed the connection).
01:54:19 <oerjan> hmph
01:58:11 <oerjan> numericEnumFromThen n m= n `seq` m `seq` (n : numericEnumFromThen m (m+m-n))
01:58:24 <oerjan> finally found it in GHC.Real
01:58:48 <elliott> :D
01:58:57 <elliott> but why such a weird definition, i guess maybe it's more accurate
02:00:52 -!- Madk has joined.
02:01:06 <Madk> hello
02:01:19 -!- Madk has quit (Client Quit).
02:01:30 <monqy> hi
02:01:58 <oerjan> elliott: according to some comments i found under way, these were originally in the haskell 1.2 report
02:02:04 <oerjan> the h98 report instead has
02:02:16 <oerjan> numericEnumFromThen n m = iterate (+(m-n)) n
02:02:36 <elliott> was that madk....
02:02:53 <oerjan> well those comments may of course be out of date for the actual current ghc code
02:03:35 <oerjan> the ghc code has a strictness error, me thinks
02:03:44 <oerjan> > [1.0, undefined ..]
02:03:45 <lambdabot> *Exception: Prelude.undefined
02:03:58 <oerjan> the report indicates it should give the 1.0
02:04:04 <elliott> oerjan: report it? :P
02:04:09 <oerjan> NEVER
02:04:17 <elliott> oerjan: (also, you realise h98 isn't the report any more, right?)
02:04:26 <elliott> where does it indicate that?
02:04:29 <oerjan> yeah but i doubt this changed
02:04:36 <oerjan> http://www.haskell.org/onlinereport/standard-prelude.html
02:04:37 * elliott will report it
02:04:52 <elliott> oerjan: which part exactly?
02:04:54 <elliott> gimme a string to grep :P
02:05:07 <elliott> enumFromThen :: a -> a -> [a] -- [n,n'..]
02:05:07 <elliott> that?
02:05:41 <oerjan> numericEnumFromThen
02:06:13 <elliott> oerjan: um is exact identicality required?
02:06:16 <elliott> even when _|_ is involved?
02:06:29 <oerjan> _especially_ when _|_ is involved.
02:06:33 -!- Lymia has joined.
02:07:29 <oerjan> there was a reasonable improvement to filterM which they wouldn't make because it would cause certain _|_'s to show up in a different place
02:07:34 <elliott> argh, Chrome, forget my guest/guest login
02:08:13 <oerjan> elliott: you might mention the silly [1/0, 5..] behavior :P
02:08:25 <elliott> how is it silly?
02:08:45 <elliott> FUCK THIS HOW THE FUCK DO I LOG IN JESUS
02:09:29 -!- Lymee has quit (Ping timeout: 240 seconds).
02:09:32 <elliott> fu;KCK
02:09:37 <elliott> ill use firefox
02:09:52 <oerjan> see, this is precisely the kind of reason why i refuse to report things :P
02:10:13 <elliott> um that was my stupidity for logging in to the guest account first
02:10:18 <elliott> > [0, undefined..]
02:10:19 <lambdabot> [0*Exception: Prelude.undefined
02:10:22 <elliott> > [0.0, undefined..]
02:10:24 <lambdabot> *Exception: Prelude.undefined
02:10:55 <elliott> oerjan: paste me numericEnumFrom, numericEnumFromThen definitions?
02:10:56 <elliott> from ghc
02:11:11 <oerjan> numericEnumFrom :: (Fractional a) => a -> [a]
02:11:12 <oerjan> numericEnumFrom n= n `seq` (n : numericEnumFrom (n + 1))
02:11:12 <oerjan> numericEnumFromThen :: (Fractional a) => a -> a -> [a]
02:11:12 <oerjan> numericEnumFromThen n m= n `seq` m `seq` (n : numericEnumFromThen m (m+m-n))
02:11:44 <oerjan> the former looks reasonable
02:12:33 <oerjan> although the seq means it's not entirely equivalent to the standard Prelude
02:13:13 <elliott> > map (const ()) [0, undefined..]
02:13:14 <lambdabot> [()*Exception: Prelude.undefined
02:13:41 <elliott> oerjan: hm so the standard evaluation of [0.0, undefined..] should be...
02:13:42 <elliott> ?src iterate
02:13:43 <lambdabot> iterate f x = x : iterate f (f x)
02:14:09 <elliott> 0.0 : iterate (+(0.0-undefined)) (0.0+(0.0-undefined))
02:14:15 <elliott> oerjan: in other words, 0.0 : undefined?
02:14:31 <oerjan> 0.0 : repeat undefined, i think
02:14:51 <elliott> oerjan: um so
02:14:51 <elliott> <elliott> > map (const ()) [0, undefined..]
02:14:51 <elliott> <lambdabot> [()*Exception: Prelude.undefined
02:14:52 <elliott> is broken too?
02:15:15 <elliott> oerjan: does that mean more than numericEnumFromThen is broken?
02:15:30 <oerjan> ok, confirmed nothing has changed with those two functions in h2010
02:15:58 <oerjan> elliott: erm Integer doesn't use numericEnumFromThen
02:16:10 <elliott> oerjan: i already confirmed that
02:16:14 <elliott> oerjan: and yes, but doesn't it mean it's still broken?
02:16:14 <oerjan> it's solely for Float and Double
02:16:20 <elliott> whatever is used there
02:16:54 <oerjan> there is no code. it is quite possible undefined behavior is not specified for those :P
02:17:04 <elliott> fair enough
02:17:12 <elliott> > [undefined..]
02:17:13 <lambdabot> *Exception: Prelude.undefined
02:17:29 <elliott> > iterate (+1) undefined
02:17:30 <lambdabot> [*Exception: Prelude.undefined
02:17:34 <elliott> > map (const ()) (iterate (+1) undefined)
02:17:35 <lambdabot> [(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),()...
02:19:08 <elliott> oerjan: http://hackage.haskell.org/trac/ghc/ticket/5279
02:19:26 <elliott> oerjan: my first GHC bug :)
02:19:31 <elliott> er, I probably should have credited you
02:19:35 <elliott> I can edit it if you want :P
02:19:39 <elliott> or, hm, no I can't, only reply
02:19:53 <oerjan> elliott: oops
02:19:57 <elliott> oerjan: ?
02:20:07 <oerjan> i wasn't quite finished checking the report
02:20:14 <elliott> oerjan: well I did my own checking...
02:20:17 <oerjan> "For all four of these Prelude numeric types, all of the enumFrom family of functions are strict in all their arguments."
02:20:33 <elliott> argh
02:21:11 <oerjan> the code in the report is not consistent with it, but ghc may have added those seq's for it
02:21:27 <elliott> oerjan: made invalid
02:21:31 <elliott> (by me)
02:21:48 <oerjan> anyway, this still doesn't change that enumFromThen is stupidly defined on Float/Double
02:22:05 <oerjan> by repeatedly recalculating the difference to add
02:23:21 <oerjan> elliott: btw this means Integer is not strict _enough_ in ghc :P
02:23:27 <elliott> oerjan: :D
02:23:30 <elliott> you can never be unstrict enough
02:23:30 <oerjan> > [0, undefined..]
02:23:31 <lambdabot> [0*Exception: Prelude.undefined
02:23:39 <elliott> oerjan: you could reply to the bug report as a guest saying it's sort of valid :P
02:23:51 -!- Robdgreat has quit (Ping timeout: 244 seconds).
02:24:00 <oerjan> by that report line that should not give the initial 0
02:24:23 <elliott> oerjan: check that that's ABSOLUTELY sure and I'll report it
02:24:48 <oerjan> since when am i absolutely sure about anything
02:25:03 <elliott> oerjan: >:(
02:25:20 <oerjan> but i just quoted that line above, which applies to Int, Integer, Float and Double
02:25:55 <oerjan> of course the report (both h98 and h2010) is inconsistent :P
02:26:11 <elliott> oerjan: report a bug in the report :P
02:29:58 <oerjan> no.
02:32:15 <elliott> oerjan: fly
02:36:04 -!- Lymia__ has joined.
02:36:16 -!- Lymia__ has changed nick to Lymee.
02:36:18 -!- Lymee has quit (Changing host).
02:36:18 -!- Lymee has joined.
02:38:11 -!- myndzi\ has joined.
02:38:54 -!- Lymia has quit (Ping timeout: 276 seconds).
02:41:17 -!- myndzi has quit (Read error: Connection reset by peer).
02:42:09 -!- augur has joined.
02:58:04 -!- Lymia has joined.
02:58:44 -!- Lymee has quit (Disconnected by services).
02:58:46 -!- Lymia has changed nick to Lymee.
03:02:06 <monqy> http://www.haskell.org/ghc/docs/latest/html/libraries/ghc-prim-0.2.0.0/src/GHC-Tuple.html#%28%2C%29 this is the best thing
03:02:10 <monqy> especially the commented out part
03:03:34 <oerjan> wait, ghc actually defines tuples in source?
03:04:14 <elliott> why wouldn't it?
03:04:31 <elliott> monqy: lol at segfault
03:04:38 <oerjan> mainly because it's not legal haskell syntax
03:04:41 <monqy> and it just keeps on going
03:04:50 <elliott> oerjan: um neither is (:) and []
03:05:12 <elliott> /home/elliott/Code/test.hs:1:6:
03:05:12 <elliott> Illegal binding of built-in syntax: (,)
03:05:15 <oerjan> indeed. are they defined in source, too?
03:05:17 <elliott> oerjan: i guess ghc-prim gets some special flags
03:05:31 <oerjan> elliott: maybe it's that GHC.Generics import
03:05:58 * elliott looks for lits
03:06:00 <elliott> list
03:06:22 <elliott> argh it makes reference to GHC.List, which is not listed
03:07:16 <oerjan> hm i had similar trouble finding GHC.Float
03:07:22 <elliott> oerjan: checking the tarball now
03:08:01 <elliott> huh GHC.List may not actually exist?
03:08:03 <elliott> dunno
03:08:10 <elliott> oh wait
03:08:25 <elliott> module GHC.List (
03:08:25 <elliott> -- [] (..), -- Not Haskell 98; built in syntax
03:08:26 <elliott> oerjan: hmph
03:08:46 <elliott> -- We need to set the package name to ghc-prim (without a version number)
03:08:46 <elliott> -- as it's magic.
03:08:46 <elliott> ghc-options: -package-name ghc-prim
03:08:50 <elliott> oerjan: i bet that allows binding of the syntax
03:09:02 <elliott> GHC.Generics is just
03:09:04 <elliott> {-# OPTIONS_GHC -XNoImplicitPrelude -XTypeOperators #-}
03:09:04 <elliott> module GHC.Generics where
03:09:04 <elliott> default ()
03:09:04 <elliott> data Unit = Unit
03:09:04 <elliott> #ifndef __HADDOCK__
03:09:05 <elliott> data (:+:) a b = Inl a | Inr b
03:09:07 <elliott> data (:*:) a b = a :*: b
03:09:09 <elliott> #endif
03:09:12 <oerjan> elliott: i found it in the same directory as GHC.Float, i think it's split according to original base version
03:09:48 <oerjan> ah
03:10:55 <oerjan> NoImplicitPrelude might help with some things too
03:11:00 <Sgeo> Some of my (or my parents' I guess) money went to Deepak Chopra
03:11:02 <Sgeo> :(:(:('
03:12:16 <elliott> hahahahahaha
03:12:32 <elliott> ?hoogle (a -> Bool) -> (a -> b) -> (a -> b) -> a -> b
03:12:33 <lambdabot> Control.Parallel.Strategies (-|) :: (a -> b) -> Strategy b -> (b -> c) -> a -> c
03:12:33 <lambdabot> Control.Parallel.Strategies (-||) :: (a -> b) -> Strategy b -> (b -> c) -> a -> c
03:12:33 <lambdabot> Control.Parallel.Strategies (.|) :: (b -> c) -> Strategy b -> (a -> b) -> a -> c
03:12:36 <elliott> :(
03:12:45 <elliott> ?. pl djinn (a -> Bool) -> (a -> b) -> (a -> b) -> a -> b
03:12:45 <lambdabot> (line 3, column 11):
03:12:45 <lambdabot> unexpected ">" or "-"
03:12:45 <lambdabot> expecting variable, "(", operator or end of input
03:12:49 <elliott> ?.djinn (a -> Bool) -> (a -> b) -> (a -> b) -> a -> b
03:12:50 <lambdabot> f a b c d =
03:12:50 <lambdabot> case a d of
03:12:50 <lambdabot> False -> b d
03:12:50 <lambdabot> True -> c d
03:12:54 <elliott> ugh
03:13:33 <oerjan> :t bool
03:13:35 <lambdabot> Not in scope: `bool'
03:13:39 <oerjan> :t if'
03:13:40 <lambdabot> Not in scope: `if''
03:13:42 <elliott> > a+b `mod`
03:13:43 <elliott> > a+b `mod` c
03:13:44 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
03:13:44 <lambdabot> a + b `mod` c
03:13:47 <elliott> >_<
03:13:50 <elliott> > (a+b) `mod` c
03:13:51 <lambdabot> (a + b) `mod` c
03:13:55 <elliott> > a+(b `mod` c)
03:13:56 <lambdabot> a + b `mod` c
03:14:00 <oerjan> they don't seem to have included any of those yet
03:14:19 <elliott> actually, I'm id if the condition is not true
03:14:29 <elliott> ?hoogle (a -> Bool) -> (a -> a) -> a -> a
03:14:30 <lambdabot> Prelude until :: (a -> Bool) -> (a -> a) -> a -> a
03:14:30 <lambdabot> Prelude (.) :: (b -> c) -> (a -> b) -> a -> c
03:14:30 <lambdabot> Data.Function (.) :: (b -> c) -> (a -> b) -> a -> c
03:14:34 <elliott> gah
03:14:46 <elliott> it's foo p f x = if p x then f x else x
03:14:56 <elliott> oerjan: chr (ord 'a' + ((ord c - ord 'a') + n) `mod` 26)
03:14:57 <elliott> MAKE PRETTIER
03:15:34 -!- zzo38 has joined.
03:16:26 <oerjan> dunno
03:17:02 <zzo38> There are many things in Magic: the Gathering that if I was making rules of a similar game I would consider different things to be logical than what they would have.
03:17:27 <Sgeo> I wonder how many of the MtG rules are due to historical cruf
03:17:29 <Sgeo> cruft
03:17:37 <Sgeo> Making sure old cards still work etc.
03:17:47 <Lymee> I don't think there's as much as exists in Windows.
03:17:51 <Lymee> If that's a useful comparison.
03:17:53 <zzo38> Like, I would name the zones differently: library is now called "draw zone", graveyard is "discard zone", hand is still called "hand zone", exile/remove-from-game is called "miscellaneous zone", stack is still caleld "stack zone".
03:18:34 <Lymee> Those arn't rules.
03:18:58 <zzo38> I dislike the rule that a aura is not also allowed to be a creature, and would remove that rule.
03:20:36 -!- oerjan has quit (Quit: Good night).
03:20:47 <zzo38> When a object moves from one zone to another, in most cases, the old object no longer exists and the new object is created from the old object's "initial data". A token has none and therefore when it moves, nothing is added to the new zone; there would be no state based effect for making tokens cease to exist when moving outside play.
03:21:02 <zzo38> A copy of a spell would now be considered a token.
03:21:37 <zzo38> This means a copy of a artifact/creature/enchantment spell can be played and you move an object from stack to play, it remains the same object so it is the same token and it will still work.
03:24:25 <zzo38> And then that sources of damage that do not exist do not deal any damage (the target will not receive any damage from non-existent source). However damage still waiting to be dealt is still dealt the same way if the source object still exists, regardless of changes that might have been made (except possibly for triggered abilities that prevent it).
03:24:55 <zzo38> Do you think my way is more logical or more insane or both or neither?
03:27:52 -!- azaq23 has joined.
03:31:27 -!- Robdgreat has joined.
03:32:09 <elliott> :t replicate
03:32:10 <lambdabot> forall a. Int -> a -> [a]
03:34:29 <Lymee> > replicate 4 4
03:34:30 <lambdabot> [4,4,4,4]
03:34:34 <Lymee> > replicate 4 [1..]
03:34:35 <lambdabot> [[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,2...
03:39:03 -!- azaq23 has quit (Ping timeout: 255 seconds).
03:56:35 <elliott> i like how (f x x) and (let y = x in f y y) aren't equivalent
03:57:05 <Sgeo> o.O What?
03:58:03 -!- Lymia has joined.
03:58:33 <elliott> Sgeo: consider
03:58:41 <elliott> > let foo f x = f x in foo 9 9
03:58:42 <lambdabot> 9
03:58:49 <elliott> > let foo f x = f x in (let x = 9 in foo x x)
03:58:50 <lambdabot> 9
03:58:53 <elliott> wait what
03:58:55 <elliott> oh
03:58:59 <elliott> > let foo f (x::Int) = f x in (let x = 9 in foo x x)
03:59:00 <lambdabot> 9
03:59:05 <elliott> wait, what?
03:59:11 <elliott> that surely should be a type error
03:59:27 <elliott> oh wait
03:59:32 <elliott> Sgeo: ok im pretty sure you can have it done but
03:59:36 <elliott> its not that easy :D
03:59:56 <Lymia> -' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'-._.
03:59:56 <Lymia> -._.-' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'
03:59:56 <Lymia> -' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'-._.
03:59:56 <Lymia> -._.-' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'-._.-' ̄'
03:59:57 <Lymia> Pewpew.
04:00:40 <copumpkin> elliott: ?
04:00:58 <elliott> copumpkin: ?
04:01:05 -!- Lymee has quit (Ping timeout: 240 seconds).
04:01:11 <copumpkin> why should it be a type error?
04:01:31 <elliott> coppro: it shouldn't
04:01:31 <elliott> copumpkin:
04:02:07 <copumpkin> why?
04:02:10 <copumpkin> oh
04:02:12 <copumpkin> yeah, it shouldn't
04:02:20 * copumpkin doesn't get what you were trying to show
04:03:05 <elliott> copumpkin: a case of (f x x) and (let y = x in f y y) one of which failing to type and the other not
04:04:37 <Sgeo> Does this have anything to do with monomorphic thingies?
04:05:06 <monqy> none of the attempts make any sense to me
04:05:09 <elliott> Sgeo: yes
04:05:10 <coppro> elliott: how dare you take my name in vain
04:05:10 <elliott> monqy: why not
04:05:15 <elliott> coppro ass
04:05:38 <coppro> elliott: why thank you
04:06:17 <monqy> (let foo f x = f x in foo 9 9) => (9 9) => ??????????????
04:06:42 <monqy> my ghci can't type it either without assitance :(
04:07:00 <elliott> monqy: num instance for functions
04:07:03 <monqy> oh
04:07:06 <elliott> f+g = \x -> f x+g x
04:07:07 <elliott> etc.
04:07:14 <monqy> > 9 9
04:07:15 <lambdabot> 9
04:07:24 <monqy> lambdabot is crazy
04:07:30 <elliott> ur MOM is cerzzy
04:08:14 <monqy> I always expect things like that to be in a newtype so it's harder to accidentally apply them
04:08:31 <Lymia> > 4 9
04:08:32 <lambdabot> 4
04:08:37 <Lymia> > 4 $ 9
04:08:38 <lambdabot> 4
04:08:41 <Lymia> What
04:08:48 <elliott> monqy: thats so less elegant :(
04:08:55 <elliott> > (succ + pred) 9
04:08:56 <lambdabot> 18
04:09:15 <monqy> ouch
04:09:18 <Lymia> ?pl (succ + pred) 9
04:09:18 <lambdabot> (succ + pred) 9
04:09:22 <Lymia> nyan oh
04:09:44 <Lymia> > (succ + pred / succ + pred) 9
04:09:45 <lambdabot> 18.8
04:09:49 <Lymia> wat
04:09:56 <monqy> > succ + pred
04:09:57 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
04:09:57 <lambdabot> arising from a use of `...
04:11:11 <Lymia> :t (succ + pred)
04:11:12 <lambdabot> forall a. (Enum a, Num a) => a -> a
04:12:17 <Lymia> :t succ
04:12:18 <lambdabot> forall a. (Enum a) => a -> a
04:12:20 <Lymia> :t red
04:12:21 <lambdabot> Not in scope: `red'
04:12:23 <Lymia> :t pred
04:12:24 <lambdabot> forall a. (Enum a) => a -> a
04:12:36 <Lymia> Does " (Enum a, Num a) " mean "an Enum and Num?"
04:13:22 <elliott> yes
04:14:41 <monqy> > (show :: Num a => a -> String) (succ + pred)
04:14:41 <lambdabot> "*Exception: show: No overloading for function
04:14:53 <monqy> oops
04:15:01 <Lymia> :t show $ (succ + pred)
04:15:02 <lambdabot> String
04:15:12 <Lymia> :t show (succ + pred)
04:15:13 <lambdabot> String
04:15:19 <Lymia> :t show . (succ + pred)
04:15:20 <lambdabot> forall a. (Num a, Enum a) => a -> String
04:17:25 <Lymia> ?pl show . (succ + pred)
04:17:25 <lambdabot> show . (succ + pred)
04:17:35 <Lymia> What is point-free style anyways?
04:20:32 <monqy> ?pl (\ x -> x x) (\ x -> x x)
04:20:35 <lambdabot> ap id id (ap id id)
04:20:35 <lambdabot> optimization suspended, use @pl-resume to continue.
04:20:47 <monqy> @pl-resume
04:20:54 <lambdabot> ap id id (ap id id)
04:20:54 <lambdabot> optimization suspended, use @pl-resume to continue.
04:20:57 <monqy> mmh
04:26:22 <Lymia> @pl-resume
04:26:35 <lambdabot> ap id id (ap id id)
04:26:35 <lambdabot> optimization suspended, use @pl-resume to continue.
04:27:29 <elliott> <Lymia> What is point-free style anyways?
04:27:31 <elliott> the lack of points
04:27:44 <elliott> where a point is a named argument
04:27:51 <elliott> i.e. \x -> x has one point, id has none
04:28:13 <elliott> point-free style builds up functions with combinators and composition rather than explicitly writing a lambda transformation
04:32:23 <Sgeo> That sounds annoying to write out in some circumstances
04:33:09 <elliott> can you do any more haskell than that goldilocks joke again
04:33:46 <Sgeo> I wrote a junky BF interpreter onc
04:33:47 <Sgeo> oncee
04:33:49 <Sgeo> once
04:34:07 <Sgeo> I kind of misplaced it
04:39:19 <elliott> > succ (9::Integer)
04:39:20 <lambdabot> 10
04:39:25 <elliott> > toEnum 0
04:39:26 <lambdabot> ()
04:39:28 <elliott> ?src Enum
04:39:29 <lambdabot> class Enum a where
04:39:29 <lambdabot> succ :: a -> a
04:39:29 <lambdabot> pred :: a -> a
04:39:29 <lambdabot> toEnum :: Int -> a
04:39:29 <lambdabot> fromEnum :: a -> Int
04:39:31 <lambdabot> [3 @more lines]
04:43:37 -!- azaq23 has joined.
04:44:33 <elliott> :t foldr
04:44:34 <lambdabot> forall a b. (a -> b -> b) -> b -> [a] -> b
04:55:20 <newsham> foldr? I just met'r!
05:00:44 <newsham> ?src ap
05:00:44 <lambdabot> ap = liftM2 id
05:01:28 <newsham> ?type ap id id
05:01:28 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
05:01:29 <lambdabot> Probable cause: `id' is applied to too few arguments
05:01:29 <lambdabot> In the second argument of `ap', namely `id'
05:03:46 <coppro> lol xkcd
05:06:11 <elliott> loaded, saw title, closed
05:06:38 <elliott> theory: it is impossible to write anything relating to douglas hofstadter without being really cringeworthy, this includes being hofstadter and writing anything
05:07:30 <elliott> Does anyone know how to find something in Chrome's cache?
05:07:36 <elliott> It stores a lot of things compressed, etc.
05:08:17 <monqy> a quick search came up with about:cache -- is that what you want
05:08:45 <newsham> i bet they know in #chromium and #chromium-os
05:08:54 <elliott> monqy: no that's just a huge list of cached things
05:09:01 <elliott> newsham: but this is the channel for everything :(
05:09:03 <monqy> try clicking on them??
05:09:10 <elliott> monqy: gives the compressed data :)
05:09:16 <monqy> oh ew :(
05:09:31 <Lymia> ?pl [pi..]
05:09:32 <lambdabot> [pi..]
05:09:36 <elliott> -ChanServ- [#chromium] Welcome to #chromium! Please see topic; this is NOT a support channel.
05:09:37 <elliott> newsham: you lied to me
05:09:38 <monqy> oh hey toying around with it and the back button crashed chromium
05:09:39 <monqy> what do you know
05:09:55 <monqy> speaking of esolangs, is there a record of who makes the most brainfuck derivatives
05:09:55 <elliott> monqy: srsly?
05:10:06 <monqy> chromium crashes on the stupidest things sometimes
05:10:14 <monqy> I tried to hit back while viewing some good compressed data
05:10:15 <monqy> bam crashed
05:10:18 <newsham> everything i say is a lie
05:10:20 <newsham> except that
05:10:21 <newsham> and that
05:10:22 <newsham> and that
05:10:23 <newsham> and that
05:10:32 <elliott> monqy: i suspect something that isnt chromium
05:10:48 <monqy> maybe it's something that isn't chromium
05:11:13 <monqy> but then why would that kill chromium
05:11:15 <monqy> a mystery
05:11:39 <elliott> packaging
05:11:43 <elliott> something else in your system
05:11:43 <elliott> etc
05:11:53 <elliott> chrome literally never crashes for me
05:12:04 <newsham> parody error
05:12:36 <monqy> it only crashes on dumb things for me
05:12:54 <monqy> like hitting back or dragging a bookmark into the tab bar thing
05:13:09 -!- sebbu has quit (Ping timeout: 260 seconds).
05:13:14 <monqy> and even then it only crashes sometimes
05:13:20 <elliott> what wm
05:13:32 <monqy> and by hitting back I mean specificially when viewing cached data and only that one time. I haven't tried reproducing it
05:13:35 <monqy> xmonad
05:13:44 <monqy> does xmonad have a reputation for killing chromium
05:13:52 <elliott> maybe chromium has some tiling wm-related bugs
05:14:12 <monqy> bizarre they would trigger then though
05:15:05 <elliott> well "dragging"
05:15:08 <elliott> thats a wm-ish thing
05:15:14 <newsham> maybe because xmonad causes it to resize the window quicker than it is prepared to be resized?
05:15:18 <newsham> or something like that
05:15:38 <newsham> ie. race condition
05:15:55 -!- sebbu has joined.
05:15:56 -!- sebbu has quit (Changing host).
05:15:56 -!- sebbu has joined.
05:16:32 <monqy> I just tried some fancy resizing tricks and did get a bug but not a crashy one
05:16:52 <monqy> the tab bar failed to resize and now it's running out of the frame
05:17:07 <monqy> by which I mean it cuts off
05:25:23 <elliott> http://esolangs.org/wiki/Image:Staq.jpg
05:25:23 <elliott> art
05:26:03 <monqy> which prompted me to raise my question about brainfuck derivative quantity championship
05:26:51 <monqy> assuming that language is indeed a brainfuck derivative -- I only glanced at it (too many instructions but I might try reading the spec anyway)
05:27:55 <coppro> monqy: yes
05:27:59 <coppro> have such a competition
05:28:02 <coppro> advertise on slashdot
05:28:42 <coppro> I wouldn't call staq a bf derivative though
05:29:00 <monqy> distant cousin
05:30:18 <elliott> still need a hostname here
05:30:50 <monqy> from my glance, []() and the command style/syntax/program execution style taste of brainfuck
05:32:54 -!- cheater__ has quit (Ping timeout: 255 seconds).
05:38:14 <coppro> monqy: It's got an execution model nothing like brainfuck's
05:38:25 <monqy> my glance sucked
05:38:46 <coppro> [] admittedly are similar to BF
05:38:47 <monqy> I'm going to pretend style doesn't mean model
05:39:15 <coppro> but otherwise, the only similarity is that every instruction has no arguments
05:39:51 <coppro> (and are, except for {}, one character)
05:40:21 <monqy> I wish there were fewer nonessential instructions so I could find the good parts
05:41:22 <elliott> its a madk language it is probably boring
05:42:05 <coppro> it's closer to befunge, honestly
05:42:06 -!- comex has quit (Read error: Connection reset by peer).
05:42:10 <monqy> I dunno; it is characterized by its fairly unique take on program flow, which allows intertwined loops and instruction overrides among other oddities. The language has robust access to two separate stacks, so the language is probably Turing-complete.
05:42:27 <coppro> oh it's obviously turing complete
05:43:47 <coppro> it's pretty easy to implement fixed-tape-length BF on top of it
05:44:00 <coppro> slightly more complex if you want infinite tape
05:44:03 <coppro> but far from impossible
05:44:36 <elliott> lol coppro
05:44:40 <elliott> you realise that was a copypaste
05:45:00 <coppro> nope
05:45:09 <coppro> I didn't read the wiki article
05:45:13 <coppro> just the definition
05:45:20 <coppro> articles are lame
05:45:21 -!- cheater__ has joined.
05:45:30 <monqy> it makes it sound exciting
05:45:45 <monqy> or at least fairly unique
05:46:30 <coppro> elliott: how's your nethack variant coming along
05:48:44 <elliott> coppro: you mean vagrant?
05:50:11 <coppro> no
05:50:54 <elliott> coppro: then??
05:50:57 <elliott> ais is the one with acehack
05:51:58 <coppro> elliott: do you have an angband variant?
05:52:34 <elliott> ...
05:52:35 <elliott> no
05:52:42 <elliott> do you know some other elliott
05:53:18 <zzo38> I have been unable to compile Nethack and probably won't bother with it.
05:54:43 <coppro> elliott: you do not have an angband variant
05:54:47 <coppro> therefore you have a nethack variant
05:54:48 <coppro> qed
05:55:05 <elliott> coppro: oh
05:57:28 <zzo38> coppro: That is not any sort of proper proof. Q.E.D.
05:57:45 <elliott> coppro: i am starting a zzo38 appreciation club do you want to join
06:04:16 <coppro> elliott: only if we get to be snobby
06:07:45 <pikhq> GCC bootstrap: worst thing, or worst thing *ever*?
06:09:15 <elliott> Gregor Gregor Gregor
06:09:20 * pikhq wonders who thought it made sense to build the compiler not once, not twice, but three times.
06:09:32 <elliott> I NEED GREGOR'S ASSISTAIOTNE
06:14:25 <Sgeo> pikhq, does it actually make a difference if you don't build it the third time?
06:14:51 <pikhq> Sgeo: It hardly makes a differencew if you don't build it a second time.
06:16:14 <Sgeo> Seems like the second time would be a sort of safety thing. Unless I'm counting weirdly. Or second time with itself, and first time by your numbering is second time total, just first time with itself?
06:16:17 * Sgeo dizzies
06:25:49 <Gregor> Elizacat: You do not need my assisteaoux
06:26:08 <elliott> Gregor: I dooooo
06:26:14 <elliott> Gregor: The prgmr billing page how does it wooork
06:26:14 <Gregor> YOU DO NOT
06:26:27 <Gregor> By fucking MAGNETS.
06:26:31 <elliott> Gregor: I literally do, I think my prgmr billing page is broken :P
06:26:42 <elliott> Ohwait
06:26:47 <elliott> Now it works because it is asking for my money
06:27:06 <Gregor> elliott: They send you an invoice by email, the actual site just allows you to choose how often you wish to pay and that kind of thing.
06:27:23 <elliott> Gregor: It's just that I went to "Change payment information"
06:27:23 <elliott> and
06:27:27 <elliott> bill.html P.O. number
06:27:27 <elliott> Attention
06:27:27 <elliott> Email address to invoice
06:27:30 <elliott> Last one has no field
06:27:33 <elliott> Attention has "customerElliott Hird"
06:27:36 <elliott> P.O. number has "paypal"
06:27:37 <elliott> >what
06:27:55 <elliott> Gregor: Hmm, is it going to bug me to do a paypal payment every single month? Greaaat :P
06:28:36 <Gregor> lul
06:42:04 -!- aloril has quit (Ping timeout: 246 seconds).
06:55:09 -!- aloril has joined.
07:12:58 <elliott> wow, they made opengl even more of a pain to use
07:13:02 <elliott> begin/end have been removed
07:13:15 <elliott> you're meant to use shader programs and buffer objects now APPARENTLY
07:16:07 <monqy> I know very little about opengl but that sounds delicious
07:16:20 <monqy> the most I know is that it's a pain
07:16:33 <monqy> I've also used the haskell bindings a bit but I've pretty much forgotten everything I knew about them
07:29:11 -!- zzo38 has quit (Remote host closed the connection).
07:45:30 -!- jcp has quit (Ping timeout: 241 seconds).
07:48:18 * pikhq wonders why Linux *needs* Perl to build.
07:51:55 -!- jcp has joined.
08:05:51 -!- monqy has quit (Quit: hello).
08:07:05 -!- jcp|other has joined.
08:35:12 -!- Wamanuz2 has joined.
08:37:00 -!- Wamanuz has quit (Ping timeout: 252 seconds).
08:40:22 <elliott> http://en.wikipedia.org/wiki/Quantum_tic_tac_toe
08:41:27 -!- cheater__ has quit (Ping timeout: 255 seconds).
09:13:31 -!- lambdabot has quit (Ping timeout: 258 seconds).
09:18:04 -!- lambdabot has joined.
09:28:47 <Lymia> elliott, want to play?
09:29:20 <elliott> Lymia: you mean quantum tictactoe?
09:29:23 <elliott> got no idea how :)
09:32:03 <Deewiant> The linked Java applet was somewhat illustrative
09:42:18 <elliott> i didnt click :<
10:04:35 <Lymia> http://translate.google.com/#ja|en|%E3%81%8A%E3%81%A3%E3%81%99
10:13:50 -!- elliott has quit (Remote host closed the connection).
10:14:15 -!- elliott has joined.
10:41:02 -!- Wamanuz2 has quit (Remote host closed the connection).
10:41:16 -!- Wamanuz2 has joined.
10:45:13 -!- Wamanuz2 has quit (Read error: Connection reset by peer).
10:45:30 -!- Wamanuz2 has joined.
11:03:28 <elliott> "Is there code to draw a teapot without GLUT?"
11:19:04 <elliott> so uh is anyone an opengl expert
11:21:14 <elliott> "ZeeBoy
11:21:14 <elliott> I wishing you cancer. :("
11:21:14 <elliott> "oh yeah!! than u
11:21:14 <elliott> Hope u drown in ur own Butt Mucous.
11:21:14 <elliott> Perhaps ur head is already too far up ur "___" fill in the blanks.
11:21:14 <elliott> plz dont take offence.
11:21:16 <elliott> sorry"
11:24:17 <Sgeo> wut.
11:26:27 -!- elliott_ has joined.
11:26:28 -!- elliott has quit (Read error: Connection reset by peer).
11:36:31 <Elizacat> sup
11:36:48 <Elizacat> <Gregor> Elizacat: You do not need my assisteaoux
11:36:52 <Elizacat> I need your soul
11:40:07 <elliott_> who are you
11:52:41 <elliott_> http://i.imgur.com/Uf5Xc.png YES! progress!
11:53:01 <Deewiant> The beginnings of a teapot?
11:54:51 <elliott_> Deewiant: I think a teapot is a little ambitious at this point.
11:55:01 <elliott_> Deewiant: But hey, it ties OpenGL and SDL together in Haskell.
11:55:19 <elliott_> Deewiant: Although I fear "GL.renderPrimitive GL.Points" might be using that deprecated begin/end stuff that is _obviously_ evil.
11:55:33 <Deewiant> Yep, evilness abound
11:55:39 <elliott_> But http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/doc/html/Graphics-Rendering-OpenGL-GL-BufferObjects.html terrifies me, so.
11:55:49 <elliott_> Or is it that, or was it something else.
11:55:56 <elliott_> http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/doc/html/Graphics-Rendering-OpenGL-GL-VertexArrays.html Whatever it is it's terrifying.
11:57:05 <Deewiant> I'm only half-evil, I used display lists
11:57:15 <elliott_> Deewiant: How'd those work
11:57:26 <elliott_> And why are they even evil why is any of this evil why was begin/end removed why is all this shit shit
11:57:30 <Deewiant> compileDisplayList $ do GL stuff
11:57:38 <elliott_> HOW IS THAT ANY DIFFERENT
11:57:42 * elliott_ cires
11:57:59 <Deewiant> And then callList
11:58:17 <elliott_> GL.renderPrimitive GL.Points $ do
11:58:17 <elliott_> GL.vertex $ GL.Vertex2 (0::GL.GLint) 0
11:58:17 <elliott_> GL.vertex $ GL.Vertex2 (99::GL.GLdouble) 99
11:58:23 <elliott_> That second line is causing no difference to the drawing
11:58:25 <elliott_> Still just a single pixel
11:58:25 <elliott_> Hmm
11:58:36 <elliott_> http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/doc/html/Graphics-Rendering-OpenGL-GL-DisplayLists.html ;; I see no compileDisplayList
11:58:41 <Deewiant> elliott_: It's like the difference between interpreting the renderPrimitive stuff every time versus compiling it once and then running it
11:58:43 <elliott_> defineNewList is probably it
11:58:45 <Deewiant> Oh, whoops
11:58:53 <Deewiant> Yeah, it is
11:59:00 <Deewiant> compileDisplayList was a helper of mine
11:59:04 <elliott_> There's a CompileAndExecute mode, which seems... missing the point.
11:59:13 <elliott_> Deewiant: What did you use for windowing/event stuff?
11:59:21 <Deewiant> GLFW
11:59:44 <elliott_> Deewiant: Cool, it's that thing I rejected because it takes callbacks in IO.
11:59:54 <Deewiant> As opposed to? :-P
12:00:05 <elliott_> Deewiant: As opposed to not being callback-based so I can use liftIO in my own monad
12:00:08 <elliott_> Consider
12:00:10 <elliott_> forever $ do
12:00:10 <elliott_> ev <- SDL.waitEvent
12:00:10 <elliott_> case ev of
12:00:10 <elliott_> SDL.Quit -> SDL.quit >> exitSuccess
12:00:10 <elliott_> _ -> print ev
12:00:45 <Deewiant> I just use IO and millions of IORefs
12:01:08 <elliott_> Deewiant: I'm trying to write an entire game here (yeah yeah, build one to throw away), that's kind of a non-ideal solution :P
12:01:25 <elliott_> Deewiant: (At the very least I'm going to use STM to make me feel better about myself, even if I'm not exactly sure how multiple cores would help here.)
12:01:31 <elliott_> (Maybe map generation could run in a background thread.)
12:01:35 <Deewiant> http://tar.us.to:31177/ just take a look if you like (warning, may not compile etc)
12:02:21 <elliott_> Oh man, is this where I do the fizzie mirroring thing
12:02:35 <elliott_> fatal: http://tar.us.to:31177/liaera/info/refs not found: did you run git update-server-info on the server?
12:02:43 <elliott_> DISAPPOINTED DEEWIANT
12:02:55 <Deewiant> The .git was incidental :-P
12:03:08 <elliott_> What's this actually trying to do anyway
12:03:19 <Deewiant> HAVE FUN REVERSE ENGINEERING
12:03:28 <elliott_> What if I just ran it
12:03:33 <elliott_> WHAT THEN
12:03:38 <Deewiant> Oh well, I ran that command
12:03:45 <Deewiant> I think it'd do nothing without an input file but I may misremember
12:03:49 -!- Vorpal has joined.
12:03:55 <elliott_> oh wait duh i just typod the url
12:04:02 <elliott_> error: The requested URL returned error: 400 while accessing http://tar.us.to:31177//info/refs
12:04:04 <elliott_> thats the actual error
12:04:13 <elliott_> oh wait, need the .git
12:04:15 <Deewiant> Uh
12:04:15 <elliott_> maybe it will work
12:04:17 <Deewiant> Yes
12:04:25 <elliott_> IT WORKED HAHAHA IM KING
12:04:33 <elliott_> a king without all these dependencies oh well
12:04:48 <elliott_> is this meant to be like some kind of freaky source code viewer
12:04:51 <Deewiant> cabal install
12:04:56 <elliott_> Deewiant: also need c libs
12:05:06 <Deewiant> pacman -S
12:05:09 <elliott_> newPath :: Gr Path ()
12:05:09 <elliott_> -> Map (Pair Int Int, Pair Int Int) G.Node
12:05:09 <elliott_> -> Pair Int Int
12:05:09 <elliott_> -> G.Node
12:05:09 <elliott_> -> Pair Int Int
12:05:10 <elliott_> -> Pair Int Int
12:05:14 <elliott_> -> Pair Int Int
12:05:16 <elliott_> -> ( Gr Path ()
12:05:18 <elliott_> -> Map (Pair Int Int, Pair Int Int) G.Node
12:05:20 <elliott_> -> G.Node
12:05:22 <elliott_> -> (Gr Path (), Map (Pair Int Int, Pair Int Int) G.Node))
12:05:24 <elliott_> -> (Gr Path (), Map (Pair Int Int, Pair Int Int) G.Node)
12:05:26 <elliott_> i think when you get function arrows this big
12:05:28 <elliott_> its time to reconsider your code
12:05:30 <elliott_> and, also, your life
12:05:34 <Deewiant> :-)
12:06:30 <elliott_> i think im just going to write my own code and forget you as a person exist
12:06:37 <elliott_> itll be therapeutic ok time to try this display list stuff
12:06:47 <Deewiant> That's not really relevant to your interests
12:06:56 <elliott_> what, the code?
12:06:57 <Deewiant> Assuming your interests == GL
12:07:00 <Deewiant> That code
12:07:05 <Deewiant> Function arrows etc
12:07:05 <elliott_> right
12:07:10 <elliott_> well my interest is
12:07:13 <elliott_> not GL
12:07:16 <elliott_> it's writing this fucking game
12:07:21 <Deewiant> What game
12:07:24 <elliott_> i'm just not enough of an idiot to think that software rendering will have acceptable performance
12:07:32 <elliott_> Deewiant: trade secret (its elliottcraft)
12:07:48 <elliott_> im nihing entire million dollar products
12:07:53 <elliott_> wait i was already doing that
12:08:31 <elliott_> hmm... how do I render some points with display lists
12:08:32 <elliott_> or do I just
12:08:34 <elliott_> not do that stuff
12:08:36 -!- oerjan has joined.
12:08:39 <elliott_> like the "GL.Points" stuff
12:08:42 <elliott_> hi oerjan im failing at opengl/haskell
12:09:12 <oerjan> ic. well i only know some of the latter part.
12:11:31 <elliott_> GL.defineNewList GL.CompileAndExecute $ do -- GL.Points $ do
12:11:31 <elliott_> GL.vertex $ GL.Vertex2 (0::GL.GLint) 0
12:11:31 <elliott_> GL.vertex $ GL.Vertex2 (99::GL.GLdouble) 99
12:11:33 <elliott_> Deewiant: well that is not right
12:12:59 <Deewiant> Beats me
12:13:08 <Deewiant> I'm gone, server's still up in case you lose your local copy -->
12:17:27 <elliott_> drawLine w2d p1 p2 =
12:17:27 <elliott_> GL.renderPrimitive GL.Lines $
12:17:31 <elliott_> Deewiant: youre just as bad as me
12:17:38 <Deewiant> elliott_: Like said, half-evil
12:17:45 <Deewiant> (I didn't go after all)
12:17:57 <elliott_> Deewiant: but that's begin/end :<
12:18:07 <Deewiant> Yes, but it's put in a display list
12:18:11 <Deewiant> Half-evil
12:19:47 <elliott_> Deewiant: i dont understand your ways..............................
12:19:54 <elliott_> do you know what these display object things are btw i honestly have no idea
12:20:26 <Deewiant> A display list is something like a compiled sequence of opengl commands
12:21:25 <elliott_> not display list
12:21:31 <elliott_> i mean the things that are totally unevil
12:22:22 <Deewiant> I think the least unevil thing these days would be writing your stuff with OpenCL or equivalent and compiling it to a shader
12:22:30 -!- elliott_ has quit (Remote host closed the connection).
12:22:33 <Deewiant> But no, I don't really know anything
12:23:03 <Deewiant> His head apparently exploded, so I'm really leaving now -->
12:23:06 -!- elliott has joined.
12:24:17 <elliott> 12:22:22: <Deewiant> I think the least unevil thing these days would be writing your stuff with OpenCL or equivalent and compiling it to a shader
12:24:21 <elliott> haha really
12:24:26 <elliott> why is everything shaders :(
12:24:36 <elliott> also "least unevil"
12:26:50 <oerjan> i never avoid no double negations
12:29:29 -!- BeholdMyGlory has joined.
12:38:07 <elliott> sdls method of doing centred windows:.
12:38:07 <elliott> ..
12:38:08 <elliott> ...
12:38:08 <elliott> ...
12:38:12 <elliott> an environemtn variable
12:40:05 <Deewiant> elliott: Most unevil*
12:40:49 <oerjan> least unevil is much less uninteresting
12:40:54 <elliott> i still have no idea how to draw a cube :)
12:41:13 <elliott> Vertex3 and primitivemodes = Quads?
12:42:00 <Deewiant> Triangle strip is probably better
12:42:15 <Deewiant> But 3d is hard
12:42:34 <Deewiant> I can barely do some 2d
12:42:37 <elliott> Deewiant: that is what i am afraid of :(
12:43:00 <elliott> why is everything triangles :(
12:43:30 <Deewiant> Then again I'm not too clever when it comes to this stuff, YMMV
12:44:21 <elliott> Deewiant: this is like one of my GREATEST FEARS
12:44:22 <elliott> threedee
12:44:39 <Deewiant> Ditto
12:45:03 <Deewiant> Slash OpenGL in general
12:45:26 <Deewiant> But you know, software rendering sucks etc
12:48:33 <elliott> Deewiant: wouldnt it be hilarious
12:48:36 <elliott> if software rendering ended up being like
12:48:39 <elliott> as fast as opengl
12:48:40 <elliott> for this
12:48:43 <elliott> by hilarious
12:48:46 <elliott> i mean id want to kill myself
12:51:02 <CakeProphet> elliott: because triangles are awesome.
12:51:10 <elliott> fuck triangles
12:51:31 <CakeProphet> YEAH SO YOU KNOW THOSE RECTANGLES AND STUFF?
12:51:36 <CakeProphet> YOU HATE THOSE TOO
12:51:55 <CakeProphet> twice as much.
12:52:24 <oerjan> twice the hate, twice the area
12:54:41 <elliott> Deewiant: oerjan: http://i.imgur.com/oo9oH.png
12:54:43 <elliott> fuck yes its a triangle
12:55:18 <CakeProphet> nice.
12:55:30 <CakeProphet> I am already immersed in this world.
12:55:59 <CakeProphet> and its length ratios.
13:01:37 <oerjan> looks more like the complement of a triangle to me
13:03:13 <CakeProphet> it's a triangle and a complement. Well, it could also be a complement of a triangle and its complement.
13:04:40 <elliott> oerjan: shut up
13:07:14 <Gregor> elliott: ... dude.
13:07:25 <elliott> Gregor: what
13:07:26 <Gregor> elliott: You want to make a game with CUBES and you make a TRIANGLE.
13:07:28 <Gregor> (Fail)
13:07:32 <elliott> Gregor: this is a joke right
13:07:43 <elliott> im pretty sure the cubes in minecraft are made out of a bunch of triangles
13:07:50 <Gregor> *duh* :P
13:07:53 <elliott> :P
13:08:03 <elliott> Gregor: maybe ill make them spheres
13:08:13 <elliott> in some weird-ass fuck geometry where spheres can have spheres next to them
13:08:16 <elliott> uncountably infinite spheres
13:08:17 <elliott> fuck yes
13:08:20 <elliott> best system
13:08:53 <elliott> im actually kind of weirded out by opengls coordinate system
13:08:59 <elliott> the size of my window is distorting all shapes...
13:09:05 <elliott> i guess i do some camera magic to fix that though
13:09:05 <Sgeo> I should learn OpenGL perhaps
13:09:28 <Sgeo> Or just WebGL
13:09:30 <Gregor> Sgeo: You should learn to stop saying "I should learn <thing> maybe" and then never learning it.
13:10:12 <elliott> HOW DO YOU EVEN PLACE THESE TRIANGLES OMG
13:10:14 <elliott> I DONT UNDERSTAND GEOMTRY
13:10:26 <elliott> FUCK ITS TURNED INTO A SQUARE
13:10:33 <CakeProphet> with a coordinates probably?
13:10:35 <Gregor> Perfect!
13:11:05 <Gregor> Play the violin, elliott!
13:11:08 <Gregor> Play it forever!
13:13:19 <elliott> http://i.imgur.com/ZMCbo.png
13:13:21 <CakeProphet> I know in XNA the coordinate system runs has the top-left corner as the origin, which is somewhat weird.
13:13:21 <elliott> wHAT, nO,
13:14:55 <elliott> GL.vertex $ GL.Vertex3 (0::GL.GLdouble) 0 0
13:14:55 <elliott> GL.vertex $ GL.Vertex3 (0::GL.GLdouble) 0.5 0
13:14:55 <elliott> GL.color (GL.Color3 (0::GL.GLbyte) maxBound maxBound)
13:14:55 <elliott> GL.vertex $ GL.Vertex3 (0.5::GL.GLdouble) 0.5 0
13:14:57 <elliott> how does that even do that
13:15:01 <CakeProphet> ...which troll is it that types like that?
13:15:52 <elliott> ?hoogle OpenGL rotate
13:15:52 <lambdabot> No results found
13:16:05 <CakeProphet> elliott: that would be too easy.
13:16:11 <elliott> ?hoogle ?fuck ?you
13:16:11 <lambdabot> Parse error:
13:16:11 <lambdabot> --count=20 "?fuck ?you"
13:16:11 <lambdabot> ^
13:16:14 <Sgeo> CakeProphet, Tavros
13:16:16 <elliott> ?hoogle --count=bitch
13:16:16 <lambdabot> Unrecognised or malformed flags:
13:16:16 <lambdabot> Bad argument to flag count, expected argument of type POS, got "bitch"
13:16:16 <lambdabot> For details on correct flags pass --help
13:16:18 <elliott> ?hoogle --count=bitch FUCK YOU
13:16:18 <lambdabot> Parse error:
13:16:19 <lambdabot> --count=20 "--count=bitch FUCK YOU"
13:16:19 <lambdabot> ^
13:16:20 <elliott> ?hoogle --count=bitch FUCK YOU DIE
13:16:21 <elliott> ?hoogle --count=bitch FUCK YOU DIE ASS
13:16:21 <lambdabot> Parse error:
13:16:22 <elliott> ?hoogle --count=bitch FUCK YOU DIE ASS CRAP
13:16:22 <elliott> ?hoogle --count=bitch FUCK YOU DIE ASS CRAP SHIT
13:16:23 <lambdabot> --count=20 "--count=bitch FUCK YOU DIE"
13:16:25 <elliott> i hate lambdabot
13:16:25 <lambdabot> ^
13:16:27 <lambdabot> Parse error:
13:16:29 <lambdabot> --count=20 "--count=bitch FUCK YOU DIE ASS"
13:16:31 <lambdabot> ^
13:16:33 <lambdabot> Parse error:
13:16:35 <lambdabot> --count=20 "--count=bitch FUCK YOU DIE ASS CRAP"
13:16:37 <lambdabot> ^
13:16:39 <lambdabot> Plugin `hoogle' failed with: thread killed
13:16:43 <elliott> :(
13:18:00 <oerjan> <elliott> in some weird-ass fuck geometry where spheres can have spheres next to them <-- ye olde L^\infty metric
13:18:18 <elliott> oerjan: is it actually possible say its true
13:19:13 <CakeProphet> ...can
13:19:28 <CakeProphet> 't you have spheres next to sphere in good ol' euclidean geometry?
13:19:37 <elliott> not without gaps
13:19:40 <elliott> (equal-sized spheres)
13:19:46 <elliott> god thatd be so amazing
13:19:59 <CakeProphet> hmmm, what, no. This goes against my intuition.
13:20:32 <elliott> wow you mean itd be non-euclidean NO SHIT
13:21:00 <CakeProphet> though I guess I've never interacted with two perfect Euclidean spheres before.
13:21:26 <elliott> oerjan: is it possible
13:22:10 <CakeProphet> but I'm pretty sure balls can touch. (So much ennuendo I don't know how I keep it up)
13:22:26 <oerjan> elliott: the joke is that L^\infty spheres look like what you usually call cubes >:)
13:22:56 <elliott> oerjan: GRRRRRRRR
13:23:08 <elliott> oerjan: invent me a geometry where a sphere can be totally packed on every side with infinite other spheres
13:23:11 <elliott> so i can have spherecraft
13:25:46 <oerjan> packed soap bubbles
13:26:02 <oerjan> i suspect those would look like cubes too
13:27:31 <elliott> oerjan: um cubes cant be packed with infinite other cubes on their sides
13:27:37 <elliott> (of the same size)
13:28:07 <oerjan> hm you want something fractal
13:28:33 <elliott> in minecraft, you can put a cube on every side of another cube
13:28:35 <quintopia> elliott: they can in four dimensions!
13:28:39 <elliott> in spherecraft, you need to be able to put a sphere on every side of another sphere
13:28:43 <elliott> thus infinite spheres on a sphere
13:28:47 <elliott> leaving no gaps
13:28:49 <elliott> but of the same size
13:29:29 <CakeProphet> perhaps with extra dimensions?
13:29:34 <quintopia> elliott: do you play the circle in a band?
13:29:47 <elliott> yes im a professional circlist
13:30:03 <quintopia> seemed your style
13:30:09 -!- oerjan has quit (Quit: Later).
13:30:23 <elliott> nice way to escape >:(
13:30:49 <Sgeo> http://www.reddit.com/r/homestuck/comments/ia2nm/so_theres_this_rumor_going_around_about_eoa5/
13:30:59 <quintopia> wonder if there's a 3D version of a mudflake...
13:31:21 <elliott> mudcube
13:31:42 <quintopia> do octahedrons tesselate space?
13:32:05 <elliott> hmm
13:32:29 <elliott> http://www.davidjayjordan.com/SexualTesselation.html what
13:33:01 <elliott> http://www.davidjayjordan.com/MathematicalProofDesign1.html
13:33:30 <quintopia> it looks like that guy is trying to tesselate space with TIMECUBE
13:34:33 <elliott> sexual timecube
13:35:16 <Vorpal> ouch
13:38:17 <CakeProphet> needs moar 4d minecraft.
13:39:03 <Sgeo> Not sleeping last night was a bad idea
13:39:14 <CakeProphet> not sleeping is usually a bad idea unless it's required/.
13:39:30 <CakeProphet> as sleep is pretty vital to your overall well-being
13:39:43 <CakeProphet> speaking of which, I'm going to go to sleep.
13:39:49 <Vorpal> cya
13:39:54 <CakeProphet> but anyways, q and e should move you along the 4th axis.
13:40:01 <CakeProphet> good night.
13:40:18 <Sgeo> I could have gone to sleep earlier but I can't now
13:40:45 <CakeProphet> food for thought on the crafting. Or maybe... thought for food? or just thought for thought? fuck it. sleep time.
13:41:08 <quintopia> which 2D slices should we see?
13:42:50 <Sgeo> This is one hot plain agel
13:42:52 <Sgeo> abgle
13:42:54 <Sgeo> bagle
13:42:54 <Sgeo> bagel
13:47:36 <Sgeo> I'm going to figure out how to reverse Life, although surely it's been done before given the existence of search programs
13:51:01 <elliott> eh/
13:51:03 <elliott> ?
13:51:08 <elliott> life is not reversible
13:52:30 <Sgeo> elliott, if I make it nondeterministic or sort of store all possibilities...
14:00:27 -!- augur has quit (Remote host closed the connection).
14:00:29 <elliott> Sgeo: you realise the searchers just look for random patterns
14:00:29 <elliott> right?
14:00:41 <Sgeo> Oh
14:01:06 -!- Vorpal_ has joined.
14:01:09 <elliott> Vorpal
14:01:12 <elliott> how do i shot opengl
14:03:00 -!- Vorpal has quit (Ping timeout: 260 seconds).
14:03:46 -!- Vorpal_ has changed nick to Vorpal.
14:04:00 <Vorpal> elliott, through the foot
14:04:03 <elliott> ok
14:04:07 <elliott> how do i draw cube with opengl
14:04:16 <elliott> from triangles...
14:04:16 <Vorpal> elliott, buggered if I remember
14:04:22 <Vorpal> elliott, well that is easy
14:04:23 <elliott> GL.renderPrimitive GL.TriangleStrip $ do
14:04:23 <elliott> GL.vertex $ GL.Vertex3 (0::GL.GLdouble) 0 0
14:04:23 <elliott> GL.vertex $ GL.Vertex3 (0::GL.GLdouble) 0.5 0
14:04:23 <elliott> GL.vertex $ GL.Vertex3 (0.5::GL.GLdouble) 0.5 0
14:04:23 <elliott> GL.color (GL.Color3 (0::GL.GLbyte) maxBound maxBound)
14:04:24 <elliott> GL.vertex $ GL.Vertex3 (0.5::GL.GLdouble) 0.5 0.5
14:04:28 <elliott> he;lp
14:04:33 <Vorpal> each face could be two triangles
14:04:48 <elliott> yes but it turns out i do not understand coordinates
14:04:53 <Vorpal> elliott, don't look at me, this doesn't look like opengl in C
14:04:57 <elliott> Vorpal: its the same
14:05:00 <elliott> renderprimitive = GL_BEGIN
14:05:07 <Vorpal> what are the coordinates then
14:05:09 <elliott> the binding is pretty light its not hard to see
14:05:12 <elliott> Vorpal: um in the vertexes
14:05:20 <elliott> GL.GLdouble is just to get the types right
14:05:22 <Vorpal> oh you have ::GL.GLdouble, right
14:05:42 <Vorpal> elliott, well they are x,y,z or something like that, I don't remember the order
14:05:52 <elliott> i know that
14:05:55 <elliott> >_<
14:05:58 <Vorpal> I haven't been doing opengl for over 2 years
14:07:07 <Vorpal> elliott, so what is it you don't understand?
14:07:40 <elliott> meh, nothing
14:07:51 <Vorpal> elliott, so you understand it all?
14:08:02 <elliott> no, but this is going nowhere
14:08:12 <Vorpal> elliott, well I'm not sure what you are asking
14:08:17 <Vorpal> try a more specific question
14:08:30 <elliott> i can't get the vertices right to give me a cube because i'm retarded :D
14:08:50 <Vorpal> elliott, oh I know that issue, I had issues with working out the coordinates too I remember.
14:09:11 <Vorpal> elliott, it is easiest if you consider it from the point of view of linear algebra
14:09:14 <elliott> i keep getting triangles stretching off into nowhere... no... make a cube...
14:09:28 <Vorpal> that is, the vectors as column matrices
14:09:51 * elliott tries to get the drawing rotated so that hell be able to see the cube isometrically
14:10:27 <elliott> http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/doc/html/Graphics-Rendering-OpenGL-GL-Rectangles.html
14:10:30 <elliott> heh efficient rectanlges
14:10:34 <elliott> wonder if its faster than triangles
14:10:35 <Vorpal> elliott, for that you need to change the matrix defining the viewing frustum iirc
14:10:59 <Vorpal> elliott, likely if you need to do a cube
14:11:45 <Vorpal> elliott, wait they are all in the z=0 plane
14:11:54 <Vorpal> elliott, I guess this is for 2D usage
14:12:33 <elliott> oh youre right
14:12:33 <elliott> dammit
14:12:59 <Vorpal> of course I am. I'm me after all :P
14:13:01 <elliott> i still dont know why they removed begin/end :(
14:13:23 <Vorpal> elliott, they did? That is new
14:14:02 <Vorpal> elliott, or is that about the haskell interface?
14:14:30 <elliott> Vorpal: in opengl four yeah
14:14:32 <elliott> deprecated in three
14:14:41 <elliott> you're meant to use shaders or those buffer object things
14:14:51 <elliott> http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/doc/html/Graphics-Rendering-OpenGL-GL-BufferObjects.html cry
14:14:52 <Vorpal> oh I see
14:14:54 <elliott> cryy
14:14:55 <elliott> what is it even
14:15:03 <elliott> http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/doc/html/Graphics-Rendering-OpenGL-GL-VertexArrays.html wh;at ttt
14:15:27 <Vorpal> elliott, I have no clue
14:16:11 <Vorpal> elliott, do opengl 2 then
14:16:21 <elliott> yeah
14:16:21 <elliott> i am
14:16:22 <elliott> but
14:16:25 <elliott> its still horrible :(
14:18:59 <Vorpal> elliott, it is meant to be fast, not nice
14:19:38 <elliott> Vorpal: yeah well
14:19:47 <elliott> cant appreciate a fast program i cant write
14:20:15 <Vorpal> elliott, I heard directx is easier to write :P
14:21:42 <elliott> Vorpal: har har har
14:34:30 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:34:35 <Vorpal> elliott, this makes perfect sense to me: http://en.wikipedia.org/wiki/Vertex_Buffer_Object
14:35:42 <elliott> but its
14:35:44 <elliott> so
14:35:48 <elliott> boring
14:35:49 <elliott> and boilerplate
14:36:00 <Gregor> elliott: Where's spherecraft?
14:36:01 <Vorpal> elliott, *shrug*
14:36:02 <Gregor> I wanna see it NOW
14:36:07 <elliott> Gregor: oerjan ran away before he invented the jommetry.
14:36:23 <elliott> BTW, Elliottcraft still needs a decent (code)name >_>
14:37:24 <Vorpal> elliottcraft
14:37:25 <Gregor> Can you imagine the sheer horsepower that spherecraft would take? X-D
14:37:38 <Vorpal> Gregor, what is that in oxpower?
14:37:55 <Gregor> With spheres that behave exactly like normal spheres, and are super-high-friction so you can actually stack them and such.
14:38:03 <Gregor> Vorpal: 2x
14:38:05 <Vorpal> ouch
14:38:20 <elliott> Gregor: It would be kind of impossible what with the uncountably infinite thing :P
14:38:27 -!- augur has joined.
14:38:32 <elliott> It'd have to be a ten thousand sided object instead.
14:38:43 <Vorpal> elliott, make it out of atoms
14:38:59 <elliott> i know ill just make a new universe
14:38:59 <elliott> /run
14:39:00 <elliott> oh its this one
14:39:04 <elliott> im gonna kill Vorpal in it
14:39:11 <elliott> fuc;k problem of evil stops me doing nanything
14:39:42 <Vorpal> XD
14:44:13 <elliott> theology is basically based on god maknig the universe and discovering all sorts of semantic restrictions
14:44:22 <elliott> until he finally says fuck it and stops trying to let his presence be known
14:44:26 <elliott> i call this type system deism
14:47:14 <Vorpal> elliott, XD
14:57:00 <Gregor> Daaaaaaaaaaaamn it's expensive to fly to the UK.
14:57:55 <elliott> you might be a spic we have to be careful
14:58:47 <Gregor> In retrospect, it's cheaper than it was to fly to Paris, I'm just already $3,000 in the hole from this trip so diving in further isn't fun X-D
15:00:44 <elliott> money.jpg
15:06:58 <Gregor> Total Airfare $789.00
15:06:58 <Gregor> Airfare taxes and fees $558.80
15:07:04 <Gregor> Taxes and fees: Nearly equal to the airfare
15:08:30 -!- copumpkin has joined.
15:08:30 -!- copumpkin has quit (Changing host).
15:08:30 -!- copumpkin has joined.
15:11:41 -!- Wamanuz2 has quit (Ping timeout: 240 seconds).
15:11:44 -!- Wamanuz3 has joined.
15:27:40 <elliott> Gregor
15:27:42 <elliott> how triangle
15:27:57 <Gregor> Same way babby formed.
15:29:32 <elliott> how
15:29:33 <elliott> cube
15:32:09 <elliott> http://i.imgur.com/nXI2y.png
15:32:10 <elliott> no
15:32:10 <elliott> how
15:32:11 <elliott> Gregor: how
15:32:16 <elliott> Wamanuz3: how
15:37:36 <elliott> oh god i dont triangles
15:46:39 -!- elliott has quit (Remote host closed the connection).
15:47:06 -!- elliott has joined.
16:05:07 -!- MigoMipo has joined.
16:24:39 <Vorpal> elliott, looks like a nice flag
16:26:45 <Vorpal> elliott, kind of like http://en.wikipedia.org/wiki/File:Naval_Ensign_of_Denmark.svg
16:40:10 -!- Phantom_Hoover has joined.
16:50:20 -!- Wamanuz4 has joined.
16:51:04 -!- Wamanuz3 has quit (Ping timeout: 276 seconds).
17:06:15 -!- comex has joined.
17:07:12 <elliott> back
17:18:30 -!- zzo38 has joined.
17:28:46 <elliott> http://esoteric.voxelperfect.net/w/index.php?title=Brainbrain&curid=3659&diff=23442&oldid=22103
17:28:46 <elliott> No.
17:31:40 -!- jcp|1 has joined.
17:33:22 -!- jcp|other has quit (Ping timeout: 255 seconds).
17:33:55 -!- jcp has quit (Ping timeout: 258 seconds).
17:34:03 -!- elliott has quit (Read error: Connection reset by peer).
17:34:25 -!- elliott has joined.
17:39:56 -!- jcp has joined.
17:48:13 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
17:50:01 -!- Phantom_Hoover has joined.
18:03:04 -!- Sgeo has quit (Ping timeout: 255 seconds).
18:03:50 <zzo38> You can make this http://golf.shinh.org/p.rb?google in dc without any loops.
18:05:28 <zzo38> (at least in GNU dc)
18:07:00 -!- monqy has joined.
18:44:00 -!- augur_ has joined.
18:44:04 -!- augur has quit (Read error: Connection reset by peer).
18:55:05 -!- mtve has quit (Ping timeout: 260 seconds).
19:20:12 -!- augur_ has quit (Remote host closed the connection).
19:31:27 <elliott> spere
19:31:29 <elliott> packing
19:34:06 <Phantom_Hoover> elliott, wait, why are you going on about sphere packing.
19:34:06 <lambdabot> Phantom_Hoover: You have 2 new messages. '/msg lambdabot @messages' to read them.
19:34:42 <elliott> sperrrré
19:34:44 <elliott> paque
19:41:19 -!- oerjan has joined.
19:42:48 <oerjan> <quintopia> do octahedrons tesselate space?
19:43:09 <oerjan> an interesting question, as those are the spheres of the L^1 metric...
19:43:33 <oerjan> being dual to cubes, one would think it likely
19:43:58 <elliott> oerjan: http://i.imgur.com/KH1z9.png im good cube draw
19:44:22 <oerjan> (L^1 and L^\infty also have a sort of dual relationship, although not as strong as for L^p spaces strictly between 1 and \infty)
19:44:30 <elliott> L^-1
19:45:02 <oerjan> elliott: i don't think that is a metric. hm that would be harmonic sum...
19:45:11 <elliott> L^0
19:45:12 * oerjan is not sure
19:45:15 <elliott> L^urface
19:45:34 <Phantom_Hoover> <oerjan> <quintopia> do octahedrons tesselate space?
19:45:34 <oerjan> elliott: L^0 would be somewhat degenerate
19:45:34 <Phantom_Hoover> No.
19:45:40 <oerjan> Phantom_Hoover: darn
19:45:41 <Phantom_Hoover> Octahedra and tetrahedra do.
19:45:43 <elliott> ur a degneiggerate
19:46:49 <oerjan> elliott: in case you don't know, the L^p norm for most p has the form (x_1^p + x_2^p + ... + x_n^p)^(1/p)
19:46:58 <elliott> ur con formist
19:47:04 <elliott> <-- productive irc contributor
19:47:06 <oerjan> you may recognize L^2 as ordinary euclidean metric
19:47:15 <elliott> so waht if i do
19:47:18 <oerjan> um
19:47:24 <Phantom_Hoover> oerjan, so what's L^\infty?
19:47:36 <elliott> sum p+q/n(0)
19:47:37 <Phantom_Hoover> Limit as p → \infty?
19:47:37 <elliott> hth
19:47:48 <elliott> (pronounce:;``hutthuh'')
19:47:50 <oerjan> * (|x_1|^p + |x_2|^p + ... + |x_n|^p)^(1/p)
19:48:12 <oerjan> you don't need to absolute values or p an even natural number, naturally
19:48:15 <oerjan> *to take
19:48:20 <oerjan> Phantom_Hoover: yeah iirc
19:48:53 <oerjan> alternatively, ||(x_1,...,x_n)||_\infty = max(|x_1|,...,|x_n|)
19:49:35 <elliott> i think ive heard of linfty
19:49:35 <Phantom_Hoover> Oh, of course.
19:49:59 <Phantom_Hoover> ...wait, that's not as 'of course' as it seemed.
19:50:04 <elliott> did you know that im a robot
19:50:11 <elliott> gripping talse....
19:50:19 <oerjan> and for p<1 i think some things break down, although i'm not sure if everything does
19:50:31 <elliott> L caret negative two
19:50:35 <elliott> what NowowoWOw, science
19:50:39 <Phantom_Hoover> Hmm, m < n → m^p << m^p for large p, so yeah, it's obvious.
19:51:00 <Phantom_Hoover> elliott, makes sense.
19:51:02 <oerjan> *n somewhere in there
19:51:55 <Phantom_Hoover> Yesyesyesyes
19:52:12 <Phantom_Hoover> <newsham> i want a shirt made of spider silk
19:52:17 <Phantom_Hoover> I wanted one before it was cool.
19:53:40 <oerjan> elliott: however p=-1 is still _interesting_ since it's related to harmonic mean
19:54:29 <elliott> ~~ livin in harmony w/ mean you ~~
19:54:46 <elliott> pronunciation what is it
19:55:37 <Phantom_Hoover> oerjan, L_2/3 is a well-defined metric, apparently.
19:56:09 <Phantom_Hoover> I wish there was a simple way of plotting the unit circle in L_n metrics in Mathematica.
19:57:29 <elliott> all mathematica can do is play games and have children
19:58:51 <oerjan> Phantom_Hoover: http://en.wikipedia.org/wiki/Lp_space implies that for 0<p<1 you don't get a metric from the same formula, but you do if you drop the final p'th root
20:08:18 <oerjan> Phantom_Hoover: http://mathworld.wolfram.com/Superellipse.html might help
20:08:33 -!- Lymia has quit (Ping timeout: 240 seconds).
20:08:55 <oerjan> there's a mathematica notebook link
20:09:17 <Phantom_Hoover> No, the parametric forms are enough.
20:10:34 <Phantom_Hoover> Although it's a bit annoying, doing it by reductio ad Wolfram.
20:12:26 <oerjan> "In 1968, when negotiators in Paris for the Vietnam War could not agree on the shape of the negotiating table, Balinski, Kieron Underwood and Holt suggested a superelliptical table in a letter to the New York Times."
20:13:03 <elliott> YOUR MOM is superelliptical
20:13:07 <elliott> that was
20:13:09 <elliott> directed at Phantom_Hoover
20:13:09 <elliott> btw
20:13:28 <Phantom_Hoover> Some negotiators.
20:13:41 <elliott> they should have made sphere table
20:14:51 <oerjan> they could have the chairs bolted to the inside of a half-spher bowl. and occasionally the bolts could break.
20:14:56 <Phantom_Hoover> Ah, Piet Hien.
20:14:58 <oerjan> *e
20:15:01 <Phantom_Hoover> Inventor of the grook.
20:15:09 <Phantom_Hoover> Which Vorpal confused for 'grok'.
20:15:27 <Phantom_Hoover> Oh, for the days when he would speak of how he grooked this and that.
20:15:33 <oerjan> piet hein grokked a lot, we may assume
20:15:59 <elliott> ill grok my fist into ur face (@ all u punk ass nerds)
20:16:19 <elliott> wouldn't it be awesome if someone came in here while i was like this and didn't realise i was being sarcastic all the time
20:16:32 <elliott> and wondered why i wasn't banned yet, maybe you too are wondering this same thing now????????
20:17:47 <Phantom_Hoover> oerjan, one might even say he grake.
20:18:03 <elliott> grutenberg
20:18:11 <elliott> =gay ass loser bookreader club....
20:18:29 <oerjan> gruten tag, mein herr
20:18:33 <Phantom_Hoover> Says the guy who can't even render a cube.
20:20:53 <elliott> Phantom_Hoover: gay va
20:20:54 <elliott> mpire
20:21:02 -!- azaq23 has quit (Quit: Leaving.).
20:22:06 -!- Lymia has joined.
20:38:24 <oerjan> :t Prelude.intersperse
20:38:24 <lambdabot> Not in scope: `Prelude.intersperse'
20:38:31 <oerjan> @hoogle intersperse
20:38:32 <lambdabot> Data.ByteString intersperse :: Word8 -> ByteString -> ByteString
20:38:32 <lambdabot> Data.List intersperse :: a -> [a] -> [a]
20:38:32 <lambdabot> Data.ByteString.Char8 intersperse :: Char -> ByteString -> ByteString
20:40:54 <elliott> http://esolangs.org/w/index.php?title=Deadfish&curid=2038&diff=23453&oldid=22913
20:40:56 <elliott> unforgivable
20:41:08 <elliott> oerjan: HAPPEN TO BE WORKING ON A PROGRAM DO WE
20:41:51 <quintopia> i'm not surprised to hear they dont tesselate. i couldnt visualize a way to do it.
20:43:09 <oerjan> elliott: um ">> " is pretty much standard if anything is
20:43:53 <elliott> oerjan: ... ?
20:44:15 <oerjan> elliott: cpressey's correction looks reasonable to me...
20:44:25 <zzo38> I made the copy of the GNU GPL v3 with Plain TeX. Will FSF accept it?
20:44:47 <zzo38> http://sprunge.us/HJOh
20:45:04 <elliott> oerjan: it is
20:45:08 <elliott> the original mistake is what is unforgivable
20:45:11 <elliott> zzo38: no
20:45:11 <oerjan> aha
20:46:05 <Phantom_Hoover> I was parsing that code with the >>> outside the quotes and I was getting confused.
20:46:12 <Phantom_Hoover> :t (>>>)
20:46:13 <lambdabot> forall (cat :: * -> * -> *) a b c. (Control.Category.Category cat) => cat a b -> cat b c -> cat a c
20:46:53 <elliott> :T (W.r[paad,aspdwqprmqrpowmepwoqje
20:46:55 <elliott> :T (life
20:46:58 <elliott> :type (life
20:47:02 <elliott> ?...type (life
20:47:03 <lambdabot> Unknown command, try @list
20:47:05 <elliott> ?.type (life
20:47:06 <lambdabot> parse error (possibly incorrect indentation)
20:47:07 <oerjan> <elliott> oerjan: HAPPEN TO BE WORKING ON A PROGRAM DO WE <-- just looking briefly at the "google" golf zzo38 mentioned
20:47:08 <elliott> ?. . . type (life
20:47:08 <lambdabot> Plugin `compose' failed with: Unknown command: "(life"
20:47:10 <elliott> ?. . . type (life)
20:47:10 <lambdabot> Plugin `compose' failed with: Unknown command: "(life)"
20:47:13 <elliott> ?. . . type type (life)
20:47:14 <lambdabot> Plugin `compose' failed with: Unknown command: "parse"
20:47:16 <elliott> ?. . . type type type (life)
20:47:17 <lambdabot> Plugin `compose' failed with: Unknown command: "parse"
20:47:19 <elliott> ?. . . type type type type (life)
20:47:20 <lambdabot> Plugin `compose' failed with: Unknown command: "parse"
20:47:22 <elliott> ?. . . type type type type type type type type a (life)
20:47:23 <lambdabot> Plugin `compose' failed with: Unknown command: "parse"
20:47:24 <elliott> sdgh
20:47:41 <monqy> who what
20:47:47 <elliott> oinoinion
20:47:47 <oerjan> my first try was 52 chars while several others have shorter ones, and it occured to me that intersperse might help if it were in the Prelude
20:47:57 <elliott> oerjan: maybe something monadic
20:48:13 <elliott> >"go">>"ogle"
20:48:18 <elliott> > "go">>"ogle"
20:48:18 <lambdabot> "ogleogle"
20:48:18 <oerjan> elliott: well my first try used interact
20:48:32 <elliott> > "go">>="ogle"
20:48:32 <lambdabot> Couldn't match expected type `GHC.Types.Char -> [b]'
20:48:33 <lambdabot> against inferr...
20:48:39 <elliott> > "go">>=(++"ogle")
20:48:39 <lambdabot> Couldn't match expected type `GHC.Types.Char'
20:48:39 <lambdabot> against inferred type...
20:48:41 <oerjan> and plain replicate
20:48:44 <elliott> oji
20:49:23 <oerjan> :t Prelude.sequence
20:49:24 <lambdabot> forall (m :: * -> *) a. (Monad m) => [m a] -> m [a]
20:49:28 <oerjan> hm
20:50:00 -!- SimonRC has quit (Ping timeout: 260 seconds).
20:51:50 <elliott> go==og backwards..le
20:52:31 <elliott> 00:40:40: <crystal-cola> there's something funny going on with the 17s (well maybe it's just because that's the smallest prime other than 2)
20:53:25 <oerjan> elliott: i remember enough of that discussion to note that is entirely reasonable in context
20:53:34 <olsner> I also forget 3,5,7,11 and 13 now and then :)
20:53:45 <elliott> oerjan: shhhh :D
20:54:26 <oerjan> elliott: it's not like crystal-cola needs that kind of assistance
20:56:06 <oerjan> oh hm wait
20:56:32 -!- SimonRC has joined.
20:57:35 -!- Lymia has changed nick to Lymee.
20:59:22 <oerjan> elliott: ok monadic was a good idea, [1..n]>>"o" is shorter than n`replicate`'o'
20:59:38 <elliott> > let n = 9 in "go"++[1..n]>>"o"++"ogle"
20:59:39 <lambdabot> No instance for (GHC.Num.Num GHC.Types.Char)
20:59:39 <lambdabot> arising from a use of `n' a...
20:59:43 <oerjan> now i'm just one char longer than the winners
20:59:44 <elliott> wha
20:59:49 <elliott> > let n = 9 in "go"++([1..n]>>"o")++"ogle"
20:59:50 <lambdabot> "gooooooooooogle"
21:00:00 <elliott> oerjan: hm what's your current solution?
21:00:09 <oerjan> main=interact$(\n->'g':([1..n]>>"o")++"gle").read
21:00:16 <oerjan> hm
21:00:19 <Lymee> Are you golfing?
21:00:22 <oerjan> :t interact$(\n->'g':([1..n]>>"o")++"gle").read
21:00:23 <lambdabot> IO ()
21:00:44 <elliott> ?pl interact$(\n->'g':([1..n]>>"o")++"gle").read
21:00:44 <lambdabot> interact (('g' :) . (++ "gle") . (>> "o") . enumFromTo 1 . read)
21:00:46 <oerjan> Lymee: yeah, mainly just checking if i can tie with the top
21:01:00 <oerjan> with 7 others tied it seems unlikely to beat :P
21:01:28 <Lymee> Link?
21:01:42 <oerjan> http://golf.shinh.org/p.rb?google
21:01:49 <oerjan> it's a very old one btw
21:02:16 <Lymee> print"g%sgle"%"o"*input()
21:02:19 <Lymee> First thing that comes to mind.
21:02:35 <oerjan> Lymee: oh i'm sure the python ones are tiny
21:02:40 -!- mtve has joined.
21:03:05 <oerjan> Lymee: in fact you just tied with those
21:03:20 <Lymee> Order of operation stuff to sort out.
21:03:59 <elliott> fizzie
21:04:08 <elliott> link me to that graphical version of tswett's chinese remainder theorem clcok you made
21:04:17 <oerjan> Lymee: i'd say you're also unlikely to beat them, with 19 tied at the top for a years old golfing
21:04:24 <elliott> or anyone
21:04:28 <Lymee> So, 2 over max.
21:04:29 <Lymee> :c
21:05:03 <oerjan> Lymee: hm? yours is 25 as are the winners
21:05:04 <tswett> elliott: well, I have a textual version of that.
21:05:07 <Lymee> oerjan, no.
21:05:09 <zzo38> oerjan: Send what you have anyways, you can send a better solution later if you figure it out.
21:05:10 <Lymee> I had order of operations issues.
21:05:13 <oerjan> oh
21:05:14 <elliott> tswett: yes but i want fizzie's :D
21:05:15 <Lymee> print"g%sgle"%("o"*input())
21:05:17 <Lymee> Had to do that.
21:05:36 <oerjan> aha
21:07:05 <elliott> hmm related to http://zem.fi/~fis/crcsq.html
21:07:28 <elliott> http://zem.fi/~fis/crcbar.html
21:07:29 <elliott> here we go
21:07:54 <fizzie> I *just* located those.
21:08:24 <elliott> fizzie: :D
21:08:30 <elliott> the crcsq one is the bestest
21:08:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
21:08:41 -!- elliott has left ("Leaving").
21:08:45 -!- elliott has joined.
21:11:59 <oerjan> zzo38: i don't see the point in sending a worse one to a contest which is 4 years old and has 7 tied at the top
21:12:38 <elliott> oerjan: hey oerjan implement my ghcwishlist... :(
21:12:47 <oerjan> not a chance :P
21:12:52 <elliott> - IdiomBrackets, MultipleOperatorSections, MLModules
21:12:53 <elliott> thx
21:12:58 <elliott> lemme know when they're done
21:13:13 <oerjan> hm MultipleOperatorSections sounds like something i've wanted
21:13:27 <oerjan> is it like (+x*) ?
21:13:32 <elliott> as in (2*9+)
21:13:36 <elliott> or more pedestrianly
21:13:37 <elliott> (9+9+)
21:13:43 <zzo38> oerjan: It is OK if you do not want to send.
21:13:48 <elliott> or (*9*9)
21:13:49 <elliott> etc.
21:13:55 <elliott> oerjan: it'd also make repeated compositions nicer
21:13:56 <oerjan> elliott: um those are already legal if you don't clash with precedence
21:14:03 <elliott> (a . b . c .) rather than ((a . b . c) .)
21:14:09 <elliott> oerjan: um I mean as in
21:14:13 <elliott> ((*9).(*9))
21:14:16 <elliott> you know what i mean
21:14:25 <elliott> basically generalising sections to be able to have a whole chain
21:14:25 <oerjan> that's _also_ legal :P
21:14:29 <elliott> of course it is
21:14:32 <oerjan> oh
21:14:33 <elliott> but its not a section
21:14:34 <elliott> <elliott> (a . b . c .) rather than ((a . b . c) .)
21:14:35 <elliott> thats the mean thing
21:14:41 <elliott> main
21:14:54 <oerjan> elliott: yeah that one has annoyed me before
21:15:10 <elliott> IdiomBrackets and MLModules should be obvious I hope
21:15:11 <elliott> oh
21:15:12 <elliott> I also want
21:15:15 <elliott> those typekinds that are being worked on
21:15:30 <elliott> that unifies data and datakinds so that you can do type-level programming freely
21:15:33 <elliott> squee
21:15:36 <elliott> but
21:15:36 <elliott> yeah
21:15:37 <elliott> i dont have to
21:15:42 <elliott> enslave anyone to do that since it is already happening
21:16:14 <oerjan> > (0$0 <$>)
21:16:15 <lambdabot> The operator `Data.Functor.<$>' [infixl 4] of a section
21:16:15 <lambdabot> must have lowe...
21:16:42 <oerjan> > (sin<$>cos<$>tan<$>) 1
21:16:43 <lambdabot> No instance for (GHC.Num.Num (f a))
21:16:43 <lambdabot> arising from a use of `e_11' at <int...
21:16:47 <oerjan> wtf
21:16:58 <oerjan> oh
21:17:06 <oerjan> > (sin<$>cos<$>tan<$>) exp 1
21:17:07 <lambdabot> 0.7834561490393223
21:17:46 <elliott> hm that works?
21:18:01 <oerjan> yes, because <$> is infixl rather than infixr
21:18:13 <Lymee> >(sin$cos$tan$exp)1
21:18:17 <Lymee> > (sin$cos$tan$exp)1
21:18:18 <lambdabot> 0.7834561490393223
21:18:27 <Lymee> > (sin$cos$tan$)exp 1
21:18:28 <lambdabot> The operator `GHC.Base.$' [infixr 0] of a section
21:18:28 <lambdabot> must have lower prec...
21:18:33 <Lymee> Ah.
21:18:34 <Phantom_Hoover> Lymee, what on earth made you think that would have interesting behaviour.
21:18:43 <Lymee> Phantom_Hoover, I was seeing what oerjan was testing.
21:19:13 <oerjan> Lymee: your first one only works because of lambdabot's Floating instances for functions, i think
21:19:30 <elliott> oerjan: also ghc wishlist: record system that uses fclabels or lenses instead of the crap we have now
21:19:39 <elliott> and uhhhh
21:19:41 <elliott> thath
21:19:45 <elliott> that would make me pretty happy
21:19:53 <elliott> also maybe the replacement of String with Text would be nice...
21:20:02 <elliott> and the generalisation of ++ etc. to some kind of container class
21:20:09 <elliott> (yeah yeah, i am aware of monoid :))
21:20:19 <oerjan> :t (++)
21:20:19 <lambdabot> forall m. (Monoid m) => m -> m -> m
21:22:26 <elliott> CAAAAAAAAAAAALE
21:22:58 <olsner> elliott: you should go in #haskell and blame cale for caleskell, ISTR he likes that
21:23:45 <elliott> olsner: i do that on a daily basis or so
21:23:50 <elliott> i think cale may dislike me dunno why
21:24:36 <oerjan> funny that
21:26:06 <oerjan> :t readIO
21:26:07 <lambdabot> forall a. (Read a) => String -> IO a
21:26:16 <oerjan> :t readLn
21:26:16 <lambdabot> forall a. (Read a) => IO a
21:26:55 <oerjan> !haskell readIO "what does this button do?"
21:27:20 <oerjan> !haskell main = readIO "what does this button do?"
21:27:46 <oerjan> !haskell main = readIO "what does this button do?" :: IO Int
21:27:51 <EgoBot> input.21959.hs: user error (Prelude.readIO: no parse)
21:28:13 * oerjan wonders what that string is for
21:28:22 <monqy> "The readIO function is similar to read except that it signals parse failure to the IO monad instead of terminating the program."
21:28:36 <oerjan> oh right
21:28:47 <oerjan> so useless for this
21:29:08 -!- copumpkin has joined.
21:29:08 -!- copumpkin has quit (Changing host).
21:29:08 -!- copumpkin has joined.
21:29:18 <olsner> hmm, but IO can catch errors just as well as it can catch exceptions, can't it?
21:29:37 -!- Vorpal has quit (Ping timeout: 255 seconds).
21:29:44 <oerjan> olsner: in ghc yes, not the standard
21:31:24 <olsner> oh, ok
21:33:15 <oerjan> > (0$0>>)
21:33:16 <lambdabot> The operator `GHC.Base.>>' [infixl 1] of a section
21:33:16 <lambdabot> must have lower pre...
21:38:32 <oerjan> oh, putting read outside the lambda was a mistake, now i'm tying with the top
21:39:00 <oerjan> :t interact$ \n->'g':([1..read n]>>"o")++"gle"
21:39:00 <lambdabot> IO ()
21:50:27 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:16:14 * Phantom_Hoover → sleep
22:16:18 -!- Phantom_Hoover has left ("Leaving").
22:16:47 -!- augur has joined.
22:23:57 -!- Ycros has quit (Remote host closed the connection).
22:24:17 -!- Ycros has joined.
22:33:24 -!- augur has quit (Remote host closed the connection).
22:40:23 -!- augur has joined.
23:05:31 <zzo38> I decided to use a different set of units than TeX some are different, I have: pt bp in cm mm P0 p0 q em ex
23:06:27 <CakeProphet> are any of those Planck lengths?
23:06:39 <zzo38> No.
23:06:49 <zzo38> Can you make ink that small?
23:07:49 <CakeProphet> I guess not. But it could still be used as a unit with ridiculously fine-grained precision.
23:08:51 <zzo38> The precision is already 1/4736286.72 inch (you can use numbers after the decimal point too), and I don't know of any printing equipment that has that much resolution.
23:09:32 <zzo38> But I suppose in programs for designing physics stuff you might have Planck lengths as one of the units for really precision.
23:09:49 <zzo38> What is the most resolution of any printer you have seen or know of?
23:10:42 <zzo38> Four million dots per inch? I don't think so.
23:12:46 -!- CakeProphet has quit (Ping timeout: 240 seconds).
23:15:14 -!- elliott has quit (Quit: Leaving).
23:16:29 -!- CakeProphet has joined.
23:18:18 <oerjan> > 'a'<'b'
23:18:18 <lambdabot> True
23:23:15 <oerjan> :t compare
23:23:16 <lambdabot> forall a. (Ord a) => a -> a -> Ordering
23:23:23 <oerjan> @src Ordering
23:23:23 <lambdabot> data Ordering = LT | EQ | GT
23:28:38 <oerjan> > (0$0`compare`)
23:28:39 <lambdabot> The operator `GHC.Classes.compare' [infixl 9] of a section
23:28:39 <lambdabot> must have l...
23:32:04 -!- augur has quit (Remote host closed the connection).
23:44:46 -!- augur has joined.
23:44:58 -!- augur has quit (Remote host closed the connection).
2011-06-28
00:03:05 -!- CakeProphet has quit (Ping timeout: 260 seconds).
00:04:42 -!- CakeProphet has joined.
00:10:09 -!- BeholdMyGlory has quit (*.net *.split).
00:10:09 -!- iamcal has quit (*.net *.split).
00:10:50 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
00:12:34 -!- bsmntbombdood has quit (Remote host closed the connection).
00:13:53 -!- BeholdMyGlory has joined.
00:13:53 -!- iamcal has joined.
00:39:56 <oerjan> > fix (drop 1) :: [Int]
00:40:00 <lambdabot> mueval-core: Time limit exceeded
00:53:03 <CakeProphet> > fix (take 1) :: [Int]
00:53:07 <lambdabot> mueval-core: Time limit exceeded
00:53:20 <CakeProphet> heh
00:54:14 <CakeProphet> > fix (map (const 2))
00:54:18 <lambdabot> mueval-core: Time limit exceeded
00:55:32 <CakeProphet> you'll probably get the same result for most [a] -> [a] functions.
01:02:57 <oerjan> > fix ("you don't say?":)
01:02:58 <lambdabot> ["you don't say?","you don't say?","you don't say?","you don't say?","you d...
01:23:13 -!- copumpkin has joined.
01:23:14 -!- copumpkin has quit (Changing host).
01:23:14 -!- copumpkin has joined.
02:09:08 -!- augur has joined.
02:12:18 -!- augur has quit (Remote host closed the connection).
02:35:19 -!- pikhq_ has joined.
02:38:44 -!- pikhq has quit (Ping timeout: 250 seconds).
02:50:42 -!- calamari has joined.
03:21:16 -!- augur has joined.
04:25:08 <zzo38> Can player phone the wall?
04:27:02 -!- calamari has quit (Quit: Leaving).
04:28:21 -!- twice11 has quit (Ping timeout: 244 seconds).
04:28:25 -!- twice11 has joined.
04:36:27 -!- oerjan has quit (Quit: Good night).
04:40:01 -!- CakeProphet has quit (Ping timeout: 258 seconds).
04:41:40 -!- CakeProphet has joined.
04:47:46 -!- derrik has joined.
04:48:07 -!- derrik has left.
04:57:33 -!- azaq23 has joined.
05:21:35 -!- foocraft has joined.
05:23:46 <zzo38> In C, is it an error to cast from a function pointer to non-function pointer or vice versa when compiling to harvard architectures unless you double-cast it by first casting to a numeric type? (It should be, in my opinion. But only for harvard architectures and only if you do not double-cast.)
05:27:54 <pikhq_> It is undefined behavior, and thus always an error.
05:28:04 <zzo38> I mean a compiler error.
05:28:37 <pikhq_> That *is* valid.
05:28:49 <pikhq_> It would also be valid to have the elephants go on parade.
06:01:38 <zzo38> I remember I once made a computer game where at one point of the game, you are given two choices, you can select either "Can Pikachu electrify the light?" or "Can player phone the wall?" Also in the game is someone who says he will give you two water energies but only if you don't need it.
06:08:16 <monqy> sounds amazing
06:09:04 <zzo38> Someone else in the game once asks you if you like keys.
06:11:51 <monqy> it depends highly on context for me; sometimes I love them and sometimes I hate them
06:28:10 <zzo38> Also in the game is a wizard who does nothing except ask what Pikachu wants. He is standing in a store that only sells two things, food dish and candy.
06:28:39 <zzo38> Also you can find on the floor a "hand energy" which can be used for making pizza later on in the game.
06:29:45 <zzo38> If you select the "Can player phone the wall?" option, the game responds with the message "space echo rings".
06:30:33 <monqy> this makes me want to make games
06:31:34 <zzo38> Then make a game.
06:31:47 <zzo38> I have made many computer games.
06:31:55 <zzo38> You can learn, too.
06:32:21 <zzo38> Some games I make using MegaZeux. You can download one version of MegaZeux at: http://zzo38computer.cjb.net/mzx1/mzx_extended/
06:32:35 <zzo38> (That is a directory listing; you must select the files you want to download.)
06:32:48 <zzo38> (And be aware that the online help (when you push F1) has some errors in it.)
06:32:54 <olsner> HAPPY CAPS LOCK DAY
06:33:10 <zzo38> Of course is also possible using C, QBASIC, and whatever else you want to use.
06:33:15 <zzo38> Including paper.
06:40:20 -!- aloril has quit (Ping timeout: 252 seconds).
06:48:17 -!- aloril has joined.
06:56:54 -!- monqy has quit (Quit: hello).
07:05:41 -!- CakeProphet has quit (Ping timeout: 250 seconds).
07:08:18 -!- pikhq has joined.
07:08:27 -!- pikhq_ has quit (Ping timeout: 258 seconds).
07:16:25 -!- CakeProphet has joined.
07:16:25 -!- CakeProphet has quit (Changing host).
07:16:25 -!- CakeProphet has joined.
07:38:56 -!- zzo38 has quit (Remote host closed the connection).
08:03:19 -!- jcp has quit (Ping timeout: 250 seconds).
08:04:35 -!- jcp|1 has quit (Ping timeout: 255 seconds).
08:12:56 -!- jcp has joined.
08:18:32 -!- jcp has quit (Ping timeout: 252 seconds).
08:32:53 -!- Vorpal has joined.
08:35:26 -!- jcp has joined.
08:44:56 -!- jcp has quit (Ping timeout: 252 seconds).
08:47:56 -!- jcp has joined.
08:50:56 -!- foocraft has quit (Ping timeout: 255 seconds).
09:03:42 -!- foocraft has joined.
09:07:11 -!- foocraft has quit (Client Quit).
09:13:26 -!- augur has quit (Ping timeout: 276 seconds).
10:51:23 -!- ais523 has joined.
11:47:50 <Lymee> Java doesn't let you golf enoguh.
11:47:51 <Lymee> enough*
11:48:27 <Lymee> This is bad.
11:55:24 <CakeProphet> why on Earth would you even expect that from Java.
11:56:17 <CakeProphet> I think golfing a large project would be fun. It provides some new challenges
11:56:32 <CakeProphet> and since the byte counts are larger, there's more room to work in fancy tricks to drop the byte count.
12:01:42 <CakeProphet> for example, with source filters in Perl you could shorten operators and keywords, add semicolons, and have then compress the source.
12:02:54 <CakeProphet> oh and I guess you could expand macros, since I don't think Perl has macros.
12:09:51 <ais523> Lymee: have you seen the trick of putting your code in an enum initialiser?
12:26:47 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
12:27:07 <quintopia> i think you could do some interesting golfing in jvm bytecode maybe
12:38:40 <Lymee> ais523, eh?
12:38:52 <ais523> Lymee: for golfing Java
12:38:58 <Lymee> What's the trick?
12:39:05 <ais523> it's incredibly bad style, but it actually works
12:39:09 <ais523> I can't remember the exact way it's done
12:39:13 <ais523> let me find it on anagolf
12:39:20 <Lymee> CakeProphet, I'd love to have a contest to, say, actually implement an language requiring a complex parser.
12:39:44 <Lymee> Then make examples requiring non-cheating.
12:39:52 <Lymee> I wish you could set it up to make a "generator" program.
12:39:57 <Lymee> Each run, it is fed a random number
12:40:04 <Lymee> It uses this random number to generate input and output set.
12:40:15 <Lymee> Then, cheating implementations are defeated.
12:41:15 -!- CakeProphet has quit (Ping timeout: 244 seconds).
12:41:33 <ais523> here's an example program using the trick, a golfed Java infinite loop by narb: enum _{_;int i;{for(;i<1;);}}
12:42:15 <ais523> (I assume the i<1 is in there because unreachable code produces compile errors in Java, so it had to look like it was doing something)
12:43:08 -!- CakeProphet has joined.
12:43:08 -!- CakeProphet has quit (Changing host).
12:43:09 -!- CakeProphet has joined.
12:43:12 <Lymee> ais523, clever.
12:43:31 <fizzie> A compile-time detected infinite loop -- like a for (;;) -- fails with: "initializer must be able to complete normally"
12:43:54 <ais523> I suppose infinite loops in initializers is not generally a useful thing to be able to do
12:46:50 <fizzie> "enum _{_;{for(;Math.E<3;);}}" would be one character shorter, but unfortunately also gives the same complaint, perhaps because Math.E is "final".
12:51:32 -!- Vorpal has quit (Ping timeout: 240 seconds).
13:37:15 <CakeProphet> the main problem here
13:37:18 <CakeProphet> is that you're golfing in Java.
13:41:06 <CakeProphet> !perl ...
13:41:08 <EgoBot> syntax error at /tmp/input.24328 line 1, near "..."
13:41:19 <CakeProphet> !perl print sub {...}
13:41:19 <EgoBot> syntax error at /tmp/input.24391 line 1, near "{..."
13:41:36 <CakeProphet> hmmm? I thought ... was a legitimate filler-code syntax...
13:42:57 <CakeProphet> !perl sub test {...} print test
13:42:58 <EgoBot> syntax error at /tmp/input.24567 line 1, near "{..."
13:47:18 -!- oerjan has joined.
13:48:05 <fizzie> ... is an operator, at least; a variant of the .. operator.
13:50:37 -!- augur has joined.
13:52:35 <fizzie> It works differently in the strange scalar flip-flop case.
13:53:23 <oerjan> "the strange scalar flip-flop case" sounds like a book title gone awry
13:55:34 <fizzie> !perl for (1..3) { print if ($_ == 2) .. ($_ > 0); }
13:55:34 <EgoBot> 2
13:55:38 <fizzie> !perl for (1..3) { print if ($_ == 2) ... ($_ > 0); }
13:55:39 <EgoBot> 23
13:58:04 <fizzie> The .. operator becomes false already on the $_ == 2 round, while the ... operator waits (doesn't evaluate the right side) until the $_ == 3 round.
13:58:52 <fizzie> "Obviously."
14:03:10 <fizzie> Here's another silly thing.
14:03:17 <fizzie> !perl for (1..5) { $v = ($_ == 3 .. $_ == 5); print "($v)" }
14:03:18 <EgoBot> ​()()(1)(2)(3E0)
14:04:03 <fizzie> The last returned true value has "E0" after it; doesn't change the numeric value, but is distinguishable if necessary.
14:04:15 <fizzie> Reminds one of the "0 but true" thing.
14:08:37 <oerjan> romance in iwc? truly the world is coming to an end
14:18:44 -!- CakeProphet has quit (Ping timeout: 276 seconds).
14:20:18 -!- CakeProphet has joined.
14:20:18 -!- CakeProphet has quit (Changing host).
14:20:19 -!- CakeProphet has joined.
14:22:42 -!- ais523 has quit (Ping timeout: 252 seconds).
14:52:05 -!- CakeProphet has quit (Ping timeout: 276 seconds).
14:56:23 -!- oerjan has quit (Quit: Later).
15:31:56 -!- Tritonio has joined.
15:49:14 -!- Vorpal has joined.
16:33:45 -!- pikhq_ has joined.
16:34:03 -!- pikhq has quit (Read error: Operation timed out).
16:35:35 -!- Phantom_Hoover has joined.
16:35:43 <Phantom_Hoover> @messages?
16:35:43 <lambdabot> Sorry, no messages today.
16:54:01 -!- SgeoN1 has joined.
16:57:16 -!- SgeoN1 has quit (Read error: Connection reset by peer).
16:57:43 -!- SgeoN1 has joined.
16:59:52 -!- SgeoN1 has quit (Read error: Connection reset by peer).
17:00:16 -!- SgeoN1 has joined.
17:01:48 -!- SgeoN1 has quit (Read error: Connection reset by peer).
17:07:59 <newsham> !perl time
17:08:31 <newsham> !javascript 1
17:08:43 <Phantom_Hoover> It's perl time!
17:19:03 <fizzie> It's Perl Time::HiRes.
17:31:19 -!- Tritonio has quit (Quit: Leaving).
17:33:16 -!- MigoMipo has joined.
17:47:40 -!- sebbu has quit (Read error: Connection reset by peer).
17:48:24 -!- sebbu has joined.
17:48:24 -!- sebbu has quit (Changing host).
17:48:24 -!- sebbu has joined.
17:50:28 -!- derrik has joined.
17:50:43 -!- derrik has left.
18:04:13 -!- monqy has joined.
18:17:56 -!- sebbu2 has joined.
18:17:57 -!- sebbu2 has quit (Changing host).
18:17:57 -!- sebbu2 has joined.
18:20:12 -!- sebbu has quit (Ping timeout: 240 seconds).
18:20:12 -!- sebbu2 has changed nick to sebbu.
18:58:17 * pikhq_ continues to wonder at "The Hobbit" being split into 2 films, but Lord of the Rings not being split into 6.
18:59:54 <olsner> pikhq_: 4 films if you count the two extended editions (of the two hobbit films)
19:02:15 <olsner> and iirc the extended lord of the rings films run to about 12h in total, which is close to 6 films if you split it to normal-length films
19:02:31 <pikhq_> Okay, true.
19:02:47 <pikhq_> That alone testifies that they shouldn't have freaking made LotR into a film series.
19:02:58 <pikhq_> It's fundamentally incompatible.
19:08:30 <Phantom_Hoover> pikhq_, by which you mean it was significantly better than the books
19:08:49 <pikhq_> Phantom_Hoover: I won't argue that the books are well-written or anything.
19:09:06 <pikhq_> Just that the thing is fundamentally incompatible with the film medium.
19:09:17 <pikhq_> And probably also incompatible with the novel medium as well, TBH.
19:09:21 <Phantom_Hoover> pikhq_, the films were pretty good.
19:09:44 <pikhq_> The films were also radically distinct from the books.
19:09:48 <Phantom_Hoover> Sure, they had pacing problems, but they were a relatively minor detriment.
19:10:19 <Phantom_Hoover> 'Radically distinct' as in 'they got rid of Bombadil and Saruman's invasion of the Shire'?
19:10:46 <Phantom_Hoover> Also huge swathes of stuff about trees and hills and stuff.
19:10:50 -!- foocraft has joined.
19:13:09 <olsner> I for one didn't notice any of the differences between the books and the films
19:31:47 -!- oerjan has joined.
19:44:19 -!- jcp|other has joined.
20:11:53 <Phantom_Hoover> Does anyone here know how to get X working from within a chroot?
20:18:38 <Phantom_Hoover> My god is this yet more plot development I see in IWC.
20:20:21 <newsham> phantom: a syscall trace (ie. strace/ktrace/truss) should be helpful in figuring out what X wants
20:20:45 <Phantom_Hoover> newsham, it simply does not connect to the display.
20:21:00 <Phantom_Hoover> I know this is an Xauth problem because I solved it before, but I've forgotten how.
20:21:10 <newsham> probably because its trying to connect to a unix domain socket that is not in its chroot
20:41:09 <Gregor> Yeah, you'll need to link in the unix socket file or use DISPLAY=localhost:0 instead (for TCP), and you'll have to get the .Xauthority file and set XAUTHORITY=<that file>
20:41:47 <newsham> or use "xauth" cmd line to add the specific entries you want
20:42:24 -!- ais523 has joined.
20:44:02 <Phantom_Hoover> Gregor, I have a bind mount for /tmp, but there doesn't actually seem to be a socket file there.
20:45:11 <newsham> netstat
20:45:53 <Phantom_Hoover> ls -a /tmp/.X11-unix shows it as empty.
20:46:38 <Phantom_Hoover> In my normal root, as well.
20:47:22 <newsham> and netstat says?
20:47:38 <Phantom_Hoover> netstat shows /tmp/.X11-unix/X0.
20:47:46 <Phantom_Hoover> I don't even want to think about this.
20:48:03 <Phantom_Hoover> I assume it's some deep Unix magic?
20:48:09 <newsham> maybe you're in a chroot under a chroot under a chroot
20:48:16 <newsham> inside a simulator inside a virtual world
20:48:48 <newsham> ls -l /tmp/.X11-unix/X0 shows nada?
20:49:15 <Phantom_Hoover> Yep.
20:50:08 <Phantom_Hoover> Gregor, oh, and of course, I don't have a .Xauthority file.
20:50:40 <newsham> phantom: strace/truss/ktrace "xeyes" see what its doing to reach X and to auth
20:52:37 <oerjan> newsham: /tmp/I/N/C/E/P/T/I/O/N/tmp/.X11-unix/X0
20:53:07 <newsham> maybe he's on the thirteenth floor
20:53:49 <Phantom_Hoover> newsham, you know strace is like impossible to extract useful information from, right?
20:54:19 <newsham> ph: you're on the brainfuck channel. you're kidding, right?
20:54:41 <Phantom_Hoover> newsham, the *ostensible* brainfuck channel.
20:54:45 <Phantom_Hoover> Biiiiig difference.
20:55:23 <newsham> honestly, i've found strace to be very helpful in situations like this.
20:57:15 <Phantom_Hoover> No mention of 'auth' anywhere.
20:57:43 <newsham> do you see it connecting to some socket?
20:58:40 <Phantom_Hoover> Yeah, it connects to X0.
21:29:56 -!- jix has quit (Ping timeout: 260 seconds).
21:40:38 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:45:50 -!- azaq23 has quit (Quit: Leaving.).
22:03:25 -!- CakeProphet has joined.
22:03:26 -!- CakeProphet has quit (Changing host).
22:03:26 -!- CakeProphet has joined.
22:03:43 <Phantom_Hoover> CakeProphet!
22:04:52 -!- Vorpal has quit (Ping timeout: 250 seconds).
22:18:51 * Phantom_Hoover → sleep
22:18:52 -!- Phantom_Hoover has quit (Quit: Leaving).
2011-06-29
00:20:15 -!- ais523 has quit (Remote host closed the connection).
00:40:25 -!- pikhq has joined.
00:40:33 -!- pikhq_ has quit (Ping timeout: 252 seconds).
00:42:05 <coppro> apparently there are functions in the C library that have locale-specific behavior except when in the "C" locale
00:42:09 * coppro baffles
00:43:16 -!- elliott has joined.
00:51:50 <newsham> coppro: example?
00:52:17 <coppro> newsham: I'm just quoting the standard
00:52:28 <newsham> is that for backwards compat?
00:52:46 <coppro> Those functions that
00:52:46 <coppro> have locale-specific aspects only when not in the "C" locale are noted below.
00:52:59 <coppro> how can you have locale-specific aspects only when not in the "C" locale
00:53:15 <coppro> by definition, something that is only present in the "C" locale is locale-specific
00:59:58 <elliott> hi
01:00:02 <elliott> what is argument
01:00:38 <oerjan> an object that is passed to a function when invoking it
01:01:21 <oerjan> *a value that
01:02:30 <elliott> 14:08:37: <oerjan> romance in iwc? truly the world is coming to an end
01:02:37 <elliott> oerjan: i sure hope this is the cause of the next fireball
01:03:10 <oerjan> elliott: it is looking disturbingly like dmm is wrapping up loose threads
01:03:27 <elliott> :D
01:03:38 * elliott tries to find the dinosaur comics guest strip it reminded him of
01:04:55 <elliott> http://www.qwantz.com/index.php?comic=1773
01:04:55 <elliott> this one
01:05:46 <elliott> oerjan: erm, if he's trying to end on the calvin and hobbes point it would be a bit premature
01:05:51 <elliott> unless it'll take seven hundred pages to wrap up all the adventures
01:06:27 <elliott> oerjan: btw have you tried the cunning tactic if he's planning to end the comic? :D
01:06:32 <elliott> oerjan: btw have you tried the cunning tactic of asking if he's planning to end the comic? :D
01:06:49 <oerjan> seven hundred? i think you're off a bit
01:07:01 <elliott> 19:02:31: <pikhq_> Okay, true.
01:07:02 <elliott> 19:02:47: <pikhq_> That alone testifies that they shouldn't have freaking made LotR into a film series.
01:07:02 <elliott> 19:02:58: <pikhq_> It's fundamentally incompatible.
01:07:02 <elliott> 19:08:30: <Phantom_Hoover> pikhq_, by which you mean it was significantly better than the books
01:07:02 <elliott> ++
01:07:13 <elliott> oerjan: er oh wait, that was the homestuck count when i compared them :)
01:07:17 <elliott> how long was calvin and hobbes?
01:07:26 <oerjan> elliott: i have never dared to communicate with dmm
01:07:41 <elliott> oerjan: is it because he's ~famous~
01:07:57 <elliott> 19:09:21: <Phantom_Hoover> pikhq_, the films were pretty good.
01:07:57 <elliott> agree, and i couldn't get past the first hundred pages of Fellowship
01:08:23 <newsham> there was no talking lion
01:08:25 <oerjan> 3160
01:08:57 <elliott> oerjan: ah. then start worrying.
01:09:04 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaaaaaaa
01:09:07 <elliott> although that's still almost a hundred pages of wrap-up :D
01:09:10 <newsham> 0x41414141
01:09:14 <elliott> maybe Supers will return
01:09:27 <elliott> i sure do know a lot about a comic I've never managed to archive binge
01:09:54 <newsham> speaking of archive binge, i need to catch up on smbc
01:10:26 <elliott> oerjan: i don't know how he'll wrap up the hugely intertwined tangle of plot threads that is the Nigerian Finance Minister theme
01:10:41 <elliott> maybe that's what the remaining pages are
01:11:20 * oerjan suddenly wonders if he actually has read all of lotr, or is just imagining doing so
01:11:45 <elliott> oerjan: knowing your attention span i doubt it :D
01:11:53 <oerjan> it's not implausible that i gave up somewhere in fellowship too
01:12:18 <oerjan> elliott: however i absorbed almost anything readable at that age
01:13:02 <newsham> did you read the part where caspian was on the dawn treader?
01:13:06 <elliott> oerjan: oh sweet, im gonna paste this big @ design document
01:13:15 <elliott> (...i should write one)
01:13:16 <oerjan> so it's not implausible that i may actually have read it through
01:13:24 -!- elliott has left ("Leaving").
01:13:29 -!- elliott has joined.
01:13:32 <elliott> newsham: :D
01:13:34 <oerjan> newsham: funny guy, although i _definitely_ have read all the narnia books
01:13:40 <elliott> i read the narnia books when i was a lil one, they were shit
01:13:44 <elliott> i think i thought this because they are shit
01:14:11 <elliott> maybe if i realised they were christian propaganda i would have realised WHY they were shit
01:14:14 <elliott> but i just thought he was a bad writer
01:14:46 <oerjan> elliott: heck i even read some of his _openly_ christian fiction
01:15:02 <oerjan> (the great divorce)
01:15:08 <elliott> i don't think he was a very clever writer
01:15:10 <oerjan> all this in norwegian translation, btw
01:15:27 -!- elliott has left ("Leaving").
01:15:33 -!- elliott has joined.
01:15:36 <elliott> how does clos etab work
01:15:40 <newsham> you're such a eustice
01:15:56 <elliott> totes
01:16:21 <elliott> If Aslan represented the immaterial Deity in the same way in which Giant Despair [a character in The Pilgrim's Progress] represents despair, he would be an allegorical figure. In reality however he is an invention giving an imaginary answer to the question, 'What might Christ become like, if there really were a world like Narnia and He chose to be incarnate and die and rise again in that world as He actually has done in ours?' This is not allegor
01:16:22 <elliott> y at all. (Martindale & Root 1990)
01:16:26 <elliott> cs lewis doesnt know what allegory means
01:16:34 <elliott> also he thinks jesus is lit. a lion i guess
01:17:02 <newsham> he was just writing books for kids
01:17:10 <oerjan> i think aslan turned into jesus at the end of the last battle
01:17:11 <newsham> (while trying to keep em brainwashed appropriately)
01:17:32 <newsham> he said he's known by other names in other worlds
01:18:10 <newsham> like many movies and books, cs lewis's naria books made ugly pepole bad and bad people ugly and looked down on different people
01:18:13 -!- pikhq_ has joined.
01:18:17 <newsham> pretty lame for a "christian" book
01:19:35 <elliott> newsham: to be fair, it also lacked a lot of stoning
01:19:52 <newsham> i'm pretty sure tumnus was constantly stoned
01:19:57 <elliott> the "this isn't _true_ Christianity because it's not nice enough" kind of falls down if you take all the parts together
01:20:53 -!- pikhq has quit (Ping timeout: 258 seconds).
01:21:18 * oerjan snickers at "But it's so hard for me to meet new people!"
01:21:22 <elliott> theyre making a sequel to narnia arent they
01:21:33 <pikhq_> I think that Lewis is *capable* of writing good fiction.
01:21:33 <newsham> movie wise?
01:21:45 <elliott> newsham: yeah
01:21:46 <pikhq_> Even within the framework of his "ZOMG MUST BE 120% CHRISTIAN" thing.
01:21:50 <elliott> :(
01:21:54 <pikhq_> He just seems to have let that framework take over.
01:22:14 <elliott> didn't tolkein reconvert him by basically saying "hey christianity is p. cool dude"
01:22:21 <pikhq_> Sounds about right.
01:22:36 <elliott> and lewis was like "oh ok im christian now"
01:22:49 <newsham> was lewis his precious?
01:22:52 <elliott> Films directed by Andrew Adamson
01:22:53 <elliott> Shrek (2001) · Shrek 2 (2004) · The Chronicles of Narnia: The Lion, the Witch and the Wardrobe (2005) · The Chronicles of Narnia: Prince Caspian (2008)
01:22:56 <elliott> good film career
01:23:00 <elliott> lmao
01:23:06 <pikhq_> He claims that it was some long, arduous journey, but, well...
01:23:53 <pikhq_> To be perfectly honest, most Westerners who claim to have "struggled" with their faith are either saying "I keep thinking it's bullshit, but get pulled back in", or are bullshitting you.
01:24:05 <newsham> http://www.smbc-comics.com/index.php?db=comics&id=2273
01:24:21 <pikhq_> Depending on whether they mean "struggle" as in "questioned" or "suffered personal injury because of".
01:24:35 <newsham> pikhq: or ".. but boy do I love sleeping with my wife's friends..."
01:25:10 <pikhq_> newsham: Or variations thereof.
01:25:21 <pikhq_> "Boy do I love cock" seems to be common as well.
01:25:35 <newsham> yes
01:25:40 <newsham> and "but the alcohol made me do it"
01:26:03 <pikhq_> Which works better as an excuse with some denominations than others.
01:26:14 <elliott> this sure is some productive debate
01:26:24 <newsham> the important thing is if you check yourself into rehab and tell everyone that god forgives you
01:26:26 <elliott> lets tell /r/circlejerk about it
01:26:41 <pikhq_> I mean, you've got churches that claim the religion mandates you never drink, and churches that literally make beer and wine.
01:27:43 <elliott> oh my god shut up
01:32:22 <quintopia> newsham: it would have been more fitting to the topic to link to the one where he uses bible stuff to justify sodomy and pedophilia...
01:33:47 -!- Slereah has quit.
01:35:20 <newsham> do unto others as you woul dhave them do to you?
01:35:44 <quintopia> http://www.smbc-comics.com/index.php?db=comics&id=2281#comic
01:36:12 <quintopia> the votey comic is the more interesting one
01:39:24 <elliott> hey i think my previous thoughts about the halting problem were wrong, cool
01:40:06 <elliott> hmm
01:40:12 <elliott> oh hey quint
01:40:19 <elliott> are you gonna write that score system for jous
01:40:19 <elliott> r
01:40:41 <quintopia> it's provably uncomputable. proof: find a point in time after which sgeo will never blog into this channel...
01:41:07 <elliott> what, the score system? :D
01:41:32 <quintopia> the score system will happen when i learn that stupid fortran-based algebra system
01:41:46 <quintopia> it has the WORST NAMED FUNCTIONS MANKIND HAS EVER INVENTED
01:41:55 <quintopia> with THE MOST CONFUSING PARAMETER LISTS
01:42:18 <elliott> quintopia: the haskell binding has a nice interface
01:42:19 <elliott> but hu
01:42:20 <elliott> uh
01:42:25 <elliott> lapack functinos are named systematically
01:42:33 <elliott> so you don't have to look them up if you know the base operation names :)
01:42:36 <elliott> overloading
01:42:41 <elliott> "In 2010, 25 LaRouche supporters protesting a new production of Richard Wagner's Der Ring des Nibelungen presented by the Los Angeles Opera carried signs that said, ""Wagner: Loved by Nazis, Rejected by Humans" and "L.A. County: $14 Million to promote Nazi Wagner, Layoffs for Music Teachers"."
01:43:14 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:43:31 <quintopia> explain the naming system to me then
01:43:59 <elliott> jfreadthedocumentation, anyway i was only asking so that i can take advantage of you not doing it by writing my own
01:44:37 <elliott> Subroutines in LAPACK have a characteristic naming convention which makes the identifiers short but rather obscure. This was necessary as the first Fortran standards only supported identifiers up to six characters long, so the names had to be shortened to fit into this limit.
01:44:37 <elliott> A LAPACK subroutine name is in the form pmmaaa, where:
01:44:37 <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.
01:44:38 <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 an n×n array containing the entries of the matrix.
01:44:45 <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.
01:44:46 <quintopia> i've already done all the parts that don't involving compiling in lapack. i've even downloaded the libraries. i could probably finish it tomorrow with some focus.
01:44:48 <elliott> For example, the subroutine to solve a linear system with a general (non-structured) matrix using real double-precision arithmetic is called DGESV.
01:44:51 <elliott> quintopia
01:45:28 <elliott> does it plug in to the existing report.c
01:45:35 <elliott> and yeah but i was going to do it in haskell which means i could be finished in the same time :P
01:45:40 <quintopia> no, i had to modify report.c also
01:45:43 <elliott> also "downloaded the libraries"? what, an apt-get line?
01:45:51 <elliott> quintopia: um it should not require adding new files
01:45:58 <elliott> if you are baking it into chainlance that is wrong
01:46:16 <quintopia> no, i had to modify both
01:46:25 <quintopia> but the scoring code is going in report.c
01:46:39 <quintopia> but if you want to do it and won't fuck it up, have at it.
01:46:57 <elliott> i might fuck it up :)
01:47:04 <elliott> quintopia: chainlance should require _no_ modifications
01:47:06 <elliott> it reports only the raw score
01:47:24 -!- CakeProphet has quit (Ping timeout: 240 seconds).
01:47:32 <quintopia> it required modification, because i needed more than the raw score
01:47:57 <elliott> um what else do you need
01:48:08 <quintopia> the number of wins of each program
01:48:39 <elliott> can't you work that out from the reported raw score
01:49:37 <elliott> anyway, i have some bf joust stuff i am already working on, so i will probably do the scoring system sometime too
01:50:08 <quintopia> no
01:50:14 <quintopia> the raw score is Ascore-Bscore
01:50:30 <quintopia> so 9-8 looks the same as 10-9 looks the same as 11-10
01:50:49 <elliott> fair enough
01:50:51 <quintopia> it was a trivial modification tho
01:50:57 <elliott> i like the phrasing in terms of betting, btw
01:51:30 <quintopia> if you want the modified lance and build your own report on top of it, i can send you that now
01:52:50 <elliott> nah, it's ok, one of my other projects is lance
01:52:54 <elliott> quintopia: also, plz [asterisk]chainlance
01:53:02 <elliott> it's bad enough fizzie plagiarising my name without you abbreviating it to my name :)
01:53:18 <quintopia> i couldn't remember which lance it was i modified. *lance then
01:55:35 <elliott> 14:53:59: <elliott> variable: emacs v. vi is *very* well-trodden
01:55:36 <elliott> 14:54:03: <elliott> variable: vile vs. nedit would be fun
01:55:40 <elliott> still want this flamewar, btw
01:56:22 <quintopia> i have an idea
01:56:36 <elliott> quintopia: which idea
01:56:41 <quintopia> how about a language where the same word is used to mean both a word and the opposite word
01:56:50 <quintopia> it shall be called SARCLANG
01:57:06 <elliott> thats called english
01:57:34 <quintopia> english gives you the option to be explicitly not sarcastic
01:57:42 <quintopia> in SARCLANG, you are always left guessing
01:58:27 <elliott> 15:17:42: <nooga> i've got a great settlement in a hanging cliff, on a remote island
01:58:31 <elliott> quintopia: it does?
01:59:44 <quintopia> yes. in english if you preface a statement with figuratively, like THAT WILL FIGURATIVELY CATCH ON FIRE IF YOU DO THAT! then everyone knows you are being serious and not sarcastic.
02:00:13 <elliott> they do?
02:00:17 <elliott> 15:25:52: <elliott> The foundations of mathematics has a strange dogma that ... distilling the smallest possible set of elegant core axioms is both possible and profitable. From there, offering this set of axioms leaves the dirty business of making workable theories to blue-collar workaday mathematicians.
02:00:19 <quintopia> they do now]
02:00:26 <elliott> i like this
02:01:48 <quintopia> i've started reading "Everything Is Obvious *Once You Know The Answer" and it is pretty awesome so far.
02:10:39 <elliott> 15:25:52: <elliott> The foundations of mathematics has a strange dogma that ... distilling the smallest possible set of elegant core axioms is both possible and profitable. From there, offering this set of axioms leaves the dirty business of making workable theories to blue-collar workaday mathematicians.
02:12:36 <elliott> quintopia: laugh
02:13:37 <quintopia> HAHAHAHAHA
02:13:44 <quintopia> that'll be six dollars
02:14:47 <monqy> this confused me at first because I interpreted "laugh" as an action of elliott's rather than a command
02:15:57 <monqy> I should probably stop talking in such a way that "laugh" would indeed be an action like that; I might get confused less
02:16:08 <monqy> (I will never do this)
02:17:10 <elliott> :)
02:17:13 <elliott> monqy: did you laugh
02:17:27 <elliott> monqy: because you have to laugh at its absurdity, so i can make you cry
02:17:53 <monqy> but I don't want to cry
02:18:08 <elliott> monqy: but did you laugh
02:18:19 <monqy> what's a blue-collar workaday mathematician anyway
02:18:40 <monqy> I am horribly out of jive with math culture
02:18:53 <monqy> should get back in jive
02:19:08 <elliott> monqy: ok here's what i modified that from
02:19:16 <elliott> 15:25:20: <elliott> "Programming language design has a strange dogma that ... distilling the smallest possible set of elegant core axioms is both possible and profitable. From there, offering this set of axioms leaves the dirty business of making workable software to blue-collar workaday programmers."
02:19:20 <elliott> monqy: time to cry
02:19:25 <elliott> (this was from a serious blog post)
02:19:32 <monqy> I'm crying
02:20:32 <monqy> why would anyone write that. why would anyone think that.
02:20:55 <elliott> monqy: perl user
02:21:50 <elliott> so i have the new dark google top bar thing
02:21:52 <elliott> i dont like it :(
02:21:53 <monqy> programming languages suck because they're too elegant. perl forever.
02:22:11 <elliott> monqy: http://www.modernperlbooks.com/mt/2011/01/minimalism.html enjoy
02:22:38 <quintopia> this is why intercal is BEST LANGUAGE
02:22:44 -!- pikhq has joined.
02:23:22 <elliott> oh wow what the google design just changed
02:23:27 <elliott> but not when i search with the address bar
02:23:44 <quintopia> it eschews elegance, focusing instead on making things easy for the programmer. for instance, converting numbers to roman numerals or words takes effort on the programmer's part. they shouldn't have to do that.
02:25:14 <elliott> http://i.imgur.com/SsaMu.png
02:25:18 <elliott> what happened to be googles
02:25:22 <elliott> my googls
02:25:25 <elliott> ha;l
02:25:25 <elliott> p
02:25:44 -!- pikhq_ has quit (Ping timeout: 250 seconds).
02:26:00 <quintopia> penguinofthegods? wtf?
02:26:07 <elliott> thats my email
02:26:17 <elliott> im a penguin deal with it
02:26:29 <elliott> i wonder if there are any penguin furries (yes)
02:26:44 <monqy> http://www.wdyl.com/#esoteric+programming+languages the one true google
02:27:02 <elliott> what the fuck is that
02:27:07 <monqy> the one true search engine
02:27:12 <elliott> but its not a search engine
02:27:17 <elliott> "See pictures of sex" --wdyl.com
02:27:27 <elliott> "Alert me about sex" im such a child
02:27:29 <elliott> "Find patents about sex"
02:27:32 <elliott> "Explore sex in 3D"
02:27:36 <elliott> "Measure popularity of sex on the web
02:27:36 <elliott> "
02:27:41 <elliott> "Organize a debate about sex"
02:27:43 <monqy> "Start a fucking blog"
02:27:45 <elliott> "Find sex nearby"
02:27:48 <quintopia> "king dedede rule 34 exists...don't ask me how i know"
02:27:52 <elliott> "Call someone about sex"
02:27:56 <elliott> "Plan your sex events"
02:28:00 <elliott> "Search sex, on the move"
02:28:03 <elliott> "Scour the earth for sex"
02:28:03 <monqy> "Plan your fucking events"
02:28:06 <elliott> "Access sex stuff on the web, faster"
02:28:58 <elliott> Find wizards... nearby
02:29:01 <elliott> Make a photo album about wizards...
02:29:07 <elliott> Measure popularity of wizards... on the web
02:29:56 <elliott> i have fifty-eight backlogged updates
02:30:14 * elliott applies
02:30:30 <elliott> quintopia: was that quote just totally ooc btw
02:31:14 <quintopia> elliott: from a forum thread where someone was asking whether penguin furries exist
02:31:26 <elliott> link
02:31:32 <elliott> why do furries exist
02:31:32 <elliott> why do furries exist ... i can't help but feel that furries are merely a sign of things to come in the next hundred years of history ...
02:31:43 <elliott> for fucks sake why is something like this necessary furry fandom? more like cult of furrism, some wacked out 21st century meta religion with its own fucking intricate series of SUBSECTS
02:31:43 <quintopia> just search for penguin furries on google. you'll find it.
02:31:48 <elliott> this article i s stupid
02:32:07 <elliott> [[
02:32:09 <elliott> somewhere between final fantasy, dragon ball z, and quake three, the internet stopped being a place where everyone regarded each other as elites and instead resulting in a bunch of poorly misguided rules about "proper posting etiquette"
02:32:09 <elliott> (to this very day i have yet to figure out what this phrase is supposed to mean beyond "be a faggot")
02:32:10 <elliott> ]]
02:32:36 <elliott> http://hell.oddwebsite.com/ well this is the worst webpage i hae ever visited
02:34:17 <monqy> wow what is this
02:35:08 <elliott> a bunch of people who have evidently mistaken pretending to be stupid with being stupid
02:35:12 <elliott> also seen on irc
02:35:52 <elliott> quintopia: lol at the first post in that penguinfurries thread
02:35:53 <elliott> "I was just thinking about what they would feel like just now."
02:38:08 <monqy> nice thread
02:38:24 -!- iamcal has quit (Read error: Operation timed out).
02:38:41 <elliott> i hate the internet
02:38:42 <elliott> and love it
02:38:49 <elliott> im not sure which is stronger
02:39:16 <oerjan> it's a love-hate relationship
02:39:18 <elliott> oh god its upgrading the kernel
02:39:22 <elliott> monqy: why do iever upgrade my software
02:39:53 <monqy> sometimes I upgrade my software and it looks ugly or breaks
02:40:18 <monqy> uglier, that is
02:40:33 <elliott> maybe ill just leave it the same version forever
02:40:35 <elliott> until it breaks
02:40:41 <elliott> and then install the new version and cry for a week
02:40:43 <elliott> and then never upgrade it
02:40:43 <elliott> repeat
02:43:21 <elliott> Meet the Shen Project - the type-safe heir of Lisp (Qi) that has ambitious aims - from embedded to the Web - "a universal Assembly" (lambdassociates.org)
02:43:25 <elliott> oh god dammit not the qi guy again
02:43:40 <elliott> herp derp let me totally misuse "bipolar" to try and explain programmers being in bored in university
02:43:43 <elliott> im a fucking genius look at me
02:43:56 <elliott> fuck fuck shitty shit fuck fuck
02:44:01 <monqy> heir of lisp?
02:44:14 <elliott> yeah obviously qi is lisp
02:44:18 <elliott> thats the reddit headliner though
02:44:36 <monqy> so is it any good
02:44:50 <elliott> qi itself? sure.
02:44:55 <elliott> but the author is an idiot.
02:45:19 <elliott> "For that reason I subtitled my talk Back to the Future (after Zemecki's classic time travel film)"
02:45:21 <elliott> Zemecki's
02:45:34 <elliott> hes like fucking kubrick
02:46:24 <elliott> "This is not an OSI license, but a free$ license designed to hold the project together around a standard that is well documented and has 20 years R&D behind it."
02:46:33 <monqy> apparently Qi is an award-winning functional programming language based on 20 years R&D that offers the advantages of pattern matching, l calculus consistency, optional lazy evaluation and static type checking.
02:46:39 <elliott> theory: licensing is the easiest place to find if a software developer is a fucking egoist
02:46:55 <pikhq> elliott: I concur.
02:46:55 <elliott> if he's selling it while talking about his ONE-MAN stunning achievement, he's a massive egoist
02:46:59 <monqy> 20 years r&d 20 years r&d
02:47:06 <elliott> if he's avoiding using an open source license to protect his hard work, he's an egoist
02:47:16 <elliott> sorry [asterisk]eir
02:47:23 <elliott> if he's GPLing it and explicitly states this is to stop eir work being abused by corporations
02:47:26 <elliott> e's an egoist, and delusional
02:47:29 <elliott> [asterisk]e's
02:47:35 <pikhq> But at least not also a complete ass.
02:48:10 <pikhq> "I want to protect this from corporations, so I'm going to make it worse for everyone", however, is.
02:48:15 <elliott> sometimes i worry that my complete lack of care with what someone does with my code would break down the moment someone "exploits" it and i'm just doing it to seem humble to myself
02:48:41 <elliott> Shen has a great contribution to make in safety critical areas such as
02:48:41 <elliott> space exploration,
02:48:41 <elliott> nuclear plant maintenance
02:48:41 <elliott> medicine
02:48:41 <elliott> high integrity operating systems
02:49:25 <elliott> I wonder if NASA uses formal-logic based software verification techniques?
02:49:41 <monqy> naaaaaaaaaaah
02:49:55 -!- copumpkin has joined.
02:49:59 <elliott> I have this horrible feeling that they instead rely on manuals of restrictive coding styles ... but can that really be true? NASA's code _works_ almost all the time, on the first actual run
02:50:01 -!- copumpkin has quit (Changing host).
02:50:02 -!- copumpkin has joined.
02:50:11 <elliott> And style guides are _not_ a sufficient methodology to do this
02:50:17 <elliott> [asterisk]achieve
02:50:23 <elliott> monqy: Well, it's not like that's totally uncommon
02:50:28 <elliott> monqy: Intel use a formally verified FPU unit
02:51:03 <pikhq> Probably because they don't want to repeat fdiv.
02:51:09 <elliott> Yes, it started after that IIRC
02:51:14 <elliott> A good decision
02:51:24 <elliott> I really want to know how Intel processors are _designed_
02:51:26 <pikhq> Most certainly.
02:51:28 <elliott> Obviously it's not all raw chip design programs
02:51:38 <elliott> Because that would be INSANELY huge
02:51:43 <elliott> (The high-level layout of components is obviously that, though)
02:51:52 <elliott> Like -- how do they specify the instruction->microcode transformations?
02:51:59 <elliott> How do they "compile" this into the translator unit?
02:52:05 <elliott> How do they write the microcode interpreter?
02:52:13 <elliott> How do they "compile" this into chip design?
02:52:16 <elliott> I really want to know.
02:52:20 <elliott> It would be very fascinating.
02:52:56 <pikhq> Apparently Google's recent layout change is because of a new service.
02:52:58 <pikhq> "Google+".
02:53:06 <monqy> google+ what
02:53:09 <pikhq> They're wanting to get into social networking stuff.
02:53:11 <elliott> no thats just their social networking thing
02:53:14 <elliott> why would that make them change the deign
02:53:15 <elliott> design
02:53:17 -!- iamcal has joined.
02:53:18 <elliott> btw i like the new design
02:53:23 <elliott> i just didn't like the top bar with the old page
02:53:27 <elliott> which i still get when searching w/ url bar for some reason
02:53:30 <pikhq> elliott: So it all integrates.
02:53:43 <elliott> ugh what its gone back
02:53:49 <elliott> oh hey
02:53:51 <elliott> google.com has it
02:54:00 <elliott> it is a nice redesign though?
02:54:01 <elliott> it has more whitespace
02:54:10 <elliott> although i don't like the url being above the summary
02:54:17 <elliott> it sort of separated results before
02:54:31 <elliott> pikhq: oh nice, they've unified all the serach
02:54:33 <elliott> like patents
02:54:41 <elliott> http://www.allgraphics123.com/ag/01/13042/13042.jpg
02:55:14 <monqy> someone made this
02:55:47 <elliott> i need a "HUG"
02:55:50 <elliott> "HUG" "Me"
02:56:08 <elliott> hey i have chrome twelve now
02:57:02 <elliott> monqy: http://zwani.com/ oh good site
02:57:10 <elliott> thanks for making "HUG" "Me" zwani
02:57:22 <monqy> wow all of this
02:57:26 <oerjan> <elliott> I wonder if NASA uses formal-logic based software verification techniques? <-- istr from somewhere (maybe ltu?) that they're based on _exceedingly_ thorough code review
02:57:51 <elliott> oerjan: i guess it's just using humanpower but...
02:57:58 <elliott> its hard to believe that it actually works as well as it does
02:58:32 <elliott> "Also, while we're talking about Ambient Oriented Programming, what about Metaphor-Oriented Programming? See the brilliant Homespring language by Jeff Binder and Joe Neeman: http://xeny.net/H_Ot_M_Ef_S_P_R_Ib_N_G"
02:58:33 <elliott> ltu: good
02:58:45 <elliott> "I thought that this comment was generated by an intelligent SPAM generator. Maybe its passing the Turing test now?"
02:58:45 <elliott> :(
02:58:59 <elliott> "I was calling the post that parented your reply SPAM, according to my first-read filter. Actually, reading it again, I think you are correct, its not SPAM, just that the thoughts are enthusiastic but not very well organized yet. The parent poster could work on organizing and polishing their thoughts, it would be easier for us to understand what is going on and provide appropriate feedback."
02:59:01 <elliott> oerjan: lol wow
02:59:04 <elliott> they are taking homespring seriously
02:59:08 <elliott> im very happy
02:59:13 <elliott> joke
02:59:13 <elliott> Homespring is a joke language. I think it's rather funny.
02:59:13 <elliott> By tumble at Fri, 2011-03-11 05:20 | login or register to post comments
02:59:13 <elliott> I didn't get it. I apologize
02:59:14 <elliott> I didn't get it. I apologize for jumping to conclusions.
02:59:16 <elliott> By Sean McDirmid at Fri, 2011-03-11 09:05 | login or register to post comments
02:59:23 <elliott> im clapping
02:59:52 <elliott> http://esolangs.org/wiki/PoGo
02:59:54 <elliott> oh my god
02:59:59 <elliott> why are you still making languages
03:00:01 -!- variable has quit (Remote host closed the connection).
03:00:08 <elliott> [ and ] become a complicated and probably very arbitary mess of po's and go's and some other things
03:00:11 <elliott> thats not a fucking isomorphism
03:00:14 <monqy> is that by tehz oh madk
03:00:42 -!- variable has joined.
03:00:45 <monqy> Make the coder laugh
03:00:45 <monqy> ow an go
03:00:47 <monqy> i dont get it
03:01:05 <elliott> a wang. oh
03:01:20 <monqy> oh.
03:01:34 <elliott> i dunno
03:01:37 <elliott> that was just a silly joke
03:01:39 <elliott> if its actually that
03:01:40 <elliott> then ill cry
03:01:49 <monqy> im already crying
03:01:51 <monqy> i like how all of his langauges are brainfuck but different????
03:02:05 <monqy> I also like how he doesn't understand isomorphism???????
03:02:26 <elliott> "In fact, I believe that it is precisely because Qi was largely delivered outside the university system that it exists at all."
03:02:31 <elliott> why are you criticising universities in your proposal
03:02:34 <elliott> its not good....................................................
03:02:45 <elliott> oh he
03:02:47 <elliott> wants donations
03:02:47 <oerjan> <elliott> thats not a fucking isomorphism <-- IS TOO
03:02:48 <elliott> no.......
03:02:55 <elliott> standing donation to Lambda AssociatesUp to £10.00 GBP per month
03:02:57 <elliott> lol
03:02:57 <elliott> wow
03:02:59 <elliott> a standing donation
03:03:05 <elliott> Enter the maximum amount you want to pay each month
03:03:06 <elliott> £ GBP
03:03:06 <elliott> You will pay at least £1.00GBP
03:03:06 <elliott> no
03:03:07 <elliott> i wont
03:03:17 <monqy> -1
03:03:17 <elliott> People who pledge a standing amount are automatically entitled to a monthly newsletter which previews the forthcoming work we are doing. You will have your name placed on our list of donors unless you indicate you would prefer to remain anonymous (write here if you wish this). If you are interested in making a substantial contribution with a view to advertising on Lambda Associates then write to us and we will take it from there.
03:03:20 <elliott> oh my god monqy do you have money
03:03:25 <oerjan> well actually it's not, but only because you stupid esolangers insist on forgetting that isomorphisms are invertible...
03:03:26 <elliott> its only like one letter away from monqy
03:03:37 <elliott> oerjan: got a nicer term? :P
03:03:41 <monqy> i only have american money
03:03:49 <elliott> monqy: its ok paypal converts
03:03:51 <elliott> monqy: you gotta do this
03:04:13 <oerjan> elliott: embedding, maybe
03:04:31 <elliott> http://sonantlive.bitsnbites.eu/tool/ oh fun times
03:04:35 <elliott> oerjan: that's not very evocative
03:04:38 <elliott> s/not very/not very/
03:05:49 <elliott> monqy: http://www.allgraphics123.com/
03:06:19 <elliott> oh james hague did banksimple???
03:06:21 <monqy> it doesn't want to load but I trust it's quality
03:06:23 <monqy> ok loaded
03:06:47 <monqy> good categories, good graphics123
03:06:54 <elliott> i dont see hague on on banksimples page
03:06:56 <elliott> maybe is lies
03:07:25 <oerjan> elliott: hm the tcs term would be "reduction", me thinks
03:07:28 <elliott> "Crap, you're more than right, my bad. It was only linked by al3x, CTO of BankSimple."
03:07:28 <elliott> lol
03:07:37 <elliott> oerjan: that would work
03:07:59 <oerjan> like reduction to SAT
03:08:00 <elliott> monqy: hey do you read Arcane Sentiment, if so, are you actually literally me
03:08:17 <monqy> I think I used to know what that was
03:08:22 <monqy> like for an hour
03:08:27 <monqy> I should try again
03:08:32 <elliott> http://arcanesentiment.blogspot.com/
03:08:52 <elliott> it is full of correct opinions and good words
03:08:54 <monqy> oh right I read a few of the posts once
03:09:04 <monqy> I remember it being pretty correct and good
03:09:15 <monqy> doesn't look too updated since then though
03:09:25 <elliott> yeah it has not updated in a few months? :(
03:09:28 <elliott> the archives are all good though
03:09:44 <elliott> monqy: what about Programming in the 21st Century
03:09:49 <elliott> also good blog
03:09:51 <monqy> never even heard of that one
03:09:59 <monqy> will look
03:10:06 <elliott> http://prog21.dadgum.com/
03:10:41 <elliott> it's got a lot of comparison to retro days + functional programming things + a lot of performance-focused mindset putdown
03:21:07 -!- jcp|1 has joined.
03:22:13 -!- jcp|other has quit (Read error: Operation timed out).
03:22:22 -!- jcp has quit (Ping timeout: 240 seconds).
03:23:50 -!- jcp has joined.
03:25:41 -!- jcp|1 has quit (Ping timeout: 246 seconds).
03:26:35 -!- jcp|other has joined.
03:28:09 -!- jcp has quit (Ping timeout: 258 seconds).
03:28:28 -!- jcp has joined.
03:36:25 <monqy> elliott: pogo not a joke language? have you read the spec and examples?
03:36:40 <monqy> I haven't either but I just saw a few of them and they sound like a really bad joke
03:36:46 <elliott> monqy: it's certainly a joke but we have a specific definition of joke language :)
03:37:03 <elliott> TURKEY BOMB is a joke language, a language that is just terrible is not
03:37:13 <monqy> mmm TURKEY BOMB
03:37:24 <monqy> I should look up the definition sometime
03:37:27 <monqy> I probably forgot it
03:37:28 <elliott> Ook is also arguably a joke language, but this actually adds something
03:37:31 <elliott> even though what it adds is rubbish
03:37:40 <elliott> monqy: http://catseye.tc/gallery/languages/turkeyb/
03:37:44 <elliott> it's amazing, and maybe even implementable and TC :P
03:37:56 <monqy> yeah I remember reading it once or twice
03:37:57 <monqy> good stuff
03:38:17 <elliott> `quote it's all coming together
03:38:21 <HackEgo> No output.
03:38:22 <elliott> `quote it's all coming
03:38:24 <HackEgo> No output.
03:38:25 <elliott> `quote it's all becoming
03:38:26 <HackEgo> No output.
03:38:29 <elliott> `quote AMICED
03:38:30 <HackEgo> 106) <scarf> and an AMICED literal would presumably /add/ info to the source <scarf> whatever info gets added, that's the value that the AMICED doesn't contain <scarf> it's all falling into place
03:38:31 <elliott> monqy: caret
03:39:45 <elliott> (scarf is ais)
03:40:12 <monqy> looking more carefully, pogo looks like half boring and half bad joke
03:40:23 <monqy> like really bad joke
03:40:31 <monqy> he - push the masculinity of the current memory cell onto the memory stack (Chuck Norris may cause stack overflow)
03:41:05 <elliott> oh
03:41:08 <elliott> fuck that noise
03:41:11 <elliott> also fuck chuck norris
03:41:43 <monqy> the second-to-last block of commands in the spec reminds me of HQ9+
03:42:46 <monqy> it even has the H and 9, and a command to make Q trivial
03:42:50 <elliott> oerjan: i have started to apply the "reduction" terminology
03:43:02 <oerjan> wow
03:43:17 <monqy> I should make an "isomorphism" with hq9+
03:43:25 <elliott> oerjan: wow what?
03:43:29 <elliott> oerjan: that i am being good? :D
03:43:31 <monqy> oh a reduction
03:43:58 <elliott> http://esoteric.voxelperfect.net/w/index.php?title=Brainfuck&curid=961&diff=23474&oldid=23331
03:44:02 <elliott> monqy: reading now out of date
03:44:04 <elliott> should i make a new one
03:45:10 <monqy> reading of pogo spec and exampels try not to cry
03:45:17 <elliott> monqy: impossible
03:45:29 <monqy> Make the coder laugh
03:45:29 <elliott> id need to be a cybord withougt emotions and then i might spontaenously devleop them to cry
03:45:35 <elliott> should i laugh after reading it
03:45:36 <monqy> ow an go
03:45:36 <monqy> Alternatively,
03:45:37 <monqy> po op
03:45:37 <elliott> like a really hollow laugh
03:45:42 <elliott> signifying like
03:45:44 <elliott> my internal death
03:45:59 <monqy> going to look up what poop does
03:46:05 <elliott> poops
03:46:12 <elliott> po - add current position in code to the top of the po stack
03:46:12 <elliott> op - pop from the memory stack and place the value in the current memory cell
03:46:30 <monqy> what happens when you pop from an empty stack
03:46:36 <elliott> poop
03:46:37 <monqy> this spec sucks
03:46:59 <elliott> http://esoteric.voxelperfect.net/w/index.php?title=User:TehZ&curid=3382&diff=23473&oldid=23441
03:47:00 <elliott> whitewashing
03:47:47 <monqy> good talk page
03:47:59 <elliott> http://esoteric.voxelperfect.net/w/index.php?title=Deadfish&curid=2038&diff=23467&oldid=23457
03:48:03 <elliott> oerjan: maybe i should move it to L
03:48:14 <elliott> monqy: what, [[User talk:TehZ]]?
03:48:19 <monqy> yes
03:50:21 <elliott> maharba is a good person, some of their languages aren't very interesting but they have good opinions
03:50:25 <elliott> opinions hour with elliott
03:52:22 <oerjan> elliott: wat
03:52:36 <elliott> oerjan: what
03:52:56 <elliott> they make fun of the right things and know good things to know that a lot of bad people on the wiki don't
03:53:00 <oerjan> you mean The language defined by the Revised Revised Revised Revised Revised Report on the Algorithmic Language Scheme?
03:53:05 <elliott> oh
03:53:06 <elliott> yeah
03:53:39 <elliott> I wonder how you expand Revised^-1 Report on the Kernel Programming Language
03:54:01 <oerjan> elliott: wait, that exists?
03:54:17 <elliott> ftp://ftp.cs.wpi.edu/pub/techreports/pdf/05-07.pdf
03:54:19 <elliott> yes
03:54:28 <elliott> nice things with interesting opinions
03:54:31 <elliott> uh let me link to the site/ltu
03:54:33 <elliott> more digestible
03:54:38 <elliott> http://web.cs.wpi.edu/~jshutt/kernel.html
03:55:07 <elliott> http://lambda-the-ultimate.org/node/4093
03:55:07 <elliott> http://lambda-the-ultimate.org/node/1680
03:55:31 <elliott> ($define! $if
03:55:32 <elliott> ($vau (x y z) env
03:55:32 <elliott> ($cond ((eval x env) (eval y env))
03:55:32 <elliott> (#t (eval z env)))))
03:55:33 <elliott> also a good example
03:55:40 <elliott> ($define! $lambda
03:55:40 <elliott> ($vau (ptree . body) static-env
03:55:40 <elliott> (wrap (eval (list* $vau ptree #ignore body)
03:55:40 <elliott> static-env))))
03:55:45 * elliott realises the chances of oerjan reading any of these is 0
03:55:49 <elliott> well maybe the webpage :D
03:56:20 <oerjan> ...maybe you know me too well.
03:56:45 <elliott> http://web.cs.wpi.edu/~jshutt/kernel.html
03:56:48 <elliott> see that's an easy short webpage
03:56:50 <elliott> :D
03:56:55 <oerjan> already opened
03:57:17 <elliott> that implementation of lambda is great though
04:03:45 <monqy> mmmm
04:05:22 <elliott> monqy: define mmm
04:05:23 <elliott> is it joisdf
04:05:27 <elliott> sorry i missed an m sorry
04:05:34 <monqy> what's joisdf
04:05:55 <monqy> this kernel language thing is pretty nifty
04:06:05 <elliott> joisdf is the best
04:06:19 <elliott> and yeah it is, i disagree with some of the principles listed in the report, but it's a good coherent philosophy
04:06:19 -!- variable has quit (Remote host closed the connection).
04:11:32 <elliott> http://libposix.sourceforge.net/ oh lol this again
04:11:52 <elliott> http://sourceforge.net/apps/mediawiki/libposix/index.php?title=Compare
04:12:07 <elliott> cool, wants me to log in to view their full news
04:14:07 <monqy> Will you help developing infrastructure that will power next decade Unix ?
04:15:08 <monqy> a bold claim for a bold attempt to unify the implementation of the core functionality of all Unix systems
04:17:05 <monqy> so did they get hello world 2 years ago and give up
04:17:23 <elliott> http://wonder-tonic.com/cageyourqueue/
04:17:26 <elliott> this is a good site
04:17:46 <pikhq> Repo says yes.
04:17:52 <elliott> http://wonder-tonic.com/cageyourqueue/
04:17:53 <elliott> this is a good site
04:17:58 <monqy> still a good site
04:17:59 <elliott> nobody say anything not related to it
04:19:09 <pikhq> My *goodness* libposix is sad.
04:19:17 <elliott> whats their source like
04:19:31 <pikhq> Oh, it's actually reasonable source code.
04:19:35 <pikhq> It just implements so very little.
04:19:37 <elliott> "the number of Nic Cage films on Netflix is declining"
04:19:38 <elliott> im crying
04:19:42 <elliott> maye i will have to buy it all
04:20:04 <elliott> over sixty films wow
04:20:10 <elliott> http://en.wikipedia.org/wiki/Nicolas_Cage#Filmography
04:20:10 <pikhq> I'd say it has every *trivial* libc function.
04:20:15 <elliott> needs to happen
04:20:46 <pikhq> Its malloc returns NULL.
04:21:05 <monqy> good job libposix
04:21:06 <elliott> http://en.wikipedia.org/wiki/Brubaker first nicholas cage movie
04:21:18 <pikhq> Just so very, very sad after having been doing stuff with musl.
04:21:56 <elliott> pikhq: itll be a very fast malloc
04:22:03 <elliott> if you have a manual pool allocator fallback things will still work
04:22:07 <elliott> and what professional programmer wouldn't
04:22:29 <pikhq> Eh, has the same O() as musl malloc, but musl malloc is more useful.
04:22:52 <elliott> oh god http://muppetswithpeopleeyes.tumblr.com/
04:22:56 <elliott> from the person who brought you cage your queue
04:23:20 <pikhq> Aaaah, musl. The libc I understand.
04:23:27 <monqy> muppets with people eyes is brilliant
04:23:33 <monqy> too bad it's dead :'(
04:23:35 <pikhq> Even its freaking ld.so is reasonable.
04:23:39 <elliott> http://wonder-tonic.com/books2barcodes/read.php?title=artofwar how fucking long is art of war
04:23:58 <elliott> monqy: maybe they did it to all the muppets
04:25:34 <pikhq> elliott: http://git.etalabs.net/cgi-bin/gitweb.cgi?p=musl;a=blob;f=src/ldso/dynlink.c;h=031e1f0f22f51ecabf8cb39638f7565e6e25c947;hb=HEAD
04:25:45 <monqy> muppets with people eyes also makes me think birds with arms, another brilliant innovation
04:25:59 <elliott> pikhq: why are you linking me to musl code
04:26:06 <monqy> it's not sad
04:26:21 <pikhq> elliott: Because it doesn't make me want to stab people.
04:26:26 <pikhq> It really doesn't.
04:26:44 <elliott> monqy: http://i.imgur.com/GsLB1.jpg actual ad
04:26:45 <pikhq> This is the highest praise I have to offer a C library.
04:26:53 <monqy> good ad
04:27:15 <monqy> ads like that make me wonder what's behind them
04:27:31 <elliott> money
04:27:34 <elliott> sorry, monqy
04:27:35 <monqy> ipods
04:27:59 <elliott> http://esoteric.voxelperfect.net/wiki/Alight this language is hilarious
04:28:05 <elliott> reversed cat example is pretty much perfect
04:29:40 <elliott> oh wow hes behind this game too http://wonder-tonic.com/cannibalism/
04:29:42 <elliott> which is a good game
04:29:51 <monqy> I remember that game
04:30:09 <monqy> good game
04:30:21 <elliott> any game called "resort to cannibalism" is good
04:33:59 <elliott> who the fuck writes things in 13/4
04:35:29 <elliott> http://208.87.32.71/landerbanners/he/hexham.com.jpg hexham
04:37:23 <monqy> why is that guy floating and why is he attacking that poor lady
04:37:59 <elliott> tigers in hexham
04:38:04 <monqy> good picture of a whatever that is licking its nose too
04:38:09 <elliott> tiggers and hammocks
04:38:10 <monqy> that's a tiger?
04:38:15 <elliott> yes total tiger
04:38:18 <elliott> total hexham.com.jpg
04:38:26 <monqy> do tiger noses taste good
04:38:30 -!- sebbu has quit (Ping timeout: 252 seconds).
04:38:33 <elliott> yes
04:38:37 <elliott> (no)
04:45:27 -!- sebbu has joined.
04:50:52 <elliott> im a tarball i space
04:51:34 -!- foocraft has quit (Ping timeout: 244 seconds).
04:51:45 -!- foocraft_ has joined.
04:51:58 <elliott> http://www.youtube.com/watch?v=Wm-O3FKFI74 first zepto game
04:53:56 <elliott> http://en.wikipedia.org/wiki/LSD_(video_game) oh i've reada bout this before
04:53:57 <elliott> amazing
04:54:37 <elliott> i love how annoying the walking is
04:54:57 <elliott> http://www.youtube.com/watch?v=TN7TLylDxqs this is amazing
04:55:12 -!- Slereah has joined.
04:55:20 <elliott> wow
04:55:23 <elliott> what is it even doing
04:55:35 <monqy> I've heard of that game
04:55:43 <elliott> trumpets
04:55:48 <elliott> this is amazing watch that video i just linked monqy it's wow
04:55:59 <monqy> face
04:56:29 <elliott> is this guy sinking as he walks
04:58:14 <monqy> trumpets
05:00:40 <elliott> http://www.youtube.com/watch?v=DDji5zhu1nc ending of that game
05:01:53 <elliott> haha does it really shake the controller JESUS OH MY GOD THAT IS TERRIFYING
05:01:55 <elliott> http://www.youtube.com/watch?v=0U2LV7320zA
05:01:56 <elliott> at forty seconsd
05:01:57 <elliott> fUCk
05:02:59 <monqy> wow what was that
05:03:44 <elliott> i need this game
05:04:32 <elliott> monqy: the worst thing is if you rewind a bit
05:04:37 <elliott> you can see that it isn't there before they look
05:04:44 -!- Zwaarddijk has quit (Ping timeout: 246 seconds).
05:05:24 -!- ineiros has quit (Ping timeout: 240 seconds).
05:05:40 <elliott> http://www.youtube.com/watch?v=SF55WLjljMQ wow
05:05:45 <elliott> is this the real soundtrack
05:05:46 <elliott> cant be
05:06:24 -!- ineiros has joined.
05:06:29 <elliott> http://torrentz.eu/search?f=LSD+dream+eulator
05:06:30 <elliott> tempting
05:10:11 -!- Zwaarddijk has joined.
05:10:28 -!- variable has joined.
05:24:37 -!- oerjan has quit (Quit: Good night).
05:39:49 -!- Slereah has quit (Read error: Connection reset by peer).
05:43:57 -!- _foocraft has joined.
05:47:14 -!- foocraft_ has quit (Ping timeout: 250 seconds).
05:48:02 <elliott> New! People widget
05:48:02 <elliott> These are the participants in this conversation. The details come from information that is already in your Contacts.
05:48:02 <elliott> You do not currently share a photo with recipients.
05:48:02 <elliott> Update your photo…
05:48:02 <elliott> Some actions, such as collapse/expand, are now icons to the right of the subject or can be found in the More menu in the toolbar.
05:48:05 <elliott> OK
05:48:07 <elliott> GMAIL QHT ARE YOU DOING STOP CHANGING
05:48:14 <elliott> google what is going on we need to talk
05:48:31 <coppro> what did they do this time?
05:48:39 <elliott> http://www.google.com/search?hl=en&source=hp&biw=1440&bih=761&q=help+why+is+google+changing&oq=help+why+is+google+changing&aq=f&aqi=&aql=undefined&gs_sm=e&gs_upl=1100l4107l0l27l16l0l8l0l0l732l1502l3-1.1.0.1l3
05:48:45 <elliott> help it in't sovligny mr ptobvlem
05:48:53 <elliott> coppro: i don't actually mind the changes its just fun to pretend i do
05:49:02 <elliott> http://www.google.com/search?hl=en&biw=1440&bih=761&q=help+no+stop+go+back&oq=help+no+stop+go+back&aq=f&aqi=&aql=undefined&gs_sm=e&gs_upl=24130l25946l0l22l14l0l7l0l0l205l993l1.5.1l7
05:49:08 <elliott> http://www.google.com/search?hl=en&biw=1440&bih=761&q=i+dont+like+you+any+more&oq=i+dont+like+you+any+more&aq=f&aqi=g10&aql=undefined&gs_sm=e&gs_upl=3269l4940l0l24l7l0l0l0l0l401l401l4-1l1
05:49:15 <elliott> it isn't doig hwat i say
05:49:53 <monqy> i told google to solve all of my problems
05:49:54 <monqy> and it didnt
05:50:22 <monqy> http://answers.yahoo.com/question/index?qid=20101128134505AAgjzqU but it did find me this gem
05:50:57 <elliott> If a man doesn't exist, he hasn't any problems, does it?
05:51:14 <elliott> considering replacing my wiki user page with that
05:52:47 <monqy> i wonder if mister braun did the suicide
05:53:04 <monqy> Sorry, we couldn't find who you were looking for
05:53:04 <monqy> This person may not exist, there may be a problem with the link or **gulp** their account has been suspended.
05:53:05 <elliott> he invented razors
05:53:07 <monqy> r.i.p.
05:53:13 <elliott> rip razors
05:53:17 <elliott> also, stereos,
05:53:24 <elliott> uM, wHAT ELSE DO BRAUN MAKE,
05:53:35 <elliott> Founder(s)Max Braun
05:53:35 <elliott> rip
05:55:16 <elliott> dear audacity, what kind of person is called nasca octavian paul
06:00:25 <olsner> the kind of person nasca octavian paul is, obviously
06:02:10 <elliott> ZynAddSubFX is a open source software synthesizer capable of making a countless number of instruments, from some common heard from expensive hardware to interesting sounds that you'll boost to an amazing universe of sounds.
06:02:10 <elliott> The project was started in March 2002 by Nasca Octavian Paul. He began to write ZynAddSubFX in order to create a synthesizer which could produce beautiful sounds, while being freely available to anybody who needs it.
06:02:57 <monqy> . . . from some common heard from expensive hardware to interesting sounds that you'll boost to an amazing universe of sounds.
06:03:00 <monqy> what
06:04:08 <elliott> you will
17:34:13 <Gregor> !sh df -h .
17:34:14 <EgoBot> ​/bin/df: Warning: cannot read table of mounted file systems: No such file or directory
17:34:23 <Gregor> Heh :P
17:34:27 <Gregor> I wonder if this'll work:
17:34:29 <Gregor> `run df -h .
17:34:33 <HackEgo> No output.
17:34:47 <Gregor> Well, anyway, there's space now X-P
17:44:21 <ais523> did you delete /var, or something silly like that?
17:47:12 <ais523> also, hmm, the latest big "hack" attempt was accidental, by Googlebot
17:48:24 <Vorpal> !sh echo "test"
17:48:25 <EgoBot> test
17:48:41 <Vorpal> ais523, what "hack"?
17:49:09 <ais523> apparently one of Groupon's subsidiaries posted their entire username/password index, without hashing or encryption, somewhere publicly indexable
17:49:18 <ais523> presumably by mistake, but it's a pretty silly thing to do
17:49:35 <ais523> about 300,000 entries
17:49:53 <ais523> and Googlebot just went and downloaded a copy, like it's supposed to, and started serving it to everyone
17:49:59 <Vorpal> heh
17:50:05 <elliott> thx googlebot
17:50:18 <Phantom_Hoover> ais523, Groupon?
17:50:29 <ais523> I haven't heard of them either
17:50:31 <Vorpal> why on earth wouldn't they use hash
17:50:39 <ais523> but apparently they're relatively major
17:50:53 <coppro> groupon is a pyramid scheme basically
17:50:58 <newsham> I cant hear the word "groupon" without thinking "raging groupon"
17:50:59 <Vorpal> I heard the brand name "Groupon" before, can't remember where, or what they do
17:51:00 <ais523> they're apparently in the middle of an IPO that values them at $15 billion
17:51:01 <coppro> that made a lot of money
17:51:20 <ais523> and the press think it's not an implausible value
17:51:54 <newsham> groupon is clever. trick unsophisticated businesses into taking a loss with the profits going to groupon.
17:52:10 <newsham> although it has a fatal flaw.. bankruptcy.
17:52:13 <ais523> how exactly does it work?
17:52:27 * ais523 checks wikipedia
17:52:36 <ais523> I predict about a 70% chance it'll have useful info explaining
17:52:40 <newsham> groupon gives businesses money up front, in exchange groupon is allowed to come up with some coupons and give them out to customers that cost the businesses money
17:53:22 <newsham> and groupon gets paid for this promotion, i think based on how many customers it delivers?
17:53:27 <coppro> http://www.knewton.com/blog/knewton/from-jose/2011/06/03/groupon-is-a-straight-up-ponzi-scheme/
17:54:12 <newsham> http://www.couponing101.com/wp-content/uploads/2010/10/gap-receipt.jpg
17:55:30 <ais523> hmm, the Ponzi scheme thing seems to refer to people investing in Groupon
17:55:51 <ais523> it seems beneficial for Groupon's customers (the companies) and Groupon's users, too
17:56:17 <coppro> It's not beneficial for the customers
17:56:21 <newsham> it sounds like groupon customers arent so happy, in general.
17:56:32 <coppro> because they give product away at a loss
17:56:34 <newsham> they get lots of business on unfavorable terms and are not translating well to repeat business
17:56:50 <coppro> and because the discount is so deep and can be repeated elsewhere, this does not create loyalty
17:56:54 <ais523> ah, I didn't realise the companies would be so stupid as to use lossmaking values for the discounts
17:57:04 <coppro> Groupon requirs it
17:57:06 <coppro> *requires
17:57:09 <ais523> I assumed the coupons would let the companies' customers buy at cost or slightly more
17:57:12 <ais523> requires? OK, that's silly
17:57:15 <Phantom_Hoover> RANDOM HILARIOUS NEWS OF THE DAY: my half-Japanese friend doesn't know what catgirls are.
17:57:25 <coppro> ais523: Or, well, 'negotiates'
17:57:30 <newsham> ais: thats where the cash upfront comes in.
17:57:35 <newsham> desperate companies take the deal
17:57:41 <newsham> then take a bath
17:57:44 <coppro> ais523: Strictly speaking, the typical rate is 50% discount, groupon gets hallf the money on a sale
17:57:46 <newsham> seems pretty predatory to me
17:57:53 <coppro> ais523: so the merchant is selling at 25%
17:57:57 <ais523> yep
17:58:17 <coppro> few merchants can sustainably sell at 25%
17:58:32 <ais523> I thought many businesses could actually afford 75% discounts from regular prices, on many products
17:58:35 <newsham> so what you need to do is form a company, form a groupon. declare bankruptcy, move to bahamas
17:58:41 <ais523> depending on the business, profit margins can be really high
17:58:51 <ais523> it doesn't make much sense if you have marrow margins
17:58:53 <ais523> *narrow
17:58:59 <ais523> newsham: do you benefit from this?
17:59:07 <ais523> it seems to hurt Groupon, but I don't see how it helps you
17:59:10 <coppro> High-elasticity products will have narrow margins
17:59:17 <Gregor> Narrow margins are fine if your throughput is huge.
17:59:19 <coppro> now, actual coupon users get a bargain
17:59:19 <newsham> ais: groupon gives you cash up front for your coupons
17:59:43 <ais523> ah
17:59:59 <coppro> ais523: Also, the margin is never all at the retail end
18:00:00 <newsham> can you see how this might be a little predatory? :)
18:00:06 <ais523> OK, I thought this was a sensible business model originally
18:00:10 <ais523> but the more I hear about it, the stupider it seems
18:00:18 <coppro> see? that's what they want investors to think
18:00:22 <coppro> "oh that sounds great here's my money"
18:00:37 <coppro> then just take advantage that rational actors have no influence on the market
18:00:39 <coppro> and WHEEEE
18:01:02 <newsham> must put a lot of stress on an industry.. all your competitors are getting cash up front for this great groupon tihng, your customers all shop next door for a few months, you take a loss, then your competitors take a loss
18:01:08 <newsham> then things go back to normal?
18:01:28 <newsham> for those few months your competitors all probably seem like geniuses
18:01:29 <ais523> I still don't think it's a pyramid scheme, though
18:01:37 <ais523> it's something else
18:01:40 <ais523> a different sort of scam
18:02:07 <coppro> ais523: it's a pyramid scheme in that it relies on untapped markets to get revenue in an unsustainable fashion
18:02:16 <coppro> when you run out of untapped markets, it collapses
18:02:26 <Phantom_Hoover> coppro, not a pyramid scheme.
18:02:33 <ais523> yep, that's a necessary condition to be a pyramid scheme, but not a sufficient one
18:02:40 <Phantom_Hoover> Pyramid schemes require exponential growth as well.
18:02:48 <coppro> They have that
18:02:51 <ais523> pyramid schemes rely on their members thinking that other people will join
18:03:06 <newsham> hmm.. does a pyramid scheme require exponential growth?
18:03:08 <ais523> groupon relies on the opposite
18:03:16 <newsham> couldnt you have a pyramid scheme with jsut n^2 growth? seems like it would work.
18:03:26 <ais523> newsham: in theory you can have a pyramid scheme that grows linearly in members and linearly in size of investment
18:03:31 <newsham> just has to be super linear, right?
18:03:38 <Phantom_Hoover> ais523, wouldn't be a pyramid scheme.
18:03:42 <ais523> but most people will notice it'll quickly collapse
18:03:47 <ais523> yep, not technically
18:03:52 <newsham> if its just linear how would you pay off early investors?
18:04:04 <Phantom_Hoover> Pyramid schemes require that investors profit by being paid off with new investors.
18:04:17 <Phantom_Hoover> So they almost always have a roughly fixed growth constant.
18:04:29 <ais523> newsham: investor 1 pays investor 0 $1, then investor 2 pays investor 1 $2, then investor 3 pays investor 2 $3, etc
18:04:32 <ais523> everyone makes a $1 profit
18:04:38 <ais523> except the last person to join
18:04:55 <ais523> but most people will notice that people will be unlikely to join that after a bit
18:05:11 -!- jcp has quit (Ping timeout: 244 seconds).
18:05:20 -!- jcp has joined.
18:06:44 -!- jcp|other has quit (Ping timeout: 244 seconds).
18:08:51 <newsham> ais: the amount of money is growing n^2 in that scheme, no?
18:10:12 <ais523> yep
18:10:20 <ais523> it's quadratic overall
18:10:30 <ais523> because two different things are growing linearly
18:10:43 <ais523> but the amount of money owed at any given time is O(n)
18:11:59 -!- javawizard has joined.
18:13:55 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
18:17:31 -!- Phantom_Hoover has joined.
18:37:19 -!- Sgeo has joined.
19:17:35 <Vorpal> elliott, there?
19:17:46 <elliott> no
19:17:54 <Vorpal> elliott, what about SSD optimisation stuff. What needs to be done to make the most out of an SSD
19:18:26 <elliott> literally nothing. you can set like two lvm flags to align the metadata, but that was relevant like
19:18:27 <elliott> a few years ago
19:18:31 <elliott> you might want to look into getting TRIM
19:18:33 <elliott> but apart from that
19:18:39 <elliott> keep calm and carry on, it'll be fine
19:18:53 <elliott> oh and the blog that had the lvm flag is now down, heh
19:18:55 <elliott> (ted t'sos)
19:18:56 <Vorpal> elliott, right, so those flags need not be set?
19:19:14 <elliott> Vorpal: you can do it if you want like
19:19:17 <elliott> half a millisecond
19:19:18 <elliott> but i would not bother
19:19:29 <Vorpal> elliott, what about wear with/without?
19:19:31 <elliott> that kind of thinking will lead to you avoiding upgrading the system because it would involve a write :)
19:19:35 <elliott> Vorpal: should be the same
19:19:38 <elliott> I can dreg up the flag anyway
19:19:45 <elliott> no harm at least
19:19:47 <Vorpal> thanks
19:20:09 <elliott> Vorpal: this may make using the debian installer harder though if you're going that route :D
19:20:23 <elliott> Vorpal: ok see http://web.archive.org/web/20090224074532/http://thunk.org/tytso/blog/2009/02/20/aligning-filesystems-to-an-ssds-erase-block-size/
19:20:31 <elliott> Vorpal: (ps use jfs)
19:20:37 <Vorpal> elliott, I went path of least resistance: reusing existing install of arch. At least to begin with
19:20:42 <elliott> jfs jfs jfs :D jfs
19:20:44 <Vorpal> elliott, finally what about TRIM?
19:20:49 <Vorpal> elliott, what about brtfs?
19:21:03 <elliott> Linux 2.6.33Feb 2010[20]Not all filesystems make use of TRIM. Ext4 and Btrfs are known to support it[21]
19:21:05 <elliott> Vorpal: btrfs is oracle-controlled
19:21:06 <elliott> and unstable
19:21:11 <elliott> to the point of "this may eat your data" right onw
19:21:24 <Vorpal> ah...
19:21:26 <elliott> Vorpal: I guess you can go with ext4 if TRIM is vital but note
19:21:32 <elliott> Vorpal: you can always reset the SSD to stock state
19:21:35 <elliott> with the special intel boot cd things
19:21:38 <elliott> and copy your data back
19:21:48 <elliott> so it's not like not having TRIM is a permanent crippling
19:21:49 <Vorpal> sounds like work. TRIM sounds like less work
19:22:00 <elliott> um you realise that it would take many years to get to a situation where TRIM would be relevant?
19:22:08 <elliott> by which point most fses will support it
19:22:15 <Vorpal> heh
19:22:20 <elliott> just saying that TRIM shouldn't matter much right now
19:23:04 <elliott> Vorpal: anyway, I wouldn't worry, I mean, I use an SSD with Linux after all :P
19:23:20 <elliott> No alignment, I doubt it does TRIM since my drive is Apple-only stuff
19:23:25 <elliott> Everything is ridiculously fast
19:23:26 <Vorpal> ah
19:23:43 <elliott> (OS X does TRIM as of late, but I never use OS X)
19:23:54 <elliott> tl;dr don't worry about it
19:26:54 <Vorpal> elliott, btw where did I say it was Intel?
19:27:00 <Vorpal> (it is, but why did you assume that?)
19:27:11 <Vorpal> bbl
19:27:30 <elliott> Vorpal: Because if it isn't, you're a fool, and it's pointless to bother microoptimising :P
19:27:49 <elliott> (He says, using a non-Intel SSD, but then Apple's SSD suppliers are Good.)
19:27:54 <elliott> (Not as good as Intel though.)
19:29:01 <Vorpal> pvs /dev/sdb2 -o+pe_start <-- blurgh, how do you even read that
19:29:14 <elliott> Vorpal: you realise that was written for the previous gen intel ssds btw?
19:29:16 <elliott> I wouldn't even bother
19:29:20 <Vorpal> elliott, yeah
19:29:31 <elliott> They're meant to have magic to make it have no effect anyway... SUPPOSEDLY
19:29:31 <Vorpal> elliott, I meant the option :P - AND + in one option
19:29:41 <elliott> I thought LVM was usable and simple and perfect
19:29:49 <elliott> Sorry, I misspelled gigantic headache.
19:39:52 <Vorpal> elliott, the LVM tools changed anyway, they align on 1 MB now it seems
19:40:05 <elliott> heh
19:40:19 <Vorpal> so it should work nicely
19:40:30 <Vorpal> elliott, now for the fs for /boot... hm
19:41:02 <Vorpal> elliott, be glad I didn't ask you about the hell that is GPT (which my system can boot, I just decide not to)
19:41:09 <elliott> what are you going for main partition?
19:41:33 <elliott> ext2 for /boot is probably the safest, because grub one can't boot JFS iirc, and you don't need journalling or anything
19:42:06 <Vorpal> elliott, well LVM, and /usr, /opt etc on that... /home and such on non-SSD anyway
19:42:16 <elliott> i was asking what iflesystem
19:42:18 <elliott> filesystem
19:42:21 <Vorpal> well
19:42:26 <Vorpal> elliott, I haven't decided yet
19:42:36 <elliott> have i mentioned jfs jfs jfs, thought that was quite relevant
19:42:43 <Vorpal> elliott, I had jfs corrupt my data before
19:42:54 <elliott> uh really? i kind of doubt jfs was the culprit
19:43:00 <elliott> i mean, it is IBM after all :D
19:43:25 <Vorpal> elliott, jfs didn't work well with vmware
19:43:34 <elliott> howso
19:44:01 <Vorpal> elliott, data corruption
19:44:09 <Vorpal> from what I heard it was blamed on jfs
19:44:33 <elliott> like, inside vmware?
19:44:37 <elliott> or running vmware vms on a jfs filesystem
19:44:53 <elliott> if the latter, seems fishy considering vmware's general quality :P
19:45:23 <Vorpal> elliott, having disk images on jfs paritions
19:45:31 <Vorpal> elliott, and the bug was found and fixed iirc
19:45:32 <Vorpal> in jfs code
19:45:38 <Vorpal> was a few years ago
19:45:45 <Vorpal> just saying, I'm no fan of jfs since then
19:45:47 <elliott> Seems unfair to hold it against JFS then, not like ext has never had bugs :P
19:45:57 <elliott> Unless you're gonna use a formally verified file system...
19:46:16 <Vorpal> elliott, ext had bugs yes. However a key difference is that they never corrupted data for me
19:46:30 <elliott> All down to chance :P
19:46:31 <Sgeo> "Also realize that modern science has figured out that apparently most, if not all, species on earth died during the ice age. And that human life forms seem to be the only one who survived, because human DNA has been found from before the ice age, that shows there were three different kinds of humans on earth, all very closely resembling the current human population. "
19:47:12 <Vorpal> whaaat
19:47:20 <Sgeo> http://www.smashwords.com/books/view/27558
19:47:29 <Vorpal> Sgeo, so.... things like horses would descend from us?
19:47:31 <Vorpal> or what
19:47:36 <Vorpal> that makes no fucking sense
19:47:43 <Vorpal> also fish etc
19:47:47 <Vorpal> and bacterias
19:48:12 <Sgeo> Vorpal, I think the idea is that all those things were after the ice age??... I have trouble understanding this silliness myself
19:49:04 <Sgeo> http://www.barnesandnoble.com/w/i-dont-believe-in-god-jesus-or-the-bible-gods-manual-on-atheism-and-other-religions-free-from-bondage-ministry/1029147114?r=1&if=N&cm_mmc=Store-_-k352219-_-j12871747k352219-_-Primary read this for the reviews
19:49:53 <Vorpal> mhm
19:50:40 <Sgeo> Vorpal, this is apparently a combination of the Garden of Eve story with "God made Angels first, they were like humans, and this was before the Garden of Eden"
19:51:05 * Vorpal goes back to carefully setting up the system
19:52:12 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/ica2j/does_a_fetus_have_brain_waves/
19:52:21 <Phantom_Hoover> Guessing abortion is going to come into this one.
19:53:21 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/ic5h6/how_do_gas_planets_work_ie_jupiter_nuptune_etc/
19:53:24 <Phantom_Hoover> Nuptune.
19:53:41 <Phantom_Hoover> Mighty Nuptune, Lord of the Ocuans.
19:55:05 <ais523> Phantom_Hoover: are you looking for stupid posts in that particular subreddit?
19:55:16 <ais523> or not necessarily stupid, but likely to attract idiots (which is not the same thing)?
19:55:38 <Phantom_Hoover> ais523, nah, it's just that things like this end up with a certain quantity of badly-formed questions.
19:56:00 <Vorpal> "abnormally abends" <-- what a lovely phrase (man mount, section on jfs)
19:56:20 <Vorpal> because abend means ending abnormally according to google
19:56:35 <elliott> So it abnormally ends abnormally?
19:56:51 <Vorpal> elliott, no no... "abnormally abnormally ends"
19:57:11 <elliott> Abnends.
19:57:16 <Vorpal> heh
19:57:36 <ais523> but "Abend" is german for "afternoon"
19:58:28 <Deewiant> No, "evening"
19:58:41 <Vorpal> http://en.wikipedia.org/wiki/Abnormal_end
20:00:17 <ais523> Deewiant: err, right
20:00:22 <ais523> I was even thinking "evening" as I typed that line
20:00:38 <ais523> and looked up when I saw your correction and found that I'd somehow written the wrong thing anyway
20:12:26 <Vorpal> elliott, man mkfs.ext4, check docs for -E discard/nodiscard
20:12:30 <Vorpal> both claim to be the default
20:12:31 <Vorpal> XD
20:13:01 <elliott> heh
20:17:21 <Vorpal> elliott, do this error look sane to you? "The resize maximum must be greater than the filesystem size."
20:17:37 <Vorpal> elliott, it doesn't to me, because I'm trying to go for the "equal" case
20:17:42 <Vorpal> and it gives me that
20:17:43 <elliott> Yes, because it allocates some space for it, IIRC
20:17:59 <Vorpal> elliott, well, I'm trying to go for the case of not being able to grow my /boot
20:18:09 <Vorpal> you see, I don't plan to resize /boot
20:18:23 <Vorpal> in fact since it is an MBR style partition, it would be a PITA
20:18:58 <elliott> Just choose a size slightly bigger, FFS
20:19:28 <Vorpal> elliott, well I did, but it still seems stupid :P
20:21:08 <Vorpal> Showing results for ZFS TRIM. Search instead for JFS TRIM.
20:21:11 <Vorpal> fuck you google
20:21:57 -!- oerjan has joined.
20:22:04 <Vorpal> elliott, ^
20:22:38 <elliott> Vorpal: you complain about jfs data loss
20:22:41 <elliott> Vorpal: and then go to use zfs?
20:22:42 <elliott> L M A O
20:22:51 <Vorpal> elliott, fail
20:22:55 <Vorpal> elliott, read what I said again
20:23:06 <Vorpal> elliott, I searched for JFS TRIM
20:23:08 <elliott> oh
20:23:09 <elliott> heh
20:23:12 <Vorpal> and it gave me ZFS TRIM
20:23:30 <elliott> yeah i don't think jfs supports TRIM yet
20:23:32 <elliott> hmm
20:23:33 <elliott> Vorpal: http://lwn.net/Articles/345020/
20:23:36 <elliott> found via http://www.mail-archive.com/jfs-discussion@lists.sourceforge.net/msg01486.html
20:24:15 <Vorpal> elliott, so ext4 it is
20:24:27 <elliott> Vorpal: um did you not read my link
20:24:42 <elliott> and also did you not listen when I said TRIM is really irrelevant for you and you can always retcon it on later if it gets added
20:25:42 <Vorpal> elliott, I did
20:25:46 <Vorpal> check it
20:25:56 <Vorpal> but lets see
20:26:15 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
20:26:20 <elliott> These basically scan for free blocks in a filesystem, and batch them together
20:26:20 <elliott> into huge DSM/TRIM commands to the drive, letting it know about them all for
20:26:20 <elliott> garbage-collection and wear-leveling purposes.
20:26:29 <Vorpal> elliott, using hdparm on jfs on top of lvm2... HRRM!
20:26:42 <elliott> But seriously, don't make an FS decision based on TRIM support, it's really irrelevant considering you can
20:26:53 <elliott> - wipe the drive and copy the fs back later if trim gets added
20:27:00 <elliott> - it won't make any difference at all for years and years anyway
20:27:26 <Vorpal> hm
20:28:35 <elliott> well you don't even have to wipe the drive
20:28:39 <elliott> you could just take advance of TRIM incrementally
20:28:44 <elliott> but if you wanted it to be like "TRIM all along"...
20:30:17 <Vorpal> hm
20:49:19 -!- elliott has quit (Remote host closed the connection).
20:49:24 -!- elliott_ has joined.
21:01:08 <olsner> I saw "abend" in the log ... I hope you were talking about abnormal ends of batch jobs
21:01:45 <olsner> (btw: batch is only one letter away from bitch)
21:02:09 <monqy> botch butch betch bytch
21:03:15 <elliott_> botch
21:03:18 <elliott_> bqodhthc
21:03:19 <elliott_> bqtch
21:03:22 <elliott_> bztch
21:03:23 <olsner> lawl: "protect yourself from net fraud with paypal" ... more like expose yourself
21:03:25 <elliott_> bltch
21:03:26 <elliott_> bptch
21:03:27 <elliott_> bbtch
21:03:29 <elliott_> bttch
21:03:45 <olsner> I've encountered net fraud exactly once, and it was paypal who stole my money
21:04:53 <elliott_> paypal creueueu
21:05:10 <olsner> paypal <french>?
21:06:59 <elliott_> oijod
21:07:56 -!- foocraft_ has joined.
21:09:32 <quintopia> /kick elliott_
21:09:48 <elliott_> im contributing intellectual
21:09:58 <elliott_> first i followed on with monqy, "themes on bach"
21:10:00 -!- _foocraft has quit (Ping timeout: 258 seconds).
21:10:07 <elliott_> then i was "paypal absurd moneyfraud extraordinphishaire"
21:10:09 <elliott_> phsyishying
21:11:28 <newsham> so long and thanks for all the phish
21:11:31 -!- Sgeo has quit (Ping timeout: 240 seconds).
21:15:00 <olsner> elliott_: oijod!
21:15:05 <elliott_> olsner: joisfj
21:15:23 <elliott_> /kick quintopia
21:15:25 <olsner> that looked like "oljud" during the first three (or so) looks
21:15:31 <olsner> which is swedish for noise
21:16:33 <olsner> (well, annoying noise - not-as-annoying noise has a different word)
21:18:13 -!- Patashu has joined.
21:32:52 <oerjan> oljad oljud
21:33:40 <olsner> oerjan: what's it in norwegian then?
21:34:02 <oerjan> what's what?
21:36:57 <olsner> what what?
21:37:10 <olsner> jag menar, vad heter "oljud" på norska?
21:37:18 <oerjan> ulyd
21:37:28 <elliott_> halló hvað er að gerast
21:37:44 <oerjan> elliott_: ikkje nåkka
21:38:00 <elliott_> Ég tala ekki það tungumál hvað er þetta hjálpa þar sem er eldfjalla minn: (
21:38:30 <elliott_> oerjan: (what does that mean?)
21:38:31 <olsner> hmm... having trouble with the tongues and the volcanoes, are we?
21:38:39 * oerjan wonders why elliott_ suddenly is talking about volcanoes
21:39:00 <elliott_> Ég er íslenskur maður við erum einföld höfum eldfjöll og einnig ís en ekki mikið meira og það er það sem er á Íslandi og
21:39:37 <oerjan> surely you must at least have polar bears
21:39:53 <olsner> can polar bears swim that far?
21:39:57 <elliott_> I. .. veit ekki: (
21:40:02 <elliott_> hjálp
21:40:24 <olsner> sure, they're on the north pole and all the way down lofoten(?), but iceland is quite far west of there
21:40:28 <oerjan> olsner: i vaguely recall a story about a polar bear making it to iceland a few years ago
21:40:45 <elliott_> Öll ísbirnir eru í Svalbard
21:41:01 <oerjan> øl er i alle fall øl
21:41:19 <elliott_> Hvað er bjór
21:42:05 <elliott_> hjálp hvernig að ég iceland
21:42:25 <olsner> fan vet jag, men öl är öl
21:42:45 <elliott_> hjálp hvað eru orð og, hvernig segi ég þá
21:43:15 <elliott_> Einnig gæti ég haft faðmlag ég er mjög langt frá Íslandi og þess vegna er ég hræddur við dauðann (þetta er íslenska leiðin;
21:43:49 * oerjan was a bit confused as he thought bjór was some inflection of björn
21:44:08 <elliott_> : (
21:44:16 <olsner> oerjan: it isn't?
21:44:30 <olsner> I just read that as "what is bear"
21:44:35 <elliott_> :D
21:44:39 <oerjan> nope, it's beer :P
21:44:46 <elliott_> what is bear
21:44:54 <olsner> elliott_: what is bear!?
21:45:08 <elliott_> Hvað er bera
21:45:23 <oerjan> elliott_: given the crazy _actual_ declination of björn, it's completely plausible at a glance :P
21:45:55 <elliott_> Hvað er Björn
21:46:33 <elliott_> oerjan: am i good icelandic
21:47:00 <olsner> maybe you should ask an icelander instead of a norwegian
21:47:04 <Deewiant> As good as your English
21:47:17 <oerjan> *declension
21:47:25 <elliott_> Deewiant: :D
21:47:37 <elliott_> Deewiant: how do you know, you're no icelanderic.
21:47:49 <elliott_> or do you know all those language things.
21:47:55 <olsner> icelandericishman
21:48:05 <oerjan> elliott_: i don't know enough icelandic to distinguish your sentences from grammatically correct ones
21:48:06 <Deewiant> "Hvað er Björn" just seems wrong
21:48:15 <Deewiant> Didn't really look at the rest
21:48:26 <elliott_> Deewiant: It's just S"What is Björn"
21:48:28 <elliott_> [asterisk]"
21:48:29 <elliott_> Supposedly
21:48:40 <olsner> "björn" seems unlikely to be the icelandic form of it
21:48:41 <Deewiant> Yes
21:48:52 <elliott_> it was a crosslingual boundarymunction
21:48:57 <oerjan> olsner: um björn _is_ icelandic for bear
21:49:01 <Deewiant> And that's like saying "what is elliott"
21:49:09 <olsner> oerjan: oh, weird
21:49:09 <Deewiant> Which isn't quite right
21:49:20 <olsner> because it's also swedish for bear
21:49:26 <oerjan> olsner: i was surprised too :P
21:49:32 <elliott_> Deewiant: It's right because that's what I typed in :P
21:49:34 <elliott_> To translate
21:49:37 <olsner> it's not supposed to be the same words ever, icelandic should be weird!
21:49:43 <Deewiant> elliott_: Hence "as good as your English"
21:49:44 <olsner> *weird*!
21:49:45 <oerjan> my first guess was that it would be bjónn
21:49:50 <elliott_> <oerjan> olsner: um björn _is_ icelandic for bear
21:49:54 <elliott_> um with the "?
21:49:58 <elliott_> Deewiant: :D
21:50:06 <Deewiant> elliott_: ZING
21:50:21 <elliott_> Deewiant: im hurt inside :(
21:50:21 <olsner> elliott_: icelandic quotes every word you know
21:50:30 <olsner> *"every" word
21:50:36 <elliott_> olsner: hshut up i did alt-{ space
21:50:57 <olsner> alt-8 space?
21:50:59 <Deewiant> elliott_: http://www.dailykitten.com/wp-content/uploads/2011/06/373-046.jpg
21:51:09 <elliott_> Deewiant: thank you
21:51:21 <olsner> hmm, or alt-Å space?
21:51:42 <olsner> or, of course, alt-altgr-7
21:52:19 <Vorpal> olsner, what?
21:52:32 -!- Sgeo has joined.
21:52:54 <olsner> Vorpal: indeed
21:53:16 <oerjan> do _not_ confuse with a different daily.*tten.com
21:53:17 <Vorpal> olsner, what OS? I just tried it here, and it does nothing (as I expected) :P
21:53:33 <olsner> Vorpal: not OS, keyboard layout
21:53:38 <olsner> (I tried all of them)
21:53:41 <Vorpal> olsner, okay what keyboard layout then
21:54:05 <olsner> except that alt-8 was based on misreading { as (
21:54:55 <olsner> alt+shift+key-right-of-p makes an alt-{ on an american layout (which is alt-Å on a swedish keyboard)
21:55:20 <olsner> and alt-altgr-7 makes alt-{ on a swedish keyboard
21:55:30 <olsner> if alt and altgr combine, that is
21:56:34 <Vorpal> olsner, ah
22:08:15 -!- copumpkin has joined.
22:20:46 <Vorpal> elliott_, that physical CPU meter was in my queue of videos, just watched it. awesome
22:23:44 <Phantom_Hoover> Vorpal, what physical CPU meter?
22:24:28 <Vorpal> sec
22:24:34 <Vorpal> Phantom_Hoover, http://www.youtube.com/watch?v=vgZEfExBBiY
22:25:08 <Phantom_Hoover> Is that thing actually measuring the current to the chip?
22:25:54 <Vorpal> Phantom_Hoover, I don't know
22:26:00 <Vorpal> Phantom_Hoover, probably not
22:26:14 <Vorpal> because adding a meter there would probably upset the chip badly :P
22:26:19 <Vorpal> and be hard to fit too
22:26:27 <elliott_> its done in software
22:28:49 <Phantom_Hoover> Aww.
22:28:54 * Phantom_Hoover → sleep
22:28:55 -!- Phantom_Hoover has quit (Quit: Leaving).
22:31:42 -!- elliott_ has quit (Quit: Leaving).
22:42:45 -!- Sgeo has quit (Ping timeout: 240 seconds).
22:43:08 <oerjan> > "abcabc"\\"a"
22:43:09 <lambdabot> "bcabc"
22:44:34 <monqy> :t (\\)
22:44:35 <lambdabot> forall a. (Eq a) => [a] -> [a] -> [a]
22:47:58 <newsham> > [1,2,3,4,5,6,7,8,9] \\ [5,3,11]
22:47:58 <lambdabot> [1,2,4,6,7,8,9]
23:02:08 <oerjan> grumble reddit is having one of those days
23:04:53 <oerjan> "502 Bad Gateway"? i guess that's more serious than the usual down message...
23:15:42 <CakeProphet> you must construct additional pylons.
2011-06-30
00:12:46 <Lymee> > [1..] \\ [1,2,3,4,5]
00:12:46 <lambdabot> [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,...
00:17:41 <ais523> [1..] \\ [2..]
00:17:44 <ais523> > [1..] \\ [2..]
00:17:48 <ais523> timeout, presumably
00:17:48 <lambdabot> mueval-core: Time limit exceeded
00:17:51 <ais523> although it would be amazing if it worked
00:18:29 <Lymee> It would be easy, wouldn't it.
00:18:41 <Lymee> Create a new infinite list which checks if the element is in the second list before yielding it.
00:18:50 <Lymee> Do a linear search which short circuits.
00:18:54 <Lymee> Is this hard in Haskell?
00:19:15 <Lymee> > [1..] \\ [2,4..]
00:19:19 <lambdabot> mueval-core: Time limit exceeded
00:19:22 <Lymee> Oh right.
00:19:31 <Lymee> If it doesn't exist, you end up with an infinite loop.
00:19:34 <Lymee> > [1..] \\ [1..]
00:19:38 <lambdabot> mueval-core: Time limit exceeded
00:28:44 <lifthrasiir> > let r = 1 : map (* 2) r in [1..] \\ r
00:28:51 <lambdabot> mueval-core: Time limit exceeded
00:29:03 <Patashu> why can't haskell do proper strength reduction!!!!
00:29:47 <oerjan> > let odiff [] _ = []; odiff l [] = l; odiff xss@(x:xs) yss@(y:ys) = case compare x y of LT -> x:odiff xs yss; EQ -> odiff xs ys; GT -> odiff xss ys in odiff [1..] [2,4..]
00:29:50 <lambdabot> [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,5...
00:30:11 <oerjan> Patashu: what?
00:30:15 <Patashu> nevermin
00:40:13 <Lymee> >[1,3..]
00:40:17 <Lymee> > [1,3..]
00:40:18 <lambdabot> [1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,5...
00:40:22 <Lymee> Do I win?
00:42:00 <ais523> I think you missed the point of the question
00:42:02 <oerjan> a very small trinket, perhaps.
00:52:01 <CakeProphet> oerjan: that above only works on ordered lists right?
00:52:14 <oerjan> yes, that was the idea
00:55:39 <oerjan> and it could fail on data types other than integers, if infinitely many elements of the first list are larger than all of the second infinite one
00:56:38 <oerjan> ...actually, if _any_ element of the first list is larger than all of the second one
00:57:13 <CakeProphet> ah, yes.
00:57:38 <oerjan> > let odiff [] _ = []; odiff l [] = l; odiff xss@(x:xs) yss@(y:ys) = case compare x y of LT -> x:odiff xs yss; EQ -> odiff xs ys; GT -> odiff xss ys in odiff [Left 10, Right 1] [Left n | n <- [1,3..]]
00:57:41 <lambdabot> mueval-core: Time limit exceeded
00:57:50 <CakeProphet> but if the second list is ordered in increasing order to infinity this is usually not the case, unless your data type has some sort of non-linear ordering.
00:58:13 <oerjan> CakeProphet: um that's what i meant by "non-integer"
00:58:25 <oerjan> and that was an example above
00:58:54 <oerjan> (technically that Left 10 should have got through, but i guess the timeout didn't keep the output)
01:00:32 <oerjan> also that's not non-linear, there are just two consecutive copies of the Integers.
01:00:39 -!- ais523 has quit (Remote host closed the connection).
01:01:45 <oerjan> > let odiff [] _ = []; odiff l [] = l; odiff xss@(x:xs) yss@(y:ys) = case compare x y of LT -> x:odiff xs yss; EQ -> odiff xs ys; GT -> odiff xss ys in odiff [-1/10 :: Rational, 1] [-1/n | n <- [1,3..]]
01:01:49 <lambdabot> mueval-core: Time limit exceeded
01:04:35 <oerjan> "The Soviet Soyuz 11 spacecraft suffered an uncontrolled decompression during reentry, killing cosmonauts Vladislav Volkov, Georgiy Dobrovolskiy and Viktor Patsayev—the only human deaths to occur in space."
01:05:18 <oerjan> so as far as we know, no human being has ever got _lost_ in space...
01:06:28 <quintopia> major tom did
01:06:40 <quintopia> his capsule knew which way to go, though
01:06:48 <quintopia> so he's probably alright
01:06:59 <oerjan> O KAY
01:08:31 <oerjan> so if i calculate correctly, today agora is an adult
01:08:45 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
01:08:51 <quintopia> 18 years old?
01:08:55 <oerjan> yeah
01:15:27 <augur> so finns
01:15:30 <augur> tell me about july 27th
01:20:07 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:21:33 -!- Vorpal has quit (Ping timeout: 240 seconds).
01:24:59 -!- zzo38 has joined.
01:26:51 <zzo38> Today I was trying to figure out how to switch the Linux console into codepage 437 (at FreeGeek). I eventually figured out but it was a bit difficult. It required using the dd command with another dd command in a ` ` piped to awk and other things like that.
01:27:00 <zzo38> Is there simpler ways?
01:46:29 <lifthrasiir> zzo38: i don't know; btw why do you need codepage 437?
01:50:01 <zzo38> lifthrasiir: Some programs use it (including NetHack) and I wanted to the Linux console using not unicode. I have root access on those machines but it can be configured to work on individual sessions easily using the way I have, so it won't affect anything anyone else does (especially if using X).
01:51:15 <zzo38> The way I did it required a command structure something like this: dd if=/dev/mem skip=`dd if=/dev/mem | od | awk`; consolechars
01:51:33 <zzo38> Note I omitted most of the command-line parameters
01:52:14 <zzo38> Actually, I also used echo -e
01:53:31 <zzo38> echo -e is required to send the codes to turn off unicode and it is also necessary to turn off the character mapping by using the "console chars" program.
01:54:12 <zzo38> However, at least it could be done without rebooting (some documents said you needed to reboot)
01:54:24 * pikhq is distro-shopping. Again.
01:55:08 <pikhq> Hmm. I wonder how usable NixOS is.
02:20:48 <CakeProphet> 55 usability points.
02:22:03 <CakeProphet> not satisfied with the usual ambiguities of degree in language, I seek to quantify everything with silly point systems.
02:27:39 <lifthrasiir> 10 ambiguity points.
02:27:51 <lifthrasiir> (silly point) systems or silly (point systems)?
02:28:39 <quintopia> i much like the former
02:28:44 <quintopia> silly points are the best
02:28:47 <monqy> silly ((silly point) systems)
02:29:29 <Lymee> -1 fake lisp points
02:30:43 <CakeProphet> it was more like ((((silly)) ((((point)) ((systems))))))
02:31:04 <CakeProphet> ()()()()()()()()()()()()()
02:31:20 <monqy> quite silly
02:31:54 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
02:31:55 <CakeProphet> in cases like the one quintopia likes, I usually hyphenate. silly-point systems.
02:32:25 <CakeProphet> unless it's just clear from context or whatever.
02:32:44 <oerjan> > 28e9/200000**(1/3)
02:32:45 <lambdabot> 4.787932650694753e8
02:33:25 -!- myndzi\ has quit (Ping timeout: 258 seconds).
02:34:56 -!- myndzi has joined.
02:42:33 -!- copumpkin has joined.
02:42:34 -!- copumpkin has quit (Changing host).
02:42:34 -!- copumpkin has joined.
02:44:18 -!- pumpkin has joined.
02:46:43 -!- copumpkin has quit (Ping timeout: 246 seconds).
02:47:13 <CakeProphet> > foldr' (*) 33 (replicate 99999999999 1)
02:47:14 <lambdabot> Not in scope: `foldr''
02:47:33 <CakeProphet> > foldr $! (*) 33 (replicate 99999999999 1)
02:47:34 <lambdabot> Couldn't match expected type `a -> b -> b'
02:47:34 <lambdabot> against inferred type `[...
02:47:49 <CakeProphet> :t foldr
02:47:50 <lambdabot> forall a b. (a -> b -> b) -> b -> [a] -> b
02:48:30 <oerjan> foldr' makes little sense as a direct recursion
02:48:47 <CakeProphet> this isn't about making sense!
02:48:57 <CakeProphet> it's about inefficient id functions
02:49:16 <oerjan> you'd have to reverse the list first to make it efficient without exhausting the stack
02:50:25 <oerjan> since (*) is strict, you can probably get the same result by just using foldr?
02:51:10 <CakeProphet> > foldr (*) 33 (replicate 99999999999 1)
02:51:11 <lambdabot> *Exception: stack overflow
02:51:25 <CakeProphet> unexpected.
02:51:40 <CakeProphet> > foldr (*) 33 (replicate 9999999 1)
02:51:40 <oerjan> now since (*) is also commutative, foldl' might be equivalent...
02:51:41 <lambdabot> *Exception: stack overflow
02:51:52 <CakeProphet> oerjan: but more efficient right?
02:52:16 <oerjan> well sort of, it won't overflow the stack...
02:52:26 -!- pumpkin has changed nick to copumpkin.
02:52:28 <oerjan> and can probably be optimized into a loop
02:52:38 <CakeProphet> > foldr (*) 33 (replicate 9999 1)
02:52:39 <lambdabot> 33
02:52:42 <CakeProphet> > foldr (*) 33 (replicate 999999 1)
02:52:43 <lambdabot> *Exception: stack overflow
02:52:45 <CakeProphet> > foldr (*) 33 (replicate 99999 1)
02:52:46 <lambdabot> 33
02:52:49 <CakeProphet> there we go.
02:54:07 <CakeProphet> > let id1 x = foldr (*) x (replicate 99999 1); id2 = (!!999999999999 . iterate id1;
02:54:08 <lambdabot> <no location info>: parse error on input `;'
02:54:10 <CakeProphet> oops
02:54:33 <CakeProphet> > let id1 x = foldr (*) x (replicate 99999 1); id2 = (!!999999999999) . (iterate id1) in id2 33
02:54:37 <lambdabot> mueval-core: Time limit exceeded
02:55:08 <CakeProphet> ..success. Time to write a library for inefficient chaining of inefficient id functions.
02:58:10 <oerjan> i have a hunch that that would have overflowed the stack if it actually got to finish building the thunks...
02:58:35 <oerjan> > let id1 x = foldr (*) x (replicate 99999 1); id2 = (!!999) . (iterate id1) in id2 33
02:58:38 <lambdabot> *Exception: stack overflow
02:58:41 <oerjan> yup
02:59:59 <pikhq> Apparently, NixOS does not currently install.
03:00:24 <oerjan> you can only have NixOS if you already have it. *MWAHAHAHAHA*
03:02:52 <Lymee> NixOS seems interesting.
03:02:55 <Lymee> I'd love to see how it turns out.
03:03:11 <Lymee> > let id1 x = foldl (*) x (replicate 99999 1); id2 = (!!999999999999) . (iterate id1) in id2 33
03:03:15 <pikhq> Yeah, it's a very clever concept.
03:03:20 <lambdabot> *E
03:03:29 <pikhq> But with a completely and utterly broken installer, I have to rate its usability as "0".
03:03:39 <pikhq> (estimation: locks up on boot in qemu)
03:03:43 <Lymee> "if you change the kernel, Nix will ensure that external kernel modules such as the NVIDIA driver will be rebuilt as well"
03:03:55 <coppro> welcome to every sane distroy
03:04:03 <Lymee> :c
03:04:43 <pikhq> coppro: What's more interesting about NixOS is that it makes it very, very difficult to break an install.
03:05:00 <pikhq> For instance, it is pretty much impossible for a library update to break packages.
03:05:15 <pikhq> Well. That's a feature of Nix, which NixOS uses. But you know what I mean.
03:05:54 <quintopia> wow, nix apparently is being developed on ARM
03:06:18 <Lymee> pikhq, sudo rm -rf /usr/lib
03:06:19 <Lymee> Done.
03:06:20 <Lymee> Broken
03:06:25 <quintopia> here's the thing that bothers me about it
03:06:29 <pikhq> Lymee: No such directory.
03:06:35 <Lymee> pikhq, sudo rm -rf /nix
03:06:57 <quintopia> since it never deletes old packages
03:07:00 <pikhq> Yesss, that would break it.
03:07:09 <quintopia> doesn't it slowly eat your storage up?
03:07:22 <pikhq> quintopia: You can call for a collection cycle.
03:07:24 <Lymee> quintopia, I assume it would have an "clean" command or something to manually purge things.
03:07:32 <Lymee> If they didn't think of it, I would be shockced.
03:07:34 <Lymee> shocked*
03:07:51 <pikhq> Thereby telling it to garbage collect any packages not currently referenced by a configuration.
03:07:57 <quintopia> pikhq: so like "delete all configurations before X"?
03:08:17 <pikhq> quintopia: No, you'd do "delete all configurations before X", and then "garbage collect".
03:08:28 <quintopia> ah
03:14:24 -!- azaq23 has quit (Ping timeout: 244 seconds).
03:17:00 * pikhq is so very tempted to NIH a distro.
03:17:05 <pikhq> This is not a good thing.
03:22:10 -!- zzo38 has quit (Remote host closed the connection).
03:27:42 <Lymee> I assume that installing Nix on an existing system is a bad idea.
03:32:43 <quintopia> why
03:32:43 <quintopia> y
03:32:58 <pikhq> Not really.
03:33:03 <pikhq> That's an intended use-case.
03:34:45 <quintopia> so
03:35:03 <quintopia> what if you get bad packages
03:35:12 <pikhq> Define "bad".
03:35:13 <quintopia> what if the maintainers fuck up your shit
03:35:25 <pikhq> Okay, so you have a bad package.
03:35:33 <pikhq> And?
03:35:46 <quintopia> yep and you need that package. it's the most important thing you need on your system
03:36:02 <quintopia> how hard is it to fix the build?
03:36:09 <pikhq> So, what you're saying is basically, "imagine that libc fucked up".
03:36:34 <quintopia> yes, or that the package that installs it fucks up or something
03:36:56 <pikhq> Only packages that depend on that specific package will be affected by it.
03:36:57 <quintopia> because packages here seem to be doing a lot more than traditional packages
03:37:09 <pikhq> All others will be depending on the previous libc.
03:38:08 <quintopia> do you think the userbase will be able to keep up with the demand for new packages?
03:39:36 <pikhq> Do you even understand how Nix works?
03:39:53 <pikhq> You're asking questions that make about as much sense as "What if the cat jumps over the moon?"
03:40:35 <quintopia> not completely, but i wouldn't be asking otherwise
03:40:52 <quintopia> but i do understand that a distro is only as good as its userbase
03:41:04 <oerjan> yeah everyone knows it's cows who do that
03:42:21 <pikhq> Okay, so each package has its files in /nix/HASH-pkgname/, where HASH is a cryptographic hash of all its dependencies concatenated (IIRC, things like "configuration settings" are part of that, and I know that build-time dependencies are)
03:42:49 <pikhq> Each package basically refers to files *in those directories*.
03:43:12 <pikhq> So, a package update literally cannot affect other packages unless those packages update.
03:48:07 <quintopia> yeah i got that much
03:48:21 <quintopia> i just wanted to know hard it would be to fiddle with a package
03:48:44 <quintopia> say "this package is broken, but i want this package, and the other users aren't fixing it"
03:49:08 <pikhq> No real problem.
03:49:55 <pikhq> Which packages are active (i.e. have symlinks in ~ for the sake of your PATH) is per-user.
03:50:11 <pikhq> You could just build your own packages, and voila.
03:50:13 <quintopia> and you say you can have multiple versions of the same package simultaneously. how much of a troubleshooting headache would this cause? seems like it would make the system dependency graph a bit hairier.
03:50:31 <pikhq> I don't see why.
03:51:07 <quintopia> because every time you want to fix something, you have to know which versions of which packages it depends on. is there a tool to make that easier?
03:51:26 <pikhq> Yeees, the package manager.
03:52:02 <pikhq> You don't maintain all this *manually*.
03:52:16 <quintopia> obviously, but that's what bothers me you know :P
03:52:43 <quintopia> it makes it harder for me to visualize the weak points in the system
03:53:18 <pikhq> You might wish to read up on the Nix expression language.
03:54:05 <quintopia> okay
04:01:05 -!- CakeProphet has quit (Ping timeout: 240 seconds).
04:15:14 -!- BeedaWeeda has joined.
04:18:59 <BeedaWeeda> do you think that if you were a kid and you were told growing up that jack and the bean stalk was religion that by the time you got older you would be defending jack and the bean stalk instead of jesus christ?
04:21:07 <monqy> sorry i dont religion
04:21:55 <coppro> ^
04:22:29 <pikhq> BeedaWeeda: No, because I do not defend the myth of IESVS.
04:23:01 <pikhq> But those who do? I'd certainly imagine so.
04:24:10 <pikhq> It is quite demonstrable that religious belief is primarily correlated with the beliefs of ones parents, followed quite closely by the common beliefs of the region.
04:24:19 <monqy> I'd imagine so too, though perhaps not as many
04:24:36 <pikhq> Well, yes; Jack and the Bean Stalk is a much less self-defending meme.
04:25:23 -!- derrik has joined.
04:26:45 -!- derrik has left.
04:27:01 -!- zzo38 has joined.
04:27:46 -!- BeedaWeeda has quit (Ping timeout: 244 seconds).
04:28:54 -!- BeedaWeeda has joined.
04:30:57 <BeedaWeeda> if you look back in history
04:31:08 <BeedaWeeda> in ancient civilizations
04:31:38 <BeedaWeeda> they had religious beliefs that are very similar to the ones commonly held today
04:31:43 <BeedaWeeda> they had saviors
04:31:45 <BeedaWeeda> messiahs
04:31:46 <BeedaWeeda> gods
04:31:51 <monqy> believable
04:31:57 <BeedaWeeda> and they denounced everyone elses gods
04:32:10 <BeedaWeeda> you can study this and see for yourself
04:32:18 <BeedaWeeda> it just proves that history repeats
04:32:43 <monqy> theory: people are silly
04:33:50 <coppro> proof:
04:34:29 <BeedaWeeda> did you guys see this months edition of national geographic?
04:34:53 <BeedaWeeda> it features that archaeological site in turkey they discovered some decades ago, gobekli tepe
04:34:57 <BeedaWeeda> its funny
04:35:05 <BeedaWeeda> because according to them
04:35:22 <BeedaWeeda> the site was built by primitive cave men, hunter gatherer type people
04:35:30 <pikhq> BeedaWeeda: No argument with that. It is *indeed* quite amusing that most current religious beliefs are very similar to ancient and dead beliefs.
04:35:36 <BeedaWeeda> but then you see
04:35:56 <BeedaWeeda> these huge pillars
04:36:05 <BeedaWeeda> very finely carved
04:36:25 <BeedaWeeda> very complex structures
04:36:47 <BeedaWeeda> they say the cavemen did this all on their own with some rope and logs
04:37:13 <BeedaWeeda> i held my head down in shame, i cant believe anyone could believe
04:37:33 <pikhq> More plausibly, it wasn't "cave men".
04:37:35 <BeedaWeeda> some primitive hunter/gatherer's could build a structure like tha
04:38:11 <pikhq> Such complex structures require, at a minimum, agriculture. Such that you can have people dedicated to such inessential crafts.
04:39:18 <BeedaWeeda> i think civilization goes back much further than is commonly believed in the scientific community
04:39:53 <pikhq> What makes you think that?
04:40:18 <pikhq> What's commonly believed in the scientific community is based upon evidence.
04:40:42 <BeedaWeeda> yes
04:40:55 <BeedaWeeda> but unfortunately in a lot of cases, that notion becomes dogma
04:42:40 <BeedaWeeda> is this an occult chatroom?
04:43:11 <pikhq> For instance, the origin of civilization is believed to be somewhere about 9500 BCE, because this is the approximate age of the oldest found sedentary, agricultural culture.
04:43:32 <pikhq> If we find an older such culture, then we can push the founding of civilization further back.
04:44:08 <pikhq> No, this is not an occult chatroom.
04:44:13 <coppro> "I don't put scientists on my committees. Give them more data and they'll just change their minds."
04:46:07 <quintopia> zzo38: where are you?
04:46:18 <quintopia> zzo38: i invoke your mystical power!
04:48:08 <zzo38> quintopia: I am at Canada.
04:48:17 <zzo38> What kind of mystical power are you trying to invoke?
04:48:39 <oerjan> whatever it was, i think it was successful
04:48:40 <quintopia> zzo38: BeedaWeeda is interested in Magic
04:49:28 <pikhq> quintopia: :D
04:49:30 <oerjan> as i was filled with zzo38 mystery at the moment i saw <zzo38> quintopia: I am at Canada.
04:52:24 <quintopia> `addquote <oerjan> as i was filled with zzo38 mystery at the moment i saw <zzo38> quintopia: I am at Canada.
04:52:25 <HackEgo> 475) <oerjan> as i was filled with zzo38 mystery at the moment i saw <zzo38> quintopia: I am at Canada.
04:52:50 <oerjan> i am not sure that works very well without context
04:52:56 <quintopia> anyone who sees that in the future will think it is two quotes
04:53:06 <quintopia> but that is the format that has been accepted
04:53:12 <quintopia> add context if you like
04:53:50 <oerjan> and then they will try to correct the spacing, and we must undo it
04:54:52 -!- Lymee has quit (Ping timeout: 258 seconds).
04:54:56 <quintopia> well you can delete it if you like too
04:55:02 <quintopia> but know that i also received the mystery
04:56:16 <BeedaWeeda> you mean magick
04:56:45 <BeedaWeeda> its interesting yea, but i wouldnt dedicate the time necessary to learn it
04:56:50 <zzo38> We very often have quotations without proper context so don't worry about it too much
04:56:53 <oerjan> with zzo38, it's mostly Magic
04:57:36 <oerjan> yeah but elliott has been known to delete them
04:57:48 -!- Lymee has joined.
05:08:00 -!- Vorpal has joined.
05:13:21 <zzo38> Let's play pokemon card: http://zzo38computer.cjb.net/textfile/miscellaneous/pokemon_card/puzzle.1
05:16:43 <zzo38> Can you do it?
05:20:29 <coppro> what is the goal?
05:21:42 <zzo38> coppro: Goal is win.
05:22:01 <zzo38> (Obviously)
05:22:04 -!- Lymee has quit (Ping timeout: 252 seconds).
05:22:47 <coppro> in one turn
05:22:49 <coppro> ?
05:22:50 <zzo38> Reload the file if necessary; I have clarified a bit
05:22:58 <oerjan> how would one make a game in which the goal was to lose, anyway
05:23:01 <coppro> ok
05:23:05 <zzo38> coppro: Yes, in one turn.
05:23:22 <zzo38> oerjan: Some chess puzzles might do that possibly (lose without resigning)
05:23:39 <zzo38> (I think in chess they are called "reflex mate")
05:25:19 <zzo38> coppro: Note that if you fail to win this turn, you will lose due to running out of cards!!
05:25:36 <coppro> zzo38: not if you restock your deck with garbage run
05:25:40 <coppro> zzo38: is it something other than gust of wind the porygon, move the damage from the hypno on to it, and then attack it?
05:26:25 -!- Vorpal has quit (Ping timeout: 250 seconds).
05:26:50 <zzo38> coppro: Yes. Doing that will knock out only one opponent's pokemon and you need to knock out 2 opponent's pokemons to win. Note opponent can knock you out in one turn you lose.
05:27:02 -!- Lymee has joined.
05:27:03 -!- Lymee has quit (Changing host).
05:27:03 -!- Lymee has joined.
05:27:30 <zzo38> You can restock your deck but it won't help much (opponent will probably knock you out; they have some cards you cannot see)
05:29:28 <zzo38> One hint: At the end of the game your hand will contain only the 2 cards you picked up from knocking out 2 of opponent's pokemons (what the cards are is irrelevant)
05:30:25 <coppro> oh right I forgot how prizes work
05:32:35 <zzo38> If you win, you make up a puzzle game of pokemon cards next.
05:32:51 <zzo38> (Actually you don't have to make up one if you don't want to)
05:34:44 <zzo38> Also, you cannot use CURSE to move damage from your own cards to opponent's cards. You can only move damage from one of opponent's card to another.
05:34:47 * pikhq has discovered a build system infinitely superior to Make.
05:34:52 <pikhq> I call it "/bin/sh".
05:35:10 <zzo38> pikhq: Yes that is what I use for my own programs.
05:36:27 <coppro> zzo38: can you please include pokemon's types somewhere?
05:36:32 <coppro> *pokemons'
05:36:56 <zzo38> coppro: They are included. That is what the "E:" means.
05:37:52 <coppro> zzo38: oh ok
05:38:03 <pikhq> time sh -c './configure && make'; 2.807 seconds.
05:38:06 <zzo38> (It is short for "Energy type")
05:38:14 <pikhq> time ./build.sh; 0.275 seconds.
05:38:30 <pikhq> Heck time make; 0.349 seconds
05:38:33 <coppro> zzo38: so why does "use power to move damage from hypno to porygon, retreat to hypno, gust of wind mr mime, attack and deal the extra damage to porygon" not work?
05:38:49 <coppro> pikhq: `Heck': command not found
05:38:52 <pikhq> (okay, okay, so time make -j3;0.180 seconds)
05:38:54 <pikhq> coppro: XD
05:40:24 <pikhq> If we decide to permit use of GNU parallel:
05:40:44 <zzo38> coppro: Yes, it doesn't work. For one thing, you cannot use CURSE to move damage from your cards to opponent's cards.
05:41:32 <pikhq> ... 0.406 seconds.
05:41:39 <zzo38> Actually I found an error in my text which I have now corrected. Opponent should have *two* of MR. MIME cards.
05:41:40 <pikhq> GNU parallel is slower than I'd like.
05:43:29 <coppro> zzo38: I mean from my opponent's hypno... oh
05:43:41 <coppro> oh wait, the damage is on the dark muk
05:43:42 <zzo38> Opponent has no HYPNO.
05:43:43 <coppro> I meant the dark muk
05:43:52 <zzo38> Yes, DARK MUK, that makes sense.
05:44:11 <zzo38> Still, I have correct it and now opponent has two MR. MIME cards, so what you say won't work.
05:44:34 <zzo38> (Please reload the file)
05:44:35 <coppro> then I would use gengar's power, use gust of wind, use itemfinder to get back goop, play goop, and then retreat and attack
05:45:00 <zzo38> coppro: Note that ITEMFINDER requires two other cards in your hand in order to do so.
05:46:34 <coppro> zzo38: does it?
05:46:38 <coppro> it doesn't say that it does
05:46:58 <zzo38> Another typo, thanks I will correct it.
05:47:23 <coppro> ah ok
05:49:10 <zzo38> I corrected that typo too, please reload the file.
05:49:43 <coppro> aha!
05:50:09 <coppro> I'm not sure what the garbage run and bill are for
05:50:39 <zzo38> Some of the cards that do not say "irrelevant" can still be irrelevant.
05:50:44 <coppro> oh ok
05:51:08 <coppro> but I would go with: use my power to put the damage on porygon. gust of wind so that dark muk is active. retreat the gengar to the spearow; retreat the spearow to the hypno paying the two recycle energies, getting them in hand
05:51:28 <coppro> itemfinder discarding them to get back the goop gas attack, use it, attack dealing 6 damage to dark muk and 1 to porygon, giving two kos
05:51:40 <zzo38> coppro: Yes, good! That is correct.
05:52:43 <coppro> I, sadly, am not very good at puzzle composition
05:52:52 <coppro> much less with Pokemon cards, which I haven't played with in a long time
05:53:19 <coppro> also when you say old-style rules, what has changed?
05:53:35 <zzo38> coppro: I don't know what has changed actually, sorry.
05:54:55 <coppro> ok
05:55:13 <coppro> I was not under the impression that there were any major rules changes
05:56:56 <zzo38> Yes, this puzzle is in one such case where opponent's cards can be helpful to you!!
05:57:31 <coppro> Yes, that's quite often the case
05:58:30 -!- oerjan has quit (Quit: Good night).
06:00:26 <coppro> at least in Magic
06:01:37 <zzo38> coppro: Yes, in Magic: the Gathering such things are more common.
06:28:38 -!- VanillaIsotope has joined.
06:31:29 <VanillaIsotope> http://i299.photobucket.com/albums/mm295/umar_sajjad/PSY/gifpsy.gif
06:32:44 <zzo38> VanillaIsotope: What is that picture for?
06:32:57 <VanillaIsotope> to show you guys how i feel
06:33:06 <VanillaIsotope> ;)
06:33:18 <zzo38> OK
06:33:27 <VanillaIsotope> Well, especially after every chakra is opened
06:33:32 <VanillaIsotope> thats how I feel
06:33:45 <VanillaIsotope> Especially after doing the breath of fire
06:34:00 <VanillaIsotope> ;)
06:34:44 <coppro> wonky
06:35:08 <VanillaIsotope> pranyama is good for you :D
06:40:53 <VanillaIsotope> http://psychedelic-information-theory.com/
06:42:27 <VanillaIsotope> http://psychedelic-information-theory.com/toc.php
07:01:41 -!- monqy has quit (Quit: hello).
07:02:37 <pikhq> Y'know, the miracles of Jesus really do reflect the time that the gospels were written in.
07:02:46 <pikhq> I mean, curing blindness and leprosy?
07:02:54 <pikhq> Sure, that may have been impressive back then.
07:03:33 <pikhq> But we can replace human vision, and leprosy is a probable target for extinction in the next, oh, 50 years.
07:04:15 <pikhq> It's all a bunch of things that a bunch of 0 CE Jews would've thought impressive.
07:04:39 <pikhq> Most of which a well-prepared time traveller could have pulled off.
07:05:07 <zzo38> Yes, they would call it impressive. Time traveller might be able to do it except that probably time travel cannot be done that way anyways.
07:05:09 <Lymee> Jesus as a time traveler?
07:05:11 <Lymee> Win.
07:05:30 <zzo38> I do not believe time travel can be done that way.
07:05:35 <Lymee> Starting Christianity?
07:05:36 <Lymee> Not so much.
07:06:00 <pikhq> We can even improve the amount of miracles doable if we allow for clever tricks to make it *appear* that the miracle happened, rather than actually doing it.
07:06:47 <pikhq> Not going to be able to handle the "rose from the dead" thing without a suicidal double, though.
07:07:50 <zzo38> pikhq: Yes you can figure out such kind of clever tricks, possibly, maybe. It might work. But I doubt the time travel idea will work.
07:08:45 <pikhq> zzo38: I am not proposing this as something someone should/could do.
07:08:53 <pikhq> Just as something to think about.
07:09:09 <pikhq> Ones thoughts need not actually be possible. ;)
07:09:15 <pikhq> s/Ones/One's/
07:09:17 <zzo38> pikhq: Yes, it is at least something to think about.
07:10:32 <Lymee> pikhq, "rise from the dead?"
07:10:46 <Lymee> Depends on the level of technology.
07:10:55 <Lymee> If you have, say, brain transfers?
07:11:06 <pikhq> Ah, true. I was merely discussing present technology.
07:11:22 <Lymee> Hmm....
07:11:25 <pikhq> If we allow for future but plausible technology, then bam.
07:11:48 <pikhq> The gospels could then be interpreted as a time traveller playing god.
07:12:16 <Lymee> If Jesus was a time traveler, wouldn't the Bible already exist in their time?
07:12:19 <Lymee> Or something.
07:12:23 <Lymee> Gah time travel.
07:15:23 <zzo38> I doubt time travel can work that way. The laws of physics are not to be broken (it is OK to be bent slightly, though). The Old Testament probably already exist in their time, not the New Testament. But even if it is the case they wouldn't have necessarily brought it back in time with them!
07:16:11 <coppro> obligatory: wibbly wobbly
07:16:52 -!- CakeProphet has joined.
07:16:53 -!- CakeProphet has quit (Changing host).
07:16:53 -!- CakeProphet has joined.
07:23:07 -!- CakeProphet has quit (Ping timeout: 276 seconds).
07:47:18 <zzo38> repo.or.cz seems some problem I cannot edit the project settings.
07:47:53 <pikhq> http://aya.shii.org/wp-content/uploads/2011/06/chinabisyoujo10.jpg
07:47:59 <pikhq> The image is not doctored.
07:48:17 <pikhq> The person, obviously, is.
07:50:57 <coppro> O_O
07:51:12 <coppro> that is disturbing
07:51:49 <pikhq> Would it make you feel better to realise that it's a combination of heavy makeup, contacts, and bizarre camera angles on someone with slightly odd proportions?
07:52:09 <coppro> yes
07:52:35 <coppro> it's still disturbing
07:52:57 <pikhq> Well, yes, it is in the uncanny valley.
07:53:16 <coppro> I do feel better than there is no plsatic surgery involved
07:53:54 <coppro> that was my first reaction
08:05:38 <zzo38> I tried to make the Redmine tracking system for TeXnicard, so that now you can post issue report, document, wiki, forum, etc. There are some things isn't very good but at least it can work. However I might have done some things wrong too. https://devlabs.linuxassist.net/projects/texnicard
08:07:06 <zzo38> Maybe I did it wrong I don't know
08:08:20 <zzo38> pikhq: Yes I did when I saw the picture, must think it must be some combination of makeup, contacts, camera angle, odd proportions, etc
08:08:45 <pikhq> Still fucking creepy.
08:09:48 <zzo38> pikhq: Is that what you think?
08:13:06 -!- jcp|other has joined.
08:14:57 -!- javawizard has quit (Ping timeout: 258 seconds).
08:15:23 -!- jcp has quit (Ping timeout: 260 seconds).
08:16:08 <coppro> zzo38 thinks differently, not that it is a bad thing. It's actually quite interesting to watch zzo38 think.
08:16:38 <pikhq> zzo38: It's "uncanny valley" kind of creepiness.
08:17:05 <pikhq> Nothing *inherent*, just the picture triggering my brain into going "WTF THATS NOT RIGHT".
08:17:43 -!- BeedaWeeda has quit (Quit: The internet is full, go away.).
08:21:33 -!- jcp has joined.
08:23:44 <VanillaIsotope> do u guys like my jewfro
08:23:47 <VanillaIsotope> http://ak0.okccdn.com/php/load_okc_image.php/images/16/150x150/558x800/0x39/675x714/0/5208418447782484391.jpeg
08:44:39 <Lymee> pikhq, it has not fallen that low yet.
08:45:30 -!- foocraft_ has quit (Excess Flood).
08:46:14 -!- foocraft_ has joined.
08:57:29 -!- VanillaIsotope has quit (Quit: wrong button).
09:18:10 <zzo38> Make a pokemon card puzzle involving the "IMAKUNI?" card.
09:18:34 <coppro> imakuni?
09:19:35 <zzo38> Your active pokemon is now confused. Imakuni? wants you to play him as a basic pokemon but you can't. A strange creature not listed in the pokedex, he asks people "Who is cuter, Pikachu or me?"
09:20:32 <coppro> what
09:20:36 <coppro> link
09:21:02 -!- aloril has quit (Ping timeout: 258 seconds).
09:21:04 <zzo38> I have no link sorry
09:22:34 <zzo38> This card is only in Japan and in Pokemon Card Gameboy
09:23:33 <coppro> http://bulbapedia.bulbagarden.net/wiki/Imakuni%3F_(CoroCoro_promo)
09:23:51 <zzo38> It is, as far as I know, the only trainer card in the game that Pokemon Card Gameboy lets you play even if it would have no effect (where discarding cards from your hand does not count as an "effect" but shuffling your deck does count)
09:26:28 <coppro> huh
09:34:46 -!- aloril has joined.
09:47:19 -!- Vorpal has joined.
09:47:19 <zzo38> In addition to IMAKUNI? card, I would like to see RAINBOW ENERGY used in some pokemon card puzzle.
09:49:55 <zzo38> RAINBOW ENERGY: Can be used as any kind of energy but causes 1 point of damage to the card it is attached to when you play this energy card to attach.
09:58:45 -!- myndzi has quit (Remote host closed the connection).
09:59:50 -!- mr45 has joined.
10:00:02 -!- mr45 has left.
10:00:23 <zzo38> Make some puzzle involving knock out all six of opponent's pokemons and five of your own, all on the same turn. Is it possible somehow?
10:02:30 <zzo38> Make one where the game lasts multiple turns (maybe you have seen the opponent's cards already somehow)
10:05:18 -!- zzo38 has quit (Remote host closed the connection).
10:08:35 -!- myndzi has joined.
11:35:34 <Vorpal> aiee, grub has a different device map when booting and when running grub-install
11:35:35 <Vorpal> gah
11:49:37 -!- CakeProphet has joined.
11:49:37 -!- CakeProphet has quit (Changing host).
11:49:37 -!- CakeProphet has joined.
11:56:37 <Vorpal> the hell /dev/md1 got renamed to /dev/md126 somehow
11:56:41 <Vorpal> hell,*
12:10:54 <CakeProphet> how do I convert hex to byte value in Haskell?
12:16:20 <Deewiant> > read "0xff" :: Int
12:16:20 <lambdabot> 255
12:16:49 <CakeProphet> oh.. :)
12:20:38 <Deewiant> > readHex "ff"
12:20:38 <lambdabot> [(255,"")]
12:49:04 -!- derrik has joined.
12:49:30 -!- derrik has left.
12:58:29 -!- BeholdMyGlory has joined.
12:59:45 -!- azaq23 has joined.
13:03:48 <CakeProphet> it would be cool if we used hex instead of decimal.
13:04:14 <CakeProphet> > 16 ** 3
13:04:15 <lambdabot> 4096.0
13:04:32 <CakeProphet> > map (16 **) [1..]
13:04:33 <lambdabot> [16.0,256.0,4096.0,65536.0,1048576.0,1.6777216e7,2.68435456e8,4.294967296e9...
13:04:40 <CakeProphet> > map (16 ^) [1..]
13:04:41 <lambdabot> [16,256,4096,65536,1048576,16777216,268435456,4294967296,68719476736,109951...
13:04:58 <CakeProphet> we could rarely need more than 5 digits to really talk about most things.
13:07:56 <CakeProphet> same with scientific communication if you employ scientific notation. Though I guess the same could be said about decimal, since then the only thing that matters is your precision.
13:08:07 <Deewiant> > iterate (*16) 1
13:08:07 <lambdabot> [1,16,256,4096,65536,1048576,16777216,268435456,4294967296,68719476736,1099...
13:10:13 <CakeProphet> not really very different in elegance. I guess it's more efficient.
13:12:47 <Deewiant> Aye, but I think it's less more efficient than I first thought
13:13:38 <Deewiant> I think both do a number of multiplications that's linear in the length of the list
13:18:45 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:19:15 <CakeProphet> @pl fibs = 0:1:zipWith (+) fibs (tail fibs)
13:19:15 <lambdabot> fibs = fix ((0 :) . (1 :) . ap (zipWith (+)) tail)
13:19:29 <CakeProphet> how... beautiful?
13:20:17 <CakeProphet> I guess that actually is a nice definition.
13:21:07 <CakeProphet> oh okay, now I see how ap makes sense...
13:21:09 <CakeProphet> :t ap
13:21:09 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
13:21:22 <CakeProphet> for functions, anyways.
13:21:24 <Deewiant> > fix ((0:) . scanl (+) 1)
13:21:26 <lambdabot> [0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946...
13:22:37 <CakeProphet> @pl (n:) . ap (zipWith f) tail
13:22:37 <lambdabot> (n :) . ap (zipWith f) tail
13:22:46 <CakeProphet> @pl scanl f n = (n:) . ap (zipWith f) tail
13:22:46 <lambdabot> scanl = flip ((.) . (:)) . (`ap` tail) . zipWith
13:22:59 <CakeProphet> ...right?
13:24:18 <Deewiant> @check \n xs -> scanl (+) n xs == ((n:) . ap (zipWith (+)) tail) xs
13:24:18 <lambdabot> "Falsifiable, after 1 tests:\n-3\n[3,0,-3]\n"
13:24:58 <CakeProphet> oh. I just took what you replaced with scanl (+) 1
13:25:04 <CakeProphet> and assumed they were equivalent.
13:25:16 <Deewiant> They're not :-)
13:27:28 <CakeProphet> @check \xs -> scanl (+) 1 xs == ((1:) . ap (zipWith (+)) tail) xs
13:27:29 <lambdabot> "Falsifiable, after 1 tests:\n[-1,-2]\n"
13:30:12 <CakeProphet> > let fibs = -1 : 1 : zipWith (+) fibs (tail fibs) in take 10 fibs
13:30:13 <lambdabot> [-1,1,0,1,1,2,3,5,8,13]
13:30:22 <CakeProphet> I went one step back. :)
13:31:00 <Deewiant> > take 10 $ fix ((-1:) . scanl (+) 1)
13:31:02 <lambdabot> [-1,1,0,1,1,2,3,5,8,13]
13:31:45 <CakeProphet> but really you could do that with any n and -n pair so... it's not really unique or anything.
13:32:26 <CakeProphet> I don't really know if you could coherently go "backwards" from 0 in the fibonacci sequence.
13:32:40 <CakeProphet> -s
13:33:08 <Deewiant> > take 10 $ fix ((-1:) . scanl (+) 0)
13:33:10 <lambdabot> [-1,0,-1,-1,-2,-3,-5,-8,-13,-21]
13:33:25 <Deewiant> > take 10 $ fix ((0:) . scanl (+) (-1))
13:33:27 <lambdabot> [0,-1,-1,-2,-3,-5,-8,-13,-21,-34]
13:33:36 <CakeProphet> > let fibs = 2 : -1 : zipWith (+) fibs (tail fibs) in take 10 fibs
13:33:37 <lambdabot> [2,-1,1,0,1,1,2,3,5,8]
13:33:52 <CakeProphet> > let fibs = -3 : 2 : zipWith (+) fibs (tail fibs) in take 10 fibs
13:33:53 <lambdabot> [-3,2,-1,1,0,1,1,2,3,5]
13:34:36 <CakeProphet> well you you can just alternate sign as you count up in absolute value.
13:35:05 <CakeProphet> er wait
13:35:26 <CakeProphet> > let fibs = 5 : -3 : zipWith (+) fibs (tail fibs) in take 10 fibs
13:35:27 <lambdabot> [5,-3,2,-1,1,0,1,1,2,3]
13:36:18 <CakeProphet> > let fibs = -8 : 5 : zipWith (+) fibs (tail fibs) in fibs
13:36:19 <lambdabot> [-8,5,-3,2,-1,1,0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,...
13:37:14 <CakeProphet> so it's actually just the original fibonacci sequence but in reverse and with alternating signs.
13:37:54 <CakeProphet> -gasp- amazing.
13:40:10 <CakeProphet> > let fibs = 55 : -34 : zipWith (+) fibs (tail fibs) in fibs
13:40:10 <lambdabot> [55,-34,21,-13,8,-5,3,-2,1,-1,0,-1,-1,-2,-3,-5,-8,-13,-21,-34,-55,-89,-144,...
13:40:26 <CakeProphet> > let fibs = -55 : 34 : zipWith (+) fibs (tail fibs) in fibs
13:40:26 <lambdabot> [-55,34,-21,13,-8,5,-3,2,-1,1,0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,...
13:41:55 <CakeProphet> alternating the sign correctly is important. Otherwise you'll end up with the negative Fibonacci sequence. He's a real curmudgeon.
13:44:53 <CakeProphet> > let fibs = -55 : 34 : zipWith (+) fibs (tail fibs) in foldl1 (+) $ take 21 fibs
13:44:53 <lambdabot> 110
13:46:41 <CakeProphet> sum of the odd elements..
13:46:52 <CakeProphet> from the first 11 numbers.
13:47:03 <CakeProphet> er, 10
13:47:25 <CakeProphet> > let fibs = -55 : 34 : zipWith (+) fibs (tail fibs) in foldl1 (+) $ take 20 fibs
13:47:26 <lambdabot> 55
13:48:06 <CakeProphet> heh
13:49:13 <CakeProphet> > let fibs = 89 -55 : zipWith (+) fibs (tail fibs) in foldl1 (+) $ take 23 fibs
13:49:17 <lambdabot> mueval-core: Time limit exceeded
13:49:40 <CakeProphet> > let fibs = 89 : -55 : zipWith (+) fibs (tail fibs) in foldl1 (+) $ take 23 fibs
13:49:41 <lambdabot> 288
13:49:48 <CakeProphet> > let fibs = 89 : -55 : zipWith (+) fibs (tail fibs) in foldl1 (+) $ take 22 fibs
13:49:49 <lambdabot> 199
13:49:57 <CakeProphet> yeah, just a coincidence...
13:51:30 -!- Gregorrrrr has joined.
13:53:14 <CakeProphet> iterate (putChar 'y' >>) $ return ()
13:53:56 <CakeProphet> or you know, just forever (putChar 'y') or something
13:54:53 <CakeProphet> or fix (putChar 'y' >>) I believe would work.
13:57:05 <Gregorrrrr> Blap
13:57:49 <CakeProphet> so many ways to affirm.
14:19:01 -!- jcp has quit (Ping timeout: 246 seconds).
14:19:21 -!- jcp has joined.
14:21:32 -!- jcp|other has quit (Ping timeout: 264 seconds).
14:25:06 -!- copumpkin has joined.
14:25:06 -!- copumpkin has quit (Changing host).
14:25:07 -!- copumpkin has joined.
14:25:37 -!- javawizard has joined.
15:18:59 -!- Gregorrrrr has quit (Ping timeout: 252 seconds).
15:21:32 -!- Lymee has quit (Ping timeout: 264 seconds).
15:39:46 -!- zzo38 has joined.
15:40:56 <zzo38> Probably the reason my repo.or.cz password stopped working is someone reset it.
15:46:05 <zzo38> Now I reset it by myself too and now it works.
16:04:24 -!- augur has quit (Remote host closed the connection).
16:15:51 <zzo38> Did I put enough issue categories in here? https://devlabs.linuxassist.net/projects/texnicard/issues/report
16:16:23 <zzo38> Is there any one I forgot?
16:35:52 -!- Phantom_Hoover has joined.
16:35:59 <Phantom_Hoover> http://www.reddit.com/r/AskReddit/comments/ic80s/whats_an_extremely_controversial_opinion_you_hold/c22p825?context=3
16:36:09 <Phantom_Hoover> Pictured: perspective.
16:36:19 -!- MigoMipo has joined.
16:36:42 <Vorpal> Phantom_Hoover, the pistons in mc 1.7 are cool btw
16:36:49 <Vorpal> in case you didn't notice, it is out
16:44:19 <Phantom_Hoover> Vorpal, so yeah, pistons are cool, but I can't really think of an original use offhand.
16:44:55 <Phantom_Hoover> Holy crap Painterly is updated already.
16:52:44 <Phantom_Hoover> And MC.net is down. As ever.
16:57:15 <Phantom_Hoover> Hey, Vorpal, can I have your bin directory?
17:08:06 <Vorpal> Phantom_Hoover, I haven't updated yet, I'm running thermal stress test on my new computer
17:08:12 <Vorpal> if you want 1.6 I can give it however
17:08:50 <Vorpal> and wow, this GPU fan is quiet
17:22:44 -!- augur has joined.
17:40:48 -!- ais523 has joined.
17:42:14 -!- zzo38 has quit (Remote host closed the connection).
18:09:21 -!- monqy has joined.
18:35:33 -!- aloril has quit (Ping timeout: 240 seconds).
18:47:42 -!- NihilistDandy has joined.
18:48:56 -!- aloril has joined.
18:55:26 -!- copumpkin has quit (Ping timeout: 240 seconds).
18:56:05 -!- copumpkin has joined.
18:56:06 -!- copumpkin has quit (Changing host).
18:56:06 -!- copumpkin has joined.
19:29:38 -!- oerjan has joined.
19:30:23 <Phantom_Hoover> oerjan!
19:31:10 <oerjan> evening
19:33:24 <Phantom_Hoover> Phantom_Hoover, actually.
19:33:50 -!- Phantom_Hoover has changed nick to evening.
19:40:22 <oerjan> <Deewiant> I think both do a number of multiplications that's linear in the length of the list
19:40:45 <oerjan> surely the map (16^) and map (16**) duplicate work more...
19:41:21 <Deewiant> ** does, but ^ is specialized for integers so it should be able to do a logarithmic number of multiplications
19:41:33 <Deewiant> It's still more work but I think it's asymptotically the same
19:41:40 <oerjan> not just integers, Integrals
19:41:50 <oerjan> hm maybe
19:41:54 <Deewiant> That is to say, integers :-P
19:42:11 <oerjan> and non-negative ones at that
19:43:11 <oerjan> well O(n log n) i guess, which is still somewhat more than O(n).
19:43:17 <oerjan> or wait
19:43:27 <oerjan> hm...
19:43:38 <oerjan> log 1 + log 2 + ... + log n
19:43:51 <oerjan> hm that's log (n!)
19:44:55 <oerjan> mind you this is still ignoring the exact complexity of each multiplication
19:45:03 <Deewiant> True that
19:47:22 <oerjan> stirling's approximation: ln n! = n ln n - n + O(ln(n))
19:47:34 <oerjan> so O(log (n!)) = O(n log n)
20:05:47 <evening> Quick, someone tell me if Clojure is A Bad Thing.
20:06:06 <evening> Logreading elliott: YES I KNOW SHUT UP OK
20:07:05 -!- evening has changed nick to Phantom_Hoover.
20:18:45 <oerjan> jew jould alwaje look for clojure in evjything
20:19:06 -!- boily has joined.
20:20:25 <oerjan> c'est boily!
20:31:43 <boily> oui, c'est moi.
20:35:45 <quintopia> boily!
20:36:03 <quintopia> how lovely to meet you!
20:36:09 * quintopia shakes hand
20:38:20 * boily shakes back
20:39:21 <boily> sorry, but I'm going to disappear for the weekend for a long paint-job.
20:39:28 <boily> back by monday, I guess!
20:39:33 -!- boily has quit (Quit: WeeChat 0.3.5).
20:44:38 -!- pikhq_ has joined.
20:47:54 -!- pikhq has quit (Ping timeout: 260 seconds).
21:10:48 -!- pikhq has joined.
21:12:54 -!- pikhq_ has quit (Ping timeout: 258 seconds).
21:22:27 -!- elliott has joined.
21:23:06 <elliott> oh that google+ thing came out
21:23:06 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
21:27:05 <quintopia> yeah i should check if my invite is valid yet
21:29:08 <elliott> who cares
21:30:17 <quintopia> does anyone know if it's possible to make it so i don't get emailed about replies to my comments on a particular youtube video?
21:30:35 <quintopia> people keep replying even though i posted it a month ago and haven't said a thing since
21:30:46 <elliott> reply saying everyone is a faggot
21:30:55 <Gregor> Literally everyone.
21:30:58 <Gregor> Every last human being.
21:31:02 <Gregor> Human race: Doomed.
21:31:44 <oerjan> Gregor: nah there's still artificial insemination
21:31:48 <Gregor> True
21:32:25 <Phantom_Hoover> oerjan, not enough, I'm afraid.
21:32:33 <Phantom_Hoover> The slightest spark and we're all alight.
21:32:39 <oerjan> oh dear
21:32:47 <oerjan> yeah that could be awkward
21:33:03 <quintopia> Gregor: i just invented human parthenogenesis. we can be gay and still live on!
21:33:36 <oerjan> except for very sparsely populated countries, maybe
21:33:51 <oerjan> india would go down in flames
21:34:32 <oerjan> norway will greatly regret our insistence on building houses out of wood
21:34:35 <Phantom_Hoover> <quintopia> people keep replying even though i posted it a month ago and haven't said a thing since
21:34:39 <Phantom_Hoover> What'd you post?
21:35:29 <elliott> comex: go make gmail think that you send your messages
21:35:34 <elliott> maybe by removing the .s :P
21:35:53 <elliott> Phantom_Hoover: Wait did you just invent us catching fire rapidly for no reason or is there a link I'm missing.
21:36:13 <oerjan> elliott: no you did. pay attention.
21:36:14 <Phantom_Hoover> elliott, faggot as in bundle of wood.
21:36:22 <elliott> Oh.
21:36:41 <elliott> I liked it better when it was just "gays are really flammable for no reason at all".
21:37:16 <oerjan> i think the term is "flamboyant"
21:37:49 -!- augur has quit (Remote host closed the connection).
21:38:12 <oerjan> augur ran away before we remembered asking him to confirm
21:42:15 <quintopia> oh i figured out the problem
21:42:25 <quintopia> somehow people upvoted my comment to second place
21:42:29 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:42:40 <quintopia> so it never dies!
21:44:44 <Phantom_Hoover> Which video?
21:44:58 * Phantom_Hoover boggles again at the sheer stupidity that is MathML.
21:47:11 <Phantom_Hoover> quintopia, eeeeewww, you subscribed to Vihart.
21:49:42 <quintopia> yes.
21:49:47 <quintopia> she's pretty cute
21:50:02 <quintopia> and i have some interest in techniques of math education
21:51:09 <Phantom_Hoover> quintopia, protip: good techniques don't think tau is an important thing.
21:51:54 <quintopia> that is a matter of hotly contested opinion
21:52:07 <quintopia> and i distrust your expertise in the matter
21:52:19 <quintopia> (also, i was into vihart long before tau got popular)
21:52:30 <elliott> hotly contested opinion lol
21:52:37 <elliott> maybe among people who don't actually do any mathematics
21:53:34 <quintopia> among math educators. people who actually do mathematics couldn't give a rat's ass
21:54:30 <elliott> ok show me someone who actually teaches mathematics who gives a rat's ass, also, someone who's level of education actually involves teaching people pi
21:54:38 <elliott> as opposed to like a preschool teacher
21:54:49 <elliott> addendum: competent
21:55:02 <Phantom_Hoover> quintopia, protip 2: if you're teaching maths properly, i.e. to people who would benefit from it, tau vs. pi is irrelevant.
21:55:43 <quintopia> "peole who would benefit from it" is everyone
21:56:13 <Phantom_Hoover> quintopia, I'm not so deluded as to think everyone's time is worth learning calculus.
21:56:41 <quintopia> obviously
21:56:50 <Phantom_Hoover> Sure, it's good to build up your reasoning skills; but tau vs. pi is irrelevant to that.
21:56:56 <quintopia> calculus is not even a field of math
21:57:07 <Phantom_Hoover> quintopia, ...what.
21:57:09 <quintopia> it's a set of tools required by ... engineers mostly
21:57:09 <Phantom_Hoover> Please. Shut up.
21:57:14 <Phantom_Hoover> Shut up this very minute.
21:57:18 <Phantom_Hoover> Shut. Up. Now.
21:57:28 <Phantom_Hoover> There is nothing you can say now that will salvage this.
21:57:41 <quintopia> there are fields of math that require calculus, but calculus would not be called calculus if it weren't meant to be just that: a set of tools
21:57:47 <Phantom_Hoover> You are now firmly marked down as An Idiot in my mind.
21:57:53 <Phantom_Hoover> I told you to shut up.
21:57:58 <Phantom_Hoover> You're just digging yourself deeper.
21:58:13 <quintopia> you're pretty annoying, you know that?
21:58:26 <oerjan> quintopia: if you exclude calculus from math, then you have also excluded every level of "math" at which tau vs. pi could conceivably matter.
21:58:54 <Phantom_Hoover> quintopia, I don't suffer fools gladly, if that's what you mean.
21:59:04 <quintopia> oerjan: it doesn't really matter to me.
21:59:35 <quintopia> i think tau is slightly more elegant in the grand scheme of things, but i have no data as to its pedagogical value
21:59:42 <elliott> <quintopia> calculus is not even a field of math
21:59:42 <Phantom_Hoover> If you hadn't just said calculus isn't a field of maths, I wouldn't be doing this.
21:59:46 <elliott> <quintopia> it's a set of tools required by ... engineers mostly
21:59:48 <elliott> is oerjan still here
21:59:53 <elliott> is he available for laughing purposes
21:59:56 <elliott> i cant do it all by myself
22:00:10 * oerjan throws a pie in elliott's face
22:00:12 <elliott> <quintopia> there are fields of math that require calculus, but calculus would not be called calculus if it weren't meant to be just that: a set of tools
22:00:23 <elliott> hurr calculus is a bunch of integration rules not a set of formal definitions hurrrrr
22:00:39 <elliott> hurr it's actually really hard to act this stupid i'm going to have to stop
22:00:50 <Phantom_Hoover> It's very, very hard to laugh at thiss.
22:00:52 <Phantom_Hoover> *this
22:00:58 <quintopia> i think we're pretty much at the poin that there is no way to make myself understood. there is no reason for me to try.
22:01:41 <elliott> erm, but what's your reply to that
22:01:43 <elliott> oh, right
22:01:45 <elliott> quintopia: i have an imagination
22:03:50 <quintopia> alright, if you must have it to prove me wrong...what is the latest groundbreaking theorem in the field of calculus?
22:04:10 <elliott> OK, so something has to be a full field to be mathematics?
22:04:16 <Phantom_Hoover> I cannot even *believe* you just said that.
22:04:22 <elliott> OK, so if a certain branch of mathematics ends up being mostly solved somehow, it is no longer part of mathematics?
22:04:23 <Phantom_Hoover> Is geometry not a field of mathematics?
22:04:24 <oerjan> it is not entirely unreasonable to consider calculus to be the mindless part of the field of math otherwise called analysis
22:04:38 <elliott> Of course calculus is analysis? :P
22:05:22 <Phantom_Hoover> oerjan, sure, but it was certainly cutting-edge mathematics when it was developed, and it's still mathematics regardless of the fact that it's been superseded by more developed fields.
22:05:29 <Phantom_Hoover> It's the same with geometry.
22:05:51 <quintopia> oerjan's point is my point exactly
22:05:53 <Phantom_Hoover> Nothing new comes out of it because it advanced to the point that the new stuff got different names.
22:06:10 <quintopia> newton called it "the calculus"
22:07:15 <Phantom_Hoover> quintopia, OK, run by me why, exactly, calculus is not a field of mathematics.
22:07:15 <quintopia> from the dictionary: "a method of calculation"
22:07:47 <elliott> Newton: literally God.
22:07:51 <elliott> Dictionary: literally God.
22:07:58 <elliott> Newton + dictionary: you have now won the argument.
22:08:02 <elliott> I bow before thee.
22:08:10 <Phantom_Hoover> quintopia, I really don't see how you can't view it as mathematics.
22:08:14 <Phantom_Hoover> What else can it *be*?
22:08:17 <quintopia> it is mathematics
22:08:29 <quintopia> addition and subtraction is mathematics too
22:08:40 -!- Vorpal has quit (Ping timeout: 240 seconds).
22:08:41 <oerjan> didn't he add some "of ..." to the phrase for distinction? the latin word "calculus" would include plain arithmetic...
22:08:59 <quintopia> oerjan: "calculus of integration" etc. yes.
22:09:02 <Phantom_Hoover> oerjan, the Latin word calculus just means 'pebble', doesn't it?
22:09:15 <oerjan> well true
22:09:27 <Phantom_Hoover> quintopia, wait, you're basing this on pedantry of the very hazily-defined word 'field'?
22:09:53 <Phantom_Hoover> Which seems to mean, in your mind, an area of mathematics in which active research is being pursued?
22:10:00 <quintopia> of course. i consider a field to be a branch of the science/art where research takes place.
22:10:08 <elliott> you said that "calculus wasn't mathematics"
22:10:13 <elliott> you must defend this statement, not any other
22:10:15 <quintopia> things you can get a doctoral degree in
22:10:24 <elliott> so addition is not mathematics?
22:10:25 <elliott> it is just a tool
22:10:28 <elliott> you can't get a doctorate in addition
22:10:52 <quintopia> it is a tool of mathematics, but boasts nothing of the art
22:11:03 <Phantom_Hoover> quintopia, ...what?
22:11:04 <oerjan> elliott: now division on the other hand...
22:11:17 <Phantom_Hoover> Calculus boasts the art of mathematics in *spades*.
22:11:26 <elliott> this is stupid and you're stupid
22:11:55 <Phantom_Hoover> Its history alone is a perfect illustration of the reasons for rigour.
22:12:18 <quintopia> it is not a field. this is what i said, and this is what i mean. it is useful in a couple of fields, but it is not (although it might once have been) a field unto itself
22:12:25 <oerjan> stupid est et stupidi estis
22:12:33 <oerjan> *stupidum
22:13:31 -!- azaq23 has quit (Quit: Leaving.).
22:15:06 -!- Robdgreat has left.
22:16:54 -!- Lymee has joined.
22:16:55 -!- Lymee has quit (Changing host).
22:16:55 -!- Lymee has joined.
22:20:16 <pikhq> oerjan: stultum est et stulti estis?
22:22:06 <oerjan> they're both latin words...
22:23:47 <elliott> You're a stult.
22:29:50 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:30:39 -!- nooga has joined.
22:30:54 <nooga> help
22:32:25 <elliott> ok
22:34:55 <nooga> i've got 16 girls in my apartament and they can drink more than me
22:35:16 <nooga> my gf invited them
22:35:46 <quintopia> really. 16 people can drink more than one?
22:35:50 <nooga> what should i do
22:35:56 <nooga> i mean
22:36:05 <nooga> every single one can
22:36:19 <quintopia> i think you best hide the alcohol
22:37:08 <oerjan> maybe they're secretly refilling your drink while you're not watching
22:37:36 <oerjan> being 16, should not be hard
22:41:30 <nooga> we drink shots man
22:41:37 <nooga> this is Poland
22:41:38 <nooga> ;p
22:42:39 <oerjan> maybe they're secretly watering out their _own_ shots
22:45:53 <nooga> beh
22:47:11 <Phantom_Hoover> nooga, cut a hole in your chin.
22:48:15 <oerjan> ah the classical reverse trolling
22:49:43 <elliott> nooga: turn into an architecte
22:49:44 <elliott> nooga: turn into an architect
22:50:54 <Phantom_Hoover> Oh god SMBC Theatre is going to make a space opera.
22:53:03 <elliott> Will it be a space rock opera.
22:54:43 <Phantom_Hoover> I doubt it, which is sad.
22:54:46 * Phantom_Hoover → sleep
22:54:48 -!- Phantom_Hoover has quit (Quit: Leaving).
22:58:21 <elliott> How do HTTPS query strings work?
22:58:26 <elliott> Hmm.
22:58:31 <elliott> Wait, the path is sent encrypted, right?
22:58:35 <elliott> So HTTPS query strings aren't sent in plaintext.
23:27:52 -!- fizzie has quit (Ping timeout: 240 seconds).
23:31:08 <pikhq> So, I've found a usage where redo fucking makes sense.
23:31:09 <nooga> ah
23:31:20 <nooga> atom heart mother
23:32:51 <nooga> 1364 seconds of joy
23:36:57 <pikhq> Distroing.
23:37:16 <pikhq> It makes sense because all you really want in your build setup is a shell script that happens to handle dependencies.
23:37:22 <pikhq> And redo offers just that.
23:37:51 <elliott> so does tup
23:37:57 <elliott> also everything that can run a shell script
23:38:15 <pikhq> elliott: tup fails pretty horribly at this, actually.
23:38:48 <elliott> why
23:39:17 <pikhq> Doesn't much like things like "directories".
23:39:34 <pikhq> You can't have a Tupfile build a file in a seperate directory from what it's in.
23:40:07 <pikhq> Nor can you easily have a Tupfile untar, cd, ./configure&&make&&make install.
23:41:50 <pikhq> And make handles the case pretty poorly, because in order to do even slightly more complex package builds, I pretty much need to have it call into a seperate shell script.
23:42:08 <pikhq> And having dependency info seperate from the actual rules to make it is a pain.
23:47:03 <elliott> fair enough
23:49:42 -!- copumpkin has joined.
23:49:42 -!- copumpkin has quit (Changing host).
23:49:42 -!- copumpkin has joined.
23:55:04 <oerjan> nough, made by fairies
←2011-05 2011-06 2011-07→ ↑2011 ↑all