00:07:44 <oerjan> "Nough (Persian: نوق) is a small village in Rafsanjan, south of Iran in the province of Kerman."
00:37:06 <oerjan> assuming those 16 girls mentioned above actually exist
00:38:44 <oerjan> ...are we _sure_ of that?
00:38:56 <elliott> well nobody could be good enough at rping a shithead to be cheater
00:39:03 <elliott> and cheater could never be anyone who isn't a shithead
00:39:14 <elliott> nooga: if you're cheater, you're an excellent actor, put this talent to good use
00:41:04 <oerjan> also, who is to say nooga actually wrote that. there are 17 (18?) possible suspects...
00:42:04 -!- zzo38 has joined.
00:43:11 <elliott> http://www.google.com/search?hl=en&biw=723&bih=717&q=women%20in%20poland&gs_sm=e&gs_upl=3049l4153l0l15l6l0l0l0l0l176l176l0.1l1&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi
00:44:55 <NihilistDandy> Lemma: All women from Poland are stock photo models.
00:45:30 <oerjan> i've seen putative polish women. admittedly they were in norway, not poland. maybe they've all left.
00:45:47 <NihilistDandy> Well, with men like 'nooga' around, it's hardly a wonder
00:47:29 <zzo38> Why does using the -m option of the "setfont" program in Linux also set the keyboard input map? Even though I am trying to set output only map.
00:48:35 <elliott> This supposed ... ``nooga''
00:48:38 -!- tclifton has joined.
00:48:47 <elliott> oh tclifton looks new, should we lynch him now or later or...
00:49:23 <quintopia> how long i gotta stay in this tree?
00:49:28 <zzo38> dd if=/dev/mem bs=1 count=2048 skip=`dd if=/dev/mem bs=1 count=4 skip=268 | od -t u1 | awk 'NR==1{print $5*0x1000+$4*0x10+$3*0x100+$2*0x1}'` of=rom8x8font
00:49:42 <NihilistDandy> Are you decrementing me, commenting me, or attributing that to me? :D
00:49:49 <zzo38> setfont -v rom8x8font # This part also works
00:50:00 <zzo38> seq 0 127 | awk '{print ($0+128) " " $0}' > G1consolemap # And this one
00:50:08 <zzo38> grep '^[0-9]' < $0 >> G1consolemap # And also this one
00:50:52 <zzo38> setfont -u /dev/null -m G1consolemap; kbd_mode -a; echo -e '\e%@\e(U\e)K' # This seems to set the keyboard map too even though I am trying to set output map only!
00:51:04 <zzo38> Can you please tell me why?
00:51:10 -!- tclifton has left.
00:52:29 <zzo38> So, pushing some of the keys causes it to input the wrong characters (but it works if using the number pad or using ALT+numbers)
00:52:50 <elliott> <NihilistDandy> Are you decrementing me, commenting me, or attributing that to me? :D
00:52:57 <elliott> you totally said "* tclifton (~tclifton@212.101.233.220.static.exetel.com.au) has joined #esoteric"
00:59:00 -!- tibuda has joined.
00:59:09 <nooga> NihilistDandy is a nolife
00:59:21 -!- nooga has left.
00:59:25 -!- nooga has joined.
00:59:28 <monqy> bye nooga hi nooga
00:59:36 <nooga> pg dn does not work
00:59:43 -!- tibuda has left.
01:01:51 <elliott> NihilistDandy: you're a nolife
01:09:23 <NihilistDandy> Of course. I thirst for attention, and tiny validation I get everytime someone highlights me is the only thing that keeps me going in the vortex of depression that is my existence.
01:12:57 <zzo38> Do you know why setting the console map does that?
01:13:06 <zzo38> And how to prevent it?
01:14:49 <elliott> lol i read nooga and monqy as the same from "hhhhh"
01:15:14 <zzo38> NihilistDandy: I will try.
01:16:34 -!- zzo38 has left.
01:23:14 <oerjan> that's not germanium to the discussion
01:29:18 <oerjan> if he speaks like that he just has to sulphur the consequences.
01:32:47 <oerjan> this is not precisely fluoride prose
01:34:57 <oerjan> CakeProphet: how boron
01:35:26 <nooga> carbon, hydrogen, oxygen
01:36:43 <nooga> goddamn oerjan is the master of puns
01:36:56 -!- elliott has quit (Remote host closed the connection).
01:37:21 -!- elliott has joined.
01:37:28 <nooga> elliott: seen that?
01:38:19 <nooga> 03:35 < oerjan> how iron-nickel
01:38:19 <nooga> 03:36 < nooga> goddamn oerjan is the master of puns
01:38:24 <nooga> 03:36 < oerjan> yeah they're all gold
01:39:00 <oerjan> oh no, where will this lead
01:39:12 <nooga> thank god i understand this games
01:39:54 <oerjan> it's always good to have a silver of understanding
01:42:29 <NihilistDandy> And either cut out your tungsten or feed you to the wolfram
01:43:16 <oerjan> you're making a mercury of this
01:43:35 <nooga> you speak manganese
01:44:40 <nooga> what an antimony...
01:48:09 <coppro> pikhq: as in you do or you want?
01:48:50 <pikhq> There's a single fundamental problem with this: invite only sucks.
01:48:53 <oerjan> i guess the pun war is cesium
01:49:00 -!- nooga has left.
01:49:31 <elliott> pikhq: invite only social network #badideas
01:50:20 <coppro> pikhq: it's still in rollout phase. right now you can invite people by sharing with their email address
01:50:53 <pikhq> Strange, I literally *just* got an invite.
01:51:08 <NihilistDandy> Maybe the situation's changed in the last few hours
01:51:10 <coppro> They're doing rate limiting
01:51:22 <coppro> if you F5 the link your invite has, you'll get a slot
01:52:14 <elliott> pikhq: hey give me an invite i will add nobody
01:53:00 <elliott> i will add you though because
01:54:17 <oerjan> it's because elliott is ugly with his 1 meter wide mouth
01:54:29 <pikhq> elliott: What was your email again?
01:54:44 <oerjan> ostrichofhell@microsoft.com
01:54:55 <elliott> pikhq: penguinofthegods@gmail.com
02:02:04 -!- elliott_ has joined.
02:02:04 -!- elliott has quit (Remote host closed the connection).
02:02:21 <elliott_> pikhq: oh thanks first friend :))))
02:02:28 <elliott_> Google may use my information to personalize content and ads on non-Google web sites.
02:03:49 <elliott_> MAKING MY FIRST COMMENT ZOMG I SPECIAL
02:06:13 <elliott_> Error saving profile. Please enter valid start and end years.
02:06:15 <elliott_> omg it erased all my hard work
02:06:48 <monqy> start and end years what
02:07:01 <elliott_> for al lmy various employments
02:07:06 <elliott_> microsoft,ibm,sun microsystems.....spies....
02:07:24 <monqy> employed in the future
02:07:42 <elliott_> oh my god i can add agora-business
02:07:54 <pikhq> Yeah, the interface seems to show at least some polish.
02:09:06 * elliott_ hopes pikhq realised what he signed up for when he added me... to his CIRCLES...
02:09:19 <elliott_> oh man i am already in other peoples' cirlces
02:09:34 <pikhq> elliott_: The nice thing is, I can partition you off from other people. >:D
02:10:04 * elliott_ wonders: Can you stop people in certain circles from seeing that you have people in other circles? for instance, I can see that pikhq has Steven Wallace in a circle
02:10:17 <elliott_> which is like crossing the streams :( unless steven wallace is some other internet person you added i guess
02:11:08 <pikhq> Steven Wallace is a good friend of mine that I originally know from the Internet.
02:11:24 <elliott_> oh sorry if you didn't want me to say his name i'm tired
02:11:38 <pikhq> He's been in here a couple of times.
02:11:52 <pikhq> (when I was doing Dimensifuck, IIRC)
02:11:52 <elliott_> but yeah, is he in a different circle? because it'd suck if you could see all the terrible people that bug me
02:11:56 <elliott_> (note: above is joke but yeah)
02:12:02 <pikhq> He's in a different circle ATM.
02:12:17 <elliott_> ok, so i can see people in your other circles... that worries me, I wonder how you can stop that
02:12:39 <elliott_> nice, it has data liberation in the settings
02:12:50 <pikhq> It seems to me like the partitioning really need to be a bit... More.
02:13:06 <elliott_> ah, i can hide people in my circles altogether
02:13:26 <pikhq> Imperfect, but workable.
02:14:42 <elliott_> "Bragging rights - Examples: survived high school, have 3 kids, etc."
02:15:29 <oerjan> have 42 kids, most of which survived high school
02:18:27 <elliott_> "Each post has an indicator that summarizes who the post is shared with (Public, Limited, and so on). Click the indicator for details about who the post is shared with. Remember that anyone a post is shared with can see all comments to that post, who else it's shared with, and share the post with others."
02:18:34 <elliott_> it seems like there should be a way to segregate off comments from various circles
02:18:50 <elliott_> (maybe i should just have two accounts with my kind of total internet segregation practices)
02:19:28 <elliott_> how do you edit the sharing of a post...
02:39:38 <elliott_> <pikhq> oh no all my friends will think im frainds with an insane man called elliott
02:52:35 -!- augur has joined.
03:24:29 -!- oerjan has quit (Remote host closed the connection).
03:25:13 <lambdabot> The operator `:' [infixr 5] of a section
03:25:13 <lambdabot> must have lower precedence than that of the operand,
03:25:28 <elliott_> that's one of my haskell wishes
03:26:06 <CakeProphet> what would you even call it? "better sections"?
03:26:53 <lambdabot> The operator `+' [infixl 6] of a section
03:26:53 <lambdabot> must have lower precedence than that of the operand,
03:27:15 <elliott_> along with IdiomBrackets and MLModules :)
03:27:53 <elliott_> do you even know what idiombrackets are
03:28:01 * CakeProphet doesn't actually know what idiom brackets are.
03:28:08 <elliott_> read you some conor mcbride, fool
03:31:09 -!- pikhq has quit (Read error: Operation timed out).
03:31:23 <monqy> are idiom brackets the things that do (pure f <*> a1 <*> a2 <*> ... <*> an)
03:31:33 <monqy> or do they do more than that
03:32:08 <elliott_> conor mcbride makes me want a twitter
03:32:24 <monqy> is she any good then?
03:32:41 <monqy> all I know about it is it's a haskell preprocessor thing does idiom brackets
03:32:43 -!- pikhq has joined.
03:33:00 <elliott_> monqy: yes it's great, it also lifts data to constructorless datatypes, emulating datakinds
03:33:19 <elliott_> http://personal.cis.strath.ac.uk/~conor/pub/she/faking.html
03:33:19 <elliott_> http://personal.cis.strath.ac.uk/~conor/pub/she/pi.html
03:33:27 <elliott_> oh and http://personal.cis.strath.ac.uk/~conor/pub/she/idiom.html
03:33:34 <monqy> I read the idiom one earlier today
03:34:05 <monqy> I hate constructors so I'll probably like this
03:34:11 <elliott_> monqy: the only features apart from that are http://personal.cis.strath.ac.uk/~conor/pub/she/patsy.html and http://personal.cis.strath.ac.uk/~conor/pub/she/higpig.html
03:34:16 <elliott_> also is that srs, what's wrong with constructors
03:34:16 <monqy> rather, I hate messes of nested constructors
03:34:40 <monqy> (to form complex structures)
03:34:56 <elliott_> monqy: scrap your boilerplate could help there
03:35:06 <elliott_> by letting you abstract your data traversal to avoid explicit pattern matching
03:35:15 <elliott_> e.g. everywhere lets you just apply a function everywhere in a structure where it's well-typed
03:35:26 <monqy> mm that sounds nice
03:35:32 <elliott_> and ofc you can define your own traversal strategies with the basic tools
03:35:36 <elliott_> http://hackage.haskell.org/package/syb try it
03:35:58 -!- hagb4rd has joined.
03:36:04 <elliott_> (see also the http://hackage.haskell.org/packages/archive/base/4.3.1.0/doc/html/Data-Data.html module from base that it's based upon, dunno why the rest of syb isn't in base)
03:37:02 <monqy> will read eventually
03:37:24 <monqy> my reading list is a bit too big so I'll have to read some stuff soon
03:37:32 <elliott_> just read mcbride tweets first, they'll make you all happy
03:37:42 <monqy> (my reading list is a bunch of open tabs it's really messy)
03:38:28 <elliott_> "A Gentle Introduction to Category Theory" ;; this title sure doesn't bode well
03:38:37 <elliott_> "Heh, heh... yes, it is rather brutal, but unfortunately it is the easiest-to-understand on-line tutorial I've found so far."
03:43:24 <pikhq> My hatred of distros is probably a bit too far ATM.
03:43:32 <pikhq> At the moment I'm even thinking LFS does everything wrong.
03:43:37 <pikhq> And LFS does hardly anything!
03:43:52 <pikhq> http://www.linuxfromscratch.org/lfs/view/stable/chapter05/chapter05.html This is at least 50 lines too long.
03:44:32 <pikhq> It should read "Binutils, GCC, Linux headers, glibc, Busybox".
03:45:42 <monqy> nice how binutils and gcc each have two passes
03:45:56 <pikhq> It's pointless cargo culting.
03:46:23 <pikhq> Also, GCC has *4* passes.
03:46:25 <Deewiant> "This system will contain just enough tools to start constructing the final LFS system in Chapter 6 and allow a working environment with more user convenience than a minimum environment would."
03:46:26 <pikhq> The first build bootstraps.
03:46:38 <pikhq> Deewiant: They lie.
03:46:47 <pikhq> Deewiant: Busybox would be much more comfortable.
03:47:11 <pikhq> Busybox is, surprisingly, a fairly full-featured userspace.
03:47:43 <pikhq> Yeah, but it beats GNU.
03:48:10 <elliott_> it would be nice if there was an actually good coreutils
03:50:07 <coppro> pikhq: second build is to do the other half of the bootstrap right?
03:50:13 <pikhq> NihilistDandy: Yeah.
03:50:30 <pikhq> coppro: No, it's to make a GCC linked against your new libc.
03:50:40 <NihilistDandy> My feeling on the whole LFS thing was "Here are some neat instructions, but do whatever the hell you want."
03:50:57 <NihilistDandy> I built two of them, and I never followed everything to the letter
03:50:57 <pikhq> I told you, it's fucking cargo cult.
03:51:25 <NihilistDandy> If you're a Linux user who's content following directions because the internet told you to, you deserve the cargo cult
03:51:48 <elliott_> Pop quiz: What are the complexities of many common (codepoint-based) operations on a structure which consists of a raw block of UTF-8 bytes, plus another list as long as the number of codepoints with offsets into the string saying where those codepoints start?
03:52:15 <elliott_> e.g. inserting into the middle
03:53:34 <elliott_> pikhq: how did you invite me btw
03:53:42 <pikhq> elliott_: I sent you a message.
03:53:55 <pikhq> It autoinvites people that you send messages to.
03:53:58 <elliott_> (btw by raw block I actually meant like a cord srtucture or whatever)
03:55:51 <elliott_> NihilistDandy: dunno, it's me asking you guys
03:56:28 <elliott_> pikhq: does it have to be just them?
03:56:53 <pikhq> elliott_: I dunno, maybe?
04:04:55 <elliott_> "The problem is right there. Always has been. People who think that
04:04:56 <elliott_> userspace filesystems are realistic for anything but toys are just
04:11:18 <CakeProphet> http://www.bioinformatics.org/benchmark/results.html
04:11:27 <CakeProphet> I wonder why these programs are generally faster in Windows...
04:14:01 <pikhq> I'd need more information to say.
04:14:32 <pikhq> Though the odds are good glibc is to blame.
04:16:30 * CakeProphet is trying to find a Perl vs Python benchmark that isn't a) lacking in information b) biased towards one language in some way
04:16:53 <CakeProphet> this site obviously has a bias towards Perl...
04:17:40 <pikhq> Benchmarking languages is the wrong question.
04:19:36 <pikhq> In other news, Stephen Colbert is now a so-called "Super PAC".
04:20:08 <pikhq> Which means that he is personally a lobbying organisation that can be handed infinite amounts of money by corporations.
04:20:16 <CakeProphet> elliott_: well, considering both Python and Perl both have one major implementation, this isn't unreasonable.
04:20:37 <pikhq> US politics has devolved into comedy.
04:20:46 <pikhq> CakeProphet: Still not comparing language speed.
04:20:51 <pikhq> Implementation speed, perhaps, but hey.
04:20:53 <pikhq> NihilistDandy: No.
04:20:58 <elliott_> CakeProphet: they're not even real languages, there is no definition
04:21:25 <pikhq> CakeProphet: Here's the Perl spec. "What /bin/perl does."
04:21:32 <pikhq> CakeProphet: Here's the Python spec. "What /bin/python does."
04:21:40 <CakeProphet> is this some trivial formalism thing you guys are talking about? If so, I don't care about that.
04:21:42 <pikhq> That's just shitty.
04:21:58 <coppro> pikhq: Python is actually interpreter-is-correct? I thought it was spec-based
04:22:03 <coppro> pikhq: Also Perl 6 has a spec
04:22:05 <coppro> although it's a messy one
04:22:12 <elliott_> CakeProphet: Show me the definition of Python.
04:22:15 <elliott_> CakeProphet: Show me the definition of Perl.
04:22:30 <coppro> Any inconsistency in Perl between docs and program is officially a bug in the docs
04:22:32 <NihilistDandy> The ad released by "Turn Right USA", another Super PAC
04:22:34 <elliott_> if you point to an implementation, then you're saying that the language has defined segfaults
04:22:49 <NihilistDandy> Probably NSFW, and definitely unsafe for nonracists
04:23:21 <CakeProphet> elliott_: Python has a grammar spec. Does that count?
04:23:53 -!- zzo38 has joined.
04:23:53 <pikhq> coppro: Non-officially; they don't even go so far as to say "the implementation is correct".
04:24:03 <pikhq> Python, de jure, DNE.
04:25:06 <CakeProphet> I would say this http://docs.python.org/reference/ is pretty close to being a spec.
04:26:02 <pikhq> Documentation != spec.
04:27:13 <pikhq> There is no such thing as a compliant Python interpreter.
04:27:15 <zzo38> But I would say in the case of TeX, the program book and documentation book together make up a specification of how standard TeX should work
04:27:24 <CakeProphet> What makes that document not a language specification?
04:27:34 <coppro> CakeProphet: It is not considered authoritative
04:27:46 <coppro> Someone could implement that document entirely and it would not necessarily be considered correct
04:28:02 <pikhq> There are only interpreters which happen to execute input similarly to the "CPython" program.
04:28:30 <CakeProphet> coppro: well, it would be missing the standard library.
04:28:57 <pikhq> CakeProphet: And certainly not be bug-for-bug compliant.
04:29:29 <zzo38> How would you know if it is correct or not? And what if there is some ambiguous things mentioned in the document?
04:29:47 <CakeProphet> ...but this has nothing to do with benchmarking the most commonly used implementation of a language.
04:30:21 <pikhq> Yes it does, because there is no language.
04:30:35 <pikhq> There are only interpreters
04:31:00 <pikhq> And yes, we are just being picky.
04:31:06 <pikhq> That doesn't make it any better.
04:31:11 <elliott_> it means they're not languages, though
04:31:41 <CakeProphet> There is an entire set of documentation on the language, standard libraries, and grammar of the CPython implementation that is considered standard for any practical purpose. I don't see why it matters that it's not called a specification.
04:32:40 <elliott_> if the implementation violated the documentation (not in an obviously buggy way like segfaulting), which would be fixed?
04:32:52 <elliott_> if you can't answer "the implementation, no question whatsoever", then it is not a specification.
04:33:29 <zzo38> And that is one purpose to use literate programming; is so you do not have this problem.
04:34:08 <CakeProphet> ..but you can't say "there is no Python language" as a result.
04:34:31 <CakeProphet> because there clearly is one. It is documented to exist.
04:34:49 <pikhq> There is "the CPython interpreter's behavior".
04:35:03 <elliott_> theres some other programs that try to imitate it
04:35:09 <pikhq> To create a "Python" interpreter, one is imitating CPython.
04:35:10 <zzo38> Yes, you can't say "there is no Python language" as a result unless perhaps you have some philosophy and you are being very philosophical about it then you might prefer to say there is no such thing, maybe....... maybe not......
04:35:13 <CakeProphet> ...this is a completely pointless discussion. I am done.
04:35:21 <pikhq> zzo38: We're being philosophical about it.
04:35:25 <monqy> the language specified by what cpython does
04:35:52 <pikhq> Dang, Congress is even more disfunctional than usual.
04:36:04 <pikhq> 18 bills have passed this year.
04:36:25 <pikhq> No, utterly trivial bills.
04:36:29 <pikhq> 15 of them name buildings.
04:36:36 <elliott_> http://www.e-pig.org/epilogue/?p=955 i never understand mcbride, but he always makes me happy
04:36:45 <coppro> pikhq: and the other three?
04:37:01 <CakeProphet> elliott_: this man-crush is becoming somewhat eerie.
04:37:04 <zzo38> I suppose you can be philosophical about it, or whatever else you want to be about it; especially, this is esoteric programming channel, but even in non-esoteric programming you can think about such things for whatever reason whatsoever, even.
04:37:20 <monqy> man-crush is that when one man crushes another man
04:37:33 <monqy> murder is okay when it's manly
04:37:38 <coppro> for some definition of crush
04:37:43 <elliott_> CakeProphet: i just had the tab open
04:37:49 <elliott_> and he linked to the new e-pig post
04:38:07 <monqy> do you dream about conor mcbride
04:38:40 <elliott_> im going to go into his house and take off his skin and wear it and become him
04:38:49 <monqy> make yourself happy
04:38:54 <pikhq> https://secure.wikimedia.org/wikipedia/en/wiki/Acts_of_the_112th_United_States_Congress
04:39:41 <CakeProphet> zzo38: I just don't see how not making a spec for a language /invalids all benchmarking ever/. Which was how this topic started.
04:40:02 <pikhq> We're travelling fast towards default.
04:40:10 <pikhq> AKA "The end of economy".
04:40:27 <monqy> sorry I pretty much just got back but why do you want benchmarking
04:40:34 <monqy> isn't benchmarking an implementation thing anyway
04:40:45 <elliott_> CakeProphet: you were talking about benchmarking the implementations of a language
04:41:11 <monqy> this depends on the definition of language doesnt it
04:41:17 <zzo38> CakeProphet: It doesn't (with the exception of a few kinds of philosophical ideas) but it is helpful. But benchmarking is helpful for implementation mostly is in fact correct. But can be compared
04:41:23 <elliott_> but you can't refer to it as a language
04:41:35 <monqy> if languages can be specified by the behavior of a program then yeah python is a language
04:41:48 <elliott_> that's a specification that nobody believes
04:41:56 <elliott_> because people report bugs in the python program for implementing Python wrong
04:41:58 <zzo38> Such as, the program "python" and the "python" snake and the "Monty Python" and so on
04:42:02 <CakeProphet> okay, yesterday I wrote a program in the python interpreter. It was not a programming language. I just programmed thin air.
04:42:02 <elliott_> "this behaviour is incorrect", etc.
04:42:06 <monqy> heheheheheheheehehe
04:42:22 <elliott_> CakeProphet: you programmed a Python program. but Python is not a programming language.
04:42:33 <monqy> python is a human language
04:42:42 <monqy> for communicating between humans
04:42:45 <CakeProphet> right, the Python program was written in nothingness. Python is pretty mystical sometimes.
04:42:47 <zzo38> elliott_: Yes, it does make difficult. Is it just the idea of the people who have programmed it, or the collective? So, one could say either the document or implementation might be the wrong one possibly?
04:42:58 <pikhq> coppro: Yeah, I got a miscount.
04:43:03 <pikhq> Still utterly ridiculous.
04:43:17 <pikhq> zzo38: They could both be wrong.
04:43:24 <coppro> pikhq: also I definitely do not see 15 for naming buildings
04:43:27 <pikhq> zzo38: If van Rossum says so.
04:43:39 <pikhq> coppro: So further research told me I was wrong?
04:43:44 <elliott_> ok, python is a language whose spec is a physical brain
04:43:46 <zzo38> pikhq: Yes maybe they could both be wrong. Maybe. (It is, again, another kind of philosophical idea)
04:43:49 <pikhq> coppro: Still. Utterly ridiculous.
04:44:13 <pikhq> zzo38: Slightly less philosophical, because Python runs on the benevolent dictator model.
04:44:23 <monqy> it's been a while since I've done anything in python. I don't think I've ever used any of its really fancy features either. those things are spooky.
04:44:41 <zzo38> pikhq: Perhaps. OK.
04:44:53 <zzo38> monqy: What kind of realy fancy features?
04:45:00 <monqy> I dunno I forgot them all
04:45:17 <monqy> they're probably really simple too but they spook me out
04:45:20 <CakeProphet> I often wonder what language I'm writing in when I write a Python program. It is deeply confusing to me. This conversation has clarified things for me.
04:45:40 <zzo38> I have done two things in Python. I wrote some solitaire card games and I have modified a drive wipe script for FreeGeek Vancouver.
04:45:40 <monqy> i write my python programs in perl btw
04:46:21 <monqy> oh wait perl doesn't exist either
04:47:05 <monqy> I guess I really am confused about what language I'm writing in when I write a Python program.
04:47:44 <CakeProphet> if only you had some kind of document that described the language to you. A document that may in fact be subject to change in the future.
04:48:05 <NihilistDandy> Stick to SKI, then. At least that's a mathematical fact.
04:48:05 <monqy> a formal specification?
04:48:08 <CakeProphet> as the language changes, for whatever reason. These things are ephemeral.
04:48:45 <zzo38> Perhaps instead of saying you wrote the program in Python you say it is written in python instead (that is, without uppercase "P"), which is used to indicate that, you have the program "python" which can be used to interpret the program in the language whatever it happens to be, if anything...
04:48:46 <monqy> what if you define a language by a spec and then leave that spec alone and make a new spec when you want to change it
04:49:04 <zzo38> monqy: Then you should give them version numbers, or, if they don't have them, refer to them by dates.
04:49:22 <monqy> NihilistDandy: or scheme
04:49:24 <pikhq> NihilistDandy: Haskell is versioned.
04:49:28 <monqy> or a bunch of other languages
04:49:42 <monqy> I thought it meant singing
04:49:48 * CakeProphet wrote a program in the C language yesterday.
04:50:03 <pikhq> There's two such languages.
04:50:20 <pikhq> NihilistDandy: Strange, I thought it was a vaguely sing-songy type thing. だね〜?
04:50:34 <zzo38> And then there are variants of C and implementation specific features of C programs, in addition to others too.
04:51:02 <monqy> would you like me to find the spec~
04:51:47 <CakeProphet> I don't know. I thought I explained this...
04:52:11 <zzo38> I happen to like a subset of the "GNU89" version of C
04:52:44 <monqy> quines as specified by which version of C
04:52:45 <NihilistDandy> pikhq: In Japanese I've always thought of it more as an extension of the vowel, but I suppose many speakers make that sound fairly sing-dongy
04:53:06 <pikhq> Fuck it, I'll presume ISO C99+POSIX 2008.1
04:53:11 <pikhq> CakeProphet: http://pubs.opengroup.org/onlinepubs/9699919799/toc.htm
04:53:47 <CakeProphet> monqy: The C that is implemented by the gcc, I think.
04:53:48 <pikhq> NihilistDandy: Fair 'nough.
04:53:50 <zzo38> CakeProphet: Not knowing because is explained and how you go in circles is one of the kind of philosophical because sometimes making philosophy, if it is of the confusing kind, results in this kind of things. So that is how you learn (kind of)!
04:54:04 <pikhq> CakeProphet: So ISO C99!
04:54:32 <CakeProphet> oh okay. Yeah sometimes I get confused because people are like "go write programs in C", and I assume C is a language.
04:54:59 <monqy> C is a family of languages
04:56:41 <zzo38> CakeProphet: They don't know.
04:57:07 <CakeProphet> the thing about Python is that the language changes between CPython versions, pretty much.
04:57:41 <zzo38> Another thing is what parts should be considered "the language"
04:58:05 <monqy> the language defined by cpython's behaviour at verison (version here)
04:58:37 <CakeProphet> I would Python is a family of languages, with specific languages being versioned.
04:59:03 <CakeProphet> I remember in #python it would sometimes help to specify which version of Python you were talking about
04:59:37 <monqy> if only python were formally specified
04:59:47 <CakeProphet> yes, then it could be one language, like C.
05:00:05 <monqy> proper implementations of python _must not have_ tail call optimisation
05:00:42 <monqy> by the cpython. by the guidos brain.
05:02:12 <monqy> what just happened :(
05:02:34 <monqy> !perl print $x = 5 => $x = 6;
05:03:14 <monqy> !perl print $x = 5 => $x = 6 => $x = $x;
05:03:20 <CakeProphet> I'm actually not sure what is happening now...
05:03:53 <monqy> !perl print $x = $x => $x = 5 => $x = 6;
05:04:33 <CakeProphet> ..yeah, assignment precedence does weird things.
05:05:01 <CakeProphet> that and the fact that , does two completely different things.
05:05:33 <monqy> !perl print ($x = (print ($x = print ($x = 5))))
05:06:06 <CakeProphet> see, it would be nice if print actually returned what it printed, but instead it returns 1
05:06:28 <monqy> !perl print $x => ($x = print ($x = 5)) => $x
05:07:10 <monqy> !perl print $x => ($x = 5) => $x
05:07:20 <monqy> how did it figure that out
05:07:47 <lambdabot> <no location info>: parse error on input `=>'
05:09:01 <monqy> !perl $a = 5; ($a, $b) = ($b, $a); print $a;
05:09:24 <CakeProphet> yeah see I have no clue why it printed 555 above.
05:09:25 <monqy> unification failure there perl
05:09:52 -!- fizzie has joined.
05:10:49 <monqy> !perl print ($x=5), $x
05:11:10 <monqy> !perl print ($x=5) => $x
05:11:25 <elliott_> <monqy> !perl print $x => ($x = 5) => $x
05:11:27 <monqy> but with one special thing so why not have another
05:11:37 <elliott_> if you look at how this evaluates
05:11:41 <monqy> it allows a bareword on the left right?
05:11:47 <elliott_> maybe it evaluates assignments first
05:12:01 <monqy> but then what about ($x=5), $x
05:12:11 <elliott_> print "$x", ($x = 5), ... no wait
05:12:15 <CakeProphet> it seems to be exclusive to the print operator.
05:12:15 <elliott_> that wouldn't explain the last one
05:13:38 <CakeProphet> !perl @x = ($x, $x, $y); $x=5;$y=2; print @x
05:13:43 -!- zzo38 has left.
05:14:06 <CakeProphet> might have something to do with how Perl uses lists in assignment operators.
05:14:33 <elliott_> i always hate when people post about areas of my expertise because they'll be wrong
05:15:24 <EgoBot> Can't declare scalar assignment in "my" at /tmp/input.18475 line 1, near "))"
05:16:29 <CakeProphet> !perl (@z = ($x=$y, $y=2)) = ('a','b'); print @z, $x, $y;
05:16:50 <CakeProphet> !perl (@z = ($x=$y, $y=2)) = ('a','b'); print @z, ' ', $x, $y;
05:17:16 -!- zzo38 has joined.
05:17:56 <CakeProphet> !perl (@z = ($x=$y, $y=2)); print @z, ' ', $x, $y;
05:18:42 <CakeProphet> but now I don't know what is expected and what is unexpected...
05:18:53 <monqy> what if perl had a real spec
05:19:16 <monqy> (no that was a trick question it would be too much of a mess)
05:19:29 <monqy> ((that was a joke of course it would help))
05:19:32 <monqy> (((what am I saying)))
05:20:22 <monqy> is it a good place
05:22:38 <CakeProphet> more often than not I get assaulted with useless pickiness, which is weird because it's Perl we're talking about..
05:22:56 <monqy> theres only one way to do it
05:23:47 * elliott_ notes that CakeProphet considers everything useless pickiness
05:23:54 <monqy> do they get mad about doing obscene things with perl
05:23:57 <monqy> i.e. anything with perl
05:24:03 <monqy> (perl jokes are funny)
05:24:41 <monqy> seriously though is there any sort of perl that's considered abusive
05:25:37 <monqy> obfuscated too far for respect
05:25:48 <CakeProphet> depends on who you talk to. I generally don't care. others do.
05:25:55 <monqy> exploited a bug in the spec
05:26:07 <elliott_> obfuscated too far for respect / exploited a bug in the spec
05:26:12 <elliott_> opening lyrics of Abusive Perl
05:31:18 <CakeProphet> < tm604> eval: [ $x, $x - 3, $x = 5, $x - 3 ] # they're processed left-to-right but since $x is an lvalue it'll stay as $x in the resulting expression
05:31:26 <CakeProphet> < SpiceMan> anyway, assigning in a list is wrong
05:31:44 <CakeProphet> I didn't know programming style was such a deep, ethical issue.
05:31:56 -!- zzo38 has left.
05:32:04 <monqy> there's more than one way to do it but that isn't one
05:32:55 <CakeProphet> < tm604> It'll evaluate to 5 when converting to the arrayref in the above example - but would stay as an lvalue if you passed that list to a function call.
05:33:18 <elliott_> "is wrong" -- oh noes ethical judgement
05:37:46 <monqy> im having trouble grokking the concept of perl style pedantry
05:37:58 <monqy> isnt perl for dirty hacks why else would anyone use it
05:38:29 <CakeProphet> I guess there are pedants for every language...
05:39:10 <NihilistDandy> Perl pedants are former C pedants who decided they wanted something more opaque.
05:40:20 <NihilistDandy> Actually, I don't think I've known anyone that used perl for long without developing their own particular brand of pedantry about it
05:40:38 <NihilistDandy> Except the ones who switched to python because it was the sexy new (nonexistent) thing
05:41:03 <CakeProphet> !perl @x = ($x,$x,$x=2); ($x[0],$y) = (3,4); print @x,' ',$x,$y
05:41:14 <monqy> my perl pedantry is i cant stand perl code that doesnt cave in to heinous obfuscation
05:41:23 <CakeProphet> NihilistDandy: I switched from python to perl, so...
05:41:41 <CakeProphet> so far I am not pedantic about Perl. But I'm not pedantic about any language really.
05:42:54 <NihilistDandy> Any language is dangerous if you buy into the hype
05:43:07 <CakeProphet> so apparently the lvalues evaluated after the list evaluates. So it's just a weird case that happens inside lists.
05:43:17 <monqy> "Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in." -- literally god
05:44:55 <CakeProphet> !perl sub test {$_[0] = 2} $x = 1; test($x); print $x;
05:46:14 <CakeProphet> usually this "feature" is disabled when you reassign @_ or use shift, which is what 99% of Perl functions do.
05:47:18 <CakeProphet> !perl sub test {shift = 2} $x = 1; test($x); print $x;
05:47:18 <EgoBot> Can't modify shift in scalar assignment at /tmp/input.20928 line 1, near "2}"
05:48:47 <CakeProphet> you /can/ define subroutines that can be used as lvalues.
05:52:57 <CakeProphet> !perl sub take : lvalue {$_[0]} sub test { &take = 3} $x = 0; test($x); print $x;
05:59:04 <CakeProphet> I actually enjoy Perl's depravity. This is what stands out to me.
06:03:40 <CakeProphet> You could actually write programs in a style similar to Python.
06:05:13 <CakeProphet> well no, you would actually want to /declare/ your variables. This is counter-intuitive to Python style.
06:06:36 <CakeProphet> in which variables magically appear at runtime like the hash table keys they are.
06:08:28 <CakeProphet> in a class definition? don't want a hash table? no worries, you can just define a huge list of strings named __slots__. Very clean and pythonic.
06:09:56 <CakeProphet> actually it might be a tuple. I can't recall.
06:40:57 -!- CakeProphet has quit (Ping timeout: 255 seconds).
06:50:32 -!- zzo38 has joined.
06:54:28 <zzo38> Yes, it is true! It is not true!
07:02:05 <zzo38> I do not think pi has anything to do with circles. I think circles has to do with pi. Some people think tau (2pi) should be used instead of pi but I am one of those who disagrees with that idea. Even if you somehow believe that the ratio of a circumference to the diameter is 3, that doesn't mean pi is 3.
07:04:06 <elliott_> fyguhijokp[l];';kljhgfdrt90iuhgvui09-hviop0jhbvi90jio0-9ijnbjio0-
07:09:10 <zzo38> Can you please write it more clearly this time?
07:10:13 -!- CakeProphet has joined.
07:10:13 -!- CakeProphet has quit (Changing host).
07:10:13 -!- CakeProphet has joined.
07:13:43 -!- pikhq_ has joined.
07:14:00 -!- monqy has quit (Quit: hello).
07:16:06 -!- pikhq has quit (Ping timeout: 240 seconds).
07:29:24 -!- CakeProphet has quit (Ping timeout: 276 seconds).
07:29:33 -!- foocraft_ has quit (Ping timeout: 255 seconds).
07:56:12 -!- zzo38 has quit (Remote host closed the connection).
08:25:35 <elliott_> Deewiant: vertex object things
08:25:41 <elliott_> GL.bufferData GL.ArrayBuffer GL.$= (fromIntegral size, ptr, GL.StaticDraw)
08:25:47 <elliott_> that ptr could literally be a pointer to ()s
08:25:53 <elliott_> at least use a typeclass, jeez
08:26:01 -!- ais523 has quit (Remote host closed the connection).
08:34:38 -!- Vorpal has joined.
08:39:55 <elliott_> Deewiant: A typeclass, since the a should always be one of the GL value types :P
08:39:58 <elliott_> (Unless I'm missing something)
08:40:18 <Deewiant> I think it really can be anything
08:41:52 <Deewiant> You can use it to just store arbitrary data on the GPU AFAICT
08:43:50 <elliott_> Deewiant: That sounds like a terrible idea if you have e.g. Ptr (a -> b)
08:44:05 <elliott_> GC doesn't look at GPU memory :P
08:44:32 <Deewiant> If you move GC data away from the GC then obviously you have to handle it somehow, yes :-)
08:52:12 <elliott_> "Someone should be paying you full-time to actually make all of these things that will be so much better than all the other versions of those things."
08:52:17 <elliott_> the nicest thing i have ever been told ;_____;
09:23:56 -!- wth has joined.
09:24:22 -!- wth has changed nick to Guest41798.
09:24:30 -!- Guest41798 has left.
10:05:56 -!- foocraft has joined.
10:21:16 <lambdabot> Source not found. My pet ferret can type better than you!
10:22:03 <elliott_> Deewiant: yeah, then i realised that's not relevant
10:22:10 * elliott_ is trying to make the code in http://personal.cis.strath.ac.uk/~conor/Kleisli.pdf work
10:22:19 <elliott_> instance (IFunctor f ,IFunctor g) ⇒ IFunctor (f :+: g) where
10:22:19 <elliott_> imap h (InL fp) = InL (imap h fp)
10:22:19 <elliott_> imap h (InR gp) = InR (imap h gp)
10:25:14 <elliott_> /home/elliott/Code/outrageous-fortune/outrageous-fortune.hs:58:33:
10:25:15 <elliott_> from the context (IFunctor f, IFunctor g)
10:25:15 <elliott_> bound by the instance declaration
10:25:15 <elliott_> at /home/elliott/Code/outrageous-fortune/outrageous-fortune.hs:3:10-55
10:25:15 <elliott_> `g' is a rigid type variable bound by
10:25:22 <elliott_> at /home/elliott/Code/outrageous-fortune/outrageous-fortune.hs:3:32
10:25:24 <elliott_> `f' is a rigid type variable bound by
10:25:27 <elliott_> at /home/elliott/Code/outrageous-fortune/outrageous-fortune.hs:3:20
10:25:33 <elliott_> In the second argument of `imap', namely `gp'
10:25:36 <elliott_> In the first argument of `InL', namely `(imap h gp)'
10:25:37 <elliott_> In the expression: InL (imap h gp)
10:27:55 <elliott_> (This after I added kind signatures to :+:.0
10:37:19 -!- azaq23 has joined.
10:49:34 <elliott_> no simpler way to write that, right
10:49:46 <Deewiant> ?ty \a b -> const id <$> a <*> b
10:49:47 <lambdabot> forall a a1 (f :: * -> *). (Applicative f) => f a1 -> f a -> f a
10:50:01 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f b
10:50:22 <Deewiant> Well, that's where you got it from I guess, heh
10:51:58 <elliott_> haha wow, the arrows of outrageous fortune are...
10:52:24 <elliott_> So, choose a big text file, a Shakespearean tragedy, perhaps, and invoke
10:52:24 <elliott_> runFH $ fileContents "Hamlet.txt"
10:52:37 <elliott_> im running it on /usr/share/dict words and my computer isnt showing what im typing any more oh
10:53:42 <elliott_> i just watched the oom killer kill chrome
10:54:11 <elliott_> oh and THEN he tells us how to do it fastly
11:05:27 -!- Sgeo has joined.
11:21:31 <Vorpal> elliott_, gnome 3 is a disaster, I gave up on it when I couldn't even locate the setting for changing window decorations theme after 10 minutes of searching in the preferences...
11:22:02 <Deewiant> After all, configurability is bad and confusing
11:22:21 <Vorpal> elliott_, gave lxde a try but it was crashy. Could be due to catalyst drivers since it was X itself that crashed from trying to change lxde desktop bg colour, but the backtrace from X segfaulting seemed free from catalyst things
11:22:25 <Vorpal> xfce seems to work well
11:22:38 <Deewiant> Why do people use desktop environments
11:22:57 <Vorpal> Deewiant, as opposed to just a window manager?
11:24:11 <Vorpal> Deewiant, hm, for me, because I haven't found a window manager that I liked yet. I tried a few.
11:24:21 <Vorpal> I don't like tiling window managers I found out
11:25:40 <Deewiant> So you like gnome 2 / lxde / xfce but not any WMs, or?
11:26:18 <Vorpal> Deewiant, well lxde I have been unable to decide if I like yet
11:26:26 <Vorpal> due to it crashing on some stuff
11:26:49 <Vorpal> but lxde had a few other issues as well
11:27:11 <Vorpal> like not being able (as far as I could tell) to use the default X cursors, instead of fancy ones.
11:27:26 <Vorpal> and also I didn't find a non-horrible window decoration theme in it
11:27:40 <Vorpal> Deewiant, gnome 2 I like. KDE 3.5 and older too. xfce4 is quite nice
11:28:27 <Vorpal> Deewiant, I tried a few WMs and twm is kind of nice when it comes to behaviour, but it looks ugly as fuck, even if you change the colours with xresources or whatever it was
11:28:41 <Vorpal> tiling WMs I don't seem to like so far
11:28:56 <Vorpal> Deewiant, any suggestions for non-tiling WMs?
11:29:23 <Deewiant> And shall now relocate to a bus stop -->
11:29:28 <Vorpal> hm, I haven't tried that one actually
11:29:34 <Vorpal> I think I tried some other *box?
11:49:57 <Deewiant> I found small nits in all the other boxes (no I can't remember what they were)
11:56:27 -!- CakeProphet has joined.
12:43:23 <elliott_> yess rayman installer launches
12:43:43 <elliott_> "Full installation MMX for DirectX [six].[one]"
12:43:48 <elliott_> ah...yes, this is what i want...
12:47:01 <elliott_> ah, i need dlinput.dll for this
12:47:10 <elliott_> quintopia: Deewiant: CakeProphet: do any of you use windows ever
12:50:08 <elliott_> In my case, I used a Windows Vista "dinput.dll" file, as the one from my "Rayman 2" CD didn't work for me.
12:50:13 <elliott_> Sgeo: do you have access to a windows partition
12:50:23 <Sgeo> The one I'm currently using
12:50:31 <Sgeo> Is 7 close enough/identical?
12:50:47 <elliott_> Sgeo: can i have your \windows\system[thirtytwo]\dinput.dll file?
12:52:57 * Sgeo takes elliott's email address from Agora
12:53:32 <elliott_> in return you can have a useless google+ invite
12:57:13 <Sgeo> Huh, I have to link Google+ with Picasa
12:57:23 <Sgeo> Maybe this will make Picasa on my phone work?
12:57:53 <Sgeo> The choices given were to link, or not to join Google+
12:58:20 <elliott_> "SITE RAYMAN2" <-- good english in menus
12:59:05 <elliott_> todo: get antialiasing enabled in it somehow, maybe dare to try widescreen, fullscreen
12:59:12 <elliott_> sgeo you've played rayman right
12:59:18 <elliott_> then you can UNDERSTAND MY DELIGHT
12:59:25 <Sgeo> I've... heard of it. Might have seen it being playe
12:59:33 <Sgeo> Unless I'm thinking of a different game
12:59:45 <elliott_> go pirate it and play it it's the best three-dimensional platform game ever created :{
12:59:56 <Deewiant> elliott_: Yes, I dualboot Windows 7 for gaming
13:00:12 <Deewiant> I didn't really want to help you anyway
13:00:26 <Sgeo> elliott_, does it have glowy sphere things called lums?
13:01:04 <Sgeo> Ok, yeah, I've watched my friend play it a long time ago
13:02:03 -!- elliott_ has quit (Quit: Leaving).
13:09:47 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:12:37 -!- elliott has joined.
13:12:43 <elliott> Stupidly hard to get this to fullscreen right
13:12:50 <elliott> Is there a way to get wine to do everything as a virtual desktop, just a fullscreen one :P
13:18:26 -!- elliott has quit (Quit: Leaving).
13:34:26 -!- copumpkin has joined.
13:34:26 -!- copumpkin has quit (Changing host).
13:34:26 -!- copumpkin has joined.
13:34:42 <CakeProphet> perhaps virtual box has what elliott is looking for
13:34:54 <CakeProphet> also, installing Windows will likely have a similar effect.
13:36:04 <Sgeo> CakeProphet, I thought VirtualBox doesn't work well with 3d
13:43:11 -!- azaq23 has quit (Read error: Operation timed out).
13:44:58 -!- azaq23 has joined.
13:45:01 -!- azaq23 has quit (Changing host).
13:45:01 -!- azaq23 has joined.
13:56:47 -!- azaq23 has quit (Quit: Leaving.).
14:01:33 -!- azaq23 has joined.
14:05:24 -!- elliott has joined.
14:14:43 -!- Sgeo has quit (Read error: Connection reset by peer).
14:15:24 -!- Sgeo has joined.
14:25:18 -!- elliott_ has joined.
14:25:18 -!- elliott has quit (Read error: Connection reset by peer).
15:18:17 -!- Slereah has quit (Ping timeout: 252 seconds).
15:22:01 <elliott_> olsner: you konw how you were oh and i want with and but yeah its let me knwo if?
15:33:03 <elliott_> unsafePerformIO (>>= #0 #1) = seq# #0 (#1 #0);
15:33:03 <elliott_> unsafePerformIO (return #0) = #0;
15:35:40 <elliott_> wait i can do that better, unsafePerformIO could be id
15:38:30 <Sgeo> Unboxed? I'm generally clueless about that. Why is #1 being used like a function?
15:50:42 <elliott_> olsner: yeah i pretty much invented the best
16:27:24 -!- MigoMipo has joined.
16:37:14 -!- Phantom_Hoover has joined.
16:37:31 -!- copumpkin has quit (Ping timeout: 246 seconds).
16:38:07 -!- copumpkin has joined.
16:38:08 -!- copumpkin has quit (Changing host).
16:38:08 -!- copumpkin has joined.
16:47:41 -!- Sgeo_ has joined.
16:51:27 -!- Sgeo has quit (Ping timeout: 276 seconds).
17:02:28 -!- Slereah has joined.
17:18:56 -!- Sgeo__ has joined.
17:21:25 -!- Sgeo_ has quit (Ping timeout: 250 seconds).
17:23:36 -!- Sgeo has joined.
17:24:00 -!- Sgeo__ has quit (Ping timeout: 255 seconds).
17:32:27 -!- Sgeo_ has joined.
17:35:29 -!- Sgeo_ has quit (Read error: Connection reset by peer).
17:35:42 -!- Sgeo has quit (Ping timeout: 255 seconds).
17:36:52 -!- Sgeo has joined.
17:59:55 -!- monqy has joined.
18:02:04 -!- nooga has joined.
18:16:04 -!- elliott has joined.
18:16:04 -!- elliott_ has quit (Read error: Connection reset by peer).
18:30:54 <Sgeo> I should be able to use calibre to work around Nook Touch's file support limitations, right?
18:40:48 -!- Sgeo_ has joined.
18:41:52 -!- Sgeo has quit (Ping timeout: 255 seconds).
19:01:06 -!- nooga has quit (Ping timeout: 250 seconds).
19:13:46 -!- nooga has joined.
19:17:59 -!- nooga has quit (Ping timeout: 244 seconds).
19:18:52 -!- nooga has joined.
19:24:35 -!- oerjan has joined.
19:27:06 <elliott> hey oerjan unsafePerformIO $0 = $0;
19:27:33 -!- micahjohnston has left ("〆").
19:34:27 <elliott> Gregor: Can GGGGGGGGGGGGC handle two consecutive non-pointer members?
19:34:37 <elliott> You can't really tag the previous field in that situation.
19:35:17 <elliott> kanji of some kind, it seems
19:35:21 -!- elliott has left ("Leaving").
19:35:23 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
19:35:26 -!- elliott has joined.
19:38:26 -!- derrik has joined.
19:41:02 <Gregor> elliott: I assume you're referring to Fythe?
19:41:11 <elliott> Gregor: No I am referring to GGGGGGGGGC
19:41:24 <Gregor> GGGGC only uses tagging w/ Fythe.
19:41:28 <elliott> GGGGC with Fythe's model of distinguishing literal values
19:41:38 <elliott> Can that model handle consecutive non-pointers?
19:41:50 <Gregor> Remember what a Fythe value is?
19:42:04 <elliott> Yes, but that doesn't answer my question :P
19:42:27 <elliott> It tells me you didn't do it that way.
19:42:32 <Gregor> It cannot handle consecutive non-pointers, and it doesn't need to.
19:42:33 <elliott> It doesn't tell me it can't be done that way.
19:42:53 <elliott> I'll probably just put a tag on every word, then.
19:43:44 -!- derrik has left.
19:45:45 <oerjan> <elliott> hey oerjan unsafePerformIO $0 = $0; <-- wat
19:46:30 <oerjan> = $0; does not parse afaik
19:46:44 <elliott> oerjan: who said it was haskell
19:47:19 <elliott> _start = (>>) main (return Unit);
19:47:19 <elliott> main = (>>) (putStrLn _Cstr_0) (putStrLn _Cstr_1);
19:47:20 <elliott> _Cstr_0 = (:) 72 ((:) 101 ((:) 108 ((:) 108 ((:) 111 ((:) 44 ((:) 32 ((:) 119 ((:) 111 ((:) 114 ((:) 108 ((:) 100 ((:) 33 []))))))))))));
19:47:20 <elliott> _Cstr_1 = (:) 71 ((:) 111 ((:) 111 ((:) 100 ((:) 98 ((:) 121 ((:) 101 ((:) 44 ((:) 32 ((:) 99 ((:) 114 ((:) 117 ((:) 101 ((:) 108 ((:) 32 ((:) 119 ((:) 111 ((:) 114 ((:) 108 ((:) 100 ((:) 33 []))))))))))))))))))));
19:47:28 <elliott> (>>=) $0 $1 = seq# $0 ($1 $0);
19:47:34 <elliott> #foreign import "std" "putStrLn#"
20:01:45 <elliott> Gregor: Erm, did prgmr create a default account called codu on your system? X-D
20:01:51 <newsham> elliott: is that output from some program?
20:03:10 <newsham> I see. do you want a psychological referral?
20:03:35 <elliott> newsham: been there, done that.
20:03:35 <Gregor> elliott: I don't recall. I don't think so, I think I created it.
20:03:41 <newsham> next q: whats it input for? :)
20:03:47 <elliott> newsham: a hypothetical program
20:04:02 <elliott> Gregor: What, an account called "codu"? Why would you want an account named that?
20:04:08 <elliott> (My reasons for assuming they do are COMPLICATED)
20:04:14 <newsham> and does "seq# $0 ($1 $0)" work because of some kind of memoization?
20:04:37 <elliott> I don't see how memoisation is relevant
20:04:39 <newsham> if its just hypothetical, why not use teh infexes? :)
20:04:40 <elliott> Don't you just mean sharing?
20:05:04 <newsham> elliott: yes, sharing of the result of seq# on $0
20:05:15 <elliott> Prelude System.IO.Unsafe> let x = unsafePerformIO (print 99 >> return 0)
20:05:15 <elliott> Prelude System.IO.Unsafe> x `seq` id x
20:05:19 <newsham> memoizing the result the first time its computed
20:05:21 <elliott> That's a basic property of all functional languages
20:05:25 <elliott> It's just reducing a thunk
20:05:29 <Gregor> elliott: My main account is codu, because why not?
20:05:33 <elliott> Well, sure, that's a kind of memoisation, but that seems backwards to me
20:05:47 <newsham> elliott: yah, replacing the thunk with its result.. memoization.
20:06:01 <Phantom_Hoover> newsham, hey, why is your name an example of the Curry-Howard isomorphism?
20:06:14 <elliott> newsham: it's more like memoisation is ak ind of thunk reduction.
20:06:46 <newsham> the whois is that because i think CH is wikkit cool
20:08:35 <oerjan> elliott: you are of course aware that haskell permits implementations to assume referential transparency and evaluate x more than once.
20:09:11 <elliott> oerjan: I'm just saying that any implementation that _didn't_ reduce thunks in such a way would be completely braindead
20:09:14 <oerjan> and that ghc may have inlining optimizations which risk doing that.
20:09:19 <elliott> since sharing is integral to doing just about /anything/ circular with Haskell
20:09:36 <elliott> i.e., non-sharing implementations don't scale in a very major way in the physical universe
20:10:52 <newsham> http://www.smbc-comics.com/index.php?db=comics&id=2245
20:11:17 <elliott> newsham: Anyway, there is no sharing or thunks as such in my model
20:11:20 <elliott> It's purely based on symbolic term rewriting
20:11:27 <elliott> So the "sharing" is just in that it literally reduces the term
20:11:48 <elliott> Because otherwise your IO actions would happen in a totally random order?
20:12:12 <newsham> elliott: but if there's no sharing, they can still happen in an odd order
20:12:15 <newsham> because they can happen two times
20:12:23 <oerjan> elliott: in ghc you are _not_ guaranteed that a is evaluated first in a `seq` b
20:12:43 <newsham> also when does io "happen" in term rewriting?
20:12:55 <elliott> oerjan: what's the explicit guarantee?
20:13:04 <elliott> newsham: Of course there's sharing
20:13:09 <elliott> It's implicit in the term reduction model
20:13:16 <oerjan> the explicit guarantee is that both will be evaluated before the seq returns...
20:13:18 <newsham> [10:08] < elliott> newsham: Anyway, there is no sharing or thunks as such in my model
20:13:26 <elliott> yes, because it's not explicit
20:13:39 <elliott> newsham: Anyway, it "happens" completely unsafely; whenever (putStrLn# s) gets reduced, it prints out the line.
20:13:45 <lambdabot> http://cs.hubfs.net/forums/thread/16353.aspx
20:13:45 <lambdabot> Title: hubFS: THE place for F# - Using PSeq from powerpack
20:13:49 <elliott> Of course it is totally unsafe and impure, but this is just the low-level, untyped implementation.
20:13:50 <lambdabot> Control.Parallel pseq :: a -> b -> b
20:13:52 <elliott> The focus is simplicity and speed.
20:14:19 <oerjan> elliott: pseq does give such a guarantee though, and exists precisely because seq doesn't
20:14:40 <newsham> http://www.thenewsh.com/~newsham/lambda/prelude.lam
20:15:16 <elliott> oerjan: In my model, the semantics are simple: when reducing (seq# a b), if a can be reduced, then it will be, within the seq# application; otherwise, the expression will be replaced by b.
20:20:12 <elliott> pikhq_: http://www.reddit.com/r/programming/comments/ie7ze/lambdas_in_c/ post ur real lambdas
20:22:46 <monqy> who needs closures when you have c
20:23:03 <monqy> http://www.reddit.com/r/programming/comments/ie7ze/lambdas_in_c/
20:23:12 <monqy> 13:20:13 < elliott> pikhq_: http://www.reddit.com/r/programming/comments/ie7ze/lambdas_in_c/ post ur real lambdas
20:23:59 -!- zzo38 has joined.
20:24:31 <newsham> phantom: at the very least I wanted a way to display numbers as ascii
20:24:35 <newsham> i do have numbers as lambdas, too
20:25:04 <elliott> (\f -> f a b c d (... sixty four arguments ...))
20:25:38 <newsham> phantom: actually I dont see numbers as lambdas in the prelude.. but i've written em! :)
20:26:35 <elliott> Pah, I implement numbers in the place they _should_ be: the type system.
20:26:55 <Gregor> Phantom_Hoover: I can see nothing wrong with glogbot's rsync.
20:27:20 <copumpkin> elliott: real men implement numbers in a language that doesn't have a distinction between type system and values
20:27:32 <pikhq_> elliott: It's actually pretty close to the same thing.
20:27:35 <elliott> coppro: real men implement numbers in epigram two
20:27:53 <newsham> elliott: my "lambda" is just plain ole vanilla untyped lambda calc
20:28:00 <elliott> newsham: vanilla, more like villain
20:28:14 <pikhq_> elliott: Mine just return a struct with closed variables instead of a raw function pointer.
20:28:24 <newsham> would a villain help me do this? http://www.thenewsh.com/~newsham/x/obf2.py
20:28:53 <monqy> that looks like the work of a villain alright
20:29:22 <Gregor> Phantom_Hoover: ... fail.
20:29:32 <Gregor> Phantom_Hoover: glogbot tells you the rsync path for the channel you ask it in.
20:29:41 <Gregor> If you ask it in PM, it'll tell you where the hypothetical PM logs would be.
20:29:52 -!- foocraft has quit (Ping timeout: 255 seconds).
20:30:03 <newsham> obf2.py is a translation of http://www.thenewsh.com/~newsham/lambda/primes2.lam with a very minimal evaluator
20:30:03 <oerjan> Gregor: that sounds somewhat noisy
20:30:46 <oerjan> E_GLOGBOTBANNEDFORSPAMMING
20:30:51 <newsham> perhaps I should translate it to SKI.
20:31:12 <Phantom_Hoover> Gregor, more relevantly, it's not at all clear that it works that way.
20:31:14 <Gregor> oerjan: E_FORONEITRESPONDSINNOTICEANDFORTWOITONLYRESPONDSWHENASKEDJUSTLIKEEVERYOTHERBOT
20:31:45 <oerjan> E_GREGORTHINKSIMSERIOUS
20:32:46 <pikhq_> That Lazy K interpreter sucks. It leaks memory like a seive.
20:33:18 <newsham> ph: i'd still have to write the code to expand macros, and translate, and minimize the number of parens.
20:33:24 <Gregor> (You incompetent morons >_< )
20:33:29 <newsham> oh and also write a small set of ski prims
20:35:56 <Gregor> elliott: Ohhey, you can type symbols above numbers (and presumably numbers, too)
20:36:27 <elliott> im waiting for the new os x so i dont have to reinstall twice
20:36:34 <elliott> (once to wipe it for sending to apple)
20:36:38 <elliott> (once to inevitably upgrade after)
20:38:41 <Phantom_Hoover> <newsham> ph: i'd still have to write the code to expand macros, and translate, and minimize the number of parens.
20:38:58 <oerjan> one install to wipe them all
20:39:37 <elliott> Phantom_Hoover: is yours just state realworld?
20:39:48 <elliott> where realworld is i guess the input and output streams in lazy k
20:40:16 <Phantom_Hoover> I can't remember the details; realworld is a triple of somethin.
20:42:55 <newsham> in mine I just used a state monad that passes around a dummy value to sequence my "io"
20:43:11 <elliott> coppro: stop being named coppro
20:43:39 -!- foocraft has joined.
20:44:40 <elliott> well his io model is probably different
20:44:50 <newsham> phantom: i've used it successfully :)
20:45:37 <newsham> yah. i'm using builtin ints. and I have the ability to print a builtin string (but not manipulate it.. its more of a symbol than a string)
20:46:09 <newsham> here's an example program that uses bind_ to sequence IO http://www.thenewsh.com/~newsham/lambda/hanoi.lam
20:48:30 <Phantom_Hoover> Someone recommend one of the Schemes in Debian's repository to me; I can't pick.
20:48:59 <elliott> it's java, but it's rigidly rfivers-compliant.
20:49:31 <elliott> Phantom_Hoover: get the deb from http://packages.debian.org/wheezy/main/sisc then
20:49:33 * oerjan thought elliott was misspelling sigh there
20:54:38 -!- myndzi has quit (Ping timeout: 250 seconds).
20:57:06 <Phantom_Hoover> newsham, wait did I link you to my quasi-monadic IO thing?
20:57:20 -!- myndzi has joined.
20:57:35 <newsham> i dont know if you did, i dont know if i care.. more info required
20:57:44 <monqy> i agree with newsham
20:57:54 <Phantom_Hoover> newsham, http://esolangs.org/wiki/User:Phantom_Hoover/io.scm
20:58:32 <newsham> ty, i'll take a looksy (but not right now)
20:59:17 * Phantom_Hoover notes that he still hasn't cleaned up the bind function after it was strictified to no avail.
21:02:03 <elliott> http://esolangs.org/wiki/D1ffe7e45e no top
21:02:13 -!- quintopia has quit (Remote host closed the connection).
21:02:30 <monqy> elliott did you see madk's pogo interpreter('s source code)
21:02:52 <monqy> http://dl.dropbox.com/u/10116881/esoteric/PoGo.zip
21:03:01 <elliott> oh dropbox famous code distirbution service
21:03:34 <Sgeo_> I'm not sure which is sadder, the video or the Christians trying and failing to explain why it's wrong http://www.youtube.com/watch?v=myfZ8hmmApE
21:03:50 <monqy> it does a case to assign every command a number
21:03:57 <monqy> and then does a case on the numbers
21:04:00 <Sgeo_> Oh, there's one that hits a relevant point
21:04:11 <elliott> http://prog21.dadgum.com/21.html
21:04:11 <elliott> http://prog21.dadgum.com/83.html
21:04:13 -!- quintopia has joined.
21:04:13 -!- quintopia has quit (Changing host).
21:04:13 -!- quintopia has joined.
21:04:23 <elliott> monqy: this is impressive code
21:04:58 <elliott> <Sgeo_> I'm not sure which is sadder, the video or the Christians trying and failing to explain why it's wrong http://www.youtube.com/watch?v=myfZ8hmmApE
21:05:04 <elliott> --Sgeo "I disproved God with Prolog" Sgeo
21:05:06 <monqy> see Function masculinity
21:05:10 <monqy> (and where it's called)
21:05:21 <elliott> this is good soundtrack for god disproving
21:06:01 <monqy> i like lines 294-302
21:06:50 <elliott> disproving that god exists to the song: Beer
21:07:14 <elliott> want to archive it forever
21:07:41 <NihilistDandy> And the little cop-out at the end just makes it all the sweeter
21:08:02 <monqy> i like the comments
21:08:08 <Sgeo_> Phantom_Hoover, what's wrong with it this time?
21:08:12 <Sgeo_> monqy, I'm SJGster >.>
21:08:18 <elliott> http://www.youtube.com/watch?v=Iu6lgNgAH38
21:08:31 <elliott> "Location: Admiring them boobs"
21:08:51 <elliott> "I do suspect that the idea of an omniscient being can be mathematically disproven, but I don't think your video does that."
21:09:48 <NihilistDandy> elliott: His mouse obeys the law of the excluded middle :/
21:09:55 <elliott> `addquote <NihilistDandy> elliott: His mouse obeys the law of the excluded middle :/
21:09:59 <HackEgo> 476) <NihilistDandy> elliott: His mouse obeys the law of the excluded middle :/
21:10:02 <HackEgo> 278) <elliott> mtve, now he's an expert idler. <nddrylliog> mtve: kitty kitty kitty
21:10:07 <HackEgo> 72) <fungot> Oranjer: the taylor's series is also alternately fnord as follows ( i'm using the latex notation here): david ben gurion signed the compensation agreement with germany when there was considerable division over these issues, because these are speculations without " any historical basis".
21:10:08 <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.
21:10:10 <HackEgo> 297) <Vorpal> `addquote <elliott_> I'm a bit 'tarded. <Vorpal> (NOTHING PERSONAL!)
21:10:11 <HackEgo> 352) <olsner> django is named after a person? <olsner> thought it would be a giraffe or something
21:10:11 <HackEgo> 408) <monqy> `quote django <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 <monqy> thankfully only two
21:10:13 <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
21:10:14 <HackEgo> 115) <Gregor> I don't know that I've ever heard apocalypi described in terms of depth ...
21:10:24 <Sgeo_> Phantom_Hoover, I haven't finished manually making sure nothing links to anything malicious
21:10:31 <Sgeo_> Phantom_Hoover, what directory do you want?
21:10:50 <Phantom_Hoover> Also, fix your crack pairings so they include all 4 quadrants.
21:11:05 <Sgeo_> Phantom_Hoover, the crack pairings generator is obsolete
21:11:09 -!- Nisstyre has joined.
21:11:16 <elliott> why am i reading these words on my screen
21:11:17 <Sgeo_> More tables have been added to the thread it's based off, but then the thread was closed
21:11:44 <elliott> Nisstyre: who's nissing my tyres
21:12:00 <elliott> NihilistDandy: youtueb intelectual
21:12:07 <elliott> Nisstyre: i want my tyres unnissed
21:12:13 <elliott> nissing probably does bad things to my car
21:12:25 <elliott> so which was it, wiki or /list
21:12:33 <elliott> that's the only two ways anyone ever finds us
21:12:43 <Nisstyre> so, this channel is for Brainfuck, GolfScript, etc..?
21:13:03 <elliott> also the official bf joust channel
21:13:05 <elliott> ...but usually we're offtopic
21:13:07 <Phantom_Hoover> Wait, we were actually talking about esolangs only 10 minutes ago or so.
21:13:11 <elliott> NihilistDandy: oh well that's just personal recruitment.
21:13:24 <Phantom_Hoover> NihilistDandy, you didn't come through during the Great Channelling, did you?
21:13:55 <NihilistDandy> I think elliott dropped into #haskell and said "hey, somebody come to #esoteric"
21:14:32 <Phantom_Hoover> I dropped into #haskell and told them to come to here, and then I told the one guy who showed up to join #ooc-lang.
21:14:52 <Nisstyre> I got here by doing /j #brainfuck out of curiosity
21:15:13 <elliott> Nisstyre: well, you're in the right place
21:15:19 <elliott> unlike the people who somehow think freenode has religious channels...
21:15:20 <NihilistDandy> Latest comment on that 2+2=5 video: Aλγεβρα. the best part of mathematics. God i adore it.
21:15:40 <newsham> #esoteric is like the only place #haskell isn't considered esoteric.
21:15:43 <monqy> i remember the guy who thought this was a hiphop channel but i forget his name
21:16:04 <elliott> newsham: i would say that the top tier intellectuals of #haskell are #esoteric quality :D
21:16:11 <elliott> unlike all those terrible _practical_ folk
21:16:26 <NihilistDandy> monqy: Three people in the last 24 hours seem to have thought it's some kind of tech support channel
21:16:31 <elliott> oerjan became so top-tier he miraculously stopped being in #haskell any more, he was just that #esoteric
21:16:41 <Nisstyre> elliott: surprising amount of people in #python are Schemers/Haskellers
21:16:50 <elliott> Nisstyre: you may be interested in our wiki: http://esolangs.org/wiki/Main_Page
21:16:59 <Nisstyre> and occasionally MLers and Ocamlers
21:17:07 <elliott> yeah, there's a lot of people in #python who are there because of... bad life decisions i guess?
21:17:13 <elliott> rather than innate character flaws such as enjoying python
21:17:21 <Nisstyre> NihilistDandy: no, PHP's not a language
21:17:26 <newsham> elliott: seems like they'd rather join #coq though ;-)
21:17:31 <NihilistDandy> Nisstyre: It's a reference to an earlier conversation
21:17:40 <elliott> newsham: better than those ruffians in #agda
21:17:50 <elliott> NihilistDandy: [asterisk]trolling session
21:18:09 <newsham> #python has got to be the least useful channel on all of ircdom
21:18:32 <Nisstyre> it's too fascist about staying on topic
21:18:41 <elliott> fifteen people who don't know the answer
21:18:43 <elliott> waste five hours of your time
21:18:47 <newsham> nihil: they talk about how stupid whatever question was just asked is
21:18:48 <elliott> by trying to get the source code to your entire project
21:18:54 <elliott> then they tell you to completely restructure and write everything
21:18:56 <Nisstyre> elliott: #ubuntu is the same way
21:18:59 <elliott> because they don't know how to solve your problem
21:19:02 <Nisstyre> and part of the reason I switched to arch
21:19:12 <elliott> Nisstyre: my experience with #ubuntu is that it's so high-traffic you literally never get a response.
21:19:17 <elliott> unless someone just pipes ubottu at you unjustifiably
21:19:32 <elliott> no but theres a ##programming
21:19:44 <Nisstyre> and it's a pretty boring channel
21:19:46 <elliott> Nisstyre: also, you could have just switched to Debian :-) ...although #debian isn't that good either
21:19:55 <elliott> although it _is_ unofficial, IIRC, maybe it's actually ##debian
21:20:00 <elliott> the official Debian is on OFTC
21:20:01 <Nisstyre> elliott: well I can't even remember why I decided to try Arch now
21:20:07 <elliott> NihilistDandy: full of Gentoo users, I'd presume, so... "yeah"
21:20:10 <Nisstyre> I think it was just on someone's recommendation
21:21:18 <elliott> yeah i think #ubuntu is objectively the least helpful channel on irc
21:21:21 -!- variable has left ("I found 1 in /dev/zero").
21:21:38 <monqy> I've never been in any of these channels
21:21:43 <Nisstyre> NihilistDandy: it's full of this guy http://www.filehurricane.com/photos/7162007115229PM_ricer_10.jpg
21:21:51 <elliott> monqy: go to ##php its like going to a zoo
21:22:00 -!- variable has quit (Remote host closed the connection).
21:22:11 <Nisstyre> elliott: using php is like going to a zoo
21:22:19 <elliott> oblig. http://funroll-loops.info/
21:22:20 <Nisstyre> a zoo where all of the animals are in the same cage
21:22:28 <Nisstyre> (aka one massive namespace for everything)
21:22:29 <elliott> Nisstyre: no, it's interviewing for the position of an animal at the zoo
21:22:57 <newsham> gentoo http://funroll-loops.info/computer.jpg
21:22:58 <quintopia> elliott: that is not true. i have determined that like 10% of #ubuntu users actually get answers. #plover is now the least useful.
21:23:16 <NihilistDandy> Hey, now, you can't blame the PHP users. They lack the higher cognitive functions to operate as we do.~
21:23:20 <quintopia> since there are only four people there counting me, and i haven't gotten an answer to the question i've asked three times now
21:23:33 <Nisstyre> you only get an answer if your problem is something like "I accidentally removed the gnome panel how do i get it back???"
21:23:41 <Phantom_Hoover> NihilistDandy, yeah, I feel bad for mocking elliott about it.
21:23:42 <quintopia> so it's not like there's too much traffic for people to see my question
21:24:10 <elliott> starting on php when i was eight years old is like
21:24:11 <pikhq_> Man, CVS is *so freaking bad*...
21:24:15 <elliott> those documentaries about ELEVEN YEAR OLD CHAIN SMOKERS
21:24:22 <elliott> thats exactly what its like to grow up on php
21:24:33 <elliott> you don't know any world outside of your infestation
21:24:55 <pikhq_> I cannot believe there exists any CVS repositories still.
21:25:00 <Phantom_Hoover> elliott, yeah, there should be a minimum age before you can be exposed to programming.
21:25:08 <elliott> cvs is great, it's like c++
21:25:17 <elliott> if you forget it's serious
21:25:18 <Nisstyre> replace_this_one_character_in_a_string() <- how you name php functions
21:25:25 <elliott> Phantom_Hoover: or maybe we should just ban PHP altogether
21:25:35 <newsham> i disagree completely.. you should be able to program as early as 5yrs old, but you shouldnt be allowed to use a computer until you're 12.
21:25:38 <NihilistDandy> I thought it had gone the way of the dinosaurs and the Dodge Dart
21:25:45 <quintopia> hurray! i got a question answered!
21:25:46 <pikhq_> git cvsimport is pretty much the only way to make it usable.
21:25:50 <elliott> newsham: reminds me of that eler strip...
21:26:19 <pikhq_> Likewise, git-svn is the only way to make Subversion usable.
21:26:25 <elliott> newsham: http://geekz.co.uk/lovesraymond/wp-content/images/ep032.jpg
21:26:27 <elliott> newsham: pretend this loads.
21:26:42 <pikhq_> It probably doesn't help that I've only started to understand *any* version control system after figuring out Git.
21:26:55 <pikhq_> The various distributed VCSs make sense.
21:26:55 <elliott> oh, over two years since eler updated
21:27:17 <elliott> (over four since the last _real_ update)
21:27:17 <newsham> can you pretend to describe it?
21:27:18 <monqy> im reading http://esolangs.org/wiki/D1ffe7e45e now
21:27:24 <pikhq_> Non-distributed ones *literally make no sense*, and I have no idea how anyone uses them without resorting to pulling it into git.
21:27:31 <elliott> monqy: should i do a world-famous dramatic reading is it required...
21:27:32 <pikhq_> NihilistDandy: I prefer git, but hg's alright.
21:27:33 <elliott> Phantom_Hoover: which prophec
21:27:46 <monqy> Its command set is an expansion of BrainFuck.
21:27:56 <pikhq_> elliott: The differences are slight, I agree.
21:28:00 <Phantom_Hoover> elliott, the one that it gets updated in December 2012, and the shock brings the net down,
21:28:13 <NihilistDandy> http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/
21:28:14 <pikhq_> elliott: Making it not like "emacs vs. vim" but more like "emacs vs. xemacs". :P
21:28:42 <Nisstyre> so uh, I met be getting paid to write php. I'm not sure if the disgust I'll feel every second is worth the money.
21:28:42 <elliott> pikhq_: and either side you take youre still advocating for a system whose central idea is "lets just store the entire tree on every commit and compress it if it gets too much"
21:28:52 <elliott> so like "version control system" more like "tree list system"
21:29:01 <elliott> Nisstyre: no. homelessness is better.
21:29:23 <Nisstyre> elliott: maybe I can write a php code generator in Haskell
21:29:31 <elliott> everyone loves capitalising brainfuck
21:29:38 <pikhq_> elliott: Well, yes, the model is more "Let's implement a filesystem that's amenable to versioning" than "Let's implement a version control system".
21:29:45 <elliott> Nisstyre: just do ghc core -> php
21:29:48 <elliott> Nisstyre: it'll be slow as fuck, but, ...
21:30:09 <elliott> failed at the capitalisation
21:30:41 <elliott> Phantom_Hoover: there is universal agreement on that, the only disagreement is when its the first word in a sentence
21:30:48 <Phantom_Hoover> There is no evidence beyond a single word in the readme that you're right, and you're being idiotically pedantic about it.
21:30:59 <elliott> Phantom_Hoover: er, you realise that there has never been any dispute about this?
21:31:05 <elliott> the only argument i had with ais was about first-sentence positioning.
21:31:14 <elliott> we agree unanimously that its first-letter uncapsed in the middle of a sentence.
21:31:21 <elliott> there is absolutely no evidence in the original distribution to suggest otherwise whatsoever.
21:31:29 <elliott> and a few pieces of evidence in favour.
21:31:40 <monqy> Equivalent of BrainFuck [-]
21:32:02 <monqy> Although d1ffe7e45e has all the commands that BrainFuck does, the language may or may not be able to achieve an Arbitrary effect at an arbitrary point so it is difficult to determine whether or not it is Turing-complete.
21:32:36 <Phantom_Hoover> elliott, in any case, 'Brainfuck' is well within the bounds of acceptability; 'BrainFuck' is not.
21:32:48 <pikhq_> elliott: And, of course, the only really fundamentally important and *so absurdly better* bit about git/hg/etc. is that they're distributed. This is what they get right that everything else does not.
21:32:49 <elliott> yeah but if youre gonna brick peoples heads in for capitalisation
21:32:52 <elliott> its pretty ironic to get it wrong yourself
21:33:12 <elliott> pikhq_: whats your excuse for not using darcs
21:33:24 <elliott> Nisstyre: you're not capitalising your statements, you're already outside the bounds of "standard" written english
21:33:45 <elliott> <Nisstyre> I am laughing out loud.
21:33:48 <elliott> <Nisstyre> elliott: maybe I can write a php code generator in Haskell
21:33:59 <elliott> <Nisstyre> Elliott, perhaps I can write a generator for PHP code in the Haskell language.
21:34:05 <elliott> <Nisstyre> so uh, I met be getting paid to write php. I'm not sure if the disgust I'll feel every second is worth the money.
21:34:12 <elliott> <Nisstyre> It is possible that I am going to be paid to write PHP code. [...]
21:34:13 <monqy> the language defined by which haskell specification
21:34:41 <Nisstyre> monqy: the Glasgow Haskell Compiler.
21:34:59 <Nisstyre> whatever revision is the latest
21:35:03 <pikhq_> Nisstyre: That's not a spec, that's an implementation of a spec.
21:37:05 <elliott> its great to be last nite cuz when youre last nite everythings so awesome
21:37:18 <Sgeo_> I think the mathematical disproof that I'm thinking might work is a bit as shaky as "Can God make a rock..." except applied to omniscience. Like asking God to make 1+1=3, but knowledge-wise
21:37:43 <monqy> its easier to disprove things when you throw omnipotence into the mix
21:38:02 <Nisstyre> Sgeo_: have you ever heard of theological noncognitivism?
21:38:30 <Nisstyre> no, theological noncognitivism
21:38:35 <elliott> "Theological noncognitivism is the argument that religious language, and specifically words like "god", are not cognitively meaningful."
21:38:46 <Nisstyre> elliott: it's more or less true
21:38:49 <elliott> you instantly win every argument because they use words you don't like
21:38:59 <Nisstyre> it doesn't really have any primary attributes that you can use to describe it
21:39:08 <elliott> yeah but its kind of like saying "Russell's set" doesn't mean antyhing
21:39:12 <elliott> just because it's paradoxical
21:39:23 <Sgeo_> Nisstyre, I guess to an extent, I agree, since unless you define "God", it's meaningless to have a discussion. Any two people will have two or more different ideas about what God is.
21:39:25 <elliott> and therefore Russell's paradox isn't real
21:39:25 <Nisstyre> you can only define it in terms of "God isn't this, or God is like this"
21:39:50 <Nisstyre> you can't debate something where you have a completely different idea of what the subject is
21:40:14 <NihilistDandy> Well, considering that the definition of God seems to be a moving target when the subject of proof or disproof comes up, it seems like a futile effort
21:40:59 <Sgeo_> Which is why any disproof should contain a description of what sort of God is disproved.
21:41:24 <elliott> god cant exist wnhere god=onkey: proof: if evoluations is true then why monkeys??
21:41:57 <Nisstyre> it can't literally be anything you want
21:42:09 <Sgeo_> NihilistDandy, does Zeus count as a god?
21:42:10 <Nisstyre> "I believe that God is really all of the whales in the ocean"
21:42:30 <elliott> Nisstyre: thats a rather useless definition
21:42:31 <NihilistDandy> If you can disprove one god, I don't see why you couldn't disprove them all.
21:42:43 <monqy> useless definitions of god are best definitions of god
21:42:43 <Sgeo_> Do sufficiently advanced aliens count as gods? Do the Nox count as gods? Does Q count as a god?
21:42:44 <elliott> in that, you might as well have a word fodijg, which means nothing.
21:42:58 <NihilistDandy> Nisstyre: A category can be anything you want, it still satisfies basic rules.
21:43:21 <Nisstyre> NihilistDandy: okay, it has to be un-observable
21:43:38 <Nisstyre> which my definition of whales wouldn't fall under
21:43:38 <Sgeo_> Are the Goa'uld gods? Are the Ori? (Not too keen on SG-1's ever-changing definition of "god", which in order to exclude the Ori, IMO, requires "good")
21:43:40 <NihilistDandy> Sgeo_: First we have to define first principles, then we can decide what qualifies. :D
21:44:54 <Sgeo_> Nisstyre, the God of Abaham, Isaac, and Jacob is observable when it wants to be observable...
21:45:01 <Nisstyre> They all have in common the fact we don't know how they work NihilistDandy
21:45:22 <NihilistDandy> Nisstyre: People didn't know how groups worked until they tried. :/
21:45:54 <NihilistDandy> Benevolence, for instance, is not an axiom of godhood. There are evil (or at least dickish) gods in mythology.
21:45:54 <Sgeo_> Nisstyre, God speaking to Moses is something that Moses is capable of noticing
21:46:17 <oerjan> <elliott> LMAO Aλγεβρα <-- no one told them it's arabic, not greek?
21:46:35 <elliott> the most artistic of sciences
21:46:47 <monqy> no.1 axiom of gods: theres no axioms of gods
21:47:07 <NihilistDandy> monqy: Fight Club is not a well-defined mathematical object.
21:50:35 -!- Nisstyre has quit (Ping timeout: 260 seconds).
21:51:31 -!- Nisstyre has joined.
21:52:13 <Phantom_Hoover> I go to clean up the shrapnel from a teabag and you're discussing the definition of god out of nowhere.
21:52:50 <elliott> `addquote <Phantom_Hoover> I go to clean up the shrapnel from a teabag and you're discussing the definition of god out of nowhere.
21:52:52 <HackEgo> 477) <Phantom_Hoover> I go to clean up the shrapnel from a teabag and you're discussing the definition of god out of nowhere.
22:01:56 <Sgeo_> "So it follows that to proove the existence or necessity of the number one will be to prove the existence of God."
22:01:59 <Sgeo_> http://www.youtube.com/watch?v=5lD4Ze9KtHI
22:02:53 <elliott> re you searching for youtube vieos just so you ancomment on them
22:03:04 <Sgeo_> (Basically, he used the Bible to say "God can be identified with 1", and I think is running with it... despite previously having claimed that this won't require the viewer to trust the Bible as an authority)
22:03:18 <Sgeo_> elliott, no, not just so I can comment
22:03:18 <monqy> this music isnt classy enough
22:04:01 <elliott> play him off keyboard cat started playing in another cat as it started
22:04:20 <elliott> @TheDcac i didnt say if you hated him i just said why dont you want him to exist?
22:04:20 <monqy> this proof is boring
22:04:21 <elliott> besides half of what we believe in science is an educated guess anyway
22:04:21 <oerjan> monqy: not enough inheritance?
22:04:33 <elliott> http://www.walkinginfreedom.blogspot.com/
22:08:44 <monqy> im going to look at the d1ffe7e45e interpreter
22:09:08 <monqy> code.txt "your code goes here"
22:09:46 <elliott> you invent your own interp
22:09:56 <monqy> The interpreter uses an unbounded tape size, but due to technical limitations will stop being unbounded if the tap size reaches 2^63 cells.
22:11:08 <elliott> `quote "The interpreter uses an unbounded tape size, but due to technical limitations will stop being unbounded if the tap size reaches 2^63 cells." --d1ffe7e45e interpreter
22:11:17 <elliott> `addquote <d1ffe7e45e interpreter> The interpreter uses an unbounded tape size, but due to technical limitations will stop being unbounded if the tap size reaches 2^63 cells.
22:11:18 <HackEgo> 478) <d1ffe7e45e interpreter> The interpreter uses an unbounded tape size, but due to technical limitations will stop being unbounded if the tap size reaches 2^63 cells.
22:12:45 <monqy> the source code still has a bunch of functions left in from the pogo interpreter
22:12:57 <monqy> like bottles and masculinity
22:13:10 <elliott> The problem was posed by John McCarthy as follows. We pick two numbers a and b, so that a>=b and both numbers are within the range [2,99]. We give Mr.P the product a*b and give Mr.S the sum a+b. The following dialog takes place:
22:13:10 <elliott> Mr.P: I don't know the numbers
22:13:10 <elliott> Mr.S: I knew you didn't know. I don't know either
22:13:11 <elliott> Mr.P: Now I know the numbers
22:14:27 -!- eitan_ has joined.
22:14:46 -!- eitan_ has changed nick to variable.
22:15:26 <elliott> oh erm what is this mail i have received
22:16:11 -!- variable has quit (Remote host closed the connection).
22:16:18 <monqy> female enhancement
22:16:23 -!- variable has joined.
22:16:49 <elliott> gmail why are you being slow
22:16:55 <elliott> im going to slit your throat and eat your blood-- thanks for being fast
22:17:03 <elliott> oh now youre not loading the mail
22:17:06 <elliott> ill slit your throat and eat your bl
22:18:04 <monqy> firefox 5 whatsnew screen has a picture of windows im not using windows. it also asked me if i wanted to make firefox my default browser. how rude
22:18:12 <monqy> whats an "awesome bar"
22:18:18 <monqy> I don't seem to have one
22:18:47 <elliott> if its insufficiently awesome beat your head against a wall until it is
22:18:49 <monqy> oh it's just the "location bar"
22:19:58 <monqy> yeah i usually use chromium
22:20:06 <monqy> but i also have firefox for reasosn
22:20:28 <monqy> http://support.mozilla.com/media/img/wiki/morehelp.nurse.png
22:23:24 <monqy> my gmail is fast...
22:27:56 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:42:08 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:52:54 -!- variable has quit (Read error: Operation timed out).
23:00:49 -!- elliott has quit (Ping timeout: 258 seconds).
23:04:13 -!- hagb4rd has quit (Ping timeout: 255 seconds).
23:08:55 <Phantom_Hoover> Conclusion: MigoMipo = copumpkin = variable = elliott = hagb4rd.
23:10:12 -!- copumpkin has joined.
23:10:13 -!- copumpkin has quit (Changing host).
23:10:13 -!- copumpkin has joined.
23:12:27 <oerjan> Phantom_Hoover: you're just saying that to hide the fact that they are all your sockpuppets
23:12:36 -!- variable has joined.
23:19:46 <quintopia> or to hide the fact that it was your fault no one spoke in this channel for over half an hour
23:20:02 <zzo38> Now I invented the second pokemon card puzzle, which is also "win this turn". Maybe the third one will then, instead, be "maximize your chances of winning".
23:22:33 <zzo38> Even more goals can be added in files written in the future.
23:23:26 <zzo38> Or some with special rules during the game (Pokemon Card GB2 has some opponents who play with a special rule)
23:26:49 <pikhq_> Well, that's fun. musl now seems to have hit a compile bug.
23:33:14 <zzo38> Try to win at these two games: http://zzo38computer.cjb.net/textfile/miscellaneous/pokemon_card/puzzle.1 and http://zzo38computer.cjb.net/textfile/miscellaneous/pokemon_card/puzzle.2
23:33:56 -!- variable has quit (Remote host closed the connection).
23:34:24 <NihilistDandy> zzo38: I THROW THE CARDS ON THE FLOOR AND CALL THE OTHER KID A BITCH
23:34:38 -!- variable has joined.
23:35: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
23:35:20 <zzo38> NihilistDandy: Calling your opponent a bitch and stuff isn't going to help you to win the game. Especially since your opponent will not even get a turn.
23:35:26 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.19033
23:38:00 <zzo38> Can you find the proper way to win?
23:39:19 <Sgeo_> "I think we're about due for an album anyway."
23:40:10 <Sgeo_> Phantom_Hoover, someone on Reddit
23:40:22 <Sgeo_> http://www.reddit.com/r/homestuck/comments/ie7s5/hussie_is_not_working_on_the_eoa_but_hes_making/c231wtz
23:45:04 <Sgeo_> ...we JUST HAD 2 albums released
23:45:28 <Sgeo_> End Of Act 5 is coming sometime soon, presumably
23:51:48 -!- nooga has quit (Ping timeout: 258 seconds).
00:09:23 <pikhq_> Actually, gaaah undefined behavior.
00:09:30 <Phantom_Hoover> OK, so who remembers when we tore into http://xkcd.com/881/ a while ago?
00:18:48 -!- copumpkin has quit (Ping timeout: 246 seconds).
00:19:13 -!- copumpkin has joined.
00:19:13 -!- copumpkin has quit (Changing host).
00:19:13 -!- copumpkin has joined.
00:19:53 <lambdabot> "okokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokok...
00:23:38 <Phantom_Hoover> Ack, reading that log is slightly painful now. A conscience is a terrible burden to bear.
00:28:51 <oerjan> WELL CANCER IS PAINFUL YOU INSENSITIVE CLOD
00:29:41 <Phantom_Hoover> oerjan, Munroe's girlfriend was diagnosed with breast cancer some time before that comic was made, a fact which he has just disclosed.
00:30:16 <oerjan> what do you _think_ i was referring to...
00:31:53 * oerjan actually visits the xkcd blag infrequently, and just accidentally happened to read it this morning.
00:33:11 <Phantom_Hoover> I only happened across it by chance when I checked the comment history of that guy who made the test post that's currently the most-upvoted Reddit submission.
00:46:59 <zzo38> Can you figure out my game of pokemon cards?
00:51:43 <Phantom_Hoover> Sgeo_, it's a huge thread of replies that blossomed off some post.
00:52:12 <zzo38> (The first puzzle is the same as it was before; I added something to the HYPNO card that was supposed to be there but I omitted; it does not affect the puzzle)
00:52:26 <Phantom_Hoover> I've been traversing a single branch for quite a while now.
00:52:28 <zzo38> coppro: Correct, you can only play one energy card per turn. (Regardless of the kind)
00:54:16 -!- NihilistDandy has quit (Read error: Connection reset by peer).
00:54:24 <Sgeo_> Phantom_Hoover, the test post?
00:54:36 <Phantom_Hoover> http://www.reddit.com/r/science/comments/6nz1k/got_six_weeks_try_the_hundred_push_ups_training/
00:54:56 <Phantom_Hoover> It only has 6000 or so comments, but I suspect they're almost all concentrated into the Epic Thread.
00:57:56 <Phantom_Hoover> FFS, it must have been half an hour by now, and I haven't even branched.
00:59:05 <Phantom_Hoover> http://www.reddit.com/r/science/comments/6nz1k/got_six_weeks_try_the_hundred_push_ups_training/c234inn is the current bottom.
01:00:11 <zzo38> coppro: Yes. Very good.
01:00:34 <Sgeo_> Eh? Did I accidentally ignore coppro?
01:00:47 <coppro> No, I have been pming zzo38 and he's been responding publicly
01:00:50 <zzo38> I would like you to try to make a puzzle too
01:00:54 <coppro> I pmed so as not to give the solution away
01:01:21 <zzo38> coppro: OK, do not give solution away is OK. However I like to post public so that other people can try it too
01:02:18 <zzo38> They are not only for you; even though it seems you are the only one who can answer it
01:02:25 <zzo38> Let someone else try please
01:02:29 <coppro> I'm the only one who's bothered, more like
01:02:54 <coppro> Of course, anyone else is free to try. Since I haven't given away the solution to the second one, the puzzle remains fun for everyone else.
01:03:02 <coppro> the first one, regrettably, is in the logs
01:03:37 <zzo38> coppro: Yes it is. It doesn't matter; whoever hasn't read it can try it please
01:05:13 <zzo38> We have a game it costs 1 point to play and you toss a coin until tails. Depending on number of heads: 0 -> 0, 1 -> 0, 2 -> 0, 3 -> 20, 4 -> 40, don't know the rest, 10 or more -> 0.
01:07:35 <zzo38> I should try to make some puzzle with IMAKUNI? card (where you have to maximize your chance of winning)
01:08:44 <zzo38> Can you try to make any puzzle at all?
01:09:00 <coppro> I am busy right now, unfortunately
01:09:13 <zzo38> OK, then maybe someone else
01:10:40 <oerjan> > sum $ zipWith (*) (iterate(/2)(1/2)) [0,0,0,20,40,80,160,320,640,1280]
01:11:00 <zzo38> How many people in here understand pokemon card?
01:11:18 <coppro> ais523 does, but he's not here
01:17:04 -!- Phantom_Hoover has quit (Quit: Leaving).
01:17:38 <zzo38> ais523 last seen 17 hours ago (approx).
01:17:55 -!- BeedaWeeda has joined.
01:18:21 <zzo38> I believe someone has posted something about Pokemon in esolang wiki once but I don't know if it means they would necessarily know how to play pokemon card
01:19:14 * Sgeo_ goes to play with yet another 3d world
01:32:06 -!- foocraft has changed nick to _.
01:32:36 -!- _ has changed nick to Guest99701.
01:33:06 -!- Guest99701 has changed nick to foocraft.
01:35:19 <olsner> meh! why was I highlighted? I wasn't even here :/
01:36:07 <olsner> and the one who highlighted me was elliott and he's not even here
01:37:45 -!- wth has joined.
01:38:11 -!- wth has changed nick to Guest55283.
01:42:06 -!- Patashu has joined.
01:44:29 -!- CakeProphet has quit (Ping timeout: 252 seconds).
01:45:07 -!- Guest55283 has left ("Leaving.").
02:00:01 <olsner> saattana perkele, ei saa peittää parasta ennen voi vittu
02:00:30 <tswett> Sotala satana peittää.
02:02:00 <tswett> Suomi ei laskea irti ketti.
02:03:26 <olsner> quintopia: finnished, yes, finished, no. it's just gibberish afaik
02:05:13 <tswett> Mutinan sota oli vuonna 43 eaa.
02:05:37 <olsner> we should probably try to involve at least one of the finns
02:05:49 <olsner> e.g. fizzie or oklopol
02:06:10 <tswett> Anna minulle kylmä olut!
02:06:52 <tswett> Kuuma. Anna minulle kuuma olut!
02:08:36 <tswett> Perkele kuuma vittu oerjan:sta.
02:09:12 <olsner> I wonder if tswett actually knows finnish or if he's using google translate or something
02:09:59 <tswett> Käytän Wikisanakirja ja oma pieni tuntemus Suomen kieli, paitsi tämä lause, joka tuotti Google Translate.
02:10:14 <oerjan> i'm pretty sure tswett was trying to learn finnish earlier...
02:11:46 <Sgeo_> tswett : human languages :: Sgeo : programming languages?
02:11:47 <olsner> finnish would be cool to know, but not so sure about learning
02:12:06 <tswett> Sgeo_: I don't spend *that* much time learning human languages...
02:12:41 <tswett> English, Spanish, and French are the only languages I can read at all.
02:14:05 <olsner> at one point I might have to learn to read computer-swedish
02:14:24 <olsner> without having to reverse-translate it from (to) english
02:14:54 <tswett> What's computer-Swedish?
02:15:24 <olsner> it's the mangled incomprehensible form of swedish produced by people translating software
02:16:20 <tswett> People-translating software? TIL.
02:16:44 <olsner> people who are translating software then?
02:17:02 -!- Vorpal has quit (Ping timeout: 250 seconds).
02:17:57 <olsner> I probably want to create a swenglish locale where all technical terms are kept in english
02:18:56 <oerjan> Du måste reboota din computer.
02:19:25 <tswett> You must-a reboot-a da computer?
02:19:55 <oerjan> Din browser behöver restartas
02:20:20 <tswett> Da browser behoove-er restarts.
02:21:02 <monqy> "Your browser needs to erect RTAS" thanks google translate
02:21:27 <monqy> download a filling?
02:21:50 <olsner> oerjan: du måste reboota datorn, din brower behöver startas om, ladda ner filen (jämfört med t.ex. "Läs in filen")
02:22:18 <tswett> Da browser behoover starts. Om.
02:22:46 <olsner> tswett: close enough :)
02:23:01 <oerjan> olsner: i am not sure whether your improvements are still considered too swenglish or not :P
02:23:05 -!- wth has joined.
02:23:25 <pikhq_> Bork bork bork da browser beborker starts. Bork.
02:23:26 <oerjan> ok i guess the parentheses give a hint
02:23:31 -!- wth has changed nick to Guest63077.
02:23:46 <olsner> oerjan: they are swenglish, but not swedish enough to be incomprehensible :)
02:24:28 <oerjan> olsner: oh so making more words swedish would be worse?
02:25:16 <olsner> yep, inventing new swedish terms where 40 years of computing have used swenglish or english doesn't make anything more comprehensible
02:26:29 <olsner> at least not to me, because swedish is not a language I know any computer-related terms in
02:27:23 <olsner> "Swedish - Deprecated. Use English."
02:27:24 -!- azaq23 has quit (Quit: Leaving.).
02:33:08 <zzo38> Someone told me their computer keeps overheating because it is black. Do you think it would help if it was white?
02:33:29 <tswett> Black computers lose heat better than white computers.
02:33:59 <zzo38> Then it wouldn't help, I guess.
02:34:26 <oerjan> unless they are standing in the sun
02:34:26 <zzo38> I suggested using liquid cooling system but they don't know how to find that or install it or anything like that (I also don't know).
02:36:34 -!- Patashu has quit (Ping timeout: 264 seconds).
02:37:15 <Sgeo_> I haven't been outside since yesterday
02:37:20 -!- Guest63077 has quit (Ping timeout: 240 seconds).
02:38:38 <Lymee> http://pastebin.com/Y75WrP9D
02:39:31 -!- Patashu has joined.
02:47:22 -!- Sgeo has joined.
02:48:19 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
02:54:09 -!- jcp|other has joined.
02:54:43 -!- jcp has quit (Read error: Operation timed out).
02:56:10 -!- javawizard has quit (Ping timeout: 276 seconds).
02:58:44 -!- jcp has joined.
03:10:46 -!- hiato has quit (Ping timeout: 264 seconds).
03:11:22 -!- hiato has joined.
03:13:31 -!- Sgeo has quit (Ping timeout: 255 seconds).
03:13:42 <quintopia> i am too lazy to compile and run it
03:15:56 -!- Sgeo has joined.
03:16:42 -!- Patashu has quit (Remote host closed the connection).
03:17:57 -!- Sgeo_ has joined.
03:20:43 -!- Sgeo has quit (Ping timeout: 255 seconds).
03:38:11 -!- Sgeo__ has joined.
03:40:58 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
03:47:35 -!- foocraft has quit (Quit: So long, and thanks for all the fish!).
03:50:07 -!- pikhq has joined.
03:52:39 -!- pikhq_ has quit (Ping timeout: 246 seconds).
03:53:08 <zzo38> You can have all the fish
04:01:54 <zzo38> Please read this and tell me of your opinion/question. gopher://zzo38computer.cjb.net:70/0phlog*c_prog.permission-script
04:05:43 <newsham> my opinion: gopher is dead.
04:06:33 <pikhq> newsham: Not while zzo38 still has life.
04:06:58 <pikhq> And, TBH, I can't say I blame him. Gopher is better designed than HTTP.
04:08:17 <pikhq> Especially in terms of the "No, fuck you, you are not a graphic designer you just suck and your eyes have probably been removed" factor.
04:14:13 <newsham> man, the list of things better designed than http could fill an internet
04:14:43 <pikhq> Though few things are both better-designed and intended for hypertext.
04:14:52 <pikhq> Due to few things being intended for hypertext. :P
04:15:43 -!- calamari has joined.
04:54:48 <zzo38> However, I was asking opinion of what the article is discussing, not about the protocol used to serve it.
04:55:59 <Gregor> zzo38: The underlying message here was "the work required to access that page in 2011 is greater than what we're willing to do to simply read something and give opinions"
04:56:33 <zzo38> Gregor: It is available over HTTP as well, although I have disabled sending comments using HTTP.
04:56:54 <zzo38> http://zzo38computer.cjb.net/phlog/phlog_http.php?m=1&q=_prog.permission-script
04:57:28 <zzo38> And anyways you can access it using netcat without too much difficulty is it not?
05:01:52 -!- WillMac has joined.
05:01:57 <WillMac> http://www.streamvera.com/stream/15997
05:03:46 <WillMac> my 2 songs are about to be played next
05:05:36 <WillMac> and Maps remix - by donato
05:08:01 <pikhq> Inquiry: why do we care?
05:08:26 -!- BeedaWeeda has quit (Ping timeout: 258 seconds).
05:08:27 <WillMac> http://www.streamvera.com/stream/15997
05:13:10 <zzo38> Use HTTP if it is necessary.
05:38:46 <pikhq> Man, it's pretty great reading an old Slashdot thread about Linus dropping Bitkeeper.
05:39:19 <pikhq> "Why doesn't Linus just design from scratch a SCM that he likes? Bet it'd take him like 6 months." So very prescient.
05:40:27 <WillMac> am i wrong for liking dissociative hallucinogens?
05:40:57 <WillMac> i just cant seem to stop doing them
05:41:18 <WillMac> they seem to fill a hole in my being
05:41:29 <pikhq> I see little *moral* issue with recreational chemical usage.
05:41:39 <WillMac> i guess i just enjoy losing my ego
05:41:54 <WillMac> i practice eastern religion
05:41:55 <pikhq> Though the practical issues are, frankly, obvious.
05:42:21 <WillMac> and the dissociation really helps out with rituals
05:42:25 <pikhq> (certain ones having negative effects, certain ones having significant legal impediments, etc. etc. etc.)
05:42:45 <pikhq> zzo38: I summon thee.
05:42:55 <WillMac> when i require losing my train of thought
05:43:02 <WillMac> and entering a state of trance
05:43:17 <WillMac> Especially when charging sigils
05:43:34 <pikhq> One of these days, we're going to get someone wandering in here thinking this is a channel for esotericism but also being interested in programming.
05:44:03 <WillMac> so this isnt a channel for esotericism?
05:44:25 <pikhq> Channel for esoteric programming languages.
05:44:46 <pikhq> Yeaaah, if we knew where to refer you, we'd let you know. :P
05:45:11 <WillMac> i honestly thought this was a channel for esotericism
05:45:29 <pikhq> Yeah, every now and then we do get someone coming in thinking that.
05:45:36 <pikhq> Kinda amusing, really.
05:45:48 <WillMac> Well its hard to find places
05:46:23 <WillMac> "THERES NO SUCH THING AS THE DIVINE"
05:47:18 <pikhq> Seriously, no real issue.
05:48:41 <WillMac> <-- dissociated emotional bi-sexual
05:48:53 <zzo38> pikhq: You summon me for what purpose?
05:49:05 <pikhq> zzo38: Your zzo38ness.
05:49:13 <pikhq> zzo38: I know not what else to describe it as.
05:49:59 <zzo38> OK, I think I understand. However, how can I answer you if there is not a question?
06:15:04 -!- yiyus has quit (Ping timeout: 276 seconds).
06:19:36 -!- yiyus has joined.
06:31:48 -!- oerjan has quit (Quit: Good night).
06:38:11 -!- CakeProphet has joined.
06:38:11 -!- CakeProphet has quit (Changing host).
06:38:11 -!- CakeProphet has joined.
06:58:40 -!- CakeProphet has quit (Ping timeout: 240 seconds).
07:10:21 -!- zzo38 has quit (Remote host closed the connection).
07:20:52 -!- monqy has quit (Quit: hello).
08:05:46 -!- calamari has quit (Quit: Leaving).
08:25:48 -!- derrik has joined.
08:26:00 -!- derrik has left.
08:27:50 -!- Phantom_Hoover has joined.
08:33:57 -!- WillMac has left.
08:39:02 <coppro> oh hey, it's linked in the bug :D
08:39:22 <coppro> http://funroll-loops.info/ is correct
09:33:29 -!- MigoMipo has joined.
09:51:07 -!- nooga has joined.
10:27:16 -!- nooga has quit (Ping timeout: 276 seconds).
10:35:32 -!- Slereah has quit (Ping timeout: 240 seconds).
10:37:51 -!- Slereah has joined.
11:07:38 -!- azaq23 has joined.
11:12:12 -!- Lymee has quit (Read error: Connection reset by peer).
11:13:36 -!- Lymee has joined.
11:32:56 -!- azaq23 has quit (Ping timeout: 258 seconds).
11:37:40 -!- Vorpal has joined.
11:39:07 -!- azaq23 has joined.
11:44:42 -!- azaq23 has quit (Quit: Leaving.).
12:19:08 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
12:25:47 -!- Vorpal has quit (Ping timeout: 264 seconds).
13:09:17 -!- azaq23 has joined.
13:15:18 -!- Vorpal has joined.
13:30:24 -!- s1nn3r has joined.
13:33:22 -!- s1nn3r has quit (Quit: mIRC Power Pack 8.00 (www.mIRCPowerPack.com) by sod/sgt-d (sgt-d@sodpit.com)).
13:45:19 -!- CakeProphet has joined.
14:33:50 -!- thezakman has joined.
14:38:03 -!- thezakman has quit (Ping timeout: 250 seconds).
15:03:05 -!- zzo38 has joined.
15:34:59 -!- monqy has joined.
16:02:02 -!- monqy has quit (Ping timeout: 276 seconds).
16:03:24 -!- monqy has joined.
16:25:58 -!- pikhq has quit (Ping timeout: 252 seconds).
16:26:07 -!- pikhq has joined.
16:26:59 <zzo38> What musical scale do these numbers represent? 16 18 20 21 24 27 30 32
16:27:33 -!- copumpkin has joined.
16:28:39 -!- monqy has quit (Read error: Connection reset by peer).
16:32:52 -!- monqy has joined.
16:34:18 <zzo38> Hint these are not numbers of semitones
16:37:12 <quintopia> are they multiples of a particular frequency?
16:38:45 -!- monqy has quit (Read error: Operation timed out).
16:40:56 <zzo38> Silly? Are you sure?
16:40:57 -!- monqy has joined.
16:41:33 -!- nooga has joined.
17:01:12 -!- monqy has quit (Ping timeout: 246 seconds).
17:02:25 * Phantom_Hoover concludes, after much testing, that Minecraft is not a world amenable to the scientific method.
17:09:28 <quintopia> it is amenable to reverse engineering!
17:09:53 <zzo38> And I think ZZT is a world amenable to the scientific method.
17:12:56 <zzo38> Do strange thing, see what happens, make hypothesis, make up an experiment to test hypothesis, test it, see result, remember that ZZT is written in Pascal, think of the program to cause that to happen, look in memory dump, think about more.
17:13:38 <zzo38> I have figured out a lot of stuff about ZZT using this method, however I have not documented any of it.
17:15:32 <Sgeo__> What worlds aren't amenable to the scientific method?
17:15:39 <Sgeo__> Minecraft may be ... difficult, but
17:15:56 <Sgeo__> Hmm, perhaps a one where the rules vary by time and never repeat
17:16:42 <zzo38> Sgeo__: What about meta-rules, then?
17:17:16 <Sgeo__> Maybe all rules at all levels change by the progress of time, a bit like a nomic
17:17:36 <Sgeo__> Rules can specify how the rules will change, including how the rules will change
17:20:50 -!- monqy has joined.
17:21:38 <quintopia> it's still predictable in some sense, if you know all the rules, but that definitely defines a complex world
17:22:08 <quintopia> a world not amenable to the scientific method: the real world, as applies to major historical events and social networks
17:22:33 <quintopia> how the hell can you have reproducability if things never play out the same twice?
17:22:56 <Sgeo__> Predictable if you know all the rules, but is there any way to, from the inside, even approach determining the rules?
17:23:13 <Sgeo__> Since, yeah, reproducibility
17:42:49 -!- azaq23 has quit (Quit: Leaving.).
18:11:03 -!- Sgeo_ has joined.
18:13:59 -!- Sgeo__ has quit (Ping timeout: 255 seconds).
18:20:10 -!- nooga has quit (Remote host closed the connection).
18:22:52 -!- Sgeo_ has changed nick to Sgeo.
18:28:44 -!- jcp has quit (Ping timeout: 276 seconds).
18:28:56 -!- cranitree has joined.
18:29:36 -!- jcp|other has quit (Ping timeout: 240 seconds).
18:30:55 -!- cranitree has left ("Konversation terminated!").
19:16:25 -!- Balanced1 has joined.
19:24:47 <quintopia> a painter would say life is paintbrush
19:29:07 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
19:30:43 -!- Balanced1 has quit (Quit: http://irc2go.com/).
19:34:07 -!- cheater_ has joined.
19:34:15 <cheater_> anyone know what glyph this is? ❡
19:34:35 <Deewiant> http://www.fileformat.info/info/unicode/char/2761/index.htm
19:35:24 <zzo38> Hay you stop cheating please.
19:41:56 <tswett> cheater_: it appears to be U+2761 CURVED STEM PARAGRAPH SIGN ORNAMENT (❡).
19:56:04 -!- oerjan has joined.
19:56:21 <Vorpal> <quintopia> a painter would say life is paintbrush
19:56:29 <Vorpal> quintopia, no it is the paint stripper
19:57:06 <Vorpal> Phantom_Hoover, how so?
19:58:05 <Vorpal> Phantom_Hoover, there is a bit of randomness in there too, you might not get that job you wanted
19:58:25 <Vorpal> interesting analogy however
19:58:43 <oerjan> 16 18 20 21 24 27 30 32
20:00:00 <oerjan> > map (logBase 2/12*) [16,18,20,21,24,27,30,32]
20:00:01 <lambdabot> Overlapping instances for GHC.Show.Show (t -> t)
20:00:53 <oerjan> > map ((/12).logBase 2) [16,18,20,21,24,27,30,32]
20:00:55 <lambdabot> [0.3333333333333333,0.3474937501201927,0.3601606745739469,0.366026451898230...
20:01:59 <oerjan> > join(zipWith(-)) $ map ((/12).logBase 2) [16,18,20,21,24,27,30,32] :: [Float]
20:02:12 <oerjan> > join(zipWith(-).tail) $ map ((/12).logBase 2) [16,18,20,21,24,27,30,32] :: [Float]
20:02:13 <lambdabot> [1.41604245e-2,1.2666911e-2,5.8658123e-3,1.6053706e-2,1.41604245e-2,1.26669...
20:04:02 <oerjan> lambdabot's short lines make floating point lists awkward :(
20:05:26 <oerjan> hm i wonder if lambdabot has channel-based option lists (it does give longer lines in private messages)
20:08:10 -!- elliott has joined.
20:09:23 <Deewiant> > map(printf "%.3f").join(zipWith(-).tail) $ map ((/12).logBase 2) [16,18,20,21,24,27,30,32] :: [String]
20:09:25 <lambdabot> ["0.014","0.013","0.006","0.016","0.014","0.013","0.008"]
20:09:34 <oerjan> > map(2^)[4, 4+1/7 .. 5]
20:09:35 <lambdabot> Ambiguous type variable `a' in the constraints:
20:09:47 <oerjan> > map(2**)[4, 4+1/7 .. 5]
20:09:48 <lambdabot> [16.0,17.665432218781003,19.504218467271617,21.534403082117716,23.775908626...
20:10:16 <oerjan> > map(printf "%.3f".(2**))[4, 4+1/7 .. 5]
20:10:17 <lambdabot> Ambiguous type variable `b' in the constraints:
20:10:22 <oerjan> > map(printf "%.3f".(2**))[4, 4+1/7 .. 5]::[String]
20:10:23 <lambdabot> ["16.000","17.665","19.504","21.534","23.776","26.251","28.983","32.000"]
20:11:13 <oerjan> hm it is _not_ simply rounding of an ordinary scale
20:11:43 <oerjan> elliott: zzo38 has presented a scale conundrum
20:14:21 <quintopia> oerjan: he already said they weren't semitones :P
20:14:53 <quintopia> i tend to read more than what he says into everything he says though
20:15:00 <oerjan> quintopia: um i took that to mean that 16 and 18 weren't separated by 3 semitones, etc.
20:18:31 <oerjan> > map(printf "%.3f".(2**).(4+).(1/12*))[0,2,4,5,7,9,11,12]
20:18:31 <lambdabot> Ambiguous type variable `b' in the constraints:
20:18:40 <oerjan> > map(printf "%.3f".(2**).(4+).(1/12*))[0,2,4,5,7,9,11,12]::[String]
20:18:42 <lambdabot> ["16.000","17.959","20.159","21.357","23.973","26.909","30.204","32.000"]
20:19:21 <oerjan> zzo38: ok rounding _that_ fits your numbers
20:19:23 <zzo38> That is an ordinary equal temperament scale now. What you had before obviously isn't, I think
20:19:43 <zzo38> oerjan: Yes it does fit.
20:19:52 <oerjan> zzo38: i somehow divided it in 7 while completely forgetting about semitones :P
20:21:32 <zzo38> Or you could say it is a 16-to-32 linear temperament based major scale.
20:22:28 <zzo38> Just now I programmed my computer to play a seven-tone equal temperament scale so I can know its sound.
20:23:04 <lambdabot> Not in scope: data constructor `Tone'
20:23:35 <oerjan> <Sgeo__> What worlds aren't amenable to the scientific method? <-- worlds that explicitly consider sentient beings and try to fool them
20:23:41 <lambdabot> Not in scope: data constructor `Interval'
20:24:00 <quintopia> zzo38: do you know the song Tombeau de Messiaen?
20:24:01 <elliott> oerjan: is this your objection to the scientific method? :D
20:24:08 <zzo38> quintopia: No. I don't know that.
20:24:45 <quintopia> zzo38: it is a piece for piano and tape. the piano is equal-tempered, and the tape is the same key but in just intonation
20:25:01 <oerjan> elliott: it's a possible objection to any presumed infallibility of it
20:25:15 <zzo38> So does it play equal-temperament and just-intonation simultaneously?
20:26:05 <elliott> GOOD THINGS TO SAY ON PUBLICLY-LOGGED IRC CHANNELS AND, ALSO, TO THINK IN THE FIRST PLACE: hmm, we need to start giving randall's relatives cancer so he starts making good strips again like those five-minute ones
20:26:32 <oerjan> elliott: hey, great artists need to suffer!
20:26:45 <quintopia> he has made a couple good ones since then
20:26:46 <oerjan> (remind me never to become a great artist)
20:26:49 <monqy> will we get more cancer strips too
20:26:57 <monqy> where we means people who read xkcd
20:27:23 <Phantom_Hoover> <elliott> GOOD THINGS TO SAY ON PUBLICLY-LOGGED IRC CHANNELS AND, ALSO, TO THINK IN THE FIRST PLACE: hmm, we need to start giving randall's relatives cancer so he starts making good strips again like those five-minute ones
20:27:44 <Phantom_Hoover> The 5-minute ones were made some unspecified time before they were released.
20:28:02 <elliott> Cancer: Not a miracle cure?
20:29:08 <oerjan> there ain't no cure, there ain't no cure, there ain't no cure for running out of ideas
20:29:25 <newsham> whats the half life of xkcd?
20:31:26 <elliott> "This is mostly because I'm hardware/semiconductor guy intimately familiar with current microprocessor and processing technology plus what's in the pipeline for the next 10-20 years - there are fundamental physics reasons why it probably can't."
20:31:30 <elliott> Orthogonal persistence: PHYSICALLY IMPOSSIBLE
20:31:55 <Phantom_Hoover> I cannot imagine what confusion of ideas would provoke such a statement.
20:32:15 <oerjan> now hardware orthogonal persistence would be something
20:32:29 <elliott> (They weren't actually saying that.)
20:32:33 <elliott> oerjan: that's just having non-volatile RAM
20:33:23 <tswett> elliott: I think you need to provide context. His statement is perfectly reasonable of by "it probably can't", he means "microprocessors probably can't solve the halting problem".
20:33:30 -!- zzo38 has left.
20:33:58 <elliott> tswett: I provided "context" with the next line, but that's actually not really what he was saying at all, it's just funny to read it that way :P
20:34:04 <elliott> (The subject was single-address-space systems.)
20:36:51 <Phantom_Hoover> tswett, aren't you, on some level, fundamentally, platonically, Australian?
20:39:57 <oerjan> Phantom_Hoover: also filled with hope
21:05:36 <elliott> oerjan: what precedence does (::) have?
21:06:06 <oerjan> it's not an operator, so somewhere <= -1 :P
21:06:43 <elliott> oerjan: I'm just wondering how to write my Show instance :)
21:07:08 <elliott> I guess unconditional showParen
21:07:12 <elliott> but I don't want any parens shown at the top level
21:07:19 <elliott> What's the showParen precedence given for a top level show?
21:07:46 <lambdabot> Source not found. stty: unknown mode: doofus
21:07:46 <elliott> showsPrec d x = showParen (d > 0) $ showString "renat :: " . showType x
21:08:12 <elliott> -- | equivalent to 'showsPrec' with a precedence of 0.
21:08:12 <elliott> shows :: (Show a) => a -> ShowS
21:08:13 <oerjan> elliott: except that theoretically that would break for $
21:08:23 <elliott> can't have it every way :P
21:09:28 <oerjan> which actually means showsPrec is flawed even for just 0-9, hm
21:10:10 <oerjan> because if you mix infixr with infixl or infix of the same level, it cannot distinguish that they are not allowed
21:21:19 <elliott> we have a template for that
21:21:42 <elliott> he's just <strike>ing them
21:21:47 <elliott> which is plain confusing to read, to boot
21:22:09 <oerjan> ah yes. and harder to search for, obviously.
21:22:24 <elliott> http://esoteric.voxelperfect.net/wiki/Special:Whatlinkshere/Template:Deadlink
21:22:33 <elliott> although obviously very incomplete
21:23:56 <elliott> oerjan: http://esoteric.voxelperfect.net/wiki/Computational_class#Isomorphism
21:23:58 <elliott> oerjan: Shall I rename? :-)
21:24:39 <monqy> either that or someone obsessed with madk and his languages
21:25:08 <elliott> http://esoteric.voxelperfect.net/wiki/Computational_class#Reduction
21:25:15 <elliott> renamed (and added a note)
21:33:43 <elliott> oh WillMac looks like an idiot
21:33:53 <elliott> too bad he's offline, i'd antagonise him
21:34:41 <elliott> 05:40:27: <WillMac> am i wrong for liking dissociative hallucinogens?
21:34:42 <elliott> YES YOU ARE A TERRIBLE PERSON
21:34:45 <elliott> Man what is this guy even doing
21:34:51 <elliott> 05:41:39: <WillMac> i guess i just enjoy losing my ego
21:34:51 <elliott> 05:41:54: <WillMac> i practice eastern religion
21:34:55 <elliott> 05:42:10: <WillMac> and crowleyan magick
21:35:00 <elliott> this is the best thing ever
21:35:06 <elliott> oerjan: he is the perfect stumbler
21:35:13 <monqy> what about the guy who thought this was a hiphop channel
21:35:19 <monqy> also the perfect stumbler
21:35:28 <elliott> 05:01:52: -!- WillMac has joined #esoteric.
21:35:29 <elliott> [...]05:44:03: <WillMac> so this isnt a channel for esotericism?
21:35:33 <elliott> almost a whole fucking hour
21:35:58 <elliott> monqy: how long did hiphop guy take
21:36:10 <elliott> 05:45:48: <WillMac> Well its hard to find places
21:36:10 <elliott> 05:45:52: <WillMac> that are accepting of it
21:36:10 <elliott> 05:46:05: <WillMac> "GET THE FUCK OUT HIPPY"
21:36:10 <elliott> 05:46:12: <WillMac> "YOURE SCHIZO"
21:36:10 <elliott> 05:46:23: <WillMac> "THERES NO SUCH THING AS THE DIVINE"
21:36:12 <monqy> I wasn't around for it I only read the logs too :(
21:36:16 <monqy> but the logs were pretty long
21:36:21 <elliott> i reject options one and two and pick option three
21:36:51 <elliott> 05:48:41: <WillMac> <-- dissociated emotional bi-sexual
21:36:51 <elliott> wait does this mean that the <3s he was handing out represented true love
21:37:31 <elliott> 08:33:27: <Phantom_Hoover> https://bugs.gentoo.org/show_bug.cgi?id=35890
21:37:31 <elliott> 08:33:40: <Phantom_Hoover> Perhaps the best bug ever?
21:37:32 -!- KingOfKarlsruhe has joined.
21:38:01 <oerjan> <elliott> almost a whole fucking hour <-- well there weren't a lot of other people talking then
21:38:02 <elliott> https://bugs.gentoo.org/attachment.cgi?id=68484 <-- this is definitely the best bit, I'd have loved to see gentoo remove gaim
21:38:16 <elliott> "this is too funny, you've taken the crown of being the biggest jack ass I've
21:38:16 <elliott> seen this year. well done, I think." --a gentoo developer
21:38:26 <elliott> Gentoo developers calling people jackasses: great
21:38:26 <monqy> it was a slow almost a fucking hour
21:38:37 <monqy> it was a slow almost a whole fucking hour
21:38:41 <elliott> "This has to be worst initial contact I think anybody could have made.
21:38:41 <elliott> Not sure I expect much more out of somebody that codes for AOL software."
21:38:46 <elliott> gaim is a tool of the aols
21:38:53 <elliott> ""Lindows.com, a proud gaim supporter!" <- this could explain"
21:39:00 <elliott> i forgot how amazing this is
21:39:24 <elliott> "This is blasphemy, and just proves there are people with way to much time on
21:39:25 <elliott> their hands. If you got a problem, don't bitch on bugzilla, we have better
21:39:25 <elliott> things to do then listen to your incessant whining."
21:39:27 <oerjan> <elliott> i reject options one and two and pick option three <-- darn, i was hoping you'd get slightly bad conscience
21:39:31 <elliott> that was before the sparta meme
21:39:36 <elliott> this guy is actually calling it blasphemy
21:40:15 <elliott> oerjan: I'm all for people who actually believe in that stuff to have somewhere to discuss said nonsense, and I don't think they're idiots, bad people, or insane, but there is no such thing as the divine :P
21:40:55 <elliott> I also don't think that #esoteric has any responsibility to support discussion of such things, since most of us don't care
21:41:06 <elliott> I wouldn't fault someone who believed in esoterica discussing esolangs and general crap in here
21:41:21 <elliott> but I doubt anyone who comes in discussing esoterica would actually be an expert #esoteric
21:41:59 <elliott> Phantom_Hoover: https://bugs.gentoo.org/show_bug.cgi?id=124595 this is a slightly less best bug report, but one that shows how shitty gentoo devs are
21:42:03 <elliott> "> The package is still useless. The ebuilds in the other
21:42:03 <elliott> Why not submit a fixed one?"
21:42:04 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
21:42:14 <elliott> i thought bugzilla existed to stop people responding to every request with PATCHES
21:42:50 <elliott> 17:02:25: * Phantom_Hoover concludes, after much testing, that Minecraft is not a world amenable to the scientific method.
21:44:40 <Phantom_Hoover> I built *exactly the same* device in three different places.
21:49:20 -!- Lymee has quit (Ping timeout: 244 seconds).
21:54:56 -!- Behold has joined.
21:55:32 -!- BeholdMyGlory has quit (Ping timeout: 260 seconds).
21:57:15 <oerjan> Phantom_Hoover: hey that's just lack of position symmetry, nothing unscientific about that >:)
21:57:47 <elliott> Kind of makes peer review difficult.
21:59:28 <elliott> showSpace = {-showChar ' '-} \ xs -> ' ' : xs
22:05:24 <oerjan> i wonder if (guess that?) ghc will inline showChar ' ' completely so it doesn't actually make a difference...
22:06:36 -!- Lymee has joined.
22:08:32 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
22:23:47 -!- Phantom_Hoover has quit (Remote host closed the connection).
22:26:15 -!- Phantom_Hoover has joined.
22:37:50 -!- zzo38 has joined.
22:41:28 -!- MigoMipo_ has joined.
22:41:52 <elliott> I have no idea what a bijective functor is, unless it is a band name or something. – Stephen Cagle yesterday
22:42:05 <elliott> Phantom_Hoover: I'm forming a band do you want to join.
22:42:35 <oerjan> Curry Howard and the bijective functors
22:43:05 -!- MigoMipo_ has quit (Read error: Connection reset by peer).
22:44:10 -!- MigoMipo has quit (Ping timeout: 240 seconds).
22:44:17 <Sgeo> Under what conditions might a turing-complete language not have a quine?
22:45:00 <Sgeo> But I think it's more broad then that, I'm curious as to the exact limit
22:45:12 <Phantom_Hoover> If its IO is incompatible with the format it's encoded in?
22:45:32 <zzo38> Phantom_Hoover: You would then make up a new kind of quine if that is the case, I think.
22:45:42 -!- augur has quit (Remote host closed the connection).
22:45:43 <zzo38> However, you are correct anyways.
22:45:55 <Sgeo> What's that language that if it doesn't start with ', is some IO-less language, and if it starts with ', just prints stuff after '?
22:46:28 <zzo38> Sgeo: Yes, then it is turing-complete and I/O, but it doesn't have turing-complete I/O.
22:46:29 <elliott> Sgeo: It's the output equivalent of arbitrary effect at an arbitrary point
22:46:33 <elliott> There's a formal definition for quines, but I've forgotten
22:47:03 <zzo38> Now you have to invent the term "Turing-complete I/O".
22:47:09 <oerjan> Sgeo: see our old discussion at http://esolangs.org/wiki/User_talk:Smjg
22:47:12 <elliott> "Any programming language which is Turing complete, and which is able to output any string (by a computable function of the string as program — this is a technical condition that is satisfied in every programming language in existence) has a quine program (and, in fact, infinitely many quine programs, and many similar curiosities) as follows by the fixed-point theorem." ;; meh, David Madore gets it wrong
22:47:18 <elliott> Or, well, he uses "output any string" for "IO-complete"
22:47:31 <elliott> I don't even know if anyone has a complete formal definition of that
22:47:39 <Sgeo> "every programming language in existence"
22:47:39 <elliott> Maybe it's one of CS' Great Unknown Unsolved Problems :)
22:48:11 <zzo38> And then also the other term "Compatible I/O", which means it can input/output a program in the same programming language.
22:48:20 <Phantom_Hoover> i.e. half the solution is defining what the problem actually was?
22:50:32 <elliott> Phantom_Hoover: Most likely.
22:51:55 <zzo38> If the programming language has all three features "Turing-complete", "Turing-complete I/O", "Compatible I/O", then figure out the conditions for making quine, narcissism, self-interpreter, etc
22:54:03 <quintopia> we have already had this discussion here elliott
22:54:26 -!- Sgeo has quit (Ping timeout: 244 seconds).
22:54:57 <elliott> quintopia: We've had every discussion here.
22:55:01 <elliott> But until they're resolved...
22:55:18 <elliott> zzo38: I still want the esoteric wiki to have a project to formally define a bunch of stuff that nobody's actually pinned down yet :)
22:55:22 <elliott> Including Turing-completeness itself.
22:55:42 -!- Sgeo has joined.
22:56:40 <zzo38> elliott: Yes I would also want the wiki to have that stuff
22:57:08 <quintopia> isn't turing-completeness pretty much defined as "capable of representing any computable number"?
22:57:24 <elliott> Phantom_Hoover: See 2,3 Turing machine, http://esolangs.org/wiki/Talk:Befunge/index.php
22:58:02 <quintopia> i don't think the field's ever gonna agree
22:58:09 <Phantom_Hoover> elliott, that's on a different level of definition, I think.
22:58:19 <elliott> Phantom_Hoover: http://esolangs.org/wiki/%E2%84%92
22:58:22 <quintopia> well-defined: the 2,3 turing machine plus the initializing program is a turing-complete system
22:58:39 <elliott> Phantom_Hoover: That's just a way of ignoring that there's no clear definition.
22:58:44 <elliott> See http://esolangs.org/wiki/%E2%84%92 too.
22:59:51 <Phantom_Hoover> elliott, well, OK, but the problem isn't really that it's *ill* defined, just that there are two definitions in common use that happen to coincide most of the time.
23:00:17 <elliott> Phantom_Hoover: Yes, but those definitions themselves aren't clear; see 2,3.
23:01:05 <quintopia> elliott: i think it's agreed as to what it means for a computational system, from the atomic level upward, to be TC. on the other hand, it may be meaningless to say that a particular /language/ is TC in that same sense. the latter is the one missing a definition.
23:01:23 <oerjan> TCness is afaict perfectly well defined for the subset of systems where input and output have a reasonable finite encoding (e.g. as strings of symbols over a finite alphabet)
23:01:26 <elliott> Phantom_Hoover: It requires a sub-Turing machine to produce its initial input.
23:01:31 <elliott> Phantom_Hoover: Which is infinite, and non-repeating.
23:02:08 <elliott> There are ways to construct a system whereby two Turing-incomplete machines can be plugged into one another and produce a Turing-complete system, so it's not clear that the 2,3 machine itself has been proved TC.
23:02:20 <elliott> At the same time, the system that generates the initial input can be /really/ low-powered.
23:02:27 <elliott> The 2,3 machine does basically all the "work".
23:05:54 <quintopia> we know what set of problems a TC machine can solve. that is well-defined. and so, "the set of systems capable of solving those problems" is also well-defined
23:06:10 <quintopia> we just don't know how to determine the members of that class
23:06:30 <oerjan> quintopia: actually i'd say the word "system" is the major vague one there
23:07:00 <oerjan> because we are talking about inventions limited only by creativity
23:07:04 <quintopia> if we had a definition of that, we'd surely be able to say "this is in the class, and that isn't"
23:07:30 <quintopia> we know what they have to be able to do. we just don't know what they are.
23:07:38 <oerjan> the 2,3-machine being one way to escape the simple case of languages over strings (for which everything is completely well-defined)
23:08:09 <elliott> itos :: Int# -> String -> String
23:08:09 <elliott> let !(I# minInt#) = minInt in
23:08:10 <elliott> -- negateInt# minInt overflows, so we can't do that:
23:08:12 <elliott> then '-' : itos' (negateInt# (n# `quotInt#` 10#))
23:08:14 <elliott> (itos' (negateInt# (n# `remInt#` 10#)) cs)
23:08:16 <elliott> else '-' : itos' (negateInt# n#) cs
23:08:22 <elliott> itos' :: Int# -> String -> String
23:08:26 <elliott> | x# <# 10# = C# (chr# (ord# '0'# +# x#)) : cs'
23:08:30 <elliott> | otherwise = case chr# (ord# '0'# +# (x# `remInt#` 10#)) of { c# ->
23:08:30 <zzo38> Yes, these are one kind of category of esolang, which is, ones dealing with computational classes in some new way
23:08:32 <elliott> itos' (x# `quotInt#` 10#) (C# c# : cs') }
23:10:04 <zzo38> I have also discussed in here before, what might be the computational class and other stuff about BlooP+REDPROGRAM or FlooP+REDPROGRAM (what BlooP, FlooP, GlooP, REDPROGRAM, means, is described in Hofstadter's book)
23:10:20 <oerjan> elliott: that's some special case on minint :P
23:11:18 <zzo38> Also see [[Oozlybub and Murphy]].
23:11:39 <oerjan> zzo38: banana scheme and brainhype too
23:11:56 <zzo38> oerjan: Yes, those too.
23:12:35 <elliott> *Main> re :: Re (Z :- S Z :- S (S Z) :- Nil)
23:12:35 <elliott> ReZ ::- (ReS ReZ ::- (ReS (ReS ReZ) ::- ReNil))
23:12:35 <elliott> *Main> re :: Re (Z :- S Z :- S (S Z) :- True :- Nil)
23:12:35 <elliott> Couldn't match type `TBool' with `TNat'
23:12:43 * oerjan realizes itos prime would be a nice scifi name
23:12:56 <elliott> Itos Prime and the Curry Howardly Bijective Functors
23:14:05 <elliott> *Main> :t typeOf (re :: Re Nil)
23:14:05 <elliott> typeOf (re :: Re Nil) :: Nope (TList a)
23:14:05 <elliott> *Main> :t typeOf (re :: Re (True :- Nil))
23:14:05 <elliott> typeOf (re :: Re (True :- Nil)) :: Nope (TList TBool)
23:14:26 <oerjan> Phantom_Hoover: or possibly a planet. wait, a sentient planet.
23:15:49 <quintopia> oerjan: one camp is always going to say "if you take away this part, then what's left can't do the things a TC system should, therefore, what's left is not TC." other people are always gonna say "But what's left is the part doing all the real work!" It's same thing with the two register minsky machine. it's only TC if you are willing to allow unusual encoding of input.
23:16:44 * Sgeo manages to only embarrass himself in two non-here channels
23:16:54 <oerjan> quintopia: um as i said, the TCness of languages of strings is the baseline. and that includes minsky machines by simple encoding.
23:17:42 <zzo38> quintopia: Which says not only unclearness of TC, but also that TC is not necessarily sufficient.
23:18:18 <quintopia> oerjan: it's only a metaphor. the fact that you need a separate system to encode your input to the minsky tarpit, and would not be able to make a UTM in it without that
23:18:55 <oerjan> quintopia: the separation of input from program is an unnecessary complication >:)
23:18:57 <Sgeo> Phantom_Hoover, what?
23:19:10 <Sgeo> Phantom_Hoover, I'm talking about a single event, where I didn't ask my stupid question in here
23:19:18 <elliott> <oerjan> quintopia: the separation of input from program is an unnecessary complication >:)
23:19:22 <elliott> tempted to paste this to my non-programmer friend
23:19:27 <elliott> "Here's your OS IT ONLY DOES ONE THING."
23:21:42 -!- copumpkin has joined.
23:21:42 -!- copumpkin has quit (Changing host).
23:21:42 -!- copumpkin has joined.
23:22:11 <zzo38> The SQLite C interface includes three-star pointers for some functions.
23:22:12 <oerjan> MWAHAHAHA WE KNOW HIS REAL HOST
23:22:48 <zzo38> oerjan: Does it matter?
23:23:30 <oerjan> zzo38: not really, but it makes cloaks seem relatively useless when people do that mistake all the time
23:24:07 <oerjan> of course maybe he's just having a cloak for esthetic reasons.
23:24:29 <zzo38> oerjan: Then why do people do that mistake all the time? I don't have a cloak but still have never made such a mistake.
23:24:49 <zzo38> Can't you learn better?
23:25:41 <oerjan> zzo38: well the mistake only happens because of the cloak, so obviously you won't have done it
23:27:03 <zzo38> Still, I can see when the login is recognized. Is that what causes it?
23:27:59 <oerjan> that's when the cloak will be added
23:28:16 <zzo38> Then probably it is synchronizing problem?
23:29:38 <zzo38> Tell them, that, if you want cloak you should check if the login is recognized before sending the JOIN command.
23:30:28 <zzo38> (I have actually asked for a cloak, but the one I asked for is not one their software supports, I think. Or something like that.)
23:33:42 <zzo38> (What I asked is that if the computer I am connecting from is named "zzo38computer.cjb.net", that the cloak is also set to that name. They were unable to do that.)
23:41:10 -!- augur has joined.
23:57:12 -!- augur has quit (Remote host closed the connection).
00:11:36 -!- Sgeo_ has joined.
00:11:43 -!- Sgeo_ has quit (Client Quit).
00:12:34 -!- hagb4rd has joined.
00:13:16 <Sgeo> If there are no Oracle machines capable of dealing with itself as part of the system it ... oracles, how can an omniscient entity exist?
00:14:19 <elliott> by not knowing about itself
00:14:27 <quintopia> one that keeps separate from the system
00:14:53 <Sgeo> Hmm. So, would Christians be ok with that sort of response?
00:15:04 <elliott> let me ask the consortium of defining what a christian can be
00:15:09 <elliott> they say it's half past you're a moron
00:15:28 <oerjan> elliott: dammit you almost owed me a keyboard there :P
00:16:43 <quintopia> Sgeo: God can make a rock so big he can't lift it, and still lift it! Moreover, God can know everything about everything and completely ignore any logical contradictions that happen as a result of this. God is beyond logic!
00:17:15 <oerjan> god is beyond logic, and if you say anything else he'll smack you
00:17:48 <newsham> sgeo: incompleteness is about logic systems
00:17:59 <oerjan> (if you didn't notice any smacking that's because god is beyond logic)
00:18:16 <newsham> can god make yo mama so fat that even he cant lift her?
00:18:21 <Sgeo> The Torah actually says somewhere that God'll kill you if you work on Yom Kippur
00:18:23 <quintopia> he can not smack you, and still have fulfilled the prophecy that he would smack you
00:18:42 <oerjan> Sgeo: presumably it doesn't say ho... right
00:19:16 <newsham> god kills everyone eventually
00:19:45 <quintopia> i shall kill myself at a ripe old age of 2099
00:19:49 <oerjan> i've sometimes been wondering, since one of the essential pieces of diagonalization is the negation, whether you could have a self-consistent self-referential system if you threw out negation.
00:20:25 <quintopia> possibly. you can have consistent self-referential systems by throwing out any number of things.
00:20:32 <oerjan> (i.e. lambda calculus has fixpoints, but (thus) no negation that can work on all functions)
00:21:02 <oerjan> quintopia: well hopefully it would still be an interesting one somehow :P
00:21:25 <Sgeo> The Gospels do say Jesus had brothers...
00:21:26 -!- TeruFSX has joined.
00:21:32 <newsham> so umm.. whats the big deal w/ mary? jesus had brothers, i'm pretty sure she's not a virgin anymore.
00:22:08 <oerjan> newsham: she was so awesome she stayed a virgin anyway?
00:22:23 <hagb4rd> i've never been on ianbells hp till now.. it's so,..oldskool :) lotta things to get there for grownup spacerowdies
00:22:36 <quintopia> she didn't have to be a virgin to be what's the word...
00:22:52 <hagb4rd> http://www.iancgbell.clara.net/
00:22:54 <newsham> well the pope is always going on about her being a virgin.. is all...
00:23:12 <hagb4rd> theres also a little bit of sourcecode
00:23:25 <newsham> hagb4rd: wow, did someone build a time machine?
00:23:30 <quintopia> http://www.catholic.com/library/Mary_Ever_Virgin.asp oh here's the answer
00:23:43 <newsham> that web page is one <blink> tag away from 1992
00:23:45 <quintopia> "you can believe whatever you like. she's still a virgin dammit"
00:24:17 <hagb4rd> somebody has to kick off a sequel newsham
00:24:30 <oerjan> newsham: wait you mean blink tags are time machines? maybe they shouldn't have been stamped out...
00:24:55 <Phantom_Hoover> newsham, TbH, Ian Bell gets off with it by virtue of being Ian Bell.
00:24:58 <newsham> what of james the brother of jesus?
00:25:43 <newsham> http://bible.cc/galatians/1-19.htm
00:26:30 -!- Lymee has quit (Ping timeout: 258 seconds).
00:26:49 <quintopia> newsham: that page says that he could be at most a stepbrother
00:26:49 <newsham> *shrug* mary mary, quite contrary...
00:27:04 <newsham> quintopia: because God wasn't his dad?
00:27:24 <quintopia> newsham: if mary had been his mother, he'd be a half-brother
00:27:29 <newsham> oh, this is the guy who wrote Elite.. neat.
00:27:54 <quintopia> instead, he was just the son of Joseph
00:27:57 <oerjan> hm did jews practice polygamy at that time?
00:28:14 <quintopia> who was a widower when mary was entrusted to him
00:29:22 <newsham> this page is not readable without highlighting text
00:29:23 <newsham> http://www.iancgbell.clara.net/elite/nes/index.htm
00:30:27 <elliott> I approve of this Elite talk.
00:32:20 <newsham> i wonder how many 8-bit game devs worked in crossdev environments vs. native environments
00:36:38 <hagb4rd> and if you haven't seen it yet, ..no even you hate ..be sure to watch southpark episode 13.3 .. it's analogies to good ol joshuas story are just delicious --> http://de.southparkstudios.com/alleEpisoden/1303/?lang=en
00:37:27 <hagb4rd> if you're not in a hurry ;)
00:38:33 <Phantom_Hoover> It was written in straight assembly; porting was just writing it again with an entirely new set of optimisations.
00:39:12 -!- Lymee has joined.
00:40:32 -!- Sgeo has quit (Ping timeout: 255 seconds).
00:45:31 <newsham> got Elite in NES emulator.
00:46:00 <newsham> phantom: they did have many ports for same cpu, too, ie. all the 6502 ports, two 68k ports
00:46:16 <Phantom_Hoover> newsham, FWIW, there's a modern remake at http://oolite.org
00:46:22 <newsham> also game design done once, programming done several times, profit.
00:46:29 <newsham> who wants a modern remake? :)
00:46:45 <newsham> thats like installing SCUMMVM and then running some new community-made game
00:46:50 <Phantom_Hoover> Well, you can turn on the wireframe and put it into strict mode and it's basically the same.
00:47:16 <newsham> they have the BBC elite code online.. thats kinda neat
00:47:24 <newsham> wish they had some 6502 code.. i'd rather look at that
00:47:56 <elliott> newsham: Elite is boring though, Oolite is less boring :P
00:48:03 <newsham> also wish this site had more story to it
00:48:15 <newsham> elliott: honeslty i dont plan to really play either
00:48:41 <newsham> but thakns for pointing it out.. looks neat
00:55:32 -!- Sgeo has joined.
00:56:44 <hagb4rd> i would love to resign on the story gaining its sandbox abilities.. a real world made up by its citizens
00:57:08 <hagb4rd> the star-dreamer problem is problem in mp
00:57:32 <newsham> i cant tell if you're talking or just generating random trigrams
00:58:30 <hagb4rd> i guess it's more random and definitly not worth your time
00:59:23 <hagb4rd> we were youg, and we had the time and the money *g
01:00:23 <newsham> "We had access to too much money, too much equipment, and little by little we went insane"
01:00:27 -!- Sgeo has quit (Ping timeout: 260 seconds).
01:09:20 -!- Lymee has quit (Ping timeout: 276 seconds).
01:11:59 <elliott> agum library and program: Unification and Matching in an Abelian Group
01:11:59 <elliott> cmu library and program: Unification in a Commutative Monoid
01:12:03 <elliott> oerjan: IS THERE ANYWHERE SAFE FROM UNIFICATION
01:12:41 <newsham> (I guess we can rule out germany)
01:14:44 -!- cheater_ has quit (Ping timeout: 255 seconds).
01:17:21 <hagb4rd> it's still expanding as far as i know.. my discordian friends ..the unification will implode if we don't find a new name for the princess ;)
01:20:39 -!- Sgeo has joined.
01:21:32 <hagb4rd> hey it's not taken, it just grows and breeds tiny new creatures
01:22:32 <Sgeo> Sorry, looking at logs right now will put me in a world of pain
01:26:20 <Sgeo> Ok, can afford to look at logs now
01:28:06 <newsham> http://calormen.com/l33t/jselite.htm
01:28:08 -!- cheater_ has joined.
01:30:55 -!- Vorpal has quit (Ping timeout: 258 seconds).
01:32:21 -!- Lymee has joined.
01:32:28 <newsham> i'm a tard, the bbc was 6502?
01:38:51 <newsham> i need to write some 6502 code
01:48:48 <Sgeo> Phantom_Hoover, I assume these are not in any particular order?
01:49:55 -!- Phantom_Hoover has left ("Leaving").
01:49:57 -!- Phantom_Hoover has quit (Quit: Leaving).
01:50:40 <elliott> it takes another hour for that]
01:50:54 <zzo38> I think NES/Famicom is like 6502 except that the decimal mode has no function
01:51:52 <newsham> the bcd instructions were useless anyway :)
01:52:39 <newsham> "The Ricoh 2A03 was a 6502 variant lacking the BCD Mode, used in the Nintendo Entertainment System."
02:02:53 <hagb4rd> "We also experiment with photograpy of nudes painted with flourescent cosmetics under "black" (UV) light. " -Ian Bell, as we love him
02:17:06 <zzo38> I think the decimal mode flag still exists except that it doesn't do anything except storing one flag bit (now you can use it for your own purpose, I think).
02:27:38 -!- TeruFSX has quit (Ping timeout: 255 seconds).
02:40:40 <lambdabot> forall (m :: * -> *) a. (MonadLogic m) => m a -> m a -> m a
02:44:52 <monqy> what about Logic, LogicT, all of the other bizarre MonadLogic instances
02:44:57 <monqy> like isn't there a ST instance
02:45:05 <lambdabot> "lololololololololololololololololololololololololololololololololololololo...
02:45:26 <lambdabot> "nonononononononononononononononononononononononononononononononononononono...
02:46:14 <oerjan> > interleave "what" "now?"
02:46:47 <elliott> <monqy> what about Logic, LogicT, all of the other bizarre MonadLogic instances
02:47:08 <elliott> real intersperse is lists only
02:47:27 <oerjan> elliott: um that's interleave, not intersperse
02:47:31 -!- Behold has quit (Remote host closed the connection).
02:47:45 <lambdabot> Source not found. Do you think like you type?
02:47:46 <lambdabot> Source not found. Your mind just hasn't been the same since the electro-shock, has it?
02:47:53 <lambdabot> Prelude div :: Integral a => a -> a -> a
02:47:53 <lambdabot> Data.Fixed div' :: (Real a, Integral b) => a -> a -> b
02:47:53 <lambdabot> Control.Exception DivideByZero :: ArithException
02:47:57 <oerjan> um no caleskell in intersperse
02:48:05 <lambdabot> forall (m :: * -> *) a. (MonadLogic m) => m a -> m a -> m a
02:48:24 <elliott> surely that could be generalised :)
02:48:36 <oerjan> elliott: um afaik interleave does not exist in Data.List at all
02:48:42 <lambdabot> System.IO.Unsafe unsafeInterleaveIO :: IO a -> IO a
02:48:42 <lambdabot> Control.Monad.ST unsafeInterleaveST :: ST s a -> ST s a
02:48:42 <lambdabot> Control.Monad.ST.Lazy unsafeInterleaveST :: ST s a -> ST s a
02:48:55 <elliott> it's entirely caleskell, then
02:49:02 <oerjan> although it might have been useful
02:49:38 <elliott> quotRemInt :: Int -> Int -> (Int, Int)
02:49:38 <elliott> quotRemInt a@(I# _) b@(I# _) = (a `quotInt` b, a `remInt` b)
02:49:38 <elliott> -- OK, so I made it a little stricter. Shoot me. (WDP 94/10)
02:49:38 <elliott> divModInt :: Int -> Int -> (Int, Int)
02:49:38 <elliott> divModInt x@(I# _) y@(I# _) = (x `divInt` y, x `modInt` y)
02:49:45 <elliott> it's ok WDP, we forgive you
02:49:48 <oerjan> > interleave "abc" (repeat ' ')
02:50:01 <monqy> > "hello" >>- return
02:50:02 <elliott> | x == minBound && y == (-1) = overflowError
02:50:02 <elliott> | otherwise = I8# (narrow8Int# (x# `divInt#` y#))
02:50:14 <elliott> wait shouldn't that have a hash after the 0 in the y comparison
02:50:16 <oerjan> elliott: not quite the same as intersperse even that way
02:50:24 <lambdabot> forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b
02:51:20 <elliott> i wish the fail method wasn't in the Monad class.
02:51:33 <elliott> (and replaced with class MonadFail e m where fail :: e -> m a)
02:51:39 <elliott> (instance MonadFail e (Either e) where fail = Left)
02:51:46 <elliott> (instance MonadFail e Maybe where fail = const Nothing)
02:51:58 <elliott> instance (Show e, Typeable e) => MonadFail e IO where fail = throw . SomeWrapper)
02:52:03 <monqy> i also wish there weren't so many ridiculous equivalent typeclasses
02:52:28 <elliott> myFailingThing :: (MonadFail String m) => Int -> m BlahBlah
02:52:50 <monqy> elliott: off the top of my head, monadplus, alternative, and friends
02:53:00 <lambdabot> Source not found. Are you on drugs?
02:53:03 <elliott> isn't MonadPlus just Monoid
02:53:12 <elliott> monqy: i also wish applicative was a superclass of monad.
02:53:24 <elliott> monqy: and also, that subclasses could define default methods for _superclasses_
02:53:29 <elliott> that use the methods in itself
02:53:50 <elliott> then you could just define one Monad instance, and get Functor and Applicative for free.
02:53:54 <elliott> why doesn't this already work.
02:53:59 <monqy> > "hello" >>- repeat
02:53:59 <lambdabot> "hehlhehlhehlhehohehlhehlhehlhehohehlhehlhehlhehohehlhehlhehlhehohehlhehlhe...
02:54:02 <elliott> it would retain total backwards compatibility
02:54:33 <elliott> who do you think I need to pay to get those subclass defaults in GHC
02:54:40 <elliott> oh, it would also let you clean up the numeric prelude
02:54:44 <elliott> just defining a Field instance
02:54:52 <elliott> and getting all the weird algebraic superclasses filled in for you
02:55:17 <lambdabot> forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b
02:55:41 <elliott> i would make haskell just that little bit nicer than it is if i was dictator :(
02:55:43 <oerjan> oh just the >>= for MonadLogic?
02:56:03 <elliott> monqy knows too much about MonadLogic
02:56:08 <elliott> i am staring suspiciously at him
02:56:18 <monqy> i have the docs open _right now_
02:56:52 <elliott> > runLogic "fucks" (flip const) 0
02:56:52 <lambdabot> Couldn't match expected type `Control.Monad.Logic.Logic a'
02:57:21 <lambdabot> forall a r. Logic a -> (a -> r -> r) -> r -> r
02:57:50 <monqy> i have the paper but its in my reading pile
02:58:07 <elliott> monqy: the entirety of okmij.org should be in your reading pile and/or brain
02:58:20 <lambdabot> Source not found. Are you on drugs?
02:58:21 <monqy> putting in reading pile
02:58:40 <elliott> monqy: you do know of oleg though right
02:58:47 <elliott> like in the "minor deity" sense of knowing
02:58:48 <monqy> i've heard the name
02:58:59 <monqy> the name;s everywhere
02:58:59 <lambdabot> "ababababababababababababababababababababababababababababababababababababab...
02:59:05 <lambdabot> "abacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacabacab...
02:59:29 <oerjan> that doesn't look very fair, every second is an a :P
02:59:32 <elliott> monqy: he's basically a genius. he has done practically everything that is possible to do in the lambda calculus, in haskell, in scheme, in haskell's type system, in scheme hygienic macros.
02:59:37 <elliott> and he even does practical stuff, too :D
02:59:39 <elliott> e.g. iteratees are his fault.
02:59:55 <elliott> hmm, did Oleg popularise the zipper?
03:00:04 <elliott> oerjan: hard to be fair when you have an odd number :P
03:00:24 <monqy> > ifte "hello" fail "nope"
03:00:24 <lambdabot> Couldn't match expected type `GHC.Types.Char'
03:00:33 <oerjan> elliott: um why can't it be the same as cycle "abc"?
03:00:40 <elliott> oerjan: presumably that's not how it works
03:00:42 <monqy> > ifte "hello" (const fail) "nope"
03:00:42 <lambdabot> Couldn't match expected type `[b]'
03:00:43 <lambdabot> against inferred type `GHC.Base....
03:00:54 <monqy> > ifte "hello" (fail . return) "nope"
03:01:00 <lambdabot> "abacabadabacabadabacabadabacabadabacabadabacabadabacabadabacabadabacabadab...
03:01:06 <monqy> not knowing how to use ifte is the worst
03:01:12 <oerjan> elliott: that's even ;P
03:01:14 <elliott> monqy: btw i was not serious about reading all of okmij.org. that would take a _long_ time
03:01:26 <monqy> i will only read part of it
03:02:06 <monqy> > ifte "hello" repeat "nope"
03:02:07 <lambdabot> "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
03:02:21 <elliott> just read the haskell, scheme, prolog, ML, typed DSL, other, continuations, OS, computation, essays, probabilistic programming, numerical math, and meta-theory sections. plus everything linked from the algorithms and data structures, computing and computation, operating systems and networking pages.
03:02:32 <elliott> that skips out the C/C++, Perl and XML sections
03:02:48 <monqy> i dislike xml xml is boring and ugly
03:02:55 <monqy> is there anything interesting at all in xml
03:03:14 <elliott> he invented SXML, which embeds the entirety of XML into nice clean s-expressions
03:03:23 <elliott> thus making it not horrid to process and generate from Scheme code
03:03:40 <elliott> then went and built an entire practical library on top of it as he is infuriatingly wont to do.
03:03:44 <elliott> you can only be good at one thing, oleg :(
03:03:56 <elliott> also sxpath, which is basically s-expression xpath for sxmls.
03:04:02 <elliott> This message reports on several experiments in Haskell to ascertain plausibility, benefits and drawbacks of typed SXML in a mainstream functional language. It turns out that Haskell as it is can represent semi-structured data in SXML-conforming syntax, with the extensible set of `tags' and statically enforced content model restrictions. Querying, transforming and advanced rendering into HTML and XML are possible. The experience of writing (modera
03:04:02 <elliott> tely complex, so far) web pages in HSXML shows that the typed SXML can be used in practice.
03:04:28 <elliott> what, he wrote an sxml->latex translator
03:04:35 <elliott> Joint processing of two immutable SXML documents with update cursors
03:04:35 <elliott> We give an example of traversing two SXML documents ``side-by-side'' and making pure functional updates to arbitrary encountered nodes. The example illustrates the benefits of zipper -- an update cursor into an immutable data structure.
03:04:45 <elliott> SXML as a normalized database
03:04:45 <elliott> S-expression-based files are handy not only for authoring Web pages. They can be used to build XML documents. The following article shows a real-life and less-trivial example of that. It is straightforward to convert <tag>data</tag> into (tag "data") and vice versa. The SSAX parser and the SXML manipulation tools can do that easily. However, exporting relational sources into XML often runs into an impedance mismatch: XML by its nature is a hierar
03:04:45 <elliott> chical database. We will show an example of generating XML from s-expressions that involves denormalizations, "table joins" and third-order tags. The s-expression format turns out not only more understandable and insightful, but more concise as well, by a factor of four.
03:04:56 <elliott> you're making me interested in xml :(
03:06:50 <oerjan> > cycle "01" >>- repeat
03:06:51 <lambdabot> "01000101010001000100010101000101010001010100010001000101010001000100010101...
03:08:39 <lambdabot> forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b
03:09:26 <monqy> fair >>= for monadlogic
03:09:45 <newsham> i dont know monadlogic.. i need to look it up
03:09:52 <monqy> m >>- f = do { Just (a, m') <- msplit m; interleave (f a) (m' >>- f) }
03:09:57 <monqy> thats the default definition
03:11:32 <newsham> so i thought people used maybe/[] for backtracking.. whats this got over them?
03:11:50 <monqy> cool backtracking for cool people
03:12:23 <elliott> oh man is this actually a monad
03:12:41 <elliott> newsham: tl;dr its about five hundred times more efficient.
03:12:46 <elliott> and has a cleaner model IIRC
03:13:20 <oerjan> newsham: it looks like >>- unlike >>= backtracks on the first argument even if the second one returns an infinite list
03:14:11 <elliott> instance Monad ((:>:) a) where
03:14:11 <elliott> return a = Tele (\f x -> (a,x))
03:14:11 <elliott> t >>= f = Tele (\ff x -> unTele (f (get t x)) ff x)
03:14:43 <elliott> what are the monad laws again
03:15:11 <oerjan> with that >>- i'm particularly worried about the third one
03:16:14 <oerjan> return x >>= f = f x, x >>= return = x, (x >>= f) >>= g = x >>= \t -> f t >>= g
03:16:14 -!- Sgeo has quit (Ping timeout: 255 seconds).
03:16:48 <newsham> thou shalt not take the name of wadler in vain, thou shalt not covet your neighbors impure scripting language, bind unto others as you would have them bind unto you
03:17:19 -!- Sgeo has joined.
03:17:37 <elliott> monqy: newtype a :>: b = Tele { unTele :: (b -> b) -> a -> (b, a) }
03:17:37 <Sgeo> How likely is it that Symantec is the reason my computer runs like crap?
03:17:42 <elliott> my reinvention of lenses and fclabels
03:17:45 <elliott> except this has efficient update
03:17:49 <elliott> Sgeo: haahahahaha why do you use symtantec
03:17:55 <elliott> is it because your father demands it
03:17:56 <monqy> is it a good reinvention
03:18:01 <Sgeo> elliott, even my dad hates it.
03:18:03 <elliott> monqy: it has efficient update, so maybe?
03:18:06 <Sgeo> The school requires it.
03:18:06 <elliott> Sgeo: then why the fuck do you use it
03:18:13 <monqy> what sort of school
03:18:21 <elliott> monqy: my baby's first college
03:18:23 <Sgeo> At school, I mean
03:18:29 <oerjan> > ("ab" >>- \x -> [[x,'c'],[x,'d']]) >>= \y -> ['e':y,'f':y]
03:18:30 <lambdabot> ["eac","fac","ebc","fbc","ead","fad","ebd","fbd"]
03:18:41 <Sgeo> elliott, yes. Not sure how, probably can be worked around
03:18:48 <elliott> Sgeo: uninstall it immediately and figure out how to work around it
03:19:04 <oerjan> > "ab" >>- \x -> [[x,'c'],[x,'d']] >>- \y -> ['e':y,'f':y]
03:19:04 <newsham> sgeo: turn it off and find out.
03:19:05 <lambdabot> ["eac","ebc","ead","ebd","fac","fbc","fad","fbd"]
03:19:16 <newsham> sgeo: do you really want a useless piece of software slwoing down every single file access?
03:19:25 <oerjan> > ("ab" >>- \x -> [[x,'c'],[x,'d']]) >>- \y -> ['e':y,'f':y]
03:19:25 <lambdabot> ["eac","ebc","fac","ead","fbc","ebd","fad","fbd"]
03:19:46 <oerjan> elliott: ok >>- is not a monad >>=
03:20:01 <elliott> maybe you should read the docs :P
03:20:12 <lambdabot> The operator `Control.Monad.Logic.Class.>>-' [infixl 9] of a section
03:20:29 <oerjan> elliott: that's a criminal lack of fixity consideration
03:20:36 <oerjan> also, what do you mean _read_?
03:21:30 <elliott> (b :>: c) -> (a :>: b) -> (a :>: c)
03:22:45 <elliott> why does nobody use implicit parameters
03:23:26 <monqy> implicit parameters are scary
03:24:04 <elliott> i wish i had a big project like ghc to hug
03:24:12 <oerjan> elliott: first oleg needs to show how they can be used to make lightweight delimited continuations that also make coffee
03:24:16 <elliott> like i feel like i'm getting really good at modelling large programs with haskell
03:24:23 <elliott> i need to write a large program
03:24:27 <elliott> and i have no large programs to _write_
03:24:38 <elliott> "lightweight delimited continuations" is _so_ oleg
03:27:57 <Sgeo> http://www.symantec.com/business/support/index?page=content&id=TECH102286&locale=en_US oh what the fuck why do they make it annoying?
03:28:06 <Sgeo> They don't just provide an uninstaller, afaict
03:28:13 <newsham> ok, so fair disjunction is mplus that lets some answers from both sides in
03:29:01 <oerjan> > interleave "hello" "world"
03:29:25 <Lymee> >interleave [1..] [-1,-2..]
03:29:29 <Lymee> >interleave [1..] [-1,-2..]
03:29:32 <Lymee> > interleave [1..] [-1,-2..]
03:29:33 <lambdabot> [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,1...
03:29:41 <Lymee> > sum $ interleave [1..] [-1,-2..]
03:30:18 <newsham> so you basically use "interleave" and ">>-" where you would have used "mplus" and ">>=" in the past?
03:31:38 <monqy> once for pruning, ifte for soft-cut
03:31:52 <oerjan> > fix ((0:).(interleave<=<(1-)))
03:31:53 <lambdabot> Couldn't match expected type `[t]'
03:31:53 <lambdabot> against inferred type `m a -> m a'
03:32:13 <elliott> Deewiant: Did you ever benchmark list-tries against Data.Map?
03:33:44 <monqy> it's like you have one element of a side and then the rest of the side except when there is no side in which case you have nothing????
03:34:20 <monqy> well a wrapped just elementofside,restofside or a wrapped nothing
03:34:43 <monqy> i am bad at wording things what will i do in life
03:35:00 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f a -> f (a -> b) -> f b
03:35:30 <monqy> I still don't quite understand why (<**>) exists
03:36:13 <lambdabot> Text.XHtml.Frameset address :: Html -> Html
03:36:13 <lambdabot> Text.XHtml.Strict address :: Html -> Html
03:36:16 <elliott> ?hoogle address with some hashes after it
03:36:17 <oerjan> monqy: to get the actions done in the reverse order of the application
03:36:29 <lambdabot> Control.Exception assert :: Bool -> a -> a
03:36:29 <lambdabot> Control.OldException assert :: Bool -> a -> a
03:36:29 <lambdabot> Control.Exception.Base assert :: Bool -> a -> a
03:36:30 <monqy> oerjan: but is it ever stylish to do that
03:37:01 <oerjan> monqy: istr we found a perfect use for it in one of elliott's programs
03:38:08 <oerjan> monqy: it was in Parsec, for a language syntax where the "minus sign" comes after the number
03:38:49 <oerjan> so it was essentially parseNumber <**> (parseSign *> negate <|> id)
03:39:03 -!- TeruFSX has joined.
03:39:05 <oerjan> well at one point any way
03:39:39 <elliott> that is actually stylish, dunno if you're being sarcastic
03:39:50 <monqy> sometimes im not sarcastic
03:40:03 <elliott> what's the definition of (<**>) btw?
03:40:13 <elliott> monqy: like whenever you're not talking to me ;D
03:40:15 <monqy> sometimes im both sarcastic and not sarcastic in the same sentence i am a bad person
03:40:36 <elliott> i can never tell whether monqy is mocking me or agreeing with me, maybe he is always mocking me, maybe he is always both
03:41:14 <oerjan> > fix ((0:).(interleave<*>map(1-)))
03:41:15 <lambdabot> [0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,...
03:41:25 -!- azaq23 has joined.
03:41:28 <oerjan> hm that's not quite it
03:42:16 -!- Sgeo has quit (Read error: Connection reset by peer).
03:43:00 <oerjan> > interleave "0110" "1001"
03:44:21 <newsham> > interleave "abcd" "ABCD"
03:45:13 <oerjan> > fix ((0:).(interleave=<<map(1-)))
03:45:15 <lambdabot> [0,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,...
03:45:27 <Lymee> What are you trying to get it to do?
03:46:22 <oerjan> > fix (((0:).tail).(interleave<*>map(1-)))
03:46:40 <quintopia> is there any other pair of four digit binary strings that has that property oerjan?
03:47:50 <oerjan> hm i guess only trivial ones
03:47:58 <oerjan> > interleave "0000" "0000"
03:48:24 <oerjan> > fix (((0:).tail).(interleave<*>map(1-)))
03:48:26 <lambdabot> [0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,1,0,0,1,0,...
03:48:41 <oerjan> that works, but i'd hoped for something prettier :(
03:48:42 -!- Lymia has joined.
03:49:04 <elliott> why is reallyUnsafePtrEquality# not reliable :(
03:49:21 <zzo38> I think it is the Thue-Morse sequence, isn't it?
03:49:23 <monqy> reallyUnsafe good prefix
03:49:43 <elliott> it's not nearly as unsafe as unsafeCoerce so i dunno why it's called that :)
03:49:56 <monqy> reallyReallyUnsafeCoerce
03:51:12 <elliott> justFuckingDon'tDoItNotEvenOnceCoerce :: a -> no bad why no b
03:51:54 <oerjan> elliott: i'm sorry that won't type :P
03:52:11 -!- Lymee has quit (Ping timeout: 264 seconds).
03:52:23 <monqy> :t const undefined
03:52:26 <elliott> intern :: (Hashable a, Ord a) => InternStore a -> a -> Interned a
03:52:26 <elliott> intern (InternStore var) a = unsafePerformIO $ modifyMVar var $ \m -> do
03:52:29 <elliott> m' = Map.insert a interned m
03:52:31 <elliott> in interned `seq` m' `seq` return (m', interned)
03:52:33 <oerjan> (it has a recursive _kind_)
03:52:33 <elliott> Just interned -> interned `seq` return (m, interned)
03:52:37 <elliott> I can only assume that HashMap is being evil and copying the value
03:52:44 <elliott> because this should _not_ copy interned, ever
03:52:55 <elliott> (I use reallyUnsafePtrEquality# to compare Interneds (this is the only way to construct them))
03:53:31 <lambdabot> No instances for (GHC.Num.Num [b], GHC.Enum.Enum [b])
03:53:39 <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...
03:54:22 -!- Lymia has changed nick to Lymee.
03:54:39 <elliott> maybe i'll write my own map as a test
03:55:32 <oerjan> _can_ HashMap copy the value?
03:56:13 <elliott> oerjan: I don't know, but GHC certainly can in HashMap's implementation if it wants to
03:56:38 <elliott> oerjan: all I know is, the second time round it _does_ fetch it from the hash table rather than constructing a new one
03:56:43 <elliott> so by all rights it should be the exact same object as I put in
03:57:21 <oerjan> elliott: are you calling intern with the same parameters anywhere?
03:58:36 <elliott> dammit, it's false with IntMap too
03:58:40 <elliott> store <- emptyInternStore -- :: IO (InternStore Int)
03:58:49 <lambdabot> "12345678911011121314151617182920212223242526272839303132333435363738494041...
03:58:51 <elliott> and when bar is evaluated, it _does_ take the "already in the map" branch
03:58:55 <elliott> but then the two objects aren't pointer-equal
03:58:58 <elliott> so it's being copied /somewhere/
03:59:03 <oerjan> elliott: in that case ghc is perfectly allowed to let bar be just foo
03:59:14 -!- Sgeo has joined.
03:59:28 <oerjan> and do no reevaluation
03:59:32 <elliott> oerjan: um yes, and then reallyUnsafePtrEquality# would be true
03:59:35 <elliott> oerjan: but i've traced the evaluation
03:59:42 <elliott> and it _does_ evaluate both separately
03:59:48 <elliott> with bar taking the other branch
03:59:53 <elliott> IIRC automatic CSE has space leak problems in haskell
04:00:03 <elliott> but yeah, there is some copying going on here
04:00:20 <elliott> http://www.haskell.org/ghc/docs/7.0.3/html/libraries/ghc-prim-0.2.0.0/GHC-Prim.html#g:19 I love how it isn't even documented
04:00:24 <elliott> they _really_ don't want you to use this
04:02:00 * Sgeo goes to install MSE
04:02:22 <elliott> oerjan: I think if you unpack (Just a) and then construct (Just a), say, a might be copied
04:02:31 <elliott> oerjan: perhaps especially if a is an Int, since unboxing/reboxing is really cheap...
04:02:52 <elliott> Prelude GHC.Exts GHC.Prim> let q = Just 3
04:02:52 <elliott> Prelude GHC.Exts GHC.Prim> let f j@(Just a) = j; r = f q
04:02:52 <elliott> Prelude GHC.Exts GHC.Prim> I# (reallyUnsafePtrEquality# q r)
04:02:52 <elliott> Prelude GHC.Exts GHC.Prim> r
04:03:01 <elliott> Prelude GHC.Exts GHC.Prim>
04:03:03 <elliott> Prelude GHC.Exts GHC.Prim> let q = Just 3
04:03:05 <elliott> Prelude GHC.Exts GHC.Prim> let f j@(Just a) = j; r = f q
04:03:07 <elliott> Prelude GHC.Exts GHC.Prim> I# (r `seq` reallyUnsafePtrEquality# q r)
04:03:11 <elliott> Prelude GHC.Exts GHC.Prim> I# (r `seq` reallyUnsafePtrEquality# q r)
04:03:15 <elliott> ah, what a wonderful function
04:03:23 <elliott> oerjan: do you think if i went into #ghc and asked for help debugging my reallyUnsafePtrEquality# use they'd laugh at me...
04:05:21 <quintopia> oerjan: that one works, but not commutatively
04:06:02 <quintopia> the condition is that one should be the negation of the other reversed
04:06:58 <oerjan> > interleave "abcd" "efgh"
04:07:36 -!- myndzi\ has joined.
04:07:48 <oerjan> elliott: hm i guess some unboxing might be bad. what happens if you use a definitely not unboxable value?
04:08:02 -!- Sgeo has quit (Read error: Connection reset by peer).
04:08:04 <elliott> oerjan: do you have such a type? :P
04:08:40 <oerjan> elliott: well try something better than Int, anyway :P
04:08:56 -!- derrik has joined.
04:09:32 <zzo38> There are many ways to generate the Thue-Morse sequence and I think I have also read there are many ways in which it can be used.
04:09:39 <oerjan> String alone might also work, not?
04:10:11 <elliott> oerjan: still false, unfortunately
04:10:21 <elliott> i wonder whether it's lack of strictness
04:10:25 <elliott> because evaluation _will_ change the pointer
04:10:30 <elliott> but i evaluate a before everything else, so...
04:11:07 <oerjan> quintopia: b=c=e,d=f=g
04:11:08 -!- myndzi has quit (Ping timeout: 255 seconds).
04:11:33 <oerjan> > interleave "0001" 0110"
04:11:34 <lambdabot> lexical error in string/character literal at end o...
04:11:40 <oerjan> > interleave "0001" "0110"
04:12:40 <monqy> data V = V String V -- use this
04:12:49 <elliott> well at least it wouldn't return false
04:13:09 <elliott> oerjan: interestingly, I think the interface I'm exposing is actually pure
04:13:22 <oerjan> > let x = if x then False else x in x
04:13:25 <elliott> since you could easily implement an analogue that just returns (Interned a) all the time, and has a slow (==)
04:13:35 <elliott> so ideally, this will just be a really big optimisation :P
04:14:27 <elliott> it has similarities to what i'm doing, yes
04:14:49 <oerjan> i thought that was about what you were doing
04:15:16 <elliott> "Do glasses not exist in the afterlife?"
04:15:26 <monqy> do pants exist in the afterlife
04:15:38 <elliott> "Oh. I never noticed for some reason. I guess you don't need corrective lenses when you're dead anyway."
04:15:57 <monqy> do hoohas/dingdongs exist in the afterlife
04:16:17 <monqy> afterlife is confusing
04:16:25 <oerjan> the dingdongs ate all the hoohas
04:16:32 <elliott> isn't that a bit backwards
04:16:46 <oerjan> the other way sounded a bit rude
04:17:03 <elliott> oerjan: I really wonder how this is being copied..
04:17:09 <elliott> maybe I should use StableName
04:17:16 <elliott> but that would be like, slow :(
04:17:21 <elliott> <elliott> Would questions about debugging a usage of reallyUnsafePtrEquality# be appropriate here? Would they be appropriate _anywhere_?
04:20:51 <elliott> oerjan: maybe i should use some structure other than a map just to test
04:22:18 <elliott> ok made it Maybe, /still/ gets copied
04:22:23 <elliott> this now officially makes no sense at all
04:23:43 <elliott> monqy: that wouldn't work, I need an empty state
04:23:45 -!- Sgeo has joined.
04:25:32 <oerjan> elliott: what happens if you _drop_ the seq's for interned?
04:26:00 <oerjan> well in the Nothing case
04:27:11 <elliott> someone in ghc seems to have taken the bait
04:27:17 <elliott> i am carefully watch............
04:27:30 <monqy> good taken or bad taken
04:30:44 <elliott> I think I scared them off with code
04:30:52 <elliott> oerjan: here it is, btw http://hpaste.org/48651
04:30:58 <elliott> no refunds if it kills you
04:31:23 <oerjan> that's ok, i won't need a refund if i'm dead
04:31:59 <oerjan> well i guess if the ancient greeks were right, i might need a couple of coins
04:32:27 <monqy> i cant stop seeing the hlinted stuff it is haunting me
04:33:21 <elliott> i cant fix the second one though because like
04:33:30 <elliott> that might ruin some sequencing i'm going for
04:34:05 <Sgeo> Dammit I can't find the page on the cable modem to change the password
04:34:08 <oerjan> elliott: um r <- return ... should be entirely equivalent to let r = ... no ?
04:34:16 <elliott> oerjan: look I trust _nothing_ right now :D
04:34:21 <elliott> GHC might do some FUNNY OPTIMISATIONS
04:34:52 <oerjan> Sgeo: well you need the password for getting to the page, obviously
04:35:00 <Sgeo> oerjan, I have that
04:35:11 <Sgeo> I just want to change it so my dad can't mess with anything
04:35:11 <oerjan> no no, the _secret_ password
04:35:26 <Sgeo> But... I don't think there's anything in here that's even touchable in any case
04:36:21 <oerjan> elliott: oh, what happens if you replace that with return $! ( ... ) ?
04:37:19 <elliott> well the prints are trying to make it strict, but ok
04:37:39 <elliott> ...but that's not really good enough, it has to work when used _normally_
04:38:23 <oerjan> elliott: hm i guess return x >>= f might actually get optimized into f x even in IO
04:38:25 <monqy> how to secretly strictify it
04:39:21 <elliott> let foo = intern store (V "a" "b")
04:39:22 <elliott> bar = intern store (V "a" "b")
04:39:24 <elliott> in case reallyUnsafePtrEquality# foo bar of
04:40:20 <oerjan> elliott: what if you replace reallyUnsafePtrEquality# with a function which applies seq to its arguments first, just in case?
04:40:52 <elliott> in case foo `seq` bar `seq` reallyUnsafePtrEquality# foo bar of
04:41:29 <elliott> ok now to try and bring back in Map
04:43:19 <oerjan> elliott: it occurs to me you might theoretically need those unsafePerformIO's to be reentrant
04:43:31 <elliott> oerjan: well that's why I used an MVar... but what do you mean?
04:44:12 <oerjan> if something causes an intern to be evaluated while you are already evaluating one
04:44:33 <elliott> oerjan: well isn't the point of MVar that in that case, one thread will wait until the other is done modifying...
04:44:43 <elliott> because as soon as one thread takes from the mvar, it becomes empty
04:44:46 <oerjan> um i mean inside the same thread
04:44:50 <elliott> and other takings hang until it gets filled by the modification
04:45:00 <elliott> intern store (internedValue (intern store 9))?
04:45:13 <elliott> oerjan: that's not a problem, I seq a first
04:45:21 <elliott> intern store (Embed (Blah (internedValue (intern store 9))))
04:45:26 <elliott> so it only comes up when the map structures start Ording?
04:45:44 <elliott> oerjan: hm so I either need re-entrancy or deepseq...
04:46:06 <elliott> oerjan: Or I could cheat, and just seq an Ord and Eq operation on the value beforehand >:)
04:46:15 <elliott> which is all Map can do, due to parametricity
04:47:22 <elliott> oerjan: although I want this to be typeclassed on the type of map, I think
04:47:24 <oerjan> yeah compare x x should normally get to the bottom of it
04:47:32 <elliott> because e.g. HashMap or IntMap could improve performance a lot in some cases
04:47:41 <elliott> so I guess the typeclass will just have some sort of force operation implemented in that way
04:48:02 <elliott> oerjan: I'm not sure how I could do re-entrancy, really... before calling the map I could re-fill the MVar
04:48:05 <elliott> and then un-fill it afterwards
04:48:09 <elliott> but that would fuck up using multiple threads
04:48:49 <elliott> so yeah, forcing is preferable
04:48:54 <elliott> oerjan: otoh compare might be _slow_...
04:49:08 -!- Lymia has joined.
04:49:13 <elliott> and since the result won't be cached, it'll end up doing useless computation
04:49:24 <elliott> so arguably, deepseq is less ugly
04:49:45 <elliott> although deepseq might very well be unnecessarily slow, too
04:52:17 -!- Lymee has quit (Ping timeout: 276 seconds).
04:52:57 <elliott> oerjan: I'm tempted to say that just using them in that way is undefined behaviour, but then my interface isn't really "pure" any more :(
04:57:06 <elliott> class InternStoreC store a r get put | store -> a get put where
04:57:06 <elliott> internStoreGet :: store -> a -> (Interned a -> r) -> r -> get
04:57:06 <elliott> internStorePut :: store -> a -> Interned a -> (store -> r) -> put
04:57:19 <elliott> I'm trying to allow those hashmaps that work in IO :D
04:59:41 <elliott> instance InternStoreC (Map a (Interned a)) a r r r where
05:05:15 <oerjan> WARNING! THERE IS A MONSTER IN THE TYPE SYSTEM!
05:08:49 -!- azaq23 has quit (Quit: Leaving.).
05:13:41 -!- derrik has left.
05:23:01 <CakeProphet> whenever I see elliott using Haskell, I also see typeclasses with huge numbers of parameters
05:24:08 <elliott> shut up, it happens when i generalise things.
05:24:17 <elliott> in fairness, that is now the far more reasonable
05:24:19 <elliott> class InternStoreMap store a where
05:24:19 <elliott> internStoreEmpty :: IO store
05:24:19 <elliott> internStoreGet :: store -> a -> IO (Maybe (Interned a))
05:24:19 <elliott> internStorePut :: store -> a -> Interned a -> IO store
05:25:04 <CakeProphet> it ONLY works with IO, and ONLY with Maybe, and Only with Interned
05:26:05 <elliott> the IO is unsafePerformIO'd away
05:26:11 <elliott> and Interned is the whole point :P
05:26:18 <elliott> no, these functions are not externally used
05:26:26 <elliott> intern :: (InternStoreMap store a) => InternStore store -> a -> Interned a
05:26:26 <elliott> intern (InternStore var) a = a `seq` unsafePerformIO $! modifyMVar var $! \m -> do
05:26:31 <elliott> m' <- interned `seq` internStorePut m a interned
05:26:35 <elliott> Just interned -> interned `seq` return $! (m, interned)
05:26:39 <elliott> instance (Eq a) => Eq (Interned a) where
05:26:43 <elliott> case a `seq` b `seq` reallyUnsafePtrEquality# a b of
05:27:05 <monqy> forcing reallyUnsafePtrEquality# usage is cool
05:27:16 <CakeProphet> you should probably name this function something like reallyReallyUnsafeIntern
05:27:22 <elliott> CakeProphet: it's perfectly safe
05:27:32 <elliott> the outside interface is implementable by simple pure functions
05:27:39 <elliott> this is just a lot faster (and the whole point for the module)
05:27:41 <monqy> like reallyUnsafePtrEquality#
05:27:44 <elliott> i do this shit so you don't have to
05:28:28 <oerjan> that 0# -> False part isn't supposed to be safe, is it...
05:29:53 <elliott> oerjan: it is safe, because the only way to construct an Interned is through intern
05:29:59 <elliott> and I don't /think/ there is any way to cause it to be copied externally
05:30:37 -!- augur has joined.
05:30:57 <oerjan> I GUESS YOU WILL FIND OUT
05:31:38 <elliott> indeed, when i publish it to hackage and people say ARE YOU FUCKING SERIOUS I WILL SHIT IN YOUR FUCKING HAT
05:31:46 <elliott> SHIT SHIT SHIT SHIT SHIT SHIT SHIT
05:32:42 <monqy> is that you or them
05:32:44 <oerjan> i don't know, it looks a bit shifty to me
05:33:06 <elliott> emptyInternStore :: (InternStoreMap store a) => IO (InternStore store)
05:33:06 <elliott> mt <- internStoreEmpty :: IO store
05:34:53 <oerjan> missing functional dep?
05:36:21 <elliott> but that doesn't fix this :(
05:36:43 <elliott> bleh but if i make it like
05:36:48 <elliott> emptyInternStore :: (InternStoreMap store a) => IO (InternStore store a)
05:37:06 <oerjan> um what's the class definition?
05:37:51 <elliott> data InternStore store = forall a. (InternStoreMap store a) => InternStore (MVar store)
05:38:00 <elliott> but why can't a newtype have an existential blah :/
05:38:09 <elliott> I guess it's technically unnecessary here
05:38:13 <elliott> i.e. i don't need the forall
05:38:16 <elliott> oerjan: hey i... have an idea
05:38:19 <elliott> oerjan: what if... i used... unsafeCoerce
05:38:30 <oerjan> what about a type family?
05:38:42 <elliott> wait what, it fixed itself magically somehow
05:39:37 <elliott> store <- emptyInternStore :: IO (InternStore (Cu.HashTable RealWorld a (Interned a)))
05:40:06 <elliott> oerjan: you're right, it should probably be a type family
05:40:14 <elliott> IO (InternStore Cu.HashTable) would be much preferable
05:40:18 <elliott> IO (InternStore Cu.HashTable Int) would be much preferable
05:40:58 -!- elliott has left ("Leaving").
05:41:02 -!- elliott has joined.
05:47:52 <CakeProphet> hmmm, I could use a type family for signal types I think.
05:48:10 <elliott> you don't have to use every extension :P
05:48:40 <CakeProphet> I could simply have multiple constructors for one type.
05:49:45 <oerjan> elliott: rubbish! he needs an implicit rank-5 flexible GADT family operator!
05:50:04 <CakeProphet> @pl lookup k (GMapInt m) = Data.IntMap.lookup k m
05:50:04 <lambdabot> expecting variable, "(", operator or end of input
05:50:45 <oerjan> CakeProphet: most pattern matching cannot be @pl'ed
05:51:04 <elliott> and GADT/type family pattern matching cannot be ?pl'd at all really
05:51:12 <elliott> because of the unification stuff
05:52:11 <elliott> i.e. you always need all your stuff on the right-hand side of some matching
05:52:15 <elliott> you can't reduce things to compositions
05:52:17 <oerjan> @pl let f (Just (Left (x,y))) = x ++ " does this work?" in f
05:52:25 <CakeProphet> but if I don't use type families I'll at least have a Signal typeclass with a toDiscreteSignal function.
05:52:39 <elliott> http://learncodethehardway.org/ ;; let's all read "how full of shit could zed shaw possibly be": the book
05:52:43 <oerjan> @pl let f (Just (x,y)) = x ++ " does this work?" in f
05:52:50 <oerjan> @pl let f (x,y) = x ++ " does this work?" in f
05:52:56 <elliott> If there ever were a quote that described programming with C, it would be this. To many programmers, this makes C scary and evil. It is the Devil, Satan, the trickster Loki come to destroy your productivity with his seductive talk of pointers and direct access to the machine. Then, once this computational Lucifer has you hooked, he destroys your world with the evil ”segfault” and laughs as he reveals the trickery in your bargain with him.
05:52:57 <elliott> But, C is not to blame for this state of affairs. No my friends, your computer and the Operating System controlling it are the real tricksters. They conspire to hide their true inner workings from you so that you can never really know what is going on. The C programming language’s only failing is giving you access to what is really there, and telling you the cold hard raw truth. C gives you the red pill. C pulls the curtain back to show you the
05:53:05 <elliott> "Why use C then if it’s so dangerous? Because C gives you power over the false reality of abstraction and liberates you from stupidity.
05:53:14 <elliott> nothing can liberate me from stupidity
05:53:16 <elliott> apart from cold-blooded murder
05:53:20 <elliott> "Exercise 2: Make Is Your Python Now
05:53:30 <elliott> monqy: lets share this experience together it will be unique...
05:53:35 <elliott> "The difference is, I’m going to show you smarter Makefile wizardry, where you don’t have to specify every stupid little thing about your C program to get it to build. I won’t do that in this exercise, but after you’ve been using ”baby make” for a while, I’ll show you ”master make”.
05:53:42 <monqy> from this unique experience
05:53:55 <elliott> dont worry monqy its just five chapters (sentences)
05:53:56 <CakeProphet> elliott: lol, the false reality of abstraction.
05:54:45 <monqy> After you read this book you should...
05:54:57 <elliott> why would you even learn C anyway
05:55:03 <monqy> chapters 55 and 56 are good chapters
05:55:06 -!- Sgeo has quit (Ping timeout: 255 seconds).
05:55:27 <CakeProphet> elliott: I learned C because a MUD codebase I was maintaining was written in it.
05:55:36 <CakeProphet> overall it was a good learning experience.
05:55:37 <elliott> I wonder if there's a way to get the numeric address of something from GHC.
05:55:45 <elliott> CakeProphet: no it wasn't, C is a terrible thing to know, it clouds your thinking
05:55:51 <zzo38> I think C is good programming language
05:56:03 <elliott> int2Addr# :: Int# -> Addr#Source
05:56:03 <elliott> Coerce directly from int to address. Strongly deprecated.
05:56:05 <elliott> YOU'RE STRONGLY DEPRECATED
05:56:06 <CakeProphet> switching from Python, my first language, to C, helped me understand how most computers work at a low level.
05:56:35 <elliott> C doesn't represent low-level computer working, sorry kid
05:56:41 <zzo38> It is not a terrible thing to know, unless you dislike computer programming anyways
05:57:01 <elliott> well, i don't believe that learning C taught you anything about microcode...
05:57:05 <zzo38> elliott: You are correct about that; the reason that C is used instead is so that it work on other computers too.
05:57:26 <elliott> oerjan: hey oerjan... if i write the thing into an array...then read it...
05:57:28 <CakeProphet> no it didn't. But it taught me about memory addressing and pointers.
05:57:38 <elliott> CakeProphet: yep, which isn't how your computer works at a low-level
05:57:46 <elliott> hmm, ok so if i use newarray...
05:58:12 <CakeProphet> C is useless I shouldn't waste my time using a low level language if it's not microcode.
05:58:23 <elliott> yes, these are definitely things i have said.
05:58:51 <elliott> case newAlignedPinnedByteArray# size align s of { (# s', mbarr# #) ->
05:58:51 <elliott> (# s', ForeignPtr (byteArrayContents# (unsafeCoerce# mbarr#))
05:58:53 <monqy> i have to know c for practical purposes
05:58:59 <elliott> oh wow GHC, your privates are showing :(
05:59:09 <elliott> wow how does that even work
05:59:36 <monqy> IO constructor nice
05:59:43 <zzo38> The reason you should use a low level language if it isn't microcode is so that you can write a program that works not only in one computer.
06:00:14 <CakeProphet> right, what I'm saying is that C is a good learning experience if all you have ever touched in high level languages.
06:01:01 <CakeProphet> even if it does not correspond directly to your architectures instruction set, it still interacts with memory at a very low level.
06:01:11 <zzo38> And even if you are writing a program for only one computer, using C allows you to use codes of other computers too, although in some cases modification will be required (not always).
06:01:47 <zzo38> But in some cases, using assembly language or machine codes is better way for programming that is only for one computer.
06:03:16 -!- derrik has joined.
06:03:55 <elliott> hmm, I have magichash on, why is this not working
06:04:01 -!- derrik has left.
06:06:50 <zzo38> LLVM also can be programmed for many computers, and has some commands accessing things more commonly directly in the computer's instruction set, but also includes commands that no computer has (such as the "phi" command), and other somewhat unusual things which are used for analysis/optimization and for other stuff too.
06:07:07 <CakeProphet> you guys have a shattered my view of how computers work. Here I thought most CPU instruction sets had some kind of memory addressing scheme.
06:07:38 <zzo38> But LLVM does have a few similarities to C.
06:07:38 -!- Sgeo has joined.
06:08:25 <monqy> C-- is pretty cool if i recall correctly
06:08:52 <zzo38> I have read about C--
06:09:58 <lambdabot> Foreign.Storable sizeOf :: Storable a => a -> Int
06:09:58 <lambdabot> Network.Socket.Internal sizeOfSockAddr :: SockAddr -> Int
06:09:58 <lambdabot> Network.Socket.Internal sizeOfSockAddrByFamily :: Family -> Int
06:10:13 <monqy> why would you need sizeOf aaaaa
06:10:29 <elliott> case newAlignedPinnedByteArray# size align s of
06:10:29 <elliott> (# s', mbarr# #) -> (# s', indexAddrArray# (byteArrayContents# (unsafeCoerce# mbarr#)) 0# #)
06:10:29 <elliott> where !(I# size) = sizeOf (undefined::String)
06:10:29 <elliott> !(I# align) = alignment (undefined::String)
06:10:34 <elliott> monqy: im getting the address of an arbitrary value
06:12:24 <elliott> ghc: panic! (the 'impossible' happened)
06:12:24 <elliott> (GHC version 7.0.4 for x86_64-unknown-linux):
06:12:24 <elliott> Can't derive Show for primitive type ghc-prim:GHC.Prim.Addr#{(w) tc 33}
06:12:24 <elliott> Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
06:14:21 <zzo38> Do you know about LLVM?
06:14:35 <monqy> it's in my reading pile
06:15:17 <Sgeo> Why is inability to derive Show for a primitive type a big deal?
06:15:44 <elliott> case newAlignedPinnedByteArray# size align s of
06:15:44 <elliott> case writeArray# (unsafeCoerce# mbarr#) 0# x s of
06:15:48 <Sgeo> Or is it just a faulty error message caused by your tampering, and there's really a different error?
06:15:51 <elliott> !(I# align) = 8 -- alignment (undefined::Addr#)
06:16:09 <elliott> *Data.Intern> wow "hexagons"
06:16:13 <elliott> *Data.Intern> wow "hexagons"
06:16:17 <elliott> this is the most beautiful thing ive ever seen
06:16:27 <Sgeo> There's an IO function?
06:17:07 <zzo38> Will you include a strange variation of the PHI command in the next version of INTERCAL?
06:17:19 <Sgeo> ...there's an IO constructor?
06:17:53 <elliott> how do you think values get in?
06:18:10 <CakeProphet> no such thing as opaque data types in Haskell.
06:18:36 <elliott> newtype IO a = IO (State# RealWorld -> (# State# RealWorld, a #))
06:18:42 <elliott> Sgeo: --libraries/ghc-prim/GHC/Types.hs
06:19:13 <elliott> monqy: ok something seems wrong
06:21:04 <oerjan> CakeProphet: elliott is _raping_ referential transparency
06:21:06 <elliott> it should be referentially transparent in the end. up to evaluation. and GC.
06:22:16 <elliott> i should just use stablenames
06:23:17 <CakeProphet> I think elliott is secretly the enemy of Haskell.
06:23:26 <CakeProphet> that Haskell valiantly fights in epic battles.
06:23:50 <CakeProphet> and elliott wants to break Haskell into some sick monster in a plot to rule the world.
06:24:16 <monqy> maybe with another t
06:25:15 <elliott> oh well, it's in IO, it can do that.
06:27:37 <monqy> i think i forget what its for
06:27:44 <monqy> why anyone would ever need it
06:28:04 <oerjan> it's for making skynet duh
06:28:38 <CakeProphet> it's for the sheer enjoyment of programming in a C-like language.
06:29:11 <elliott> monqy: if you implement scheme
06:29:16 <elliott> then you want to use this to represent symbols.
06:29:44 <monqy> speaking of scheme, what happened to zepto
06:31:28 <monqy> which scheme is this r5rs
06:31:35 <CakeProphet> that would also be useful for Ruby symbols.
06:34:21 <CakeProphet> I think it would also be useful for creating efficient hashes/maps instead of using string keys?
06:35:23 <elliott> well thats what hashmap/hashtable are for, but yeah, hopefully
06:35:28 <elliott> instance (Hashable a) => Hashable (Interned a) where
06:35:28 <elliott> hash a = a `seq` hashStableName (unsafePerformIO (makeStableName a))
06:51:03 <elliott> http://hpaste.org/steps/48629?expr=a+1+2&submit=Submit cool
06:51:22 <monqy> warning: use guards
06:53:25 <elliott> wow, everyone works at standard chartered
06:58:03 <elliott> do you want to be afraid monqy
06:58:27 <monqy> i had to look it up
06:58:59 <elliott> http://hackage.haskell.org/packages/archive/uu-parsinglib/2.7.1.1/doc/html/src/Text-ParserCombinators-UU-Core.html
06:59:08 <elliott> data T st a = T (forall r . (a -> st -> Steps r) -> st -> Steps r ) -- history parser
06:59:08 <elliott> (forall r . ( st -> Steps r) -> st -> Steps (a, r) ) -- future parser
06:59:08 <elliott> (forall r . ( st -> Steps r) -> st -> Steps r ) -- recogniser
06:59:08 <elliott> instance Functor (T st) where
06:59:08 <elliott> fmap f (T ph pf pr) = T ( \ k -> ph ( k .f ))
06:59:15 <elliott> ( \ k st -> push f ( pr k st))
06:59:18 <zzo38> I have successfully managed to win with the prophecy defense.
06:59:36 <zzo38> Another time, I managed to win because opponent ran out of cards before they had a chance to pick up the last side card.
07:00:22 <monqy> there is a class for eof
07:00:46 <monqy> ok what is with this T thing
07:01:32 -!- Nisstyre has quit (Remote host closed the connection).
07:01:48 <elliott> monqy: its utrecht convention IIRC
07:01:51 <elliott> monqy: you call your main type T
07:02:16 -!- Nisstyre has joined.
07:02:33 <elliott> i guess maybe henning is a utrecht guy since data-accessor is completely full of T r a -> ... and (C ...) =>
07:02:44 -!- Nisstyre has quit (Remote host closed the connection).
07:03:10 <oerjan> das kann nicht recht sein
07:03:37 <elliott> Unqualified T data types floating around. (As Brent Yorgey tells me, this is a Henning-ism in which he will define a type T or typeclass C intended to be used only with a qualified import, but Haddock throws away this information. You can use :t in GHC to get back this information if you're not sure.)
07:04:11 -!- Nisstyre has joined.
07:04:26 <CakeProphet> Even if the standard library of a programming language does not support string interning, it is possible to implement an intern pool in user code.
07:06:09 <monqy> this uu parsing library thing is scary
07:07:33 <CakeProphet> ah, excellent. Completely abusable for signal processing.
07:07:39 <CakeProphet> well, since the type allows it, I guess it's not really abuse.
07:09:38 <elliott> i already wrote all those instances dude
07:10:10 <CakeProphet> well yeah, but I think you did something weird with eq right?
07:10:25 <elliott> which is the only possible sane implementation
07:10:31 <elliott> copumpkin: did those new fclabels or was it lenses that had efficient update ever come out?
07:10:37 <CakeProphet> well, there's a different kind of equality you could do that isn't the same type.
07:10:46 <elliott> CakeProphet: (==) :: a -> a -> Bool
07:10:59 <CakeProphet> basically the signal is 0 if the input signals are unequal and 1 if they are.
07:11:04 <elliott> CakeProphet: (==) :: a -> a -> Bool
07:11:15 <CakeProphet> ...yes, as you can see, I mentioned it was a different type
07:11:19 <CakeProphet> which sort of implies that it will look different.
07:11:22 <elliott> my Eq instance was correct.
07:11:28 <elliott> if you want equality on lenses, that's fucking trivial:
07:11:45 <elliott> liftS2 :: (a -> b -> c) -> Signal a -> Signal b -> Signal c
07:12:05 <CakeProphet> basically we are talking about two completely different things right now. I have to go now, so good bye.
07:12:16 <elliott> you're faulting my implementation because it does something it has to
07:12:21 <elliott> and lacks the two lines of code for what youw ant
07:13:03 <CakeProphet> there was no causality between the first thing I said about your Eq instance, and what I said afterwards.
07:13:23 <elliott> ok. but... <CakeProphet> well yeah, but I think you did something weird with eq right?
07:13:38 -!- zzo38 has quit (Quit: Don't care. Care.).
07:13:44 <elliott> ok, then the answer is i did not :)
07:14:15 <CakeProphet> yes, what you did was reasonable. I'm sorry I didn't specify such when I started talking about a completely different kind of equality operation.
07:16:00 <elliott> ?pl \f x -> m' (\y -> m f y) x
07:16:55 -!- Nisstyre has quit (Remote host closed the connection).
07:17:08 <elliott> Lens x a -> (a -> Lens x b) -> Lens x b
07:18:02 -!- Nisstyre has joined.
07:18:28 <monqy> what is it with ?pl and =<<
07:18:35 <elliott> monad instance for functions
07:18:38 <elliott> but it keeps it in the order of application
07:18:54 <elliott> ?pl \tt x -> modify (f (g x)) tt x
07:19:14 <monqy> one time i tried looking up the monad instance for functions and couln't find it
07:19:28 <monqy> next time i will look harder
07:19:43 <lambdabot> Control.Monad join :: Monad m => m (m a) -> m a
07:19:43 <lambdabot> System.FilePath.Posix joinDrive :: FilePath -> FilePath -> FilePath
07:19:43 <lambdabot> System.FilePath.Windows joinDrive :: FilePath -> FilePath -> FilePath
07:20:52 <monqy> oh there it is in Control.Monad.Instances
07:21:03 <monqy> what a peculiar module
07:21:14 <elliott> yeah that module should really be called Control.Monad
07:21:36 <elliott> (a -> b) -> Lens x a -> Lens x b
07:22:05 <lambdabot> Source not found. Just try something else.
07:22:25 <elliott> <elliott> (a -> b) -> Lens x a -> Lens x b
07:22:29 <elliott> data Lens a b = Lens { get :: a -> b, modify :: (b -> b) -> a -> a }
07:22:36 <elliott> but its impossible to write modify ther
07:23:40 <elliott> i have a monad instance...
07:23:42 <lambdabot> liftM f m1 = do { x1 <- m1; return (f x1) }
07:23:55 <elliott> ?undo do {x1 <- m1; return (f x1) }
07:23:57 <monqy> also I've been wondering for ages what does it mean when there's an instance e.g. "Monad [::]" (on the haddock instances list)
07:24:19 <elliott> liftM f m1 = m1 >>= \ x1 -> return (f x1)
07:24:37 <elliott> liftM f (Lens g m) = Lens g m >>= \ x1 -> return (f x1)
07:24:51 <Deewiant> elliott: Never properly, only some informal comparisons
07:25:02 <elliott> liftM f (Lens g m) = Lens (get =<< (\x1 -> return (f x1)) . g) (join . flip (modify . (\x1 -> return (f x1)) . g))
07:25:13 <elliott> ?unpl Lens (get =<< (\x1 -> return (f x1)) . g) (join . flip (modify . (\x1 -> return (f x1)) . g))
07:25:13 <lambdabot> Lens (\ h -> ((\ x1 -> return (f x1)) >>= get) (g h)) (\ k -> (\ c -> modify (return (f (g c))) k) >>= \ l -> l)
07:25:20 <elliott> liftM f (Lens g m) = Lens (\ h -> ((\ x1 -> return (f x1)) >>= get) (g h)) (\ k -> (\ c -> modify (return (f (g c))) k) >>= \ l -> l)
07:25:33 <elliott> oerjan: ok either my monad instance is invalid or this _does_ work
07:26:10 <elliott> *Main> modify (liftM fst id) succ (0,9)
07:26:15 <elliott> Lens g m >>= f = Lens (get =<< f . g) (join . flip (modify . f . g))
07:26:33 <elliott> so basically I have fmap... for lenses :)
07:26:44 <elliott> Lens a b -> Lens c a -> Lens c b
07:26:53 <elliott> ?hoogle c a b -> c x a -> c x b
07:26:54 <lambdabot> Control.Category (.) :: Category cat => cat b c -> cat a b -> cat a c
07:26:54 <lambdabot> Control.Arrow (<<<) :: Category cat => cat b c -> cat a b -> cat a c
07:26:54 <lambdabot> Control.Category (<<<) :: Category cat => cat b c -> cat a b -> cat a c
07:27:05 <elliott> yep, what I have is (.), aka generalised fmap :D
07:27:18 <oerjan> elliott: heh you are not using m in your >>=
07:28:03 <elliott> -- get l (modify l f x) = f (get l x)
07:28:06 <elliott> hm do I need any other laws
07:29:19 <oerjan> <lambdabot> (\ c -> (f >>= get) (g c)) <-- wtf i think something isn't keeping track of fixity
07:30:45 <lambdabot> forall (m :: * -> *) s. (MonadState s m) => m s
07:31:04 <oerjan> that doesn't quite fit into your law above
07:31:44 <elliott> oerjan: you shadow that, obviously
07:32:21 <elliott> <elliott> data Lens a b = Lens { get :: a -> b, modify :: (b -> b) -> a -> a }
07:34:12 <cheater_> why is everyone talking about lenses
07:34:34 <oerjan> we're trying to focus here
07:35:45 -!- Nisstyre has quit (Remote host closed the connection).
07:36:08 <oerjan> hm i think you could build a monad transformer from a lens, which would modify state
07:36:34 -!- Nisstyre has joined.
07:38:12 <elliott> maybeNthL :: Int -> Lens [a] (Maybe a)
07:38:12 <elliott> maybeNthL n = Lens (getnth n) (modnth n)
07:38:13 <elliott> where getnth 0 (x:_) = Just x
07:38:13 <elliott> getnth n (_:xs) = getnth (n-1) xs
07:38:49 <elliott> *Data.Lens.Prelude> get (maybeNthL 9) (modify (maybeNthL 9) (const (Just 9)) [0,9,9])
07:38:52 <elliott> what a weird, invalid lens :)
07:40:17 <oerjan> you didn't give modnth
07:40:43 <pikhq> Always so nice catching that late-night baroque music program when coming back from D&D.
07:40:58 <oerjan> elliott: it would have to pad with undefineds, no?
07:42:28 <oerjan> oh and that would break the first one
07:43:37 -!- monqy has quit (Quit: hello).
07:43:38 <elliott> <oerjan> you didn't give modnth
07:44:55 <oerjan> maybe your client cut it off?
07:45:46 <elliott> <elliott> modnth 0 f (x:xs) = case f (Just x) of Nothing -> xs; Just a -> a:xs
07:45:46 <elliott> <elliott> modnth n f (x:xs) = x : modnth (n-1) f xs
07:45:46 <elliott> <elliott> modnth _ f _ = case f Nothing of Nothing -> []; Just a -> [a]
07:45:48 <elliott> it will have been freenode
07:45:59 <elliott> todo: handle data/newtype instances in makeLenses
07:48:19 <cheater_> you need to use the hypertext transport protocol for things that are so many lines.
07:48:51 <elliott> fmap concat (sequence (concatMap (\(n,_,_) -> [ [d| foo = 9 |] ]) oks))
07:49:14 <lambdabot> forall a (m :: * -> *) b. (Monad m) => (a -> m b) -> [a] -> m [b]
07:49:58 -!- derrik has joined.
07:51:24 <elliott> this is just an initial test :P
07:51:32 -!- derrik has left.
07:51:58 -!- Lymia has quit (Ping timeout: 240 seconds).
07:58:49 -!- Sgeo_ has joined.
08:00:55 -!- Sgeo has quit (Ping timeout: 240 seconds).
08:02:36 -!- Lymia has joined.
08:02:55 <elliott> oerjan: hm since I can't write Lens x a -> (a -> Lens x b) -> Lens x b
08:03:02 <elliott> oerjan: hm since I can't write Lens x a -> (a -> Lens x b) -> Lens x b
08:03:12 <elliott> and i can't write (a -> b) -> Lens c a -> Lens c b
08:03:16 <elliott> but I CAN write Lens a b -> Lens c a -> Lens c b
08:03:23 <elliott> maybe I can write Lens x a -> Lens a (Lens x b) -> Lens x b
08:03:28 -!- Lymia has changed nick to Lymee.
08:10:33 <elliott> ?djinn (x -> a, (a -> a) -> x -> x) -> (a -> (Lens x b), (Lens x b -> Lens x b) -> a -> a) -> Lens x b
08:10:44 <elliott> Lens x b = (x -> b, (b -> b) -> x -> x)
08:11:01 <elliott> ?djinn (x -> a, (a -> a) -> x -> x) -> (a -> (x -> b, (b -> b) -> x -> x), ((x -> b, (b -> b) -> x -> x) -> (x -> b, (b -> b) -> x -> x)) -> a -> a) -> (x -> b, (b -> b) -> x -> x)
08:11:02 <lambdabot> \ _ g -> b (\ _ -> d (\ h -> h) (a g)) g)
08:11:18 <elliott> well maybe. those ignored variables are a bit worrying.
08:11:37 <elliott> oerjan: well one of them isn't, it looks like it is just ignoring get
08:15:52 <elliott> makeLenses :: Name -> Q [Dec]
08:15:52 <elliott> let (ctx,name,binders,cons,names) = case dec of DataD a b c d e -> (a,b,c,d,e); NewtypeD a b c d e -> (a,b,c,[d],e)
08:16:00 <elliott> mapM (\(n,_,_) -> funD (transform n) [clause [] (normalB ([|Data.Lens.Lens|] `appE` varE n `appE` lamE [varP _f, varP _x] (recUpdE (varE _x) [(\x->(n,x)) `fmap` [|$(varE _f) ($(varE n) $(varE _x))|]]))) []]) oks
08:16:03 <elliott> where transform n = mkName (tail (nameBase n))
08:16:07 <elliott> <oerjan> oh my fucking god.
08:17:27 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
08:17:54 <elliott> ?hoogle a -> b -> [(a,b)] -> [(a,b)]
08:17:55 <lambdabot> Data.Graph.Inductive.NodeMap delMapNode :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> g a b
08:17:55 <lambdabot> Data.Graph.Inductive.NodeMap insMapNode_ :: (Ord a, DynGraph g) => NodeMap a -> a -> g a b -> g a b
08:17:55 <lambdabot> Data.Graph.Inductive.NodeMap delMapNodes :: (Ord a, DynGraph g) => NodeMap a -> [a] -> g a b -> g a b
08:18:01 <elliott> there's no inverse of lookup?
08:21:06 <elliott> *Data.Lens.Prelude> get (keyL "x") Map.empty
08:21:06 <elliott> *** Exception: Map.find: element not in the map
08:21:06 <elliott> *Data.Lens.Prelude> modify (keyL "x") (+9) Map.empty
08:21:06 <elliott> fromList *** Exception: keyL: element not in the map
08:21:16 <elliott> that actually violates the
08:21:25 <elliott> maybe I should loosen that?
08:21:33 <elliott> i.e. /if/ modify l id x has a value, then the value must be x
08:21:48 <elliott> but then it seems tempting to have (modify l id) _always_ be an identity transform...
08:22:01 <elliott> at the same time, silent erroneous modifications being dropped sounds sucky
08:29:07 -!- oerjan has quit (Quit: Good night).
08:35:31 <elliott> mapM (\(n,_,_) -> funD (transform n) [clause [] (normalB ([|Data.Lens.Lens|] `appE` varE n `appE` lamE [varP _f, (asP _x (recP nn [return (n,VarP _y)]))] (recUpdE (varE _x) [(\x->(n,x)) `fmap` [|$(varE _f) $(varE _y)|]]))) []]) oks
08:42:03 -!- cheater_ has quit (Ping timeout: 255 seconds).
08:42:55 -!- cheater_ has joined.
08:54:44 -!- Lymia has joined.
08:56:07 -!- Lymee has quit (Disconnected by services).
08:56:07 -!- Lymia has changed nick to Lymee.
08:57:40 <elliott> WHAT ARE MONADS/ HOW DO I MAKE MONADS OUT OF STYROFOAM AND HEAP/ COULD I BE AFFECTED BY MONADS?
08:57:46 <elliott> answers to all these and more at monad.com.com
08:58:56 <elliott> The are called "monads" rather than the easier to grasp name of "type operators" for several reasons:
08:58:56 <elliott> Monads have restrictions on what they can do (see the definiton for details).
08:58:56 <elliott> Those restrictions, along with the fact that there are 3 operations involved, conform to the structure of something called a monad in Category Theory, which is an obscure branch of mathematics.
08:58:56 <elliott> They were designed by proponents of "pure" functional languages
08:58:56 <elliott> Proponents of pure functional languages like obscure branches of mathematics
08:58:59 <elliott> Because the math is obscure, and monads are associated with particular styles of programming, people tend to use the word monad as a sort of secret handshake. Because of this no one has bothered to invest in a better name.
09:08:21 -!- Phantom_Hoover has joined.
09:14:49 -!- cheater__ has joined.
09:14:54 -!- cheater_ has quit (Ping timeout: 255 seconds).
09:21:32 -!- MigoMipo has joined.
09:21:44 -!- Vorpal has joined.
09:32:03 <elliott> ?hoogle \f x -> b (f (g x)))
09:32:05 <elliott> ?hoogle \f x -> b (f (g x))
09:33:17 <olsner> ?pl \b f g -> b . f . g
09:36:43 -!- shachaf has quit (Ping timeout: 260 seconds).
09:47:56 -!- Lymee has quit (Read error: Connection reset by peer).
09:48:50 -!- Lymee has joined.
10:07:20 -!- sebbu2 has joined.
10:09:19 -!- sebbu has quit (Ping timeout: 252 seconds).
10:59:50 <CakeProphet> see.. composing composition is when I start to get confused.
11:03:44 -!- sebbu2 has changed nick to sebbu.
11:04:01 <olsner> CakeProphet: you can think of it as fmap (fmap (flip fmap fmap) fmap) fmap, if composition is confusing :)
11:13:35 <olsner> also, (.).(.) = the boobies combinator = fmap fmap fmap
11:16:50 <lambdabot> Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them.
11:17:41 <olsner> yes, one functor instance has fmap = (.), and to make matters better lambdabot has (.) defined as fmap
11:20:12 <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...
11:20:20 <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...
11:20:26 <CakeProphet> I don't really see how that makes anything better.
11:20:50 <CakeProphet> I guess it's just something that Prelude could do that could make <$> no longer necessary.
11:23:49 <CakeProphet> it would be interested to run a search over every module in Hackage to see how many import Control.Monad.
11:24:14 <Phantom_Hoover> <olsner> yes, one functor instance has fmap = (.), and to make matters better lambdabot has (.) defined as fmap
11:25:44 <olsner> yeah, or the Reader functor
11:33:42 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
11:34:11 <CakeProphet> I can't think of a * -> * type that could not possibly have a Functor instance..
11:40:32 <lambdabot> Not in scope: data constructor `Reader'
11:40:32 <lambdabot> Not in scope: data constructor `Reader'
11:42:06 <lambdabot> Couldn't match expected type `t1 -> t'
11:45:23 <HackEgo> 188) <alise> "Europe is the national anthem of the Republic of Kosovo." <cpressey> alise: I <cpressey> I was going to say something then your last line floored me
11:48:44 -!- Lymia has joined.
11:49:52 -!- Lymee has quit (Disconnected by services).
11:49:56 -!- Lymia has changed nick to Lymee.
11:59:59 <CakeProphet> for some reason I was expecting ($) or something
12:01:20 <CakeProphet> @pl (\a b c d e f g h i j k l m -> m l k a b c j i h d e f h g)
12:01:23 <lambdabot> (((((flip .) .) .) .) .) . ((((((flip .) .) .) .) .) .) . (((((((flip .) .) .) .) .) .) .) . ((((((((flip .) .) .) .) .) .) .) .) . (((((((((flip .) .) .) .) .) .) .) .) .) . ((((((((((flip .) .) .)
12:01:24 <lambdabot> .) .) .) .) .) .) .) . flip flip id . (flip .) . ((flip .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . (((((ap .) .) .) .) .) . ((((((flip .) .) .) .) .) .) . (((((((flip .) .) .) .) .) .) .) . ((
12:01:24 <lambdabot> ((((((flip .) .) .) .) .) .) .) .) . (((((((((flip .) .) .) .) .) .) .) .) .) . ((((((((((flip .) .) .) .) .) .) .) .) .) .) . ((((flip .) .) .) .) . (((((flip .) .) .) .) .) . ((((((flip .) .) .) .)
12:01:24 <lambdabot> .) .) . (((((((flip .) .) .) .) .) .) .) . ((((((((flip .) .) .) .) .) .) .) .) . (((((((((flip .) .) .) .) .) .) .) .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . (((((flip .) .) .) .) .) . ((((
12:01:24 <lambdabot> ((flip .) .) .) .) .) .) . (((((((flip .) .) .) .) .) .) .) . ((((((((flip .) .) .) .) .) .) .) .) . ((flip .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . (((((flip .) .) .) .) .) . ((((((flip .)
12:01:27 <lambdabot> optimization suspended, use @pl-resume to continue.
12:02:28 <CakeProphet> I wonder why they ever invented variables.
12:03:33 <CakeProphet> pl is like cheating for obfuscation contests.
12:05:32 <Lymee> Can we rename @pl to @obfuscate
12:12:40 <Lymee> @l (\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 -> q w e r t y u i o p a s d f g h j k l z x c v b n m)
12:12:41 <lambdabot> Maybe you meant: learn leave let list listall listchans listmodules listservers localtime localtime-reply lojban . ? @ pl v
12:12:45 <Lymee> @pl (\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 -> q w e r t y u i o p a s d f g h j k l z x c v b n m)
12:12:48 <lambdabot> (((((((((((flip .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((flip .) .) .) .) .)
12:12:48 <lambdabot> .) .) .) .) .) .) .) .) .) . (((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((flip .) .) .) .
12:12:48 <lambdabot> ) .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .)
12:12:48 <lambdabot> .) . ((((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((
12:12:48 <lambdabot> (((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((flip .) .
12:12:52 <lambdabot> optimization suspended, use @pl-resume to continue.
12:14:11 <olsner> @. unpl pl (\a b c d e f g h i j k l m -> m l k a b c j i h d e f h g)
12:14:33 <olsner> @. unpl pl (\a b c d i j k l m -> m l k a b c j i h d)
12:23:31 -!- Lymia has joined.
12:23:53 -!- Lymee has quit (Disconnected by services).
12:23:55 -!- Lymia has changed nick to Lymee.
12:35:34 -!- shachaf has joined.
13:02:16 -!- BeholdMyGlory has joined.
13:02:33 -!- derrik has joined.
13:03:03 -!- hagb4rd has quit (Ping timeout: 255 seconds).
13:08:12 <Lymee> @pl (\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 -> q)
13:08:12 <lambdabot> const (const (const (const (const (const (const (const (const (const (const (const (const (const (const (const (const . const . const . const . const . const . const . const . const))))))))))))))))
13:08:25 <Lymee> @pl (\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 -> q a z w s x)
13:08:28 <lambdabot> const . const . const . const . const . const . const . const . const . const . const . const . const . const . const . ((const . ((const . const . const . (((const .) . flip) .)) .) . flip . (flip .
13:08:36 <Lymee> @pl (\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 -> q a z w s x a)
13:08:39 <lambdabot> const . const . const . const . const . const . const . const . const . const . const . const . const . const . const . ((const . ((const . const . const . ((const .) .)) .)) .) . join (flip . ((
13:08:39 <lambdabot> flip . ((flip . (flip .)) .) . (((flip .) .) .)) .) . (((flip .) .) .) . (flip .) . ((flip .) .) . (flip .) . flip id)
13:08:39 <lambdabot> optimization suspended, use @pl-resume to continue.
13:09:24 <Lymee> @pl (\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 -> (t o) (b e) (o r) (n o t) (t o) (b e) . (t h a t) (i s) (t h e) (q u e s t i o n))
13:09:28 <lambdabot> (const .) . (const .) . ((const .) .) . ((const .) .) . ((((const .) .) .) .) . ((((const .) .) .) .) . ((((const .) .) .) .) . ((((const .) .) .) .) . ((((((const .) .) .) .) .) .) . (((((((((((
13:09:28 <lambdabot> const .) .) .) .) .) .) .) .) .) .) .) . (((((((((((const .) .) .) .) .) .) .) .) .) .) .) . (((((((((((const .) .) .) .) .) .) .) .) .) .) .) . (((((((((((const .) .) .) .) .) .) .) .) .) .) .) . ((
13:09:28 <lambdabot> (((((((((const .) .) .) .) .) .) .) .) .) .) .) . flip (ap . ((.) .) . ((.) .) . (ap .) . ((ap .) .) . ((((.) .) .) .) . (((flip .) .) .) . (((((.) .) .) .) .) . ((((ap .) .) .) .) . ((((((.) .) .) .
13:09:28 <lambdabot> ) .) .) . ((((((.) .) .) .) .) .) . ap (ap . (flip .) . ((flip .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . flip flip (flip id) . (flip .) . ((ap .) .) . (((flip .) .) .) . ((((ap .) .) .) .) .
13:09:28 <lambdabot> (ap .) . ((flip .) .) . (((ap .) .) .) . flip flip id . (ap .) . (((.) .) .) . ((flip .) .) . (flip (flip . flip id) .)) id) . flip (ap . (flip .) . ((ap .) .) . ((((.) .) .) .) . ((((.) .) .) .) . (
13:09:32 <lambdabot> optimization suspended, use @pl-resume to continue.
13:10:07 -!- derrik has left.
13:40:56 -!- derrik has joined.
13:46:33 -!- ralc has joined.
14:04:52 -!- ralc has quit (Read error: Operation timed out).
14:23:00 -!- ralc has joined.
14:24:53 -!- Sgeo_ has quit (Ping timeout: 252 seconds).
14:57:39 -!- Sgeo has joined.
15:10:06 -!- derrik has quit (Ping timeout: 258 seconds).
15:28:48 -!- Wamanuz4 has quit (Remote host closed the connection).
15:29:16 -!- Wamanuz4 has joined.
15:39:00 -!- olsner has quit (Quit: Leaving).
15:39:25 -!- olsner has joined.
15:41:38 -!- monqy has joined.
15:46:33 -!- Lymee has quit (Ping timeout: 260 seconds).
15:58:57 -!- Lymee has joined.
16:19:23 -!- Vorpal has quit (Ping timeout: 260 seconds).
16:23:14 -!- Vorpal has joined.
16:53:05 -!- Lymia has joined.
16:56:51 -!- Lymee has quit (Ping timeout: 276 seconds).
17:01:49 <HackEgo> 180) <Gregor-W> You people. You people are so stupid. I'm making a SOCIOLOGICAL statement here.
17:02:26 <HackEgo> 180) <Gregor-W> You people. You people are so stupid. I'm making a SOCIOLOGICAL statement here. \ 274) <oklopol> ah yes, indeed, alan turing was gay and stupid \ 321) <oklopol> zzo38: you missed the point. the point was way stupider than that. \ 342) <oklopol> quintopia: no i'm not laughing at you, i'm laughing because *you're
17:04:34 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.31077
17:05:34 -!- Nisstyre has quit (Remote host closed the connection).
17:07:15 -!- Nisstyre has joined.
17:56:08 -!- azaq23 has joined.
18:04:05 <quintopia> i believe you that the person controlling the oerjan persona's physical presence lies in norway
18:04:14 <quintopia> but i do not see that online persona here
18:04:35 -!- derrik has joined.
18:06:05 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
18:25:48 -!- ralc has quit (Ping timeout: 260 seconds).
18:30:33 -!- hagb4rd has joined.
18:34:43 -!- derrik has left.
18:38:52 -!- ralc has joined.
18:50:28 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/ifodq/what_is_the_simplest_self_replicating_system_we/
18:50:58 <Phantom_Hoover> Not one of the answers addresses the fact that the question is terrible.
19:28:15 -!- oerjan has joined.
19:28:23 <oerjan> <CakeProphet> I can't think of a * -> * type that could not possibly have a Functor instance..
19:29:08 <oerjan> newtype HasNoFunctor a = HasNoFunctor (a -> Int)
19:42:34 -!- augur has quit (Remote host closed the connection).
19:44:12 -!- augur has joined.
20:21:15 -!- Nisstyre has quit (Quit: Leaving).
20:22:19 -!- Nisstyre has joined.
20:24:46 -!- ais523 has joined.
20:33:51 <Phantom_Hoover> http://www.dailymail.co.uk/news/article-2010193/Teachers-strike-Sophie-Howard-13-killed-falling-branch-school-closed.html#ixzz1QrGB4Zb0
20:34:04 <Phantom_Hoover> The logic in this article is possibly the most beautiful I have ever seen.
20:34:36 <Phantom_Hoover> The comment ratings, however, give me faith in humanity.
20:35:43 <ais523> I get "comments are currently unavailable"
20:36:01 <ais523> also, I don't think the article itself has spurious logic, it's just stating a bunch of unrelated facts and leading its readers to try to draw a connection
20:37:13 <Phantom_Hoover> Yes ais523 that is completely correct and also entirely irrelevant.
20:37:43 <ais523> it's a good journalism technique, in that it sells papers without actually lying
20:38:37 <Phantom_Hoover> "I hope every striking teacher is hanging their head in shame right now."
20:38:56 <Phantom_Hoover> I suspect this has been posted on Reddit or something.
20:54:46 <quintopia> oerjan: is there an n for which there exists no n-digit base n number which, for all k, the first k digits form a number divisible by k? study this and report back.
20:56:18 <oerjan> hm i guess the base 10 case is an old chestnut i've heard...
20:56:47 <quintopia> i've got them for 2,4,6,8,10 and maybe 12 but i don't remember
20:57:20 <quintopia> i proved that there aren't any odd ones greater than 1
20:57:40 <oerjan> oh i somehow missed your "even"
20:57:42 <quintopia> (well, base 1 isn't really meaningful...)
20:58:13 <oerjan> all 1 <= k <= n, i assume you mean
20:58:59 <oerjan> those are unique i think
20:59:14 <oerjan> last digit 0, obviously
20:59:27 <quintopia> you can drop the zero and jsut do n-1 digits if you like
20:59:55 <quintopia> some of the numbers have multiple solutions
21:00:36 <oerjan> > map (readInt 4 digitToInt) ["123", "321"]
21:00:37 <lambdabot> Couldn't match expected type `GHC.Bool.Bool'
21:00:44 <lambdabot> forall a. (Num a) => a -> (Char -> Bool) -> (Char -> Int) -> String -> [(a, String)]
21:00:58 <oerjan> > map (readInt 4 (const True) digitToInt) ["123", "321"]
21:02:46 <oerjan> ok even and odd digits must alternate
21:03:31 <oerjan> how does the odd non-existence proof go?
21:04:46 <oerjan> to be divisible by n-1, an analogue of the digital root rule holds
21:06:05 <oerjan> 1+2 is odd. so that is ruled out for base 3.
21:06:27 <oerjan> 1+2+3+4 is 10, not divisible by 4
21:07:07 <oerjan> 1+2+3 is 6, divisible by 3 so _that_ works
21:07:15 <oerjan> 1+2+3+4+5 is divisible by 5
21:07:52 <oerjan> n(n+1)/2 divisible by n iff n+1 is even. right, that proves it cannot work for odd ones
21:08:43 <oerjan> while the n-1'st step automatically works for even ones
21:08:58 <oerjan> quintopia: was that your proof?
21:11:38 <oerjan> n*i + j == 2*i + j (mod (n-2))
21:12:51 <oerjan> if n has many prime factors, then that fixes factors of many of the digits
21:13:07 <oerjan> say for 6, the 3rd digit must be divisible by 3
21:13:40 <quintopia> indeed. the middle digit is always n/2 iirc
21:14:06 <oerjan> because that and 0 are the only digits divisible by n/2
21:14:57 <oerjan> hm it doesn't matter where you put 1 or 5 for base 6
21:15:05 <quintopia> nonetheless, several numbers have multiple solutions (usually consisting of two digits you can swap)
21:15:51 <quintopia> but then sometimes, there's only one, which led me to wonder if it would ever become an overconstrained problem
21:16:53 <oerjan> hm there's only one for 10 i guess (iirc the chestnut)
21:17:06 <oerjan> is that related to it being twice a prime?
21:17:22 <quintopia> i can go solve 14 real quick if you like :P
21:17:30 <quintopia> (by quick i mean like 30 minutes...)
21:17:44 <oerjan> _maybe_ it would be an idea to write a program :P
21:18:08 <quintopia> someone i know already has some generalized CSP tools
21:18:18 <quintopia> left over from doing the sudoku PE puzzle
21:24:10 -!- zzo38 has joined.
21:33:49 -!- Vorpal has quit (Ping timeout: 260 seconds).
21:36:11 <oerjan> i believe the restriction on digit positions can be generalized to gcd pos digit == gcd pos base
21:36:55 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:38:37 <oerjan> because at each position divisible by d where d divides the base, then the digit there must be divisible by d. and the number of positions with a given gcd is exactly equal to the number of digits with the same gcd, so they must be matched
21:39:45 <oerjan> * gcd (gcd pos digit) base == gcd pos base
21:40:34 <oerjan> (no use for factors not in the base)
21:41:38 <oerjan> hm that's the same as gcd digit (gcd pos base) == gcd pos base
21:50:09 <oerjan> > let nsearch _ _ _ [] = []; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos base; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 4 1 0 [1..3]
21:50:21 <oerjan> > let nsearch _ _ _ [] = []; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 4 1 0 [1..3]
21:51:20 <oerjan> how can it not work when it compiled :D
21:51:40 <lambdabot> forall a. (Eq a) => a -> [a] -> [a]
21:52:43 <oerjan> > let nsearch _ _ _ [] = []; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 4 1 0 [1..3]
21:53:15 -!- Lymia__ has joined.
21:54:12 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 4 1 0 [1..3]
21:54:32 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 6 1 0 [1..5]
21:54:55 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 6 1 0 [1..5]
21:55:11 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 8 1 0 [1..7]
21:55:12 <lambdabot> [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]]
21:55:23 <oerjan> quintopia: do those solutions look familiar?
21:55:51 -!- Lymia has quit (Ping timeout: 240 seconds).
21:56:20 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 10 1 0 [1..9]
21:56:57 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 12 1 0 [1..11]
21:57:12 <oerjan> quintopia: um it claims there are no solutions for 12 :P
21:57:30 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 12 1 0 [1..11]
21:57:52 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 14 1 0 [1..13]
21:57:53 <lambdabot> [[9,12,3,10,5,4,7,6,11,8,1,2,13]]
21:58:21 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 16 1 0 [1..15]
21:58:33 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 18 1 0 [1..17]
21:58:42 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 20 1 0 [1..19]
21:59:02 <oerjan> quintopia: there appear to be no solutions for 12, 16, 18 or 20
22:01:49 <oerjan> the gcd stuff seems not to be very important, it was fast enough without too
22:02:15 <oerjan> well i guess it might time out for larger ones
22:02:27 <quintopia> and of course... now i can't help but wonder if there is a maximum n...but that question might be as hard as collatz
22:02:33 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 20 1 0 [1..19]
22:03:27 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 22 1 0 [1..21]
22:03:50 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 22 1 0 [1..21]
22:05:24 <quintopia> oerjan: what is the maximum n which, for all k<n, one can lick a tootsie roll pop k times and remember the value of k, but for which the nth lick becomes a bite?
22:06:31 <quintopia> i wonder how many mathematicians are working on the Tootsie Roll Pop Conjecture...
22:07:13 <oerjan> my old laptop seems to have trouble with this :(
22:08:03 <oerjan> actually 22 _should_ be hard because the gcd stuff adds very little when the base is twice a prime
22:09:15 <oerjan> but also, twice primes are interesting because 14 _did_ have an example so maybe they all do...
22:10:54 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 24 1 0 [1..23]
22:11:50 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 24 1 0 [1..23]
22:17:15 <elliott> i'm getting my first month of prgmr free :D
22:18:07 <Phantom_Hoover> elliott, what, has he had a heart attack or something?
22:18:27 <elliott> A HEART ATTACK OF JEALOUSY
22:18:47 <oerjan> quintopia: ah, there is no solution for 22 either
22:19:01 <oerjan> so twice prime conjecture disprover :P
22:19:58 <quintopia> oerjan: run 26 if your compy can handle it :P
22:21:28 <oerjan> (22 got reasonably fast once i actually compiled it properly)
22:21:46 -!- elliott_ has joined.
22:21:53 <quintopia> and then run 62 mwahahaha (in case it is twice mersenne primes)
22:22:03 -!- elliott has quit (Read error: Connection reset by peer).
22:22:07 <oerjan> sorry, i don't think that is going to work :P
22:22:15 <oerjan> it hasn't finished 26 yet
22:22:22 <oerjan> so it's obviously exponential
22:22:42 -!- Lymia has joined.
22:22:49 <oerjan> ah there. no solution.
22:22:52 <zzo38> One idea for pokemon cards: Attach this card to one of your bench or active pokemon. Power, weak, resist, of the card this is attached to is suppressed. If you receive damage that would be affected by the weakness, discard this card (after damage is calculated).
22:26:32 <oerjan> no solution for 24 either. i don't think i'm going to try anything larger on this computer :P
22:26:37 -!- Lymia__ has quit (Ping timeout: 276 seconds).
22:27:18 <elliott_> EXCUSE ME I HAVE THE PERFECT COMPUTER GIVE IT TO ME
22:27:50 <oerjan> quintopia: my guess is there is no real connection between all the constraints so they just statistically block everything from some size on
22:28:10 <oerjan> elliott_: see nsearch above
22:28:54 <oerjan> elliott_: in what bases b do there exist b-digit numbers such that the first k digits form a number divisible by k, 1 <= k <= b
22:29:23 <oerjan> elliott_: sorry, odd bases have been excluded
22:29:26 <elliott_> there are 9 such bases, their identity is left as an exercise to the reader
22:30:07 <oerjan> 1, 2, 4, 6, 8, 10, 14 are the ones we have found so far :P
22:30:31 -!- cheater__ has quit (Ping timeout: 255 seconds).
22:30:32 <oerjan> and a search up to 26 seems to bring little hope of more
22:31:23 <oerjan> elliott_: but you are welcome to test 28, 30 and so on as far as you wish
22:31:34 <elliott_> oerjan: no i am god i test nothing
22:31:47 <elliott_> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 24 1 0 [1..23]
22:32:10 <oerjan> elliott_: nsearch b 1 0 [1..b-1]
22:32:12 <elliott_> also, could any strictness help here?
22:32:22 <elliott_> oerjan: erm that is to test 28?
22:32:48 <elliott_> but yeah, if you want to strictness annotate any of that... do it now
22:33:02 <oerjan> elliott_: just put !'s on everything :P
22:33:27 <oerjan> well all the numbers :P
22:33:39 <oerjan> it's not an algorithm that needs laziness
22:34:04 <elliott_> nsearch.hs:1:177: Not in scope: `delete'
22:34:06 <lambdabot> Data.HashTable delete :: HashTable key val -> key -> IO ()
22:34:06 <lambdabot> Data.IntMap delete :: Key -> IntMap a -> IntMap a
22:34:06 <lambdabot> Data.IntSet delete :: Int -> IntSet -> IntSet
22:34:06 <oerjan> however n can be large, so you definitely need Integers
22:34:11 <oerjan> elliott_: oh, in Data.List
22:34:22 <elliott_> what is nsearch's return type?
22:34:35 <elliott_> how long did twenty-six take, exactly? :D
22:34:52 <elliott_> hmm, so this will take hours :D
22:35:05 <oerjan> elliott_: note that my laptop is 5 years old :P
22:35:16 <elliott_> oerjan: could it be parallelised?
22:37:07 <quintopia> i'm gonna agree with oerjan's conjecture that there are no more after 14
22:37:09 <oerjan> elliott_: 30, 32, etc. we have no proof for specific even numbers
22:37:24 <oerjan> elliott_: we don't actually expect any more hits
22:38:07 <oerjan> let me just check OEIS for this
22:38:17 <elliott_> oerjan: what did mathematicians do before OEIS
22:38:50 <quintopia> i searched for it on oeis before and never found it
22:38:57 <oerjan> "Toothpick sequence starting at the vertex of an infinite 90-degree wedge."
22:39:07 <elliott_> oerjan: i'm glad this program has constant memory usage
22:39:17 <elliott_> what's the next predicted base?
22:39:19 <oerjan> quintopia: i'm joking :P
22:39:31 <elliott_> oerjan: erm wait that's a real sequence?
22:39:54 <elliott_> so depending on the outcome of 30... :D
22:39:56 <oerjan> yes but next is 18, which is not in the one we investigate
22:40:08 <elliott_> oerjan: how big will the output be if it is a match?
22:40:28 <quintopia> oerjan: i searched for the sequence 1,2,2,2,1,0...
22:41:14 <oerjan> elliott_: who knows? some bases have 3 examples
22:41:34 <oerjan> but in _theory_ there could be an exponential amount
22:42:32 <oerjan> quintopia: i guess OEIS does not contain finite sequences much, anyhow
22:44:23 <quintopia> yes. it does contain a handful. it contains the fermat primes iirc
22:45:36 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 8 1 0 [1..7]
22:45:37 <lambdabot> [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]]
22:45:41 -!- cheater_ has joined.
22:46:42 <oerjan> hmph those don't google well
22:46:50 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 10 1 0 [1..9]
22:47:50 <oerjan> that one has good hits, at least :P
22:48:18 <olsner> hmm, this fringe episode has "polish military-grade transistors"
22:48:18 <elliott_> oerjan: still running thirtytwo
22:48:23 <quintopia> so it's 1,2,2,3,1,0,1,0,0,0,0,0,0,0,0,0...
22:49:00 <quintopia> olsner: orite. those are the huge ones that can switch/amplify 4000 V wires :P
22:49:25 <olsner> quintopia: no, it's just a normal small one with polish text on it
22:49:25 -!- azaq23 has quit (Ping timeout: 255 seconds).
22:50:46 <quintopia> olsner: doesn't sound military grade to me
22:51:00 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 8 1 0 [1..7]
22:51:00 <lambdabot> [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]]
22:51:19 <oerjan> no indication that the gcd rule is wrong, at least
22:51:51 <elliott_> oerjan has mastered the ancient mathematical art of proving statements on infinite sets by testing a finite number of examples
22:51:58 <oerjan> it makes me a bit nervous, but it should cut down a lot of branches
22:52:15 <elliott_> can always binary-search back to those
22:52:41 <elliott_> I mean, you can just try ones that fit the gcd rule
22:52:44 <elliott_> then go back to non-gcd ones later
22:53:24 <oerjan> if your computer can handle them :P
22:53:52 <oerjan> for example, it's the gcd rule which ensures odd positions only get odd digits
22:54:37 <oerjan> so without it, all of those might get twice as many candidates at each step
22:54:42 <elliott_> oerjan: psst, can you reofrmulate nsearch with combinators instead of a comprehension?
22:54:48 <elliott_> I'm trying to port it to data-parallel Haskell
22:55:02 <oerjan> i have no idea how data parallel haskell works :P
22:55:26 * elliott_ tries to find the module for you; it's basically just Data.List
22:55:30 <elliott_> but I just want a list version
22:56:36 <oerjan> elliott_: well i guess you want to choose the digit first, and if there are two, you can branch
22:56:42 <elliott_> hm should the result be (ArrayTypeyThing [Integer]) or [ArrayTypeyThing Integer]
22:56:46 <oerjan> *two or more possibilities
22:56:53 <elliott_> assuming remdigs is ArrayTypeyThing Integer
22:57:31 <oerjan> elliott_: hm you could actually do it with Integer instead if you want
22:58:05 <elliott_> or should it be [R.Array R.DIM1 Integer]?
22:58:10 <oerjan> elliott_: the final result is really just n. oh but it will be in decimal if you do that.
22:58:20 <elliott_> you're not really making any sense :D
22:58:25 <elliott_> oerjan: do you mean that the inner [Integer]
22:58:46 <elliott_> (assuming the bases won't go above Int range...)
22:59:03 <oerjan> n still needs to be Integer though.
22:59:20 <elliott_> urgh, what, no Elt instance for Integer?
23:00:20 <elliott_> oerjan: I might just use Data.Vector instead
23:00:28 <elliott_> oh wait, repa is what does the automatic parallelisation
23:00:58 <elliott_> oerjan: hmm, will remdigs ever contain a really large number?
23:01:13 <elliott_> and will the result numbers in nsearch ever be really large? I mean, feasibly
23:01:16 <oerjan> elliott_: remdigs is always a subset of [1..b-1]
23:01:43 <oerjan> elliott_: the number has b-1 digits where b is the base :P
23:01:56 <elliott_> hmm, so it might very well overflow, then
23:02:33 <elliott_> oerjan: ok well is nsearch expressable as a map of any kind, I'm just looking for parallelisation options here
23:03:39 <oerjan> elliott_: the recursive nsearch depends on the digit chosen. i guess you can check if there is more than one possible digit and branch only if so
23:04:01 <zzo38> Some people have asked questions about chess rules such as this: "can a king switch places with a pawn when in check?" "if a king reaches the other end of the board then can u get your queen back?" "He moved his king to the other side and said its a draw. Is it correct?" "can the king take another piece"
23:04:08 <elliott_> hmm, when would there ever be only one possible digit?
23:04:27 <oerjan> elliott_: easily. for example the b/2 digit must always be b/2
23:04:40 <elliott_> erm wouldn't that only save, like, one recursion though
23:05:07 <oerjan> elliott_: but there is also the requirement that the number so far must be divisible by the current position
23:05:23 <elliott_> ?pl [ d : ds | !d <- remdigs , let g = gcd pos b , let n' = n*b+d , gcd d g == g , mod n' pos == 0 , !ds <- nsearch b (pos+1) n' (delete d remdigs) ]
23:05:23 <lambdabot> expecting white space, "()", natural, identifier, lambda abstraction or expression
23:05:23 <oerjan> i would think that tends to cut down most
23:05:30 <elliott_> i was hoping for a combinator version
23:05:43 <quintopia> oerjan: i think it is possible to write a much more efficient logical search than this rather brute forcey thing you've got. like the logical sudoku solver?
23:06:01 <zzo38> "if the opponents queen is placed next to the king putting him in check mate can the king take the queen" "is it true that the king cna move two spaces on its first move?" "If you get your king across and back do you get a piece back." "I have alot of friends at school that say that chess is for nerds and geaks do any of you have this proble please replay after reading this message"
23:06:13 <oerjan> quintopia: i don't know. i feel like the gcd rule takes care of most easy restrictions...
23:06:23 <elliott_> how do you translate a list comprehension again...
23:06:37 <elliott_> filter (\d -> let g = gcd pos b; n' = n*b+d) remdigs
23:06:41 <oerjan> @undo [x | y <- l, x <- y]
23:06:41 <lambdabot> concatMap (\ y -> concatMap (\ x -> [x]) y) l
23:06:50 <elliott_> ?undo [ d : ds | !d <- remdigs , let g = gcd pos b , let n' = n*b+d , gcd d g == g , mod n' pos == 0 , !ds <- nsearch b (pos+1) n' (delete d remdigs) ]
23:06:58 <elliott_> ?undo [ d : ds | d <- remdigs , let g = gcd pos b , let n' = n*b+d , gcd d g == g , mod n' pos == 0 , ds <- nsearch b (pos+1) n' (delete d remdigs) ]
23:06:58 <lambdabot> concatMap (\ d -> let { g = gcd pos b} in let { n' = n * b + d} in if gcd d g == g then if mod n' pos == 0 then concatMap (\ ds -> [d : ds]) nsearch b (pos + 1) n' (delete d remdigs) else [] else [])
23:07:22 <elliott_> just means that I can, e.g. try a parallel map
23:07:31 <elliott_> assuming numdigs isn't too big, that should pay off
23:08:40 <elliott_> concatMap (\ ds -> [d : ds]) nsearch b (pos + 1) n' (delete d remdigs)
23:08:43 <elliott_> oerjan: hm that can't be right
23:09:23 <oerjan> elliott_: in fact the number of branches will almost certainly be largest for the first few digits, where the restriction of modulus is small
23:09:44 <oerjan> while for the later ones you will probably only get one digit possibility
23:10:09 <oerjan> (e.g. the first digit can be any number relatively prime to the base)
23:10:46 <elliott_> nsearch !b !pos !n !remdigs = concat (parMap rdeepseq f remdigs)
23:11:33 <zzo38> "do you guys know about the ozone layer" (That has nothing to do with chess!) "Whap happens when a player says a false checkmate? Do i win?" "can a player leave the table while his oponent has to move if a clock doesnt exist?" "When your king reaches the other side if the board what happenends?" "when a pawn reachs the end can it turn into a queen. If i already have one ."
23:13:35 <elliott_> 3291 elliott 20 0 48740 3700 1256 R 179 0.1 0:13.84 nsearch.optim
23:13:41 <zzo38> "i have played a computer program that says that moving the king into a square without having that square accessible by a piece of yours is illegal. is this true?" "is it allowed for a king to be checkmated without going through check first?" "can a pawn turn into a queen and put you into check mate to end the game or must it be done differently" "lets say there was just a kink left and the very last move of the game put it in checkmate,would t
23:13:49 <elliott_> rdeepseq may be excessive, min dyou
23:14:30 <monqy> wtf sort of questions are these
23:14:33 <monqy> who would ask them
23:15:06 <elliott_> oerjan: hm this may have been a pessimisation...
23:15:09 <elliott_> unless it wasn't thirty I tested
23:15:12 <zzo38> Probably people who are very confused about chess might ask these kind of questions
23:15:43 <oerjan> elliott_: i think maybe one should split the digit selection from the recursion somehow...
23:15:45 <zzo38> Some are common questions but others are strange
23:15:54 <elliott_> oerjan: yeah, i don't have the smarts for that, you have to handle that thinking stuff
23:16:14 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | d <- remdigs, let n' = n*b+d, mod n' pos == 0, ds <- nsearch b (pos+1) n' (delete d remdigs)] in nsearch 8 1 0 [1..7]
23:16:15 <lambdabot> [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]]
23:16:51 <elliott_> $ time ./nsearch.optim +RTS -N
23:17:06 <elliott_> oerjan: erm that is the same program :D
23:17:58 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | (d,n') <- ndigs b pos n remdigs , ds <- nsearch b (pos+1) n' (delete d remdigs)]; ndigs b pos n remdigs = [(d, n') | d <- remdigs, let n' = n*b+d, mod n' pos == 0]; in nsearch 8 1 0 [1..7]
23:17:59 <lambdabot> [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]]
23:19:19 <oerjan> not sure if that actually helps though :P
23:20:00 <oerjan> i copied a version without the gcds :(
23:20:54 <oerjan> > let nsearch _ _ _ [] = [[]]; nsearch b pos n remdigs = [d:ds | (d,n') <- ndigs b pos n remdigs , ds <- nsearch b (pos+1) n' (delete d remdigs)]; ndigs b pos n remdigs = [(d, n') | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0]; in nsearch 8 1 0 [1..7]
23:20:54 <lambdabot> [[3,2,5,4,1,6,7],[5,2,3,4,7,6,1],[5,6,7,4,3,2,1]]
23:22:04 <oerjan> elliott_: i think the first list comprehension there is a good spot to parallelize. of course i don't actually know this stuff :P
23:22:14 <elliott_> meh, parallelisation just slows this down it seems...
23:22:21 <elliott_> ?undo [d:ds | (d,n') <- ndigs b pos n remdigs , ds <- nsearch b (pos+1) n' (delete d remdigs)]; ndigs b pos n remdigs = [(d, n') | d <- remdigs, let g=gcd pos b; n' = n*b+d, gcd d g == g, mod n' pos == 0]
23:22:45 <oerjan> i hope that tuple doesn't hurt too much
23:24:12 <oerjan> hence why i said the _first_ list comprehension :P
23:25:27 <elliott_> oerjan: ndigs is a separate function, right?
23:26:17 <oerjan> the idea is that you probably don't want to paralellize it, but if its result has more than two elements you want to paralellize on the rest
23:26:40 <elliott_> oerjan: this has the same performance characteristics as the original version when not paralellised, right?
23:27:07 <elliott_> ?undo [d:ds | (!d,!n') <- ndigs b pos n remdigs, !ds <- nsearch b (pos+1) n' (delete d remdigs)]
23:27:07 <lambdabot> Parse error at ",!n')" (column 12)
23:27:13 <elliott_> ?undo [d:ds | (d,n') <- ndigs b pos n remdigs, ds <- nsearch b (pos+1) n' (delete d remdigs)]
23:27:13 <lambdabot> concatMap (\ (d, n') -> concatMap (\ ds -> [d : ds]) nsearch b (pos + 1) n' (delete d remdigs)) ndigs b pos n remdigs
23:27:31 <elliott_> oerjan: I'm tempted to use a list type that can nest indefinitely and flatten it at the end
23:27:40 <elliott_> oerjan: since all these concats are essentially barriers that force sequentiality...
23:28:25 <elliott_> ?undo [d:ds | (d,n') <- (ndigs b pos n) remdigs, ds <- (nsearch b (pos+1) n' (delete d remdigs))]
23:28:25 <lambdabot> concatMap (\ (d, n') -> concatMap (\ ds -> [d : ds]) (nsearch b (pos + 1) n' (delete d remdigs))) (ndigs b pos n) remdigs
23:29:16 <elliott_> oerjan: so, erm, would I want the outer or inner concatMap to be parallel?
23:30:13 <elliott_> basically is ndigs or nsearch the long one :D
23:30:58 <oerjan> oh. the outer one, i think.
23:31:31 -!- azaq23 has joined.
23:31:58 <elliott_> ok, it's using all my CPU, so hopefully this will be faster
23:32:03 <elliott_> but that's what I said last time, too
23:32:34 <oerjan> elliott_: my point is you don't want to parallelize on remdigs, only on the result of ndigs
23:32:50 <oerjan> because remdigs is likely to be pruned a lot
23:35:06 <Phantom_Hoover> I am now genuinely curious as to how laid-back scheduling works for the person arranging a meeting.
23:35:09 -!- hagb4rd has changed nick to hagb[4]rd.
23:35:19 <Phantom_Hoover> Do you just turn up half an hour later than you specified?
23:35:27 <elliott_> You just turn up whenever, man.
23:36:26 <oerjan> elliott_: i take it there have been no new elements in the sequence so far, and you're up to trying 34?
23:36:39 <Phantom_Hoover> Throughout the Latin American world, are the conference rooms booked for 10 o'clock but empty of people because they've all tacitly agreed to turn up at half 10?
23:36:57 <elliott_> Phantom_Hoover: You realise that "laid back" means "laid back", not "PRECISELY half an hour later".
23:37:27 <elliott_> oerjan: anyway, thirty-two took 19m28.434s sequentially
23:37:33 <elliott_> so I dunno how long this will take, parallely
23:38:15 <oerjan> it's just a bit of time
23:38:44 <oerjan> i don't know any bug. you might want to try it on 8 which we know has 3 elements :P
23:39:28 <oerjan> well actually i did, on the pre-parallelized version
23:40:16 -!- cheater_ has quit (Ping timeout: 255 seconds).
23:44:57 <oerjan> elliott_: hm hopefully this framework is smart enough not to add parallelizing overhead if mapping over a list with 1 element :P
23:45:13 <elliott_> oerjan: I think sparks are really cheap
23:45:18 <elliott_> as in, you can have hundreds of thousands at any time
23:45:30 <elliott_> os threads > haskell green threads > sparks
23:46:13 <oerjan> elliott_: yeah but still i thought i'd heard that the trick to parallelization is to not get too fine-grained so everything is destroyed by overhead...
23:46:26 <elliott_> oerjan: that's sort of the idea of sparks, isn't it?
23:46:53 <elliott_> anyway, all the smart people think it's great ;D
00:00:15 <oerjan> elliott_: since 32 has so many factors, the gcd rule is likely to cut that down more than 34 which is twice a prime. i think.
00:01:23 <elliott_> oerjan: would it be possible to make some sort of progress report output? :P
00:03:32 <elliott_> oerjan: well i could always report progress through the original list passed, right?
00:03:36 <elliott_> that would be rather non-finegrained though
00:04:45 <oerjan> um but those are done in parallel...
00:05:54 <elliott_> [[Two things - firstly: "Every time you do any string handling with C's native string types and functions, you need to make sure you have allocated enough memory for each string" - that's right, and experienced C developers write the correct code naturally and without thinking.]]
00:06:00 <elliott_> humans are infallible and busywork is good
00:06:49 <oerjan> as i've almost said before, with perfect people everything works, even nazism
00:07:16 <pikhq> oerjan: Even sparks can be destroyed by overhead, but 99% of the time, it "just works".
00:07:44 <pikhq> (those suckers are *really* cheap)
00:08:22 <zzo38> Understanding probability can help to play at pokemon card!
00:10:01 <elliott_> "That's silly - almost all programs use strings heavily, considering that they're really the most natural way for programs to take input from and produce output for humans."
00:10:09 <elliott_> and that's why everyone uses text UIs, without even colour or cursor control
00:11:11 <zzo38> I am playing CLEFAIRY [Lv15] against DARK CLEFABLE [Lv33] and I think my chance of hitting them is 50%. Their chance of hitting me is probably lower, but I don't know the exact amount. It is not greater than 50% though.
00:12:42 <ais523> Pokémon names aren't officially always-uppercased nowadays
00:13:02 <ais523> although it's a relatively recent change
00:13:18 <zzo38> coppro: No link, sorry.
00:13:40 <ais523> Bulbapedia has most of the older Pokémon cards, but they're sorted by expansion, rather than zzo38's naming scheme
00:13:42 <zzo38> ais523: I am uppercased the names of all the cards
00:14:07 <zzo38> ais523: Do you know how to play pokemon card?
00:14:28 <zzo38> See if you understand my puzzle games.
00:14:47 <elliott_> Cords are a nice structure; I wonder if they're efficient when implemented purely functionally.
00:15:02 <zzo38> elliott_: Can you try it and figure out?
00:15:06 <ais523> it'll be complicated by the fact that zzo38 likely plays a mix of old rulesets
00:15:16 -!- CakeProphet has quit (Read error: Connection reset by peer).
00:15:44 <zzo38> http://zzo38computer.cjb.net/textfile/miscellaneous/pokemon_card/puzzle.1
00:15:46 <zzo38> http://zzo38computer.cjb.net/textfile/miscellaneous/pokemon_card/puzzle.2
00:15:51 -!- CakeProphet has joined.
00:15:51 -!- CakeProphet has quit (Changing host).
00:15:51 -!- CakeProphet has joined.
00:16:43 <ais523> ah, DARK CLEFABLE [Lv33] is more commonly called Dark Clefable (Team Rocket's Ambition) or Dark Clefable (GB 2)
00:16:55 <ais523> so that was easy enough to find: http://bulbapedia.bulbagarden.net/wiki/Dark_Clefable_%28GB_2%29
00:17:05 <zzo38> Yes it is the GB 2 version.
00:17:09 <elliott_> | Branch !Int !(Maybe (Cord l a)) !(Maybe (Cord l a))
00:17:31 <zzo38> Calling it [Lv33] should still be unambiguous, though. Also, the puzzle games list all the card texts.
00:17:44 <ais523> and hmm, is exclusive to one of the Game Boy games, rather than being an actual physical card
00:19:07 <zzo38> Yes it is, although it could be played with physical cards too I think, if the chance os 1/3 for -0, 1/3 for -1, 1/3 for -2, then you can use a dice however, which is not part of the standard game.
00:19:35 <zzo38> (These are also the numbers I used to estimate my probability of hitting)
00:22:10 <oerjan> elliott_: your newtype has some spurious l's
00:22:23 <elliott_> oerjan: indeed, remnants from a previous, more general attempt that I'm delaying
00:22:28 <elliott_> oerjan: ([a] is not a very efficient short-string structure)
00:23:04 <elliott_> "Leaf nodes (as well as some single-child internal nodes) also contain a short string."
00:23:07 <elliott_> i love that unexplained as-well-as
00:23:42 <elliott_> "Seen from another perspective, the binary tree of a rope can be seen as several levels of nodes. The bottom level contains all the nodes that have a short string. Higher levels have fewer and fewer nodes, until finally there is just one root node in the top level. We can build the rope by putting all the nodes with short strings in the bottom level, then randomly picking half those nodes in order to form parent nodes in the next level. Nodes with no p
00:23:42 <elliott_> arent (for example, the two nodes storing the strings "my_" and "me_i" in the diagram above) become the right child of the node located immediately to their left, thus forming a chain. In this way, we can build higher levels one level at a time. We stop when there is only one node remaining."
00:23:51 <elliott_> it's like it's purposefully trying not to be an actual algorithm
00:24:00 <zzo38> The GameBoy computer opponents seem to be bad at defensive play and average at offensive play, and often do stupid things.
00:24:15 <zzo38> ais523: Can you figure out my puzzle games? Can you understand it?
00:24:36 <coppro> zzo38: Referring to cards by level is a bad approach
00:24:46 <coppro> zzo38: The cards are much more well-known by name
00:25:16 <elliott_> oerjan: hmm, looks like finger trees are actually pretty close to this
00:25:20 <zzo38> The card texts of the puzzles are typed on there
00:25:30 <zzo38> And anyways I only know them by level anyways
00:25:43 <elliott_> oerjan: finger trees have O(n) indexing, right?
00:26:00 <elliott_> i guess because it tries from the end too
00:26:05 <ais523> zzo38: I haven't looked at it, I'm watching a Pokémon Blue TAS at the moment
00:26:56 <oerjan> elliott_: finger trees have O(1) indexing at the end, is the major difference i think
00:27:24 <elliott_> oerjan: that's actually quite useful, for strings
00:27:42 <coppro> a pokemon TAS? oh dear
00:27:56 <elliott_> oerjan: the problem is that you don't want (Seq Char), you want (Seq AboutSixteenOrSoChars)
00:28:00 <elliott_> oerjan: which just complicates every algorithm
00:28:09 <elliott_> sufficiently so that I think reinventing the wheel might be more expedient
00:28:39 <oerjan> elliott_: the O(1) also keeps holding a*ly as you traverse inwards
00:28:55 <elliott_> yes, that is definitely a sentence that makes sense.
00:29:08 <oerjan> a* is here the word i keep forgetting
00:29:21 <zzo38> What is a Pokemon TAS?
00:31:49 <elliott_> http://hackage.haskell.org/packages/archive/simple-rope/0.1/doc/html/Data-Rope.html ;; TYPE FAMILIES: TOTALLY SIMPLE
00:31:53 <oerjan> anyway, the first 16 chars take 16*O(1) to traverse
00:32:36 <Sgeo> elliott_ hates history
00:32:41 <Sgeo> and historical stuff
00:33:43 <elliott_> oerjan: hmm, http://upload.wikimedia.org/wikipedia/commons/c/c2/Rope_example.jpg confuses me
00:33:51 <elliott_> apart from being tilted for no apparent reason, the lengths of the strings all vary wildly
00:33:59 <elliott_> is it because of inserting "s" somewhere that there's a one-char "s"?
00:37:08 <oerjan> and the numbers only apply to the part vertically below ignoring the tilting...
00:38:07 <elliott_> oerjan: I just mean, why would all the strings not be equally-sized?
00:38:15 <elliott_> So presumably it isn't a newly-created string, but a modified one
00:38:30 * oerjan doesn't actually know ropes
00:38:48 <oerjan> i think i briefly considered if they were useful for implementing dupdog
00:39:24 <oerjan> ok i guess if there isn't more to them than that, i know them
00:39:36 <zzo38> It is impossible to pull the ropes regardless of the number of your tentacles, I think.
00:40:28 <oerjan> maybe zzo38 is a great old one
00:41:20 <zzo38> Actually I am not one million years old. Nobody lives that long, I think.
00:44:17 -!- ralc has quit (Quit: Leaving).
00:47:24 <elliott_> hmm, I wonder what I should use as the target length of the small strings in a rope
00:47:32 <elliott_> there is probably some obvious answer based on keeping the tree shallow
00:47:43 <elliott_> well, shallow but still... foresty enough
00:51:53 <Sgeo> RIP Bonobo Conspiracy
00:52:59 -!- azaq23 has quit (Quit: Leaving.).
00:53:52 * elliott_ was hoping oerjan would answer :D
00:54:01 <elliott_> 4004 elliott 20 0 48740 3984 1260 S 109 0.1 124:00.04 nsearch.optim
00:55:07 <elliott_> <kmc> only in Haskell would you rotate a list by extending it to be infinitely long and then throwing out most of it ;P
00:55:49 -!- Phantom_Hoover has quit (Quit: Leaving).
00:56:15 <oerjan> > let rot n l = take (length l) . drop n $ cycle l in rot 5 "abracadabra"
00:56:19 <elliott_> LinuxJournal: Is there a world outside of computers?
00:56:19 <elliott_> -- http://www.linuxjournal.com/article/5048
00:56:39 <oerjan> elliott_: * elliott_ was hoping oerjan would answer :D
00:56:52 <elliott_> oerjan: <elliott_> hmm, I wonder what I should use as the target length of the small strings in a rope
00:56:53 <elliott_> <elliott_> there is probably some obvious answer based on keeping the tree shallow
00:56:53 <elliott_> <elliott_> but I don't know what it is
00:56:53 <elliott_> <elliott_> well, shallow but still... foresty enough
00:57:02 <elliott_> oerjan: also, the reason no haskell compiler does automatic memoisation is because of space leaks, right?
00:58:52 <elliott_> http://www.reddit.com/r/programming/comments/ifq59/a_regular_expression_matcher_in_30_lines_of_c/c23fz1d?context=3 hey oerjan, tell me whether my response is bullshit or not :P
01:00:05 -!- jcp has joined.
01:01:39 <oerjan> sounds fair. although i vaguely recall at one time reading that main = putStrLn "hello" >> main
01:01:40 <lambdabot> Prelude replicate :: Int -> a -> [a]
01:01:40 <lambdabot> Data.List replicate :: Int -> a -> [a]
01:01:40 <lambdabot> Control.Monad replicateM :: Monad m => Int -> m a -> m [a]
01:01:47 <lambdabot> Control.Monad replicateM :: Monad m => Int -> m a -> m [a]
01:02:01 <oerjan> elliott_: how dare you paste in the middle of my broken line
01:02:13 <elliott_> anyway, it won't blow the stack
01:02:14 <oerjan> elliott_: er, *did leak space
01:02:16 <elliott_> even if it does eat all your ram
01:02:31 <oerjan> this was in some ancient version
01:03:02 <oerjan> elliott_: what do you want for that ?hoogle function?
01:03:20 <elliott_> oerjan: group into lists of length N
01:03:32 <elliott_> "abcdefgh" grouped by three -> ["abc","def","gh"]
01:03:36 <oerjan> elliott_: Data.Split, i think
01:03:53 <oerjan> not in standard libraries
01:04:58 <oerjan> > takeWhile (not.null) . map(take 3) . iterate(drop 3) $ "abcdefgh"
01:09:49 -!- Sgeo has quit (Ping timeout: 255 seconds).
01:10:33 -!- Sgeo has joined.
01:15:10 <elliott_> http://hackage.haskell.org/packages/archive/ListLike/3.1.1/doc/html/Data-ListLike.html#t:ListLike ugliest typeclass
01:15:28 <pikhq> elliott_: Should I feel bad for having made sabotage build dynamically?
01:15:40 -!- Sgeo has quit (Ping timeout: 255 seconds).
01:15:49 <pikhq> Well, that was straightforward.
01:16:42 <pikhq> elliott_: It also seems to have cut the size of X11 by 95%.
01:17:59 <zzo38> Does the Linux kernel have support for error emulation?
01:19:48 -!- jcp|other has joined.
01:19:55 -!- jcp|other has quit (Read error: Connection reset by peer).
01:20:14 -!- jcp|other has joined.
01:23:48 -!- Sgeo has joined.
01:26:58 -!- CakeProphet has quit (Ping timeout: 260 seconds).
01:33:32 <elliott_> oerjan: that was actually to answer my implicit question IN RETURN FOR ALL MY CPU TIME
01:33:32 <oerjan> also you beat me by seconds there
01:33:44 <elliott_> <elliott_> oerjan: <elliott_> hmm, I wonder what I should use as the target length of the small strings in a rope
01:33:44 <elliott_> <elliott_> <elliott_> there is probably some obvious answer based on keeping the tree shallow
01:33:44 <elliott_> <elliott_> <elliott_> but I don't know what it is
01:33:44 <elliott_> <elliott_> <elliott_> well, shallow but still... foresty enough
01:34:01 <oerjan> i think i can say with some confidence that i dunno
01:34:06 <elliott_> I dunno whether you want it to be some fraction of the total initial string length or some constant :D
01:34:29 <oerjan> elliott_: square root or logarithm perhaps?
01:34:40 <oerjan> hm but you want a lower limit too
01:34:44 <elliott_> yes, let's just throw random functions at the problem :D
01:35:11 <oerjan> gaussian, to be precise
01:35:40 <elliott_> pack :: (StringLike a) => Int -> a -> Rope a
01:35:40 <elliott_> pack cs s | size s < 2*cs = Leaf cs s
01:35:40 <elliott_> | otherwise = let (a,b) = splitAt cs s in pack cs a <> pack cs b
01:35:47 <oerjan> _finally_ elliott_ is getting a clue
01:36:31 <elliott_> -- | O(n) Convert a list of 'Word8' into a 'Rope'
01:36:32 <elliott_> if Prelude.length s<=leafSize then unsafePerformIO $ do
01:36:32 <elliott_> contents<-mallocForeignPtrArray leafSize
01:36:36 <elliott_> withForeignPtr i0 $ \i->poke i $ Prelude.length s
01:36:38 <elliott_> withForeignPtr contents $ \c->fillPtr c s
01:36:40 <elliott_> return $ String { contents, i0, offset=0, length_=Prelude.length s }
01:36:44 <elliott_> let (a,b)=Prelude.splitAt leafSize s in
01:36:50 <elliott_> fillPtr::Storable a=>Ptr a->[a]->IO ()
01:37:04 <elliott_> \end{code} Il n'est pas clair qu'on ne puisse pas faire beaucoup mieux que ce pack. Par exemple, vu qu'on calcule la taille de la liste, on pourrait sortir un arbre directement \'equilibr\'e. Vu qu'on ne fait jamais pack avec des 'ByteString's (sauf ghc quand il compile des IsString), \c ca ne vaut sans doute pas le co\^ut. Par contre, append est utilise presque partout. Il est crucial que son implementation soit extremement efficace. \begin{code}
01:37:13 <elliott_> so the ideal chunk size is between 64 and 65536
01:39:56 <oerjan> wait this is the kind of "you need no know cache" stuff, isn't it.
01:41:33 <Sgeo> Newspaper works as a mousepad!
01:41:41 <elliott_> Sgeo: Warren considers my ardent anti-historism beautiful.
01:43:52 <elliott_> oerjan: 208:18.92 nsearch.optim
01:46:22 <oerjan> are you _sure_ you didn't accidentally write 43 or something
01:51:02 <elliott_> main = print (nsearch 34 1 0 [1..33])
01:51:34 <elliott_> oerjan: heh, fromList is a painful function to write :(
01:51:42 <elliott_> because just getting a list of chunks isn't enough, i have to all spindly them down into a tree
01:55:02 -!- Lymia has changed nick to Lymee.
01:57:52 <lambdabot> Not in scope: data constructor `Leaf'
01:58:14 <oerjan> > return True :: Tree Bool
01:58:15 <lambdabot> Node {rootLabel = True, subForest = []}
02:01:14 <elliott_> $ time ./nsearch.optim +RTS -N
02:01:15 <oerjan> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
02:01:23 <elliott_> two seconds later: OMG ITS FOUND
02:02:02 <oerjan> why doesn't it print the initial [, anyway
02:02:29 <elliott_> [undefined] would produce [<exception>
02:02:51 <oerjan> > [undefined] :: [Int]
02:03:01 <oerjan> but even without the brackets
02:03:57 <oerjan> that's the reason why fix show works
02:04:27 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\...
02:06:30 <oerjan> > fix (return.var.show) :: [Sym ()]
02:06:31 <lambdabot> [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[...
02:10:19 <oerjan> > fix (return.var.show) :: Maybe (Sym ())
02:10:21 <lambdabot> Just Just Just Just Just Just Just Just Just Just Just Just Just Just Just ...
02:11:00 <oerjan> > Just (Just (Just True))
02:16:05 -!- pikhq_ has joined.
02:16:09 -!- pikhq has quit (Ping timeout: 240 seconds).
02:16:16 <oerjan> elliott_: have you tried timing the parallel one for smaller values? that was some leap from 32 to 34...
02:16:50 <oerjan> how long did that take?
02:19:53 -!- copumpkin has joined.
02:19:53 -!- copumpkin has quit (Changing host).
02:19:53 -!- copumpkin has joined.
02:20:39 <oerjan> <elliott_> realI1m31.738s
02:21:25 -!- copumpkin has quit (Client Quit).
02:21:31 <oerjan> that's more than 100 times up to when you stopped 34 :(
02:21:54 <elliott_> its obviously massively exponential
02:22:32 <oerjan> or rather, i cannot see how it could be _more_ than factorial. well maybe some of the large artithmetic on n.
02:23:22 <ais523> wow, Slashdot has given me a total of 30 moderator points in a week
02:23:36 <oerjan> well you are a very moderate guy
02:24:52 <ais523> according to the FAQ, it implies I'm in the top percentile of moderators, or something like that
02:25:16 <ais523> (moderator selection is random, but apparently when you're selected, you get to do more moderation if the metamoderators think you've been doing well)
02:25:18 <coppro> I mostly read via rss now
02:25:28 <ais523> as far as I can tell, it just means most Slashdotters are really biased
02:25:38 <ais523> and I read Slashdot for the comments
02:26:58 <zzo38> I have sometimes read the comments on Slashdot, too.
02:26:59 <zzo38> Are you able to read pokemon card puzzle by now?
02:27:45 <ais523> I don't understand your notation for energy
02:28:08 <ais523> does @ mean purple/psychic energy?
02:28:57 <zzo38> ais523: What part are you having trouble with about the energy? Yes, @ means purple/psychic energy although you can still solve it without that information (all the card texts use the same notation too, in that file). % means leaf energy (green)
02:28:57 <ais523> also, how many Prizes does each player have? are they called something else?
02:29:10 <zzo38> "Side cards remaining".
02:29:54 <zzo38> Also called Prizes also the name "side cards" is also used sometimes, and that is what I am using there.
02:29:58 <ais523> and numbers on their own in Pokémon descriptions are damages in multiples of 10?
02:30:23 -!- copumpkin has joined.
02:32:30 <zzo38> What is called ten damage is called 1 here; it is more logical.
02:32:32 <ais523> you need to point out that the opponent has at least one card in draw pile
02:32:43 <ais523> otherwise you can win by passing the turn :)
02:32:52 <ais523> you have [irrelevant] there atm
02:36:10 <zzo38> I don't think it is necessary but OK I will change that
02:38:12 -!- zzo38 has quit (Quit: Unfortunately I have to leave now, sorry).
02:40:18 <ais523> I'm not convinced the first puzzle is possible; there seems to be no way to get a draw from the deck other than itemfindering Bill in any of the cards there, and if you do that, you have no way to refill your deck with Nightly Garbage Run
02:40:28 <ais523> other than that, it's reasonably obvious what you have to do
02:41:45 <coppro> ais523: it's not possible according to modern rules
02:42:06 <coppro> it /may/ have been possible according to older rules, although I don't recall them well enough
02:42:20 <coppro> in any case, I'd forgotten the rule that makes it impossible
02:42:21 <ais523> coppro: under zzo38's ruleset, weakness is almost certainly *2 damage rather than a fixed bonus amount of damage like it is nowadays
02:42:56 <ais523> I'm assuming you're meant to hit a weakness (using goop gas attack) in order to deal 60 damage to get one prize, and 10 to a benched to get the other
02:43:30 <ais523> oh, you can just itemfinder for goop gas attack and ignore all the other cards in the discard
02:44:28 <ais523> move a counter from dark muk to porygon, retreat Gengar for Spearow, GoW Dark Muk, retreat Spearow for Hypno, itemfinder for Goop Gas Attack, play it, then hit for 60+10 benched damage for the double KO
02:44:45 <ais523> normally it's bad style to write a puzzle that has that much irrelevant stuff in...
02:46:00 <coppro> ais523: I cannot find any evidence to support your assertion that weakness is not *2 damage nowadays, and that is the correct solution although it's illegal under modern rules as you can only retreat once per turn
02:46:10 <coppro> note that I define 'modern rules' as 'the rulebook on the website'
02:46:15 <ais523> you can only retreat once per turn nowadays?
02:46:19 <ais523> I stopped playing before that was introduced
02:46:33 <ais523> and nowadays, weakness is printed on the cards; it's sometimes *2, but more commonly +20 or +30
02:46:57 <ais523> whereas in the first few sets, weakness was always printed as *2, making it look like a rules reminder rather than actually necessary
02:47:03 <coppro> quick scan shows that most recent expansion is almost always *2
02:48:31 <coppro> although it appears to be relatively simple cards generally
02:48:35 <ais523> hmm, so it's changed again?
02:48:44 <ais523> as I said, I'm a little out of the loop
02:48:53 <ais523> I play the videogames competitively, but not the cards
02:49:13 <ais523> the videogames are much cheaper, a sort of one-off £40 or so for each version, and they come out once every few years
02:49:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
02:49:53 <coppro> I suspect that the TCG adopts a similar approach to Magic of making on expansion a year much simpler
02:50:19 <coppro> although it looks like they've been revising the rules a lot too
02:50:25 <ais523> Magic's reason is also because there are a lot of boring cards that are nonetheless necessary to round out decks
02:50:37 <ais523> and yes, I coincidentally quit Magic at the time of the latest big rules change
02:50:59 <ais523> not because of the rules change itself (although I don't really see the point of some of the more controversial changes, and think they're mostly negative), but because I disliked the sets that they'd been making
02:51:25 <coppro> The core sets were never really about printing utility cards
02:51:48 <coppro> They need to be in every set since otherwise the limited format would be impossible to play
02:52:08 <coppro> The new core set model is very awesome
02:52:31 <ais523> but it was the difference between core sets using basic utility cards everyone gets, and expansion sets having quirky ones
02:52:57 <ais523> and often the basic ones were a better fit if you weren't going heavily themed
02:59:14 <coppro> It appears that the Pokemon TCG has redone supporters and stadia again; now they are subtypes of Trainer
02:59:48 <ais523> supporters were always subtypes of trainer, weren't they?
02:59:51 <ais523> just with a 1/turn restriction?
03:00:23 <coppro> except for a while when they were a card type
03:00:42 <coppro> but they were originall cobbled on with annoyingly-present reminder text
03:00:58 <ais523> the reminder text was needed
03:01:07 <coppro> the new Trainer template has room for Item/Supporter/Stadium in the top-right corner and has a nice box at the bottom for the reminder text
03:01:12 <ais523> because people kept trying to bring them to people using only old-style cards, when they first came out
03:01:49 <ais523> the invention of supporters was needed, anyway; under the original rules, there was never a reason not to play 4x Bill and 4x Professor Oak
03:02:10 <coppro> definitely agree there
03:02:43 <ais523> (bill was completly safe, professor oak was a gamble but one that had incredibly good return)
03:02:47 <coppro> there's now also basic metal and dark energy, but without the special effects
03:02:53 <ais523> that was needed too, I think
03:03:02 <coppro> Just wait until your hand is low, then play Oak
03:03:14 <ais523> coppro: I mean, you might draw Oak at a time when it isn't useful
03:03:23 <ais523> worst case is getting two Oaks from Bill
03:03:34 <coppro> but then you just play one and the problem goes away
03:03:46 <ais523> yep, it's just a waste more than anything else
03:03:50 <ais523> it's a very good worst case :)
03:09:11 -!- copumpkin has joined.
03:09:11 -!- copumpkin has quit (Changing host).
03:09:11 -!- copumpkin has joined.
03:21:33 -!- jcp|1 has joined.
03:21:54 -!- jcp has quit (Ping timeout: 258 seconds).
03:23:28 -!- jcp|other has quit (Ping timeout: 255 seconds).
03:27:19 -!- jcp|other has joined.
03:29:25 -!- jcp|1 has quit (Ping timeout: 264 seconds).
03:29:27 -!- TeruFSX has quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.).
03:29:34 -!- jcp has joined.
03:29:41 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:38:08 -!- pikhq has joined.
03:41:10 -!- pikhq_ has quit (Ping timeout: 244 seconds).
03:41:51 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
03:53:39 -!- quintopia has quit (Ping timeout: 250 seconds).
03:55:38 -!- jcp|1 has joined.
03:56:19 -!- jcp has quit (Ping timeout: 255 seconds).
03:56:58 -!- jcp|other has quit (Ping timeout: 258 seconds).
03:58:58 -!- zzo38 has joined.
03:59:35 -!- quintopia has joined.
03:59:41 <zzo38> If it says "irrelevant" it means those cards are not important for the puzzle.
04:00:03 <zzo38> ais523: Did you figure it out?
04:03:32 <ais523> <ais523> move a counter from dark muk to porygon, retreat Gengar for Spearow, GoW Dark Muk, retreat Spearow for Hypno, itemfinder for Goop Gas Attack, play it, then hit for 60+10 benched damage for the double KO
04:04:02 <ais523> there were a lot of things shown in that puzzle that weren't necessary, though
04:04:05 -!- jcp has joined.
04:04:10 <ais523> as in, you only need to involve half the things on the field
04:30:51 <coppro> I'd say card game puzzles should not include irrelevant game state
04:31:34 <elliott_> purely functional card g- oh wait that's this year's ICFP
04:35:13 <monqy> doesn't that game have so much state
04:35:24 <elliott_> but it's manipulated with pure functions
04:37:30 -!- myndzi\ has quit.
04:55:16 -!- hagb[4]rd has quit (Ping timeout: 255 seconds).
05:24:57 <zzo38> I included some irrelevant thing I think it should sometimes contain some. Even in chess puzzle they sometimes do. But in tsume shogi they usually do not contain irrelevant things.
05:25:19 -!- myndzi has joined.
05:25:56 <elliott_> hmm, I was going to code something
05:26:00 <elliott_> ah, probably a nice esointerpreter
05:26:05 <zzo38> ais523: You did it good. Now try second one too.
05:26:28 <elliott_> oh, but then suddenly most esolangs are bad? :(
05:27:01 <zzo38> elliott_: Please do code something. Code everything.
05:27:10 * pikhq wonders how easy would it be to get GHC working with musl.
05:27:10 <elliott_> there would be nothing left to not code.
05:27:19 <elliott_> pikhq: it works on windows, so ... trivial?
05:27:30 <zzo38> ais523: Do you know how to make up another pokemon card puzzle, too? I would like to see.
05:27:33 <monqy> is zepto good is zepto esolangs
05:27:37 <monqy> is zepto interpreter
05:27:39 <elliott_> monqy: zepto is so fucking good, you have no idea.
05:27:51 <elliott_> im crying over how good zepto is.
05:27:57 <elliott_> this is the saddest day of my life.
05:27:58 <pikhq> elliott_: Okay, then it'd more just be the pain of building it at all.
05:28:12 <monqy> ill never be as good as zepto
05:28:35 <elliott_> http://killyourself.org/ "killyourself.org - All about the Consideration to Kill Yourself"
05:28:38 <pikhq> zzo38: zepto is that property which most software lacks.
05:28:41 <elliott_> "in suck as hell..!!!!! kill your self if u play like this..!"
05:29:21 <zzo38> Zepto- (symbol z) is a prefix in the metric system
05:29:36 <elliott_> HOW TO KILL YOUR SELF ON BIG DIRT BIKE
05:29:36 <elliott_> THE MAD SAILORS HAVE CHANGED FROM WATER TO WHEELS. WHAT NEXT
05:30:09 <elliott_> Just came accross the following post on care2.com – Female Veterans More Likely To Commit Suicide and wanted to share it here with you on killyourself.org ...
05:30:23 <elliott_> zzo38: it's also an adjective, and also an adverb
05:30:32 <elliott_> oh it is also a verb and a noun
05:30:43 <elliott_> i zepto zepto with my zepto zepto. it was zepto.
05:30:55 <elliott_> it can also replace other words if you want e.g.
05:31:05 <elliott_> zepto zepto zepto zepto zepto zepto zepto. it zepto zepto.
05:31:41 <oerjan> there is no true or false. there is only zepto
05:31:55 <elliott_> the boolean type in zepto has one value
05:32:31 <oerjan> "One zeptomole (zmol) of substance contains 602 particles."
05:32:59 <elliott_> yes. this is why integers literals in zepto are base 602
05:33:42 <elliott_> but do i do it in C or Haskell
05:33:45 <elliott_> obviously Final Zepto must be in C
05:33:49 <elliott_> but this it not Final Zepto, oh no
05:33:58 <oerjan> no, final zepto must be in zepto, duh
05:34:06 <elliott_> this is but a meandering zepto on the zepto path to the one true zepto zepto which zepto zepto, and thus becometh the final zepto.
05:34:11 <zzo38> Now I am confused of it.
05:34:22 <elliott_> zzo38: me too. tip: try and not understand it and instead zepto.
05:34:29 <elliott_> oerjan: ah. you would think. but a failed bootstrapping is not very zepto.
05:34:43 <elliott_> and if you lose the binary, as zepto people are wont to do, then that would make it a very un-zepto situation.
05:34:55 <elliott_> also, compilers are un-zepto, so that's just too recursive for the universe to handle.
05:35:02 <monqy> zepto in haskell, then make a zepto program to generate the final zepto
05:35:02 <elliott_> although that, in itself, is very zepto, we are unfortunately constrained.
05:35:05 <zzo38> elliott: OK. But are you going to write in esolang wiki or what else? How can you do?
05:35:08 <elliott_> we can only achieve universal zepto.
05:35:14 <elliott_> zzo38: i think it might get deleted as spam :D
05:35:51 <oerjan> elliott_: well there's only one final solution then, we must ki^W implement hardware zepto.
05:36:05 <zzo38> Then post it in your own computer
05:36:39 <elliott_> oerjan: yes we must ki^W implement it.
05:36:40 <pikhq> Thou shalt not ignore CC
05:36:48 <pikhq> Thou shalt not override CC.
05:37:07 <zzo38> Zepto is the property most software lacks. Then should you say all software lacks it?
05:37:08 <pikhq> I shall feel compelled to beat you.
05:38:18 <pikhq> It is using autoconf and somehow making it ignore CC.
05:38:33 <pikhq> That is impressive and I feel compelled to murder those responsible.
05:39:01 <elliott_> In fact if you have zepto on your system, there is very little reason not to just delete all the other software on it.
05:40:20 <zzo38> elliott_: Same thing.
05:41:40 <zzo38> elliott_: As to zepto.
05:42:26 -!- Sgeo_ has joined.
05:42:50 <zzo38> Can you make up any new pokemon card puzzles? I would like to see it, too.
05:42:55 <pikhq> coppro: It seems that most compilers supporting normal, cross, and Canadian cross builds using autoconf fuck it up.
05:43:17 <oerjan> pikhq: maybe it's a leftover from the evil mangler age
05:43:31 <pikhq> PCC and CINTERCAL are the only ones that seem to do it right that I know of.
05:43:41 <pikhq> (TCC also does it right, but it doesn't use autoconf.)
05:44:20 <pikhq> ghc-cabal: Bad header file: HsBase.h
05:44:20 <pikhq> The header file contains a compile error. You can re-run configure with the
05:44:20 <pikhq> verbosity flag -v3 to see the error messages from the C compiler.
05:44:31 <pikhq> I... Blimble... What the... Fuuuck?
05:44:46 -!- Sgeo has quit (Ping timeout: 255 seconds).
05:45:39 -!- elliott_ has quit (Read error: Connection reset by peer).
05:45:51 -!- elliott has joined.
05:45:59 <elliott> monqy: would you like the greatest privilege
05:46:20 * pikhq sees if that fails without --with-gcc=musl-gcc...
05:46:41 <pikhq> If not, then I suppose I'll have to bother building a proper cross compiler.
05:46:49 <elliott> monqy: you could have a part in the designing of the initial zepto revision/derivative/variant/exoskeleton, ante-zepto
05:46:54 <pikhq> Aside from PCC, that is.
05:47:50 <elliott> monqy: moral support. also, implementation details.
05:48:18 <oerjan> you may also have to provide a few inessential vital organs.
05:48:59 <elliott> monqy: also you get to supply bignum algorithms that i'm too lazy to write, or maybe i could just be really really un-zepto
05:49:11 <elliott> yes, that means that + would fail for no reason and you would have to be all oh :(
05:49:19 <monqy> whats bignums whats algorithms
05:49:35 <pikhq> Strange, it seems to be missing some Haskell dependencies.
05:49:41 <pikhq> I have the effing Platform.
05:49:53 <elliott> haskell platform: literally contains every haskell library
05:49:55 <monqy> somehow i've never learned how to implement bignums
05:50:21 <elliott> what other types do we need monqy
05:50:33 <pikhq> Hmm, it actually doesn't have readline.
05:50:49 <monqy> padic is not four letters
05:51:31 <elliott> p-adic numbers are nice they make me smile
05:52:17 <monqy> are characters zepto so long as there is no worry about messy things like encoding
05:52:39 <elliott> monqy: you just use symbols
05:52:46 <elliott> symbols are words, strings are words, what is the difference
05:52:57 <monqy> i guess this works
05:53:00 <elliott> i GUESS there can be a function to get the nth codepoint in a symbol as an integer
05:53:19 <elliott> anyway we don't need non-primitive functions of course
05:53:28 <elliott> we just define the application of e.g. ((x) x) instead
05:55:55 <elliott> monqy: oh yeah previously zepto was dynamically scoped but I guess it can be lexical now???
05:56:27 <monqy> all i remember about zepto is i had no idea what was going on
05:57:13 <elliott> (def lambda '(e fn '(e* arr . (apply e fn (eval arr e*)))))
05:57:40 <elliott> pikhq: oh right jhc requires a haskell compiler
05:58:46 <pikhq> Y'know what? Haskell is insufficiently sane. :P
05:59:23 <pikhq> Thus far, there has been only one language implementation that has "just worked" with musl.
05:59:41 <pikhq> ./configure&&make&&make install
06:00:13 <pikhq> ... Of course, this is a language that only recently dropped its support for the PocketPC and the Palm Pilot.
06:01:01 <monqy> are any languages sufficiently sane
06:01:06 <pikhq> monqy: Not really.
06:01:33 <monqy> my experience as well; I was hoping for a different answer :(
06:01:41 <pikhq> Okay, well, I suppose that PCC was relatively sane...
06:01:53 <pikhq> Only had to futz with config.sub and the path to the dynamic linker.
06:02:12 <pikhq> elliott: Guess what doesn't work?
06:02:26 <pikhq> It seems to be assuming glibc overincluding.
06:02:41 <elliott> monqy: hmm oh quote is not the same thing as lambda if I make things lexically scoped
06:02:54 <pikhq> ... I... And... Defuck?
06:03:27 <elliott> we need a vau s.t. (vau args . fn) in environment e === (cons (cons e args) fn)
06:03:28 <oerjan> no defuck. or phantom_hoover will massacre you.
06:03:54 <elliott> (vau x . x) ==> ((<environment> . x) . x)
06:03:55 <pikhq> IT'S TIME.H NOT SYS/TIME.H
06:03:59 <oerjan> elliott: wait are you basing this on that vau idea?
06:04:00 <elliott> where <environment> is an environment object
06:04:14 <elliott> oerjan: well yes, it is basically fexpr construction
06:04:25 <elliott> oerjan: and if one represents lambdas as lists, and wants lexical scoping, then you need to include the environment in
06:04:32 <elliott> so vau basically becomes a convenience
06:05:10 <elliott> it needs to take the environment as an operator too
06:05:36 <elliott> (vau env args . fn) in environment e === (list e env args . fn)
06:06:07 <elliott> (vau e x (eval e x)) ==> (<environment> e x (eval e x))
06:06:23 <elliott> monqy: this is becoming unzepto :(
06:07:51 <elliott> monqy: i guess we could go dynamically scoped again
06:08:35 <monqy> how does dynamic scoping work with things like not feeling messy
06:08:37 <newsham> it worked out so well the first time
06:08:40 <monqy> I've never really studied it
06:09:34 <elliott> monqy: its great exclamation marks
06:09:41 <elliott> here's a schemeish example
06:09:52 <elliott> (define (g) (let ((x 0)) (f)))
06:10:08 <elliott> sorry for momentarily misleading you into thinking that dynamic scoping was sane in any way
06:10:31 <newsham> if you wanna relive bad programming decisions, just use perl
06:10:36 <zzo38> How much do you know of the Lesser Key?
06:10:49 <monqy> is there a perl lisp
06:11:42 <monqy> perl of lisps, perl with lisp syntax and benefits thereof, others???
06:11:46 <newsham> ". Perl is another language with dynamic scoping that added static scoping afterwards"
06:12:09 <monqy> is php dynamically scoped or did they fix that or was I dreadfully misinformed
06:19:40 <Nisstyre> monqy: php has no dynamic scoping
06:20:15 <monqy> grats masterful php designers
06:22:03 <oerjan> > let ?x = 9; f = x; g = let ?x=0 in f in g
06:22:03 <lambdabot> <no location info>: parse error on input `f'
06:22:19 <oerjan> :t let ?x = 9; f = x; g = let ?x=0 in f in g
06:22:30 <elliott> monqy: oh cool my environments are immutable :slowpoke:
06:23:04 <elliott> monqy: i failed to make them mutable, this is haskell
06:23:09 <elliott> should conses be immutable y or n
06:23:28 <elliott> bear in mind that if conses are immutable, there is exactly one kind of mutable object, environments
06:23:31 <oerjan> > let {?x = 9; f = x; g = let {?x=0} in f} in g
06:23:32 <lambdabot> <no location info>: parse error on input `f'
06:23:53 <oerjan> > let {?x = 9; f = x; module g = let {?x=0} in f} in g
06:23:53 <lambdabot> <no location info>: parse error on input `f'
06:24:13 <monqy> there would still be a way to define cyclic things right
06:24:54 <oerjan> > let {?x = 9; f = ?x; module g = let {?x=0} in f} in g
06:24:54 <lambdabot> <no location info>: parse error on input `f'
06:25:02 <monqy> cycles are my bro but so is immutability
06:25:34 <oerjan> > let {?x = 9; f = ?x} in f
06:25:35 <lambdabot> <no location info>: parse error on input `f'
06:26:12 <oerjan> > let {?x = 9; g = ?x} in f
06:26:13 <lambdabot> <no location info>: parse error on input `g'
06:26:58 <oerjan> > let ?x = 9 in let f = ?x; g = (let ?x = 0 in f) in g
06:28:05 <oerjan> > let ?x = 9; ?y = 2 in let f = ?x; g = (let ?x = 0 in f) in g + ?y
06:28:29 <oerjan> hm is it forbidden to let both ? variables and others in the same block?
06:31:17 <lambdabot> forall a1 r (m :: * -> *). (Monad m) => (a1 -> r) -> m a1 -> m r
06:31:28 <elliott> ?hoogle (a -> b -> m c) -> m a -> m b -> m c
06:31:29 <lambdabot> Control.Monad zipWithM :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m [c]
06:31:29 <lambdabot> Control.Monad zipWithM_ :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m ()
06:31:29 <lambdabot> Control.Monad foldM :: Monad m => (a -> b -> m a) -> a -> [b] -> m a
06:31:35 <elliott> ?hoogle (a -> m b) -> m a -> m b
06:31:35 <lambdabot> Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b
06:31:35 <lambdabot> Control.Monad (=<<) :: Monad m => (a -> m b) -> m a -> m b
06:31:35 <lambdabot> Prelude (>>=) :: Monad m => m a -> (a -> m b) -> m b
06:33:12 <oerjan> :t \f x y -> (f <$> x) =<< y
06:33:13 <lambdabot> forall a (m :: * -> *) b a1. (Monad m) => (a -> m b) -> (a1 -> a) -> m a1 -> m b
06:33:49 <oerjan> :t \f x y -> (f <$> x <$> y)
06:33:49 <lambdabot> forall a b a1 (f :: * -> *). (Functor f) => (a -> b) -> (a1 -> a) -> f a1 -> f b
06:34:33 <oerjan> :t \f x y -> (f <$> x) <*> y
06:34:34 <lambdabot> forall a a1 b (f :: * -> *). (Applicative f) => (a -> a1 -> b) -> f a -> f a1 -> f b
06:34:57 <oerjan> :t \f x y -> join (f <$> x <*> y)
06:34:58 <lambdabot> forall a a1 (m :: * -> *) a2. (Applicative m, Monad m) => (a -> a1 -> m a2) -> m a -> m a1 -> m a2
06:35:33 <Deewiant> ?ty \f ma mb -> ma >>= \a -> mb >>= \b -> f a b
06:35:34 <lambdabot> forall (m :: * -> *) a a1 b. (Monad m) => (a -> a1 -> m b) -> m a -> m a1 -> m b
06:35:52 <Deewiant> For your non-Applicative Monad needs
06:36:11 <elliott> Deewiant: Such monads don't exist
06:36:25 <oerjan> ?pl \f ma mb -> ma >>= \a -> mb >>= \b -> f a b
06:36:25 <lambdabot> flip ((.) . (>>=)) . flip ((.) . (>>=))
06:36:34 <elliott> Deewiant: There are no monads that are not applicative functors
06:36:44 <oerjan> ?pl ma >>= \a -> mb >>= \b -> f a b
06:36:45 <Deewiant> elliott: The instance might not be defined
06:37:02 <elliott> Deewiant: instance Applicative M where pure = return; (<*>) = ap
06:37:17 <elliott> Better three lines than writing ugly code for the sake of a lie
06:37:19 <Deewiant> elliott: An extra line of code, and potentially inefficient
06:37:40 <elliott> Got any benchmarks for applicative code being slow? :-P
06:38:19 <Deewiant> I didn't mean the applicative-ness of it, just that defining <*> via a helper like ap might end up doing unnecessary work
06:38:55 <lambdabot> (\ d e -> d >>= \ b -> e >>= \ a -> return (b a))
06:39:17 <elliott> Deewiant: instance Applicative M where pure = return; f <*> x = f >>= \f' -> x >>= \x' -> return (f' x'), if you're into ugliness
06:39:53 <fizzie> What a best ending for a vacation. They're doing a bathroom renovation thing in the apartment downstairs from us; we walk in with suitcases and so on, and the people doing it go: "Hey, do you live in the apartment above?" Sure, why? "We just accidentally drilled into your sewer and now you can't use your bathroom until it's fixed."
06:39:55 <elliott> Deewiant: Have I mentioned that my hypothetical GHC extension would make this unnecessary?
06:39:57 <lambdabot> class Functor f => Applicative f where
06:40:17 <elliott> instance Applicative M where
06:40:17 <elliott> f <*> x = do f' <- f; x' <- x; return (f' x')
06:40:32 <elliott> Deewiant: What I'm saying is: Woo, GHC extensions that don't yet actually exist
06:41:11 <elliott> Deewiant: You were meant to ask what it is, but fine, ruin my flow like that
06:42:46 <monqy> wait why not (<*>) = ap
06:43:30 <zzo38> Someone told me that MISSINGNO actually has four attacks: FIREBALL, ICEBALL, THUNDERBALL, and SUPERBALL. The SUPERBALL attack does no damage but makes the screen look like a pinball game. However, I do not believe any of this is true.
06:43:32 <monqy> I read that gentoo is for ricers thing yesterday and it was amazing. this reminds me of that.
06:43:45 <elliott> Deewiant: ASK ME WHAT THE EXTENSION IS
06:44:17 <pikhq> zzo38: Strange, considering that none of those attacks exist in the game.
06:44:54 <zzo38> pikhq: Yes, I know.
06:45:12 <coppro> yeah, that site is awesome
06:45:24 <coppro> elliott: you know of funroll-loops.info, right?
06:45:58 <elliott> elliott@katia:~/logs$ grep -r funroll-loops\.info ????-??-??.txt | grep 'tusho\|ehird\|elliott\|alise'
06:45:58 <elliott> 2008-06-23.txt:18:18:25: <tusho> ais523: http://funroll-loops.info/
06:45:58 <elliott> 2009-01-07.txt:15:55:01: <ehird> I am so tempted to link to http://funroll-loops.info/ here. Oh wait I just did
06:46:02 <elliott> I swear I've linked it a lot more than that
06:46:20 <coppro> my favorite line there is "If the reviewers had been serious they would have used an optimised distributions such as Gentoo, which would have taken far fuller advantage of the extra 32bits in each register to provide a much fuller experience, more than any current Linux distribution possibly could."
06:46:28 <elliott> Man, I wonder how long that site has just been up unchanged
06:46:49 <elliott> coppro: This is the best one, IMO: "I don't think that Debian can really compete with Gentoo. Sure it might be okay, but when it comes to dependencies, you probably are still going to have to get them all on your own. Or is there something like portage in the Debian world as well?"
06:46:52 <monqy> too much of it is my favorite
06:47:02 <monqy> that one's one of them
06:47:42 <Deewiant> 2009-10-31 02:59:02( ehiird) "I don't think that Debian can really compete with Gentoo. Sure it might be okay, but when it comes to dependencies, you probably are still going to have to get them all on your own. Or is there something like portage in the Debian world as well?" -- funroll-loops.info
06:48:01 <elliott> Deewiant: Huh, clog incompleteness?
06:48:07 <Deewiant> 2011-01-27 00:42:41( elliott) Vorpal: from a thread about funroll-loops.org on the Gentoo forums, circa 2004: "One week later: this is on the Arch forums. One month later: the Arch people get the joke."
06:48:16 <elliott> Fuck it, I need a database of my nicknames
06:48:25 <Deewiant> 2011-07-02 00:21:53( elliott) oblig. http://funroll-loops.info/
06:48:33 <elliott> Yes but that was what caused monqy to read it.
06:48:35 <elliott> SO THAT DOESN'T EVEN COUNT
06:49:32 <ais523> [Tuesday, November 30, 2010] [04:07:07 pm] <elliott>Phantom_Hoover: We're talking -O3 -funsafe-math -fomit-function-pointer -funroll-loops -fadvanced-maths -fcrazy-maths -fyour-mother-and-a-horse -fit-never-happened -flanguid-squids ...
06:49:46 <elliott> I still use -flanguid-squids in all my programs
06:49:49 <ais523> not a direct reference, though
06:50:01 <Deewiant> I searched for "funroll-loops."
06:50:06 <ais523> I just searched for funroll
06:50:13 <ais523> in my own personal logs
06:50:23 <elliott> Also -fit-never-happened; it lets you detect _|_ values without resulting in _|_ (impossible with any other method), and optimises all computations to run in 0 ms
06:51:05 -!- augur has quit (Remote host closed the connection).
06:51:16 <zzo38> What are _|_ values?
06:52:08 <zzo38> Are you allergic to bullets?
06:52:08 <elliott> zzo38: any failing/non-halting computation, e.g. infinite loops and errors
06:52:15 <oerjan> > let (_|_) = undefined in (_|_)
06:52:16 <lambdabot> <no location info>: parse error on input `|'
06:52:21 -!- augur has joined.
06:52:29 <elliott> oerjan: you can do it with the unicode bottom symbol
06:52:34 <elliott> it still needs to be an operator though :(
06:53:21 <oerjan> > let _I_ = undefined in _I_
06:53:26 <coppro> 'void' in C is actually bottom as well
06:53:36 <coppro> although 'void*' is not a pointer to bottom
06:53:45 <elliott> you can return from a function that returns void
06:53:48 <elliott> void is not really one type in C
06:53:54 <elliott> as a return type, it signifies the unit type
06:54:01 <elliott> it is not a valid variable type
06:54:16 <coppro> of course it isn't a variable must have a value
06:54:18 <elliott> but as a pointed-to type, it's... it's (void *)
06:54:41 <monqy> (void *) is spooky
06:54:47 <elliott> coppro: you are confused. if void was the type _|_, then no function declared as "void f();" would ever be able to return
06:55:07 <elliott> it is instead the _unit_ type as a function return type, e.g. ()
06:55:08 <zzo38> LLVM also has 'void' type, but not 'void*' type. But it also has nonreturning type which is separate.
06:56:22 <elliott> monqy: (eof? getc putc close) -- List of functions: BEST INTERFACE?
06:57:44 <monqy> what good is close without open
06:58:12 <elliott> monqy: open is how you get that list duh
06:58:18 <elliott> a handle is literally represented as the functions operating on it
06:58:19 <zzo38> If it is existing object, then open gives you the object.
06:58:24 <elliott> stdin is (<function> <function> <function> <function>)
06:58:57 <coppro> elliott: I actually really like that model
06:59:13 <monqy> well at least I think I like it
06:59:46 <Deewiant> elliott: Now if it were opaque and thus type-safe
06:59:52 <newsham> void * is the opposite of bottom
06:59:55 <monqy> so is this a quadruple or a list
07:00:50 <elliott> coppro: Well, sure, it's BASICALLY a record of functions
07:01:02 <elliott> coppro: It's just that having it as an arbitrarily ordered list with no names or anything is dumb dumb dumb :P
07:01:07 <elliott> I could use an ENVIRONMENT
07:01:17 <elliott> It's basically a dictionary type
07:01:21 <monqy> first-class environments?
07:01:21 <elliott> Except you could merge it in with your environment
07:01:27 <elliott> And thus get a global "current stream"
07:01:30 <coppro> elliott: OR EVEN BETTER, YOU COULD CREATE A POLYMORPHIC... WAIT NO THAT'S OBJECT-ORIENTED
07:01:37 <elliott> Oh man, that is so the best, objects as literal scopes.
07:01:43 <elliott> I am a genius. This is the most zepto thing ever.
07:04:18 <elliott> coppro: No, it's way better than that.
07:04:38 <pikhq> -af scaletempo -speed 3
07:04:41 <monqy> proof: zepto is zepto. perl isnt. qed.
07:04:43 <pikhq> The solution to RPG TASes.
07:04:44 <elliott> coppro: Every function can look at the environment it gets called in, right? So environments are first-class. So you can poke around looking at various variables in your environment, enumerating them, blah blah blah.
07:05:04 <elliott> coppro: So if we represent, e.g. a file as an environment with _only_ the bindings get-char, put-char, eof?, etc.,
07:05:11 <elliott> coppro: Then we can read these in and call them,
07:05:14 <elliott> coppro: Modify them (with set),
07:05:19 <elliott> coppro: And even bring them into scope:
07:05:32 <elliott> coppro: (with-env stdin (put-char 'c'))
07:05:50 <elliott> coppro: So this means that we can have an implicit "current default output stream" without even doing anything!
07:06:01 <elliott> And it is basically equivalent to an object as a hash table.
07:06:25 <coppro> elliott: I want you to write me up a formal specification so that I can present this at a conference
07:06:59 <elliott> coppro: YOUR SARCASM MAY STING BUT MY GENIUS WILL SHINE THROUGH WHEN I AM DEAD
07:07:07 <elliott> Or maybe it isn't sarcasm and you just really like frightening people :P
07:07:39 <elliott> First-Class Environments as Objects: or, Let: The Ultimate Overloader
07:08:12 <monqy> turn it into a paradigm
07:08:35 <elliott> I just want you all to know that I literally just got up and did a ridiculous dance around the room while waving my hands and doing the most insane cackle I could muster at the same time.
07:08:44 <elliott> FEAR ME, PROGRAMMING WORLD
07:08:47 <oerjan> get crushed when oleg points out it's just simple syntactic sugar over delimited continuations
07:09:30 <oerjan> then continue to sell books as no one outside #haskell understands oleg
07:09:59 <elliott> coppro: oh, it's even better; you can make mutations of object members work with plain "set" just by making the object itself the top-level environment of all the functions inside
07:11:11 <elliott> hmm the with-env thing doesn't /quite/ work since environments are based on _static_ scope, i.e. a piece of code's default handle is based on the context around it, rather than dynamic scope... but I'm sure I can fix that
07:11:17 <elliott> oh, it's just dynamic variables, except I want a dynamic /added scope/
07:11:29 <elliott> that sounds perfectly reasonable and logical, now I just have to figure out what it even _means_
07:11:46 <monqy> then turn it into papers, books
07:11:54 <elliott> monqy: the whole world is exploding into little ribbons of zepto
07:11:59 <elliott> i'm going to take some zepto in celebration
07:12:49 <coppro> elliott: and infinitely recursive functions can be used to make changes 'permanent'
07:13:24 <coppro> elliott: Use the Erlang model of events
07:13:45 <coppro> every handler ends with a tail recursive call
07:13:55 <coppro> so that you have a 'loop'
07:14:31 <elliott> i think you have invented another model that's just as crazy :D
07:18:43 <zzo38> "noreturn" is a function attribute and not a type in LLVM, although it could work even if it was a type (because if it doesn't return, it shouldn't be necessary to specify another return type anyways)
07:18:46 <elliott> Loading package array-0.3.0.2 ... linking ... done.
07:18:46 <elliott> Loading package containers-0.4.0.0 ... linking ... done.
07:18:46 <elliott> *Main> code <- anteList [AnteSymbol "eval", AnteEnv env, AnteSymbol "eval"]
07:18:46 <elliott> *** Exception: AnteException <AnteValue>
07:19:48 <monqy> what just happened
07:19:54 <elliott> monqy: something went wrong in the evaluation
07:20:11 <oerjan> something unAnteCipated
07:20:15 <elliott> monqy: dunno, I can't display values yet
07:22:09 <coppro> elliott: No, it's your regular event loop in functional programming
07:22:46 <coppro> you make a change of "state" by calling back into the event loop with a different argument
07:22:54 <coppro> but if the "state" is the scope...
07:23:22 <monqy> what happens if you call somewhere that isn't (directly) back into the event loop
07:23:36 <coppro> then the loop terminates
07:26:19 <elliott> Error: (bad-function eval)
07:26:41 <elliott> Error: (bad-function #<environment>)
07:27:54 <elliott> monqy: what if i removed cons pairs
07:27:57 <elliott> what if i replaced cons pairs
07:28:03 <elliott> just containing the keys "car" and "cdr"
07:29:21 <elliott> monqy: and then instead of a meaningless list a function could be
07:29:33 <coppro> elliott: I have no ability to compensate for the presence of zepto
07:29:51 <elliott> #{env: ...; envName: 'e; argName: 'x; code: ...}
07:31:02 <monqy> instead of function application you have some weird sort of environment mangling (of which function application is a special case)
07:31:20 <monqy> where by special case I mean
07:31:25 <monqy> not special at all
07:31:32 <monqy> unless you sugar it up
07:31:34 <elliott> monqy: im starting to feel like this might not be lisp any more at all
07:31:45 <coppro> elliott: it's not in kansas either
07:31:46 <monqy> one time I had a language idea sort of like this. I forget what happened to it.
07:32:05 <elliott> i think im going to be a wimp for now and keep cons cells being, you know, still a thing that exist
07:32:17 <elliott> but I might change functions into environments rather than a meaningless list
07:32:33 <elliott> it is tempting to make applying an environment to an argument look that argument up in the environment
07:34:17 <coppro> we should call this language "greenparty"
07:34:45 <monqy> yes that was part of my dead language i think. and all functions were environments with rewrite rules or something else special like that.
07:34:53 <monqy> it was a few years ago so the details are very hazy
07:35:12 <elliott> coppro: im sorry, its called zepto
07:35:22 <elliott> any language that has the zepto nature should, by rights, be called zepto
07:35:26 <elliott> although it can have another name, too
07:35:30 <elliott> it could be called greenparty-zepto
07:35:54 <elliott> no, finding the zepto languages must be a painless (zepto) process for the programmer
07:36:07 <elliott> so it must always be clearly delineated from the other name
07:36:16 <elliott> it is ok. we all sometimes zepto-fail.
07:36:26 <elliott> in fact, that which is zepto is not zepto without zepto-fail.
07:36:38 <coppro> is it wrong to mount things directly onto /media or /mnt?
07:36:41 <elliott> the very definition of zepto may even be learning to accept zepto-failing in your heart.
07:36:48 <elliott> coppro: mounting into /mnt is done by the debian-installer
07:36:58 <elliott> I think doing it in /media is totally unacceptable
07:37:00 <elliott> coppro: what do you mean then
07:37:07 <elliott> debian-installer mounts the target system as /mnt
07:37:07 <coppro> elliott: I plug a usb drive in
07:37:15 <coppro> sudo mount /dev/sdb1 /media
07:37:28 <elliott> yeah that's no good make a directory you bum
07:38:40 <elliott> monqy: ok so im not sure what this bug is so im considering just calling it a feature?
07:38:44 <elliott> application being broken is a feature
07:38:56 <elliott> maybe i should sleep, sleep would be unzepto because zepto is to be optimised for sleep-deprived zepto programmers
07:38:59 <monqy> whats wrong with ap;plication
07:39:04 <elliott> and that requires an unzepto frame of mind
07:39:07 <elliott> monqy: i dunno you tell me
07:42:07 <monqy> too cool to derive Show
07:42:40 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
07:43:04 <elliott> monqy: whats that supposed to mean
07:43:09 <elliott> monqy: i lit. can't derive show
07:43:28 <elliott> monqy: im thinking about making zepto stm
07:43:54 <elliott> monqy: http://sprunge.us/HWMi
07:44:03 <elliott> this is ante-zepto initial
07:45:34 <Deewiant> instance Show a => Show (IORef a) where showsPrec d r = showParen (d>10) $ showString "unsafePerformIO (newIORef " . showsPrec 11 $ unsafePerformIO (readIORef r)
07:45:50 <monqy> this makes me uncomfortable
07:46:09 <elliott> Deewiant: please...stop existing...
07:46:19 <elliott> im really not happy that you exist
07:46:20 <Deewiant> I forgot to add the ")" at the end
07:49:28 <elliott> monqy: the world is becoming unzepto i need another breakthrough like environment objects
07:49:53 <monqy> im tired this may or may not help
07:50:13 <elliott> monqy: im sleep deprived how can you possibly imrpove on that
07:50:34 <monqy> this is the best i can do
07:51:26 <elliott> monqy: btw did you note how i cunningly avoided so many unzepto feelings by not using a monad stack
07:51:49 <elliott> i understand its quite hard to read code when its not all in nice rainbow colours in your editor, this is why pastebin sites are the devil
07:51:56 <monqy> i avoid monad stacks too
07:52:12 <monqy> if it means what i think it means
07:53:11 <elliott> monqy: things that look like BlahT (BluhT (BlingT IO)))
07:53:30 <elliott> http://sebfisch.github.com/haskell-regexp/regexp-play.pdf this is a nice paper it has a bunch of people talking who are nice people and, also, the code is all in nice colours and also it has nice fancy symbols
07:53:31 <monqy> juggling lifts makes me uncomfortable
07:53:40 <elliott> i recommend it to every sleep-deprived haskell programmer it is making me happy
07:53:47 <elliott> monqy: well that's kind of what the various typeclasses are for
07:53:57 <monqy> I guess those help yes
07:54:09 <elliott> Using sym, we can translate every regular expression into a
07:54:09 <elliott> weighted regular expression in a canonical fashion:
07:54:55 <monqy> when im tired my eyes skip around and it's hard to read
07:55:08 <monqy> wow is this paper a play
07:55:20 <olsner> weighted regexps? sounds heavy.
07:56:24 <elliott> monqy: i suggest zooming in by the way, zooming in is nice because everything gets bigger
07:56:43 <monqy> less room for my eyes to skip
07:58:23 <elliott> Cody means a sequence of n copies of x
07:58:39 <elliott> i really like how everyone understands each other in this
07:59:08 <monqy> i want to see this acted out
07:59:22 <elliott> i want to voice act it now
08:04:04 <pikhq> Welp, that was fun. And absurd.
08:04:09 <pikhq> 151 mon run of Pokemon.
08:04:28 <pikhq> 3:20, only tolerable at ~3x speed.
08:04:37 <pikhq> Utterly ridiculous.
08:04:46 <elliott> HAZEL I told you about Google’s new library. They implemented
08:04:46 <elliott> an algorithm in C++ with similar worst case performance as our
08:04:46 <elliott> algorithm. Do you know any C++?
08:06:11 <elliott> monqy: hey is it just me or is ungetc an unzepto kind of function
08:06:20 <pikhq> Actually, a 152 mon run, really; shame Missingno doesn't count on the Pokédex in-game.
08:06:25 <pikhq> elliott: Utterly unzepto.
08:06:54 <elliott> monqy: you can put the character you just read back into a stream
08:06:57 <elliott> so it will be read again next time
08:06:59 <elliott> but its only one character
08:07:03 <elliott> constant size buffer of one
08:07:03 <monqy> i meant what in the sense that
08:07:46 * pikhq wonders how that is usually implemented
08:07:50 <elliott> -- A handle has the keys: (foo) means only foo type handles
08:07:53 <elliott> DO I NEED ANYTHING ELSE PIKHQ
08:07:57 <elliott> also, usually implemented: char keep;
08:08:04 <elliott> negative one if theres nothing to buffer
08:08:14 <elliott> or it just integrates into the regular buffer i guess
08:08:19 <elliott> with some special code to break it if you call it more than once
08:08:39 -!- Phantom_Hoover has joined.
08:08:46 <elliott> SCENE I. INFINITE REGULAR EXPRESSIONS
08:08:58 <pikhq> Hmm. Well, musl appears to just directly write it into the read buffer.
08:09:14 <elliott> THEO I like our work as well, although it is always difficult to work
08:09:14 <elliott> with practitioners. (Rolls his eyes.)
08:11:29 <elliott> THEO Ok, fine (tired of the practitioners’ conversation).
08:12:17 <pikhq> It seems that how it handles ungetc is by being clever enough that ungetc itself is easy. :P
08:12:28 <monqy> i like the part where theo writes some formal definitions to the whiteboard: seman-
08:12:31 <monqy> tic brackets, Greek letters, languages as sets, etc.
08:12:48 <monqy> i am imagining this takes him a while and the others just sit and watch him intently
08:12:51 <zzo38> Perhaps turn off ligatures, they are not very good for fixed-pitch text
08:13:05 <elliott> monqy: he literally just writes those words
08:13:32 <monqy> can easily be coded in haskell
08:13:41 <elliott> HAZEL Well, we have a cute program, elegant, efficient, concise,
08:13:41 <elliott> solving a relevant problem. What else do you want?
08:13:49 <elliott> THEO A friend who I'm not a sarcastic piece of shit to.
08:13:57 <elliott> HAZEL You know you can never have that, Theo.
08:14:29 <monqy> T HEO But how do we make our story a fun essay?
08:14:29 <monqy> The three turn to the audience, bright smiles on their
08:15:12 <elliott> type ReadTable = Map Char AnteValue -- function from handle -> object
08:15:23 <elliott> I just need to let environments have arbitrary objects as keys
08:15:55 <monqy> are environments good keys
08:18:25 <zzo38> You need the appropriate key! The red door is locked!
08:18:44 <elliott> monqy: fdk glkkobgfnldmgdf
08:18:59 <elliott> monqy: should quote be used as (quote . x) => x or (quote x) => x
08:19:07 <elliott> picolisp does former, most things do latter
08:19:14 <elliott> zeptoability in question of both
08:20:18 <elliott> "British website owners could face extradition to the US on piracy charges even if their operation has no connection to America and does something which is most probably legal in the UK, the official leading US web anti-piracy efforts has told the Guardian."
08:20:19 <monqy> the . is a little bizarre there does it mean the same thing as it does in scheme
08:20:39 <elliott> <monqy> the . is a little bizarre there does it mean the same thing as it does in scheme
08:20:47 <elliott> pico does it because it means quote is faster, its just cdr rather than cadr :P
08:21:05 <elliott> (quote a b) has no useful meaning afaik
08:21:11 <elliott> it seems like (quote . a) is more...
08:21:22 <elliott> no other form acts like that
08:22:22 <monqy> keeping it like other forms sounds nice to me
08:22:35 <elliott> /home/elliott/Code/ante/ante.hs:150:34: Not in scope: `liftMtwo'
08:23:26 <elliott> ?undo do dfjg <- read e h; dd <- cons dfjg AnteNil; cons (AnteSymbol "quote") dd
08:23:26 <lambdabot> read e h >>= \ dfjg -> cons dfjg AnteNil >>= \ dd -> cons (AnteSymbol "quote") dd
08:23:31 <elliott> ?pl read e h >>= \ dfjg -> cons dfjg AnteNil >>= \ dd -> cons (AnteSymbol "quote") dd
08:23:31 <lambdabot> cons (AnteSymbol "quote") =<< flip cons AnteNil =<< read e h
08:23:41 <elliott> ?pl \e h -> cons (AnteSymbol "quote") =<< flip cons AnteNil =<< read e h
08:23:41 <lambdabot> (((cons (AnteSymbol "quote") =<<) . (flip cons AnteNil =<<)) .) . read
08:24:10 <elliott> oh damn I need to call read anteRead
08:24:15 <monqy> . sections are scary
08:24:39 <monqy> all the more zepto i guess
08:24:51 <zzo38> What do these "Ante" things mean anyways?
08:25:30 <oerjan> @pl \a b c d e f g h -> a (b (c d e) (f g)) h
08:25:31 <lambdabot> (. (((((.) .) .) .) . (.) . (.))) . (.) . (.) . (.) . (.) . (.)
08:31:18 <elliott> monqy: oh this is going to be hard are
08:31:59 <monqy> instance Eq (IORef a) -- Defined in GHC.IORef
08:32:54 <zzo38> Please join my TeXnicard project so that we can make something TeXnicard.
08:33:09 <monqy> maybe in caleskell
08:33:20 <monqy> how do you do the info thing
08:33:23 <zzo38> elliott: I don't mean you.
08:33:40 <monqy> when I did :i in ghci it only gave Eq
08:34:04 <zzo38> Someone else who doesn't mean "no".
08:34:17 <monqy> oh there's a Typeable1 instance too??
08:34:25 <elliott> monqy: yes its the height of luxury
08:34:55 <oerjan> presumably GC can move it about?
08:35:26 <oerjan> so Ord may not be safe
08:35:47 <monqy> -- explicit instance because Haddock can't figure out a derived one
08:35:48 <monqy> instance Eq (IORef a) where IORef x == IORef y = x == y
08:35:51 <monqy> what is this nonsense
08:36:06 <lambdabot> newtype IORef a = IORef (STRef RealWorld a)
08:36:08 <monqy> oh it depends on the STRef Eq instanced
08:36:11 <lambdabot> data STRef s a = STRef (MutVar# s a)
08:36:35 <elliott> MutVar# is primitive i think
08:36:44 <oerjan> hm data so MutVar# is probably unboxed
08:36:52 <monqy> -- Just pointer equality on mutable references:
08:36:52 <monqy> instance Eq (STRef s a) where STRef v1# == STRef v2# = sameMutVar# v1# v2#
08:37:19 <elliott> oerjan: well # implies unboxed...
08:37:36 <oerjan> i'm not sure of that...
08:37:39 <elliott> oerjan: remember, different kind
08:37:59 <oerjan> um the # in names has no automatic meaning :P
08:38:12 <zzo38> Anyone programming in C or CWEB or Plain TeX or understanding these kind of card game or anything else relevant to the project, can join, if you want to, please.
08:38:35 <elliott> oerjan: are you sure? I think it does for types
08:38:41 <elliott> oerjan: you can't define your own Foo# type
08:39:00 -!- yorick_ has joined.
08:39:06 <oerjan> elliott: um you need MagicHashes, of course
08:39:18 <oerjan> but afaik that only extends syntax
08:40:22 <oerjan> !haskell {-# LANGUAGE MagicHashes #-} data Foo# = Foo# Int deriving Show; main = print $ Foo# 0
08:40:31 <EgoBot> /tmp/input.6121.hs:1:13: unsupported extension: MagicHashes
08:40:31 <Deewiant> ptrEq x y = do nx <- makeStableName x ny; <- makeStableName y; return (nx == ny)
08:40:42 <oerjan> !haskell {-# LANGUAGE MagicHash #-} data Foo# = Foo# Int deriving Show; main = print $ Foo# 0
08:40:57 <oerjan> elliott: works perfectly
08:41:34 <oerjan> it's just for things they don't want people to muck about with needlessly
08:42:14 <elliott> oerjan: i think it's because it's non-standard, dude :P
08:42:50 <olsner> also, for translating shootout benchmarks from C to Haskell
08:43:41 -!- yorick has quit (*.net *.split).
08:47:48 -!- cheater_ has joined.
08:53:15 <elliott> oerjan: i would like to mark down on the record how much IORefs in ADTs sucks in haskell
08:53:34 <monqy> but records suck too.......
08:53:45 <elliott> got a function somewhere? or an IORef? wanna use your value as a Map key?
08:53:49 <elliott> ha ha ha oh boy, HAVE FUN WITH THAT
08:54:40 -!- cheater_ has quit (Ping timeout: 255 seconds).
08:54:48 <Deewiant> Writing an Ord instance that ignores them isn't exactly a huge pain
09:04:57 <elliott> Deewiant: um such an Ord instance won't work for Map will it?
09:05:03 <elliott> data Ref a = Ref !Int !(IORef a)
09:05:03 <elliott> instance Eq (Ref a) where Ref i _ == Ref j _ = i == j
09:05:03 <elliott> instance Ord (Ref a) where compare (Ref i _) (Ref j _) = compare i j
09:05:03 <elliott> instance Show (Ref a) where show = const "<Ref>"
09:05:09 <elliott> with a global unsafePerformIO'd ioref to keep track of the top index
09:05:43 <Deewiant> Also, globall unsafePerformIO'd ioref: and you don't like my code...
09:06:05 <elliott> Deewiant: It's completely encapsulated, and only exists because GHC is dumb and doesn't have its own ioref IDs :P
09:06:45 <elliott> I don't know what you mean by "your code", though, unless I've complained at your HIDEOUS SINS AGAINST PROGRAMMING before in which case probably feel bad
09:07:36 -!- yorick_ has changed nick to yorick.
09:09:13 <oerjan> Deewiant: <elliott> Deewiant: please...stop existing...
09:09:49 <monqy> wasnt this the one that wasnt that one
09:09:52 <elliott> ok i need to go unconscious for some hours now bye
09:09:53 <monqy> something about stablenames
09:09:59 <elliott> monqy: unsafeperformio for showing ioref
09:10:07 <elliott> monqy: ok i will ill try and hallcuating
09:12:12 <oerjan> monqy: apparently StableNames don't have Ord either
09:14:26 -!- elliott has quit (Ping timeout: 246 seconds).
09:17:08 <fizzie> oerjan: "Stable, not sorted"; isn't that how James Bond likes his drinks?
09:22:10 -!- Lymee has quit (Ping timeout: 240 seconds).
09:23:31 -!- Lymee has joined.
09:36:19 -!- cheater_ has joined.
09:38:20 -!- Vorpal has joined.
09:38:26 <zzo38> Is the random number generator algorithm in TeXnicard OK? Is there anything wrong with it?
09:40:34 -!- cheater_ has quit (Ping timeout: 255 seconds).
09:40:39 -!- monqy has quit (Quit: hello).
09:44:01 -!- oerjan has quit (Quit: Good night).
09:51:06 -!- augur has quit (Read error: Connection reset by peer).
09:53:01 -!- augur has joined.
10:16:04 -!- zzo38 has quit (Quit: Unstable cards.).
11:35:40 -!- ineiros has quit (Ping timeout: 240 seconds).
12:05:16 -!- ais523 has quit (Remote host closed the connection).
12:10:06 -!- CakeProphet has joined.
12:10:07 -!- CakeProphet has quit (Changing host).
12:10:07 -!- CakeProphet has joined.
12:16:18 -!- boily has joined.
12:20:24 -!- boily has quit (Client Quit).
12:21:27 -!- boily has joined.
12:33:28 -!- BeholdMyGlory has joined.
12:58:02 -!- azaq23 has joined.
14:43:45 -!- adam____ has joined.
14:48:31 -!- CakeProphet has quit (*.net *.split).
14:56:09 -!- Sgeo has joined.
14:57:25 -!- cheater_ has joined.
15:01:53 -!- cheater_ has quit (Ping timeout: 255 seconds).
15:02:07 -!- copumpkin has joined.
15:02:07 -!- copumpkin has quit (Changing host).
15:02:07 -!- copumpkin has joined.
15:13:33 -!- Sgeo has quit (Read error: Connection reset by peer).
15:14:28 -!- Sgeo has joined.
15:19:48 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:40:49 -!- Sgeo_ has joined.
15:42:34 -!- Sgeo__ has joined.
15:43:44 -!- Sgeo has quit (Ping timeout: 255 seconds).
15:45:32 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
15:47:20 -!- Sgeo__ has quit (Ping timeout: 255 seconds).
15:49:07 -!- monqy has joined.
15:55:56 -!- Sgeo has joined.
15:56:11 -!- Sgeo has quit (Client Quit).
16:29:05 -!- Cocytus has joined.
16:29:56 <Cocytus> sorry guys this is my room. it's for Esoteric Philosophy...programming language is of course one avenue of Philosophy so you are welcome to stay and discuss amongst everyone.
16:31:18 <Cocytus> that being said........Ave.
16:31:24 -!- Cocytus has left.
16:31:36 <fizzie> Oh no, we're in his room. :/
16:57:54 -!- cheater_ has joined.
17:00:35 -!- ineiros has joined.
17:23:15 <cheater_> you are standing at the end of a road before a small brick building.
17:23:21 -!- zzo38 has joined.
17:28:35 -!- cheater_ has quit (Ping timeout: 255 seconds).
17:29:59 -!- cheater_ has joined.
17:33:23 -!- copumpkin has joined.
17:33:23 -!- copumpkin has quit (Changing host).
17:33:23 -!- copumpkin has joined.
17:51:09 -!- esowiki has joined.
17:52:05 -!- esowiki has joined.
17:52:50 -!- esowiki has joined.
17:52:50 -!- glogbot has joined.
17:52:50 <?unknown?> [freenode-info] please register your nickname...don't forget to auto-identify! http://freenode.net/faq.shtml#nicksetup
18:01:26 -!- cheater_ has quit (Ping timeout: 255 seconds).
18:03:28 -!- cheater_ has joined.
18:22:35 -!- cheater_ has quit (Ping timeout: 255 seconds).
18:33:20 -!- pikhq_ has joined.
18:33:49 -!- cheater_ has joined.
18:34:10 -!- pikhq has quit (Ping timeout: 240 seconds).
18:41:18 -!- pikhq has joined.
18:43:44 -!- cheater_ has quit (Ping timeout: 240 seconds).
18:43:52 -!- pikhq_ has quit (Ping timeout: 240 seconds).
18:44:59 -!- cheater_ has joined.
18:46:27 -!- KingOfKarlsruhe has joined.
18:50:40 -!- cheater_ has quit (Ping timeout: 250 seconds).
18:51:41 -!- cheater_ has joined.
18:55:03 -!- quintopia has quit (Ping timeout: 252 seconds).
18:56:20 -!- cheater_ has quit (Ping timeout: 255 seconds).
18:58:33 -!- quintopia has joined.
18:58:34 -!- quintopia has quit (Changing host).
18:58:34 -!- quintopia has joined.
19:16:44 -!- BeedaWeeda has joined.
19:19:55 <Phantom_Hoover> I have the choice between YouTube binging on The Chaser, or on Dead Ringers.
19:20:59 -!- MigoMipo has joined.
19:23:59 -!- oerjan has joined.
19:24:31 <Phantom_Hoover> I like the way The Chaser were always able to find John Howard for their stunts.
19:26:05 <oerjan> while you welsh are cwwl
19:28:03 -!- pikhq_ has joined.
19:28:41 -!- hiato_ has quit (Ping timeout: 258 seconds).
19:30:02 -!- pikhq has quit (Ping timeout: 264 seconds).
19:34:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
19:35:50 -!- hiato has joined.
19:49:51 <oerjan> "Today I want to talk about the status of the question and baseball."
19:50:34 <oerjan> *"Today I want to talk about the status of the P = NP question and baseball."
19:50:58 <Zwaarddijk> is there any progress on it currently?
19:51:24 <Zwaarddijk> with double or triple spaces between the article and noun
19:53:11 <oerjan> Zwaarddijk: nothing immediately promising that i know of
19:55:31 <oerjan> although maybe the rest of http://rjlipton.wordpress.com/2011/07/04/getting-on-base-with-pnp/ may count as a little survey of the case
20:09:55 -!- elliott has joined.
20:11:15 <elliott> 16:29:05: -!- Cocytus has joined #esoteric.
20:11:15 <elliott> 16:29:56: <Cocytus> sorry guys this is my room. it's for Esoteric Philosophy...programming language is of course one avenue of Philosophy so you are welcome to stay and discuss amongst everyone.
20:11:15 <elliott> 16:31:18: <Cocytus> that being said........Ave.
20:11:15 <elliott> 16:31:24: -!- Cocytus has parted #esoteric.
20:11:54 <oerjan> should have told him about Malbolge
20:12:04 <olsner> elliott: that was you under a differen nick, wasn't it?
20:12:54 <oerjan> i do not know elliott to use comcast, but who knows
20:21:02 -!- adam____ has quit (Ping timeout: 264 seconds).
20:23:00 -!- CakeProphet has joined.
20:24:14 <elliott> http://en.wikipedia.org/wiki/List_of_atheists <-- list of famous bisexuals
20:25:35 <olsner> probably more like FixF [] Atheist
20:26:00 <lambdabot> Not in scope: data constructor `FixF'
20:26:18 <elliott> data FixF f a = Foo a | Bar (f (FixF f a)), presumably
20:26:52 <olsner> actually, the FixF I was thinking of would be a bit hard to use since you'd never get to the Atheists
20:26:54 <elliott> unless olsner means a two-argument Mu, in which case it's a very useless type :D
20:29:58 <monqy> antezepto specifically?
20:30:19 <elliott> monqy: i am sorry to report
20:30:25 <elliott> monqy: that .............................................................................................
20:30:31 <elliott> monqy: my impl is broken :(
20:30:42 <elliott> its not enough to just compare references by pointer equality, because
20:30:46 <elliott> | AntePair !(Ref AnteValue) !(Ref AnteValue)
20:30:54 <elliott> if you have a map with key (a b)
20:31:03 <olsner> I think something like FixF (Either Atheist `O` []) Atheist is more what I meant, i.e. what elliott said
20:31:05 <elliott> only the same object will look it up, pretty much
20:31:34 <elliott> monqy: so what I need is a map where compare and (==) are done in IO?
20:31:43 <monqy> aaaaaaaaaaaaaaaaaaa
20:32:24 <monqy> is there any way around it
20:33:03 <elliott> monqy: I can't think of one that doesn't involve unsafePerformIO
20:33:08 <olsner> I meant FixF from http://hackage.haskell.org/packages/archive/category-extras/0.53.5/doc/html/Control-Functor-Fix.html and I didn't even remember it right... fail :(
20:33:10 <elliott> <monqy> aaaaaaaaaaaaaaaaaaa
20:33:18 <elliott> olsner: category-extras is deprecated >:|
20:33:50 <olsner> aha, so that's why it's not indexed by hoogle then
20:33:59 <olsner> why did it get deprecated?
20:34:03 <elliott> into a bunch of mostly-haskellninetyeight packages
20:34:03 <monqy> is there any way to cleanly encapsulate the unsafePerformIO
20:34:17 <monqy> alternatively, construct everything else in such a way that doing this wackness isn't necessary
20:34:19 <elliott> olsner: I think because it's really huge and unfocused (= big monolithic dependency), plus it relies on like five thousand extensions
20:34:28 <elliott> olsner: so he's trying to separate everything into really portable haskell ninetyeight code
20:34:33 <elliott> and separate out the unportable stuff
20:34:40 <elliott> while putting it all into different packages
20:37:34 <elliott> dunno where the replacement for that module is though :D
20:38:19 <Deewiant> ?ty let f _ [] = return Nothing; f p (x:xs) = p x >>= \b -> if b then return (Just x) else f p xs in f -- there's your map in IO
20:38:20 <lambdabot> forall a (m :: * -> *). (Monad m) => (a -> m Bool) -> [a] -> m (Maybe a)
20:38:57 -!- CakeProphet has quit (Read error: Operation timed out).
20:39:17 <elliott> monqy: hmm, if you use (0 9) as an environment key, then mutate the car so it's (9 9), should the environment key mutate or should environment keys get copied
20:39:32 <elliott> but what if you get (0 9) out of the keys list of the environment, and mutate it, WHAT THEN
20:39:44 <elliott> (answer: it should probably copy keys before giving them back, too)
20:41:43 <olsner> functor fixpoints are easy to define when you need one, so if category-extras is deprecated you can just opt not to use it
20:41:52 -!- CakeProphet has joined.
20:50:11 <elliott> monqy: Hmm, I could make map keys be immutable
20:50:16 <elliott> monqy: By making a version of AnteValue with no IORefs
20:50:21 <elliott> Or parameterising it on the type of references
20:50:27 <elliott> monqy: But, ugh, that seems like a Pain
20:50:30 <monqy> would this fix your broken
20:55:49 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
21:14:37 -!- cheater_ has joined.
21:33:17 -!- hagb[4]rd has joined.
21:33:21 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:35:20 -!- azaq23 has quit (Quit: Leaving.).
21:39:22 -!- hagb[4]rd has changed nick to hagb4rd.
21:44:05 -!- CakeProphet has quit (Ping timeout: 252 seconds).
21:45:19 -!- CakeProphet has joined.
21:45:19 -!- CakeProphet has quit (Changing host).
21:45:20 -!- CakeProphet has joined.
21:54:51 -!- |||Ksarks||| has joined.
21:56:09 -!- |||Ksarks||| has left.
22:05:49 -!- azaq23 has joined.
22:07:20 -!- CakeProphet has quit (Ping timeout: 276 seconds).
22:07:54 -!- CakeProphet has joined.
22:07:54 -!- CakeProphet has quit (Changing host).
22:07:55 -!- CakeProphet has joined.
22:11:21 <HackEgo> 479) Nobody actually said this; this is just a demonstration.
22:11:27 <tswett_> Now, how do I get rid of it?
22:11:54 <tswett_> It has now been delled, I guess.
22:14:46 -!- myndzi has quit (Ping timeout: 258 seconds).
22:17:56 -!- cheater_ has quit (Ping timeout: 255 seconds).
22:32:53 <elliott> monqy: i just realised these changes mean you can bind an integer as a variable
22:33:08 <elliott> not that 9 will evaluate to anything, only symbols look themselves up in the environment
22:33:13 <oerjan> that could be a great FORTE
22:33:28 <elliott> oerjan: Funny, I just opened a buffer to implement Forte a few minutes ago.
22:35:44 <oerjan> hm first vau, now integers as variables. is your new language gradually absorbing everything else weird?
22:36:25 <elliott> oerjan: um you realise zepto always had vau? it was just equivalent to quote (and thus not given a name), because it was dynamically scoped
22:36:28 <elliott> i.e., no environment to save
22:36:37 <elliott> so (argname . body) was an acceptable lambda representation
22:36:53 <elliott> ante-zepto is lexically scoped, so it needs an actual operation to store the current environment in too
22:37:08 <elliott> oh, and it has another parameter to name the environment the fexpr is called in
22:37:19 <elliott> which didn't exist, again, in the dynamic version
22:37:28 * oerjan is divided on whether "in too" is a misspelling or not
22:37:45 <elliott> hmm, i dunno what that happened there
22:39:09 <oerjan> hm could you make a TC language which had hygienic macros and nothing else
22:40:04 <oerjan> i mean something like statically scoped fexprs but with all environments implicit. also this is very vague.
22:42:09 <oerjan> ("this is very vague" is here a synonym for "i'm not sure what i mean there")
22:43:07 <oerjan> someone said recently that hygienic macros are easy to implement if you do it in the base implementation
22:43:13 <oerjan> or something like that
22:45:31 -!- Sgeo has joined.
22:46:50 <Sgeo> Will anyone be irritated if I tend to disconnect and reconnect a lot?
22:47:53 -!- Sgeo has quit (Client Quit).
22:50:14 -!- foocraft has joined.
22:50:53 -!- CakeProphet has quit (Ping timeout: 276 seconds).
22:51:40 <oerjan> we _almost_ have an established policy that bots will be banned it they do that. which means we might have to administer a turing test to sgeo, and that could get ugly.
22:52:02 -!- CakeProphet has joined.
22:53:12 <oerjan> eek, what have i done.
22:58:11 <elliott> `addquote <Sgeo> Will anyone be irritated if I tend to disconnect and reconnect a lot? [...] <oerjan> we _almost_ have an established policy that bots will be banned it they do that. which means we might have to administer a turing test to sgeo, and that could get ugly.
22:58:12 <HackEgo> 479) <Sgeo> Will anyone be irritated if I tend to disconnect and reconnect a lot? [...] <oerjan> we _almost_ have an established policy that bots will be banned it they do that. which means we might have to administer a turing test to sgeo, and that could get ugly.
23:16:26 <elliott> "Any scripting language (Python, Ruby, Perl) will IMO teach bad practices. Start off with something with more structure and less help. C++ or Java.
23:16:26 <elliott> Higher level scripting languages come with conveniences that are not found at other levels of programming. Callback functions, .each loops, dynamic typing, built-in operators, libraries. These are all detrimental to your overall mindset. Limit the comforts available until he can create those comforts himself.
23:16:26 <elliott> Start off dumb. Working in something like C++ or Java that forces you to choose a type for your variable and offers excellent language structure enhances your ability to think like a programmer. Then moving on to "smarter" languages will be easier."
23:16:34 <elliott> THIS WAS ACTUALLY NOT VOTED DOWN INTO OBLIVION
23:16:54 <elliott> "START WITH A LOW LEVEL LANGUAGE, NOT HAVING TO THINK ABOUT MINUTIAE DAMAGES THINKING ....... SO CLEARLY USE JAVA, THE MOST LOW-LEVEL OF ALL LANGUAGES"
23:16:58 <elliott> PFFAFAPAHAHAHAHAAHAHAHAHAHAHAHAAHAHAHA
23:23:11 <monqy> i wonder what that guy would say about starting with a functional language
23:23:38 <elliott> THATS SO MANY STEPS ABOVE JAVA ITS BAD
23:24:04 <newsham> java is a functional language
23:26:42 <elliott> http://programmers.stackexchange.com/questions/9621/teach-linux-programming-to-home-schooled-15-year-old, found while absent-mindedly traversing the graph of programmers.stackexchange, a terrible place.
23:28:19 <Phantom_Hoover> "If this is a learning experience, something like R is probably the most useful thing. It will teach him problem-solving skills as well as the ability to load and analyze data files, which is also very useful."
23:28:34 <Phantom_Hoover> I have picked up the general impression from here that R is somewhat insane.
23:28:38 <newsham> http://www.thenewsh.com/~chat/j/XXPrelude.java
23:28:54 <newsham> oops, http://www.thenewsh.com/~chat/j/XPrelude.java this one
23:30:00 <elliott> newsham: meh, it's not impressive until you get monads
23:30:05 <elliott> I think http://functionaljava.org/ has them :P
23:30:21 <newsham> i havent tried to play with typeclasses at all
23:30:31 <elliott> monads have nothing to do with typeclasses.
23:30:40 <elliott> you would want to implement it as
23:30:58 <elliott> data Monad m = Monad { return :: forall a. a -> m a; bind :: forall a b. m a -> (b -> m b) -> m b }
23:31:16 <monqy> who was it that did pattern matching in java
23:31:18 <newsham> phantom: X's for "lets try another approach, maybe i should rename this to preserve the original" :)
23:31:27 <monqy> using exceptions or something like that
23:31:53 <newsham> also you dont need teh monads to be funkshunal
23:32:39 <Phantom_Hoover> newsham, yeah, but without them you lack monad tutorials, a vital part of any functional programming community.
23:33:28 <elliott> // A lot of type annotation
23:33:28 <elliott> final HAppend<HNil, HCons<Double, HCons<String, HCons<Integer[], HNil>>>,
23:33:28 <elliott> HCons<Double, HCons<String, HCons<Integer[], HNil>>>> zero = append();
23:33:28 <elliott> final HAppend<HCons<Boolean, HNil>, HCons<Double, HCons<String, HCons<Integer[], HNil>>>,
23:33:29 <elliott> HCons<Boolean, HCons<Double, HCons<String, HCons<Integer[], HNil>>>>> one = append(zero);
23:33:30 <elliott> final HAppend<HCons<Integer, HCons<Boolean, HNil>>, HCons<Double, HCons<String, HCons<Integer[], HNil>>>,
23:33:31 <newsham> the view of half of the community is that not supporting monad tutorials is a feature
23:33:33 <elliott> HCons<Integer, HCons<Boolean, HCons<Double, HCons<String, HCons<Integer[], HNil>>>>>> two = append(one);
23:33:36 <elliott> final HAppend<HCons<String, HCons<Integer, HCons<Boolean, HNil>>>,
23:33:38 <elliott> HCons<Double, HCons<String, HCons<Integer[], HNil>>>,
23:33:42 <elliott> HCons<String, HCons<Integer, HCons<Boolean, HCons<Double, HCons<String, HCons<Integer[], HNil>>>>>>>
23:33:58 <Phantom_Hoover> newsham, yeah, but that half is just bitter that they can't write a monad tutorial.
23:34:18 <newsham> whoa.. there are people who havent written monad tutorials?
23:34:29 <elliott> "@rei: Well, I have advanced social skills, [...]" --programmers.stackexchange
23:34:33 <oerjan> i have never written a monad tutorial.
23:34:41 <newsham> oerjan: perhaps you have and you didnt realize it
23:34:57 <elliott> oerjan: I believe you've tried to explain them in here before :D
23:34:59 <Phantom_Hoover> oerjan, little do you realise that everything you say and do is part of that great monad tutorial we call life.
23:35:05 <newsham> did you write any tutorials that are isomorphic to monad tutorials?
23:35:08 <elliott> `addquote <Phantom_Hoover> oerjan, little do you realise that everything you say and do is part of that great monad tutorial we call life.
23:35:09 <HackEgo> 480) <Phantom_Hoover> oerjan, little do you realise that everything you say and do is part of that great monad tutorial we call life.
23:35:12 -!- Sgeo has joined.
23:36:13 <oerjan> life, a reverse state monad
23:37:10 <newsham> happy 4th of july, state monad!
23:37:20 <Sgeo> Wired does not, in fact, seem to be faster than wireless
23:38:10 <newsham> Mon Jul 4 13:34:50 HST 2011
23:38:27 <monqy> the 4th doesnt matter there
23:38:44 <newsham> typical european response... assume all islanders are uncivilized
23:38:59 <Phantom_Hoover> monqy, sorry who did they declare themselves independent from.
23:39:09 <elliott> newsham: You're all uncivilised, apart from the natives.
23:39:19 <oerjan> ...americans are islanders and brits not, now?
23:39:37 <newsham> we didnt much care for all the taxation without representation, phantom.
23:39:51 <newsham> although these days the radical right seems to be fighting for less representation.
23:40:04 <monqy> fourth makes me mad
23:40:15 <monqy> loud noises and idiocy makes my head ache
23:40:21 <newsham> but drunk does not make me mad
23:40:45 <elliott> monqy: loud noises are unzepto
23:40:57 <monqy> what about idiocy i hope
23:41:43 <oerjan> elliott: have you considered the possibility that zepto may not be implementable in this imperfect world
23:41:55 <Phantom_Hoover> newsham, yeah but the fundamental point is that you were a British colony so you logically declared independence in British time true fact.
23:42:15 <newsham> i was never a british colony
23:42:53 <newsham> most of me was being kicked around eastern europe at the time this all went down
23:42:58 <elliott> 05:34:29: <elliott_> oerjan: ah. you would think. but a failed bootstrapping is not very zepto.
23:42:58 <elliott> 05:34:43: <elliott_> and if you lose the binary, as zepto people are wont to do, then that would make it a very un-zepto situation.
23:42:58 <elliott> 05:34:55: <elliott_> also, compilers are un-zepto, so that's just too recursive for the universe to handle.
23:42:58 <elliott> 05:35:02: <elliott_> although that, in itself, is very zepto, we are unfortunately constrained.
23:42:58 <elliott> 05:35:05: <elliott_> we cannot achieve true zepto.
23:43:00 <elliott> 05:35:08: <elliott_> we can only achieve universal zepto.
23:43:02 <newsham> or at least most of the people who led to me
23:43:06 <oerjan> Phantom_Hoover: but timezones weren't invented back then!
23:43:34 <newsham> didnt ben franklin help come up with daylight savings time? did that happen before ther ewere timezones?
23:43:45 <monqy> daylight savings time is the worst
23:43:56 <Phantom_Hoover> newsham, so you are therefore inextricably tied to eastern European time Q.E.D.
23:44:11 <newsham> phantom: some would say I'm the white devil.
23:46:02 <oerjan> <newsham> most of me was being kicked around eastern europe at the time this all went down <-- wait does this mean newsham isn't your real name
23:46:56 <newsham> one out of four of my grandparents were called newsham
23:47:43 <Phantom_Hoover> oerjan, what, do you think they didn't have pigs that announced current events in eastern Europe?
23:48:04 <oerjan> Phantom_Hoover: well it _could_ be translated of course.
23:48:06 <newsham> phantom: check out newsham.com
23:48:20 <newsham> but you might chuckle anyway
23:48:49 <newsham> apparently lots of pig farming in the newsham line
23:49:30 <elliott> newsham: that isn't real is it?
23:49:47 <elliott> Your choice for performance and longevity. A proven maternal leader.
23:50:19 <newsham> some of the newsham/newsome coat of arms have pigs on em, too
23:52:01 <oerjan> your SuperMom™ so fat, she can be used in the penrose process
23:52:06 <newsham> not to worry, recent family is all poor working class
23:52:20 -!- Vorpal has quit (Ping timeout: 260 seconds).
23:52:46 <Phantom_Hoover> newsham, yeah, but there are like no interesting people with my last name.
23:53:26 <newsham> you have a low self opinion?
23:54:09 <newsham> i assume you have your last name
23:54:20 <oerjan> <newsham> didnt ben franklin help come up with daylight savings time? did that happen before ther ewere timezones? <-- last i heard he was joking.
23:55:20 <elliott> Phantom_Hoover: your name is cool tho
23:57:02 <oerjan> our family was so poor their coat had no arms
23:57:29 <newsham> google, the foundation of all credibility!
23:57:37 <newsham> no google, never happened.
00:00:57 <newsham> i'll frien dyou on facebook and then you'll be super famouse like me!
00:01:16 -!- myndzi has joined.
00:02:10 <Phantom_Hoover> Oh wait turns out I have an uncle who once had an article in a newspaper about his company.
00:04:53 -!- CakeProphet has quit (Ping timeout: 252 seconds).
00:06:38 -!- CakeProphet has joined.
00:06:38 -!- CakeProphet has quit (Changing host).
00:06:39 -!- CakeProphet has joined.
00:07:03 <newsham> "'I'm not on facebook' is the new 'I don't have a TV'"
00:07:12 <newsham> fwiw, I dont use facebook either (though I do have 2 accounts)
00:07:45 <newsham> once at a Berlin concert I touched the bodyguard who was carrying Terri Nunn
00:09:05 <elliott> <newsham> "'I'm not on facebook' is the new 'I don't have a TV'"
00:09:19 <elliott> it's perfectly alright not to own a TV, it's just mentioning that you don't all the time that's annoying
00:10:08 <newsham> i'm watching tv as we speak, but i have a high opinion of people who manage to avoid it
00:10:31 <Phantom_Hoover> newsham, turns out said uncle's company helped make the first mobile phone topup things.
00:10:46 <Phantom_Hoover> Also I was once totally in the same room as Iain Banks.
00:11:25 <newsham> why dont you come up when i google "same room as iain banks"?
00:11:32 <elliott> newsham: i don't know how anyone could watch tv when they have an internets in front of them, it's like ... taking both caffeine and heroin and going "whoa, this coffee!!!!"
00:11:48 <oerjan> Phantom_Hoover: bah boring. see if your great great grandfather was involved in the first telegraph, or something.
00:11:56 <newsham> elliott: the coffee happens to be Law&Order
00:12:02 <elliott> his great great grandfather _was_ the first telegraph
00:12:13 <elliott> newsham: why do people like police procedurals :/
00:12:13 <Phantom_Hoover> oerjan, unlikely, given that my family is basically all boring Irish people after a point.
00:12:35 <elliott> http://upload.wikimedia.org/wikipedia/en/4/4f/The_Clang.ogg ;; put on repeat, go insane
00:12:44 <Phantom_Hoover> Although I guess maybe one of them moved crates for Marconi when he broadcast that transatlantic signal or something.
00:12:59 <newsham> elliott: did I mention, "no colon"?
00:13:25 <oerjan> i once played sprouts with john conway. so there.
00:13:28 <newsham> i'm not talking L&O:LA or SVU or anything
00:13:41 -!- CakeProphet has quit (Ping timeout: 240 seconds).
00:13:49 <newsham> i once made out with ladyada, is that worth anything?
00:14:13 <Phantom_Hoover> newsham, depends, was it the real Ada, or some cheap imitator?
00:14:59 <newsham> it was countace lovelace.. i was young and needed th emoney
00:15:02 <Phantom_Hoover> Did you solicit a prostitute to pretend to be Ada Lovelace is basically what I am asking.
00:15:11 -!- CakeProphet has joined.
00:15:12 -!- CakeProphet has quit (Changing host).
00:15:12 -!- CakeProphet has joined.
00:15:39 <Phantom_Hoover> newsham, also you're an internet celebrity yourself, so that doesn't count.
00:16:08 <elliott> yeah everyone knows the famous news ham
00:17:39 <Phantom_Hoover> newsham, you have a WP article; that's good enough for me.
00:18:03 <newsham> they'll give those out to anybody
00:18:12 <oerjan> elliott: http://www.girlgeniusonline.com/comic.php?date=20070625
00:18:32 -!- CakeProphet has quit (Client Quit).
00:18:49 -!- CakeProphet has joined.
00:18:49 -!- CakeProphet has quit (Changing host).
00:18:50 -!- CakeProphet has joined.
00:19:48 <Sgeo> My dad is offering to send me to another country away from him
00:20:00 <Sgeo> (Sorry about the blogging)
00:20:13 <elliott> that seems rather excessive
00:20:19 <elliott> (what do you mean it's just passive-aggressiveness)
00:20:24 <Sgeo> elliott, I'm wondering if I should
00:20:30 <Sgeo> Get away from him for a while
00:20:30 <Phantom_Hoover> elliott, yeah, it's effectively the same as getting a transfer.
00:20:30 <monqy> better education????
00:20:57 <Sgeo> I don't know if or how education plays into it
00:21:00 <newsham> dad doesnt care for proximity?
00:21:05 <elliott> Sgeo: There are rather less drastic ways to get away from someone, but if he's actually seriously offering to help make that happen, then it might be the easiest...
00:21:23 <Sgeo> Erm, should have mentioned that it's temporary
00:21:53 <elliott> I suggest joining a circus (note: I do not really suggest this)
00:22:55 <Sgeo> Phantom_Hoover, a choice, I think. Between England, Israel, and Australia
00:23:11 <elliott> You don't want to come to England. Or Israel.
00:23:14 <elliott> But they don't have running water in Australia.
00:23:34 <newsham> just waiting for mean reversion on those zimbabwe dollars! :)
00:23:37 <Phantom_Hoover> Sgeo, you should totally come to Scotland. It's like England, but with worse food.
00:23:37 <oerjan> sure they have. i'm not sure you'll be able to catch it.
00:23:56 <monqy> is australian weather good this time of year
00:24:01 <monqy> is english weather good this time of year
00:24:08 * oerjan swats that e off newsham -----###
00:24:12 <elliott> monqy: English weather is as good as English weather gets this time of year, i.e. not
00:24:31 <elliott> "Australian weather" is a bit of a misnomer isn't it, which of the five thousand climates do you mean :P
00:24:32 <Phantom_Hoover> I mean the pain is reduced when you can eat a single deep-fried Mars Bar and be over your recommended daily everything.
00:25:16 <Sgeo> I wish I could take "deep-fried Mars Bar" as a serious nutritional suggestion. I wouldn't mind that being a main food source
00:25:17 -!- CakeProphet has quit (Ping timeout: 240 seconds).
00:25:19 <Sgeo> Or some other sort of bar
00:25:22 <oerjan> elliott: did you miss http://www.girlgeniusonline.com/comic.php?date=20070625
00:25:32 <elliott> oerjan: I couldn't think what to say
00:25:56 <monqy> what is this nonsens
00:27:06 <oerjan> monqy: which nonsense?
00:27:18 <monqy> is there more than one
00:32:23 -!- CakeProphet has joined.
00:32:23 -!- CakeProphet has quit (Changing host).
00:32:23 -!- CakeProphet has joined.
00:34:15 <elliott> data AnteValue ref = AnteNil
00:34:16 <elliott> | AntePair !(ref (AnteValue ref)) !(ref (AnteValue ref))
00:34:30 <elliott> copy :: (Ref a, Ref b) => AnteValue a -> IO (AnteValue b)
00:34:31 <elliott> copy (AntePair car cdr) = ...
00:34:39 <elliott> because the types don't match for the last line
00:34:49 <elliott> so I have to write four boring copiers
00:35:49 <lambdabot> forall k a b. (k -> a -> b -> b) -> b -> M.Map k a -> b
00:35:59 <oerjan> elliott: some kind of GADT maybe?
00:36:03 <elliott> :t Data.Map.foldWithKey (\k a m -> liftM3 Data.Map.insert (copy k) (return a) m) (return Map.empty)
00:36:07 <elliott> :t Data.Map.foldWithKey (\k a m -> liftM3 Data.Map.insert (copy k) (return a) m) (return Data.Map.empty)
00:36:12 <elliott> :t Data.Map.foldWithKey (\k a m -> liftM3 Data.Map.insert (?copy k) (return a) m) (return Data.Map.empty)
00:36:13 <lambdabot> forall k (m :: * -> *) k1 a. (Ord k1, ?copy::k -> m k1, Monad m) => M.Map k a -> m (M.Map k1 a)
00:36:47 -!- CakeProphet has quit (Ping timeout: 252 seconds).
00:37:15 <elliott> :t Data.Map.foldWithKey (\k a m -> liftM2 (Data.Map.insert k) (?copy a) m) (return Data.Map.empty)
00:37:16 <lambdabot> forall a (m :: * -> *) k a1. (Ord k, ?copy::a -> m a1, Monad m) => M.Map k a -> m (M.Map k a1)
00:38:48 <elliott> ?pl sequence [return x, copy f]
00:38:54 -!- CakeProphet has joined.
00:39:22 <elliott> :t liftM2 (:) (return ?x) (return `fmap` copy ?y)
00:39:24 <elliott> :t liftM2 (:) (return ?x) (return `fmap` ?copy ?y)
00:39:25 <lambdabot> forall a1 (m :: * -> *) t. (?x::a1, Monad m, ?copy::t -> m a1, ?y::t, Functor m) => m [a1]
00:39:32 <elliott> :t \x y -> liftM2 (:) (return x) (return `fmap` ?copy y)
00:39:33 <lambdabot> forall a1 (m :: * -> *) t. (Monad m, ?copy::t -> m a1, Functor m) => a1 -> t -> m [a1]
00:39:43 <elliott> ?pl liftM2 (:) (return x) (return `fmap` ?copy y)
00:39:48 <elliott> ?pl \x y -> liftM2 (:) (return x) (return `fmap` copy y)
00:39:48 <lambdabot> (. ((return `fmap`) . copy)) . fmap . (:)
00:39:51 <elliott> ?pl \y -> liftM2 (:) (return x) (return `fmap` copy y)
00:39:52 <lambdabot> ((x :) `fmap`) . (return `fmap`) . copy
00:39:55 <elliott> ?pl liftM2 (:) (return x) (return `fmap` copy y)
00:39:55 <lambdabot> (x :) `fmap` (return `fmap` copy y)
00:40:20 <newsham> can i friend you on oercut, elliott?
00:41:03 <oerjan> oercut, my cutting edge site
00:41:49 <lambdabot> forall (m :: * -> *) a. (Monad m) => [m a] -> m [a]
00:42:00 <newsham> beta invites is such a clever marketting scheme for google
00:42:13 <newsham> i kinda wanna be on google+, and I hate social networking sites
00:42:43 <Phantom_Hoover> newsham, I want to be on Google+, but they don't let under-18s on.
00:43:14 <newsham> wait, a social networking site that excludes people under 18?
00:43:14 <Phantom_Hoover> elliott had the prescience to lie about his age, but I foolishly associated my real age with my YouTube account ages ago and it's stuck now.
00:43:27 <lambdabot> forall b k a. (b -> k -> a -> b) -> b -> M.Map k a -> b
00:45:01 <elliott> monqy: http://sprunge.us/Gghf
00:45:08 <elliott> monqy: this is much nicer than before
00:45:13 <elliott> monqy: no unsafeness whatsoever
00:45:35 <elliott> monqy: well it grew before this :P
00:45:51 <elliott> monqy: the only added code is the Ref typeclass and copy + uses, pretty much
00:45:57 <elliott> now I can write the reader
00:50:19 <elliott> AntePair (ID {unID = AnteSymbol "eval"}) (ID {unID = AntePair (ID {unID = AnteEnv (Env (ID {unID = fromList [(AnteSymbol "eval",AntePrim <Prim eval>)]}) NullEnv)}) (ID {unID = AntePair (ID {unID = AnteSymbol "eval"}) (ID {unID = AnteNil})})})
00:50:43 <elliott> AntePair (ID (AnteSymbol "eval")) (ID (AntePair (ID (AnteEnv (Env (ID (fromList [(AnteSymbol "eval",AntePrim <Prim eval>)])) NullEnv))) (ID (AntePair (ID (AnteSymbol "eval")) (ID AnteNil)))))
01:19:10 <elliott> monqy we have neglected booleans
01:21:27 <monqy> i guess if integers deserve language membership booleans do too
01:21:56 <elliott> monqy: maybe i should just use symbols
01:22:01 <elliott> monqy: maybe numbers should just be symbols too
01:22:09 <elliott> maybe everything should be a symb- HELLOOOOOOO TCL
01:22:23 <monqy> symbols or functions or environments
01:30:57 <Sgeo> symbols, lists, and numbers
01:31:22 <Sgeo> Oh, remind me to read context next time. But just thinking of Picolisp
01:33:12 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:36:32 <oerjan> http://www.reddit.com/r/math/comments/ig4qb/results_from_the_rmath_survey/c23ihcq?context=1 XD
01:42:41 -!- CakeProphet has quit (Read error: Operation timed out).
01:55:03 <elliott> *** Exception: AnteException (AntePair (ID (AnteSymbol "unbound-name")) (ID (AntePair (ID (AnteInt 120)) (ID AnteNil))))
01:55:25 <elliott> that's it failing to find a readtable entry for 'x', btw, not it failing to look up the name x
01:58:48 <monqy> oh it's not a symbol?
01:59:06 <monqy> and what's with it being in a pair with nil
02:07:41 <elliott> Hello world!!! = ) You stumbled in my page? are you serious? are you a cute girl? = )
02:07:42 <elliott> --http://en.wikipedia.org/wiki/User:Fuwikepedia
02:09:28 <elliott> monqy: i don't think lisp is a zero-lookahead language :(
02:09:42 <monqy> who handcodes parsers
02:13:35 <elliott> (def (get-char p) ((p 'get-char))) ;; this leaves something to be desired
02:13:48 <elliott> I guess I could have some sugar like (def (get-char p) (p.get-char)) but still
02:14:02 <elliott> It would be nice if it didn't need declaring at all
02:16:59 <elliott> monqy: oh i actually do need a buffer of some kind
02:17:24 <monqy> any kind in particular?
02:21:14 <monqy> as for the get-char thing my solution would be either not to have it as a function or do something bizarre to make explicit definition unnecessary (not vague at all)
02:22:39 <elliott> monqy: technically i only need a one-char buffer
02:22:41 <elliott> that seems... gross, though
02:22:45 <elliott> I should have an arbitrary-length one
02:24:22 <monqy> how will syntax extension work
02:28:44 <oerjan> <elliott> monqy: i don't think lisp is a zero-lookahead language :( <-- i think you can tweak the grammar so it is, though
02:29:28 <oerjan> ending a (...) is obviously zero-lookahead
02:31:24 <elliott> get char -> is it a )? end the list; is it a .? ok, then it's a dotted ending; or we just used up the first character of the object we want to read
02:31:56 <oerjan> you have not tweaked the grammar :P
02:32:32 <oerjan> list ::= "(" rest-list
02:33:12 <elliott> oerjan: well if you're constrained to readtable form...
02:33:42 <elliott> ok, if every readtable function gets the character it was triggered with
02:33:49 <elliott> oh wait it doesn't even need to be
02:33:57 <Sgeo> elliott, did we ever play the Birds map?
02:33:59 <Sgeo> I think we did
02:34:26 <Sgeo> elliott, the hard map for Tube Trap
02:35:57 <elliott> we played the hardest one, yes
02:36:38 -!- elliott has quit (Read error: Connection reset by peer).
02:36:42 -!- elliott_ has joined.
02:37:12 <Sgeo> Um, does my mentioning its existence count as "just"?
02:37:36 <Sgeo> You said you just remembered it existed right after I reminded you
02:38:06 <Sgeo> Not now, I want to watch some Doctor Who
02:38:13 <Sgeo> But soon, as in in some days maybe
02:39:11 <elliott_> That's a strange definition of soon
02:42:48 * Sgeo waits while his font cache is rebuilt.
02:43:27 <Sgeo> I have no idea why a font cache should need to be rebuilt in order to watch a video
02:43:34 <Sgeo> I remember seeing something about it thought
02:44:55 <elliott_> oerjan: oh noi think i need language extneiosna s :(
02:45:08 <Sgeo> Found an article about disabling it, not sure I should trust the author, but it makes sense
02:45:21 <Sgeo> http://techdows.com/2010/12/disable-building-font-cache.html
02:45:33 <elliott_> OH NO THE OWNER OF TECHDOWS IS A VIRUS WRITER DUDE
02:45:53 <Sgeo> I think I may be stereotyping :(
02:47:03 <Sgeo> Based on the English failures :(
02:53:06 <elliott_> 00:55:56 <Giraffer> When I was 11 years old I visited Neverland Ranch for 3 days and had a ball with Michael Jackson. We would go gokarting around sipping jesus juice and cuddling. My favorite moment was when we climbed a tree, and he pulled off my shorts and underoos to stick his nice hot nigger dick into my ass while I grabbed a giraffe's head by the horns to felate me!
02:53:59 -!- elliott_ has changed nick to elliott.
02:54:09 -!- elliott has quit (Changing host).
02:54:09 -!- elliott has joined.
02:54:35 <oerjan> elliott: i take it he's not a regular
03:15:32 <newsham> so now michael jackson's black again?
03:17:13 <elliott> <nand`> Is a ++ b ++ c processed as (a ++ b) ++ c or a ++ (b ++ c)? (Yes, I know they are the same due to the rules of monoids, but this makes a difference in execution time due to the nature of linked lists)
03:17:19 <elliott> don't the two have identical performance due to laziness
03:17:23 <elliott> gotta ask here so i don't look like an idiot :D
03:17:49 <newsham> when they're forced wont the times be diff?
03:18:08 <oerjan> a ++ (b ++ c) only traverses a once, while (a ++ b) ++ c does it twice, conceptually.
03:18:55 <oerjan> this is sort of why why ShowS exists.
03:24:50 -!- hagb4rd has quit (Ping timeout: 255 seconds).
03:41:29 -!- azaq23 has quit (Ping timeout: 255 seconds).
03:44:57 -!- azaq23 has joined.
04:22:40 -!- BeholdMyGlory has quit (Ping timeout: 252 seconds).
04:27:00 -!- azaq23 has quit (Quit: Leaving.).
04:38:22 <Sgeo> Friend decided to try a supposed hacking tool to get back into his email address
04:38:47 <Sgeo> I try the tool, give it a mailinator address, and ... it returns a hash
04:40:09 <monqy> "get back into his email address" how does one get back into an address what
04:40:29 <Sgeo> http://www.learntohack.co.uk/
04:40:41 <monqy> quality site design
04:43:04 <Sgeo> I just realized "hacking" by this POS into an example.com address would have been funnier
04:43:28 <monqy> i like how it's called learntohack.co.uk and there is no learning it is just what
04:44:34 <Sgeo> "Your email selbri@example.com is invalid or has been banned."
04:45:09 <Sgeo> Wait, that's the "real" email it asked for, not the one I tried to "hack" into
04:45:29 <monqy> i do not like this site
04:45:32 <monqy> im staying away from it
04:46:14 <Sgeo> Now that I changed my "real" email address, it's going through, hacking "sumti@example.com"
04:47:19 <Sgeo> "Hacking process completed
04:47:19 <Sgeo> Example.com Account: sumti@example.com
04:47:19 <Sgeo> MD5 Hash Password found:
04:47:19 <Sgeo> 0bcdf471234c4ed69707aca9ab859e0e"
04:48:05 <monqy> now get the real password
04:48:14 <monqy> and ruin sumti@example.com's life
05:11:39 <fizzie> Certainly it's worth the 90 €.
05:17:24 <elliott> does it just hash the email
05:19:33 <oerjan> yes, but using only the finest salt.
05:20:11 -!- aloril has quit (Ping timeout: 258 seconds).
05:20:18 <elliott> i love slat, it is the best
05:20:50 <monqy> too much salt makes things yucky
05:21:54 <elliott> http://www.youtube.com/watch?v=oGjcuFzSkqE http://www.youtube.com/watch?v=0yOLKotyDBY <-- i was profoundly affected by this work of art, namely in that it made me want to put salt on everything for the remainder of the month
05:22:04 <elliott> you wacky americans and your wacky tv shows
05:23:31 <monqy> this wacky american tv show is so wacky
05:25:11 <oerjan> you should not have juggled knives while chatting on irc
05:26:00 <elliott> monqy: it's great i love it
05:27:28 <elliott> "marshmallow...y...ness of the marshmallow" good quotes
05:28:20 <elliott> monqy: he ends up arguing with mary poppins later i want to know who caused this show to come into being and hug them
05:32:01 <elliott> monqy: he makes like peanut maple bacon later :(
05:32:07 <elliott> its so nice ive forgotten what it actually is
05:32:40 <monqy> right now hes using a ruler to make papercraft
05:33:10 <elliott> oh god i forgot the toffee he means
05:33:48 -!- aloril has joined.
05:35:32 <monqy> adding soy sauce now
05:36:18 <elliott> "invented after French sometime after fire, but before the plane"
05:39:08 <monqy> wow did he grow another arm
05:39:28 <elliott> god this caramel looks so lovely in the pan
05:39:35 <monqy> how was he holding the knife and the scissors and the pizza cutter
05:39:47 <elliott> yess break down those glucose and fructose
05:39:54 <elliott> i don't want them to be atoms any more
05:41:48 <elliott> monqy: i love how much of a salt nerd eh is
05:41:52 <elliott> i dont know what all these salts are
05:43:46 <elliott> lol at three and a half hours
05:44:15 <elliott> monqy: yes i can confirm he grew another arm
05:46:22 <elliott> what do americans consider thick cut bacon
05:47:29 <elliott> "pat it down lightly; don't pat, just give it a pat"
05:47:52 <elliott> monqy: god on top of ice cream yes
05:48:12 <elliott> they make me want to eat more things than people can eat
05:56:11 -!- Lymia has quit (Ping timeout: 240 seconds).
05:56:52 -!- Lymia has joined.
06:03:45 -!- elliott_ has joined.
06:03:57 -!- elliott has quit (Read error: Connection reset by peer).
06:05:05 <elliott_> "Luke, this is Bruce from the FPUG. I really like your idea. It’s very similar to mine, except that I have been working on it full-time for many years and I am putting on the final touches. I know that if I met someone who was almost done with what I was just starting I would have a lot of strong feelings about having my idea and motivation stolen. (Then I’d get over it:) ) The thing is, it was MUCH harder than I ever thought it would be and I had
06:05:05 <elliott_> to learn and invent a lot of mathematics. I also found some really cool things that will totally change the way we interact with computers; e.g., an almost perfect map from the mathematical model of information to natural languages. I also found that what I was doing was really discovery and that there is very close to one way to do it."
06:05:14 <elliott_> random blog comments are great
06:05:18 <elliott_> why do i even have this tab open
06:06:10 <oerjan> "an almost perfect map from the mathematical model of information to natural languages
06:06:24 <elliott_> http://theslipstream.net/drupal1/sites/default/files/garland_logo.png what the fuck
06:06:27 <oerjan> my crackpot sense is tingling...
06:06:32 <elliott_> oerjan: why do you think i quoted it :D
06:06:42 <monqy> last time i heard something like that it was vortex math
06:06:44 <elliott_> http://theslipstream.net/drupal1/sites/default/files/garland_logo.png <-- this is the logo of their...thing
06:06:52 <elliott_> Imagine being able to access your documents, files, and applications from anywhere in the world, on any device, at any time.
06:06:52 <elliott_> Imagine customizing your every computer screen according to your needs.
06:06:52 <elliott_> Imagine sharing knowledge at lightning speed and becoming an authority in an information community.
06:06:52 <elliott_> Imagine a world where you are always in control of your personal information.
06:06:52 <elliott_> Imagine a world where medical cures are researched, discovered, and put to market within six months.
06:06:54 <elliott_> Imagine a world where political decisions are made by reason rather than shouting matches at the nearest town hall.
06:07:06 <elliott_> it's going to literally cure disease and politics
06:07:39 <monqy> sign everybody up this isntant
06:10:30 -!- Nisstyre has quit (Remote host closed the connection).
06:11:09 -!- Nisstyre has joined.
06:11:34 -!- Nisstyre has quit (Remote host closed the connection).
06:11:47 -!- monqy has quit (Disconnected by services).
06:11:49 -!- monqy_ has joined.
06:11:54 -!- monqy_ has changed nick to monqy.
06:12:36 -!- Nisstyre has joined.
06:13:38 -!- Nisstyre has quit (Remote host closed the connection).
06:14:51 -!- Nisstyre has joined.
06:18:18 -!- sebbu has quit (Read error: Connection reset by peer).
06:18:50 -!- sebbu has joined.
06:18:50 -!- sebbu has quit (Changing host).
06:18:50 -!- sebbu has joined.
06:19:36 <elliott_> monqy: http://www.scribd.com/doc/40697621/Mathematics-Ends-in-Meaninglessness-ie-self-contradiction
06:19:59 <elliott_> all the best papers site mathsisfun.com
06:20:17 <elliott_> 2)The Australian leading erotic poet philosopher colin leslie dean points out1+1=1
06:20:39 <elliott_> AUSTRALIAS LEADING EROTIC POET COLIN LESLIE DEAN
06:20:45 <monqy> This paper is a case study in regard to the view that all views collapse intomeaninglessness or absurdity or self contradiction.
06:20:49 <monqy> wtf kind of view is this
06:21:00 <elliott_> monqy: an self-contradictory one
06:21:12 <monqy> what if its just absurd
06:21:31 <monqy> Mathematic is noexception Mathematics has many paradoxes which show mathematics ends inmeaninglessness
06:21:45 <monqy> mathematics: a view????
06:22:15 <pikhq_> monqy: Reality has paradoxes, so reality ends in meaninglessness.
06:22:43 <elliott_> BeedaWeeda: do you mean to prove that alien life exists, or that alien life forms have visited Earth
06:22:47 <monqy> i like these reasons
06:22:55 <monqy> x can = 1 and .999[bar] at the same time or in other words1=.999[bar]-to infinity ie a finite number = an infinite number- acontradictions in terms
06:23:03 <monqy> MATHEMATICS JUST AD HOC ARBITRARILY DEFINESAWAY THE SELF-CONTRADICTIONS IN MATHEMATICS IETHE AXIOM OF SEPARATION –which is impredicative and thusinvalid
06:23:19 <monqy> MATHEMATICS IS NOT THE LANGUAGE OFTHE UNIVERSE as it is mathematics is just abunch of meaningless symbols connected byrules
06:23:21 <pikhq_> elliott_: Both would be fairly interesting.
06:23:34 <elliott_> pikhq_: the former can be proved: whoops probability qed
06:23:35 <pikhq_> (though only one would be *surprising*)
06:23:47 <monqy> is this paper thing
06:23:54 <pikhq_> elliott_: If the universe is finite, then there's a chance there exists no alien life.
06:23:56 -!- cheater_ has joined.
06:24:04 <BeedaWeeda> elliot: aliens have visited earth but i cant prove it, i can only prove they exist
06:24:13 <pikhq_> Though it would be more surprising for that to be the case than for there to be aliens.
06:24:34 <BeedaWeeda> http://apod.nasa.gov/apod/image/9702/deep_hst_big.jpg
06:24:43 <BeedaWeeda> that is absolutely proof of extra terrestrials
06:24:45 <elliott_> wow, it's from nasa too, i can believe that
06:24:49 <elliott_> BeedaWeeda: ok can you point to the alien in that image?
06:24:56 <monqy> its right over there
06:25:42 <BeedaWeeda> each one has hundreds of trillions of stars
06:25:44 <elliott_> BeedaWeeda: ok: is the proof: There are a huge number of galaxies which are all immensely large in themselves and contain countless numbers of planets; it is absurd to suppose that none of them would have any extraterrestrial life; therefore extraterrestrial life exists?
06:25:59 <elliott_> I can accept that, it's obviously not a formal proof but it basically works out
06:26:08 <elliott_> BeedaWeeda: So, you suppose that some of these extraterrestrials have developed faster-than-light travel?
06:26:14 <elliott_> That is the only way they could have visited Earth.
06:26:33 <pikhq_> I'm not *quite* willing to accept that, but I'm willing to accept that there's something like a 99.9% chance that there's extraterrestrial life. So, no *notable* argument from me. :P
06:26:47 <BeedaWeeda> theres probably a shitload of life within our own galaxy
06:27:01 <elliott_> BeedaWeeda: Why do you believe this? i.e., why do you not instead believe that extraterrestrials have not visited earth, and faster-than-light travel is impossible, as all current physical theories state?
06:27:13 <elliott_> Is it because you have evidence of extraterrestrials visiting Earth?
06:27:34 <elliott_> I'm not sure I understand; I'm interested to know what you mean.
06:27:47 <pikhq_> ... Is your argument "science is primitive therefore aliens", or is there something I'm missing?
06:27:50 <BeedaWeeda> how long has science really been around
06:27:55 <elliott_> BeedaWeeda: do you have an objection to the scientific method?
06:28:01 <elliott_> i.e., do you believe it is not an effective way of figuring things out?
06:28:09 <elliott_> or do you just object to current scientific theories?
06:28:19 <elliott_> if so, do you believe that current scientific theories were not developed correctly according to the scientific method?
06:28:50 <BeedaWeeda> you are asking too many questions my friend
06:29:03 <elliott_> BeedaWeeda: I'm just trying to understand
06:29:12 <elliott_> I don't believe what you believe, but if I ask you questions,
06:29:23 <elliott_> then I can get information about what you believe; and if I think you're convincing, then I could start believing it.
06:29:29 <elliott_> I'm just trying to expand my worldview.
06:29:44 <elliott_> Can I ask another question?: Do you think I've been asking the wrong questions/bad questions?
06:30:03 <monqy> in what way does science "have" dogma
06:30:37 <elliott_> BeedaWeeda: ok, here's a simpler question: Why do you believe aliens have visited earth?
06:31:01 -!- CakeProphet has joined.
06:31:01 -!- CakeProphet has quit (Changing host).
06:31:01 -!- CakeProphet has joined.
06:31:12 <BeedaWeeda> ufo reports have clearly documented them for the past 60 years
06:31:35 <elliott_> BeedaWeeda: do you know what this channel is about, btw?
06:31:42 <pikhq_> How does that demonstrate aliens have visited earth? There are many things those could be.
06:32:04 <elliott_> BeedaWeeda: oh, wait: did Cocytus send you here?
06:32:09 <BeedaWeeda> they did recover crashed discs after all
06:32:20 <pikhq_> Hallucinations, military secrets, hoaxes, etc.
06:32:23 <monqy> wasn't beedaweeda here a few days ago too or was it yesterday or am I confusing him with someone else
06:32:30 <BeedaWeeda> the airforce said it themselves after the roswell incident
06:32:38 <BeedaWeeda> they quickly changed their story of course
06:32:50 <pikhq_> Of course, we can't immediately *rule out* aliens, but it's not the only possible, or even probable, answer.
06:32:50 <elliott_> BeedaWeeda: do you know what this channel is for? just a question
06:33:34 <elliott_> freenode is mostly about open source stuff, so you're unlikely to find a relevant channel on this network
06:33:35 <BeedaWeeda> i thought this was a kind of occult/paranormal/metaphysics chatroom
06:34:10 <oerjan> you're not the first to think that.
06:34:16 <BeedaWeeda> in certain megalithic structures around the world
06:34:47 <elliott_> did they have electric drills is this what you're saying
06:35:09 <BeedaWeeda> they probably had something better than that
06:36:10 <BeedaWeeda> do a little research on this place called puma punku
06:36:22 <BeedaWeeda> the megaliths found there are freakin huge
06:36:31 <BeedaWeeda> and they interlock together like a puzzle
06:36:55 <BeedaWeeda> you mean to tell me people of this time period were moving those!?
06:37:03 <elliott_> have you heard of ropes and stuff
06:37:16 <pikhq_> BeedaWeeda: Moving large objects is actually nowhere near as hard as you think.
06:37:34 <pikhq_> Only takes a single clever man and some carpentry to pull off, TBH.
06:38:19 <BeedaWeeda> some of the megaliths are so perfectly and precisely carved that modern engineers have come forth saying they couldn't even replicate it if they tried
06:38:34 <elliott_> there are millions of engineers
06:38:40 <elliott_> and a lot of them believe really stupid stuff
06:38:54 <pikhq_> Now, the *cutting* of the structures at Pumapunku is more impressive, and I can't say I have any particular explanation for how that happened.
06:38:59 <elliott_> unless they're experts in their field, "an engineer" saying something means very little
06:39:06 <oerjan> "this engineer is so stupid he couldn't even make a megalith"
06:39:18 <pikhq_> Though it must be said, my not having an explanation does not imply that any explanation someone comes up with must be true.
06:39:37 <monqy> no it means mind lasers
06:39:44 <elliott_> but anyway, whatever the reason is for whatever mysteries of construction remain, there is undoubtedly a simpler answer than "all of our current physics is totally incorrect, and intelligent extraterrestrials built ancient structures"
06:39:56 <elliott_> because "ancient humans built it with this tool or method we forgot about" is WAY simpler than that
06:40:53 <oerjan> mind the lasers, or you may get cut
06:41:43 <BeedaWeeda> i think your speaking out of ignorance
06:42:07 <elliott_> BeedaWeeda: and _i_ think you're a gullible idiot.
06:42:16 <elliott_> sorry, i tried to humour you, but you couldn't justify a single thing to me.
06:42:24 -!- aloril has quit (Read error: Operation timed out).
06:43:37 <BeedaWeeda> oh, so you have activated some of your logic, is that what your telling me?
06:43:55 <elliott_> I've activated my logic beams and they're cutting perfect holes into megalithic structures.
06:44:02 <elliott_> Sorry if you get caught in the blast.
06:44:08 <pikhq_> BeedaWeeda: I'll make this easy for you. "Extraordinary claims require extraordinary evidence." You have extraordinary claims. Where is your extraordinary evidence?
06:44:32 <monqy> those pictures just dont say "mind lasers" to me
06:44:39 <pikhq_> elliott_: We always are. :P
06:45:50 <BeedaWeeda> what mind lasers? did i say that or are you making things up?
06:45:58 <oerjan> I DECREE THIS CONVERSATION TO BE NO WEIRDER THAN WHAT WE USUALLY TALK ABOUT
06:46:31 <elliott_> BeedaWeeda: You've basically rejected logic by calling anyone who asks questions that conform to a logical structure of debate closed-minded and ignorant, and telling us instead to basically just decide you're right based on unfounded claims and pictures.
06:46:47 <elliott_> BeedaWeeda: Since you're not being reasonable, we don't have to be either.
06:46:55 <elliott_> You've forfeited your right to a logical debate.
06:47:35 <olsner> oerjan: Nothing is weird.
06:48:10 <BeedaWeeda> UFO's have been documented for hundreds of years, and im not being reasonable or logical by suggesting that aliens are and have been visiting us for a long time?
06:48:34 <pikhq_> BeedaWeeda: The documentation of UFOs does not imply there must be aliens.
06:48:37 <elliott_> BeedaWeeda: Those stories are widely regarded by experts to be untrue.
06:48:41 <BeedaWeeda> i showed a picture of 1,000 galaxies with quadrillions of stars and suggest that alien life exists, and thats not logical or reasonable?
06:48:46 <elliott_> You didn't provide evidence otherwise or give a reason for dismissing those judgements.
06:48:50 <monqy> elliott_: experts who havent researched the field
06:48:50 <pikhq_> BeedaWeeda: It implies something unknown.
06:48:54 <monqy> elliott_: (clearly)
06:49:01 <elliott_> BeedaWeeda: Besides, your claims about the megaliths are more important.
06:49:02 <pikhq_> BeedaWeeda: When something is unknown, you don't get to fill in the gaps with whatever you feel like.
06:49:06 <elliott_> BeedaWeeda: You haven't justified those at all.
06:49:29 <BeedaWeeda> excuse me elliott, im not doing your research for YOU, go research it yourself instead of harping on me to educate you
06:49:40 <elliott_> BeedaWeeda: If you're not trying to educate me, then... go away?
06:49:45 <elliott_> You're the one who said you could prove that aliens existed.
06:49:56 <elliott_> You're the one who then went off on a tangent about UFOs visiting earth.
06:50:01 <pikhq_> elliott_: I did actually look into that specific megalith a bit. Pumapunku exhibits some fairly impressive stoneworking.
06:50:10 <elliott_> You are the one who initiated this, so you can't exactly complain that I'm not doing my research.
06:50:28 <BeedaWeeda> you probably believe everything the media tells you
06:50:38 <elliott_> yes i watch fox news every day
06:50:43 <elliott_> they let me know about the threats to my great country
06:50:48 <pikhq_> BeedaWeeda: *Ahahahah*. You think we believe everything the media tells you? Not even slightly.
06:50:55 <pikhq_> BeedaWeeda: We believe what can be shown by evidence.
06:51:02 <elliott_> BeedaWeeda: im glad that you believe that anyone who disagrees with you on a single thing, must necessarily be a complete sheep
06:51:05 <elliott_> so everyone is either a clone of you
06:51:14 <elliott_> because it means you never have to take anyone seriously who says you're full of shit
06:51:19 <elliott_> you are a boring idiot go away
06:51:25 <pikhq_> (which, incidentally, *is* science.)
06:51:34 <elliott_> pikhq_: you might not want to speak for everyone in the channel.
06:51:43 <pikhq_> elliott_: Okay, okay, s/we/I/
06:51:52 <monqy> science is (big rocks => mind lasers) shoo
06:52:09 <elliott_> Big Rocks, Mind Lasers -- good album title
06:52:21 <BeedaWeeda> elliott, only some fucking moron like you could turn a calm and peaceful discussion into some ridiculous argument like this
06:52:31 <monqy> welcome to esoteric
06:52:35 <monqy> home of fucking morons
06:52:45 <pikhq_> BeedaWeeda: Evidence. Do you have it?
06:52:51 <elliott_> BeedaWeeda: you realise ive just been doing this for entertainment from the start
06:53:02 <elliott_> BeedaWeeda: Anyway: I was completely civil from you until the moment where you stopped answering my questions and just called me ignorant.
06:53:17 -!- BeedaWeeda has left.
06:53:44 <elliott_> <elliott_> have i upset you i'm sorry
06:53:52 <elliott_> maybe he'll be entertaining now
06:54:04 <elliott_> oerjan cant ban me for this because its not in channel mwa ha ha ha ha
06:54:12 <pikhq_> It's amusing how utterly foreign science seems to be for people.
06:54:31 <elliott_> oerjan: im trying to antagonise em in /msg
06:54:52 <monqy> harrassments not cool 8(
06:54:55 <pikhq_> I mean, you'd think "Believe that which can be shown by evidence" wouldn't be hard, but... Holy fuck people.
06:54:57 <elliott_> <elliott_> <elliott_> have i upset you i'm sorry
06:55:19 <elliott_> im going to code more ante-zepto now its good and nice
06:57:48 -!- aloril has joined.
06:58:50 -!- oerjan has set topic: Do not feed the elliotts | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
06:59:07 <elliott_> we were keeping that topic............
06:59:10 <elliott_> zzo set it and it was amazing.....
06:59:50 <oerjan> sorry, i needed to include an important safety message
07:01:28 * oerjan gives elliott_ some bacon ===\__/
07:02:19 <elliott_> "Unlike Heidegger, the Ancient Egyptians were normal people who had normal thoughts."
07:02:51 <oerjan> sounds obvious when you put it that way
07:03:43 <olsner> normal? they were Ancient Egyptians, they should have ancient thoughts - in egyptian!
07:05:43 <elliott_> oerjan: do you think i upset beedaweeda
07:05:58 <elliott_> i will have to track them down in real life and say sorry with a big hammer
07:10:26 <elliott_> oerjan: did you know that carpal tunnel is now illegal
07:10:41 <oerjan> elliott_: um yes you did
07:11:00 <elliott_> oerjan: no, they upset themselves :D
07:11:20 -!- CakeProphet has quit (Ping timeout: 252 seconds).
07:18:58 <elliott_> monqy: ante-zepto is almost three hundred lines : O
07:19:09 <monqy> are they good lines
07:20:01 <elliott_> "Once you understand Monads, I think you have made the transition from a beginner haskell programmer to an intermediate haskeller." oh my god what is this shit
07:21:14 <pikhq_> Funny, I thought understanding Monads was a trivial exercise. :P
07:22:35 <elliott_> total used in directory 28 available 67807276
07:22:35 <elliott_> drwxr-xr-x 2 elliott elliott 4096 2011-07-05 08:17 .
07:22:35 <elliott_> drwxr-xr-x 55 elliott elliott 4096 2011-07-05 04:11 ..
07:22:35 <elliott_> -rw-r--r-- 1 elliott elliott 5982 2011-07-04 10:04 ante.greatawesomegoodyes.hs
07:22:37 <elliott_> -rw-r--r-- 1 elliott elliott 9436 2011-07-05 08:17 ante.yesthebestfuckinganteeverfuckingyessedsozeptoohmygodyouhavenoidea.hs
07:22:54 <elliott_> im considering... splutting it... into maltiple... fules....
07:23:46 <olsner> if you read about monads before having a clue, you'd be likely to conclude that they are really scary and require loads of work to understand
07:23:58 <oerjan> wait you don't have to capitalize module file names?
07:24:17 <elliott_> oerjan: you can name haskell files whatever you want.
07:24:24 <elliott_> "import Foo.Bar" will look at Foo/Bar.hs, though.
07:27:01 <elliott_> monqy: oh god no i cant split it up
07:39:22 <elliott_> monqy should i sleep or code zepto and eat bacon
07:39:31 -!- Lymia has changed nick to Lymee.
07:39:32 <monqy> is it sugared bacon
07:44:29 <elliott_> monqy: im not sure if i can zepto any more
07:44:40 <elliott_> maybe i'll have some bacon while sleeping...
07:44:59 <monqy> that might be bad????
07:45:40 <oerjan> hm, sweet and sour bacon
07:46:03 <elliott_> ok im going to try and find bacon or sleep
07:46:23 <elliott_> too find out watch thing is true....... buy the shirt?
07:59:20 -!- monqy has quit (Quit: hello).
08:34:05 -!- oerjan has quit (Quit: leaving).
08:47:17 -!- Vorpal has joined.
08:51:00 -!- foocraft_ has joined.
08:51:18 -!- foocraft has quit (Read error: Connection reset by peer).
08:57:02 -!- foocraft_ has changed nick to foocraft.
09:24:45 -!- ais523_ has joined.
09:27:48 -!- ais523 has joined.
09:34:31 -!- ais523 has quit (Read error: Connection reset by peer).
09:34:53 -!- ais523 has joined.
10:20:05 -!- falso___ has joined.
10:20:24 <falso___> just to tell that i have released a IDE form Brainfuck for OSX
10:20:55 <ais523> hmm, the world needs more esolang IDEs
10:20:59 <ais523> even if they are all for BF
10:21:42 <falso___> next stop: create one for malbolge
10:21:50 <falso___> http://blol.org/1742-brainfucker
10:22:03 <falso___> doesnt support INPUT yet, just OUTPUT
10:22:40 <coppro> `addquote < falso___> its also open sores
10:22:41 <HackEgo> 481) < falso___> its also open sores
10:22:47 -!- cheater_ has quit (Ping timeout: 250 seconds).
10:22:57 <falso___> yap, i always say open sores instead of open source
10:23:02 <falso___> because that just what it is :-P
10:23:03 <coppro> ais523: hmm... do you think it needs more context?
10:23:10 <ais523> nah, it's fine as it is
10:25:05 -!- cheater_ has joined.
10:27:11 <ais523> in that case, we need a decent befunge IDE
10:27:30 <falso___> im strill trying to understand how that 99 bottles of beer in malbolge was done
10:27:41 <falso___> i wanted to make a simpler algorithm
10:27:54 <Deewiant> I've started some very minimal work on one twice but never got anywhere
10:27:55 <falso___> but dont know how to start..., just bruteforcing every combination
10:28:00 <falso___> and thats... not really programming
10:28:11 <ais523> bruteforcing Malbolge has been tried
10:28:13 <falso___> a friend of mine did a "MALBOLGE-SDK"
10:28:21 <ais523> it eventually resulted in a hello world, that wasn't even capitalised correctly
10:28:25 <falso___> i did two algorithms in bruteforce
10:28:30 <ais523> (as in, random capitalisation for each letter)
10:28:46 <falso___> i fixed that Hello World in wikipedia
10:30:03 <falso___> for the bruteforce theres this application: http://www.cs.uit.no/~johnm/code/hacks/
10:30:16 <coppro> ais523: My first idea is a control flow graph
10:30:40 <coppro> overlaid on the source
10:31:11 <falso___> --- translated from portuguese to english - http://translate.google.com/translate?js=n&prev=_t&hl=en&ie=UTF-8&layout=2&eotf=1&sl=pt&tl=en&u=http%3A%2F%2Fblol.org%2F735-malbolge-desmistificado&act=url
10:32:04 <falso___> i really wish i could contact the japaneses that did the 99 bottles of beer
10:32:13 <falso___> to understand how did he do that
10:51:33 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!).
10:53:03 -!- cheater_ has quit (Ping timeout: 255 seconds).
11:04:47 -!- Phantom_Hoover has joined.
11:38:31 -!- choochter has joined.
11:46:35 -!- Lymee has quit (Ping timeout: 241 seconds).
12:02:21 -!- Lymee has joined.
12:06:33 -!- Lymee has quit (Ping timeout: 240 seconds).
12:14:43 -!- CakeProphet has joined.
12:14:43 -!- CakeProphet has quit (Changing host).
12:14:43 -!- CakeProphet has joined.
12:17:09 -!- Lymee has joined.
12:27:45 <ais523> bleh, Ubuntu bug 290204 really makes me lose hope in humanity, or at least small subsets of it
12:28:13 <ais523> https://bugs.launchpad.net/ubuntu/+source/gnome-session/+bug/290204
12:28:32 <ais523> basically, shutting down Ubuntu works indirectly by calling shutdown(1)
12:28:36 <ais523> which plays a beep through the PC speaker
12:28:47 <ais523> the fix they used was to blacklist the kernel driver for the PC speaker
12:29:04 <ais523> rather than just adding an option to shutdown to not beep, or using telinit, or, really, anything else
12:31:33 <coppro> ais523: on the plus side
12:34:45 <coppro> http://llvm.org/bugs/show_bug.cgi?id=1000
12:36:01 <ais523> that's just a joke bug, I'm fine with those
12:36:17 <coppro> its a most excellent joke bug
12:36:25 <coppro> the best is who it's assigned to
12:38:17 <coppro> ok, that's enough william hartnell for this what-is-quickly-becoming-an-allnighter
12:51:41 <Phantom_Hoover> ""The whole notion of replacing π by 2π is silly since we all are very comfortable with π and multiplication by two."
12:51:52 <Phantom_Hoover> I think this is the best summary of the entire tau movement to date.
13:07:11 -!- oerjan has joined.
13:17:18 -!- copumpkin has joined.
13:23:04 <coppro> Phantom_Hoover: and yet mathematicians strive for perfection
13:23:28 <coppro> note that the physicists found h/2pi to be so useful they invented a symbol for it
13:23:39 <Phantom_Hoover> coppro, not the kind of perfection that comes from changing some factors.
13:25:27 <oerjan> pi vs. tau is only considered important by the same kind of people who insist on punishing pupils for putting a single line under the final answer when the school rules say there should be two.
13:26:28 <CakeProphet> > let { infixr 6 >=; x >= f = f x } in 10 >= 11 >= (+)
13:26:56 <CakeProphet> > let { infixr 6 >=; (>=) = flip ($) } in 10 >= 11 >= (+)
13:28:01 <CakeProphet> nah, no one uses comparison operators in modern programming anyways
13:28:03 <oerjan> although i think that's infixl
13:28:23 <ais523> coppro: engineers have separate names for units which are just 1 divided by existing units
13:28:33 <coppro> ais523: So do physicists
13:28:41 <ais523> well, it's the same units
13:29:02 <coppro> This is more because the English language sucks at expressing inverse units
13:29:03 <oerjan> inverse femtobarns ftw
13:29:36 <coppro> and also to avoid confusion
13:29:36 <CakeProphet> you coould just add the prefix in- to the unit name.
13:30:03 <coppro> since dimensions do not uniquely identify the physical properties of a unit
13:30:36 <CakeProphet> some are un-, some allow both. English is weird.
13:31:03 <coppro> dammit I need a snuggy
13:31:47 <oerjan> rather smaller, i believe :P
13:31:47 <Phantom_Hoover> A really, really small unit of area; it was used for nuclear physics.
13:32:15 <CakeProphet> oerjan: this seems like a clever way to advertise a barn your selling, by saying it the size of many barns.
13:32:46 <coppro> Phantom_Hoover: also known as Galileos
13:32:59 <oerjan> inverse femtobarns is the unit used for measuring the total amount of collision data collected by the LHC
13:34:21 <oerjan> i think it somehow measures how small an area they have statistically managed to hit with those collisions, or something
13:34:45 <CakeProphet> A barn (symbol b) is a unit of area. Originally used in nuclear physics for expressing the cross sectional area of nuclei and nuclear reactions, today it is used in all fields of high energy physics to express the cross sections of any scattering process.
13:34:55 <Phantom_Hoover> The electric constant would be in square amp-4th seconds-inkilograms-cubic inmetres?
13:35:06 <coppro> I much prefer microouthouse to femtobarn
13:35:48 <CakeProphet> so in fact, I could advertise my barn to be the size of over one thousand barns.
13:36:07 <CakeProphet> except for the whole size not being area thing.
13:36:14 <coppro> also, really, the unit used for measuring collision rate is finverse femtobarn-seconds
13:36:29 <coppro> or inverse femtobarn-hours or what have you
13:37:48 <CakeProphet> if I worked with the LHC I would convert all of my measurements to invese (beardseconds squared)-seconds
13:40:03 <CakeProphet> or I guess it would be (inverse beardseconds squared)-seconds
13:41:08 <oerjan> "Geneva, 17 June 2011. Today at around 10:50 CEST, the amount of data accumulated by LHC experiments ATLAS and CMS clicked over from 0.999 to 1 inverse femtobarn, signalling an important milestone in the experiments' quest for new physics."
13:41:52 <oerjan> "The number signifies a quantity physicists call integrated luminosity, which is a measure of the total number of collisions produced."
13:45:01 * Sgeo must not be allowed to fall asleep
13:47:25 * oerjan gently pushes Sgeo into a vat of chloroform
13:51:57 <oerjan> ars for dyeing your bears
13:52:46 <CakeProphet> huh, so the average beard only grows about 15 cm in a year. I guess that makes sense.
14:01:25 <oerjan> "Is benzene and chloroform mixture a good eluent?
14:02:33 <oerjan> i find the relevance somewhat elusive, at least
14:04:39 -!- Sgeo has quit (Ping timeout: 250 seconds).
14:06:28 <ais523> elliott_: how's scapegoat getting on?
14:06:38 <ais523> I just got into a darcs vs. svn flamewar in my boss's office
14:07:20 <ais523> and need a version control system that is unambiguously superior to all others in order to justify advocating it
14:07:51 <ais523> oerjan: it is also not a particularly good story
14:09:08 <ais523> in fact, it's probably not even worth randomly referencing
14:09:10 * ais523 glares at Phantom_Hoover
14:09:25 -!- copumpkin has quit (Remote host closed the connection).
14:09:50 -!- copumpkin has joined.
14:09:50 -!- copumpkin has quit (Changing host).
14:09:50 -!- copumpkin has joined.
14:12:11 * oerjan wonders what ais523 and Phantom_Hoover did, and whether it was entirely legal.
14:12:26 <ais523> oerjan: I didn't do anything
14:12:33 <ais523> in fact, I was on the other side of the argument
14:12:47 <oerjan> ic. that would increase the chances it wasn't legal, i guess.
14:13:26 <ais523> OK, so I was on the boring (and yet legal) side of the argument
14:13:45 <ais523> I still think it was a better side than yours
14:13:58 <ais523> and OK, there are some stupid laws around
14:14:19 <ais523> but the law in question is an entirely sensible one, and I would likely advocate for its adoption if for some reason it hadn't been introduced
14:15:04 * oerjan wasn't aware that there was some concept of "truly illegal"
14:15:09 <Phantom_Hoover> Well sure, but you're a joyless automaton with no love for the finer things.
14:15:39 <CakeProphet> oerjan: probably similar to "illegal and easily enforceable"
14:15:46 <ais523> oerjan: Phantom_Hoover seems to be using it as "illegal and I agree with it being illegal"
14:16:22 <Phantom_Hoover> Or at least a crime with no victims worth speaking of.
14:16:38 <oerjan> there was nothing of the victim left to complain!
14:17:24 <ais523> Phantom_Hoover: well, it never happened (I hope, at least)
14:17:38 <ais523> so it was victimless in the sense that it was never committed
14:28:38 <ais523> <Bob the Stupid Hamste> You have stumbled upon the difference between music lovers and audiophiles. Music lovers listen to music, where audiophiles listen to stereos.
14:33:17 -!- oerjan has quit (Quit: Good night).
14:37:30 <CakeProphet> I am a music lover that prefers higher quality speakers, but realizes that there's an upper ceiling where quality begins to matter less.
14:38:01 <CakeProphet> but I'll amend this situation when I get my first paycheck Thursday..
14:39:12 <CakeProphet> anyways, I'm going to do that thing animals do where there heart rate and brain activity slows down and the eyes experience phases of rapid movement.
14:39:28 <CakeProphet> *their ...I am messing those up a lot right now.
14:40:49 <CakeProphet> I will probably begin to hallucinate as I lie in a state of paralysis.
14:40:59 <CakeProphet> but I will have difficulty remember what it was that I hallucinated.
14:55:34 -!- Nisstyre has quit (Ping timeout: 240 seconds).
14:59:43 -!- BeholdMyGlory has joined.
15:27:31 -!- ais523 has quit (Read error: Connection reset by peer).
15:32:49 -!- ais523 has joined.
15:53:31 -!- sebbu has quit (Ping timeout: 260 seconds).
15:54:34 -!- sebbu has joined.
15:54:34 -!- sebbu has quit (Changing host).
15:54:35 -!- sebbu has joined.
16:05:15 -!- monqy has joined.
16:05:52 -!- derrik has joined.
16:10:21 -!- calamari has joined.
16:30:04 -!- MigoMipo has joined.
16:31:28 -!- calamari has quit (Quit: Leaving).
16:49:38 -!- Nisstyre has joined.
16:50:17 -!- derrik has quit (Ping timeout: 240 seconds).
16:52:03 -!- jcp has quit (Ping timeout: 276 seconds).
16:52:12 -!- jcp|1 has quit (Ping timeout: 240 seconds).
17:02:49 -!- ais523 has quit (Remote host closed the connection).
17:03:58 -!- ais523_ has quit (Quit: Page closed).
17:04:55 -!- cheater_ has joined.
17:33:40 -!- Sgeo has joined.
17:38:27 -!- Sgeo has quit (Ping timeout: 264 seconds).
17:42:44 -!- Sgeo has joined.
17:43:15 -!- Wamanuz4 has quit (Remote host closed the connection).
17:47:27 -!- Wamanuz has joined.
17:59:23 -!- azaq23 has joined.
18:31:18 -!- hiato has quit (Ping timeout: 276 seconds).
18:37:13 <Sgeo> Need to save power
18:37:43 <quintopia> i recommend rechargeable batteries
18:37:47 -!- Sgeo has quit (Quit: Leaving).
18:37:49 -!- hiato has joined.
18:38:31 -!- cheater_ has quit (Ping timeout: 250 seconds).
18:39:36 -!- cheater_ has joined.
18:42:19 -!- pikhq has joined.
18:43:29 -!- pikhq_ has quit (Read error: Operation timed out).
19:14:18 <quintopia> does a double fill only one word in 64-bit systems?
19:14:23 -!- jcp has joined.
19:24:30 <Phantom_Hoover> http://www.reddit.com/r/pics/comments/elnr4/our_heater_is_shit_so_this_is_how_were/c1915ub
19:24:33 -!- pikhq_ has joined.
19:24:40 -!- pikhq has quit (Ping timeout: 252 seconds).
19:27:23 <Phantom_Hoover> But you go on and uh...talk about computers..and kJ of energy..."
19:27:52 <Phantom_Hoover> Fun fact: these people were being upvoted until someone called in /r/Physics.
19:42:39 -!- jcp|other has joined.
19:51:58 -!- BeedaWeeda has joined.
19:52:09 <quintopia> "Its because oven heating elements generally aren't built for continuous duty, they're designed to cycle on and off. My guess is that some parts that normally don't get hot could get hot and become a fire hazard."
19:52:19 <quintopia> it's like this guy has never heard of broiling
19:54:01 <newsham> anyone can find a stupid person on the internet, only the truely talented time wasters actually bother to read them.
19:54:26 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
19:54:40 <Phantom_Hoover> newsham, I think the thing that hooked me was the fact that the hivemind was initially on the side of the idiots.
19:55:23 <quintopia> most of the people in this thread are not stupid. only about the usual amount
19:55:47 <quintopia> but i'm above and beyond the average time-waster. i'm a time-waster extraordinaire
19:55:52 <Phantom_Hoover> Yes, but some of them are really stupid, and it seems that they were initially the ones with upvotes.
19:56:08 -!- Vorpal has joined.
19:56:31 <newsham> maybe people are upvoting the idiots so we can all share in their glory
20:20:59 <Phantom_Hoover> Yes. That is what we shall tell ourselves from now on.
20:22:21 -!- Lymee has quit (Read error: Connection reset by peer).
20:22:30 <Gregor> http://sttngfashion.tumblr.com/post/5550581072/special-report-star-trek-the-next-generation-a-xxx Best
20:26:50 -!- boily has quit (Read error: Operation timed out).
20:32:44 <pikhq_> quintopia: Uh, I could've sworn that a 100% duty cycle was, in fact, designed for in electric heating elements.
20:38:43 -!- Sgeo has joined.
20:50:26 <quintopia> pikhq_: indeed. but it's been an hour since i was talking about idiots on reddit, and the moment has passed
20:54:52 <Phantom_Hoover> "Sorry, cows, your skin is really nice-looking when it gets made into shoes and jackets."
20:56:38 <olsner> a cow killed for meat and leather is still killed for leather?
20:56:50 <quintopia> i don't actually have many things made of cow leather
20:57:00 <quintopia> some kangaroo leather, some sheep leather...
20:57:08 <Phantom_Hoover> olsner, I suspect the demand for cows for food exceeds that for leather.
20:57:46 <quintopia> poll question: how would you interpret the following sentence: "Of course, this same person apparently knows casey through six degrees."
21:04:17 -!- augur has quit (Remote host closed the connection).
21:24:40 -!- Phantom__Hoover has joined.
21:24:44 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
21:25:19 <Phantom__Hoover> I am arriving at the hypothesis that Wine's D3D support crashes my computer.
21:43:49 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:50:18 -!- NihilistDandy has joined.
21:50:34 -!- augur has joined.
22:10:25 <Gregor> http://www.facebook.com/photo.php?pid=32182066&l=d213217594&id=1055580469 Great advancement in ties, or /greatest/ advancement in ties?
22:11:32 <quintopia> man, content not found is my favorite kind of tie
22:17:49 <Gregor> quintopia: Content not found? wtf?
22:18:01 <Gregor> This is supposed to be a "for anyone, even not on Facebook" permalink: http://www.facebook.com/photo.php?pid=32182066&l=d213217594&id=1055580469
22:18:13 <Gregor> And it appears to be the same link I gave before ...
22:18:43 <Gregor> Argh, fuggin Facebook.
22:19:04 <Gregor> http://codu.org/tmp/futuretie.jpg
22:19:23 <quintopia> you can just right click->copy image location
22:19:54 <Gregor> http://a6.sphotos.ak.fbcdn.net/hphotos-ak-snc6/260546_1982623639337_1055580469_32182066_4949751_n.jpg lulsecurity
22:20:23 <quintopia> so you just tied two together backtoback?
22:21:04 <Gregor> Uhh, no, if that was what I had done it wouldn't look anything like that.
22:22:01 <Gregor> Have you never tied a tie before? X-D
22:22:11 <Gregor> Well, that is two ties, but the knot is, to my knowledge, unique.
22:22:44 <Gregor> Not that there's much knot there, it's just an up-and-over for the wide parts, the thin parts are tied for flourish :)
22:23:32 <quintopia> it looked about like how i imagine two ties tied in a standard fashion but with their knots intermingled would look
22:23:59 <Gregor> "Up-and-over" is the first step of nearly every tie knot.
22:24:05 -!- terix has joined.
22:24:26 <Gregor> Where you push the long part up through the loop created by wrapping it 'round the short part.
22:24:52 <Phantom__Hoover> (The only tie knot I know is the Windsor, which is apparently weird.)
22:25:03 <Gregor> It's not particularly weird, no ...
22:25:12 <Gregor> It's the canonical knot, although most people do the pussy half-windsor nowadays.
22:25:40 <quintopia> i usually do either a full windsor or fourinhand
22:25:41 -!- terix has left.
22:26:20 <Phantom__Hoover> Do you wrap the big end around the small end when tying it?
22:26:28 <quintopia> painted on the side of a building in reykjavik
22:27:55 <Gregor> Anyway, this isn't any standard tie knot, as indicated by the fact that it involves TWO EFFING TIES
22:28:08 <Gregor> But anyway, real question: Me wearing a double-tie all the time from now on. Yes/no?
22:32:02 <Phantom__Hoover> http://stackoverflow.com/questions/4272067/what-does-mean-in-mathematica
22:36:27 <Gregor> quintopia: I would need a pretty impressive collar for that :P
23:02:03 -!- Sgeo has quit (Ping timeout: 255 seconds).
23:28:22 <elliott_> 12:28:47: <ais523> the fix they used was to blacklist the kernel driver for the PC speaker
23:31:13 <elliott_> 13:23:04: <coppro> Phantom_Hoover: and yet mathematicians strive for perfection
23:31:22 <elliott_> 13:25:27: <oerjan> pi vs. tau is only considered important by the same kind of people who insist on punishing pupils for putting a single line under the final answer when the school rules say there should be two.
23:31:29 <elliott_> heh, but I'm not sure that's accurate
23:33:43 <elliott_> 13:41:08: <oerjan> "Geneva, 17 June 2011. Today at around 10:50 CEST, the amount of data accumulated by LHC experiments ATLAS and CMS clicked over from 0.999 to 1 inverse femtobarn, signalling an important milestone in the experiments' quest for new physics."
23:34:01 <elliott_> I would like to think that the only results kept at the end of the LHC experiments will be the single inverse femtobarn number.
23:34:08 <elliott_> All the rest will be thrown away now that we have THE RESULT.
23:35:11 <elliott_> 13:47:25: * oerjan gently pushes Sgeo into a vat of chloroform
23:35:21 -!- cheater_ has quit (Ping timeout: 255 seconds).
23:37:48 <newsham> its odd that his last name is almost "the gay"
23:37:51 <quintopia> george takei was hilarious in larry crowne
23:47:27 -!- mycrofti1 has changed nick to mycroftiv.
23:47:41 -!- cheater_ has joined.
23:51:35 -!- augur has quit (Remote host closed the connection).
23:55:09 -!- cheater_ has quit (Ping timeout: 255 seconds).
00:07:31 -!- cheater_ has joined.
00:12:08 -!- oerjan has joined.
00:19:40 -!- augur has joined.
00:19:55 -!- cheater_ has quit (Ping timeout: 255 seconds).
00:22:19 -!- Patashu has joined.
00:23:38 -!- elliott_ has quit (Remote host closed the connection).
00:24:26 -!- elliott has joined.
00:26:19 -!- Phantom__Hoover has quit (Quit: Leaving).
00:32:41 <oerjan> elliott has been possessed by a demon, sadly.
00:34:11 <oerjan> and now two new cardinal sins will be unleashed upon the world
00:34:32 <oerjan> and some pestilence, but that's hardly new
00:34:58 <elliott> no that was the list of sins
00:36:06 <oerjan> it is a great boon that demons can't count, at least
00:36:28 <newsham> maybe its nine in a different base
00:37:51 <oerjan> maybe elliott has finally met his match
00:39:58 <oerjan> <Gregor> http://codu.org/tmp/futuretie.jpg <-- there are people who wear ties to conform. and then there is Gregor.
00:40:55 <oerjan> i assume for the same reason he wears hats
00:41:08 <oerjan> maybe it's a side effect of hyposmia
00:41:14 <newsham> but brings me no closer to the truth
00:42:07 <oerjan> what is pretty clear is that whatever he is doing, it's not conforming
00:42:27 <newsham> unless his peers are in the circus
00:42:46 <newsham> isnt she dead? eww.. thats gross
00:42:47 <elliott> 14:06:28: <ais523> elliott_: how's scapegoat getting on?
00:42:48 <elliott> 14:06:38: <ais523> I just got into a darcs vs. svn flamewar in my boss's office
00:42:56 <elliott> I explained it to a friend recently, so maybe I'll even work on it
00:43:03 <elliott> 14:07:20: <ais523> and need a version control system that is unambiguously superior to all others in order to justify advocating it
00:43:04 <elliott> It doesn't have to exist to advocate it
00:43:09 <oerjan> i can at least say, who the fuck is casey anthony
00:43:24 <newsham> can we not talk about stupid diversionary non-news news stories?
00:43:35 <newsham> there are lots of other retarded places to talk to retarded people on that subject
00:43:49 <oerjan> oh it's a woman, i was confused the previous talk about casey and andy
00:44:05 <oerjan> i was going to call up augur for expertise
00:44:09 <elliott> oerjan: Caylee Marie Anthony (August 9, 2005 – c. June 16, 2008)[1] was a child from Orlando, Florida, whose disappearance in June 2008 attracted national media attention. Caylee's skeletal remains were discovered December 11, 2008, six months after she was reported missing by her grandmother, Cindy Anthony.[2] Her mother, Casey Anthony, decided not to report her daughter missing, and was indicted on charges of felony murder, though she continu
00:44:09 <elliott> ed to maintain her innocence throughout her trial. Casey Anthony was found not guilty of murder, aggravated child abuse, and aggravated manslaughter, but guilty of providing false information to a law enforcement officer.
00:44:56 -!- newsham has left.
00:45:51 <elliott> <newsham> can we not talk about stupid diversionary non-news news stories?
00:45:51 <elliott> <newsham> there are lots of other retarded places to talk to retarded people on that subject
00:46:03 <elliott> not that there's been any _discussion_ :D
00:46:05 <BeedaWeeda> im gonna get a blow job from casey anthony
00:47:46 <elliott> oerjan: hes not only stupid and stupid in a boring way but a troll and a troll in a boring way :(
00:49:57 <Gregor> oerjan: I wear ties to AVOID conforming :P
00:50:09 <Gregor> If I was in business, I probably wouldn't wear ties :P
00:50:49 <oerjan> if you were in business you might or might not get a choice, afaik
00:50:54 <elliott> <oerjan> <Gregor> http://codu.org/tmp/futuretie.jpg <-- there are people who wear ties to conform. and then there is Gregor.
00:51:00 <elliott> well this is definitely the ugliest thing i've ever seen
00:51:09 <elliott> oh, I should have worded that as "nice tie, though" :(
00:52:22 <Gregor> I am making a pretty goofy face, and my jetlag tiredness makes me look like I have a black eye :P
00:53:05 <oerjan> BeedaWeeda: 95% of the people in this channel are nerds and don't like to mess up our nice geeky channel with woman talk. and the rest are gay.
00:53:17 -!- augur has quit (Remote host closed the connection).
00:54:02 <oerjan> well and then there's oklopol, but he's on vacation.
00:54:09 <elliott> I like oerjan's definition of woman talk :P
00:54:32 <oerjan> elliott: english compounds are ambiguous
00:55:01 <elliott> oerjan: I didn't mean that :P
01:18:10 <Gregor> http://codu.org/tmp/doubletie2.jpg Doubleties are seriously the greatest.
01:18:57 <oerjan> niceties and doubleties
01:20:01 <Gregor> elliott: One tie at a time :P
01:20:11 <Gregor> If I had a long skinnytie, tripletie would be easy.
01:23:37 -!- BeedaWeeda has quit (Changing host).
01:23:37 -!- BeedaWeeda has joined.
01:28:18 <elliott> BeedaWeeda: it is too late.... the fbi have seen your ip....
01:29:39 -!- augur has joined.
01:30:51 -!- augur has quit (Client Quit).
01:31:02 -!- augur has joined.
01:34:34 <Gregor> http://codu.org/tmp/doubletie2.jpg augur, behold my amazing invention!
01:36:58 -!- Sgeo has joined.
01:38:04 <augur> Gregor: it looks like something youd wear
01:38:31 <elliott> Gregor: its less ugly than the other one F-
01:38:42 <Gregor> elliott: I'm experimenting with "knots" :P
01:39:52 <elliott> Gregor: can you get a tie that's a transparent plastic thing filled with multicoloured glow in the dark liquid
01:40:11 <Gregor> Umm ... I doubt that you can :P
01:41:35 <elliott> that would fucking rock i would wear that all day holy shit
01:41:53 <Gregor> It would be quite a trick to tie :P
01:42:02 <Gregor> If it's thick enough to not break when you try to tie it, it's too thick to tie.
01:42:16 <elliott> Gregor: The bit you actually tie would get thinner.
01:42:22 <elliott> (And maybe be made of a bit nicer material :P)
01:42:43 <elliott> Gregor: You'd need some way to keep all the liquid flowing to make it the most cool though >_>
01:42:51 <Gregor> The bit you actually tie varies depending on the height, build, knot and preferences of the wearer.
01:42:58 <elliott> Yeah yeah yeah, HAND-TAILORED
01:43:29 <elliott> Gregor: IT WILL BE SO COOL DO YOU EVEN HAVE ANY IDEA.
01:45:50 <oerjan> what about some kind of paper-thin lcd screen surface
01:46:31 <Gregor> Which also does not break when tied :P
01:46:33 <oerjan> ...i guess we should just wait for the nanofabrics
01:46:55 <elliott> Gregor: um there are thin bendable transparent oled displays at least
01:47:08 <elliott> they might even not look like shit in the few years that have passed since I started knowing this
01:47:10 <Gregor> Bendable, or holyfuckmegabendable?
01:47:28 <elliott> Gregor: Bendable as in "fold it in half with a little bulge at the end and then back over itself" :P
01:47:33 <elliott> JUST NEEDS A BIT OF TORTURE
01:47:51 <elliott> oh my god if you had a tie hooked up to a camera on the back of your shirt
01:48:02 <oerjan> the actual pulling at the knot part might get ugly, there
01:48:25 <elliott> whatif you had a whole shirt like that
01:48:46 <Gregor> Elizacat: A whole shirt like that, but wore a tie :P
01:48:47 <oerjan> the half invisible man
01:48:54 <Gregor> elliott: Who is Elizacat? :P
01:49:02 <elliott> Gregor: Somebody who came in here to ping Vorpal.
01:50:00 <elliott> <elliott> whatif you had a whole shirt like that
01:50:02 <elliott> i think this is actually feasible
01:50:15 <elliott> i mean shirts don't need to bend THAT much really
01:50:36 <elliott> also if you made all the non-screen parts out of shiny mirror... yes.... i want this shirt...........
01:51:16 <Elizacat> Gregor, I'm a friend of Vorpal
01:51:24 <elliott> Elizacat: u r squatting on my nick letter plz rename urself
01:52:09 <Elizacat> I'm judge, jury, and executioner
01:52:23 <elliott> im stab you behind back while u talk ha ha.... now ur dead for eva
01:52:49 <elliott> what do cats have that is fatally stabbable
01:52:58 <elliott> specifically, automated therapist program cats
01:53:22 <Gregor> I think we've lost track of the topic here.
01:53:27 <Gregor> Which is how awesome doubleties are.
01:56:47 <elliott> you know, a mirror shirt would be almost as cool as that idea
01:56:51 <elliott> and about a thousand times easier
01:57:11 <elliott> google image search results for "shirt made out of mirror" not promising
01:57:33 <monqy> mirror shirt mirror pants mirror hat
01:58:39 <elliott> i need to become a ~~rockstar~~ just so i can wear this omg
01:58:44 <elliott> maybe a rockstar programmer would do
02:00:05 <elliott> i cant have mirror everything monqy
02:00:11 <elliott> does there exist mirror skin paint
02:06:14 -!- Lymee has joined.
02:06:14 -!- Lymee has quit (Changing host).
02:06:14 -!- Lymee has joined.
02:10:02 -!- pumpkin has joined.
02:10:11 -!- pumpkin has quit (Changing host).
02:10:11 -!- pumpkin has joined.
02:13:28 -!- copumpkin has quit (Ping timeout: 276 seconds).
02:20:15 -!- zzo38 has joined.
02:23:22 <zzo38> Do you know if ais523 has answered the second pokemon card puzzle game?
02:27:37 <elliott> / Don't rename the system principal!
02:27:37 <elliott> / The JS engine (NewCompartment) relies on this name.
02:27:37 <elliott> #define SYSTEM_PRINCIPAL_SPEC "[System Principal]"
02:27:37 <elliott> --caps/src/nsSystemPrincipal.cpp
02:27:42 <elliott> compartment->systemGCChunks = principals && !strcmp(principals->codebase, "[System Principal]");
02:31:06 <elliott> maybe you're not allowed to include header files from different components
02:33:40 <elliott> "My source is common sense"
02:33:45 * elliott adds to list of phrases never to say
02:36:22 -!- Nisstyre has quit (Quit: Leaving).
02:38:27 -!- Nisstyre has joined.
02:38:45 <CakeProphet> elliott: man that is the most common sense I've ever seen in code.
02:39:52 <elliott> i kill people then hide their bodies then never talk about it ever that is my art
02:40:05 <oerjan> all artists are more valuable dead, that's common sense
02:40:10 <elliott> my next target......... BeedaWeeda
02:40:19 <elliott> i am working... for the fbi...
02:40:45 <elliott> 03:29:47: * oerjan suddenly has a realization: mime types cannot possibly handle sound data.
02:40:45 <elliott> the idea is just plain unsound
02:41:05 <oerjan> wait why did i say that
02:41:14 <elliott> i have _no_ idea whatsoever
02:41:21 <oerjan> also, murdering BeedaWeeda _will_ get you banned. just saying.
02:41:27 <elliott> 03:15:57: <SevenInchBread> eh... scope makes sense in Python... to me anyways... but that's because I've been using it... a lot.
02:41:27 <elliott> 03:16:09: <bsmntbombdood> i don't understand scope in python
02:41:27 <elliott> 03:16:40: <SevenInchBread> everything is local unless stated otherwise.
02:41:27 <elliott> 03:16:47: <bsmntbombdood> mm hmmm
02:41:27 <elliott> 03:17:16: <SevenInchBread> and a closure is just an encapsulation of the globals() at the time of definition.
02:41:30 <elliott> 03:17:55: <SevenInchBread> so... any idea of what's causing self to be undefined? I'm thinking it might be something with the way you have it set up... can I see the source?
02:41:35 <elliott> 03:19:10: <bsmntbombdood> bsmntbombdood.mooo.com/chroot_ircbot.py
02:41:37 <elliott> 03:20:38: <bsmntbombdood> argh
02:41:39 <elliott> 03:20:45: <SevenInchBread> I think it would be cool if python.exe could take URLs as pathnames.
02:41:41 <elliott> 03:21:02: <SevenInchBread> so it would interpret a program off of a URL.
02:41:43 <elliott> 03:21:41: <bsmntbombdood> this needs a script to start i
02:41:45 <elliott> 03:21:42: <bsmntbombdood> t
02:41:47 <elliott> 03:27:34: <bsmntbombdood> there, mime types are better
02:41:49 <elliott> 03:29:47: * oerjan suddenly has a realization: mime types cannot possibly handle sound data.
02:41:53 <elliott> a bigger paste than i realised
02:41:55 <elliott> <oerjan> also, murdering BeedaWeeda _will_ get you banned. just saying.
02:42:15 <oerjan> i'm surprised it got through. well, if it all did.
02:42:57 <oerjan> no, it's just the attitude i don't like.
02:43:27 <elliott> lol at classifying murder as "attitude"
02:43:34 <elliott> DON'T TAKE THAT MURDERING TONE WITH ME MISTER
02:43:39 <oerjan> #reallybadattitude at that
02:45:02 <oerjan> also, i still wish i knew what i meant by that mime type comment
02:48:33 <elliott> oerjan: oh did you know all along...
02:48:57 <oerjan> i simply didn't consider that i could possibly have meant to make a pun. the idea!
02:52:38 <elliott> monqy: soon...zepto...blood...
02:54:07 <oerjan> bah reddit link crashed my browser
02:56:55 <oerjan> > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n` mod pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in ncheck 6 1 0 [5, 4..]
02:56:56 <lambdabot> <no location info>: parse error on input `pos'
02:57:13 <oerjan> > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in ncheck 6 1 0 [5, 4..]
02:57:14 <lambdabot> [7,9,11,13,16,17,18,19,21,22,23,26,27,29,31,32,33,34,35,36,37,38,39,41,43,4...
02:57:31 <oerjan> > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in ncheck 6 1 0 [5, 4.. 0]
02:57:58 <oerjan> > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 6 in ncheck b 1 0 [b, b-1 .. 0]
02:58:05 <oerjan> i'm just checking a special case
02:58:16 <oerjan> > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 6 in ncheck b 1 0 [b-1, b-2 .. 0]
02:58:20 <elliott> i want something i can actually run on thirty-four :D
02:58:29 <oerjan> > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 34 in ncheck b 1 0 [b-1, b-2 .. 0]
02:58:30 <lambdabot> [5,7,13,15,19,21,23,25,26,29,31]
02:58:53 <oerjan> > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 4 in ncheck b 1 0 [b-1, b-2 .. 0]
02:59:00 <oerjan> > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 8 in ncheck b 1 0 [b-1, b-2 .. 0]
02:59:06 <oerjan> > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 14 in ncheck b 1 0 [b-1, b-2 .. 0]
02:59:18 <oerjan> > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 28 in ncheck b 1 0 [b-1, b-2 .. 0]
02:59:45 <oerjan> nah i just realized that base 4 and 6 have solutions of the form (b-1)(b-2)...0
03:00:01 <oerjan> > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 62 in ncheck b 1 0 [b-1, b-2 .. 0]
03:00:02 <lambdabot> [7,9,11,13,16,17,19,21,22,23,25,26,27,29,32,33,34,35,37,38,39,41,43,44,45,4...
03:00:35 <oerjan> > let ncheck b pos n [] = []; ncheck b pos n (d:ds) = let n' = n*b+d in (if n' `mod` pos == 0 then id else (pos:)) $ ncheck b (pos+1) n' ds in let b = 16*31 in ncheck b 1 0 [b-1, b-2 .. 0]
03:00:36 <lambdabot> [7,17,21,23,29,34,35,37,41,43,46,47,49,51,53,58,59,61,63,64,67,68,69,71,73,...
03:01:05 <oerjan> elliott: i just wanted to see if it worked for either perfect numbers or twice mersenne primes
03:01:18 <elliott> oerjan: its ok theres a world of laughter in a bone
03:02:29 <oerjan> oh only one tab actually crashed
03:02:59 <monqy> sometimes i forget IE is a thing
03:03:52 <elliott> monqy: you live a peaceful life
03:04:27 <monqy> a few times a long time ago i tried to do cross-browser web stuff and IE was just the worst thing it made my life hell
03:04:30 <oerjan> elliott: oh and i did have one idea for improving nsearch. as i wrote it it actually recomputes a lot of gcd's. it might be an idea to put the gcd's for a base in an array instead.
03:04:30 <monqy> this is why i dont do web stuff
03:05:01 <lambdabot> ["a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","aac"...
03:05:03 <CakeProphet> the fact that it is that easy to test every possible combination of an alphabet makes me want to write some password crackers in Haskell...
03:05:04 <elliott> my arm is sticky how did that happen... wait i spilled water on it maybe im imagining the water is sticky
03:05:23 <lambdabot> Couldn't match expected type `t -> [b]' against inferred type `[a]'
03:05:25 <oerjan> also _maybe_ one could split the list of digits by the resulting gcd, but that would mean more complicated deletion.
03:05:26 <lambdabot> "abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab...
03:05:28 <CakeProphet> elliott: maybe you are on acid, or schizophrenic.
03:05:33 <elliott> > [1..] >>= replicate ['a'..'c']
03:05:34 <lambdabot> Couldn't match expected type `GHC.Types.Int'
03:06:29 <lambdabot> ["aaa","aab","aac","aba","abb","abc","aca","acb","acc","baa","bab","bac","b...
03:06:54 <monqy> > permutations ['a' .. 'c']
03:06:55 <lambdabot> ["abc","bac","cba","bca","cab","acb"]
03:07:15 <elliott> > permutations (repeat ['a'..'c'])
03:07:16 <lambdabot> [["abc","abc","abc","abc","abc","abc","abc","abc","abc","abc","abc","abc","...
03:07:20 <elliott> > permutations (cycle ['a'..'c'])
03:07:21 <lambdabot> ["abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabca...
03:07:36 <CakeProphet> I think the function you're looking for...
03:07:44 <elliott> > map (take 3) . permutations (cycle ['a'..'c'])
03:07:45 <lambdabot> Couldn't match expected type `[a]'
03:07:45 <lambdabot> against inferred type `GHC.Types...
03:07:49 <elliott> > map (take 3)( permutations (cycle ['a'..'c']))
03:07:50 <lambdabot> ["abc","bac","cba","bca","cab","acb","acb","cab","cba","abc","bac","bca","a...
03:07:57 <monqy> [1..] >>- flip replicateM ['a' .. 'c']
03:08:02 <monqy> > [1..] >>- flip replicateM ['a' .. 'c']
03:08:04 <lambdabot> ["a","aa","b","aaa","c","ab","aaaa","ac","aab","ba","aaaaa","bb","aac","bc"...
03:08:16 <elliott> there has to be an equivalent >:(
03:08:26 <lambdabot> replicateM n x = sequence (replicate n x)
03:08:48 <oerjan> elliott: what is it you _want_ :P
03:09:56 <lambdabot> sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs)
03:09:56 <lambdabot> -- OR: sequence = foldr (liftM2 (:)) (return [])
03:10:23 <elliott> <oerjan> elliott: what is it you _want_ :P
03:10:28 <elliott> what CakeProphet did, but shorter and prettier
03:10:28 <monqy> oh right I was thinking of sequence
03:10:46 <lambdabot> Couldn't match expected type `m a'
03:10:46 <lambdabot> against inferred type `GHC.Types...
03:10:53 <CakeProphet> yeah because that code is so ugly, with its flip and stuff.
03:11:00 <elliott> CakeProphet: yes it is. you're a terrible person.
03:11:08 <lambdabot> Couldn't match expected type `a -> m b'
03:11:09 <oerjan> > (`replicateM`['a'..'c'])=<<[1..]
03:11:10 <lambdabot> ["a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","aac"...
03:11:13 <lambdabot> forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c
03:11:16 <elliott> oerjan: NO NOT LIKE THAT DAMMIT
03:11:36 <CakeProphet> oerjan: elliott doesn't like bind and replicateM apparently. These are out of the question.
03:11:41 <CakeProphet> he needs two functions with different names.
03:12:09 <monqy> wait I think that's exactly what I wanted
03:12:09 <elliott> CakeProphet: IT NEED SOMETHING SHORTER AND MORE ELEGANTK[PDFGOFIJGOPRGJRIOTJGORG
03:12:20 <elliott> YESS NOT IN SCOPE ERRORS ARE THE BEST
03:12:22 <CakeProphet> it's already pretty elegant... so, good luck.
03:12:32 <monqy> what I was trying to spell
03:12:35 <elliott> CakeProphet: no its ugly and youre terrible
03:12:38 <monqy> (i didn';t misspell duplicate)
03:13:17 <lambdabot> src <id>. Display the implementation of a standard function
03:13:20 <elliott> isnt duplicate the comonad thing
03:13:27 <lambdabot> sequence (x:xs) = do v <- x; vs <- sequence xs; return (v:vs)
03:13:28 <lambdabot> -- OR: sequence = foldr (liftM2 (:)) (return [])
03:13:32 <elliott> > Control.Comonad.duplicate
03:13:33 <lambdabot> Not in scope: `Control.Comonad.duplicate'
03:13:47 <monqy> Data.Functor.Extend.duplicate
03:13:48 <elliott> monqy: the [] implementation is tails
03:14:09 <elliott> > map permutations . reverse (tails "abcd")
03:14:10 <lambdabot> Couldn't match expected type `[a]'
03:14:10 <lambdabot> against inferred type `GHC.Types...
03:14:16 <elliott> > let f = map permutations . reverse . tails in f "abcd"
03:14:17 <lambdabot> [[""],["d"],["cd","dc"],["bcd","cbd","dcb","cdb","dbc","bdc"],["abcd","bacd...
03:14:30 <elliott> > let f = concat . map permutations . tail . reverse . tails in f "abcd"
03:14:31 <lambdabot> ["d","cd","dc","bcd","cbd","dcb","cdb","dbc","bdc","abcd","bacd","cbad","bc...
03:14:40 <CakeProphet> wow I think you're on the right track. This is becoming so elegant.
03:14:42 <elliott> > let f = concat . map permutations . tail . reverse . inits in f "abcd"
03:14:44 <lambdabot> ["abc","bac","cba","bca","cab","acb","ab","ba","a",""]
03:14:48 <elliott> > let f = concat . map permutations . tail . inits in f "abcd"
03:14:50 <lambdabot> ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc...
03:15:04 <elliott> > let f = concatMap permutations . tail . inits in f "abcd"
03:15:06 <oerjan> > [1..]>>=\n->sequence$[1..n]>>['a'..'c']
03:15:06 <lambdabot> ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc...
03:15:06 <lambdabot> <no location info>: parse error on input `->'
03:15:14 <elliott> > let f = tail . inits >=> permutations in f "abcd"
03:15:15 <lambdabot> ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc...
03:15:21 <oerjan> > [1..]>>= \n->sequence$[1..n]>>['a'..'c']
03:15:22 <lambdabot> Couldn't match expected type `m a'
03:15:22 <lambdabot> against inferred type `GHC.Types...
03:15:23 <lambdabot> inits (x:xs) = [[]] ++ map (x:) (inits xs)
03:15:31 <elliott> > (tail . inits >=> permutations) "abcd"
03:15:32 <lambdabot> ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc...
03:15:32 <elliott> CakeProphet: looks good to me
03:15:35 <monqy> > iterate (take 1) ['a' ..] >>= permutations
03:15:36 <lambdabot> ["abcdefghijklmnopqrstuvwxyz{|}~\DEL\128\129\130\131\132\133\134\135\136\13...
03:15:49 <monqy> > iterate (take 1) ['a' .. 'z'] >>= permutations
03:15:50 <lambdabot> ["abcdefghijklmnopqrstuvwxyz","bacdefghijklmnopqrstuvwxyz","cbadefghijklmno...
03:15:53 <elliott> CakeProphet: In fact, omitting the empty string is really arbitrary
03:15:54 <elliott> > (inits >=> permutations) "abcd"
03:15:55 <lambdabot> ["","a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad",...
03:16:21 <CakeProphet> elliott: no the empty string is there, you just have to get to the end of the list.
03:16:28 <elliott> CakeProphet: how inelegant.
03:16:29 <elliott> > (inits >=> permutations) "01"
03:16:43 <lambdabot> forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c
03:16:46 <elliott> > [1..] >>= flip replicateM "01"
03:16:48 <lambdabot> ["0","1","00","01","10","11","000","001","010","011","100","101","110","111...
03:16:49 <monqy> >=> is like composition but for cool dudes
03:17:11 <lambdabot> ["","a","ab","abc","abcd","abcda","abcdab","abcdabc","abcdabcd","abcdabcda"...
03:17:18 <elliott> > (inits . cycle >=> permutations) "01"
03:17:19 <lambdabot> ["","0","01","10","010","100","010","100","001","001","0101","1001","0101",...
03:18:09 <CakeProphet> I would say that is equally elegant to using replicateM and bind...
03:18:37 <oerjan> elliott: i have a hunch you are never actually producing the string "b"
03:18:50 <lambdabot> ["","0","01","010","0101","01010","010101","0101010","01010101","010101010"...
03:18:59 <lambdabot> "01010101010101010101010101010101010101010101010101010101010101010101010101...
03:19:05 <elliott> > (map cycle . inits) "01"
03:19:07 <lambdabot> ["*Exception: Prelude.cycle: empty list
03:19:11 <elliott> > (map cycle . tail . inits) "01"
03:19:13 <lambdabot> ["0000000000000000000000000000000000000000000000000000000000000000000000000...
03:19:29 <lambdabot> ["","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r"...
03:20:31 <elliott> im going to rip your soul from its seams
03:20:44 <elliott> concatMap (`replicateM` ['a'..'z']) [0..]
03:20:53 <elliott> concatMap (\n -> replicateM n ['a'..'z']) [0..]
03:20:55 <lambdabot> replicateM n x = sequence (replicate n x)
03:21:04 <elliott> concatMap (\n -> sequence (replicate n ['a'..'z'])) [0..]
03:21:16 <elliott> > concatMap (\n -> sequence (replicate n ['a'..'z'])) [0..]
03:21:17 <lambdabot> ["","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r"...
03:21:26 <elliott> > (concat . concat . map (\n -> replicate n ['a'..'z'])) [0..]
03:21:28 <lambdabot> "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuv...
03:21:40 <lambdabot> ["ad","ae","af","bd","be","bf","cd","ce","cf"]
03:21:49 <lambdabot> Overlapping instances for GHC.Show.Show
03:22:00 <elliott> > foldr zip fuck this shit ["abc","def"]
03:22:01 <lambdabot> Not in scope: `fuck'Not in scope: `this'Not in scope: `shit'
03:22:14 <oerjan> > transpose ["abc","def"]
03:22:17 <CakeProphet> eyah working backwards is probably not the best way.
03:23:48 <CakeProphet> > return . length . (`replicateM` "abc") =<< [0..]
03:24:03 <CakeProphet> > (return . length . (`replicateM` "abc")) =<< [0..]
03:24:25 <CakeProphet> > (return . length . (`replicateM` "abc")) =<< [0..5]
03:25:28 <CakeProphet> > (length . (`replicateM` "abc")) <$> [0..]
03:27:50 -!- augur has quit (Read error: Connection reset by peer).
03:28:09 -!- augur has joined.
03:29:32 <CakeProphet> I'm thinking it should be possible to use combinators to define rhythmic patterns with multiple instruments.
03:31:33 <monqy> > ['a'..] >>= permutations . enumFromTo 'a'
03:31:35 <lambdabot> ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc...
03:32:08 <monqy> agh that only gets the permutations not combinations :(
03:32:44 <CakeProphet> yeah, to get the combinations you'll probably have to use some other function
03:33:51 <CakeProphet> also it's not exactly the same because it adds a character on each length change
03:33:58 <CakeProphet> this is probably intentional or something?
03:35:13 <CakeProphet> > dropWhile ((<30).length) $ ['a' ..] >>= permutations . enumFromTo 'a'
03:35:26 <CakeProphet> > dropWhile ((<26).length) $ ['a' ..] >>= permutations . enumFromTo 'a'
03:35:56 <elliott> monqy: the ante-zepto reader is kind of ugly :(
03:36:00 <CakeProphet> damn you O(n) length calculation for linked lists.
03:36:10 <elliott> CakeProphet: length fails on infinite lists, if that matters
03:36:22 <elliott> > dropWhile ((<26).length) $ (['a' ..] >>= permutations . enumFromTo 'a')
03:36:52 <lambdabot> forall a. (a -> Bool) -> [a] -> [a]
03:37:41 <CakeProphet> yeah it's just taking too long because of the thousands of length computations.
03:38:11 <CakeProphet> well, maybe hundreds since it's permutations? I don't feel like doing the math... :P
03:38:46 <oerjan> > (['a' ..] >>= permutations . enumFromTo 'a')
03:38:48 <lambdabot> ["a","ab","ba","abc","bac","cba","bca","cab","acb","abcd","bacd","cbad","bc...
03:39:48 <oerjan> > map(length &&& head) . group . map length $ (['a' ..] >>= permutations . enumFromTo 'a')
03:40:00 <oerjan> > take 5 $ map(length &&& head) . group . map length $ (['a' ..] >>= permutations . enumFromTo 'a')
03:40:02 <lambdabot> [(1,1),(2,2),(6,3),(24,4),(120,5)]
03:40:18 <oerjan> CakeProphet: grows like factorial
03:41:11 <lambdabot> Occurs check: cannot construct the infinite type: a = b -> a
03:41:12 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:41:21 <lambdabot> [1,3,9,27,81,243,729,2187,6561,19683,59049,177147,531441,1594323,4782969,14...
03:41:47 <oerjan> CakeProphet: that's why the first one timed out :P
03:42:11 <CakeProphet> I wanted to see further into the list, when it started using non-alphabetic characters.
03:42:34 <CakeProphet> ...for no particular reason at all. you could easily just change the starting point of the alphabet, but that's not as fun.
03:42:39 <oerjan> in fact i vaguely recall lambdabot calculates even more before actually cutting it off. or used to.
03:43:18 <oerjan> > iterate (\x -> if x > 80 then let y = y in y else x+1) 1
03:43:35 <oerjan> > iterate (\x -> if x > 200 then let y = y in y else x+1) 1
03:43:44 <oerjan> > iterate (\x -> if x > 500 then let y = y in y else x+1) 1
03:43:45 <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...
03:43:53 <oerjan> > iterate (\x -> if x > 300 then let y = y in y else x+1) 1
03:43: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...
03:44:00 <oerjan> > iterate (\x -> if x > 250 then let y = y in y else x+1) 1
03:44:09 <oerjan> > iterate (\x -> if x > 275 then let y = y in y else x+1) 1
03:44:22 <oerjan> > iterate (\x -> if x > 225 then let y = y in y else x+1) 1
03:44:33 <oerjan> > iterate (\x -> if x > 215 then let y = y in y else x+1) 1
03:44:45 <oerjan> CakeProphet: um that let is an infinite loop
03:44:58 <oerjan> > iterate (\x -> if x > 2108 then let y = y in y else x+1) 1
03:44:59 <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...
03:45:03 <oerjan> > iterate (\x -> if x > 208 then let y = y in y else x+1) 1
03:45:14 <CakeProphet> too much Perl. :P let y = y in y looked like a nop.
03:45:31 <oerjan> er wait what, i'm binary searching in the wrong direction
03:45:47 <oerjan> > iterate (\x -> if x > 288 then let y = y in y else x+1) 1
03:45: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...
03:45:53 <oerjan> > iterate (\x -> if x > 280 then let y = y in y else x+1) 1
03:46:01 <oerjan> > iterate (\x -> if x > 284 then let y = y in y else x+1) 1
03:46:02 <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...
03:46:06 <oerjan> > iterate (\x -> if x > 282 then let y = y in y else x+1) 1
03:46:07 <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...
03:46:13 <oerjan> > iterate (\x -> if x > 281 then let y = y in y else x+1) 1
03:46:28 <oerjan> > length $ show [1..281]
03:46:33 <oerjan> > length $ show [1..280]
03:46:42 <CakeProphet> @pl iterate (\x -> if x > 281 then let y = y in y else x+1) 1
03:46:42 <lambdabot> iterate (ap (flip if' (fix id) . (> 281)) (1 +)) 1
03:47:16 <oerjan> CakeProphet: so it calculates a bit more than the first 1000 characters, even if the resulting string will be cut off afterwards
03:47:46 <oerjan> > length $ show [1..282]
03:48:13 <elliott> the value of let y = y in y is <<loop>>
03:48:19 <elliott> (ghc pun, the best kind of pun)
03:48:29 <oerjan> well lambdabot doesn't use blackholing
03:50:55 <oerjan> > drop 1000 . take 1013 . show . iterate (*3) $ 1
03:51:13 <oerjan> > drop 960 . take 1013 . show . iterate (*3) $ 1
03:51:14 <lambdabot> "3201,127173474825648610542883299603,38152042447694583"
03:53:13 <oerjan> CakeProphet: so that's about how far it was trying to calculate your (length . (`replicateM` "abc")) <$> [0..] thing :P
03:56:59 <monqy> > (sequence . (flip replicate <*> length) <=< inits) ['a' ..]
03:57:00 <lambdabot> ["","a","aa","ab","ba","bb","aaa","aab","aac","aba","abb","abc","aca","acb"...
03:59:15 <CakeProphet> > nub . (>>= subsequences) . permutations $ "abc"
03:59:17 <lambdabot> ["","a","b","ab","c","ac","bc","abc","ba","bac","cb","ca","cba","bca","cab"...
03:59:25 <oerjan> monqy: i see no "b" there
03:59:36 <CakeProphet> oerjan: the character set grows with length.
04:00:52 <monqy> > nub . (>>- subsequences) . permutations $ "abc"
04:00:53 <lambdabot> ["","a","b","ab","c","ac","bc","ba","abc","cb","bac","ca","cba","bca","cab"...
04:01:23 <oerjan> it's from Control.Monad.Logic
04:01:46 <Lymee> > permutations $ [1..]
04:01:46 <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...
04:01:47 <monqy> fair (>>=) for doing nondeterminism stuff, but really you want to use Logic or LogicT not []
04:01:48 <oerjan> it's like >>= but interleaves the results from different values in the first part
04:02:15 <Lymee> > map (take 5) $ permutations $ [1..]
04:02:16 <lambdabot> [[1,2,3,4,5],[2,1,3,4,5],[3,2,1,4,5],[2,3,1,4,5],[3,1,2,4,5],[1,3,2,4,5],[4...
04:02:25 <CakeProphet> > nub . (>>= subsequences) . permutations $ ['a'..'z']
04:02:27 <lambdabot> ["","a","b","ab","c","ac","bc","abc","d","ad","bd","abd","cd","acd","bcd","...
04:02:29 <oerjan> > [1..] >>- flip replicateM [1..]
04:02:31 <lambdabot> [[1],[1,1],[2],[1,1,1],[3],[1,2],[4],[1,1,1,1],[5],[1,3],[6],[1,1,2],[7],[1...
04:03:00 <CakeProphet> that's... strange. I don't really get the ordering.
04:03:01 <oerjan> CakeProphet: look at that example. if i used >>= it would never get beyond the length 1 lists
04:03:30 <monqy> "hello" >>- repeat
04:03:34 <monqy> > "hello" >>- repeat
04:03:35 <lambdabot> "hehlhehlhehlhehohehlhehlhehlhehohehlhehlhehlhehohehlhehlhehlhehohehlhehlhe...
04:03:37 <monqy> > "hello" >>= repeat
04:03:37 <lambdabot> "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh...
04:03:39 <CakeProphet> so that would be useful for things like getting the set of all strings matched by a regular expression.
04:03:40 -!- pikhq has joined.
04:03:47 -!- pikhq_ has quit (Ping timeout: 252 seconds).
04:03:54 <oerjan> CakeProphet: it is rather simplistic. the first value is used every second time, the second value every fourth time, etc.
04:04:05 <oerjan> CakeProphet: yeah probably
04:04:33 <monqy> I should try using/understanding the actual Logic/LogicT sometime
04:05:04 <monqy> (I have the paper but it's on my reading pile)
04:06:02 <oerjan> > return "a" <|> return "b" :: Logic String
04:06:22 <oerjan> :t return "a" <|> return "b" :: Logic String
04:06:38 <lambdabot> forall a r. Logic a -> (a -> r -> r) -> r -> r
04:06:45 <CakeProphet> yes I'll have to read about Logic as well.
04:07:54 <CakeProphet> elliott: I win at finding an alternative to my own already very elegant code. OH YEAAAH.
04:08:07 <oerjan> > (return "a" <|> return "b" :: Logic String) ((.).(:)) ""
04:08:08 <lambdabot> Couldn't match expected type `t1 -> t2 -> t'
04:08:13 <oerjan> > runLogic (return "a" <|> return "b" :: Logic String) ((.).(:)) ""
04:08:14 <lambdabot> Couldn't match expected type `[GHC.Base.String]'
04:08:16 <CakeProphet> but it implements a degree of common sense that the other lacks.
04:08:23 <oerjan> > runLogic (return "a" <|> return "b" :: Logic String) ((:)) ""
04:08:24 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
04:08:41 <oerjan> > runLogic (return "a" <|> return "b" :: Logic String) ((:)) []
04:09:27 <oerjan> CakeProphet: on the plus side, it was obvious from the type of runLogic :P
04:10:21 <CakeProphet> looks like <|> constructs a fold over the function supplied by runLogic
04:10:37 <monqy> > runLogic (return "a" `interleave` return "b" `interleave` return "c" :: Logic String) ((:)) []
04:10:54 <monqy> (<|>) is from Alternative
04:10:58 <lambdabot> forall (f :: * -> *) a. (Alternative f) => f a -> f a -> f a
04:13:01 <oerjan> CakeProphet: um <|> is backtracking choice, i guess. and then instead of concatenating the choices directly, the r -> r trick gives you an optimization similar to using ShowS instead of (++). i guess.
04:15:38 <oerjan> > foldl' interleave "" $ map return "scramble"
04:15:53 <oerjan> > foldr interleave "" $ map return "scramble"
04:16:53 <oerjan> Lymee: no IO in lambdabot
04:16:56 <Lymee> > execute-your-damn-io
04:16:57 <lambdabot> Not in scope: `execute'Not in scope: `your'Not in scope: `damn'Not in scope...
04:17:19 <Lymee> Guess sandboxing is /really/ easy in Haskell.
04:18:06 <oerjan> Lymee: that's the idea. although they are also excluding some type extensions which can be used for loopholes, iirc
04:19:02 <Lymee> How low level of stuff you can you do with pure Haskell?
04:19:06 <oerjan> anything which can be used to implement unsafeCoerce, i assume
04:21:04 <Lymee> How hard would it be to implement a kernel if you added a few low level CPU-specific assembly routines as IO actions?
04:21:12 -!- derrik has joined.
04:22:08 <elliott> you need garbage collected memory management, at least
04:22:19 <elliott> it's very hard to write haskell code that doesn't cons :D
04:22:35 <elliott> Lymee: basically you need an RTS.
04:22:48 <elliott> GHC's depends on libc, but not _that_ much of it
04:23:06 <Lymee> So you'd need to implement some low level functions that Haskell depends on.
04:23:27 <elliott> as I said: you need an RTS.
04:23:31 <elliott> that is more than just a few functions.
04:23:56 <elliott> GHC's is 50,000 lines, a quick google tells me
04:24:10 <elliott> although you hardly need the byte-code interpreter, or profiling
04:24:22 <elliott> and the memory manager is likely to be rather suboptimal for an OS...
04:24:42 <Lymee> Maybe a Haskell userspace might be a less horrible idea.
04:24:49 <elliott> there are multiple Haskell kernels.
04:24:59 <elliott> it's just not as easy as you seem to want :)
04:25:02 -!- azaq23 has joined.
04:25:49 <elliott> hOp, House, that updated fork of House that I forget the name of, and that other project I forget the name of
04:34:38 <oerjan> haskell kernels do horrible things to your memory. also, amortization.
04:36:41 <elliott> oerjan: is this a pun or an opinion :D
04:37:17 <oerjan> also i just thought i'd write down that word while i remembered it.
04:41:23 <lambdabot> Text.Html base :: String -> HtmlAttr
04:41:23 <lambdabot> Text.XHtml.Frameset base :: String -> HtmlAttr
04:41:26 <lambdabot> forall a. (Integral a) => a -> (Int -> Char) -> a -> String -> String
04:42:00 <elliott> hmm what's the third argument
04:42:23 <oerjan> > showIntAtBase 2 intToDigit 255 ""
04:44:07 -!- augur has quit (Read error: Connection reset by peer).
04:44:18 -!- augur has joined.
04:44:31 -!- IanWizard has joined.
04:45:00 <zzo38> I made a program in TeX for overlaying every page of output with a grid. I also made a program in TeX for overlaying specific pages with pictures from plain PBM files.
04:45:15 <IanWizard> The #brainfuck topic said to come here.
04:47:50 <elliott> oerjan: i feel our current topic may give some UNWARRANTED FIRST IMPRESSIONS to newbies :D
04:48:32 <oerjan> you misspelled ENTIRELY ACCURATE
04:48:53 <IanWizard> I've been googling, but can't find anything... I've never used BF before, would it be possible to read from a file and do math based on what's in the file, with BF?
04:49:11 <IanWizard> basically, does it support reading in a file in any way?
04:49:19 <oerjan> IanWizard: only standard input
04:49:25 <pikhq> IanWizard: No, it only supports (in UNIX terms) stdin and stdout.
04:49:38 <oerjan> which may come from a file though
04:49:49 <zzo38> You could redirect stdin from a file
04:50:14 <elliott> IanWizard: CLEARLY YOU NEED PSOX
04:50:29 <oerjan> elliott: hey i was pondering whether to mention PSOX
04:50:42 <fizzie> I was *trying* to mention PSOX, but had forgotten the name.
04:51:12 * Sgeo still has PSOX on ping, apparently
04:51:17 <elliott> psox psox psox psox psox psox psox psox psox psox psox
04:51:50 <oerjan> IanWizard: PSOX is a wrapping layer which can be used to give BF (and possibly other esolangs) extra capabilities
04:52:01 <zzo38> What does "PSOX on ping" mean?
04:52:20 <Sgeo> zzo38, I have my client set up to hilight if it sees PSOX just the same as if it saw my nick
04:52:20 <oerjan> zzo38: that his client pings him when it's mentioned
04:52:49 <elliott> oerjan: it's also very dead
04:52:56 <elliott> i don't think we need to _recommend_ it to anyone ;D
04:53:21 <Sgeo> It's only dead because people other than me had 0 interest, so I lost interest
04:57:04 -!- CakeProphet has quit (Ping timeout: 264 seconds).
04:58:38 -!- augur has quit (Read error: Connection reset by peer).
04:58:47 -!- augur has joined.
05:01:42 -!- augur has quit (Read error: Connection reset by peer).
05:01:59 -!- augur has joined.
05:03:27 <zzo38> Now you can include picture in your document while still remaining device independent, not using any specials or nonstandard fonts or anything like that. The quality is not perfect but it should be good enough for some purposes. However, you have to decide the placement manually.
05:04:51 -!- augur has quit (Read error: Connection reset by peer).
05:05:12 -!- augur has joined.
05:06:00 <zzo38> One command might be useful in TeX, is the command \hidecs takes a control sequence of two or more letters and damages its entry in the hash table.
05:11:13 -!- augur has quit (Read error: Connection reset by peer).
05:11:25 -!- augur has joined.
05:13:53 -!- IanWizard has quit (Quit: Leaving).
05:19:10 <oerjan> @hoogle Alternative a => [a x] -> a [x]
05:19:11 <lambdabot> Control.Applicative many :: Alternative f => f a -> f [a]
05:19:11 <lambdabot> Control.Applicative some :: Alternative f => f a -> f [a]
05:19:11 <lambdabot> Prelude sequence :: Monad m => [m a] -> m [a]
05:19:54 <oerjan> > many . map pure $ "abc" :: String
05:19:55 <lambdabot> Couldn't match expected type `GHC.Types.Char'
05:20:02 <oerjan> :t many . map pure $ "abc"
05:20:03 <lambdabot> forall (f :: * -> *). (Applicative f) => [[f Char]]
05:20:38 <oerjan> @hoogle Alternative a => [a x] -> a x
05:20:39 <lambdabot> Data.Foldable asum :: (Foldable t, Alternative f) => t (f a) -> f a
05:20:39 <lambdabot> Control.Monad msum :: MonadPlus m => [m a] -> m a
05:20:39 <lambdabot> Control.Applicative (<|>) :: Alternative f => f a -> f a -> f a
05:23:05 <coppro> I do not get haskell's existential qualifiers
05:23:40 <coppro> Like, I understand how they are used
05:24:02 <elliott> what don't you understand?
05:24:08 -!- zzo38 has left.
05:24:12 <elliott> it may help to know that typeclasses can't always be resolved statically
05:24:15 <elliott> and there's typeclass dictionaries for this purpose
05:24:22 <elliott> (a lot of people think all typeclass resolution is done at compile-time, which is just not true)
05:24:42 <elliott> so e.g. data Foo = Foo (forall a. (Num a) => a) will store the Num dictionary in there
05:24:45 <elliott> or I forget the syntax, but yeah
05:25:37 <coppro> but I do not understand you get from the universal qualifier to using it for existential purposes
05:26:15 <coppro> like, (forall a. Num a => a) is something that is all Nums
05:26:36 <oerjan> data Foo = forall a. Num a => Foo a
05:27:20 <coppro> oerjan: So is Foo a mean that "a" is a Num or that "a" is all Nums?
05:27:26 <elliott> <coppro> like, (forall a. Num a => a) is something that is all Nums
05:27:37 <elliott> that's not a good type to use
05:27:53 <elliott> coppro: it means that a is a Num
05:27:58 <elliott> but note that the type of (Foo x) is Foo
05:28:00 <oerjan> coppro: it means that for all a s.t. Num a, Foo a is a value of type Foo a
05:28:26 -!- derrik has quit (Quit: left).
05:28:35 <elliott> elliott@katia:~$ cat >foo.hs
05:28:35 <elliott> data Foo = forall a. Num a => Foo a
05:28:35 <elliott> elliott@katia:~$ ghci -XExistentialQuantification foo.hs
05:29:26 <oerjan> coppro: it is essentially defining an existential _type_ by writing down the _universal_ type of its constructor
05:30:21 <elliott> oerjan: what, that is the last thing i'd expected to have worked as an explanation...
05:30:27 <elliott> clearly i misunderstood the nature of coppro's misunderstanding :D
05:30:34 <oerjan> coppro: although that is much clearer with the GADT syntax
05:30:42 <elliott> Foo :: (Num a) => a -> Foo
05:30:48 <elliott> implicit "forall a." after that :: ofc
05:30:54 <elliott> that's why i showed the constructor type
05:32:57 <coppro> yeah I really like GADT
05:43:42 -!- oklopol has joined.
05:43:56 <oerjan> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
05:44:09 * oerjan prepares the gremling catcher
05:44:10 <elliott> finally a straight non-nerd in the channel!!!!!!!!!!
05:44:18 <elliott> OUR LONG TEMPORARY NATIONAL OERJAN-INDUCED NIGHTMARE IS OVER
05:44:58 <oklopol> elliott: would you have been available this week out of q
05:45:35 <elliott> oh is that good, im gonna go drop everything then and get on a plane somewhere to do something totally non-required
05:45:58 <elliott> thats the ESO channel stupid
05:46:18 <oerjan> european space organization
05:46:23 <oklopol> it's also the nickname of #esoteric
05:47:05 <monqy> my nickname for #esoteric is esoteric
05:47:21 <oklopol> well your nickname is wrong then
05:47:22 <elliott> that couldn't possibly cause any confusion whatsoever
05:47:25 <oerjan> monqy: oh? what is it?
05:47:48 <oerjan> yes, you said that, but what _is_ it
05:50:10 <oklopol> i still don't really get "<elliott> oh is that good, im gonna go drop everything then and get on a plane somewhere to do something totally non-required"
05:50:20 <elliott> oklopol> elliott: would you have been available this week out of q
05:50:24 <elliott> wanted to do something really availableish
05:50:32 <elliott> "look at me all doing these things because they sound like fun"
05:50:38 <elliott> "coulda been all with oklopol but i hate him haha"
05:51:13 <oklopol> yeah well it's not like i actually wanted to meet you you piece of nigger
05:52:41 <oklopol> they wouldn't let a black guy in my room in paris because he was black
05:53:10 <oerjan> why have neither xkcd nor girl genius updated yet :(
05:53:34 <elliott> oerjan outs himself as an xkcd reader
05:53:43 <elliott> no oerjan............ no stop..................
05:53:46 <oerjan> it's not precisely a secret
05:53:59 <elliott> (should be deprived of)oxy(gen )moron
05:53:59 <monqy> girlzngames hasnt updated for a month :(
05:54:20 <oerjan> oklopol: ARE YOU INSULTING THE GREAT AGATHA HETERODYNE?
05:54:48 <elliott> monqy: is that bad, i looked at it but im too tired to really interpret
05:55:06 * elliott checks. unfortunately, ctrl-alt-del updated today.
05:55:09 <monqy> i will find a good one
05:55:12 <oklopol> oerjan: no i was being sexist because i had a good bigot spree going on
05:55:36 <elliott> monqy: its on the bad webcomics wiki along with every other webcomic in existence
05:55:40 <monqy> http://www.girlzngames.com/comics/2010-12-22-Christmas-Gamer-Greetings.jpg classic
05:56:30 <monqy> http://www.girlzngames.com/comics/2011-01-05-Feel-the-Love.jpg
05:56:42 <elliott> monqy: have you ever read Minimum Security, it's this anarcho-primitivist comic, and it's just so amazing
05:56:47 <elliott> it stars a bunch of animals
05:56:53 <elliott> fuck up nuclear power plants
05:57:17 <elliott> http://stephaniemcmillan.org/
05:57:25 <elliott> oh maybe its the comic category
05:57:39 <elliott> Minimum Security has gone through several phases. From 1998-2004, it was a weekly editorial cartoon, commenting on the most egregious outrages of the day. In 2005, I started using regular characters. The cartoon got picked up by United Media’s comics.com, where it evolved into a more humorous, gag-a-day comic strip with some sequential stories.
05:57:43 <elliott> oh my god shut up just give me a link
05:57:55 <elliott> monqy: but yeah it's lit. the scariest comic
05:58:01 <elliott> Victoria: A guinea pig with a vision, she’s the brains of the Resistance and its Minister of Agit-Prop. She’s all about plan, strategy, tactics, ideology and method. Possessing logic, clarity and a magnificent ego, she fancies herself the furry, potato-shaped mastermind of the revolution.
05:58:10 <elliott> Bananabelle: Kranti’s best friend since preschool, Bananabelle is a lovely, cheerful person with a good heart, but her loyalties are divided. A sustainable economy, or swanky shoes? She’d like both. She’ll help out at a community garden or attend a protest, but she’s not sure about all this revolution business – a little love and being a good example ought to be sufficient.
05:58:16 <elliott> Chip: The cultured son of a major corporate bigwig, he has everything except the one thing he really craves: Kranti’s love. He’d settle for her lukewarm indifference, but he doesn’t even get that. When he calls her on his diamond-studded, solid gold cell phone, she never answers — alas, alas. Bananabelle, however, thinks he’s the hottest thing since this season’s Manolo Blahniks.
05:58:23 <elliott> Bunnista: He’s an action-oriented rabbit, furious about the shrinking wilderness, the vivisection that took his eye, and pretty much everything else as well. Impatient with the fine points of political philosophy, all he wants is to destroy human civilization. His favorite method is blowing up infrastructure.
05:58:33 <elliott> THE VIVISECTION THAT TOOK HIS EYE
05:58:44 <monqy> and pretty much everything else as well
05:58:50 <elliott> monqy: pretty sure that Bunnista is a protagonist btw
05:58:59 <elliott> "Impatient with the fine points of political philosophy, all he wants is to destroy human civilization. His favorite method is blowing up infrastructure." <-- good guy
06:00:13 <monqy> is he actually supposed to be a good guy or does minimum security not have real life morals
06:00:33 <monqy> either way/regardless
06:01:09 <elliott> monqy: anarcho-primitivist remember
06:01:28 -!- azaq23 has quit (Quit: Leaving.).
06:01:51 <monqy> i meant like how fairy tales have moral lessons is minimal security supposed to be how it's good to be angry and blow up infrastructure
06:02:13 * oklopol likes many of the new xkcd's
06:02:19 <elliott> i thnk its just about how all civilisation is bad and anybody who doesnt want to blow it up is bad
06:02:36 <elliott> told through really disturbing ~jokes~ with anthropomorphic animals doing terrible (= good) things
06:03:29 <oklopol> who cares about moral lessons when there's explosions and violence involved
06:03:56 <oklopol> philosophy crap < explosions and violence < sex
06:07:53 <elliott> http://en.wikipedia.org/wiki/File:Minimumsecurity.jpg oh wow
06:13:26 <oklopol> i think i won't do anything today or tomorrow or the day after that or the day after that or the day after that
06:15:27 -!- augur has quit (Read error: Connection reset by peer).
06:15:38 -!- augur has joined.
06:15:46 <oklopol> for instance i learned that if i want to get a hot barely legal girlfriend all i have to do is to stop working, use drugs for the next 10 years and get some brain damage
06:16:44 <oklopol> seemed to have worked for this one dude at least, he had a rather disfigured face as well
06:17:28 <oerjan> ?unmtl RWST a b (RWST b a (RWST a b ST)) a
06:17:28 <lambdabot> err: `RWST a b (RWST b a (RWST a b ST)) a' is not applied to enough arguments.
06:17:35 <elliott> oerjan: where's IO's Monad instance :(
06:17:53 <lambdabot> Source not found. I feel much better now.
06:18:09 <lambdabot> Source not found. I've seen penguins that can type better than that.
06:18:24 <oklopol> penguins don't have fingers
06:18:54 <pikhq> Penguins *do* have phalanges, however.
06:19:46 <oerjan> elliott: http://www.haskell.org/ghc/docs/latest/html/libraries/base-4.3.1.0/src/GHC-Base.html#Monad
06:20:23 <pikhq> oklopol: Non-vertebrates.
06:20:40 <pikhq> And a very small handful of vertebrates.
06:21:38 <oklopol> if i say non-vertebrates don't count, am i being phylist or what?
06:21:58 <monqy> the instance defines (>>) in terms of (>>=), and exactly the same of as the default instance, but there's thenIO, which looks like it does the (>>) stuff
06:22:05 <pikhq> oklopol: There's much more non-vertebrates than vertebrates, even if we only consider the animal clade.
06:22:09 <oklopol> oh vertebrates is a subphylum
06:22:42 <oklopol> pikhq: there's also more primes than non-vertebrates, but you can't really have a conversation with most of them
06:23:08 <oklopol> at least not a very *product*ive one
06:23:18 <pikhq> Also, fuck Linnaean taxonomy.
06:23:49 <oklopol> that's a very taxonomist thing to say
06:23:58 <pikhq> Clades are the only form of super-species grouping that make any sense at all.
06:24:04 <oklopol> all taxonomists are created equal you know
06:26:43 * pikhq dislikes classification that is devoid of meaning
06:26:47 <lambdabot> err: `RWST a b ST a' is not applied to enough arguments, giving `/\A. a -> ST -> a (A, ST, b)'
06:26:51 * pikhq likes even *less* classification with negative meaning.
06:27:29 <lambdabot> err: `RWST a b m a' is not applied to enough arguments, giving `/\A. a -> m -> a (A, m, b)'
06:27:40 <oklopol> how well does having a tree work for species classification? i mean usually you get the problem that you have to choose the order of branchings, say when you want to separate blue animals from red and animals with big dicks from ones with small dicks; does the fact that you will often be kind of following when the species actually temporally branched solve this
06:28:30 <pikhq> oklopol: Tolerably, but you do get very confusing edge cases.
06:28:30 <elliott> oerjan: hm implementing IOT is hard
06:28:35 <elliott> (things to say to scare oerjan)
06:28:39 <pikhq> Ring species despise you. ;)
06:28:54 <oerjan> ?unmtl RWST a b c (RWST b c a (RWST c a b ST)) a
06:28:54 <lambdabot> a -> c -> b -> a -> c -> b -> ST (a, c, b, a, c, b, a)
06:29:28 <pikhq> Though, that problem is pretty inherent in any model which assumes that there are strict boundaries delimiting "species".
06:29:36 <pikhq> When there really aren't.
06:30:27 <Sgeo> With the common definition of "Can they breed together?", how do you distinuish between different asexual species?
06:30:45 <oklopol> can they breed together is problematic because of aforementioned rings
06:31:26 <oklopol> that it's not a transitive relation
06:31:35 <oerjan> *elliott: STMT. fnord.
06:31:43 <elliott> oerjan: i've written STT, mind you
06:31:50 <elliott> oh maybe i should just reuse it?
06:31:56 <pikhq> Sgeo: The mere notion of what a "species" *is* is one of the big questions in biology, TBH.
06:31:59 <elliott> wait, it only actually handles STRefs
06:32:07 <elliott> newtype STT s m a = STT (STTState s -> m (a, STTState s))
06:32:31 <oerjan> elliott: ghc _does_ make IO almost equivalent to ST RealWorld...
06:32:48 <oerjan> (only a couple newtype wrappings away)
06:33:15 <elliott> oerjan: yeah, but mine is a pure-apart-from-unsafeCoerce-for-heterogeneous-maps STRef-only ST
06:33:17 <pikhq> Sgeo: But, generally, one simply picks a definition that makes sense in the context you're dealing in.
06:33:22 <elliott> so it's not really applicable here
06:34:11 <pikhq> Sgeo: With asexual species, one would most generally resort to "things with a preponderance of similar traits." or some such.
06:35:18 <oklopol> we could have aRb if creature a can breed with creature b, then define species as equivalence classes of S, another equivalence relation such that aSb iff aRb and (for all c, aRc iff bRc).
06:35:19 <pikhq> With relatively clear boundaries for reproduction, one uses the "Can they breed together?" bit...
06:35:32 <oklopol> then asexual thingies would of course be species themselves
06:35:56 <pikhq> With ring species, well, *wince*
06:36:07 <oklopol> pikhq: well mine takes that into account
06:36:24 <oklopol> but of course if there's a very continuous ring, then you will get everyone in a different species
06:36:39 <pikhq> oklopol: Fortunately, that's not what happens.
06:36:47 * oerjan wonders if there are sphere species
06:37:02 <pikhq> Instead, you get individual groups which can interbreed with the neighboring groups.
06:37:14 <oerjan> they'd have to live both in the arctic, antarctic and the tropics, for one thing...
06:37:21 <oklopol> if you have "species" A, B and C such that aRb and bRc for all x \in X, but never aRc, then my definition makes A, B and C different species
06:37:23 <pikhq> If it weren't for that biologists would give up now. :P
06:37:39 <pikhq> oklopol: That is a neat definition.
06:37:48 <oklopol> pikhq: standard trick in math really
06:38:00 <pikhq> oklopol: Though only works with species that are capable of breeding. :)
06:38:23 <pikhq> Fortunately, dealing with asexual entities is less *confusing*.
06:38:53 <pikhq> Because you get groups with clear, distinct traits rather than a continuum of interbreeding groups.
06:39:07 <pikhq> (though gene transfer hates you)
06:39:16 <quintopia> oklopol: define R better. do you mean "mate and produce viable offspring?"
06:39:38 <oklopol> quintopia: choose your favorite
06:39:50 <pikhq> quintopia: Presumably "mate and produce viable offspring with no external influence".
06:40:08 <quintopia> so coyotes and red wolves are the same species?
06:40:25 <oklopol> i would say produce a creature x which is in the same species as a and b w.r.t. the current population
06:40:30 <pikhq> There's some species which can be *coaxed* into producing offspring, but will generally refuse otherwise.
06:40:59 <oklopol> yeah that should work, it just occasionally further subdivides species
06:41:34 <pikhq> quintopia: How readily do the two interbreed?
06:41:55 <quintopia> pikhq: red wolves are almost gone due to interbreeding in the wild
06:42:14 <pikhq> They are most certainly the same species, then.
06:42:48 <pikhq> Just like the dog and the (gray) wolf are same species.
06:42:58 <pikhq> (and that is utterly uncontroversial)
06:43:02 <oklopol> by what i've understood the usual definition is, i'd say they are the same species, isn't that kind of the point of having races
06:43:35 <oklopol> are they called races............
06:43:51 <quintopia> because "lupus" and "familiaris" are just two ways to spell the same word
06:44:13 <pikhq> quintopia: Actually, the classification for domestic dog is "Canis lupus familiaris".
06:44:49 <oklopol> so... "" and "familiaris" are just two ways to spell the same word?
06:44:49 <elliott> oerjan: IOT m a -> IO (m a) should be safe-ish, right?
06:45:13 <oklopol> wolf is like lupus lupus is it
06:45:24 <pikhq> oklopol: No, C. lupus.
06:45:43 <pikhq> quintopia: Generally, arbitrarily based on what taxonomists feel is "enough" distinction between two given populations.
06:45:48 <oklopol> okay so then my joke was valid
06:46:01 <quintopia> ah i see. it is also known as canis familiaris equally often. thus my confusion
06:46:25 <pikhq> Yeah, that's fairly old taxonomy.
06:46:30 <oklopol> sometimes it's also called dog
06:46:46 <pikhq> oklopol: Insufficiently specific.
06:46:58 <pikhq> There's rather a lot of things called "dog".
06:47:04 <quintopia> oklopol: do you mean golden retriever or dingo?
06:47:09 <quintopia> they are different subspecies after all
06:47:44 <oerjan> oklopol: it's never lupus
06:47:52 <oklopol> i mean the set of creatures that can mate with my dog and produce offspring which are not wolves.
06:48:25 <pikhq> Ah, see, the problem is there's many species *called* "dog", even though they can't interbreed with yours.
06:49:13 <oklopol> what are called dogs without being able to interpreed with mien?
06:49:41 <pikhq> Lycaon pictus, Speothos venaticus, Cuon alpinus, Nyctereutes procyonoides, Atelocynus microtis, and species in genus Cynomys are all commonly called dogs.
06:50:04 <oklopol> please tell me that was from memory
06:50:24 <quintopia> your dog can't breed with a prairie dog
06:50:40 <pikhq> Also, all but Cynomys are in the clade Canidae.
06:51:14 <quintopia> Cynomys is prairie dog, in case you missed that oklopol
06:51:24 * oklopol realizes his definition separates boys and girls into different species, and in fact then everyone is their own species
06:52:07 <oklopol> just give every creature an ip
06:52:36 <pikhq> Huh. The tanuki is an invasive species in Europe. TIL.
06:52:39 <oklopol> quintopia: i most certainly missed that
06:52:41 <quintopia> how many thousands of years of animals can we track with ipv6 addresses
06:53:26 <oklopol> i'm gonna go to the uni for just a LITTLE bit, then back to my holiday ->
06:53:26 <quintopia> keep in mind that the dead ones have to keep their addresses, because they are distinct from the living ones genetically
06:53:42 -!- monqy has quit (Quit: hello).
06:54:04 -!- augur has quit (Read error: Connection reset by peer).
06:54:18 -!- augur has joined.
06:56:14 -!- augur has quit (Read error: Connection reset by peer).
06:56:14 <elliott> ok runIOT is very difficult
06:56:20 <quintopia> I once knew a hunter who went out for big game, and managed to kill a puma, a mountain lion, a cougar, a catamount, and a panther, all with a single bullet.
06:56:30 -!- augur has joined.
06:57:01 <quintopia> (yes i use oxford commas, biotches)
06:57:23 <oklopol> i don't know about genetic differences, but dead guys are at least always their own species: lemma 1: if you fuck a dead guy, he won't get pregnant, proof omitted; thus trivially if a is dead, aRb is false for all b, and thus a and b cannot belong to the same species
06:58:34 <oklopol> you can find the full proof in my thesis
06:58:40 <quintopia> moreover, dead guys will never try to mate with one another
06:59:00 <lambdabot> Data.List permutations :: [a] -> [[a]]
06:59:01 <quintopia> hence the clause about no external influence takes care of them
06:59:14 <oklopol> quintopia: if a dead guy is its own species, but doesn
06:59:27 <oklopol> quintopia: if a dead guy is its own species, but doesn't want to mate itself, does that make it a different subspecies from itself?
06:59:50 <quintopia> it is not an equivalence relation then
06:59:57 <quintopia> so it is not a proper equivalence class
07:00:27 <Sgeo> Huh, a Gmail add caught my eye
07:00:36 <quintopia> however, certain female lizards, reproducing by parthenogenesis, do satisfy the relation reflexively
07:00:41 <oklopol> not reflexive? umm i masturbate all the time!
07:00:45 <Sgeo> "I'm hiding in your inbox - www.*******.com - please don't tell anyone I'm here. Know any good jokes?"
07:01:05 <quintopia> it is an equivalence class that mammals don't satisfy
07:01:10 <oklopol> quintopia: the relation R is not an equivalence relation, no, S is.
07:01:37 <quintopia> but R cannot be applied meaningfully to birds and mammals
07:02:01 <oklopol> oh because everyone is their own species?
07:02:13 <quintopia> at least not as an equivalence relation
07:03:03 <oklopol> but yeah probably buys and girls should be formalized since this will only work for boygirlious creatures anyway
07:03:24 <oklopol> or at least just mateous creatures but all the cool mateates are boygirlious anyway.
07:03:41 <quintopia> especially the ones that do penis jousting
07:03:55 <oklopol> umm, worms are basically dicks
07:04:27 -!- BeedaWeeda has quit (Quit: The internet is full, go away.).
07:04:43 <Sgeo> What's the status of IPv4?
07:05:02 -!- BeedaWeeda has joined.
07:05:03 <quintopia> ask ARIN or something. we don't care anymore
07:05:12 -!- BeedaWeeda has quit (Changing host).
07:05:13 -!- BeedaWeeda has joined.
07:05:48 -!- BeedaWeeda has quit (Client Quit).
07:06:38 -!- BeedaWeeda has joined.
07:06:39 -!- BeedaWeeda has quit (Changing host).
07:06:39 -!- BeedaWeeda has joined.
07:07:48 <lambdabot> forall a (m :: * -> *) b. (MonadCont m) => ((a -> m b) -> m a) -> m a
07:08:02 <lambdabot> Source not found. Do you think like you type?
07:08:03 <lambdabot> class (Monad m) => MonadCont m where
07:08:03 <lambdabot> callCC :: ((a -> m b) -> m a) -> m a
07:09:03 <pikhq> Sgeo: RIPE depletion quite in August 2012.
07:09:10 <pikhq> Sgeo: APNIC depletion a while back.
07:09:53 <pikhq> Sgeo: ARIN depletion anywhere from early 2012 to 2014, depending on who you listen to.
07:10:10 <pikhq> And AFRINIC could probably last until the heat death of the universe.
07:10:15 <Sgeo> Why doesn't the RIPE estimate vary more?
07:10:20 <elliott> oh wait, IO (m a) is really dangerous, it should be m (IO a)
07:10:52 <pikhq> Sgeo: There is variance, but it's just not that controversial that it'll happen sometime mid-2012.
07:11:04 <pikhq> So I just named the estimate that I like most.
07:11:41 <pikhq> The CEO of ARIN is saying depletion will happen by Jan. 2012, but statistical estimates all put it much later.
07:11:58 <pikhq> I wonder if there's somethin he knows that we don't.
07:12:29 <elliott> oh wait, m (IO a) is just as unsafe
07:13:40 -!- cheater_ has joined.
07:16:08 -!- BeedaWeeda has quit (Quit: The internet is full, go away.).
07:17:49 <elliott> runIOT :: (Monad m) => (forall b. m b -> (b,r)) -> IOT m a -> IO (a,r)
07:17:52 <elliott> oerjan: it might even be safe
07:19:29 <elliott> ((RW new_s, a), r) -> (# new_s, (a, r) #)
07:22:25 <cheater_> does anyone know if the original colossal cave adventure has been ported to C/linux ?
07:23:59 <pikhq> cheater_: It should be in your distro's bsdgames packages, as "adventure".
07:24:23 <pikhq> It's a port to C from the original FORTRAN.
07:24:31 <cheater_> it's not even the 1994 "original" one
07:24:52 <elliott> the original fortran sources are available, a conversion should not be difficult.
07:25:15 <cheater_> for example "get all" does not work
07:25:15 <cheater_> but that's just one minor difference out of very very many
07:25:23 <pikhq> You could probably build it directly, actually.
07:25:45 <cheater_> http://jerz.setonhill.edu/if/canon/Adventure.htm
07:26:25 <elliott> that is indeed a blog post.
07:26:37 <pikhq> Ah, it seems to be a port of Don Woods' expansion on the original.
07:26:56 <pikhq> Because Crowther's original had gone missing.
07:27:19 <pikhq> Wasn't at the time.
07:27:36 <cheater_> Crowther, Will. "Adventure." Original FORTRAN source code. 1975-76. http://jerz.setonhill.edu/if/crowther/ (recovered from a backup of Don Woods's student account at Stanford.) Edited to compile under g77 (Matthew Russoto, 2007). Windows Executable (David Kinder, 2007).
07:29:59 <pikhq> The original depends on 36-bit words.
07:41:45 <elliott> god dammit Lymee now i'm wondering how much of the ghc rts depends on libc
07:43:02 <elliott> unfortunately ghc doesn't really have a bit-precise data type mechanism
07:43:09 <elliott> you can use Ptrs and copy structures into them
07:43:19 <elliott> and it means the lower-level stuff will be really painful
08:04:33 -!- augur has quit (Read error: Connection reset by peer).
08:04:40 -!- augur has joined.
08:10:22 <lambdabot> forall c a. (a -> c) -> a -> (a, c)
08:10:28 <lambdabot> forall a b. (RealFrac a, Integral b) => a -> b
08:10:34 <elliott> Deewiant: That's preferable to ap (,)? :P
08:10:52 <Deewiant> It's what I'd've thought of first
08:14:43 <elliott> tracking an n and doing (start + n delta) is preferable to repeatedly adding delta when using floating point, right?
08:15:25 <Deewiant> I guess so, it's two sources of imprecision instead of n
08:19:26 <elliott> *Main> last (seconds 1 id)
08:19:27 <elliott> *Main> last (sampleSecond id 0 44000)
08:24:33 -!- falso___ has changed nick to fALSO.
08:27:54 <pikhq> elliott: Well, probably not *much* of the RTS depends on libc, considering that it runs on Xen.
08:31:01 <Vorpal> how does the RTS allocate memory? malloc? mmap?
08:31:44 <elliott> sample :: SignalC a -> Time -> Float -> Float -> SignalD a
08:31:44 <elliott> sample f start dt ns = sample' 0 f start dt (ns/dt)
08:31:44 <elliott> where sample' !n f start dt nsamp
08:31:44 <elliott> | otherwise = ap (,) f (start + n*dt) : sample' (n+1) f start dt nsamp
08:34:09 <elliott> oh wait not good, that's bad for some reason
08:36:33 <elliott> a list is probably the worst possible choice for a SignalD mind you
08:36:56 <Vorpal> elliott, and how does the gc allocate it
08:37:03 <elliott> Vorpal: how does malloc allocate things
08:37:05 <elliott> how does mmap allocate things
08:37:14 <elliott> garbage collector means "allocator and collector"
08:37:14 <Vorpal> elliott, well, malloc uses sbrk or mmap usually
08:37:28 <Vorpal> elliott, yes but the gc must request the memory from the OS somehow :P
08:37:42 <Vorpal> elliott, or things would segfault
08:37:47 <elliott> http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage
08:38:20 <Vorpal> aha, block allocation layer
08:38:21 <pikhq> Vorpal: A GC generally implements its own allocator.
08:38:27 <pikhq> Vorpal: So, it allocates via malloc and mmap.
08:38:37 <elliott> Vorpal: its obviously not as simple as regular allocation
08:38:41 <elliott> Vorpal: because everything is in a thunk
08:39:00 <fizzie> "At the bottom, talking to the OS, is the megablock allocator (rts/sm/MBlock.c, includes/rts/storage/MBlock.h). It is responsible for delivering megablocks, correctly aligned, to the upper layers."
08:39:09 <fizzie> That's probably the place to peek if curious enough.
08:39:17 <fizzie> Also "megablock" sounds fabulous.
08:39:30 <pikhq> fizzie: And is almost certainly nothing that interesting.
08:39:49 <elliott> fizzie: it will surely most likely be in platform code
08:40:10 <pikhq> elliott: There's a drop-in replacement, though.
08:40:38 <elliott> / A wrapper around mmap(), to abstract away from OS differences in
08:41:55 <pikhq> Well, rather, a handful of replacements; there's different functions for "Get me a page" and "Get me a page that mirrors a file".
08:42:17 <pikhq> Anyways, point is the *functionality* is part of the API, making it nothing too painful to work with.
08:45:17 <pikhq> Anyways. Mere *allocation* is essentially a solved problem; a specific implementation is going to be about as interesting as a specific implementation of quicksort.
08:45:43 <pikhq> It's deallocation that's hard.
08:48:42 <oerjan> yeah ghc doesn't even try deallocating >:)
08:49:18 <pikhq> Good thing I got my unbound spool of tape in the mail today.
08:49:47 -!- augur has quit (Read error: Connection reset by peer).
08:49:55 -!- augur has joined.
08:54:23 <pikhq> coppro: What, I was ordering parts for my Turing machine, and that came in today.
08:55:48 <Vorpal> pikhq, given the size of it, I guess the postage must have been prohibitive?
08:56:35 <elliott> you see, it gets thinner as it goes along
08:56:51 <elliott> so the first cell takes up half the envelope
08:57:00 <elliott> but the rest tapers to an (infinite) point
08:57:07 <elliott> (it gets smaller in every dimension)
08:57:21 <pikhq> The reader is a truly impressive piece of work.
08:57:23 <fizzie> Paper tape, the storage method of kings: http://zem.fi/g2/d/17070-4/p1100859.jpg
08:57:25 <elliott> so they just ship it rolled up
08:57:47 <Vorpal> fizzie, where did you take that photo?
08:58:04 <elliott> pikhq: yeah it uses magnets and light to read instead of doing it directly
08:58:08 <elliott> that way it doesn't have to get smaller as it moves
08:58:18 <fizzie> Vorpal: It's the UK National Museum of Computing's rebuild of Colossus, the Lorenz-cipher-breaker thing.
08:58:24 -!- oerjan has quit (Quit: leaving).
08:58:26 <elliott> basically it shoots the right coloured beam of light to just reflect the specific cell it wants
08:58:31 <elliott> which magnetises the tape cell
08:58:36 <elliott> then it pulls up with the magnet
08:58:49 <elliott> and the reaction causes the value to be put on to the platter
08:58:58 <pikhq> elliott: I've not tried it for cells that would be below a Planck distance in wavelength.
08:59:09 <pikhq> The quite-probably ionizing radiation kinda scares me.
08:59:47 <elliott> pikhq: yes well, you _are_ meant to operate it in a vacuum in a container the size of a galaxy.
09:00:19 <pikhq> I'm kinda cheating. I've got a TARDIS on backorder.
09:00:23 <elliott> pikhq: in fact, since it means the platter can move less (i.e. not at all), normal operation operates exclusively on the atom at the very tip of the tape
09:00:25 <Vorpal> the feats of modern technology are truly marvelous
09:01:23 <elliott> oh, the writing mechanism is really cool; it has two lasers, one really hot, one really cold, and it mixes them both at the current tape cell to cause it to undergo a chemical reaction which transforms it into the right value.
09:01:48 <Vorpal> elliott, what is the MTBF?
09:02:07 <elliott> Vorpal: why would it fail?
09:02:08 -!- augur has quit (Read error: Connection reset by peer).
09:02:19 <Vorpal> elliott, well, the reader and writer may
09:02:22 -!- augur has joined.
09:02:39 <elliott> Vorpal: it uses the infinite sequence of bits as an entropic power source
09:02:46 <elliott> so there's little worry about that
09:03:01 <elliott> it's not doing anything strenuous, just firing a few lasers at a single atom and turning an electromagnet on and off
09:03:06 <pikhq> Good thing, too. It requires more power the further you get in the tape.
09:03:40 <elliott> have to generate light of ever more ridiculous wavelengths to shine to read
09:03:52 <coppro> this conversation is awesome
09:04:25 <Vorpal> pikhq, only relevant for the start of the tape I guess
09:04:29 <elliott> Vorpal: Like I said, it uses the last atom exclusively in normal usage.
09:04:36 <elliott> So no spatial seeking is necessary.
09:04:39 <elliott> coppro: it's just making me want one
09:05:00 <elliott> Vorpal: Interestingly, just cutting off the tape before this last atom results in a catastrophic system meltdown.
09:05:08 <Vorpal> I need one of those infinite sequence power supplies in my laptop...
09:05:30 <elliott> Vorpal: PHYSICS HAS YET TO EXPLAIN.
09:05:35 <pikhq> elliott: Just need to take a trip to the frictionless pulley store.
09:06:20 <elliott> Vorpal: Interestingly, you can exploit the random appearance of tachyons during the tape-reading process to serve as a halting oracle.
09:06:43 <elliott> It's not very practical, though; if the computation goes on forever, then an infinite number of tachyons hit your sensor all at once.
09:06:53 <elliott> The results are quite spectacular but usually fatal.
09:06:56 <Vorpal> elliott, hm, even if seek time is non-existent, how long does it take to read a single symbol?
09:07:16 <elliott> BUT WHAT'S A FEW GALAXIES BETWEEN FRIENDS WHO WANT TO DECIDE THE GOLDBACH CONJECTURE????
09:07:48 <elliott> Vorpal: As long as it takes for light to make it there and back. Technically, turning an electromagnet on and off should be included in time, but in practice, the machine operates so quickly that the electromagnet is never off.
09:08:12 <elliott> So, since the head is mere millimetres above the tape: practically no time at all.
09:08:45 <Patashu> Infinitely small tape cells should wear out infinitely fast
09:08:48 <Vorpal> elliott, something similar would apply for writing of course
09:09:17 <elliott> Patashu: There's nothing to wear out.
09:09:30 <Patashu> But you said it had chemical reactions
09:09:35 <Patashu> So inevitably atoms will escape
09:09:51 <elliott> Patashu: Yes, this is why it uses a self-repairing mechanism.
09:09:57 <oklopol> in evitably your mom will escape my chemical reactions
09:10:12 <elliott> Patashu: The atom gets destroyed roughly every other clock cycle, but it is duplicated by a simple mechanism and put back into place constantly.
09:10:25 <elliott> Since it's just a single atom, this is a simple process, compared to scanning every single tape cell, which would take literally forever.
09:10:32 <Vorpal> elliott, a bit like those self-repairing mc structures? using pistons and so on?
09:10:42 <Patashu> turing machines compared to pistons in minecraft
09:10:42 <Vorpal> (infinitely small ones of course)
09:10:53 <elliott> Vorpal: Precisely, if one block of cobblestone could be used to access infinite bits.
09:10:54 <Patashu> you know, minecraft represents an infinitely large space
09:10:57 <Patashu> let's set up a piston driven turing machine
09:11:06 <Patashu> it just doesn't implement it
09:11:10 <Patashu> because of floating point inaccuracies
09:11:25 <elliott> Patashu: Things start breaking way before the actual coordinates hit floating point limits.
09:11:37 <elliott> IIRC, it's only like a few solid months of walking to the place where repeated addition and the like fuck everything up.
09:11:40 <Vorpal> elliott, implementation limits
09:11:46 <oklopol> your mom's floating point starts breaking before the actual coordinates hit repeated addition implementation limits
09:11:57 <Patashu> name one thing that breaks down not because of floating point inaccuracies
09:12:06 <Vorpal> Patashu, heard of the "far lands"?
09:12:09 <elliott> Patashu: The whole game is floating point, so I don't know what you mean.
09:12:13 <elliott> <Vorpal> elliott, implementation limits
09:12:21 <elliott> Yeah, but they're reachable ones.
09:12:22 <Vorpal> Patashu, http://www.minecraftwiki.net/wiki/Far_Lands
09:12:36 <elliott> Notch used to say that the bugs were way too far out to ever be relevant.
09:12:38 <Patashu> if minecraft's floats and doubles were swapped for e.g. bigdecimal
09:12:53 <elliott> Patashu: that would be a terrible idea
09:12:57 <elliott> as far as performance goes
09:13:33 <Patashu> when are we getting 128 bit floating point units?
09:13:35 <elliott> Patashu: Elliottcraft just uses a fixed-point sixty-four-bit integer with four bits of ... decimal.
09:13:54 <Vorpal> elliott, s/uses/will use/
09:14:16 <elliott> 1,073,741.82 kilometres in every direction ain't bad.
09:14:20 <Patashu> wouldn't that have awful rounding off errors if you were heading in any non-orthogonal direction
09:14:35 <elliott> Patashu: The player position is stored with more precision in memory
09:14:48 <elliott> Everything is just rounded upon serialisation
09:15:24 <elliott> Hmm, I suppose I could use full sixty-four bit coordinates and then use an additional sixteen bits or so for fractional stuff
09:15:42 <elliott> Since most things don't have such precise positions
09:15:49 <elliott> <elliott> 1,073,741.82 kilometres in every direction ain't bad.
09:15:53 <elliott> This was both positive and negative, BTW
09:16:04 <elliott> Err, wait, did I fuck it up
09:16:30 <elliott> 1.1529215 × 10 to the power of 15 kilometres
09:16:39 <elliott> (That's for sixty-bit + four-bit)
09:17:10 <oklopol> 1.1529215 * (10 to the power of 15 kilometres)
09:19:35 <elliott> Patashu: I'm not sure what you mean, anyway
09:20:12 <elliott> <Patashu> wouldn't that have awful rounding off errors if you were heading in any non-orthogonal direction
09:20:31 <Patashu> imagine I'm an object and I want to move a short distance at a 30 degree angle
09:20:37 <Patashu> how do you represent that without rounding errors?
09:20:44 <Patashu> rounding errors even worse than would be in floating points, btw
09:21:23 <elliott> Patashu: that only affects save/load
09:21:37 <elliott> I'm storing things with higher precision in memory, but nobody will notice the clamping on save/load :P
09:21:56 <Patashu> so when you save and reload, the co-ordinate system is moved to your new location as the origin
09:22:02 <Patashu> and once again you can walk XXX months before you'll see the far lands
09:22:26 <elliott> That would require, like, rewriting every single chunk file, I think.
09:23:23 <Patashu> Chunks could be referenced relatively
09:23:44 <Patashu> As in when you save you say 'ok this chunk is the new origin chunk and it's numbered N in X and M in Y, so I'll look near N and M for the next chunks'
09:23:48 <elliott> Wait, that's actually literally equivalent to using some form of bigfloat, it just pushes the problem to the chunk storage layer.
09:24:25 <Patashu> Hmm, yeah I suppose it is in a way
09:24:49 <elliott> I mean, it makes the in-memory storage fixed, but it still requires resolving it all on load
09:25:00 <elliott> And you couldn't walk from really far out to origin without running into FARRRR LANDS.
09:25:04 <elliott> Without saving and loading, I mean
09:25:12 <elliott> Patashu: Anyway, there'd be no far lands with fixed point
09:25:17 <elliott> Since precision is retained throughout the whole range
09:25:19 <Patashu> Yeah, it would just end abruptly
09:25:25 <elliott> Patashu: No, it would wrap around :)
09:25:26 <Patashu> How will you advertise an infinitely large world
09:25:45 <elliott> Patashu: I've half-jokingly considered putting stupid shit as the borders of the world.
09:25:54 <elliott> Like the ice mountains said to surround the flat earth.
09:26:23 <elliott> Patashu: Anyway, I can advertise way-more-infinite-than-Minecraft worlds, especially since I have a plan for arbitrary y coordinates too :P
09:27:27 <Patashu> write blocks until you reach the topmost one, then indicate you're done and move to the next x,z co-ordinate? generate higher y level chunks when your tower sticks up higher than 128 blocks?
09:28:01 <elliott> I'm not sure what that's supposed to mean; there might not be a topmost block -- or well, sure there will be, but there won't be a bottom most block.
09:28:05 <Vorpal> Patashu, or your mines go down more than 128?
09:28:10 <elliott> Just imagine a hashtable of (x/n,y/n,z/n) -> chunk
09:28:13 <elliott> Where / is integer division
09:28:27 <elliott> I can clump a bunch of chunks together in a single file and then rely on the filesystem for the rest
09:28:29 <Vorpal> elliott, why a hashtable, why not an octtree?
09:28:33 <Patashu> ah, bottommost, good point
09:28:58 <elliott> Do octtrees even work for infinite spaces
09:29:00 <Vorpal> http://en.wikipedia.org/wiki/Octree
09:29:18 <Patashu> It doesn't look like it would
09:29:24 <Vorpal> elliott, a binary tree would work for an infinite range, you would just have to rebalance it
09:29:31 <Vorpal> of course that is one axis
09:29:51 <elliott> Or I could just do what I already plan :P
09:30:08 <Vorpal> elliott, the issue with hash table is that worst case performance is horrible :P
09:30:24 <Patashu> use a good hash algorithm then
09:30:30 <elliott> Vorpal: It's not a hash table
09:30:39 <elliott> Because it's your filesystem :P
09:30:42 <elliott> Yes, that was an explanatory tool.
09:30:45 <Vorpal> elliott, well B-tree is fine
09:31:03 <elliott> I'm literally just going to store world/x-y-z files :P
09:31:09 <elliott> That contain like sixteen by sixteen chunks each.
09:31:17 <elliott> Eight by eight by eight, say.
09:31:40 <elliott> Wait, that makes chunk files at least 128 megabytes :P
09:31:40 <Patashu> so, is your world generation algorithm going to extend infinitely far downwards?
09:31:46 <Patashu> will it just keep generating denser and denser compressed rock?
09:31:55 <Vorpal> elliott, you could do sparse files
09:32:14 <elliott> OK, how about four by four by four, then it's like thirty two megabytes, even if I have two bytes per block.
09:32:18 <Vorpal> elliott, add a header at the start to indicate which chunks are valid, then use fseek() to make the file sparse
09:32:20 <elliott> How big are mcregion's files anyway?
09:32:36 <elliott> Patashu: I have plans for various underworld type things with large lava-like caverns.
09:32:44 <elliott> If I have a Nether, it'll be at a certain block layer :P
09:32:48 <Vorpal> elliott, iirc they have 1024 chunks each or such
09:32:53 <Patashu> lava is cool. but would the generation be homogenous after a certain point?
09:32:56 <elliott> Vorpal: Yeah, but like approximate kilobyte/megabyte sizes
09:33:20 <elliott> Patashu: No reason biomes can't be vertical too.
09:33:37 <Vorpal> elliott, largest one I have is 6 MB
09:33:44 <Vorpal> elliott, iirc each chunk is gzip compressed
09:33:47 <Vorpal> or something like that
09:34:13 <elliott> Yeah, I'll probably gzip them before storage; storing them packed in memory isn't feasible, and RLE is a waste of time when I could just steal an algorithm
09:35:21 * elliott reads people taking Infinite Solutions seriously.
09:35:23 <Vorpal> elliott, wait a second, how would this work on @?
09:35:41 <elliott> Vorpal: How would what work
09:35:50 <Vorpal> elliott, would the OS do transparent gzip when writing out to disk after a hint?
09:35:57 <elliott> Serialisation is obviously overridable
09:36:12 <Vorpal> elliott, it didn't sound like that before
09:36:27 <elliott> Tricky though, in that you have to make sure it bijects properly
09:36:38 <Vorpal> elliott, well the gzip case is simple
09:36:40 <elliott> But there can obviously be a "gzip compression" function from serialisers to serialisers
09:37:13 <Vorpal> elliott, anyway it doesn't have to serialise to exactly the same does it? gzip decompression is speced, but decompression is not iirc
09:37:30 <Vorpal> meaning you can do various efficient ways to compress it
09:37:39 <Vorpal> speed/time tradeoffs etc
09:37:42 <elliott> I mean that you can't serialise all strings as "x"
09:37:49 <elliott> i.e., your serialisation has to include all aspects of the object
09:37:55 <elliott> (Apart from things not exposed publicly)
09:38:10 <Vorpal> elliott, metadata and such?
09:38:21 <elliott> It's not acceptable to hit the reset button and have everything break because an object doesn't serialise and restore properly
09:38:27 <cheater_> and our objects always reset upon serialization
09:38:49 <Vorpal> elliott, speaking of which I had level.dat corrupted on a local bukkit test server when I had a power failure
09:39:00 <Vorpal> elliott, seed changed and several chunks re-generated
09:39:22 <elliott> Vorpal: But I thought the example of losing power for orthogonal persistence was contrived?!!!?!?!?!!
09:39:27 <elliott> HOW COULD TROLLS MISLEAD ME SO
09:39:32 <Vorpal> elliott, I meant for mc :P
09:39:35 <Vorpal> elliott, not for your system
09:39:48 <elliott> Vorpal: I meant that tripping over your power cord is a common way used to explain the benefits of orthogonal persistence
09:40:04 <elliott> "EVERYONE USES UPS LOL AND ALSO, UPS IS PERFECT ALWAYS" is a common response.
09:40:10 <Vorpal> elliott, well in this case it was "fuck the electricity company"
09:40:24 <Vorpal> 3200 houses affected or something like that
09:40:30 <Vorpal> large part of this town anyway
09:40:45 <Vorpal> elliott, I wish I could afford an UPS
09:41:12 <elliott> Meh, they make noise and are bulky
09:41:23 <Vorpal> elliott, bulky is not an issue for me, noisy however is
09:41:34 <Vorpal> elliott, yeaaaah like where to connect MIDI? :P
09:41:37 <elliott> It's just a buzzing, I gather
09:41:41 <Vorpal> (midi over usb = fail)
09:42:04 <elliott> I'm sure you can get laptops with MIDI ports, anyway :P
09:42:07 <Vorpal> elliott, because of the latency. Especially since the latency isn't stable
09:42:19 <elliott> An Intel marketroid just took my laptop
09:42:47 <oklopol> okokokokokokokokokokokokokokokokoko
09:42:50 <Vorpal> elliott, I'm not sure that one has any hard latency requirements in the spec :P
09:43:27 <Vorpal> elliott, also usb isn't isolated, MIDI requires opto-isolators to be used at each end of the cable
09:43:30 <elliott> It's basically PCIe: The External Port, innit
09:43:34 <Vorpal> elliott, this decouples the circuits
09:44:13 <Vorpal> elliott, with midi cable I no ground "buzz", but with USB I get it. To the same electrical piano that is.
09:44:40 <elliott> LEARN TO WORK WITH THE BUZZ
09:44:51 <elliott> The first solution to any technical problem in music production is obviously to exploit it for all it's worth.
09:45:10 <Vorpal> elliott, yeah but it doesn't work for everything.
09:45:18 <elliott> Just make symphonies of buzz
09:46:42 <Vorpal> elliott, ground buzz doesn't sound like a SID chipset at all :P
09:46:56 <elliott> Afraid you might INNOVATE????
09:47:10 <oklopol> metal was born because guitar amps sucked
09:47:37 <elliott> <Vorpal> AND THAT'S WHY I MUST NOT YIELD TO SAID TEMPTATION
09:47:51 <elliott> i have this guitar amp that is so shitty, you have no idea.
09:47:55 <Vorpal> I don't like metal really
09:47:56 <elliott> it would almost fit in my pocket
09:48:02 <elliott> it's powered by a couple of batteries
09:48:07 <elliott> and it makes everything sound so terrible
09:48:08 <Vorpal> elliott, does it go to 10 or 11?
09:48:10 <elliott> i cannot believe it even exists
09:48:20 <oklopol> my amp so big it would destroy everything
09:48:40 <elliott> oklopol: I have a less crappy amplifier (although I'm not exactly sure why), I just have that monstrosity too :P
09:48:51 <elliott> Oh right, that theremin. GOTTA HAVE GOOD AMPS FOR THEREMIN
09:48:55 <oklopol> don't you use one for right
09:48:56 <Vorpal> elliott, what brand/model is it?
09:49:08 <elliott> I don't think it even HAS a brand.
09:49:14 <elliott> Does "made in China" count? Because it probably has a sticker on it saying that.
09:49:15 <oklopol> can you put like huge distortion on the theremin and make it sound just horrible
09:49:26 <elliott> oklopol: overdriven theremin is quite a thing
09:50:09 <Vorpal> elliott, suggestion: aplay /dev/sda
09:50:20 <Vorpal> elliott, NTFS sometimes sound quite good
09:50:31 <elliott> oh /dev/sda starts off really nice here
09:50:40 <elliott> crunchy sounds then a rapidly repeating beep
09:50:50 <elliott> ok you can't just stop the beep DEVELOP that shit man
09:51:09 <elliott> Vorpal: does aplay have seeking
09:51:10 <Vorpal> elliott, is it GPT or MBR?
09:51:17 <Vorpal> elliott, not that I'm aware of
09:51:23 <Vorpal> elliott, possibly it can start at an offset
09:51:28 <Vorpal> elliott, try listen to the partitions too
09:51:52 <elliott> huh, partition four sounds the same at the start
09:52:11 <elliott> was gonna play my swap for some fun
09:52:19 <elliott> Vorpal: sudo aplay /dev/mem <-- SAFEST THING POSSIBLE
09:52:50 <elliott> Aww, /dev/input/mice is not very fun sounding at all
09:52:58 <Vorpal> hm, my /dev/sda is a bit of whitish noise, then a second of quietness, then a rapid regular ticking that goes on for quite a while
09:53:11 <elliott> Didn't you send me a partition ogg once
09:53:19 <elliott> Oh /dev/core starts out good
09:53:22 <Vorpal> elliott, I don't have that file anyway
09:53:22 <elliott> But then just more lameo silence
09:53:37 <Vorpal> elliott, I don't even have the original NTFS partition it came from
09:53:41 <elliott> /dev/random is amusingly silent
09:54:17 <elliott> Oh /dev/sda2 is a nice thing
09:54:19 <Vorpal> elliott, actually /dev/sda sounds about the same as /dev/sda1 for me. So I guess it was the mostly empty /boot I listened too there... the clicking is probably the ext* superblock backups
09:54:31 <elliott> This has actual substance, I guess HFS+ is very musical
09:54:38 <elliott> Textural than toneful though
09:54:43 <Vorpal> whoa /dev/sda2 (root iirc) sounds nice
09:55:10 <Vorpal> elliott, no, it is only vagually like it, for a bit
09:55:38 <elliott> Dammit, I want to turn swap on just to experience that
09:55:45 <Deewiant> Compare BSD binaries to GNU, statically linked if possible
09:55:49 <Vorpal> elliott, well used swap (before switch to new computer) too
09:55:54 <elliott> Can I ask for an ogg of swap, or are you afraid I'll somehow reverse psychoacoustic compression and get your passwords ;)
09:55:56 <Vorpal> elliott, whoa there is some metal here
09:56:07 <Vorpal> elliott, I'll think about it
09:56:08 <elliott> I take it "metal" is your word for "noise"
09:56:19 <Vorpal> elliott, no, some of it sounds like overdriven guitar
09:56:22 -!- Phantom_Hoover has joined.
09:56:23 <Vorpal> there is quite a bit of noise too
09:56:29 <elliott> Oh, I actually like /bin/ls
09:56:39 <elliott> I mean, as far as atonal binary noise goes
09:56:54 <elliott> Assertion 'pa_atomic_load(&(s)->_ref) >= 1' failed at pulse/stream.c:1848, function pa_stream_disconnect(). Aborting.
09:56:54 <elliott> Aborted by signal Aborted...
09:56:54 <elliott> Assertion 'pa_atomic_load(&(s)->_ref) >= 1' failed at pulse/stream.c:1848, function pa_stream_disconnect(). Aborting.
09:56:54 <elliott> Aborted by signal Aborted...
09:56:58 <elliott> There were like five thousand of those errors
09:56:59 <Vorpal> elliott, /dev/sdb3 is similar, but different
09:57:31 <elliott> Playing raw data '/usr/bin/emacs' : Unsigned 8 bit, Rate 8000 Hz, Mono
09:57:39 <Patashu> are you guys going to make an album of this stuff
09:57:55 <Patashu> send the proceeds to charity
09:58:01 <Vorpal> I hit ext4 on my lvm listening
09:58:02 <elliott> Send the proceeds to GNU :P
09:58:06 <Vorpal> actual lvm is very quiet
09:58:20 <elliott> Machine code sounds disappointingly random
09:58:25 <elliott> Some nice flourishes of beeps here though
09:58:38 <elliott> It keeps interrupting the fuzz for some bleep soloing, I guess it's binary data
09:58:45 <Vorpal> elliott, empty ext2 has a more rapid pulse than empty ext4 btw
09:59:28 <Vorpal> elliott, my /usr/bin/emacs sounds quite nice for some bits
09:59:31 <elliott> vim sounds nicer than emacs
09:59:44 <elliott> I know a guy who'd listen to a box set of this
09:59:54 <Vorpal> wha... /usr/bin/soffice was short
10:00:18 <Patashu> how is binary data being interpreted as sound?
10:00:23 <Patashu> even wav has a header I think
10:00:29 <Vorpal> Patashu, Playing raw data '/usr/bin/soffice' : Unsigned 8 bit, Rate 8000 Hz, Mono
10:00:31 <elliott> Patashu: eight kilohertz, mono, unsigned
10:00:44 <Vorpal> you can change it with parameters to aplay
10:00:45 <elliott> -rwxr-xr-x 1 root root 6.4K 2011-01-29 06:11 /usr/lib/openoffice/program/soffice
10:00:48 <elliott> oh FFS, where's the real openoffice
10:01:04 <elliott> -rwxr-xr-x 1 root root 63 2011-01-29 05:39 /usr/lib/openoffice/program/swriter
10:01:06 <Patashu> so you could play the same file a large number of ways
10:01:15 <Vorpal> elliott, there is /usr/lib/libreoffice/program/oosplash.bin at least
10:01:37 <Vorpal> elliott, I think it is dlopened() by a wrapper basically
10:01:40 <elliott> Ah, it's /usr/lib/openoffice/program/soffice.bin
10:01:45 <elliott> libsofficeapp.so => /usr/lib/openoffice/program/../basis-link/program/libsofficeapp.so (0x00007f3712e5f000)
10:01:47 <Vorpal> no it isn't, that is way to short
10:01:50 <elliott> -rw-r--r-- 1 root root 503K 2011-01-29 06:59 /usr/lib/openoffice/program/../basis-link/program/libsofficeapp.so
10:01:54 <elliott> Where are you hiding the bloat
10:02:17 <Vorpal> elliott, why don't you have libreoffice?
10:02:25 <elliott> -rw-r--r-- 1 root root 13M 2011-01-29 06:59 libswlx.so
10:02:34 <elliott> Vorpal: You realise it's literally identical to go.oo
10:02:50 <Deewiant> find /usr/lib/openoffice -type f -exec du -h {} + | sort -g
10:02:53 <elliott> How surprising, OpenOffice sounds like shit
10:03:07 <Vorpal> elliott, hm /dev/input/mice is silent?
10:03:12 <Vorpal> even when moving the mouse I mean
10:03:24 <elliott> Yeah, I think you can't generate big enough values anywhere near quickly enough
10:03:28 <fizzie> /usr/lib/libreoffice/basis3.3/program/libswlx.so here is 12 megs.
10:03:31 <elliott> Just like /dev/random is silent but /dev/urandom isn't
10:03:35 <elliott> fizzie: Already found, see above
10:03:37 <fizzie> Ah, you found that too, yes.
10:03:59 <elliott> Vorpal: /usr/bin/ghostscript sure is short
10:04:26 <Vorpal> elliott, eh, you mean /usr/bin/gs ?
10:04:33 <Vorpal> I have no /usr/bin/ghostscript
10:04:42 <elliott> /usr/local/lib/ghc-7.0.4/ghc is the soundtrack to a life of purity.
10:04:46 <Vorpal> gs (1) - Ghostscript (PostScript and PDF language interpreter and previewer)
10:04:48 <elliott> The Haskell monks blast it all day at full volume.
10:04:57 <fizzie> -rw-r--r-- 1 root root 10346152 2011-04-01 16:35 /usr/lib/libgs.so.9.01
10:05:02 <fizzie> That's more of Ghostscript.
10:05:07 <elliott> lrwxrwxrwx 1 root root 2 2011-05-09 12:57 /usr/bin/ghostscript -> gs
10:05:09 <fizzie> Are you expecting it to be spooky?
10:05:40 <elliott> /bin/busybox sure is... busy.
10:05:42 <Vorpal> elliott, gs is NOT short
10:05:50 <elliott> -rwxr-xr-x 1 root root 6.2K 2010-09-22 01:50 /usr/bin/gs
10:06:35 -!- jcp|other has quit (Read error: Operation timed out).
10:06:39 <Vorpal> elliott, it is just noise on my system
10:06:43 -!- jcp has quit (Ping timeout: 240 seconds).
10:07:14 <elliott> Vorpal: It has nice breaks
10:10:01 <elliott> FLACs sound predictably random.
10:10:09 <Deewiant> Compare these: /usr/lib/perl5/core_perl/CORE/libperl.so /usr/lib/libruby.so.1.9.1 /usr/lib/libpython2.7.so.1.0 /usr/lib/libpython3.2mu.so.1.0
10:11:23 <Deewiant> If the music gets worse, that's probably not a good sign
10:11:40 -!- cheater_ has quit (Ping timeout: 255 seconds).
10:11:40 <elliott> Hmm, Python sounds like what talking to Guido must be like.
10:11:57 -!- jcp has joined.
10:12:29 <Deewiant> Well, assuming that Python should be cleaner than Perl etc
10:13:31 <elliott> Wow, I played this eight khz mono unsigned eight-bit raw file and it sounded exactly like the original
10:14:52 <elliott> nsearch.optim sounds The Best.
10:17:57 -!- javawizard has joined.
10:18:22 <elliott> debian-testing-i386-netinst.iso sounds boring
10:19:40 <elliott> OK are you going to do anything with that beat.
10:21:31 <Vorpal> elliott, nsearch.optim ?
10:21:52 <elliott> oerjan's nsearch, parallelised
10:21:56 <elliott> Vorpal: definitely listen to a debian ISO
10:22:01 <elliott> it is subtle but brilliant.
10:22:03 <Vorpal> elliott, don't have a copy around
10:22:16 <Vorpal> elliott, anyway, what is oerjan's nsearch?
10:22:25 <elliott> Searching for... something.
10:22:44 <Vorpal> elliott, searching for what? files? prime numbers?
10:22:50 <elliott> Deewiant: What's it sound like
10:23:07 <elliott> I don't have any big his here
10:23:29 <elliott> Don't really wanna pause Debian though
10:23:31 -!- cheater_ has joined.
10:24:50 <elliott> Shiro/Interpreter.hi is a brief but amazing work of art.
10:25:14 <Vorpal> elliott, how does it sound if rot13 is applied on it
10:25:40 <Vorpal> elliott, I mean, does it make any noticeable difference
10:26:12 <elliott> Depends how many characters are alphabetical :P
10:26:22 <Vorpal> elliott, well for Shiro/Interpreter.hi I meant
10:26:43 <elliott> dxsrNCNCXiNpjsFEoaoskNmdEPZykBhRioLyCLWLYwQpnSeUiuJTWfBygIkCpfcIoKZzvCRaMfeHKlgIRNLjlztLQyRGiprdpKwYTWbnbCQgvAnMXaoAXEvtmzHhnUJvrqAnsjBuDaYLCPHDfVfWDxprSaEIOAFeyzwGlRhlqqHIotJCbpKyELVnvsSHMzYduNmpvOwHZZPJwQlULtlRxESOsHTPhUVYYLzPWdfaXQZKbYwNGGINZzaJYUHFMZSEumJOrNwraMuUFbZhCYcjqocBdKeqRtfoHgNYphbRaTFpirbjkIkKylTBefQcmupblnokQhRptZqDAnrRRxXsRruZRtbuxrCrqvrHjwxPtdqJwwXzxJVZFPyzytrjHPelsccooPACOCBWovETJbjzfVqyLCldNhpvMHarRusUTDplfIArtbABCDEFGHIJKLMNOP
10:26:43 <elliott> QRSATBUCVDWEXFYGZHIJKLMNaObPcQdReSfTgUhViWjXkYlZmnopqrsatbucvdwexfygzijknopqrstuvwxyzKUpxuSzzuPUqaUUxeLjmzcvCxXAcYFhlVBTGVdRoSTJcdDsXROtlHZZLxcbvhBgMTqoqScncaCKkhxavyHTPFnxLlaPIqLcymAblXJXXBWdwQDUGlaJgzvUaXiHhBaUDeVlTZtncSUWoFZWZRuEOzZzUNBEveWZVrZeKXpJXNeCBdtzCCAcQDLDnGeAnHduAKJwbcKuOMlrRcqTEUhdLNyMTjkGgUIGrXSXECsYeSTYXspOYMetLlJlWJEVxhlaxddpdxsdVwZhtMShUainrejvGfmfWtIoYTLwoUkGoqgpsquOtGhbuczXNRBcPzJwrzwybLIzEuFXzdfgSnZoAnfnBpdSClByfDoZPhEvfaFhbD
10:26:43 <elliott> GKddBytHVISJOutHKbLyGRLKtMNsYJDgNcsCXxOnTwiPzQQjjpvvSRPRvYSRgIsTDCUZRVsfYueWXYYXkSXOZCBWbWoQkCBXYYXCWimwMVaabbElectPENdYZxeWVUsfVoRQqgKGyhPAzBGisDULjJUkgYlAulDggPnPmqcnKpoIDWpyFAphFqDESrezsIatBvUxsuUnvbKelwlAkCxfCLNHyPzghCUSMVwHnraEaYcEVeHcrJDRwuDyVGaPkpNwwfzYXQdqTgvsUIRplkTiZZmpcABCBDEFqozMDkKGHwTWkoEtneREpdHsMyIRauJuLCghIGFONsLAhnhgbMskKrDOxFKumxrLSyQymMqdgOZCvawUNOMEoQPQRSKTiMdUbyxwvutsrqpnmlkjihgfecZWVTOLHEBzoUIdRnSACDFGJKMNPymainShiroInterpr
10:26:48 <elliott> eterShiroFingerprintShiroFingerprintsShiroFungeSpaceShiroIPShiroMonadShiroTypesShiroUtilsShiroValueMaybeTbasebytestringcontainersfilepathghcprimintegergmpmtloldlocaleprocessrandomtimetransformersunixControlMonadInstancesGHCBaseGHCFloatGHCNumDataByteStringDataByteStringCharDataTimeCalendarGregorianDataTimeFormatParseDataTimeLocalTimeLocalTimeControlMonadTransErrorControlExceptionControlMonadDataBitsDataCharDataFunctorDataMaybeGHCClassesGHCEnumGHCE
10:26:53 <elliott> rrGHCIOExceptionGHCIOHandleGHCIOHandleFDGHCIOHandleTextGHCListGHCRealGHCShowPreludeSystemEnvironmentSystemExitSystemIODataMapSystemFilePathSystemFilePathPosixGHCOrderingGHCIntegerTypemergeByteStringrectangleToByteStringtextifycatchShirocurrentIPgoh
10:26:57 <elliott> A brief selection of the alphabetical strings in that file
10:27:03 <elliott> Big block of "InscoreInscoreInscoreInscore..." at one point.
10:37:20 <Vorpal> elliott, is that before or after rot13?
10:37:49 <elliott> After; GHC stores everything ROT encoded.
10:38:09 <Vorpal> elliott, but come on, "dxsrNCNCXiNpjsFEoaoskNmdEPZykBhRioLyCLWLYwQpnS" doesn't look terribly sensible even if cut up
10:38:27 <elliott> That will be from machine code or whatever :P
10:38:34 <Vorpal> elliott, oh right, a .hi is binary
10:39:14 <Vorpal> elliott, GPT or MBR, which one do you recommend?
10:45:47 <elliott> Vorpal: is this actual advice you're asking for
10:46:04 <Vorpal> elliott, possibly I will apply it yes
10:46:32 <fizzie> I would fake-suggest GPT, on the pretend-reason that it makes your disk more secure. (Since it then won't work in not-modern-enough systems.)
10:46:38 <elliott> Vorpal: MBR; it is supported by far more tools.
10:46:46 -!- cheater_ has quit (Ping timeout: 255 seconds).
10:46:48 <elliott> Vorpal: "As of 2010, most current OSs support GPT, although some (including Mac OS X and Windows) only support booting to GPT partitions on systems with EFI firmware."
10:46:55 <Vorpal> elliott, that precludes UEFI boot though
10:46:56 <elliott> So unless you want to use your EFI capability too...
10:47:11 <Vorpal> elliott, I do have EFI on the computer in question
10:47:15 <elliott> EFI is worse than the BIOS
10:47:21 <elliott> You don't need another OS before your OS
10:47:32 <Vorpal> elliott, what about openfirmware then?
10:47:39 <elliott> That's not an OS, that's a Forth
10:47:46 <elliott> Which is a perfectly cromulent low-level interface :P
10:47:59 <elliott> Compare Commodores booting into BASIC
10:48:26 <elliott> Vorpal: You should try coreboot
10:49:19 <Vorpal> elliott, well I'm not risking bricking the system
10:49:55 <fizzie> I think I had a coreboot-supported MB here somewhere.
10:50:10 <elliott> Vorpal: Not system, motherboard
10:50:17 <elliott> Cheapest part of any system, apart from like, the mouse
10:50:18 <Vorpal> elliott, nor the mobo :P
10:50:31 <Vorpal> elliott, anyway the sata cable is cheaper
10:50:51 <Vorpal> elliott, anyway coreboot doesn't support the mobo in question so...
10:51:05 <elliott> Hmm, I ought to start assembling my rig sometime
10:51:07 <fizzie> Then you just *make* it support it.
10:51:18 <elliott> WITH MORE RAM THAN VORPAL'S
10:51:32 <elliott> If I cannot get the best processor with infinite RAM completely passively cooled I will have failed miserably.
10:51:40 <Vorpal> elliott, sure, I'm happy with the amount I have. I don't need more. But I could fit in more if I needed.
10:51:40 <elliott> I will be forced to commit suicide.
10:51:51 <elliott> Vorpal: I WILL HAVE TO EXCEED YOUR MOBO'S CAPACITY THEN
10:52:01 <elliott> BTW, which CPU did you go with?
10:52:04 <Vorpal> elliott, that is 32 GB
10:52:23 <elliott> I should just get enough RAM that I can run absolutely everything from a RAM disk.
10:52:42 <Vorpal> elliott, I don't remember the model code off-hand.
10:59:33 -!- cheater_ has joined.
11:07:24 -!- elliott has left ("Leaving").
11:07:28 -!- elliott has joined.
11:39:32 -!- elliott has quit (Remote host closed the connection).
11:40:00 -!- elliott has joined.
11:40:14 <lambdabot> Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them.
11:40:35 <elliott> You could, y'know, look at recent changes.
11:42:58 -!- ais523 has joined.
11:43:25 <elliott> and here we see an expertly-executed example of the Drive-By Mindfuck
11:43:28 <ais523> Type mismatch: ais523 is not of type command
11:43:42 <elliott> ais523: no, but hi : person -> command
11:43:50 <elliott> I suppose that has to be value rather than person or something.
11:44:01 <elliott> Phantom_Hoover: church-turing thesis
11:44:05 <ais523> fwiw, Feather isn't of type command or expression, either
11:44:07 <ais523> and the sequence operator I have can only handle base types
11:44:32 <elliott> ais523: was that an actual error or do they look more like "?"
11:45:11 <Phantom_Hoover> ais523, is it telling that I have meta-deja vu from that exchange between you and elliott?
11:45:16 <elliott> it's not, just the rest of the article is kind of crappy too
11:45:32 <ais523> Phantom_Hoover: it's much what you'd expect from me/elliott banter
11:46:17 <Phantom_Hoover> elliott, well, it's certainly not a theorem, so he's correct by that standard.
11:47:18 <ais523> you know, I've got really good about not thinking about Feather
11:47:42 -!- elliott_ has joined.
11:47:52 <ais523> much like it takes me about three or four minutes to remember the rules of The Game
11:47:55 <elliott_> wow, it should /not/ be that easy to throw away data irreversibly
11:48:23 <elliott_> ais523: you should really set some time aside dedicated to going insane sometime
11:48:27 -!- elliott has quit (Read error: Connection reset by peer).
11:48:29 <elliott_> ais523: then you could get Feather over with nice and quickly
11:48:33 <elliott_> also, no, <power button> <enter>
11:48:43 <elliott_> but it shut down my computer instead
11:48:48 <elliott_> and threw away all my open programs
11:48:57 <ais523> OK, that's a great typo
11:48:59 <elliott_> another enter key would have thrown away any unsaved documents I had open, too, if I had any
11:49:09 <ais523> many programs will autosave in response to the sighup
11:49:13 -!- boily has joined.
11:49:28 <elliott_> gui programs will generally just ask you instead
11:49:40 <ais523> Emacs doesn't, even the GUI version
11:49:41 <elliott_> although I think <enter> is save for most of them
11:49:44 <ais523> nor does Nethack, or Firefox
11:49:48 <elliott_> but GNOME tends to be really hasty
11:49:55 <elliott_> and start asking whether you want to kill them
11:50:34 <elliott_> I wonder if it's actually possible for me to not think of ais as "ais"
11:50:42 <ais523> Phantom_Hoover: it's fine, shred?(1) isn't a real command
11:50:46 <ais523> and if it were, would probably prompt first
11:51:00 <elliott_> ais523: you should change your legal name to "ais DXXIII"
11:51:11 <Phantom_Hoover> ais523, you have a symlink to shred called shredd in the current directory.
11:51:23 <elliott_> ais523: but it preserves your heritage!
11:51:24 <ais523> I've used aisDXXIII in posts about INTERCAL before now
11:51:33 <ais523> Phantom_Hoover: nope, I removed . from the current directory
11:51:42 <elliott_> `addquote <ais523> Phantom_Hoover: nope, I removed . from the current directory
11:51:46 <HackEgo> 482) <ais523> Phantom_Hoover: nope, I removed . from the current directory
11:51:51 <ais523> elliott_: good catch, that's a great thinko
11:51:59 <Phantom_Hoover> You coincidentally have an enhanced version of shred called shred2.
11:52:06 <elliott_> elliott@katia:~/hello$ rm -rf .
11:52:07 <elliott_> rm: cannot remove directory: `.'
11:52:11 <ais523> apparently ESR uses . on path, some of thescripts he wrote required it
11:52:12 <elliott_> STOP ARGUING WITH ME I TOLD YOU TO REMOVE IT
11:52:18 <ais523> elliott_: rm is allowed to special-case .
11:52:31 <ais523> this is the same reasoning that allows it to special-case /
11:52:40 <ais523> on the basis that rm -r / inevitably has to remove . at some point
11:52:57 <ais523> I love the way that the BSD people were looking for a loophole in POSIX to allow rm -rf / to not work by default
11:53:09 <ais523> whereas the GNU people just did it, without caring that it probably violated the standard
11:53:25 <elliott_> http://esolangs.org/wiki/Schrodilang ;; heh, those categories
11:54:10 <ais523> yep, that's a nice touch
11:54:42 <ais523> hmm, [[Nandypants]], someone made a stupid BF derivative by mistake?
11:55:05 <ais523> people must really start thinking less imperatively
11:55:22 <ais523> I think any imperative tarpit will end up close to BF unless you go to a lot of effort to make it different
11:56:35 <ais523> elliott_: as for the Church-Turing thesis, there's a part of Gödel, Escher, Bach which lists about twenty different formulations of it
11:56:48 <lambdabot> Not in scope: `Data.Map.lookupWithDefault'
11:56:49 <ais523> some of which are trivially true, some of which are obviously only-on-faith, some of which are somewhere in between
11:57:06 <Vorpal> <ais523> I think any imperative tarpit will end up close to BF unless you go to a lot of effort to make it different <-- hm... what other imperative tarpits exist that are different?
11:57:08 <lambdabot> forall a k. (Ord k) => a -> k -> M.Map k a -> a
11:57:18 <ais523> Vorpal: I can't think of any offhand
11:57:23 <ais523> although I wouldn't be completely surprised if there was one
11:57:31 <elliott_> ?pl \x -> findWithDefault x x m
11:57:34 <ais523> I suppose MiniMAX is relatively different, although I'm not so certain it's imperative
11:58:23 <ais523> Malbolge isn't a tarpit
11:59:38 <Vorpal> ais523, a befunge98-inf-space tarpit could be made. Remove instructions until you get a small set that is still TC
12:01:00 <Vorpal> ais523, what about OISCs?
12:01:14 <ais523> I suppose that explains why MiniMAX is different, because it's an OISC
12:01:27 <ais523> an OISC can't be massively BF-like, because none of BF's instructions are TC by themselves
12:01:27 <Vorpal> and the befunge subset?
12:01:57 <ais523> I imagine a befunge subset would be rather larger than BF, due to p and g being the only way to get infinite memory, and those requiring coordinates and a separate stack
12:03:29 <elliott_> aww, lsystems were as easy to do in haskell as i suspected
12:04:02 <Vorpal> ais523, it wouldn't need the numbers would it? You could construct all numbers from 1 and - I think. 11- (0) 11-1- (-1) 11-11-1-- (0-(-1) = 1, can be extended to 2 and so on, but I can't be bothered)
12:04:18 <ais523> Vorpal: indeed, but it's still being rather complicated
12:04:29 -!- derrik has joined.
12:04:57 <Vorpal> ais523, you will need a stack and p and g. I suggest w for turning. You can feed it constant values to do fixed turning
12:05:13 <Vorpal> then we can dispose []<>^vx etc
12:06:31 <Vorpal> ais523, no need for string mode, simple byte based IO is enough etc. I guess I'll try to make a serious attempt at this perhaps...
12:07:04 <Patashu> 'w' pops a value and determines direction?
12:07:06 <ais523> Vorpal: it's still going to end up more complex than BF
12:07:30 <ais523> Patashu: I think it turns left or right depending on zero or nonzero
12:07:35 <Vorpal> Patashu, it does a<b and goes straight ahead if equal
12:07:36 <ais523> I can't remember which way round
12:07:42 <Vorpal> and turns left/right depending on which one is largest
12:07:45 <ais523> ah, it's positive/negative/zero?
12:08:00 <Vorpal> | and _ are the ones ais523 described
12:08:19 <Vorpal> do we need logical not hm? I guess that can be emulated with w
12:08:49 <ais523> Vorpal: | and _ don't do turn left and turn right, they turn in two specific directions depending on negative or positive
12:08:49 <elliott_> :t Text.ParserCombinators.Parsec.sepBy
12:08:50 <lambdabot> forall tok st a sep. Text.ParserCombinators.Parsec.Prim.GenParser tok st a -> Text.ParserCombinators.Parsec.Prim.GenParser tok st sep -> Text.ParserCombinators.Parsec.Prim.GenParser tok st [a]
12:08:57 <ais523> it's quite common to approach a _ from the left, for instance
12:09:00 <ais523> *depending on zero or nonzero
12:09:39 <Vorpal> duplicate top of stack shouldn't be needed
12:10:02 <Vorpal> (11-11-p11-11-g11-11-g should do the trick)
12:10:44 <Vorpal> can be used to swap, but I can't be arsed to write that one out
12:13:35 <Vorpal> ais523, I *think* this should be bf-complete " ,-1@gpw~" (quotes not part of string, but needed to show that space is included, otherwise wire crossing issue would probably arise)
12:13:37 <elliott_> http://esolangs.org/wiki/Black_and_white_and_read_all_over stupid
12:14:00 <ais523> Vorpal: you can probably arrange for commands to cancel each other out in each direction, thus not needing space
12:14:39 <Vorpal> ais523, possibly. Anyway it isn't that much larger than bf in number of instructions
12:15:30 <Vorpal> ais523, this would require befunge, not unefunge of course, since unefunge lacks w, instead I think it uses _ and # (and possibly j) to be able to branch
12:19:00 <elliott_> oolzybub and murphy programs are pretty
12:20:27 <Vorpal> !befunge98 11-11-1--.a,@
12:20:34 <elliott_> (. do (. if? not? exists/dynast 5 ,then
12:20:34 <elliott_> create/countably/many/dynasts #myself#, 5 .) .) ,then
12:20:34 <elliott_> (. for each prime /p*|p/ below #myself#+2 do
12:20:34 <elliott_> for each prime /q*|q/ below /p*|pp/+1 do
12:20:36 <elliott_> if? not? exists/dynast /p*|p|p/+/q*|q|q/ ,then
12:20:38 <elliott_> copy/dynast #myself#, /p*|ppp/, /q*|qqq/ .)
12:20:51 <Vorpal> !befunge98 11-11-1-11-1---.a,@
12:20:56 <Vorpal> !befunge98 11-11-1-11-1--.a,@
12:21:00 <Vorpal> !befunge98 11-11-1-11-1-.a,@
12:21:20 <Vorpal> !befunge98 11-11-1-1--.a,@
12:22:14 <Vorpal> !befunge98 211p11g11g..a,@
12:32:41 -!- pumpkin has quit (Remote host closed the connection).
12:32:52 -!- copumpkin has joined.
12:32:52 -!- copumpkin has quit (Changing host).
12:32:52 -!- copumpkin has joined.
12:34:17 <Vorpal> Deewiant, ais523, should the funge-space in this tarpit version warp around as usual or should an IP head out into the "void" forever instead?
12:34:56 <ais523> Vorpal: I doubt it matters, it depends a lot on what you consider a tarpit to be
12:35:00 <Patashu> wrapping sounds more useful
12:36:48 <elliott_> wrapping makes it less of a tarpit
12:38:32 <elliott_> ais523: Can I ask questions about VHDL of you in the form of an IRC log?
12:38:56 <ais523> elliott_: you're physically capable of doing so, certainly
12:38:59 <ais523> you may even get replies
12:39:07 <ais523> and I won't be offended by the attempt to ask
12:39:33 <elliott_> http://codu.org/logs/log/_esoteric-minecraft/2011-07-06 <-- /What I don't understand how to do/ onwards (it's mostly Vorpal telling me to ask you instead)
12:39:57 <elliott_> Vorpal: Yeah, but that doesn't actually help me go from "logical tree with clock input" => "MC circuit".
12:40:05 <elliott_> There is no "clock input" block in Minecraft.
12:40:31 <elliott_> ais523: (The context is a synthesiser for Redstone logic in Minecraft.)
12:40:35 <Vorpal> elliott_, that is where synthesis comes into it. And I have no clue how to write a program that does that.
12:40:39 <elliott_> (Which is basically just NOR wires.)
12:41:17 <Vorpal> elliott_, you need to synth D-flipflops and possibly SR-latches too
12:41:24 <ais523> elliott_: the usual trick, and the one VHDL is obviously intended to use (and I suspect the synthesizers use behind the scenes) is to split your circuit up into two different sorts of blocks: combinational logic (arbitrary logic with no time dependence), and 1-cycle delays
12:41:52 <Vorpal> ais523, what about gate delay then?
12:41:53 <ais523> in fact, FPGAs are made up out of elements that consist of a lookup table (with four or six bits of input), followed by an optional 1-cycle delay
12:42:15 <elliott_> ais523: Hmm, so I make a bunch of "sub-components" which are just pure logic trees involving no clock, and then I have connections like "Output X of block abc connected to input Y of block def with one cycle delay"?
12:42:18 <Vorpal> ais523, and how does it do latches then?
12:42:33 <ais523> Vorpal: normally the length of a cycle is chosen to be large enough that gate delay is irrelevant compared to cycle length
12:42:37 <Vorpal> elliott_, yes then you reduced it to a problem of wire routing
12:42:48 <ais523> elliott_: yep, pretty much
12:43:19 <ais523> now, if you're on a hardware system where gate delay is very large, or where clock routing would be difficult, it's normally better to make an asynchronous circuit rather than a synchronous circuit
12:43:28 <ais523> that doesn't require a separate clock at all
12:43:36 <elliott_> ais523: I would say "I'm still not sure how I go from a tree of expressions with a clock input to that form", but I suspect the answer is either "you don't" or "that's an entire research field and industry, here's a link to ten classic papers".
12:44:22 <ais523> elliott_: it's not actually masssively hard, as long as the expressions themselves aren't doing anything particularly nonstandard
12:44:26 <Vorpal> elliott_, how would you do latches in a tree of that form?
12:44:31 <ais523> and if they are, your synthesis tool normally shouts and you and spouts warnings
12:44:38 <ais523> Vorpal: a D latch is a one-cycle delay
12:44:47 <Vorpal> ais523, hm. What about SR-latch?
12:45:13 <ais523> it's ((output OR S) AND NOT R) followed by a one-cycle delay
12:45:21 <ais523> where "output" is the output of that delay
12:45:23 <Vorpal> elliott_, anyway you need to be able to calculate shortest clock cycle that would work I think.
12:45:25 <Phantom_Hoover> elliott_, erm, if you have a tree of expressions, how does time actually matter?
12:45:31 <elliott_> ais523: I have a feeling my components will look something like:
12:45:38 <elliott_> ais523: Where C could be a clock, say.
12:45:42 <elliott_> ais523: So literally as simple as it gets.
12:45:46 -!- pikhq has quit (Ping timeout: 250 seconds).
12:45:49 <ais523> elliott_: that syntax is confusing me, is it reverse VHDL?
12:45:51 <elliott_> I'll probably have a few other primitive logical operations to "simplify" things.
12:45:56 <elliott_> Phantom_Hoover: Because you can have a clock input.
12:45:56 <ais523> (VHDL does D <= A nor B nor not C)
12:46:09 <elliott_> ais523: Inputs are ABC, outputs are DEF.
12:46:17 <ais523> well, that's combinational
12:46:24 <ais523> no clock dependence there
12:46:26 <elliott_> Phantom_Hoover: In a file elsewhere, you specify that C gets a clock input.
12:46:39 <elliott_> You'd also specify literal Minecraft block locations for the other inputs and the final output of the main component.
12:46:43 <ais523> what you're doing wrong, compared to standard calculation, is making both edges of the clock relevant
12:46:51 <elliott_> Phantom_Hoover: "A nor B nor ~C" is a tree.
12:47:06 <elliott_> ais523: You're going to be shocked by me not quite understanding, I'm sure.
12:47:28 <ais523> elliott_: let's see... in ordinary circuit design, you make everything in the circuit update at the "leading edge" of the clock, when it changes from 0 to 1
12:47:34 <ais523> and have the change from 1 to 0 have no effect
12:47:53 <ais523> there are physical reasons why doing that is a good idea
12:48:00 <elliott_> I literally made that example up without thinking because Vorpal said to use a clock input ;)
12:48:08 <elliott_> Gah, ;) looks way sleazier than I always intend
12:48:23 <ais523> (Vorpal's mention of DDR memory is relevant, that's memory which uses both edges of the clock in order to go twice as fast as anything else on the board, it's a bit of a disgusting hack)
12:48:27 <Vorpal> elliott_, no I meant in general, not for purely combinatorial circuits of course
12:48:32 <elliott_> ais523: Well, with Minecraft there's fun things like the not gates burning out if you flip them too much.
12:48:32 <Phantom_Hoover> ais523, yeah, my suggestion was to do that but with the physics ticks as the clock.
12:48:53 <elliott_> Phantom_Hoover: Wait, is there still that sixteen block limit?
12:48:56 <ais523> anyway, the trick is to not use your clock input like other sorts of logic input
12:49:03 <ais523> elliott_: can you get around that by doing A nor A?
12:49:09 <ais523> or does that burn out too?
12:49:20 <elliott_> ais523: I think you can, but a not gate (one redstone torch) is a lot smaller.
12:49:24 <Vorpal> ais523, there are some stuff that uses two clocks 90 degrees out of phase, to do QDR
12:49:43 <Vorpal> ais523, and I think there is some insane memory used in gaming consoles (PS3 and such) that has octal data rate...
12:49:45 <ais523> that's even more of a disgusting hack, and likely causes all sorts of problems for the engineers making those things
12:49:50 <elliott_> Hmm, does fancy ASIC synthesis involve any kind of three-dimensional layout?
12:50:02 <elliott_> I have a feeling the kind of complexities involved here are super-super-exponential :)
12:50:03 <ais523> probably, even if it's just to cross wires
12:50:04 <Patashu> minecraft redstone is disgusting, no way around it
12:50:16 <elliott_> "Pack this circuit into a twenty by twenty by twenty box for me." "No. Argh. My brain. Stop. It hurts."
12:50:29 <ais523> standard ASIC synthesis techniques wouldn't like having to do that, but they'd be capable of doing it
12:50:41 <Vorpal> elliott_, no no, "here is the outline made out of intersecting cuboids that you have to fit it into"
12:50:45 <ais523> also, you really don't want to know how circuits are place and routed for FPGAs and ASICs in real life
12:50:55 <Patashu> to do a complex sequence of pistons you have to activate them with slight delay?
12:51:04 <ais523> so I'll tell you anyway: they get powerful computers to run overnight trying lots of placements with genetic algorithms, until it happens to fit
12:51:07 <ais523> and then just run with it
12:51:09 <ais523> the result is generally a mess
12:51:31 <Vorpal> ais523, for smaller ones in FPGAs it just takes a few minutes usually
12:51:40 <Vorpal> or do you mean the silicon layout?
12:51:47 <ais523> Vorpal: no, I mean that layout
12:51:59 <ais523> it takes just a few minutes for small programs, because the routing doesn't need to be very good to make it fit
12:52:02 <elliott_> ais523: Anyway, is this high-level type of design correct?: You define your combinatorial circuits and whatever as the main bulk of the thing, and then you have a separate file naming the "main" circuit, and giving the Minecraft block positions of where each input signal should come from, and where each output signal should go to
12:52:05 <ais523> the larger the program, the harder it is to fit it on the board
12:52:11 <elliott_> Obviously I'm still not sure how to do clocks, but that's the basic idea
12:52:23 <elliott_> Then you'd build buttons and levers and whatnot on top of it so you can actually use the inputs
12:52:25 <Vorpal> elliott_, how do you plan to do latches?
12:52:29 <ais523> elliott_: yep, that'd probably work
12:52:30 <elliott_> And, I dunno, noteblocks or doors or whatever at the outputs
12:52:31 <Patashu> what are you guys planning? minecraft circuit design?
12:52:37 <Patashu> oh, you're making a song creator
12:52:49 <ais523> elliott_: look up the "master/slave J/K flip-flop" somewhere
12:52:54 <elliott_> Patashu: I'm trying to figure out how feasible a Minecraft synthesis tool is :)
12:53:06 <Vorpal> ais523, I know what a J/K one is, but not what a master/slave J/K one is...
12:53:06 <elliott_> Vorpal: Do latches require any special handling?
12:53:09 <ais523> it's a standard circuit that you can make into various types of flip/flop
12:53:16 <Patashu> would a midi -> minecraft noteblock approximator be easier or harder
12:53:25 <Vorpal> elliott_, probably, do you plan to use VHDL syntax?
12:53:28 <ais523> Vorpal: it's basically a particular set of internals for a J/K, which has the advantage that it can be done entirely with combinatorial components
12:53:38 <elliott_> Vorpal: Dunno; if VHDL, definitely a subset.
12:53:47 <elliott_> And the actual layout file will be custom because it's, you know, Minecraft-specific.
12:53:58 <ais523> the clock speed is going to be freakishly low, but it's Minecraft so it probably doesn't matter
12:54:13 <Vorpal> elliott_, then look up how you define a process in vhdl, for sequential circuits. That is like a FSM written in VHDL basically
12:54:16 <elliott_> Sure it matters, you don't want your door opening two seconds after you hit your button
12:54:51 <elliott_> ais523: But yeah, how should I handle clock inputs if not through a regular logical input?
12:55:07 <ais523> it's just a regular logical input in terms of synthesis
12:55:14 <ais523> you just only use it as the clock input to a delay block
12:55:17 <ais523> and not in any other way
12:55:41 <Vorpal> ais523, err routing needs to be done so all parts get the clock at the same time
12:55:59 <ais523> Vorpal: actually, that's not strictly necessary as long as the clock is slow enough
12:56:07 <Vorpal> and in actual FPGAs I would guess that the clock wires are hard-wired, no?
12:56:09 <ais523> it's just that the more symmetrical the clock routing, the faster you can clock it
12:56:23 <elliott_> ais523: Would it be fair to say that a redstone synthesiser would be way beyond my knowledge and abilities of synthesis at this point? :-P
12:56:23 <ais523> and in actual FPGAs, there are hardwired symmetrical clock wires in order to help bring the clock speed up
12:56:32 <elliott_> "How hard can it be?", I thought. "It's just NOR gates."
12:56:33 <ais523> elliott_: I wouldn't say way beyond
12:56:51 <ais523> I'd say if you really cared about doing it, and focused on it for a few weeks, you could probably get there
12:56:54 <ais523> but you'd likely get bored first
12:57:05 <elliott_> That's just a general me-related assessment, nothing related to the project :P
12:57:10 <Vorpal> elliott_, if you just want combinatorial expressions without any state then yes, it is much simpler
12:57:21 <elliott_> Vorpal: Surely you can simulate state with the former.
12:57:32 <ais523> Minecraft seems pretty much perfectly suited for asynchronous design, actually
12:57:35 <elliott_> I just want delay handling and basic logics.
12:57:45 <ais523> but it has the downside of making the input programs harder to write
12:57:51 <elliott_> Without handling of time it's pretty much useless because you can't make circuits that actuall ydo aynthing.
12:58:02 <Vorpal> ais523, indeed, everything is clocked in a way, redstone updates on ticks of the game engine
12:58:14 <ais523> Vorpal: which would make the main problem of asynchronous design way easier to solve
12:58:17 <elliott_> ais523: Well, it can't be harder than the current method of creating redstone circuits (= manually designing and laying them out by hand)
12:58:21 <Vorpal> ais523, I think almost all my redstone circuits (some fairly complex) have been mostly asynchronous
12:58:32 <Patashu> I thought there was a redstone developer tool?
12:58:36 <Patashu> sounds better than 'by hand'
12:58:37 <ais523> you can rely on wires to transmit signals at a consistent rate
12:58:40 <Vorpal> I have done a few clocked ones, but usually only for some part
12:58:43 <ais523> what are the semantics of redstone, anyway?
12:58:48 <elliott_> Patashu: Probably just "Paint: The Redstone Edition"
12:59:01 <elliott_> ais523: NOR wires and a NOT torch, as I understand it
12:59:12 <elliott_> ais523: Plus signals only travel along a wire for sixteen blocks and then you need a repeater
12:59:12 <ais523> what do you mean by "NOR wires"?
12:59:16 <elliott_> Repeaters also have a delay setting
12:59:20 <Vorpal> ais523, well, the redstone wire transmits a wire instantly up to 15 blocks along the wire. Then you need to add a repeater (adds a 1 tick delay)
12:59:28 <Vorpal> if you want it going any further I mean
12:59:30 <elliott_> ais523: If you're up for opening a browser... http://www.minecraftwiki.net/wiki/Redstone_circuits
12:59:40 <Phantom_Hoover> <elliott_> ais523: NOR wires and a NOT torch, as I understand it
12:59:41 <elliott_> It summarises the mechanism briefly
13:00:10 <elliott_> You create the gate by laying wire, that's all that matters.
13:00:23 <Vorpal> ais523, then there are redstone torches, which are basically inverters. Can be used to make a NOR gate. You can make "connect wire-together" style OR of course, but that has the obvious disadvantage of flowing back into the inputs
13:00:26 <Phantom_Hoover> No, the gate needs a torch and a semiconducting block.
13:00:49 <Vorpal> Phantom_Hoover, "semiconducting block"?
13:01:44 <Vorpal> ais523, there are a number of quirks as well, like repeater in front of solid block doesn't just power the block, but actually powers through it. (can be used to make a physical OR or AND gate with pistons, that is quite a bit slower though)
13:02:11 <ais523> hmm, I think I prefer CUBE's way of doing things
13:02:21 <Phantom_Hoover> Vorpal, a lot of the edge cases are frankly nondeterministic.
13:02:24 <Vorpal> Phantom_Hoover, http://www.minecraftwiki.net/wiki/File:Pistongates.png <-- I seen those before (I made one of them)
13:02:28 <Vorpal> (not me who took the screenshot)
13:03:03 <Vorpal> <Phantom_Hoover> Vorpal, a lot of the edge cases are frankly nondeterministic. <-- some are deterministic and can be exploited
13:03:19 <elliott_> Yeah yeah, but that's not relevant to synthesis.
13:03:32 <Vorpal> Phantom_Hoover, yeah that depends on chunk boundary as far as I can tell
13:03:49 <Patashu> wow, chunk boundaries affect redstone processing?
13:04:21 <elliott_> I think we've successfully scared ais523 away.
13:04:42 <ais523> this Minecraft stuff is just too complex for me to visualise
13:04:49 <ais523> it seems like a particularly crazy set of primitives to use
13:04:53 <elliott_> ais523: It's not; Vorpal is overcomplicating things because he's Vorpal.
13:04:56 <Vorpal> elliott_, well.. library IEEE; using ... blah blah; entity foo is port (A,B,C: in std_logic; D, E, F: out std_logic) end foo;
13:05:17 <ais523> elliott_: based on the page you linked
13:05:34 <elliott_> ais523: They're also overcomplicating things because they're a minutiae wiki.
13:05:40 <Vorpal> architecture whatever of foo is begin D <= A nor B nor not C; E <= A nor not C; F <= A; end whatever;
13:05:49 <elliott_> I should have just referred you to Phantom_Hoover, GOD OF ALL EXPLANATION.
13:05:54 <elliott_> Vorpal: Wow well fuck that I'm using my own syntax.
13:06:04 <ais523> I noticed that page has a design for an edge-triggered D flip-flop, though
13:06:13 <ais523> which is the only sequential circuit you need
13:06:20 <ais523> and everything else can just be logic gates
13:06:21 <Vorpal> ais523, the issue with mc redstone is basically that there are quite a few edge cases. If you keep away from them it is quite simple
13:06:40 <elliott_> ais523: So I take it combinatorial circuits can't call out to other circuits? You have to lay it out more manually.
13:06:47 <Phantom_Hoover> ais523, OK, basically, torches can be placed on a block, and will power all blocks they are immediately adjacent to when on.
13:06:58 <ais523> elliott_: sure they can, as long as you know what you mean by "call out"
13:07:17 <Phantom_Hoover> If the block they're placed on is powered, the torch is deactivated.
13:07:25 <Vorpal> Phantom_Hoover, is that ground-torch or wall torch?
13:07:33 <ais523> the normal equivalent to function calls in VHDL is effectively just #define from C
13:07:38 <Vorpal> Phantom_Hoover, wall torch powers block below?
13:07:48 <ais523> you just have standard arrangements of wires, that you inline in more complicated versions
13:07:51 <elliott_> ais523: I mean e.g. foo(A,B) => C; begin C <= bar(A,B) nor A; end;
13:08:03 <elliott_> ais523: Yeah, I suppose inlining is basically the name of the game
13:08:07 <ais523> elliott_: yes, you just inline
13:08:11 <elliott_> ais523: At the end of it all there's only one circuit
13:08:17 <elliott_> With a bunch of fixed-position outputs and inputs
13:08:35 <Vorpal> elliott_, nope, that doesn't make sense. You do some wire connecting to an entity instead.
13:08:38 <ais523> well, /I/ don't just inline, because my whole Master's project (that lead into my PhD) was looking into ways to not have to inline
13:08:41 <ais523> but everyone else does
13:08:56 <Vorpal> functions are usually built in ones, like rising_edge(signal) iirc
13:09:12 <Vorpal> ais523, so how did you manage to not inline?
13:09:12 <ais523> Vorpal: actually, that's an abbreviation for signal'event and signal = '1'
13:09:25 <Vorpal> ais523, okay I was using signal as a variable name here
13:09:29 <Vorpal> forgot that it was a keyword
13:09:36 <ais523> I also forgot it was a keyword
13:09:36 <elliott_> <Vorpal> elliott_, nope, that doesn't make sense. You do some wire connecting to an entity instead.
13:09:41 <elliott_> Um, ais523 just said what I said made sense.
13:09:46 <Vorpal> ais523, I think it is?
13:10:00 <ais523> Vorpal: yes it is, I couldn't have forgotten it was a keyword if it wasn't a keyword
13:10:26 <ais523> Vorpal: as long as you know a function isn't being accessed from two places simultaneously, you can basically connect it to a multiplexer/demultiplexer
13:10:34 <ais523> hmm, I should so abbreviate that to mudem
13:11:03 <ais523> there's a lot of mathematical basis behind calculating when that optimisation is safe and when it isn't
13:11:43 <Vorpal> ais523, btw it is interesting how not (a xor b) is a == b (if a and b are single bits).
13:11:54 <ais523> why is that interesting?
13:12:04 <Vorpal> hm, I just think it is
13:13:18 <elliott_> Hmm, is "Q" usually used as the variable name for the final output of a logical operation?
13:13:30 <Vorpal> ais523, how do you make a monostable circuit in vhdl?
13:13:43 <ais523> same way you make any other time-dependent circuit
13:13:59 <Patashu> I want to know how too actually
13:14:05 <Phantom_Hoover> <elliott_> Hmm, is "Q" usually used as the variable name for the final output of a logical operation?
13:14:16 <ais523> a one-cycle monostable is simplest, it's just a one-cycle delay
13:14:22 <Phantom_Hoover> Clearly it's for charge, representing the charge passed through the wire.
13:14:28 <ais523> for a multiple-cycle monostable, it's probably clearest to use a counter
13:14:35 <ais523> or else a shift register
13:14:38 <ais523> depending on what you're trying to do
13:14:45 <elliott_> <elliott_> Hmm, is "Q" usually used as the variable name for the final output of a logical operation?
13:14:52 <ais523> counters are going to be better for long delays
13:15:01 <ais523> elliott_: my yes was an answer to your question about q
13:15:11 <ais523> Phantom_Hoover was joking, I think
13:15:32 <elliott_> Wow, what the hell is XNOR for.
13:15:48 <elliott_> Also: Is it just me, or is a good thirty percent of what synthesisers do common subexpression elimination?
13:15:53 <ais523> XNOR or EQV comes in useful sometimes
13:16:14 <ais523> elliott_: hmm, I didn't actually know they did CSE, although it wouldn't surprise me
13:16:24 <ais523> sometimes they do common subexpression introduction, for fanout reasons
13:16:33 <elliott_> ais523: Well, if your primary method of composing programs is inlining...
13:16:42 <elliott_> ais523: "An XNOR gate can be constructed from four NOR gates implementing the expression "(A NOR N) NOR (B NOR N) where N = A NOR B"."
13:16:47 <elliott_> ais523: Surely at the lower level, N would be inlined here?
13:16:56 <elliott_> And thus it would be up to CSE to find out that it didn't have to construct two identical (A nor B) gates.
13:17:07 <ais523> elliott_: actually, it all gets converted into lookup tables
13:17:21 <ais523> it'll see there's only two inputs, and just put the truth table for an XNOR right into the FPGA
13:17:33 <ais523> FPGAs aren't based on NOR/NAND behind the scenes
13:17:52 <Vorpal> ais523, how is a lookup table constructed in silicon hm...
13:17:58 <elliott_> ais523: Well OK yes but redstone is.
13:18:06 <elliott_> ais523: Maybe I should convert it all to lookup tables and then convert it back to redstone.
13:18:14 <ais523> elliott_: yep, so standard synthesis techniques wouldn't map directly onto Minecraft
13:18:28 <ais523> what causes a redstone torch to burn out?
13:18:34 <elliott_> I have a feeling that making that := construction do anything but introduce a macro-esque thing is a Bad Idea.
13:18:40 <elliott_> (I mean, relying on it to not duplicate things.)
13:18:43 <Vorpal> <ais523> what causes a redstone torch to burn out? <-- toggling too fast
13:18:49 <ais523> Vorpal: ah, that makes sense
13:19:06 <elliott_> Vorpal: I really hate Notch for that.
13:19:12 <elliott_> "Hmm... a virtual world... anything is possible..."
13:19:13 <Vorpal> ais523, I think it is basically to stop lag killing the game. Toggling every third cycle seems to work fine.
13:19:21 <elliott_> "I know! I'll introduce arbitrary physical limitations!"
13:19:32 <Vorpal> elliott_, like... falling too far kills you?
13:19:37 <Patashu> there's a bukkit plugin for redstone chips
13:19:41 <Patashu> but that's not esoteric anymore
13:19:47 <Vorpal> Patashu, there are several iirc
13:19:54 <Patashu> redstonechips, craftbook...
13:19:57 <ais523> yep, I was thinking that it was probably going to be something to do with preventing circuits taking up too much processor power
13:20:20 <Vorpal> Patashu, I "love" how craftbook has a NOT-chip that is larger than a pure redstone inverter
13:20:30 <Patashu> it's probably for consistency
13:20:37 <Patashu> like if you put a craftbook chip down and realize 'darn, I actually need NOT'
13:20:41 <Vorpal> on the other hand, craftbook *does* have some useful ones. Like light detector, water detector, and so on
13:21:05 <ais523> Patashu: it reminds me of the 0-ohm resistors you can buy
13:21:09 <Vorpal> the IO ones are moderately useful in craftbook. PRNG too.
13:21:19 <ais523> in case you happen to need a wire with the form factor of a resistor, say for wire-crossing on PCBs
13:21:26 <Patashu> I've suggested a circuitry system for terraria that involves wireless connections only, to < 1309976515 323147 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Something has gone terribly amiss on Codu :P
18:22:03 <elliott_> confidence in prgmr rising and rising
18:22:08 <elliott_> IM GETTING MY FIRST MONTH OF PRGMR FREE
18:22:35 <Phantom_Hoover> <oklopol> but the mouse was struggling till the end, is it just like mouse reflexes?
18:23:13 <Vorpal> <elliott_> confidence in prgmr rising and rising <-- you are kidding right?
18:23:30 <Phantom_Hoover> I'm guessing the nervous system that controls the twitches is disabled after higher brain functions.
18:23:55 <Vorpal> elliott_, so you won't get prgmr next time I guess
18:24:05 <elliott_> Vorpal: nothin' wrong with them
18:24:41 <Vorpal> elliott_, you didn't get your vps yet
18:25:29 <oklopol> Phantom_Hoover: maybe we should tell the youtube people that only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container.
18:26:00 <Gregor> `addquote <oklopol> ... only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container.
18:26:05 <HackEgo> 483) <oklopol> ... only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container.
18:26:11 <oklopol> Phantom_Hoover: well at least i have some looping going on
18:26:37 <Phantom_Hoover> oklopol, somehow I doubt that hamsters are a fixed boolean gate.
18:26:46 <oklopol> but i think the twitching system is.
18:27:53 <oklopol> probably it's like incredibly complicated, but it certainly doesn't seem very interesting.
18:28:07 <oklopol> but i guess that doesn't really matter when discussing how bad it is to torture it
18:28:39 <oklopol> because for instance torturing people without IO is considered horrible (even more horrible than torturing those with IO)
18:29:10 <oklopol> although different rules apply to humans so that's a bad example
18:29:18 <oklopol> Phantom_Hoover: you mean at torturing?
18:29:55 <oklopol> they are at least as cute as mice
18:30:09 <oklopol> so i don't think it's that unethical if they torture mice
18:30:50 <monqy> http://www.google.com/search?q=ugly%20cat&tbm=isch
18:30:52 <oklopol> i wish someone would write these rules down in a nice and accessible way, it has taken me years and years to deduce them from listening to idiots
18:36:35 -!- Gregor has set topic: TOPIC: Are hamsters Turing-complete? | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
18:36:56 <elliott_> <monqy> http://www.google.com/search?q=ugly%20cat&tbm=isch
18:37:20 <elliott_> `addquote <oklopol> [...] only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container.
18:37:21 <HackEgo> 483) <oklopol> [...] only the hamster's nervous system was tortured. although probably torturing a large logical gate constitutes a horrible thing to do if it comes in a cute container.
18:37:54 <oklopol> the problem with that is every idiot in the planet wants to repeat what Phantom_Hoover said when they see it
18:38:30 <oklopol> i'm not saying you're an idiot
18:38:44 <Phantom_Hoover> Yeah, I'm just wondering which thing you're referring to.
18:38:52 <oklopol> just the says the large logical gate
18:39:16 <oklopol> i mean it's funny but it's kind old
18:39:32 <oklopol> humor. humor is kinda old after this many years.
18:40:29 <Phantom_Hoover> In other news, someone on /r/AskScience thinks Minkowski space is hyperspace from Star Wars.
18:40:52 <pikhq> Is there any relation at all?
18:41:37 <Phantom_Hoover> The most often-used Minkowski space is the 3+1 dimensional one, which is a hyperspace by one definition.
18:41:58 <Gregor> Phantom_Hoover: Not the Star Wars one though ;P
18:42:04 <Phantom_Hoover> oklopol, well, no, it's a maths thing used in physics.
18:42:06 <pikhq> Yes, but Star Wars "hyperspace" is nothing more than advanced phlebotinum.
18:42:19 <Gregor> And yet, subspace is BETTER.
18:42:30 <pikhq> Gregor: That's Star Trek.
18:42:44 <Gregor> Like I said: Better :P
18:42:48 <pikhq> ... No argument there. :P
18:42:49 <Phantom_Hoover> pikhq, yes, please stop lecturing me on things you know damn well I understand.
18:43:45 <pikhq> Phantom_Hoover: ... I was lecturing?
18:44:37 <Phantom_Hoover> pikhq, you were about to launch into one of your "hey let me tell you all about this thing you just brought up", even though I know perfectly well what the difference is.
18:45:01 <pikhq> Phantom_Hoover: Actually, no, I wasn't.
18:45:28 <pikhq> There's really nothing more to be said about Star Wars "hyperspace". It's advanced phlebotinum. Absolutely nothing else *exists* about it.
18:45:57 <Gregor> pikhq: Related: http://codu.org/tmp/doubletie2.jpg
18:46:02 <Phantom_Hoover> oklopol, so yeah, it normally means R^4 with a weird distance metric.
18:46:18 <pikhq> Gregor: T3h awesome.
18:46:27 <Gregor> I have invented the future of neckties.
18:47:34 <pikhq> According to the documentary "Back to the Future", it will be custom to wear multiple ties in a mere 4 years.
18:48:00 <Gregor> OK, you're the second person to mention that, I guess I need to find that scene :P
18:48:07 <pikhq> http://images.wikia.com/bttf/images/1/19/Mockfry.jpg
18:49:04 <Gregor> On a scale from one to ten, my doubletie style is far, far better than that :P
18:49:25 <Vorpal> <Gregor> pikhq: Related: http://codu.org/tmp/doubletie2.jpg <-- Is that two different ties in one?
18:50:15 <pikhq> God. 2015 is 4 years from now. Where's my flying Delorean?
18:51:13 <Gregor> Two works well because humans are all symmetrically :P
18:51:14 <Phantom_Hoover> The past just keeps coming up to us and tries to make us feel guilty.
18:51:34 <elliott_> `addquote <Phantom_Hoover> pikhq, living in the future sucks. <Phantom_Hoover> The past just keeps coming up to us and tries to make us feel guilty.
18:51:35 <HackEgo> 484) <Phantom_Hoover> pikhq, living in the future sucks. <Phantom_Hoover> The past just keeps coming up to us and tries to make us feel guilty.
18:51:42 <Vorpal> Gregor, but yours are intertwined anyway
18:51:57 <Gregor> Vorpal: Yeah, but to get them that way I have to wrap them 'round my neck somehow.
18:52:03 <Gregor> Vorpal: And the way I do that is one in each direction.
18:52:08 <Gregor> Vorpal: Any other way would create an imbalance.
18:52:13 <Phantom_Hoover> `addquote <Phantom_Hoover> pikhq, living in the future sucks. <Phantom_Hoover> The past just keeps coming up to us and trying to make us feel guilty.
18:52:14 <Vorpal> Gregor, ah so two 4 then, two at front, two at back
18:52:15 <HackEgo> 484) <Phantom_Hoover> pikhq, living in the future sucks. <Phantom_Hoover> The past just keeps coming up to us and trying to make us feel guilty.
18:52:32 <Vorpal> Gregor, like the idea?
18:52:42 <Vorpal> Gregor, you know you have to try it
18:53:07 <Vorpal> Gregor, anyway isn't having only one tie imbalanced?
18:53:33 <Gregor> Vorpal: Yeah, half of what goes into tying a tie is about balancing it again.
18:54:30 <Gregor> Anyway, the point is that doubleties rule and >=tripleties will have to wait 'til at least 2015 :P
18:55:02 -!- Lymee has quit (Ping timeout: 255 seconds).
18:55:58 <Vorpal> Gregor, hm... what about ties all around?
18:56:18 <Vorpal> probably the actual mechanism for them being attached to you would have to be modified
18:56:35 <Vorpal> I mean, it would likely be bulky otherwise
18:57:16 <Gregor> Here I go and invent the future of neckties.
18:57:24 <Gregor> And everybody's like "Oh we want the future of the future of neckties"
18:57:46 <oklopol> i'm not, all i'm saying is you shouldn't wear a tie at all
18:58:02 <oklopol> the future is about taking your clothes off, not putting more of them on
18:58:15 <Vorpal> Gregor, have you tried wearing it like in back to the future?
18:58:52 <Gregor> Vorpal: That doesn't even make any sense with a normal collar ... hell, it barely makes sense with a modified collar, you'd need to clip them for them to not get in each others' way and they'd always make you look stout.
18:59:21 <oklopol> Gregor: imo tie number two doesn't show enough, it might as well just be coloring on tie #1.
18:59:37 <oklopol> you don't see its glans for instance
18:59:46 <Gregor> oklopol: But it adds /texture/ as well as color.
18:59:49 <oklopol> well you won't with a suit anyway i guess
18:59:56 <Vorpal> Gregor, anything wrong with stoutness?
19:00:26 <Gregor> Vorpal: If you're >6ft tall, you can probably afford to look a bit stout, otherwise you should be aiming in the other direction :P
19:00:42 <Vorpal> Gregor, what is that in SI?
19:01:21 <Vorpal> Gregor, 1.8? that is short :P
19:01:52 <oklopol> i'm 1.8 and i consider myself pretty short
19:01:52 <Vorpal> actually last I checked I was 1.895, which means I should round it to 1.9
19:02:14 <oklopol> in europe, everyone's just tiny
19:02:48 <Vorpal> Gregor, are we unusually tall? I thought that was a myth
19:02:56 <oklopol> everything's a myth, everything is true
19:03:02 <Vorpal> I mean, you surely have tall people in US too
19:03:10 <Vorpal> there are short peoples here in Sweden as well
19:03:15 <Gregor> Vorpal: The average is taller.
19:03:29 <Vorpal> I know someone in my age who is like 1.5-1.6 or so
19:03:38 <Gregor> I'm (I guess) about 1.77m, and slightly above average for American men.
19:03:53 <Vorpal> wait that preposition was a Swedishism right?
19:04:02 <Vorpal> it isn't "in my age" in English is it?
19:04:30 <oklopol> Gregor is just kind of a wank
19:04:31 <Gregor> "in my age group" would be right in some circumstances, but just "my age"
19:04:33 <Vorpal> Gregor, what is the correct way to say it then, someone who is about as old as you are
19:04:46 <Vorpal> Gregor, with no preposition for the latter?
19:04:47 <Gregor> "about my age" to emphasize that it's an estimate.
19:05:00 <Gregor> "I know someone about my age who ..."
19:05:17 <oklopol> sorry i'm not actually reading what Vorpal is saying
19:05:21 <Vorpal> "i min ålder" is idiomatic in Swedish, but obviously not in English
19:05:27 <elliott_> Vorpal would not believe my height :P
19:05:38 <Vorpal> elliott_, I know you are short, forgot how short.
19:06:10 <Gregor> But he's also probably still at a growin' age.
19:06:16 <Vorpal> elliott_, you aren't fully grown yet though. The person who I mentioned above is.
19:06:21 <olsner> I was also short when I was 8
19:07:12 <Gregor> I was like 10ft tall when I was 8. I shrank. A lot.
19:07:18 <Vorpal> olsner, oh so was I, I was only second tallest in my class in school :P
19:07:27 <Vorpal> I forgot how tall that was though
19:07:50 <oklopol> "in my age" is most certainly correct english but mostly as in "in your age i already had a job" but when talking to yourself
19:08:07 -!- Lymee has joined.
19:08:32 <Gregor> oklopol: That's "at your age" or "at my age", not "in your age" or "in my age". "In <something> age" would be talking about age in the sense of an epoch of time.
19:08:39 -!- BeedaWeeda has joined.
19:08:39 -!- BeedaWeeda has quit (Changing host).
19:08:39 -!- BeedaWeeda has joined.
19:08:51 <monqy> when i was your age
19:08:54 <Gregor> Like "in my age" would probably mean "in the era of my youth"
19:09:56 <Gregor> Long story short: oklopol lies, trust those who natively speak English and its over-the-pond derivative.
19:10:31 <oklopol> you can certainly say things like "you shouldn't do that in your age"
19:10:38 <Vorpal> besides, even I feel short sometimes. At the local Aikido club there is one guy who I estimate is about 2 meters tall.
19:10:46 <elliott_> <Vorpal> elliott_, you aren't fully grown yet though. The person who I mentioned above is.
19:10:56 <elliott_> i'm a few inches taller than my mother, so don't get too hasty :)
19:11:01 <Vorpal> Gregor, well he is definitely above average up here
19:11:13 <Gregor> Vorpal: 2m is above average (nearly?) everywhere :P
19:11:47 <Vorpal> elliott_, well I'm taller than both my parents (who are already rather tall)
19:11:56 <Vorpal> Gregor, how tall are you?
19:12:01 <Phantom_Hoover> <oklopol> you can certainly say things like "you shouldn't do that in your age"
19:12:05 <Gregor> In metric, I guess about 1.77m
19:12:11 <Vorpal> Gregor, ah, quite short
19:12:24 <Gregor> Vorpal: SLIGHTLY TALL >_<
19:12:29 <Vorpal> Phantom_Hoover, it was a language mixup indeed
19:12:39 <Gregor> Phantom_Hoover: I've given up :P
19:12:57 <oklopol> i'm sure i'll find a use that sounds okay
19:13:06 <Gregor> Short Mother, the new gangsta' rap hit by monqy.
19:13:16 <oklopol> you people just lack imagination
19:13:21 <Gregor> oklopol: I told you one :P
19:13:35 <oklopol> "<Phantom_Hoover> I've never heard 'in' used that way." <<< me neither, what does that have to do with anything
19:14:17 <oklopol> Gregor: but not a whole sentence that sounds good
19:14:52 <Gregor> In my age, we entertained ourselves by pushing a hoop with a stick down a dirt road.
19:14:53 <olsner> Gregor: 1.77m isn't quite "short" just because Vorpal says so, but it's not exactly tall either... untall perhaps
19:16:26 <oklopol> "you shouldn't do that in your age" is rather hard to interpret
19:16:42 <Gregor> Y'know, I'll bet that hoop-with-a-stick game is actually really friggin' difficult.
19:16:51 <Gregor> I guess it depends on the shape of the hoop.
19:17:02 <Gregor> If it's like a hula-hoop, it'd be nigh on impossible.
19:17:03 <olsner> the average is 1.815m apparently
19:17:19 <Gregor> olsner: Average where?
19:17:57 <Vorpal> <Gregor> Y'know, I'll bet that hoop-with-a-stick game is actually really friggin' difficult. <-- hm?
19:18:12 <Gregor> oklopol: Well, coulda been Scandinavia, or all the Nordic countries.
19:18:25 <Gregor> Vorpal: Where you push a hoop with a stick, trying to keep it upright.
19:19:09 <Vorpal> Gregor, I'm not familiar with that game
19:19:21 <Gregor> oklopol: "<Gregor> I guess it depends on the shape of the hoop. <Gregor> If it's like a hula-hoop, it'd be nigh on impossible."
19:20:10 <Vorpal> W|A on "average human height in Sweden": Input interpretation: "human | height | Sweden | highest point"
19:20:18 <Vorpal> "Assuming a list | Use multiplication instead"
19:21:22 <oklopol> Gregor: usually it's like a bike wheel
19:21:43 <Gregor> Well, that's better than a hula-hoop ...
19:21:43 <oklopol> i mean without the actual tire
19:21:52 <Gregor> Then that's a lot easier, yes.
19:22:01 <Gregor> Because it's actually relatively stable upright.
19:22:24 <Gregor> oklopol: Why do you have so much experience with hoop-and-stick? :P
19:22:34 <oklopol> well exactly as stable as one with the tire if it's moving, point is you can actually do something with the stick
19:22:50 <oklopol> Gregor: my fetish: learning pointless skills
19:23:23 <elliott_> `addquote <Gregor> oklopol: Why do you have so much experience with hoop-and-stick? :P <oklopol> Gregor: my fetish: learning pointless skills
19:23:24 <HackEgo> 485) <Gregor> oklopol: Why do you have so much experience with hoop-and-stick? :P <oklopol> Gregor: my fetish: learning pointless skills
19:23:48 <oklopol> i have actually tried that only once but there's really nothing to learn
19:25:58 <oklopol> Gregor: okay i give up, can you make "in your age" make sense as well? :D
19:26:31 <oklopol> maybe just the same way but that sounds just kind of weird
19:26:45 <Gregor> oklopol: In my age, we entertained ourselves by pushing a hoop with a stick down a dirt road; in your age, you entertained yourself with heroin and prostitutes.
19:27:07 <oklopol> hmm right like when HE was a kiddo
19:27:31 <oklopol> btw i saw my first prostitute about a week ago
19:27:56 <elliott_> `addquote <oklopol> btw i saw my first prostitute about a week ago
19:27:57 <HackEgo> 486) <oklopol> btw i saw my first prostitute about a week ago
19:27:59 <Gregor> Is "saw" a euphemism here :P
19:28:19 <oklopol> they were usually kind of ugly
19:28:45 <oklopol> i (literally) saw some cute ones in germany of all places, but i was not alone so didn't try
19:29:08 <oklopol> ..."try" because sex is so hard to get right.
19:29:43 <Gregor> With a legit partner, sure. With a prostitute, not so much :P
19:30:08 <elliott_> lesson learned: partners make sex unneccessarily difficult
19:30:50 <elliott_> good thing my partner is an ex con........... SEX con.........
19:31:09 <oklopol> have you lost the bet yet?
19:31:20 <oklopol> wait what were the rules, can you take it up the old blackie?
19:31:45 <elliott_> if im still a virgin by seventeen you give me money, hint, you are going to be giving me money
19:32:12 <oklopol> and i'm asking what is considered virginity
19:33:10 <oklopol> okay i thought i got tachycardia but it was just the neighbor playing music
19:33:12 <Vorpal> elliott_, wait what? oklopol gives money to people who are virgins at a certain age?
19:33:40 <oklopol> yeah Vorpal i'm not giving you bonus for being virgin at 20
19:33:55 <Vorpal> oklopol, what about 22?
19:34:18 <oklopol> i'm not sure i could feed the whole channel
19:34:18 <Vorpal> oklopol, anyway I has already been 17
19:35:06 <oklopol> "anyway I has already been 17" is actually more valid english than your earlier sentence, since it's actually in use by many interesting people
19:36:51 <oklopol> in your age you probably don't hear much as a general i have my own grammar type of thing, but it seems to be a relatively common swedishism
19:37:24 <oklopol> anyway 22 is nothing compared to SOME PEOPLE i know who are still virgins
19:39:57 <Vorpal> oklopol, so why wouldn't elliott_ be a virgin by 17? the odds are in his favour
19:40:18 <oklopol> well let me let you in on it
19:40:23 <oklopol> everyone else ignore me for just a little bit
19:41:03 <oklopol> so Vorpal see i'm actually a devout christian and i'm trying to keep him a virgin until he gets married
19:41:34 <oklopol> with most people on the channel i have some sort of technique of doing this, with elliott it's an open bet
19:41:45 <oklopol> with you, well, i really didn't have to do anything
19:41:52 <oklopol> okay everyone can unignore me now
19:42:11 -!- azaq23 has joined.
19:42:19 <oklopol> Vorpal: could you please tell them?
19:42:31 <oklopol> i don't wanna be silent :\
19:43:03 <oklopol> thank god i was ignored because i certainly didn't want anyone in on *that*
19:44:03 <elliott_> <Vorpal> oklopol, so why wouldn't elliott_ be a virgin by 17? the odds are in his favour
19:44:04 <Gregor> What are you trying to do :P
19:44:12 <oklopol> Gregor: trying to get people to unignore me
19:44:15 <elliott_> <oklopol> and i'm asking what is considered virginity
19:44:18 <elliott_> we hashed out the entire definition
19:44:21 <Gregor> `echo It's echo, genius :P
19:44:37 <Vorpal> <oklopol> i wanna be hurd <-- gnu hurd?
19:44:41 <oklopol> `echo please unignore me now okay, says oklopol
19:44:42 <HackEgo> please unignore me now okay, says oklopol
19:45:24 <Vorpal> <elliott_> gee thanks :D <-- well come on, you are a geek.
19:45:45 <oklopol> Gregor: `echo is kind of silly
19:45:53 <Gregor> oklopol: Dood ... it's UNIX >_<
19:46:05 <olsner> who's ignoring the oklo?
19:46:15 <elliott_> Vorpal: geek =/= socially retarded
19:46:22 <elliott_> i happen to be socially retarded, but they're not the same thing.
19:46:26 <oklopol> olsner: everyone ignored me for a while
19:46:33 <Gregor> elliott_: No, more like geek (subsetof) socially retarded :P
19:47:01 <oklopol> i'm neither a geek nor socially retarded, i'm just kind of stupid
19:47:17 <oklopol> olsner: well then you're an asshole i guess :(
19:47:26 <oklopol> olsner: don't tell anyone what you heard plz
19:47:27 <monqy> i ignored oklopol when he told me to ignore him
19:48:01 <monqy> i did not heed his command
19:48:13 <monqy> i heard the whole thing
19:48:14 <Gregor> `run ln -s /bin/echo bin/say
19:48:15 <olsner> oklopol: heard? I saw text but heard nothing
19:48:22 <Gregor> `say lulstupidcommands
19:48:35 <oklopol> Gregor: thanks, that's actually possible to guess
19:48:50 <oklopol> unlike echo, what the fuck is that supposed to mean
19:49:36 <Gregor> Except that `echo is quite guessable if you know what HackEgo is :P
19:50:27 -!- CakeProphet has joined.
19:50:27 -!- CakeProphet has quit (Changing host).
19:50:27 -!- CakeProphet has joined.
19:50:43 <oklopol> Gregor: well i know, didn't actively remember because it's so incredibly uninteresting
19:50:43 <olsner> flip some consonants in that name and you'll get HagEcho
19:51:00 <oklopol> olsner: now there's something i can understand
19:51:01 -!- Lymia has joined.
19:51:02 <elliott_> <Gregor> elliott_: No, more like geek (subsetof) socially retarded :P
19:51:06 <CakeProphet> foldl, applied to a binary operator, a starting value (typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right
19:51:14 <CakeProphet> the idea of having two different identites intrigues me.
19:51:50 <oklopol> i saw the most horrible geek, he was like the most geek geek ever and he was at this party and he was being such a geek and everyone was like wow now that guy's a geek
19:51:53 <oklopol> i tell the best stories i know
19:53:04 <oklopol> his shirt looked like one of those star trek shirts although it was slightly different
19:53:10 <olsner> geekhood and social retardation may be correlated but loads of people have either without having both
19:54:01 -!- Lymee has quit (Ping timeout: 246 seconds).
19:57:18 <oklopol> i usually try to tell people i'm a mathematician as fast as possible so they know i'm a geek
19:58:10 <oklopol> people have very different reactions really
19:58:10 <Gregor> I say I'm an informatician.
19:58:52 <Gregor> #1 reason to use the word "informatics" instead of "computer science": Nobody thinks they know what informatics means, whereas people think they know (but in fact do not know) what computer science means :)
19:59:10 <olsner> my title is "Developer" ... I guess I'm a programmer
19:59:28 <Gregor> #2 reason: Nobody asks you to fix their computer if you tell them you're an informatician.
19:59:30 <oklopol> same with math really, could someone supply me with the math version of informatics
19:59:53 <oklopol> i actually told this norwegian woman i do math
20:00:05 <oklopol> oh that's cool, i'm reading a book on numerology
20:02:49 <olsner> ok, I now proclaimed me a Certified WOMM Certification Engineer
20:04:59 <oklopol> oh and then there was another norwegian who was like "wow i love math, i remember when our math teacher taught us that one is not actually REALLY one!"
20:07:05 <oklopol> just think about it, the one thing she has committed in her memory about WHAT MATH REALLY IS ABOUT is some misunderstanding of set theory of her teacher's
20:07:19 <oklopol> or whatever, i don't really know what her teacher had misunderstood
20:07:46 <elliott_> <Gregor> I say I'm an informatician.
20:07:55 <elliott_> i kind of like "computing theorist" but it sounds really pretentious :D
20:08:05 <monqy> computing theorist is good
20:08:47 <oklopol> i guess i could just say i study informatics as well, ca theory is just computer science anyway
20:09:14 <oklopol> says majority voting of unis at least
20:10:01 <oklopol> what if i started saying i study symbolic dynamics
20:10:27 <oklopol> (the theory of CA when you only run them for a single step.)
20:11:01 <oklopol> (but same topology, measures and techniques)
20:12:05 <oklopol> (and has more mathy content because you it mixes well with linear algebra when you take the n states as the basis of R^n)
20:12:48 <oklopol> mm i love talking about math
20:13:10 <oklopol> i could just barely drag myself out of the university because there was just so much math there
20:16:36 <oklopol> what does "symbolic dynamics" sound if you don't know anything about anythign?
20:16:52 <Vorpal> <elliott_> i happen to be socially retarded, but they're not the same thing. <-- there is a correlation though I would say
20:17:53 <Vorpal> <oklopol> unlike echo, what the fuck is that supposed to mean <-- that is a what the command is called on *nix, and on DOS too iirc. And so on.
20:17:57 <olsner> Vorpal: I already said there's a correlation
20:18:03 <oklopol> Vorpal: obviously i know that
20:18:05 <Vorpal> olsner, yes saw that a bit down
20:18:12 <Vorpal> oklopol, so what was the issue with "echo" then
20:19:16 <oklopol> obviously i couldn't guess it or no one would've asked me what i was doing
20:19:34 <Phantom_Hoover> <oklopol> unlike echo, what the fuck is that supposed to mean
20:20:00 <oklopol> "<oklopol> unlike echo, what the fuck is that supposed to mean" <<< um, that's like the most used command for that... come one man learn ur stuffs....
20:20:17 <oklopol> what a social retard that oklopol
20:27:02 <oklopol> bisexuals are people too...
20:27:03 <elliott_> `addquote <oklopol> such a famous bisexual <Phantom_Hoover> Yeah, like Marlon Brando. <Phantom_Hoover> And Caligula. <Phantom_Hoover> And... Keeley Hawes? <Phantom_Hoover> I feel cheated by Ashes to Ashes now.
20:27:04 <HackEgo> 487) <oklopol> such a famous bisexual <Phantom_Hoover> Yeah, like Marlon Brando. <Phantom_Hoover> And Caligula. <Phantom_Hoover> And... Keeley Hawes? <Phantom_Hoover> I feel cheated by Ashes to Ashes now.
20:34:00 <oklopol> ...wait was that a frog on my floor
20:34:05 -!- Lymia has changed nick to Lymee.
20:34:39 <oklopol> i swear i saw something jump in the air
20:35:53 -!- boily has quit (Ping timeout: 276 seconds).
20:36:58 <oklopol> i have to go to the office
20:37:17 -!- BeedaWeeda has quit (Ping timeout: 264 seconds).
20:37:52 -!- BeedaWeeda has joined.
20:37:53 -!- BeedaWeeda has quit (Changing host).
20:37:53 -!- BeedaWeeda has joined.
20:40:37 <Phantom_Hoover> oklopol and offices, two things which could not be more opposed.
21:03:11 -!- Tritonio has joined.
21:49:09 -!- pumpkin has joined.
21:49:09 -!- pumpkin has quit (Changing host).
21:49:09 -!- pumpkin has joined.
21:51:01 -!- Lymia has joined.
21:51:55 -!- copumpkin has quit (Ping timeout: 240 seconds).
21:52:17 -!- pumpkin has changed nick to copumpkin.
21:53:01 -!- Lymee has quit (Disconnected by services).
21:53:01 -!- Lymia has changed nick to Lymee.
22:21:12 <elliott_> Vorpal: What happens if you synthesise (a <= not a)
22:29:57 -!- Lymee has quit (Read error: Connection reset by peer).
22:30:47 -!- Lymee has joined.
22:32:22 <elliott_> Phantom_Hoover: Erm, it has no "after time", so I presume it's just a halt-and-catch-fire scenario.
22:48:39 -!- pikhq_ has joined.
22:51:17 -!- pikhq has quit (Ping timeout: 255 seconds).
22:54:23 -!- Lymee has quit (Ping timeout: 260 seconds).
22:54:43 <pikhq_> I haven't a clue what best to do right now.
22:55:13 <pikhq_> A recruiter from Google emailed me.
22:55:17 -!- Sgeo_ has joined.
22:56:14 -!- Sgeo has quit (Ping timeout: 255 seconds).
22:56:27 <pikhq_> I have no idea how best to say "I am currently a student, but please feel free to hire me." :P
22:56:56 -!- Tritonio has quit (Quit: Leaving).
22:59:05 <elliott_> the day pikhq_ discovered spam
23:00:54 <Vorpal> <elliott_> Vorpal: What happens if you synthesise (a <= not a) <-- no idea
23:02:46 <pikhq_> elliott_: Piss-poor spam. What sort of spammer uses an @google.com address and gives the phone number of Google's main campus?
23:04:59 <monqy> i dunno a bad one????
23:06:33 -!- Lymee has joined.
23:07:03 -!- NihilistDandy has quit (Remote host closed the connection).
23:10:13 <pikhq_> It just seems so utterly improbable yet legit.
23:10:57 <Phantom_Hoover> pikhq_, you can totally trust us to give you a reference.
23:21:09 -!- myndzi\ has joined.
23:21:09 -!- myndzi has quit (Read error: Connection reset by peer).
23:32:54 -!- elliott_ has quit (Ping timeout: 258 seconds).
23:34:02 -!- Lymee has quit (Ping timeout: 255 seconds).
23:36:50 -!- Phantom_Hoover has left ("Leaving").
23:36:54 -!- Phantom_Hoover has quit (Quit: Leaving).
23:47:04 -!- Lymee has joined.
00:10:41 -!- Lymee has quit (Read error: Connection reset by peer).
00:25:47 -!- Nisstyre has quit (Ping timeout: 255 seconds).
00:27:17 -!- Lymee has joined.
00:52:33 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:01:06 -!- Patashu has joined.
01:07:05 -!- oerjan has joined.
01:13:59 <oerjan> <CakeProphet> the idea of having two different identites intrigues me.
01:14:40 <oerjan> sadly if there is _both_ a left and a right identity, they have to be the same. (because l = l `op` r = r)
01:15:03 <oerjan> but you can have something that is just one of them, say 0 is just a right identity for (-)
01:15:41 <oerjan> and more intriguingly, if you _do_ have just one side, i think you can have more than one identity
01:17:14 <oerjan> actually that is pretty obvious
01:18:07 <oerjan> > let x `op` y = if x < 0 then y else -y in ((-2) `op` y, (-1) `op` y)
01:34:20 <Sgeo_> http://www.reddit.com/r/homestuck/comments/ihleb/so_im_doing_the_writing_for_a_midnight_crew_based/ how does this have -2 downvotes?
01:43:54 <pikhq_> Upvote/downvote numbers are meaningless.
01:45:12 <oerjan> you'd think they'd keep the fudging within the natural numbers, though
01:48:31 -!- CakeProphet has quit (Ping timeout: 240 seconds).
02:14:07 -!- brucebanner has joined.
02:17:00 -!- brucebanner has left.
02:18:14 <oerjan> fortunately he left before anyone got him angry
02:25:53 <Sgeo_> Why does the e-reader I want cost $330?
02:36:27 <Sgeo_> Wikipedia now automatically uses WOT
02:37:23 <Sgeo_> Someone actually manually inserted WOT stuff http://en.wikipedia.org/w/index.php?title=Reflexology&action=edit
02:53:06 -!- Lymia has joined.
02:55:59 -!- Lymee has quit (Ping timeout: 250 seconds).
03:18:08 -!- Lymia has quit (Ping timeout: 255 seconds).
03:36:51 -!- foocraft has joined.
03:38:23 -!- azaq23 has quit (Ping timeout: 255 seconds).
03:57:26 -!- azaq23 has joined.
04:49:06 <oklopol> "<pikhq_> I haven't a clue what best to do right now." <<< ignore
04:50:46 <oklopol> "<oerjan> and more intriguingly, if you _do_ have just one side, i think you can have more than one identity" <<< a op b = a
04:52:21 <oklopol> i think i characterized the CA generated by idempotents
04:52:38 <oklopol> although the characterization is a bit complicated
04:53:06 <oklopol> the CA generated by involutions (a^2 = 1) are a famous open problem
04:53:37 <oklopol> erm sorry the CA generated by periodic CA (a^n = 1 for some n) are a famous open problem
04:54:49 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!).
04:54:55 <oklopol> the conjecture is they essentially generate all reversible CA, although there are some restrictions on information flow and you can't do shifts for instance
04:56:45 <oklopol> YOU'LL FIND THE DETAILS IN MY PHD THESIS
04:58:01 <oklopol> an idempotent CA is kind of like a strong deformation retract of the full shift to an SFT
04:58:23 <oerjan> um idempotent just means everything becomes a still life after one generation, no?
04:59:27 <oklopol> i'd say it "just" means G^2 = G
05:00:04 <oerjan> a^n = 1 is to hold globally at all points for a fixed n?
05:00:17 <oklopol> yeah 1 is the identity map
05:00:30 <oklopol> nono a^n = 1 means a^n is identity
05:00:31 <oerjan> so the conjecture means that every reversible CA has a finite period...
05:00:52 <oerjan> um that's how i read what you wrote
05:01:02 <oklopol> they don't, so let me see what i wrote
05:01:06 <oerjan> or what do you mean by generate
05:01:16 <oklopol> no they GENERATE the reversible CA
05:01:41 <oklopol> but as i said there are restrictions, and i don't know what they are exactly
05:01:54 <oklopol> but it is known they do not in fact generate all reversible CA, particularly the shift
05:02:03 <oerjan> ah. so a_1^n = a_2^n = ... = a_k^n = 1 and then a_1 a_2 ... a_k is an almost general reversible CA
05:03:51 <oklopol> and i think i have a kind of proof for forall i: a_i^2 = a^i and then a_1 a_2 ... a_k is is an almost general CA G which has the property that forall n: (if G(U_n) = U_n then G|U_n = 1|U_n) where U_n is the set of points with least period n
05:04:18 <oklopol> to use your way of expressing things
05:05:11 <oklopol> it is easy to see that that must hold for all CA generated by idempotents
05:05:17 <oklopol> and i believe it's sufficient
05:06:06 <oklopol> for certain values of easy
05:06:29 <oklopol> yeah i suppose it's kind of easy
05:07:12 <HackEgo> 100) <Slereah> I can do everything a Turing machine can do, except love \ 146) <coppro> we'd care about a turing-complete pencil \ 274) <oklopol> ah yes, indeed, alan turing was gay and stupid \ 468) <oerjan> i never meta turing. he died before i was born. \ 469) <elliott> oerjan: can you delete that and the meta turing
05:07:55 <HackEgo> 333) <Phantom_Hoover> Oh god. <Phantom_Hoover> I've become a metallurgy hipster. <Phantom_Hoover> Iridium is way too mainstream. \ 410) <Sgeo> I was more of a pervert in Metaplace than Utherverse <Sgeo> I invented Metaplace sex >.> \ 468) <oerjan> i never meta turing. he died before i was born. \ 469) <elliott> oerjan:
05:09:46 <oklopol> oerjan: do you see why they have that property? i'd love to explain you see but i'm wondering if you want to do it yourself. i mean i know how much you love math.
05:10:06 <oklopol> oh and Sgeo_ wanted to learn math, this would actually be a fun exercise
05:11:14 * oklopol desperately tries to find math buddies, then realizes there will be ppl at the uni soon and he could just go there
05:12:05 <oerjan> i do not think my brain is sufficiently awake for that much math now.
05:12:28 * Sgeo_ needs to be both: Much more awake, and made familiar with what a^2 means in the context of a CA
05:12:40 <oklopol> Sgeo_: a \circ a, first do a, then do a again
05:12:59 <oerjan> in fact i somewhat fear my brain may never be that awake again
05:13:06 <Sgeo_> a^2=a is same thing as idempotent
05:13:13 <oklopol> Sgeo_: that's the definition
05:13:25 <oklopol> a * a = a means a is an idempotent w.r.t. *
05:14:07 <oklopol> oerjan: speaking of brains being awake, have you heard of a topology for all CA or in general a topology for the set of dynamics commuting endomorphisms of a dynamical system?
05:14:44 <oklopol> because i came up with a fun topology using a dynamics invariant measures and we found some fun properties for it like composition being continuous in certain cases and inverse as well
05:15:58 <oklopol> i don't know why you'd want a measure for it, but since we got results it felt natural to assume someone else did that stuff already, much better
05:16:08 <oklopol> *why you'd want a topology
05:19:25 <oklopol> also it turned out that in the CA case the metric is just the integral over S^Z of d(a(x), b(x)) where d is the besicovitch measure, a fact directly given by birkhoff's ergodic theorem
05:19:55 <oklopol> besicovitch distance i mean
05:20:21 <oklopol> i guess one could ask what the fuck the besicovitch distance is
05:21:47 <oklopol> d(x, y) is the lim sup as n goes to infinity of H(Z_n(x), Z_n(y))/(2n + 1) where H is the hamming distance and Z_n(x) is the word of length 2n + 1 in the middle of x
05:22:42 <oklopol> the original motivation of the besicovitch distance is of course that the shift - the most natural thing in the world - is completely chaotic with the usual topology
05:22:54 <oklopol> but it preserves the besicovitch metric
05:23:56 <oklopol> also with the besicovitch topology, S^Z is path connected, which is not very hard to believe, and which i've actually proven here once upon a time
05:24:17 <oklopol> because you can gradually flip all the bits of x to those of y...
05:30:45 -!- Nisstyre has joined.
05:30:46 -!- Nisstyre has quit (Excess Flood).
05:32:09 -!- Sgeo_ has changed nick to Sgeo.
05:33:36 -!- Nisstyre has joined.
05:53:54 -!- Lymee has joined.
05:53:55 -!- Lymee has quit (Changing host).
05:53:55 -!- Lymee has joined.
06:40:07 -!- oklofok has joined.
06:42:05 -!- oklopol has quit (Ping timeout: 264 seconds).
06:43:36 <pikhq_> http://www.biblegateway.com/passage/?search=Isaiah+45%3A7&version=KJV
06:43:53 <pikhq_> That really seems to screw with "God is good".
06:44:09 <pikhq_> Unless God is in a superposition of states.
06:47:57 <coppro> gotta remember that one
06:48:22 <monqy> superposition sounds a lot cleaner than inconsistent or self-contradictory
06:50:22 <fizzie> "For thou shalt worship no other god: for the LORD, whose name is Jealous, is a jealous God" (Exodus 34:14) -- yeah, well, if his *name* is "Jealous", ...
06:50:46 <coppro> Any artist does knows that you have to include contrast
06:52:32 <monqy> mental disorder makes for great art
06:54:08 <pikhq_> Also great atrocities.
07:06:59 <olsner> "<pikhq_> Unless God is in a superposition of states." I think he's in all the 50 states, but if he's a probability function his density would likely be larger in the bible belt
07:10:57 <fizzie> Isn't this some sort of a cue to a "they certainly are dense there, eh-he-eh" pun?
07:16:05 <pikhq_> Oh, Internet. Why did you have to connect me with a solipsist?
07:16:45 <pikhq_> And why would a solipsist even want to argue?
07:18:21 <pikhq_> Someone who thinks reality does not exist.
07:18:32 <oerjan> don't worry about solipsists, they're just a figment of your imagination anyway
07:18:45 <pikhq_> No, a figment of their own imagination.
07:24:32 <olsner> hmm, but if everyone is a figment of the same imagination, that should be the same as actually existing
07:24:48 -!- BeholdMyGlory has joined.
07:24:57 <pikhq_> Well, it's certainly indistinguishable.
07:42:49 -!- monqy has quit (Quit: hello).
07:49:04 -!- RipperM has joined.
07:49:51 -!- RipperM has left.
07:57:53 -!- pikhq_ has quit (Read error: Operation timed out).
08:00:25 -!- pikhq has joined.
08:18:23 -!- oerjan has quit (Quit: leaving).
08:36:23 -!- azaq23 has quit (Quit: Leaving.).
08:46:16 -!- BeedaWeeda has quit (Ping timeout: 240 seconds).
08:54:09 -!- BeedaWeeda has joined.
08:54:10 -!- BeedaWeeda has quit (Changing host).
08:54:10 -!- BeedaWeeda has joined.
08:57:03 <oklofok> so i wonder if there's a support group for people in love with schizophrenic girls who keep telling you they have feelings for you but you're so good at everything you do they'd just feel like shit about themselves 24/7 if they dated you, and who will probably die soon enough anyway
08:57:47 <oklofok> it's prolly a pretty common problem, i should check the bulleting board downstairs
08:58:43 <oklofok> also sorry about being all Sgeo there :D
08:58:53 <coppro> that's not quite my problem
10:19:59 -!- foocraft has joined.
10:20:48 -!- Phantom_Hoover has joined.
10:21:22 <Phantom_Hoover> I typed 'cephalopod' into Google, and the two suggestions were 'intelligence' and 'pronunciation'.
10:26:53 <Phantom_Hoover> "Some cephalopods are able to fly distances up to 50 m."
10:28:52 -!- FireyFly has joined.
10:41:41 <Lymee> Phantom_Hoover, TNT assisted flight?
10:42:46 <Phantom_Hoover> It was all over /r/Minecraft, although I never saw it myself.
10:45:53 <fALSO> i never understood minecraft
10:46:06 <fALSO> and why people pay for a game that looks like its been made in 1985
10:47:13 <fALSO> and whats all the hype about
10:49:03 <Phantom_Hoover> fALSO, please understand that saying that Minecraft "looks like it's been made in 1985" just marks you out as an idiot.
10:49:33 <Lymee> fALSO, no, that's Dwarf Fortress...
10:49:36 <Lymee> which is much more fun than Minecraft
10:50:27 <Lymee> Ordering around random giant things then waiting for it to finish while tabbed into IRC or something.
10:51:01 <Phantom_Hoover> If you take 'fun' to be as it is in the adage "losing is fun", then yes, it is.
10:51:38 <Lymee> "Losing is fun" only applies to multiplayer games.
10:52:37 <Phantom_Hoover> (Headshoots is even more fun to read, although for the exact opposite reason.)
10:53:18 <Lymee> The biggest screwup I've ever had is letting a forgotten beast with an insta-kill dust attack through a hole I didn't even notice before it entered...
10:53:52 <Lymee> Which is to say: Most preventable, most final mistae.
10:54:27 <Phantom_Hoover> I never actually started playing, because I'm too much of a perfectionist.
10:54:38 <fALSO> Dont you guys like nethack?
10:54:44 <fALSO> its a playable game
10:54:52 <fALSO> but it looks phantom_hoover
10:55:00 <fALSO> i would never PAY for something like that
10:55:10 <fALSO> but its ideas.....
10:55:13 <Deewiant> It looks like it's been made in 1987... because it was
10:55:17 <fALSO> dont need to call me an idiot
10:55:38 <Phantom_Hoover> Yes, because you seem to think that a game's entertainment value is entirely a function of how detailed the graphics are.
10:55:49 <fALSO> my entertainment value
10:55:56 <Phantom_Hoover> The rest of us pay for Minecraft because it is fun to play.
10:55:56 <fALSO> makes me try something
10:56:05 <fALSO> to understand what the game is about
10:56:30 -!- Slereah_ has quit (Ping timeout: 264 seconds).
11:00:12 -!- Slereah has joined.
11:10:59 <Phantom_Hoover> fALSO, yes, but the fact that you think the graphics are at all relevant is not encouraging.
11:11:30 <Phantom_Hoover> Its cost is trivial, and it is more than worth the money if you're into it.
11:15:04 <Phantom_Hoover> "141% is the difference between A4 and A3." — ad on YouTube
11:16:30 <Phantom_Hoover> (For Americans and other savages, the A series halves in area each increment.)
11:23:18 <Patashu> I think that would be correct for B4 and B3
11:24:27 <Phantom_Hoover> The B series is the same, it just has a different starting point.
11:25:30 <Deewiant> It's correct for the ratio between the edges of A4 and A3, as long as you take the shorter or the longer edge of each
11:26:39 <Phantom_Hoover> Although in terms of actual costs and what you can print on it, the only thing that really matters is area.
11:26:53 <Patashu> is there an A negative one?
11:27:42 <Deewiant> A0 to A10 exists, with A0 being a square metre (rounded)
11:27:54 <Deewiant> Of course you can extend it arbitrarily far
11:28:21 <Patashu> but the official proportions are post rounding
11:28:27 <Phantom_Hoover> It's defined such that the side ratio is 1:sqrt(2) and the area is a square metre.
11:28:31 <Patashu> so it's not exactly a square meter
11:30:28 <Lymee> Phantom_Hoover, why 1:sqrt(2)?
11:30:33 <Lymee> How is THAT useful?
11:30:51 <Phantom_Hoover> Lymee, because it preserves the side ratio when you cut it in half along the long side.
11:31:44 <Lymee> A1 is half A0 or something?
11:31:53 <Patashu> Lymee, http://en.wikipedia.org/wiki/ISO_216
11:32:16 <Phantom_Hoover> Patashu, don't be hard on her, she comes from the standardless wasteland of America.
11:32:35 <Patashu> That's why everyone here is from sweden
11:33:16 <Patashu> how do you define D0 - D10?
11:34:26 <fizzie> Cn is often used for envelopes holding An papers.
12:01:14 <Phantom_Hoover> http://www.wolframalpha.com/input/?i=%28rotational+energy+of+earth%29+-+%28G*mass+of+earth*mass+of+moon%29%2F%28distance+from+earth+to+moon%29
12:02:42 <Phantom_Hoover> Oh, it doesn't recognise G as the gravitational constant.
12:03:12 -!- boily has joined.
12:03:51 <Phantom_Hoover> ...and it still gets caught on the rotational energy bit.
12:04:35 <Patashu> is rotational energy a word?
12:04:38 <Patashu> do you mean angular momentum?
12:05:33 <Patashu> Hmm. If there's energy in having a velocity, but all velocities are relative, does that mean judging kinetic energy is different in every frame of reference?
12:06:26 <Patashu> When people describe it you get the impression that it's thought of as a THING
12:06:32 <Patashu> Some kind of substance objects possess
12:06:40 <Patashu> But it's just a measurement, an incidental property
12:06:47 <Phantom_Hoover> It's not a thing as much as an accounting measurement.
12:19:18 -!- CakeProphet has joined.
12:19:18 -!- CakeProphet has quit (Changing host).
12:19:18 -!- CakeProphet has joined.
12:20:39 -!- FireyFly has changed nick to FireFly.
12:36:03 -!- wth has joined.
12:36:06 <CakeProphet> or, at least, I'm surprised ++ isn't a method.
12:36:29 -!- wth has changed nick to Guest63324.
12:36:43 -!- Guest63324 has quit (Client Quit).
12:37:07 <Patashu> insane keyboard smash skills http://www.youtube.com/watch?v=DU_TtuIJwMQ&feature=feedf
12:40:42 -!- foocraft has quit (Ping timeout: 276 seconds).
12:42:44 -!- ais523 has joined.
13:05:03 -!- foocraft has joined.
13:08:46 <Phantom_Hoover> "So I admit I'm probably not the kind of person who normally belongs in /r/math ... but am I the only one who thinks complex numbers are bullshit?"
13:11:43 <Patashu> the complex number footage was faked
13:12:10 <lambdabot> . [or compose] is the composition of two plugins
13:12:10 <lambdabot> The following semantics are used: . f g xs == g xs >>= f
13:12:55 <lambdabot> Plugin `compose' failed with: Unknown command: "t"
13:13:08 <lambdabot> expecting variable, "(", ".", "`", "!!", operator or end of input
13:25:53 <Patashu> the program is lunatic rave 2, which is a beatmania IIDX emulator, IIDX being the series of 7key+1turntable rhythm games by konami
13:26:00 <Patashu> the song is kirby dirge by fether
13:27:04 <Patashu> no wait, kirby dirge is the genre, the song name is actually something like Piano Concerto No. 1 "Scorpion Fire" (For Kirby)
13:27:14 <Patashu> and the chart is the overjoy**7 which is one of the hardest in existence
13:27:19 <Patashu> and it's being played by che. it's not a fail but it's an A grade
13:28:16 <Patashu> that should give you enough information to google further anything you're curious about
14:10:13 -!- Phantom_Hoover has quit (Quit: Leaving).
14:21:05 -!- copumpkin has quit (Remote host closed the connection).
14:21:30 -!- copumpkin has joined.
14:49:55 -!- foocraft_ has joined.
14:53:14 -!- foocraft has quit (Ping timeout: 240 seconds).
15:07:54 <lifthrasiir> Patashu: huh, i never thought that the human being can pass it even with an easy gauge.
15:09:21 <Patashu> it's on the limit of human possibility. che can't pass it
15:11:47 <Patashu> it never gets above 200 bpm jacks per column, which a few people can vibrate at with impeccable control. but doing it for 7+1 columns all at once is asking a lot
15:14:43 <lifthrasiir> that's ~1900 notes per minute. crazy enough.
15:16:05 <Patashu> http://www.youtube.com/watch?v=zDppGonwmb4
15:16:21 <lifthrasiir> in the past i did play such a game, but i never managed above 600 notes per minute.
15:16:34 <Patashu> this chart is roughly equivalent density but half as many columns
15:17:02 <lifthrasiir> safe mode triggered XD, but i suppose it a stepmania session
15:18:07 <Patashu> wait, the video I linked you to is considered mature?
15:19:12 <fizzie> It didn't ask me anything, and I'm not logged in to the tube.
15:19:24 <Patashu> there's 'fucking' in the description
15:19:31 <Patashu> http://www.youtube.com/user/geniusleonid#p/a/u/1/zDppGonwmb4 maybe try this link
15:21:27 <Patashu> I bet if I could link you directly to the video it'd work thn
15:21:44 <Patashu> http://www.youtube.com/v/zDppGonwmb4?version=3
15:23:17 <lifthrasiir> Patashu: indeed... maybe a safe mode is not for embedded videos then?
15:23:45 <Patashu> Well, if you don't load the description your naughty words filter won't see the word 'fucking'
15:24:08 <lifthrasiir> or it is possible that this block is specific to South Korea
15:37:54 -!- Patashu has quit (Ping timeout: 264 seconds).
16:05:38 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
16:06:36 -!- monqy has joined.
16:36:39 <Lymee> http://i53.tinypic.com/2m68ghk.png
16:36:43 <Lymee> The game's threatening me
16:39:54 <quintopia> you know what would be awesome? someone should recreate that scene from the shining, but use lava instead of blood
16:41:46 <Lymee> quintopia, look what's on the ground.
16:48:37 <Gregor> <elliott_> i kind of like "computing theorist" but it sounds really pretentious :D
16:48:45 <Gregor> The problem is that still includes the word prefix "comput"
16:48:49 <Gregor> That's what needs to be avoided.
16:49:18 <coppro> Gregor: No, because it is computing theory
16:49:28 <coppro> it is the theory of computation
16:49:43 <coppro> just point out to people that it's called computer /science/
16:49:45 <Gregor> coppro: The idea here is to make it so idiots don't say "CAN YOU FIX MY COMPUTER?"
16:50:07 <coppro> Gregor: tell them to go ask a biologist what cold medicine they should take
16:50:26 <Gregor> coppro: Yeah, that works REALLY well.
16:50:31 <Gregor> Seeing as that they don't know what a biologist is either.
16:51:31 <coppro> alternatively, just get the shirt
16:51:44 <Gregor> Conflicts with my glorious neckties.
16:57:07 -!- fALSO has left.
17:07:14 -!- oerjan has joined.
17:08:22 <oerjan> an intriguing topic indeed
17:09:46 <oerjan> <oklofok> it's prolly a pretty common problem, i should check the bulleting board downstairs
17:10:00 <oerjan> that's probably a bit narrow, but try checking for subreddits.
17:18:35 * oerjan hates it when logreading and all the people he wants to respond to are offline
17:20:11 -!- ais523 has quit (Remote host closed the connection).
17:20:14 <oerjan> <CakeProphet> kind of surprised mplus isn't ++
17:20:27 <oerjan> it _was_ in haskell 1.4
17:20:50 <oerjan> http://www.mat.uc.pt/~pedro/cientificos/funcional/haskell-report-1.4-html/standard-prelude.html
17:20:51 <oklofok> oerjan: well I'M not offline
17:21:05 <oerjan> which is why i responded to you
17:21:17 <oerjan> patashu and phantom_hoover, on the other hand...
17:22:03 <oerjan> mind you people who are online but have idled for hours are also somewhat annoying
17:22:45 <oerjan> clearly the only polite thing to do is to be awake and on irc always
17:28:15 -!- Vorpal has joined.
18:15:53 -!- MigoMipo has joined.
18:29:32 -!- Lymia has joined.
18:29:53 -!- Lymee has quit (Disconnected by services).
18:29:54 -!- Lymia has changed nick to Lymee.
18:37:04 -!- elliott_ has joined.
18:50:32 -!- jix has quit (Quit: leaving).
18:50:46 -!- jix has joined.
18:59:59 <elliott_> 10:45:53: <fALSO> i never understood minecraft
19:00:00 <elliott_> 10:46:06: <fALSO> and why people pay for a game that looks like its been made in 1985
19:00:00 <elliott_> 10:47:13: <fALSO> and whats all the hype about
19:01:17 -!- Lymee has quit (Ping timeout: 240 seconds).
19:02:16 <elliott_> 12:35:30: <CakeProphet> kind of surprised mplus isn't ++
19:02:16 <elliott_> 12:36:06: <CakeProphet> or, at least, I'm surprised ++ isn't a method.
19:02:16 <elliott_> 12:36:16: <CakeProphet> of any typeclass.
19:02:22 <elliott_> CakeProphet: all the list stuff is list-specific, unfortunately
19:02:29 <lambdabot> Data.Foldable fold :: (Foldable t, Monoid m) => t m -> m
19:02:29 <lambdabot> Data.IntMap fold :: (a -> b -> b) -> b -> IntMap a -> b
19:02:29 <lambdabot> Data.IntSet fold :: (Int -> b -> b) -> b -> IntSet -> b
19:02:59 <elliott_> CakeProphet: list comprehensions used to be full monadic comprehensions too, but they were downgraded in haskell ninetyeight to make errors simpler
19:06:53 <elliott_> 15:17:49: <lifthrasiir> (i have no youtube account)
19:06:59 <elliott_> lifthrasiir: you do, if you have a google account
19:07:21 <lifthrasiir> elliott_: technically yes, but i never logged on youtube using a google account
19:07:45 <elliott_> 17:20:14: <oerjan> <CakeProphet> kind of surprised mplus isn't ++
19:07:45 <elliott_> 17:20:27: <oerjan> it _was_ in haskell 1.4
19:07:53 <elliott_> what did ninetyeight add again
19:09:12 <elliott_> hmph, map was generic but fold wasn't
19:09:31 <Gregor> elliott_: Just Blargh.
19:09:37 <Gregor> elliott_: Also, what's with your underscore? :P
19:09:44 <Gregor> It's been there for days ...
19:12:25 -!- elliott_ has quit (Quit: Leaving).
19:12:32 <Gregor> Well, the underscore is gone.
19:12:38 -!- elliott has joined.
19:12:46 <elliott> Gregor: I've no idea to what you refer.
19:13:00 <Gregor> Must have been delusional.
19:14:46 -!- elliott_ has joined.
19:14:50 <elliott_> Gregor: You fucking asshole, my router disconnected me for assuming that name.
19:14:56 -!- Lymee has joined.
19:15:08 <elliott_> I... can never be elliott again.
19:15:13 <oerjan> elliott: the Eval class was removed because it was horrible to have to include which types seq was used on in each function type
19:15:47 <Gregor> elliott_: You can be ehird :P
19:15:56 <oerjan> come to think of it, it may have been haskell's equivalent to java's checked exceptions :P
19:16:47 <elliott_> <oerjan> elliott: the Eval class was removed because it was horrible to have to include which types seq was used on in each function type
19:16:49 <oerjan> (of course some may think monads still are)
19:17:07 <elliott_> you should not have to name (Seq T) =>
19:17:19 <elliott_> or do you mean like polymorphic things
19:17:28 <oerjan> but presumably for polymorphic things
19:17:28 <elliott_> in which case, sequencing them _should_ require an annotation if not everything is seqable
19:17:30 -!- elliott has quit (Ping timeout: 264 seconds).
19:18:53 <Gregor> HEY ELIOT WHATS WITH UR NICK
19:19:51 -!- elliott_ has quit (Quit: Leaving).
19:20:10 -!- elliott has joined.
19:20:12 -!- elliott has quit (Changing host).
19:20:12 -!- elliott has joined.
19:29:13 -!- Phantom_Hoover has joined.
19:29:44 -!- oerjan has quit (Quit: Good night).
19:30:08 <elliott> http://en.wikipedia.org/wiki/File:NorAdder.svg
19:34:31 <elliott> fulladd a b cin (s,cout) = do
19:34:31 <elliott> cout <== (a `and` b) `or` (n `and` cin)
19:34:45 -!- Phantom_Hoover has quit (Ping timeout: 276 seconds).
19:48:46 <elliott> Vorpal: uh, do ripple carry adders take a carry as an input? http://en.wikipedia.org/wiki/File:4-bit_ripple_carry_adder.svg suggests so, but the article says you can replace the first full adder with a half adder
19:48:51 <elliott> which wouldn't work if it can take a carry
19:59:03 <pikhq> If you use a full adder then it can take a carry, otherwise it can't. :)
19:59:34 <elliott> do full adders generally take a carry
20:00:49 <monqy> isn't that what differentiates full- and half-adders
20:01:23 <elliott> do full-full adders generally take a carry
20:01:24 <monqy> that full-s take a carry and half-s don't
20:01:38 <monqy> if you want them to????
20:03:36 <elliott> lmao i am reinventing half of York Lava
20:06:36 <elliott> I should rename Var to Bit just to reinforce how much I'm ripping it off
20:06:55 <monqy> http://hackage.haskell.org/packages/archive/york-lava/0.2/doc/html/src/Lava-Vector.html#N0 rip this part off too
20:08:13 <Vorpal> elliott, you could do either
20:08:32 <Vorpal> elliott, on x86 I think you have a carry from the eFLAGS register already perhaps
20:08:39 <Vorpal> or is that ADC as opposed to ADD perhaps
20:08:50 <Vorpal> (add with carry, or add without using carry flag)
20:10:04 <elliott> monqy: that's type-level nats :P
20:10:05 <Vorpal> elliott, Add with carry is useful to do a fast 64-bit add on a 32-bit system for example
20:10:12 <Vorpal> elliott, so you just reuse carry from lower half
20:10:17 <elliott> Vorpal: right, it's just a bigger circuit :D
20:10:27 <monqy> elliott: and then, a few hundred lines down, values for each of them
20:10:34 <Vorpal> elliott, in minecraft it is going to be fucking large anyway
20:10:45 <elliott> monqy: its not like you can do better without TH
20:10:45 <Vorpal> elliott, anyway you should do carry-lookahead XD
20:10:51 <elliott> Vorpal: what, a ripple adder?
20:10:59 <elliott> Vorpal: a four-bit one should be of acceptable size.
20:11:17 <monqy> how obscenely slow will ripple-carry be in minecraft
20:11:20 <Vorpal> elliott, ripple added means you have to wait for the carry to ripple through all 128 bits or whatever
20:11:21 <elliott> Vorpal: remember -- humans construct generally flat circuits in MC
20:11:22 <monqy> I support using a fancier adder, as well
20:11:29 <elliott> Vorpal: one hundred twenty eight bits?
20:11:32 <elliott> why would you need that many
20:11:33 <Vorpal> elliott, carry lookahead is a way to reduce that time
20:11:40 <elliott> why would you need that many
20:11:46 <elliott> why would you need that many
20:12:01 <elliott> you're not going to construct a fucking CPU beyond something eight or MAYBE sixteen bit
20:12:06 <Vorpal> elliott, point is, even for much much smaller sizes it helps
20:12:36 <elliott> speed is irrelevant, redstone is fast enough for a small enough number of bits
20:12:41 <elliott> what matters is getting it small enough
20:12:50 <elliott> you realise that redstone transmits instantly right?
20:12:55 <elliott> it doesn't take a tick for things to travel along a wire
20:12:55 -!- Lymee has quit (Ping timeout: 252 seconds).
20:13:04 <elliott> so OR is actually completely free.
20:23:21 <Vorpal> <elliott> so OR is actually completely free.
20:23:30 <Vorpal> unless current flowing back into inputs is an issue
20:23:37 <Vorpal> elliott, say you have A or B and B or C
20:23:48 <Vorpal> then if A is true and you wire it stupidly, B OR C will give true
20:25:33 -!- Lymee has joined.
20:26:05 <elliott> Vorpal: yeaaah, im not sure whether I should make OR use a repeater to avoid that, or whether to just solve it with wiring?
20:26:10 <elliott> I guess if you have like a door as an input
20:26:14 <elliott> then that could fuck things up
20:32:07 -!- boily has quit (Read error: Operation timed out).
20:36:53 <elliott> Vorpal: that makes things even uglier though :(
21:00:51 <elliott> add4 (a0,a1,a2,a3) (b0,b1,b2,b3) c0 ((s0,s1,s2,s3),c4) = do
21:00:51 <elliott> [c1,c2,c3] <- vars ["C1","C2","C3"]
21:00:51 <elliott> (s0,c1) <== fulladd a0 b0 c0
21:00:51 <elliott> (s1,c2) <== fulladd a1 b1 c1
21:00:51 <elliott> (s2,c3) <== fulladd a2 b2 c2
21:00:52 <elliott> (s3,c4) <== fulladd a3 b3 c3
21:00:54 <elliott> wait, this is just a monadic fold, isn't it...
21:01:00 <elliott> time to copy another piece of york-lava
21:06:20 -!- foocraft_ has changed nick to foocraft.
21:07:54 <Vorpal> <elliott> Vorpal: yeaaah, im not sure whether I should make OR use a repeater to avoid that, or whether to just solve it with wiring? <-- add a repeater if it is needed
21:08:02 <Vorpal> elliott, do path analysis or something
21:08:15 -!- oklopol has joined.
21:08:16 <Vorpal> elliott, I mean follow inputs back from from OR gates, check if they are safe
21:08:20 <elliott> Vorpal: i don't even know how to write a synthesiser, shut up :D
21:08:34 <Vorpal> elliott, this is *relatively* simple
21:09:08 <elliott> Vorpal: that affects timing though :(
21:09:13 <elliott> I really need to figure out how to handle timing properly
21:09:56 <Vorpal> elliott, yes indeed, that is one of the more complex bits
21:10:20 <Vorpal> elliott, you will need to add repeaters sometimes anyway
21:10:37 -!- oklofok has quit (Ping timeout: 240 seconds).
21:11:23 <elliott> Vorpal: im distracting myself by making a generic adder-creator
21:11:29 <elliott> just give it the number of bits and ~VOILA~
21:12:00 <elliott> also: currently every time you use the adder it embeds the entire adder into your circuit, I guess I really need some way to assemble separate components and wire them together...
21:12:52 <Vorpal> elliott, then you need to do CSE between adders and so on
21:13:08 <Vorpal> elliott, actually MC is more like ASIC than FPGA
21:13:09 <elliott> Vorpal: i just need a way to synthesise adders separately and give them input and output wires
21:13:15 <elliott> so that you can plug other components in
21:13:33 <Vorpal> elliott, make it a module in your vhdl-esque
21:13:43 <elliott> its ok, just means that a "design" can contain more than one circuit
21:13:48 <Vorpal> elliott, with a "binary" implementation
21:14:33 <Vorpal> elliott, well what I mean is, that you can give it a special hardwired redstone implementation that it can route, but it possibly can't synth on it's own from the language
21:14:48 <Vorpal> elliott, making it is a sort of "primitive" or whatever
21:14:51 -!- BeedaWeeda has quit (Ping timeout: 276 seconds).
21:14:53 <Vorpal> well special component
21:15:03 <Vorpal> elliott, think like __builtin_foo in gcc or such
21:15:29 <Vorpal> elliott, except users could supply those as well
21:15:39 <elliott> i don't want anything unsynthesisable to be specifiable :)
21:15:45 <Vorpal> elliott, anyway you might need a few of those anyway for the basics, AND OR NOR etc
21:16:01 <Vorpal> elliott, it can be synthed, just you can't describe it in your HLL
21:16:04 <elliott> I'm considering removing NOR
21:16:11 <Vorpal> elliott, okay better analogy, like asm() in gcc
21:16:11 <elliott> since it's literally just OR with NOT applied to it
21:16:27 <Vorpal> elliott, allow you to do stuff that can be synthed but the normal language can't /quite/ capture
21:16:33 <elliott> Vorpal: shrug -- maybe, but this should generate a small adder
21:16:44 <elliott> it's just a bunch of xor, and, and ors chained together :)
21:16:51 <Vorpal> <elliott> since it's literally just OR with NOT applied to it <-- different if you do it on a raised block *and don't put redstone on top of it*
21:16:56 <Vorpal> because then the inputs will be isolated
21:17:08 <Vorpal> if you put redstone on top of the block the torch is on, it isn't
21:18:00 -!- Phantom_Hoover has joined.
21:18:10 -!- BeedaWeeda has joined.
21:18:33 <elliott> * Phantom_Hoover (~phantomho@unaffiliated/phantom-hoover/x-3377486) has joined #esoteric
21:18:33 <elliott> * BeedaWeeda (~port72.c@unaffiliated/beedaweeda) has joined #esoteric
21:23:16 <elliott> hmm i should expand my thing to support simulation
21:23:24 <elliott> its just that itll be a pain
21:23:25 <Vorpal> elliott, that is probably easier
21:23:41 <Vorpal> elliott, unless you mean cycle accurate simulation
21:23:44 <elliott> yeah, its just that i keep wanting to do it like york lava, but i cant, because my model is imperative :D
21:23:48 <Vorpal> in which case you can add that after
21:24:03 <Vorpal> elliott, wait imperative?
21:24:24 <elliott> Vorpal: york lava taught me that cycle-accurate simulation is easy!
21:24:29 <Vorpal> elliott, VHDL isn't imperative... it is kind of event driven
21:24:33 <elliott> <Vorpal> elliott, wait imperative?
21:24:35 <Vorpal> elliott, with an imperativish syntax
21:24:41 <Vorpal> elliott, vhdl is not imperative
21:24:47 <Vorpal> elliott, event driven kind of
21:24:52 <elliott> it's more imperative than Lava-style transformations
21:25:11 <elliott> Lava> simulateN 3 $ map inv [low, high, low]
21:25:12 <elliott> [[high,low,high],[high,low,high],[high,low,high]]
21:25:18 <elliott> halfAdd :: Bit -> Bit -> (Bit, Bit)
21:25:18 <elliott> halfAdd a b = (sum, carry)
21:25:25 <Vorpal> elliott, I don't know how to read that
21:25:32 <elliott> first two lines are ghc repl
21:25:40 <elliott> lines after that are regular .hs haskell code
21:25:53 <elliott> <elliott> Lava> simulateN 3 $ map inv [low, high, low]
21:25:54 <elliott> <elliott> [[high,low,high],[high,low,high],[high,low,high]]
21:25:59 <elliott> <elliott> halfAdd :: Bit -> Bit -> (Bit, Bit)
21:25:59 <elliott> <elliott> halfAdd a b = (sum, carry)
21:26:19 <elliott> Phantom_Hoover: Umm... no?
21:26:40 <elliott> Vorpal: Anyway, Lava does simulation like this:
21:26:43 <elliott> {- Simulate: -} (\[] -> [repeat False])
21:26:47 <elliott> {- Continue: -} (\[o] -> o)
21:26:55 <elliott> inv a = makeComponent "inv"
21:27:01 <elliott> {- Simulate: -} (\[a] -> [map not a])
21:27:05 <elliott> {- Continue: -} (\[o] -> o)
21:28:03 <elliott> Vorpal: i.e. since everything is just functional transformation on (symbolic) bits, it can literally just do the logical operation on its inputs
21:28:41 <elliott> Phantom_Hoover: how is VHDL more functional than York Lava?
21:28:52 <elliott> halfAdd a b = (a <#> b, a <&> b)
21:29:24 -!- Sgeo has quit (Ping timeout: 255 seconds).
21:29:33 <elliott> I'm not saying that VHDL is imperative
21:29:42 <elliott> But you have to declare all the wires
21:30:13 <quintopia> elliott: havenworks.com Not Available :(((((
21:30:20 <elliott> quintopia: been like that for months
21:30:57 <quintopia> did you download a copy while it was up?
21:31:05 <elliott> I think I did, but I might have trashed it since
21:31:45 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
21:32:30 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!).
21:34:33 -!- Phantom_Hoover has joined.
21:36:07 -!- Sgeo has joined.
21:36:20 <elliott> Can someone get testBit removed from Data.Bits.Bits for me? thx.
21:36:39 -!- Phantom_Hoover has quit (Remote host closed the connection).
21:39:01 -!- Phantom_Hoover has joined.
21:39:50 <Phantom_Hoover> What is it with people *celebrating* over the closure of NotW?
21:41:01 <Phantom_Hoover> It's like they don't realise it's an extremely dirty tactic by News Corp.
21:42:57 <Phantom_Hoover> People just hear the news and thing "yay it's gone!" without realising that it allows NC to distance those responsible.
21:43:54 <elliott> <Phantom_Hoover> What is it with people *celebrating* over the closure of NotW?
21:44:06 <elliott> It may be a dirty tactic, but it still results in the NotW no longer being published or made, which is a Good Thing.
21:44:13 -!- Lymee has quit (Ping timeout: 252 seconds).
21:44:37 <coppro> they actually had no real choice
21:44:55 <coppro> obviously they're just trying to cover their asses here
21:45:12 <coppro> but they aren't trying to make everyone forget
21:45:17 <coppro> they're trying to make the advertisers forget
21:45:21 <elliott> Phantom_Hoover: Well, sure, but then we just have to destroy the (Green) Sun, rather than the Sun /and/ NotW.
21:46:26 <Phantom_Hoover> I like the way that they warned Andy Coulson that they were going to arrest him, though.
21:46:33 <elliott> Phantom_Hoover: It was... a half-joke. It /does/ reduce our number of targets by one. :p
21:46:53 -!- karlmoore has joined.
21:47:07 <Phantom_Hoover> There's no way the Sun is going to stop being published. Full stop.
21:47:16 <elliott> Phantom_Hoover: It would, if we were crusaders with the power to blow up newspapers' platonic existence.
21:47:23 <coppro> Phantom_Hoover: Depressing, isn't it?
21:47:42 <elliott> Anyway, we just need to expose every single person involved in the Sun as a paedophile.
21:47:50 <elliott> Clearly it is the only way.
21:47:58 -!- karlmoore has quit (Remote host closed the connection).
21:48:04 <elliott> Hope karlmoore enjoyed that.
21:48:10 <coppro> this is probably not too hard given News Corp's apparent security level
21:48:11 <elliott> (diff) (hist) . . N Category:Declarative paradigm; 12:57 . . (+223) . . Timwi (Talk | contribs) (New page: The '''declarative paradigm''' is where a program consists of declarations that define its structure/functionality. This is the opposite of the ''imperative paradigm'' in which programs co...)
21:48:14 <Phantom_Hoover> coppro, the problem is that people think that NotW being closed will mean that idiocy will vanish overnight.
21:48:30 <coppro> Phantom_Hoover: oh dear
21:49:10 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:49:16 <Phantom_Hoover> Rather than realising that the only upshot of the closure is that the people responsible for the phone hacking will be that much better protected.
21:50:10 <coppro> then people will just have to try harder to find more scandal
21:50:15 <coppro> I wish this continent worked like yours
21:50:47 <coppro> nobody cares about scandals like that
21:52:51 <coppro> it would have seen a little bit of news
21:52:57 <coppro> and probably prosecution
21:53:07 <coppro> but no real serious outrage like that, I don't think
21:54:49 <elliott> of course it would, it involves a dead kid
21:56:47 -!- Lymee has joined.
21:58:22 <Phantom_Hoover> And they destroyed evidence, rather than just tampering.
21:59:14 <coppro> elliott: you'd be surprised
22:15:34 -!- Lymee has quit (Ping timeout: 260 seconds).
22:16:00 <HackEgo> 131) <fungot> alise: why internet is like wtf \ 136) <pikhq> And... WTF is it doing. <pikhq> :( <Sgeo_> Is it sexing? \ 197) <Vorpal> pikhq, Okinawan? Wtf is that \ 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>
22:16:26 <tswett> elliott: by the way, you're now almost capable of crawling.
22:16:47 <elliott> tswett: It's so much harder than the walking I'm accustomed to.
22:16:58 <elliott> `addquote <tswett> elliott: by the way, you're now almost capable of crawling.
22:16:59 <HackEgo> 488) <tswett> elliott: by the way, you're now almost capable of crawling.
22:28:07 -!- Lymee has joined.
22:32:05 -!- pumpkin has joined.
22:32:06 -!- pumpkin has quit (Changing host).
22:32:06 -!- pumpkin has joined.
22:34:58 -!- copumpkin has quit (Ping timeout: 258 seconds).
22:38:03 -!- GreaseMonkey has joined.
22:38:04 -!- GreaseMonkey has quit (Changing host).
22:38:04 -!- GreaseMonkey has joined.
22:55:46 -!- azaq23 has joined.
22:55:56 -!- BeedaWeeda has quit (Ping timeout: 258 seconds).
22:57:27 -!- BeedaWeeda has joined.
23:02:41 -!- Sgeo_ has joined.
23:03:54 -!- Sgeo has quit (Ping timeout: 255 seconds).
23:07:31 <elliott> http://www.techrepublic.com/blog/10things/10-types-of-programmers-youll-encounter-in-the-field/262
23:07:48 <elliott> "The Theoretician knows everything there is to know about programming. He or she can spend four hours lecturing about the history of an obscure programming language or providing a proof of how the code you wrote is less than perfectly optimal and may take an extra three nanoseconds to run. The problem is, The Theoretician does not know a thing about software development. When The Theoretician writes code, it is so “elegant” that mere mortals ca
23:07:48 <elliott> make sense of it. His or her favorite technique is recursion, and every block of code is tweaked to the max, at the expense of timelines and readability.
23:07:50 <elliott> The Theoretician is also easily distracted. A simple task that should take an hour takes Theoreticians three months, since they decide that the existing tools are not sufficient and they must build new tools to build new libraries to build a whole new system that meets their high standards. The Theoretician can be turned into one of your best players, if you can get him or her to play within the boundaries of the project itself and stop spending ti
23:07:52 <elliott> rking on The Ultimate Sorting Algorithm."
23:07:54 <elliott> LOL THOSE HASKELL PROGRAMMERS
23:10:29 <Phantom_Hoover> I'm not allowed to talk about antiïntellectualism, am I?
23:19:11 <BeedaWeeda> that guy Elliott Hird is a sex offender, i found him on englands sex offender registry
23:20:13 <elliott> BeedaWeeda: Were I not underage, I would be out for your fucking head.
23:20:21 <elliott> As it is I'll just wait for your inevitable ban.
23:20:59 <elliott> BeedaWeeda: btw, you're a piece of shit, die in a fucking fire
23:28:39 -!- Phantom_Hoover has quit (Quit: Leaving).
23:31:26 <quintopia> elliott: now is the best time to be out for his head. better to be tried as a juvenile.
23:32:10 <elliott> quintopia: I suppose it's fairly likely he'll be a repeat offender
23:32:19 <elliott> Maybe he'll actually find someone who's an adult next time
23:34:45 <quintopia> also, re: theoretician. calling that type of programmer a theoretician is offensive to theory folk. whoever wrote this is gay.
23:36:22 <BeedaWeeda> youre just taking what i used on you and your trying to spin it around and use it on me
23:39:24 <elliott> Trying to use what? Bludgeoning?
23:39:44 <elliott> But seriously, that is one of the absolute worst things you can say about a person, you are a worthless piece of shit.
23:41:28 <elliott> You realise what kind of shit that would put a person in if (a) everyone in here didn't already know you were a piece of shit and (b) I wasn't a minor?
23:41:37 <elliott> Of course you do, or you wouldn't have done it.
23:42:21 <quintopia> elliott: also, no one in this article looks like the average hacker. i don't get it.
23:42:45 <elliott> quintopia: probably because the author considers themselves one
23:42:53 <elliott> otoh, anyone who identifies as an "average hacker" is probably really annoying
23:42:59 <BeedaWeeda> you getting upset like that makes me smile
23:43:44 <elliott> BeedaWeeda: You're really bad at reading emotions; I'm not upset at all, I just think you're a worthless human being.
23:44:23 <elliott> There is absolutely no way what you did will affect me in any way, so I don't give a shit that you did it from a personal perspective; it's just a really terrible thing to do and you are a terrible piece of shit.
23:45:08 <BeedaWeeda> i have provoked hatred and anger within you and thats very obvious by the way your typing
23:45:11 <pikhq> BeedaWeeda: Fuck off and die in a fire.
23:45:14 <quintopia> i agree with elliott. you are the least amusing troll i have ever witnessed.
23:45:32 <quintopia> if you're gonna troll, make me laugh. geez.
23:46:29 <elliott> BeedaWeeda: I'm angry in the sense that you should be made to realise how terrible that was, maybe by experiencing what people who have been falsely accused of child molestation have experienced, but I'm not angry at all. You realise that it takes no emotional investment to type words on IRC?
23:46:36 <BeedaWeeda> i won that im making you guys so angry
23:46:46 <elliott> quintopia: YOU ARE A FUCKING TERRIBLE PERSON DIE
23:46:48 <monqy> take a victory lap please
23:46:51 <elliott> That took approximately 0 units of angry.
23:47:17 <monqy> im so angry im typing in lowercase without any punctuation look at me go
23:47:26 <monqy> beedaweeda what have you done
23:47:27 <BeedaWeeda> this guy takes his online reputation seriously
23:47:29 <elliott> monqy: TYPING IN LOWERCASE IS FUCKING UNACCEPTABLE
23:47:32 <elliott> DIEEEEEEEEEEEEEEEEEEEEEEEEEEEE DIEEEEEEEEEEEE
23:47:56 <elliott> BeedaWeeda: conversely, you want someone to dig up your real name and let everyone know you're a child molester?
23:48:07 <elliott> fizzie: btw he needs banning
23:48:16 <BeedaWeeda> ive been convicted before but never a sex offense lol
23:48:49 <elliott> If I was an eye for an eye kind of guy, I would imply that BeedaWeeda is saying he got away with all _his_ child molestations.
23:49:13 <BeedaWeeda> your just trying to spin around what i used on you originally
23:49:29 <monqy> surely to hide your fury no less
23:50:08 <elliott> HRRR SO BORING BEEDAWEEDA SO ANGRY
23:50:42 <quintopia> don't hurt him elliott. i know he wouldn't like you when you're angry :P
23:51:19 <elliott> I'm perpetually angry at everything, but BeedaWeeda's permanent ruination of my reputation has caused me to enter DOUBLE ANGER.
23:52:48 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:54:15 <Sgeo_> Who the fuck is BeedaWeeda?
23:54:35 <monqy> a really cool dude that's who
23:56:13 <elliott> Sgeo_: He came in here to prove that aliens exist and talked about UFOs and holes in megalithic structures for a while, then we got bored of prodding him and I told him he was an idiot, he got upset because we HURT HIS FEELINGS WITH CLOSED-MINDEDNESS, came back, and has since really lamely trolled for a few days.
23:56:40 <elliott> Although the progression from talking about wanting to have sex with Casey Anthony to accusing me of child molestation is rather swift one.
23:58:03 <BeedaWeeda> this guy cares about his internet rep so much that he will start yelling in caps over an IRC chat room
23:59:51 <elliott> no bold on IRC, well there is, but +c is on so I can't use it
00:00:08 <elliott> you realise that "HURT HIS FEELINGS WITH CLOSED-MINDEDNESS" was capitalised for deliberate theatricality right
00:00:17 <elliott> it's good to know that it's so easy to upset you, though :)
00:00:20 <elliott> even easier than with me apparently
00:00:30 <elliott> how to anger elliott: accuse him of child molestation w/ surname
00:00:37 <elliott> how to anger BeedaWeeda: tell him he's a gullible idiot for believing in UFOs
00:00:54 <elliott> damn, you must be REALLY upset actually, to stay in the channel for so many days trolling us :(
00:00:58 <elliott> BeedaWeeda: do you need some emotional support?
00:04:46 -!- pumpkin has changed nick to copumpkin.
00:13:52 -!- FireFly has quit (Quit: swatted to death).
00:14:31 <BeedaWeeda> you probably believe everything the media tells you
00:14:37 <monqy> you already said that
00:14:40 <monqy> a few days ago was it
00:15:26 <elliott> BeedaWeeda, on the other hand, is in charge of the Daily Mail's Paedophile Division
00:15:37 <elliott> sure dreading the paper tomorrow
00:16:31 <monqy> the daily mail has a paedophile division?
00:17:27 <elliott> monqy: where else do you think they get all their accusations
00:42:00 -!- Lymia has joined.
00:45:15 -!- Lymee has quit (Ping timeout: 276 seconds).
00:45:39 -!- Patashu has joined.
01:26:34 <elliott> Vorpal: would it be weird to call a vector of bits in a VHDL-type environment "Word"
01:26:45 <elliott> i forget the long VHDL name :P
01:31:35 <Sgeo_> Why does "autodidact" have a Wikipedia entry, and why is there a list of "notable autodidacts". Is it rare?
01:31:50 <Vorpal> <elliott> Vorpal: would it be weird to call a vector of bits in a VHDL-type environment "Word" <-- yeeeeeees
01:32:13 <Vorpal> I would call it an array of std_logic :P, I don't use bits
01:34:16 <Sgeo_> Please tell me that most people try to learn things on their own at least on occasion
01:35:55 <Patashu> Are you a notable audodidact?
01:36:59 <Sgeo_> And if "autodidact" means what Wikipedia says it means, then why isn't everyone an autodidact
01:37:00 <Patashu> Now you know what the list is for
01:37:02 <monqy> im totally a notable autodidact
01:37:11 <elliott> <Vorpal> <elliott> Vorpal: would it be weird to call a vector of bits in a VHDL-type environment "Word" <-- yeeeeeees
01:37:21 <elliott> <Patashu> Are you a notable audodidact?
01:37:25 <elliott> no but he's a famous bisexual
01:37:41 <Patashu> std_logic isn't a bit so an array of std_logic isn't a word
01:37:43 <Sgeo_> elliott, hmm? Someone with my name is a famous gay DJ, but...
01:38:00 <elliott> Sgeo_: I understand that it may be hard to come to terms with your famous bisexuality.
01:38:03 <elliott> Patashu: Yeah, but my bits are bits.
01:43:10 <elliott> Vorpal: OK so I guess "vector" is a better choice than "word"?
01:43:21 <elliott> Bearing in mind that they're actual bits.
01:43:52 <Patashu> does it really matter though?
01:45:01 <Vorpal> elliott, unless you use it to implement a vector CPU, in which case it will be confusing
01:45:46 <elliott> But seriously, Word is a nicer name than Vec :(
01:45:55 <Vorpal> elliott, but do that in redstone logic and I will laugh in scorn (but also be really amazed)
01:46:48 <elliott> Vorpal: Dude, ideally this will make redstone engineering as "simple" as using VHDL :P
01:46:55 <elliott> Maybe simpler, it's all bits and no stupid syntax :P
01:47:08 <Vorpal> elliott, wait a second
01:47:21 <Vorpal> elliott, I don't quite understand what you are talking about
01:47:33 <Vorpal> elliott, vhdl is simpler than wiring up by hand...
01:47:42 <elliott> precisely, which is what we're talking about here
01:47:53 <elliott> but really, it's not hard to implement a simple cpu :P i base this on a single york lava example
01:48:00 <Vorpal> elliott, writing something that would be like 5 lines in C would take some 30 lines of *non-boilerplate* vhdl quite often
01:48:03 <Patashu> it'd be quicker to make an integrated circuits mods for minecraft
01:48:10 <Vorpal> elliott, add another 20 lines of boilerplate to that
01:48:21 <elliott> , While (instr!isHALT!inv) $
01:48:21 <elliott> Seq [ isLIT instr |> s!rtop <== getLIT instr
01:48:23 <elliott> , isDUP instr |> s!stack!push (s!rtop!val)
01:48:27 <elliott> Seq [ s!rtop <== s!stack!top
01:48:32 <elliott> , s!stack!push (s!rtop!val)
01:48:39 <elliott> Seq [ s!rtop <== s!rtop!val + s!stack!top
01:48:48 <elliott> Seq [ s!mult!multiply (s!rtop!val) (s!stack!top)
01:48:49 <elliott> , s!rtop <== s!mult!result!val
01:49:23 <elliott> child molester _and_ a spammer?
01:50:42 <lambdabot> Overlapping instances for GHC.Show.Show (b -> t)
01:51:09 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
01:51:09 <elliott> Vorpal: can you construct RAM in VHDL? it seems that everyone just uses the provided memory interface
01:51:18 <elliott> i suppose you obviously can
01:51:23 <Patashu> isn't RAM just a shitload of latches
01:51:30 <Patashu> and a big multiplexer/demultiplexer
01:51:34 <elliott> im gonna have to ask pikhq about his repeater ram :P
01:52:03 <lambdabot> forall a b (f :: * -> *). (Functor f) => f (a, b) -> f a
01:52:14 <lambdabot> forall a b t. (?x::t, ?y::(a, b)) => (t, a)
01:52:21 <Vorpal> <elliott> Vorpal: can you construct RAM in VHDL? it seems that everyone just uses the provided memory interface <-- you can do random access memory
01:52:22 <elliott> > let ?x = 0; y = 9 in fmap fst (?x,?y)
01:52:23 <lambdabot> <no location info>: parse error on input `y'
01:52:25 <CakeProphet> elliott: I'm guessing f is a different instance in this case.
01:52:27 <elliott> > let ?x = 0; ?y = 9 in fmap fst (?x,?y)
01:52:32 <Vorpal> elliott, DRAM I don't think would be feasible
01:52:35 <elliott> > let ?x = 0; ?y = 9 :: Int in fmap fst (?x,?y)
01:52:36 <lambdabot> Couldn't match expected type `GHC.Types.Int'
01:52:38 <Vorpal> at least not on usual FPGAs
01:52:46 <elliott> Vorpal: whats the difference :)
01:52:55 <Vorpal> elliott, actually what you create will be pretty much a register file
01:53:07 <elliott> Vorpal: well sure registers are the same thing as ram
01:53:18 <Vorpal> elliott, nope, probably based on d-latches
01:53:25 <elliott> Vorpal: ram is a thing not an implementation
01:53:30 <elliott> its random access and its memory ergo its ram
01:53:38 <Vorpal> rather than capacitance as in DRAM (definitely unfeasible on a FPGA)
01:53:43 <Vorpal> or whatever it is SRAM uses
01:53:51 <Vorpal> (I forgot how SRAM works exactly)
01:54:02 <Vorpal> elliott, just pointing out memory density will be rather bad
01:54:17 <Vorpal> elliott, same reason your "ram" in your computer isn't all register file type ram
01:54:45 <pikhq> Vorpal: I don't think he cares that much — he's generating *redstone logic* here.
01:54:52 <elliott> register style ram is all you can do
01:55:09 <Vorpal> elliott, there is delay line in mc too
01:55:12 <Vorpal> that is pretty compact
01:55:21 <Vorpal> elliott, basically repeaters chained up
01:55:28 <Vorpal> of course that is not *random* access
01:55:30 <pikhq> elliott: I'm willing to bet driving the delay line would be a PITA.
01:55:34 <elliott> apparently his is actually usable though
01:55:39 <elliott> rather than the one on the wiki
01:55:48 <Vorpal> pikhq, how does your differ
01:55:52 <elliott> Vorpal: well you can just construct a bunch of delay lines duh
01:56:53 <pikhq> Signals coming into the delay line are anded with a clock. :P
01:57:32 <Patashu> what is a 'delay line'? time multiplexing?
01:57:48 <pikhq> I also set up some other and gates to make it have a set and reset line.
01:59:45 <Patashu> what a baffling youtube account http://www.youtube.com/user/freetroutfish?email=comment_received (look at recent activity)
02:00:09 <pikhq> elliott: If you're feeling awesome, you could set up a tape with pistons.
02:00:26 <elliott> Patashu: MWAHAHA NOW I KNOW YOU RECEIVED A COMMENT
02:00:30 <pikhq> (reading = easy, writing = motherfucking PAIN)
02:00:35 <elliott> pikhq: An infinite tape? :P
02:00:54 <pikhq> elliott: Not with Minecraft limits, sadly.
02:01:11 <elliott> pikhq: I mean, infinite as far as Minecraft goes
02:03:23 <pikhq> So, within the surrounding 16 chunks? :P
02:03:32 <pikhq> Erm, less than that. Anyways.
02:04:11 <Patashu> you can have more people load in every chunk
02:10:35 <elliott> :: (Fun2 Bit (t3 -> t4 -> t1),
02:10:35 <elliott> Fun2 Bit (t7 -> t8 -> t6),
02:10:35 <elliott> Fun2 Bit (t14 -> t15 -> Bit -> Gen ()),
02:10:37 <elliott> Fun2 Bit (t13 -> (Bit -> Gen ()) -> t12 -> Gen ()),
02:10:39 <elliott> Fun2 Bit (t10 -> t11 -> Bit -> Gen ()),
02:10:41 <elliott> Fun2 Bit (Bit -> t5 -> t2),
02:10:43 <elliott> Fun2 Bit (Bit -> t5 -> t -> Gen ()),
02:10:44 <elliott> Fun2 Bit (t1 -> t2 -> Bit -> Gen ()),
02:10:46 <elliott> Fun2 Bit (t6 -> (Bit -> Gen ()) -> Bit -> Gen ()),
02:10:48 <elliott> Fun2 Bit (t10 -> t11 -> t9),
02:10:50 <elliott> Fun2 Bit (t14 -> t15 -> t13),
02:10:53 <elliott> Fun2 Bit (t9 -> (Bit -> Gen ()) -> Bit -> Gen ()),
02:10:55 <elliott> Fun2 Bit (t7 -> t8 -> Bit -> Gen ()),
02:10:56 <elliott> Fun2 Bit (t3 -> t4 -> Bit -> Gen ())) =>
02:11:04 <elliott> -> ((t, Bit, Bit, Bit), t12)
02:11:12 <elliott> I like how it's inexplicably specialised some types to Bit and not others
02:12:20 <elliott> wtf, it's actually decreased in size by adding declarations :D
02:13:17 <elliott> fizzie: not-here-lament: not-here-oerjan:
02:13:18 <elliott> <Ttech> Choms, Channels that don't follow it are sometimes moved to their proper namespace
02:13:18 <elliott> <gm152> Expect the # channels that do not have approved group registrations to be moved when the GMS is in place.
02:13:26 <elliott> fizzie: You guys should, uh, really get on that.
02:13:38 <elliott> Or we'll end up forced into ##esoteric.
02:32:13 <lambdabot> forall a. (Integral a) => a -> (Int -> Char) -> a -> String -> String
02:32:36 <elliott> > showIntAtBase 2 ("OI"!!) 99 ""
02:32:54 <elliott> > foldr (\x r -> x ++ " (" ++ r ++ ")") "" (showIntAtBase 2 ("OI"!!) 99 "")
02:32:55 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
02:33:10 <elliott> > foldr (\x r -> x : " (" ++ r ++ ")") "" (showIntAtBase 2 ("OI"!!) 99 "")
02:33:16 <elliott> > foldr (\x r -> x : " (" ++ r ++ ")") "Z" (showIntAtBase 2 ("OI"!!) 99 "")
02:33:44 <elliott> > let n = 99 in "type N" ++ show n ++ " = " ++ foldr (\x r -> x : " (" ++ r ++ ")") "Z" (showIntAtBase 2 ("OI"!!) n "")
02:33:46 <lambdabot> "type N99 = I (I (O (O (O (I (I (Z)))))))"
02:34:01 <elliott> that whole function is trivial to read
02:35:13 <CakeProphet> line noise with some words thrown in. 4 of them to be exact.
02:35:40 <elliott> let, type, show, fold(right), int, at, base
02:36:12 <CakeProphet> but sure, whatever makes it less like line noise. :P
02:36:30 <CakeProphet> MIGHT AS WELL WRITE IT IN PERL OOOOH SNAPPP
02:38:49 <elliott> *Redsynth.Vec Data.List Numeric> n128
02:39:17 <CakeProphet> that is 6 words by the CakeProphetian anti-line-noise quantification metric.
02:39:48 <pikhq> We've already estabilished that the CakeProphetian metrics have negative value.
02:40:18 <CakeProphet> pikhq: nonsense, they are intuitive and beautiful.
02:40:27 <CakeProphet> elliott: are you using a filter by chance?
02:40:49 <elliott> CakeProphet: Why would I use a filter for synthesising?
02:41:20 <CakeProphet> whereas additive synthesis is tedious, time-consuming trial-and-erorr
02:41:47 <elliott> CakeProphet: I'm probably doing it with a hill-climb or genetic algorithm of some sort following a random layout.
02:44:24 <CakeProphet> but I will eat my newly acquired Cap'n Crunch and ponder this.
02:45:22 <CakeProphet> a hill-climb does sound interesting though.
02:45:55 <CakeProphet> any idea what exactly you're synthesizing?
02:46:07 <elliott> CakeProphet: I'd be interested in knowing the basic filtering synthesis algorithm. ais said that all the major shops basically use what I said, but it sounds really crappy and a pain to code to boot.
02:46:38 <elliott> I don't believe I said anything about /sound/ synthesis.
02:49:07 <CakeProphet> elliott: nope, I will never teach you how to filter good-sounding redstone.
02:49:44 <CakeProphet> you will be left in the dark forever, as I am the only source of information on this subject.
02:51:15 * CakeProphet impatiently waits for PayPal to confirm his bank account so he can begin a spree of compulsive online spending.
02:51:50 <elliott> How do you not already have a PayPal account I am fifteen and even I have one.
02:51:55 <CakeProphet> this is an important rite of passage in the US.
02:51:58 <elliott> Actually I've had one for years but.
02:52:04 <CakeProphet> elliott: I have one, but I didn't have a bank account until now.
02:52:32 <elliott> Weeeeell, I believe mine is technically called a savings account, but I put money in, get interest, can take it out, and have a Visa debit card, so "what's the difference" :P
02:52:46 <elliott> Well it's something other than "bank".
02:52:57 <elliott> But they transmogrify it into a banque account once you become SUFFICIENTLY OLD TO BEAR THE RESPONSIBILITY :p
02:53:13 <CakeProphet> elliott: must savings accounts have a limit on how many withdrawals you can make in a month.
02:53:25 <elliott> Hmm, I might have such a limit, but I dunno what it is
02:53:26 <BeedaWeeda> they terminated elliotts PayPal account after discovering several large orders of male child pornography
02:53:37 <elliott> I'm not sure it applies to debit cards.
02:53:51 <elliott> BeedaWeeda: I realise I hurt your precious little feelings by saying that UFOs aren't real, but seriously, fuck off.
02:55:26 <elliott> c2 : fd generic map (INIT => '0') port map (w2_0,clock,w0_0);
02:55:26 <elliott> c0 : fd generic map (INIT => '1') port map (w0_0,clock,w2_0);
02:55:32 <elliott> Vorpal: What does this even mean.
02:55:46 <Vorpal> elliott, that looks generated
02:56:02 <elliott> Prelude Lava> writeVHDL "Yeah" (let x = delayBit high (delayBit low x) in x) (name "x")
02:56:36 <Vorpal> elliott, but it maps inputs and outputs from some component to inputs and outputs (or signals) in the own module
02:56:53 <elliott> Vorpal: It's all that's generated; there is no more.
02:56:53 <Vorpal> the c2 and c0 lines I mean
02:56:54 <CakeProphet> oh hey, I don't have to wait for my bank account to be linked, I can go ahead and make transfers manually.
02:57:12 <elliott> Vorpal: You already know that everything Lava generates is structural
02:57:13 <CakeProphet> elliott: look I've never used PayPal I didn't have a bank account until now.
02:57:21 <elliott> architecture structural of Yeah is
02:57:23 <Vorpal> elliott, right. Well I can't explain what it *does*
02:57:33 <Vorpal> elliott, anyway it generates using primitives
02:57:33 <elliott> attribute INIT of c2: label is "0";
02:57:37 <elliott> attribute INIT of c0: label is "1";
02:57:40 <Vorpal> from some vendor specific library iirc
02:57:45 <elliott> Vorpal: It's meant to generate low and then high forever :P
02:57:47 <elliott> CakeProphet: Why not, surely you had a debit card or something before
02:57:54 <Vorpal> elliott, what is c2 and c0?
02:58:04 <CakeProphet> elliott: ...no. I had no bank account so why would I have a debit card?
02:58:04 <Vorpal> you gave attributes for them
02:58:13 <elliott> http://hackage.haskell.org/packages/archive/york-lava/0.2/doc/html/src/Lava-Vhdl.html wow, this is short
02:58:24 <elliott> CakeProphet: Uhh, do people in the US not get any sort of account before a bank account?
02:58:30 <elliott> CakeProphet: PayPal accepts cheques I think actually
02:59:04 <CakeProphet> elliott: not as like... a law or anything. o_o if you have fiscally responsible parents, then possibly.
02:59:13 <Vorpal> elliott, err.. what would you get before a bank account?
02:59:24 <elliott> Vorpal: A I-can't-bloody-remember-the-name account
02:59:43 <elliott> I keep wanting to say savings account but I don't think it is a savings account, but anyway it's functionally identical to a bank account :P
02:59:49 <Vorpal> I got a bank account when I was like 10 I think, maybe somewhat earlier. Saved money on it from the start
02:59:50 <elliott> Maybe it has a limited number of withdrawals per month like CakeProphet said, dunno
03:00:02 <Vorpal> oh yeah I had a savings account
03:00:13 <elliott> Well you can't get bank accounts when you're ten here or presumably in the US
03:00:23 <CakeProphet> yeah see... my parents didn't give me any kind of savings account.
03:00:38 <elliott> But I have a debit card and it works online, so, woo, good enough for irrational online spending binges that I don't have
03:00:42 <CakeProphet> I've been using cash for the past 5 years or so.
03:01:25 <CakeProphet> well, all I'm really going to buy is a hookah. I was joking about the compulsive spending part.
03:01:51 <elliott> That's just a really tiny compulsive spending spree.
03:08:39 * CakeProphet is actually pretty good about saving money.
03:14:10 <elliott> Vorpal: I take it it's inaccurate to refer to low and high as "false" and "true"? :p
03:14:34 <Vorpal> elliott, I haven't ever used plain bits. Always std_logic
03:14:40 <Vorpal> but true is what you decide it is
03:15:24 <elliott> Vorpal: Zero or one, then :P
03:15:37 <elliott> "inv low" is just so much less nice than "not false" :(
03:15:47 <Vorpal> okay I hasn't turned off the monitor yet
03:15:53 <Vorpal> elliott, inv low makes more sense
03:16:14 <Vorpal> elliott, you can save gates sometimes by inverting the meanings of true and false in part of a circuit
03:16:15 <elliott> (Hmm, how is "inv" less accurate than "not"? It's called a NOT gate, after all.)
03:16:48 <Vorpal> elliott, but representing high as 1 is common
03:16:49 <elliott> What about "zero" and "one"?
03:16:57 <Vorpal> elliott, look at an std_logic array in vhdl
03:17:14 <Vorpal> what do you think THAT is?
03:17:20 <elliott> Vorpal: OK so what you are saying is zero and one are OK.
03:17:23 <Vorpal> (note "as std_logic" was not code)
03:17:29 <Vorpal> elliott, I'm saying zero is low
03:17:35 <Vorpal> I'm not saying zero is false
03:17:58 <elliott> Vorpal: Ha, but wait, my simulation returns [Bool] :P
03:18:20 <elliott> show b = if bitToBool b then "high" else "low"
03:18:26 <elliott> Vorpal: OH SNAP LOOKS LIKE SOMEONE'S ALREADY TAKEN AN OPINION
03:36:31 <elliott> hmm, to use Data.Bits or to roll my own
03:37:03 -!- azaq23 has quit (Ping timeout: 255 seconds).
03:47:40 <elliott> CakeProphet: BURNING IN HELLFIRE IS A BAD EXPERIENCE
03:50:58 -!- DocHerrings has joined.
03:51:49 <DocHerrings> Quick question - is it possible to reduce an arbitrary BF loop into any two smaller BF loops?
03:52:53 <elliott> DocHerrings: No. [+] and [] cannot be reduced into two smaller BF loops.
03:53:37 -!- azaq23 has joined.
03:54:11 <DocHerrings> elliott: Makes sense, but more specifically, I am writing an esolang where loops have a max number of commands, and I wanted to know if that would affect turing-completeness.
03:55:05 <elliott> Well... you only need two nested loops to implement BF in BF, and they're of finite, short length, but this is the ℒ debacle all over again.
03:55:41 <elliott> Basically: There's a very good chance you'll be TC by one definition, because an interpreter of a TC language will exist; on the other hand, it may affect your Turing-completeness by the better standard. (Or it may not; I honestly have no idea.)
03:55:46 <elliott> (It depends on your language.)
03:55:49 <elliott> (See http://esolangs.org/wiki/%E2%84%92.)
03:56:45 <DocHerrings> Man that's a pretty interesting article. This is why I love esolang.
03:57:40 <DocHerrings> Well, I suppose I will ask the general public for ideas - what is the most creative looping or conditional construct you can think of?
03:58:09 <elliott> Not requiring looping or conditionals at all? I mean, they'll be there at some level, but you can make them implicit.
03:58:42 <elliott> For instance ///, one of my favourite languages (http://esoteric.voxelperfect.net/wiki/Slashes) doesn't have a conditional, it just has string replacement -- which is implemented as a loop with a bunch of conditionals, but they're hidden from the actual semantics.
03:58:59 <DocHerrings> Hold on, I'll just put the rough specs on pastebin. And I love /// too.
03:59:29 <monqy> lambda/combinator calculi do no-loop/conditionals, as another example
03:59:37 <monqy> self-modifying/extending languages are nifty too
04:00:13 <elliott> Right, the lambda calculus is a good example, of course
04:00:16 <elliott> Why didn't I think of that
04:00:48 <elliott> And with that, the interpretation as a loop of substitutions feels way more unnatural than the obvious semantics, whereas with /// the semantics are pretty loop-esque
04:01:50 <DocHerrings> http://pastebin.com/hL2tUw7S link. Anyways, there are two data structures - a track and a drum. The drum consists of 8 tumblers, which all hold 8 binary cells. The track is essentially 8 tapes side-by-side.
04:02:17 <elliott> I'm afraid I'm too tired to understand that spec :)
04:02:36 <elliott> You did misspell "accessor", though. Aren't I useful!
04:02:48 <DocHerrings> Mostly because it was whipped up in a hour.
04:03:27 <DocHerrings> There are 256 viable commands - it takes a lot out of ya.
04:03:39 <DocHerrings> All for the sake of being able to read data as code.
04:04:38 <elliott> Where's Vorpal and/or ais when you need one of them
04:04:43 <monqy> I don't see how data as code implies 256 commands
04:04:48 <elliott> DocHerrings: That's easy, just use a binary alphabet
04:04:57 <elliott> http://esolangs.org/wiki/Bitwise_Cyclic_Tag#Self_BCT
04:05:34 <elliott> But that could just be two commands.
04:06:26 -!- kwertii has joined.
04:06:55 <DocHerrings> All the commands have three parts - (OPERATOR TYPE) (FUNCTION) (DATA) - Which boils down to... 00000000 for instance, which would rotate tumbler no 1 to the right.
04:08:44 <DocHerrings> Just desperately trying to avoid something resembling BF, as usual.
04:12:42 <monqy> I'm having a bit of trouble understanding this spec :(
04:13:39 <DocHerrings> Sorry. If it helps, MSP => Most Significant Bit, whereas LSP => Least Significant Bit.
04:15:00 <elliott> "VHDL has file input and output capabilities, and can be used as a general-purpose language for text processing"
04:15:44 -!- Slereah has quit (Ping timeout: 258 seconds).
04:15:50 <elliott> whenever you enter here i am tired and you are tired
04:16:24 <monqy> sometimes im tired but then i sleep and everything is better
04:18:10 <elliott> you have to lie down and wait a long time
04:18:15 <elliott> and then a lot of hours pass
04:18:24 <monqy> but theres a chance of nifty dream
04:18:35 <DocHerrings> Certainly when you have an esolang idea in your head.
04:18:46 <elliott> i have not remembered dreams in a very long time, i dreamt yesterday but it was not a very exciting dream
04:18:54 <monqy> sometimes i have esolang dreams
04:19:04 <monqy> last night included
04:19:18 <monqy> i cant remember anything :(
04:19:43 <DocHerrings> I once had a dream where /// was the only programming language.
04:19:54 <monqy> the most recent dream I remember was one where everything was dark and I had to go to a restaurant and there was just a big dark room with a big table with a shark on it
04:20:04 <DocHerrings> Although you needed a crap-ton of libraries.
04:20:10 <monqy> and people tore parts off of the shark (and optionally cooked them) and ate them
04:20:16 <elliott> DocHerrings: oh that sounds nice /// is a good basis for everything
04:20:30 <elliott> monqy: then how do you know it was an esolang dream :OOOO
04:20:33 <CakeProphet> I had a dream where your mom was /// in bed.
04:20:44 <monqy> sometimes i remember things about dreams without remembering the details
04:21:14 <elliott> monqy: do you ever remember like
04:21:21 <elliott> "that was the best dream ever and no dream will ever hold a candle to it"
04:21:24 <elliott> but nothing about the dream itself
04:21:51 <monqy> no i actually remembered that dream
04:21:53 <monqy> it was a wonderful dream
04:22:09 <monqy> that's how it started
04:22:20 <elliott> `addquote <monqy> it was a wonderful dream <monqy> i died in it <monqy> that's how it started
04:22:21 <HackEgo> 489) <monqy> it was a wonderful dream <monqy> i died in it <monqy> that's how it started
04:22:25 <DocHerrings> One day after reading a book about the discovery of the structure of benzene (the chemist saw it in his dream) I tried to dream up the perfect sorting algorithm. When I woke up, I was only extremely confused.
04:22:39 <elliott> DocHerrings: that's the warning signal from your brain
04:24:12 <DocHerrings> Then I designed the 2nd worst sorting algorithm I could (what could be worse than quantum sort?))
04:25:19 <DocHerrings> It was picking a pivot, splitting the list into pairs, sorting each pair, sorting ala quicksort using the smallest element in each pair, and rinse and repeat.
04:27:10 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
04:28:00 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
04:31:26 <elliott> how does an works?????????????????
04:33:13 -!- Slereah has joined.
04:40:47 <lambdabot> Data.ByteString index :: ByteString -> Int -> Word8
04:40:47 <lambdabot> Data.Ix index :: Ix a => (a, a) -> a -> Int
04:40:47 <lambdabot> Data.Sequence index :: Seq a -> Int -> a
04:40:55 <lambdabot> Data.List elemIndex :: Eq a => a -> [a] -> Maybe Int
04:40:55 <lambdabot> Data.List elemIndices :: Eq a => a -> [a] -> [Int]
04:40:55 <lambdabot> Network.BufferType buf_concat :: BufferOp a -> [a] -> a
04:57:42 <elliott> Lava> (13 :: Word N4) `vat` n2
04:57:51 <elliott> HAHAHAJHJAOHIJAIHOJIOFJDIOJGOIFDJGIOFDJGOIDFJGOIFDJGOFDG
04:57:53 <elliott> OIJHSEFIODHGIDSJFIGREGJREG
04:57:54 <elliott> EGRJRGOJGREOIJGREOIJGERIOJEGORJI
05:01:30 <BeedaWeeda> elliott had an orgasm whacking off to some computer software and complex algorithms
05:02:37 <elliott> yeah, and they were underage too
05:05:58 <monqy> what a creep, that elliott
05:14:04 -!- Lymia has changed nick to Lymee.
05:35:41 <CakeProphet> it's the Haskell logo, I was just wondering what it would do as a function. :)
05:36:57 <monqy> well for one it's a syntax error
05:37:20 <monqy> unless it doesn't work like that
05:37:29 <monqy> in which case it does whatever you want it to
05:37:44 <CakeProphet> I'm surprised Haskell doesn't have unicode support..
05:38:07 <CakeProphet> or is it that lambda isn't an operator character?
05:40:31 <fizzie> GHC has that UnicodeSyntax extension, but presumably λ counts as a regular letter maybe.
05:40:53 -!- kwertii has quit (Quit: bye).
05:46:18 <CakeProphet> fizzie: do modules that import Unicode modules have to have that extension enabled?
05:46:55 <CakeProphet> probably not. It probably just makes the unicode names unavailable.
05:48:41 <fizzie> I think the extension just enables Unicode alternatives for some ASCII syntax (::, =>, forall, ->, <-, -<, >-, -<<, >>- and *); it seems completely separate from things like that base-unicode-symbols package which provides modules like Prelude.Unicode containing things like ≠ for /= and so on.
05:49:11 <fizzie> I also think the topic has been discussed on-channel before too.
05:52:00 <fizzie> So to put it differently, the extension is just to get those Unicode variants for those built-in syntax bits; you don't need anything special to use Unicode in general for your own names.
05:52:08 <lambdabot> forall a. (Fractional a) => a -> a -> a
05:53:43 <fizzie> The Haskell 98 lexical bits seem to say so too. symbol -> ascSymbol | uniSymbol, uniSymbol -> "any Unicode symbol or punctuation".
05:54:00 <fizzie> But of course λ is not a symbol or punctuation but a letter.
05:54:47 <CakeProphet> I guess with numeric literals being overloaded to Num, everything is fine...
06:19:22 <elliott> hmm, my Gen thing is actually stupid...
06:19:28 <elliott> almost as stupid as my life :((((((((((((99999999999999999999999999999
06:19:45 <elliott> oh, doubly stupid actually
06:20:22 <lambdabot> <no location info>: parse error on input `>'
06:20:54 <lambdabot> cannot mix `GHC.Classes.>' [infix 4] and `GHC...
06:20:55 <elliott> wait, what...................
06:28:28 <elliott> NONE OF THIS MAKES ANY SENSE MAYBE ILL KILL MYSELF TO DEATH ...............
06:28:55 -!- CakeProphet has quit (Ping timeout: 264 seconds).
06:32:45 <quintopia> think of all those chinese babies that died so you could have a high standard of living
06:32:52 <quintopia> are you really going to waste that sacrifice?
06:33:17 -!- oerjan has joined.
06:33:32 <Sgeo_> Is it just me, or does everyone hate FF13?
06:34:24 <Patashu> We polled 6 billion people and all of them said 'yes'
06:36:51 <fizzie> 83/100 like it, says metacritic, so...
06:38:05 <Sgeo_> I keep getting the impression that people consider it to me more of a movie than a game
06:38:35 <fizzie> Pretty much everyone seems to dislike the linearity of it, but apparently it's not enough to completely ruin it.
06:46:17 <pikhq> fizzie: On the other hand, 7/10 is given out for games that aren't even *playable*.
06:46:41 <oerjan> 19:10:43 <elliott> <Ttech> Choms, Channels that don't follow it are sometimes moved to their proper namespace
06:46:44 <oerjan> 19:10:44 <elliott> <gm152> Expect the # channels that do not have approved group registrations to be moved when the GMS is in place.
06:46:48 <pikhq> Indeed, the range seems to be 7-10.
06:46:52 <oerjan> 19:10:43 <elliott> fizzie: not-here-lament: not-here-oerjan:
06:47:23 <fizzie> I saw those lines, but I do not know what they mean.
06:47:43 <quintopia> they mean that #esoteric might get an # prepended soon?
06:47:47 <oerjan> i _assume_ it means ... right
06:47:59 <elliott> Unless you do the group registration thing.
06:48:05 <elliott> lament looked into it but stopped because it was a pain, apparently.
06:48:13 <elliott> BUT THAT WAS BEFORE THE THREAT TO OUR GREAT NAME.
06:48:37 <fizzie> pikhq: On the third hand, they had sold 5.5 million copies a ~year ago, so that's a lot of disappointed people if *everyone* hates it.
06:48:47 <quintopia> i vote: who gives a shit. anyone else?
06:48:56 <pikhq> fizzie: Shit sells.
06:49:22 <pikhq> This is one of the most depressing facts of life.
06:49:43 <coppro> I'm more annoyed by the fact that they're super-slow at group registrations
06:49:43 <elliott> quintopia: On the #? But this is a _national institution_ exclamation mark
06:49:47 <elliott> And ##esoteric already exists, anyway
06:49:55 <elliott> ...also we could get esoteric cloaks?
06:50:00 <elliott> The point is we must protect this glorious nation.
06:50:03 <coppro> if we had group registration
06:50:12 <elliott> http://freenode.net/group_registration.shtml Oh, this doesn't look hard at all.
06:50:19 <coppro> elliott: The problem is we don't have a claim to the name
06:50:31 <elliott> coppro: cpressey has argued that we do.
06:50:42 <elliott> And he's one of the popularisers of the term "esoteric" as it relates to programming languages.
06:50:51 <Deewiant> Something like "esolangs" I could see happening
06:51:19 <monqy> but then we won't get confused people who think it's about religion or hip hop
06:51:23 <quintopia> then we wouldn't get the entertaining randoms looking for magick-lovers all the time!
06:51:31 <elliott> I'm pretty sure we could get #esoteric
06:51:36 <pikhq> coppro: You must remember we're also associated with esolangs.org.
06:51:39 <elliott> (And I would rather just try and stay under the radar if we couldn't)
06:51:46 <elliott> pikhq: that's "esolangs" though
06:51:49 <coppro> pikhq: so we could get #esolang probably
06:51:59 <pikhq> elliott: esoteric.voxelperfect.net
06:52:13 <elliott> i can set up justinbieber.domainname.com
06:52:15 <elliott> doesnt mean im justin bieber
06:53:23 <pikhq> If nothing else, our having been here for ages would be an argument in favor.
06:53:24 <elliott> But anyway, we've had this name for almost a decade, the term "esoteric" as it relates to programming languages is exclusively used to refer to our topic, we are the only active IRC channel for this topic, and we are associated with the main wiki for it; we've also had at least one populariser of the term "esoteric" as it relates to programming languages here. And it's hard to come up with another meaning of "esoteric" such that #esoteric would be
06:53:37 <elliott> And lament /did/ talk to people about getting a group registration.
06:53:48 <elliott> So obviously it wasn't dismissed immediately, although I dunno if he told them the channel name.
06:54:50 <elliott> Creative Commons has cc, it looks like
06:55:25 <elliott> http://freenode.net/primary_groups.shtml It seems that having a software project named that is completely sufficient, and I think we have a stronger tie to our name than some random software project
06:57:40 <fizzie> Yes, but software projects are what they prioritize. ("-- giving priority to trademark owners and peer-directed project groups --")
06:58:34 <fizzie> I don't really have an onion of the number of #s in front of the channel name. Though perhaps to be contrary we should try to get ###esoteric?
06:58:50 <pikhq> And register as a group.
06:58:51 <elliott> Well, we're a peer-directed project group. Sort of. :p
06:59:13 <elliott> But really, the group registration Might As Well Be Tried; what are they going to do, kick us out SLIGHTLY SOONER if they decide against it?
06:59:13 <pikhq> "Yes, we call ourselves ##esoteric. Therefore we should get ###esoteric."
07:00:03 <elliott> OH HM how do temporary variables work i WONDER...
07:00:14 <Patashu> Let's go for #, ## and ###
07:00:14 <elliott> oh god have i just lead myself into a world of CSE
07:00:36 <monqy> Creation Science Evangelism
07:00:48 <elliott> common subexpression elimination
07:01:10 <Patashu> ### unable to join channel (invite only)
07:01:35 <elliott> OH GODDAMMIT YORK LAVA ILL EAT YOUR SOUL AND TEAR OUT YOUR ENTRAIL
07:01:53 <monqy> what did york lava ever do to you
07:01:58 <pikhq> Ah, ##esoteric exists, is registered by ihope, is a redirect here, *and* is invite only.
07:02:00 <fizzie> Have they said whether they want everyone (who want to keep a non-grouped "#foo" channel) to apply for group thingies now or immediately after they've got that new system in place? (I think I've seen them complain about how horrible their current system is.)
07:02:16 <fizzie> "Due to the current backlog, priority is given to groups requiring approval in order to re-gain access/control of their group namespace."
07:02:29 <elliott> They were talking about that new GMS thing
07:02:30 <fizzie> Don't know what that means.
07:02:38 <elliott> So I guess we should try that when it happens.
07:02:51 <pikhq> fizzie: Groups wanting to steal a channel name.
07:02:55 <elliott> It was in the context of some idiot demanding that they reassign eir foundership even though eir request was backlogged
07:03:10 <elliott> And generally being a jerk about it
07:05:24 <elliott> -- For observable sharing. (Pass "outSigs" to prevent full-laziness.)
07:05:25 <elliott> ref = newRef outSigs Nothing
07:05:33 <elliott> -- Use of unsafePerformIO to implement Observable Sharing
07:05:33 <elliott> newRef :: a -> Maybe InstanceId -> IORef (Maybe InstanceId)
07:05:34 <elliott> newRef s x = unsafePerformIO (newIORef x)
07:05:36 <elliott> NOooooOOOOOOooooooOOOOOooooOOOooooOoooOoooOOooOOoooOooOOoooooooo
07:06:15 <pikhq> ... What the *fuck*.
07:06:40 <pikhq> unsafePerformIO . newIORef
07:06:51 <elliott> you realise thats a common idiom
07:06:58 <pikhq> I don't want it to be.
07:07:08 -!- CakeProphet has joined.
07:07:08 -!- CakeProphet has quit (Changing host).
07:07:08 -!- CakeProphet has joined.
07:07:12 <elliott> in this case its implementing something ghc cant do sOoooOOOOOOOooooOOOoooOOooooo
07:09:23 <oerjan> <CakeProphet> or is it that lambda isn't an operator character?
07:09:37 <oerjan> yeah they don't want to make greeks unable to use their language
07:10:56 <oerjan> they _could_ make it a reserved word, i guess, but that would still make λx->x not work (because λx is one word, not a keyword + a word)
07:12:03 <pikhq> Clearly, Unicode should distinguish between alphabetic and mathematic lambda. :P
07:12:24 <elliott> fullAdd :: Bit -> Bit -> Bit -> (Bit, Bit)
07:12:24 <elliott> fullAdd cin a b = (sum, cout)
07:12:24 <elliott> cout = muxcy sum' (a, cin)
07:12:29 <elliott> noooooooooooOOOOOooooooooOOooooOOooooooooooOOoooooooooOOOOOoooooooOOOOOOOOooooooooOOOOOOOOOOooooooooOOOOOOOOOoooooOOOOOOOOOooooOOOOOoooOOO
07:14:22 <elliott> Patashu: why hdl is like wtf :(
07:15:19 <pikhq> ... Waitwaitwait, it's relying on GHC's *precise* inlining semantics to work right?
07:15:40 <elliott> well hmm...............................................
07:15:57 <HackEgo> 131) <fungot> alise: why internet is like wtf
07:15:59 <elliott> still best thing ever said
07:17:18 <oerjan> fizzie: WE'LL BAN YOU IF YOU DON'T FIX FUNGOT SOON. Oh wait, darn...
07:17:42 <elliott> 17:14:42: <AnMaster> anyway, I still need ais, for a VHDL question
07:17:51 <elliott> same day as why internet is like wtf
07:18:15 <oerjan> elliott: maybe it was part of why fungot though it was wtf
07:19:49 -!- BeedaWeeda has quit (Ping timeout: 255 seconds).
07:19:56 <Sgeo_> fungot is a future psychic
07:20:38 <oerjan> fungot was clearly too good for this wretched mortal world
07:21:40 -!- monqy has quit (Quit: hello).
07:22:51 <olsner> I'll just go right ahead and link to some swedish humor: http://www.youtube.com/watch?v=VOfPnKkS4PM#t=2m03s
07:24:09 <elliott> why percy tarar is like wtf
07:24:54 <olsner> (one of the funny things is that this show (from 1996) is constantly making fun of christer fuglesang never getting sent into space - but it took another 10 years for him to actually get up there)
07:27:55 <olsner> oerjan: why is åke sick? http://www.youtube.com/watch?v=xltu4RW8Whw
07:28:39 <oerjan> um i rarely click youtube links
07:28:54 <olsner> probably a good strategy in general
07:29:20 -!- Phantom_Hoover has joined.
07:29:21 <oerjan> and at the moment my laptop is thrashing due to something probably insisting on upgrading (i suspect avg)
07:30:59 <oerjan> elliott: it came with the laptop
07:31:06 <Phantom_Hoover> 23:41:28: <elliott> You realise what kind of shit that would put a person in if (a) everyone in here didn't already know you were a piece of shit and (b) I wasn't a minor?
07:31:16 <oerjan> elliott: people who get them as presents
07:31:23 -!- azaq23 has quit (Quit: Leaving.).
07:31:59 <elliott> Phantom_Hoover: OK, that list of conditions was bullshit, but the point is that making child molestation allegations is... never OK.
07:32:08 <elliott> (Well, unless they're true.)
07:32:53 <pikhq> Phantom_Hoover: Doesn't change that it's a dick move.
07:33:08 <quintopia> one way to refute it is by beating up the slanderer in a round of fisticuffs
07:42:39 <elliott> observable sharing scares me
07:43:33 -!- ChanServ has set channel mode: +o oerjan.
07:43:56 <elliott> unaffiliated/beedaweeda cloak might be useful
07:44:12 <elliott> BeedaWeeda!~port72.c@50.8.174.68 is full uncloaked address though
07:44:20 -!- oerjan has set channel mode: -b *!*@*.
07:45:08 -!- oerjan has set channel mode: -b *!unaffiliat@*.
07:45:46 <Deewiant> /mode #esoteric +b foo!bar@baz
07:46:04 -!- oerjan has set channel mode: +b *!*@unaffiliated/beedaweeda.
07:46:49 <CakeProphet> we have very well-trained ops here at #esoteric
07:46:59 <elliott> well oerjan wouldn't know, he never uses the thing
07:47:49 -!- oerjan has set channel mode: +b BeedaWeeda!~port72.c@50.8.174.*.
07:48:08 -!- oerjan has set channel mode: -o oerjan.
07:48:29 <elliott> oerjan: methinks the point of a bigger ban is to get _around_ him using another name...
07:51:19 -!- ChanServ has set channel mode: +o oerjan.
07:51:33 -!- oerjan has set channel mode: -b BeedaWeeda!~port72.c@50.8.174.*.
07:51:51 -!- oerjan has set channel mode: +b *!*port72.c@50.8.174.*.
07:52:21 <oerjan> should i remove the port72.c part as well?
07:52:39 <elliott> oerjan: should be safe; there won't be many people with that IP
07:52:46 <elliott> and anyway it can be removed after a week or so, presumably even he gets bored
07:53:03 -!- oerjan has set channel mode: -b *!*port72.c@50.8.174.*.
07:53:11 -!- oerjan has set channel mode: +b *!*@50.8.174.*.
07:53:32 -!- oerjan has set channel mode: -o oerjan.
07:53:34 <Deewiant> Blocking plain IP ranges is a bit rude
07:54:03 -!- ChanServ has set channel mode: +o oerjan.
07:54:15 -!- oerjan has set channel mode: -b *!*@50.8.174.*.
07:54:25 -!- oerjan has set channel mode: +b *!*port72.c@50.8.174.*.
07:54:34 -!- oerjan has set channel mode: -o oerjan.
07:54:47 <elliott> Deewiant: It's a pretty specific range, and it's only for ~a week
07:54:54 <elliott> "Rude" doesn't seem to be a very good argument against
07:55:09 <Deewiant> It's still up to 254 completely unrelated people getting blocked
07:55:13 <oerjan> let's just assume until further notice he's not smart enough to get around that (and if he is, he can probably get another IP if he wants)
07:55:43 <elliott> Deewiant: Out of millions upon millions upon millions
07:55:50 <Deewiant> I'd ban the most specific thing possible at first and go wider only if he circumvents it :-P
07:56:00 <pikhq> Deewiant: Now you see why NAT and DHCP suck.
07:56:10 <elliott> Deewiant: He's clearly dedicated enough to keep "trolling" us for days solely because we told him UFOs aren't real
07:56:27 <pikhq> elliott: Rather, that UFOs most probably aren't aliens.
07:56:39 <elliott> Host Name:50-8-174-68.sfo.clearwire-wmx.net
07:56:49 <pikhq> The distinction matters.
07:56:58 <elliott> No it doesn't, UFO means alien ship and you know it
07:56:59 <Deewiant> pikhq: TBH I don't see how they matter here
07:57:15 <pikhq> elliott: I dislike terms defined by derp.
07:57:19 <elliott> Deewiant: because pikhq is a pedant
07:57:26 <Deewiant> GeoIP Country Edition: US, United States
07:57:35 <elliott> Deewiant: NOT NEARLY SPECIFIC ENOUGH
07:57:35 <oerjan> <CakeProphet> we have very well-trained ops here at #esoteric <-- it's just so much easier when they are present and the client can mangle the ban automatically from the nick
07:57:39 <elliott> It seems to be some mobile internet thing
07:57:41 <pikhq> I have a pedant license and everything. :)
07:58:16 <Sgeo_> pikhq, you own the universe now?
07:58:34 <pikhq> Sgeo_: Yes. Yes I do.
07:58:50 <pikhq> Which is why everyone is getting a free unicorn.
08:00:13 <oerjan> pikhq: i wish to complain, my free unicorn appears to be invisible. as well an awful shade of pink.
08:00:34 <CakeProphet> ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©
08:00:50 <pikhq> oerjan: Dem's the breaks.
08:00:56 <oerjan> CakeProphet: why this spamming of evil symbols?
08:01:00 <coppro> pikhq: Can I have a tardis?
08:01:15 <pikhq> coppro: Time lords only, sorry!
08:01:26 <coppro> Can I get a pet time lord then
08:01:27 <pikhq> However, you can be made a time lord.
08:01:29 <oerjan> pikhq: you mean coppro isn't retarded enough?
08:02:09 <pikhq> I'm afraid I'm contractually obligated to let the Daleks know of your whereabouts after doing so, though.
08:03:09 <oerjan> pikhq: just trick them into ex-terminating the contract
08:03:48 <coppro> pikhq: solution: make the daleks into time lords and give me a pet one
08:04:10 <pikhq> coppro: ... Do you know what havoc this would cause?
08:04:10 <oerjan> coppro: i foresee no problems with that solution
08:04:24 <elliott> coppro: you should write doctor who
08:04:35 <Sgeo_> pikhq, while you're at it, run rm -rf / on the universe. Seems gentler than coppro's solution
08:05:38 <pikhq> Sgeo_: dd if=/dev/urandom | tee /dev/* >/dev/null
08:06:54 <pikhq> Especially nasty, /dev/mem.
08:07:20 <Sgeo_> How is that that nasty? If it were only /dev/mem, wouldn't a reboot fix it?
08:07:29 <Sgeo_> Um, probably need a physical reboot
08:07:45 <pikhq> Uh, that would be writing to every device.
08:08:04 <Sgeo_> Oh, especially nasty since it includes /dev/mem
08:08:14 <Patashu> What does the >/dev/null part do
08:08:30 <pikhq> Patashu: Stops it from spamming your TTY. Uselessly, because your TTY is in /dev. :)
08:08:50 <pikhq> ... Also your framebuffer.
08:09:02 <elliott> pikhq: BTW, the observable sharing thing is actually "safe" ish
08:09:09 <elliott> pikhq: Because the functions that observe it are all in IO
08:09:11 <elliott> and IO functions can do anything
08:09:18 <elliott> including giving different results for identical values
08:09:26 <elliott> IO functions must be referentially transparent
08:09:28 <elliott> IO /actions/ can do anything
08:09:54 <elliott> (i.e. getLineButFirstPrintThisPrompt s == getLineButFirstPrintThisPrompt t if s == t, but the actions they represent can give wildly different results.)
08:13:57 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
08:14:09 <coppro> elliott: I haven't got the accent to write for Doctor Who, sadly/
08:14:45 <elliott> David Tennant, Hugh Laurie, you could be the next in a long line of successful acecnt-fakers
08:15:26 <coppro> elliott: it doesn't work that way for writers
08:15:39 <elliott> OH MY GOD KANSAS LAVA: GO AWAY: JESUS
08:15:41 <coppro> because you can't slip up
08:15:43 <elliott> STOP INVENTING: NEW LAVA: VARIANTS
08:15:50 <coppro> actors can just redo the take
08:15:58 <coppro> writers get no such leeway
08:16:06 <coppro> elliott: are you talking about minecraft or something?
08:16:07 <elliott> every time i make a mistake i reset
08:16:18 <elliott> coppro: im talking about circuit synthesis
08:16:30 <elliott> i happen to be writing a circuit Haskell HDL DSL and synthesiser for Minecraft redstone
08:16:40 <elliott> but everything im reading is about hardware design software
08:16:54 <elliott> lava is what FUCKING EVERYONE calls their Haskell HDL DSLs
08:17:03 <elliott> YOU CANT JUST TOTALLY REDESIGN IT AND THEN KEEP THE NAME YOU FUCKS
08:17:13 -!- CakeProphet has quit (Ping timeout: 276 seconds).
08:17:18 <elliott> theres Lava, Chalmers Lava, York Lava, fucking KANSAS LAVA
08:17:36 <elliott> NEXT THERE'LL BE ALASKA LAVA AND THERE ISN'T EVEN ANY LAVA IN ALASKA!!!!!!
08:18:30 <elliott> The definition is wrong. Declarative programming is about data flow, not about declarations. For example, Yahoo Pipes is declarative programming. --TehZ 08:12, 8 July 2011 (UTC)
08:18:32 <elliott> oerjan: i really want to kill tehz
08:19:14 <oerjan> <elliott> STOP INVENTING: NEW LAVA: VARIANTS <-- NEXT: BAKLAVA AND BALACLAVA
08:20:04 <Deewiant> elliott: Is there lava in Chalmers/York/Kansas?
08:20:22 <elliott> Deewiant: yes its a hardware description language
08:20:30 * elliott graduates from school of logic
08:21:12 <elliott> First known instance of Deewiant backing down when faced with nonsense.
08:25:18 <pikhq> elliott: ... Yahoo Pipes, *declarative*?
08:25:25 <pikhq> That's graphical programming.
08:25:50 <pikhq> ... And somewhat imperative, actually.
08:27:56 <elliott> http://upload.wikimedia.org/wikipedia/en/3/3c/Yahoo_Pipes_screenshot.png
08:28:07 <pikhq> Sorry, that was a misthink.
08:28:08 <elliott> but its not the only kind of declarative obviously
08:28:11 <pikhq> It's late and I should sleep.
08:28:47 <pikhq> Claiming that declarative programming is not about declarations is very confusing, though.
08:29:16 <elliott> Well it's hard to define declarative programming and maybe the definition is bad, but not for the reason TehZ says at all :P
08:29:29 <elliott> I just wish he wouldn't act so authoritative while being such an idiot.
08:29:46 <elliott> In order to observe sharing on nodes of types that are Typeable,
08:29:47 <elliott> and share a graph representation type, we refine the type of
08:29:47 <elliott> mapDeRef. The refined MuRef class has the following definition.
08:29:47 <elliott> mapDeRef :: (Applicative f)
08:30:07 <elliott> WHY ARE YOU DOING THIS TO ME
08:30:25 <elliott> hey this stuff will actually let me produce a circuit graph, cool
08:30:45 <pikhq> elliott: You should call this Minecraft Lava.
08:31:39 <Patashu> How are you going to deal with connections being unable to be longer than 15 tiles without needing a repeater thus making that connection take one extra tick
08:35:31 <oerjan> (what do you _mean_ i'm just guessing?)
08:35:47 <pikhq> Patashu: He'll run the whole thing on a 300-clock to avoid sync issues!
08:35:48 <fizzie> You just make your master clock for the actual circuit slow enough so that signal propagation delays like that aren't a problem, right?
08:36:00 <elliott> <pikhq> elliott: You should call this Minecraft Lava.
08:36:03 <elliott> <Patashu> How are you going to deal with connections being unable to be longer than 15 tiles without needing a repeater thus making that connection take one extra tick
08:36:19 <elliott> Well, I just have to account for that during synthesis
08:36:26 <elliott> It's no harder than the physical problems real-world synthesisers take :)
08:36:27 <pikhq> elliott: It's just that they're a hell of a lot of propogation delay in most contexts is all.
08:37:05 <elliott> Yeah, but human-built shit suffers this too
08:37:14 <elliott> And human-built shit generally doesn't use the vertical dimension much
08:37:18 <fizzie> pikhq: Perhaps he can then do the clock-setting time-speedup thing to actually run the universe at higher speed.
08:37:21 <elliott> I have the advantage there, i.e. building pain isn't an issue :P
08:37:52 <fizzie> (Does that still work?)
08:38:49 <Patashu> It's kind of surprising that redstone only runs at 10 fps to begin with
08:38:53 <Patashu> Is it really so computationally intensive?
08:38:56 <elliott> A traditional way of observing functions is to apply a function to a
08:38:56 <elliott> dummy argument, and observe where this dummy argument occurs
08:38:56 <elliott> inside the result expression. At first, it seems that an exception can
08:38:56 <elliott> be used for this, but there is a critical shortcoming. It is impossible
08:38:56 <elliott> to distinguish between the use of a dummy argument in a sound
08:38:57 <elliott> way and examining the argument. For example
08:39:07 <elliott> when x is bound to an exception-raising thunk.
08:39:11 <elliott> someone else had that idea????
08:40:07 <pikhq> Patashu: Actually, Notch is t3h lazy.
08:40:21 <elliott> instance ( MuRef a, Typeable a, NewVar a,
08:40:21 <elliott> DeRef b ~ DeRef (a -> b) )
08:40:22 <elliott> type DeRef (a -> b) = Node
08:40:24 <elliott> mapDeRef f fn = let v = mkVar $ toDyn fn
08:40:26 <elliott> in Lambda <$> f v <*> f (fn v)
08:40:33 <pikhq> Same reason for the 16 block limit.
08:41:52 <elliott> um no that's for performance reasons IIRC
08:41:59 <elliott> and memory-hogging reasons
08:42:03 <Patashu> How performance intensive is it to do some boolean arithmetic
08:42:26 <pikhq> Patashu: Well, you must remember, this is Java.
08:43:01 <pikhq> Where people love that their JVM is uberfast, so they can put 10 trillion poorly done abstraction layers in place so it's sufficiently slow.
08:43:14 <Patashu> I still love the xkcd comic about that
08:43:33 <Patashu> Flash movie on flash on web browser on kernel on CPU on hardware or something
08:43:56 <Patashu> I think the best kind of abstraction is simulating a CPU on circuitry on your computer on your CPU on your circuitry
08:44:39 <Patashu> Like that dwarf fortress computer one guy made
08:44:46 <Patashu> Then you inevitably get someone saying to emulate dwarf fortress on that computer
08:44:51 <Patashu> Strangely no one ever goes that far
08:47:10 <coppro> ok, I go to bed after this
08:50:37 <elliott> http://www.ittc.ku.edu/csdl/fpg/sites/default/files/Gill-09-TypeSafeReification.pdf god this is sdojfisdf
08:50:53 <elliott> Patashu: you might like the eigenvalues blog :p
09:25:19 -!- cheater_ has joined.
09:26:29 -!- cheater_ has quit (Client Quit).
09:27:21 -!- cheater_ has joined.
09:29:40 -!- ais523 has joined.
09:30:50 -!- cheater_ has quit (Client Quit).
09:30:58 <ais523> my sleep pattern atm is unusually sane, I'm worried
09:31:04 <ais523> I'm going to sleep about 9pm and waking up about 5am
09:31:15 -!- cheater_ has joined.
09:31:16 <elliott> ais523: can you use your industry connections to tell everyone not to name every single Haskell HDL library Lava just because they originally based it on something called Lava and then totally rewrote it and changed the API
09:31:38 <ais523> I can mention it to them if necessary
09:31:59 <elliott> i read a paper about observable sharing using Kansas Lava as an example, got to the end, looked at the type signature, and used the hackage library instead of rewriting it
09:32:04 <elliott> i never use libraries, something is WRONGGG
09:32:23 <elliott> (forall b. (MuRef b, DeRef a ~ DeRef b) => b -> f u)
09:32:27 <elliott> seriously. that signature.
09:33:47 <elliott> add :: (Bit,Bit,Bit,Bit) -> (Bit,Bit,Bit,Bit) -> ((Bit,Bit,Bit,Bit),Bit)
09:33:47 <elliott> add (a,b,c,d) (e,f,g,h) = ((oa,ob,oc,od),cd)
09:33:47 <elliott> where (oa,ca) = halfadd a e
09:34:13 <elliott> but now I just need to make that _generic_
09:34:16 -!- cheater_ has quit (Client Quit).
09:34:27 -!- cheater_ has joined.
09:34:50 <elliott> ais523: and before you ask, yes, yes i am just reimplementing york lava wholesale
09:35:00 <ais523> what are you going to call it?
09:35:29 <elliott> (not really, but it's tempting)
09:35:33 <elliott> maybe i'll just call the actual DSL hexham lava
09:36:07 <elliott> so yeah, when i was surprised by "let x = delay low (delay high x) in x" working in York Lava
09:36:11 <ais523> do you still live in an insignificant village vaguely near Hexham?
09:36:15 <elliott> oh god the horrors that go into making that work
09:36:28 <elliott> ais523: no, I've been in Hexham proper since late last year
09:36:38 <elliott> and I'm putting you down in my book as an exceptionally bad stalker
09:36:50 <ais523> don't worry, I'm sufficiently bad at stalking that you have nothing to fear from me
09:36:54 <elliott> hmm, was it even late, or was it just mid
09:37:07 <elliott> ais523: that's exactly what a master stalker would say
09:37:45 <ais523> wow, the News of the World is actually going to shut down as a result of the phone hacking scandal
09:38:04 <elliott> so just to scare ais523, I would now like to state the fact that my code can tell
09:38:05 <elliott> fulladd :: Bit -> Bit -> Bit -> (Bit,Bit)
09:38:05 <elliott> fulladd a b cin = (n `xor` cin, (a `and` b) `or` (n `and` cin))
09:38:17 <elliott> fulladd :: Bit -> Bit -> Bit -> (Bit,Bit)
09:38:17 <elliott> fulladd a b cin = ((a `xor` b) `xor` cin, (a `and` b) `or` ((a `xor` b) `and` cin))
09:38:46 <ais523> that sort-of defeats the point of Haskell, I fear
09:39:09 <elliott> ais523: not really; the only change is that the outputted redstone will be /slower/ if you do that
09:39:21 <elliott> and it's hardly unHaskelly for shuffling equivalent code to result in a /speed/ change
09:39:27 <elliott> otherwise optimising Haskell code would be impossible
09:39:40 <elliott> ais523: and you can only tell them apart in IO, which can do anything
09:39:48 <elliott> ais523: anyway, York Lava does it too
09:39:55 <elliott> and so does Kansas Lava, but in a nicer way that I copied :)
09:39:59 <ais523> hmm, I fear that there's far too much magic in IO
09:40:00 <elliott> ((by using their library))
09:40:17 <elliott> it is literally State RealWorld :P
09:41:27 <ais523> hmm, based on wiki discussion, I'm vaguely tempted to try to write a language where it's far from obvious (preferably undecidable) whether it's computable or not
09:41:29 <ais523> but I have no idea how
09:45:30 <Deewiant> elliott: State#, a rather different beast
09:45:40 <oerjan> <ais523> do you still live in an insignificant village vaguely near Hexham? <-- wait, hexham isn't an insignificant village?
09:46:01 <ais523> oerjan: it's major enough for me to have heard of it before elliott claimed to live nearby
09:46:08 <ais523> although not major enough for me to know why I'd heard of it
09:46:18 <elliott> Deewiant: By "literally", I meant "figuratively".
09:46:38 <elliott> Deewiant: And it's not State# RealWorld, it's State# RealWorld -> (# State# RealWorld, a #).
09:47:03 <elliott> Deewiant: Have you got any other prescriptivist-pedant requests to make? (would you like fries with that?)
09:48:49 -!- oerjan has quit (Quit: Later).
09:50:25 <elliott> ais523: Is Vorpal right in saying that calling a vector of n HDL-bits a word wrong? :'(
09:50:34 <elliott> As opposed to "array of bits" which is just SILLY.
09:50:54 <ais523> elliott: calling it a word is correct iff it corresponds to some sort of native wordlength in what you're producing
09:51:03 <ais523> I think it'd be wrong to have, say, both 9-bit words and 11-bit words in the same program
09:51:07 <ais523> but either is plausible in the abstract
09:51:18 <elliott> ais523: But x86 words aren't even the native wordlength!
09:51:20 <ais523> std_logic_vector, the "official" VHDL name, is incidentally also just SILLY
09:51:27 <ais523> elliott: because x86 is wrong
09:51:32 <elliott> ais523: Anyway, you're just a meanie, York Lava does it.
09:51:53 <elliott> type Word n = Vec n BitSource
09:51:54 <elliott> Notably, an instance of the Num class.
09:52:10 <ais523> that's dangerous, as you run into signed/unsigned arithmetic problems
09:52:17 <elliott> ais523: It has a separate Signed type
09:52:33 <elliott> "one-hot" <-- I love this terminology
09:52:43 <ais523> I know for my compiler, I decided to use signed/unsigned operators rather than signed/unsigned data types, I think that's a much more mature and sensible way to handle the issue
09:52:59 <elliott> ais523: By "much more mature and sensible", do you mean "less effort"?
09:52:59 <ais523> elliott: the inefficient small-integer encoding that is nevertheless sometimes useful?
09:53:08 <ais523> elliott: no, it's about the same amount of effort
09:53:15 <ais523> but it removes classes of subtle bugs
09:53:20 <elliott> ais523: It's just the OCaml solution, i.e. not a solution
09:53:32 <ais523> elliott: well, if you're encoding 1,2,3,4,5 as 10000 01000 00100 00010 00001
09:53:45 <ais523> you'd probably be better off using 001 010 011 100 101 if you wanted to save memory
09:53:53 <ais523> one-hot just makes for a useful intermediate sometimes
09:54:00 <elliott> Oh, is that what one-hot means?
09:54:08 <elliott> I assumed it just meant one = one binary
09:54:11 <elliott> Rather than inverting them
09:54:27 <elliott> Which cheap plastic imitation of ais523 (Vorpal) tells me is sometimes a good idea
09:54:46 <ais523> the thing about modern semiconductor design is, 0s are more powerful as 1s
09:54:55 <elliott> `addquote <ais523> the thing about modern semiconductor design is, 0s are more powerful as 1s
09:54:57 <HackEgo> 490) <ais523> the thing about modern semiconductor design is, 0s are more powerful as 1s
09:55:02 <elliott> Oh, I mentally corrected that
09:55:05 <ais523> as in, you can sink more current from a 0 than you can source from a 1
09:55:07 <elliott> But hey, it makes the quote more confusing, let's go with that
09:55:16 <ais523> the difference is almost an order of magnitude, it's quite large
09:55:33 <ais523> often you have to use 0=true as a result, say if you're powering LEDs
09:55:40 <elliott> ais523: Doesn't apply in redstone, mind you :)
09:55:48 <elliott> I have to keep reminding myself I'm not writing an /actual/ synthesiser.
09:58:24 <ais523> it's not a real problem in practice, as you can just add an inverter at the end
09:58:31 <ais523> except when you're designing the internals of an IC
10:01:51 <elliott> hmm, at least I can say I've improved on this particular module of York LAva
10:02:00 <elliott> I've made the type-level nats binary to avoid context stack overflows
10:03:32 -!- FireFly has joined.
10:08:48 <elliott> wow, how does less-than work on binary numbers again
10:11:46 <Deewiant> Same way it works on decimal numbers
10:15:07 <Deewiant> If the bits're equal, recurse, otherwise 0 < 1, if no more bits are left then the numbers are equal
10:17:34 <elliott> i turned on scoped type variables
10:17:52 <Deewiant> Your question provided no context to assume rhetoricalness so I answered it
10:18:47 <elliott> that was sincere thanks, i cant handle binary right now
10:31:27 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
10:33:26 <cheater_> why don't you want to work with squid 2, google instant?
11:03:06 -!- GreaseMonkey has quit (Quit: The Other Game).
11:05:35 <elliott> Man, are there really no decent fixed-length vector libraries on Hackage that encode the vector as a natural in the type rather than making the type grow in the number of conses or whatever?
11:08:12 <elliott> NOT A RHETORICAL QUESTION, PEOPLE
11:09:22 <Patashu> high level o2jam charts are the perl of rhythm gaming
11:09:26 <Patashu> http://www.youtube.com/watch?v=8l7XLN7tFRI&feature=related
11:09:34 <elliott> rhythm gaming is the perl of rhythm gaming
11:32:21 <oklopol> well obviously it could just
11:42:36 -!- copumpkin has joined.
11:42:37 -!- copumpkin has quit (Changing host).
11:42:37 -!- copumpkin has joined.
11:45:36 -!- boily has joined.
12:34:18 <elliott> Will Google be around? I think it will be more interesting to see if Google will be around in five years? Or better yet will we still be searching for information using search engines and keywords?
12:40:13 <elliott> “Large Hadron Collider will destroy Earth.” DETAILED TERMS »
12:40:16 <elliott> will go to National Rifle Association if Keane wins,
12:40:18 <elliott> or Save the Children if Damiano wins.
12:40:20 <elliott> oh i wonder what political affiliation mr. keane has
12:40:41 <elliott> "Prediction is correct if Earth is, as a result of operation of the collider, annihilated, reduced to much smaller volume than previously, vaporized, broken into large pieces, converted into photons, neutrinos, or other radiation, converted into exotic matter, or just unable to support life. For the purpose of the bet, Earth should be considered "destroyed" if, at the end of the term of this bet in 2018, zero human beings reside on the surface of t
12:40:41 <elliott> anet. Damage caused by attack of hostile beings is included if it is a causal result of operation of the collider. Teleporting Earth to another location or alternate universe where it is still able to support life is specifically excluded. Bet is won if whatever scientific community remains at this time, whether human, machine, or extraterrestrial, acknowledges that the "destruction" of Earth most likely resulted from the Large Hadron Collider or a
12:40:42 <elliott> uct thereof (e.g. strangelet, micro black hole, etc)."
12:41:48 <elliott> Deewiant: I like how Keane thinks we're going to colonise other planets before the LHC blows everything up
12:41:57 <elliott> Or maybe the "international scientific community" will consist of the people on the ISS
12:42:08 <elliott> "That Earth look blown up to you?" "Yep." "LHC?" "Prob'ly."
12:42:28 <elliott> "Teleporting Earth to another location or alternate universe where it is still able to support life is specifically excluded." <-- this is the best part though, i hope the lhc does this
12:43:04 <Deewiant> Well, it did specify "human, machine, or extraterrestrial"
12:43:37 <Deewiant> And "whatever scientific community remains at this time"
12:43:48 <elliott> "Secondly, the concept of "unitlessness" was invented (AFAIK) by some academic to scare students a long time ago and is not taken seriously by modern scientists. I first heard of it in an early lecture in my college physics class and decided to drop it (the lecturer's accent was also really bad). Even more strange, I logged onto OpenCourseWare and Walter Lewin talked about it as well! I had heard that MIT was a good school, but I am now teaching my
12:43:48 <elliott> physics from better books such as the Emperor's New Mind."
12:44:00 <elliott> This is the best web page + comment section I have ever read.
12:45:33 -!- foocraft has joined.
12:45:47 <ais523> elliott: if the LHC destroyed the world, collecting on the bet would be a little difficult
12:46:28 <ais523> elliott: you can't slowpoke me if I haven't been looking at the chat for ten minutes and that's my reaction upon catching up
12:46:33 <ais523> well, you can, but it isn't very effective
12:47:04 <ais523> besides, Dream World slowpoke is actually very good
12:47:19 <ais523> well, better after evolving
12:47:22 <elliott> Yes but it's still slow and a poke.
12:52:03 -!- BeholdMyGlory has joined.
13:00:06 -!- CakeProphet has joined.
13:00:06 -!- CakeProphet has quit (Client Quit).
13:00:26 -!- CakeProphet has joined.
13:13:17 -!- boily has quit (Quit: WeeChat 0.3.5).
13:24:22 <elliott> *Redsynth.Test> add (one,zero,zero,one) (zero,zero,zero,one)
13:24:22 <elliott> ((one,zero,zero,zero),one)
13:24:46 -!- copumpkin has quit (Remote host closed the connection).
13:25:15 -!- copumpkin has joined.
13:25:16 -!- copumpkin has quit (Changing host).
13:25:16 -!- copumpkin has joined.
13:30:24 <elliott> *Redsynth.Test> add (one,zero,zero,one) (one,zero,zero,zero)
13:30:24 <elliott> ((zero,one,zero,one),zero)
13:35:02 <elliott> Deewiant: little endian is the best
13:35:56 <elliott> Deewiant: downcasting is nop
13:36:14 <elliott> also, it's the obvious ADT expression of binary :)
13:37:11 <Deewiant> I'd still make I/O big-endian :-P
13:37:15 <elliott> Conversely, why's it gross?
13:37:32 <elliott> And that's hardly I/O, that's simulating a ripple adder by literally giving it bits :P
13:37:49 <Deewiant> Just from the I/O perspective in that it's unlike (almost?) all natural languages
13:38:11 <elliott> Deewiant: You realise this is a circuit that would be used internally in a CPU?
13:38:12 <Deewiant> I guess with Read and Show you have to have it like that, meh
13:38:28 <elliott> Deewiant: When I'm simulating something that looks like
13:38:32 <elliott> add :: (Bit,Bit,Bit,Bit) -> (Bit,Bit,Bit,Bit) -> ((Bit,Bit,Bit,Bit),Bit)
13:38:33 <elliott> add (a,b,c,d) (e,f,g,h) = ((oa,ob,oc,od),cd)
13:38:33 <elliott> where (oa,ca) = halfadd a e
13:38:35 <Deewiant> It's I/O in the sense that you I (one,zero,zero,one) and it Os (zero,one,zero,one)
13:38:37 <elliott> I don't want it to print in opposite order.
13:38:55 <elliott> Deewiant: How many times do I have to say that I'm simulating an adder circuit directly :P
13:39:46 -!- Patashu has quit (Ping timeout: 252 seconds).
13:40:18 <Deewiant> To preserve my sanity I'd write a String -> (Bit,Bit,Bit,Bit) that turns "1000" into (zero,zero,zero,one) or (zero,one,zero,zero) or whatever it should be
13:40:55 <elliott> Deewiant: It's going to be Vec N4 Bit, or maybe even Unsigned N4
13:40:58 <elliott> And that'll have a Num instance
13:41:16 <elliott> Not that Haskell has binary literals, but
13:41:57 <elliott> Deewiant: I've already written my own, it's just crap :P
13:42:09 <elliott> Deewiant: I tried to use binary type-level nats to avoid context stack overflows
13:42:22 <elliott> But it turns out that it's way harder to "prove" stuff about them to get your functions to type, woo
13:42:31 <elliott> So fuck that, I'm going back to unary and forcing ugly compiler flags on everyone
13:42:42 <elliott> Deewiant: I suppose I could depend on York Lava and just "import Lava.Vec" :P
13:43:43 <Vorpal> elliott, on a development board I used, that had a row of buttons and leds, for buttons 0 = pressed, and for the leds 0 = emitting light.
13:43:49 <Vorpal> (wrt that discussion above)
13:44:22 <elliott> Deewiant: -fcontext-stack=9999
13:44:52 <elliott> It's set at twenty-one by default, which means that if you have a twenty-four bit word, the compiler will refuse to admit it's a member of any typeclasses where your instance recurses
13:45:06 <elliott> A really stupidly low value; what harm would there be in setting it to e.g. five hundred twelve
13:45:32 <Vorpal> elliott, one-hot coding can be used on a port on a SOC for example if you connect one LED or button to each pin on that port
13:45:42 <Vorpal> I mean, it has it's uses
13:47:11 <Vorpal> elliott, System On a Chip
13:47:53 <elliott> Bah, who needs chips, lay it on the rough grass, this is Minecraft!
13:48:06 <Vorpal> elliott, well it was just an example
13:48:09 <Deewiant> Fish is all you need, the chips are just extra
13:48:36 <elliott> Like you guys have chips in Finland.
13:49:20 <elliott> You probably don't even know what "fish" means
13:49:43 <Deewiant> http://www.kalakerho.net/tiedostot/ahven24.jpg
13:52:31 <Vorpal> Deewiant, what sort of fish is it?
14:25:55 <ais523> the funny thing is, that although most Brits know a perch is a sort of fish, they have no idea what specifically it is
14:26:09 <ais523> I wouldn't be able to tell one from another random species of fish I didn't know
14:27:04 <elliott> IF A PARAMETER OF A GADT HAS AN INSTANCE FOR A GIVEN TYPECLASS FOR EACH CONSTRUCTOR
14:27:07 <elliott> THEN IT DOES NOT NEED TO BE STATED
14:27:15 <elliott> IM GOING TO RIP YOUR SOUL APART
14:32:57 <ais523> hmm, this makes me want to work more (as in, at all) on Anarchy
14:33:02 <ais523> even if it probably wouldn't solve that problem
14:33:23 <elliott> "Property is theft! Uh, also, GADT typeclass contexts."
14:34:23 <ais523> intended for writing compilers
14:34:38 <elliott> <ais523> it's, umm, an esolang
14:34:50 <ais523> well, it's not as eso as most esolangs
14:34:59 <ais523> it's just that I can't consider anything I write a real language :)
14:35:27 <elliott> one day ais523 will release the Common Practicality-Oriented Boring Language, and talk about HOW ESOTERIC it is; you guys, it organises statements into blocks and has mutable variables!!
14:35:39 <elliott> and we'll all believe you cuz we're gullible hero-worshipping idiots
14:36:01 <elliott> and it will become world famous
14:36:05 <elliott> and we will declare mission successful
14:36:19 -!- foocraft has quit (Ping timeout: 255 seconds).
14:36:20 <ais523> Anarchy effectively has mutable types, does that count?
14:36:31 <ais523> as in, the types themselves, not variables of that type
14:36:40 <ais523> except it's done statically at compile time
14:37:25 * elliott realises he should have more of an aversion to the phrase "statically at compile time" than he does
14:38:16 <ais523> it's also one of those languages where I have to reign it back a bit to stop it becoming uncomputable
14:38:28 <elliott> except sometimes you don't even bother
14:38:31 <elliott> well, apart from the sub-TC ones
14:38:45 <ais523> nah, Underload hit exactly TC pretty much without trying
14:38:54 <ais523> although it turned out to have quite a few redundant commands for that purpose
14:39:03 <elliott> After Overload collapsed under its own weight
14:39:25 <elliott> What I'm saying is, Underload is the reigning-in of Overload :P
14:39:29 <ais523> and you could jump into bits of program that were still on the stack, etc
14:39:36 <ais523> I don't believe Overload was super-TC, though
14:39:40 <ais523> just really hard to get your head around
14:39:48 <ais523> and, fwiw, to implement
14:39:50 <elliott> I wonder what happens if you take something like Overload, and just don't stop adding to it
14:39:59 <elliott> Can languages collapse into a black hole?
14:40:08 <ais523> do you know of MAGENTA?
14:40:13 <elliott> Will adding ONE MORE FEATURE suddenly make your language uncomputable in conjunction with the others?
14:40:27 <elliott> ais523: Yeah, but that's more "a really silly imperative-ish language" than "EVERY PARADIGM POSSIBLE SMUSHED TOGETHER".
14:40:34 <ais523> and even so, it's cursed
14:40:45 <ais523> smushing every paradigm possible together would be worse
14:40:52 <ais523> admittedly, Overload was getting that way
14:41:22 <elliott> "Perfection is achieved, not when there is nothing left to take away, but when there is nothing more to add."--Saint-Exupery de Antoine
14:41:33 <ais523> is that a genuine attribution?
14:41:46 <elliott> (quote from foreword of The Kind-of-Algorithmic Language Overload)
14:41:55 <ais523> actually, if you think about it, it's correct that way round
14:41:58 <elliott> It's "Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away." --Antoine de Saint-Exupery
14:42:13 <ais523> if there's nothing more to add, it means that you don't need anything else for it to be perfect, along the lines of BF
14:42:18 <elliott> ais523: Argh, I swapped too much.
14:42:35 <elliott> "Perfection is achieved, not when there is nothing more to take away, but when there is nothing left to add." --Saint-Exupery de Antoine
14:42:39 <ais523> if there's nothing more to take away, it means you have a horrific mess where you can't take out anything and leave it still viable
14:43:14 <ais523> I mean, it's meant to be a bad quote, right?
14:43:16 <ais523> so being worse is better
14:44:18 <elliott> that was intentional, right
14:45:04 <elliott> ais523: what should i call... a bit vector... if not a word... :(
14:45:09 <elliott> i need something to call the module :P
14:45:13 <elliott> im thinking of just using Unsigned/Signed for the actual types
14:45:18 <ais523> semi-intentional, I caught it as soon as I wrote the sentence, and left it in
14:45:19 <elliott> then there can be NO ARGUMENT
14:45:39 -!- foocraft has joined.
14:46:16 <ais523> what about SomeBitsOfThisAreSignedAndSomeAreUnsignedBecauseVHDLDoesntHaveVarargsButItDoesHaveArraysWithLengthSpecifiedByATemplateParameterSoIFakedThemWithAnArrayAfterAllEverythingIsJustBitsRight
14:46:34 <ais523> I've actually done that on two different projects...
14:46:54 <ais523> err, I didn't actually name them that
14:47:02 <ais523> the type was called std_logic_vector, as always
14:47:16 <elliott> ais523: amusingly, Haskell doesn't have varargs either
14:47:18 <elliott> but it has [], which is the same thing
14:47:22 <ais523> but I mean, it's a use for a std_logic_vector that isn't interpreted either as a signed or an unsigned variable
14:48:01 <elliott> UNLIKE YORK LAVA, I'm planning to keep the numbery types separate from the vectors by newtypes
14:48:16 <elliott> York Lava just keeps signed separate (for typeclasses); vectors of bits are identical to unsigned numbers
14:48:25 <elliott> Especially as it stops you making a nice Show instance
14:48:37 <elliott> Unless you want all your vectors to show like that I suppose
14:49:11 <ais523> VHDL's method of doing things is really amusing
14:49:29 <ais523> by default, + on vectors is an error, you have to import an arithmetic library
14:49:44 <ais523> and signed and unsigned arithmetic are in two separate libraries, so originally you just imported one or the other
14:50:00 <ais523> after a while, they decided that was stupid, so imported a third which had signed() and unsigned() casts you could put around the vectors
14:50:03 <elliott> I kind of feel bad about writing a Num instance, because dammit, you should have to write your own ripple carry adder
14:50:31 <ais523> although at least it's easy
14:50:53 <elliott> ais523: Remember, my electronics have very limited size :P
14:51:04 <elliott> And the bigger they get the smaller they get (= repeater)
14:51:06 <ais523> ideally, you'd let the user select their own implementation of addition
14:51:13 <elliott> They can do that by using another function :P
14:51:20 <elliott> Or making their own instance and not importing mine
14:51:38 <elliott> ais523: Almost any adder will require being assembled as a separate circuit and hooked up to the rest of the system, anyway
14:51:50 <elliott> Because, like I said, my circuits are tiny
14:51:54 <elliott> Can't afford to duplicate anything :P
14:52:27 <elliott> ais523: So in RL circuits, do OR gates flow the result back to their input too?
14:52:38 <ais523> depends on the architecture
14:52:39 <elliott> i.e. (A or B) where A is low and B is high flow... highness to A.
14:52:43 <elliott> (I'm good at terminology.)
14:52:56 <ais523> a "wired-OR" does, that's when you connect two outputs together, using logic levels that make that possible
14:52:58 <elliott> This is kind of a problem in Minecraft since it saves space and time most of the time but fucks up some circuits :P
14:53:01 <ais523> but it has all sorts of undesirable characteristics
14:53:11 <ais523> so people nearly always use gates which have explicit inputs and outputs
14:53:26 <elliott> ais523: In redstone, OR is literally just connecting two wires together, yeah
14:53:27 <ais523> note that if you flow a signal to an output in real life, you either get nothing happening, very high power drain, or a fire
14:53:29 <ais523> depending on various things
14:53:35 <elliott> And it's the most common type of OR because... repeaters take up a block and a tick
14:53:49 <ais523> alternatively, you could use diodes, but that has problems of its own
14:53:50 <elliott> (You need to put a repeater on one input to stop it flowing backwards)
14:57:38 <elliott> ais523: BITVECTOR IS SUCH AN UGLY NAME DO YOU HAVE ANY IDEA
14:58:16 <ais523> just call it Std_logic_vector
15:07:09 <elliott> ais523: but it isn't even std_logics
15:07:16 <elliott> I deal in finest pure bits
15:07:32 <ais523> also, VHDL's array declaration syntax is really really weird
15:07:39 <ais523> first, you have to define an array type
15:07:50 <ais523> and the definition looks something like this (/me looks it up because it's so crazy):
15:08:23 <ais523> ugh, seems I don't use it in any of my programs
15:08:33 * ais523 looks it up in the stdlib
15:08:56 <elliott> ais523: LITTLE OR BIG ENDIAN
15:09:08 <ais523> depends on whether you declare the indexes as 0 to 7 or 7 downto 0
15:09:15 <elliott> ais523: no i mean which do you do
15:09:51 <ais523> type std_logic_vector is array (natural range <>) of std_logic
15:09:59 <ais523> *type std_logic_vector is array (natural range <>) of std_logic;
15:10:16 <elliott> as opposed to real or complex range
15:10:33 <ais523> I'm not sure what happens if you put something other than an integral type there
15:10:46 <ais523> I suppose I should try string range <> sometime to see how the compiler reacts
15:10:52 <ais523> also, I still don't know what the <> is for
15:11:06 <elliott> its the hole that the indices go into
15:12:16 <ais523> VHDL is really finicky about semicolons, btw
15:12:29 <elliott> hmm, I should parameterise my integer types on little/big endian
15:12:34 <ais523> and the rules for where they go are vaguely consistent but unintuitive
15:12:46 <ais523> elliott: well, VHDL effectively does
15:13:06 <ais523> if you go down that route, you should parameterise signed integers on whether they're two's complement, one's complement, or signed-magnitude
15:13:10 <ais523> and have a thousand different sorts of floats
15:13:23 <elliott> floats in minecraft LMAO i want to make an fpu now
15:14:04 <ais523> someone wrote one in INTERCAL
15:14:39 <ais523> admittedly, I don't think anyone wrote one in Malbolge
15:14:44 <ais523> and redstone is somewhere in between
15:20:57 <elliott> LITTLE OR BIG ENDIAN i need to know what opinion you have so i can correct it
15:21:10 <ais523> I'm not sure which term refers to what
15:21:16 <ais523> middle endian is unmistakably wrong, though :)
15:21:25 <elliott> ais523: little endian = numbers done get bigger as you go right
15:21:37 <ais523> which end's left, and which end's right?
15:21:45 <ais523> anyway, it depends on what you're doing
15:21:56 <elliott> ais523: oh come on, you know what end's left
15:22:00 <ais523> gcc-bf uses least significant byte has lowest address
15:22:05 <elliott> little: lowest address = least significant
15:22:08 <Deewiant> X endian = the most X significant bit is at the start
15:22:09 <ais523> because that way, casting int to short or short to char is a no-op
15:22:10 <elliott> big: lowest address = most significant
15:22:21 <elliott> ais523: right, that's the sole reason for little-endian being good
15:22:26 <elliott> as opposed to the zero reasons for big
15:22:52 <Deewiant> Big endian discourages casting, thus is good
15:24:10 <elliott> Deewiant: What does that even mean
15:25:41 <Deewiant> Because downcasting big endian integers isn't a no-op, you're less likely to cast with big endian, and because blindly casting is generally bad, this is a good thing, thus big endian encourages good practices, thus it is good
15:27:02 <elliott> Deewiant: You... are joking, right?
15:29:52 <Gregor> The space shuttle countdown clock on nasa.gov is counting up :P
15:30:04 <ais523> elliott: big-endian works better for fixedpoint, for much the same reason little-endian works better for integers
15:30:18 <ais523> because you can truncate it as a no-op
15:30:30 <elliott> But you can have a heh too
15:33:20 <lifthrasiir> http://codepad.org/9txI7dcT recent project: code golfing a text-to-number program.f
15:34:56 <elliott> as in "one hundred" => ...?
15:36:45 <Deewiant> Now make it reject invalid input
15:37:37 <lifthrasiir> Deewiant: the first approach i tested indeed did so, using a perfect hash. too huge for golfing however.
15:38:30 <lifthrasiir> it nevertheless handles "thousands" vs. "thousand" correctly, and also correctly ignores "and".
15:38:51 <lifthrasiir> one bug is that it treats "a" as like "zero"... :p
15:40:23 <elliott> hmm, type families and typeclasses, tricky
15:49:10 <quintopia> qntm: SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAACE
15:53:13 -!- monqy has joined.
16:01:39 <elliott> monqy: how do type families
16:02:47 <monqy> when a boy type loves a girl type very much
16:03:46 <Gregor> https://github.com/mozilla/narcissus/blob/master/lib/jslex.js#L538 BEHOLD
16:04:03 <Gregor> My BRILLIANT metacircular code is now a part of Narcissus.
16:04:37 <monqy> how did that happen
16:09:53 <elliott> <monqy> when a boy type loves a girl type very much
16:10:02 <elliott> the POVERTY types are having CHILDREN......
16:11:16 <quintopia> eh theyve gotta do something when they arent watching tv or collecting their check... :P
16:12:13 -!- Phantom_Hoover has joined.
16:14:31 -!- aloril has quit (Ping timeout: 252 seconds).
16:26:55 -!- aloril has joined.
16:31:52 -!- MigoMipo has joined.
16:50:16 -!- aloril has quit (Ping timeout: 240 seconds).
16:54:01 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
16:58:52 -!- Phantom_Hoover has joined.
16:59:19 <Phantom_Hoover> OK guys come on I need a really long, 'boring', academic YouTube video.
16:59:19 <lambdabot> Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them.
16:59:35 <Phantom_Hoover> Where 'boring' == boring for normal people but not actually boring for me.
17:03:17 -!- aloril has joined.
17:09:13 -!- foocraft has quit (Ping timeout: 258 seconds).
17:52:45 <elliott> http://www.haskell.org/pipermail/haskell/2005-May/015815.html
17:52:49 <elliott> this is cool exclamation mark
17:55:19 <copumpkin> "Note that we can't type "vfoldr Cons Nil", because the result type of
17:55:19 <copumpkin> Cons does not match the second argument."
17:55:33 <copumpkin> that can be done, with some minor pain
17:55:36 <elliott> which I inexplicably haven't seen before
17:55:48 <copumpkin> elliott: I like http://www.haskell.org/pipermail/haskell-cafe/2009-June/062690.html
17:55:49 * elliott is running into stupid errors like
17:55:52 <elliott> vat :: (i `LT` n) => Vec n a -> Nat i -> a
17:55:52 <elliott> vat (_ :+> xs) (S n) = xs `vat` n
17:55:58 <elliott> Could not deduce (LT n2 n1) arising from a use of `vat'
17:55:58 <elliott> bound by the type signature for
17:55:59 <elliott> vat :: LT i n => Vec n a -> Nat i -> a
17:56:01 <elliott> at Redsynth/Vec.hs:(38,1)-(39,33)
17:56:20 <copumpkin> http://hpaste.org/41453/foldl_on_vec?pid=41453&lang_41453=haskell
17:56:28 <elliott> > caseNat :: forall r. n -> (n ~ Z => r) -> (forall p. (n ~ S p, Nat p) => p -> r) -> r
17:56:29 <lambdabot> <no location info>: parse error on input `class'
17:56:29 <lambdabot> Not in scope: type variable `n'Not in scope: type constructor or class `Z'N...
17:56:50 <copumpkin> that paste of mine shows more useful foldr and foldl on Vec
17:56:50 <elliott> copumpkin: also coq flashback
17:58:26 <copumpkin> in coq or agda you wouldn't have to do some of the acrobatics I do there
17:59:17 <elliott> coppro: I note that the "n ->" parameter to caseNat is not _technically_ necessary :)
18:00:12 <elliott> copumpkin: The problem, I think, with natCase is that it basically forces you to write your case statements in an ugly manner :)
18:00:18 <elliott> Is there a way to make it spit out an equivalent GADT?
18:00:42 <copumpkin> you can probably do it all with SHE
18:00:51 <copumpkin> I had a module that did that somewhere
18:01:19 <elliott> copumpkin: I just mean "spit out" as a return value
18:02:13 <elliott> data NatCase where IsZero :: Z -> NatCase; IsSucc :: (n ~ S p, Nat p) => n -> p -> NatCase
18:02:34 <elliott> Oh wait, it's simpler than that even
18:02:36 <copumpkin> data Nat n where Zero :: Nat Z; Suc :: Nat n -> Nat (S n)
18:03:03 <elliott> coppro: Yeah yeah, but that's just the GADT solution all over again
18:03:10 <elliott> IsZ :: (n ~ Z) => NatCase n
18:03:10 <elliott> IsS :: (n ~ S p, Nat p) => p -> NatCase n
18:03:20 <elliott> Because the p isn't GADT's
18:03:31 <elliott> point is, with "natCase :: n -> NatCase n", you can use a case statement
18:03:33 <elliott> rather than two ugly functions
18:04:10 <elliott> value :: (Nat n) => n -> Int
18:06:45 <copumpkin> you have vectors, but you can't index into them!
18:07:00 <elliott> Oh right, the entire problem I was trying to solve
18:07:05 <elliott> I guess a typeclass just won't work for that, SIGH
18:07:25 <copumpkin> a Fin type gives you safe indexing into Vec
18:07:41 <elliott> Yes, but so does a nat with an LT constraint
18:07:58 <copumpkin> LT on type nats is a horrible hack that relies on weird behavior
18:08:29 <elliott> class (N m, N n) => m `LT` n
18:08:29 <elliott> instance (N n) => Z `LT` S n
18:08:30 <elliott> instance (N m, N n, LT m n) => S m `LT` S n
18:08:37 <elliott> Modulo I'm-really-tired errors.
18:09:31 <elliott> You don't prove anything, this isn't Agda
18:09:37 <elliott> I'm not looking to prove anything :P
18:09:44 <copumpkin> is that those instances don't cover 0 < 5
18:10:02 <elliott> <elliott> instance (N n) => Z `LT` S n
18:10:23 <elliott> I'm not sure why this typeclass is meant to be difficult and hacky :P
18:10:33 <copumpkin> there's a couple of ways of doing it
18:11:03 <copumpkin> either way, a Fin is a more "natural" way of indexing into a vec :P
18:11:30 <elliott> But less convenient to use, since now you have two problems caret doubleyou type-level number-ish types
18:11:41 <elliott> Phantom_Hoover: I want static-length vectors to represent integers.
18:12:31 <elliott> Do you want me to pastebin all my code?
18:12:33 <copumpkin> elliott: you're going to have to do the same amount of work
18:12:36 <elliott> Because none of it currently works, y'see.
18:13:02 <copumpkin> elliott: convincing the compiler you have an instance for an arbitrary natural is just as hard as using Fin for indices :P
18:13:19 <elliott> Phantom_Hoover: Very little of this part.
18:13:36 <elliott> copumpkin: I just feel this little twinge in my heart every time I deviate from York Lava
18:13:53 <copumpkin> I've done a fair amount of fooling around like this in haskell
18:14:06 <copumpkin> and convincing the compiler of things that should be "obvious" is a real pain
18:14:16 <copumpkin> you can do it, but haskell is a pretty shitty proof language
18:15:06 <elliott> And all I'm tryina' do is generalise tuples :(
18:15:12 <elliott> Doubt GHC likes thirty-two element tuples
18:15:46 <copumpkin> otherwise you can bury yourself deeper and go for heterogeneous vector-like things
18:16:27 <elliott> Hardware description language
18:16:42 <elliott> Think VHDL, Verilog, and also the damned interminable series of Haskell DSLs named "<location> Lava".
18:19:08 <copumpkin> I've wanted to do something like that in agda
18:19:49 <elliott> copumpkin: ...mine's for Minecraft redstone though :)
18:20:09 <elliott> I'm basically ripping off various Lavas...Lavae... wholesale, because dem people be smarter than me.
18:20:15 <elliott> I've yet to actually write a line of synthesis code. I'm scared.
18:22:35 <ais523> elliott: in my hardware compiler, the type inference code is much much longer than the actual synthesis code
18:22:53 <elliott> ais523: Yeah, but that's done for me :P
18:23:00 <elliott> ais523: And anyway, doesn't yours spit out VHDL?
18:23:01 <ais523> also, slower to run, but I think that's because there are quadratic algos in it
18:23:13 <ais523> actually, it spits out connections
18:23:18 <ais523> which happen to be in VHDL, but that's irrelevant
18:23:26 <ais523> it's doing nothing but connecting together premade units from libraries
18:24:02 <ais523> see, the problem with what I'm doing is that once I infer the type, I might discover it's wrong
18:24:07 <ais523> and have to fix the program to comply
18:24:28 <elliott> noot :: Nat n -> (forall p. (n ~ p, N p) => Nat p -> r) -> r
18:24:28 <elliott> noot n f = foo n (f Z) (\p -> noot p (\q -> noxs q f))
18:24:37 <elliott> actually here is my whole proof
18:24:40 <elliott> foo :: Nat n -> ((n ~ Z) => r) -> (forall p. (n ~ S p) => Nat p -> r) -> r
18:24:40 <elliott> noxs :: (N n) => Nat n -> (forall p. (p ~ S n, N p) => Nat p -> r) -> r
18:24:41 <elliott> noot :: Nat n -> (forall p. (n ~ p, N p) => Nat p -> r) -> r
18:24:42 <elliott> noot n f = foo n (f Z) (\p -> noot p (\q -> noxs q f))
18:24:54 <elliott> this is me saying "fuck you world, every value of (Nat n) has (N n) and i'm going to prove it"
18:25:22 <elliott> woot, can be simplified to
18:25:24 <elliott> noot :: Nat n -> ((N n) => Nat n -> r) -> r
18:25:43 <elliott> nooot :: Nat n -> ((N n) => Nat n)
18:27:19 <elliott> no im just expanding their names with more os
18:27:34 <elliott> nooot :: N n => Nat n -> Nat n
18:28:08 <elliott> nooot :: Nat n -> (forall p. (p ~ n, N p) => Nat p)
18:28:24 <elliott> nooot :: N n => Nat n -> Nat n
18:29:23 <elliott> copumpkin: now the question is, how do I make GHC automatically apply this everywhere :P
18:31:37 <elliott> copumpkin: btw... the reason I'd rather use nats rather than fin is that I can use "n99" as a type-nat literal and it'll cause a type error immediately if it's too large; either I define a whole other set for fins which is really ugly, or I rely on fromInteger, which only fails at runtime...
18:35:23 <elliott> copumpkin: how slow is 9 + 9 in Agda again
18:35:31 <elliott> copumpkin: Anyway I can't use Agda, I use observable sharing :-)
18:36:10 <elliott> copumpkin: Hey, I use the _type-safe_ in-IO observable sharing.
18:36:11 <copumpkin> 9 + 9 isn't noticeably slow, even when normalizing
18:36:20 <copumpkin> when compiled, it's just using Integer
18:36:36 <elliott> The topic is now me rationalising my use of observable sharing.
18:37:32 -!- ais523 has set topic: elliott rationalising his use of observable sharing | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
18:43:28 -!- oerjan has joined.
18:44:55 <elliott> copumpkin: Heh, and any such fin literal type thing would have to use LT/GT
18:45:12 <elliott> What type would f9 have then
18:45:19 <elliott> Oh, Fin (S (S (S (S (S (S (S N)))))))))))))))))))000000000000000
18:45:30 <elliott> Hmm, I could have a typeclass
18:45:38 <elliott> instance Lit Fin n where ...
18:45:41 <elliott> instance Lit Nat Z where ...
18:52:54 <lambdabot> <no location info>: parse error on input `2'
18:53:14 <lambdabot> <no location info>: parse error on input `('
18:53:21 <oerjan> oh wait that wasn't what elliott meant with binary literals
18:53:39 <elliott> copumpkin: You're insufficiently horrified :(
18:53:42 <oerjan> <elliott> Not that Haskell has binary literals, but
18:53:43 <ais523> C++11 lets you define your own literal syntaxes
18:56:47 <copumpkin> elliott: not sure how that would work, but I'll be interested to see it
18:56:51 <elliott> Work is no excuse for horrorslacking
18:56:55 <cheater_> could you make a literal which is actually a language?
18:57:11 <elliott> could you make a horse that's the sky
19:08:17 -!- KingOfKarlsruhe has joined.
19:12:12 -!- oerjan has set topic: elliott using his observation of shareable rationality | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
19:17:52 -!- calamari has joined.
19:38:25 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
19:45:18 <elliott> oerjan changing his topic of shareable elliott
19:46:00 -!- foocraft has joined.
20:28:33 -!- zzo38 has joined.
20:29:43 <zzo38> I made program in TeX for PBM picture to output. http://sprunge.us/VGgZ
20:47:07 -!- oerjan has quit (Quit: Good night).
20:49:25 -!- azaq23 has joined.
20:53:34 -!- Phantom_Hoover has quit (Remote host closed the connection).
20:56:46 -!- Phantom_Hoover has joined.
21:06:06 -!- calamari has quit (Quit: Leaving).
21:09:37 -!- FireFly has quit (Read error: Connection reset by peer).
21:11:51 -!- FireFly has joined.
21:48:01 -!- hagb4rd has joined.
21:51:56 -!- cheater_ has quit (Ping timeout: 255 seconds).
21:54:18 -!- pumpkin has joined.
21:54:18 -!- pumpkin has quit (Changing host).
21:54:18 -!- pumpkin has joined.
21:55:16 -!- elliott has quit (Ping timeout: 240 seconds).
21:56:37 -!- copumpkin has quit (Ping timeout: 240 seconds).
22:03:20 -!- cheater_ has joined.
22:10:43 <zzo38> Why does MiKTeX include so much junk?
22:37:21 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:41:28 -!- pumpkin has changed nick to copumpkin.
22:59:53 -!- hagb4rd has quit (Ping timeout: 255 seconds).
23:01:33 <Phantom_Hoover> OK so basically I now have to spend two days hanging around museums.
23:02:36 <zzo38> Why do you have to hang around museums?
23:11:59 <Sgeo_> Phantom_Hoover, yes
23:12:58 <Sgeo_> My ear is bubbling
23:13:28 <Sgeo_> Ok, that's not as amusig as i thought
23:14:55 <olsner> hmm, I wonder what this bag from burger king is doing on my desk and what it might contain
23:17:07 <zzo38> Yes open it carefully in case it smell too bad or something
23:19:41 <Phantom_Hoover> Sgeo_ is going mad from an ear infection which spread.
23:21:15 <cheater_> Sgeo_, do you have a perforated ear drum
23:21:31 <ais523> hmm, on the subject of unlikely flamewars that I've got into not on the Internet: I'm currently in a Takeshi's Castle vs. Ninja Warrior flamewar
23:21:46 <Sgeo_> cheater_, not that I know of, dad says I'd be in pain if I did'
23:22:08 <cheater_> Sgeo_, that is wrong, a perforated ear drum does not hurt
23:22:37 <ais523> why would you pour hydrogen peroxide in your ear anyway?
23:22:42 <cheater_> well take it from someone who's had that and it didn't hurt
23:23:33 <cheater_> Sgeo_, did you pour peroxide in your ear and it sounds like the water is flowing into a hole of some sort - like it's going further than usually when you have water in your ear?
23:23:54 <cheater_> either way if it's itchy it's probably just a lot of ear wax :p
23:24:03 <Sgeo_> ais523, try to clean it out because I can barely hear from it
23:24:22 <Sgeo_> cheater_, would it be noticable? I notice no such thing
23:25:18 <cheater_> would what be noticable - the perforation, or the earwax?
23:25:41 <Sgeo_> Sound of H2O2 flowing into perforation
23:25:53 <ais523> hmm, elliott's lucky he isn't here, he'd have facepalmed to death
23:25:56 <cheater_> yeah it sounds very different than usual
23:25:58 <ais523> I should possibly email him a warning not to logread
23:26:30 <ais523> cheater_: we've had enough of trying to get Sgeo to kill his girlfriend (/me waits for NOT ACTUALLY GIRLFRIEND rant)
23:26:35 <ais523> stop trying to get him to kill himself too
23:26:39 <Phantom_Hoover> Medical advice from cheater vs. medical advice from Sgeo's dad.
23:26:52 <Phantom_Hoover> I'm really not sure which side of the fence I'm on here,
23:26:57 <ais523> Phantom_Hoover: well, I'd probably phone the NHS if in doubt
23:27:11 <ais523> but the US doesn't have a national health service
23:28:01 <ais523> cheater_: what are you whating at?
23:31:16 <Sgeo_> I did survive doing the same thing yesterday
23:31:28 <Sgeo_> But I just told my dad that I want to see a doctor, and I don't mean him
23:31:53 <ais523> was your ear having hearing problems before you did it the first time?
23:32:19 <Sgeo_> It's been having problems for a while now
23:32:26 <Sgeo_> Cleared up some time ago, but then came back
23:32:33 <Phantom_Hoover> TbH, I suspect pouring peroxide into a perforated eardrum would hurt like hell, but IANAD.
23:33:15 <ais523> hydrogen peroxide can explode on contact with all sorts of things, and the most potent is quite common in the human body
23:33:26 <ais523> because H2O2 badly messes up a range of reactions and it gets rid of it by any means possible as a result
23:35:15 * Sgeo_ vaguely hopes that Phantom_Hoover is right
23:36:26 <Phantom_Hoover> ais523, you refer, I assume, to the catalytic breakdown of peroxide into water and oxygen.
23:36:40 <ais523> in a confined space, it's an explosion
23:36:49 <Phantom_Hoover> Which is not particularly dangerous, what with peroxide having been used in the past as a topical antiseptic on wounds.
23:36:51 <ais523> I've done it in the lab
23:37:06 <ais523> and yep, not generally in the human body, it's so dangerous that the body is good at dealing with it
23:37:14 -!- cheater_ has quit (Ping timeout: 255 seconds).
23:37:30 <Sgeo_> Phantom_Hoover, in the past?
23:37:37 <Sgeo_> People don't do that anymore?
23:37:59 <pikhq> TIL: #! is not POSIX.
23:38:18 <Phantom_Hoover> Sgeo_, it releases oxygen, so if it gets into the bloodstream there's a risk of an air embolism.
23:38:27 <ais523> pikhq: I learnt that recently, looking it up
23:38:37 <Sgeo_> Phantom_Hoover, um, that's scary
23:38:38 <ais523> however, POSIX does mention it as a common convention in a footnote somewhere
23:38:45 <ais523> Sgeo_: also very noticeable
23:38:49 <Phantom_Hoover> Sgeo_, why, do you have any open blood vessels in your ear?
23:38:50 <olsner> so posix basically says nothing at all about executable formats?
23:38:55 <ais523> so it probably didn't happen
23:38:57 <olsner> makes a lot of sense though, really
23:39:08 <pikhq> There *is* a portable way to do shell scripts, though.
23:39:09 <Sgeo_> Phantom_Hoover, no, not in my situation particularly, just in general
23:39:22 <ais523> pikhq: load them from inside the appropriate shell?
23:39:24 <pikhq> execvp passes invalid executables to the shell.
23:39:42 <ais523> but what if your portable shell script is also a valid executable on the system in question?
23:41:06 <ais523> perhaps I should write a shellscript/.COM format Windows executable polyglot
23:41:17 <pikhq> In practice, adding #!/bin/sh should fix that.
23:41:20 <ais523> it's reasonably easy to make an entirely printable one of those, although it has to be selfmodifying because the flow control commands are unprintable
23:41:35 <pikhq> (it's very unlikely that #!/bin/sh is the magic for an executable format)
23:41:56 <ais523> and I think it's invalid x86 machine code, too
23:42:01 <ais523> IIRC the lowercase letters are all invalid commands
23:42:26 <olsner> "invalid" x86 machine code, as if there are any byte values left to treat as invalid :P
23:42:43 <ais523> there were quite a lot back on the 8086
23:43:09 <olsner> that was... more than a life time ago, I believe
23:43:21 <pikhq> Oh, *right*, .COM didn't even have header magic.
23:43:33 <ais523> well, I was working from the developer's manual for DOS 3 back when I did the printable machine code stuff
23:43:49 <ais523> because I found it in the library
23:50:18 -!- cheater_ has joined.
23:53:33 -!- Phantom_Hoover has quit (Quit: Leaving).
00:12:31 -!- Patashu has joined.
00:16:30 -!- pikhq has quit (Ping timeout: 240 seconds).
00:16:38 -!- pikhq has joined.
00:16:56 <zzo38> What exactly are the probabilities related to DARK CLEFABLE [Lv33]? Is it just 1/3?
00:18:45 <ais523> zzo38: you're unlikely to find out without testing the game a lot
00:18:51 <ais523> as it isn't a real card, it doesn't say on the card
00:18:54 <ais523> but you could work it out by experiment
00:19:26 <zzo38> Such experiment would be difficult for many reasons though. Although, maybe there are some cheat codes that can help
00:20:06 <zzo38> It is possible though, to make a probability of 1/3 (as well as other numbers) with coins. I know a few methods to do so.
00:42:56 <coppro> It is if you accept that your method may never terminate
00:43:13 <coppro> although the same is technically true for a simple flip as well
00:43:30 <coppro> since there is always the possibility, however remote, of edge
00:49:24 <pikhq> There is also the possibility that I will teleport to the moon, but we don't usually discuss this.
01:01:29 <Sgeo_> Gah, there are moths in this apartment too
01:01:35 -!- FireFly has quit (Quit: swatted to death).
01:01:35 <Sgeo_> One of them flew into my cooking pasta
01:01:44 <coppro> Better than your rotting pasta
01:08:08 -!- cheater_ has quit (Ping timeout: 255 seconds).
01:19:51 -!- cheater_ has joined.
01:37:14 -!- CakeProphet has quit (Ping timeout: 276 seconds).
01:39:12 <zzo38> Now you should be more careful. Unless you are trying to make moth pasta.
01:40:06 -!- hagb4rd has joined.
01:43:20 <Gregor> I've been on Google+ for TWO DAYS and already I'm getting added by people that I don't know if I know >_<
01:44:22 <pikhq> Here, let me help!
01:46:30 <Patashu> Is google+'s privacy better
01:47:02 <pikhq> Patashu: It actually exists. :P
01:47:11 <ais523> Patashu: it's designed better but IIRC is buggy atm
01:48:41 <Sgeo_> Gregor, I assume that you know if you know me?
01:49:05 <Gregor> Sgeo_: That's quite the name.
02:03:56 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:07:25 -!- BeholdMyGlory has quit (Remote host closed the connection).
02:16:06 <zzo38> Now I made a program overlaying PBM pictures in TeX documents, it is one which is 100% compatible with TeX. I can use it later if I have something that I will want to add pictures into the spare spaces of the document.
02:16:58 -!- cheater_ has joined.
02:21:13 <zzo38> Is there program or algorithms to automatically layout a block diagram or similar diagrams?
02:33:41 <Vorpal> so I did the unthinkable. I got google+. No idea why. I think google betas are somehow addicting. Maybe because they are hard to get?
02:36:10 <ais523> I still don't care for social networks
02:36:17 <ais523> whether or not they're less evil than Facebook
02:41:09 <zzo38> I don't need social networks. Although if decentralized it might be an improvement in some ways.
02:41:22 -!- jcp|other has joined.
02:42:19 -!- javawizard has quit (Ping timeout: 240 seconds).
02:43:04 -!- jcp has quit (Ping timeout: 258 seconds).
02:46:11 -!- jcp has joined.
02:56:01 <zzo38> Do you know who "Sachiru" is? On this log? http://zzo38computer.cjb.net/irc_log/GAMESESSION/1307961179
02:59:39 -!- variable has changed nick to Cthulhu].
02:59:47 -!- Cthulhu] has changed nick to variable.
03:25:43 <zzo38> Do you like the PBM overlay program in TeX?
03:28:24 <zzo38> Why is it trying to be everything with Google now?
03:30:53 -!- zzo38 has quit (Quit: {).
03:35:48 -!- azaq23 has quit (Ping timeout: 252 seconds).
03:39:05 <ais523> !c printf("%x",11656948);
03:40:42 <ais523> !c printf("%p", malloc(4));
03:53:37 <Gregor> It's not exactly a secret that it's 64-bit :P
03:53:48 <Gregor> !c printf("%d", sizeof(void *))
03:55:50 <ais523> I know, it just surprised me
03:55:56 <ais523> I run 32-bit OSes even on 64-bit hardware
03:56:18 <ais523> because narrower pointers normally save more time than narrower arithmetic loses
03:57:22 <Gregor> That may (or may not) be true on MIPS vs MIPS 64-bit, but on x86 you have to consider the fact that you're weighing 1 vs 9 general purpose registers.
03:57:44 <ais523> coppro: memory bandwidth
03:58:01 <ais523> it's the major bottleneck for the majority of programs nowadays
03:58:30 <pikhq> Except that x86_64 then removes a memory bottleneck.
03:58:31 <ais523> in fact, the main advantage of FPGAs vs. CPUs is that they can be designed with a separate memory for each variable, thus having no similar bottleneck
03:58:56 <fizzie> Do you have some actual numbers to back that up? I recall seeing some 32-bit/64-bit benchmarks on Ubuntu old.old a year or two ago, and 64 bits was a win in (at least a large majority of) their tests.
03:59:17 <pikhq> fizzie: That's not because of being 64-bit, but because x86_64 adds more general-purpose registers.
03:59:19 <Gregor> It's a guess that happens to be WILDLY incorrect for x86_64.
03:59:29 <fizzie> pikhq: Well of course.
03:59:43 <Gregor> But like pikhq said, probably not much to do with the bitwidth, more to do with 1-vs-9 GP registers :P
03:59:52 <pikhq> There's *very* few cases where 64-bit arithmetic is a win.
04:00:05 <pikhq> But holy fuck only 1 general-purpose register is lose.
04:00:33 <ais523> yep, that's a bit of a silly design
04:00:57 <Gregor> (Which one that is depends enormously on situation, since of course there are no truly general purpose registers, just some "common purpose" and some "less common purpose" registers)
04:02:25 <pikhq> You can treat EBX as general-purpose.
04:03:05 <Gregor> pikhq: Not if you're in a shared library on UNIX.
04:03:37 <pikhq> Except when doing PIC.
04:03:51 <ais523> why can't you use CX as general-purpose?
04:03:52 <pikhq> In which case there does not exist a general-purpose register.
04:04:07 <pikhq> ais523: The count register is firmly not general-purpose.
04:04:24 <ais523> it does work in a wide range of commands, though, and you often aren't using it for anything else
04:04:42 <Gregor> ais523: The thing is, that's the status of EVERY x86 register.
04:04:50 <Gregor> With varying degrees of "often"
04:04:56 <Gregor> That's what makes it such a minefield.
04:05:19 <ais523> this reminds me of the PIC microcontroller architecture, where more than half of the registers are special purpose and there's no other RAM, and the documentation pretty much says "if the register's writable and readable and whatever you're putting there isn't going to have undesirable side-effects, feel free to use it as general-purpose"
04:05:35 <pikhq> Including EBX. It just so happens to not be commonly used for its purpose in non-PIC 32-bit code.
04:06:35 -!- Sgeo has joined.
04:06:48 -!- Sgeo has quit (Client Quit).
04:06:55 -!- Sgeo_ has changed nick to Sgeo.
04:10:18 -!- azaq23 has joined.
04:10:28 -!- derrik has joined.
04:18:43 -!- oerjan has joined.
04:21:15 <oerjan> <ais523> hmm, on the subject of unlikely flamewars that I've got into [...] <-- I SENSE REDUNDANT STATEMENT
04:21:34 <ais523> oerjan: I don't see the redundancy
04:21:41 <ais523> we weren't on that subject beforehand
04:22:01 <oerjan> i don't see you as a person who gets into flamewars, thus the "unlikely" is redundant.
04:22:11 <ais523> I get into VCS flamewars on occasion
04:22:26 <ais523> but I meant that the flamewar was unlikely to exist at all, and me having gotten into it was independent
04:22:43 -!- zzo38 has joined.
04:27:01 <zzo38> DO YOU WANT TO PLAY AGAIN? (PLEASE TYPE 'YES SIR!' OR 'NO SIR!')
04:40:38 <zzo38> This is stupid some people do not even have a landline anymore.
04:41:42 <zzo38> And I cannot find many payphones anymore.
04:42:19 * oerjan doesn't have a landline
04:48:19 <zzo38> Do you have a telephone at all?
04:48:52 <oerjan> i have a cellphone yes
04:49:39 <zzo38> Do you have software on your cellphone for receiving faxes?
04:50:02 <zzo38> If not, do you know how to write such a software?
04:50:14 <oerjan> no it is an old model :P
04:52:16 <zzo38> I do not want a cellphone I prefer landline phone.
04:53:09 <zzo38> Someone said they will take them away? Who did that?
04:53:32 <zzo38> Will it become illegal or something like that?
04:54:48 <oerjan> i would expect if they disappear it would be because the market for them became too small to support
04:55:25 <oerjan> because afaik most young people _do_ prefer cell phones
04:57:34 <fizzie> In Finland the percentage of homes with a landline contract has gone from 94% in 1995 to 33% in 2007; it's probably <30% already, though the speed at which it's dropping has understandably slowed.
05:00:04 <zzo38> How many offices have a landline, though?
05:00:26 <fizzie> 20% of homes at the beginning of this year, apparently.
05:01:46 <fizzie> I don't know if they publish statistics about offices; at least large ones (>10 people or something) are quite likely to have some sort of fixed telephone system, I'd guess. But that's just a guess.
05:03:23 <fizzie> Heh, this link to a "report on the use of telecommunications services" on the communications regulatory authority site points at the server "pub.laru.local".
05:04:53 <ais523> fizzie: I take it that doesn't resolve from public internet?
05:05:00 <ais523> it's just about stupid enough that I could imagine it either way
05:05:19 <fizzie> Well, no. I don't think anyone's bought the ".local" TLD yet. (I wonder if ICANN would even sell it.)
05:05:38 <fizzie> They'd catch probably quite a lot of misconfigurations with a public *.local wildcard entry.
05:05:41 <ais523> there have been people registering it, I think
05:07:06 <fizzie> At least zeroconf uses .local and multicast-DNS, might be problematic if it also existed as a "regular" TLD.
05:07:40 <zzo38> In my opinion a lot of TLDs exist that shouldn't.
05:08:04 <zzo38> And some should be named a bit differently.
05:10:21 <fizzie> They'll start actually accepting applications for pretty much any name starting from January 12th next year. Costs $185000 to apply, and then €25000/year to keep it.
05:12:28 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
05:14:49 <zzo38> I have one suggestions for a TLD called ".opts" although to work properly it MUST NOT be registered by anyone. Instead it must be dealt with by the driver. It can be used to set options on DNS and timeouts and various other things, including use of IPv6 vs IPv4, and so on.
05:17:31 <zzo38> And then allocate one range of the "invalid" IPv4 addresses for use of driver specific things.
05:18:22 <zzo38> Now all IPv4 programs automatically work with IPv6 as well. And even if a program specifies "IPv6 only", you can still use IPv4 as well, too.
06:02:37 <zzo38> Are there computers with many bit hacking operations built in? Which ones?
06:08:41 <fizzie> What are "bit hacking operations"?
06:09:31 <fizzie> Intel and AMD both have recently added opcodes POPCNT (count of set bits) and LZCNT (number of leading zeros), if that's the sort of thing you mean.
06:10:59 <fizzie> Or actually LZCNT seems to be AMD-only.
06:12:12 <fizzie> And of course x86 has long had BSF/BSR which locate the first/last set bit in a register.
06:14:33 <fizzie> And Z80 has a rather silly nybble-rotating operation, RRD. I think it might be intended for doing things on BCD values.
06:19:11 <zzo38> I mean other things too, including rearranging bits in a value, and even INTERCAL's "select" operation, and a lot of other stuff including the things you have mentioned, too.
06:21:16 -!- monqy has quit (Quit: hello).
06:21:36 <fizzie> I seem to recall that the SIMD instruction sets can do shuffling and INTERCAL-style select but only on byte level.
06:22:17 <fizzie> Or actually I guess shuffling only shuffles 16-bit words.
06:25:44 <fizzie> The EXTRQ instruction introduced in SSE4a can extract a contiguous sequence of bits; you give it (as immediate arguments) offset and the number of bits, and it selects those, puts them to the least-significant positions, and clears rest to zero.
06:26:14 <fizzie> It's sort of a general-purpose "select one field out of a SIMD register" op.
06:27:04 <fizzie> (And INSERTQ is the reverse operation of that.)
06:27:29 <ais523> how do you do an unmingle with that?
06:27:57 <fizzie> I doubt they had INTERCAL efficiency in mind when designing SSE things.
06:29:42 <zzo38> I think I read somewhere that PDP-10 allows accessing a contiguous sequence of bits somehow
06:32:59 <zzo38> So any CPU have a command to do Muxcomp (see the article in esolang wiki)?
06:42:56 -!- hagb4rd has quit (Quit: hagb4rd).
06:48:57 -!- CakeProphet has joined.
06:53:26 -!- CakeProphet has quit (Ping timeout: 250 seconds).
06:54:35 -!- ais523 has quit (Remote host closed the connection).
07:08:17 -!- oerjan has quit (Quit: Later).
07:58:07 <zzo38> Does Linux have a mode to make it not automatically make a USB keyboard work if there is already a keyboard (even not USB) connected?
07:58:46 <coppro> it might not be written yet, though
08:02:15 <fizzie> Sounds like something that might be hackable with udev rules and some scripts.
08:02:36 <pikhq> You'd need to futz with udev.
08:03:14 <pikhq> (technically, all the hotplugging stuff isn't *in* Linux. Linux just sends a message saying "Hey, new device, do something with it" out, and udev responds.)
08:12:50 -!- derrik has quit (Quit: left).
08:13:36 <zzo38> What happens if a process directory is the current directory when the process is terminated?
08:14:11 <coppro> same thing that happens whenever a process is in a nonexistent directory
08:14:38 <zzo38> It makes sense. But what happens in that case?
08:14:48 <pikhq> Get very loud complaints from your programs.
08:14:48 <zzo38> Do you just get errors until you change it again?
08:15:07 <pikhq> Well, loud complaints from your shell, loud complaints followed by exit(1); by your normal programs.
08:15:34 <pikhq> (presuming they try to read from the pwd)
08:18:52 <coppro> Does Linux have the ability to unlink, but not delete until every process in the directory is terminated or moves elsewhere?
08:19:49 <zzo38> Is there a variant of background processes that can instead just output the process ID to stdout so that it can be used in `...` commands?
08:21:35 <zzo38> Probably it can be done with fork() or something in a C program?
08:25:22 <pikhq> Hmm. Well, that's neat. Utterly pointless, but neat.
08:25:28 <pikhq> I have every extant Linux version here.
08:29:13 <pikhq> http://padator.org/linux/full-history-linux.git.tar
08:29:40 <pikhq> That + a git pull gets you all of Linux up to when you did a git pull.
08:32:53 <zzo38> Today I uninstalled most of the stuff that MiKTeX installs by default, and it saves 400 MB of disk space by doing so.
08:33:19 <fizzie> zzo38: In bash, $! expands to the PID of the most recently executed background command, so something in the style of blah `blah >/dev/null 2>&1 & echo $!` could work, if your shell is bash.
08:33:56 <zzo38> fizzie: OK, that can work. Thanks for information.
08:34:16 <cheater_> http://cache.ohinternet.com/images/b/b9/I%27ll_just_look_at_this_one_article_on_tvtropes.jpg
08:37:18 <zzo38> So now I uninstalled everything except the Plain TeX, Plain METAFONT, Computer Modern fonts, AMS fonts, DVI previewer, and printing program. Although for some reason the "hyphen.tex" file needed by Plain TeX is in a package also containing other files that I don't need.
08:51:33 <zzo38> Do you know of techniques used for copy protection, anti-debugging ,etc, I can try to make a hardware design that avoids these things?
09:12:33 -!- Phantom_Hoover has joined.
09:45:24 -!- azaq23 has quit (Quit: Leaving.).
10:00:07 -!- BeholdMyGlory has joined.
10:00:14 -!- BeholdMyGlory has quit (Changing host).
10:00:15 -!- BeholdMyGlory has joined.
10:04:30 -!- MigoMipo has joined.
10:16:45 -!- FireFly has joined.
10:40:46 -!- Phantom_Hoover has quit (Quit: Leaving).
10:42:02 -!- Phantom_Hoover has joined.
10:44:58 <zzo38> You forgot. I also forgot.
11:17:42 -!- aloril has quit (Ping timeout: 260 seconds).
11:28:31 -!- zzo38 has quit (Remote host closed the connection).
11:30:12 -!- aloril has joined.
12:01:34 -!- CakeProphet has joined.
12:01:35 -!- CakeProphet has quit (Changing host).
12:01:35 -!- CakeProphet has joined.
12:24:08 -!- zzo38 has joined.
12:26:44 <zzo38> You do not have permission to use "'" in this comment, unless you have used "'" within yrs ago (and not yrs ago) or have Miscellaneous Preferences enabled because <here is where you put a detailed description of the reason>.
13:08:00 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
13:10:15 -!- MigoMipo has quit (Remote host closed the connection).
14:11:58 -!- foocraft has quit (Quit: So long, and thanks for all the fish!).
14:12:51 <zzo38> So short? And don't eat all the fish!
14:14:13 <zzo38> Maybe it is better to drink all the fish?
14:46:00 -!- aloril has quit (Ping timeout: 240 seconds).
14:47:48 -!- copumpkin has joined.
14:47:48 -!- copumpkin has quit (Changing host).
14:47:48 -!- copumpkin has joined.
14:50:34 -!- pikhq_ has joined.
14:50:37 -!- pikhq has quit (Ping timeout: 260 seconds).
14:58:46 -!- aloril has joined.
15:16:55 -!- foocraft has joined.
15:26:27 -!- monqy has joined.
16:11:26 <zzo38> Which game did you play tomorrow?
16:20:00 <zzo38> There is Plain TeX, but is there such things as VeryPlain TeX?
16:27:36 -!- derrik has joined.
16:34:32 <zzo38> I suppose it doesn't matter then. Plain TeX is good enough for most things, other things can use primitive TeX writing a specific format for what is being done.
16:39:55 -!- Madk has joined.
16:40:41 <zzo38> I am currently writing a DVI optimizer program which tries to make the DVI output from TeX (or any other program that can produce DVI output files) into smaller file by changing some things as long as the output on paper is still the same.
16:42:15 -!- derrik has left.
16:44:24 <oklopol> i am currently trying to characterize the cellular automata generated by idempotent ones, or rather prove my conjecture; i thought i proved it already but that was bullcrap, but now i have it except for a particular CA with certain properties i need to construct
16:45:38 <Madk> I am currently working on an evolutionary algorithm to generate a Hello, world! program in my esolang Surface
16:45:56 <oklopol> G is a product of idempotents <==> (for all n: G(U_n) = U_n ==> G|U_n = id|U_n)
16:45:59 <Madk> and the only reason I made surface was so that I could make a cool evolutionary algorithm
16:46:04 <oklopol> where U_n is the set of points with least period n
16:46:27 <oklopol> idempotent CA = everything becomes still life after one generation, that is, G^2 = G
16:46:40 <oklopol> otherwise standard notation but ask if unclear
16:48:17 <oklopol> (which are functions from S^Z to S^Z defined by a local rule, where S is a finite set of states and Z are the integers)
16:51:29 <oklopol> it is easy to see "==>" but for "<==" i need a family of CA that for arbirarily large k and some suitable m, put a marker (a 1) every k to k+m steps, and 0's everywhere else, unless there is a sequence of n (which is arbitarily large) cells where there is a smaller period than k in which case the CA just writes 0's under it
16:51:48 <oklopol> which i think should exist
16:51:56 -!- Madk has quit (Quit: Some folks are wise, and some otherwise.).
16:53:17 <oklopol> if i could do that, i could do standard permutation stuff whereever there's a period for some time in the point, and everywhere else, just use an "aperiodic" marker that doesn't appear in the image of G to route the contents of the point through a subshift of finite type which cannot be confused with the image
16:54:39 <zzo38> I do not know enough about this kind of theory to understand it enough to know if you are correct or if it sound good or not.
16:56:03 <oklopol> i mean the idea should work but i was jk with the sound good htings
16:57:06 <zzo38> Are you good at pokemon card while blindfolded?
16:57:22 <oklopol> i'm okay at symbolic dynamics while blindfolded
16:57:37 <oklopol> i guess it's essentially the same thing
16:58:34 <zzo38> Are you good at symbolic dynamics while you are on the sun getting burned and hiding from me (or from yourself)?
16:58:36 <oklopol> how can you play pokemon card while blindfolded
16:58:56 <oklopol> no, i think i would be dead rather fast
16:59:13 <zzo38> I don't know. It would be difficult to play pokemon card while blindfolded because you cannot read it
16:59:55 <zzo38> But maybe it is still possible to understand head/tails if you can touch it and know the difference of engraving of head/tails.
17:02:59 <Lymee> Play Pokemon without knowing what the opponent has.
17:04:06 <zzo38> Yes that would be difficult. But usually you do not know what cards they have in their hand, but you can still see the cards in play. Unless, you can deduce the cards in hand.
17:04:31 <zzo38> Or, if you have a blind game you cannot see cards in play, you have to listen to announcements of attacks and stuff like that, to figure out.......
17:04:38 <Lymee> It'd be intersting.
17:04:51 <Lymee> Magic, and you can only see the other player's stuff if they're directly using it on you.
17:05:25 <Lymee> Otherwise, you only know how many cards they have in play.
17:05:45 <zzo38> And, maybe also whether or not it is tapped.
17:05:52 <Lymee> For sanity's sake, you'd have to be able to see what you can target with certain spells.
17:06:09 <Lymee> Though, I'm sure you'll need a rule checking simulator to do that...
17:06:12 <oklopol> "<zzo38> But maybe it is still possible to understand head/tails if you can touch it and know the difference of engraving of head/tails." <<< err it's kind of trivial
17:07:07 <zzo38> Or have it like Kriegspiel variant of chess, where if you do a wrong move you get to try again until it is correct (opponent knows how many times you tried). So, if you target something, it is told whether or not is a valid target, and then you must try a target and if it is wrong, you can try to target a different card.
17:07:14 <oklopol> you can even tell bills from each other pretty easily by their size
17:07:53 <oklopol> or at least usually guess them correctly, i'm not sure i could actually say for sure, since all perception tends to be relative
17:08:50 <oklopol> touching is slightly easier since you have your own body to compare with
17:09:03 <Lymee> zzo38, case where you can't target anything?
17:09:51 <zzo38> Lymee: Then the referee tells you that you can't. In Kriegspiel variant of chess, you can ask whether or not there is any way for one of your pawns to capture. Similar thing can be done this way, with Magic: the Gathering cards.
17:36:30 <Sgeo> "There is something that i want to reveal to you that might interest you .Because of that, i want to know if you are the original owner of this email address. I have a very good information which i want to relate to you.
17:36:30 <Sgeo> I am not comfortable of writing the information here as i do not want it to go to a wrong person. Please reply back and tell me if you are the real owner of this email address."
17:37:35 <Sgeo> No. I am the fake owner of the email address.
17:39:19 <cheater_> hey has anyone here worked with gtk2hs?
17:42:04 * Sgeo wants poppy seed bagels
17:42:27 <cheater_> bery obviously it's a port of zork 3 to fortran, compiled to work on the ipad. duh
17:42:27 <cheater_> at least i hope that's bery obvious >_<
17:43:38 * Sgeo mutters something about bet and vet
17:43:55 -!- Nisstyre has quit (Ping timeout: 258 seconds).
17:44:39 <Sgeo> http://en.wikipedia.org/wiki/Bet_(letter)#Bet_without_the_dagesh_.28Vet.29
17:50:45 <Lymee> zzo38, assume you cast Lightning Bolt.
17:50:49 <Lymee> There are no valid targets.
17:50:53 <Lymee> Do you get to take it back, or does it fizzle.
17:51:14 <zzo38> Lymee: You take it back, I would say. (This is similar to Kriegspiel chess)
17:54:22 <oklopol> i'm not even on the first google page for "picture languages" :'(
17:54:46 <Vorpal> <zzo38> What is gtk2hs? <-- a tool for working with gtk from haskell iirc.
17:58:13 -!- aloril has quit (Ping timeout: 252 seconds).
17:59:24 <oklopol> beat all the other 5 picture language researchers out there
18:03:38 * Sgeo wonders if it's worth it to get a PRS-950
18:03:58 <cheater_> why would you *not* get a PRS-950?
18:04:05 <Sgeo> It's a bit big..
18:04:15 <cheater_> that hasn't stopped anyone before..
18:05:25 <cheater_> ok, haskell platform is sort of slow to compile
18:11:37 -!- aloril has joined.
18:18:18 <Vorpal> cheater_, only on your system I bet :P
18:21:17 -!- asiekierka has joined.
18:21:30 <asiekierka> i rescued 3 RTL8139D's from trashed school PCs a few months ago
18:22:34 <olsner> now you can speak ethernet, that's awesome!
18:23:03 <fizzie> Yeah, new gigabit-ethernet NICs cost multiple euros, maybe up to ten.
18:23:29 <asiekierka> but isn't the 8139 one of the... more popular ones among hobbyist OS makers
18:23:37 <asiekierka> that lets me test lots of them on actual hardware
18:24:12 <fizzie> It's popular => widely supported, yes.
18:32:09 -!- oerjan has joined.
18:34:45 <zzo38> You are not only rock hard, but you are also confused! And cursed! And double cursed!
18:35:56 <oklopol> hi oerjan, my proof for the idempotency thing didn't work but i have a new one and this time i'm reeeeeally confident about it ;P
18:36:50 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
18:39:10 -!- MigoMipo has joined.
18:43:47 <oklopol> i wonder if "it's funny because it's true" was invented by a set theorist after a night of mathing up some serious formulations
18:59:24 <oklopol> and what exactly have you informaticians come up with that's cool
19:01:25 <oklopol> not even information, that was shannon's idea!
19:02:52 <oklopol> in fact knowing is one of the few things that was not invented before it was formalized by a mathematician
19:04:02 <oklopol> oh shit oerjan was around at that time, my lie is ruined
19:07:57 * Sgeo looks at Wikipedia
19:08:02 <Sgeo> Information is energy?
19:08:36 <Sgeo> Oh, information is interchangable
19:09:42 <Sgeo> http://en.wikipedia.org/wiki/Information#As_a_property_in_physics
19:09:48 <oklopol> if you've known one thing, you've known them all
19:09:49 <Sgeo> Erm, interchangable with energy
19:14:54 <oklopol> well that's a bit of a letdown
19:20:29 -!- asiekierka has quit (Remote host closed the connection).
19:22:03 <cheater_> so now that we can make nanometer size vacuum tube arrays, do you think vacuum tubes would be a better basic element for computers, than transistors?
19:25:38 <pikhq_> cheater_: What's their clock and how quickly do they break?
19:27:23 <cheater_> well, they are either field emission or photonic emission devices
19:27:35 <cheater_> the clock is basically limited by propagation time through the grids
19:29:00 <cheater_> there doesn't seem to be a limit similar to that of transistors where they have a current flowing through them that has a finite gradient
19:29:22 <cheater_> vacuum tubes are constantly in emission, so they always have current flowing, except that sometimes the current goes to the grid and sometimes to the plate
19:29:45 <cheater_> so clock rates could be higher
19:30:27 <cheater_> but the highest frequencies in microwave transmission are amplified by vacuum tubes, not by semiconductors
19:30:43 <cheater_> (read up on klystrons and tuned cavities for example)
19:31:28 <cheater_> the nanoscale tubes in question are still usual transconductance devices, just like old-day triodes and pentodes
19:31:33 <cheater_> they still have linear and cutoff mode
19:31:44 <pikhq_> cheater_: Eh, the big things with vacuum tubes are just their size, their power draw, and their tendency to break.
19:32:03 <cheater_> pikhq_, but now they can be built in nanometer sized clusters
19:32:15 <cheater_> so that's no problem anymore, right?
19:32:23 <pikhq_> Which quite *possibly* helps.
19:32:45 <pikhq_> But maybe there's something else going on. *shrug*
19:33:01 <cheater_> i was just hoping for someone to jump up and say
19:33:43 <cheater_> "oh, if vacuum tubes were the same size as transistors, a current-day cpu could have 1/200th of the amount of tubes that it has transistors"
19:34:40 <zzo38> Also, what would speed be?
19:35:50 -!- oklopol has quit (Ping timeout: 246 seconds).
19:35:51 <zzo38> What printer resolutions are commonly used other than 300 DPI and 600 DPI? Is 1156.32 DPI ever used?
19:36:00 -!- oklopol has joined.
19:37:58 <zzo38> I did some calculation to come up with the number 1156.32 that it might come a power of two fraction of points, if I have done the calculations correctly.
19:38:15 <zzo38> I don't know how well it actually would work in practice, though. Maybe it is no good.
19:38:35 <zzo38> In which places is 2400 DPI used? Which printers? Which .....?
19:38:40 <fizzie> Ans 54 LPI. (A 9-pin dot matrix printer in 6 lines/inch mode; though then the points aren't equidistant.)
19:39:57 <zzo38> What does "54 LPI" mean? And why aren't the points equidistant?
19:40:51 <fizzie> Some of the large-number DPI values shown by printer drivers are marketing hype; e.g. cheap laser printers that pretend to do 1200 DPI. Higher-end ones more likely may do them for reals.
19:40:52 <zzo38> cheater_: What is Jeopardy!?
19:41:11 <zzo38> fizzie: How do they just pretend to do 1200 DPI?
19:43:36 <fizzie> I've forgotten the name so I can't google, but it was called "something 1200", and it wasn't quite really a 1200-actual-dots mode.
19:44:12 <zzo38> Then what is it if it is not quite really a 1200-actual-dots mode?
19:44:55 <fizzie> And 54 lines-per-inch doesn't have equidistant point (on my printer anyway) because there are then gaps between the lines. I think in the 8 lines/inch mode can do a reasonable 100x72 DPI mode though (horizontal x vertical).
19:49:09 <fizzie> Can't seem to be able to google the details now. In any case you couldn't print an arbitrary black-and-white bitmap at 1200 dpi with it. Maybe it was something like controlling the dot positions at a 1200 dpi resolution, but having the minimum size for a dot rather larger, or something.
19:50:49 <zzo38> Then should you compile the fonts for a lower resolutions for calculate position on pages of each letters by 1200 DPI? Would you do something like that?
19:52:03 <fizzie> I sort of feel that if you say a printer does "x DPI", it should be good enough so that you could print an arbitrary bw bitmap, and then with enough magnification see the individual pixels.
19:52:43 <zzo38> Yes it should say that! But in this case it doesn't it should use a different kind of notation or something indication of these kind of things.
19:54:56 <fizzie> I recall we tested the theory by printing some text with a 4x6 bitmap font at 300 and 600 dpi on a couple of printers, and then checking them for readability using a magnifying glass, and even though all the printers said they do 600 dpi quite many were just unreadable smudges.
19:55:44 <fizzie> (Of course that could've been some sort of scaling problem, or that they do proper 600 dpi only on better paper.)
19:57:30 <fizzie> Those inkjet "photo printers" advertise up to 4800 DPI. Not sure how close to reality that is.
19:59:50 <cheater_> you do realize that the raster a printer uses isn't a square raster, though?
20:02:14 -!- hagb4rd has joined.
20:04:59 -!- foocraft has quit (Ping timeout: 258 seconds).
20:06:00 -!- foocraft has joined.
20:17:36 -!- cheater_ has quit (Quit: Ex-Chat).
20:24:55 -!- myndzi\ has changed nick to myndzi.
20:31:33 <Sgeo> Some guy who runs an acehack server thanked me for that underwater candelabrum patch
20:31:43 <Sgeo> Which was rolled into AceHack
20:33:26 -!- Nisstyre has joined.
20:42:44 <zzo38> I think the chance of hitting yourself with the DIGGER card is 2/3 did I calculate it correctly?
20:59:09 -!- myndzi\ has joined.
21:00:57 -!- myndzi has quit (Disconnected by services).
21:00:59 -!- myndzi\ has changed nick to myndzi.
21:09:54 -!- cheater_ has joined.
21:11:20 -!- cheater_ has quit (Client Quit).
21:13:26 -!- cheater_ has joined.
21:25:13 -!- oerjan has quit (Quit: Good night).
21:42:39 -!- oklofok has joined.
21:43:06 -!- elliott has joined.
21:46:07 -!- oklopol has quit (Ping timeout: 250 seconds).
21:47:25 -!- elliott has quit (Client Quit).
21:49:23 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!).
22:11:29 -!- elliott has joined.
22:17:37 <zzo38> I made up some ideas of pokemon card, including one card: Toss the coin. Next time either player would toss a coin, instead use the result of this coin.
22:18:27 -!- pikhq has joined.
22:18:45 -!- pikhq_ has quit (Ping timeout: 264 seconds).
22:18:51 <elliott> Do not distribute any links to this page! http://wiki.industrial-craft.net/index.php/Secret:Nuke_Recipe
22:18:58 * elliott is getting the word out about not distributing any links to that page
22:19:02 -!- elliott has left ("Leaving").
22:19:13 -!- elliott has joined.
22:19:15 <zzo38> elliott: Hay you!! Does a plain URL count if not formatted as a hyperlink?
22:19:55 <monqy> what is this nonsense
22:20:01 <oklofok> nuke?!?!?!?!?!?!?!?!?!?!?!?!?!?
22:20:37 <zzo38> I have achieved GENGAR COIN.
22:20:56 <cheater_> why is this not working? http://pastebin.com/1jy3LEyy
22:20:59 <elliott> zzo38: I am telling YOU to stop.
22:21:19 <zzo38> elliott: I am telling YOU to stop too. Including you.
22:21:32 <elliott> zzo38: YOU CAN'T TELL ME WHAT TO DO
22:21:39 <zzo38> Then don't tell me either.
22:21:53 -!- FireFly has quit (Read error: Operation timed out).
22:23:02 <zzo38> cheater_: [Joke] Obviously you misspelled "World". [Joke]
22:23:03 -!- FireFly has joined.
22:24:58 <zzo38> [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Joke]]]]]]]]]]
22:28:41 -!- azaq23 has joined.
22:30:19 <monqy> how did the h2o2 work out
22:34:33 <Sgeo> I still can barely hear in my left ear
22:34:40 <Sgeo> But I'm not dead or anything.
22:37:06 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:37:06 <zzo38> Good thing you are not dead because if you are dead then it is difficult to type on the computer.
22:37:49 <zzo38> It is difficult to type message about you are not dead or anything.
22:37:54 <Gregor> zzo38 is truly a sage.
22:38:25 <olsner> maybe he meant to say "deaf"
22:38:26 <Gregor> oklofok: I'm cookin' a corned beef brisket.
22:38:38 <olsner> deafness has no reason to impair typing skill
22:38:46 <olsner> at least not in the way death does
22:39:04 <zzo38> olsner: It is true maybe they can tell you what they meant.
22:39:14 <oklofok> send me some via mail k? :-)
22:39:35 <Gregor> Sure, that should be super
22:39:48 <oklofok> you have my address right?
22:39:48 * Sgeo mutters about broken toilets
22:43:15 <Sgeo> #toilet is useless
22:43:49 <monqy> is #toilet even a thing
22:44:09 <Sgeo> I'm looking for help with toilets
22:44:37 <elliott> "GSD doesn't only detect singletons; it detects four different types of global state, including singletons, hingletons, mingletons and fingletons"
22:44:55 <elliott> `addquote * Sgeo mutters about broken toilets <Sgeo> #toilet is useless <monqy> is #toilet even a thing <Sgeo> I'm looking for help with toilets
22:44:59 <HackEgo> 491) * Sgeo mutters about broken toilets <Sgeo> #toilet is useless <monqy> is #toilet even a thing <Sgeo> I'm looking for help with toilets
22:46:17 <Phantom_Hoover> "MODERN YOUTH UNABLE TO FIX TOILET WITHOUT RESORTING TO INTERNET
22:46:56 <Sgeo> IMO, there's far simpler that I've resorted to the Internet for
22:47:32 <monqy> time to imagine what sgeo resorted to the internet for
22:47:56 <elliott> search log: how do i drink a glass of water
22:48:05 <elliott> search log: i'm told it involves pouring but it just spills everywhere??
22:48:37 <zzo38> To be able to help with the toilet, you need to answer questions, such as, the model number, date of purchase, color, size, number of lids, number of rocks in it, how loud it is, whether or not it has a camera, whether there is monster living underneath, whether the room it is in has a bathtub or not, number of cracks in it, number of times it has been repaired previously, what is your shoe size, etc.
22:48:53 <elliott> Sgeo: does your toilet have a camera
22:49:08 <Sgeo> I don't _think_ so
22:51:31 <Sgeo> Dear eHow: Please don't assume that my toilet works like that
22:51:50 <Sgeo> Or, at least, my toilet looks different
22:51:58 <elliott> `addquote <Sgeo> Dear eHow: Please don't assume that my toilet works like that <Sgeo> Or, at least, my toilet looks different
22:51:59 <HackEgo> 492) <Sgeo> Dear eHow: Please don't assume that my toilet works like that <Sgeo> Or, at least, my toilet looks different
22:52:07 <monqy> what does your toilet look like
22:52:15 <zzo38> Does it look like upsidedown?
22:52:33 <Sgeo> Less like http://www.ehow.com/video_117350_stop-toilet-running.html and more like http://pad3.whstatic.com/images/thumb/1/11/Toilet-tank-contents.JPG/180px-Toilet-tank-contents.JPG
22:53:42 <Sgeo> Maybe I'm just too weak to pinch the metal thing that stuff is telling me to pinch.
22:55:34 <elliott> what are you actually doing btw
22:56:33 <olsner> trying to defecate, presumably?
22:56:38 <Sgeo> Trying to lower the fill level, I think
22:56:46 <Sgeo> olsner, I am capable of flushing
22:57:01 <Sgeo> Um, hmm, that is weird as a reply, I think
22:57:07 <monqy> he just wants to impress ladies with his toilet fixing skills and know-how
22:57:30 <Sgeo> Basically: Toilet keeps running if I leave the valve on
22:57:48 -!- hiato has quit (Ping timeout: 240 seconds).
22:57:58 <elliott> Warren Hancock - Though we're less haunting and really just witty and snide.
22:59:27 -!- copumpkin has joined.
22:59:28 -!- copumpkin has quit (Changing host).
22:59:28 -!- copumpkin has joined.
22:59:29 <CakeProphet> also, did you know there is a blog called "What xkcd means"
22:59:42 -!- hagb4rd2 has joined.
22:59:43 <CakeProphet> which is devoted entirely to explaining the meaning of each xkcd comic.
23:00:02 <zzo38> Is there a blog called "What 'What xkcd means' means"?
23:00:21 -!- hagb4rd has quit (Ping timeout: 255 seconds).
23:00:36 <CakeProphet> not that I know of. That kind of meta-shenanigans is probably only reserved for the asshats at xkcdsucks
23:04:51 -!- hiato has joined.
23:06:11 <elliott> why are they asshats apart from not liking something you like
23:06:14 <elliott> they're mostly kind of stupid
23:10:29 <zzo38> Do you know any things about GameBoy Printer?
23:11:41 <Sgeo> I can guess that it's a printer that connects to a GameBoy.
23:12:10 <zzo38> Yes it is. I have emulator that can emulate the GameBoy Printer although the output is mixed up except for the "GB Printer Test Demo" program.
23:12:59 <oklofok> "<monqy> he just wants to impress ladies with his toilet fixing skills and know-how" <<< if there's anything the hippos have taught us it's that ladies are way more impressed if you DON'T flush.
23:17:10 <oklofok> also you get your wallpaper for free that way
23:22:27 <pikhq> I think, for bootstrapping, I'm going to write off GCC newer than 4.2.x.
23:23:52 <quintopia> what do you mean? that it can't be compiled on lower level GCCs?
23:24:14 <pikhq> GCC newer than that has *dependencies*.
23:24:25 -!- oklopol has joined.
23:24:27 <pikhq> Beyond a vaguely functioning C compiler, that is.
23:25:25 <Sgeo> Suppose I had a platform that had no C compiler whatsoever, and I wanted to get GCC on it
23:26:12 <Sgeo> How far back in gcc's past would I have to go to get something compilable by a different C compiler, and then in that compiler's history, etc., to get something not in C?
23:26:17 -!- oklofok has quit (Ping timeout: 260 seconds).
23:26:54 <zzo38> Maybe first thing to do, write a very simple C compiler with machine codes, one that doesn't do much. And then compile some simple C compiler in C using not much. And then try again. And then it work properly next time.
23:27:16 -!- Phantom_Hoover has quit (Remote host closed the connection).
23:27:34 <olsner> Sgeo: start with building a cross-compiler on a system where gcc already works
23:29:54 <zzo38> Yes that is one way it can work.
23:43:51 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:45:25 -!- copumpkin has joined.
23:48:06 <pikhq> In principle, it should be possible to make a complete self-building system out of gcc, binutils, busybox, GNU make, and Perl. (presuming you want to compile Linux)
23:48:25 <pikhq> Oh, and a libc, of course.
23:51:31 <pikhq> In practice, Debian has broken things hard fucking core.
23:52:02 <pikhq> It is currently impossible to build a GCC newer than 3.x against the libc.
23:52:46 <pikhq> Fuck it, I can't stick with Debian. I just can't.
23:54:16 <CakeProphet> use Ubuntu.. that's totally a step in the right direction.
23:54:55 <pikhq> Slackware, TBH, is tempting.
23:55:35 <CakeProphet> pikhq: http://upload.wikimedia.org/wikipedia/commons/8/8c/Gldt.svg
23:55:38 <pikhq> I could always go back to Gentoo...
23:55:41 <elliott> <pikhq> In practice, Debian has broken things hard fucking core.
23:55:41 <elliott> <pikhq> It is currently impossible to build a GCC newer than 3.x against the libc.
23:55:47 <CakeProphet> here's a forrest. Move upstream or downstream, or jump trees!
23:56:02 <CakeProphet> endless hours of downloading and installing and setup. What could be more fun?
23:56:03 <pikhq> elliott: Debian no longer puts crt*.o in /usr/lib/.
23:56:28 <pikhq> elliott: Which means you literally cannot get a functioning compiler without patching it the same way Debian did.
23:56:34 * Sgeo still wants to set up LFS at some point
23:56:42 <Sgeo> Not sure what broke my last attempt exactly
23:56:43 <elliott> oh noes!! they changed the build of a shitty piece of gnu software!!!
23:57:02 <pikhq> elliott: Actually, that's hardcoded in just about every C compiler.
23:57:30 <elliott> pikhq: ah, right -- and you are always in favour of keeping backwards compatibility rather than pure goodness, right?
23:57:34 <elliott> That's why you hate @, isn't it?
23:57:45 <pikhq> elliott: Actually, I'm in favor of being able to have _start from the libc.
23:58:22 <pikhq> CakeProphet: Fuck no.
23:58:41 <CakeProphet> well, then you have run out of options. Those are the only distros.
23:59:13 <pikhq> Less broken, at least.
00:02:08 <CakeProphet> Igelle is the newest distro on this timeline
00:02:46 <zzo38> Is LLVM capable of compiling itself?
00:03:29 <olsner> ISTR they did self-compile clang with clang a while ago
00:04:24 <CakeProphet> well, the newest one that's also a root. There's Mageia and Fusion (on the Red Hat tree), Arch Hurd (on the Arch tree), Superb Mini Server and Imagineos (on the Slackware tree), Tiny SliTaz (on the SliTaz tree).
00:05:03 <zzo38> Because, if GCC is broken for some reason, you can use LLVM. And also other way around if LLVM becomes broken for some reason.
00:05:22 <CakeProphet> Gregor: http://upload.wikimedia.org/wikipedia/commons/8/8c/Gldt.svg
00:08:15 <CakeProphet> "Damn Vulnerable Linux" on the Knoppix looks like a winner.
00:13:05 <pikhq> I still have some fondness for it.
00:13:34 <pikhq> I got somewhat annoyed by package breaks.
00:13:36 <Gregor> Yet again, people who have forgotten the simple lesson:
00:13:51 <pikhq> Then I switched to Debian, which broke stuff fundamentally.
00:14:04 <pikhq> Gregor: Hey, build GCC. Good luck.
00:14:22 <Gregor> pikhq: Debian's choice to move those crt files was definitely a good one.
00:14:25 <CakeProphet> yeah, because "build GCC" is the first thing I do after installing a distro...
00:14:28 <Gregor> I don't know WHY they did it, but I know it was good.
00:15:03 <pikhq> CakeProphet: I do odd things. I expect the distro not to break shit behind my back when I'm doing them.
00:15:27 <pikhq> Gregor: They claim "multiarch".
00:15:45 <pikhq> Why sticking crt files elsewhere helps that is beyond me.
00:16:13 <pikhq> (seeing as the *only* compilers that are going to look in /usr/lib for those are native ones)
00:16:25 <Gregor> Because if you're compiling targeting 32-bit on a 64-bit system, but your 64-bit libraries are in /usr/lib, then /usr/lib/crt* is wrong
00:16:49 <Gregor> Multiarch != cross-compilation ... per se :P
00:16:54 <pikhq> Gregor: gcc -m32 is fundamentally broken. Any further questions?
00:17:31 <Gregor> pikhq: That's a separate observation :)
00:17:39 <pikhq> Gregor: But closely related.
00:17:58 <Gregor> CakeProphet: btw, Damn Vulnerable Linux (just looked it up) is intended to be a training tool for computer security.
00:18:08 <pikhq> Gregor: If your 64-bit libraries are in /usr/lib, a 32-bit compiler looking in there for *anything* is wrong.
00:19:30 <pikhq> CakeProphet: Which doesn't even give you the option of running 32-bit programs on a 64-bit install.
00:19:48 <Gregor> http://sttngfashion.tumblr.com/ <-- in case anybody hasn't heard of it
00:20:17 <pikhq> In conclusion, fuck everyone and everything.
00:20:36 -!- Wamanuz has quit (Ping timeout: 240 seconds).
00:20:44 -!- Wamanuz has joined.
00:25:04 <CakeProphet> pikhq: so basically I think you want Windows or OSX.
00:30:50 <elliott> i want to punch zuu hes an idiot
00:31:08 <elliott> 20:11:11: <Zuu> well, when i say turing complete i really mean LBA (ofcource)
00:31:09 <elliott> 20:12:54: <Zuu> you dont seem to understand what turing complete means then
00:31:55 -!- augur has quit (Remote host closed the connection).
00:32:49 <Sgeo> Logical Block Addressing?
00:33:12 -!- elliott has quit (Read error: Connection reset by peer).
00:33:15 <Sgeo> Oh, Linear bound automaton
00:33:18 -!- elliott has joined.
00:33:18 <CakeProphet> this modern society doesn't have TIME for your questions.
00:33:58 <Sgeo> So, basically like TC except with bounded memory?
00:34:15 <CakeProphet> elliott: so what did you do in the few seconds afforded to you by not answering that question?
00:35:10 <elliott> does anyone know if ubuntu comes with xz by default or not
00:35:12 <elliott> CakeProphet: what question
00:35:53 <elliott> i didnt go insane by answering another trivial question thats what
00:36:12 <CakeProphet> What makes a question trivial? Is this a trivial question?
00:36:34 <CakeProphet> Is answering questions maddening? I thought questions were a central component of any conversation?
00:37:06 <CakeProphet> was that last question really a question at all?
00:37:40 <zzo38> In next version of Enhanced CWEB, I plan to correct some problems with the fonts and remove the PDF stuff. And remove a few of the metamacro commands that never worked, but probably add some enhancements to the way C interpreter works.
00:39:05 <CakeProphet> I wonder why there are no commonly used record-based filesystems.
00:39:07 <zzo38> Or maybe next time I might make up LWEB for making literate programming in LLVM, including macros and stuff. So that, in addition, LLVM can have a preprocessor.
00:39:44 <zzo38> CakeProphet: Do you have some examples of record-based filesystems and in what cases they are used if not for generally common though?
00:40:02 <CakeProphet> the one I'm looking at right now is Files-11 from OpenVMS
00:40:43 <CakeProphet> I have no clue what they would be used for. But it seems like affording data types in your filesystem would improve the structure?
00:41:48 -!- oklofok has joined.
00:44:49 -!- oklopol has quit (Ping timeout: 258 seconds).
00:45:01 <CakeProphet> zzo38: also it would facillitate interprocess communication by eliminating the need to parse/deparse data into a character stream.
00:45:56 <CakeProphet> though I could also see it needlessly complicated the system.
00:46:18 <zzo38> CakeProphet: Yes it would make the complicated system.
00:46:31 <elliott> 20:17:08: <Zuu> any explanation fo C not being turing complete is a flawed explanation
00:46:39 <elliott> im going to track him down and cause him to cease existing
00:46:47 <elliott> 20:16:52: <pikhq> Zuu: Yes, attaching an infinite tape to C can model a universal Turing machine. However, this is true for many, *many* a finite state machine.
00:46:48 <elliott> 20:17:37: <Zuu> pikhq: that wouldnt be a finite state machine then
00:46:51 <elliott> 20:16:52: <pikhq> Zuu: Yes, attaching an infinite tape to C can model a universal Turing machine. However, this is true for many, *many* a finite state machine.
00:46:52 <elliott> 20:17:37: <Zuu> pikhq: that wouldnt be a finite state machine then
00:47:00 <elliott> can we all just stare at that for a while
00:48:38 <zzo38> Would C be turing complete if pointers are not interchangeable with numbers?
00:49:41 <CakeProphet> I assume that means pointer arithmetic is impossible right?
00:50:18 <CakeProphet> you could use a linked list struct for (virtually) unbounded memory.
00:50:33 <zzo38> No it would not necessarily mean that. Pointer subtraction would be impossible but not adding a number to a pointer.
00:51:24 <zzo38> But it would mean a union cannot mix pointers with non-pointers, I think.
00:52:02 <oklofok> "20:11:11: <Zuu> well, when i say turing complete i really mean LBA (ofcource)" <<<
00:52:40 <zzo38> Or maybe it would still be OK as long as pointers are considered to be stored in a different address space therefore if a union mixed pointers with non-pointers you would access them separately still.
00:53:12 <zzo38> That would allow sizeof to work as well where 1 cell in pointer memory can store unbounded pointer addresses
00:53:27 <oklofok> you computer scientists just make me sick
00:53:37 <zzo38> It would have the consequence that sizeof(int***)==1
00:53:44 <oklofok> (oh and that was not about Zuu, that was intentionally blank)
00:53:55 <zzo38> Although of course all this stuff is impossible on real computer because real computer is not turing completed!!
00:54:03 <oklofok> this is just my usual math pretentiousness
00:54:24 <oklofok> thought i'd explain that to u because you wouldn't have gotten it anyways.
00:54:56 <oklofok> zzo38: do you think we'll ever turing complete it tho?
00:55:19 <oklofok> you are right in that it clearly hasn't been turing completed yet
00:55:24 <CakeProphet> I suppose you could use a struct to emulate a tagged union.
00:55:39 <oklofok> tagged union is mean what again?
00:55:55 <zzo38> CakeProphet: Maybe you can use macros?
00:56:14 <oklofok> is it c++ then that has those
00:56:28 <CakeProphet> a cobination of a struct containing a tag and an untagged union, and a set of macros to make it not a pain in the ass would work.
00:56:35 <CakeProphet> uh, I honestly don't know all that much about C++.
00:56:53 <oklofok> because i think union is a keyword in c++ and it means... well union
00:57:19 <oklofok> two types in one, the horriblest creation ever
00:57:30 <CakeProphet> in C, union creates an untagged union, meaning there is no way to test which type the value is.
00:57:48 <oklofok> yeah you have to do that manually
00:57:55 <zzo38> oklofok: Not a bad creation, at least in C is not bad. It is very useful to make union.
00:58:10 <oklofok> zzo38: actually it's is a terrifyingly terrible and terrious creation.
00:58:27 * Sgeo wonders how Rust is coming along
00:58:34 -!- augur has joined.
00:59:18 <zzo38> oklofok: I don't know what "terrious" means but it is OK you and me can have different opinion about it.
00:59:42 <oklofok> zzo38: i think you should be able to infer it from the context
00:59:45 <zzo38> But from what I can tell, LLVM doesn't have unions.
01:01:36 <oklofok> elliott: hey linear bounded automata are totally turing complete i hear the emptiness problem for their languages is re complete i thought that's the math def lolol :SDSDSD
01:01:57 <CakeProphet> if (x.tag == SHITTY_ENUM_THING) { x.value.type1; printf("baaaah this is stupid."); }
01:02:14 <zzo38> But if you can compile a C code to LLVM code, then it must be able to make unions somehow, with it.
01:02:25 <Sgeo> I vaguely remmeber complaining about the bind syntax
01:02:42 <oklofok> (or nonemptiness whatever, emptiness is obviously not even RE)
01:02:48 <zzo38> Possibly just with type casting.
01:02:52 <Sgeo> CakeProphet, Rust's bind
01:02:57 <elliott> its just typecasting in a bad disguise
01:03:30 <CakeProphet> elliott: let's make our own C, with tagged unions and functional programming and parametric types. What should we call it?
01:04:55 <CakeProphet> but, seriously, a C-like language with some of the stupid things changed would be good.
01:06:32 <oklofok> nonemptiness is painfully obviously RE, as for completeness, emptiness is not RE because you can use an LBA to check inclusion in the language of any TM's valid runs in LBA style as they do in the ghetto so nonemptiness is in RE - R; we then apply the following formal theorem: everything in RE - R is RE complete unless it's some silly artificial stupidance
01:06:40 <elliott> CakeProphet: it's a long-term research project, mind you
01:06:46 <elliott> it's being designed for http://www.coyotos.org/
01:09:49 <oklofok> but more precisely, given any RE language L, and any word w, take a TM accepting it L and make an LBA for the language of its accepting runs from w, that LBA will have nonempty language iff L contains w, and thus we have reduced L to the language of LBA that have nonempty languages
01:10:12 <oklofok> perhaps i should've been more precise given that we have to keep track of multiple levels of languageness
01:12:09 <oklofok> *take a TM accepting it and
01:12:26 <oklofok> or perhaps *take a TM accepting L and
01:14:41 <elliott> 20:18:08: <Zuu> pikhq: then it coudlnt be turing complete
01:14:41 <elliott> 20:18:22: <pikhq> Zuu: AND C HAS FINITE FUCKING STATE.
01:14:41 <elliott> 20:18:24: <Zuu> either way you tuirn it you will make it false
01:14:43 <oklofok> but in fact it turns out that the emptiness of a single LBA is NOT RE complete! homework: let A be an LBA. give an algorithm that decides whether A has empty language.
01:14:47 <elliott> 20:18:30: <pikhq> Most finite state machines, *when given infinite state to work with*, are magically Turing-complete.
01:14:48 <elliott> 20:18:33: <Zuu> pikhq: no the hardware has
01:14:48 <elliott> 20:18:42: <Zuu> C is a language
01:15:01 <elliott> 20:19:45: <Zuu> so really, any language you can make up cam be said to have finite state in some spec.
01:15:11 <elliott> 20:20:00: <AnMaster> Zuu, the problem is not that the hardware is finite (of course it is). The issue is that the spec enforces any implementation to have finite state
01:15:12 <elliott> 20:20:15: <Zuu> AnMaster: and that is very much beside the point
01:15:12 <elliott> 20:20:15: <AnMaster> it is not a valid C implementation if you have infinite state
01:15:12 <elliott> 20:20:18: <AnMaster> basically
01:15:12 <elliott> 20:20:25: <AnMaster> Zuu, no it is _exactly_ the point here
01:15:13 <elliott> 20:20:26: <pikhq> Zuu: No, that IS THE POINT.
01:15:15 <elliott> 20:20:36: <Zuu> well, then you have argued for nothing
01:15:54 <oklofok> elliott: solve the problem and you'll get one
01:16:34 <elliott> 20:25:05: <Zuu> ok, give me some hardware with infinite state, and i will write a C program that will act like any universal TC but yet only access a finite set of stats
01:16:34 <elliott> 20:25:18: <AnMaster> Zuu, how.
01:16:34 <elliott> 20:25:22: <Zuu> a C program that conforms 100% to the spec i might add
01:16:34 <elliott> 20:25:35: <pikhq> Zuu: How?
01:16:34 <elliott> 20:26:16: <Zuu> By assuming that this finite state is large enough to compute whatever needs to becomputed, otherwise go into an infinite loop
01:16:35 <oklofok> show me solution, sry left that kinda hanging in implicity
01:17:24 <oklofok> you know there's a reason i switched to math
01:17:48 <elliott> 20:29:50: <Zuu> Just to be explicit, this argument ended at the sime you gius mentioned the finite state stuff form the spec
01:17:51 <zzo38> O, BitC has theorems.
01:17:53 <elliott> 20:30:08: <Zuu> it just became to rediculous by then
01:18:01 <elliott> im seriously going to yell at this guy if he ever came in again DID YOU KNOW YOU WERE AN IDIOT A YEAR AGO AND I HATE YOU
01:18:33 <elliott> 20:33:37: <Zuu> there are several other ways to achieve UTC though
01:19:27 <Sgeo> elliott, you know there's a Freenode service by the name alis?
01:19:43 <oklofok> Zuu is a horrible person, i think we all agree already, no need to continue.
01:20:17 <elliott> oklofok: but im still reading
01:20:42 <oklofok> elliott: i'm so tired i'll actually happily read some more of that shit
01:21:16 <oklofok> not enough willpower to resist the urge of enjoying being extremely annoyed
01:21:58 <elliott> oklofok: he's saying that using POSIX functions to prove C TC is ok because
01:21:59 <elliott> 20:36:51: <Zuu> remember the posic calls are mostly implemented in C aswell
01:22:59 <oklofok> is it okay if i still tell you to shut up about that old bullshit we've heard a million times even though i secretly hope you continue
01:23:47 <elliott> 20:36:59: <pikhq> By the ISO standard for C, C is a finite-state automaton.
01:23:48 <elliott> 20:37:07: <pikhq> Zuu: POSIX defines extensions *to* C.
01:23:48 <elliott> 20:37:14: <Zuu> doesnt amtter
01:23:50 <elliott> literally just punched the air
01:23:59 <elliott> 20:37:55: <Zuu> ok, i have far more insterresting stuff to do than tell about ways to use C in a UTC way
01:24:11 <elliott> like being a terrible person and fucking killing kittens
01:24:17 <elliott> * [Zuu] (~vdsvsd@77.215.149.86): uzzuu
01:25:23 <oklofok> you should probably alert the freenode staff
01:25:33 <oklofok> maybe just paste those quotes on #freenode
01:25:40 <oklofok> i mean the balls on that dude
01:26:02 <oklofok> just like hello here i am again u remember me i'm the c is an utc dude let's have a party :D
01:26:30 <oklofok> and no one understands his sentences because they are written my me so he gets away with it
01:28:06 * Sgeo watches idiots play in #wolfgame
01:28:18 <Sgeo> Even I'm not that bad I think
01:28:30 <Sgeo> Unless maybe it's... um, typical for that channel
01:28:40 <elliott> <elliott> it is impossible to use C in a UTC way, have a nice day! :)
01:28:55 <oklofok> what the fuck are you doing
01:28:57 <elliott> if you use another timezone
01:30:01 <oklofok> i use w/ all the time when i'm doing math on the blackboard
01:30:38 <oklofok> wow i'm obsessed with math today
01:38:18 -!- cheater_ has quit (Ping timeout: 255 seconds).
01:42:35 -!- CakeProphet has quit (Ping timeout: 240 seconds).
01:51:06 -!- cheater_ has joined.
01:53:26 <oklofok> although it's kind of late now, not sure i need your input anymore
01:53:43 <oklofok> except out of pure why notness
01:54:16 <augur> oklofok: what was the question now
01:55:02 <augur> oklofok: when did i say that
01:55:17 <oklofok> i was just asking you if you agreed
01:55:30 <oklofok> why exactly did you say "wat"?
01:55:36 <augur> oklofok: oh. i only got your question
01:55:39 <augur> not the line before it
01:55:57 <oklofok> but i then told you what it was about
01:56:23 <oklofok> and still u were so conf u sed
01:57:10 <oklofok> maybe i will maybe i won't
01:57:33 <quintopia> write some c code until you fall asleep
01:57:58 <oklofok> that would take so little time i would've probably been asleep all day already.
01:58:21 <oklofok> (since c is boring as well i guess?)
01:59:26 -!- quintopia has set topic: elliott using his rationale of observable sharing | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
01:59:38 <quintopia> does this make more or less sense?
01:59:38 <Gregor> I decided to buy the PediaPress book on compilers.
01:59:49 <Gregor> 700 pages of Wikipedia for $40 :P
02:03:04 <Gregor> elliott: Yesssssssssssssss
02:03:32 <elliott> remember that huge book of all the featured articles
02:07:05 <Gregor> Not only do I not remember that, I'm fairly certain I never heard about it.
02:07:39 <quintopia> i bought it because my kitchen stool broke
02:07:50 <elliott> Gregor: it was just a picture of it
02:07:52 <elliott> not something actually sold
02:08:25 <quintopia> it was captioned gcc reference manual
02:14:09 <elliott> "We used the Var x variant in Kansas Lava. We use it to encode two types of variables, Var and Reg, which have different timing semantics. Thus, turning a required annotation into a useful and required syntax."
02:14:12 <elliott> stop mentioning lava u jerk
02:15:54 <elliott> http://tinyconcepts.com/invaders.html invaders in lambda calculus
02:20:36 -!- Sgeo has changed nick to Sgeo|RainboyIsWo.
02:20:39 -!- Sgeo|RainboyIsWo has changed nick to Sgeo.
02:22:21 <Sgeo> Feel free to speculate!
02:25:57 -!- augur has quit (Remote host closed the connection).
02:26:46 -!- augur has joined.
02:36:23 <zzo38> I read stuff about rulebooks in Inform 7, including about procedural rulebooks, rulebooks based on kinds, rulebooks producing values, and so on. I would like to figure out how it works I would like to see having some other programming language based on these things possibly being optimized and then compiled to LLVM which can be further optimized.
02:36:48 <zzo38> However there is some problems, one is that the "ni" program is not yet published, also procedural rulebooks are deprecated.
02:37:17 * Sgeo plays Mafia in #wolfgame
02:42:25 <oklofok> i had a dream that i acted in a movie i think
02:50:33 -!- augur has quit (Remote host closed the connection).
02:55:32 <zzo38> Also this new one can have property hook rules, when reading or writing a property you run the property hook rules in order of priority and the return value of one can be passed as the input of another, and so on. And also various other things. And things combining the Inform 7 style rulebooks with things similar to Magic: the Gathering rules. And more.
02:57:23 <elliott> 20:46:52: <Sgeo__> Hm, what prevents storing such a large number in a bugnum that it slows down the computer?
03:02:26 -!- augur has joined.
03:02:46 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:03:41 -!- augur has quit (Remote host closed the connection).
03:13:56 -!- augur has joined.
03:17:24 -!- augur has quit (Remote host closed the connection).
03:23:52 <oklofok> storing your numbers in bugnums is usually not a very good idea.
03:27:26 -!- zzo38 has quit (Quit: Bottled water is even GST [Greenwich Sandwich Time] free.).
03:28:58 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
03:33:42 <elliott> if i sign a form with "i do not agree to this contract" do i still agree to it
03:34:01 -!- azaq231 has joined.
03:36:20 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:40:12 -!- augur has joined.
03:40:18 -!- augur has quit (Remote host closed the connection).
04:00:17 <oklofok> everytime i close my eyes i'm like "so where was i... ah, the markers, let's see how to implement those"
04:01:45 <oklofok> my second proof was also kind of incomplete (actually the first one wasn't really wrong either, just even more incomplete)
04:02:32 <oklofok> i finally figured out how to do this one helper CA that kinda sparsely marks stuff, but i then realized i need to rewrite all markers already in the point
04:02:44 <oklofok> or those will get confused with stuff
04:02:58 <oklofok> of course due to entropy stuff that should be doable but it's one more pain in the ass
04:03:46 <oklofok> really this will probably blow up into a hugey when i write it up, unless it completely breaks down before i finish it
04:07:18 <oklofok> the thing is i know how to handle periodic points and i know how to handle parts of points that don't have small periods for very long anywhere, except there will be some errors occasionally because stuff happens, and i need to fix those errors and then somehow glue these two parts together
04:10:04 <elliott> I was amazed in the "Telehacks" and I've try it.. It was really cool. And I will bookmarked it. I have a question do you know how to hack? I wanted to try to hack my own laptop but i don't know where to start.. Uhm.. is there any way to hack it? I'm just a beginner/noob .
04:10:05 <elliott> p.s. sorry for my english, grammars and others.
04:12:02 <oklofok> the first step in hacking your laptop is trying to come up with your password
04:12:17 <oklofok> since you came up with it, you should be able to come up with it
04:12:25 <oklofok> if not, ask yourself what it is
04:12:33 <oklofok> and after telling yourself, type that in
04:12:40 <monqy> I looked a few seconds at the logs and wow Zuu wow
04:13:17 <oklofok> i went to a Zuu once but there were too many monkeys inside so i left quickly
04:16:43 <elliott> monqy: im seriously his enemy forever
04:16:51 <elliott> i want to find out where he lives and fly over there and open the door and say
04:16:54 <elliott> hi do you go by "Zuu" on irc
04:16:58 <elliott> and hell say yes why who are you a-
04:16:59 <monqy> is he still existing
04:19:41 <monqy> i am glad i am not in any channels he is in unless he is in good channels in which case i feel sorry for the channels :'(
04:20:14 <elliott> http://kitenet.net/~joey/blog/entry/announcing_olduse.net/
04:21:28 <elliott> http://blog.longnow.org/2011/06/17/major-update-on-the-10000-year-clock-project/ so cool
04:23:36 <oklofok> When you build this thing, please display a prominent notice, in a multitude of languages, that we do *NOT* expect the world to end when the clock overflows.
04:23:39 <Sgeo> elliott, is that olduse thing a Zuu thing, or something actually possibly decent?
04:26:56 <oklofok> what the fuck is the point of time anyway
04:27:09 <oklofok> by which i mean is the clock just gonna be like buried or will it be seeable
04:27:55 <oklofok> also i don't recall ever see
04:28:03 <elliott> http://en.wikipedia.org/wiki/Clock_of_the_Long_Now btw
04:28:40 <elliott> I want to build a clock that ticks once a year. The century hand advances once every one hundred years, and the cuckoo comes out on the millennium. I want the cuckoo to come out every millennium for the next 10,000 years. If I hurry I should finish the clock in time to see the cuckoo come out for the first time.
04:28:40 <elliott> — Danny Hillis, The Millennium Clock, Wired Scenarios, 1995
04:28:49 <elliott> "Longevity: The clock should be accurate even after 10,000 years, and must not contain valuable parts (such as jewels, expensive metals, or special alloys) that might be looted."
04:29:00 <elliott> all the talking of how to convince people not to enter
04:30:33 <monqy> clockwork more like playground
04:32:29 <oklofok> oh it required maintenance
04:33:24 <oklofok> i thought at most there'd be a population of humans that live inside the clock and keep it going without ever interfering with other humans, teaching their children to do the same
04:33:45 <oklofok> the guardians of time we'd call them
04:34:00 <oklofok> and they would have the hugest beards.
04:35:18 <elliott> it just chimes once a year
04:35:43 <oklofok> no cuckoo every mil says wp
04:35:54 <pikhq> So, my mission to make a minimal Linux system that can successfully build itself has resulted in something *somewhat* larger than I would've liked.
04:36:26 <pikhq> Though at least I was able to beat Perl into being reasonable.
04:36:40 <oklofok> does your program now contain every possible bit?
04:37:08 <oklofok> i once wrote a program whose source code contained every bit in existance
04:37:37 <pikhq> monqy: By "reasonable" I mean "I only have miniperl. As /bin/perl."
04:37:43 <oklofok> monqy: mine even had multiple copies of 0
04:38:01 <monqy> pikhq: and it works? I've never heard of it. will look it up
04:38:04 <monqy> oklofok: daaaaaaaaaaaang
04:38:15 <pikhq> monqy: Miniperl is part of the Perl build process.
04:38:21 <pikhq> You see, Perl needs Perl to build Perl.
04:38:35 <pikhq> But Miniperl just needs a reasonable C environment.
04:38:42 <pikhq> So it builds Miniperl to build Perl.
04:38:57 <pikhq> I only have it there because Linux requires Perl.
04:39:23 <pikhq> Also, though I'm reasonably confident it'll work, I haven't *tested* it yet.
04:39:31 <pikhq> I literally just got it to boot.
04:41:08 <pikhq> ... And forgot to set a root password. Which makes things somewhat difficult when I'm actually using busybox getty.
04:41:54 <pikhq> By which I mean "I forgot to make /etc/passwd".
04:42:00 <quintopia> the website says it generates a different chime sequence everyday oklofok
04:42:58 <pikhq> *Aaaaah*, that's better.
04:44:28 <pikhq> "free -m" reports 8 megs used. That feels positively amazing.
04:46:19 -!- augur has joined.
05:03:34 <pikhq> Welp, let's see what breaks.
05:18:32 <pikhq> Apparently "the toolchain"
05:19:31 <pikhq> "sh: ./a.out: not found"
05:40:38 -!- copumpkin has joined.
05:40:39 -!- copumpkin has quit (Changing host).
05:40:39 -!- copumpkin has joined.
05:45:40 <elliott> The Long Now Foundation has purchased the top of Mount Washington near Ely, Nevada which is surrounded by Great Basin National Park, for the permanent storage of the full sized clock, once it is constructed. It will be housed in a series of rooms (the slowest mechanisms visible first) in the white limestone cliffs, approximately 10,000 feet up the Snake Range. The site's dryness, remoteness, and lack of economic value should protect the clock fro
05:45:40 <elliott> m corrosion, vandalism, and development. Hillis chose this area of Nevada in part because it is home to a number of dwarf bristlecone pines, which the Foundation notes are nearly 5,000 years old. The clock will be almost entirely underground, and only accessed by foot traffic from the East once complete.
06:10:14 <pikhq> Gotta love Long Now.
06:12:11 <coppro> although the whole point of the project kind of baffles me
06:14:15 <elliott> brian eno is involved, suspend all thinking for the sake of cool please
06:14:45 <elliott> it strikes me as kind of reactionary, but i suppose their goal is better than a societal meltdown
06:15:37 <elliott> at the same time i find a lot of what they say makes sense and seems kind of obvious, but then lots of things seem obvious to me
06:16:05 <pikhq> What seems obvious to you is almost impossible to others.
06:16:34 <elliott> misanthropy: an unproductive position?
06:21:31 <pikhq> It's so very comical running GCC in a minimal changeroot.
06:21:52 <pikhq> 8m for the whole OS. 200m for the compiler.
06:22:19 <coppro> elliott: your comment about misanthropy
06:22:26 <elliott> coppro: in response to <pikhq> What seems obvious to you is almost impossible to others.
06:22:31 <pikhq> elliott: 3.0 of what?
06:22:59 <pikhq> No, though rc6 got pushed late last night.
06:23:47 <pikhq> Erm, no, it was tagged July 4th. My thinko.
06:23:58 <elliott> Length: 76737255 (73M) [application/x-bzip2]
06:24:12 <pikhq> Linux has a fuckton of shit in it.
06:25:06 -!- CakeProphet has joined.
06:25:19 -!- CakeProphet has quit (Changing host).
06:25:19 -!- CakeProphet has joined.
06:28:46 <elliott> pikhq: im going to make smaller system
06:29:04 <pikhq> elliott: Good luck.
06:29:58 -!- CakeProphet has quit (Ping timeout: 276 seconds).
06:30:03 <coppro> elliott: that's not zepto enough
06:36:19 <elliott> pikhq: does it count if you have to use the serial port
06:36:27 -!- derrik has joined.
06:37:07 -!- cheater_ has quit (Ping timeout: 255 seconds).
06:39:10 <elliott> pikhq: that's a yes or no question
06:39:21 <pikhq> elliott: Sure, whatever.
06:39:30 <elliott> you're just upset because i'll win :(
06:39:46 <pikhq> elliott: I'm trying to make a bootstrapping system.
06:39:56 <pikhq> elliott: Good fucking luck.
06:40:00 <pikhq> Perl comes to ~50M.
06:40:11 <elliott> pikhq: i said it would be smaller than yours, not small
06:40:26 <elliott> pikhq: why aren't you using microperl
06:40:34 <pikhq> Because Linux won't build with microperl.
06:41:40 -!- CakeProphet has joined.
06:41:41 -!- CakeProphet has quit (Changing host).
06:41:41 -!- CakeProphet has joined.
06:42:03 -!- aloril has quit (Ping timeout: 260 seconds).
06:43:04 <elliott> wonder what it means if I get nothing after "Booting the kernel." :)
06:48:22 -!- cheater_ has joined.
06:54:37 -!- aloril has joined.
07:01:29 -!- CakeProphet has quit (Ping timeout: 252 seconds).
07:31:51 <Sgeo> http://www.futilitycloset.com/2011/07/10/a-logic-oddity/ yay I spotted the flaw in a decent amount of time
07:33:31 <Sgeo> Hmm, it's more interesting if you make it probabilities instead of certainties. Certainly the problem as phrased deals with probabilities
07:33:56 <pikhq> I think it pretty obvious. We're not dealing with deductive logic here.
07:34:52 <pikhq> So you can't really do modus ponens on this.
07:34:57 * Sgeo was thinking more that "If its not Reagan who wins, it will be Anderson." is in fact true >.>
07:35:08 <pikhq> Sgeo: Yes, that's 100% certain.
07:35:21 <pikhq> However, it's not 100% certain that a Republican will win.
07:35:26 <pikhq> It's merely probable.
07:35:45 <pikhq> Sorry, misread you.
07:36:15 <pikhq> Because it's not 100% certain that a Republican will win, you can't conclude that either Reagan or Anderson will win.
07:36:28 <Lymee> If a republican wins, oh shit.
07:37:29 <Sgeo> What happens if you assign the first two statements numerical probabilities
07:38:11 <Sgeo> I think my initial "flaw" thought was wrong
07:38:14 <pikhq> Then you're dealing with a form of inductive logic, and can get the probability that if Reagan doesn't win, Anderson will.
07:38:25 <pikhq> i.e. That works just fine.
07:39:09 <pikhq> (I'm not too familiar with the relevant formalisms, though, so can't say more than that, really.)
07:45:42 <coppro> the logic there makes me squirm
07:49:08 -!- Phantom_Hoover has joined.
07:49:25 <pikhq> coppro: The problem is only that the premises aren't necessarily true.
07:49:36 <pikhq> It's entirely valid modus ponens.
07:50:02 <coppro> Which part is valid modus onens?
07:50:51 <pikhq> It's of form "a->b;a;therefore b."
07:51:34 <coppro> pikhq: which part specifically, though?
07:51:42 <pikhq> ... That's the entire statement.
07:52:09 <coppro> which part of the article
07:52:19 <pikhq> ... The syllogism?
07:52:31 <pikhq> I'm restating the only thing in there that can be restated in that form?
07:53:10 <pikhq> The oddity comes about simply because a is not (entirely) true, and so we end up getting a not (entirely) true statement from perfectly valid reasoning.
08:00:45 -!- derrik has quit (Quit: no rush).
08:13:48 -!- oerjan has joined.
08:28:54 -!- monqy has quit (Quit: hello).
08:31:22 <elliott> "Hash functions are typically one-way functions (these haven't been proven to exist yet, but at this time they're essentially non-reversible)."
08:36:25 <quintopia> f(x)=1 is provably non-reversible :P
08:36:44 <oerjan> there are other conditions for a hash function duh
08:37:51 <Deewiant> He just means that you can't find preimages without brute-forcing
08:38:09 <oerjan> hm right so f(x)=1 isn't even that.
08:38:29 <quintopia> yes, i dont know what he was quoting
08:38:54 <quintopia> but my point was that non-reversibility is not the most important property of hashes
08:39:58 <quintopia> it's also pretty nice when they are bijections
08:41:23 <pikhq> And hash functions are demonstrably non-reversible as well. As are all functions that map from a space to a smaller space.
08:42:00 <pikhq> God, people, math isn't hard. :P
08:42:20 <azaq231> automorphism = isomorphism which is also an endomorphism
08:42:30 <quintopia> pikhq: i am considering the set of hashes over possible hash outputs
08:42:41 <quintopia> every hash should hash to a distinct hash
08:43:19 <quintopia> and non-reversibility without bruteforcing is meaningful in this contect
08:46:15 <elliott> <Deewiant> He just means that you can't find preimages without brute-forcing
08:46:32 <elliott> Deewiant: E directly stated that one-way functions haven't been "proven to exist yet"
08:46:45 <elliott> That might be what e /means/, but what e says is just confusing
08:47:18 <Deewiant> I thought his meaning fairly clear from the rest of the message
08:47:42 <elliott> Deewiant: Sure, you can obviously "decode" it, but that's not the point, you can decode most things, even nonsense
08:54:01 <oerjan> elliott: afaik, one-way functions _haven't_ been proven to exist. i believe they may require P != NP.
08:54:57 <pikhq> oerjan: Define "one-way".
08:55:07 <pikhq> Function for which there is not an inverse?
08:55:24 <oerjan> pikhq: no. http://en.wikipedia.org/wiki/One-way_function
08:55:40 -!- Phantom_Hoover has quit (Quit: Leaving).
08:55:49 <pikhq> Oh, sure, give a definition that makes the answer non-trivial. :P
08:55:52 <oerjan> it is _not_ the same as one-to-one/injective
09:08:24 <oerjan> although it's sort of related i think if you look at it from the point of constructive logic where objects to be proven to exist need to be constructible and if you then add the qualifier "in polynomial time"
09:09:36 <oerjan> *randomized polynomial time, if we go with the wiki article
09:09:43 -!- elliott has quit (Ping timeout: 240 seconds).
09:21:18 -!- Slereah has quit (Ping timeout: 240 seconds).
09:30:14 -!- Slereah has joined.
09:39:51 -!- Slereah_ has joined.
09:41:22 -!- Slereah has quit (Ping timeout: 252 seconds).
10:06:26 -!- sebbu2 has joined.
10:06:26 -!- sebbu2 has quit (Changing host).
10:06:26 -!- sebbu2 has joined.
10:09:40 -!- sebbu has quit (Ping timeout: 276 seconds).
10:26:08 -!- MigoMipo has joined.
11:58:58 -!- oerjan has quit (Quit: leaving).
12:00:54 -!- hagb4rd2 has quit (Quit: hagb4rd2).
12:11:29 -!- CakeProphet has joined.
12:11:29 -!- CakeProphet has quit (Changing host).
12:11:29 -!- CakeProphet has joined.
12:17:33 <CakeProphet> so is there any reason why this wouldn't work? f (c x y) ls = map ($ y) . map ((c$).($x)) $ ls
12:18:10 <CakeProphet> (I mean, other than it being unsupported in Haskell. I'm talking about a possible extension)
12:22:21 <CakeProphet> There are undecidable types. The type of the first argument is a, but what is the type of the second? a list of functions from (...?) to (...?)
12:22:37 <CakeProphet> it can't be anything, because it depends on the constructors parameters.
12:34:00 <azaq231> CakeProphet: This does in fact type check http://hpaste.org/new
12:36:10 <azaq231> err http://hpaste.org/48909
12:36:33 <azaq231> but you likely mean something different and data T a b is not what you meant
12:36:46 <Deewiant> azaq231: He meant having the T be variable
12:37:06 <Deewiant> So you could e.g. have also data Y a b = Y a b and f could handle both T and Y
12:45:13 -!- cheater_ has quit (Ping timeout: 255 seconds).
12:45:29 <CakeProphet> yeah, after thinking about it, it obviously wouldn't work with Haskell's type system.
12:46:39 <CakeProphet> it's always seemed reasonable to me to allow the tuple type to also represent a sort of anonymous data type with fields of a known type
12:47:10 <CakeProphet> thus (Int, Int) would represent any type (or subset of a type) constructed from two Int fields.
12:47:53 <CakeProphet> in that case you could type the above as (a, b) -> [b -> c] -> (c, a)
12:49:40 <CakeProphet> actually no it would be (a, b) -> [a -> c] -> (c, b)
12:50:19 <CakeProphet> I shouldn't be reasoning about Haskell extensions while heavily in need of sleep after work.
12:54:34 <CakeProphet> but I think it would reasonable to simply make tuples a special kind of anonymous constructor, whose type is all values defined by a certain number of fields with a known type for each field.
12:55:29 <CakeProphet> but then it would be tempting to simply write all of your functions to return tuples when possible, since this would generalize the function to many different possible types
12:56:12 -!- BeholdMyGlory has joined.
12:58:23 -!- cheater_ has joined.
13:40:10 -!- ais523 has joined.
13:40:17 -!- ais523 has quit (Changing host).
13:40:17 -!- ais523 has joined.
14:01:47 -!- pikhq_ has joined.
14:01:50 -!- pikhq has quit (Ping timeout: 246 seconds).
14:18:38 -!- azaq231 has quit (Quit: Leaving.).
14:28:43 -!- cheater_ has quit (Ping timeout: 255 seconds).
14:41:30 -!- cheater_ has joined.
14:50:56 -!- augur has changed nick to mhosignal.
14:51:59 -!- mhosignal has changed nick to augur.
15:37:38 -!- derrik has joined.
15:44:15 -!- Lymee has quit (Ping timeout: 240 seconds).
15:58:06 -!- Lymee has joined.
16:27:37 -!- monqy has joined.
16:45:37 -!- MigoMipo has quit (Read error: Connection reset by peer).
16:46:09 -!- cheater__ has joined.
16:46:09 -!- MigoMipo has joined.
16:48:17 -!- cheater_ has quit (Ping timeout: 240 seconds).
17:00:17 -!- derrik has left.
17:20:36 <ais523> hmm, do we have an opinion on what to do about languages like http://esolangs.org/wiki/Crazed (it has no real information on its page, and the author has lost the specs)?
17:22:20 <quintopia> i suggest a "lost languages" category...
17:34:25 <ais523> the author suggested deletion
17:50:54 -!- iconmaster has joined.
17:59:14 <Sgeo> :( at lost language specs
17:59:37 -!- pikhq_ has quit (Ping timeout: 276 seconds).
18:00:42 <monqy> :( at brainfuck with more commands
18:03:42 <quintopia> i dunno if i agree with that sentiment...if it's just that then yes, but i think some brainfuck derivatives have been quite interesting
18:04:01 <ais523> OK, vaguely interesting BF variant: if you delete [ (and instead have all loops go back to the start of the program), is it still TC?
18:04:03 -!- oerjan has joined.
18:05:19 <quintopia> so youd have to somehow store the entire branching path through the program on the tape to do different loops?
18:06:45 <ais523> apart from . , and loops, BF is reversible
18:06:58 <ais523> so presumably you could reverse the whole program so far just after each ]
18:07:14 <quintopia> i would believe it is TC if you wrote multiply in it
18:07:19 <ais523> in order to give effectively independent bits of code
18:09:10 <oerjan> <CakeProphet> so is there any reason why this wouldn't work? f (c x y) ls = map ($ y) . map ((c$).($x)) $ ls
18:09:36 <oerjan> for one thing haskell is designed so that you cannot use constructors at all if they aren't exported from the module defining them
18:11:13 <oerjan> also the right side can be simplified to map (($y).(c$).($x)) $ ls
18:11:34 <oerjan> (in fact ghc will do so during optimization)
18:16:27 -!- Madk has joined.
18:16:51 <Madk> behold, progress
18:17:06 <Madk> <CTCP><CTCP>2YZZr'
18:17:12 <Madk> further progress has been made
18:17:38 <Madk> awesome, stuff is moving along faster now
18:18:04 <Madk> my evolutionary algorithm is trying to squeeze "Hello, world!" out of my esoteric language
18:18:33 <Madk> that most recent sample was from generation 1105
18:18:41 <Madk> and took about 10 minutes
18:19:26 <Madk> do you see that
18:19:34 <Madk> that is great progress taking place
18:19:57 <monqy> Surface, right? Why do you need such a fancy algorithm when there's a reduction from brainfuck
18:20:11 <Madk> because the instructions are wrapped around a rather small sphere
18:20:15 -!- pikhq has joined.
18:20:18 <Madk> also, because I'm lazy
18:20:31 <Madk> so instead of writing a hello, world example I wrote a program to write a hello, world example
18:21:54 <Madk> also, I intend to apply the same code to other esolangs in the future
18:22:16 <Madk> so I can make some examples for some of the more esoteric languages
18:22:47 <Madk> it goes through quite fast
18:22:54 <Madk> ~100 generations/minute
18:23:09 <Madk> thing is the complexity involved
18:23:26 <Madk> I could go larger, but I decided to try that
18:23:30 -!- Lymee has quit (Ping timeout: 240 seconds).
18:24:24 -!- Lymee has joined.
18:24:35 <olsner> maybe you could include the runtime in the fitness measure, to get faster candidates that should take less time to test
18:24:36 <monqy> is it in blitzbasic too
18:25:54 <Madk> olsner: I haven't allowed the program to use a termination command and the IP wraps, so that's a bit impractical at this point. I have set a maximum run time, though
18:26:02 <Madk> monqy: it's in blitzmax, yes
18:28:12 <olsner> sounds like you have some optimalization to do
18:28:40 <monqy> How exactly are you doing this hello world generation thing
18:29:30 <Madk> I have a pool of initially random programs, I sample 4 of them at a time and replace the program farthest from the desired output with a combination of the best two, with some opportunity for mutation
18:30:03 <Madk> the samples I've been giving you are the closest obtained output so far
18:30:16 <Madk> the esolang is 2d
18:30:22 <Madk> so not really strings, but arrays
18:31:50 <Madk> the length isn't variable, so there's that difference
18:33:36 <Madk> I just realized a mistake I made D:
18:33:43 <monqy> And how do you measure helloworldness of an output / combine two helloworldy programs
18:34:00 <Madk> I measure it by checking similarity of characters
18:34:15 <Madk> not that complicated, but it is more than a 1:1 check
18:34:39 <Madk> I combine them by using an almost 50/50 chance for each character, with a slight bias toward the program with the better score
18:35:28 <Madk> right now each character in an offspring is a 1 in 32 chance of being randomly chose
18:36:04 <Madk> program code is stored in a 32x12 array
18:36:05 <monqy> Madk: So you know exactly what parts of each program produce which characters, and are able to separate them cleanly and stick them together nicely?
18:36:25 <quintopia> that is an awfully high mutation rate
18:36:35 <Madk> monqy: I'm not really sure what you're asking
18:36:38 <quintopia> is there a way to decrease it over time
18:36:40 <Madk> I'll reduce it a bit, then
18:36:46 <Madk> I could do that
18:37:39 <quintopia> GA is a really inefficient search paradigm, you know
18:37:42 <monqy> Madk: You said you combine your programs, right? I asked how you did that, and I reaced based on your response "< Madk> I combine them by using an almost 50/50 chance for each character, with a slight bias toward the program with the better score"
18:38:04 <Madk> the distribution is random, if that's what you meant
18:38:13 <monqy> Madk: that's not what I mean
18:38:26 <monqy> Madk: I mean how do you take two programs and mash them together in a sane way
18:38:35 <Madk> it's very random
18:38:40 <Madk> not really sane there
18:38:55 <monqy> quintopia: but it's so much cooler than just translating a brainfuck hello world
18:39:03 <Madk> quintopia: if I intended to be efficient I would have written it manually
18:40:58 <quintopia> but why GA and not simulated annealing?
18:41:40 <monqy> Madk: so for combining programs you just go over every character and pick it from one of the two constituent programs? I imagine this won't get you anywhere near hello world
18:42:00 <Madk> quintopia: the end result can be more interesting
18:42:11 <Madk> monqy: what could I do that would work better?
18:42:48 <oerjan> monqy: well you'd imagine the programs that survived might be related and so have the same structure, so it starts working better after a while?
18:42:49 <monqy> I don't know. Breeding for hello world characteristics is not really a simple problem.
18:43:31 <Madk> I did a much simpler GA not long ago that operated on a much less complicated esolang
18:43:40 <Madk> though for an entirely different purpose
18:43:45 <Madk> but the GA worked wonderfully
18:44:04 <Madk> it was more similar to corewar than anything else
18:44:13 <Madk> I put a few programs in an arena
18:44:28 <Madk> the ones that had the most health (eat food, attack others) bred and replaced the one that did badly
18:44:52 <Madk> by about 100k generations I had some very complex and intriguing behaviors
18:45:30 <monqy> And I assume the language was such that good breeding was easier
18:45:41 <Madk> it was 1d and variable length
18:45:45 <Madk> so only slightly
18:45:59 <monqy> well that has little to do with it
18:46:09 <Madk> if I remember right, some of the best ones had formed good loops structures
18:46:38 <Madk> the one working currently and that one were only significantly different in that the previous was linear
18:47:07 <monqy> I still stand that that has little to do with it
18:47:45 <monqy> it's more about the structure of the language in the sense that it's easy to break it up structurally and muck with that
18:47:47 <Madk> by 1000 generations, the programs I was working with now were outputting the same character twice where 'll' would be
18:47:49 <monqy> rather than just doing character replacement
18:48:01 <oerjan> Madk: btw i was wondering how you do the sphere wrapping, since there is no entirely clean way of doing so (we had a discussion on channel previously of what surfaces have 2d grid graphs on them and they had to have the same euler characteristic as the torus, and the sphere doesn't)
18:48:03 <Madk> it's very inefficient, indeed, but it's seemed to work
18:48:14 <Madk> I have a 2d array
18:48:20 <Madk> x wraps horizontally
18:48:27 <Madk> the algorithm for y wrapping is like this:
18:48:47 <Madk> when a pole is reached, x=(x+width/2) % width
18:48:53 <Madk> and north and south are reversed
18:49:17 <oerjan> ah. so inspired by an ordinary world map, then.
18:49:45 <Madk> it's no different than latitude/longitudinal coordinates
18:50:05 <oerjan> right. this makes the poles into special points.
18:53:58 <Madk> I had to scrap that progress because I was forgetting to reset program code after going through it
18:54:11 <Madk> now's a good time to do things like change pool size, w/e
18:54:23 <Madk> I adjusted the mutation rate to decrease steadily over time
18:54:35 <Madk> I did a good deal of optimization
18:54:45 -!- Phantom_Hoover has joined.
18:55:12 <monqy> genererational algorithm to produce a hello world
18:55:21 <Madk> I'm using an evolutionary algorithm to make a hello world example in my language for me because I don't feel like doing it myself
18:55:52 <Madk> that is my alias
18:55:58 <Phantom_Hoover> Wow, I'm surprised you got anything but a steely reception here.
18:56:45 <monqy> for more information see http://esolangs.org/wiki/User:Phantom_Hoover
18:57:12 <Madk> most of my languages aren't
18:57:39 <Madk> only 3 of them are really that similar to brainfuck
18:57:44 <Madk> 1 other is kinda close
18:58:21 <Madk> anyway, I'm trying to figure the best pool size before I set it back in motion with some fixes I made
18:58:21 <oerjan> Brainfuck. Not even once.
18:58:41 <Phantom_Hoover> I mean, you'd hardly let a Nazi off because most of the people he killed weren't even Jews.
18:58:50 <Madk> maybe you wouldn;t
18:58:58 * oerjan hits Phantom_Hoover ===\__/
18:59:26 <Madk> this is essentailly the one thing I can't go and change without scrapping everything
18:59:51 <Madk> unless I want to inject a bunch of random crap into a developed pool
19:00:05 <Madk> no, the point being once it's started I don't want to change the pool size
19:00:19 <Madk> I can change pretty much anything else without impacting a lot
19:00:35 <Madk> it's in blitzmax
19:00:45 <Madk> the point being it saves the pool every now and then
19:00:53 <Madk> so I can pick up from where it leaves off
19:01:18 <Madk> http://esolangs.org/wiki/Surface
19:01:47 <Phantom_Hoover> You reduce it to Brainfuck in the article; how hard can it be to just rewrite the BF HW?
19:02:08 <oerjan> Phantom_Hoover: but but, that would be derivative!
19:02:11 <Madk> because the space available is too small to translate it like that
19:02:33 <monqy> oh this reminds me
19:02:36 <Madk> I started one manually and thought, "what's wrong with me? I should be having the computer do this for me."
19:02:37 <HackEgo> 478) <d1ffe7e45e interpreter> The interpreter uses an unbounded tape size, but due to technical limitations will stop being unbounded if the tap size reaches 2^63 cells.
19:02:41 <monqy> Madk: what is this supposed to mean
19:03:19 <Madk> that it's a limitation of the machine, not the language
19:03:28 <Phantom_Hoover> It's unbounded... provided you don't go over the bounds.
19:04:14 <oerjan> you have complete freedom to follow big brother
19:04:44 <Madk> I'm going on with me pool of 128
19:09:01 <Madk> stuff is maturing much faster now that it's working properly
19:09:28 <Madk> there are a few commands that toggle to another when executed
19:09:32 <Madk> was forgetting to reset them
19:09:59 -!- ais523 has quit (Remote host closed the connection).
19:10:05 <Madk> and also forgetting to keep track of a program's success instead of re-running it every time I called it into question
19:10:14 <Madk> so going generally much faster now
19:10:34 <Madk> <CTCP> //;;<CTCP>
19:11:31 <Madk> I did the unthinkable
19:11:40 <Madk> I registered an account on a furry forum just to contact you
19:11:46 <Madk> I hope you appreciate this
19:12:13 <iconmaster> Sadly, the specs for Crazed have been lost for a long time.
19:12:28 <Madk> that is too bad
19:12:47 <iconmaster> In retrospect, it was a crappy language anyways, so no big loss
19:13:03 <Madk> there are no crappy languages
19:13:06 <Madk> only crappy programmers
19:13:46 <monqy> I've seen a few crappy languages
19:14:20 <Madk> the progress being made in 5 minutes is good
19:14:33 <Madk> this'll probably happen in a matter of a couple hours
19:14:48 <iconmaster> `quote <Madk> #%%:]__t# <Madk> do you see that <Madk> that is great progress taking place
19:14:56 <monqy> FURScript is pretty crappy. Snack too.
19:15:15 <Madk> that was great progress
19:15:22 <iconmaster> `addquote <Madk> #%%:]__t# <Madk> do you see that <Madk> that is great progress taking place
19:15:24 <HackEgo> 493) <Madk> #%%:]__t# <Madk> do you see that <Madk> that is great progress taking place
19:15:24 <Madk> but my algorithm was kinda flawed
19:16:01 <Madk> how do I make it quote me
19:16:38 -!- pikhq has quit (Ping timeout: 240 seconds).
19:16:41 <Madk> right now this is the best program so far
19:16:42 -!- pikhq_ has joined.
19:16:43 <Madk> ^ /^>e.v <]xe^zo+^]+> *>++(-c )\
19:16:43 <Madk> (c)? @!-^*)?-..z+*)+o--x@^-!!+ o
19:16:43 <Madk> o)/o]c@c+z\]\ee<z+/c( <.>vz\ -\x
19:16:43 <Madk> ](!@< c(c!.z+\+++<ve -.(<.v/>/?\
19:16:43 <Madk> z<! /ov>]/x/++oo-]?c?!\/+! +x^+
19:16:44 <Madk> )v>o(*z>-@ox c\(c*-@x] c))vc>? o
19:16:44 <Madk> ^*/x.o\!<x] . *vx)/+oz*./<>@e/^>
19:16:45 <Madk> c @c\ .>^x*o. )@\-e^x\<\- ]^(<-
19:16:45 <Madk> ) *<^z!e\).?/+(e@(cv>\c ]. ece?
19:16:46 <Madk> c@z]/v+++++-!<!ec@o\<!/ v ox!-(<
19:16:46 <Madk> <c-+ ()^ocee])o@> \e@c^/e?o) \]
19:16:47 <Madk> * /cc@)\?o/o !^^-e /ec\>.!.>@*o
19:16:47 <Madk> )/ vo]zx \\o< cz.(@v/c>..*>\+(@!
19:16:48 <Madk> !^+x-xev@v)+vc\\]<+x?\>e *ee(z\<
19:16:59 <lifthrasiir> http://j.mearie.org/post/7462182919/spoken-number-to-decimal shameless advertisement for obfuscated code. :p
19:16:59 <HackEgo> 493) <Madk> #%%:]__t# <Madk> do you see that <Madk> that is great progress taking place
19:17:56 <Madk> lifthrasiir: that looks awesome
19:18:04 <Madk> what about the other way around
19:18:26 <Madk> ` quote Phantom_Hoover
19:18:42 <Madk> `quote Phantom_Hoover
19:18:43 <HackEgo> 151) * Phantom_Hoover wonders where the size of the compiled Linux kernel comes from. <cpressey> To comply with the GFDL, there's a copy of Wikipedia in there. \ 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>
19:18:44 <lifthrasiir> that'd be certainly a bit-packing challenge.
19:19:02 <lifthrasiir> I found the inverse direction is much more challenging and fun.
19:19:04 <Phantom_Hoover> Although it's almost always better to use `pastequotes.
19:19:34 <Madk> `addquote iconmaster <iconmaster> `quote iconmaster <HackEgo> No output. <iconmaster> Didnt think so.
19:19:35 <HackEgo> 494) iconmaster <iconmaster> `quote iconmaster <HackEgo> No output. <iconmaster> Didnt think so.
19:19:52 <monqy> `pastequotes Phantom_Hoover
19:19:53 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.30844
19:20:36 <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.
19:21:30 <HackEgo> 400) [on Sgeo's karaoke] <not_nddrylliog> Sgeo: awesome <not_nddrylliog> sounds like a japan anime sound track \ 401) [on Sgeo's karaoke] <Phantom_Hoover> That is the thing that made me into a gay vampire.
19:22:00 <HackEgo> 477) <Phantom_Hoover> I go to clean up the shrapnel from a teabag and you're discussing the definition of god out of nowhere.
19:22:05 <monqy> I think I still have sgeo's karaoke saved
19:22:05 <HackEgo> 402) <Phantom_Hoover> Yeah, I went through a whole series of existential crises when I was 8 or so.
19:22:17 <HackEgo> 413) <ZOMGMODULES> Vorpal: it's actually called Happy <ZOMGMODULES> Vorpal: Do not use it. Use Parsec. This is the wisdom of ZOMGMODULES.
19:22:25 <HackEgo> 1) <Aftran> I used computational linguistics to kill her.
19:22:40 <Phantom_Hoover> Madk, note that the quote numbering is highly unreliable.
19:22:46 <HackEgo> 42) <oklopol> i'm my dad's unborn sister
19:22:58 <Phantom_Hoover> On account of elliott being a lazy bastard and just making it the line of the file the quote is on.
19:23:15 <HackEgo> 256) <zzo38> I have plans to make the computer and one day I will do it!! (I have access to barter some people might help with these things) It is many difference from other computer.
19:24:25 <EgoBot> Unknown command () encountered
19:24:32 <Madk> this one has a ! and an l in the right places
19:24:42 <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);
19:24:47 <Phantom_Hoover> Madk, out of curiosity, how are you defining the fitness function?
19:25:33 <Madk> note: score=0 should be a perfect match
19:25:33 <oerjan> heh i think it's erroring on the newline
19:25:34 <Madk> Local score%=Abs(Len(output)-Len(desired))*1024
19:25:34 <Madk> For Local x%=1 To Min(Len(output),Len(desired))
19:25:34 <Madk> If Mid(desired,x,1)<>Mid(output,x,1) And stop=0 stop=x
19:25:34 <Madk> score:+Abs(Asc(Mid(output,x,1))-Asc(Mid(desired,x,1)))*(x-stop)
19:26:20 <Madk> for some reason I thought I'd also added a benefit for characters near where they belong
19:26:24 <Madk> but apparently not
19:26:56 <quintopia> it should be like exponential increase in value of a letter as it approaches the desired value
19:27:02 <oerjan> Madk: hamming distance >:)
19:27:19 <Madk> yeah, that was an intention to make it develop left-to-right but it's doing the opposite
19:27:25 <Madk> so that was my mistake
19:28:03 <Madk> I might want to fix that and start over, I'm not sure
19:28:05 <oerjan> Madk: i'd imagine left-to-right would be more robust during evolution
19:28:17 <quintopia> also are you really only breeding one new program per generation?
19:28:19 <Madk> that was the intention, I wasn't thinking clearly
19:28:28 <Madk> all initial programs are generation 1
19:28:38 <Madk> a new program is the greater generation of its 2 parents +1
19:29:11 <quintopia> then what actually does "100 generations per minute" mean?
19:29:36 <quintopia> also, you are caching scores for programs that are kept alive yes?
19:29:37 <Madk> in one minute the average generation increases by about 100
19:29:46 <Madk> that's faster now
19:29:55 <Madk> because I wasn't caching when that was the case
19:30:19 * oerjan detects some kind of basic
19:30:38 <Madk> blitzmax has sort of basic syntax
19:30:47 <Madk> as in, {} are replaced with words
19:30:53 <Madk> other than that it's not really basic
19:31:00 <Madk> it just looks prettier in that respect
19:31:57 <Madk> it is advertised as being basic-like but that's very misleading
19:32:18 <Madk> it's OO and just happens to have some stuff that's like basic in addition to it
19:36:54 <oerjan> ah it's descended from basic, wikipedia implies
19:36:58 -!- cheater__ has quit (Ping timeout: 255 seconds).
19:37:25 <Madk> yes, the guy who made it made a few basic languages before blitzmax
19:37:30 <Madk> so its predecessors were basic
19:39:28 <Madk> ok, how does this look for my fitness function
19:39:29 <Madk> Local score%=Abs(Len(output)-Len(desired))*1024
19:39:29 <Madk> For Local x%=1 To Min(Len(output),Len(desired))
19:39:29 <Madk> score:+Abs(Asc(Mid(output,x,1))-Asc(Mid(desired,x,1)))*(Max(Len(output),Len(desired))-Min(x,Len(desired))+1)
19:39:44 <Madk> again, the lower the score the more accurate the output
19:46:31 <quintopia> a parabolic curve towards the desired character/~?
19:49:42 -!- cheater__ has joined.
19:51:58 <olsner> 372) <Phantom_Hoover> DON'T MOCK ME WITH YOUR ABILITY TO DIVIDE BY TEN
19:58:41 -!- choochter has quit (Quit: lang may yer lum reek..).
20:15:45 -!- zzo38 has joined.
20:43:28 -!- Madk has quit (Quit: Make it idiot proof and someone will make a better idiot.).
20:50:00 -!- zzo38 has quit (Remote host closed the connection).
20:59:01 -!- aloril has quit (Ping timeout: 276 seconds).
21:14:29 -!- aloril has joined.
21:26:38 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:07:46 * Sgeo is not happy about his phone being shattered
22:08:27 <coppro> that's what you get for walking around near red mages holding an artifact
22:08:53 <Sgeo> I have no idea what that's a reference to
22:12:11 <coppro> http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=194147
22:17:36 <Phantom_Hoover> "LC is a really nice language. I wasn't able to find a modern, untyped, lazy language."
22:17:45 <oklofok> i was like o_O and it was like O_o
22:20:36 <coppro> Phantom_Hoover: locale?
22:21:38 <Sgeo> Lambda Calculus?
22:31:02 -!- DocHerrings has joined.
22:37:27 <Phantom_Hoover> I assume that by now you have given up on the Eodermdrome interpreter.
22:37:38 <Phantom_Hoover> oklofok, are the rumours of you writing an incredibly inefficient one true?
22:38:04 <oklofok> yeah, also it was asymptotically fast enough
22:38:08 <DocHerrings> Quite. There was no way to implement it nicely, so I decided not to implement it at all. :)
22:38:14 -!- elliott has joined.
22:38:25 -!- zzo38 has joined.
22:39:08 <oklofok> i think i did some small optimizations before abandoning it, there were no programs so i didn't quite feel the need to make it better.
22:39:28 <oklofok> anyway it's just a graph rewriter, i've written lots of those
22:39:51 <pikhq_> I'm really kinda surprised. I don't think anyone else has bothered setting up a Linux system which is just barely capable of building itself.
22:40:01 <Phantom_Hoover> <DocHerrings> Quite. There was no way to implement it nicely, so I decided not to implement it at all. :)
22:40:12 <oklofok> pikhq_: i think pikhq did that as well
22:40:29 <pikhq_> And no, it didn't bootstrap until just now.
22:40:29 <Phantom_Hoover> I think it's possible, but my incredible lethargy forbids me from working out further details.
22:40:37 <pikhq_> Linux also needs GNU sed.
22:40:48 <oklofok> pikhq_: i don't actually recall if you were underscoreless last time although i have a vague feeling you were
22:41:18 <DocHerrings> Personally, I made a function that converted my tag system into a generalized structure of nil values, then attempted to compare them. But it was terribly inefficient.
22:41:55 <oklofok> and graph rewriting is np-complete since as a special case you need to solve the isomorphic subgraph problem, so you can't really completely solve the problem
22:42:06 <oklofok> but i'm sure you can solve all cases that actually occur in programming
22:42:24 <Phantom_Hoover> oklofok, there's an algorithm which allows it to be done in polynomial time for fixed match subgraphs.
22:43:01 <oklofok> well yeah, given a single program, it will not be np complete to run it
22:43:04 <Phantom_Hoover> <DocHerrings> Personally, I made a function that converted my tag system into a generalized structure of nil values, then attempted to compare them. But it was terribly inefficient.
22:43:23 <oklofok> but that's kind of beside the point since you need to run more than a fixed set of programs, it becomes relevant that the polynomial grows very fast
22:44:11 <zzo38> Are there hardware description languages without arithmetic?
22:44:26 <oklofok> "<Phantom_Hoover> oklofok, there's an algorithm which allows it to be done in polynomial time for fixed match subgraphs." <<< from each node, do a depth n search where n is the number of nodes in the needle graph (as opposed to the haystack graph), obviously that's polynomial
22:44:50 <oklofok> because it's x^n where x is the size of the haystack
22:45:35 <DocHerrings> Phantom_Hoover: But how would you reliably compare all the gensyms?
22:45:40 <oklofok> i'm going to guess there's also an algorithm that works in x^(sqrt n), based on nothing really.
22:46:45 <Phantom_Hoover> DocHerrings, you'd need to use a subgraph isomorphism algorithm, which is where the inefficiency comes in.
22:46:50 -!- iconmaster has quit (Quit: Pardon me, but I have to go die in NetHack again.).
22:48:10 <DocHerrings> Phantom_Hoover: Seems to me that we have just agreed that the tag system is arbitrary. :)
22:48:17 <lambdabot> elliott: You have 3 new messages. '/msg lambdabot @messages' to read them.
22:48:28 <oklofok> so you'd call O(n) and O(n^2) polynomial time but O(n^1.5) not?
22:49:25 <oklofok> n is usually the changing thing
22:49:35 <oklofok> but not in what i just said
22:50:00 <oklofok> in x^n x is the haystack and n is the needle, and the needle is fixed
22:50:28 <Phantom_Hoover> I suppose you could have O(n^1/2) if you were doing something to a matrix.
22:50:28 <oklofok> O(x^(sqrt n)) is still polynomial, since it is in particular in O(x^ceil(sqrt n))
22:51:31 <oklofok> you have O(n^1/2) in many things
22:51:48 <oklofok> well okay not O(n^1/2) so much since usually you have to read the input
22:52:24 * oklofok tries to come up with a natural reason for that to occur...
22:52:48 <oklofok> obviously if there's some kind of squares being built that might happen
22:53:36 <oklofok> (might happen and often happens, just means you are linear w.r.t. height)
22:54:12 <Phantom_Hoover> Like, you have n integers and arrange them into a square matrix and then sum along one of the columns.
22:54:52 <oklofok> well n^3/2 occurs if you have to, for each column, do something in every cell, what you just described is O(n) if i understand correctly
22:54:55 <Phantom_Hoover> Or wait, actually, I think just arranging n integers into a square matrix is O(sqrt(n))
22:55:13 <oklofok> you have to go through the integers
22:55:34 <oklofok> if you have n integers, and you touch all of them, that's at least O(n).
22:55:48 <Phantom_Hoover> Assuming you have a square matrix as a C-style array of pointers to arrays.
22:56:12 <oklofok> well if it's already given like that then summing along say the first column would be n^0.5
22:56:42 <oklofok> you have n objects, and while summing you touch roughly every squareth of them
22:56:53 <Phantom_Hoover> You work out sqrt(n), take its ceiling m, then go along each m places in the array of ints you have and sticking the pointer to it in the matrix array.
22:57:18 <oklofok> how do you work out sqrt(n)?
22:57:32 <oklofok> are you also given n in binary?
22:58:51 <oklofok> in that case the working out takes a polynomial of log n time and is just not significant, and not spacewise either. then if you have random access and other real life computery stuff at hand, true, n^0.5 to make a matrix out of the array.
23:00:10 <oklofok> "<Phantom_Hoover> Assuming n has an upper bound, it doesn't matter." <<< that's a dangerous way of looking at things though, said the mathematician
23:00:49 <oklofok> just say there's an additional log n space wasted but it is hidden by the invisible constant in the linear term
23:01:35 <oklofok> what thing did you not understand?
23:01:50 <oklofok> do you know what O(f(n)) means by the way? i usually assume cs people have a firm intuitive grip at least
23:02:24 <Phantom_Hoover> It's not actually that I don't understand, more that I'm tired and there are too many words for me to bother with.
23:02:42 <oklofok> oh well, i'm not saying anything important.
23:03:05 <oklofok> my little toe has lost feeling again
23:03:43 <Phantom_Hoover> Also you can't be dying it's colder here than it is in Finland in summer TRUE FACT,
23:04:10 <oklofok> it is actually reeeeeeeally hot i wish i had a fan
23:04:45 <oklofok> you mean merrytime climate amirite
23:04:52 <Phantom_Hoover> I actually took my jumper off for significant periods of time.
23:05:10 <elliott> This is the summer you idiot.
23:07:20 <Phantom_Hoover> Also there are no hills; how do you not go insane it is a mystery to me.
23:07:56 <oklofok> we have upside down hills but they're full of water :(
23:08:36 <oklofok> a pair of gills and you're ready for some serious mountaineering
23:08:45 <Phantom_Hoover> Perhaps I can lend some hills to the poor folk of England.
23:09:24 <Phantom_Hoover> Oh wait no the hills have already spread to where elliott is.
23:11:25 * oklofok mutters something inappropriate about elliott's sanity and Phantom_Hoover's comment earlier
23:12:17 <Phantom_Hoover> oklofok, come now, how can elliott be insane with all those hills.
23:13:48 <olsner> oklofok: how can you want a theremin and complain about other people's sanity at the same time?
23:14:30 <oklofok> yeah theremin has got elliott, that's what reminded me
23:18:18 <olsner> hmm, elliott has the theremin and the theremin has got him, are they in a relation of mutual ownership?
23:19:14 <cheater__> sounds like a degenerated cocktagon
23:23:33 <Phantom_Hoover> I like the way the cats, when confronted with a new thing, try to eat it.
23:23:51 <Phantom_Hoover> This is essentially what a world run by cats would be like,
23:24:11 <elliott> It's a good way to handle problems.
23:24:13 <olsner> oh, he owns both cats and a theremin, that must make some complicated ownership graphs
23:24:34 <monqy> invent massage and then eat it
23:24:35 <olsner> unless it just becomes a complete graph where everyone/thing owns everyone/thing else
23:24:43 <Phantom_Hoover> oklofok, please inform olsner that you cannot have very complicated graphs with only three nodes.
23:24:55 <olsner> Phantom_Hoover: did you count the cats?
23:24:55 <elliott> you can if the connections get knotted
23:25:18 <olsner> you can make at least up to K5 based only on that video, assuming an unshown human owner
23:25:45 <olsner> there's also *another cat* added since the video was filmed
23:25:48 <oklofok> THERE ARE ONLY TWO DIFFERENT CONNECTED UNDIRECTED GRAPHS WITH 3 NODES MISTER OLSNER
23:25:56 <oklofok> one of them is extremely complicated
23:26:16 <olsner> oklofok: the graph is directed though
23:26:25 <Phantom_Hoover> oklofok, it's almost as mysterious as cDonald's Theorem.
23:27:19 <Phantom_Hoover> Perhaps the classification of these graphs could provide crucial insights into it.
23:27:54 <elliott> connecting back into itself in a manner bordering on the circuitous
23:27:59 <DocHerrings> Ho hum. Making a efficient implementation of /// is lisp is kinda fun.
23:28:04 <elliott> a sort of... one-element tangle.
23:28:57 -!- oerjan has quit (Quit: Good night).
23:29:14 <Phantom_Hoover> Wait elliott we need to make sure that oklofok understands cDonald's theorem.
23:29:17 <olsner> hmm, K5 is an undirected complete graph of 5 nodes, I wonder what the standard name is for the corresponding directed graph
23:29:30 <olsner> (that's the one I actually meant)
23:29:48 <oklofok> i dunno what cdonald's theorem is :\
23:29:58 <oklofok> but i can check if i understand it
23:30:24 <oklofok> cats are sooooooooo cute :D
23:32:20 -!- cheater__ has quit (Ping timeout: 255 seconds).
23:33:03 <oklofok> 45000000000 => 45000000001 BING
23:33:37 <olsner> oklofok: not proven to exist and be a number yet, obviously
23:37:21 <oklofok> oh cdonald's theorem is therefrom
23:37:28 <oklofok> perhaps i should've guessed.
23:37:37 -!- Phantom_Hoover has quit (Quit: Leaving).
23:40:22 <olsner> oh my ... cats that play the theremin :/ irresistable
23:44:19 -!- cheater__ has joined.
23:45:47 <oklofok> cheater__: aren't cats cute?
23:48:17 <olsner> I think cats are not cute, they just *look* cute as an adaptation to a world where looking cute brings them food
23:48:24 <cheater__> oklofok, cat is a substantial part of my GNU/Linux kernel quine
23:48:49 <oklofok> so i have my energy drink in a can
23:49:15 <oklofok> and i opened it just enough for stuff to slowly spill out through the invisible hole
23:49:27 <cheater__> oh yah? cute? say that to satan cat http://www.inquisitr.com/26619/satan-cat/
23:49:57 <oklofok> the problem with drinks is they are homogenous, why not have like compartments in the can
23:50:39 <oklofok> well you know, many drinks in one
23:50:44 <elliott> 12:45:29: <CakeProphet> yeah, after thinking about it, it obviously wouldn't work with Haskell's type system.
23:50:50 <oklofok> separated by these weird little bubbly compartments
23:50:51 <elliott> CakeProphet: see Data.Data, Data.Typeable
23:50:52 <cheater__> yeah, mix the drink and put it in the can
23:51:05 <cheater__> alternatively use fluids that don't mix
23:51:23 <cheater__> i'm sure you'd enjoy that wouldn't you WOULDN'T YOU
23:51:40 <elliott> 18:04:01: <ais523> OK, vaguely interesting BF variant: if you delete [ (and instead have all loops go back to the start of the program), is it still TC?
23:51:44 <elliott> no, all loops terminate immediately
23:52:18 <oklofok> cheater__: mixing drinks together is like taking all of mozart's works and listening to all of them at once
23:52:42 <olsner> oklofok: ... which is why drinks are usually sold in individual containers
23:52:52 <oklofok> and in general a drink - and most foods - are kind like taking a song and then just taking the average of the notes and listening to it for three minutes.
23:52:57 <olsner> what is the point of making containers with subcontainers in them?
23:52:57 <cheater__> oklofok, how did you know my hobby
23:53:26 <cheater__> simultaneous parallel audition is the best
23:53:30 <oklofok> olsner: the point is you don't have to be the composer yourself
23:53:40 <oklofok> not everyone knows what sequences of drinks taste the best
23:54:47 <elliott> 18:55:42: <Phantom_Hoover> Madk?
23:54:47 <elliott> 18:55:52: <Madk> that is my alias
23:54:47 <elliott> 18:55:58: <Phantom_Hoover> Wow, I'm surprised you got anything but a steely reception here.
23:54:47 <elliott> this is just going to be painful
23:54:50 <elliott> prediction of the next few lines
23:54:54 <elliott> <PH> YOU SEE WE ALL HATE YOU ESPECIALLY ME
23:55:53 <elliott> 18:58:41: <Phantom_Hoover> I mean, you'd hardly let a Nazi off because most of the people he killed weren't even Jews.
23:55:53 <elliott> 18:58:50: <Madk> maybe you wouldn;t
23:55:54 <oklofok> drinks should come in long long pipes that drip liquid at varying speeds, and you shouldn't just casually taste to them, you should really try to understand what the artist (the canposer?) was trying to convey when making the drinkdrink
23:56:09 <elliott> oklofok: do you have a newslatter
23:56:34 <elliott> oklofok: also when is the National Museum of Modern Drinks opening
23:56:42 <olsner> oklofok: ok, this idea is making a lot of sense to me
23:57:17 <olsner> but I would be too lazy to make it work
23:57:48 <olsner> I don't care about canposers conveying ideas, I care about drinking something that tastes good
23:57:54 <elliott> 19:02:37: <HackEgo> 478) <d1ffe7e45e interpreter> The interpreter uses an unbounded tape size, but due to technical limitations will stop being unbounded if the tap size reaches 2^63 cells.
23:58:01 <oklofok> olsner: well you know i'm a genius. anyway i like how food works tho, because it has both the element of composing and choice, it's kind of like an rpg really
23:58:03 <elliott> olsner: everything is art, but everything isn't art by default obviously
23:58:07 <elliott> you have to make things art
23:58:24 <olsner> elliott: woah, you have to make art art? yourself?
23:58:34 <elliott> olsner: no. oklofok does it for you
23:59:27 <zzo38> What are the best Free-software ARM emulators?
23:59:28 <elliott> `addquote <oklofok> mixing drinks together is like taking all of mozart's works and listening to all of them at once <oklofok> and in general a drink - and most foods - are kind like taking a song and then just taking the average of the notes and listening to it for three minutes. <oklofok> olsner: the point is you don't have to be the composer yourself <oklofok> not everyone knows what sequences of drinks taste the best
23:59:29 <HackEgo> 495) <oklofok> mixing drinks together is like taking all of mozart's works and listening to all of them at once <oklofok> and in general a drink - and most foods - are kind like taking a song and then just taking the average of the notes and listening to it for three minutes. <oklofok> olsner: the point is you don't have to
23:59:36 <elliott> `addquote <oklofok> drinks should come in long long pipes that drip liquid at varying speeds, and you shouldn't just casually taste to them, you should really try to understand what the artist (the canposer?) was trying to convey when making the drink <oklofok> olsner: well you know i'm a genius. anyway i like how food works tho, because it has both the element of composing and choice, it's kind of like an rpg really
23:59:36 <HackEgo> 496) <oklofok> drinks should come in long long pipes that drip liquid at varying speeds, and you shouldn't just casually taste to them, you should really try to understand what the artist (the canposer?) was trying to convey when making the drink <oklofok> olsner: well you know i'm a genius. anyway i like how food works tho,
00:00:17 <elliott> 19:11:24: <Madk> iconmaster
00:00:18 <elliott> 19:11:31: <Madk> I did the unthinkable
00:00:18 <elliott> 19:11:40: <Madk> I registered an account on a furry forum just to contact you
00:00:18 <elliott> 19:11:46: <Madk> I hope you appreciate this
00:00:29 <elliott> i too stalk esolang designers via furry forums
00:00:42 <elliott> 19:13:03: <Madk> there are no crappy languages
00:00:43 <elliott> 19:13:06: <Madk> only crappy programmers
00:00:43 <elliott> no, there are also crappy languages
00:00:59 <elliott> 19:14:48: <iconmaster> `quote <Madk> #%%:]__t�# <Madk> do you see that <Madk> that is great progress taking place
00:01:20 <elliott> `addquote <Madk> #%%:]__t�# <Madk> do you see that <Madk> that is great progress taking place
00:01:21 <HackEgo> 496) <Madk> #%%:]__t�# <Madk> do you see that <Madk> that is great progress taking place
00:01:33 <olsner> it's nice that both quotes includes my nick, so I will get a highlight and can relive the quotes whenever they appear
00:01:44 <elliott> 19:19:34: <Madk> `addquote iconmaster <iconmaster> `quote iconmaster <HackEgo> No output. <iconmaster> Didnt think so.
00:01:44 <elliott> 19:19:35: <HackEgo> 494) iconmaster <iconmaster> `quote iconmaster <HackEgo> No output. <iconmaster> Didnt think so.
00:01:47 <HackEgo> 493) iconmaster <iconmaster> `quote iconmaster <HackEgo> No output. <iconmaster> Didnt think so.
00:04:00 <elliott> 22:17:36: <Phantom_Hoover> "LC is a really nice language. I wasn't able to find a modern, untyped, lazy language."
00:04:01 <elliott> 22:17:42: <Phantom_Hoover> LC means exactly what you think it meas.
00:04:03 <elliott> come on though, lc is great
00:04:09 <elliott> i've linked http://tinyconcepts.com/invaders.html that that post linksto before
00:05:13 -!- DocHerrings has quit (Ping timeout: 250 seconds).
00:07:11 <zzo38> Do they exist any FPGAs that do not support any kind of design security?
00:09:49 <elliott> is this because you don't like security
00:10:25 <elliott> ?tell ais523 whats fpga design security
00:11:58 <oklofok> energy drink so good but im gon be up all night :((
00:12:32 <cheater__> i've spent the last 8 hours wading through german criminal law
00:12:43 <zzo38> It is because I don't want design security. I want it can be read/write without a special software, without keys, etc.
00:13:04 <oklofok> well it's 3 am and i need about 12 hours of sleep
00:13:25 <cheater__> are you recovering from serious trauma
00:13:28 <oklofok> because i have a very, very large brain.
00:13:36 <oklofok> which works so really really hard.
00:14:17 * cheater__ cracks a walnut with oklofok's cranium
00:14:31 <oklofok> my brain so big i can think anything.
00:14:49 <cheater__> can your brain think something your brain couldn't think?
00:14:49 <oklofok> come on gimme something and i'll think about it
00:15:05 <oklofok> ...i think i'm gonna need more than my usual 12 hours tonight :\
00:15:49 * cheater__ tears oklofok out of the loop, but oklofok loses a couple random limbs.
00:16:11 <oklofok> well all my important limbs are numb anyway so who cares.
00:16:13 -!- Gregor has set topic: Does steak love lettuce? This question is implacably hard to answer. Does an electron love a proton or a neutron? Does a man love a woman or, to be precise, does Bill love Diane? The response to this question is: no! He is obsessed and infatuated with her. He is loony and crazy about her. That is not the love of steak and lettuce, of electron and proton and neutron. | Logs: http://codu.o.
00:16:58 <cheater__> you've got a nice threesome going there
00:17:04 * oklofok was so sure that was zzo38's topic
00:17:08 <Gregor> zzo38: I can see there :P
00:17:20 <zzo38> But I did see that quotation in the book titled "There Are Two Errors In The The Title Of This Book"
00:18:01 -!- Gregor has set topic: Does steak love lettuce? Does an electron love a proton or a neutron? Does a man love a woman or, to be precise, does Bill love Diane? No! He is obsessed and infatuated with her. He is loony and crazy about her. That is not the love of steak and lettuce, of electron and proton and neutron. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
00:18:54 -!- elliott_ has joined.
00:18:54 -!- elliott has quit (Read error: Connection reset by peer).
00:18:58 <oklofok> they used that standard article trick but i can't see the other one
00:19:43 <zzo38> The second error is the number of errors.
00:21:28 -!- Wamanuz has quit (Remote host closed the connection).
00:23:41 <zzo38> The thing is I am trying to find some FPGA that is known exactly the format used to program it.
00:24:26 -!- pikhq has joined.
00:26:26 -!- pikhq_ has quit (Ping timeout: 252 seconds).
00:35:35 -!- oklopol has joined.
00:37:17 -!- oklofok has quit (Ping timeout: 250 seconds).
00:46:46 <zzo38> I found that the Atmel FPSLIC FPGA documentation is available and an open source implementation of the programs for dealing with it are available. However, how can you purchase this device?
00:48:23 -!- CakeProphet has quit (Ping timeout: 255 seconds).
00:51:40 <Sgeo> Letting a phone with a glass screen slip underneath a couch pillow is a bad idea.
00:54:24 -!- Wamanuz has joined.
01:05:15 <oklopol> what if i don't sleep and just go to work now
01:05:28 -!- pikhq has quit (Read error: Operation timed out).
01:06:35 -!- pikhq has joined.
01:06:38 <elliott_> Building attoparsec-0.9.1.1...
01:06:38 <elliott_> [1 of 9] Compiling Data.Attoparsec.Zepto ( Data/Attoparsec/Zepto.hs, dist/build/Data/Attoparsec/Zepto.o )
01:07:22 <monqy> is synchronicity the right word for here and now
01:09:41 -!- FireFly has quit (Quit: swatted to death).
01:10:31 <elliott_> Message Nothing (Command "ERROR") ["Closing Link: 127.0.0.1 (Connection timed out)"]
01:10:31 <elliott_> Message (Just (ServerPrefix "niven.freenode.net")) (Command "NOTICE") ["*","*** Couldn't look up your hostname"]
01:10:35 <elliott_> OMG ITS THE WRONG WAY AROUND YOU SHITHEAD :(
01:11:30 -!- DocHerrings has joined.
01:11:31 <monqy> ante zepto bot?????
01:12:33 <elliott_> monqy: good idea but no i am taking a break from ante-zepto to let certain issues in its regard simmer through my mind so that the most zepto solution can be attained
01:21:27 -!- zzo38 has quit (Remote host closed the connection).
01:22:32 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
01:33:24 -!- azaq23 has joined.
01:51:12 <elliott_> 02:38:23: <Sgeo> How far do companies typically cyberstalk their employees?
01:51:12 <elliott_> 02:38:42: <Gregor> To the VERY BRINK OF DEATH
01:51:13 <elliott_> 02:39:06: <Sgeo> If I mention on my resume some of the projects I've worked on, they may trace that to the name "Sgeo", and from there to the fact that I'm an atheist. Legally, they can't not hire me for that, but if I don't know that that's the reason...
01:52:48 <Gregor> I'm pretty sure that's super-olde, and I'm ALSO pretty sure that they CAN not hire you on religious grounds, perhaps depending on the particular business.
01:53:05 <monqy> the churching business
01:53:26 <monqy> christian greeting cards and plushies business
01:55:52 <elliott_> Gregor: Super-olde = last May :P
01:56:14 <Gregor> Good lawde that's olde.
01:56:16 <elliott_> Gregor: And I'm not too familiar with your strange American customs but is that kind of sentiment rampant in fucking New York? X-D
01:56:43 <Gregor> It would only be common in businesses such as the ones monqy mentioned :P
01:57:52 <elliott_> 02:50:53: <Sgeo> http://enphilistor.50megs.com/irtc.htm SQUEE
02:00:10 <elliott_> 04:36:09: <Gregor> You left ... speakeasy ... for comcast.
02:00:29 <Sgeo> Go watch all of the Rusty animations
02:16:07 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
02:16:18 -!- rodgort has joined.
02:22:00 <pikhq> ... Someone would leave Speakeasy?
02:22:52 <pikhq> Except maybe a felatotron 5000?
02:26:58 <Gregor> So who wants to know how to tie a (glorious) Richards knot? :P
02:32:57 <pikhq> The fuck? This RAR is smaller uncompressed.
02:33:08 <pikhq> RAR: Negative compression.
02:39:15 <Sgeo> pikhq, has to happen sometimes
02:39:30 <Sgeo> Even if it shouldn't have to happen by more than a bit
02:44:42 <Sgeo> Note: Do not mention diverse double-compiling to someone who wants to recompile all the software on his system to "keep devils out"
02:46:08 <elliott_> Sgeo: just tell em about trusting trust
02:46:14 <elliott_> and let them rip out their own eyeballs in fear
02:46:20 <Sgeo> elliott_, too late
02:46:56 <elliott_> youre not allowed to tell us about crazies without showing :(
02:47:02 <Sgeo> http://pastebin.com/KWJzdW9D
02:47:50 <elliott_> <elliott_> w e w i l l f i n d y o u
02:48:13 <elliott_> * Topic for #jesus is: https://github.com/chan-jesus :: Encouragement and prayer, love for Jesus Christ, open source development. Courtesy required, charity and patience appreciated. This channel is G-rated. biblebot format is: @bible book chapter:verse
02:48:22 <elliott_> are you trying to deconvert them all please say no
02:49:14 <Sgeo> Just like to watch and discuss sometimes
02:49:41 <elliott_> im sure you talk to the christian programmers as equals to better understand their religious beliefs
02:51:00 -!- BeholdMyGlory has quit (Remote host closed the connection).
02:51:03 <elliott_> so starting from that github page
02:51:09 <elliott_> Put my frozen GF mini-Jesus into my pyx & going to mass at St Iggy. Alert the media!
02:51:13 <elliott_> @MeredithGould hopefully that's low-gluten and not gluten-free, otherwise nothing would happen when the priest consecrates it :-/
02:51:20 <elliott_> .@michaelsbradley Teeny % of gluten, enuff for Jesus to be zapped in. ;-)
02:51:24 <elliott_> just enough gluten for jesus to be zapped in
02:51:49 <monqy> im wowing silently
02:52:07 -!- elliott_ has set topic: Just enuff gluten for Jesus to be zapped in. ;-) | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
02:52:25 <elliott_> i like the worried face on the middle tweet
02:52:34 <elliott_> I sure hope you're not missing out on your daily recommended amount of Jesus :-/
02:52:38 <Gregor> elliott_: Can has link to that tweetthread?
02:52:55 <elliott_> http://twitter.com/#!/michaelsbradley second tweet on there
02:53:08 <elliott_> "new twitter" makes linking to things impossible sry
02:53:21 <elliott_> well http://twitter.com/#!/michaelsbradley/status/90169871169622016 for the record but it's a pain to navigate that way
02:54:05 <elliott_> "@CrypticSwarm also some crazy Func Prog thing called "join calculus" & Perl6's junctive operators..Func React turns out to be a compsci lens"
02:54:51 <Gregor> elliott_: I would be laughing if I wasn't crying.
02:55:25 <elliott_> my tolerance for religious beliefs ends at people thinking that the priest consecrating the eucharist literally turns it into jesus flesh
02:55:50 <Sgeo> elliott_, is that a quote?
02:56:01 <monqy> cannibalisms cool if its jesus
02:56:11 <monqy> or is this god jesus not man jesus
02:56:24 <Gregor> SITES WHICH STEAL "/" AND TURN IT INTO THEIR SEARCH BAR: WORST EVER
02:56:36 <elliott_> he;lp i need a balanced trinity diet
02:57:00 <Gregor> Twitter seriously sucks arse >_<
02:57:14 <elliott_> the new twitter interface is amazing
02:57:20 <elliott_> its like a crash course in what the fuck were you thinking
02:58:17 <pikhq> Why the *fuck* would you want to make it impossible to hotlink to your site?
02:58:45 <pikhq> Nothing about that screams "good idea". Everything screams "bad idea and fuck you."
02:59:06 <pikhq> elliott_: I bet you love Catholicism.
03:13:53 -!- pingveno has quit (Ping timeout: 260 seconds).
03:15:17 <Sgeo> elliott_, you actually msg'd IASON
03:18:55 <elliott_> paste what lead you to that information
03:19:14 <Sgeo> How about no, I don't feel like doing this for your amusement.
03:19:27 <elliott_> so only your amusement comes into consideration :(
03:19:32 <monqy> what about for my amusement
03:20:06 <Sgeo> elliott_, your nastiness to someone is ... well, mean. I can't support it.
03:20:26 <monqy> i just laugh behind backs
03:20:32 <elliott_> it sure would be cool if you stood up for yourself in situations where it actually mattered instead of just in situations where it doesn't matter, Sgeo
03:26:05 <elliott_> oh what, someone who i was once sort-of-in a small interweb community with is now famous
03:26:19 -!- Sgeo has left ("Leaving").
03:26:20 <monqy> congratulations, someone
03:26:27 -!- Sgeo has joined.
03:26:36 <coppro> 23:19:54 < elliott_> it sure would be cool if you stood up for yourself in situations where it actually mattered instead of just in situations where it doesn't matter, Sgeo
03:27:17 <elliott_> i love irc quote towers can we have one??
03:27:56 <Sgeo> coppro, hmm, what about that?
03:28:15 -!- zzo38 has joined.
03:28:35 <elliott_> oh what, the guy's comic is now big, weird
03:28:40 <zzo38> Thanks for correcting the topic message; now it is not too long anymore.
03:29:07 <augur> happy tesla day! :D
03:30:21 <Gregor> *tesla-coil related innuendo*
03:31:12 <pikhq> Tesla: best thing to ever happen to Colorado Springs.
03:35:20 -!- azaq23 has quit (Ping timeout: 255 seconds).
03:35:46 <elliott_> oh, pratchett's took another step to the grave?
03:37:28 <Sgeo> elliott_, :( link?
03:37:57 <elliott_> http://blastr.com/2011/06/terry-pratchett-begins-fo.php
03:42:05 -!- cheater__ has quit (Ping timeout: 255 seconds).
03:43:27 <elliott_> Sgeo: i meant i was pointing you to that link
03:43:50 <Sgeo> I just didn't say anything about it
03:43:53 <monqy> maybe if you weren't a keyboard-cripple you wouldn't confuse poor sgeo
03:44:38 <monqy> so when's the new version of whatever you're waiting for to get a new keyboard going to come out
03:45:00 <elliott_> this month, and its not etting a new keyboard
03:45:03 <elliott_> i have to send the whole laptop in
03:45:09 <elliott_> so since i'll want to wipe it anyway before i send it in
03:45:15 <elliott_> because i doubt they'll like it booting into linux
03:45:24 <elliott_> so that i can at least make something useful out of it
03:45:27 <elliott_> i.e. an upgrade of my other os
03:46:45 <monqy> why wouldn't they like it booting into linux are they meanies
03:47:36 -!- pingveno has joined.
03:47:45 <elliott_> i dont want to read the warranty but i suspect youre not allowed to complain about your keyboard breaking if you install linux
03:48:19 -!- Lymee has quit (Ping timeout: 240 seconds).
03:51:50 -!- azaq23 has joined.
03:52:33 -!- Lymee has joined.
03:54:06 -!- cheater__ has joined.
03:54:19 <zzo38> elliott_: It should depend whether it is physical damage on outside or if it stopped working.
03:54:52 <monqy> but that's complicated
04:00:38 <Sgeo> Note to self: When someone thinks that their mouse has a virus, do NOT speculate on the possibility of manufacturing a trojan mouse
04:01:12 <elliott_> i wish that channel was logged
04:05:16 <pikhq> Sgeo: It's entirely possible.
04:05:21 -!- pingveno has quit (Read error: Operation timed out).
04:05:25 <pikhq> Simply wire a USB flash drive into the mouse.
04:07:34 <Sgeo> <Sgeo> IASON, at some point, somewhere along the line, you need to trust someone. It's theoretically possible to put some backdoor into the processor, but that's not a serious possibility
04:07:34 <Sgeo> <Sgeo> And it's nearly impossible for you to prevent it
04:07:40 <Sgeo> <IASON> Sgeo: thats why im buying a sparc next
04:07:41 -!- pingveno has joined.
04:09:52 <pikhq> Because Sun is more trustworthy than Intel?
04:10:17 <elliott_> pikhq: some sparcs are open source.
04:10:41 <pikhq> *cough*trusting trust*cough*
04:11:09 <elliott_> cough i can parrot irrelevant things too cough?
04:11:12 <elliott_> trusting trust is irrelevant here
04:11:33 <pikhq> elliott_: Verilog code has to be compiled.
04:12:03 <pikhq> The compiler itself could have a hack in it, perhaps even by a trusting trust attack on the C compiler.
04:12:24 <Sgeo> Trusting trust is defeatable, in theory
04:12:49 <Sgeo> Not sure how you'd do DDC with Verilog
04:13:26 <pikhq> Not to mention, the SPARC itself would have to have an actually trustworthy design, as (presumably) would the FPGA.
04:14:15 <pikhq> If you're that fucking paranoid, your only option is to start with transistors. And ensure no other human can access it.
04:14:26 <pikhq> By getting yourself to Alpha Centauri. And only you.
04:16:11 <pikhq> And then hope the universe isn't fucking with you.
04:16:19 <monqy> how do you trustworthily get there
04:28:05 -!- copumpkin has changed nick to Phillipa.
04:28:35 -!- Phillipa has changed nick to Guest28613.
04:32:03 <zzo38> You can make any USB device with a virus without too much difficult. I do know some ways of preventing it by modifying the Linux kernel and stuff.
04:33:32 -!- Guest28613 has changed nick to copumpkin.
04:35:51 <zzo38> Make it to not automatically recognize or activate any USB device unless all of these conditions hold: * It is a keyboard * No other keyboards (not even PS/2) are connected * Nobody is logged in on a serial terminal
04:36:18 <Sgeo> What if you want to be able to use mice/
04:36:41 <Sgeo> Also, won't stop a keyboard that transmits every keystroke... somehow
04:36:52 <zzo38> Of course this cannot prevent radio viruses.
04:39:18 <zzo38> If you want to use mouse, I propose it must meet all these conditions: * It is connected at boot time * A USB keyboard is also connected at boot time * No PS/2 keyboard or PS/2 mouse is connected * The operating system is configured to run a GUI by default
04:39:25 <elliott_> 22:12:36: <Phantom_Hoover> Brains in jars or translation?
04:39:25 <elliott_> 22:12:44: <Phantom_Hoover> Guess which one I want to talk about.
04:39:26 <pikhq> zzo38: Alternately, you could just remove the USB stack.
04:39:38 <zzo38> In other cases, you must use commands to activate them manually.
04:40:47 <zzo38> And if multiple USB keyboard/mouse are connected at boot time while no PS/2 keyboard/mouse are connected, it will also activate all of them automatically.
04:42:33 <zzo38> And one more: USB keyboard/mouse that have keys or mouse buttons keld down at boot time which are ones that the operating system does not know how to deal with, are not automatically activated.
04:42:45 <Sgeo> I wish I could get this person some mental help
04:43:13 <elliott_> yeah shove them in an institution. that works well.
04:43:45 <zzo38> If you want a USB file system, connecting a mouse after it is booted, or a keyboard after it is booted if you already have a keyboard, USB printer, USB audio, etc, then you must type the commands to activate them manually.
04:44:08 <zzo38> But the USB port would still provide power to inactive devices.
04:44:32 <Sgeo> Oh, he was referring to fluoridation. Which is stupid, but at least there's a thought process other than "Everyone's trying to kill me"
04:45:16 <Sgeo> (in regards to his belief that they poisoned the tap water)
04:45:58 <zzo38> What do you think about these ideas for security of connecting USB devices?
04:48:19 <pikhq> zzo38: Seems like a decent scheme.
04:48:51 <pikhq> Aaah, fluoridation.
04:48:54 <pikhq> Cursed by the stupid.
04:49:10 <pikhq> Meanwhile, I live in a location where the water needs defluoridation.
04:54:43 <zzo38> These USB security scheme might make the computer a bit more difficult to use, but I don't care. You can still easily use the commands to activate it if you know how.
04:55:11 <zzo38> Now I invented a new word "radio virus".
04:56:03 <zzo38> Even devices such as SIM cards that might not actually have direct radio transmitter, are capable of radio viruses.
04:57:26 <zzo38> They could use a subliminal code to leak your address book to your service provider.
05:00:59 <zzo38> Even if a keyboard (USB or not) has no radio transmitter, it can still have a radio virus that retains all information so that when you resell it or return it (it could be designed to break after a few years so that you will return it to the manufacturer for warranty repair!) they can steal that information!
05:03:53 <zzo38> Do you think any manufacturers have actually done any of this stuff?
05:09:29 <elliott_> "I believe in a literal six-day creation event where the universe was spoken into existence by God six to ten thousand years ago. I don't believe this for scientific reasons (though significant known scientific evidence corroborates with this origin hypothesis)"
05:11:20 * elliott_ waits for pikhq to see that (there is a specific reason)
05:14:24 <zzo38> What scientific evidence?
05:14:26 <elliott_> guess who wrote that pikhq, no googling
05:14:32 <elliott_> zzo38: there is none, this guy is deluding himself :P
05:14:52 <pikhq> elliott_: I got nothing, but *wince*
05:15:18 <zzo38> There may be a few kinds of philosophical evidence (for some possible ways of defining "evidence", probably not the standard ways though)
05:15:44 <pikhq> elliott_: Fucking hell.
05:15:55 <elliott_> pikhq: his blog is literally the best i cant stop reading its like a trainwreck in slow motion
05:16:01 <elliott_> that's from the series "understanding a conservative christian"
05:16:17 <elliott_> the post literally blames nazism on darwinism
05:16:48 <pikhq> Y'mean "Gott Mit Uns" Nazis?
05:18:17 <elliott_> "As an example, consider the Nazis of World War II era. Collectively as a culture they embraced a morality which permitted the murder of millions of innocent individuals. Few would agree with their callous disregard for human life, yet they were acting well within the (non-)limits allowed by darwinist/secular humanist morality."
05:18:24 <elliott_> wait he's not even blaming it on darwinism
05:18:32 <pikhq> He's blaming it on secular humanism.
05:18:33 <elliott_> hes just saying that darwinism is ok with nazis
05:18:39 <elliott_> "Not so with darwinist-based atrocities (the eugenics movement, nazism)"
05:18:42 <zzo38> We now have evidence that Darwin was wrong (although that doesn't mean evolution in general is wrong)
05:18:49 <elliott_> oh man he namedrops moral relativism A+
05:19:20 <pikhq> elliott_: Probably some minor nitpick that nobody cares about.
05:19:32 <pikhq> zzo38: Nobody claims Darwin was 100% correct, or even *cares if he was*.
05:19:51 <zzo38> Some things Darwin wrote do not match the actual scientific evidence of evolution.
05:19:57 <elliott_> oh come on don't be hostile to people just because they dared insult the great darwin
05:19:58 <pikhq> The general concept works. Many of the details work. That's how science works.
05:20:19 * Sgeo is also curious
05:20:33 <pikhq> elliott_: I'm not sure of the exact detail, but I'm going to take a guess that it has something to do with his lack of knowledge of genetics.
05:20:42 <pikhq> (which literally did not *exist* at the time he wrote)
05:20:42 <elliott_> how about you let the person who does know answer
05:20:49 <zzo38> pikhq: OK. Of course even other things in science we correct over time. This is not the exception.
05:21:32 <pikhq> Anyways. Nazis, secular humanism? They were about as Catholic as you could get without being the Pope.
05:22:16 <pikhq> (and one particular Nazi is as Catholic as you can get.)
05:23:22 <Sgeo> zzo38, so what did Darwin get wrong?
05:23:41 <zzo38> Unfortunately I forget the details.
05:24:03 <zzo38> But pikhq might be correct that it has to do with his lack of knowledge of genetics. I am not sure.
05:26:05 <pikhq> Hmm, oddly enough the one thing someone from that era would have been *most* likely to screw up, he didn't.
05:26:17 <oklopol> i finished my article in a few hours and now i'm wondering how to spend the rest of my workday
05:26:35 <Sgeo> pikhq, hmm, what?
05:26:41 <pikhq> He deemed that all human beings were of the same species and that if races were even useful markers at all, they were mere variants or sub-species.
05:26:54 <oklopol> turns out you have to add (G surjective => G identity) since that was not implied by what i had and xor was a counterexample
05:26:59 <pikhq> Which was in stark contrast to the prevailing view that, say, Africans were literally sub-human.
05:27:27 <elliott_> erm darwin was actually pretty racist iirc
05:27:33 <elliott_> istr something about ~primitive negroes~
05:27:56 <zzo38> What is the significance if Africans are literally sub-humans? That you cannot perform medical advice?
05:27:56 <pikhq> elliott_: By modern standards, perhaps.
05:28:42 <pikhq> elliott_: By standards of the day, he could have been lynched for being too progressive in some areas.
05:29:03 <elliott_> what does that even mean, he may have been progressive for the time, but saying he wasn't racist is disingenuous
05:29:33 <pikhq> What I'm saying is, he was nowhere near as racist as his contemporaries. Though literally everyone was racist then.
05:30:07 <elliott_> http://esolangs.org/wiki/Image:Surface_logo.png is this an album cover or a language logo
05:30:13 <zzo38> OK, now maybe I can understand.
05:30:22 <monqy> surface the album cover
05:30:26 <monqy> by whatever that shape is
05:30:44 <Sgeo> 2d grid on a sphere?
05:32:31 <monqy> I don't get why madk makes logos for all his languages and does them all in blitzbasic and they're all kind of samey in a way I can't quite pinpoint with words
05:32:50 <monqy> where by does them I mean implements them
05:33:14 <elliott_> there's something about american high school that introduces that kind of bored mechanical timewasting in people
05:33:24 <elliott_> i have observed this, like, THREE times, so it must be true.
05:34:02 <Sgeo> Am I a bored mechanical timewaster?
05:34:30 <elliott_> why do you even ask questions like that
05:34:31 <pikhq> elliott_: Most probably.
05:34:35 <elliott_> why would anyone ask questions like that
05:34:52 <elliott_> asking that question practically guarantees you're going to get an answer you don't like
05:34:54 <pikhq> elliott_: American high school is designed to make you think bored mechanical timewasting is "adult".
05:35:08 <Sgeo> oklopol is witnessing the Christian in-fighting in #jesus
05:35:14 <elliott_> pikhq: except that doesn't have any relation really because this is _pastime_
05:35:23 <elliott_> and esolangs aren't particularly conforming
05:35:30 <elliott_> Sgeo: make a big deal out of me messaging him
05:35:44 <Sgeo> No, he didn't.
05:35:51 -!- elliott_ has changed nick to botanq.
05:36:03 <monqy> I don't want to know
05:36:13 <botanq> i made it up on the spot
05:36:22 <pikhq> Lazy K glued to a shell: best esolang ever?
05:36:23 <botanq> remind me to change it back btw
05:36:30 -!- elliott has joined.
05:36:32 -!- botanq has changed nick to elliott_.
05:36:44 -!- elliott has changed nick to botanq.
05:36:51 <Sgeo> elliott_, whatever you're about to do sounds mean
05:37:12 -!- elliott_ has changed nick to elliott.
05:37:19 -!- elliott has quit (Changing host).
05:37:19 -!- elliott has joined.
05:37:57 -!- botanq has quit (Client Quit).
05:38:05 -!- elliott_ has joined.
05:38:08 -!- elliott_ has changed nick to botanq.
05:38:23 <elliott> -ChanServ- [#jesus] Welcome! may the Lord bless you and your family abundantly!
05:38:27 -!- botanq has left.
05:38:41 <elliott> oklopol: anything interesting so far????? this is like sports
05:39:37 <elliott> Sgeo: i was promised infighting there is no infigthing
05:39:47 <Sgeo> You kind of missed it
05:40:01 <elliott> i demand logs for my effort :(
05:40:15 <Sgeo> Probably if you mention Catholicism it would trigger it
05:40:40 <Sgeo> Hold on, going to pasta a log
05:40:55 <Sgeo> http://pastebin.com/SA0GALzf
05:41:15 <oklopol> "<elliott> oklopol: anything interesting so far????? this is like sports" <<< ?
05:42:08 <elliott> <luke-jr> oklopol: there are a few Christians here, but far more heretics and pagans
05:42:08 <elliott> <luke-jr> oklopol: such as Eliyahu, IASON, and Free-man
05:42:08 <Sgeo> elliott, a Catholic. Considers non-catholics to be heretics
05:42:18 <elliott> <IASON> luke-jr: i agree only a devil would demand not to burn heretical books
05:42:21 <oklopol> they're just kidding around.
05:42:43 <monqy> elliott: youre a devil
05:42:46 <Sgeo> brainproxy is a sane Catholic
05:42:57 <Sgeo> But isn't exactly awake right now I guess
05:43:06 <pikhq> Sgeo: He believes in something logically inconsistent.
05:43:13 <elliott> oh my god pikhq i knew you were about to fucking butt in
05:43:24 <elliott> the chances that you dont have some inconsistent belief are about 0
05:43:33 <elliott> everyone compartmentalises
05:43:38 <zzo38> I read that the person who invented the BBL/Abundance system invented the word "Kristians"
05:43:38 <pikhq> He also self-identifies primarily by that belief.
05:43:59 <pikhq> elliott: Sorry, I was assuming, thereby making a potential ass of myself.
05:44:39 <elliott> it just really sucks to dismiss people because they happen to be religious, it's pointlessly divisive imo
05:45:08 <elliott> it is not The Enemy of rational thinking outside of extremism, there are far more pertinent day-to-day irrationalities that are more improtant
05:45:22 <pikhq> It's so very easy to do in a ridiculously extremist society, though.
05:45:35 <elliott> Sgeo: so um is hash jesus like a weird extremist channel this is bizarre
05:45:48 <Sgeo> There are some non extremists there
05:45:59 <pikhq> I basically cannot get elected to a public office in my country because I do not believe in the existence of a deity.
05:46:07 <oklopol> elliott: you have a point, but i'm sure you also agree that everyone with any kind of religious beliefs is completely retarded and wrong and stupid and should be killed.
05:46:22 <elliott> oklopol: oh definitely obviously.
05:46:24 <elliott> pikhq: yeah and you can't get elected as president of zimbabwe because you're not robert mugabe
05:46:31 <elliott> pikhq: third world countries, have fun
05:47:10 <elliott> there has to be a bible verse
05:47:14 <elliott> saying that all people are fallible
05:47:29 <pikhq> "For all have sinned and fallen short of the glory of God" is close, at least.
05:47:57 <elliott> im probably really bad at being christian
05:48:01 <elliott> its not something i have experience with
05:48:06 <elliott> lets see how long until they RAT ME OUT
05:48:26 <elliott> was picking the kjv translation right i figured there might be some crazies who demanded on it in there
05:48:37 <elliott> dammit, beaten by bible verses
05:48:41 <pikhq> Keep in mind that people just shy of Westboro Baptist Church levels of crazy are considered *normal* in American society. My tendency to dismiss people because they're religious should be viewed in that light.
05:48:49 <elliott> um um gotta save face WOW how do you remember all the verses????
05:48:52 <elliott> being christian is thirsty work
05:49:14 <pikhq> elliott: It's only maybe a few paragraphs that get cited over and over and over again.
05:49:27 <elliott> why would an infallible man sin again
05:49:50 <pikhq> I'd estimate maybe 0.5% of Christians have actually read a significant portion of the Bible.
05:49:57 <monqy> i havent been paying attention and my head hurts
05:50:28 <zzo38> There are some things in the Bible I agree, including that no person is good. Nevertheless, you can say some people are good, by opinion and by relative and by other purposes.
05:50:29 <elliott> <luke-jr> botanq: also, if "all" were absolute there, it would include Jesus
05:50:32 <elliott> i need a verse about jesus just being a man or something
05:50:38 <elliott> quick guys quick exclamation marks
05:51:01 <monqy> didn't jesus do bad stuff one time because some dudes set sold stuff in a temple or something
05:51:02 <pikhq> elliott: Good luck; the bits that got canonized either claim he was *divine* or are ambiguous.
05:51:06 <Sgeo> There's the one where he says why do you call me Good, only God is good
05:51:13 <pikhq> monqy: No, that was considered Good.
05:51:13 <zzo38> However, it is good thing trying be good, you can learn more good stuff than other people maybe
05:51:16 <pikhq> monqy: Not just good, Good.
05:51:17 <elliott> <botanq> luke-jr: if one is still a man, and this causes one to sin -- what is it that causes one to sin, that is being a man?
05:51:17 <elliott> <botanq> is it not fallibility?
05:51:19 <elliott> got my pretentious lingo on
05:51:34 <pikhq> oklopol: That's nearly universally held doctrine.
05:51:53 <elliott> <Sgeo> There's the one where he says why do you call me Good, only God is good
05:51:59 <elliott> i dont want them to htink im crazy
05:52:01 <elliott> but they might be crazy about that
05:52:06 <Sgeo> http://bible.cc/mark/10-18.htm
05:52:16 <elliott> they have fancy definitoins
05:52:25 <Sgeo> "And Jesus said unto him, Why callest thou me good? there is none good but one, that is, God."
05:53:03 <Sgeo> I asked about it once, or maybe I googled it? Saw some stuff about how it's saying "See how you're calling me good? Think about why that is"
05:53:04 <monqy> do they hate botanq yet
05:53:20 <pikhq> oklopol: I mean, shit, even the Eastern Orthodox holds that. And these are people who hold that everyone will go to heaven, literally everyone.
05:53:31 <elliott> pikhq: that's a nice position
05:53:37 <elliott> i mean, nicer than most christian positions on the afterlife
05:53:49 <monqy> hehehe christian positions on the afterlife
05:53:51 <oklopol> pikhq: but everyone else sins?
05:54:07 <zzo38> And then there are people who hold that heaven is not a place, but a feeling.
05:54:08 <pikhq> elliott: The non-Christians will just have more work to become like God than the Christians is all. No big.
05:54:20 <oklopol> like even people who just die 5 minutes after being born?
05:54:48 <pikhq> (they hold that your entire mission is to become more like God; you will be doing this in life *and* the afterlife. If you don't convert before death, you just have more work ahead of you is all.)
05:55:01 <Sgeo> http://uncyclopedia.wikia.com/wiki/UnNews:%22Genetic%22_disorders_shown_to_be_the_fault_of_the_baby
05:55:25 <pikhq> oklopol: Entire libraries could be filled with the apologetics on that.
05:55:35 <elliott> playing minecraft and having fun with christians on irc at seven am
05:56:06 <oklopol> okay #jesus is way over my head atm
05:56:09 <zzo38> You do not go anywhere when dead you do not walk. Other people can move you. You can be destroyed or eaten or cut in half.
05:56:16 <elliott> <luke-jr> "Books which openly oppose the teaching of Christ are to be burned." -Pope Pius VII, Diu Satis, infallible
05:56:24 <elliott> pikhq: is book burning a current catholic doctrine
05:56:33 <pikhq> elliott: No. I'm not sure how it's not.
05:56:44 <monqy> oh right catholics believe popes are infallible don't they huh
05:56:47 <monqy> what happens when popes disagree
05:56:57 <oklopol> elliott: you can't have life choices, you're too youn
05:57:07 <oklopol> life choices are for adults :\
05:57:07 <zzo38> Poples are not considered infallible unless there is discussion in the Vatican about it as well to almost prove it.
05:57:20 <pikhq> monqy: Though they're only infallible on matters of doctrine.
05:57:25 <elliott> pikhq: was that statement by pius ex cathedra ??? i am not sure why i expect you to know
05:57:39 <pikhq> elliott: I wouldn't know. I've never been Catholic.
05:57:57 <elliott> Sgeo: so free-man is one of the loony catholics?
05:58:18 <elliott> less loony than the others
05:58:21 <zzo38> Popes say a lot of things that are not considered infallible, and they can disagree about these things, and do disagree about these things.
05:58:30 <Sgeo> He's a loony non-catholic
05:59:10 <elliott> wow he wants all books that say wrong things to be burned
06:00:03 <elliott> Sgeo: hahahaha oh man he is cool
06:00:07 <elliott> is he from the middle ages
06:00:30 <pikhq> elliott: This is not uncommon.
06:00:53 <elliott> pikhq: i think hes saying he burned satans bible once
06:01:18 <pikhq> What, LaVey's Satanic Bible?
06:01:34 <elliott> is "that book by LaVey" an ok euphemism
06:01:36 <elliott> he seems very touchy about it
06:01:43 -!- Lymee has quit (Read error: Connection reset by peer).
06:02:05 <pikhq> Though it's unlikely he knows about it. :P
06:02:09 <elliott> <Free-man> i dont know who authd it; i didnt read it.
06:02:13 <elliott> i think he burned The Satanic Bible
06:02:16 <elliott> thinking it was actually satan's bible
06:02:22 <elliott> i wanna have him as a pet :{
06:02:44 <elliott> <luke-jr> oklopol: of course
06:02:45 <elliott> <luke-jr> oklopol: freedom of speech is wrong
06:02:45 <elliott> <luke-jr> oklopol: freedom of religion is outright heresy
06:02:50 <elliott> <Free-man> botanq when i saw the book on the for-sale table at a library, i paid the 10 cents for it, and then burned it.
06:04:02 <elliott> Sgeo: do these guys even program
06:04:15 <Sgeo> elliott, I think luke-jr does a little.
06:04:27 <elliott> Sgeo: I take it amigojapan is non-religious
06:04:30 <monqy> catholic programming no devils allowed
06:04:41 <pikhq> elliott: I actually know that for a fact.
06:04:49 -!- Lymee has joined.
06:04:50 -!- Lymee has quit (Changing host).
06:04:50 -!- Lymee has joined.
06:04:56 <pikhq> elliott: amigojapan is non-religious.
06:05:15 <pikhq> Ran into him here and there on freenode.
06:05:27 <pikhq> So, not *well*, but we've talked.
06:06:20 <elliott> free-man is a very stupid human being
06:06:23 <pikhq> Mostly ##japanese when I was there for a couple months, IIRC.
06:06:29 <elliott> * [Free-man] (~b@c-68-56-234-19.hsd1.fl.comcast.net): ConspiracyLover
06:07:00 <monqy> good name for a good person
06:07:28 <oklopol> Free-man is talking to me in pm now
06:08:11 <elliott> oklopol: oh oh oh paste plz
06:10:04 <elliott> <Eliyahu> all masons , jesuits , knights of templar , knights of malta , catholic priests need to repent and walk away from theri involvement of the new world order
06:10:11 <elliott> * [Eliyahu] (~Eliyahu@ip68-8-234-181.sd.sd.cox.net): Jesus is LORD
06:10:31 <Sgeo> elliott, he's nuttier than that
06:10:58 <Sgeo> elliott, the end of the world is coming soon, and Obama's signing some treaty is.. part of it
06:11:20 <Sgeo> Oh, and I _think_ he's a programmer
06:11:30 <elliott> "This User believes that 9/9 equals 1, but .999… does not." --http://en.wikipedia.org/wiki/User:Luke-Jr
06:12:10 <elliott> ASJFOISDHIOHSDOIFHSDOF WHAT
06:12:11 <pikhq> I sure as hell *hope* he's not a programmer.
06:12:19 <elliott> YOU JUST DIRECTLY CONTRADICTED EVERY RELIGIOUS USERBOX ABOVE YOU
06:12:25 <oklopol> http://pastebin.com/EV955JhH
06:12:31 <elliott> OK YOU CAN JUSTIFY SOME RELIGIOUS BELIEFS AS BEING REASON BASED MAYBE
06:12:42 <elliott> YOU CANT CALL IT REASON ITS PURE FAITH
06:12:45 <pikhq> elliott: Satanism, oddly enough, doesn't require much work for that.
06:12:57 <monqy> how is inherently insubstantiated belief ever reasonable
06:13:10 <pikhq> (helps that supernaturalism is not part of it)
06:13:21 <monqy> people pull an elaborate hoax to make it look reasonable
06:13:27 <elliott> ok so he watches anime, doesn't believe in the separation of church and state, favours absolute monarchy, wants a philosopher king, values reason over faith, and believes that 9/9 equals 1, but .999… does not.
06:13:50 <oklopol> i was supposed to paste that in pm actually, was busy being annoyed at vjn pastebin not working atm
06:13:50 <pikhq> elliott: And has a language box saying he does not speak Japanese at all.
06:14:31 <pikhq> Why you would feel like listing that is beyond me.
06:14:31 <elliott> pikhq: they're irreligious homosexual heretic faggots
06:15:19 <pikhq> "This user believes in freedom of all types of information for all.
06:15:28 <pikhq> But doesn't believe in seperation of church and state...
06:15:41 <elliott> pikhq: and supports book-burning??
06:16:12 <pikhq> And prefers neither SI nor US contemporary units.
06:16:21 <pikhq> What others are there?
06:17:13 <elliott> he seems like a ~traditionalist~
06:17:19 <elliott> and said he supports English English
06:17:35 <pikhq> He claims to be a native citizen of the US.
06:18:02 <pikhq> So he's probably the only person here who knows what a "stone" is.
06:21:07 <zzo38> It is the Wikipedia userboxes?
06:21:33 <quintopia> people probably shouldnt put their politics on wikipedia...it is a good way to attract enemies.
06:21:57 <elliott> <amigojapan> it seems you christians didint have enough destroying one antient library
06:21:59 <zzo38> What is their username?
06:22:17 <elliott> what's the fun if you just antagonis ethem
06:24:10 <oklopol> yeah that was kind of annoying
06:24:38 <elliott> anyone can yell at some christians, the trick is to do it without them realising you're yelling
06:24:41 <oklopol> and Free-man just loves telling people how he can't be offended
06:24:53 <quintopia> i dont really understand how he can simultaneously consider himself libertarian and support laws against abortion and gay marriage...those are kind of central issues to libertarianism, eh?
06:24:59 <oklopol> everyone's so annoying when you haven't slept for a few nights
06:25:04 <fizzie> The good old Finnish units: http://en.wikipedia.org/wiki/Finnish_units_of_measurement -- at least the names are (probably) ridiculous.
06:25:30 <fizzie> "poronkusema – (approximately 7.5 km). A Lappish measurement of distance; the distance a reindeer can travel before needing to stop to urinate."
06:25:36 <pikhq> quintopia: Yes, one of the central tenants of libertarianism is "fuck off, government".
06:25:45 <pikhq> quintopia: That quite explicitly extends to abortion and gay marriage.
06:26:16 <elliott> <IASON> lets not talk about a satan bible ok
06:26:16 <elliott> <IASON> or else i will have to ping matiu
06:27:00 <elliott> <Free-man> jason be quiet, adults are talking.
06:27:13 <elliott> Sgeo: can you make the stupid people shut up i dunno what kinda influence yo uhvae
06:27:30 <elliott> also how is amigojapan not banned
06:27:42 <Sgeo> Atheists are allowed.
06:27:50 <oklopol> Sgeo: are retards allowed?
06:27:55 <Sgeo> I've never seen amigojapan act so... annoying though
06:27:59 <zzo38> Is the things discussed above related to Wikipedia userpage and if so what is their Wikipedia username?
06:28:08 <Sgeo> Krynn sometimes bothers me, but not amigojapan usually
06:28:17 <pikhq> 12 miles, the distance of one day's travel?
06:28:26 <elliott> <Free-man> if you listen to Coast to Coast AM, turn it on now
06:28:27 <elliott> <Free-man> if you listen to Coast to Coast AM, turn it on now
06:28:27 <elliott> <Free-man> if you listen to Coast to Coast AM, turn it on now
06:28:28 <monqy> "usually" you regular #jesus?
06:28:42 <elliott> we should listen to coast to coast am in unison now
06:29:10 <elliott> http://www.coasttocoastam.com/
06:29:20 <Sgeo> Ricco is permanently banned. This is a good thing.
06:29:27 <elliott> Only subscribers to Coast Insider can access Coast to Coast AM live radio broadcasts, radio show archives and daily radio show highlights.
06:29:43 <elliott> <Free-man> i just heard a good phrse, "morally reprehensible" -- exactly!
06:29:45 <Sgeo> Annoying guy who always talks about "Anyone want to discuss the history of Christianity? PM me"
06:30:10 <elliott> how many christian discussion avenues do you frequent exactly
06:30:29 <Sgeo> Right now, just #jesus
06:30:40 <pikhq> And why? I thought those people were fucktards even when I *was* a Christian.
06:31:43 <zzo38> O, I found their username
06:31:53 <elliott> Sgeo: so i take it these guys are all religious-right
06:31:59 <elliott> the channel-aligned people i mean
06:32:09 <Sgeo> The ones talking right now
06:32:20 <elliott> politically-right aligned i mean
06:32:35 <elliott> im just considering whether i should try and amass a bunch of biblical arguents for socialism or not
06:32:45 <Sgeo> Um, I know they're all in unison about how bad homosexuality is
06:32:54 <Sgeo> Even the nice ones, for the most part
06:33:06 <pikhq> elliott: I'm afraid not.
06:33:28 <pikhq> Actually, even worse if you exercise it; fornication and all.
06:33:39 <pikhq> monqy: And advocated by Peter.
06:33:40 <elliott> Sgeo: i need to know their personal opinion on famous bisexuality
06:33:53 <Sgeo> Famous bisexuality?
06:33:57 <elliott> pikhq: sexual abstinence =/= asexuality
06:34:01 <Sgeo> I mean, you've called me famous bisexual
06:34:15 <pikhq> elliott: Sorry, right.
06:34:20 <elliott> oklopol: please explain to the kind young famous bisexual
06:34:23 <monqy> surely you know something about famous bisexuality
06:34:54 <pikhq> elliott: Still. Peter advocated literally *not having sex ever* for *everyone*, because Jesus was coming soon, so why should you?
06:34:56 <elliott> <Free-man> hell rides the wind; it is everywhere, has always bin
06:35:01 <pikhq> 2000 years later, well.
06:35:26 <elliott> 2000 years is a hell of a long time to abstain from sex
06:35:38 <elliott> who didn't give up after the first five hundred
06:35:39 <pikhq> I was last up-to-date on Christian music in 2004.
06:36:00 <Sgeo> Is it sad that I've heard some Christian music recently
06:36:02 <elliott> pikhq: i googled and it isn't :P
06:36:10 <elliott> Sgeo: yes its so sad commit suicide.
06:36:13 <pikhq> Sgeo: Not inherently.
06:36:41 <pikhq> There's some nice acapella Latin pieces out there that the Church commissioned...
06:37:25 <zzo38> I found hexclocks are not only Hex Headquarters. There is also the Nystrom version of hexclock and hexadecimal numbers speech.
07:40:16 -!- monqy has quit (Quit: hello).
07:46:10 -!- choochter has joined.
07:49:41 <cheater__> zzo38, you need to start speaking english
07:57:29 <zzo38> I do type and speak English.
08:03:51 -!- CakeProphet has joined.
08:03:51 -!- CakeProphet has quit (Changing host).
08:03:52 -!- CakeProphet has joined.
08:04:24 -!- CakeProphet has quit (Client Quit).
08:05:02 -!- CakeProphet has joined.
08:12:14 -!- choochter has quit (Quit: lang may yer lum reek..).
08:12:39 -!- Choochter has joined.
08:12:47 <elliott> <IASON> brainproxy: what do you think much of an oxymoron that a king should authorize a bible?
08:12:47 <elliott> <IASON> ie king james authorized version?
08:12:47 <elliott> <IASON> the rulers of the gentiles lord it over them
08:12:47 <elliott> <IASON> Free-man: be careful listening to the AM radio
08:12:55 <elliott> <IASON> anything from out of this world comes directly to you luke-jr|otg upon this rock I build my church
08:14:26 -!- Choochter has quit (Client Quit).
08:15:38 -!- myndzi\ has joined.
08:16:59 -!- myndzi has quit (Ping timeout: 264 seconds).
08:20:54 -!- CakeProphet has quit (Ping timeout: 260 seconds).
08:21:32 -!- myndzi\ has quit (Ping timeout: 276 seconds).
08:27:52 <pikhq> Is he KJV-only, or anything-but-KJV-only?
08:28:14 -!- elliott has quit (Ping timeout: 276 seconds).
08:43:11 -!- myndzi has joined.
08:45:42 -!- CakeProphet has joined.
08:52:31 -!- CakeProphet has quit (Quit: leaving).
08:52:55 -!- CakeProphet has joined.
08:53:02 -!- myndzi has quit (Ping timeout: 240 seconds).
08:53:19 <CakeProphet> I can use GADTs to distinguish between continuous and discrete signals.
08:54:02 -!- EgoBot has quit (Ping timeout: 240 seconds).
08:54:13 -!- EgoBot has joined.
08:55:57 <pikhq> It's 3 and I'm not sleeping.
08:56:11 <pikhq> I suck at this "fulfilling basic needs" thing, apparently.
08:56:49 <CakeProphet> as long as you get a lot of sleep it doesn't matter a whole let when that happens.
08:57:02 <CakeProphet> though sleeping at night is the best kind of sleep for you.
08:57:18 <CakeProphet> I work nightshift, so I go to bed around 9 AM most days..
08:58:14 <CakeProphet> hmmm, so what would be an alternative to using GADTs for that purpose?
08:58:31 <pikhq> I strongly suspect I have some sort of issue here. Every night I find that I'm going to bed later.
08:59:52 <pikhq> This has been a regular pattern for years.
09:00:32 <pikhq> Pretty much the only thing that stops it from being t3h fucked up is, basically, a hard reset of my sleeping time via being woken up at what feels like an ungodly hour.
09:00:35 <CakeProphet> basically: type Continuous; type Discrete; data Signal a t where { DSignal :: (Integral s) => [a] -> s -> Signal a Discrete; CSignal :: (Integral t) => (t -> a) -> Signal a Continuous;}
09:01:43 <CakeProphet> basically: type Continuous; type Discrete; data Signal a b where { DSignal :: (Integral s) => [a] -> s -> Signal a Discrete; CSignal :: (Integral t) => (t -> a) -> Signal a Continuous;}
09:04:23 <CakeProphet> but now say I had a typeclass with a toSignal.. would every instances need two type parameters or could the Discrete/Continuous parameter be supplied via the type signature of the implemented method?
09:05:03 <CakeProphet> class IsSignal (s a) where toSingal :: s a -> Signal a t
09:12:11 <zzo38> quintopia: OK, what did you want, please?
09:16:42 <quintopia> but i forgot that you cant be arsed to reply in a privmsg
09:24:01 <zzo38> I can reply in a private message if you want, but you just wrote "hello"
09:24:08 <zzo38> I have no response to that.
09:25:10 <zzo38> Currently others are not typing on this channel so you can type public in case other people are interested and can view logs, or respond, too.
09:29:28 <quintopia> you are officially diagnosed autism spectrum yes?
09:32:16 -!- Sgeo_ has joined.
09:36:31 -!- pingveno_ has joined.
09:37:38 <quintopia> alright, i figured that would be the answer
09:40:02 <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,...
09:40:38 -!- pumpkin has joined.
09:40:39 -!- pumpkin has quit (Changing host).
09:40:39 -!- pumpkin has joined.
09:41:03 -!- pingveno has quit (*.net *.split).
09:41:03 -!- cheater__ has quit (*.net *.split).
09:41:03 -!- rodgort has quit (*.net *.split).
09:41:03 -!- copumpkin has quit (*.net *.split).
09:41:04 -!- Sgeo has quit (*.net *.split).
09:41:05 -!- clog has quit (*.net *.split).
09:41:25 <zzo38> Yes I am Aspergers I think it is on my Wikipedia userpage.
09:42:16 -!- Phantom_Hoover has joined.
09:44:51 <pikhq> I'm going to guess "in ways that seem utterly bizzare."
09:45:36 -!- rodgort has joined.
09:47:49 -!- cheater__ has joined.
09:54:26 -!- myndzi has joined.
10:07:53 <zzo38> I don't know how that affect my life.
10:20:23 <quintopia> a friend told me today that there are a number of variables involved in such a diagnosis, and that you would likely rank intermediate on speech. what do you do with the extra brainpower that frees up?
10:22:49 <Phantom_Hoover> Pictured: quintopia does not understand how the brain works.
10:22:49 <lambdabot> Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them.
10:25:26 <Phantom_Hoover> With people crowding around to hear my interesting and novel opinions?
10:26:46 <quintopia> you got three messages! no one left me any mail
10:28:19 <zzo38> I don't know if it necessarily means extra brainpower is freed up.....
10:34:04 <Phantom_Hoover> 04:42:45: <Sgeo> I wish I could get this person some mental help
10:37:41 <Phantom_Hoover> 05:27:27: <elliott_> erm darwin was actually pretty racist iirc
10:37:41 <Phantom_Hoover> 05:27:33: <elliott_> istr something about ~primitive negroes~
10:38:11 <Phantom_Hoover> Yes elliott you are either completely racist or completely non-racist there is no spectrum in between,
10:38:45 <Phantom_Hoover> 05:20:42: <pikhq> (which literally did not *exist* at the time he wrote)
10:39:09 <Phantom_Hoover> Mendel did his experiments before OoS was published IIRC, but nobody noticed.
10:41:22 <Phantom_Hoover> 05:36:51: <Sgeo> elliott_, whatever you're about to do sounds mean
10:41:41 <Phantom_Hoover> Sgeo_ getting flustered: perhaps the best part of any cross-channel trolling?
10:43:19 <quintopia> zzo38: that was a joke. but i am curious how you spend what time you dont spend programming
10:45:45 <oklopol> i'm curious what everyone here does with the time they don't spend here
10:46:12 <oklopol> personally i do math and watch tv shows and occasionally go to the office to play pool alone
10:46:15 <zzo38> quintopia: About thinking about stuff, reading about stuff, writing about stuff, etc. And eat, drink, bed, etc. And other things.
10:47:33 <oklopol> i don't really like two-player games, hard to measure progress
10:48:41 <oklopol> zzo38: have you done more math
10:48:50 <oklopol> i recall you did some math earlier :o
10:49:04 <oklopol> like you proved the pythagorean theorem in your head right
10:49:54 -!- hiato has quit (Quit: "nothing so gives the illusion of intelligence as personal association with large sums").
10:56:44 <zzo38> oklopol: Yes I have done some math, but not much and I don't remember much of what I have done. But yes I did prove the pythagorean theorem in my head once while resting on the couch
10:57:46 <oklopol> i do almost allllll my math headwise
10:58:00 <oklopol> that's the best of maths, head mathin'
10:58:18 <zzo38> O, and once while in school I had calculus class, and math class. In the textbook for math class, there was a page (the teacher didn't mention that page at all) giving the sum series for e to the x, sin x, cos x, so I decided to calculate the derivative of those functions.
10:58:56 <zzo38> And a visitor to my school once asked me to try to prove the twin prime conjecture.
10:59:26 <oklopol> i'm sure you got very far with it
10:59:58 <zzo38> I didn't prove it at all. But I did think of things about it and sometimes even recently.
11:00:21 <zzo38> And I still think about mathematics sometimes.
11:00:26 <oklopol> twin prime conjecture was that there's infinitely many primes n such that n+2 is prime
11:00:49 <oklopol> there's absolutely no way you could get anywhere with that from scratch
11:01:37 <oklopol> of course i suppose you don't really care if you actually solve something
11:02:03 <oklopol> in any case that kind of stuff is a definite nono unless you really know what you're doing
11:02:10 <zzo38> It is possible to get anywhere in mathematics from scratch. However, it is very difficult and many people do not know how (in most cases I don't know how either).
11:02:45 <oklopol> it is possible to get somewhere in mathematics from scratch. it is absolutely impossible to get anywhere from scratch if you take something like the twin prime conjecture as your goal.
11:03:13 <zzo38> No, it is just extremely difficult, I think.
11:03:34 <oklopol> well of course, but the point is it takes way more than a single human life.
11:03:54 <zzo38> Maybe it does. I wouldn't know for sure, however.
11:04:12 <oklopol> a single mathematician's life i mean. quite a few hundred non-mathematician lives prolly.
11:04:30 <oklopol> well it's just how number theory is
11:05:09 <oklopol> do you study something btw?
11:05:32 <zzo38> I do sometimes use mathematics in various situation, including programming, games, and I have even used matrices in accounting.
11:05:51 <oklopol> zzo38: you don't remember talking to me about your matrix accounting thing?
11:05:53 <zzo38> oklopol: No, I don't formally study anything.
11:06:22 <zzo38> oklopol: Not you specifically; I do remember on this channel. However, I was just mentioning it.
11:06:31 <oklopol> more like talking about it for a few hours
11:07:08 <zzo38> No, I mean *this* time I was just mentioning it. That time before, yes I wrote many things about it.
11:09:03 <oklopol> anyhow in conclusion, steer clear of the twin prime conjecture, i'll gladly give you fun little exercises if you like math
11:17:04 <zzo38> I find mathematics useful in programming sometimes. I have also used mathematics to invent a new kind of ability scores generation method for Dungeons&Dragons, calculus to solve some physics questions (the teacher didn't expect us to understand calculus and I was absent on the day they gave the equations), and I have calculated probabilities of various events in pokemon card, etc.
11:17:25 <zzo38> And the magical system in Icosahedral RPG is very mathematical.
11:19:08 -!- oerjan has joined.
11:19:11 <oklopol> all of that really sounds more like bore than math to me but w/e's
11:20:13 <oklopol> it means i'm not particularly interested in defending my point, not that you'd ever attack a point
11:20:51 <zzo38> For example, do you know what a "mana" is in Icosahedral RPG?
11:21:36 <zzo38> Icosahedron is a solid of 20 sides.
11:21:49 <zzo38> But that is irrelevant in this case.
11:22:50 <zzo38> ("Icosahedral RPG" is simply the name of a role playing game system. Not important to my example.)
11:22:58 <oklopol> Phantom_Hoover: i often ask terms even if i know them so no one has to know anything.
11:23:08 <oklopol> just open up the definition
11:23:36 <oklopol> zzo38: so what about the relevant part?
11:24:04 <oklopol> Phantom_Hoover: i was actually going to leave after saying it was too fucked up for me
11:24:09 <oklopol> because it was way too fucked up for me
11:24:56 <zzo38> oklopol: It is what a "mana" is in this system. Is the relevant part.
11:25:35 <oklopol> i thought you were going to tell me about the math going on in the game
11:26:26 <oklopol> really i don't see how any interesting math could have anything to do with a game
11:26:46 <zzo38> A mana is a mathematical kind of thing, similar to working of prime numbers. However, there are only five primes.
11:26:55 <oklopol> well except perhaps proving some property of the game
11:27:00 <oklopol> Phantom_Hoover: yeah not what i meant
11:27:24 <oklopol> and game theory is not really about games, unless you count combinatorial game theory as a branch of gt
11:27:36 <zzo38> Spells can also be multiplied together and stuff, and possibly one spell to the power of another, etc.
11:27:38 <oklopol> i don't see how there could be a game where gameplay involved interesting math.
11:28:39 <zzo38> The math of spells multiplying/adding/subtracting/dividing/etc is not used in most situations, though. Mana is used all the time in spellcasting though.
11:28:43 <oklopol> well you could get interesting puzzles surely, but an interesting puzzle is still basically a... search party.
11:28:51 <oklopol> mind my insane choice of wording
11:30:01 <zzo38> A mana cost can be described as a polynomial in X with the coefficients being manas.
11:30:02 <oklopol> so yeah games can be fun but good math puzzles tend to be one of a kind.
11:30:41 <zzo38> A spell level is the total number of manas being added together in the coefficient for 0 exponent of the spell's mana cost.
11:31:04 <oklopol> zzo38: and where does theorem proving come in?
11:31:53 <oklopol> conjecturing? restructuring your proof? generalizing it?
11:32:03 <zzo38> oklopol: It might help in some cases, maybe. There is no need to prove theorems simply to play the game, though. But maybe it helps to prove something mathematically.
11:32:47 <oklopol> i'm going to assume you are not doing math at all when you're playing, you are just tediously manipulating objects which are often used in math.
11:32:50 <zzo38> You might be able to prove things about this magical stuff and maybe it might help in strategy or something, I don't know.
11:33:23 <oklopol> my pretentiousness knows no limits
11:34:14 <oklopol> zzo38: you can also prove theorems about go, but playing go is very far from doing math.
11:34:26 <zzo38> oklopol: Actually in most cases you can just think of it in simpler ways and it is not as tedious. But this math makes it possible to be mathematically formal and proving.
11:35:15 <zzo38> There are many similaries between Wei-qi and Xiang-qi.
11:35:18 <oklopol> well i dunno the game, so i'll just stay sceptical no matter what you say
11:35:36 <zzo38> Is it OK to be sceptical then.
11:37:24 <Phantom_Hoover> Also is it just me or has zzo invented fields by accident with his mana system?
11:39:41 <zzo38> "In abstract algebra, a field is a commutative ring whose nonzero elements form a group under multiplication. As such it is an algebraic structure with notions of addition, subtraction, multiplication, and division, satisfying certain axioms." No, when adding manas you do not result in a mana (you could call it a multimana).
11:39:54 <oklopol> doesn't take a genius to abstract fields out of Q. if you accidentally characterize the finite once tho, i would certainly be impressed.
11:39:55 <Phantom_Hoover> Erm, zzo38, there's nothing polynomial about your mana system.
11:41:20 -!- clog has joined.
11:41:43 <zzo38> Phantom_Hoover: Manas can be used as coefficients in polynomials (or possibly as values of variables). More accurately, multimanas can.
11:42:27 <Phantom_Hoover> zzo38, there is no exponentiation in it; it's not a polynomial.
11:43:01 <oklopol> yeah if you're not closed under multiplication, polynomial is kind of a weird term
11:43:24 <oklopol> since polynomials are just sums of products
11:43:44 <zzo38> The exponents have to be integers though.
11:44:47 <zzo38> And you can multiply numbers by manas, manas by manas, add, multiply, etc. So it is not a field. But maybe it is a "unique factorization domain".
11:45:20 <zzo38> That is, for manas.
11:45:44 <zzo38> I think multimanas are not.
11:46:03 <zzo38> Unless it can be proved that it is.
11:49:15 <zzo38> The system of manas does have identity element, which is called "colorless" in this system (written as 1 since it is also used the same way as the number 1 in polynomials and products, including products with numbers)
11:50:28 <zzo38> Manas which are neither prime nor composite are colorless.
11:50:48 <oklopol> you have multiple identity elements then?
11:50:59 -!- FireFly has joined.
11:51:17 <zzo38> No, only one identity element.
11:53:12 <oklopol> well you know because i could've used my "wtf, you have multiple identity elements smiley" o=oO=O
11:53:34 <oklopol> yeah, i have a smiley for everything.
11:56:28 <zzo38> You have a smiley for everything?
11:57:25 <oklopol> actually i can't come up with another one like that, and even that one didn't really look like a face
11:57:46 <oklopol> if someone comes up with a better one, i'd love to hear it
11:58:43 <oklopol> zzo38: did you get the joke?
12:01:32 -!- derrik has joined.
12:02:59 <oklopol> `addquote <oklopol> well you know because i could've used my "wtf, you have multiple identity elements smiley" o=oO=O <oklopol> yeah, i have a smiley for everything.
12:03:01 <HackEgo> 496) <oklopol> well you know because i could've used my "wtf, you have multiple identity elements smiley" o=oO=O <oklopol> yeah, i have a smiley for everything.
12:04:22 <oerjan> oklopol: that's because it looked like _multiple_ faces, duh
12:06:46 <oklopol> :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
12:06:51 <Phantom_Hoover> oklopol, how many other smilies do you have for situations like this.
12:09:03 <oklopol> well i have my "wtf, x has two inverses" smiley p=p x q=q
12:11:26 <oklopol> but i may run out after that
12:12:57 <oklopol> /=/ x \=\ would be great but i'm not sure it's very readable.
12:24:19 -!- boily has joined.
12:26:10 <zzo38> I think manas cannot actually be the coefficients of polynomials, although multimanas can be (and a mana can be used as a multimana, so that it is a multimana and can be a coefficient in a polynomial)
12:26:53 <zzo38> But I don't know a lot about abstract algebra so I might be wrong
12:29:58 <zzo38> I invented a character sheet for my character of a Level 20 D&D campaign where you start with no money or equipment. What age/height/weight should I specify?
12:33:28 <oerjan> oklopol: perfectly readable, clearly those are multiple http://internetfamo.us/class/wp-content/uploads/2007/11/tiefighter.png
12:34:59 <oerjan> oklopol: that's just something you are saying to deny blowing up that death star in the middle
12:36:08 -!- BeholdMyGlory has joined.
12:36:11 -!- cheater__ has quit (Ping timeout: 250 seconds).
12:43:24 <zzo38> oerjan: What units for the first number? Years?
12:43:53 -!- olsner has quit (Read error: Operation timed out).
12:43:54 <zzo38> What kind of creature would have those numbers?
12:44:02 -!- derrik has quit (Quit: ChatZilla 0.9.86.1-rdmsoft [XULRunner 1.9.0.17/2009122204]).
12:44:12 <zzo38> Yes I would think so.
12:44:45 <zzo38> D&D does not use metric however.
12:44:47 <oerjan> basically i just blew up a human 10 times
12:44:55 <oerjan> well 20 m ~ 60 feet, i think
12:45:32 <oerjan> and i don't know US weight units
12:45:37 <zzo38> That isn't my character however. I put in different numbers for height and weight, and nothing for age yet.
12:46:41 -!- iconmaster has joined.
12:46:41 <oerjan> `google is this working still?
12:47:06 <oerjan> seems not. but then google changes their APIs like others change shirts, iiuc
12:48:25 <HackEgo> /tmp/hackenv.3400/bin/google
12:48:58 <HackEgo> /tmp/hackenv.3492/bin/calc
12:50:31 -!- Taneb has joined.
12:54:05 <zzo38> The book doesn't have monster age categories. But it would be useful to have it even in case of not monster player characters, such as the Object Reading power.
13:01:58 -!- olsner has joined.
13:03:18 <oerjan> Taneb: is noryshorts just replacing nand by nor in the description of nandypants?
13:03:33 <coppro> pikhq: are you around?
13:03:34 <Phantom_Hoover> Minecraft chests have a maximum density of 2 million times that inside a supermassive black hole.
13:04:03 <oerjan> Taneb: @ is a dangerous prefix in our channel :P
13:04:26 <Taneb> I'll make sure to note that.
13:04:55 <oerjan> Taneb: which means they're not _entirely_ dual to each other, because they treat 0 and 1 differently
13:05:18 <Taneb> No, but I think they're both Turing Complete
13:05:50 <Taneb> I'm working on translating boolfuck into noryshorts
13:06:10 <Taneb> It's the input that's the hardest
13:07:20 <oerjan> Phantom_Hoover: me is going to be somewhat confused if he frequents the haskell channels
13:07:40 <Gregor> Phantom_Hoover says: "about it"
13:08:10 <Gregor> @tell Phantom_Hoover We should just talk like this from now on.
13:10:17 <coppro> elliott: http://www.youtube.com/user/dWhoFan9#p/c/C6995500E1B2A0ED/10/XNplESJ8gss
13:10:29 <oerjan> Phantom_Hoover: now my question is, where do you find a computer with enough memory to fill up that supermassive black hole chest. especially one which hasn't collapsed into a black hole itself.
13:11:06 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
13:11:19 <lambdabot> Gregor said 3m 9s ago: We should just talk like this from now on.
13:11:26 <oerjan> Phantom_Hoover: um minecraft chests have zero volume?
13:12:09 <Phantom_Hoover> coppro, I love the part where it transfers into what I shall call forever the Scottish Hamster section.
13:12:10 <oerjan> Phantom_Hoover: i'm just pointing out that i doubt you can get hold of enough minecraft objects to fill it with to attain that density...
13:12:24 <lambdabot> oerjan said 5m 10d 3h 35m 52s ago: I have been looking a bit at your egojoust parsing code and i think you are miscalculating the new size of the program after expansion, particularly if using ({})%
13:12:25 <lambdabot> (you are clobbering llen for a different use) but also elsewhere (ignoring the atoi length). might you not end up looking at unitialized memory?
13:12:25 <lambdabot> oerjan said 5m 10d 3h 29m 30s ago: I started looking because quintopia tells he cannot get ({})% to use with iteration count more than 20 or so, at least if the contents are slightly complicated
13:12:25 <lambdabot> oerjan said 5m 10d 3h 28m 56s ago: *to work
13:12:26 <lambdabot> oerjan said 5m 10d 3h 23m 8s ago: the interaction of this with memmove(prog.buf + i + temp.bufused, prog.buf + end + 1, prog.bufused - end - 1); after a _nested_ expansion when prog.bufused has _
13:12:28 <lambdabot> already_ been miscalculated particularly worries me, that _could_ be the case giving quintopia problems...
13:12:30 <lambdabot> oerjan said 5m 10d 2h 55m 5s ago: actually won't the memmove(prog.buf + i + temp.bufused, prog.buf + end + 1, prog.bufused - end - 1); end up copying the ) as well... _that_ would surely be a
13:12:34 <lambdabot> oerjan said 5m 10d 2h 54m ago: Scratch that last, i cannot read. also the atoi length is of course not a problem. the reuse of llen inside the % branch still is, i believe.
13:12:36 <lambdabot> oerjan said 5m 10d 2h 47m 10s ago: Summary (I don't know whether the previous messages were cleared or not): i think the reuse of llen in the % branch of egojoust.c's parseFile function is a problem
13:12:38 <lambdabot> that causes the prog.bufused to be calculated wrong when using ({})%, conceivable leading to reading of unitialized memory
13:12:40 <lambdabot> Plugin `tell' failed with: thread killed
13:13:21 <Gregor> Phantom_Hoover: So what's the maximum-mass object you can put in a chest?
13:13:24 <Phantom_Hoover> Many a time has elliott piled my inbox high with stuff that was then lost when it crashed.
13:14:07 <Gregor> Heh, that's a 1mx1mx1m block o' gold X-D
13:14:26 <coppro> Phantom_Hoover: I Am the Doctor is also fantastic
13:15:27 <Phantom_Hoover> coppro, it doesn't have Scottish Hamster in it, though.
13:15:27 -!- derrik has joined.
13:15:41 <Gregor> Phantom_Hoover: I meant /each/ block is a 1x1x1m.
13:16:11 <coppro> Phantom_Hoover: is the Scottish Hamster the part missing from the televised title theme?
13:17:02 <Phantom_Hoover> coppro, http://www.bbc.co.uk/doctorwho/classic/news/radiophonatron.shtml
13:17:14 <Phantom_Hoover> Click the button called "Scottish Hamster" and all shall be revealed.
13:18:56 <coppro> best part of the theme in my opinion
13:19:33 <Taneb> I think I've got everything for the Boolfuck to Noryshorts conversion exceppt input
13:20:54 <oerjan> !underload ((We also have a proper esolang bot)!a(:^)*S):^
13:20:55 <EgoBot> ((We also have a proper esolang bot)!a(:^)*S):^
13:21:09 <Taneb> I want to do input for completion's sake
13:22:03 <oerjan> !underload ((_Could be..._)!a(:^)*S):^
13:22:04 <EgoBot> ((_Could be..._)!a(:^)*S):^
13:22:26 <EgoBot> Error: Expected ) at end of input
13:22:48 <oerjan> O_o Phantom_Hoover hasn't seen underload before?
13:23:25 <Phantom_Hoover> oerjan, no, but this thing is confusing me although this is primarily due to my own laziness.
13:23:37 <Taneb> http://esoteric.voxelperfect.net/wiki/Underload
13:24:00 <oerjan> one of my favorite languages, obviously :P
13:27:41 <oerjan> !slashes /*/\/.\\0\/,\\,0,\\,1\/\/.\\1\/,\\,1,\\,0\/\/,\\,\/.\//********/.//.0
13:27:42 <EgoBot> 0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110
13:27:51 <oerjan> and that's another one
13:33:21 <Taneb> Right, I've think I've translated input from Boolfuck to Noryshorts
13:36:36 <Taneb> And I've had an idea for a simpler one for Nandypants
13:38:05 <Phantom_Hoover> "Nandypants is a dual-tape bitwise language that ended up, completely accidentally, being extremely similar to brainfuck."
13:38:43 <Phantom_Hoover> Well, you seem moderately nice, so I won't brickbrain you.
13:39:35 <Phantom_Hoover> See User:Phantom_Hoover on the wiki for more information.
13:42:13 <fizzie> Graa, I seriously need to fix fungot.
13:43:35 <Phantom_Hoover> fizzie, also, were you actually making a Homestuck set for him?
13:44:29 <Phantom_Hoover> "It is currently unknown if BoolSpool is Turing Complete, as the specifications are not yet finished."
13:45:49 <fizzie> Phantom_Hoover: Well, I crawled the pages and wrote a bit of Perl to heuristically HTML-scrape the pages into content. There's not *that* much easily extractable text, though, since quite a lot of it is in images/flash. The pesterlogs (and such), mainly.
13:46:18 <fizzie> I think I'll just bring fungot back as-is for now, though I think I finally located the proper place to fix. (It was even commented!)
13:46:21 <Phantom_Hoover> If it includes pesterlogs then I am making another bot to make sure he's never changed off that setting.
13:46:34 -!- pumpkin has quit (Remote host closed the connection).
13:46:48 <oerjan> Taneb: oh hm i think your nandypants boolfuck has a bug
13:46:59 -!- copumpkin has joined.
13:47:00 -!- copumpkin has quit (Changing host).
13:47:00 -!- copumpkin has joined.
13:47:43 <oerjan> when jumping between the even numbers in the [ ] translation, the b placement becomes wrong
13:48:02 <Taneb> Yeah, fixing that now
13:48:08 <Taneb> I even have the edit page open
13:49:04 -!- derrik has quit (Quit: laterzz).
13:52:36 -!- fungot has joined.
13:53:04 <oerjan> ^ul ((Happy happy joy joy! )S:^):^
13:53:04 <fungot> Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy happy joy joy! Happy hap ...too much output!
13:53:19 <fizzie> fungot there is another of our bot-herd.
13:53:20 <fungot> fizzie: socket.write lambda self, x: x+x in python and its not maintainable code
13:53:28 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
13:53:42 <oerjan> and the only one to be _written_ in an esolang.
13:53:50 <oerjan> well there _have_ been others.
13:54:30 <fizzie> They haven't been as witty conversationalists as fungot, though.
13:54:31 <fungot> fizzie: fnord?). the queue object should support the following operations: binding a variable x_cfg in a path from inert material to a cell phone...
13:54:53 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
13:56:20 -!- iconmaster has quit (Ping timeout: 255 seconds).
13:56:24 -!- augur has quit (Remote host closed the connection).
13:56:30 <fungot> Phantom_Hoover: ( which doesn't work... the mere *concept* of language is ineligible.'
13:57:08 <Phantom_Hoover> fizzie, so wait, who was the little prick who got him taken down to start with?
13:57:19 <Taneb> Phantom_Hoover, does your brainfuck-derivative pledge include humorous animal themed brainfuck-equivaletns?
13:57:58 <Phantom_Hoover> Taneb, yes, except brickbraining those people is pointless because it would just make their brain slightly harder.
13:58:14 <fizzie> Phantom_Hoover: I don't really recall the specifics. I just saw the "can be used to do CTCP" discussed on-channel and thought "well I'll take it offline and fix, shan't be hard", then managed to not get anything done evar.
13:58:26 <oerjan> i'd imagine it applies to those _especially_.
13:58:33 <Taneb> What about the at least one who has otherwise displayed originality in esoterica?
13:59:04 <Taneb> That was the one I was referring too
13:59:28 <oerjan> Phantom_Hoover: i don't think it was disclosed who _complained_. the staff member who came down on Gregor was plazma.
13:59:31 <Phantom_Hoover> And that's because a) it was made by DMM and I can't hate DMM and b) it was the first one, so it was slightly amusing.
13:59:51 <Taneb> DMM is pretty much the only reason I'm here
14:01:51 <Taneb> I'm going to vote that the text "Well, not really, but h" to be replaced with "H" in DMM's article on the wiki
14:05:57 <Taneb> Also, bye everyone
14:07:42 <Phantom_Hoover> TbH, other than Piet, he didn't really make any good esolangs, but the rest were jokes back when joke esolangs were still funny, so that's OK.
14:08:40 -!- Behold has joined.
14:10:19 -!- Taneb has quit (Ping timeout: 260 seconds).
14:10:44 <Phantom_Hoover> http://the-diplomat.com/2011/07/05/china%E2%80%99s-ticking-debt-bomb/
14:11:25 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds).
14:13:21 <Zwaarddijk> altho' most inter-western debts aren't country-to-country, but country-to-bank
14:13:39 <Zwaarddijk> or country-to-international-organization or such
14:23:37 -!- augur has joined.
14:34:52 <oerjan> ...so basically, we are hipster esolangers.
14:35:05 * oerjan leaves you to scream in despair
14:40:50 <oerjan> I SAID DESPAIR, NOT SELF-DENIAL
14:46:22 -!- augur has quit (Remote host closed the connection).
15:16:37 -!- Taneb has joined.
15:17:48 -!- ais523 has joined.
15:18:20 <Sgeo_> Note to self: Stop abusing the computer
15:18:43 <ais523> I think I wrote some of the most ridiculous code in my life today
15:18:43 <lambdabot> ais523: You have 1 new message. '/msg lambdabot @messages' to read it.
15:18:44 <oerjan> Taneb: hello again. i fixed your [ ] code, or so i hope.
15:19:01 <ais523> it created a new process, then errored out if its PID wasn't 2
15:19:06 -!- SgeoN1 has joined.
15:19:32 <oerjan> also, i had this realization the nandypants code would work for noryshorts too if you changed the initial setup to >^< instead.
15:20:05 <oerjan> because then everything becomes dual.
15:20:30 <SgeoN1> So basically, you're writing init related stuff?
15:20:41 -!- monqy has joined.
15:20:43 -!- augur has joined.
15:20:53 <ais523> it was part of a fake init process
15:20:55 <ais523> that pretends to be init
15:21:15 <ais523> I'm making a sort of improved chroot
15:21:22 <ais523> that hides the existence of other processes as well as other directories
15:21:29 <SgeoN1> My computer is now making very weird sounds
15:21:56 <Taneb> Why oh why did I mentally insert an "out with" into that sentence
15:21:59 <ais523> as far as I can tell, all init actually needs to do is to spawn one process, then just do int s; for(;;) wait(&s);
15:22:09 <SgeoN1> Is there a way to check if it's from fan weirdness or hdd weirdness?
15:22:19 <ais523> fan weirdness is likely to depend on temperature
15:22:23 <oerjan> Taneb: well SgeoN1 _was_ abusing it...
15:22:27 <ais523> likewise, hdd weirdness will depend on disk activity
15:22:41 <SgeoN1> It started after I abruptly moved it
15:22:58 <ais523> why did you abruptly move it?
15:23:02 <ais523> and was it switched on at the time?
15:23:03 <Taneb> Probably HDD weirdness
15:23:13 <ais523> anyway, if you haven't already, now would be a good time to make backups to external media
15:23:53 -!- Sgeo_ has quit (Ping timeout: 250 seconds).
15:24:13 <Taneb> Okay, that's worrying.
15:25:02 <ais523> Taneb: there's some history here, Sgeo has managed to break one disk already by acting in a completely inappropriate way after a disk head crash
15:25:08 <SgeoN1> Um, I tried hibernating, got impatient, forced it off. Turning it on boots into grub like normal, but still with weird sounds. Turned it off again
15:25:15 <ais523> I'd have thought he'd have learned to make backups
15:26:39 -!- oerjan has quit (Quit: Later).
15:27:10 <Taneb> I may make an esolang based on football (soccer)
15:28:16 <Taneb> Like "[player] scores!" would be output
15:28:30 <ais523> such languages are either awesome or fail horribly
15:28:35 <ais523> and it's hard to figure out which, often
15:29:10 <Taneb> And input would be "The manager is having words with [player]"
15:29:35 <SgeoN1> Well, that's interesting. Sound does not seem to be correlated with HDD light
15:33:30 <SgeoN1> Going to try some SMART stuff
15:33:52 <Taneb> And passing would increment the the ball's variable
15:34:06 <Taneb> SgeoN1: Like backing up your stuff?
15:35:48 <Taneb> Also, is Deadfish a finite state automaton?
15:35:56 <SgeoN1> Reallocated Sector Count is at Warning. Toolyip says Failure is a sign of imminent disk failure
15:36:28 <Taneb> That may because something very bad is about to happen
15:36:44 <SgeoN1> That is not reflected in Overall Assessment, Whig just says that Disk has a few bad sectors
15:37:16 <Taneb> How much is a few?
15:38:08 <SgeoN1> Value for Reallocated Sector Count: Normalized: 100 Worst: 100 Threshold: 50 Value: 18 sectors
15:38:36 <SgeoN1> Oh, I have 23 bad sectors
15:39:39 <Taneb> I assume it was zero at some point
15:39:44 <SgeoN1> Current Pending Sector count: 5 sectors.
15:45:05 <SgeoN1> No nasty sounds for a while now. Going to turn off and on and see if the numbers get worse.
15:50:16 <SgeoN1> Shutdown has stalled at Stopping early crypto disks...
15:54:58 -!- ais523 has left ("<fungot> fizzie: it makes demons fly out of my window, washing the windows api").
15:58:21 <SgeoN1> Nothing seems to have gotten worse. I'm going to take this as a "just handle the computer with a bit more care" sign for today, will work on backups soon
15:59:53 <SgeoN1> No weird sounds for a log while now
16:04:28 -!- SgeoN1 has quit (Read error: Connection reset by peer).
16:04:41 -!- SgeoN1 has joined.
16:06:58 -!- Sgeo has joined.
16:11:06 <Sgeo> Holding steady at 18/5
16:13:44 -!- jcp|1 has joined.
16:15:14 -!- jcp has quit (Read error: Operation timed out).
16:15:27 -!- jcp|other has quit (Ping timeout: 250 seconds).
16:16:56 -!- jcp has joined.
16:20:25 -!- augur has quit (Ping timeout: 260 seconds).
16:20:50 -!- augur has joined.
16:31:11 -!- Taneb has quit (Ping timeout: 276 seconds).
16:32:22 -!- MigoMipo has joined.
16:32:25 -!- Taneb has joined.
16:39:07 <zzo38> Do you have ideas about literate programming and/or related stuff?
16:41:33 -!- pingveno_ has changed nick to pingveno.
16:43:28 <quintopia> do you have ideas on how to brainwash yourself?
16:44:58 <HackEgo> 131) <fungot> alise: why internet is like wtf \ 136) <pikhq> And... WTF is it doing. <pikhq> :( <Sgeo_> Is it sexing? \ 197) <Vorpal> pikhq, Okinawan? Wtf is that \ 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>
16:47:48 -!- SgeoN1 has quit (Ping timeout: 255 seconds).
16:47:58 -!- Sgeo_ has joined.
16:48:37 -!- SgeoN1 has joined.
16:49:15 -!- Sgeo has quit (Ping timeout: 250 seconds).
16:50:26 -!- ais523 has joined.
16:51:39 <zzo38> Why does MiKTeX require postscript to print a document?
16:52:23 <Gregor> zzo38: Historical/hysterical reasons?
16:53:37 <Gregor> Clearly hysterical raisins.
16:54:11 <zzo38> It ought to convert directly DVI to Windows printer format.
16:54:32 <Gregor> Which is probably postscript or something closely related ...
16:54:36 <zzo38> The Linux system does have directly DVI to PCL, for printing on PCL printer.
16:54:54 <zzo38> Is it postscript? If so, that would explain why it is needed.
16:57:10 <Gregor> I know that it was Postscript in Windows 3.11 8-D
17:05:21 <zzo38> DVI is very good designed format I think
17:05:22 -!- zzo38 has quit (Remote host closed the connection).
17:05:48 -!- Taneb has quit (Ping timeout: 255 seconds).
17:28:23 -!- Sgeo has joined.
17:29:39 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
17:31:52 <tswett> There are printing formats other than PS and PDF?
17:32:05 <ais523> tswett: Microsoft have their own called XPS
17:32:10 <ais523> which they tried to push for a while, but nobody used it anyway
17:33:31 -!- derrik has joined.
17:34:36 -!- derrik has left.
17:44:35 <fizzie> I thought Windows used the EMF format for storing stuff in the printer spool.
17:45:38 <ais523> fizzie: perhaps in Windows 3.1
17:45:41 <ais523> I doubt they use it nowadays
17:46:04 <ais523> there was some sort of backlash against metafiles, because the format was really badly designed (you could put pointers to arbitrary memory in it which had to be executed to figure out what it meant)
17:46:31 <fizzie> http://support.microsoft.com/kb/179774
17:46:39 -!- Taneb has joined.
17:47:00 <fizzie> So it's a setting you can set, whether to spool "raw" (i.e. what the printer eats) or as EMF.
17:48:22 <ais523> <support.microsoft.com> This article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
17:48:26 <ais523> I'm running a Linux-based OS
17:48:33 <ais523> and yet the article still says something
17:49:56 <quintopia> probably they assume linux users are competent enough to grok the whole article and its context
17:57:40 -!- SgeoN1 has quit (Quit: Bye).
18:00:35 <Lymee> You could be administrating a Windows system and use Linux on your main system.
18:02:57 -!- Taneb has quit (Ping timeout: 252 seconds).
18:04:00 <ais523> in that case, the warning would be pointless
18:17:21 -!- Taneb has joined.
18:18:39 -!- myndzi has quit (Ping timeout: 260 seconds).
18:18:52 -!- myndzi has joined.
18:22:48 <ais523> hmm, a bunch of Catholic missionaries just came to the door
18:22:55 <ais523> which is relatively implausibly unlikely in modern-day UK
18:23:14 <ais523> I answered most of their questions with answers which were unrelated to the question itself
18:24:09 <ais523> just giving random statements of fact
18:28:17 -!- pikhq_ has joined.
18:28:24 -!- pikhq has quit (Ping timeout: 264 seconds).
18:35:26 <Taneb> Well, NewsCorp is in a tricky situation in the UK
18:36:33 <ais523> Slashdot has attacked them with an article whose headline has nothing to do with the summary (the headline mentions 9/11 victims being phone-hacked, the summary doesn't)
18:38:10 <Phantom_Hoover> Slashdot attacking NotW with that headline is hilarious.
18:38:49 <ais523> I didn't read the actual article to see what it was about; it might be something entirely unrelated again
18:39:31 <ais523> anyway, NotW (and NewsCorp generally) are in trouble because public opinion in the UK is so far against them atm that it would be political suicide to do anything that even vaguely favours them
18:40:26 <Phantom_Hoover> There's a long time until the next general election, ais.
18:41:38 <Taneb> Not necasohgodIcan'tsppellthatword. That bill for fixed term parliaments never passed
18:41:44 <ais523> what I think the Government would be best advised to do, and probably will do, is to delay the whole BSkyB aquisition nonfatally on a pretext
18:41:58 <ais523> and then look at it normally once it blows over
18:42:38 -!- Nisstyre has quit (Quit: Leaving).
18:43:13 <ais523> there are any number of plausible pretexts, many related to the thing that sparked it in the first place
18:43:43 -!- Nisstyre has joined.
18:44:35 <fizzie> Hey, you can nowadays play Progress Quest (single-player style only) in the browser.
18:44:47 <ais523> Progress Quest had multiplayer?
18:44:52 <ais523> also, I assumed it was a browser game anyway
18:45:02 <fizzie> Yes, in the sense that there was a Hall of Fame.
18:45:09 -!- azaq23 has quit (Quit: Leaving.).
18:45:20 <fizzie> "Thanks to recent advances in technology, it has been possible to port Progress Quest to run in your browser. You no longer need to download or install anything to play Progress Quest; just hit the button: [Play]
18:45:25 <fizzie> Does that sound easy to you? Well it wasn't; we started with hardware emulation of a 80386-equipped PC clone running a novel Windows XP compatable operating system called ProgrOS, implemented in a clean room in the Seychelles by a team of people who had never programmed before (to keep the lawyers at bay).
18:45:30 <fizzie> Unfortuantely that wan't fast enough (there was too much lag death), so we instead emulated the much faster Cray-2 supercomputer and ran the 80386 emulator in that. But the 80386 kept getting hot, so we switched to a 6502 overclocked at 120GHz with emulated liquid helium coolant, and ported ProgrOS to that."
18:45:55 <fizzie> I think they may be... I don't want to say lying, but perhaps sort of slightly tweaking the truth there.
18:46:19 <fizzie> And it was a Windows program; I ran it in Wine a few weeks "back then".
18:47:12 <fizzie> I think it is related to the GABA receptors, but I'm no brain guy.
18:48:51 <ais523> Phantom_Hoover: the WINE people are actually telling the truth when they say it isn't an emulator
18:49:03 <ais523> it basically implements the Win32 API in terms of Linux primitives
18:49:24 -!- ais523 has quit (Remote host closed the connection).
18:49:57 <Phantom_Hoover> ais523, sure, that's because it's an emulator of a forsaken child who has been enticingly shown a window and promised freedom if they run a binary as Windows would.
18:57:39 -!- sebbu2 has quit (Read error: Connection reset by peer).
18:58:21 -!- sebbu has joined.
18:58:21 -!- sebbu has quit (Changing host).
18:58:21 -!- sebbu has joined.
19:10:15 -!- Taneb has quit (Ping timeout: 276 seconds).
19:20:29 -!- zzo38 has joined.
19:22:27 -!- elliott has joined.
19:30:26 -!- Taneb has joined.
19:30:58 -!- oerjan has joined.
19:31:56 <elliott> 08:53:10: <CakeProphet> aha.
19:31:57 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
19:31:57 <elliott> 08:53:19: <CakeProphet> I can use GADTs to distinguish between continuous and discrete signals.
19:32:05 <elliott> CakeProphet: you could also just have two separate data types...
19:32:46 <elliott> 09:00:35: <CakeProphet> basically: type Continuous; type Discrete; data Signal a t where { DSignal :: (Integral s) => [a] -> s -> Signal a Discrete; CSignal :: (Integral t) => (t -> a) -> Signal a Continuous;}
19:32:46 <elliott> CakeProphet: that's literally identical to having two separate data types, dude :P
19:33:10 <oerjan> <Taneb> Also, is Deadfish a finite state automaton?
19:33:28 <oerjan> no, some implementations use unbounded integers
19:33:30 <elliott> Taneb: Deadfish is super turing complete, HTH
19:33:40 <elliott> oerjan: oh, that's even better
19:34:30 <oerjan> (including most of mine. well i haven't _explicitly_ made any bounded afair.)
19:36:38 <elliott> dear logs-quintopia: please stop treating zzo like a circus attraction. thx
19:37:15 <oerjan> Taneb: deadfish _would_ have been an FSA except that the original implementation horribly broke the check for overflow in the case of squaring. and that's part of its charm.
19:37:27 <elliott> 10:37:41: <Phantom_Hoover> 05:27:27: <elliott_> erm darwin was actually pretty racist iirc
19:37:27 <elliott> 10:37:41: <Phantom_Hoover> 05:27:33: <elliott_> istr something about ~primitive negroes~
19:37:27 <elliott> 10:38:11: <Phantom_Hoover> Yes elliott you are either completely racist or completely non-racist there is no spectrum in between,
19:37:28 <elliott> I was replying to an assertion that Darwin wasn't racist
19:38:12 <oerjan> before WW2 non-racists barely existed </citation needed>
19:38:53 <oerjan> perhaps before the 60s, even
19:39:55 * Sgeo curses out LibreOffice
19:42:24 <elliott> Gregor: Why are you holding your hair in your Google+ photo.
19:42:25 -!- Treyno has joined.
19:42:33 <elliott> It's like "hmm, hair, what is this".
19:42:34 -!- Treyno has left.
19:42:54 <Gregor> elliott: I'm pretty sure I was pulling my hair out of my mouth at the time, and it was there due to windness :P
19:43:29 <elliott> "Mm, what a delicious meal of hair. Now that I am done I shall extract my hair from my mouth receptacle."
19:43:32 <elliott> --Gregor's actual thoughts.
19:45:16 <Sgeo> I think I'm going to switch to AbiWord
19:47:02 <olsner> to me it looks more like Gregor is saying "Hey, how do you like my hair? It's real."
19:47:24 <olsner> maybe he hasn't realized that real hair is completely normal and quite common
19:47:35 <elliott> My wig is even more shameful :(
19:49:27 * Sgeo knows someone who wears a wig
19:50:28 <elliott> 11:23:49: <Phantom_Hoover> oklopol, also your ban in #jesus has expired.
19:50:52 <olsner> more importantly, he was in #jesus?
19:51:03 <elliott> like rainbows and sunshine.
19:52:30 <elliott> 11:53:12: <oklopol> well you know because i could've used my "wtf, you have multiple identity elements smiley" o=oO=O
19:52:30 <elliott> 11:53:34: <oklopol> yeah, i have a smiley for everything.
19:52:58 <elliott> `addquote <oklopol> well you know because i could've used my "wtf, you have multiple identity elements smiley" o=oO=O <oklopol> yeah, i have a smiley for everything.
19:53:00 <HackEgo> 496) <oklopol> well you know because i could've used my "wtf, you have multiple identity elements smiley" o=oO=O <oklopol> yeah, i have a smiley for everything.
19:53:05 <olsner> elliott: except the comment saying it was "quoted without comment"?
19:53:18 -!- Sgeo_ has joined.
19:53:35 <Sgeo_> Fucking crap Internet connection
19:53:45 <Sgeo_> Maybe it's the router's fault
19:54:32 <elliott> 12:47:06: <oerjan> seems not. but then google changes their APIs like others change shirts, iiuc
19:54:33 -!- Sgeo has quit (Ping timeout: 255 seconds).
19:54:37 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/bin/google
19:55:19 <Gregor> Google search doesn't have an API.
19:55:34 <oerjan> <elliott> "Mm, what a delicious meal of hair. Now that I am done I shall extract my hair from my mouth receptacle." <-- clearly hair is the fnarfiest of all substances, and it is only through force of will that Gregor still has any. which shows we should fear his willpower.
19:55:46 <elliott> 13:10:17: <coppro> elliott: http://www.youtube.com/user/dWhoFan9#p/c/C6995500E1B2A0ED/10/XNplESJ8gss
19:56:05 <elliott> 13:03:34: <Phantom_Hoover> Minecraft chests have a maximum density of 2 million times that inside a supermassive black hole.
19:56:34 <elliott> 13:12:09: <Phantom_Hoover> coppro, I love the part where it transfers into what I shall call forever the Scottish Hamster section.
19:56:37 <pikhq_> Gregor: https://code.google.com/apis/customsearch/v1/overview.html
19:56:51 <Phantom_Hoover> elliott, all would be revealed if you read the log for like 10 more lines.
19:56:56 <pikhq_> They charge, which is t3h lame.
19:56:58 <elliott> Phantom_Hoover: ur mom is shit
19:57:09 <Gregor> pikhq_: I right, yeah, no FREE API.
19:57:11 <elliott> Phantom_Hoover: but what _is_ the scottish hamster section.
19:57:34 <Phantom_Hoover> Seriously, the link I gave in the log illustrates it far better than I can with words.
19:57:42 <oerjan> <Gregor> Google search doesn't have an API. <-- well output format, then.
19:57:45 <pikhq_> I'm not entirely sure why they *would* charge, though.
19:58:42 <Gregor> pikhq_: The ads on that site are their #1 business, they don't want somebody making lulnoadsgoogle.com that just uses the Google API to do searches without showing ads or sponsored results.
19:59:29 <pikhq_> Gregor: Of course, it'd be trivial to do that anyways.
19:59:50 <Gregor> pikhq_: They do what they can :P
20:00:04 <fungot> oerjan: fnord/ fnord/ fnord is fnord is a mnemonic for doing exactly that. http://srfi.schemers.org/ srfi-8/?
20:03:00 <fungot> elliott: oh yeah, been wanting to do
20:03:05 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
20:06:00 <elliott> That denotes the selected style.
20:06:14 <olsner> apparently, "mod_rewrite loop apache eats all memory" is among the top searches that point to my blog
20:06:23 <olsner> I like the idea of people searching for help to solve a problem instead finding more elaborate ways to create similar problems :)
20:07:02 <olsner> (then again "top searches" might just mean that one person searched for it once)
20:07:36 * Sgeo_ curses out Abiword
20:07:50 <Gregor> Sgeo_: Well, that lasted all of fifteen minutes.
20:08:10 <elliott> today Sgeo_ has: broken hardware; hated software, twice
20:08:32 <elliott> 15:35:56: <SgeoN1> Reallocated Sector Count is at Warning. Toolyip says Failure is a sign of imminent disk failure
20:08:32 <elliott> 15:36:44: <SgeoN1> That is not reflected in Overall Assessment, Whig just says that Disk has a few bad sectors
20:08:32 <elliott> am I reading Finnegans Wake
20:09:51 <oerjan> three disks for muster whig
20:10:09 <fizzie> zem.fi's top search for every month has quite long been "openttd logic gates" or some-such.
20:10:41 -!- asiekierkaDS has joined.
20:10:58 <fizzie> (Though there are often people who seem to be actually trying to play the game.)
20:11:26 <fungot> asiekierkaDS: it would be
20:11:28 <oerjan> clearly today is return of old friends day
20:11:43 <fungot> monqy: how have we just called ep1 with an argument m that halts if it doesn't include the srfi title) etc.? can't we provide the same kind of purpose), decided to wget fnord to see if it helps
20:11:43 <oerjan> asiekierkaDS: fungot :P
20:11:43 <fungot> oerjan: i like the alternative of designing a bf cpu too. ( unfortunately, it's not
20:11:48 <fungot> elliott: i have yet to demonstrate that the sml community has less productive power than the real chunk of meat.
20:11:53 <elliott> `addquote <fungot> elliott: i have yet to demonstrate that the sml community has less productive power than the real chunk of meat.
20:11:54 <fungot> elliott: riastradh is larceny supposed to launch fast?" " why not a wind elemental
20:11:55 <HackEgo> 497) <fungot> elliott: i have yet to demonstrate that the sml community has less productive power than the real chunk of meat.
20:12:35 <olsner> to activate the fun, you just say fungot?
20:12:35 <fungot> olsner: ( define ( foo) fnord, y) .6 fnord, y) with the chicken post.
20:13:00 <elliott> olsner: yes. then you got the fun.
20:14: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/
20:14:32 <elliott> Gregor: Hey, prgmr has good latency.
20:14:47 <Gregor> elliott: SO DOES YOUR MOM
20:15:14 <olsner> fungot: your previous fun ran out of fun, try again please
20:15:14 <fungot> olsner: and it might well use some fnord or something. they killed a lot of motion in them? second, is there a short way to make a data/ value name
20:15:23 <elliott> Gregor: hmm, the Debian installation seems quite minimal
20:15:37 <Gregor> elliott: It is. Install whatever you want :P
20:15:56 <elliott> Gregor: I'm just wary because there's no "trash the system and reinstall it" button like there is with Slicehost because it's all manual :-P
20:16:31 <monqy> what is it with fungot and fnord
20:16:32 <fungot> monqy: the instruction awe which multiplies every point of memory to use for the next 8 hours.
20:16:40 <olsner> asiekierkaDS: still wrong kind of quote
20:17:20 <Deewiant> monqy: fnord is used for words that occur few times (at most once?) in the corpus
20:18:08 <oerjan> <fizzie> I think they may be... I don't want to say lying, but perhaps sort of slightly tweaking the truth there.
20:20:08 <oerjan> asiekierkaDS: HackEgo creates a random user to run each command under
20:21:16 <oerjan> asiekierkaDS: it's also sandboxed in a couple of other ways, so not very high :P
20:22:13 <oerjan> asiekierkaDS: it doesn't have root, no. i assume.
20:22:52 <HackEgo> 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ tmpdir.1976 \ тэкст
20:22:53 <HackEgo> 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ tmpdir.1988 \ тэкст
20:23:12 <HackEgo> 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ tmpdir.2118 \ тэкст
20:23:35 <HackEgo> babies \ bin \ paste \ tmpdir.2289
20:23:37 <HackEgo> /bin/rm: cannot remove `/tmp/hackenv.2302': Function not implemented
20:23:38 <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/
20:23:46 <HackEgo> babies \ bin \ paste \ tmpdir.2467
20:23:51 <HackEgo> 1 \ babies \ bin \ bluhbluh \ env \ foo \ paste \ ps \ quine.pl \ quine2.pl \ quine3.pl \ quotes \ quotese \ tekst \ tmpdir.2565 \ тэкст
20:23:59 <HackEgo> Linux codu.org 2.6.32-5-xen-amd64 #1 SMP Tue Mar 8 00:01:30 UTC 2011 x86_64 GNU/Linux
20:25:39 <elliott> Hmm, I wonder why Debian sudo adds a sudo group instead of a wheel group.
20:25:43 <elliott> asiekierkaDS: new versions introduce bugs too.
20:25:49 <elliott> As in, why "sudo" instead of "wheel".
20:26:03 <Sgeo_> AbiWord at least isn't bloated
20:26:23 <asiekierkaDS> but usually (exception: minecraft) more are fixed than introduced
20:26:29 <Sgeo_> I was only complaining that it kept crashing when trying to read some .odt that may not have even been intended as anything other than recovery junk
20:26:36 <elliott> asiekierkaDS: citation needed
20:26:46 <Phantom_Hoover> <elliott> asiekierkaDS: new versions introduce bugs too.
20:26:57 <Phantom_Hoover> I thought asiekierka had made a DS when he made that./
20:27:09 <elliott> Yes. That is a thing that happened.
20:27:11 <Phantom_Hoover> And the new version literally did nothing but introduce bugs.
20:29:09 <pikhq_> elliott: Hmm. Maybe it has something to do with how GNU su doesn't support wheel?
20:30:53 -!- zzo38 has quit (Remote host closed the connection).
20:30:57 <elliott> What does adding a system user even do in comparison to adding a normal user
20:31:06 <elliott> Just gives it a different UID?
20:31:23 <elliott> And doesn't put it in any groups other than nogroup
20:31:30 <elliott> And gives it the shell /bin/false
20:32:36 <pikhq_> elliott: Yeah, by convention "system" accounts and "user" accounts have different ranges of UIDs.
20:32:51 <pikhq_> Things like GDM use this when listing the user accounts on a system.
20:33:00 <elliott> Hmm, it's a pain that HOME doesn't get set when you do "sudo -s -u"
20:34:14 <pikhq_> There's also -i, which simulates a login.
20:39:52 <Sgeo_> Ugh, the atheist I don't like in #jesus is awake
20:40:16 <elliott> Sgeo_: That annoying guy me and oklopol complained about?
20:43:26 <Sgeo_> Ok, so he wrote only one or two lines
20:43:51 -!- Taneb has quit (Quit: Taneb).
20:44:02 -!- Taneb has joined.
20:46:36 <Sgeo_> <esaym153> luke-jr: you know of any good zlib tutorials out there? I am too lazy to read the docs..
20:46:36 <Sgeo_> <Krynn> zlib is the work of the devil esaym153
20:46:36 <Sgeo_> <Sgeo_> Krynn, sometimes, you're downright annoying
20:46:36 <Sgeo_> <Krynn> I know. :}
20:46:36 <Sgeo_> <Krynn> Sometimes I aim to be
20:47:53 <Sgeo_> Dropping my laptop is probably not the best thing that could have happened to it
20:55:19 <oerjan> it may not even be in the top ten
21:15:32 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:20:16 -!- asiekierkaDS has quit (Ping timeout: 246 seconds).
21:28:04 -!- augur has quit (Remote host closed the connection).
21:34:23 -!- pumpkin has joined.
21:34:23 -!- pumpkin has quit (Changing host).
21:34:23 -!- pumpkin has joined.
21:36:42 -!- copumpkin has quit (Ping timeout: 255 seconds).
21:38:30 -!- pumpkin has quit (Client Quit).
22:00:26 -!- Taneb has quit (Remote host closed the connection).
22:01:05 -!- boily has quit (Ping timeout: 260 seconds).
22:07:47 -!- oklofok has joined.
22:10:19 -!- oklopol has quit (Ping timeout: 246 seconds).
22:16:37 -!- augur has joined.
22:17:30 -!- Tritonio has joined.
22:20:27 -!- Tritonio has quit (Client Quit).
22:23:45 -!- cheater_ has joined.
22:28:34 -!- Phantom__Hoover has joined.
22:29:03 -!- Phantom__Hoover has quit (Client Quit).
23:14:38 <oklofok> maybe i shouldn't have eaten that cheese
23:20:59 -!- nooga has joined.
23:44:56 -!- Nisstyre has quit (Remote host closed the connection).
23:46:14 -!- Nisstyre has joined.
23:50:21 -!- nooga has quit (Ping timeout: 240 seconds).
23:54:24 -!- cheater_ has quit (Ping timeout: 255 seconds).
00:10:32 <quintopia> elliott: you may be right. i genuinely wanted to learn, but i apologize if that was insensitive, etc.
00:10:47 <oklofok> i have no idea when i did that
00:11:26 <elliott> oklofok: do you want to server
00:12:05 <oklofok> oerjan: did you hear the great news, i'm not almost sure that my characterization works
00:12:20 <oklofok> elliott: i have to watch a few more eps and get to work but sure
00:12:34 -!- pikhq_ has quit (Ping timeout: 252 seconds).
00:12:35 -!- pikhq has joined.
00:12:43 <oklofok> erm or no i don't want to server, i thought you said do i want the server
00:12:52 <oklofok> Phantom_Hoover: rewatching hustle
00:13:08 <elliott> oklofok: but we need TESTERS.
00:13:26 <oklofok> surprisingly enough, i think it's great
00:13:34 <oklofok> like every other show i've watched
00:13:47 <Phantom_Hoover> oklofok, you should totally join the official #esoteric Homestuck club.
00:14:18 <oklofok> i still don't really know what homestuck is
00:14:56 <elliott> you have to spread it to as many computers as you can.
00:15:02 <elliott> it was made by a sick, demented man known only as Satan.
00:16:08 <oerjan> <oklofok> oerjan: did you hear the great news, i'm not almost sure that my characterization works <-- freudian slip?
00:16:46 <oerjan> YOU SUBCONSCIOUS MAY DISAGREE
00:16:56 <oklofok> well i convinced one guy already
00:17:09 <oklofok> but no one at the uni so will have to wait for a while
00:17:25 <oklofok> only me and people holding summer internships
00:21:03 -!- oklopol has joined.
00:22:42 -!- oklofok has quit (Ping timeout: 252 seconds).
00:23:10 <oklopol> in my dream, i was finland
00:23:41 <oklopol> and america was trying to sleep with norway but she did not want to convert to euro, so she refused.
00:24:09 <oklopol> also norway was my cousin and america was a character from hustle
00:24:28 <oerjan> oklopol: http://satwcomic.com/ , hth
00:24:31 <oklopol> oh and i was trying to find gold at the beach inside the palace of my friend who lived in rome
00:26:56 * oerjan considers archive binging it
00:30:13 -!- pikhq has quit (Remote host closed the connection).
00:31:42 <Gregor> Yup, definitely bricked my router.
00:32:20 <oklopol> do you mean you took it in the ass from a truck driver
00:34:47 <Gregor> elliott: Trying to upgrade my (custom) firmware. Downloaded the WRT54G firmware instead of the WRT54G2 firmware.
00:35:25 <oerjan> a great day for masonry
00:38:40 -!- Phantom_Hoover has quit (Quit: Leaving).
00:39:01 -!- pikhq has joined.
00:40:53 <elliott> Gregor: I doubt "bricked" is accurate :P
00:42:46 -!- Maharba has joined.
00:43:59 -!- Maharba has left.
00:44:16 -!- elliott has set topic: Esoteric programming languages | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
00:44:22 <elliott> monqy: quick bring them back
00:44:47 <monqy> whois says otherwise
00:45:27 * oerjan checks what the previous topic was
00:45:43 <oerjan> jesus has coeliac disease?
01:08:00 <Gregor> elliott: Special JTAG cable + soldering required to unbrick.
01:08:09 <Gregor> elliott: Cost of equipment to fix router is greater than cost of a new router :P
01:08:45 <CakeProphet> elliott: not necessarily. Wouldn't Signal a t allow either discrete or continuous? Basically I write functions that except both or only one kind of signal, without having to use a typeclass to convert everything to discrete.
01:10:22 <oerjan> ^ul ((phantom types )S:^):^
01:10:23 <fungot> phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types phantom types ph ...too much output!
01:13:42 <elliott> CakeProphet: So you've achieved... the same as a typeclass.
01:13:50 <elliott> Except it requires a language extension and doesn't let anyone add new types of signal
01:19:14 -!- Lymia has joined.
01:20:45 -!- oerjan has quit (Quit: phantom types, i said!).
01:21:05 -!- Lymee has quit (Ping timeout: 240 seconds).
01:22:49 <oklopol> so often i have this dream that i have to hit someone but my punches move reeeeeally slowly
01:22:59 <oklopol> maybe i should become a boxer, i have way too much brain for my needs
01:33:49 <CakeProphet> elliott: the idea was to have a typeclass as well. But it would only have one function instead of two..
01:37:28 <CakeProphet> using only typeclasses enforced some kind of conversion in order to operate on the signal, with a single GADT I can use both kinds of signal in one function, while also having it typecheck in the case that the wrong kind of signal is used.
01:39:19 <CakeProphet> also, I think being afraid of language extensions is silly. GHC is the de facto Haskell compiler more or less.
01:39:21 <elliott> It doesn't force conversion
01:39:25 <elliott> It just forces using via an interface
01:39:35 <elliott> And language extensions are silly when there's literally no gain
01:40:52 <CakeProphet> toDiscrete :: Signal t a -> Signal Discrete a
01:41:24 <elliott> For a start, that type is way insufficient
01:41:27 <elliott> You need to give a sampling rate
01:41:45 <CakeProphet> the sampling rate isn't part of the type it's a constructor argument
01:41:46 <elliott> sample :: SampleRate -> CSignal a -> DSignal a
01:41:56 <elliott> CakeProphet: That's still not enough for toDiscrete
01:42:01 <elliott> You cannot just convert a continuous signal to a discrete one
01:42:04 <elliott> You must use a certain sampling rate.
01:42:13 <elliott> Anyway, [(Time,a)] is a much better model for a discrete signal.
01:42:17 <elliott> That doesn't force a constant sampling rate.
01:43:10 <elliott> <elliott> sample :: SampleRate -> CSignal a -> DSignal a
01:43:12 <elliott> How is that not typechecked?
01:43:21 <elliott> newtype CSignal a = CSignal (Time -> a)
01:43:26 <elliott> newtype DSignal a = DSignal [(Time,a)]
01:43:32 <elliott> instance Signal CSignal where ...
01:43:34 <CakeProphet> it requires that the argument be continuous.
01:43:35 <elliott> instance Signal DSignal where ...
01:43:51 <elliott> CakeProphet: Well, yeah, why would you want to sample a DSignal?
01:44:01 <elliott> Just treating it like a continuous signal would be a rather poor sample rate converter
01:44:18 <elliott> _Mine_ is better typechecked, because it stops you sampling non-continuous singals :)
01:44:27 <CakeProphet> I don't need to treat it like a continuous signal, I can treat it like a discrete signal and convert the sample rate.
01:44:59 <elliott> OK, so you actually have two functions.
01:45:12 <elliott> sample and convertSampleRate.
01:45:21 <elliott> convertSampleRate :: (Signal t) => SampleRate -> t -> DSignal a
01:45:32 <elliott> convertSampleRate :: (Signal t) => SampleRate -> t a -> DSignal a
01:46:03 <elliott> CakeProphet: But really, you should have
01:46:11 <elliott> sample :: SampleRate -> CSignal a -> DSignal a
01:46:18 <elliott> convertSampleRate :: SampleRate -> DSignal a -> DSignal a
01:46:40 <CakeProphet> okay fine I'll just have a multitude of functions and typeclasses when I could merge it into one type transparently.
01:46:41 <elliott> That avoids conflating the two separate functions.
01:46:53 <elliott> CakeProphet: You would have exactly one typeclass, Signal.
01:47:02 <elliott> And having a multitude of functions is a good thing, it's called a rich set of operations
01:47:12 <elliott> Sampling a continuous signal and converting the sample rate of a discrete signal are not the same thing
01:51:38 -!- oklofok has joined.
01:51:57 -!- CakeProphet has quit (Ping timeout: 276 seconds).
01:54:12 -!- oklopol has quit (Ping timeout: 264 seconds).
02:27:00 -!- augur has quit (Ping timeout: 252 seconds).
02:30:08 -!- Behold has quit (Remote host closed the connection).
02:54:38 -!- jcp has quit (Ping timeout: 250 seconds).
02:54:58 -!- jcp has joined.
02:57:15 -!- jcp|1 has quit (Ping timeout: 260 seconds).
02:59:43 -!- myndzi\ has joined.
03:01:58 -!- javawizard has joined.
03:02:48 -!- myndzi has quit (Ping timeout: 276 seconds).
03:20:08 -!- FireFly has quit (Quit: swatted to death).
03:25:31 -!- derrik has joined.
03:30:50 -!- azaq23 has joined.
03:41:32 -!- zzo38 has joined.
04:08:58 <zzo38> Finally I got DVI output to printer working correctly, using a program called "dviout".
04:10:44 <zzo38> It requires no PostScript, no raw printer codes, no PDF, no TrueType, no of that other stuff (although it does support all of these features).
04:11:38 <zzo38> How can you have a beautiful ending without making beautiful mistakes?
04:11:46 <zzo38> If at first you do succeed...try something harder.
04:36:57 <elliott> Lymia: Are you responsible for the /snow command.
04:47:05 <zzo38> What is a /snow command?
04:53:08 -!- cheater_ has joined.
04:57:53 <Sgeo_> elliott is capable of making infinity be less than 15*4
04:59:12 <Sgeo_> I need to not drown right now
04:59:32 <Sgeo_> I am? I can't tell, I'm lagging that badly
05:10:39 <pikhq> Man. I never really thought about that... Having "In God We Trust" on the US nickle in particular is quite a dick move.
05:10:53 <pikhq> (for non-Americans: Thomas Jefferson appears on the US nickle)
05:11:11 <pikhq> It's the very antithesis of the man.
05:24:08 -!- elliott has changed nick to yay.
05:24:12 -!- yay has changed nick to elliott.
05:24:41 -!- pikhq_ has joined.
05:27:25 -!- pikhq has quit (Ping timeout: 252 seconds).
05:28:40 -!- elliott has changed nick to sldjkf.
05:28:57 -!- sldjkf has changed nick to elliott.
05:31:31 -!- zzo38 has quit (Remote host closed the connection).
05:37:32 -!- elliott has changed nick to pyralspite.
05:39:17 -!- pyralspite has changed nick to elliott.
05:51:31 <cheater_> pikhq_, are you assuming brazilians know what's on the us nickle?
05:52:25 -!- fungot has quit (Ping timeout: 260 seconds).
05:53:35 -!- fizzie has quit (Ping timeout: 260 seconds).
06:03:04 <pikhq_> cheater_: No, but (unfortunately) "American" is the demonym for citizens of the USA.
06:05:38 <pikhq_> It works a bit better in Esperanto. "Usonanto", IIRC.
06:06:07 -!- copumpkin has joined.
06:06:08 -!- copumpkin has quit (Changing host).
06:06:08 -!- copumpkin has joined.
06:11:56 -!- foocraft has joined.
06:20:26 -!- derrik has quit (Quit: over and out).
06:30:45 -!- CakeProphet has joined.
06:38:07 -!- monqy has quit (Quit: hello).
06:47:23 -!- Lymia has changed nick to Lymee.
06:50:54 -!- fizzie has joined.
07:00:51 -!- CakeProphet has quit (Ping timeout: 240 seconds).
07:35:24 -!- elliott has changed nick to pyralspite.
07:35:39 -!- pyralspite has changed nick to elliott.
07:55:49 -!- foocraft_ has joined.
08:01:42 -!- BeholdMyGlory has joined.
08:03:04 -!- Phantom_Hoover has joined.
08:10:22 <Deewiant> http://www.vimprobable.org/ This guy really doesn't like Google.
08:15:18 <elliott> People actually use Scroogle?
08:21:34 -!- Lymee has quit (Ping timeout: 252 seconds).
08:21:59 <lambdabot> Phantom_Hoover: You have 2 new messages. '/msg lambdabot @messages' to read them.
08:23:15 <elliott> The paranoia isn't the thing, it's the Brandt.
08:24:02 <Phantom_Hoover> The paranoia presumably overcomes the aversion to him.
08:24:18 <elliott> More likely they've no aversion.
08:25:22 <Phantom_Hoover> I'm surprised the page didn't insult me when it looked at my user agent.
08:25:33 -!- tswett_ has joined.
08:26:26 -!- oklopol has joined.
08:30:14 -!- azaq23 has quit (*.net *.split).
08:30:14 -!- oklofok has quit (*.net *.split).
08:30:15 -!- tswett has quit (*.net *.split).
08:33:40 <Vorpal> <Deewiant> http://www.vimprobable.org/ This guy really doesn't like Google. <-- heh
08:35:55 -!- Lymee has joined.
08:35:55 -!- Lymee has quit (Changing host).
08:35:55 -!- Lymee has joined.
08:45:21 -!- azaq23 has joined.
08:45:21 -!- azaq23 has quit (Changing host).
08:45:21 -!- azaq23 has joined.
09:15:22 -!- shachaf has quit (Read error: Operation timed out).
09:23:14 -!- asiekierka has joined.
09:24:00 -!- asiekierka has quit (Client Quit).
09:24:56 -!- augur has joined.
10:02:08 -!- elliott has quit (Remote host closed the connection).
10:02:09 -!- elliott_ has joined.
10:15:23 <elliott_> http://downforeveryoneorjustme.org/
10:16:54 <elliott_> is downforeveryoneorjustme.org down for everyone or just me :D
10:17:11 <fizzie> It's just you, do-man.
10:17:18 <Deewiant> The PHP is down, the HTML isn't
10:17:26 <lifthrasiir> That depends on the universe you are observing.
10:18:20 <fizzie> Deewiant: Pure guess: some update or another has turned the short-open-tags feature off.
10:18:41 <elliott_> (That's just a ripoff of the actual site, btw)
10:23:39 <fizzie> The real site seems to be implemamented with the Google App Eggnog. (User-agent: "AppEngine-Google; (+http://code.google.com/appengine; appid: downforeveryoneorjustme)")
10:41:00 -!- BeholdMyGlory has quit (Remote host closed the connection).
10:59:58 -!- cheater_ has quit (Ping timeout: 255 seconds).
11:00:39 -!- cheater_ has joined.
11:18:08 -!- elliott has joined.
11:18:08 -!- elliott_ has quit (Read error: Connection reset by peer).
11:18:20 <elliott> Lymee: I think I should just have HashMap<World,HashSet<ChunkCoords>>
11:19:11 <elliott> Lymee: And if a world isn't in the map, we just assume every chunk is hostile.
11:21:34 -!- oerjan has joined.
11:23:47 -!- augur has quit (Read error: Connection reset by peer).
11:24:04 -!- augur has joined.
11:28:19 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
11:33:02 -!- FireFly has joined.
11:43:14 -!- ais523 has joined.
11:51:24 -!- _foocraft has joined.
11:51:46 -!- foocraft has quit (Ping timeout: 246 seconds).
11:52:37 -!- foocraft_ has quit (Quit: if you're going....to san. fran. cisco!!!).
11:55:42 -!- Phantom_Hoover has joined.
12:06:03 -!- boily has joined.
12:09:15 <ais523> elliott: <Linux coding standards> Tabs are 8 characters, and thus indentations are also 8 characters. There are heretic movements that try to make indentations 4 (or even 2!) characters deep, and that is akin to trying to define the value of PI to be 3.
12:09:25 <ais523> I'm amused that they disagree with me on style, but agree on the immutability of tab sizes
12:09:52 <elliott> ais523: Yes, obviously I have never read the Linux coding standards before
12:09:52 <Deewiant> Clearly they implicitly accept my indentation level of 3
12:11:14 <ais523> I love the way they wrote PI in uppercase
12:11:16 <ais523> because it's a constant
12:14:42 <fizzie> Deewiant: Sure, because that's PI spaces.
12:15:31 <elliott> fizzie: Deewiant: ais523: Anyone: Are there restrictions on what you can remove from collections you're iterating over in Java?
12:15:45 <ais523> elliott: IIRC yes, let me look it up
12:15:46 <elliott> I have "for (T x : hashSet) { ... }", and I want to remove x from the hashSet depending on certain conditions.
12:15:46 <Deewiant> You need to use the iterator to remove
12:15:54 <elliott> Deewiant: So no nice for syntax?
12:15:56 <Deewiant> elliott: Use an Iterator, it has a remove method
12:16:02 <Deewiant> elliott: Not that I know of at least
12:16:32 <elliott> if (!worldState.hostileChunks.contains(ChunkCoords.fromLocation(monster.getLocation()))) {
12:16:33 <elliott> if (!worldState.hostileChunks.contains(ChunkCoords.fromLocation(event.getLocation()))) {
12:16:39 <elliott> wow, those are actually the exact same line
12:16:59 <elliott> I was pasting them as two different insanely long ifs :-)
12:17:09 <elliott> Maybe I should define worldState.isInHostileChunk().
12:17:38 <ais523> elliott: yep, just checked, the rule is that you can only remove the element that you're currently on during the iteration, and can only do so via calling the remove method on the iterator
12:17:39 <oerjan> the world is in a hostile, chunky state
12:17:55 <ais523> also, you can't remove the current element more than once without going onto the next element, obviously
12:18:19 <fizzie> Most of the iterators are "fail-fast", in that they (try to) start throwing ConcurrentModificationExceptions if you mangle the collection you're iterating over by any other means than the iterator.
12:19:01 <ais523> fizzie: that's not guaranteed
12:19:16 <ais523> I just thought that the warning would be useful
12:19:31 * elliott is slightly worried that ais523's first reaction was "Why on earth is elliott coding Java???"
12:19:36 <elliott> or maybe it was, just internally only
12:20:08 <ais523> elliott: I saw your code paste before I saw the first statement that implied Java
12:20:08 <ais523> because it took me several seconds to switch to the IRC window
12:20:18 <ais523> and the code paste suggested an obvious context (something Minecraft-related)
12:20:29 <elliott> <elliott> fizzie: Deewiant: ais523: Anyone: Are there restrictions on what you can remove from collections you're iterating over in Java?
12:20:29 <elliott> <ais523> elliott: IIRC yes, let me look it up
12:20:32 <elliott> No, you knew it was Java :-P
12:20:36 <elliott> That was before any pastes
12:20:46 <ais523> elliott: aha, that must be the zzo38 reaction
12:20:51 <ais523> in that I didn't look for a context until it became necessary
12:21:10 <ais523> in this channel, my mind didn't make the connection between "asking questions about Java" and "writing Java"
12:21:14 <ais523> not immediately, at least
12:21:24 <elliott> I'm even using Eclipse :-|
12:21:41 <ais523> in fact, it would be quite plausible that you were writing a different language with iterable collections, and wanted to know what Java did so you could do something different
12:21:50 * elliott decides to stare at Eclipse for a few hours until it tells him how many lines of Java he's written today. (This is how you solve problems with Eclipse.)
12:21:56 <elliott> (This is what I have learned.
12:22:35 <ais523> also, Java badly needs a Java-specific IDE, it's too library-dense to easily use otherwise
12:22:35 <ais523> although I generally use NetBeans (because it's what's taught here, and I need to use the technology I'm meant to teach)
12:22:56 <elliott> Deewiant: Didn't have a convenient website last I looked
12:22:59 <elliott> ais523: wow, only 228 lines
12:23:08 <elliott> probably because I had to go through an IDE form just to create a lambda
12:23:25 <ais523> you didn't, you could (and probably should) have used a nested class
12:23:38 <ais523> or does that need a form in Eclipse?
12:23:47 <elliott> I think it can have one, if you want
12:23:51 <elliott> ais523: they're rather long lambdas, anyway
12:23:52 <fizzie> You can just type in code, though.
12:24:02 <elliott> and Java files seem to be divided into two types:
12:24:07 <elliott> - hundreds of lines long, everything in one class
12:24:13 <elliott> - thirty lines long, about five hundred classes
12:24:15 <fizzie> It does have "make a new (inner or not) class" forms though.
12:24:17 <ais523> in NetBeans, you can highlight a statement and then click on the left margin, and choose the option to enclose it in a Runnable
12:24:47 <ais523> elliott: you typically only use one class per file, not counting inner classes
12:24:57 <ais523> some are much longer than others
12:25:20 <elliott> I'm writing "practical", impure, not-very-theoretically-soundly-organised code, in Java, in an object-oriented style (sort of), for a buggy game
12:25:30 <elliott> I think, by my own account, my soul should have vanished in a few hours
12:25:48 <fizzie> elliott: You have become the very thing you fought for! Abyss, gazing back, and so on!
12:25:48 <ais523> e.g. the longest class in Jettyplay is 2122 lines long, many of which are autogenerated
12:26:06 <ais523> fizzie: the first version was funnier
12:26:09 <elliott> Eclipse is actually quite nice, to be honest
12:26:15 <ais523> `addquote <fizzie> elliott: You have become the very thing you fought for!
12:26:16 <elliott> I mean, as nice as a Java IDE can be
12:26:18 <HackEgo> 498) <fizzie> elliott: You have become the very thing you fought for!
12:26:56 <elliott> I do like how builds happen completely automatically, at least
12:26:57 <ais523> the second longest is 2076 lines long, after I deleted half of it (it originally came from someone else's program), but it's mostly a state machine and that's to be expected of state machines
12:27:04 <elliott> and all the errors appear without asking
12:27:11 <ais523> elliott: NetBeans does that too, I imagine all Java IDEs do
12:27:23 <elliott> well, it's always a pain with Emacs
12:27:36 <ais523> not IME, but it depends on what language you're using
12:27:42 <ais523> flymake is incredibly flaky with C, but works very well with Perl
12:29:10 <ais523> probably because C is a language not very conducive to that sort of thing (C++ is even worse)
12:29:53 <elliott> oh, I forgot the last element of the soullessness trifec...n-fecta
12:30:03 <elliott> it's using an "enterprisey" framework :(
12:32:17 <ais523> and Jettyplay isn't, ironically enough given the name
12:32:23 <ais523> (the "e" stands for Enterprisey)
12:32:40 <elliott> at least the enterprisey framework is called "bukkit"
12:32:42 <ais523> I suppose it isn't all that enterprisey really, just overengineered
12:32:46 <elliott> there is some drop of humour left in my new terrible world : (
12:33:02 <Phantom_Hoover> Bababadalgharaghtakamminarronnkonnbronntonnerronntuonnthunntrovarrhounawnskawntoohoohoordenenthurnuk
12:33:18 <elliott> dammit, these pigs know they're going to evaporate if they walk too far
12:35:18 <elliott> "Tired of monsters spawning on one or more of your worlds? Don't like the health regeneration that comes with spawn-monsters=false? With NoRegen, you can enjoy monster-free world(s), and still be without the boring health regeneration!"
12:35:20 <elliott> NO THIS IS THE OPPOSITE OF WHAT I WANT
12:38:41 <oerjan> Phantom_Hoover: gesundheit
12:39:26 <Phantom_Hoover> I don't think anyone has ever actually read Finnegan's Wake.
12:39:48 <Phantom_Hoover> The actual book is probably completely different to every synopsis on the internet.
12:39:58 <oerjan> Phantom_Hoover: someone, somewhere, somewhat like zzo probably has.
12:40:01 <ais523> I didn't think you could make a synopsys of it
12:40:24 <Phantom_Hoover> What everyone *thinks* it contains is just an aggregate of summaries which has evolved into a completely different story.
12:42:19 <ais523> meanwhile, I saw a story recently about people benchmarking Firefox 8
12:42:30 <ais523> what is up with those version numbers? they're releasing major versions faster than they used to release minor versions
12:42:44 <ais523> so it isn't even a simple minor->major shift
12:42:56 <Deewiant> They changed their release schedule
12:43:02 <Deewiant> One major version every 3 months, IIRC
12:44:13 <ais523> I'm still on the 3 series (with Ubuntu doing security patches)
12:44:14 <fizzie> I think "8" was what they're calling the "unstable", or wasn't it so?
12:44:18 <Deewiant> I remember back when Phoenix 0.1 was A Big New Thing. You know, eight years ago.
12:44:32 <elliott> <Phantom_Hoover> I don't think anyone has ever actually read Finnegan's Wake.
12:44:44 <fizzie> I remember when I got Netscape, and it was a lot fancier than Mosaic.
12:45:02 <fizzie> They're at 5 now and have 6 and 7 on the roadmap, IIRC.
12:48:29 <oerjan> so will they be starting with Firefox 3000 or something equally silly within five years?
12:50:09 <oerjan> "Ok we just made Firefox Busy Beaver. wtf are we going to call the next version?"
12:50:55 <lifthrasiir> after Firefox 5, they will use the Fibonacci numbers so that the version number growth is exponential
12:51:13 <fizzie> 6 comes out in August when 7 moves from AURORA to BETA, and 8 moves from NIGHTLY to AURORA.
12:51:16 <oerjan> "and why are we being overrun by ubuntu lawyers?"
12:52:02 <lifthrasiir> within years we will be able to safely use a floor of a logarithm of the version to identify the version
12:52:03 <fizzie> I think it's supposed to be something like 2-3 months per major version number, so 4-6 major versions per year.
12:52:32 <oerjan> ok scratch that. they make Firefox Graham's Number, and want to do Busy Beaver next but _then_ are overrun by ubuntu lawyers.
12:53:13 <lifthrasiir> oerjan, to be exact, Firefox three arrow three arrow sixty-four point blabla arrow two.
12:53:36 <ais523> I don't get why they'd be overrun by Ubuntu lawyers, is it a pun I'm missing?
12:57:15 <oerjan> oh, they can pass on to transfinite ordinals then
12:57:49 -!- wth has joined.
12:58:15 -!- wth has changed nick to Guest87246.
12:59:28 -!- Guest87246 has left.
13:00:08 <oerjan> i'm really not convinced wth is the best nick, _even_ if it's probably an acronym of eir real name
13:04:27 <fizzie> Oh, it's 6 weeks per major version: https://wiki.mozilla.org/RapidRelease/Calendar
13:06:32 <fizzie> So Firefox 9 released this year, and Firefox 12 in the nightly branch; and by the end of 2012 they'll release Firefox 17, and have Firefox 20 in development in the nightly branch.
13:07:40 <ais523> what versions will the other major browsers be on by then? in particular, is Firefox's schedule outversioning Chrome?
13:08:06 <elliott> I wonder if Chrome thirteen is out yet
13:08:13 <elliott> I'm on twelve, but I haven't updated in... a few days :-P
13:08:32 <elliott> fizzie: how long until they reach three digits?
13:09:32 <fizzie> A bit less than 11 years.
13:10:14 <oerjan> by october 2012 they will have hit three digits. during the first two weeks of december it will grow to thousands of digits. what happens after that is unpredictable.
13:10:37 <fizzie> I guess it depends which sort of curve you fit in.
13:11:20 <fizzie> Eyeballing the Chrome release history in Wikipedia, it would seem to be about the same speed.
13:11:33 <ais523> hmm, I wonder if version numbering will hit singularity some time
13:11:34 <fizzie> The Firefox Singularity?
13:11:41 <elliott> <oerjan> by october 2012 they will have hit three digits. during the first two weeks of december it will grow to thousands of digits. what happens after that is unpredictable.
13:12:38 <ais523> that doesn't imply singularity
13:12:44 <ais523> it might just be going up at Ackermann speed or whatever
13:12:56 <elliott> ais523: you get the refernce, suerly
13:13:16 <ais523> meh, that's a sufficiently busted reference that I tend to ignore it
13:13:39 <elliott> ais523: it's called a _joke_
13:13:58 <ais523> but it isn't particularly funny
13:14:23 <oerjan> elliott: i'll just have to take the audience i get
13:15:41 -!- asiekierka has joined.
13:16:07 <asiekierka> i'm forced to type from netcat so i was seriousthere
13:16:45 * ais523 sends a ctcp version and waits a minute or so for asiekierka to type the reply
13:17:09 <asiekierka> i don't know how to reply to VERSIONs yet
13:17:11 <ais523> oerjan: I do reply to CTCP VERSIONs when IRCing via netcat
13:17:23 <ais523> asiekierka: NOTICE ais523 :^AVERSION netcat^A
13:17:28 <ais523> where ^A is a literal control-A
13:17:28 <asiekierka> i'm using musl libc, irssi doesn't compile for it, neither does ircii
13:17:47 <asiekierka> i'd be happy to move to anything better than netcat
13:18:00 <asiekierka> i could just get dropbear and SSH into another computer but THAT'S CHEATING
13:18:15 <ais523> why /is/ that SSH impl called dropbear?
13:18:20 <ais523> the name always confused me
13:18:22 <oerjan> asiekierka: you could use zzo38's client >:)
13:18:58 <oerjan> (admittedly it is probably better than netcat)
13:19:01 <asiekierka> not a link to the past, just an http link
13:19:09 <ais523> oerjan: it does the PONGs
13:19:24 <ais523> other than that, it's pretty similar to nc
13:19:28 <oerjan> ais523: i think it also has some completion
13:19:34 <asiekierka> i used bootstrap-linux by pikhq to get into where i'm now
13:19:49 <asiekierka> anything is better than netcat for IRCing
13:19:52 <ais523> a nice thing about Freenode is that you can type anything at all in response to a PING, even a privmsg or whatever, and it accepts it
13:20:04 <ais523> so you don't need to bother about writing perfect PONGs
13:20:10 <ais523> most servers aren't so forgiving
13:20:19 <fizzie> The perfect PONG. Long thought to be just a myth.
13:20:26 <ais523> and it won't even bother to ping you if you're sending a lot
13:20:33 <elliott> <ais523> why /is/ that SSH impl called dropbear?
13:20:44 <elliott> also, what did you do, pikhq_ :(
13:21:09 <ais523> because programs ideally should either a) have names that are descriptive of what they do so you don't have to look them up, or b) have names that are unique enough to search on
13:21:14 <ais523> and "dropbear" doesn't fulfil either requirement
13:21:31 <ais523> (fulfilling both would be ideal, but is typically very difficult)
13:22:04 <elliott> ais523: Find me another piece of software called Dropbear
13:22:14 <oerjan> asiekierka: hm i went to http://zzo38computer.cjb.net/index.php/ but i cannot find a link to his client. anyway, it was more of a joke.
13:22:34 <ais523> elliott: why software? the word comes up in other contexts
13:22:41 -!- FireFly has quit (Quit: swatted to death).
13:22:41 <elliott> asiekierka: do you even have php intsalled
13:23:17 <elliott> ais523: Windows: bad software name; Macintosh: bad software name; Gnome: bad software name
13:23:26 <elliott> ais523: Eclipse: bad software name
13:23:33 <elliott> <any software name ever>: bad software name
13:23:49 <ais523> elliott: Windows is at least vaguely descriptive
13:23:52 <ais523> the others aren't ideal
13:24:08 <ais523> in fact, "Microsoft Windows" is a pretty good name for what it does
13:24:16 <ais523> asiekierka: that's a good name too
13:26:49 <fizzie> I've always just guessed the name is intended to evoke adjectives such as "lean", "fast", "vicious". Haven't seen it documented anywhere.
13:26:57 <fizzie> They do have a mailing list if you want to know.
13:35:04 -!- asiekierka has quit (Ping timeout: 252 seconds).
13:35:19 <oerjan> SOMEONE FORGOT TO PONG
13:35:38 <elliott> ais523: oh, I've been doing a bad Java thing in my bad Java :<
13:35:55 <elliott> I've been using HashSet as a type on the LHS, just because that's my implementation
13:36:45 -!- asiekierka has joined.
13:37:12 <asiekierka> i had to mod it a bit, though - minor defs.h change + adding u_xxxx
13:37:13 <ais523> ":propelling chess in the 21st century and beyond!"
13:37:17 <ais523> I think it's the colon that amuses me the most about that
13:37:33 <ais523> as if ircII was meant to have its version number automatically parsed by something that used IRC syntax
13:38:06 <ais523> well, it depends on if you're doing anything with it that would require a HashSet in particular
13:40:35 -!- asiekierka has left.
13:40:50 <fizzie> HashSet<T> doesn't really have any methods that are not specified by Set<E>. Well, except clone().
13:41:12 <fizzie> (But that's from Object.)
13:41:31 <elliott> Loads the configuration file. All errors are thrown away.
13:41:31 <elliott> Saves the configuration to disk. All errors are clobbered.
13:41:53 <fizzie> What does save() return?
13:42:36 <fizzie> I was debating whether to clarify that.
13:42:48 -!- asiekierka has joined.
13:42:48 <fizzie> What does the boolean signify?
13:43:31 <fizzie> Deewiant: But it "clobbers" all the errors.
13:44:06 <elliott> That's the Bukkit YAML configuration processor
13:44:17 <elliott> I can't help shake the feeling that it's not what everybody uses
13:44:18 <Deewiant> That doesn't mean that it won't tell you whether there were any
13:44:56 <fizzie> Deewiant: Well, I guess you could argue so. But to me a it's not a real clobbering if you can still tell there was something that got clobbered.
13:45:45 <fizzie> Deewiant: You are, however, correct. "Returns: true if it was successful"
13:46:09 <fizzie> I guess that's the difference between "throwing away" and "clobbering" the errors.
13:46:36 <Deewiant> I don't know, it can be good to leave some kind of evidence of one's clobbering skills
13:46:55 <elliott> `addquote <fizzie> Deewiant: Well, I guess you could argue so. But to me a it's not a real clobbering if you can still tell there was something that got clobbered.
13:46:56 <HackEgo> 499) <fizzie> Deewiant: Well, I guess you could argue so. But to me a it's not a real clobbering if you can still tell there was something that got clobbered.
13:48:53 -!- augur has changed nick to augurAFK.
13:52:28 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:54:41 -!- Lymee has quit (Ping timeout: 260 seconds).
14:04:27 -!- nooga has joined.
14:04:41 -!- asiekierka has left.
14:07:34 -!- Lymee has joined.
14:32:56 -!- derrik has joined.
14:33:14 -!- copumpkin has joined.
14:42:43 -!- augurAFK has changed nick to augur.
14:47:47 -!- derrik has left.
14:52:22 -!- oerjan has quit (Quit: Later).
14:55:40 <ais523> hmm, does anyone here know where the documentation for the x86 Linux ABI (that is, the userspace to kernel ABI, not the unstable in-kernel one) is in the kernel source tree?
14:55:58 <ais523> the main documentation section just says that it's arch-specific, and I can't find it in the arch documentation sections
14:59:21 <Vorpal> ais523, there is the header with syscall numbers I guess
14:59:29 <ais523> Vorpal: there is, and I'm aware of it
14:59:35 <Vorpal> ais523, not sure where they document which registers to prod and so on
14:59:40 <ais523> but syscall numbers doesn't give things like number/type/order of parameters, or even which registers they're passed in
14:59:49 <Vorpal> exactly what I just said yeah
14:59:51 <ais523> and it's hard enough working out the difference between ax and orig_ax
15:00:03 <Deewiant> The calling convention is standard C
15:00:15 <ais523> (the header in question documents it as "this information is only provided for gdb", which isn't massively useful)
15:00:35 <Vorpal> Deewiant, uh. Not exactly? It use pushing various registers then doing a SYSCALL iirc
15:01:02 <Deewiant> I have the x86-64 register convention here if you care
15:01:20 <ais523> even though I'm on a 64-bit system myself
15:01:26 <Vorpal> I have x86-64 ABI docs too here.
15:01:37 <ais523> commercial precompiled Linux binaries tend to be 32-bit, right?
15:01:50 <Vorpal> ais523, depends. I seen both.
15:02:22 <ais523> (this is for the same program that errors out if a process it creates doesn't have PID 2, btw)
15:02:33 <elliott> ais523: what are you trying to do? :-P
15:02:44 <ais523> err, hmm, I was hoping you wouldn't ask that
15:02:57 <ais523> basically, it's a similar idea to the one behind cryopid (which incidentally doesn't work)
15:02:58 <Vorpal> ais523, I think generally you call a function in that high-mapped vdso, which then does syscall, sysenter or interrupt depending on what the processor supports
15:03:03 <elliott> Distribute a commercial precompiled Linux binary that errors out if a process it creates doesn't have PID 2?????
15:03:27 -!- CakeProphet has joined.
15:03:28 -!- CakeProphet has quit (Changing host).
15:03:28 -!- CakeProphet has joined.
15:03:31 <ais523> elliott: nah, the idea is that you operate on an existing binary, and try to run it in a completely reproducible fashion, no matter what else is going on in the system
15:03:35 <Vorpal> elliott, good one, pid 2 is always some kernel internal thingy :P
15:03:37 <ais523> so you can rewind it and start again
15:03:44 <ais523> Vorpal: not in my case
15:03:49 <Vorpal> root 2 0.0 0.0 0 0 ? S Jul07 0:00 [kthreadd]
15:03:51 <elliott> Vorpal: <ais523> (this is for the same program that errors out if a process it creates doesn't have PID 2, btw)
15:03:56 <Vorpal> it is that on all the computers I checked
15:03:59 <ais523> when I tested the code, the process always did have PID 2
15:04:06 <ais523> or think it did, at least
15:04:15 <ais523> the trick is, that nowadays, Linux PIDs have namespaces
15:04:21 <ais523> so you just run it in a different namespace to everything else
15:04:25 <Vorpal> ais523, why would it error out if you don't get PID2
15:04:34 <ais523> because it means something's gone wrong with the reproducibility
15:04:42 <ais523> a lot of programs will notice if you randomly change their PID under them
15:04:55 <ais523> cryopid gets around the problem by, umm, opening /dev/kmem and setting the PID inside the kernel by hand
15:05:02 <Vorpal> ais523, wait a second, each time a program starts it get a different PID usually
15:05:06 <ais523> which is a bad idea for all sorts of reasons, not least that it doesn't check that the PID is already in use
15:05:17 <elliott> <ais523> cryopid gets around the problem by, umm, opening /dev/kmem and setting the PID inside the kernel by hand
15:05:28 <Vorpal> anyway I don't even HAVE a /dev/kmem
15:05:34 <ais523> elliott: I /hope/ it isn't using that code any more, because /dev/kmem no longer exists
15:05:38 <ais523> just /dev/kcore, which is readonly
15:06:03 <ais523> it looks like they were working on a workaround, which intercepts syscalls to getpid and ioctl and changes the PID returned
15:06:17 <ais523> but that seems only really partial, in that a huge number of other things know about PIDs (fcntl, for instance)
15:07:49 <Vorpal> ais523, wait, is cryopid a way to freeze a process? Hm
15:08:00 <ais523> Vorpal: yes, and restart it later
15:08:09 <Vorpal> I think such functionality is built in in the linux kernel nowdays
15:08:20 <Vorpal> used for stuff like suspend/resume, and many other things
15:08:30 <ais523> although when I tried to compile it, it didn't compile, when I fixed the compilation (changing the header files included and the names of registers), it spouted errors, and the resulting program segfaulted
15:08:41 <Vorpal> ais523, but what would it do if the PID in question is already in use?
15:08:46 <ais523> and that doesn't let you freeze a process and then restart it on another machine
15:08:55 <ais523> Vorpal: it'd give it the same PID as the process already in use
15:09:01 <ais523> as far as I can tell, this is not a good idea
15:09:02 <Vorpal> ais523, that sounds dangerous
15:09:17 <ais523> and the syscall to create processes with duplicate PIDs was removed a while ago (and restricted to process 0 before that, and restricted to root before that)
15:10:01 <Vorpal> ais523, there is no PID 0 as far as I can tell?
15:10:10 <ais523> If CLONE_PID is set, the child process is created with the same process ID as the calling process. This is good for hacking the system, but otherwise of not much use. Since 2.3.21 this flag can be specified only by the system boot process (PID 0). It disappeared in Linux 2.5.16.
15:10:15 <ais523> I don't think PID 0 appears in /proc
15:10:25 <Vorpal> ais523, what is PID 0 supposed to be? Kernel itself?
15:10:26 <ais523> nor do I think that signalling it would do anything particularly sane
15:10:45 <ais523> oh, right, you can't signal it
15:10:51 <Lymee> PID 0 is init, isn't it?
15:10:55 <ais523> if you give an argument of 0 to kill, you kill yourself
15:10:58 <Vorpal> Lymee, no that is PID 1
15:11:01 <ais523> or fakeinit, in my case
15:11:11 <Lymee> Wait, then what's 0?
15:11:17 <ais523> (as far as I can tell, all init actually has to do is spawn a process, then call wait in a loop)
15:11:21 <Lymee> System boot process?
15:11:28 <ais523> according to that man page, yes
15:11:42 <Lymee> Something pre-init?
15:12:15 <Vorpal> from what I remember the system executes /sbin/init (or if an initramfs some other file) which at the end execs the real /sbin/init
15:12:25 <Vorpal> so I have no idea what pid 0 could be yeah
15:13:09 <ais523> hmm, I tried a search engine, it didn't seem to know
15:13:16 <ais523> I suppose it might be possible to ask in #linux or wherever
15:13:29 <Vorpal> ais523, ##linux is largely useless...
15:13:37 <Vorpal> I can say that from my own experience
15:13:41 <ais523> Vorpal: what's it about?
15:13:45 <ais523> as in, actual topic, not notional topic
15:13:52 <Vorpal> ais523, newbies asking simple questions mostly
15:14:01 <Vorpal> not at all kernel related
15:14:15 <ais523> hmm, is there a channel for the kernel in particular?
15:14:23 <Vorpal> ais523, I don't know of one, no
15:14:26 <ais523> I suppose there's kernelnewbies, which isn't on Freenode
15:14:39 <ais523> and I've forgotten which server it is on
15:14:40 <Vorpal> ais523, hm they have an irc channel? Good website though.
15:14:50 <elliott> ais523: Observation: Java is a language designed so that the majority of your variables have the exact same name as their type (or some trivial translation, e.g. List<T> -> Ts)
15:15:12 <elliott> ais523: Observation II: If you removed the names from Java and just used the types, that would be one really weird language
15:15:19 <ais523> elliott: nah, I often use types more than once
15:15:31 <elliott> ais523: I didn't say it was universal :P
15:15:34 <oklopol> well that's what natural language does all the time
15:15:42 <elliott> I'm just saying that it's surprisingly ubiquitous in Java.
15:16:00 <oklopol> which is why i've been thinking about having that in a lang
15:16:07 <elliott> it would be fun if you couldn't have (A,A) because you'd have no way to distinguish the two As
15:16:12 <Vorpal> elliott, maybe because java has 1) classes 2) lots of container types?
15:16:13 <elliott> so you'd have to find another way to construct A
15:16:20 <ais523> elliott: I think I feel an esolang coming on
15:16:28 <elliott> like, if you wanted a pair of two integers
15:16:34 <elliott> you'd have to come up with two underlying representations
15:16:36 <elliott> so that they have different types
15:16:41 <elliott> so that you could distinguish them
15:17:00 <elliott> Phantom_Hoover: nah, what kind of esolang would it be if it was that easy to circumvent?
15:17:01 -!- Taneb has joined.
15:17:16 <oklopol> haha if you had two types that have essentially the same structure, the compiler would complain that you have two identical types
15:17:43 <elliott> oklopol: "this is bits, and also this is bits, and also everything is bits. try replacing your program with just one bit."
15:18:05 <Taneb> Countdown has the letters for Linux
15:18:14 <Vorpal> elliott, hrrm... for signed integers I can only think of three representations... sign-magnitude, one-complement, two-complement
15:18:24 <Vorpal> so you can have at most three signed integers in your program?
15:18:50 <ais523> although that's a unary variant
15:18:57 <elliott> <elliott> <vorpal> whats an (N,N)
15:19:01 <Vorpal> ais523, gray-code for signed? My brain hurts
15:19:13 <ais523> Vorpal: it wraps round just like 2's-complement does
15:19:20 <Vorpal> elliott, I know what a pair is.
15:19:27 <Taneb> Signed integers can also have Base -2 inegers
15:19:38 <Vorpal> hm does "three-complement" even make sense?
15:19:38 <ais523> Taneb: good point, that's a reasonable representation
15:19:43 <ais523> Vorpal: only in base 3
15:20:03 <ais523> the terms are generally base-complement and base-minus-one-complement
15:20:10 <ais523> which are silly names really, they should be more consistent
15:20:15 <ais523> hmm, I suppose that means it makes sense in base 4 too
15:20:25 <Vorpal> ais523, what about one-complement in base 3?
15:21:23 <Gregor> http://xkcd.com/923/ <-- OK, I have to admit, this XKCD is legit funny :P
15:21:38 <oklopol> i think that's the worst one ever
15:22:07 <ais523> Gregor: I liked it too
15:22:09 <elliott> <Vorpal> elliott, I know what a pair is.
15:22:15 <Taneb> I don't get that XKCD
15:22:37 <elliott> http://en.wikipedia.org/wiki/The_Elements_of_Style
15:22:48 <ais523> you don't need to know who they are to get the joke, though
15:23:02 <elliott> ais523: in that, the joke is based around the stickler-ness
15:23:02 <ais523> I didn't, and I got it
15:23:10 <ais523> it's because the comic itself makes them out to be sticklers
15:23:19 <ais523> I thought they were fictional sticklers from it, and it still works
15:23:21 <elliott> it's still basically reference humour though
15:23:33 <elliott> ais523: you can't seriously have expected an xkcd without a reference
15:23:44 <ais523> elliott: xkcd is full of references?
15:23:58 <Taneb> I still have no idea who Ron Paul
15:23:59 <Gregor> You don't need to know who they are to get the joke ...
15:24:24 <Gregor> I mean, you need to understand that it's a prescriptivist English style manual, but everything else you can get from there.
15:24:26 <elliott> Taneb: he's the president of australia
15:24:29 <ais523> Taneb: American politician, tends to be the third most popular (and thus way behind the Democratic and Republican candidates for President)
15:24:39 <elliott> ais523: third most popular???
15:24:47 <ais523> elliott: out of the people running, I mean
15:24:50 <elliott> (and you realise Ron Paul is Republican?)
15:25:10 <ais523> most people don't bother to run against their own party when they lose the primary
15:25:25 <elliott> I'm incredibly sceptical of any statistics saying that Ron Paul is the third-most popular candidate
15:25:43 <Gregor> Ron Paul is on the republican /ticket/, he's a libertarian.
15:25:45 <elliott> Unless the sample is "reddit just before Obama looked like he was going to win".
15:25:50 <ais523> well, third = statistical fluctuation in the US
15:26:12 <ais523> I didn't actually know what his policies were, because his fans never seem to say
15:26:47 <ais523> actually, that's true of all sides in American politics, I think
15:26:53 <ais523> both the really big ones and the really little ones
15:27:00 <ais523> their favourite politicians are right, regardless of what they believe
15:27:16 <oklopol> i liked http://xkcd.com/920/ way more than that penis joke
15:27:35 <elliott> Java really needs shorthand for "if (x instanceof T) { T y = (T) x; ... } else { ... }"
15:27:36 <Taneb> There's a penis joke in that?
15:27:39 <oklopol> don't recall seeing anyone make that point
15:27:51 <elliott> "cast (x as T y) { ... } else { ... }", say
15:28:18 <elliott> Taneb: as you can see, we are always on-topic.
15:28:21 <ais523> hmm, 920 is an interesting observation that isn't particularly funny, just like most of XKCD
15:28:22 <Gregor> oklopol: But is anything ever really penis enough?
15:28:29 <Vorpal> elliott, is java statically or dynamically typed? Or some mix?
15:28:36 <Gregor> ais523: It isn't particularly interesting either.
15:28:37 <ais523> reading XKCD for the observations can be interesting, if not funny
15:28:40 <oklopol> ais523: interesting observation = definition of funny
15:28:48 <Lymee> Vorpal, statically.
15:28:54 <Gregor> Vorpal: ... static. Having casts does not make you dynamically typed :P
15:28:55 <elliott> I wonder if I could get Eclipse to automatically add imports when there's only one option... rather than making me tell it to
15:29:07 <elliott> Man, why am I even coding Java.
15:29:11 <fizzie> elliott: "try { T y = (T) x; ...; } catch (ClassCastException) { ... }" :p
15:29:24 <elliott> fizzie: That doesn't handle NullPointerExceptions :)
15:29:24 <ais523> oklopol: did you know that children of fighter pilots of a particular nationality (was it Danish?) are 80% girls?
15:29:34 <elliott> fizzie: And also, catches ClassCastExceptions in the "...".
15:29:36 * ais523 waits for hilarious laughter
15:29:37 <fizzie> elliott: catch (Throwable) { ... }
15:29:58 -!- cheater_ has quit (Ping timeout: 255 seconds).
15:30:11 <fizzie> elliott: ON ERROR RESUME NEXT
15:30:13 <ais523> I, umm, invoke Sturgeon's Law
15:30:24 -!- cheater_ has joined.
15:32:01 <elliott> How is this still less than three hundred lines :-/
15:32:07 <oklopol> ais523: okay interesting observation + puzzle
15:32:24 <ais523> which one was Poe's again?
15:32:26 <oklopol> i suppose xkcd usually lacks the latter, just like your joke.
15:33:01 <ais523> wait, that's the one I thought was Sturgeon's Law
15:33:05 <Taneb> Poe's was about parodies
15:33:12 * ais523 looks up sturgeon's law
15:33:19 <ais523> wow, that was relevant by mistake
15:34:08 <oklopol> so here's the joke version: "if i had to fuck a random person in the ass i'd make sure the probability measure is heavy on children of danish fighter pilots!"
15:34:59 <ais523> that is still not funny
15:35:05 <ais523> except in banal bizarreness
15:35:16 <oklopol> actually it's very funny, although not because i made it a puzzle
15:35:37 <oklopol> but because of the "accidental" pedophilia
15:35:41 <ais523> I am laughing in real life right now, but not because what you said was actually funny
15:35:49 <ais523> more at the conversation in general
15:35:59 <Taneb> Because a ninja is tickling you?
15:36:18 <ais523> although if a ninja were involved, I'm not convinced I'd be able to tell
15:36:43 -!- cheater_ has quit (Ping timeout: 255 seconds).
15:36:54 <elliott> <oklopol> so here's the joke version: "if i had to fuck a random person in the ass i'd make sure the probability measure is heavy on children of danish fighter pilots!"
15:36:54 <elliott> <ais523> that is still not funny
15:36:59 <elliott> although i'm not sure why...
15:37:10 <oklopol> i thought it was some of my best work this week
15:37:15 <ais523> I don't think it's because of the "joke", which isn't funny, but because of the conversation as a whole, which is
15:37:19 <oklopol> perhaps even better than my smileys yesterday
15:37:26 <elliott> oklopol: you should do a standup show, thanks
15:37:36 <Taneb> Explaining recursion is tricky...
15:37:44 <elliott> Taneb: try explaining recursion
15:37:58 <oklopol> hey! i thought really hard about algorithmically jokifying that and still adding a double entendre
15:38:38 <oklopol> hey! i had to think really hard with my brain to manage to algorithmically jokify that and still adding a double entendre
15:38:46 <Taneb> Turned out he got recursion, he just didn't get the return statement
15:39:26 <ais523> Taneb: wait, do you teach programming too?
15:39:31 <ais523> oklopol: stop masturbating
15:39:39 <oklopol> elliott: my standup comedy show is here
15:40:01 <Taneb> If I was professional, I wouldn't be on IRC at the same time
15:40:07 <ais523> and the second was, umm, you realising that the first was self-embarassing?
15:40:17 <ais523> second line, that is, not second joke
15:40:36 <elliott> `addquote <Taneb> Turned out he got recursion, he just didn't get the return statement
15:40:37 <HackEgo> 500) <Taneb> Turned out he got recursion, he just didn't get the return statement
15:40:38 <oklopol> you did get my fuck joke right
15:40:38 <ais523> elliott: it's an improvement over /parting to protect me from a lethal facepalm
15:41:00 <ais523> which I did recently (it involved the usual suspect)
15:41:01 <elliott> ais523: I HAVE ABSOLUTELY NO IDEA ABOUT WHICH EVENT YOU COULD POSSIBLY BE REFERRING TO.
15:41:11 <ais523> elliott: good, don't read recent logs, I doubt you'll survive
15:41:17 <oklopol> SEE I CURSED BY SAYING FUCK AND THEN I SAID FUCK AGAIN SO I *RE*CURSED
15:41:18 <elliott> ais523: I DEFINITELY DIDN'T
15:41:19 <elliott> is this channel usually so confusing btw, or am i just tired
15:41:31 <ais523> oklopol: oh, I was thinking of an entirely different joke
15:41:43 <ais523> elliott: it isn't, it's more confusing than usual today
15:41:49 <oklopol> ais523: well i'm sure mine was better
15:41:58 <elliott> 15:45:05: <SgeoN1> No nasty sounds for a while now. Going to turn off and on and see if the numbers get worse.
15:41:59 <elliott> wow, i actually missed this line
15:42:03 <elliott> `addquote <SgeoN1> No nasty sounds for a while now. Going to turn off and on and see if the numbers get worse.
15:42:04 <HackEgo> 501) <SgeoN1> No nasty sounds for a while now. Going to turn off and on and see if the numbers get worse.
15:42:04 <oklopol> elliott: do like me and just read your own lines?
15:42:16 <elliott> oklopol: i dunno what you said but it was probably stupid
15:43:07 <oklopol> what did the child of a danish pilot say to his dad?
15:43:14 <oklopol> he said why do i have so many sisters?
15:43:35 <ais523> gah, if I've started a meme and got the wrong country, I'll be annoyed
15:43:50 <oklopol> ^ he also said that because his dad was not a very good pilot
15:43:51 <Taneb> "Kan jeg have en pony?"
15:43:53 <ais523> also, I notice you implicitly assumed the fighter pilot was male
15:44:33 <oklopol> i just assumed that's something you ask your own gender parent
15:44:51 <ais523> I failed to parse the sentence as it was bizarre enough as it is
15:45:23 <oklopol> well not everyone can be a child of a danish pilot in linguistics.
15:46:03 <Taneb> Right, I've succeeded in explaining the return function
15:46:17 <ais523> return isn't a function
15:46:21 -!- nooga has quit (Ping timeout: 252 seconds).
15:46:24 <ais523> nor can it be meaningfully written as one, except in INTERCAL
15:46:31 <ais523> (which allows you to return from functions you aren't in)
15:46:44 <ais523> or it's probably possible in Perl too
15:47:16 <ais523> because all sorts of absurd things are possible in Perl
15:47:29 <fizzie> GCC __builtin_return() is technically called a "function".
15:47:44 <oklopol> BUT IS IT A MATHEMATICAL FUNCTION?!?!?!?!?!?
15:47:59 <ais523> wait, there's a __builtin_return()?
15:48:05 <ais523> that doesn't seem to fit the scheme of the other builtins
15:48:13 <fizzie> Yes. It returns a __builtin_apply-constructed value from the containing function.
15:48:21 <fizzie> See the "constructing calls" section of the manual.
15:49:05 <fizzie> "Using the built-in functions described below, you can record the arguments a function received, and call another function with the same arguments, without knowing the number or types of the arguments."
15:49:13 -!- cheater_ has joined.
15:49:29 <fizzie> ... "However, these built-in functions may interact badly with some sophisticated features or other extensions of the language. It is, therefore, not recommended to use them outside very simple functions acting as mere forwarders for their arguments."
15:49:47 <ais523> I can't think of an application offhand
15:50:22 <fizzie> Given a generic function pointer, it may be possible to construct another function that, say, logs something to a log and then "forwards" the call.
15:50:32 <fizzie> Without knowing the type of the function.
15:50:33 <ais523> hmm, that was an unintentional pun
15:51:18 <oklopol> you mean your application thingie
15:51:43 <fizzie> You could also use __builtin_return_address(1) to get the address to where your latest caller should return, but there's no portable way of actually doing a multi-level return there.
15:52:34 <ais523> oklopol: thanks for the correction
15:52:59 <oklopol> hey i have a good one: why were the child of a pilot and the danish child both women?
15:53:06 <ais523> fizzie: can't you get your own return address, then overwrite it?
15:53:36 <fizzie> ais523: Not portably, I don't think; and in any case that'd probably leave the stack somewhat messed up, depending on the calling convention of course.
15:53:39 <oklopol> because they were the same child :D
15:54:10 <ais523> it'd return correctly, but not set up the stack for the next return
15:54:27 <oklopol> ais523: i think you have discovered the funniest fact in the world
15:55:24 <fizzie> There's another built-in to get frame pointers, and if you know the calling convention it might be possible to do some sort of manual stack unwinding. Though it's not really "C" at that point any more.
15:55:57 <ais523> oh, I remember why I know those builtins
15:56:02 <ais523> it's because of gcc-bf, I had to actually implement them
15:56:25 <ais523> I was looking into a BF backend for llvm, but it makes all sorts of frustrating assumptions
15:56:51 <ais523> like all its primitive operations either existing on the system it targets, or being implemented in terms of other llvm primitives that do exist
15:58:44 <ais523> gcc is better, in that it doesn't deliberately make any assumptions that contradict the way that BF does
15:58:54 <ais523> although it effectively does as the codepaths for, say, 8-bit moves not existing don't work properly
16:03:09 <fizzie> ais523: Manipulating the return stack could let you define a RETURN "function" (well, word), but again not portably (you're not supposed to touch return stack values you didn't put there) and it wouldn't work properly when called from inside another control-flow construct that used the return stack.
16:03:24 <fizzie> Er, I forgot to mention "in FORTH" in there anywhere.
16:03:42 <ais523> you do functions by hand in FORTH, don't you?
16:03:49 <ais523> hmm, I suppose that would let you have two independent call stacks
16:04:00 <ais523> and that might even be useful, perhaps? I'm not sure
16:05:31 <fizzie> Many cooperative-multitasking systems in FORTHs are based on having multiple sets of control-flow/data stacks (for each stack).
16:05:38 -!- foocraft has joined.
16:06:24 <fizzie> Most of the control-flow stack manipulations are not portable in the ANS Forth sense.
16:06:37 <fizzie> "The control-flow stack may, but need not, physically exist in an implementation. If it does exist, it may be, but need not be, implemented using the data stack. The format of the control-flow stack is implementation defined."
16:07:23 <fizzie> Portably you can mostly just use it for storing temporary data values when not crossing control-flow-structure nesting depth.
16:17:21 <Taneb> Here's an on-topic idea: Queue data structure with fast track passes
16:24:03 <oklopol> i apologize the cheating but that was just too good to pass
16:24:07 <ais523> oklopol: that last one is execllent
16:24:44 <oklopol> although as a general rule i don't use proper names or acronyms because it makes palindroming kind of trivial
16:25:13 <oklopol> at least in finnish, i haven't done much in english since it seems pointless in languages where reversed text isn't pronounced reversed
16:26:27 -!- elliott has quit (Remote host closed the connection).
16:26:52 -!- elliott has joined.
16:27:11 <ais523> [17:25] <-- elliott has left this server (Remote host closed the connection). [17:26] <oklopol> yay! [17:26] --> elliott has joined this channel (~elliott@unaffiliated/elliott).
16:28:41 <oklopol> so, ol' git felt a rat left igloos
16:29:11 <oklopol> also english has way too much of that gh and sh stuff
16:29:31 <oklopol> i mean "the" is probably just there to annoy palindromists
16:30:08 <oklopol> luckily everything is a verb in english
16:32:04 <oklopol> see palindrome 'n' an emo r'd nil apees.
16:32:11 <oklopol> (an apee is someone being aped)
16:32:23 <oklopol> see: palindrome 'n' an emo r'd nil apees.
16:32:36 <oklopol> r'ing is when you... well whatever
16:34:43 <oklopol> seven a mom. o? hey bye homo man! eves :)
16:35:14 <oklopol> i have no idea what "seven a mom" was meant to imply
16:35:31 <oklopol> but the rest is okay i suppose
16:35:36 <oklopol> why won't anyone play with me :(
16:35:58 <oklopol> maybe we could do math instead?
16:36:27 -!- Taneb has quit (Quit: Taneb).
16:36:30 <oklopol> i generalized my characterization as follows: actually essentially the same thing characterizes all products of CA such that G^n = G for some n!=1
16:36:39 <oklopol> and on arbitrary sofic shifts if i'm not mistaken
16:36:40 -!- Taneb has joined.
16:37:11 <oklopol> sofic shifts of course being the CA images of SFT's which are subshifts obtained by using a finite set of forbidden blocks
16:37:33 <oklopol> hi Taneb, do you wanna do palindromes or math?
16:37:47 <Taneb> I'm going to do math.
16:37:57 <Taneb> I'm no good at palindromes
16:38:09 <oklopol> me neither, as recently proven
16:38:38 <oklopol> you would never say "seven a mom"
16:39:05 <Taneb> I would say "seven a mum"
16:39:24 <Taneb> Heck, I may even say "seven a mam" 'cos I'm Northern
16:39:42 <oklopol> well yeah but you are not a homu man, you are a homo man
16:40:01 <oklopol> so seven a mum would make no sense
16:40:21 <oklopol> but maybe i could "home u man"! do you ever say "muem"?
16:41:39 <fizzie> oklopol: Eat, emit! Ho, bomb-mob. Oh, time tea?
16:42:03 <oklopol> Taneb: thank you, now i just need to fix the small hpm problem
16:42:13 <oklopol> fizzie: nice, can you also make a palindrome?
16:42:16 -!- Slereah_ has quit (Ping timeout: 246 seconds).
16:42:57 <oklopol> also i'm not really following the story :D
16:43:27 <oklopol> "lion oil" was just awesome
16:44:07 <Taneb> E, esoteric, ire to see.
16:44:33 <Taneb> So, is there an annoying esoteric programming language called "E"?
16:44:45 <oklopol> Taneb: there certainly is a language called that
16:45:37 <Taneb> But it's conventionaaaaal!
16:47:24 <fizzie> Do now that it... naw, it! I want it! Ah, two nod.
16:48:00 <elliott> the capability-based E is hardly conventional, though
16:48:08 <oklopol> fizzie: and no grammatical errors either!
16:48:13 <elliott> http://strlen.com/amiga-e ;; Wouter's is rather more conventional :D
16:50:08 <oklopol> traditional? a no-IT iDart!
16:50:34 <oklopol> sry couldn't make conventional work
16:51:09 <Taneb> Flow ebb Malbolge, eg., lob lamb be wolf
16:52:25 <Taneb> eg. means for example
16:53:18 <fizzie> Isn't that "e.g." CONVENTIONALLY?
16:53:49 <oklopol> i thought you spelled it wrong so i checked it, and the dictionary disagreed with your spelling so i decided eg actually did not mean for example
16:55:32 <oklopol> i suppose "flow ebb" is like you telling malbolge to be easier to write?
16:55:55 <Taneb> Or to understand, like the tides
16:55:56 <oklopol> but then you say "stop being a lamb, be a wolf instead", are sheep hard to write?
16:56:27 <Taneb> Lamb has a silent lette
16:56:40 <Taneb> Sheep is the same in the plural
16:57:01 <oklopol> i don't think i'm ever making another palindrome
16:58:02 <Taneb> SS eh? Come on, no emo chess.
16:58:26 <oklopol> okay i'm not telling you what my characterization is
16:58:27 <Taneb> SS eh being my lack of understanding is like a ship.
16:58:30 <oklopol> you'd just go like lolol triv
16:58:54 <Taneb> I have no idea what's going on
16:58:59 <Taneb> I'm just writing palindromes
16:59:46 <oklopol> i thought you meant "oh you're a member of the SS" and then compared killing jews to emo chess
17:00:06 <oklopol> they have many similarities
17:00:33 <Taneb> I just want to say that the Nazis killed more people than Jews
17:01:28 <Taneb> Just everyone only remembers the jews
17:01:37 <Taneb> Yeah, it was mainly Jews.
17:02:13 -!- cheater_ has quit (Ping timeout: 255 seconds).
17:02:17 <oklopol> Phantom_Hoover: nothing wrong with a bit of emo chess humor, elliott does it all the time as well.
17:02:17 <Taneb> That was the communists
17:02:27 <Taneb> Who killed that clowwn
17:03:52 <oklopol> i'm not giving you another one
17:04:28 <Gregor> Phantom_Hoover: The clown was gay.
17:05:03 <Gregor> That must have been one complicated badge they made him wear ...
17:08:28 -!- Taneb has quit (Ping timeout: 276 seconds).
17:09:41 <Gregor> Blackjack and hookers.
17:09:49 <Phantom_Hoover> Gregor, WP says they just stuck all the badges one below the other.
17:10:05 <Gregor> Phantom_Hoover: Oh, I thought there were cases where they layered :(
17:10:39 <Phantom_Hoover> Gregor, yeah, Jews had the coloured inverted triangle over a yellow one.
17:11:30 <Phantom_Hoover> So I guess it'd be a purple triangle above a pink triangle above a brown triangle.
17:12:30 <oklopol> i suppose someone with that many triangles stacked on top of each other is certainly a "-gon"er
17:14:49 -!- cheater_ has joined.
17:20:34 -!- cheater__ has joined.
17:21:53 <oklopol> wow i really need to sleep
17:23:03 -!- cheater_ has quit (Ping timeout: 250 seconds).
17:23:28 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!).
17:34:44 -!- Nisstyre has quit (Remote host closed the connection).
17:37:35 -!- zzo38 has joined.
17:39:43 -!- Nisstyre has joined.
17:40:20 -!- Taneb has joined.
18:00:16 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
18:07:19 -!- monqy has joined.
18:13:42 -!- nooga has joined.
18:29:47 -!- Taneb has left.
18:30:52 -!- cheater__ has quit (Ping timeout: 255 seconds).
18:35:33 -!- ais523 has quit (Remote host closed the connection).
18:41:55 -!- monqy_ has joined.
18:42:42 -!- monqy has quit (Disconnected by services).
18:42:45 -!- monqy_ has changed nick to monqy.
18:44:00 -!- cheater__ has joined.
18:47:56 -!- _foocraft has quit (Quit: So long, and thanks for all the fish!).
18:50:40 -!- nooga has quit (Ping timeout: 255 seconds).
19:11:42 <Gregor> lulululul Star Trek: TAS is so cartoonish X-D
19:12:27 <olsner> it is, after all, the animated series
19:13:18 <Gregor> That doesn't mean it has to be cartoonish per se :P
19:15:04 -!- Phantom_Hoover has joined.
19:17:24 <olsner> it doesn't? is cartoon a specific category of animation?
19:18:07 <olsner> elliott: well, if it is a cartoon, of course it's cartoonish
19:18:24 <elliott> `addquote * Sgeo is risking massive forest fires <Sgeo> The bacon is worth it
19:18:25 <HackEgo> 502) * Sgeo is risking massive forest fires <Sgeo> The bacon is worth it
19:18:46 <HackEgo> 501) <SgeoN1> No nasty sounds for a while now. Going to turn off and on and see if the numbers get worse.
19:19:33 <HackEgo> 500) <Taneb> Turned out he got recursion, he just didn't get the return statement
19:19:39 <HackEgo> 499) <fizzie> Deewiant: Well, I guess you could argue so. But to me a it's not a real clobbering if you can still tell there was something that got clobbered.
19:19:49 <HackEgo> 498) <fizzie> elliott: You have become the very thing you fought for!
19:19:56 <HackEgo> 497) <fungot> elliott: i have yet to demonstrate that the sml community has less productive power than the real chunk of meat.
19:20:30 <olsner> ok, caught up with the added quotes now, carry on
19:23:46 -!- pikhq has joined.
19:24:26 -!- pikhq_ has quit (Ping timeout: 260 seconds).
19:29:49 -!- oerjan has joined.
19:34:34 -!- shachaf has joined.
19:39:16 -!- cheater__ has quit (Ping timeout: 255 seconds).
19:39:59 <oerjan> <Taneb> I invoke Godwin's
19:40:08 <oerjan> i say someone fit in here rather quickly
19:41:35 <olsner> Godwin's what? His theremin playing cat?
19:43:11 <oerjan> i take it you did nazi it coming.
19:44:23 <oerjan> <elliott> ais523: I HAVE ABSOLUTELY NO IDEA ABOUT WHICH EVENT YOU COULD POSSIBLY BE REFERRING TO.
19:44:40 <oerjan> which is presumably why you absolutely didn't lampshade it in privmsg
19:45:54 <elliott> How do you state an actual negative with these towers
19:45:54 <oerjan> NOTHING, ABSOLUTELY NOTHING
19:51:37 -!- cheater__ has joined.
19:52:58 <oerjan> <Taneb> Heck, I may even say "seven a mam" 'cos I'm Northern
19:53:16 <oerjan> by some freak coincidence taneb is elliott's next door neighbor
19:58:51 <olsner> hehe, read "freak accident" there ... something like a teleporter malfunction that moved his entire home and made him elliott's neighbor
19:59:16 <oerjan> well i didn't specify _how_ freaky
20:00:42 <olsner> well, *coincidence* would be "... it just so happens that taneb's selected target coordinates made him elliott's neighbor"
20:01:07 -!- kwertii has joined.
20:01:10 <olsner> I think freak accidents are generally more freaky than freak coincidences
20:09:34 -!- calamari has joined.
20:31:46 -!- asiekierkaDS has joined.
20:33:20 <oerjan> Auf Wiedersehen! Goodbye!
20:33:44 <oerjan> wait you mean we are _not_ doing sound of music?
20:34:20 <olsner> well, I think we got the lyrics wrong, also I don't know the lyrics
21:03:31 -!- Taneb has joined.
21:04:13 <oerjan> that's what they all say
21:05:44 <olsner> oerjan: no, the last one just said hi
21:08:03 <oerjan> that's just the polish version duh
21:08:28 <olsner> no, the polish version is an indecipherable sequence of consonants
21:09:23 -!- boily has quit (Ping timeout: 252 seconds).
21:09:39 <olsner> some combination of sz, cz, rz, s, c, ś, ź and/or ć, iirc
21:10:29 <oerjan> `translatefromto en pl Hi
21:10:34 <oerjan> `translatefromto en pl Hello
21:10:48 <oerjan> `translatefromto en no Does this work at all any more?
21:12:24 <oerjan> `translate Fru Ibsens ripsbusker og andre buskvekster
21:13:30 -!- azaq23 has quit (Quit: Leaving.).
21:14:30 <olsner> oerjan: why the sudden interest in mrs ibsen's bush?
21:16:47 <oerjan> i am merely investigating regarding the possibility of translating norwegian tongue-twisters
21:17:33 <olsner> can't hold a candle to sex laxar i en laxask
21:17:49 -!- asiekierkaDS has quit (Ping timeout: 255 seconds).
21:18:15 <oerjan> nobody asked for lax sex
21:19:24 <olsner> google translate renders that as "six salmon in a laxask"
21:19:51 <olsner> btw, I love how "wrong" is pronounced "fail" in norwegian
21:21:56 -!- MigoMipo has joined.
21:22:01 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:22:14 <Gregor> To power cycle your modem:
21:22:14 <Gregor> 1. Shut down your computer
21:22:14 <Gregor> Comcast: So much fail :P
21:22:25 <oerjan> apparently, a box for keeping salmon in
21:22:30 -!- MigoMipo has joined.
21:22:55 <oerjan> seks laks i en lakseske
21:23:04 <zzo38> Someone showed me some article including mathematics and a code for recognizing shapes by converting the outline to a graph that stays the same regardless of orientation or scale.
21:23:12 <olsner> (no I don't know if anyone in sweden actually has boxes like that)
21:24:04 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:24:41 -!- MigoMipo has joined.
21:25:02 <oerjan> olsner: it's probably popular among seasick sailors and their nurses
21:25:07 <zzo38> My brother's character is doppelganger but have not decided the class
21:25:34 <Phantom_Hoover> <zzo38> Someone showed me some article including mathematics and a code for recognizing shapes by converting the outline to a graph that stays the same regardless of orientation or scale.
21:25:54 <Phantom_Hoover> This is presumably the layman's definition of graph, not an actual graph graph.
21:25:59 <olsner> oerjan: probably... I don't know any nurses or sailors though
21:26:41 <zzo38> Phantom_Hoover: Yes.
21:26:48 -!- elliott has quit (Read error: Connection reset by peer).
21:26:59 -!- elliott has joined.
21:28:25 <olsner> so, "converting the outline into a pretty picture" is what it means?
21:29:17 <elliott> <Phantom_Hoover> This is presumably the layman's definition of graph, not an actual graph graph.
21:29:20 <Phantom_Hoover> And then moving it about a b— wait, you can't have a graph that's the same regardless of orientation or scale.
21:30:08 <elliott> i would presume it means a graph graph
21:30:23 <Phantom_Hoover> Graphs look the same regardless of orientation and scale by definition.
21:30:39 <Phantom_Hoover> Orientation and scale don't even make sense with regards to them.
21:44:20 <elliott> [2011-06-25] $-10.67 = Prorated refund for rutian - 256 slice
21:45:44 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:49:36 <zzo38> If self-modifying code is allowed, you can possibly store some variables in the place of the immediate (or indirect, for pointer variables) operand to instructions, or boolean variables changing between JMP JZ JNZ if it is a condition with multiple parts. Can any platform-independent compiler do this?
21:53:38 -!- calamari has quit (Quit: Leaving).
22:06:18 <Phantom_Hoover> "For other examples of the appearance of the Golden Ratio in Nature, the growth of the Nautilus shell is governed by the Golden Ratio,"
22:06:30 <Phantom_Hoover> A piece on abuse of the golden ratio abuses the golden ratio.
22:07:35 <oerjan> a missed golden opportunity
22:12:47 <Taneb> I've just had an awful idea for an esoteric programming language
22:14:14 <Taneb> The program is a lambda calculus thing
22:14:31 <Taneb> It is then run as a church numeral
22:14:53 <Taneb> And the result is taken as a base 256 number and converted into ASCII and outputted
22:15:04 <Taneb> If any of that makes sense
22:15:27 <oerjan> well since that's how a part of lazy-k already works iirc...
22:16:34 <Taneb> Not quite what I was going for
22:16:53 <elliott> well, lazy k + abstraction eliminator :P
22:17:01 <elliott> to go from lambda-calculus → SKI
22:17:12 <Taneb> I have no idea what SKI is about
22:19:49 <elliott> Taneb: just predefined combinators:
22:20:09 <elliott> and you just compose your programs out of those + application
22:20:40 <elliott> (I is equivalent to SKK and SKS, and so is technically superfluous) (note: application is left associative, i.e. SKK = (SK)K)
22:23:05 <Taneb> So, it's equivalent to Lambda Calculus?
22:23:44 <elliott> yes, but then so are brainfuck, and underload :)
22:23:51 <Gregor> <lifechamp> how do i create a var params for function f (params) { g1(key); g2(params[key]) } // Dear #esotericers, I challenge you to figure out wtf this means.
22:23:56 <elliott> there's a simpler way to specify reduction of SKI terms, but that's the definition in terms of the lambda calculus
22:24:18 <elliott> Gregor: They want variadic keyword arguments.
22:24:27 <elliott> Gregor: i.e. they want to be able to call f(a:b, c:d)
22:24:30 <elliott> and iterate through params
22:24:53 <elliott> Gregor: a la python's TWO ASTERISKS kwargs
22:25:17 <elliott> oh, there's my new band name
22:25:32 <oerjan> !unlambda ` ```sii ```sii ``s``s`ks``s`kkii .* i
22:26:05 <Gregor> elliott: TIME TO FIND OUT
22:26:16 <Gregor> <Gregor> lifechamp: On behalf of the rest of ##javascript , may I say "Whaaaaaaaaaaaaaaa?"
22:26:50 <oerjan> !unlambda `` ```sii ```sii ``s``s`ks``s`kkii .* i
22:26:51 <EgoBot> ****************************************************************************************************************************************************************************************************************************************************************
22:27:27 -!- GuestIceKovu has joined.
22:29:17 <oerjan> Taneb: unlambda is the first and most famous SKI esolang
22:30:06 <oerjan> it's not lazy though. in fact it has continuations and callcc
22:32:08 <oerjan> it was probably also the first _functional_ esolang.
22:34:33 <Phantom_Hoover> elliott, why, is his erotic elf fanfiction just too good to hate him?
22:35:33 <elliott> i forget who mentioned it but you can hardly "find" something linked directly on someone's webpage :P
22:35:39 <elliott> anyway this is inane you're frightening the guests.
22:35:59 <elliott> PH has everything figured out.
22:36:05 <oerjan> elliott: um sure you can, when it's something other than you were looking for...
22:36:12 <Phantom_Hoover> You were looking for gay erotic elf fanfiction and you found out that this guy Madore also had this esolang thing.
22:36:24 <HackEgo> 401) [on Sgeo's karaoke] <Phantom_Hoover> That is the thing that made me into a gay vampire.
22:38:01 <oerjan> well madore is a creep anyway, never answered any of my emails.
22:44:33 <Taneb> Good evening, my further East than me addresser
22:56:36 -!- elliott has quit (Ping timeout: 260 seconds).
23:02:21 -!- Taneb has quit (Remote host closed the connection).
23:11:30 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:23:58 -!- GuestIceKovu has changed nick to Slereah.
23:32:25 <Phantom_Hoover> I'm just imagining this nondescript guy in the corner of a bar suddenly throwing off his cloak and exclaiming "it is I, Slereah!"
23:36:22 -!- copumpkin has joined.
23:40:19 * oerjan is now reminded of 'allo 'allo
23:40:52 <oerjan> except leclerc never managed to look nondescript
23:54:55 -!- kwertii has quit (Quit: bye).
23:55:20 -!- Phantom_Hoover has quit (Quit: Leaving).
23:57:17 <oklopol> "<oerjan> by some freak coincidence taneb is elliott's next door neighbor" <<< a neighbor of mine was on #proglangdesign some years ago, a channel of about 6 people at that time
23:57:39 <oklopol> not next door neighbor but less than 100m
23:59:05 <oklopol> "<oerjan> wait you mean we are _not_ doing sound of music?" <<< one more family guy joke is ruined for me by changing it from randomness to reference :(
00:00:49 <oklopol> "<oerjan> i am merely investigating regarding the possibility of translating norwegian tongue-twisters" <<< if that twists your tongue, you norwegians must have really sucky mouths.
00:01:17 <oerjan> oklopol: wait what, i have never watched family guy
00:01:28 <oklopol> a jap once called me a "genius" when i managed to pronounce "it is warm" in japanese, that is, "atatakakatta"
00:02:11 <pikhq> oklopol: That's "It was warm".
00:02:19 <oerjan> i guess that _would_ be easier for finns than most other europeans
00:03:30 <oerjan> oklopol: you are of course supposed to say "Fru Ibsens ripsbusker og andre buskvekster" as fast as possible, repeatedly
00:03:35 <pikhq> "It is warm" is 'just' "atatakai".
00:04:15 <oklopol> "<Phantom_Hoover> This is presumably the layman's definition of graph, not an actual graph graph." <<< they layman definition of the graph of f of course being that it is the set f
00:06:58 <oklopol> "<Taneb> So, it's equivalent to Lambda Calculus?" <<< yep but the usual conversion algo from lc to ski has an exponential blowup
00:08:50 <oklopol> "<elliott> but the worst :(" <<< no best
00:09:58 <oklopol> "<oerjan> oklopol: wait what, i have never watched family guy" <<< they just randomly sang that song once.
00:10:54 <oklopol> '<pikhq> oklopol: That's "It was warm"' <<< i'm aware, whoops; i think the error originated from me being afraid of managing to screw up the trivial translation given that you would point it out in a second
00:11:52 <oklopol> pikhq: does "taka ka kata ga atatakakatta ka" mean what i think it does?
00:12:34 <oklopol> was either the hawk or the shoulder warm?
00:13:25 -!- myndzi\ has quit (Ping timeout: 250 seconds).
00:15:09 <oklopol> "<oerjan> oklopol: you are of course ..." <<< given that you can only screw up "buskvekster" (prolly since it doesn't mean anything), all you have to do is pay some attention at the end of every repetition
00:15:22 <pikhq> oklopol: Pretty much.
00:16:16 <oklopol> i'm slightly annoyed by the "ga" there but don't really see a way around it
00:16:55 <pikhq> "taka ka kata kà atatakaka'ta ka" Bam, fixed. :P
00:17:04 <oerjan> oklopol: um what about ripsbusker
00:18:22 <oklopol> i can just repeat that ad infinitum
00:18:42 <oklopol> maybe i don't know how it's pronounced
00:19:42 <oklopol> well okay, i can repeat it about 10 times
00:19:58 <oerjan> the only silent consonant in that phrase is the "g" in "og"
00:20:24 <oerjan> norwegian does not, in general, have silent vowels
00:26:03 <oklopol> http://www.vjn.fi/temporary%20shit/ibsen.wma ?
00:27:52 <oklopol> that was my second attempt tho, didn't choose the number of repetitions the first time so i screwed up a bit at the end
00:28:01 <oklopol> maybe i screwed up there too but didn't notice at least
00:28:33 <oerjan> i'm not going to listen to that now, i'd wake up people
00:28:38 <oklopol> i don't know what busk and vekster mean so it hard to get the k and s right
00:28:50 <oklopol> alright, it's not very interesting
00:29:40 <oklopol> well obviously i know that
00:29:58 <oerjan> vekster = plants, growth
00:30:11 <oklopol> and yeah, i know i said i didn't
00:30:16 <oklopol> didn't really know vekster tho
00:30:28 <oklopol> although kind of obvious as well
00:32:44 <oklopol> my favorite finnish one is "mun mummuni muni mun mammani, mun mammani muni mun"
00:35:10 * oerjan learns that the Hollywood sign originally said Hollywoodland
00:35:27 <oklopol> i just watched a hustle episode where they said that
00:36:03 <oklopol> so actually it's "mum mummuni muni mum mammani mum mammani muni mum" when pronounced by usual finnish fast pronunciation rules, lemme record that for funsies as well
00:38:02 <oklopol> http://www.vjn.fi/temporary%20shit/mummuni.wma
00:40:21 <oklopol> ran out of air pretty fast and did the first one slow so got just 5 before running out of air
00:40:30 <oklopol> what's wrong with my sentencing this week
00:44:34 <oklopol> oerjan: actually the whole ep was about the sign, since they sold it
00:52:53 * oerjan learned it from wikipedia's front page, btw
00:53:06 <oklopol> the episode is very very old
00:53:22 <oklopol> so there can really be no connection
00:54:07 -!- CakeProphet has quit (Ping timeout: 264 seconds).
00:54:34 <oklopol> oerjan: hey why did the topological space have a hole?
00:55:56 <oklopol> because its parents were danish pilots!
00:57:00 <oerjan> this is worse than reddit's forced waffles/carrots meme
00:57:52 <oerjan> that was _not_ an attempt to explain.
00:58:20 <oerjan> more of an attempt to urge you to run, before it's too late
00:58:36 <oklopol> i think the danish pilot meme is still better than my famous bisexual meme since i never really even got the famous bisexual thing myself.
00:59:44 <oerjan> yes, they contain "me" twice
01:02:21 <oerjan> hm apparently the english insist on spelling that meaning as "egotistic", for some reason.
01:02:50 <oklopol> i always found that compuddling
01:14:31 <oerjan> ah found it: http://www.smbc-comics.com/index.php?db=comics&id=2295#comic
01:17:06 <oerjan> sounds like something finnish would have a case for
01:17:42 <oklopol> they anti-yessed my applicatrix
01:21:19 <oklopol> http://www.smbc-comics.com/?db=comics&id=428#comic these are really good i should binge
01:23:16 <oklopol> http://www.smbc-comics.com/?db=comics&id=2088#comic xkcd kind of did the reverse of this
01:26:52 <oklopol> http://www.smbc-comics.com/?db=comics&id=1913#comic :DSDSDAFADSFASDFDSA
01:30:41 -!- myndzi has joined.
01:42:52 <oklopol> http://www.smbc-comics.com/?db=comics&id=493#comic
01:42:56 <oklopol> maybe i'm just tired :DSDFADFADFS
01:43:13 <oklopol> i've actually seen most of these way many times
01:52:33 <cheater__> oklopol, you know about goatkcd don't you
01:53:44 <oklopol> is it xkcd but goatse in every square
01:53:46 <zzo38> I tried sending many files to CTAN, including chess typing program (including fonts), grid overlay program, PBM overlay program, Dungeons & Dragons recording program, but nothing is sent!!
01:54:18 <zzo38> CTAN = Comprehensive TeX Archive Network
01:55:22 <zzo38> Do you want these programs?
01:56:36 <zzo38> Maybe it is not useful to you if these are not the kind of things you are trying to type (or if you don't use Plain TeX).
01:57:23 <oklopol> and also no, i don't type chess
01:58:58 <zzo38> The Dungeons&Dragons recording program, I use it every time I am playing Dungeons&Dragons game. I find it useful for this.
02:00:16 <oklopol> i've played a few games as a kid
02:00:45 <zzo38> This file contains all story events and character sheet data (and the entire history of the character sheet data for that game, with the exception that I couldn't put the one at start due to lack of data) for one game: http://zzo38computer.cjb.net/dnd/recording/shaman.tex
02:00:49 <zzo38> oklopol: What version?
02:01:56 <oklopol> doesn't matter that much the way my friends play it
02:08:39 -!- oerjan has quit (Quit: Good night).
02:09:10 <cheater__> and interestingly enough the comic book is ALWAYS better than the original
02:22:03 <tswett_> Perkelin vittu, I can't access Wiktionary.
02:22:50 <oklopol> if you mean the genitive of perkele
02:23:13 <tswett_> Who is this Perkele guy, again?
02:23:30 <tswett_> I'm guessing whoever he is, he doesn't actually have a vittu.
02:24:18 <oklopol> perkele is originally the finnish god of thunder afaik, nowadays mostly means satan
02:26:21 <oklopol> well i mean really it's just a curse word nowadays, but typecast into a guy, i would say he's the christian satan
02:26:49 <tswett_> I should perhaps figure out how to say some useful stuff.
02:27:33 <tswett_> Suomen kuva lasti köri. I think that stopped being Finnish pretty quickly on.
02:28:22 <oklopol> except kri kri is something a silly car might say
02:28:53 <oklopol> lasti means like a truckload
02:31:15 <oklopol> and i don't really understand "Lammasta heimo syödä."
02:31:39 <tswett_> Well, I don't know what "lammasta" means, so I figured I would just say it in the hopes that I would find out somehow.
02:31:43 <oklopol> "syd lammasta heimo" is an okay verb ofc
02:31:54 <oklopol> meaning "to eat a sheep a tribe"
02:32:18 <oklopol> lammasta = partitive of sheep
02:32:20 <tswett_> And what's the third-person singular present of "syödä"?
02:32:29 <tswett_> And what's the accusative of that?
02:32:31 <oklopol> but here it's just like the accusative case
02:32:46 <oklopol> third-person singular present = sy
02:37:06 <oklopol> also while you say syd lammasta heimo in context like "silloin tllin on mukavaa syd lammasta heimo jos toinenkin" (occasionally it's nice to eat a sheep a tribe or two), you have to say either "min syn lammasta heimon" or "min syn lammasta heimoa"
02:37:31 <oklopol> in min syn lammasta heimo, i can only see the parsing that makes heimo vocative
02:39:49 * oklopol checks that heimo is actually a finnish word
03:02:36 <pikhq> Jeeze. Google+ is at 10 million users.
03:03:47 <oklopol> is google+ as good as google?
03:04:53 <pikhq> It's a Facebook competitor that's reasonably integrated with Google's other services. And reasonably well-implemented.
03:05:28 <oklopol> i doubt i'll ever touch that one either
04:38:56 -!- asiekierkaDS has joined.
04:39:09 -!- Nisstyre has quit (Ping timeout: 264 seconds).
04:39:18 -!- kwertii has joined.
04:52:48 -!- Nisstyre has joined.
04:52:50 -!- Nisstyre has quit (Max SendQ exceeded).
04:53:33 -!- Nisstyre has joined.
04:59:28 -!- asiekierkaDS has quit (Ping timeout: 252 seconds).
05:30:06 <zzo38> I wrote this http://zzo38computer.cjb.net/dnd/recording/level20.tex Is it good name of a character? (The text after \Character is their name)
05:41:23 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
05:41:56 -!- Sgeo has joined.
06:09:06 <quintopia> zzo38: export to pdf plox. this device has no tex on it
06:09:48 <zzo38> I uninstalled that program already
06:10:11 <coppro> zzo38: I do not believe that to be a good character name as I cannot pronounce it unless it is Welsh
06:10:29 <coppro> and even then I'm not convinced it's pronouncable
06:10:29 <zzo38> Can't you read the source file? In fact, the source file contains some comments that would not be printed out anyways (on a PDF or otherwise)
06:10:47 <zzo38> How would you pronounce it if it is Welsh?
06:11:58 <zzo38> Failed to download? I can export a DVI file although like I said, it contains comments and parts that are incomplete and will fail to print correctly.
06:12:31 <coppro> zzo38: I don't know; I do not know Welsh.
06:12:42 <coppro> However, Welsh has 'w' as a vowel which may make it pronounceable
06:13:19 <coppro> You have a sequence of 6 consonants there
06:13:20 -!- Sgeo has quit (Ping timeout: 255 seconds).
06:14:20 -!- pikhq_ has joined.
06:15:18 <zzo38> I made up the name at random on my calculator and added a space by myself. I could add some vowels if needed in fact I needed to add one vowel the first time I used this method (although I used dice at that time, not calculator; but it is the same method)
06:15:21 -!- Sgeo has joined.
06:16:01 <zzo38> As you can see there are two character sheets in this file although the second one is incomplete (they do not even have a name yet)
06:17:09 -!- pikhq has quit (Ping timeout: 240 seconds).
06:17:38 <zzo38> The second one is my brother character he didn't decide the class yet
06:24:20 <coppro> zzo38: I would probably remove the q and the second v
06:24:30 <coppro> then I think it would be pronounceable
06:24:48 <quintopia> are you planning on actually pronouncing it?
06:25:05 <quintopia> can you just copy the name here so i can see it?
06:25:29 <Deewiant> quintopia: "Iuckqlwviv Kjugobe"
06:26:25 <quintopia> Iucklwiv is somewhat pronounceable
06:26:54 <quintopia> i'd change Kjugobe to Djugobe, since Kj is tricky
06:27:11 <zzo38> OK, I will think about these things.
06:27:29 <coppro> you can fake Kj good enough as Ky
06:27:59 <quintopia> since the initial I must also be pronounced as y
06:28:22 <coppro> a) no it doesn't b) this is English. we don't care
06:28:55 <quintopia> looks like no english name i've ever seen
06:29:58 <zzo38> Actually it is just English letters, it isn't actually any language at all.
06:31:22 <coppro> and in English, we can pull any random pronounciation we feel like
06:31:28 <coppro> "si" looks like "zh" to me
06:31:32 <quintopia> so why not pretend it is a real fake language?
06:31:43 <coppro> quintopia: No reason a character's name would necessarily be unilingual
06:32:25 <zzo38> Yes even in English the words is not necessarily pronouced like you have written.
06:32:46 <zzo38> And yes this is for roleplaying
06:33:27 <coppro> quintopia: It may make sense within the context of a character's backstory for their name to be unilingual
06:33:30 <coppro> but there is no inherent reason
06:33:59 <zzo38> Part of a situation DM has already told us, we escaped from a sinking ship containing many slaves and many creatures and so on, and cannot carry any equipment (or money) except for wearing rags
06:34:03 <quintopia> i dont know about this characters backstory
06:34:24 <quintopia> zzo38: tell me about your character
06:35:01 <zzo38> I didn't write a backstory (at least not yet)
06:37:21 <zzo38> I do have a random "Character Lifepath" script
06:37:55 <zzo38> In many cases some (or all) of the results of that script cannot be used, though
06:38:47 <quintopia> have it pick a trope from tvtropes :P
06:39:23 <zzo38> No, that isn't the reason why some results cannot be used. There are just results that do not apply to some characters or campaigns.
06:40:50 <zzo38> Yes that is a possibility make a script pick a trope from tvtropes although how would that work? If they have a random page function, just use that. If not, make a list with parameters and stuff so that you can make combinations of things with specific values entered in some cases.
06:41:02 <coppro> They have a number of indexes
06:41:09 <coppro> you could select, for instance, two Character Tropes at random
06:41:16 <coppro> you'd have to parse the index manually though
06:41:20 <quintopia> they have a story generator script that picks tropes for the characters
06:42:52 <zzo38> (I do know some of the pages there specify possible parameters that can also apply)
06:46:13 <zzo38> OK I did run my script and here are the output (omitting the things that do not seem to apply to my character) (Note that it doesn't necessarily mean I will use this; it just means I am now copying its output!)
06:46:25 <zzo38> Place of birth: Fortress; Childhood environment: Strict; Caretaker's origin: Close family; Caretaker's background: Free laborers; Caretaker's status: Alive and well; You are an only child;
06:46:41 <zzo38> Luck: Fame; Luck: Travel; Tragedy: Imprisoned; Made an enemy: Creature with animal intelligence (Military, Foiled, Annoyed, Mutual);
06:48:01 <zzo38> I did write the script however most of the information contained in the script is from other sources.
06:48:35 <zzo38> I also modified the things a bit, and did a few other things with it.
06:48:39 <zzo38> Here it is: http://zzo38computer.cjb.net/furry/scripts/lifepath.txt
07:00:16 <coppro> what language is that?
07:01:26 <zzo38> TIM duplicates entry on stack the specified number of times, it is used to multiply the probability of an event.
07:03:35 <zzo38> CHA has a chance to discard something from the stack, it is used to reduce the chance of an event.
07:04:29 -!- monqy has quit (Quit: hello).
07:04:58 <zzo38> BR is line break, [ ] makes a subroutine, ( ) makes a list, {{ }} are comments, + before a command results in concatenation.
07:05:41 <zzo38> There are also other commands and prefixes and suffixes.
07:05:52 <zzo38> Although the other ones are not used in this script.
07:06:21 <zzo38> RRE means to repeat the next command a random number of times.
07:07:18 <quintopia> and you have your own program to parse this language?
07:07:45 <quintopia> looks an awful lot like a lzw descriptor language
07:07:54 <zzo38> What is lzw descriptor language?
07:08:34 <quintopia> is there a wiki page for this language?
07:08:44 <zzo38> Yes I do have a program to parse this language, you can download the PHP code or run it remotely, including custom script form you can write your own. There is no documentation unfortunately.
07:09:22 <zzo38> You can download plain source code gopher://zzo38computer.cjb.net:70/0furry*FURRYSCRIPT or color source code http://zzo38computer.cjb.net/furry/Furryscript.php
07:10:25 <zzo38> Existing scripts are in the directory http://zzo38computer.cjb.net/furry/scripts/ you can write your own and I might include it in this collection.
07:11:28 <zzo38> Form to run existing scripts is http://zzo38computer.cjb.net/furry/webform.php and form to write custom scripts is http://zzo38computer.cjb.net/furry/custom.php
07:12:10 <zzo38> Yes probably it should be documented.
07:14:57 <zzo38> But so far you just look at example files and the interpreter program code.
07:17:06 <zzo38> Do you understand well any of the examples?
07:26:43 <quintopia> give me an example of how the stack is used
07:26:45 -!- BeedaWeeda has joined.
07:30:04 -!- zzo38 has quit (Quit: Sleep).
07:34:05 <pikhq_> http://i.imgur.com/moaG3.jpg This was apparrently drawn in MS Paint.
07:54:39 -!- BeedaWeeda has quit.
08:00:26 <fizzie> One wonders if it was painted on top of a photo, though. The place at least is real; compare http://www.panoramio.com/photo/7082547
08:01:05 <fizzie> Quite a lot of pixels to fiddle in any case.
08:06:23 <quintopia> fizzie: watch the youtube video about painting mona lisa in ms paint. there are some very talented pixel artists.
08:08:54 <fizzie> I don't think that's in dispute.
08:09:27 <fizzie> Just thought I recognized the place.
08:14:39 <coppro> with a lot of time and careful application of the 1-pix brush, I can make any image
08:32:28 -!- BeedaWeeda has joined.
08:58:01 -!- azaq23 has joined.
09:28:08 -!- BeedaWeeda has quit.
09:28:28 -!- kwertii has quit (Quit: kwertii).
09:41:47 -!- copumpkin has quit (Ping timeout: 252 seconds).
09:42:54 -!- copumpkin has joined.
09:42:54 -!- copumpkin has quit (Changing host).
09:42:54 -!- copumpkin has joined.
09:48:29 -!- cheater__ has quit (Ping timeout: 255 seconds).
09:54:37 -!- jcp- has joined.
09:56:17 -!- cheater__ has joined.
09:57:33 -!- clog_ has joined.
10:06:12 -!- javawizard has quit (Ping timeout: 255 seconds).
10:06:13 -!- Nisstyre has quit (Ping timeout: 255 seconds).
10:06:14 -!- clog has quit (Ping timeout: 255 seconds).
10:06:47 -!- Nisstyre has joined.
10:25:14 -!- CakeProphet has joined.
10:25:22 -!- CakeProphet has quit (Changing host).
10:25:23 -!- CakeProphet has joined.
11:08:52 -!- Sgeo has quit (Ping timeout: 260 seconds).
11:10:53 -!- copumpkin has quit (Ping timeout: 252 seconds).
11:11:20 -!- copumpkin has joined.
11:11:21 -!- copumpkin has quit (Changing host).
11:11:21 -!- copumpkin has joined.
11:15:37 -!- Phantom_Hoover has joined.
11:38:37 -!- Lymee has quit (Ping timeout: 260 seconds).
11:40:12 -!- oerjan has joined.
11:40:20 -!- Lymee has joined.
11:40:44 -!- oerjan has quit (Client Quit).
11:44:12 -!- oerjan has joined.
11:47:28 -!- derrik has joined.
11:49:29 -!- Lymee has quit (Ping timeout: 255 seconds).
11:50:19 <fizzie> Oops, you did it again?
11:51:50 <oerjan> something wanted to reboot my computer
11:53:01 <oerjan> <quintopia> i'd change Kjugobe to Djugobe, since Kj is tricky
11:54:44 <fizzie> Do you think it is kjuut instead of tricky?
11:55:56 <fizzie> The Finnish pronunciation of "kjuut" would more-or-less approximate the English "cute". (I do know it doesn't work that way when you folks do it.)
11:59:53 <CakeProphet> Is it common for modern spoken languages to have no standardization body, or is this a rare feature?
11:59:57 <oerjan> http://en.wikipedia.org/wiki/Voiceless_palatal_fricative
12:00:02 -!- boily has joined.
12:00:25 <CakeProphet> oh look, I just asked a linguistic question when the topic was about linguistics. Completely coincidental.
12:00:39 <oerjan> english doesn't, but french, german, and norwegian do, iirc
12:01:38 <CakeProphet> so it seems like a common feature for living European languages, at least.
12:02:14 <oerjan> the chinese certainly did some official changing at one point
12:02:17 -!- Lymee has joined.
12:02:19 <fizzie> Icelandic has a standardization body, if I recall correctly.
12:03:20 <fizzie> Finnish has "Kotus", the "Kotimaisten kielten tutkimuskeskus" -- "Research Institute for the Languages of Finland" is the official English name -- which sort of has a similar role, in that they publish a magazine and give recommendations; but they don't have any sort of legal or really-really-official standing or anything.
12:03:48 <fizzie> "The Research Institute for the Languages of Finland is devoted to the study and language planning of Finnish, Swedish, Saami, Finnish Sign Language and Romany. We also conduct research on languages related to Finnish. Most of our research is published in the form of dictionaries."
12:04:03 <CakeProphet> It's mostly a meaningless formality though. Having a standardizing body doesn't mean that the language that is spoken by most speakers is not fluid.
12:04:04 <fizzie> They also have a hotline service, in case you have an urgent query on matters of language.
12:04:25 <fizzie> Oh, they do have a law too.
12:04:31 <fizzie> "The Research Institute is administered by the Finnish Ministry of Education and regulated by the Act on the Research Institute for the Languages of Finland (48/1976, 591/1996). A Board of Advisors supports its work."
12:04:34 <CakeProphet> Perhaps we should construct a tricky sentence and ask them to parse it for us.
12:04:58 <oerjan> norwegian also has competing "standards" made by institutions who don't like the two official forms
12:05:30 <oerjan> most notably riksmål, a more conservative form of bokmål.
12:06:55 <CakeProphet> The book held the record for the longest sentence in English literature with 13,955 words. That record was broken by Nigel Tomm's one-sentence, 469,375-word book, The Blah Story, Volume 4.
12:07:41 <fizzie> The law has a total of two sentences of content in it, and it basically just says such a research institute exists. I suppose the law's there so that they can then divert some money into it.
12:09:37 <CakeProphet> Except it apparently has a word count of over 13 million.
12:10:38 <fizzie> "The expert bodies in charge of [language planning] are statutory Language Boards, who issue decisions-in-principle and general guidelines on standard usage within each linguistic community." But it's not like they're controlling the language with an IRON FIST or anything.
12:11:07 <fizzie> I think they did publish some recommendations for Finnish translations of IT terminology way back in the 1980s/1990s, but absolutely no-one adopted those.
12:14:57 <CakeProphet> blah and blah blah to his blah character and then blah blah she was blah blah blah years old she blah blah boys about her so blah blah blah, her blah blah eyes blah blah along the blah blah blah his blah blah lips blah the pattern of a blah of blah on the blah as she blah blah blah and blah him with a blah
12:15:18 <fizzie> "... and blah him with a blah."
12:15:49 <fizzie> It sounds vaguely like fungot after a s/fnord/blah/g
12:16:04 <fizzie> What, is that bot again gone?
12:16:31 <oerjan> brave sir fungot ran away
12:16:38 -!- fungot has joined.
12:16:53 <oerjan> fungot: what is your fnord on this matter?
12:16:54 <fungot> oerjan: that's irrational. " snow crash" is worth reading: fnord/ markus/ papers/ ai-lab-pubs/ fnord?
12:17:02 <fizzie> oerjan: Now I have that ditty looping in my head, thanks for that.
12:17:03 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
12:17:28 <fungot> Selected style: speeches (misc. speeches from Project Gutenberg)
12:17:38 <fungot> CakeProphet: the nebraska bill finds an early occasion to make a few words upon the general position.
12:18:00 <CakeProphet> fungot: But who gives a fuck about Nebraska?
12:18:02 <fungot> CakeProphet: those who have read those writers. let the noble teachers but dissent, it is the fnord capital of polished society. omnes fnord fnord semper fnord, was with them a war or a revolution, and who have aggravated every fault they have found out a hundred ingenious devices by which they act, and i hope that you would be glad to know, that any of those questions which drive even wise men see any reason to apprehend, beca
12:18:20 <fizzie> Nebraska -- the fnord capital of polished society.
12:19:24 -!- oerjan has set topic: omnes fnord fnord semper fnord | Esoteric programming languages | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
12:19:37 <oerjan> CakeProphet: a us state
12:20:32 <oerjan> CakeProphet: otoh i cannot say anything _else_ about it
12:20:40 <oerjan> at least not on the spot
12:20:46 <fizzie> oerjan: But could you list all 50 just like that.
12:21:08 <CakeProphet> well, I suspect he could recognize them though.
12:21:25 <fizzie> (And who stole the top half of my '?'? And is there a "pointless question mark" in Unicode?)
12:21:42 <fizzie> It could be used for pointless questions.
12:22:03 <oerjan> i could probably list _most_ of them, i guess
12:23:44 <CakeProphet> The name Wyoming derives from the Munsee name xwé:wamənk, meaning "at the big river flat", but also named after the Wyoming Valley in Pennsylvania, made famous by the 1809 poem Gertrude of Wyoming by Thomas Campbell.[
12:24:16 <CakeProphet> but then where did Wyoming Valley get its name...
12:25:00 <oerjan> alabama, california, hawaii, texas, georgia, new mexico, oregon, washington, alaska, north dakota, south dakota, idaho, minnesota, wyoming you said, illinois, kansas, new york, florida, arkansas, arizona, michigan, pennsylvania, new jersey, massachusets, missisippi, missouri, tennessee,
12:26:11 <oerjan> west virginia, virginia, maryland,
12:26:22 <CakeProphet> ...I was about to type that exact same sequence....
12:26:38 <fizzie> I was about to add Maryland first.
12:26:55 <oerjan> washington dc (not a state)
12:27:48 <CakeProphet> maine, new hampshire, delaware, kentucky, nebraska, washington, idaho, oklahoma,
12:27:50 <fizzie> Related: http://www.ozyandmillie.org/comics/om20020109.gif
12:28:29 <CakeProphet> I may actually needed to get glasses soon.
12:28:50 <CakeProphet> I believe my vision is getting poor enough to interfere with my ability to read quickly.
12:29:19 <fizzie> 2CFA;COPTIC OLD NUBIAN DIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
12:29:19 <fizzie> 2CFB;COPTIC OLD NUBIAN INDIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
12:29:24 <fizzie> But no "pointless question". :/
12:30:37 <CakeProphet> fungot: How do you feel about COPTIC OLD NUBIAN DIRECT QUESTION MARK
12:30:40 <fungot> CakeProphet: _lincoln's first public speech. from an address to an indiana regiment. march 17, 1909, and delivered a long address so ardent and thrilling that the reporters dropped their pencils and, absorbed in watching him, forgot to take down what he said was, that he was branded with the mark of his despair, the seal of solomon upon it; there he had lain neglected for many centuries, limited the labour of the factory child.
12:31:06 <oerjan> no one mentioned connecticut yet :P
12:31:11 <fizzie> Thanks to Gutenberg's really sucky approach to metadata, not all of that stuff has had titles and such cleaned up yet.
12:31:39 <fizzie> "There he had lain neglected for many centuries, limited the labour of the factory child."
12:31:48 <CakeProphet> fizzie: But it's so much easier to say WAAAAH FUNGOT IS BUGGY.
12:32:06 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches* ss wp youtube
12:32:25 <fungot> Selected style: youtube (Some YouTube comments)
12:32:27 <fizzie> Some of those abbreviations are a bit obscure.
12:32:36 <fizzie> And the youtube style's built out of a very small dataset.
12:32:47 <CakeProphet> hmmm, I should make a language that uses every possible sigil in the Perl tradition.
12:32:58 <fizzie> fungot: How do they speak in YouTube comments?
12:32:59 <fungot> fizzie: this was something like that, i liked the old avril...she used to be a president of the 3 dead.
12:33:05 <CakeProphet> er, let me make more sense. It would use !@#$%^&*
12:33:16 <oerjan> fizzie: well a larger dataset might cause fungot to go insane
12:33:16 <fungot> oerjan: " is that justin timberlake
12:33:33 <fizzie> fungot: Yes, it was a quote from him.
12:33:33 <fungot> fizzie: incredible!!... this makes you mad, very dark, gloomy. but i read or hear on internet. this has been kept neatly inside the box got hit by the looks of it
12:34:24 <CakeProphet> well # would be for numbers, obviously. $ for strings.
12:34:37 -!- derrik has quit (Ping timeout: 258 seconds).
12:35:15 <CakeProphet> having that many distinct sigils would be somewhat horrible.
12:36:24 <CakeProphet> actually I think Perl would be better off in the long run if it ditched most of its sigils. The main benefit of having the sigil is that it removes ambiguities between variable names and other syntactic elements.
12:36:45 <CakeProphet> you only need one sigil to accomplish this.
12:36:58 <CakeProphet> but then there are sigils like * which are kind of special.
12:37:04 -!- derrik has joined.
12:37:21 <CakeProphet> so I guess that would stay, or completely removed and replaced with something that.. makes more sense.
12:38:19 <CakeProphet> as far as I know % doesn't serve much of a purpose and is pretty much the same thing as @, almost.
12:38:55 <CakeProphet> I do think Perl makes some distinctions between arrays and hashes, but they both evaluate to lists in most contexts.
12:39:24 <fizzie> Currently you can have a distinct %foo and @foo, though.
12:39:42 <CakeProphet> right, I suppose that's another feature of sigils.
12:40:43 <CakeProphet> But with the addition of OO and $ seems like a catch-all for most Perl values.
12:41:13 <CakeProphet> Having @ makes sense with the list semantics though.
12:41:47 <CakeProphet> as it signifies that something is going on where it might not be expected if the variable began with a $
12:42:46 <CakeProphet> but it looks pretty tedious compared to Haskell, so I don't know if I will.
12:44:50 -!- Lymee has quit (Read error: Connection reset by peer).
12:45:07 -!- Lymee has joined.
12:49:44 <CakeProphet> Perl takes lists from Lisp, hashes ("associative arrays") from AWK, and regular expressions from sed. These simplify and facilitate many parsing, text-handling, and data-management tasks.
12:49:54 <CakeProphet> that's quite a stretch to say that Perl takes lists from Lisp...
12:50:57 <CakeProphet> or any data structure from... any language.
12:51:18 <CakeProphet> but Perl lists aren't even linked lists, so.. that doesn't even make sense.
12:54:27 -!- wth has joined.
12:54:37 -!- wth has left.
12:58:38 -!- Taneb has joined.
12:59:18 -!- derrik has left.
13:10:03 <fungot> CakeProphet: great video. woop.
13:10:43 <fungot> CakeProphet: i think you were still a very famous video. woop. deal with it
13:11:09 <Taneb> Yeah, CakeProphet, deal with it.
13:12:37 <Taneb> In other news, I think Egypt's having its October Revolution
13:12:47 <Taneb> JUST AS I PREDICTED IT WOULD
13:14:33 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:21:42 -!- Lymia has joined.
13:23:11 -!- Lymee has quit (Ping timeout: 258 seconds).
13:33:53 <cheater__> Taneb, october revolution in july? nice
13:34:02 <cheater__> they're WAY ahead of schedule on this one
13:34:58 -!- Lymia has changed nick to Lymee.
13:41:13 -!- copumpkin has joined.
13:45:32 -!- Taneb has left.
14:04:01 <CakeProphet> !haskell main=putStr.ap(++)show$"main=putStr.ap(++)show$"
14:04:22 <CakeProphet> !haskell putStr.ap(++)show$"putStr.ap(++)show$"
14:04:26 <oerjan> you need to add imports for ap
14:05:04 <oerjan> actually the ghci can use explicit module qualifiers
14:05:06 -!- EgoBot has quit (Remote host closed the connection).
14:05:16 -!- EgoBot has joined.
14:05:18 <oerjan> !haskell putStr.Monad.ap(++)show$"putStr.Monad.ap(++)show$"
14:06:00 <oerjan> no, the syntax is fine, but the -> Monad instance is an orphan one
14:06:48 <oerjan> also Monad is the old form of the module, before hierarchical libraries, it should still work
14:06:57 <oerjan> but that's not where the instance is.
14:08:07 <CakeProphet> until that day I will just understand idioms. :P
14:08:26 <oerjan> it's just Reader without the newtype wrapping :P
14:08:43 * CakeProphet hasn't learned Reader, probably because he hasn't needed it.
14:09:19 <oerjan> basically the -> monad provides an extra argument to everything
14:09:29 <lambdabot> liftM2 f m1 m2 = do { x1 <- m1; x2 <- m2; return (f x1 x2) }
14:09:57 <oerjan> which means you can use it for abstraction elimination. ap = S, return = K, ask = I
14:10:30 <CakeProphet> okay, so ap is where -> Monad is most useful?
14:11:44 <lambdabot> forall (m :: * -> *) a. (Monad m) => m (m a) -> m a
14:12:02 <oerjan> join in the -> Monad essentially duplicates an argument
14:12:54 -!- ais523 has joined.
14:12:58 <oerjan> @pl does some of this automatically
14:13:10 <ais523> bleh, the wireless here was getting so shaky that I was given a wired connection instead
14:13:27 <ais523> and it has all sorts of issues, like requiring a proxy for HTTP that Firefox and Gnome can autodetect, but KDE can't
14:13:30 <oerjan> um it's actually the (e ->) Monad
14:13:34 <ais523> and firewalling port 6667 outbound
14:13:40 <ais523> (that's why I'm on webchat atm)
14:13:51 <oerjan> for e the type of the common extra argument
14:14:03 <ais523> anyone here have an idea of how to get KDE's proxy settings to work?
14:14:26 <ais523> or should I just search on the error message?
14:15:13 <oerjan> there's a trick you can sometimes use to get the -> instance type for things
14:15:19 <lambdabot> forall a a1. (a1 -> a1 -> a) -> a1 -> a
14:16:23 <oerjan> .($) is essentially a nop, except for restricting the type of the first argument of what it's added to to be a function
14:16:42 <lambdabot> forall a b a1. (a1 -> a) -> (a -> a1 -> b) -> a1 -> b
14:18:35 <CakeProphet> similar to ap, but kind of reversed in a way.
14:19:38 <oerjan> return, ask and fmap/liftM of the -> Monad are rarely used but not because they are useless they just have simpler names: const, id, (.)
14:20:03 <CakeProphet> right, I was familiar with all of those except ask.
14:20:15 <oerjan> ask is a MonadReader method
14:20:18 <lambdabot> forall (m :: * -> *) r. (MonadReader r m) => m r
14:20:50 <oerjan> it returns the commonly passed argument
14:20:52 <CakeProphet> so it's a constant, which for the -> function instance makes it a function. :)
14:22:17 <CakeProphet> what does "the commonly passed argument" even mean?
14:23:15 <lambdabot> No instance for (Control.Monad.Reader.Class.MonadReader
14:23:46 <oerjan> MonadReader instances are ->, Reader, and ReaderT (the transformer version)
14:25:32 <oerjan> > runReader (do x <- ask; y <- asks (+1); return $ "Argument was " ++ show x + " and argument+1 was " ++ show y) 5
14:25:33 <lambdabot> No instance for (GHC.Num.Num GHC.Base.String)
14:25:34 -!- ais523 has quit (Ping timeout: 252 seconds).
14:25:45 <CakeProphet> Reader seems kind of redundant, but ReaderT is interesting.
14:26:07 <oerjan> > runReader (do x <- ask; y <- asks (+1); return $ "Argument was " ++ show x ++ " and argument+1 was " ++ show y) 5
14:26:08 <lambdabot> "Argument was 5 and argument+1 was 6"
14:26:38 <oerjan> well Reader is just the untransformed version. You might use it on the bottom of a monad stack.
14:27:04 -!- ais523_ has joined.
14:27:24 <oerjan> in any case Reader is like State except the state is immutable. It's useful for passing common configuration and stuff.
14:27:56 <ais523_> hmm, fun news story: apparently a monkey picked up a camera and accidentally took a photo of another monkey, someone posted it online, then someone (presumably related to the camera's owner) sent a takedown notice
14:28:39 <oerjan> heh interesting copyright issue :P
14:29:50 <ais523_> ah not quite right, it seems that the monkeys took photos of themselves
14:29:56 <ais523_> because they liked looking at their reflection in the camera lens
14:30:18 <oerjan> CakeProphet: also in addition to be immutable, Reader has some better laziness properties since the passed state doesn't need to be threaded through every previous action.
14:30:25 -!- Taneb has joined.
14:30:47 <Taneb> I've just had an idea
14:31:01 <Taneb> An esoteric programming language based on Numberwang
14:31:12 <Taneb> From That Mitchell and Webb Look
14:31:16 <oerjan> > runReader (do x <- undefined; y <- ask; return (y+1)) 5
14:31:29 <Taneb> And also Wang B-Machines
14:31:31 <oerjan> > runState (do x <- undefined; y <- get; return (y+1)) 5
14:31:44 <Taneb> And a bit of Malbolge for extra measure
14:31:48 <oerjan> CakeProphet: see the difference?
14:32:18 <oerjan> the result of the ask is well defined because the state cannot change, but get isn't
14:32:55 <oerjan> > runState (do x <- undefined; put (10); y <- get; return (y+1)) 5
14:33:20 <Taneb> Instructions will be, GO RIGHT, GO LEFT, FLIP, IF ON GOTO, and NUMBERWANG.
14:33:31 <Taneb> Except these will be encrypted as numbers
14:33:37 <oerjan> now State works because no information about the undefined action actually is needed
14:33:50 <CakeProphet> there should also be a SHAZAM instruction.
14:35:13 <Taneb> In Soviet Russia, The State has no undefined information: action actually is needed
14:36:00 <oerjan> that's because in soviet russia, everything is strict. but somehow, still lazy.
14:36:53 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> a
14:37:10 <CakeProphet> Basically all I'm seeing is HASKELL HAS A LIMITATION SORRY.
14:37:11 <Taneb> Numberwang will be the halt instruction
14:39:16 <oerjan> not in principle, but the standard response is "it tends to make too many things type that are really errors"
14:39:31 <oerjan> (ocaml has a -t flag to allow it)
14:39:58 <CakeProphet> cool, I've always wanted a function that has infinite arguments.
14:41:17 <ais523_> lambdabot: * forall a. (a^1 -> a)^1 -> a
14:41:24 <CakeProphet> well, it could be possible to distinguish between an intended infinite type and an unintended one
14:41:29 <ais523_> otherwise the resulting program might not be finite-state
14:41:34 <CakeProphet> basically by requiring an explicit definition for intended infinite types.
14:41:42 <oerjan> CakeProphet: that's what newtypes are for :)
14:42:52 <oerjan> !haskell import Data.Function (fix); newtype Fix a = Fix {unfix :: Fix a -> Fix a} deriving Show; main = print $ fix (fix . unfix)
14:43:30 <ais523_> btw, I went and declared a string-indexed array in VHDL just to see what would happen, from "hello" to "world"
14:43:36 <ais523_> well, "hello" downto "world"
14:43:41 <oerjan> !haskell import Data.Function (fix); newtype Fix a = Fix {unfix :: Fix a -> Fix a}; main = return $! fix (fix . unfix)
14:44:03 <ais523_> the answer is, that it parsed correctly and typechecked correctly, then the compiler said something with a bogus line number about array indexes having to be discrete types, then crashed
14:44:16 <oerjan> CakeProphet: ok i got no error message for the last one :P
14:44:19 <CakeProphet> are you fixing fix without fixing Haskell's type system?
14:44:45 <ais523_> also, the type of fix is basicaly ((a->b)->(a->b))->(a->b)
14:45:12 <ais523_> but writing it as (a->a)->a looks cooler and is marginally more general, even though a not being a function type isn't actually useful with the standard definition of fix
14:45:33 <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,...
14:45:34 <oerjan> > fix ('a':) -- i beg to differ
14:45:34 <lambdabot> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...
14:45:46 <ais523_> oerjan: ('a':) is a function
14:46:07 -!- EgoBot has quit (Remote host closed the connection).
14:46:07 <ais523_> CakeProphet: I mean, a should itself be a function
14:46:07 <oerjan> sure, but not of the type (a->b)->(a->b)
14:46:17 -!- EgoBot has joined.
14:46:27 <ais523_> oh, it's because you have a lazy language that you can get away with that
14:46:37 <ais523_> and recursive types, so it's actually useful
14:46:45 <ais523_> I'm working in a lazy language that doesn't have recursive types, so it isn't
14:46:57 <lambdabot> a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (...
14:47:22 <ais523_> is it doing symbolic arithmetic there?
14:47:22 <lambdabot> Ambiguous type variable `a' in the constraints:
14:47:30 <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 (...
14:47:53 <oerjan> ais523_: mind you it'll probably end up true if you recode the recursive types as lambda expressions (System F types)
14:47:57 -!- clog_ has quit (Quit: ^C).
14:48:10 <CakeProphet> with an instance of Show to display the expression that is accumulated
14:48:21 <ais523_> oerjan: there is no way to express recursive types, it's prevented by the type system
14:48:27 -!- clog has joined.
14:48:31 <ais523_> the best you can do is do, say, (int -> int) for [int]
14:48:37 <ais523_> where it's a function from index to value
14:49:44 <oerjan> <CakeProphet> cool, I've always wanted a function that has infinite arguments. <-- i almost did that for a table in unlambda once. i've never actually done so but you can make functions that take an arbitrary number of arguments and terminate on a d
14:50:34 <ais523_> I implemented one recently
14:50:46 <ais523_> it was lazy, so it only used a finite number
14:50:56 <ais523_> and call-by-name, so all arguments were obtained via callback
14:50:57 -!- Taneb has quit (Ping timeout: 260 seconds).
14:51:05 <ais523_> but it took infinitely many arguments
14:51:14 <CakeProphet> > fix (\r n -> if n == 0 then 1 else n * r (n-1)) 10
14:52:09 <oerjan> <ais523_> I implemented one recently <-- wait in what language
14:52:59 <ais523_> well, it was originally written in Haskell, using a list to hold all the arguments
14:53:18 <oerjan> CakeProphet: if you read the haskell report's definition of recursion it is actually based on (denotational) lowest fixpoint
14:53:27 <ais523_> ICA used a sort of recursive callback, where it asked for an argument, then the caller asked which argument, then it gave the argument number, then the caller gave the argument
14:53:57 <ais523_> CakeProphet: that's the usual definition
14:54:07 <ais523_> if you're writing a language and giving a denotational definition of things
14:56:20 <oerjan> yeah but it is still a little out of place since most of the haskell report is not that formal :P
14:57:16 <CakeProphet> > fix (\f n -> case n of 1 -> [1]; 2 -> [1,1]; _ -> let z@(x:y:_) = f (n-1) in x + y : z) 10
14:58:50 <CakeProphet> I love how magical fix is, while being completely definable in Haskell, and also very simple to define.
14:59:35 <CakeProphet> just shows how powerful the semantics are.
14:59:45 <ais523_> what's the Haskell definition?
15:00:04 <ais523_> heh, that actually works in Haskell
15:00:56 <ais523_> that's cheating, it defined fix in terms of fix
15:01:10 <CakeProphet> yes, this is generally how recursion works.
15:01:20 <ais523_> it should define it as fix = fix (\f. f (ap id)) instead, that makes the fixing explicit
15:01:47 <ais523_> well, Haskell uses \f-> rather than \f.
15:02:40 <CakeProphet> > let fix = fix (\f -> f (ap id)) in fix (const 4)
15:02:41 <lambdabot> Occurs check: cannot construct the infinite type:
15:03:06 <oerjan> CakeProphet: actually it's fix f = let x = f x in x
15:03:38 <ais523_> > let fixnew = fix (\f -> f (ap id)) in fixnew (const 4)
15:03:39 <lambdabot> Occurs check: cannot construct the infinite type:
15:03:49 <ais523_> that's what I was getting at, but it seems not to work somehow
15:03:51 <oerjan> otherwise you will recompute things a _lot_
15:04:16 <ais523_> replacing recursion with fixing like that is the standard way to transform a recursive program...
15:05:48 <lambdabot> forall a b. ((a -> b) -> a) -> (a -> b) -> b
15:06:01 <lambdabot> (\ f -> (\ a -> a) >>= \ c -> f >>= \ b -> return (c b))
15:07:36 <lambdabot> forall a b t. ((((a -> b) -> a) -> (a -> b) -> b) -> t) -> t
15:08:31 <CakeProphet> fix (\f -> f (ap id)) = ap id $ ap id $ ap id $ ap id ...
15:08:41 <oerjan> that does indeed not look like something you can pass to fix...
15:09:18 -!- monqy has joined.
15:09:28 <oerjan> it's ((...) (ap id)) (ap id) i think
15:09:54 <oerjan> :t fix (\f -> ap id f)
15:10:12 <oerjan> ais523_: you switched the argument order, i think
15:10:42 <lambdabot> forall a b. (?f::(a -> b) -> a) => (a -> b) -> b
15:11:06 <ais523_> @pl fix f = let x = f x in x
15:11:15 <ais523_> heh, that's a nice definition
15:11:22 <ais523_> I wonder if it actually works?
15:11:35 <ais523_> @pl fixnew f = let x = f x in x
15:11:54 <ais523_> and that's a sane definition
15:12:05 <ais523_> let fixnew = fixnew id in fixnew (2:)
15:12:08 <ais523_> ? let fixnew = fixnew id in fixnew (2:)
15:12:10 <ais523_> > let fixnew = fixnew id in fixnew (2:)
15:12:10 <lambdabot> Occurs check: cannot construct the infinite type: t = (a -> a) -> t
15:12:57 <oerjan> i suspect @pl gets confused when you try to define a function it uses internally. also it does no actual type checking.
15:13:10 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> a
15:13:10 <lambdabot> Probable cause: `fix' is applied to too many arguments
15:13:11 <lambdabot> In the first argument of `fix', namely `fix'
15:13:51 <lambdabot> forall a t. (((a -> a) -> a) -> t) -> t
15:13:53 <oerjan> ais523_: fix fix is already pointless so @pl would not do anything with it
15:14:06 <ais523_> but it's a quick way to verify that it isn't typechecking
15:14:58 <oerjan> also @unpl doesn't seem to do anything with fix...
15:16:38 -!- oerjan has quit (Quit: Later).
15:35:57 -!- Sgeo has joined.
15:36:03 -!- cheater_ has joined.
15:39:03 -!- cheater__ has quit (Ping timeout: 240 seconds).
16:06:17 -!- ais523_ has quit (Quit: Page closed).
16:20:50 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
16:24:01 <fungot> Selected style: jargon (UNIX-HATERS mailing list archive)
16:24:34 <fungot> quintopia: sunsoft, a dentist's office is a computer " criminal" because the tar data. but i was tempted to reply to a particular string and i'd rather that the ' 90s citizens to problems such as
16:39:54 <Gregor> The Comcast tech support goons are so cheery they're going to give me diabetes.
16:42:19 <quintopia> can't say whether i prefer cheery or sullen
16:47:59 <Gregor> They've "sent a stronger signal to my modem"
16:48:29 <fizzie> They probably have some sort of a dial, and they've turned it up to 11 now.
16:51:11 <Gregor> And the INSTANT I disconnected from the help service, my modem disconnected.
16:51:31 <Gregor> It was like "exit chat" -> "all modem lights go out"
16:53:03 <Gregor> Greatest part is the tech guy said "please make sure to leave your modem online for the next several hours"
16:53:21 <Vorpal> Gregor, did it reconnect?
16:53:21 <fizzie> They took their finger off the "more power" button when you hung up.
16:53:41 <Gregor> Vorpal: It's just flailing.
16:53:43 <Vorpal> Gregor, did you call them again?
16:53:49 <Gregor> fizzie: Like those turbo buttons on ancient PCs :P
16:54:01 <Vorpal> hell yes, what did those turbo buttons actually do
16:54:09 <Gregor> They overclocked the CPU.
16:54:25 <Gregor> If you held them long enough the CPU would go "OH SHIT TOO HOT" and shut down.
16:54:32 <Gregor> And you'd go "daaaaaaaamn I overturbo'd"
16:54:55 <fizzie> It's not overclocking when it's a factory-sanctioned thing. And all I ever saw were of the dual-state type.
16:55:03 <fizzie> 8 MHz to 16 MHz, wasn't it?
16:55:15 <Vorpal> fizzie, what was the intended use?
16:55:17 <Gregor> Something like that; but fine, it would UPclock your CPU :P
16:55:29 -!- cheater_ has quit (Ping timeout: 255 seconds).
16:55:35 <Vorpal> fizzie, I mean the reason to not use the max speed all the time
16:55:38 <fizzie> Vorpal: Mostly to slow too-fast things down for compatibility.
16:55:58 <fizzie> I had one box where the frequency switch was controlled by a small executable that toggled it.
16:56:38 <fizzie> "The button was generally present on older systems, and was designed to allow the user to play older games that depended on processor speed for their timing." ('pedia.)
16:57:06 -!- zzo38 has joined.
16:57:12 <Gregor> I'm kiiiiiiiiinda pissed that my modem disconnected seconds after ending the help session :P
16:57:52 <Vorpal> Gregor, did you call them again?
16:58:07 <Vorpal> Gregor, also are you on phone now?
16:58:10 -!- ais523 has joined.
16:58:31 <Gregor> Vorpal: I'm tethering my phone, and I used their online chat before, not a call.
16:58:33 <ais523> any guesses as to whether http://esolangs.org/wiki/http://esolangs.org/wiki/User:Obeisantregion9 is a spambot or a real user?
16:58:41 <fizzie> Hey, my ADSL link is also less speedy than usually. The downstream speed tends to hover around 19000 kbps, now it's 17949 kbps. So we all have our problems here!
16:58:53 <ais523> I think probably spambot, but it hasn't spammed yet
16:58:53 <Vorpal> Gregor, well do a new online chat
16:59:10 <Vorpal> ais523, that url... what?
16:59:17 <Vorpal> "http://esolangs.org/wiki/http://esolangs.org/wiki/User:Obeisantregion9" <-- what?
16:59:42 <ais523> I don't type URLs like that by hand
16:59:55 <ais523> (spambots have been known to create pages at such URLs, incidentally)
17:00:08 <Gregor> Considering that that's the only thing it's done, why don't we just wait it out :P
17:08:22 -!- cheater_ has joined.
17:16:52 -!- ralc has joined.
17:19:30 <Gregor> <HyacintheACBU> I'm going to send new signals to the modem and refresh it on my end.
17:19:36 <Gregor> I'm gonna give you NEW SIGNALS!
17:19:39 <Gregor> ENJOY THE NEW SIGNALS YUM
17:21:27 -!- Lymee has quit (Ping timeout: 260 seconds).
17:23:10 -!- ais523 has quit (Remote host closed the connection).
17:28:29 <Gregor> HyacintheACBU: I've successfully sent new signals to the modem.
17:30:42 <fizzie> "Your modem didn't seem to like the old signals, which were mostly Mozart. This time I sent some post-retro grindcore to your modem, let's hope it is more willing to work now."
17:34:24 -!- hagb4rd has joined.
17:34:52 -!- Lymee has joined.
17:44:13 -!- zzo38 has quit (Remote host closed the connection).
17:55:28 -!- chickenzilla has joined.
18:05:14 -!- cheater_ has quit (Ping timeout: 255 seconds).
18:06:46 <Gregor> I had to go through the whole activation procedure again though.
18:06:52 <Gregor> But at least I have NEW SIGNALS
18:07:48 <Gregor> And thusfar, no lagtown :)
18:09:24 <Vorpal> btw.. what is "ground" in a laptop. Wrt the case when it is on battery I mean
18:09:35 <Vorpal> I don't mean circuit GND
18:18:34 -!- cheater_ has joined.
18:21:07 -!- Phantom_Hoover has joined.
18:42:54 -!- MigoMipo has joined.
19:02:48 -!- CakeProphet has quit (Ping timeout: 240 seconds).
19:04:27 -!- CakeProphet has joined.
19:04:27 -!- CakeProphet has quit (Changing host).
19:04:28 -!- CakeProphet has joined.
19:16:05 -!- kwertii has joined.
19:34:19 -!- oerjan has joined.
19:36:09 -!- cheater_ has quit (Ping timeout: 255 seconds).
19:48:17 -!- cheater_ has joined.
19:50:21 -!- cheater_ has quit (Excess Flood).
19:50:38 -!- cheater_ has joined.
19:55:14 <Phantom_Hoover> Hmm, all of TV Tropes' "You Fail X Forever" pages have been renamed to "Artistic Licence - X".
19:55:48 <augur> obviously TVTropes artistic licenses page titling.
19:58:33 <augur> clearly a WRITER discovered TVTropes
20:01:07 <oerjan> so basically we are now starting a meme where "artistic license" is a verb meaning "fail forever"?
20:01:40 <monqy> at least it's less overused I hope
20:02:03 <monqy> then again "fail" in that sense isn't near as overused as the other
20:02:38 <olsner> in what way is "fail" not overused?
20:04:47 <monqy> I notice it a lot more as an adjective/noun/interjection than in proper use, somehow
20:05:47 <olsner> the fail is fail. fail!
20:06:23 <Sgeo> Going to attempt to watch Ghostbusters
20:07:03 <oerjan> olsner: THAT IS NOT AN ACTION THAT REQUIRES EXPLANATION
20:07:21 <olsner> oerjan: I CAN STILL ASK FOR ONE, CAN'T I?
20:07:59 -!- Taneb has joined.
20:08:04 <oerjan> i guess it is physically possible
20:09:29 <olsner> it is, it was, I did it
20:09:59 <oerjan> yes. but you may have released Zuul in the process.
20:12:05 <olsner> so? as soon as someone watches ghostbusters they will just solve that problem yet again
20:13:34 <oerjan> yeah but what if someone ends up "Must not think of something immune to crossing the streams. Must not think of something immune to crossing the streams. Oh, damn."
20:14:16 <olsner> the sequel to the movies they actually made will have a solution to the stream crossing issue
20:14:41 * oerjan has only seen the first movie
20:15:06 <Taneb> I've been thinking about my next esolang, Numberwang
20:15:24 <monqy> good name what does it do
20:15:34 <olsner> monqy: rotates the board?
20:16:31 * Sgeo gives up for now
20:16:35 <Sgeo> YouTube has it mirrored
20:16:41 <Taneb> It's got elements of a Wang-B machine, Malbolge, and Numberwang from That Mitchell and Webb Look
20:16:51 <Phantom_Hoover> Taneb, lemme guess, it'll consist entirely of enterprisey buzzwords designed to make it look like there's a language somewhere which will mysteriously evaporate if any attempt is made to implement it?
20:17:16 <Taneb> Wow, that's a good idea.
20:17:21 <Taneb> But it's not Numberwang
20:17:40 <Phantom_Hoover> Code snippets which look fine at first glance, but when cross-referenced cannot possibly be part of the same language.
20:17:53 <Taneb> The programs are lists of numbers
20:18:20 <Sgeo> Taneb, you're going to re-create BancSTAR?
20:18:38 <Taneb> Closer to FRACTRAN
20:18:38 <olsner> Sgeo: speaking of which, any response from FIS?
20:18:53 <Taneb> But it's completely different
20:18:57 <Sgeo> Maybe I did something wrong
20:19:06 <monqy> you didn't say sincerely
20:19:15 <olsner> Sgeo: I'm on the wrong continent, so you'll just have to break in there yourself
20:19:19 <monqy> you didn't greet them either did you
20:19:55 <olsner> no, he freaked out when we gave him inconsistent guidelines on greetings
20:20:36 <Taneb> I need a way to convert any terminating decimal into an integer 1 to 4
20:21:19 <Sgeo> Taneb, round it to the nearest of 1,2,3, or 4
20:21:30 <Sgeo> Do something with edge cases
20:21:34 <Taneb> Nah, needs to be crazier
20:21:45 <Phantom_Hoover> <Taneb> I need a way to convert any terminating decimal into an integer 1 to 4
20:22:01 <Taneb> Like, not recurring
20:22:03 <oerjan> you mean like 143.598632026?
20:22:18 <monqy> somehow fold all digits together then take the result modulo 4 then add one
20:22:50 <Phantom_Hoover> It even carries on Malbolge's cryptographical heritage.
20:22:56 <oerjan> convert to a continued fraction, use the last term (mod 4)
20:24:23 <Taneb> What do swords have to do with anything?
20:24:54 <Taneb> Maybe someone blue-nosed bowdlerised it?
20:25:09 <Phantom_Hoover> Yes, that's becoming distressingly common on TV Tropes these days.
20:25:59 <oerjan> > unfoldr (\n -> if n==0 then Nothing else let f = floor n in Just (f, 1/(n - f))) (143.598632026 :: Rational)
20:26:00 <lambdabot> No instance for (GHC.Real.Integral GHC.Real.Rational)
20:26:20 <oerjan> > unfoldr (\n -> if n==0 then Nothing else let f = fromIntegral $ floor n in Just (f, 1/(n - f))) (143.598632026 :: Rational)
20:26:21 <lambdabot> [143,1,1,2,28,1,5,3,1,4,4,1,2,1,1,1,1,4,1,3,1,1,1,1,2*Exception: Ratio.%: z...
20:29:42 -!- copumpkin has changed nick to cowworker.
20:33:16 <oerjan> > unfoldr (\n -> if n==0 then Nothing else let n' = 1/n; f = fromIntegral $ floor n' in Just (f, n' - f)) $ recip (143.598632026 :: Rational)
20:33:17 <lambdabot> [143,1,1,2,28,1,5,3,1,4,4,1,2,1,1,1,1,4,1,3,1,1,1,1,2]
20:34:20 <oerjan> > unfoldr (\n -> if n==0 then Nothing else let n' = 1/n; f = fromIntegral $ floor n' in Just (f, n' - f)) $ recip (2.718281828 :: Rational)
20:34:20 <lambdabot> [2,1,2,1,1,4,1,1,6,1,1,8,1,1,3,1,1,1,2,10,1,6,2,2]
20:34:57 <oerjan> > unfoldr (\n -> if n==0 then Nothing else let n' = 1/n; f = fromIntegral $ floor n' in Just (f, n' - f)) $ recip (2.718281828459045 :: Rational)
20:34:58 <lambdabot> [2,1,2,1,1,4,1,1,6,1,1,8,1,1,10,1,1,12,1,1,10,2,1,3,1,2,2,1,2,1,1,2,1,1,7,4...
20:35:48 -!- cowworker has changed nick to copumpkin.
20:56:53 * oerjan ponders if it would be easy to implement a TC subset of underload in DigFill
21:13:17 <oklopol> oerjan: let S be a lattice (and a poset), making S^Z a lattice in a natural way. the CA G is lattice-linear if it is a shift-commuting continuous endomorphism of S^Z. theorem: if S = {0, 1}, then a lattice-linear G must be a trivial map or a shift.
21:17:44 <oklopol> proof: since a homomorphism must be order-preserving, if all-0 and all-1 map to all-b for the same b, then the map is trivial. so we may assume all-b maps to all-b. now, consider x = \inf^010^inf. x anded with some of its shifts is all-0, so the image of x must contain a 0. so G(x)_i = 0.
21:17:46 <oklopol> but then for any point y containing a 0 in coordinate j, G(y)_{j+i} = 0 by order-preservingness, and similarly there is such a i' that a 1 in a point forces a 1 somewhere. obviously i = i' or points x with x_i = 0, x_{i'} = 1 cannot have images. but then G is a shift.
21:18:49 <oklopol> (we're still working on the general case, although it's probably not much harder)
21:19:59 <oklopol> sorry *"or points x with x_{-i} = 0, x_{-i'} = 1 cannot have images"
21:21:46 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:22:03 <oklopol> in general i'm very interested in the shift-commuting continuous endmorphisms for algebras over S^Z induced by finite algebras S
21:22:24 <oerjan> there is no f way i'm going to try to understand that.
21:22:28 <oklopol> linearity of couse being the most studied case
21:22:55 <oklopol> "shift-commuting continuous endomorphism" just means it doesn't matter whether you take ands of points before or after the map
21:23:15 <oklopol> or maybe you meant that actual proof
21:26:10 <oklopol> basically i just said ...0001000... cannot map to all-0, or lattice-linearity would be contradicted, so the image has a 1 somewhere. but every point having a 1 somewhere is greater than or equal to a shift of ...0001000..., so you'll have that same 1 in the image of every point.
21:26:32 <oklopol> the same distance away from the 1 in the preimage
21:26:41 <oerjan> or to be precise, i meant _math in general_.
21:27:04 <oklopol> everyone except oerjan: what i just said
21:33:13 <oklopol> btw it's kind of fascinating that we apparently still don't know if the automorphism groups of the full 2-shift and the full 3-shift are isomorphic
21:34:33 <oklopol> i should probably check this factoid, might've been solved now
21:36:45 <Taneb> "All fnord fnord always fnord"?
21:36:58 <fungot> Phantom_Hoover: again why does the market put up with an mclput message ( and 2.3 displays it correctly, maybe i want to buy a " revision" of circa 1989 ( from the user's full name later.
21:37:12 <oerjan> Taneb: words of wisdom by fungot
21:37:12 <fungot> oerjan: hell, sendmail, inserts return-path headers at will and does not have a lot
21:37:18 <Phantom_Hoover> fizzie, hey, any chance of homestyle in the near future?
21:39:52 <Taneb> Should I define the Numberwang operation in Numberwang, or keep it vague?
21:40:40 <oerjan> Taneb: you should define it with a program in numberwang.
21:40:49 <Taneb> I reckon Numberwang is Turing Complete without it
21:42:04 <Taneb> I have it print "It's Numberwang!\n"
21:43:58 <Taneb> Or run the Numberwang program "12! 4.4! 92! 10! 49.8! 2! 2! 2!" with the current tape and everything
21:45:12 <Taneb> Except I have no idea if Numberwang can do loops
21:45:31 <Taneb> It has a GOTO command
21:46:28 <monqy> http://esolangs.org/wiki/Numberwang this isn't your numberwang I hope
21:46:50 <monqy> because that numberwang has loops and is bad
21:47:44 <Phantom_Hoover> oerjan, motion that the wiki has a Brainfuck: namespace.
21:48:31 <monqy> so how does numberwang work?
21:49:15 <Taneb> I may write an interpreter and release it closed-source
21:49:32 <Taneb> Just to watch everyone not bother to do anything about it
21:49:35 <Phantom_Hoover> In that case, may I ask if you know how the wiki's copyrights are set up?
21:51:26 <oerjan> motion that people stop thinking i'm a wiki admin
21:52:56 <Taneb> So, may I move the existing Numberwang?
21:53:18 <Taneb> Which is: a) Orphaned
21:53:39 <Taneb> c) a brainfuck derivative
21:54:01 <Taneb> d) not actually uncategorized
21:58:35 <Taneb> Is there a proper way to link to Wikipedia, or do I just use the external links?
21:59:48 <Phantom_Hoover> Nor fancy anything, since the version of MediaWiki used is like 5 years old.
22:04:01 <oerjan> Phantom_Hoover: actually [[Wikipedia:...] works afair
22:04:53 <oerjan> but it may not be a good idea since it makes the link look internal
22:06:44 <Taneb> What do you call it, when you've got the list, the text between the items?
22:08:12 <Taneb> Like, if I wanted to have Numberwang programs as 13! 42! 2! 7! 9!, it would be "!"
22:09:15 <Taneb> Also, is moduloed a word?
22:09:20 <Taneb> As in, moduloed by four
22:09:41 <oerjan> heh in math one usually says "modulo four"
22:09:54 <coppro> oerjan: indeed, but in programming we have the modulo operator
22:11:32 <oerjan> although it is not _exactly_ the same as the result of applying modulo by four, it modifies a congruence
22:11:59 <oerjan> 7 = 11 (mod 4), where the = should have 3 lines
22:12:54 <oerjan> and that use is afaik considerably older than the use as an operator name
22:14:00 <Taneb> If I said "modulo 4", etc, the sentence would be ambiguous.
22:14:04 <Taneb> I've worked around it
22:14:59 <oerjan> you could use remainder
22:15:17 <oerjan> but i guess that gets more verbose again
22:21:45 <Taneb> http://esolangs.org/wiki/Numberwang
22:23:47 -!- Rugxulo has joined.
22:23:49 <Gregor> It should be Numberwank.
22:29:53 <Phantom_Hoover> Gregor, that would completely defeat the point of the reference.
22:32:13 <Taneb> What was your idea?
22:32:39 <Phantom_Hoover> The enterprisey jargon that made it look like there was a language where there was none.
22:35:47 <Rugxulo> I've been away from here too long ... is there a good message board / forum to frequent these days?
22:36:07 * Rugxulo is not interested in searching months of backlogs ...
22:36:21 <Rugxulo> I probably missed some interesting stuff ... is fizzie here now? perhaps he can sum it up for me
22:36:22 <monqy> the message board / forum is too dead to be good
22:36:29 <oerjan> Rugxulo: we mainly just discuss things here and on the wiki
22:36:31 -!- copumpkin has changed nick to Vectron.
22:36:39 <oerjan> the forum gets the rare message
22:36:55 <Rugxulo> I always forget to check the wiki (and should signup / add some stuff one day, e.g. ETA page is woefully slim)
22:37:57 <oerjan> fizzie seems to have been silent for a while
22:38:05 <Phantom_Hoover> Rugxulo, you mean the general haps of the community, or specific esolang stuff?
22:38:23 -!- Vectron has changed nick to copumpkin.
22:38:36 <Phantom_Hoover> (OK, community is entirely the wrong word, but whatever._
22:39:55 <Phantom_Hoover> Oh god, that term has been appropriated for strip clubs.
22:40:09 <Taneb> It is a club, that is for gentelmen
22:40:15 <Taneb> As in, men who are gentle
22:40:39 <Taneb> Where they can sit quietly and read, or play bridge if they desire
22:41:13 <monqy> no were a strip club
22:41:25 <Taneb> Don't know how to play
22:41:43 <monqy> I should learn to play bridge sometime
22:42:14 <Phantom_Hoover> I understand that you can play it on these new-fangled computing machines though.
22:42:41 <Phantom_Hoover> I was directed to http://www.chroniclogic.com/bcs_download.htm when I inquired.
22:42:56 <oklopol> well i've pasted videos of myself naked here
22:43:32 <Phantom_Hoover> oklopol, sure, but other than augur, who was watching it?
22:44:09 <augur> WHERE ARE THESE NAKED OKLOPOLS
22:44:14 <Taneb> You don't know what gender I am
22:44:33 <Taneb> But yeah, I'm male
22:44:39 <augur> how did i miss naked oklopol :(
22:44:43 <oklopol> augur: i played something on the piano
22:45:07 <Taneb> Me finally here on the ground,
22:45:13 <oklopol> actually the vids have been moved to a better place.
22:45:40 <oklopol> augur: you can't actually see anything :D
22:45:49 <augur> oklopol: well what CAN i see
22:46:09 <augur> oklopol: no i know
22:46:13 <Taneb> Phantom_Hoover: I'm not going to be 40 for a while
22:46:15 <oklopol> you can see my naked arms i suppose
22:46:26 <oklopol> and maybe, MAYBE, part of my penis
22:47:01 <oklopol> i actually love banging my dick against the keys
22:47:02 <coppro> < augur> oklopol: :O <-- you would, wouldn't you
22:47:10 <augur> coppro: yes, i would
22:47:20 <augur> i believe i just said that
22:47:39 <Taneb> I am regretting joining this chat
22:47:59 <Taneb> Wrong-gentlemen's-club-y
22:48:32 <Taneb> Now, that just sounds like a woodwind instrument
22:48:50 <oklopol> speaking of being gay, maybe i should've gone to america instead of europe for my vacation, augur would probably have agreed to meet me (unlike SOME PEOPLE :||)
22:49:15 <augur> oklopol: depends on what you were looking to be agreed with about
22:49:35 <oklopol> "how about next week?" "hmm hmm it seems i'm busy sorry"
22:49:41 <oerjan> Phantom_Hoover: um we have at least two people here right now who may be female
22:49:45 <oklopol> "uhhuh, and the week after that is busy i guess?"
22:49:51 <Phantom_Hoover> oklopol, TbH, the part of England elliott lives in is so boring it'd be a waste.
22:50:21 <oerjan> <Phantom_Hoover> (Lymee is almost certainly a 40-year-old man.) <-- oh, ok.
22:51:41 <Phantom_Hoover> (I vaguely remember coming across something mildly indicative of femaleness while trying to unravel the mystery of who the hell all these lurkers are.)
22:51:49 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:52:34 <oerjan> <Taneb> I am regretting joining this chat <-- you know, there used to much more of this stuff a few years ago :P
22:52:56 <Taneb> I'm sincerely glad I'm a newb, then
22:53:16 <Phantom_Hoover> You mean the legendary days of 2008, when in the words of elliott the channel should have been renamed to ##gaysex?
22:53:26 <augur> oerjan: i was more active a few years ago.
22:53:46 <oerjan> Phantom_Hoover: Elizacat
22:53:59 <augur> ive been in #haskell and #agda primarily, recently
22:54:39 <oerjan> <augur> oerjan: i was more active a few years ago. <-- THAT WOULD EXPLAIN IT YES
22:55:01 <oklopol> personally i find gay sex WAY more interesting to talk about than software/unix/compiles/whatever that stuff is you ppl are always whining about
22:56:36 <oklopol> you know that's not saying much
22:57:00 <Rugxulo> I'll admit *nix is boring, but not THAT boring!
22:57:15 <Taneb> Okay, I've created three esoteric programming languages this year, and they all begin with N
22:57:18 <oerjan> Taneb: although funnily i can only recall two people on the channel who are openly gay. (augur being one, of course.)
22:57:22 <Rugxulo> BTW, new FreeDOS kernel 2040 released a few weeks ago ;-)
22:57:28 <oklopol> i have a complete mental ignore for all of that computer stuff, despite (and perhaps due to) years of trying to get interested in it
22:57:52 <Rugxulo> in fact, I'm using it now! :-))
22:58:10 <Taneb> I'm not homophobic, I just don't like talking about sex or nakedness
22:58:14 <Phantom_Hoover> <augur> ive been in #haskell and #agda primarily, recently
22:58:38 <augur> its like epigram except it gets released xP
22:58:48 <augur> Phantom_Hoover: oh yes
22:58:54 <Taneb> oklopol: parents raised me that way, maybe
22:59:04 <Taneb> Or maybe it's because I'm asexual.
22:59:11 <oerjan> `addquote <augur> ive been in #haskell and #agda primarily, recently <Phantom_Hoover> So is #agda now full of dependently-typed gay sex?
22:59:15 <HackEgo> 503) <augur> ive been in #haskell and #agda primarily, recently <Phantom_Hoover> So is #agda now full of dependently-typed gay sex?
22:59:18 <augur> Phantom_Hoover: that and insights from mcbride and other shit
22:59:28 <Taneb> Bi- leaning hetero-romantic
23:00:05 <Phantom_Hoover> Taneb, I recall reading the log of the first time CakeProphet came here and seeing pikhq_ claim that asexuality was literally biologically impossible.
23:00:11 <oklopol> well that's kinda gay, i hoped like complete disinterest in relationships
23:00:25 <pikhq_> Phantom_Hoover: Uh, what did I what what?
23:00:35 <Taneb> oklopol: Nah, just I rather ironically find sex a turn-off
23:00:44 <augur> Phantom_Hoover: no, but hes an expert on dependent types!
23:01:45 <coppro> Taneb: you have been in relationships, yes?
23:01:50 <oklopol> Taneb: what about MAKING LOVE?
23:02:09 <Taneb> THAT'S JUST A EUPHEMISM FOR THE SAME ACT!
23:02:23 <Taneb> coppro: Got a crush on this girl, though
23:02:29 <Rugxulo> Mike Love? nah, he's a Beach Boy ^_^
23:02:32 <oklopol> no, there's way more love involved
23:02:44 <augur> Taneb: uh, i dont know about you but when i make love it requires milk, flour, eggs, sugar..
23:03:02 <Taneb> Oh, look, it's tomorrow
23:03:21 <Taneb> This has nothing to do whatsoever with where the conversation has turned
23:03:23 <oerjan> ...you chased him away. i should ban the lot of you :P
23:03:40 -!- Taneb has left.
23:05:49 -!- elliott has joined.
23:06:53 <augur> you missed all the gaysex
23:07:33 <oklopol> yeah me and augur had a "conversation"
23:08:01 -!- Rugxulo has quit (Quit: boring).
23:08:18 <augur> btw who reads scandinavia and the world?
23:09:57 <oklopol> i think it's reasonably funny
23:10:07 <oklopol> at least the ones i've seen linked
23:10:44 <oerjan> augur: i actually started binging it yesterday
23:11:20 <augur> oklopol: you are finland. just sayin
23:11:32 <oerjan> <augur> you missed all the gaysex <-- ok new theory, elliott _is_ Taneb
23:12:18 <oklopol> i'm a pretty stereotypical finn in many ways
23:12:49 <oerjan> oklopol: so you are precisely like that finnish guy on satw, right?
23:13:04 <oklopol> i don't know that much about him
23:13:25 <oerjan> elliott: you arrived 3 minutes after we embarassed him to leave
23:13:44 <oklopol> you think we embarassed him?
23:14:15 <elliott> oerjan: I TOLD YOU WE HAD GUESTS
23:16:11 <oklopol> really asexuality is pretty awesome, i could do way more mathing if i was asexual
23:16:25 <oerjan> elliott: recap: Phantom_Hoover called #esoteric a gentlemen's club and then realized what that meant in american. then the discussion passed on to naked pictures of oklopol and someone woke up augur. the rest should be obvious.
23:17:09 <oerjan> oklopol: he _said_ he didn't like the subject.
23:17:26 <elliott> <oklopol> really asexuality is pretty awesome, i could do way more mathing if i was asexual
23:17:30 <oerjan> he also denied that was why he left, but...
23:17:36 <elliott> there are testosterone inhibitors available HTH
23:17:40 <oklopol> not liking it != being embarrassed about it
23:18:26 <oklopol> elliott: the problem is not so much that i need my 2-5 orgasms a day, more that i start feeling like life is completely pointless if i don't get laid for a week
23:18:57 <oklopol> that is, with a living object other than myself
23:19:53 <augur> oklopol: i'd be happy to help you with that
23:20:08 <oklopol> so would the retarded girl!
23:20:21 <oklopol> actually i think it was just a sick joke, since she then just left.
23:20:22 <augur> yeah but a) retarded, b) girl
23:20:33 <augur> oklopol: what happened to your girlfriend, anyway
23:20:47 <Phantom_Hoover> augur, she wouldn't have sex with him in a bath of coke.
23:21:59 <oklopol> i had some issues with her starting serious relationships with other guys, and things lead to another and now she's in africa.
23:22:25 <oklopol> i was fine with an open relationship ofc but i'm not really a polyamorist
23:22:58 <oklopol> oh also what Phantom_Hoover said
23:23:03 <oklopol> that was really the main thing
23:23:29 <augur> oklopol: well, come to maryland. :D
23:25:33 <elliott> You're receiving this because at some point in the past, the dice roller
23:25:33 <elliott> at nomic.net (dice@nomic.net) received a request purporting to be from
23:25:33 <elliott> We are happy to announce the deployment of a new dice roller to replace
23:25:34 <elliott> the original one, which is now more than 10 years old.
23:25:47 <elliott> A NEW AGE OF NOMIC DICE ROLLERS HAS ARRIVED
23:29:19 <oklopol> 7 lines is not very spamic here
23:29:59 <augur> oklopol: if its 7 screenfulls of lambdabot, its a regular occurance
23:30:05 <augur> or of some other evaluator
23:30:16 -!- ralc_ has joined.
23:30:28 -!- ralc has quit (Ping timeout: 240 seconds).
23:30:37 <elliott> oerjan: 07:26:45: -!- BeedaWeeda has joined #esoteric.
23:31:10 <quintopia> is boily back from wherever he went off to?
23:31:18 <elliott> < 1310542005 7325 :BeedaWeeda!~BeedaWeed@74-45-176-122.dr01.pasn.ca.frontiernet.net JOIN :#esoteric
23:31:24 <elliott> wtf, is that a different isp?
23:32:22 <elliott> 12:06:55: <CakeProphet> The book held the record for the longest sentence in English literature with 13,955 words. That record was broken by Nigel Tomm's one-sentence, 469,375-word book, The Blah Story, Volume 4.
23:32:26 <elliott> that thing has like fifteen volumes
23:32:41 <elliott> "The tenth volume of The Blah Story by Nigel Tomm was published in 2008. In this volume Nigel Tomm shocks us with (only) one unthinkable word, which is 2,087,214 letters long (read more)!!!"
23:33:02 <elliott> Also 'The Blah Story, Volume 10' encloses the world's longest word which contains 2,087,214 letters. The ultra long word was created using very simple algorithm. Nigel Tomm joyfully explains an algorithm of building his extra size word: "Fuse separate words together no matter how cool you think they look singly."
23:33:23 <oklopol> i mean people have spent HOURS just debugging bots and shit here which is often just repeating "<bot> hello everyone <u> !do stuff <bot> the wrong thing to say <u> fucking ass-originating shit <bot> bye"
23:33:31 <elliott> Let me summarize some facts about world’s longest book/novel - The Blah Story. Nigel Tomm’s abstract novel The Blah Story was begun to publish in the October 2007. In 2007 first 4 volumes were published. In 2008 next 19 volumes were published. For now, 23 volumes of The Blah Story are published, they contain 11,338,105 words; 61,745,771 characters (with spaces); 17,868 pages.
23:33:36 <elliott> http://theblahstory.files.wordpress.com/2008/12/the_blah_story_covers_big.jpg
23:34:10 <elliott> 12:14:57: <CakeProphet> blah and blah blah to his blah character and then blah blah she was blah blah blah years old she blah blah boys about her so blah blah blah, her blah blah eyes blah blah along the blah blah blah his blah blah lips blah the pattern of a blah of blah on the blah as she blah blah blah and blah him with a blah
23:34:10 <elliott> 12:15:03: <CakeProphet> ...this sounds like such a good read.
23:34:51 <monqy> is that an actual quotation from an actual volume of that actual story
23:34:56 <monqy> maybe it's art or something
23:35:02 <oerjan> elliott: it seems somewhat dubious to consider this "english literature"
23:35:09 <elliott> oerjan: i object, this is awesome literature
23:35:17 <elliott> or arey ou objecting to the english part :D
23:35:59 <oklopol> "<monqy> is that an actual quotation from an actual volume of that actual story" <<< someone answer plz
23:38:01 <elliott> http://theblahstory.wordpress.com/
23:38:09 <elliott> seventeen thousand pages for you
23:38:23 <elliott> oklopol: oh and it's available to download.
23:38:33 <monqy> Book Title: The Blah Story / Author: Nigel Tomm / # of Words: 11,300,000[citation needed] / Language: English / Reason for Dispute: Text composed mainly of 'blah's.[citation needed]
23:38:37 <elliott> Here’s an excerpt (the first page of The Blah Story, Volume 8):
23:38:37 <elliott> Then blah again to blah this time, where she blah blah with arty blah and blah in blah, took blah the simple blah, and wrote some blah blah poetry, supposedly the blah of a blah blah blah on the blah of the blah blah title My Blah Story:
23:38:37 <elliott> Blah you. About you. You blame me. Blah you.
23:38:37 <elliott> I blah as you or blah by blah,
23:38:39 <elliott> You know. You blah. You blah it out of blah.
23:38:47 <elliott> Discovers blah and circles
23:38:49 <elliott> Into blah. ‘My eyes,’ I scream.
23:39:02 <oerjan> to blah or not to blah, that's the blah. for whether it's nobler to blah or to blah, perchance to blah
23:39:06 <elliott> Longest sentence continues – “The Blah Story, Volume 18″
23:39:07 <elliott> June 12, 2008 by theblahstory
23:39:07 <elliott> The eighteenth volume of The Blah Story by Nigel Tomm was published in 2008. The Blah Story, Volume 18 continues the longest sentence everrrrrrrrrrr (sorrry for rrrrrrrrrr’s, sometimes I just can’t control myself). The ultra-long sentence was started in Volume 16 and continued in Volume 17 (read more). For now, the sentence occupies three 812-page The Blah Story volumes (16, 17 and 18) and… there’s still more behind!
23:41:30 <elliott> 12:49:44: <CakeProphet> Perl takes lists from Lisp, hashes ("associative arrays") from AWK, and regular expressions from sed. These simplify and facilitate many parsing, text-handling, and data-management tasks.
23:41:30 <elliott> 12:49:54: <CakeProphet> that's quite a stretch to say that Perl takes lists from Lisp...
23:41:40 <elliott> I think Lisp actually introduced the dynamically-sized list structure
23:41:48 <elliott> As a language element, I mean
23:47:30 <elliott> 14:30:47: <Taneb> I've just had an idea
23:47:30 <elliott> 14:31:01: <Taneb> An esoteric programming language based on Numberwang
23:47:30 <elliott> 14:31:12: <Taneb> From That Mitchell and Webb Look
23:47:30 <elliott> WE ARE CULTURED, WE KNOW WHAT NUMBERWANG IS
23:48:02 <elliott> 14:38:31: <CakeProphet> something wrong with an infinite -> tree?
23:48:08 <elliott> I believe this makes the type system unsound (oerjan?)
23:49:00 <elliott> 14:44:45: <ais523_> also, the type of fix is basicaly ((a->b)->(a->b))->(a->b)
23:49:00 <elliott> 14:44:50: <ais523_> *basically
23:49:00 <elliott> 14:45:12: <ais523_> but writing it as (a->a)->a looks cooler and is marginally more general, even though a not being a function type isn't actually useful with the standard definition of fix
23:49:05 <elliott> oh, he already got told right after
23:49:50 <elliott> 14:48:31: <ais523_> the best you can do is do, say, (int -> int) for [int]
23:49:50 <elliott> 14:48:37: <ais523_> where it's a function from index to value
23:52:18 <elliott> oh, i see, the context is not lamdba calculus
23:52:19 <oerjan> <elliott> I believe this makes the type system unsound (oerjan?) <-- ocaml manages... i'd imagine it doesn't hurt more than non-termination in general?
23:53:00 <elliott> 14:58:50: <CakeProphet> I love how magical fix is, while being completely definable in Haskell, and also very simple to define.
23:53:00 <elliott> 14:59:35: <CakeProphet> just shows how powerful the semantics are.
23:53:00 <elliott> 14:59:45: <ais523_> what's the Haskell definition?
23:53:00 <elliott> 14:59:56: <CakeProphet> fix f = f (fix f)
23:53:11 <elliott> oerjan: ocaml has a weaker type system than Haskell's...
23:53:14 <oerjan> < elliott> oh, he already got told right after
23:53:27 <elliott> dammit oerjan why didn't you tell CakeProphet he was wrong :((((((((
23:54:43 <elliott> 15:11:06: <ais523_> @pl fix f = let x = f x in x
23:54:43 <elliott> 15:11:06: <lambdabot> fix = fix id
23:55:22 <elliott> 16:24:01: <fungot> Selected style: jargon (UNIX-HATERS mailing list archive)
23:55:22 <fungot> elliott: why not support certain common denominators in the towel and start learning perl. i've been using ftp software's network monitor program and mis-typed a command to execute something like that, you
23:55:29 <oerjan> elliott: in any case i've always heard that the reason haskell doesn't allow implicitly recursive types is not something fundamental but because it would make too many obvious errors type (presumably involving missing function arguments)
23:55:45 <elliott> oerjan: fair enough, but I'm still Suspicious(tm)
23:55:57 <oerjan> elliott: i suspect that @pl is confused because it contains fix which @pl uses internally
23:56:44 <elliott> ?pl alakazam f = let x = f x in x
23:57:51 <elliott> 19:55:14: <Phantom_Hoover> Hmm, all of TV Tropes' "You Fail X Forever" pages have been renamed to "Artistic Licence - X".
00:00:55 <elliott> (cur) (last) 22:20, 13 July 2011 Taneb (Talk | contribs) (Replaced with new esolang)
00:00:55 <elliott> (cur) (last) 21:53, 13 July 2011 Taneb (Talk | contribs) (Numberwang moved to Numberwang (brainfuck derivative))
00:00:59 <elliott> I find this precedent disturbing
00:01:13 <elliott> I'm going to invent a language called brainfuck and move the old article away
00:01:20 <elliott> (perhaps to Brainfuck (brainfuck derivative))
00:01:54 <elliott> 21:51:26: <oerjan> motion that people stop thinking i'm a wiki admin
00:01:58 <elliott> oerjan: delete a page for me plz
00:02:35 <Phantom_Hoover> <elliott> I'm going to invent a language called brainfuck and move the old article away
00:02:44 <Phantom_Hoover> Yeah, but I told him to try it and see if anyone stopped him.
00:02:51 <elliott> I WILL STOP HIM WITH MY POWERS
00:02:54 <elliott> 22:36:07: * Rugxulo is not interested in searching months of backlogs ...
00:02:54 <elliott> 22:36:21: <Rugxulo> I probably missed some interesting stuff ... is fizzie here now? perhaps he can sum it up for me
00:03:00 <elliott> fizzie: your true purpose in life revealed.
00:03:58 <elliott> 22:44:14: <Taneb> You don't know what gender I am
00:04:03 <elliott> i forget what i was giong to say
00:06:08 <elliott> 22:47:39: <Taneb> I am regretting joining this chat
00:06:08 <elliott> I am regretting reading this log.
00:08:22 -!- copumpkin has joined.
00:10:43 <elliott> 22:57:18: <oerjan> Taneb: although funnily i can only recall two people on the channel who are openly gay. (augur being one, of course.)
00:10:44 <elliott> wait who's the other I KEEP A REGISTRY
00:10:56 <augur> elliott: you, ofcourse
00:11:15 <elliott> 22:59:11: <oerjan> `addquote <augur> ive been in #haskell and #agda primarily, recently <Phantom_Hoover> So is #agda now full of dependently-typed gay sex?
00:11:26 <elliott> `addquote <augur> ive been in #haskell and #agda primarily, recently <Phantom_Hoover> So is #agda now full of dependently-typed gay sex?
00:11:28 <HackEgo> 503) <augur> ive been in #haskell and #agda primarily, recently <Phantom_Hoover> So is #agda now full of dependently-typed gay sex?
00:11:48 <augur> elliott: whats the rules
00:11:55 <monqy> is that a double space
00:12:17 <monqy> I can't see because it breaks the line and I'm too lazy to adjust my terminal
00:16:11 <oerjan> elliott: it _was_ two spaces O_O
00:16:27 <oerjan> i have no idea why you didn't see that
00:17:57 <oerjan> elliott: also, slereah
00:18:29 <Phantom_Hoover> I pronounce 'Slereah' as 'Slerah' in my head for some reason.
00:18:42 -!- kwertii has quit (Quit: bye).
00:18:54 <Phantom_Hoover> Of course, I thought 'Fibonacci' was 'Fibocanni' for quite some time, so I'm not terribly good at that.
00:19:26 <elliott> http://esolangs.org/wiki/Nthern_archive
01:08:18 <Phantom_Hoover> This suggests that it is uncomfortably close to morning.
01:08:26 -!- Phantom_Hoover has quit (Quit: Leaving).
01:29:05 -!- Sgeo_ has joined.
01:30:45 -!- Sgeo has quit (Ping timeout: 255 seconds).
01:35:49 <Sgeo_> "More than 6,000 people with pillow-related injuries check into U.S. emergency rooms every year!"
01:36:00 <Sgeo_> Thanks, I really, really, wanted to know that
01:37:18 <elliott> Do you have... pillowphobia.
01:38:05 <Sgeo_> No, but I've never feared dying from pillow before
01:38:38 <quintopia> you're probably more likely to die in a pillow-related accident than by shark bite. especially if you never swim in the ocean.
01:50:46 <elliott> Guys how does Maven even work.
01:51:00 -!- hagb4rd has quit (Ping timeout: 240 seconds).
01:54:25 <oklopol> how can you "die from pillow"?
01:54:52 <oklopol> you know that thing in the movies where they put a pillow on someone's face and try to suffocate them
01:55:16 <oklopol> we tried that with my ex once, but we just couldn't kill each other that way
01:55:27 <oklopol> you can just breathe through it or slightly tilt your head
01:55:32 <quintopia> you know that thing where you sneak rocks into your snowballs because you're mean
01:58:03 <oerjan> `addquote <oklopol> you know that thing in the movies where they put a pillow on someone's face and try to suffocate them <oklopol> that doesn't work. <oklopol> we tried that with my ex once, but we just couldn't kill each other that way
01:58:04 <HackEgo> 504) <oklopol> you know that thing in the movies where they put a pillow on someone's face and try to suffocate them <oklopol> that doesn't work. <oklopol> we tried that with my ex once, but we just couldn't kill each other that way
02:01:54 <quintopia> oklopol: it is possible to suffocate someone with a pillow though. you have to shove it down her throat. hard. just because the movies do it wrong doesn't mean it can't be done.
02:04:52 <oklopol> well right or you could set the pillow on fire and then shoot the girl
02:18:29 -!- derrik has joined.
03:02:23 -!- azaq23 has quit (Quit: Leaving.).
03:15:54 -!- oerjan has quit (Quit: Good night).
03:22:49 -!- derrik has quit (Quit: left).
03:24:08 -!- yorick has quit (Ping timeout: 240 seconds).
03:25:23 -!- jix has quit (Ping timeout: 240 seconds).
03:28:00 -!- ralc_ has quit (Remote host closed the connection).
03:29:27 -!- jix has joined.
03:47:48 <oklopol> would you touch a boob that was on fire?
03:48:05 <elliott> Gregor: Debian are always right, right?
03:48:21 <pikhq_> #!/usr/bin/make -f says no.
03:48:59 <pikhq_> That's the first line of boilerplate in pretty much every debian/rules file.
03:49:32 <pikhq_> My point is, "Their packaging scheme is absurd."
03:49:45 <pikhq_> That's just the most easy to spot absurdity.
03:52:01 -!- yorick has joined.
04:01:02 <elliott> Gah, someone else answer :P
04:01:08 <elliott> Is Apache Two a DFSGLSGLSG-ok license?
04:01:47 <pikhq_> elliott: It's DFSG, FSF, and OSI approved.
04:01:53 <pikhq_> In addition to being GPLv3 compatible.
04:02:21 <pikhq_> Really, it's only a non-copyleft license with a patent clause.
04:02:46 <elliott> THEN WHY ISN'T INTELLIJ IDEA IN DEBIAN (As someone suffering with Java, I am trying to find a tool to make it as bearable as possible, and Intellij IDEA looks well-liked :P)
04:03:36 <pikhq_> Probably because it became free software only a couple years ago.
04:03:42 <coppro> debian packaging scheme is ridiculous
04:03:51 <elliott> Oh boy, their Linux distribution is a tar.gz.
04:03:52 <coppro> but then again, so are all packaging schemes
04:03:56 <elliott> Unpack the idea-10.0.tar.gz file using the following command: tar xfz idea-10.0.tar.gz
04:03:56 <elliott> Run idea.sh from the bin subdirectory.
04:04:09 <pikhq_> coppro: Some more so than others.
04:04:15 <elliott> Maybe I'll just try NetBeans; that has the advantage of being packaged in my distribution.
04:04:29 <pikhq_> Most the source-based distros have at least *respectable* packaging schemes.
04:05:01 <elliott> (I might just stick with Eclipse if I can get a tolerable build system working with it :P)
04:05:25 <pikhq_> And I give Slackware props for simplicity, though Slackbuild scripts are way too complicated for my tastes.
04:05:50 <pikhq_> (mostly due to being *entirely standalone*)
04:07:12 <elliott> Oh, good, IDEA doesn't install globally.
04:07:19 <elliott> It... just has no installation script.
04:07:32 -!- oklopol has quit (Ping timeout: 252 seconds).
04:07:44 <elliott> It's also a fairly crappy one, but more importantly, an excruciatingly slow one.
04:08:11 <elliott> Plus I'd have to bundle the entirety of Groovy in.
04:08:13 <monqy> java? aren't there other languages that run on the jvm and can interface with java, or are they bad too, or do you really have to use java
04:08:42 <elliott> monqy: I'm writing a Bukkit plugin, so it has to be JVM based; any language will add heaps to my filesize; and I don't know of any languages that run on the JVM that are sufficiently good to make this worthwhile.
04:09:00 <elliott> Scala is a mess. Clojure is also a mess.
04:09:32 <monqy> is there a perl for jvm
04:09:58 <monqy> aren't there multiple perl6s at least
04:10:03 <elliott> <CakeProphet> there's only one perl. :)
04:10:08 <elliott> http://www.perlmonks.org/?node_id=272641
04:10:43 <monqy> what other languages exist
04:10:46 <pikhq_> elliott: http://jtcl.kenai.com/
04:11:08 -!- oklopol has joined.
04:11:21 <pikhq_> Or, more realistically, write your own Forth for JVM.
04:11:36 <elliott> WARNING: You are launching IDE using OpenJDK Java runtime
04:11:37 <elliott> THIS IS STRICTLY UNSUPPORTED DUE TO KNOWN PERFORMANCE AND GRAPHICS PROBLEMS
04:11:59 <elliott> ugh IDEA why are you using ugly Javaish text rendering
04:12:00 <pikhq_> ... I was unaware there was any notable difference between OpenJDK and Sun JDK.
04:12:29 <monqy> known performance and graphics problems
04:12:33 <elliott> openjdk = java seven backported to work with previous java versions
04:12:39 <elliott> with a bunch of proprietary stuff rewritten
04:13:00 <CakeProphet> http://en.wikipedia.org/wiki/Category:JVM_programming_languages
04:13:38 <monqy> are any of them minimal
04:14:10 <elliott> IDEA you are not being nice to me.
04:14:26 <monqy> jscheme is r4rs is r4rs any good is jscheme any good
04:14:31 <CakeProphet> with generics, function pointers, and "class cases and pattern matching (a.k.a. algebraic types)"
04:14:41 <elliott> oh, pizza == gj predecessor
04:14:51 <elliott> "It was designed by Gilad Bracha, Martin Odersky, David Stoutamire, and Philip Wadler to offer developers a smoother transition and better Java compatibility than the Pizza programming language, previously created by Odersky and Wadler."
04:16:41 <Sgeo_> And only one I recognize is Bracha :/
04:16:42 <monqy> why is there php for jvm
04:16:53 <monqy> the only one I recognize is odersky
04:17:06 <monqy> does this make me a bad person
04:17:47 <elliott> Sgeo_: you don't recognise odersky? wadler?
04:18:02 <Sgeo_> elliott, I only recognize Bracha because of Newspeak, tbh
04:18:11 <monqy> odersky is the scala guy right
04:18:20 <monqy> if I ever knew who wadler is, I forget now
04:18:38 <elliott> monqy: odersky = creator of Scala, Wadler = populariser of monads in functional programming, populariser in general of functional programming, influential in development of Haskell, author of "Theorems for free!", which popularised the study of parametricity in functional languages
04:19:31 <monqy> teh is a serious word
04:20:23 <elliott> monqy: yeah but with Java it's not an IDE so much as...
04:20:37 <CakeProphet> would it be possible to change the D to a K and make furniture puns?
04:20:45 <Sgeo_> elliott, um, it's not Smalltalk..
04:20:48 <elliott> monqy: you might see <huge class boilerplate>, but the actual language behind it is is [File → New → Class]
04:21:07 <elliott> it just erases that information after you write it, because java is stupid
04:21:11 <elliott> so you can't reify intentions
04:21:28 <monqy> can you do it with reflection
04:21:45 <monqy> I was going to continue it
04:21:49 <monqy> and make it better
04:21:53 <monqy> but then you killed it
04:21:57 <CakeProphet> basically the answer to any problem in Java is "define a class"
04:22:00 <elliott> let's pretend i said nothing
04:22:23 <elliott> IntelliJ IDEA Q[ampersand]A for Eclipse Users
04:22:23 <elliott> Q: What happened to my Workspace? Where are all my projects?
04:22:23 <elliott> A: They're OK, but in a slightly different way.
04:22:34 <monqy> they're in a better place
04:22:40 <CakeProphet> they have been converted into a hilarious furniture themed interface!
04:23:01 <elliott> Q: I feel that the editor behaves differently. Am I right?
04:24:37 <CakeProphet> all of your files are in drawers, the current file being edited is on the table. You have a handy wardrobe of tools, and you compile with the coffee cup.
04:24:59 <elliott> there's longer answers below :P
04:25:43 <elliott> IDEA what are you doing, you confuse me even more than Emacs :(
04:25:45 <monqy> CakeProphet: the homespring of ides?
04:26:02 <monqy> I can't bother to remember that
04:26:51 <monqy> apparently jaskell is a thing but instead of being like haskell it's weird
04:27:19 <CakeProphet> Nice apparently has ideas from ML and Haskell
04:27:29 <CakeProphet> but that's all I know about it. Also I think it's dying.
04:27:48 <CakeProphet> ...I wish io wasn't dead. Such a good idea..
04:28:05 <elliott> it has like, literlaly nothing to do with haskell?
04:28:05 <monqy> does anyone know what its deal is
04:29:32 <monqy> like 4 java schemes, 2 java phps, 3 java clisps, two cobols, awk, ada, 2 logos, 3 luas, 2 pascals, perl6
04:29:44 <elliott> i'll write it in logo then
04:29:52 <fizzie> <Rugxulo> I probably missed some interesting stuff ... is fizzie here now? perhaps he can sum it up for me <-- Just paste the last year of logs into Microsoft Word and use the "auto-summarize" option.
04:30:08 <elliott> oh wow IDEA wasn't joking about letting you place the cursor outside of a line boundary
04:30:25 <elliott> you know what IDEA reminds me of
04:31:00 <monqy> I've never bothered to understand J
04:31:21 <CakeProphet> Alef++, a programming language inspired by Perl and Lisp.
04:31:24 <elliott> J the language is awesome you sohuld understand it.
04:31:29 <monqy> CakeProphet: ahahahaha what
04:31:44 <CakeProphet> http://en.wikipedia.org/wiki/List_of_JVM_languages
04:31:45 <monqy> I'll put J in my reading pile
04:31:56 <monqy> http://alefpp.sourceforge.net/
04:32:04 <monqy> how can a language have ++ in its name that's obscene
04:32:11 <monqy> how can a language be influenced by both perl and lisp
04:32:40 <elliott> oh, IDEA is kind of slow when i type, prolly cause of openjdk
04:33:27 <monqy> I remember J is related to APL and it's good for golf and it's "function-level" but that's it
04:33:29 <CakeProphet> it's the best one I've found. I don't like netbeans at all.
04:33:36 <elliott> ok it wouldn't suck if i had the patience to get the build system working
04:33:55 <CakeProphet> elliott: be a snob and use emacs for everything.
04:33:56 <monqy> investigating alef++ now
04:33:58 <elliott> monqy: it's actually a really powerful paradigm and understanding it brings a great insight into why programs in it are so short
04:34:14 <elliott> monqy: hint: J would be just as good as golf if every operator had a word-long name
04:34:39 <elliott> function-level is a misnomer, it basically just has higher-order functions (every function is an operator, functions have one or two arguments only)
04:34:40 <monqy> elliott: yeah it's on my reading pile. I read about that function-level paradigm once but I never really tried doing anything with it. I will. eventually.
04:34:46 <elliott> not full higher-order functions, just second-level
04:34:52 <elliott> but it has things like forks
04:35:17 <elliott> (unopa binopb unopc) x = (unopa x) binopb unopc x
04:35:24 <Sgeo_> Now if only the functions were even slightly possible to remember
04:35:25 <monqy> I remember there are no values things in "function-level" languages and that's it
04:35:43 <Sgeo_> Hmm, maybe I should make an Ahnk deck thing
04:35:55 <elliott> monqy: so sum is +/%# = +/ % #
04:36:20 <oklopol> Sgeo_: they are hard to remember forever without making a mnemonic. they are easy to remember while you're actually reading and using it.
04:36:23 <elliott> so it's just (sum fold) divide length
04:36:37 <elliott> monqy: and basically, every operation is lifted to arrays
04:36:41 <elliott> i.e. array+array does the obviousa
04:36:45 <elliott> (arrays are N-dimensional)
04:37:02 <oklopol> yes, they always have 7 elements
04:37:14 <elliott> monqy: basically the J approach to solving problems is to look at the problem so that everything is an array, and then you just construct the array operation out of the primitives. :)
04:37:24 <elliott> you very rarely see explicit loops or recursion of any sort
04:37:32 <monqy> yeah I need to learn this. I'll do it after I finish my busy.
04:37:32 <CakeProphet> I think they have this thing called map that kind of works like that.
04:37:37 <elliott> monqy: busy is a bad thing to do.
04:37:46 <elliott> CakeProphet: yes, and J takes that idea to the entire language.
04:38:51 <monqy> oh right and I'm suspending my busy until I get on this alef++ thing. good time management.
04:39:17 <monqy> Well, some day I'm bored -- no project no idea --, but magically, i Googling a magical words "Creating my own programming language", by finding, reading, and testing some Open Source projects based in Java Virtual Machine like ObjectScript, Sleep, JRuby ..., i want to create my own dynamic programming language with a design like Perl. but recently, Artificial Intelligence has attracted my curiosity by programming with Lisp.
04:39:23 <monqy> After, i decided to forge a revolutionary design for a programming language, between my imagination and (Perl, Lisp) syntax, by giving birth for Alef++.
04:39:26 <monqy> is this for serious
04:40:06 * elliott attempts to counteract the horrible with http://inamidst.com/pluvo/
04:40:17 <elliott> a Perl-influenced language that's actually interesting
04:40:45 <monqy> onto the reading pile
04:41:47 <monqy> alef++ is, unsurprisingly, horrible
04:42:00 <elliott> "Its syntax owes much to Bash" ;; hehe, these words rarely signify goodness
04:42:10 <CakeProphet> actually I demand that there be Perl hybrids of every language.
04:42:35 <monqy> actually alef++ doesn't seem anything like lisp to me
04:42:39 <Sgeo_> FOR THE LOVE OF ALL THAT IS HOLY WHY WOULD ANYONE WANT BASH INSPIRED SYNTAX
04:42:48 <elliott> Sgeo_: pluvo is actually good, shut your trap.
04:43:05 <monqy> even alef++'s website is broken wtf
04:43:09 <Sgeo_> Oh, thought we were talkig about a different language
04:43:39 <monqy> Alef++, is a new programming language like Perl and Lisp syntax, with a many changing in classical languages designs, her specification designed to be implemented for any VM, by default can access to any private/protected/default Java fields or methods.
04:44:01 <Sgeo_> Can access any private Java field?
04:44:41 <Sgeo_> ...don't tell me encapsulation isn't enforced at the JVM level.. or is it workaround-able like in Ruby?
04:45:04 <elliott> conclusion of my java ide exxxploration: everything sucks, eclipse slightly lessso
04:45:06 <CakeProphet> I believe access modifiers are compile-time only.
04:45:20 <fizzie> CakeProphet: They definitely exist on the bytecode level in Java.
04:45:21 <CakeProphet> elliott: I have reached the same conclusion.
04:45:35 <fizzie> I vaguely recall you can go around them with the reflection API, though.
04:45:36 <CakeProphet> fizzie: oh, well, shows what I know about JVM. :P
04:46:07 <elliott> oh hey, you can configure eclipse to use less ugly tabs
04:46:40 <fizzie> http://radio.javaranch.com/val/2004/05/18/1084891793000.html "Hack any Java class using Reflection" (first Google hit on some relevant keywords)
04:46:43 * elliott configures Eclipse to automatically close tabs. good idea.
04:47:00 <monqy> okay enough alef++ for me
04:47:41 <elliott> "[X] Show affordance in hover on how to make it sticky"
04:48:30 <elliott> i just wish Eclipse was slightly less laggy than it is
04:48:33 <CakeProphet> the syntax looks like someone mixed Haskell and Perl.
04:49:19 <pikhq_> "You put shit in my jelly!" "You put jelly in my shit!"
04:49:47 <monqy> syntax is good at being superficial
04:50:01 <elliott> does eclipse really rebuild every project whenever i save a file
04:50:24 <CakeProphet> monqy: superficial in some sense, but not superficial in the "unimportant" sense.
04:51:54 <monqy> it's mostly concrete syntax that invites superficial; abstract syntax is nice and structurey
04:54:07 <CakeProphet> concrete syntax is concerned with layout, abstract syntax is the structure. I think both are important.
04:54:37 <CakeProphet> one thing that makes Haskell nice is the user-defined infix operators. A small change in syntax layout that improves the coding experience.
04:55:25 <monqy> notice the subtle difference between "is" and "is good at being"/"invites"
04:56:33 <monqy> yes it's important (at least at some level), but it invites lots of concern/hype/whatever about things that really don't matter
04:56:38 <elliott> wow, Eclipse actually wraps to eighty chars by defaul
04:57:32 <CakeProphet> monqy: depends on what you think matters. The concrete layout of the syntax is important to me, especially as the semantics become more complex.
04:59:15 <monqy> reiteration: it matters, but is, in my opinion, more prone to invite superficial nonsense than other aspects of language design
05:00:35 <coppro> CakeProphet: Because a ***<>* b makes code so clear
05:01:06 <CakeProphet> I mostly prefer things to be convenient. This is why I don't like Java.
05:01:19 <elliott> coppro: i too use a vtonehundred
05:01:26 <CakeProphet> Having short infix operators composed of just a few symbols is rather convenient.
05:01:45 <coppro> elliott: 80cols is important for putting multiple files up simultaneously
05:01:59 <coppro> elliott: also reducing horizontal scan
05:02:11 <coppro> CakeProphet: Yes except all the good ones are taken
05:02:17 <elliott> eightycols just makes boilerplate spread across multiple lines
05:02:22 <monqy> I dislike infix operators due to alignment/precedence/yuck issues but I don't know of anything better :(
05:02:41 <elliott> coppro: I very rarely run into wanting to name an operator a name that's already taken in Haskell
05:02:50 <elliott> I don't believe it's an issue that exists in practice
05:03:09 <elliott> The only duplicates I get are for Parsec, which has names identical to ones in Control.Applicative for backwards-compat, but they do the exact same thing as the Applicative ones
05:03:11 <elliott> So that's not even a conflict
05:03:27 <coppro> When I see code using operators like ||| or *** I cringe
05:03:35 <coppro> I don't even have a fucking clue what they are supposed to do
05:03:49 <CakeProphet> For me it's Java syntax that mostly ruins Java for me. Semantically I actually consider somewhat elegant due to the minimalism, but the syntax is verbose and that makes simple things very inconvenient.
05:03:50 <coppro> I'd much rather `infix` operators at that point
05:03:50 <elliott> coppro: (***) is called split
05:03:54 <elliott> somehow I don't think that would enlighten you either
05:03:59 <CakeProphet> ....not that I like Java semantics, I was just comparing it to the syntax.
05:04:09 <elliott> coppro: Before you learned <language>, you didn't have a fucking clue what <anything in language> was supposed to do.
05:04:16 <elliott> Except by familiarity with things you already know.
05:04:17 <coppro> monqy: ||| is used in xmonad for composing layout strategies or whatever they call them
05:04:19 <elliott> Learning curves are not bad.
05:04:34 <monqy> coppro: oh I know (|||) from the ArrowChoice or whatever it is definition
05:04:42 <monqy> coppro: (and (***) from Arrow)
05:04:48 <elliott> The only reason you could possibly think learning curves are bad is because you have rarely strayed outside your circle of knowledge, i.e. you've only used languages that are really no improvement on what you know.
05:05:12 <elliott> Programming languages are... well, languages; they should optimise for concision for powerful/general/useful/common operators.
05:05:45 <coppro> *elliott: However I find that the Haskell community's treatment of abstract symbols are an unnecessary addition to the learning curve
05:05:47 <elliott> The Arrow options are pretty much as general as they come, so they have short, concise names; some of them are infix operators because any alphabetic name would either be far too long, or incomprehensible.
05:06:05 <CakeProphet> also alphabetic names for everything suck. see: Java
05:06:17 <elliott> coppro: I hear that complaint a lot, but never from someone who actually uses Haskell for actual projects.
05:06:37 <elliott> I find that, usually, valid complaints are echoed from within a community; certainly for Haskell there are many valid complaints that are echoed within the community.
05:06:50 <elliott> (Actually most valid complaints about Haskell are heard /only/ within the community because they require an understanding of the language to form.)
05:07:31 <elliott> When using Haskell I basically never think "oh, these infix operators sure are a drag"; usually, replacing infix operators with alphabetic ones would make my code's structure harder to see.
05:08:00 <coppro> I must congratulate you on one of the most lucid arguments I have heard you make
05:08:30 <CakeProphet> elliott: now extend the arguments to complaints about Perl, plz. :)
05:08:40 <coppro> Although I would say that part of the reason these sorts of complaints don't get heard as much within the community are that the learning curve is steep enough to discourage the people who would complain about that sort of thing
05:08:43 <elliott> Compare (f `blahBlah` g) with (f >>+ g); you may not know what (>>+) does, but you probably wouldn't know what blahBlah does either; you're pretty much going to have to look it up no matter what you do. At least with the latter, those who know the operator can more easily scan the code, because the symbols make a distinction between "branch"/"structural" elements and "leaf" elements of a tree of compositional-style code.
05:08:48 <monqy> perl is a mess end of argument
05:08:48 <coppro> CakeProphet: not on your life
05:09:37 <coppro> elliott: perhaps this is an implicit goal of the haskell community
05:09:38 <elliott> coppro: Certainly true, but the Haskell community is big enough that I feel that just about any argument should have someone arguing for it from within. For chrissakes, I even saw someone argue, on /r/haskell -- someone who actually used Haskell to write actual code -- that nobody uses the monads that aren't basically StateT IO, and that they should be removed.
05:10:57 <coppro> The closest thing I ever wrote to a real project in Haskell used Parsec
05:11:09 <monqy> sometime I should learn what the (-> a) monad instance means
05:11:12 <coppro> and I still consider Parsec to be one of the greatest things about Haskell
05:11:26 <elliott> coppro: Another thing on infix operations: If you read a paper about Haskell, the operators are almost universally prettied up with LaTeX along with the rest of the code,
05:11:41 <elliott> coppro: <*> is a lot nicer when you see it as "star in a circle".
05:11:49 <elliott> That's basically a limitation of ASCII, though.
05:12:02 <elliott> Ideally we'd write Haskell programs on whiteboards. :p
05:12:06 <monqy> I dunno; the angle bracket shape is pretty groovy
05:12:39 <elliott> Parsec is certainly a great way of showing how Haskell's abstractions help in writing actual code.
05:13:29 <CakeProphet> and also how infix operators help to make code more concise.
05:13:31 <coppro> elliott: out of curiosity, how familiar are you with category theory in the rigorous sense?
05:13:53 <elliott> coppro: Not nearly as much as I'd like to be, but learning it properly isn't on my short-term todo list.
05:14:29 <elliott> coppro: I feel a little twinge of disappointment in myself every time Edward Kmett posts something and I don't "get" it. :)
05:14:40 <elliott> Not "get" as in understand why the code works, but "get" in a more abstract sense.
05:14:48 <coppro> (my experience with Haskell tells me I would be best served learning proper category theory and considering Haskell to be an application of the category theory)
05:14:49 <monqy> does perl properly use infix operators, or is that just unary prefix and those wacky sigil things and whatever /// and friends are?
05:15:09 <CakeProphet> monqy: a useful function is ap. ap f g = (\a -> f a (g a))
05:15:18 <elliott> coppro: There are a significant number of prominent Haskell programmers that consider the category theory relation to not actually be that useful to understanding Haskell code
05:15:33 <elliott> I wouldn't be able to say who's right, though.
05:15:36 <monqy> CakeProphet: S is nice, yes; I usually use (<*>) instead though
05:15:49 <elliott> But there is obviously much of Haskell that does not actually originate from category theory.
05:16:03 <elliott> There's only a handful of main abstractions from category theory to understand, I would say.
05:16:24 <elliott> Does anyone know how to get Eclipse to unindent blank lines as soon as I leave them?
05:16:31 <elliott> It really irks me to have those tabs lying around.
05:16:44 <elliott> I know that Clean Up does it, but that's another step.
05:16:56 <monqy> and I think fmap is composition
05:17:06 <monqy> can't remember anything else at the moment
05:17:09 <CakeProphet> monqy: not familiar with how <*> works for the (e ->) instnace
05:17:23 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
05:17:38 <lambdabot> forall a b a1. (a -> b) -> (a1 -> a) -> a1 -> b
05:18:00 <monqy> CakeProphet: (<*>) is literally ap but defined as a part of applicative functors rather than in terms of monad stuff
05:18:19 <elliott> sigh, we really need a better hierarchy for those typeclasses
05:18:48 <monqy> but <*> looks a lot nicer than `ap`
05:19:19 <monqy> and <*> is more general, assuming someone bothered to define applicative instances for every monad
05:19:19 <CakeProphet> elliott: or perhaps something better than typeclasses..
05:19:30 <monqy> CakeProphet: perl allusion?
05:20:18 <monqy> I was asking if you were in the process of alluding to perl
05:20:32 <elliott> Typeclasses are pretty good.
05:20:38 <CakeProphet> no Haskell has generally figured shit out better than Perl has.
05:20:54 <CakeProphet> it would be silly to allude to Perl as a means to improve Haskell.
05:21:15 <monqy> silly is good so long as not everyone is serious
05:21:17 <elliott> <!-- WARNING: Eclipse auto-generated file.
05:21:17 <elliott> Any modifications will be overwritten.
05:21:17 <elliott> To include a user specific buildfile here, simply create one in the same
05:21:17 <elliott> directory with the processing instruction <?eclipse.ant.import?>
05:21:17 <elliott> as the first entry and export the buildfile again. -->
05:21:24 <monqy> meaning of good depending on who is serious
05:22:05 <monqy> all I know about it is it uses xml
05:22:17 <CakeProphet> if you had dynamic typing like Perl, then typeclass hierarchies wouldn't even be an issue!
05:22:39 <elliott> if you had loose typing like forth, type errors wouldn't even be an issue!
05:22:46 <monqy> I've seen antfiles and heard stuff and stuff
05:22:57 <coppro> elliott: notwithstanding the dumbstupid bits of design whereby Haskell concepts don't map cleanly onto category-theoretic ones, my main issue with Haskell is simply one of comphrehending the reason each particular abstraction exists
05:23:19 <monqy> who thought xml was a good idea suited to build process definition or whatever the term is for what antfiles do
05:23:22 <CakeProphet> abstraction for the sake of abstraction, duh.
05:23:34 <elliott> coppro: I feel like "issue" places the blame unnecessarily on Haskell, since the problem seems to be mainly one of ignorance
05:23:53 <coppro> elliott: sorry, yes, that was phrased badly
05:24:04 <CakeProphet> Perl fixes all of these issues by not allowing you to define other data structures besides the ones it provides you.
05:24:17 <monqy> then it gives you oop
05:24:17 <elliott> coppro: I mean, understanding why monads are useful is pretty easy (IMO; way too much emphasis is placed on monads as being a Thing in writings about Haskell by people who don't know Haskell, which is unfortunate)
05:24:22 <coppro> and my small experience with formal category theory tells me that this is the best approach. I shall eventually follow it up with learning examples (both in mathematics and in Haskell)
05:24:37 <elliott> e.g. Alternative is an abstraction that is very easy to understand the use of:
05:24:40 <elliott> class Applicative f => Alternative f where
05:24:41 <elliott> (<|>) :: f a -> f a -> f a
05:24:52 <elliott> if you know Parsec, you understand Alternative's use, and can easily visualise its generalisation to failure handling of various kinds
05:25:03 <elliott> if you know the list monad, you can come up with the implementation pretty easily
05:25:29 <elliott> (well, some and many are confusing, but they have defaults)
05:25:54 <elliott> the shame with Alternative is that it's separate from Monoid and MonadPlus, sigh
05:26:11 <elliott> but I mean, sure some abstractions are difficult to see teh application of
05:26:14 <monqy> what's arrowplus' deal; I forget
05:26:17 <elliott> but it's hard to think of a solution to that other than reading a bunch of code
05:26:28 <monqy> or does it have a different name like arrowadd
05:26:40 <CakeProphet> elliott: it would be nice if the only thing that mattered was the type of the function and not the name for the purposes of being an instance, but I think that would create some ambiguity.
05:26:49 <coppro> elliott: I'm sorry, but I have to be honest; the defintion of Alternative provides me little insight into what it does
05:26:56 <elliott> coppro: well it has documentation, I elided it
05:27:02 <elliott> coppro: it "does" nothing, it is a typeclass
05:27:11 <elliott> coppro: you've used Parsec, you know what <|> does
05:27:15 <elliott> empty is the failure value
05:27:20 <elliott> some and many are irrelevant (they have defaults)
05:27:42 <elliott> i wish i hadn't picked it now since it's part of the Great Number of Typeclasses That are Actually Just Monoids, sigh
05:27:48 <coppro> elliott: I'm lookingat the documentation
05:27:53 <elliott> the list implementation is empty = []; (<|>) = (++) btw
05:28:11 <coppro> elliott: what do some and many do?
05:28:19 <lambdabot> Source not found. Are you on drugs?
05:28:37 <elliott> coppro: like I said, they're basically just library functions; they're in the typeclass so you can give them more efficient implementations
05:28:38 <fungot> CakeProphet: i'll bet that lurking further down the road is some sort of magic shell script that gives you ( complaints/ bugs to:
05:28:49 <elliott> they're irrelevant for this quickly-becoming-disasterous example
05:28:54 <monqy> ooh ArrowPlus is actually split up into ArrowZero and ArrowPlus
05:29:25 -!- elliott has left ("Leaving").
05:29:32 -!- elliott has joined.
05:29:42 <monqy> may your example rest in peace
05:29:53 <elliott> guh, Eclipse's generated ant build.xmls are so ugly
05:29:53 <coppro> elliott: ok let's pretend you did MonadPlus then
05:30:04 <elliott> coppro: that's just as bad.
05:30:11 <elliott> only Monoid should exist :P
05:30:31 <elliott> (oh hey, new homestuck albums)
05:30:36 <CakeProphet> I really think that Monoid would be vastly improved by having (++) instead of mappend
05:30:39 <elliott> coppro: well, you know whawt a monoid is.
05:30:44 <elliott> CakeProphet: hysterical raisins
05:30:48 <elliott> base sucks, get used to it :P
05:31:00 <monqy> caleskell caleskell
05:31:43 <CakeProphet> also, since monoids are pretty common, it seems expected that there would be a number of typeclasses that are supersets of Monoid.
05:31:54 <coppro> elliott: This is a real complaint about the Haskell community: They let the abstract algebra leak into 'how to program in this language' way too quickly
05:32:01 <CakeProphet> at least they use better names like (<|>) instead of mappend...
05:32:06 <monqy> CakeProphet: supersets/identical????????
05:32:11 <coppro> Thankfully I enjoy abstract algebra so I am not significantly discouraged by this
05:32:19 <monqy> CakeProphet: except requiring a different kind
05:32:28 <elliott> coppro: every other language lets sloppy engineering leak into "how to program in this language" way too quickly
05:32:55 <coppro> but for newbies, the Monoid a => Monoid (Maybe a) instance documentation is horrendous
05:32:56 <CakeProphet> monqy: well yes, some are identical. It's nice to not have to newtype for every possible monoid.
05:33:09 <elliott> instances need documentation?
05:33:36 <elliott> well, some types have more than one possible instance for a typeclass
05:33:40 <elliott> but most of the time they don't
05:33:45 <elliott> so any documentation would be... boilerplate.
05:33:55 <monqy> isn't Maybe like that
05:34:03 <monqy> so there's what First and Last
05:34:06 <lambdabot> Ambiguous type variable `t' in the constraints:
05:34:16 <coppro> elliott: "Lift a semigroup into Maybe forming a Monoid according to http://en.wikipedia.org/wiki/Monoid: "Any semigroup S may be turned into a monoid simply by adjoining an element e not in S and defining e*e = e and e*s = s = s*e for all s S." Since there is no "Semigroup" typeclass providing just mappend, we use Monoid instead. "
05:34:20 <lambdabot> forall m. (Monoid m) => m -> m -> m
05:34:25 <elliott> coppro: ok, I agree that's ugly inline
05:34:42 <CakeProphet> monqy: wait, (++) = mappend? Is that standard Haskell?
05:34:46 <monqy> CakeProphet: caleskell
05:34:51 <elliott> coppro: it's wrapped in the code which is slightly better http://hackage.haskell.org/packages/archive/base/4.3.1.0/doc/html/src/Data-Monoid.html#Monoid
05:35:02 <elliott> coppro: but basically ... well
05:35:06 <elliott> coppro: ok, what you're saying is:
05:35:17 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
05:35:20 <elliott> coppro: that documentation is not helpful for a newbie who doesn't know abstract algebra
05:35:21 <monqy> CakeProphet: caleskell
05:35:39 <elliott> which is true, but the newbie probably either doesn't want to use the instance, or will just use it without the documentation by experimentation
05:35:55 <CakeProphet> sometimes just a brief explanation of how a particular instance works would be nice.
05:36:02 <elliott> coppro: But remember that this is an API reference, not a tutorial
05:36:14 <elliott> CakeProphet: tbh, I find sourcediving the quickest way to answer such wishes
05:36:30 <coppro> elliott: Thus it becomes apparent that knowing the abstract algebra is useful
05:36:39 <CakeProphet> still it doesn't describe intent/use-cases and such.
05:36:43 <elliott> coppro: I agree that the Haskell... "experience" for a newbie could use improvement, but on the other hand, I don't really care much about the experiences of people coming from "traditional" imperative languages.
05:37:18 <elliott> I mean, not that they're bad people or anything, I just think that "dumbing down" Haskell to make it easier for them would miss the point of Haskell
05:37:27 <CakeProphet> I didn't find Haskell to be particularly difficult to learn, at least the basics anyways.
05:37:38 <monqy> haskell wasn't difficult at all for me
05:37:48 <elliott> Not saying I want to be "elitist" about it or anything -- god I love scare quotes -- but I find, e.g. a mathematician wanting to learn Haskell a much more interesting origin to optimise for.
05:37:49 <CakeProphet> most of the learning curve is in the abstractions that are built from a fairly simple language.
05:38:13 <elliott> coppro: I also don't think that belittling "traditional" programmers by hiding the abstract algebra, etc. underpinnings of things a good idea, either.
05:38:32 <elliott> Sure, there are a lot of programmers who would dismiss it as abstract nonsense, but let's be honest, they probably wouldn't end up using Haskell anyway.
05:39:14 <elliott> (Unfortunately this kind of we're-all-practical-and-those-guys-are-so-abstract-ho-ho superiority complex seems to be distressingly common with programmers on the internet, but well... this is the internet, everyone is an asshole.)
05:39:47 <pikhq_> We're "practical" — we believe malloc is cheap and garbage collection expensive.
05:40:05 <elliott> coppro: I think your criticism is definitely valid, but at the same time I think that the Haskell community should focus on making the language nicer for existing users is more important than making it nicer for newbies, at least in the short-ish term.
05:40:08 <monqy> what do php programmers think
05:40:18 <pikhq_> Their heads are entirely empty.
05:40:33 <Sgeo_> Do they also have a hat full of bomb?
05:40:47 <CakeProphet> PHP programmers are programmers who are too stupid to be Perl programmers.
05:41:04 <monqy> who pays someone to program in php
05:41:16 <coppro> elliott: One thing I wish was possible was a better way to handle cases where a single type may have multiple instances of a typeclass, as with Monoid
05:41:20 <monqy> sadist? idiot? are there other reasons?
05:41:47 <elliott> coppro: Typeclasses are a trade-off: You avoid passing a record to every single function you're using, but you can only have one instance.
05:42:02 <CakeProphet> but really every PHP script in the world should be replaced with Perl.
05:42:11 <coppro> elliott: Well you can get around that with newtype
05:42:12 <elliott> coppro: Actually I hear that ML programmers laughed at Haskell typeclasses to start with, because "ho ho only one instance", but then it turns out that passing around records is a huge gigantic pain and typeclasses are so much more convenient.
05:42:20 <elliott> coppro: IMO, if there is more than one possible instance, either:
05:42:34 <elliott> - There is one instance that is much more useful than the other, and the other should be provided with a newtype;
05:42:45 <elliott> - Or both are equally useful, and there should be _no_ instance for the base type, only two newtypes.
05:43:03 <elliott> It's not ideal, but usually there's only one instance you would actually want to use, so it works out.
05:43:08 <elliott> Unfortunately the latter seems to be a path not often taken.
05:43:57 <coppro> elliott: I agree in concept; I just wish the syntax was better
05:44:31 <monqy> newtype is a pain :'(
05:44:57 <CakeProphet> Just have Monoid1, Monoid2, Monoid3, ... :)
05:45:18 <pikhq_> CakeProphet: Actually, not really.
05:45:21 <CakeProphet> (Note: 'everything else' is not a valid response)
05:45:22 <pikhq_> CakeProphet: There'd be only one Monoid.
05:45:44 <pikhq_> CakeProphet: There'd be ConcatList and ZipList, though.
05:46:23 <pikhq_> (note, not Monoid implementations. My brain sucks at thinking of a more relevant example.)
05:46:28 <coppro> elliott: for instance, getSum $ mconcat $ map Sum [1..10]
05:46:48 <elliott> coppro: http://hackage.haskell.org/packages/archive/newtype/0.2/doc/html/Control-Newtype.html
05:47:29 <coppro> elliott: nice, didn't know about that
05:47:32 <elliott> Conor McBride: always the best?
05:47:38 <monqy> that does look very nice
05:48:17 <elliott> Make Ant easy with Eclipse --http://www.ibm.com/developerworks/opensource/tutorials/os-ecl-easyant/
05:48:23 <HackEgo> 498) <fizzie> elliott: You have become the very thing you fought for!
05:48:34 <coppro> elliott: I /think/, however, you could work this into the type system somehow
05:48:34 -!- cal153 has joined.
05:48:43 <coppro> elliott: perhaps I should write a paper on it, or do those exist?
05:48:58 -!- cal153 has quit (Client Quit).
05:49:15 <coppro> elliott: Where is a good repo of Haskell papers
05:49:53 <elliott> http://www.haskell.org/haskellwiki/Research_papers ?
05:50:02 <elliott> You should basically just read anything McBride has ever written and be done with it.
05:50:26 <elliott> coppro: But really, <opinynz>a blog post would accomplish at least as much as far as whatever idea you have goes</opinynz>.
05:51:23 <coppro> elliott: but I can do one better with a paper
05:51:33 <coppro> if I actually go and explain detailed semantics, etc.
05:51:39 <elliott> You said "sure", then immediately contradicted yourself :)
05:51:53 <elliott> You can put anything you can put in a paper in a blog post :P
05:52:12 <coppro> elliott: no one wants a multipage blog post
05:52:14 * pikhq_ is not quite getting what ala Sum would do
05:52:36 <elliott> coppro: This is Haskell, we expect multipage blog posts :)
05:52:46 <elliott> I'm sure most of Conal's posts count as multi-page.
05:55:40 <pikhq_> I mean, would that "getSum $ mconcat $ map Sum [1..10]" example be written as "ala Sum (\_ -> mconcat)", or what?
05:56:07 <pikhq_> Erm, "ala Sum (\_->mconcat) [1..10]"
05:57:11 <elliott> you'd use foldMap, not mconcat
05:57:58 <lambdabot> Data.Foldable foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
05:57:58 <lambdabot> Data.Traversable foldMapDefault :: (Traversable t, Monoid m) => (a -> m) -> t a -> m
06:04:37 <coppro> elliott: my approach to multiple instances would be to basically allow the type system to implicitly create a complex type where multiple instances exist, and then disambiguate it later. Operations on the typeclass would be lazy and thus not performed until at least the disambiguation occurs. There's some deep type system magic that it would entail though.
06:05:04 <coppro> possibly the issues are actually unresolvable
06:05:28 <elliott> "Lazy" is way too vague in this context; what you mean is that it'd add a context like
06:05:35 <elliott> (Num Integer) => Integer -> Integer -> Integer
06:05:48 <elliott> to the disambiguated signature of (+) whenever you used + on Integer arguments, right?
06:06:02 <elliott> Where the Integer arguments there are actually the same Integer as that Num instance.
06:06:13 <elliott> (Num t, t ~ Integer) => t -> t -> t
06:06:22 <coppro> I mean something like trying to make mconcat [1..10] be well-defined
06:06:29 <coppro> but useless until you perform getSum or getProduct on it
06:06:32 <lambdabot> forall t. (Num t, Enum t, Monoid t) => t
06:06:41 <lambdabot> Ambiguous type variable `a' in the constraints:
06:06:46 <elliott> > mconcat [1..10] :: [Integer]
06:06:47 <lambdabot> No instance for (GHC.Enum.Enum [GHC.Integer.Type.Integer])
06:06:52 <elliott> Meh, you can make an instance
06:10:00 <coppro> I think it could be done by making a type which is a supertype of Integer, Sum Integer, and Product Integer, and the underlying machinery would actually make an mconcat instance on that type. The actual evaluation semantics would depend on whether you attempt to use the result as a Sum Integer or a Product Integer; an attempt to use it as an Integer would be illegal
06:10:19 <coppro> actually wait that makes no sense
06:10:41 <coppro> basically I want the magic type-inference disambiguation of Num
06:10:59 <coppro> as it works on constants
06:13:10 <coppro> except applying to ambiguous applications of polymorphic functions
06:13:23 <coppro> (and this is not the same as overloading, I'll note)
06:17:22 -!- azaq23 has joined.
06:18:08 <elliott> <coppro> basically I want the magic type-inference disambiguation of Num
06:18:08 <elliott> <coppro> as it works on constants
06:18:15 <elliott> not magic; "9" simply doesn't mean "9::Integer"
06:18:21 <elliott> it means Prelude.fromInteger (9::Integer)
06:18:26 <elliott> sorry, it means Prelude.fromInteger (9::Prelude.Integer)
06:18:37 <elliott> there's also IsString with recent ghc and -XOverloadedStrings
06:18:44 <elliott> that lets you overload string literals too
06:19:02 <elliott> then "x" means Data.String.fromString ("x"::Prelude.[] Char) :P
06:19:08 <coppro> it wouldn't work quite like that then
06:19:12 <elliott> it's kind of ad-hoc, but...
06:19:15 <coppro> although I guess it could
06:19:34 <lambdabot> forall a. (Data.String.IsString a) => String -> a
06:20:29 <CakeProphet> as that is pretty much the same thing as read.
06:20:55 <elliott> IT HAS THE SAME TYPE OBVIOUSLY THE SAME FUNCTION OMFGWTFBQBQ
06:21:03 <elliott> For one, the argument to fromString is not expected to be a piece of valid Haskell cod.e
06:21:28 <elliott> Literally completely unrelated.
06:21:33 <elliott> It is only for string types like ByteString and Text.
06:21:47 <CakeProphet> because it means I can take an arbitrary data structure, and implicitly parse a domain-specific language into that data structure.
06:21:54 <monqy> > fromString "hello" :: String
06:21:56 <elliott> That is not what IsString is for.
06:22:00 <monqy> > Data.String.fromString "hello" :: String
06:22:01 <lambdabot> Not in scope: `Data.String.fromString'
06:22:28 <CakeProphet> but there is nothing stopping this usage is there? so...
06:22:47 <elliott> CakeProphet: Yes, there is; my real-world ability to club you if you do that.
06:22:51 <elliott> Do not expect me to back down on this.
06:23:30 <CakeProphet> I don't see the harm in taking a risk here...
06:24:15 <CakeProphet> I mean, it's obviously a language extension that needs ridiculous exploiting.
06:24:39 <elliott> <elliott> hi, I know someone who thinks it's a good idea to use -XOverloadedStrings so that strings can act as a DSL for any data structure whatsoever. please give me appropriate threats to use in response. thanks
06:25:30 <monqy> incidentally he also likes perl
06:25:33 <elliott> <c_wraith> "go write perl" seems like an appropriate dismissal
06:27:09 <coppro> elliott: so I think this is doable within the type system, but not with the existing language constructs
06:27:39 <elliott> It's way too ad-hoc for me to support it ;D
06:28:08 <coppro> elliott: since it requires a transparent supertype
06:28:16 <elliott> Haskell has no supertyping :P
06:28:25 <elliott> I don't think you are using "supertype" correctly.
06:28:34 <elliott> You mean: data type with one type argument.
06:28:48 <coppro> I mean "type whose set of values is a superset of the other's"
06:28:57 <elliott> Right, Haskell does not have those at all.
06:29:06 <CakeProphet> elliott: I see nothing wrong with my idea.
06:29:18 <CakeProphet> in fact it is an excellent abuse of a wonderful language extension.
06:29:27 <pikhq_> CakeProphet: That's because Perl has removed your sense of taste.
06:29:36 <coppro> elliott: what type is fromInteger
06:29:58 <coppro> (you know what I meant the first time)
06:30:16 <CakeProphet> pikhq_: but it has given me a newfound appreciate of convenience. :)
06:30:55 <elliott> coppro: just like the type of
06:31:00 <monqy> cool well-designed macros are like convenience except elegant
06:31:05 <elliott> :t (fromInteger (0::Integer) +)
06:31:14 <elliott> coppro: not subtyping at all, just syntactic sugar.
06:31:17 <pikhq_> CakeProphet: We're talking about a language that enforces a variant of Hungarian notation. Except more confusing.
06:31:25 <elliott> data Integer = Neg Nat | Zero | OnePlus Nat
06:31:43 <elliott> see? nothing that even looks like subtyping
06:31:52 <monqy> template haskell sounds more pleasant than abusing overloaded strings
06:32:06 <CakeProphet> pikhq_: I'm not even sure if that's the right way to describe sigils.
06:32:15 <elliott> coppro: well, there is a very shallow form of subtyping; every type has _|_
06:32:18 <pikhq_> monqy: At the very least, Template Haskell is *intended for that*.
06:32:25 <elliott> coppro: typeclasses are kind of like subtyping, but only if you look at them wonky :)
06:32:36 <coppro> elliott: Yeah, every type has bottom
06:33:30 <CakeProphet> what's the fuss about? It is completely harmless to use OverloadedStrings to my own advantage.
06:33:44 <coppro> elliott: Every type that has an instance of Read also has the type of read
06:33:46 <CakeProphet> for example, in live coding, it would reduce the amount of typing required to do something.
06:33:47 <monqy> CakeProphet: I'm crying
06:33:59 <monqy> CakeProphet: itwould increase the crying
06:34:03 <elliott> coppro: category error: types don't... have types.
06:34:11 <elliott> (pedantic? yup, but so is this discussion :P)
06:34:20 <monqy> CakeProphet: just use quasiquotation or something actually meant for what you want to do
06:34:26 <elliott> coppro: that's overloading, not subtyping
06:34:31 <monqy> CakeProphet: you know about template haskell, right?
06:34:43 -!- azaq23 has quit (Quit: Leaving.).
06:34:51 <CakeProphet> monqy: why is the intent of a feature important when the actual utility of the feature is completely exposed for a certain use?
06:35:08 <elliott> i really want to ban CakeProphet from using haskell
06:35:49 <monqy> do you know about quasiquotation specifically
06:36:03 <CakeProphet> if anything, the intent is a completely meaningless assertion. Call me a language anarchist, I guess. :P
06:36:26 <monqy> CakeProphet: wow are you serious
06:36:47 <elliott> CakeProphet: i guess we really do need coq
06:36:56 <elliott> you actually _cannot_ trust some people to respect non-codified laws.
06:37:04 * CakeProphet was abusing Python's featured for unintended purposes before he ever learned Perl.
06:37:18 <monqy> guido is crying too
06:37:32 <elliott> Vorpal: he wants to use -XOverloadedStrings to use string literals as arbitrary DSLs
06:37:42 <CakeProphet> I'm merely apathetic to the designers concerns.
06:37:45 <monqy> because quasiquotation is uncool
06:37:56 <elliott> instance IsString (IO ()) where fromString = compileAndRunWithGHC
06:37:58 <pikhq_> CakeProphet: "Apathetic to design", more like.
06:38:07 <Vorpal> elliott, what does -XOverloadedStrings do now again?
06:38:15 <lambdabot> Source not found. This mission is too important for me to allow you to jeopardize it.
06:38:19 <coppro> elliott: k we're both wrong
06:38:22 <elliott> Vorpal: class IsString a where fromString :: String -> a
06:38:27 <CakeProphet> especially when they haven't implemented a means to restrict the usage to the one they intended. It is purely vapor...
06:38:28 <elliott> Vorpal: "a" == fromString ("a"::String)
06:38:36 <elliott> Vorpal: just like integer literals are overloaded
06:38:39 <elliott> Vorpal: it's for ByteString + Text
06:38:47 <elliott> unless you let CakeProphet near it
06:39:00 <Vorpal> elliott, yeah I can imagine where that is heading
06:39:02 <monqy> one time I read a bug report involving someone using it to embed XML
06:39:06 <coppro> elliott: I got the relation backwards
06:39:10 <Vorpal> elliott, fits into perl though. But not haskell
06:39:15 <pikhq_> CakeProphet: You're the kind of person who would use undefined behavior in C because it works with your compiler.
06:39:37 <elliott> pikhq_: the difference is that the language spec forbids that :P
06:40:14 <elliott> being clubbed in the head is an actual negative consequence.
06:40:19 <elliott> i can find out where y oulive.
06:40:29 <Vorpal> CakeProphet, I can sell you an iron helmet
06:40:34 <pikhq_> CakeProphet: Assume that the next person who will maintain your code is a serial murderer who knows where you live.
06:40:58 <CakeProphet> to be concerned with things that aren't going to happen.
06:41:22 <pikhq_> Serial murderer. Who knows where you live.
06:41:24 <Vorpal> elliott, ooh what will be required to make you maintain cfunge in the future!?
06:41:29 <coppro> elliott, pikhq_: hartnell or tennant
06:41:42 <elliott> coppro: an abomination against nature.
06:41:46 <CakeProphet> elliott: if anything, you should club whoever designed OverloadedStrings
06:41:51 <elliott> CakeProphet: no, they were trusting.
06:41:59 <coppro> elliott: no seriously I have to watch something
06:42:02 <elliott> HOW DO YOU SPLIT ECLIPSE WORKSPACES
06:42:08 <elliott> coppro: which episodes are under consideration
06:42:48 <CakeProphet> trusting anyone and everyone to use something exactly as you intended is like... writing an IRC bot with a command that executes bash outside of a sandbox.
06:42:51 <elliott> argh, i have no ide ahow you're actually meant to use workspaces.
06:42:55 <elliott> is anyone an eclipse expert.
06:43:09 <elliott> CakeProphet: how the fuck are they meant to prevent what you are trying to do?
06:43:18 <monqy> CakeProphet: is your fascination with breaking OverloadedStrings just because you want to defy something, or do you just not know about how quasiquotation is what you really want and so much better
06:43:23 <coppro> elliott: uh.. next up for Hartnell is the Aztecs. Next up for Tennant is start of series 3
06:43:30 <pikhq_> CakeProphet: This is like complaining about the design of unsafePerformIO because someone wants to define foo = unsafePerformIO killAllOfHumanity `seq` undefined
06:43:43 <Vorpal> elliott, by defining it to be undefined behaviour
06:44:11 <elliott> coppro: Smith and Jones is, as I recall, quite good; The Aztecs sounds like it'll be cringingly sixties-racist
06:44:39 <CakeProphet> monqy: no, I'm not fascinated. I just see a possible use case that is pretty simple to implement, but really if I need TH I'll use that instead.
06:44:49 <coppro> on the one hand, this gets me closer to finishing the new series. on the other hand, it doesn't get me any closer to Baker
06:45:14 <pikhq_> CakeProphet: This is worse than my C lambda macros.
06:45:37 <coppro> elliott: why is I am the Doctor only in the 11th doctor episodes
06:46:11 <elliott> coppro: i haven't seen many of them, so i don't know what you're talking about
06:46:23 <pikhq_> Vorpal: There's already something in the language that does this, but better and doesn't involve murder!
06:46:33 <coppro> elliott: the awesome music
06:46:46 <elliott> coppro: presumably because it wasn't written until then
06:46:49 <CakeProphet> pikhq_: but unsafePerformIO doesn't have some arbitrary vaporous restriction attached to it. It is intended to break the rules where appropriate because sometimes it's a good idea.
06:47:23 <coppro> elliott: I believe I linked it to you
06:47:50 <CakeProphet> also, I'm not saying OverloadedStrings is a bad idea. I am stating the opposite.
06:47:52 <monqy> the "arbitrary vaporous restriction" is that application should be referentially transparent
06:48:28 <monqy> or however the proper terminology says it
06:48:50 <CakeProphet> that is a perfectly reasonable restriction, in that case. :)
06:49:03 <coppro> elliott: also yes it was only written by then. But it will probably go away for the twelfth :(
06:49:20 <monqy> And what's so unreasonable about overloaded strings being supposed to represent textual data?
06:50:03 <elliott> DOES ANYONE USE ECLIPSE HALP;P
06:50:14 <CakeProphet> because you could use it safely for other purposes.
06:50:26 <coppro> elliott: because it is the eleventh doctor's action theme
06:51:11 <monqy> CakeProphet: safely? If there's any sort of parsing going on, you can't check the wellformedness until runtime
06:51:17 <Vorpal> elliott, read the docs?
06:51:45 <elliott> Vorpal: docs don't answer nebulous questions of life
06:51:51 <elliott> coppro: oh is smith retirin'
06:51:55 <monqy> any parsing that might fail
06:51:55 <Vorpal> elliott, oh google does
06:51:58 <pikhq_> Yeaaah, it pretty much eliminates static guarantees.
06:52:14 <coppro> elliott: well he will eventually
06:52:25 <monqy> compare template haskell which is good at actually happening at compile time
06:52:40 <CakeProphet> safe in the sense that it's a reasonable use...
06:52:52 <monqy> what does reasonable mean
06:53:16 <Sgeo_> Well, hmm, maybe a (Read a) => String -> IO a?
06:53:36 <Sgeo_> unsafeParse :: (Read a) => String -> IO a
06:54:15 <monqy> not sane; we already covered buggy; usefulness is covered by template haskell (or just making a function to do the parsing for you)
06:54:26 <elliott> iWantToKillAndMurderCakeProphet :: (Killing a) => a
06:54:29 <elliott> it denotes exactly the value you want
06:54:32 <elliott> in that specific situation
06:54:37 <elliott> just define an instance and off you go
06:54:47 -!- pikhq has joined.
06:54:47 <elliott> you have to state your intent to kill and murder CakeProphet to use it though
06:54:51 <elliott> HOPEFULLY THIS SHOULD BE AN ADEQUATE DETERRENT
06:55:05 <monqy> intent is meaningless
06:55:13 <elliott> monqy: but but, quasiquotation involves at least three more characters : ' CRYNIIG (
06:55:59 <CakeProphet> monqy: how would calling the function explicitly eliminate the horrible possibility of a runtime error.
06:56:20 <monqy> CakeProphet: it doesn't but it eliminates a good bit of the insanity
06:56:58 -!- pikhq_ has quit (Ping timeout: 240 seconds).
06:58:09 <elliott> http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=how+do+i+use+eclipse+and+workspaces+and+what+is+it+and+also+should+i+have+just+one+per+like+bukkit+plugin+i+am+writing+or+multiple+in+one+or%3F%3F%3F%3F%3F%3F%3F%3F%3F%3F+FUCK+YOU+SHIT+HEAD+HELP+ME
06:58:55 <monqy> http://www.google.com/search?q=eclipse+workspaces does this help i have no clue help me help you
06:59:12 <Sgeo_> Wait, what does CakeProphet want to do? Complex value literals via overloaded strings?
06:59:27 <elliott> monqy: i dont .'t;,mk know
06:59:31 <elliott> im look at eclipse documentation
07:00:11 <Sgeo_> Why even use that instead of (read "Whatever")?
07:00:30 <Sgeo_> Better yet, not use a string
07:00:31 <CakeProphet> because read is intended to be Haskell code!!
07:00:31 <monqy> Sgeo_: the better question is why even use that instead of template haskell
07:00:36 <elliott> Sgeo_: becaue CakeProphet is a trrible ipersonje
07:00:54 <elliott> what if i just ate my keyboard
07:01:32 <Sgeo_> CakeProphet, do you object to 60 * 60 * 24 in code?
07:01:47 <CakeProphet> basically I am thinking it would be useful as a way to describe a rhythm in a library for creating music.
07:01:55 <CakeProphet> yes, I can just define a function to do that.
07:02:08 <elliott> [rhythm|dumf ook dumf dumf ook|]
07:02:26 <elliott> [r|damf pluk|] --> compile time error
07:02:42 <monqy> let runtime handle it
07:02:46 <elliott> monqy im crying irl how do i eworksapce
07:02:50 <CakeProphet> no, that's fine really. I just didn't consider TH as something to consider.
07:02:58 <elliott> i should try actually crying irl
07:03:01 <elliott> maybe it would help ease my suffering
07:03:17 <Sgeo_> elliott, listen to Nightmare repeatedly
07:03:28 <elliott> The welcome page is the first page you see when you first launch eclipse. Its purpose is to introduce you to the product. Welcome content will vary from one Eclipse based product to another, it typically includes an overview of the product and its features, tutorials to guide you through some basic tasks, samples to get you started, etc.
07:03:28 <elliott> There are many possible forms of welcome, ranging from simple static text to elaborate extendable multi-page presentations. The Eclipse platform and platform SDK uses a form known as Universal Welcome, which defines a common page structure, allowing several products to share the welcome space. If your product is using the Universal Welcome, you can customize its appearance using the "customize page" button. Products which use universal welcome w
07:03:28 <elliott> ill display a welcome page the first time they are restarted after new features with welcome content are installed and highlight the new welcome content.
07:03:31 <monqy> i dont even know what a workspace is whats ecluispe......
07:03:43 <elliott> monqy: ecluispe sounds like the best ide
07:03:59 <elliott> http://www.google.co.uk/search?hl=en&safe=off&q=good+java+ide&aq=f&aqi=g-c2g-b1&aql=&oq=
07:04:02 <elliott> help it still shows eclipse
07:04:05 <Sgeo_> elliott is quickly learning all the programs.
07:04:32 <elliott> imjust looking at my screen crying softly
07:04:36 <monqy> http://www.google.com/search?q=bad+java+ide hth
07:04:49 <elliott> monqy: NO STUOPD MAKING ME CRY
07:04:50 <Sgeo_> Is that "hope that" helps or "happy to help"?
07:04:55 <elliott> Java IDE ? Or should I even use Java? - YoYoGames Forums
07:05:33 <elliott> http://gaming.stackexchange.com/questions/26210/my-pet-is-a-public-menace-what-did-i-do-wrong
07:05:39 <elliott> i saw this ad on stackoverflow w/o it specifying gaming subreddit
07:05:46 <elliott> so now im not crying any more
07:07:58 <CakeProphet> so I'm thinking it would be a good idea to write a Perl interpreter as an instance of IsString
07:08:27 <monqy> unsafePerformIO . runperl
07:08:31 <Sgeo_> CakeProphet, if by good you mean "insane". Insane isn't bad, of course, just please keep it away from regular projects
07:08:43 <monqy> don't encourage him
07:09:35 <elliott> people like IntelliJ IDEA so much
07:09:37 <Sgeo_> I'm pretty sure that at this point CakeProphet is joking
07:09:49 -!- Lymia has joined.
07:09:56 <monqy> but you responded so seriously
07:10:15 <CakeProphet> but I should add that I intend all of the Perl code used with this interpreter to be referentially transparent.
07:10:39 <Sgeo_> ....he's 100% serious. And apparently intending to use it in a project?
07:10:41 <monqy> but i hit the rwong key
07:10:50 <Sgeo_> Or, no, I'm just reading too much into that
07:11:05 <Sgeo_> But 100% serious. I'm going to have nightmares now.
07:11:26 <Sgeo_> [Note: I will not literally have nightmares due to this. I think.]
07:11:26 <elliott> yeah obviously he's serious
07:11:32 <elliott> youuve jused good logi =c to that
07:11:38 <elliott> IM GONNA PUNCH A JAVA SHIT FUCK
07:11:41 <elliott> kjnmfglhjk;tdrmknohgtreghmtrhn
07:11:49 -!- Lymee has quit (Ping timeout: 240 seconds).
07:12:16 <monqy> use a preprocessor or something like that instead of an ide
07:12:16 <elliott> IntellJ IDEA. I use to have this project with some 2,000 classes and tons of libraries. I swapped from Eclipse to IntellJ, bacause I hated so much the project and I though it was Eclipse fault. The result was Idea was very slow. Workaround? I create a module and use IDEA anyway. :) Idea is awsome!! – OscarRyz Oct 1 '08 at 2:08
07:12:25 <elliott> CakeProphet: HOW DO I USE WORKSPACES
07:12:30 <elliott> DO I USE ONE PER ACTUAL LIKE END PRODUCT
07:12:42 <elliott> IM MAKE A BUNCH OF BUKKIT PLUGINS DO I WANT ONE WORKSPACE PER PLUGIN
07:12:49 <elliott> EBCAUSE THAT SEEMS LIKE A LOT OF WORKSPOCES
07:12:57 <elliott> CakeProphet: thats clearly bull taken literally
07:13:05 <elliott> CakeProphet: because a Project is something you create inside a workspace
07:13:15 <elliott> i guess some big programs are made up of more than one project?????
07:13:27 <elliott> wants you to just use one workspace
07:13:31 <elliott> like the default is ~/workspace
07:13:38 <elliott> and switching workspaces is kind of a pain???
07:13:52 <CakeProphet> it's just the... location of all of your projects.
07:13:57 <elliott> CakeProphet: but thats really weird because like
07:14:02 <CakeProphet> and each plugin should have its own project probably.
07:14:04 <elliott> if you import the same builder into two separate java projects
07:14:15 <elliott> since it considers itt a conflict
07:14:19 <elliott> these are completely separate
07:14:28 <elliott> it bothers you whenver you make a change to another plugin
07:14:35 <elliott> this is coupling these projects together way more than i want
07:14:35 <CakeProphet> ...I have never imported a builder. I'm not even sure what that means.
07:14:40 <elliott> am i meant to use two different workspaces????
07:14:45 <elliott> CakeProphet: well i said other things
07:15:26 <CakeProphet> oh you mean you're importing a package into two different projects?
07:16:14 <elliott> Eclipse can't remotely be called an IDE to my opinion. Okay that's exaggerated, I know. It merely reflects my intense agony thanks to eclipse! Whatever you do, it just doesn't work! You always need to fight with it to make it do things the right way. During that time, you're not developing code which is what you're supposed to do, right? eclipse and maven integration: unreliable! Eclipse and ivy integration: unreliable. WTP: buggy buggy buggy! Ec
07:16:14 <elliott> lipse and wstl validation: buggy! It complains about not finding URL's out of the blue even though they do exist, and a few days later, without having changed them, it suddenly does find them etc etc. I Could write a frakking book about it. To answer your question: NO ECLIPSE IS NOT EVEN CLOSE THE BEST IDE!!! IntelliJ is supposed to be MUCH better!
07:16:54 <Sgeo_> elliott, why do you need an IDE again?
07:18:01 <fizzie> I don't know what a "builder" in Eclipse-land is either; but I'd probably still at least try to put multiple plugins in the same workspace as long as there's at least something that could be shared. I wouldn't put any "serious" completely unrelated projects to the same workspace though.
07:18:16 <elliott> theres nothing that will be shared pretty much
07:18:23 <elliott> fizzie: a builder is like...
07:18:26 <elliott> if you build your project with ant
07:18:28 <elliott> then you have an ant builder
07:18:31 <elliott> and theres the built in Java Builder
07:18:33 <CakeProphet> also I believe you merge workspaces by closing Eclipse, merging the two directories, and opening Eclipse again.
07:18:35 <elliott> each project has a bunch of builders
07:18:39 <elliott> CakeProphet: no id want to split eclipse
07:19:11 <fizzie> elliott: I can see that; but I've just been using Ant without any "builders". I mean, you can run the tasks from a build.xml just like that.
07:19:20 <elliott> fizzie: that's not automatic
07:19:47 <CakeProphet> elliott: I'm sorry, you're probably want some kind of IDE to handle that for you.
07:19:55 <elliott> CakeProphet: um i mean i want to split workspaces
07:20:03 <fizzie> Yes, well, I only use the ant thing to make .jars and other sort of "releases", I don't see why that should happen automatically.
07:20:18 <elliott> fizzie: I need jars every single change because that's how bukkit plugins are packaged
07:20:29 <elliott> so i can't test without the jar being created, at all
07:20:33 <CakeProphet> elliott: as far as I know Eclipse only uses one workspace at a time...
07:21:03 <elliott> i want to make a workspace into two workspaces
07:21:05 <elliott> because i put too mcuh in one
07:21:28 <CakeProphet> you could make two directories, but I don't think you can work with both workpaces at the same time.
07:21:43 <monqy> be productive make a language that compiles to java.....
07:21:44 <fizzie> elliott: It's still just one more click to run the ant task. Presumably you need to do something to reload the plugin in Bukkit too; amortized in that it's not much.
07:21:49 <monqy> just to get rid of boilerplate
07:22:02 <elliott> CakeProphet: i dont want to.
07:22:08 <monqy> it sounds much more pleasant than using an ide
07:22:13 <elliott> fizzie: i thought an ide was meant to save me work
07:22:15 <CakeProphet> well then file > switch workspaces > Other..
07:22:22 <elliott> CakeProphet: I WANT TO SPLIT A WORKSPACE
07:22:27 <elliott> that is not hard to understand
07:22:44 <elliott> it has metadata files with references to projects
07:23:00 <fizzie> elliott: "cp -a workspace anotherWorkspace"; then delete half of one, switch to the other, delete the other half?
07:23:20 <monqy> then clean up the metadata?
07:24:44 <fizzie> About the builder thing, I don't really know; I wouldn't want to run my horrible ant packaging mess after *every* change, just when I'm ready to test it, so I'd keep it non-automatic anyway.
07:24:48 <CakeProphet> I think you probably just want to use sh from now on instead of Eclipse...
07:24:56 <elliott> fizzie: Horrible mess = single task to create a jar
07:25:06 -!- Lymia has changed nick to Lymee.
07:25:53 <fizzie> elliott: Still, it feels stupid to build a .jar every time a single file changes. But that's probably just me.
07:26:09 <elliott> fizzie: It builds the Java files whenever a file changes; why not build the .jar too?
07:26:18 <elliott> I mean, every time I save, I'm going to alt-tab, /reload, and test it; why add more steps?
07:26:22 <elliott> If I could make it automatically /reload, I would
07:27:12 <CakeProphet> you might be confusing Eclipse with something that does everything slightly tedious for you.
07:27:34 <elliott> that's called automation, yes, and it's what a computer is for.
07:28:08 <CakeProphet> I'm not saying it isn't possible. I'm just Eclipse probably isn't going to do that for you.
07:28:10 -!- Taneb has joined.
07:28:33 <fizzie> I tend to have to make changes to multiple files before a "thing" is ready to test, possibly because of the all-classes-in-separate-files. But anyway, I really suppose it's just my peculiarities why I don't want it to automatically keep updating the .jar file.
07:28:57 <fizzie> Maybe I'd feel differently if it was clever enough to actually update it instead of throwing it out and rebuilding it completely.
07:29:30 <Taneb> What does everyone think of Numberwang?
07:29:33 <elliott> I also hate how you have to re-import a builder every time it changes for the changes to take effect, sigh.
07:29:39 <elliott> Maybe I'll just make the single build.xml build all the projects.
07:29:50 <elliott> Even though that's kind of gross.
07:30:04 <elliott> fizzie: I thought you didn't know how to use Ant any other way than incrementally :-P
07:30:12 <elliott> CakeProphet: What; kind of gross?
07:30:24 <Taneb> What kind of gross?
07:30:56 <CakeProphet> ..the kind that makes elliott not want to do something? I don't know.
07:31:05 <fizzie> elliott: That was in the "compiling Java" context. :p
07:32:14 <fizzie> From the web it sounds like a builder can be "interested in" multiple projects, so having a single all-plugins builder might be possible to automatate properly.
07:32:34 <elliott> fizzie: Right; that seems like it'd have a lot of duplicated code with Ant though
07:33:07 <CakeProphet> ah, so it's not standard, pl is just telling you to define that function.
07:33:28 <fizzie> elliott: It sounds like it should be possible to re-use a single task but change some properties between the invocation of it.
07:33:48 <elliott> fizzie: Meh, possibly. It really feels like Eclipse wants me to use one workspace per project if I'm going to bring the BIG GUNS of Ant in.
07:33:50 <Taneb> You mean like a function?
07:34:06 <Taneb> With different stuff put in?
07:34:10 <elliott> Taneb: this is Ant, it lacks such civilised concepts.
07:34:26 <elliott> Oh what, is this article kidding me or does the ant builder stuff not actually have compile-on-svae.
07:34:48 <fizzie> elliott: Having a separate buildfile for each plugin sounds like a lot of duplicated Ant code too, except duplicated in separate files, not in one file. Unless you go into pulling stuff in from some common file, and so on.
07:34:59 <elliott> fizzie: they all have the same build.xml
07:35:02 <elliott> So I just store it in a "common" project
07:35:07 <CakeProphet> > let if' c a b = if (c a b) then a else b in zipWith (if' (>)) [1,3,7,2,45,7,2,4,2,234,4,1,4,-4] [7,3,7,23,5,213,1,5,2356,35,24,21]
07:35:08 <lambdabot> [7,3,7,23,45,213,2,5,2356,234,24,21]
07:35:51 <CakeProphet> not really if' as pl defines it, it's more like a generalization of max and min...
07:37:12 <fizzie> Anyway, there's an <antcall> task which runs a target from the same build.xml with some defined parameters; that way you could have a single <target name="build">...</target> and then one-line <target name="plugin1"><antcall target="build"><param name="plugname" value="plugin1"/></antcall></target> per plugin. But again I don't know about hooking the Ant builder to the auto-build system.
07:37:32 <fizzie> ISTR that running Ant's awfully slow (more than one second) anyway.
07:38:13 <lambdabot> flip flip id . (ap .) . (flip . (g .) =<<)
07:39:25 <Vorpal> <elliott> Vorpal: help <-- ?
07:39:33 <CakeProphet> > let if' c a b = if c then a else b; compareWith = flip flip id . (ap .) . (flip . (if' .) =<<) in compareWith (==) [1,3,7,2,45,7,2,4,2,234,4,1,4,-4] [7,3,7,23,5,213,1,5,2356,35,24,21]
07:39:34 <lambdabot> [7,3,7,23,5,213,1,5,2356,35,24,21]
07:41:18 <lambdabot> Control.Exception assert :: Bool -> a -> a
07:41:18 <lambdabot> Control.OldException assert :: Bool -> a -> a
07:41:19 <lambdabot> Control.Exception.Base assert :: Bool -> a -> a
07:41:26 <Vorpal> fizzie, I think bukkit uses maven instead
07:41:30 <Vorpal> which looks about as bad
07:41:50 <CakeProphet> elliott: yeah, unfortunately using other peoples stuff can get ugly.
07:43:03 -!- Phantom_Hoover has joined.
07:43:07 <elliott> <fizzie> ISTR that running Ant's awfully slow (more than one second) anyway.
07:43:13 <elliott> Vorpal: yeah i am tempted to use maven myself
07:43:17 <Vorpal> elliott, idea for stupid esolang: generic brainfuck variant. Basically you feed a file with string->command mappings for brainfuck and a program to be translated.
07:43:47 <elliott> meta-turing-complete, too!
07:44:29 <Vorpal> it is just a simple lookup table to translate, say, ook or whatever, into brainfuck, and then it is executed
07:44:45 <elliott> http://esolangs.org/wiki/Talk:Meta_Turing-complete
07:45:38 <CakeProphet> Vorpal: I'm in the slow process of specifying a regular expression based language that would basically be a superset of that.
07:45:48 <CakeProphet> the mapping file is the program string, the program to translate is the input string.
07:45:49 <elliott> many languages are subsets of that
07:46:23 <Vorpal> elliott, was "<elliott> that's actually brilliant" a joke too? I presume so
07:46:58 <Vorpal> elliott, well I lost my wiki account, you can put it up on the wiki and attribute it to me
07:47:14 <elliott> yeah but i'll actually spec it so its BY EHIRD WITH INSPIRATION FROM VORPAL
07:47:31 <Vorpal> elliott, I'll define it more
07:47:46 <elliott> fizzie: how does maven work thx
07:47:51 <Vorpal> <bf command><space><string to be used for it>
07:48:19 <elliott> http://maven.apache.org/eclipse-plugin.html HWICH DOES I USE
07:48:22 <Vorpal> elliott, that is all there is to it
07:48:35 <Taneb> So, it's a brainfuck equivalent creation tool?
07:49:18 <Vorpal> CakeProphet, why that format?
07:49:39 <CakeProphet> because then it will be a subset of a language I am working on. :)
07:49:48 <Vorpal> CakeProphet, not a valid reason
07:50:08 <Vorpal> I suggest string := <4 byte with length of string><data>
07:50:08 <Taneb> I wonder if it would be possible to make a language using that syntax that's barely like brainfuck at all
07:50:22 <Vorpal> then the file is made up with pairs of strings
07:50:45 <elliott> because then it's a subset of ///
07:50:57 <elliott> wait, bf code can have comments
07:50:59 <elliott> ok then it's literally ///
07:51:18 <pikhq> elliott: Brainfuck code must have matched []
07:51:34 <Vorpal> elliott, eh the interpreter needs two inputs: language definition and program-to-translate
07:51:56 <elliott> you can define loop equivalents with this
07:51:56 <Vorpal> elliott, hm we need to be rather advanced to do bitfuck, so that it out of the scope
07:53:18 <Taneb> If it could output an interpreter, that would be good
07:53:45 <CakeProphet> though I might define ->* in a prelude-esque file that is equivalent to (... -> ...)*
07:55:03 <Vorpal> Taneb, hm that could work yeah
07:55:10 <elliott> Has anyone used Maven with Eclipse, I have literally become an insane.
07:55:30 <Vorpal> elliott, don't look at me. I don't use eclipse at all
07:56:17 -!- monqy has quit (Quit: hello).
07:58:21 <elliott> Because she didn't tell me what IDE she uses for Bukkit development which would obviously completely solve my problems by way of expertosity.
07:58:43 <CakeProphet> I don't think I can define global substition in terms of single substition and *..
07:59:01 <CakeProphet> unless single substition consumes all input up to the point of substition...
07:59:42 <Taneb> Add some sort of multiplication thing
08:00:18 <Taneb> Add some sort of wildcard thing
08:01:07 <CakeProphet> okay, so everything has a string result, numeric result, and a success or failure value. pattern* repeats pattern zero or more times until it fails. The numeric result of * is the addition of the numeric results of each subpattern invocation, and the string result is the concatenation of the subpattern's string results.
08:01:35 <CakeProphet> -> is the substition pattern. Originally I intended to make it zero-width, meaning it doesn't consume any input.
08:02:07 <CakeProphet> but if it doesn't consume input (i.e. "move forward" in the input string), then each invocation of -> within a * will start at the beginning of the input string.
08:02:21 <CakeProphet> which is inefficient and will lead to strange things happening..
08:02:35 <CakeProphet> possible infinite loops and such, which is generally not good.
08:03:16 <CakeProphet> however, if I make -> work so that it consumes all input up to the point of substition, then that means that using -> by itself will almost never happen. I will have to always enclose within a backtrack operator.
08:03:51 <CakeProphet> so I think I should define them seperately, as much as I don't want to...
08:05:05 <elliott> I'm just gonna wait until Lymee appearss. :p
08:05:43 <CakeProphet> but I find this exceptionally lame, as the idea is that you should be able to use general-purpose combinators to do complex things with basic expressions.
08:06:46 <CakeProphet> elliott: in the meantime you should help me with this. :P
08:07:19 <CakeProphet> but you always have good ideas for these types of problems...
08:07:50 <Taneb> Don't define -> without the backtrack operator?
08:08:17 <CakeProphet> so you're saying make -> inherently zero-width, right?
08:09:06 <Taneb> I have no idea what's going on, I'm just trying to say things so something happens
08:09:32 <CakeProphet> okay so basically I want to define global substition in terms of single substition (->) and *
08:09:58 <CakeProphet> but to do that I need to make -> not be zero-width..
08:10:22 <CakeProphet> because if it's zero-width then things like ('a' -> 'ab')* will loop infinitely.
08:10:58 <Taneb> You could lock text that's been substituted in this cycle
08:11:15 <CakeProphet> so I either need to change the semantic model, or change -> so that it is not zero-width but instead consumes input, which is lame because then there will be backtrack operations everywhere.
08:11:28 <elliott> CakeProphet: rename -> to => and make it not zero-width
08:11:38 <elliott> then make a->b an alias for backtrack(a=>b)
08:12:02 <elliott> that's the obvious possibility.
08:12:14 <CakeProphet> but couldn't I create some hackish semantic model?
08:13:13 <CakeProphet> I think I would prefer --> to =>, or something.
08:13:20 <CakeProphet> because I am using => for something else. :)
08:14:19 <CakeProphet> => is a kind of variable modifier thing. The left hand side is a variable name and the right hand side is a pattern. The pattern is evaluated with the string result of the variable as the input string.
08:15:04 <CakeProphet> and the pattern modifies the contents of the variable. it's basically defined in terms of another operator that I haven't named yet.
08:15:30 <CakeProphet> I am sure this makes perfect sense to everyone.
08:16:31 <CakeProphet> ~> looks like a good name for it. left-hand sides result string is used as the input string for the right-hand pattern.
08:17:12 <Taneb> I'm seeing what the Numberwang program 0! 1! does
08:17:37 <Taneb> So far, it's into its second Numberwang
08:17:59 <CakeProphet> I am finding the name Numberwang somewhat hilarious.
08:18:41 <elliott> CakeProphet: http://www.youtube.com/watch?v=qjOZtWZ56lc
08:19:49 <elliott> A sincere and legitimate British institution throughout the ages.
08:20:06 <elliott> CakeProphet: http://www.youtube.com/watch?v=-r6NY4Kl8Ms
08:20:09 <elliott> This should be enlightening.
08:22:20 <CakeProphet> philosopher and magician Bertrand Russell...
08:27:31 <Taneb> Graaah! I need a numberwang debugger
08:27:47 -!- Taneb has changed nick to TanebIsNotHere.
08:31:10 <Vorpal> <elliott> CakeProphet: http://www.youtube.com/watch?v=qjOZtWZ56lc <-- like Mornington Crescent right? But even more senseless
08:31:16 <lambdabot> Network.CGI.Protocol maybeRead :: Read a => String -> Maybe a
08:31:16 <lambdabot> Network.CGI readCookie :: (Read a, MonadCGI m) => String -> m (Maybe a)
08:31:17 <lambdabot> Network.CGI readInput :: (Read a, MonadCGI m) => String -> m (Maybe a)
08:32:03 <lambdabot> Network.URI isAbsoluteURI :: String -> Bool
08:32:03 <lambdabot> Network.URI isIPv4address :: String -> Bool
08:32:03 <lambdabot> Network.URI isIPv6address :: String -> Bool
08:37:39 <CakeProphet> !addinterp numberwang haskell flip when (putStrLn "That's Numberwang!") =<< (any (all isDigit) =<< getContents)
08:37:40 <EgoBot> Interpreter numberwang installed.
08:39:54 <EgoBot> Interpreter numberwang deleted.
08:47:01 -!- TanebIsNotHere has changed nick to Taneb.
08:51:04 <lambdabot> Prelude (=<<) :: Monad m => (a -> m b) -> m a -> m b
08:51:04 <lambdabot> Control.Monad (=<<) :: Monad m => (a -> m b) -> m a -> m b
08:51:04 <lambdabot> Prelude (>>=) :: Monad m => m a -> (a -> m b) -> m b
08:52:47 <coppro> none of those appear to match
08:54:33 <lambdabot> forall (m :: * -> *) a a1. (Monad m) => (a1 -> m (m a)) -> m a1 -> m a
08:54:40 <lambdabot> Occurs check: cannot construct the infinite type: m = (->) (m a)
08:54:40 <lambdabot> Probable cause: `=<<' is applied to too few arguments
08:54:41 <lambdabot> In the second argument of `(.)', namely `(=<<)'
08:54:56 <elliott> ?pl \f x -> f >>= \f' >>=x >>= \x' -> f' x'
08:54:56 <lambdabot> expecting operator, pattern or "->"
08:55:06 <elliott> ?pl \f x -> f >>= \f' -> x >>= \x' -> f' x'
08:56:47 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
08:57:55 <elliott> :t (join .) . (<asterisk>)
08:58:07 <lambdabot> forall (m :: * -> *) a a1. (Monad m, Applicative m) => m (a1 -> m a) -> m a1 -> m a
08:59:43 <lambdabot> forall (m :: * -> *) a. (Monad m) => m (m a) -> m a
09:00:00 -!- elliott has quit (Remote host closed the connection).
09:00:10 <Vorpal> gah I was just about to ask him something
09:06:56 <CakeProphet> @pl do { f <- when <$> (any isDigit <$> return "22"); f . putStrLn $ "That's numberwang!"}
09:06:56 <lambdabot> expecting variable, "(", operator or end of input
09:08:48 <CakeProphet> !addinterp numberwang haskell do { f <- when <$> (any isDigit <$> getContents); f . putStrLn $ "That's numberwang!"}
09:08:49 <EgoBot> Interpreter numberwang installed.
09:10:59 <CakeProphet> !addinterp numberwang haskell do { c <- (any isDigit <$> getContents); when c $ putStrLn "That's numberwang!"}
09:11:00 <EgoBot> There is already an interpreter for numberwang!
09:11:10 <EgoBot> Interpreter numberwang deleted.
09:11:12 <CakeProphet> !addinterp numberwang haskell do { c <- (any isDigit <$> getContents); when c $ putStrLn "That's numberwang!"}
09:11:12 <EgoBot> Interpreter numberwang installed.
09:12:13 <Phantom_Hoover> !addinterp ! haskell putStrLn "I really hope this works."
09:12:14 <lambdabot> Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them.
09:12:14 <EgoBot> Interpreter _ installed.
09:12:19 <EgoBot> I really hope this works.
09:12:21 <EgoBot> I really hope this works.
09:12:29 <EgoBot> I really hope this works.
09:13:04 <CakeProphet> you could speed it up by using an interpreted language, since it compiles Haskell every use.
09:13:14 <EgoBot> Interpreter _ deleted.
09:13:36 <EgoBot> Interpreter numberwang deleted.
09:15:36 <CakeProphet> !addinterp numberwang perl print q(That's numberwang!) if grep /\d/, <>
09:15:37 <EgoBot> Interpreter numberwang installed.
09:16:32 <CakeProphet> I suppose a "That's not numberwang!" would be appropriate.
09:16:50 <Taneb> Or "Sorry, but Brazil isn't a vegetable!"
09:17:08 <EgoBot> Interpreter numberwang deleted.
09:18:00 <CakeProphet> !addinterp numberwang perl print (grep /\d/, <>)? q(That's numberwang!) : q(I'm sorry, but Brazil isn't a vegetable!)
09:18:00 <EgoBot> Interpreter numberwang installed.
09:18:58 <Taneb> I believe you have made an error
09:19:13 <Phantom_Hoover> http://www.reddit.com/r/Minecraft/comments/iot8b/dear_miners_and_notch_think_bigger/c25jyoh
09:19:16 <EgoBot> Interpreter numberwang deleted.
09:19:31 <Phantom_Hoover> Because if so I'll have to shoot every programmer ever.
09:20:02 <CakeProphet> !addinterp numberwang perl print (grep /\d/, <> ? q(That's numberwang!) : q(I'm sorry, but Brazil isn't a vegetable!))
09:20:02 <EgoBot> Interpreter numberwang installed.
09:20:06 -!- Nisstyre has quit (Ping timeout: 255 seconds).
09:20:52 <EgoBot> Interpreter numberwang deleted.
09:21:11 <CakeProphet> !addinterp numberwang perl print (grep (/\d/, <>) ? q(That's numberwang!) : q(I'm sorry, but Brazil isn't a vegetable!))
09:21:11 <EgoBot> Interpreter numberwang installed.
09:21:19 <EgoBot> I'm sorry, but Brazil isn't a vegetable!
09:21:40 <Taneb> !numberwang I'll give you a tenner if this is Numberwang
09:21:40 <CakeProphet> yeah, I have a bad habit of not using parentheses on operators...
09:21:40 <EgoBot> I'm sorry, but Brazil isn't a vegetable!
09:23:27 <Taneb> Okay, now there's three esolangs called Numberwang
09:23:57 <CakeProphet> I guess I could have used "" instead of q() but... I'd like to think that I'm making the code more efficient by not interpolating. :)
09:24:14 <Taneb> !numberwang 12! 2! 42.4!
09:25:00 <Taneb> Phantom_Hoover: Make your version
09:26:19 <Taneb> Just say it's imperatively functional and build from there
09:26:50 <CakeProphet> So how does one make a numberwang programming language?
09:27:24 <Taneb> Step 1: Have an idea
09:27:39 <CakeProphet> but, what makes it themed off of numberwang?
09:27:43 <Taneb> Step 2: Share idea
09:27:43 <Taneb> Step 3: Build on idea
09:27:43 <Taneb> Step 4: Publish idea
09:28:13 <Taneb> It's like calvinball, but with numbers
09:29:06 -!- myndzi has quit (Ping timeout: 246 seconds).
09:30:45 <fizzie> CakeProphet: You could've used '', it's literally the same as q().
09:31:08 <CakeProphet> fizzie: well, right, but I used it to escape escaping the ' in the string
09:31:11 <Taneb> My Numberwang has something that's a bit like eval(12!4.4!92!10!49.8!2!2!2!)
09:31:32 <Taneb> For the program 0!1! it's in at least 7 nested ones of those
09:32:33 <Taneb> After 14 instructions
09:33:06 -!- myndzi has joined.
09:34:52 <Taneb> I have no idea if it is Turing-Complete or not
09:35:19 <CakeProphet> I am interested in defining a language for which the halting problem is solvable, and where programs can halt or not halt.
09:35:27 <CakeProphet> obviously the halting problem is solvable for a language if it always halts...
09:36:14 <Taneb> Have all loops by definition infinite
09:36:22 <Taneb> If it has any loops, it does not halt
09:36:25 <Taneb> Otherwise, it does
09:37:29 -!- myndzi has quit (Ping timeout: 240 seconds).
09:37:46 -!- myndzi has joined.
09:38:22 <Taneb> Instruction 16 is a successful goto
09:38:34 <CakeProphet> Taneb: or you could have a finite loop and an infinite loop. The finite loop could not be infinite.
09:39:02 <CakeProphet> but then there's the problem of conditionals
09:39:11 <Taneb> Like, it exits after n iterations where n is finite?
09:39:14 <CakeProphet> what if you conditionally infinite loop on the input?
09:39:56 <Taneb> I don't think this language will be Turing-Complete
09:41:30 <CakeProphet> well, the halting problem would still be solvable with conditionals.
09:41:52 <CakeProphet> what you would do is execute the program, and when you come across an infinite loop construct then you say the program does not halt
09:41:59 <CakeProphet> if you reach the end of the program, then it does halt.
09:42:31 <CakeProphet> and the only way to not reach the end of the program would be to use an infinite loop construct.
09:42:43 -!- myndzi has quit (Ping timeout: 258 seconds).
09:44:09 <CakeProphet> so there'd be no conditional loop, only a conditional, a repetition loop, and an infinite loop.
09:44:45 <CakeProphet> so it probably isn't possible to implement brainfuck since you have no way to implement []
09:45:20 <Taneb> So it isn't Turing Complete
09:45:22 <CakeProphet> hmmm, well, you might be able to compile it...
09:45:37 <Taneb> Otherwise, you'd be given lots of money by Cambridge University
09:45:55 <CakeProphet> but compiling bf does not make your language turing complete.
09:46:36 <Taneb> You can compile HQ9+ into Brainfuck
09:47:41 <Taneb> Here's a almost entirely irrelevant question:
09:48:10 <CakeProphet> I wonder if you could prove that /any/ Turing complete language cannot have the halting problem solved for it.
09:48:12 <Taneb> How should a goto line number command work with non-integer values?
09:48:41 <CakeProphet> most likely by mapping each non-integer value to an integer.
09:49:02 <Vorpal> <CakeProphet> I wonder if you could prove that /any/ Turing complete language cannot have the halting problem solved for it. <-- hm
09:49:09 <Vorpal> CakeProphet, can you explain what you mean
09:49:42 <Taneb> For any Turing-Complete language p, it is impossible to solve the halting problem
09:49:47 <Taneb> Is that statement provable?
09:50:09 <Vorpal> depends on if oracle machines can exist surely?
09:50:49 <CakeProphet> For any program p with input i in Turing-complete language l, it is impossible to solve the halting problem.
09:51:56 <CakeProphet> the halting problem itself only asserts that you can't determine whether all programs and inputs halt or not.
09:52:03 <Vorpal> CakeProphet, well you could given a program that consists of only the symbol "halt" say that it halts.
09:52:27 <CakeProphet> right, but it also has to be turing complete.
09:52:34 <Vorpal> CakeProphet, or take C, it is trivial to say that #include <stdlib.h>\nint main(void) { return 0; } halts
09:52:44 <Taneb> I think this was why Alan Turing invented his famous machine
09:52:45 <Taneb> From Wikipedia: "Alan Turing proved in 1936 that a general algorithm to solve the halting problem for all possible program-input pairs cannot exist. A key part of the proof was a mathematical definition of a computer and program, what became known as a Turing machine. "
09:52:59 <CakeProphet> because the idea is that we want to prove that it's impossible for all turing complete languages. If we can't, then it may be possible that a Turing complete language exists for which the halting problem is solvable.
09:54:09 <Taneb> As any Turing Complete language by definition can be translated into any other
09:54:53 <Taneb> I think that we can't tell whether any program for turing complete language p will halt on input i
09:56:18 <CakeProphet> so essentially the inability to determine whether an arbitrary program halts in a turing complete language is built-in to being turing complete...
09:56:23 <Taneb> I also think I need to walk my dog
09:56:23 -!- Taneb has changed nick to TanebIsNotHere.
09:56:23 -!- TanebIsNotHere has changed nick to TanebIsAway.
10:00:17 -!- myndzi has joined.
10:02:49 -!- TanebIsAway has quit (Ping timeout: 240 seconds).
10:12:51 -!- tswett_ has quit (Ping timeout: 264 seconds).
10:20:00 <Vorpal> <CakeProphet> so essentially the inability to determine whether an arbitrary program halts in a turing complete language is built-in to being turing complete...
10:20:18 <Vorpal> iirc the halting problem is not solvable for some simpler models of execution either
10:39:32 <Phantom_Hoover> It's not solvable for any model of execution that allows a self interpreter, basically.
10:49:47 <Phantom_Hoover> CakeProphet, look up the proof on the Wikipedia article; it's very simple.
11:04:44 <CakeProphet> I'm surprised Wikipedia doesn't have an article on code golf
11:05:41 <CakeProphet> well, I think the practice of code golfing might have originated in the Perl community, but it's since become a more general phenomenon
11:10:27 <CakeProphet> @P=split//,".URRUU\c8R";@d=split//,"\nrekcah xinU / lreP rehtona tsuJ";sub p{
11:10:27 <CakeProphet> @p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=$f=!fork;map{$P=$P[$f^ord
11:10:27 <CakeProphet> ($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&&
11:10:30 <CakeProphet> close$_}%p;wait until$?;map{/^r/&&<$_>}%p;$_=$d[$q];sleep rand(2)if/\S/;print
11:12:41 <CakeProphet> ''=~('(?{'.('-)@.)@_*([]@!@/)(@)@-@),@(@@+@)'
11:12:42 <CakeProphet> ^'][)@]`}`]()`@.@]@%[`}%[@`@!#@%[').',"})')
11:12:57 <CakeProphet> I don't even understand how people come up with these.
11:15:37 <fizzie> What, no pack/unpack pair?
11:19:25 <CakeProphet> http://search.cpan.org/dist/Acme-EyeDrops/lib/Acme/EyeDrops.pm
11:21:49 <CakeProphet> !perl @{sub b{[@b=(abs||No,bottle.'s'x!!++$_,of,beer),on,the,wall]}b}
11:25:52 <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>.
11:30:32 -!- tswett has joined.
11:33:08 -!- Sgeo_ has quit (Read error: Connection reset by peer).
11:46:23 <fizzie> Meh, a mammal's a mammal.
11:48:35 <CakeProphet> But as a string-parsing ape creature, I feel strange about stealing delicious fluids from mama cows.
11:48:59 <CakeProphet> so much so that I am generating strings about it. :)
11:49:36 <fizzie> For some reason I found that whole string-generation thing hilarious.
11:49:45 <fizzie> "Oh look, it's generating strings all flustered there!"
11:50:14 <fizzie> Anyway, it's the cow's fault somehow. It always is.
11:50:41 <CakeProphet> yes, because their strings do not suggest that they care.
11:51:30 <fizzie> I like how one of the 18 pictures in the Mammal_Diversity_2011.png main illustration of Wikipedia's "Mammal" article is the meeting of Nixon and Brezhnev.
11:52:47 <fizzie> Also, a cow: http://isometric.sixsided.org/data/strips/only_when_youre_ready/21.gif
11:53:24 <fizzie> (I had a dot-matrix printer rendition of that on my wall as a decoration, not more than 9 years ago.)
11:56:15 -!- oerjan has joined.
11:56:27 <fizzie> oerjan: Welcome to the cow channel.
11:59:39 <oerjan> <fizzie> For some reason I found that whole string-generation thing hilarious.
12:00:37 <oerjan> now i am imagining sentient^Wsapient spiders communicating with silk strings
12:02:17 <fizzie> They could form... a SPIDER NETwork!
12:05:52 <oerjan> <Taneb> Step 6: PROPHET!
12:13:41 <oerjan> 00:27:50 <CakeProphet> > let if' c a b = if (c a b) then a else b in zipWith (if' (>)) [1,3,7,2,45,7,2,4,2,234,4,1,4,-4] [7,3,7,23,5,213,1,5,2356,35,24,21]
12:13:45 <oerjan> 00:27:51 <lambdabot> [7,3,7,23,45,213,2,5,2356,234,24,21]
12:13:47 <oerjan> 00:28:34 <CakeProphet> not really if' as pl defines it, it's more like a generalization of max and min...
12:14:09 <oerjan> > zipWith max [1,3,7,2,45,7,2,4,2,234,4,1,4,-4] [7,3,7,23,5,213,1,5,2356,35,24,21]
12:14:10 <lambdabot> [7,3,7,23,45,213,2,5,2356,234,24,21]
12:17:14 <fizzie> The zipWith Camel, a famous World War 1 era airplane.
12:24:01 <Phantom_Hoover> `addquote <fizzie> The zipWith Camel, a famous World War 1 era airplane.
12:24:04 <HackEgo> 505) <fizzie> The zipWith Camel, a famous World War 1 era airplane.
12:27:06 <fizzie> I was trying to come up with some sort of add-on, maybe a known function that sounded like "Camel" and a related pun, but failed.
12:59:57 <lambdabot> forall a b c. (Show a, Show b, SimpleReflect.FromExpr c) => [[a]] -> [[b]] -> [[c]]
13:00:48 <lambdabot> forall a b. [[a]] -> [[b]] -> [[(a, b)]]
13:10:59 <lambdabot> forall a b c. [[a]] -> [[b]] -> [[c] -> [(a, b, c)]]
13:29:41 -!- derrik has joined.
13:30:09 -!- derrik has left.
13:30:59 <CakeProphet> In 1920, H. G. Wells referred to the Mediterranean race as the Iberian race. He regarded it as a fourth subrace of the Caucasian race, along with the Aryan, Semitic, and Hamitic subraces. He stated that the main ethnic group that most purely represented the racial stock of the Iberian race was the Basques, and that the Basques were the descendants of the Cro-Magnons.
13:40:48 -!- ais523 has joined.
13:53:18 <Lymee> :t zapWith (zapWith zipWith)
13:53:27 <Lymee> :t zipWith (zipWith zipWith)
13:53:28 <lambdabot> forall a b c. [[a -> b -> c]] -> [[[a]]] -> [[[b] -> [c]]]
13:55:55 -!- Taneb has joined.
13:57:13 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:02:47 <Taneb> What's happening in the world of esoteric programming?
14:03:41 <oerjan> well i think i just proved DigFill TC, see wiki
14:04:21 <ais523> I've been thinking about Anarchy again
14:05:40 <ais523> it's a programming language I'm working on, possibly an esoteric one, I'm not sure (it's near the boundary)
14:05:44 <ais523> so far, just thoughts, no code
14:06:04 <ais523> it's based on algebraic data types where type constructors can mean different things at different points in the program
14:06:12 <ais523> which is a feature that's both insane, and badly missing from Haskell and OCaml
14:06:23 <oerjan> it's just one of ais523's methods to suppress thinking of fe *hit by falling anvil*
14:07:05 <Taneb> Meta type constructors?
14:07:55 <oerjan> i never m *anvil rolls on top of him again*
14:08:33 <boily> that's quite the pesky anvil...
14:15:12 <ais523> oerjan: is that a mezzacotta reference (with an indirect reference behind it)?
14:15:58 <Taneb> Everything's a mezzacotta reference
14:16:06 <Taneb> There's a lot of it to reference
14:16:14 <Taneb> It's the Turing Oracle of Webcomics
14:17:12 <oerjan> the problem is of course _finding_ the reference.
14:20:28 -!- copumpkin has joined.
14:20:28 -!- copumpkin has quit (Changing host).
14:20:28 -!- copumpkin has joined.
14:22:22 <Taneb> Why can't my German-made French-published game with Italian characters run on my Japanes-designed Chinese-made laptop with a South African OS based on a kernel designed by a Swedish speaking FInn?
14:23:06 <Taneb> The game also has Norwegian and... Argentinian? characters
14:23:29 <oerjan> ah there's the problem. the chinese currently hate the norwegians.
14:23:54 <oerjan> they _really_ didn't like the last nobel peace prize.
14:25:54 <Taneb> I pressed return compulsively...
14:26:30 <ais523> newline is a punctuation mark on IRC
14:26:37 <ais523> but one that several channels discourage people from using
14:26:44 <ais523> also, people tend not to be completely consistent on its meaning
14:27:36 <oerjan> it means "i despise you so much i'm going to steal your screen real estate despite not really saying much." hth.
14:27:58 * oerjan feels out of character.
14:28:25 <Taneb> But yeah, Settlers IV doesn't run on Ubuntu on my Toshiba
14:28:42 <ais523> what OS is it intended for?
14:28:55 <ais523> oerjan: wow, that was out of character for you
14:29:04 <Phantom_Hoover> Numberwang should clearly just be a stupidly computationally expensive algorithm for generating sequences of numbers.
14:29:21 <Taneb> I could think of a fix, but it's easier just to nick my brother's laptop with Windows
14:29:59 <oerjan> maybe elliott is taking over my brain. except he does the return thing too...
14:30:51 <oerjan> Phantom_Hoover: hey turing proved all computation is really just generating sequences of numbers. well, more or less.
14:31:15 <Taneb> Any data can be encoded as a sequences of ones and zeroes
14:32:45 <Taneb> Give me a definition that you can't
14:33:08 * oerjan gets the virtual popcorn
14:33:20 <Phantom_Hoover> Well, if you allow arbitrary reals to be data, you can't.
14:33:44 <Taneb> Can you encode reals as anything, though?
14:34:02 <oerjan> a real is perfectly encodeable as a sequence of ones and zeroes. it just has to be infinite.
14:37:07 <oerjan> i think if you define data as something you can extract any part of in finite time, Taneb's point may still stand.
14:37:47 <Taneb> I had a really good argument if you said something like "the feeling of happiness"
14:37:56 <Taneb> But it's no use now
14:38:06 <Taneb> And pretty... psychopathic
14:38:43 <Taneb> Or is it sociopathic?
14:40:54 -!- ais523_ has joined.
14:42:33 <Taneb> Phantom_Hoover: What, homeopathy?
14:43:13 -!- ais523 has quit (Ping timeout: 255 seconds).
14:43:15 * oerjan googles for that quote again
14:45:40 <Taneb> "The next time you decide to stab me in the back, have the guts to do it to my face"?
14:46:06 <oerjan> "Alice: But I don't want to go among mad people.
14:46:06 <oerjan> The Cat: Oh, you can't help that. We're all mad here. I'm mad. You're mad.
14:46:06 <oerjan> Alice: How do you know I'm mad?
14:46:06 <oerjan> The Cat: You must be. Or you wouldn't have come here.
14:46:23 <oerjan> i was trying to find a version without line breaks, but i gave up
14:46:28 <Taneb> Jayne Cobb and Captain Mal Reynolds
14:46:32 <Phantom_Hoover> If there's any backstabbing going on, I want to be in on it.
14:47:54 <Taneb> That'll be the last Firefly I quote, I promis
14:50:37 * oerjan does his regular thursday taneb stalking
14:50:46 -!- ais523_ has changed nick to ais253.
14:50:49 -!- ais253 has changed nick to ais523.
14:50:55 <ais523> wow, someone else has ais253 registered
14:51:01 <ais523> stop registering typos of my name, ais253!
14:51:18 <ais523> haha, I know who it is, too
14:51:27 <ais523> it's someone I know from another channel, they must have set that up to troll me
14:52:00 <oerjan> i wonder if e has ever been here without us noticing it...
14:52:27 <Taneb> Just got a 416 error on the wiki
14:52:32 <Taneb> Recent Changes page
14:52:55 <oerjan> it sometimes gets a bit flaky
14:53:02 <Taneb> Never had one of those before
14:53:28 <Phantom_Hoover> We are actually just chatbots to keep you occupied until you can fulfil your purpose.
14:53:39 <Taneb> 4xx errors are client-side
14:53:40 <ais523> what does 416 even mean?
14:53:50 <Taneb> "Requested Range Not Satisfiable"
14:54:02 <Taneb> Something to do with asking for stuff after EOF or something
14:55:53 <Taneb> It's just the recent changes page
14:58:22 <Taneb> Does it come with a sword?
14:58:40 <oerjan> either that, or a spaceship, i'm not sure which.
14:58:56 <Taneb> Oh, like in Arthur King of Space and Time?
14:59:04 <oerjan> or possibly, a horse and a gun.
14:59:51 <oerjan> if you discover it is a laser sword and a space horse, run away as fast as you can.
15:00:42 <Taneb> I'll keep that in mind
15:04:20 <oerjan> Phantom_Hoover: i'd not recommend that. at least unless you also have a space suit.
15:04:32 <Taneb> Or a terraformed planet
15:04:56 <oerjan> well the trouble here, you see, is keeping the horse _on_ the planet
15:05:12 <Phantom_Hoover> Taneb, what, you mean I ride away on my space horse on a terraformed planet.
15:10:15 <Taneb> Here's a problem: Is Taneb's Numberwang Turing Complete?
15:13:11 -!- augur has quit (Remote host closed the connection).
15:14:28 * oerjan makes it a table so he doesn't need to scroll
15:17:38 <oerjan> hm digital root, so there is a fundamental mod 9 operation in most cases
15:17:52 <Taneb> And a subsequent mod 4
15:18:24 <oerjan> what precisely is "the value of the current command" in command 2?
15:18:57 <Taneb> If your program was 0, 7, 2, and you were on the 7, it would be 7
15:19:16 <oerjan> ok so before any of that summing and moduloing stuff
15:20:01 <oerjan> i was a little confused by the "this value" a bit above that, which means something else
15:20:34 <oerjan> (and can only be 1-9 afaict)
15:20:58 <Taneb> I use the word value to mean three different things
15:21:07 <Taneb> I think I'll change the second to number
15:25:43 <oerjan> i think this will not be too hard if you make sure all jumps are by multiples of 9, so the step number is always in synch with the position
15:27:00 <CakeProphet> oerjan: I have encountered a problem involving my regular expression language I would like to submit to you..
15:28:23 <oerjan> Taneb: do step numbers and positions start at 0 or 1?
15:28:59 <CakeProphet> okay so basically the language is composed of patterns, which can also take subpatterns as arguments. A pattern has a string result and a numeric result, which can be based on the string/numeric results of their subpatterns...
15:29:09 <CakeProphet> so I have -> as a substition operator. It takes the first occurence of the left-hand pattern in the input string and replaces it with the string result of the right-hand side.
15:29:43 <CakeProphet> I would like to define global substition (s/.../.../g) in terms of ->, as (a -> b)*
15:29:59 <CakeProphet> where * is similar to * in other regexp languages.
15:30:16 <oerjan> Taneb: ok so if jumps are ensured to be mod 9, then the adjustment to each command is predictable (mod 9) from position: 0,2,4,6,8,1,3,5,7,0 etc.
15:30:55 <CakeProphet> if -> is zero-width then upon each repetition it will start at the beginning of the input string, which is undesirable because it means patterns like ('a' -> 'ab')* would loop infinitely.
15:30:59 <Taneb> Jumps are mod length of program
15:32:14 <oerjan> if the length of the program is _not_ divisible by 9, then you should be able to jump from any position
15:32:19 <CakeProphet> however, if -> consumes the input string after the point of substition, then I can define global substition as * applied to ->, but then.... it consumes the input string that I just made substitions upon, which is generally not desirable.
15:33:38 <CakeProphet> so I'm just trying to figure out how to make this work...
15:33:59 -!- augur has joined.
15:34:06 <CakeProphet> perhaps I need a second method of traversing the input string rather than literally consuming it..
15:34:22 <oerjan> CakeProphet: i'm afraid my brain refuses to switch context to your problem
15:34:24 <CakeProphet> or different backtracking semantics... or multiple substition operators.
15:34:50 <CakeProphet> it's obscenely late in the morning for me to be thinking about this.
15:36:11 <CakeProphet> I may have to ditch defining global substition in terms of a repetition of single substition, and just have -> and a separate ->* defined as built-ins.
15:37:18 <CakeProphet> elliott suggested a zero-width version and a consuming version of ->.. but a consuming substition operator seems pointless unless the semantics of the backtracking operator magically preserve side-effects of things when backtracking...
15:37:40 <CakeProphet> which might be undesirable in other cases..
15:38:05 <CakeProphet> turns out making a systematically elegant regular expression language is difficult.
15:40:01 <Taneb> You know what would make everything much more confusing?
15:40:26 <Taneb> Making Numberwang have ternary cells
15:41:01 <CakeProphet> hmmm, perhaps I could add more contextual return values for expressions. Yes, this sounds fun.
15:41:14 <CakeProphet> string result, numeric result, and NEXT ITERATION RESULT.
15:41:49 <CakeProphet> Taneb: ternary isn't terribly confusing, but I don't know how numberwang works so...
15:43:17 <Taneb> With similar changing commands to one of the BF Minimization things
15:43:29 <CakeProphet> oerjan: what would be awesome about (a -> b)* is that * defines its string result as the concatenation of each iteration of the subpattern, and the numeric result as the addition of the subpattern's numeric results..
15:44:01 -!- monqy has joined.
15:44:09 <CakeProphet> -> could return the number of substitions that occurs for the numeric result, which would be either 0 or 1
15:44:23 <CakeProphet> thus the * would return the total number of substitions...
15:45:08 <Taneb> I've had a crazy idea for making an esolang
15:45:15 <Taneb> We all say stuff, and see what sticks
15:45:50 <CakeProphet> http://www.esolangs.org/wiki/Adjudicated_Blind_Collaborative_Design_Esolang_Factory
15:46:59 <monqy> not an imperative language those are boring if they don't have really good gimmicks
15:47:03 <oerjan> sadly no one ever tried to sort out that mess :P
15:47:51 <oerjan> Taneb: positions 2,5 or 8 (mod 9) are ideal jump points for numberwang, as when the step number and command value are all of the same kind, that gives a jump
15:48:20 <Taneb> So, this crazy idea
15:49:08 * oerjan swats Taneb for the heinous crime of abbreviating Adjudicated Blind Collaborative Design Esolang Factory
15:49:22 <Taneb> I never abbreviated that
15:49:34 <oerjan> WELL YOU GOT DANGEROUSLY CLOSE
15:50:07 <Taneb> I abbreviated Abbreviation Because Crazy Declarative Esoteric Fantasy... Groans
15:50:12 <monqy> adjudicated blind collaborative design esolang factory garden
15:50:25 <monqy> garden is a good word
15:51:18 <Taneb> That means like a spin-off
15:51:37 <CakeProphet> oerjan: I enjoy your submission the most. :D
15:51:38 <oerjan> oh wait i'm miscalculating, because a jump should go to a position _after_ the current one (mod 9)
15:51:52 <monqy> an adjudicated blind collaborative design garden of esolang factories
15:52:07 <monqy> or is it a garden of adjudicated blind collaborative design esolang factories
15:52:29 <Taneb> It's the garden that is attached to an adjudicated blind collaborative design esolang factory
15:56:04 <oerjan> Taneb: ok my miscalculation corrected, there actually _aren't_ any perfect jump points
15:56:29 <Taneb> I think it's possible to jump from anywhere to anywhere, though
15:56:52 <oerjan> Taneb: it still should work if the length of the program is not 0 (mod 9)
15:57:39 <oerjan> Taneb: the thing is i'm trying to do this without step numbers getting out of synch
15:58:55 <oerjan> it's easy to make it 4 (mod 9) instead, by appending a NOP 1,0,1,0
15:59:36 -!- oerjan has quit (Quit: leaving).
16:00:52 <CakeProphet> Taneb: the language has only numbers as values
16:01:12 <CakeProphet> in string contexts, an inverse hash function is applied to the number to get a string.
16:01:24 <CakeProphet> the hash function is implementation defined.
16:01:48 <Taneb> All functions take strings
16:04:25 <CakeProphet> all numbers are quantum numbers that can be composed of a possibly infinite number of superpositions. The superpositions collapse based on what context the value is used in. For example, in string context the collapse occurs as the concatenation of the inverse hash value of each superimposed number.
16:06:08 <cheater_> http://shrike.depaul.edu/~mhendri5/CSC394/ConceptDemo/projectManager.html Professor Elliott - 2 l's and 2 t's.
16:06:27 <CakeProphet> for every context there is an anti-context in which an inverse collapsing operation occurs. For every defined context an anti-context must also exist.
16:07:12 <Taneb> There is one context that is its own anti-context
16:07:41 <Vorpal> CakeProphet, are you working on figuring out ABCDEF?
16:07:59 <CakeProphet> Vorpal: we are defining a language collaboratively via logs. :)
16:08:07 <CakeProphet> and I am sleep deprived enough to come up with some crazy ideas.
16:08:18 <Vorpal> CakeProphet, uh, logs of who and from which time span?
16:08:25 <Taneb> Logs of us, and now
16:09:10 <Vorpal> CakeProphet, Taneb whatever it is, the source code (if such exists) should exist on a hyperbolic surface
16:10:58 <CakeProphet> the anti-string context is the union of each superposition in string-context. There is an operator to induce the anti-context of whatever context an expression is in.
16:11:45 <CakeProphet> numeric context is the summation of the superpositions. anti-numeric context is the subtraction of each superposition in left-associative order
16:12:27 <CakeProphet> there is nothing horrible about any of this.
16:12:54 <Taneb> If a context and its anticontext are used in the same function, that function is from thence forth outputs infinity on any input
16:15:10 <CakeProphet> the null superposition is a special value that is empty. It represents the identity element for whatever context it is being evaluated in.
16:15:55 <Phantom_Hoover> Are you trying to make the semantics as complicated as possible?
16:17:08 <CakeProphet> In list context the superposition is merely a linked list. This is the natural state of the superposition. The anti-context of this context is identical.
16:17:09 <Taneb> Except the rand() function
16:17:10 <Phantom_Hoover> You have to make sure that all eventualities lead to the same outcome.
16:17:24 <Taneb> Which always outputs four
16:17:27 -!- MigoMipo has joined.
16:18:07 <CakeProphet> In boolean context, only the null superposition is false, all other superpositions are true. The anti-context is the logical negation of this.
16:19:13 <Vorpal> <CakeProphet> In list context the superposition is merely a linked list. This is the natural state of the superposition. The anti-context of this context is identical. <-- shouldn't the anti-context be the reversed list?
16:19:29 -!- MigoMipo has quit (Read error: Connection reset by peer).
16:19:31 <Phantom_Hoover> Vorpal, did you need to paste the last line of chat to reply to it?
16:19:38 -!- Nisstyre has joined.
16:19:42 <Vorpal> Phantom_Hoover, it wasn't the last line
16:20:05 -!- MigoMipo has joined.
16:20:22 <Vorpal> CakeProphet, it would make sense? Perhaps we can think of something else then
16:20:24 <Taneb> I think I've got Settlers IV working on Ubuntu
16:20:44 <Taneb> Got a splash and my CD drive is whirringh
16:21:15 <Taneb> You can figure out what I mean
16:22:18 <Taneb> Names can only be numbered as operators
16:22:32 <Vorpal> what does that even mean
16:22:38 <lifthrasiir> http://esolangs.org/w/index.php?title=Brainfuck&curid=961&diff=23689&oldid=23593 uhm, can we just split the "implementations" section to the separate comparison page? it is becoming hard to manage.
16:23:10 <CakeProphet> in function context, a superposition acts as the function with the same name. The result is the superposition of each function in the superposition applied to all of the arguments specified.
16:23:27 <CakeProphet> The superposition of two superpositions is their concatenation concatenation.
16:23:54 <lifthrasiir> with columns like "implemented in", "targets", "cell size", "behavior on EOF" etc.
16:24:08 <CakeProphet> thus an infinite superposition of 1s will apply the function 1 infinitely many times to its arguments.
16:24:41 <Taneb> Vorpal: If I wanted to assign a number to a name (like Vorpal is number 6) I would have to say "Vorpal is +" or something
16:24:47 <Vorpal> CakeProphet, how would you write such a superposition in the source?
16:25:08 <ais523> Vorpal: just put the bits on your hard drive into quantum entanglement
16:25:12 <CakeProphet> Vorpal: shenanigans. Probably via some repeat function.
16:25:16 -!- augur has quit (Remote host closed the connection).
16:25:25 <Taneb> Numbers can only been operated as names
16:25:56 <CakeProphet> it's like... a hybrid between Haskell and Perl. :)
16:26:01 -!- augur has joined.
16:26:23 <CakeProphet> yes, there needs to be more two-dimensionality somewhere...
16:26:43 <Taneb> It's on a hyperbolic surface, isn't it?
16:27:07 <Vorpal> Taneb, suggestion: if you write "foo is" without anything after (except statement delimiter such as newline) it should be assigned a default implementation defined value out of the set {-42, 0, 42, 2-5}
16:27:33 <Taneb> It's not my language, there's nothing I can do to stop it
16:27:34 <CakeProphet> okay, so that's the extent of my idea-vomit. I am probably going to sleep now.
16:27:39 <Taneb> It's everybody's language
16:28:03 <Taneb> Not only is it two-dimensional, it's non-euclidean
16:28:05 <Vorpal> CakeProphet, not sure either. But I guess that mean parallel lines aren't like in an Euclidan geometry
16:28:26 <Vorpal> as in, I suggest a hyperbolic geometry (which one: implementation defined)
16:30:04 <Taneb> Basically, hang on
16:30:09 <Phantom_Hoover> You can get one by taking a standard triangular tiling and putting seven triangles around a point rather than six.
16:30:14 <Taneb> Isn't an infinite loop
16:30:18 <CakeProphet> numbers are delicious fruit. Thus subtraction is the devouring of a number of fruit from a pool of fruit by the interpreter or object code. Negative fruit is fruit owed and thus accumulates compound interest over time.
16:30:20 <Taneb> But does sort of work
16:30:40 <Taneb> Numbers can fall in any direction
16:32:17 <Phantom_Hoover> Taneb, BtW, I assume you're referring to http://en.wikipedia.org/wiki/Order-5_square_tiling as the tiling used.
16:33:08 <Phantom_Hoover> (Is it just me or is that projection not a Poincare disc?)
16:38:55 <CakeProphet> negative numbers accumulate continuous compound interest, with an interest rate that is implementation defined. The interest rate must be available to programs as a built-in constant.
16:40:31 -!- MigoMipo has quit (Read error: Connection reset by peer).
16:41:11 -!- foocraft has joined.
16:42:33 <CakeProphet> local usury laws wherever the program is being run provide a cap for the interest rate.
16:43:06 <quintopia> so...basically, negative numbers get more negative proportional to their magnitude
16:43:35 <quintopia> one can get an exponentially large number by subtracting one, nopping for a while, and then absing
16:43:45 <CakeProphet> with respect to local legislature on the matter.
16:43:49 -!- Taneb has quit (Ping timeout: 255 seconds).
16:44:08 <Phantom_Hoover> <CakeProphet> local usury laws wherever the program is being run provide a cap for the interest rate.
16:44:44 <quintopia> is it possible for a program that is destitute and performing nothing but nops to collect unemployment?
16:45:55 <quintopia> is it possible for a program with a large fruit debt to go bankrupt?
16:46:17 <CakeProphet> Phantom_Hoover: I would presume that in those countries it would either be simple interest or no interest at all.
16:46:23 <quintopia> (knowing that its credit score will weaken and it will be unable to store negative values until it performs well for a while)
16:47:30 <quintopia> would it be possible for it to store a positive value (over some minimum value) in a savings register and collect interest on it?
16:47:49 <CakeProphet> these are complex financial and legal matters. You will need to contact your program's lawyer and accountant on the matters.
16:49:19 <CakeProphet> perhaps also a mutual fund with net loss/earnings based on regional stock quotes.
16:51:06 <CakeProphet> ABCDEFG, a context, quantum, hyperbolic, numeric, and finance oriented language.
16:51:58 <Phantom_Hoover> CakeProphet, it's not going to be very helpful for anything hyperbolic, TbH.
16:52:23 <Phantom_Hoover> Ooh, wait, if it has Befunge-style mutable program space it can construct geometrical things.
16:54:56 <CakeProphet> well, it might be possible, but perhaps not globally.
16:55:07 <CakeProphet> making it a fungeoid constricts the syntax to single characters.
16:55:24 <CakeProphet> but incorporated a 2D code grid as part of the language would be interesting.
16:56:17 <CakeProphet> code that manipulates quantum superpositions of fruit and fruit-loans, no doubt.
16:56:44 <quintopia> CakeProphet: if it's finance oriented, all output should be as advertising. thus, it must be paid for and associated with some commodity. the value of that commodity will rise depending on the investment in advertising.
16:57:31 <quintopia> all input should be as market research, and may not be possible for some users depending on whether they are in the target demographic
16:57:40 <quintopia> the preferred input method will be multiople choice surveys
16:59:00 <quintopia> (the nice thing about surveys is that sometimes they include "select all that apply" questions, thus making it possible to input superpositions)
17:01:25 <Vorpal> <CakeProphet> making it a fungeoid constricts the syntax to single characters. <-- unicode is large
17:01:40 <Vorpal> CakeProphet, anyway you could construct source lines on the surface or something
17:02:04 <Vorpal> CakeProphet, oh and... hm... perhaps the gravity of the program deforms the geometry?
17:02:10 <Vorpal> for sufficiently large programs
17:04:22 <Vorpal> quintopia, there is only one free text input per program, which is so annoying to get at, that most programs will promptly discard it?
17:05:40 <quintopia> Vorpal: rather, the user can provide as much input as s/he likes, but the program pays by the character to read it
17:05:58 <cheater_> you can have n-character-wide commands too
17:06:00 <quintopia> eventually, this cost is passed on to the user
17:07:49 <lifthrasiir> Phantom_Hoover: well, actually i wanted something like this: http://esolangs.org/wiki/User:Tokigun/Brainfuck_Implementations
17:12:07 <Phantom_Hoover> lifthrasiir, sure, but it's good to have them out of the main article before experimenting.
17:12:36 <lifthrasiir> yes. that's exactly why i set it up in my user page.
17:48:40 -!- Taneb has joined.
17:53:02 <Taneb> Laughing at where the esolang I suggested has gone
17:53:14 <Taneb> A context, quantum, hyperbolic, numeric, and finance oriented language?
18:00:43 -!- cheater__ has joined.
18:03:57 -!- cheater_ has quit (Ping timeout: 240 seconds).
18:08:23 -!- MigoMipo has joined.
18:09:58 -!- MigoMipo has quit (Read error: Connection reset by peer).
18:10:32 -!- MigoMipo has joined.
18:31:15 -!- Sgeo has joined.
19:02:57 -!- oerjan has joined.
19:08:58 <oerjan> <Vorpal> CakeProphet, are you working on figuring out ABCDEF?
19:09:17 <oerjan> no, ABCDEFG. there is no such thing as a language abbreviated ABCDEF.
19:09:29 * oerjan readies the swatter in case someone disagrees.
19:09:45 <Taneb> It's actually abbreviated ABCDEF...G
19:09:52 <Taneb> The ellipsis is important
19:10:24 <Taneb> However, it can be replaced by a newline in some contexts
19:10:58 -!- cheater__ has quit (Ping timeout: 255 seconds).
19:11:23 <oerjan> also, i realized my former idea of perfect jump points in numberwang works again if the program has an initial 2!, to put things into the correct phase initially
19:14:15 <oerjan> and then we can put the "real" instructions at spots that are position 2 (mod 9), and pad between with 1,0,1,0,1,0,1,0 nops (although one might manage to put something other than a nop in there too)
19:14:59 <oerjan> since 0 and 1 commands can be achieved easily anywhere
19:17:38 <Sgeo> How is ... the thing that ABCDEF is not an abbreviation for?
19:18:06 <Taneb> Self-contradicting
19:18:39 <monqy> rest in peace abcdef
19:19:03 <Taneb> Just as I expected
19:19:29 <oerjan> i guess it was inevitable
19:19:50 <monqy> rest in peace that thing for which abcdef is not an abbreviation, too
19:23:20 <oerjan> it is also possible to put jumps at positions 5 and 8 (mod 9), although they can only jump to other instructions with consistent phase (lest you make the phase inconsistent :P)
19:24:29 -!- cheater__ has joined.
19:25:30 <oerjan> those jumps can be to next instruction, so you can insert nops that way
19:25:54 <Taneb> This is too easy to program in
19:26:57 <oerjan> well it looks obvious that you can automatically translate a Wang B-machine to this now
19:27:09 <Taneb> Hence it is Turing Complete
19:32:25 <ais523> is it meant to be sub-TC?
19:32:27 <oerjan> hm actually it's not exactly the same, numberwang flips bits while the B-machine only sets them (and the W-machine also clears)
19:32:44 <Taneb> It's meant to be really hard to prove
19:33:12 <oerjan> but nothing really difficult there i guess
19:33:31 <Taneb> It's practically usable
19:33:54 <monqy> Oozlybub and Murphy is a good example of hard to prove
19:35:41 <oerjan> yes but in a somewhat unsatisfactory way
19:36:11 <monqy> are there any satisfactory examples
19:37:10 <Taneb> Not off the top of my head
19:37:23 <oerjan> well no one has attempted my Malbolge Unshackled yet afaik :P
19:40:29 <Taneb> How can I complicate this?
19:41:02 <Taneb> I want its computational class to be "probably Turing Complete..."
19:41:52 <Taneb> All programs much reach Numberwang so many times?
19:42:13 <monqy> what does numberwang do
19:42:35 <Taneb> http://esoteric.voxelperfect.net/wiki/Numberwang
19:42:50 <monqy> 12! 4.4! 92! 10! 49.8! 2! 2! 2!
19:42:57 <Taneb> Depends when it happend
19:43:18 <monqy> but does it necessarily have any effects?
19:43:30 <Taneb> It's an almost certainty
19:44:12 -!- ais523 has quit (Remote host closed the connection).
19:44:33 <Taneb> Like, I have no idea what the program 3! does
19:46:30 -!- MigoMipo has quit (Remote host closed the connection).
19:48:02 <lifthrasiir> Taneb: is the digital root of 4.4 or 49.8 defined?
19:48:23 <Taneb> It is, but the most common algorithm doesn't work
19:48:30 <Taneb> 8 and 3 respectively
19:49:01 <Taneb> Multiply by 10 until n % 1=0
19:49:03 <lifthrasiir> so that it only affects the interpretation of instruction 2, right?
19:49:34 <lifthrasiir> then what on the earth is the command at the fractional index? :p
19:49:58 <Taneb> I haven't worked that out yet
19:50:52 <lifthrasiir> i guess some kind of interpolation will be fine...
19:50:58 <Taneb> I think you do the * 10 until n % 1 = 0
19:52:00 <lifthrasiir> e.g. if you go to the offset 4.2 which is between the command 92 and 10, then it is interpreted as the command 26.4
19:52:43 <lifthrasiir> since the initial commands are always integers multiplied with 10^-k (k integer)
19:52:51 <lifthrasiir> there is no problem with recurring decimals etc.
19:53:25 <Taneb> All commands are k/(2^j)*(5^l)
19:56:25 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
19:59:39 <Taneb> Your suggestion is now canon
20:00:08 <cheater__> anyone know what encoding this page is in? http://www.john-a-harper.com/tubes201/
20:01:26 <Sgeo> I don't think HTML 3.2 is an encoding
20:01:49 <Taneb> Pretty sure it's UTF-8
20:02:14 <Taneb> With HTML 3.2 markup and images as GIFs
20:02:15 <cheater__> can you search for the text "is a constant for a given electrode geometry. In other words, the actual plate voltage is divided by" ?
20:02:36 <monqy> <meta name="GENERATOR" content="Microsoft FrontPage 3.0"> nice
20:02:43 <fizzie> Yeah, the "broken" characters seem to be UTF-8 "missing character" symbols.
20:03:11 <monqy> � ...encoding...:(
20:03:56 <fizzie> There's the byte sequence EF BF BD (which is UTF-8 for the U+FFFD) for both the degree signs and the supposedly-µ.
20:04:12 <fizzie> So it's not something you could reverse back to anything sensible.
20:07:26 <fizzie> Google has a quick-view of a PDF version, second hit for me for the "How Vacuum Tubes Really Work" (in quotes) search.
20:07:46 <cheater__> fizzie, yeah i decided to change everything by hand
20:07:48 <oerjan> i guess someone sent non-UTF-8 to a program that was expecting UTF-8, and the unknown characters were turned into that
20:07:57 <fizzie> And the <ins> and <del> tags are used to denote insertations and deletions in a document.
20:10:25 <cheater__> <meta name="editor" content="Vim">
20:11:02 <Taneb> I could make a better website with Wine Notepad and a packet of crisps!
20:11:11 <Taneb> By better, I mean better HTML
20:11:17 <Taneb> Not better content
20:11:36 <cheater__> the preview has all the right characters
20:12:04 <Taneb> Replace your mu characters with μ
20:13:29 <cheater__> what's the degree one? ° right?
20:14:00 <Taneb> The semicolon is important
20:24:13 <cheater__> i realize, but it's part of sgml, not the entity
20:24:26 <cheater__> funnily enough i have had to use two different encodings for the mu character
20:24:36 <cheater__> &mu and µ for different contexts
20:25:02 <cheater__> mu is used for the prefix "micro" in units as well as for a variable called "mu"
20:25:15 <cheater__> as in "Vari-mu", "low-mu", "high-mu"
20:25:32 <Taneb> What does a zen cow say?
20:27:01 <quintopia> why did the kitten stay on the hot tin roof longer than the adult cat?
20:29:01 <Taneb> Today I have ice cream, so I take it away from you.
20:29:12 <Taneb> Tomorrow I have no ice cream, so I give it to you.
20:29:19 <Taneb> This is an ice cream koan
20:38:36 <Gregor> I seem to finally have working webernauts.
20:41:04 -!- Taneb has quit (Ping timeout: 264 seconds).
20:46:56 -!- Phantom_Hoover has joined.
20:53:07 -!- Sgeo has quit (Ping timeout: 255 seconds).
20:55:34 -!- Sgeo has joined.
21:03:55 -!- boily has quit (Ping timeout: 255 seconds).
21:04:18 * Phantom_Hoover notes that he just clicked on a YouTube video called "Mitchell & Webb Mac Adverts" on the assumption it would be a parody.
21:05:02 -!- hagb4rd has joined.
21:06:34 * oerjan recalls someone posted an animated gif of a mac advert on reddit the other day
21:07:10 <oerjan> from a norwegian online newspaper
21:16:31 -!- cheater__ has quit (Ping timeout: 255 seconds).
21:17:35 -!- elliott has joined.
21:23:03 <oerjan> something is wrong, elliott joined and the channel is _still_ silent
21:23:12 <elliott> im logreading -minecraft first is why
21:29:23 -!- cheater__ has joined.
21:35:19 * oerjan figures -minecraft must have been _really_ active today.
21:35:39 <elliott> no im just scrolling dwon to find ten am
21:38:32 <elliott> 14:06:23: <oerjan> it's just one of ais523's methods to suppress thinking of fe *hit by falling anvil*
21:38:32 <elliott> 14:07:05: <Taneb> Meta type constructors?
21:38:33 <elliott> 14:07:55: <oerjan> i never m *anvil rolls on top of him again*
21:39:14 <elliott> 14:22:22: <Taneb> Why can't my German-made French-published game with Italian characters run on my Japanes-designed Chinese-made laptop with a South African OS based on a kernel designed by a Swedish speaking FInn?
21:39:14 <elliott> 14:23:06: <Taneb> The game also has Norwegian and... Argentinian? characters
21:39:18 <oklopol> "hihihi here i come oerjie" "AAAAAAARGH!"
21:39:42 <elliott> 14:27:36: <oerjan> it means "i despise you so much i'm going to steal your screen real estate despite not really saying much." hth.
21:40:17 <elliott> 14:28:25: <Taneb> But yeah, Settlers IV doesn't run on Ubuntu on my Toshiba
21:40:17 <elliott> Ubuntu is South African only by very dubious measures :-P
21:40:19 <oerjan> nothing personal, you're just evil newline-spamming scum, is all.
21:40:49 <elliott> 14:34:02: <oerjan> a real is perfectly encodeable as a sequence of ones and zeroes. it just has to be infinite.
21:40:49 <elliott> 14:34:12: <Phantom_Hoover> oerjan, OK then, P(R).
21:40:49 <elliott> 14:34:36: <oerjan> fiendish.
21:40:49 <elliott> 14:34:54: <Phantom_Hoover> Just stick Ps on until it gets big enough.
21:41:18 <olsner> I think domesticated anvils will be made of light metals and have some form of truss-like interior instead of being solid metal
21:41:47 <olsner> they're just not that cuddly when they still weigh a ton or two (or a half)
21:43:04 <oklopol> aww now i want a pet anvil :D
21:43:23 <elliott> Phantom_Hoover: I am going to revert your [[Brainfuck implementations]] change
21:43:41 <elliott> because you moved every single implementation, including the /original/
21:43:42 <oerjan> they are fierce creatures who hate puns
21:43:42 <olsner> oerjan: pet anvils are pets
21:43:54 <oklopol> really it would be kind of sad, it moves by jumping so everyone always yells at it if it moves too much because it makes this huge noise :(
21:44:05 <Phantom_Hoover> elliott, consider simply moving that into the article, rather than moving the whole thing.
21:44:25 <oklopol> and when it tries to come greet its master, it will just often step on his feet and get yelled at again :(
21:45:28 <elliott> (diff) (hist) . . Brainfuck implementations; 21:44 . . (-8,084) . . Ehird (Talk | contribs) (...better organisation than the current section. I will do a proper move later today or tomorrow.)
21:45:28 <elliott> (diff) (hist) . . Brainfuck; 21:44 . . (+8,024) . . Ehird (Talk | contribs) (Revert; while I support the separation of implementations into a separate article, ''notable'' implementations (e.g. original distribution, esotope) should stay. And any such page should have...)
21:45:33 <elliott> Phantom_Hoover: (read backwards)
21:46:03 <oerjan> elliott: tokigun is already working on a better implementation listing
21:46:13 -!- cheater__ has quit (Ping timeout: 255 seconds).
21:46:22 <oerjan> not got very far, mind you
21:46:27 <oklopol> i wish i had 100 million moneys
21:46:30 <elliott> I find that format much worse, I'm afraid
21:46:37 <elliott> especially since we don't have wikipedia's table sorting JS
21:46:47 <oklopol> i could buy a pet anvil AND pillow shoes for it
21:50:22 <oerjan> oklopol: oh it's all fun and games until one day you want to meet a pun and then *BAM*
21:50:47 -!- sidhe has joined.
21:51:20 -!- pikhq_ has joined.
21:51:47 <elliott> the name sidhe rings a bell
21:53:22 -!- oklofok has joined.
21:53:52 <olsner> oerjan: are you the chairman of the "former pet anvil owners who've had enough" club or something?
21:53:57 <sidhe> i was just on ##nomic for a few seconds due to forgetting the name of this channel
21:54:13 <oerjan> olsner: no, i never met any other survivors
21:54:23 <sidhe> though i've never been here before using this nick.
21:55:16 -!- pikhq has quit (Ping timeout: 258 seconds).
21:55:25 -!- oklopol has quit (Ping timeout: 240 seconds).
21:55:56 -!- cheater__ has joined.
21:58:03 -!- sidhe has left.
21:58:28 <elliott> Lymee: OK SERIOUSLY HOW DOES MAVEN EVEN WORK.
21:58:47 <olsner> elliott: maven? isn't that some java crap?
21:59:06 <elliott> lymee is our resident expert on java crap.
21:59:11 <elliott> olsner: i gather it's less crap than ant, though
21:59:12 <olsner> but do you really want to know how it works?
21:59:19 <Lymee> elliott, Maven works with magic.
21:59:19 <elliott> well i need to use it, yes, so i can avoid using ant.
21:59:30 <elliott> Lymee: do you have a better suggestion
21:59:36 <Lymee> I let Eclipse deal with maven.
21:59:46 <elliott> Yeah, but there's two different plugins and no indication of which one to use :-(
22:00:38 <olsner> I get the impression that maven does things that ant users find useful, and it uses xml
22:00:47 <elliott> Lymee: http://maven.apache.org/eclipse-plugin.html Which one ;_;
22:03:02 <elliott> Clearly you want me to suffer.
22:03:16 <Lymee> No, that's Apache.
22:03:24 -!- cheater__ has quit (Ping timeout: 250 seconds).
22:04:02 <elliott> Which one do you have installed, I just want something that works :P
22:04:09 <elliott> Ant has completely melted down under its own shittiness.
22:04:23 <elliott> Also I think Maven is meant to be a bit faster than Ant, which is nice because Ant is dog slow.
22:06:18 <oklofok> http://www.vjn.fi/temporary%20shit/anvie.png
22:06:22 <Lymee> Maven Integration.
22:07:30 <elliott> Now I just have to figure out how to write Maven files :(
22:07:32 <olsner> oklofok: you drew that?
22:07:40 <olsner> or is it a photograph?
22:08:35 <oklofok> yeah i photographed it using my mspaint brand camera
22:10:30 <oklofok> it's soooooo cute when it bounces around :D
22:11:08 <oklofok> i wish i was awesome at animating shit, hope you're imagining what i'm imagining
22:11:41 <elliott> bleh, it looks like my eclipse version is too old to use m2e
22:11:50 <elliott> I blame Lymee for probably not using Linux
22:12:01 <elliott> I'm just going to blame every Bukkit plugin development problem I have on Lymee
22:12:25 <olsner> oklofok: bouncy bouncy :D
22:12:55 <oklofok> it's like the antidog in the sense that it loves to scratch you with its horn
22:13:22 <oklofok> (it can actually move that thing a bit)
22:13:39 <oerjan> oklofok: also think of the floor repair bills
22:13:59 <oklofok> in fact it wiggles and waggles it like a dog does with its tail, although the movement is slightly slower and much smaller
22:15:11 <elliott> "The Eclipse software development kit is the development environment used to develop plug-ins for the Eclipse platform."
22:15:18 <elliott> Eclipse is like the most incestuous piece of software imaginable.
22:15:28 <elliott> Its main distribution is a tool to extend itself.
22:16:18 <Lymee> elliott, Lymee does use Linux.
22:17:01 <elliott> I'm having problems; the only conceivable way anyone else could not be having problems is if they are inferior to me.
22:17:56 <elliott> holy shit what the hell is maven
22:20:10 <elliott> this is like using martian software, if martians were idiots
22:20:33 <oerjan> conclusion, oklofok thinks everything that can kill you is cute
22:32:09 <oklofok> http://www.vjn.fi/temporary%20shit/monsterravie.png
22:34:22 <oklofok> realized i had two ground levels
22:35:36 * oerjan is disappointed that http://www.vjn.fi/permanent%20shit/ doesn't exist
22:36:32 <oklofok> we emptied vjn.fi, and moved stuff to our new domain, but missed the deadline for cancelling the webhotel thingie we had for it so now we'll just have an empty domain standing there for about a year
22:37:01 <oklofok> so it turns out i love drawing shit
22:37:09 <oklofok> why have i never drawn anything :\
22:38:18 <elliott> Lymee: if I steal CommandBook's pom.xml and modify it to my own nefarious purposes, do you promise not to tell?
22:38:35 -!- aloril has quit (Ping timeout: 258 seconds).
22:39:02 <oklofok> i don't think i've ever seen a cuter monster raven
22:39:16 <oklofok> or a more terrifying anvil
22:45:57 -!- azaq23 has joined.
22:46:13 <elliott> Wow OK Maven is literally the slowest thing.
22:46:18 <elliott> Is it... downloading every dependency each time?
22:46:29 <elliott> This is the least Zepto I have ever felt.
22:47:44 <monqy> are you still eclipsimng
22:48:42 <Lymee> elliott, if it is...
22:50:04 <coppro> the worst build system evern
22:50:05 <elliott> Phantom_Hoover: Confusing.
22:51:02 <monqy> why haven't you just made something to replace ides yet
22:51:29 <monqy> or is an ide actually required for whatever you're doing is it a bukkit plugin I don't even know what that is
22:52:25 -!- aloril has joined.
22:53:19 <oklofok> Phantom_Hoover: you can also check you my picture of maven
22:54:40 <oklofok> i love how paint adds a smoothing touch around every line so that the filler fucks up
22:55:00 <oklofok> of course it would have been hard to have a wing otherwise, but still sorta ugly
22:56:40 <elliott> Maven has to download maven-clean-plugin just to clean the repository out.
22:58:52 <elliott> 14/07/11 23:57:54 BST: [WARN] Some problems were encountered while building the effective model for net.pyralspite:hostilechunks:jar:0.1
22:58:52 <elliott> 14/07/11 23:57:54 BST: [WARN] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 49, column 12
22:58:53 <elliott> 14/07/11 23:57:54 BST: [WARN] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-jar-plugin is missing. @ line 58, column 12
22:58:53 <elliott> 14/07/11 23:57:54 BST: [WARN] The expression ${artifactId} is deprecated. Please use ${project.artifactId} instead.
23:05:29 <Lymee> <elliott> 14/07/11 23:57:54 BST: [WARN] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 49, column 12
23:05:39 <Lymee> WHY IS THIS A PLUGIN!?
23:05:41 <elliott> Yeah, you have to tell Maven the exact versions of every Maven component you want.
23:05:53 <elliott> Lymee: Like I said, "mvn clean" actually downloaded maven-clean-plugin.
23:06:36 <elliott> I'm this close to replacing my build system with a shell script and getting Eclipse to run it.
23:06:41 <Lymee> I can understand that level of modularization, but not not including it by default.
23:06:46 <Lymee> including core modules*
23:07:41 <Lymee> If you do that, the only reason you'd remove core modules is for slimmed down bundled releases.
23:08:58 <Phantom_Hoover> http://www.reddit.com/r/math/comments/iph88/mathematics_questions_over_on_raskscience_are_met/
23:09:22 <elliott> Why you should use the Maven Ant Tasks instead of Maven or Ivy
23:09:23 <elliott> MARCH 8, 2009 BY PETER THOMAS 21 COMMENTS
23:10:03 <Phantom_Hoover> oerjan, incidentally, is it possible to have a non-Euclidean space where there is a circle constant which works like it does in Euclidean space?
23:10:44 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:10:47 <Phantom_Hoover> Since radius:circumference clearly isn't constant in an elliptical space, and ISTR it's not constant in hyperbolic space either.
23:10:54 <elliott> Lymee: hmm, does Maven kill Eclipse's automatic error-highlighting for you, too?
23:11:24 <oklofok> that's actually a kind of interesting question
23:11:49 <Lymee> elliott, havn't used it with anything I actively modified a lot.
23:12:21 <oerjan> Phantom_Hoover: what i recall is that in both hyperbolic and elliptic geometries the limit is the usual pi when you let the radius approach zero
23:12:42 <Phantom_Hoover> oerjan, sure, but it's not the case for *all* circles.
23:13:06 <oerjan> no, but i mean neither gives the possibility of anything _other_ than pi being special
23:14:39 <Phantom_Hoover> oerjan, OK, but is it possible to have a space where all circles have radius:circumference = k, k != pi?
23:14:53 <oerjan> hm if you do it around poles in the complex plane don't you get a multiple of pi... although that's just at that point
23:15:28 <oklofok> bleh, i know way too little about lesser mathematics to even *try* to construct such a space
23:15:33 <oklofok> sorry non-discrete mathematics
23:15:48 <oerjan> obviously i don't know the answer either
23:16:03 <oklofok> i would certainly love to know the exact rules
23:16:51 <oklofok> and then some metric for it k
23:16:57 <pikhq_> oklofok: Isn't it something like "a set of points equidistant from a given point in a given 2d product space" or some such?
23:17:07 <oklofok> what's a 2d product space?
23:17:11 <oerjan> i expect it must always be pi in the limit for a riemannian manifold
23:17:49 <oklofok> what's a riemannian manifold?
23:18:08 <oklofok> the problem is what's a circumference in general?
23:18:33 <oklofok> maybe the 1-dimensional measure of the radius 1 sphere
23:18:52 <oklofok> assuming its hausdorff dimension is 1
23:19:03 <oklofok> can you define something like that?
23:19:22 <oerjan> riemannian manifolds are obvious spaces in which you can at least define a circumference (because you have a metric and differentiation)
23:19:48 <oklofok> hausdorff measure can be supplied with a dimension right
23:19:53 <oerjan> mind you i don't know that much about them
23:20:09 <elliott> "a rational number is a quotient of two integers. 10 is not an integer."
23:20:34 <oerjan> iirc the hausdorff measure of a set is always 0 or infinite except for at most one dimension
23:20:49 <oklofok> oerjan: how can you define circumference based on a metric and differentiation?
23:20:56 <oklofok> is there a concept of angle?
23:21:06 <oerjan> "A Riemannian metric makes it possible to define various geometric notions on a Riemannian manifold, such as angles, lengths of curves, areas (or volumes), curvature, gradients of functions and divergence of vector fields.
23:21:15 <oerjan> (http://en.wikipedia.org/wiki/Riemannian_manifold)
23:21:49 <oklofok> "<oerjan> iirc the hausdorff measure of a set is always 0 or infinite except for at most one dimension" yes and circumferences should have dimension 1 and their length as the measure in the euclidean case
23:22:32 <oklofok> oerjan: i don't see how that still necessarily lets you measure the length of a circle
23:23:41 <oerjan> it lets you measure the length of a differentiable curve
23:23:54 <oklofok> so... what curve do you measure?
23:24:23 <oklofok> the set of points at a certain distance
23:25:06 <oerjan> ok i guess i don't know for sure whether that _does_ form a curve
23:25:39 <oklofok> for each point there is an r such that you get a curve out of the r-sphere or smaller i think
23:25:39 <oerjan> although i'm sure someone who actually knew this stuff could answer
23:25:57 <oklofok> because the metric is compatible with the topology and you need to have R^2 in some neighborhood
23:26:18 <oklofok> so you get something that's homeomorphic to the usual sphere for small enough radius (?)
23:26:20 <elliott> "In what year was your Gandi account created?" -- worst possible security question
23:26:33 <elliott> takes exactly /twelve/ tries to beat at most :D
23:26:38 <oklofok> blergh i don't know shit about this stuff
23:28:52 <elliott> https://www.gandi.net/static/contracts/en/whois/pdf/ObfuscatedWhois_1_1.pdf
23:28:56 <elliott> someone read this for me, thnx
23:29:17 <oklofok> hmm actually i'm pretty sure a circle is a curve
23:29:23 <elliott> Our contract with ICANN requires that we sell our WHOIS database to any party that requests it. However, you have the right to refuse the sending of your personal data in such an event. Only click on YES and proceed to the next form if you accept that your personal data may be sold.
23:29:29 <elliott> does this mean that it won't let me go past if i don't say yes :D
23:29:58 <oklofok> in any manifold with a metric compatible with the topology, i think it's a path
23:30:34 <oklofok> well actually dunno, blergh
23:31:03 <oklofok> oerjan: hey btw recall that really interesting thing we proved the other day?
23:31:08 <oklofok> we generalized it yesterday!
23:31:12 <oklofok> now we know it for all chains
23:31:42 <oklofok> (and it seems it's not true for anything else by a simple counterexample)
23:33:31 <oklofok> basically it just becomes a question of homomorphism from S^n to S where S is a lattice. for chains these are just projection to one coordinate + homomorphism
23:34:05 <oklofok> but there's a nontrivial homo from D^2 to D for the diamond D
23:34:08 -!- copumpkin has joined.
23:36:43 <oklofok> so what i'm thinking is if you have a diamond (you do if it's not a chain) and take like a minimal one in some sense, then you might be able to homo the whole S^2 into that one diamond
23:37:23 <oklofok> well haven't given it thought really but sounds like it should be doable, solving the problem completely, in a sense
23:38:28 <oklofok> so as everyone here prolly already knows a subshift that's also a group is easily shown to be an SFT
23:38:43 <oklofok> a more recent result is that it is in fact a full shift (or conjugate to one at least)
23:39:06 <oklofok> so perhaps there is something similar for lattices
23:40:02 <elliott> oklofok: what's my telephone number
23:40:17 <oklofok> a non-trivial binary subshift that's a lattice always contains the all-0 and all-1 points (proof: it's obvious), and if there's a 0-finite or 1-finite point then it's the full shift
23:40:49 <oklofok> but that's all we know so far
23:41:03 <oklofok> but i have a hunch it's really simple as well
23:42:17 <oklofok> like, take a point and shift it a bit, and and or it with itself, if you get something trivial then the point is periodic and otherwise maybe you get something interesting
23:44:26 <oklofok> (i don't actually know if it has to be periodic if what i said happens)
00:00:15 <hagb4rd> numbers, endlessly looping a series of digits are also called periodics, yes?
00:01:21 <oklofok> and such symbolic sequences are called eventually periodic or ultimately periodic, occasionally also periodic
00:04:12 <hagb4rd> i guess occasionally periodic when falling back into unstructred?
00:04:28 <hagb4rd> like 1,234343434343425235623
00:04:52 <oklofok> that's not really a proper definition
00:05:07 <oklofok> ofc you can use that term if you like, haven't heard it
00:05:30 <oklofok> there are many terms for sequences that are sort of periodic, recurrence, quasiperiodicity etc
00:06:21 <oklofok> say if for all words w, there is an n such that every subword of length n in your point (your infinite sequence) contains a copy of w, then the point is, umm, recurrent i think?
00:07:53 <oklofok> if for all i and n there is a nonzero p such that x[i, ..., i+n+mp] = x[i, i+n+mp] for all m, then the point is called quasiperiodic iirc (although quasiperiodic can mean a lot of things, people just love using it for everything)
00:09:31 <oklofok> then you call the point iso...somethingic if that same thing holds, but you might have to move a bit; that is, for all w occurring in x, there is a k and a p such that x[k + pm, ..., k + pm + |w| - 1] = w
00:09:57 <oklofok> i don't recall the names of the terms because they are not as standard as one would hope
00:10:04 <oklofok> but i can check them if you're interested
00:10:53 <oklofok> or you can check them yourself, kurka has a marvellous book online called topological and symbolical dynamics where he gives the defs for arbitrary dynamical systems
00:10:56 <hagb4rd> yea thanks you for this nice excursion
00:11:32 <oklofok> well i sort of do it for a living :D
00:12:08 <oklofok> (not very good at remembering terms)
00:13:55 <oklofok> so every subshift has a recurrent point
00:14:24 <hagb4rd> i'm sure elliott'll be back in a moment ready to kick your ass with his final question :P
00:17:20 <oklofok> let S be a subshift, and let w_1, ... be an enumeration of all words. if for every word, you have the recurrence property in every point of S, then we're done. otherwise, take the first w_i for which it doesn't hold. then, there is a point x in S which contains arbitrarily big subwords without an occurrence of w_i, so this point x and its shifted versions have a limit point without an occurrence of w_i. so, S \cap Y is a nonempty proper subshift of S,
00:18:07 <oklofok> now, observe that repeating this we obtain an infinite chain S_i of subshifts such that S_i does not have an occurrence of any w_j with j<=i unless w_j appears recurrently in every point of S
00:18:30 <hagb4rd> btw.. i bought the book ian bell mentioned as his favourite on his homepage ;) ..the cosmic serpent
00:18:57 <oklofok> so, just take the intersection of such S_i, it's a descending chain of compact non-empty shift-invariant sets and therefore the intersection is also a compact non-empty shift-invariant set.
00:19:14 <oklofok> it is clear that in this intersection, every point is recurrent
00:19:52 <oklofok> was nice to get that off my chest
00:27:55 -!- Lymee has quit (Ping timeout: 240 seconds).
00:30:21 -!- foocraft has quit (Quit: So long, and thanks for all the fish!).
00:30:39 -!- foocraft has joined.
00:31:44 -!- Lymee has joined.
00:51:28 <oklofok> i just love shift spaces so much
00:51:41 <oklofok> i just... can't get enough of them
01:07:23 -!- hagb4rd has quit (Quit: hagb4rd).
01:10:36 -!- azaq23 has quit (Ping timeout: 250 seconds).
01:12:54 -!- Phantom_Hoover has quit (Quit: Leaving).
01:16:44 -!- azaq23 has joined.
01:25:05 -!- hagb4rd has joined.
01:35:08 -!- azaq23 has quit (Ping timeout: 240 seconds).
01:40:24 <lambdabot> <no location info>: parse error on input `:'
01:40:38 <CakeProphet> > <no location info>: parse error on input `<'
01:40:39 <lambdabot> <no location info>: parse error on input `<'
01:41:19 <CakeProphet> all error messages from my language interpreters will be valid code.
01:42:48 <lambdabot> Not in scope: data constructor `Maybe'
01:43:02 <oerjan> > Not in scope: data constructor `Not'
01:43:02 <lambdabot> <no location info>: parse error on input `in'
01:43:36 <lambdabot> Couldn't match expected type `[t]'
01:43:36 <lambdabot> against inferred type `Data.Mayb...
01:48:19 <oklofok> (in any dimension, the binary shifts that are lattices are exactly the shifts where the set of 1's is linear)
01:49:03 <oklofok> (linear in the sense used with semilinear sets, that is, each 1 forces a periodic sequence of 1's in different directions)
01:49:22 <oklofok> (just as easy as i thought, and done exactly as i guessed earlier)
01:49:48 -!- azaq23 has joined.
01:51:04 <oklofok> ermerm sorry not linear. but anyway that period thing.
01:57:54 -!- elliott has quit (Remote host closed the connection).
01:58:40 -!- elliott has joined.
01:58:43 <oklofok> as for shift spaces that are boolean algebras, they are just the full shifts and the periodic shifts
01:59:51 <oklofok> (the general case is slightly more complicated, although i did solve that one too, in a sense)
02:01:56 <oklofok> where's that... whatever his/her nick was last time, that crazy math dude; why is he not here, i need someone to eagerly repeat "uhhuh? i'm listening!" :\
02:22:45 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E...
02:24:09 <lambdabot> forall b (f :: * -> *). (?f::b -> b, Functor f) => f b
02:25:05 <lambdabot> No instance for (GHC.Show.Show (f [GHC.Types.Char]))
02:25:06 <oerjan> aka dynamically scoped variable
02:25:24 <elliott> it's not exactly a _variable_ :D
02:25:36 -!- elliott has left ("Leaving").
02:25:40 -!- elliott has joined.
02:25:54 <oerjan> > fix (error.) "is too!"
02:25:55 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E...
02:25:56 <lambdabot> forall (f :: * -> *). (Functor f) => f [Char]
02:26:26 <oerjan> CakeProphet: it's because of lambdabot's (.) = fmap definition
02:27:47 <lambdabot> The operator `.' [infixr 9] of a section
02:27:47 <lambdabot> must have lower precedence than that of the operand,
02:27:58 <lambdabot> Occurs check: cannot construct the infinite type: a = f (f1 a)
02:27:58 <lambdabot> Inferred type: f2 (f (f1 a) -> f (f1 b))
02:28:17 <lambdabot> forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b)
02:28:41 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
02:29:12 <lambdabot> forall (f :: * -> *) b c a. (Functor f) => (b -> c) -> f (a -> b) -> f (a -> c)
02:29:28 <coppro> oerjan: ah. Which (.) are we using?
02:29:51 <coppro> where is it defined? And how does it shadow Prelude's?
02:30:12 <oerjan> coppro: in lambdabot's L module
02:30:40 <coppro> elliott: Really? I thought you couldn't ever have two things with the same name
02:30:51 <elliott> coppro: what on earth gave you that impression?
02:31:01 <elliott> import Prelude hiding (map)
02:31:07 <elliott> import Prelude hiding (map)
02:31:59 <coppro> wait no, still doesn't answer my question
02:32:01 <CakeProphet> also if you qualify the name then you can have both in scope.
02:32:03 <coppro> Prelude is imported by default
02:32:15 <elliott> coppro: yes, but adding an explicit import declaration overrides that
02:32:24 <coppro> also there is no shadowing there
02:32:28 <coppro> (except in the 'let' declaration)
02:32:30 <monqy> alternatively, NoImplicitPrelude or whatever it is
02:32:35 <monqy> which also does other stuff
02:32:41 <elliott> > let {map = 99} in {9 + map}
02:32:41 <lambdabot> <no location info>: parse error on input `{'
02:32:45 <elliott> > let {map = 99} in 9 + map
02:32:50 <elliott> coppro: map is shadowed in the scope of the in expressio
02:32:52 <CakeProphet> I believe import Prelude () will hide it entirely?
02:32:54 <monqy> I forget what else, aside from letting you use your own monad definition for do notation
02:32:55 <coppro> elliott: I said except in the let declaration
02:33:16 <monqy> CakeProphet: do you feel an urge to abuse NoImplicitPrelude
02:34:08 <elliott> dammit mvaen i want automatic builds in eclipse
02:34:08 <monqy> I'm sure there's some way to abuse it
02:34:51 <CakeProphet> any kind of abuse I can think of would be highly contrived.
02:35:01 <CakeProphet> not as obvious as the ways one can abuse OverloadedStrings
02:35:39 <CakeProphet> of course by "abuse" I mean "use in ways that are completely allowed by Haskell and typecheck with no special hacks required"
02:36:19 <monqy> CakeProphet: do you find unsafecoerce hilarious
02:36:27 <monqy> elliott: what would happen I'm not a stackoverflow guy
02:36:35 <CakeProphet> I'm not even sure what the hell that is supposed to do.
02:36:43 <CakeProphet> the notion of coercing types in Haskell confuses me.
02:36:52 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
02:37:05 <monqy> it's used in Data.Dynamic or whatever it is
02:37:08 <monqy> do you find Data.Dynamic hilarious
02:37:35 <elliott> monqy: stackoverflow ims a bad persons
02:37:36 <CakeProphet> ...I don't find anything in Haskell particularly hilarious.
02:37:47 <CakeProphet> Dynamic is interesting and possibly useful.
02:38:21 <CakeProphet> it demonstrates that Haskell can support dynamic typing, which is pretty incredible
02:38:36 <monqy> CakeProphet: also when I said NoImplicitPrelude I meant RebindableSyntax (which implies NoImplicitPrelude)
02:38:37 <lambdabot> forall a. (Typeable a) => Dynamic -> Maybe a
02:38:49 <elliott> CakeProphet: What does Haskell look like?
02:39:01 <CakeProphet> elliott: what the hell kind of question is that.
02:39:10 <elliott> CakeProphet: What country are you from?
02:39:29 <elliott> CakeProphet: "...." ain't no country I ever heard of. They speak Haskell in ....?
02:39:33 <CakeProphet> I refuse to answer all of these questions.
02:39:50 <elliott> CakeProphet: DESCRIBE WHAT HASKELL LOOKS LIKE.
02:40:16 <CakeProphet> okay we cannot quote Pulp fiction anymore.
02:40:19 <monqy> please tell me if i am dying or crying i cannot tell
02:40:28 <monqy> they rhyme this is confusing to me
02:40:28 <elliott> CakeProphet: God dammit just get to the bitch part so I can ask if Haskell looks like Perl.
02:40:58 <CakeProphet> also you will have to ask why I am trying to fuck it like a Perl.
02:41:06 <monqy> CakeProphet: http://www.haskell.org/ghc/docs/7.0.2/html/users_guide/syntax-extns.html#rebindable-syntax
02:41:34 <CakeProphet> so you're saying that Dynamic is only useful if you want to code Perl in Haskell? is this the grand point?
02:41:44 <oerjan> !haskell {-# LANGUAGE RebindableSyntax #-} import qualified Prelude; a >>= b = b a; main = Prelude.print $ do x <- 3; y <- 4; x Prelude.+ y
02:41:53 <EgoBot> /tmp/input.30856.hs:1:13: unsupported extension: RebindableSyntax
02:42:32 <CakeProphet> actually, that's a potential use case, writing a Perl interpreter in Haskell could make use of Dynamic.
02:42:43 <elliott> oerjan: NoImplicitPrelude used to do it, IIRC
02:42:46 <monqy> embed perl in haskell
02:43:02 <oerjan> !haskell {-# LANGUAGE NoImplicitPrelude #-} import qualified Prelude; a >>= b = b a; main = Prelude.print $ do x <- 3; y <- 4; x Prelude.+ y
02:43:12 <CakeProphet> though I suspect not using Dynamic could lead to better results.
02:43:34 <elliott> oerjan: that doesn't absolve you of the need to type main properly :P
02:43:36 <CakeProphet> since Perl has a finite number of types, using a single PerlData type would work.
02:43:51 <oerjan> !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding (>>=); a >>= b = b a; main = print $ do x <- 3; y <- 4; x + y
02:44:10 <oerjan> !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding ((>>=)); a >>= b = b a; main = print $ do x <- 3; y <- 4; x + y
02:44:31 <oerjan> !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding ((>>=)); a >>= b = b a; main = print $ do x <- 3; y <- 4; x + y
03:00:38 <elliott> Java is literally intolerable.
03:01:37 <monqy> are there any jvm languages worth using
03:02:42 <elliott> monqy: it isn't even the language that's giving me pain
03:03:39 <monqy> if it's the ide, don't use the ide, but then the language gives you pain, at which point fix that???
03:04:44 <elliott> monqy: it's the combination of ide and build system
03:04:51 <oklofok> quick, what's the last word that pops into your head
03:05:17 <monqy> my words are still popping
03:05:19 <monqy> when will they stop
03:05:31 <oklofok> i hope he didn't type that in and quickly shoot himself before anything else did
03:13:09 <lambdabot> mueval-core: internal error: PAP object entered!
03:14:02 <elliott> IM STAB A FORK THROUGH THE CHEST OF JAVA
03:15:26 -!- CakeProphet has quit (Ping timeout: 252 seconds).
03:21:15 <elliott> "Develop with pleasure!" --IDEA
03:30:43 -!- azaq23 has quit (Ping timeout: 276 seconds).
03:41:48 <elliott> monqy: oh i found out why people like IDEA
03:42:01 <monqy> does it pay them money
03:42:09 <coppro> elliott: what is the prefix ??
03:42:22 <elliott> monqy: it might be slow and weird, but it works with maven without idiocy :D
03:42:25 <elliott> coppro: oerjan already told you
03:42:40 <elliott> coppro: implicit parameter
03:42:40 <monqy> elliott: and why do people like maven
03:43:04 <elliott> monqy: it might be weird and verbose, but it does stupid java things for you without (much) idiocy
03:43:06 <coppro> elliott what does that do
03:43:15 <elliott> coppro: it does nothing, it's a language feature
03:44:38 -!- ruku56021 has joined.
03:45:17 <coppro> i am ambivalent about this extensions
03:45:48 -!- ruku56021 has left.
03:48:03 <oerjan> > let f = ?x in let ?x = 3 in f
03:48:23 <lambdabot> mueval-core: internal error: PAP object entered!
03:50:38 <coppro> elliott: there is no way to provide a default value for an implicit parameter?
03:51:11 <elliott> main = let ?foo = default in realMain
03:52:07 <elliott> so you can do ?foo <- x? :D
03:52:07 <oerjan> > do let ?foo = 3; [?foo]
03:52:08 <lambdabot> The last statement in a 'do' construct must be an ...
03:52:26 <oerjan> > do let {?foo = 3}; [?foo]
03:52:48 <oerjan> the let block wasn't ending
03:53:47 <oerjan> i don't think you can do ?foo <- x, since that's desugared into lambda
03:54:05 <oerjan> > do ?foo <- [3]; [?foo]
03:54:05 <lambdabot> <no location info>: Parse error in pattern
03:54:07 <coppro> elliott: I mean that if I have a function with an implicit parameter, I cannot give it a default right?
03:54:13 <coppro> the calling context must have it declared at some level?
03:54:25 <elliott> coppro: sure, but the question seems to imply some confusion to me
03:54:37 <coppro> elliott: I was just asking for clarification
03:55:01 <coppro> elliott: because the docs give an implicit-pameter version of sort and I wanted to make sure it wasn't drop-in replaceable
03:55:16 <lambdabot> <no location info>: parse error on input `='
03:55:32 <elliott> I'm not sure why implicit parameters exist, tbh
03:55:53 <coppro> I'm not really partial to them myself
03:56:00 <coppro> they would be nice as a sort of 'named argument' thing
03:57:10 <oerjan> they're supposed to be a way to pass configuration without making your code all monadic
03:58:01 <coppro> that smells of an excuse to retain technical purity
03:58:19 <coppro> while introducing all the issues of global state
03:58:48 <oerjan> it's not truly global, you can redefine implicit parameters in different calls
03:59:53 <coppro> yeah, and they only affect calls later in the stack
04:00:00 <coppro> I still wouldn't want to use it for that though
04:00:12 * elliott has never used them apart from to make lambdabot give nicer signatures for examples.
04:00:52 <elliott> Why didn't I use IntelliJ IDEA from the start, this is so much less painful.
04:02:06 <coppro> elliott: it is magical ice of the face
04:02:43 <oerjan> oleg et al. made a different method to put configurations in typeclasses, which uses a horrible hack passing through the ffi to support inserting arbitrary runtime values. it's in the reflection package on hackage.
04:02:44 <coppro> you see, face magice is notable for its complete lack of zepto
04:03:09 <coppro> your problem, lack of zepto, was probably caused by it
04:04:01 <lambdabot> Language.Haskell.TH reify :: Name -> Q Info
04:04:01 <lambdabot> Language.Haskell.TH.Syntax reify :: Name -> Q Info
04:04:01 <lambdabot> Language.Haskell.TH.Syntax qReify :: Quasi m => Name -> m Info
04:04:13 <elliott> http://hackage.haskell.org/packages/archive/reflection/0.4.0/doc/html/Data-Reflection.html
04:04:36 <monqy> reify :: a -> (forall s. Reifies s a => Proxy s -> w) -> w
04:05:30 <oerjan> that part is rather elegant, but the horrible hack to get around ghc's lack of any way to put runtime values directly into typeclasses, not so much.
04:06:21 <monqy> a Functional Pearl
04:08:32 <elliott> oerjan: what does that actually mean, runtime values directly into typeclasses?
04:08:52 <elliott> Behold my ugly, heavy iron: http://i.imgur.com/PkWCv.png
04:09:18 <oerjan> in pure haskell there is no way to make a new class instance whose methods depend on a runtime value
04:09:34 <monqy> this abstract is funky
04:09:40 <elliott> oerjan: that's as easy as just unsafePerformIO (readIORef globalIORef) isn't it
04:09:48 <elliott> I mean, sure, /ugly/, but not _that_ ugly
04:09:52 <monqy> problem is common in all software systems, but particularly acute
04:09:52 <monqy> in Haskell, where currently the most popular solution relies on un-
04:09:52 <monqy> safe operations and compiler pragmas.
04:09:52 <monqy> We solve the configurations problem in Haskell using only sta- ble and widely implemented language features like the type-class system.
04:10:16 <oerjan> elliott: well it's ridiculously inefficient if you want to many reifications :P
04:10:37 <monqy> this makes it sound so clean
04:10:59 <oerjan> like if you want to do modulo arithmetic with many different moduli in the way the paper shows
04:11:51 <monqy> ok where does it do the horrible ugly ffi stuff
04:12:41 <oerjan> to handle an arbitrary value it makes an ffi pointer to the value, then converts that pointer into a string
04:12:57 <oerjan> then encodes the string in the type system
04:14:25 <oerjan> which then gives a type which has the right Reifies instance to reconstruct the string, convert back to the pointer, and then extract the value :P
04:14:45 <oerjan> and of course the ffi part uses unsafePerformIO
04:15:43 -!- xxxx has joined.
04:16:14 <elliott> [Haskell-cafe] Type checking oddity -- maybe my own confusion oleg at okmij.org
04:20:17 <oerjan> elliott: the thing is, afaict there is almost certainly a way to do this type wrapping _directly_ in ghc core. but iiuc ghc doesn't currently have a way to compile from core format...
04:20:21 -!- zzo38 has joined.
04:20:56 -!- xxxx has quit (Quit: Leaving.).
04:31:50 -!- elliott has quit (Remote host closed the connection).
04:35:50 * Sgeo has actally held his laptop like that :/
04:35:59 -!- elliott has joined.
04:36:30 <elliott> I don't suppose there are any Maven experts that haven't answered previously just hanging around :)
04:40:38 -!- oerjan has quit (Quit: Good night).
04:42:22 <quintopia> so it seems it doesnt take randall long to go from saying "i want to make cancer jokes" to making things that aren't really jokes but are definitely about cancer...
04:43:30 -!- azaq23 has joined.
04:45:46 <fizzie> He said "talk (and draw comics) about stuff", not "make jokes".
04:46:18 <elliott> fizzie: I bet you're a total Maven expert.
04:46:33 <fizzie> (There's a "new blog post" link on at least the m.xkcd.com comic page, otherwise I wouldn't have noticed.)
04:46:51 <fizzie> Mav-pert. Per-vert. No, I'm really not.
04:47:05 <elliott> Not even the LITTLEST bit????
04:47:19 <quintopia> fizzie: sorry i didn't mean to imply that a humor comic strip should be jokes
04:48:07 <fizzie> Not even the. I know about some projects that use Maven, but I've never even taken a look.
04:48:21 <elliott> fizzie: SOOOOOOOOOOOOO LAAAAAAAAAAME
04:50:20 <elliott> I can't believe this is non-trivial >_<
04:55:49 <Sgeo> I'm not sure which I like more, Homestuck music or some Doctor Who music
04:56:02 <Sgeo> http://www.youtube.com/watch?v=I80pc9jZ_t8 (The Pandorica Opens spoilers)
05:01:24 <elliott> "I use XML for complex config, and haven't gotten very many complaints from it. Nothing like the YML issues Permissions and GM cause."
05:01:33 <elliott> ah yes; XML is much simpler than YAML
05:09:37 -!- cheater_ has joined.
05:21:11 -!- cheater_ has quit (Ping timeout: 255 seconds).
05:24:22 -!- pingveno has quit (Read error: Operation timed out).
05:26:08 -!- olsner has quit (Ping timeout: 255 seconds).
05:27:02 -!- Lymee has quit (Ping timeout: 255 seconds).
05:28:36 -!- pingveno has joined.
05:31:59 <zzo38> I have checked what happens when sending a message from the UNIX mail account at FreeGeek to the internet (I used Mailinator service to test). What happens is the from address is specified as black@beryllium.shop.lan (which is not a valid internet email address)
05:32:13 <zzo38> I told them to use telephone, though, so it is OK.
05:33:39 <Sgeo> zzo38, not this FreeGeek? http://www.freegeek.org/
05:33:58 <zzo38> Correct, not that FreeGeek. It is this FreeGeek: http://www.freegeekvancouver.org/
05:34:37 <coppro> Sgeo: you're a bit late on linking that here
05:34:50 <coppro> Sgeo: I linked it a few days ago
05:35:07 <Sgeo> I'm only linking it because it made no sense as being something that zzo38 was talking about
05:35:15 <Sgeo> But zzo38's thing is the same sort of thing
05:35:50 <coppro> I love that they included the awesome speech
05:36:31 <Sgeo> The speech is kind of [spoiler] given the later context
05:37:09 <coppro> it doesn't spoil any major twists
05:37:36 <Sgeo> No, I don't mean that it's a spoiler, just that later events in the episode kind of ...
05:38:04 <zzo38> I fixed some things for them at FreeGeek, including fixing the drive wiping script, and I use TeX to print out stuff they need.
05:39:18 -!- olsner has joined.
05:39:30 <Sgeo> Wow. Headphones in my ownership tend to die within days, apparently
05:43:15 <Sgeo> Is there such a thing as headphones that don't get damaged easily?
05:45:03 <elliott> yes, headphones you don't own
05:46:44 <fizzie> Perhaps you are just using them wrong?
05:47:08 <Sgeo> I need headphones that can take the abuse
05:47:31 <Sgeo> Hmm, now I'm wondering if I could replace my HD with solid-state
05:47:46 <fizzie> Or get a box that can take the abuse, and put them in that.
05:48:29 <fizzie> It also doubles as the canonical paper bag to hide your FACE in.
05:48:40 <monqy> sgeo has an ugly face
05:49:11 <monqy> I thought I was building off of a sort of joke I would make, not spoiling one of the sort someone else would make
05:50:10 <fizzie> My personal problem with 'phones is that if I ever accidentally leave the cord visible, the cat's attacking it within ten minutes.
05:50:39 * pikhq_ did not realise just how absurd modem autonegotiation is...
05:50:58 <pikhq_> It goes down to 300 baud.
05:51:29 <pikhq_> In precisely the same format as the second model of modem.
05:51:46 <Sgeo> second model? What about the first?
05:51:56 <pikhq_> Sgeo: 110 baud. Can't negotiate down to that.
05:53:10 <pikhq_> Incidentally, it's a bit too slow to get TCP working.
05:53:18 <pikhq_> (though IP works just fine)
05:54:44 <pikhq_> And, of course, you could dial into a terminal server.
05:54:55 <pikhq_> One with a modern, off-the-shelf 56k modem.
05:55:01 <pikhq_> Using a 300 baud modem from 1962.
06:03:21 <fizzie> I wonder how well that works in practice with the specialized v.90/v.92 uplink hardware, which aren't off-the-shelf modems. (Two nominally "56k" modems can't get that speed when connecting to each other; you can only get 56k downlink when connecting to something that has an all-digital connection to the telephone service.)
06:03:38 <fizzie> There were all kinds of modem incompatibility issues in the dialup days already.
06:10:06 <pikhq_> fizzie: Actually, in order to work *at all* a modem has to support 300 baud.
06:10:31 <pikhq_> fizzie: The autonegotiation works by initiating a connection in 300 baud, and then communicating what rates they support.
06:11:21 <fizzie> Well, there is that. I don't envy modem-makers, what with all the different modulation schemes and all.
06:16:49 <Sgeo> Maybe I should use wireless headphones?
06:17:45 <fizzie> Wikipedia's view on the speed negotiation is a bit different, though.
06:18:06 <fizzie> http://en.wikipedia.org/wiki/Microcom_Networking_Protocol#MNP_6
06:18:09 <fizzie> "A less notable addition to MNP 6 was Universal Link Negotiation. With the introduction of additional modulation modes, notably v.32 and later additions, the modems on either end of the link had to spend an increasing amount of time negotiating a common standard. For instance, a v.32bis modem would first send tones into the line to try to get a 14.4 link; if that failed after a time, it would try 9600, 2400 and finally 1200 bit/s. Since each of these standards
06:18:09 <fizzie> defined a minimum period of time to "try" for a link, the delay grew over 10 seconds.
06:18:09 <fizzie> ULN avoided this delay by always negotiating the link at 2400 bit/s with no error-correction turned on. Although this eliminated compatibility with older 1200 bit/s modems, by this point in time they were extremely rare. Once the connection was made, which occurred quickly, both modems sent a small identification string to the remote modem. Both modems then examined the string and selected the fastest common mode. The caller then re-negotiated once at that high
06:18:25 <fizzie> (I make no claims of having any knowledge about this.)
06:19:19 <fizzie> Maybe the later LAPM thing does autonegotiation like that.
06:32:05 -!- foocraft has quit (Quit: if you're going....to san. fran. cisco!!!).
06:39:41 -!- monqy has quit (Quit: hello).
06:43:21 <zzo38> The speakers in my computer is a bit broken
06:44:42 <fizzie> It toggles a bit here and there, I suppose.
06:45:28 <zzo38> Now I put my own D&D character and also my brother's D&D character into the computer. I still don't have my brother's D&D character's name yet.
06:46:10 <zzo38> My character helped his character to escape from an island of slaves by going on a merchant ship.
06:47:15 <zzo38> Do you think it is a good story?
06:50:04 <zzo38> http://zzo38computer.cjb.net/dnd/recording/level20.tex
06:53:09 <elliott> fizzie: OK Java has just done something so mind-boggling to me that I absolutely must speak to someone with a basic knowledge of Java to confirm that this is the case do you know someone.
06:55:25 <fizzie> I've heard of Java, doesn't it have something to do with coffee?
06:55:48 <fizzie> (In that when you see some Java, you'll spit your coffee on the screen.)
06:55:54 <elliott> Is Map<Set<String>, String> seriously incompatible with HashMap<HashSet<String>, String> because Set<String> =/= HashSet<String>?
06:56:08 <elliott> And doesn't that completely defeat the point of using abstract interfaces?!
06:59:13 <fizzie> It is, yes, but HashMap<HashSet<String>, String> is compatible with Map<? extends Set<String>, String>.
07:00:20 <elliott> fizzie: Yeah, but I'm not typing "? extends Set<String>" into the type signature of a local variable that I instantiate to a concrete type on the same line.
07:00:23 <elliott> That's just too ridiculous.
07:01:18 <fizzie> I wouldn't necessarily bother using the abstract names on things that are instantiated on the same line, anyway. It's still one "place" to change, even if it's a bit bad.
07:01:43 <fizzie> Well, at least when they cause problems, anyway.
07:03:53 <elliott> I don't understand your second sentence there.
07:06:45 <fizzie> When you have a "HashMap<A,B> foo = new HashMap<A,B>();", it's still just one line to edit if you change from HashMaps to TreeMaps for some reason. Though on a second look I guess your case is a bit different, since it's the "inner" type you didn't want to fix in place.
07:07:45 <elliott> @SuppressWarnings("unchecked") List<String> commandAliases = (List<String>) command.get("aliases");
07:07:45 <elliott> I wonder what this even compiles down to.
07:07:52 <elliott> I mean, it has no concrete interface to go by.
07:09:12 <fizzie> Now that I look at it, why can't you just have "Map<Set<String>, String> foo = new HashMap<Set<String>, String>();" as your concrete-typed local variable? You can use HashSet<String>s as the keys of that map just fine then.
07:10:20 <zzo38> Someone in here (I think it was quintopia) asked me to write document of FurryScript in esolang wiki. Now I did it is User:Zzo38/FurryScript
07:12:33 <zzo38> (Document is currently incomplete)
07:13:11 <zzo38> If you have more script, type on User_talk:Zzo38/FurryScript and I might add the script into my collection
07:13:26 <elliott> fizzie: Oh, you can? Cool.
07:21:52 <zzo38> I have a idea of format of playing pokemon card. Both decks are made at random (with some constraints). Second time, swap decks. At beginning of game after picking up 7 cards, bet secretly who win, and separately bet method of winning (regardless of winner). When a side card is picked up, previous bet is revealed and both players bet secretly method of winning. Each correct bet +1 point, winner +3 points, overmate +2 each, tie +1 each player.
07:23:20 <zzo38> After 2 duels, make up random deck again but players have choice to retain some cards from the 120 pooled cards you can pick. First player 60 points wins a match.
07:29:04 <zzo38> If both players make or exceed 60 at the same time, whoever has more points wins the match. If both players make or exceed 60 at same time and also have the same number of points in total, the match ends in a tie. If no player makes at least 59 points in 20 duels, the match ends in a draw (if you make 59 you can play once more hopefully you can win)
07:29:43 <zzo38> Sorry, it should be 30 duels or 40 duels, not 20 duels
07:31:43 <zzo38> And you refrain from betting if one or both player has no more side cards remaining.
07:33:03 <zzo38> Bet who wins: * Self * Opponent * Tie
07:33:43 <zzo38> Bet method of win: * Zero side cards remain * No opponent's card in play * No opponent's card in deck * Simultaneous no side card and no card in opponent's play * Tie game
07:35:23 <zzo38> elliott: Are you answering me? If so, which one? Nothing after your previous message, I type questions!
07:35:32 <zzo38> It is not questions.
07:39:42 -!- cheater_ has joined.
07:40:29 -!- cheater_ has quit (Client Quit).
07:40:34 -!- cheater_ has joined.
07:40:48 <zzo38> Method of overmate: If you take more side cards than you have, each side card you would take extra is worth one overmate. If you run out of side card and opponent no cards in play simultaneous, is worth one overmate. If winning by no side card or no opponent's card in play, you score one overmate for each player with zero cards in draw pile.
07:41:10 <zzo38> That makes you can have potentially a maximum of eight overmate.
07:42:04 <zzo38> These betting and overmate can affect the strategy and bluff and other aspects of the game!!
08:03:16 -!- Phantom_Hoover has joined.
08:04:40 -!- zzo38 has quit (Remote host closed the connection).
08:20:59 -!- Taneb has joined.
08:49:42 -!- elliott has quit (Remote host closed the connection).
08:50:20 -!- elliott has joined.
08:50:23 -!- elliott has quit (Changing host).
08:50:23 -!- elliott has joined.
09:01:29 -!- elliott has quit (Remote host closed the connection).
09:01:54 -!- elliott has joined.
09:11:21 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
09:11:35 -!- rodgort has joined.
09:23:44 -!- cheater_ has quit (Ping timeout: 255 seconds).
09:27:52 -!- cheater_ has joined.
09:30:49 -!- CakeProphet has joined.
09:31:42 <CakeProphet> why on earth is TypeSynonymInstances not default for GHC...
09:32:01 <Taneb> Because life is not perfect
09:41:27 <Taneb> An esolang with only the keyword "Nicked"
09:42:11 <CakeProphet> I believe that would imply that the set of valid programs is countable.
09:42:29 <Taneb> Nicked has two meanings
09:42:34 <Taneb> stolen and arrested
09:42:46 <CakeProphet> You can map each program to a natural number by counting the number of "Nicked" substrings.
09:43:52 <Taneb> I'm pretty sure most languages' set of valid programs are countable
09:44:19 <Taneb> Brainfuck, for example, each character can be converted into a base-8 digit
09:44:48 <CakeProphet> I don't know. It gets more complicated to map each program to a natural number with languages like C.
09:45:06 <CakeProphet> but... I have difficulties determining what is countable and what isn't...
09:45:12 <fizzie> No it doesn't, as long as you don't need each natural number to be a valid program.
09:45:38 <CakeProphet> but then you haven't found the set of valid programs...
09:45:55 <CakeProphet> yeah the number of valid strings in an alphabet is countable.
09:46:21 <lambdabot> Couldn't match expected type `[[GHC.Types.Char]]
09:46:31 <lambdabot> ["","a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","a...
09:48:58 <Taneb> By definition, any Turing-Complete program can be translated into Brainfuck
09:49:15 <Taneb> Therefore, any Turing-Complete language has a countable number of prograns
09:49:22 <CakeProphet> but it's possible that each valid C program can be assigned a natural number. I'm just not really sure what kind of algorithm would apply the mapping...
09:49:37 <CakeProphet> it seems that for each subexpression there are infinitely many variations, so it can't be counted.
09:49:52 <Taneb> There are infinitely many integers
09:50:14 <elliott> <CakeProphet> but it's possible that each valid C program can be assigned a natural number. I'm just not really sure what kind of algorithm would apply the mapping...
09:50:15 <CakeProphet> Taneb: is that true? I don't think a C to brainfuck translator has ever been made.
09:50:32 <elliott> argh, Bifro has been removed
09:50:48 <CakeProphet> so, is it true that you can translate every language to another?
09:50:54 <elliott> (I wrote a computable BF<->nat bijection once)
09:50:58 <Taneb> Every Turing-Complete part
09:51:08 <elliott> CakeProphet: Dude, being able to run other Turing-complete languages is pretty much the DEFINITION of Turing-completeness.
09:51:21 <Taneb> Excluding file-manipulation and IO and stuff
09:51:25 <CakeProphet> that's not the same thing as being translatable.
09:51:42 <elliott> It is in all non-contrived examples.
09:51:53 <elliott> For contrived examples see http://esolangs.org/wiki/%E2%84%92.
09:52:19 <CakeProphet> anyways, I'm not claiming to know the answer. I'm just reasoning by intuition.
09:52:39 <Taneb> Intuition doesn't really work with countability
09:52:50 <CakeProphet> this is probably why I am terrible at that. :P
09:53:20 <Taneb> Right. Mapping brainfuck programs to integers is trivial
09:53:28 <elliott> Taneb: It's not quite trivial if you want a bijection
09:53:48 <elliott> Although finding an encoding that doesn't blow up into massive numbers for anything with nested loops is
09:54:26 <Taneb> Just convert each character to a base-8 digit! Integer mapping! Unique number for each programming!
09:55:28 <Taneb> And, as, by definition, any turing-complete language can simulate any other, all turing-complete languages can be simulated by brainfuck
09:55:50 <elliott> [ is not a valid brainfuck program
09:55:56 <elliott> Nor is anything without balanced brackets
09:56:14 <elliott> Don't bother continuing the train of thought, I already spent a day doing so and thus was produced Bifro :-P
09:56:15 <CakeProphet> > filter (even . length . filter (`elem` "[]")) $ (`replicateM` "+-[]<>.,") =<< [0..]
09:56:17 <lambdabot> ["","+","-","<",">",".",",","++","+-","+<","+>","+.","+,","-+","--","-<","-...
09:56:28 <Deewiant> That's why you should use befunge instead, no such thing as an invalid program
09:56:32 <elliott> CakeProphet: [ is not a valid brainfuck program. ] is not a valid brainfuck program.
09:56:38 <elliott> CakeProphet: oerjan also already made a oneliner to do it
09:57:00 <elliott> It generates even larger naturals, however, and isn't constant-time to map prog->nat
09:57:08 <elliott> Well, not even the other way, but that's because of the choice of data structure
09:57:43 <Taneb> Just because it allows invalid programs doesn't make the system invalid
09:57:53 <elliott> Taneb: It makes it not a bijection
09:58:00 <CakeProphet> > filter (\x -> (length . filter (=='[') $ x) == (length . filter (==']') $ x)) $ (`replicateM` "+-[]<>.,") =<< [0..]
09:58:02 <lambdabot> ["","+","-","<",">",".",",","++","+-","+<","+>","+.","+,","-+","--","-<","-...
09:58:15 <elliott> Taneb: Because if the non-program [ maps to 9, then what program does 9 map to?
09:58:19 <fizzie> And as long as you don't need a bijection, the same thing in C is equally trivial, just with a larger alphabet.
09:58:20 <Taneb> But still countable
09:59:24 <Taneb> Comments do not affect the program.
09:59:43 <elliott> Neither does replacing quicksort with mergesort
09:59:48 <CakeProphet> elliott: but what you are saying is that I can make a Java to bf translator. It is completely theoretically possible?
09:59:52 <elliott> You think those should produce equal numbers too?
10:00:04 <elliott> CakeProphet: I am rather disturbed that you haven't realised this earlier.
10:00:08 <elliott> CakeProphet: Obviously this is ignoring I/O issues.
10:00:13 <elliott> CakeProphet: Ask ais about gcc-bf.
10:00:22 <Taneb> Any ASCII string can be converted into a base-128 number
10:00:52 <CakeProphet> Taneb: that doens't really prove anything about programming languages.
10:01:37 <Taneb> As the vast majority of programming languages use ASCII, there must be less valid programs for a particular language than there are valid ASCII strings
10:01:56 <CakeProphet> because the valid programs of a language are a subset of this.
10:02:36 <CakeProphet> elliott: but isn't ignoring IO issues a huge problem in writing a complete translator?
10:02:44 <elliott> Hmm, I need Lymia here so I can get her to coerce the right people to expose something through the Bukkit API
10:02:53 <elliott> CakeProphet: IO is not part of the definition of computational classes.
10:03:18 <fizzie> elliott: "Besides, with PSOX..."
10:03:23 <elliott> CakeProphet: Nothing's stopping you giving brainfuck file capabilities, say, by feeding its input and output to a program ... yeah, what fizzie said.
10:03:31 <elliott> Honestly you should know this off by heart. :p
10:03:41 <CakeProphet> okay, but it's still impossible to write a Java to bf translator because of that.
10:03:51 <CakeProphet> because Java can read from multiple input and output sources.
10:04:31 <elliott> You could have a Java implementation that errored out on every file operation.
10:04:33 <Taneb> That's as simple as mapping rational numbers to integers
10:04:47 <elliott> Anyway, you're confusing library and core language.
10:04:58 <elliott> Not "ha"; that's how Microsoft got Windows declared POSIX-compliant.
10:06:19 <CakeProphet> Actually, I think you're confusing "a Java to bf translator" with whatever you think I'm talking about.
10:07:01 <Taneb> I'm feeling bored, I may install Haiku
10:07:54 <fizzie> Taneb: Install Debian GNU/Hurd, they're going to give it an "official release" status in Debian wheezy, I hear.
10:10:18 <CakeProphet> so, I believe a translator is possible if the input string is known at translation.
10:10:54 <CakeProphet> ah, no, because Java can also write to multiple output sources.
10:11:40 <fizzie> Java's class library can also speak to the network and open windows on some screens, but all those are just boring practical details that you can ignore and/or work around.
10:11:58 <fizzie> If you say "theoretically possible", it's not very surprising people interpret you in a theoretical computer science context.
10:12:02 <elliott> Like I said, you can map all that to the byte input and output facilities BF has.
10:12:06 <elliott> It's all a matter of interpretation.
10:12:09 <CakeProphet> "boring practical details you can ignore" means that the kind of translator I'm talking about is impossible.
10:12:18 <elliott> * [PoppaVic] (~pops@unaffiliated/poppavic): It's all translators and context
10:12:24 <elliott> It's all translators and context, that's what it is.
10:12:42 <elliott> CakeProphet: It isn't; you just need to interpret the input and output streams unconventionally.
10:12:58 <elliott> Rather than a console, you just need to interpret it as an IO layer.
10:13:04 <elliott> It's nothing special/interesting/theoretically important.
10:13:08 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
10:13:11 <CakeProphet> elliott: yes, there needs to be a seperate program to map the input and output streams to locations.
10:13:24 -!- rodgort has joined.
10:13:36 <CakeProphet> because for bf, the inputs all have to be concatenated together, as do the outputs. There is a seperate program that has to sort out what goes where...
10:13:44 <CakeProphet> which means that bf cannot do everything Java can do.
10:13:54 <elliott> A console is a "separate program" in that sense too.
10:14:15 <elliott> Sorry, but if you're going to use the word "theoretically", you can't jumble it up with vagueness related to the various minutiae of operating systems.
10:14:34 <elliott> Such a translator is perfectly possible, it would just require another program to implement /on Unix/.
10:14:39 <elliott> You said "theoretically", so Unix is irrelevant.
10:14:53 <elliott> It is possible to translate Java programs to brainfuck programs.
10:15:10 <CakeProphet> okay, but why is there no theoretical way to talk about input and output to multiple sources?
10:15:46 <elliott> When did I say there isn't? The question is completely irrelevant to the question of whether there exists such a translator.
10:15:52 <Taneb> For any Turing-equivalent machine m, it is possible to map any initialization for m to a unique integer.
10:16:49 <Taneb> Can we agree that true?
10:17:45 -!- zzo38 has joined.
10:17:55 <CakeProphet> what is it that makes a Java program identical to a bf program for the purposes of translation?
10:18:35 <Taneb> Being computationally equivalent to a Turing machine
10:18:43 <CakeProphet> intuitively, at least, I would that they perform the same computations.
10:18:47 <elliott> Taneb: universal turing machine
10:18:51 <elliott> CakeProphet: do you know the definition of turing complete
10:19:08 <elliott> this article might help clear up any questions you have: http://esolangs.org/wiki/Turing-complete
10:19:17 <elliott> the first paragraph is idiotic
10:19:24 <Taneb> http://en.wikipedia.org/wiki/Turing_completeness
10:19:27 <elliott> heh, i guessed right, it's cpressey's fault
10:19:48 <elliott> Taneb: that might be better, yes.
10:20:05 <CakeProphet> okay, so I certainly belive that bf and Java can compute anything a universal Turing Machine can.
10:20:24 <CakeProphet> but... I do not believe that can be translated perfectly. A complete mapping of valid Java programs to bf programs.
10:20:35 <elliott> then you are wrong. have a nice day.
10:21:02 <CakeProphet> because I cannot translate netbeans to bf.
10:21:07 <Taneb> You can't say that, you have to say why he is wrong
10:21:45 <elliott> Taneb: I would, but he's expecting explanations like a teacher would give, while arguing like a peer, and I'm busy
10:22:15 <Taneb> I've got the time, but not the know-how
10:22:34 <elliott> We just need oerjan to out-grumpy everyone until they shut up and agree.
10:22:47 <Taneb> For any algorithm that can be defined in Java, that algorithm can be defined in brainfuck
10:23:08 <Taneb> And, indeed, Lazy K or Befunge-98
10:23:11 <CakeProphet> hmmm, okay, I think I understand actually.
10:23:11 <fizzie> CakeProphet: Seriously, if you talk about "translating in theory", then people are going to take the computational-complexity view on this. If you say something like "Java runtime has all kinds of IO-related features that Brainfuck implementations don't tend to have, and the Brainfuck language doesn't exactly define", then I don't think you'll get so many people disagreeing.
10:23:41 <fizzie> (Though the latter's a really inane statement to make.)
10:23:42 <CakeProphet> no, I was not originally talking about theory, it came up as part of the conversation. I am saying that you cannot translate to Jave to bf perfectly so that the same thing happens despite a change in language.
10:24:01 <CakeProphet> but, I understand, that for theoretical purposes, where the IO goes does not matter.
10:24:06 <CakeProphet> the only thing that is important is the computations.
10:24:39 <elliott> (for saying what i would have, but better)
10:24:53 <CakeProphet> and that Java programs themselves rely on other programs to put the input and output of programs into different locations..
10:25:32 <elliott> CakeProphet: what you do not realise is that brainfuck's IO perfectly admits _interpretations_ that allow it to do just as much as Java.
10:25:43 <elliott> there is nothing saying that the input stream has to be hooked up directly to the user, or the output stream directly to the user.
10:26:12 <CakeProphet> but, if two programs in two different language compute the same thing, shouldn't they produce the same output?
10:26:12 <fizzie> Java-the-language doesn't really define any form of IO, anyway. There's Java-the-class-library (also called Java) which does, but the part that's called "Java language specification" doesn't.
10:26:15 <elliott> well, what you are saying is so completely vague that I have no idea how to respond to it apart from that.
10:26:36 <Taneb> Turing machines are the archetype of turing completeness, and yet have no IO
10:27:06 <Taneb> I is manipulating the data tape before runtime and O is looking at the data type after the program halts
10:28:18 <CakeProphet> but I still feel that there should be some way to explain why Java programs cannot perfectly translate to bf and produce the same result...
10:28:27 <Phantom_Hoover> <CakeProphet> but, if two programs in two different language compute the same thing, shouldn't they produce the same output?
10:28:27 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
10:28:45 <Phantom_Hoover> I *think*, but don't quote me on this, that it can be phrased in terms of bijections.
10:29:16 <elliott> Phantom_Hoover: that is basically what i was trying to convey with my interpretation-of-IO talk.
10:29:23 <elliott> PSOX being a "real-world" example.
10:29:33 <elliott> CakeProphet: There is no way because they can.
10:30:08 <Taneb> PSOX? Phantasy Star Online for XBox?
10:30:09 <CakeProphet> I cannot be convinced until there is a bf program that is equivalent to netbeans.
10:30:28 <elliott> CakeProphet: Enjoy wallowing in your self-created ignorance then?
10:30:30 <Phantom_Hoover> Taneb, check the wiki; also years of logs because it turned into a Sgeo-meme.
10:30:48 <Taneb> CakeProphet:The framework or the IDE?
10:31:38 <Phantom_Hoover> FFS, is the term for computational equivalence not 'computational equivalence'?
10:31:39 <fizzie> Deewiant: A rare South-American insect.
10:32:07 <CakeProphet> but I was never really talking about computational equivalence...
10:32:09 <zzo38> Deewiant: No cheating please.
10:32:28 <elliott> Deewiant: Yeah, don't you cheat
10:32:30 <CakeProphet> I understand that all Java programs are computationally equivalent to some BF program.
10:33:16 <CakeProphet> but I am specifically saying that the BF language, by itself, cannot be used to create an IDE, while Java can.
10:33:19 <zzo38> Or maybe I just have the wront fonts or encoding selected.
10:33:31 <CakeProphet> and that there is something that makes these languages non-equivalent for the purposes of translation.
10:33:32 <fizzie> Deewiant: Stop that incessant cheating!
10:33:43 <elliott> Deewiant: CHEATING IS FUCKING UNACCEPTABLE
10:34:09 <Deewiant> I think I'll just keep doing what I was doing
10:34:23 -!- Taneb has changed nick to TanebAway.
10:34:24 <elliott> Deewiant: I have no idea what zzo is talking about, I just felt like accusing you
10:34:40 <fizzie> Deewiant: You're somehow so... well-accusable.
10:34:41 <Deewiant> I do know what he's talking about
10:34:43 <zzo38> It is also possible I am wrong
10:34:55 <zzo38> Due to wrong fonts or encoding
10:35:02 <CakeProphet> otherwise I could run a magical program that transforms every piece of Java software into a BF program that is exactly the same in every way. I run the BF program, and I can use it to edit text files on my file system.
10:36:13 <elliott> CakeProphet: Your repeated refusal to understand how IO streams can be viewed in different ways and this is the only thing that makes BF IO's normal interpretation different from the Java class library IO's normal interpretation will not make your statements any more relevant, or your objections any more true
10:36:31 <elliott> You should probably focus on trying to understand why you're wrong instead of convincing us we are
10:36:33 <Deewiant> elliott: His point is just that you need a wrapper written in non-BF
10:36:47 <CakeProphet> elliott: I am saying that no one has shown that I am wrong.
10:37:03 <elliott> Deewiant: That's an operating system detail; nothing says the BF streams have to be connected directly to a console
10:37:32 <elliott> Like I said, a Java program could output and take input in PSOX form directly with a console, just as much as a BF interpreter could have PSOX built right in
10:37:34 <CakeProphet> elliott: when have I mentioned a console? I am talking about input and output...
10:38:03 -!- TanebAway has changed nick to Taneb.
10:38:46 <fizzie> As far as I can make out, the point is the "Java runtime has features that Brainfuck implementations don't have, and the Brainfuck standard -- such as it is -- doesn't require" one, but I can't quite figure out why that's a point that would be necessary to make.
10:38:58 <elliott> because it's all he has left?
10:39:16 <CakeProphet> because that point makes a complete translation impossible.
10:39:28 <Taneb> As bf does not have a standard IO implementation, it could be assumed that the IO uses PSOX
10:39:29 <Deewiant> The point is just that you need to distribute something non-BF in the BF environment that implements the Java
10:39:40 <CakeProphet> without relying on a seperate program, yes.
10:39:42 <elliott> Deewiant: You need to distribute something non-BF in the BF environment
10:39:56 <CakeProphet> elliott: and these interpreter will write to different files how?
10:39:56 <Deewiant> elliott: Right, just as you need a JVM in the Java
10:39:58 <Phantom_Hoover> CakeProphet, where does it say in the spec, for instance, that , and . read and write ASCII characters?
10:40:06 <elliott> Deewiant: So that's really not what he's saying
10:40:45 <CakeProphet> ..that isn't what I'm talking about. I haven't even mentioned ASCII.
10:41:00 <Deewiant> . Outputs ASCII code under pointer
10:41:01 <Deewiant> , Reads char and stores ASCII under ptr
10:42:00 <CakeProphet> It is impossible, in one bf program, to output "Hello" to stream A, and "World" to stream B, without fundamentally altering the language.
10:42:05 <elliott> Deewiant: If we go by Müller, BF is sub-Turing and this whole idiocy is irrelevant
10:42:24 <Deewiant> elliott: I figure the difference is just that if you take a standard JVM that's all you need, but if you take a standard BF you need something on top
10:42:27 <elliott> Deewiant: Anyway, you could easily implement a conversion layer on , and . without violating the spec
10:42:34 <Deewiant> elliott: Müller's spec doesn't look sub-Turing
10:42:41 <elliott> Well, OK, but his impls were
10:42:42 <elliott> Deewiant: Sure, but "standard" is purely a cultural/conventional thing
10:42:45 <Phantom_Hoover> CakeProphet, hey, suppose I make an interpreter that writes every other character output to a different stream?
10:42:53 <CakeProphet> this has nothing to do with theoretics. I am saying no practical translator exists. Why is my assertion immediately interpretered as theoretical?
10:43:01 <elliott> Deewiant: CakeProphet cannot prove something mathematically impossible just because of cultural norms
10:43:35 <Phantom_Hoover> elliott, FFS, he has acknowledged that they're computationally equivalent.
10:44:15 <elliott> Phantom_Hoover: Yes, but he's still trying to make a separate point, and that point is wrong
10:44:32 <elliott> CakeProphet: Because you said "theoretically"?
10:44:37 <elliott> CakeProphet: Because you're using absolutes like "cannot"?
10:45:32 <CakeProphet> right, I asked "is it theoretically possible?"
10:45:41 <Taneb> I've completely lost focus on this debate, so I'm going to make a bf interpreter piping all IO through PSOX
10:45:43 <elliott> If your statement is "You can't expect a translated Java-to-BF program to have the same IO semantics when interpreted by an implementation that has different IO semantics in practice"... well, that's literally a direct tautology, and also not what you're saying.
10:45:45 <elliott> CakeProphet: Yes, it _is_.
10:46:06 <fizzie> CakeProphet: Also defining in which "streams" (whatever they are) the BF output goes is very much not "fundamentally altering the language", since the language doesn't say where it goes.
10:46:12 <fizzie> I think I'm done here too.
10:46:13 <elliott> You are wrong and until you accept you are wrong and try to understand why, you can continue believing whatever you want as far as I'm concerned.
10:46:27 <elliott> You'll still be wrong, though.
10:46:35 <CakeProphet> fizzie: but in Java, the language does say where the streams go.
10:47:03 <fizzie> CakeProphet: The "Java Language Specification" does not even say how to make any output, so...
10:47:25 <fizzie> The "Java" system does, yes.
10:47:27 <Deewiant> CakeProphet: Those streams can work just as well in the BF, with a wrapper that handles it.
10:48:54 <fizzie> You can compare the Java Language Specification document, which -- I mean, just read the name -- defines the "language itself", with the rather less formal BF language specification.
10:49:12 <Taneb> A bf interpreter with PSOX is suggested right in the PSOX readme
10:49:14 <CakeProphet> okay, the output has to change in order to accomodate the wrapper.
10:49:36 <Taneb> "python PSOX.py bf somebf.bf"
10:49:49 <Deewiant> CakeProphet: Right, but that's internal to the translation process and doesn't matter.
10:49:53 <elliott> Taneb: Well, yeah, it /is/ Sgeo's pet vapourware
10:50:21 -!- elliott has quit (Remote host closed the connection).
10:50:41 <Taneb> I think you just missed him
10:50:53 -!- elliott has joined.
10:51:09 <elliott> Sorry, X messing up again.
10:51:11 <elliott> 10:50:22: <Phantom_Hoover> elliott, wait, PSOX was vapourware?
10:51:19 <CakeProphet> but doesn't the program have to compute something that is non-equivalent to the source language in order to output data differently?
10:51:31 <elliott> There is, but it was late, and woefully incomplete.
10:52:37 * CakeProphet understands, to an extent, what is being said, but still thinks there is a discrepancy
10:52:38 <Deewiant> CakeProphet: Depends on how you define "compute something that is non-equivalent". If you think printing "please print 'x' to stdout" is computationally nonequivalent to printing "x", then yes.
10:53:54 <elliott> Deewiant: Oh man, that means that your libc introducing another layer of abstraction behind the scenes could cause your interpreter to become "computationally nonequivalent".
10:54:53 <CakeProphet> these differing abstractions require different computations in order to generate the write output.
10:55:19 <Deewiant> Depending on the compiler and compiler flags used, you'll also get different computations.
10:55:31 <fizzie> Deewiant: If those two things are not equivalent, I find it hard to believe a BF method of summing up two numbers in multiple distinct steps could ever be "equivalent" to the "computations" a JVM 'add' instruction does.
10:55:41 <elliott> Deewiant: Also the underlying fabric of the physical universe your computer is in.
10:55:55 <elliott> Deewiant: That's what REALLY drives the computations, after all.
10:56:03 <Deewiant> elliott: Well, the universe we can maybe assume to be constant. :-)
10:56:10 <fizzie> elliott: No, it's YOUR MIND that is IMAGINING the universe that drives it.
10:56:14 <elliott> Deewiant: DON'T BE SO SURE
10:56:24 <Taneb> It's actually my mind
10:56:25 <Deewiant> elliott: Maybe not in practice, but in theory.
10:56:39 <elliott> Deewiant: But I thought CakeProphet was talking about practice now >:)
10:56:55 <Taneb> You are all figments of my imagination
10:57:09 <Taneb> Hence the silly names
10:57:25 <CakeProphet> because the theory is inadequate if it can't describe what is happening in practice.
10:58:24 <Taneb> Gonna make another statement:
10:58:57 <elliott> <Taneb> Four score and seven years ago, ...
10:59:05 <Taneb> Any algorithm that can be encoded in brainfuck can also in executed by Java, and vice versa.
10:59:32 <Taneb> *encoded in, not exexuted by
10:59:53 <Deewiant> Right, they can both output the C code for the algorithm
11:00:20 <Taneb> And they can both run the algorith, if it encoded correctly
11:00:39 <Phantom_Hoover> Well, if it isn't constant, you can assume there are some rules for the inconstancy, which is just another kind of constant.
11:00:39 <zzo38> There is a program compiling brainfuck codes to LLVM. And it can use optimizations of LLVM.
11:02:29 <CakeProphet> I don't believe a translator can determine the output of a Java program that will match the output of a bf program running in the same IO layer...
11:02:48 <Taneb> It makes perfect sense
11:02:54 <Taneb> It's just tricky to implement
11:03:40 <fizzie> None of it makes sense! It's all baloney! Aaaaaah! *sets self on fire, runs to the forest*
11:04:02 <Taneb> See, that's why we can't have nice stuff
11:05:26 <CakeProphet> I don't believe the formation rules of the Java language provide enough information to determine the exact output of a Java program in a way such that a bf program can be constructed that produces the same output.
11:05:34 <Phantom_Hoover> Don't worry, the snow in the forest should put him out.
11:05:59 <elliott> CakeProphet: i'm afraid you've ceased to make any sense
11:06:04 <zzo38> Phantom_Hoover: Oops that is too bad, because now you cannot see because there is no more fire
11:06:15 <CakeProphet> because the output of a Java program is dependent on its environment.
11:06:21 <Phantom_Hoover> Take every output function, translate it into Brainfuck.
11:07:00 <Phantom_Hoover> zzo38, ah, but it's light until like 1 o'clock in the morning in Finland.
11:07:18 <elliott> CakeProphet: indeed, a java program is a function from World to World
11:07:36 <zzo38> Phantom_Hoover: O, then it is OK. I didn't know that at first.
11:07:57 <CakeProphet> so how can a language translator, which is given only the languages and source string, know which output to produce.
11:08:01 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
11:08:39 <zzo38> Is there programs that can convert a native binary into LLVM code?
11:09:03 <Taneb> He's probably studying more than me. I just read Wikipedia from time to time.
11:09:14 <Phantom_Hoover> "I'm a visual thinker which makes me a poor quantum physicist."
11:09:16 <fizzie> Phantom_Hoover: Helsinki at 01am, http://www.flickr.com/photos/ihmis-suski/4722433968/sizes/z/in/photostream/ (at least based on the name)
11:09:34 <CakeProphet> Phantom_Hoover: I don't know. Are you actually holding a conversation with me, or just being condescending?
11:09:54 <Phantom_Hoover> CakeProphet, I'm curious, because I have absolutely no idea what you actually do.
11:10:18 <fizzie> Phantom_Hoover: To some degree, sure. Though only the northern part of the country's actually above the arctic circle and gets the whole "sun does not actually have time to set" thing.
11:10:25 <Phantom_Hoover> Most people here over 18 are doing some form of CS at university.
11:10:35 <fizzie> Phantom_Hoover: Or at least some form of BS.
11:10:57 <elliott> CakeProphet: let's be honest, you've been pretty condescending in assuming that you've proved everyone in here as well as pretty much everyone who has ever done CS fundamentally wrong
11:11:00 <zzo38> Deewiant: OK. Would instruction trace data help? Some instruction trace data (not necessarily all, except in the case of restricted harvard) can be figured out by static analysis.
11:11:26 <Phantom_Hoover> Back when I was just Hoover life was just full of walls and doors and things holding me back.
11:11:38 <CakeProphet> I am seeking to understand a discrepancy that I am seeing between theory and practice.
11:11:56 <Deewiant> zzo38: I don't know, I know almost nothing about libcpu.
11:11:59 <Taneb> You're being overly pedantic!
11:12:16 <Taneb> And things seem wrong to you because you expect them to be wrong!
11:12:42 <elliott> Nothing wrong pedanticism, as long as it's correct
11:13:06 <elliott> Unfortunately the highest layer of pedanticism on this issue definitely states that Java is equivalent to BF :-P
11:16:26 <fizzie> !perl print "Java" eq "BF" ? "equivalent" : "not equivalent"
11:17:02 <Phantom_Hoover> <CakeProphet> I am seeking to understand a discrepancy that I am seeing between theory and practice.
11:17:26 <Phantom_Hoover> You just don't understand what computational equivalence means.
11:17:38 <elliott> Phantom_Hoover: It isn't even about computational equivalence and it hasn't been for like an hour.
11:17:50 <Taneb> <Taneb> And things seem wrong to you because you expect them to be wrong!
11:17:55 <elliott> It's about CakeProphet not realising that the only thing distinguishing Java and BF's IO models is basically conventional implementation techniques.
11:18:00 <Taneb> Is that how quotes are done here?
11:18:01 <fizzie> It's about cookies now.
11:19:14 -!- Vorpal has joined.
11:19:39 <Taneb> I'm very rarely on IRC
11:19:57 <Taneb> In fact, this is pretty much the third channel I've ever been on
11:20:02 <Taneb> And the first on Freenode
11:20:35 <Taneb> The first two were pretty crazy and even less on-topic than here
11:21:08 <Phantom_Hoover> The topic of discussion is now the historical merits of the Whig party.
11:21:22 <elliott> Taneb: Is that... possible?
11:21:47 <Taneb> We occasionally discuss esoteric programming languages
11:22:01 <Taneb> Phantom_Hoover: Which Whig Party?
11:22:32 <Taneb> Let's do the first one on the Wikipedia redirect page
11:22:42 <Taneb> "A faction of the Scottish Covenanters during the 17th-century Wars of the Three Kingdoms, and the original Whigs. (See also Whigg and Whiggamore Raid)"
11:22:43 <fizzie> Did the two others in fact have a topic?
11:23:08 <Taneb> A small MSPAFA on the MS Paint Adventure forums, and TV Tropes
11:23:57 <Taneb> fizzie: http://tvtropes.org/pmwiki/pmwiki.php/Main/TroperIRCChannel
11:24:22 * CakeProphet was told that IRC is a turing complete language.
11:24:42 <Taneb> You mean IRP, right
11:24:49 <Taneb> Error 709: Ninja'd
11:25:30 <Taneb> CakeProphet: .[>.] where EOF=0
11:26:36 <Taneb> Please write this exact line unless it has been written more than once before.
11:27:11 <Deewiant> CakeProphet: ++++++++++[>++++++++++>+++++++++>++++++++++>+++++++++++>+++>++++++>+++>+++++++++++>++++++++++>+++++++++>++++++++++>+++++++>++++++++++>++++++++++>++++++++++>+++>+++>+++++++++>++++>+++++++++++>++++++++++++>+++++++++++>+++<<<<<<<<<<<<<<<<<<<<<<<-]>+++++++++.>+++++++.>+++++.>.>++.>+.>++.>++++.>+.>+++++++.>.>.>+++++.>++++++++.>+.>++.>++++.>+++++++.>++++++.>++++++.>.>++++++.>++++.
11:27:18 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/iq2nk/how_can_autistic_savants_like_kim_peek_completely/c25sdgc
11:27:31 <Phantom_Hoover> What is it with people believing this is how the brain works.
11:27:36 <Taneb> Could someone roll a standard D6 and tell me the number?
11:27:38 <CakeProphet> !bf ++++++++++[>++++++++++>+++++++++>++++++++++>+++++++++++>+++>++++++>+++>+++++++++++>++++++++++>+++++++++>++++++++++>+++++++>++++++++++>++++++++++>++++++++++>+++>+++>+++++++++>++++>+++++++++++>++++++++++++>+++++++++++>+++<<<<<<<<<<<<<<<<<<<<<<<-]>+++++++++.>+++++++.>+++++.>.>++.>+.>++.>++++.>+.>+++++++.>.>.>+++++.>++++++++.>+.>++.>++++.>+++++++.>++++++.>++++++.>.>++++++.>++++.
11:27:38 <elliott> Deewiant: Is that the PSOX version? :)
11:27:39 <EgoBot> main = readFile "a.txt"
11:27:49 <elliott> Aww, you should have made it the PSOX version.
11:27:50 <Deewiant> elliott: Nah, it needs a GHC wrapper
11:27:58 <elliott> Deewiant: That doesn't count, it's Turing-complete :-P
11:28:19 <Deewiant> Well, it can be done with a simpler wrapper too
11:28:43 <elliott> Deewiant: I dislike the use "wrapper" here as it implies the standard IO interpretation isn't a wrapper mapping it to standard C IO
11:28:48 <elliott> Which it is, just as much as any other wrapper
11:28:53 <elliott> It's not something additional
11:29:07 <CakeProphet> is that the bf program . is Turing-equivalent to main = readFile "a.txt", since there exists some wrapper that takes a null character and as a result outputs that string.
11:29:15 <Deewiant> It's an additional layer between it and the platform
11:29:45 <elliott> CakeProphet: I think everyone's lost interest in seriously "debating" this with you, so I'm just going to poke fun at the sidelines
11:29:51 <elliott> At the sidelines. On the sidelines? Along the sidelines?
11:30:03 <elliott> Deewiant: So is C stdio; you'd need read/write to be direct
11:30:36 <CakeProphet> elliott: that's fine, I'm only looking for serious discussion on the matter.
11:31:04 <CakeProphet> any fun-poking just suggests that you have nothing to contribute.
11:31:26 <fizzie> That's fighting words!
11:31:30 <elliott> CakeProphet: Sure thing, Mr. Albert "Computer Science is Inadequate Because Java has GUI Widgets" Einstein.
11:31:48 <fizzie> I tried to contribute a PSOX version, but it's so complicated. :/ :\
11:32:06 <elliott> Well, unwarranted arrogance is at least not an uncommon trait in CS, so maybe CakeProphet could capitalise on this somehow.
11:34:02 <CakeProphet> fizzie: what does the PSOX version output, out of curiosity
11:36:11 <Taneb> Hang on, wasn't this debate originally about countability?
11:36:37 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/ipsly/how_do_bananas_exist_why_dont_they_just_explode/
11:37:21 <CakeProphet> so then . instruction BF does not actually produce any output?
11:38:02 <elliott> CakeProphet: Do you seriously still believe you're right about this? Honestly curious.
11:38:06 <CakeProphet> because I am pretty sure a BF program that was written over PSOX would output something different than the contents of a.txt
11:38:15 <Taneb> <CakeProphet> I believe that would imply that the set of valid programs is countable.
11:38:21 <Taneb> That's what started the debate
11:38:44 <Deewiant> CakeProphet: fizzie doesn't know what the BF would output because "it's so complicated" so he didn't do it.
11:38:48 <Taneb> debate := shouting match
11:38:52 <fizzie> The PSOX version would output the contents of a.txt, when you run it in a compatible BF system, yes. As for which strings are needed to make PSOX do that, I just said it's too complicated.
11:39:04 -!- Taneb has changed nick to TanebBeLunching.
11:39:49 <CakeProphet> so then are the Java programs that output the PSOX string required to output a.txt, and the Java program that outputs a.txt, computationally equivalent?
11:39:51 <fizzie> Deewiant: At the very least, when run on a non-PSOX-compliant BF systems (assuming you can find any in this day and age of PSOX dominance), it'd just output the init string and wait for you to respond.
11:40:00 <CakeProphet> because it seems they would translate to the same bf program.
11:41:17 <fizzie> The PSOX version of a Java program that pretended to speak the PSOX protocol in the standard output would, when run in a PSOXy BF, output whatever the PSOX version of the a.txt-outputting Java program would output when ran in a non-PSOXy BF. Clearly.
11:43:52 <fizzie> Anyway, in the PSOX version you'd need to use both the . and , instructions to cause output, or even to get past the PSOX init. It's still very much BF, nevertheless. The difference would be sort-of analogous to using either fwrite() or write() in a C program to write something out.
11:47:32 <CakeProphet> hmm, so let's say I had a bf to Java translator.
11:47:32 <CakeProphet> it's very simple. constructs a resizing array and then translate bf instructions to standard Java operations on the array, with stdout and stdin IO for . and ,
11:47:32 <CakeProphet> can I translate every Java program into this subset of Java?
11:47:32 <elliott> With a different IO interpretation to the interpretation the programs you're translating were written for, yes.
11:47:32 <CakeProphet> doesn't that imply that the IO is meaningless? There is always a suitable interpretation for the output.
11:47:32 -!- Gregor has quit (Ping timeout: 240 seconds).
11:47:32 <elliott> If you like things to imply ridiculous things that they don't actually imply: definitely.
11:47:32 -!- lambdabot has quit (Ping timeout: 240 seconds).
11:47:32 -!- glogbot has quit (Ping timeout: 276 seconds).
11:47:38 -!- esowiki has joined.
11:48:02 -!- esowiki has joined.
11:48:23 -!- esowiki has joined.
11:48:44 -!- esowiki has joined.
11:49:07 -!- esowiki has joined.
11:49:08 -!- glogbot has joined.
11:49:35 <fizzie> Translating Java to BF isn't really related to how your BF implementation is done, or even whether you have one. Though as a practical matter maybe you could consider a built-in PSOX support using the Java runtime's facilities.
11:49:51 -!- boily has joined.
11:49:54 <fizzie> That would let you stick an arbitrary amount of BF-based layers in Java programs, if they happened to run too fast.
11:50:00 <fizzie> (A common complaint about Java systems.)
11:50:40 <CakeProphet> it seems to me that changing the nature of the IO changes the computations required.
11:51:04 <CakeProphet> in order to make Java programs PSOX-compliant, you would first have to translate all Java programs into PSOX-compliant versions
11:51:26 -!- Gregor has joined.
11:51:49 <CakeProphet> in order for the bf code to be computationally equivalent to the original Java code, would means that the original Java code is computationally equivalent to the PSOX-compliant version
11:51:51 -!- Gregor has changed nick to Guest64652.
11:52:02 <elliott> CakeProphet: As Deewiant has painstakingly pointed out, if you take that view, then a change in the internals of your C library can cause a program to "compute something different".
11:52:35 <CakeProphet> elliott: no, because changing the C library changes the C program.
11:52:35 <elliott> In fact, you can't compile anything, unless it causes the universe to make the exact same state change.
11:53:00 <elliott> Deewiant: Ugh, please deal with this or pass the buck on to somebody else, I'm way too busy to restate the obvious.
11:53:30 <Deewiant> CakeProphet: If you include the dynamic libraries as part of the C program, you have to include the PSOX as part of the whatever-is-using-the-PSOX program etc
11:53:52 <fizzie> CakeProphet: The point in the computational equivalence is not the exact sequence of operations followed when executing; those are obviously going to be different for different languages. They're going to be different for the same language when using different compilers, too.
11:55:15 <Deewiant> Read the Church-Turing thesis.
11:56:03 <elliott> Deewiant: What definition are you using there? Computational equivalence seems to me a much more formal notion than Church-Turing
11:56:41 <fizzie> A compiler from Java to BF is not going to be able to straight-forwardly map each separate Java "computation" (statement? expression?) into a distinct piece of BF code, anyway.
11:56:55 <Deewiant> elliott: Dunno, just blurting stuff
11:58:01 <fizzie> So translating file.write(42); into whatever sequence of BF that is required to output the byte 42 in a PSOXy system is not really changing the "computations", or what the program in general does.
11:58:06 -!- TanebBeLunching has changed nick to Taneb.
11:58:18 <elliott> Taneb: hi, nothing has changed
11:58:21 <fizzie> Taneb: As you can see, we've been making lots of progress.
11:58:30 <fizzie> (Detect the optimist and the pessimist.)
11:59:06 <CakeProphet> so for the purposes of computation, IO is effectively a no op?
12:00:09 <elliott> I isn't, since it's... well, input.
12:00:24 <Taneb> But all input is available as a stack at the start of the program
12:01:03 <Taneb> Actually, for the purposes of computation, all I has already happened
12:02:17 <elliott> CakeProphet: Like I've said, every program is a function from RealWorld to RealWorld
12:02:32 <elliott> You can model IO of any type merely by implementing the type RealWorld
12:02:50 <elliott> So PSOX provides a stream-based RealWorld type for anything with byte-based IO that handles things like file IO, networking, etc.
12:03:14 <elliott> Compiling Java to BF is just picking a concrete RealWorld type, then compiling the resulting function appropriately.
12:04:26 <CakeProphet> and so that function is considered to not compute anything, or be part of the program.
12:04:45 <elliott> That function _is_ the program.
12:05:06 <Taneb> So, strictly speaking, the second part of that is true
12:05:31 <Taneb> The first part isn't, though
12:06:22 <CakeProphet> so a valid string in a programming language does not correspond to a program that can be translated.
12:06:44 <CakeProphet> until the source and target environments are known as well
12:07:07 <Taneb> The program doesn't need to know the source or target enviroments
12:07:23 <Taneb> It takes a string, and converts it into a different string
12:07:26 <elliott> CakeProphet: Do you really not understand how you can compile a function without knowing its input at compile-time?
12:07:39 <elliott> If you don't, I really question whether you have the slightest bit of programming knowledge at all.
12:08:10 -!- lambdabot has joined.
12:08:13 <CakeProphet> elliott: more like, without knowing how its output is supposed to be structured.
12:08:31 <elliott> I just talked about defining the structure of a RealWorld type, for christ's sake.
12:09:06 <Taneb> The program will know the input and output formats
12:09:19 <elliott> The compiler will know it's outputting for PSOX
12:10:36 <CakeProphet> I feel like I haven't different defintiions of program and language than what you guys are talking about.
12:10:59 <elliott> To be perfectly honest I doubt you have a clear definition of either
12:12:50 <CakeProphet> from my understanding of what you guys are talking about, the actual concrete layout of a program has nothing to do with the theoretical program itself.
12:13:37 <elliott> If you mean that the syntactic structure of a program and the abstract computation it represents are not necessarily similar, well duh
12:13:53 <elliott> CakeProphet: Do you consider gcc not a translator because it can change the logical structure of a program due to optimisation?
12:14:27 <CakeProphet> the string, or list of tokens, or whatever, that makes the source code. I have a bf program that consists of ".", and because it is hooked up to a certain environment, it is computationally equivalent to a Java quine.
12:15:04 <Taneb> How the hell would that work?
12:15:15 <elliott> Are you saying that you want a Java quine to compile into a BF quine that outputs the same as the Java program?
12:15:33 <CakeProphet> I have the CakeProphetBF environment, a bf program that outputs a single null character is a quine.
12:15:36 <elliott> Taneb: You could have a FuckedUpPSOX where the way to output <a certain java program source> is by printing a nul byte
12:15:46 <elliott> But it's really irrelevant, CakeProphet is just confused
12:16:20 <Taneb> CakeProphet: You can therefore make a Java environment that does similar
12:16:36 <CakeProphet> elliott: I am saying that a Java quine is computationally equivalent to the bf program ".".
12:16:37 <Taneb> Except you're probably not that good at programming
12:16:54 <elliott> CakeProphet: Like I said: you're confused.
12:17:00 <Taneb> A quine is a program that outputs itself
12:17:05 <elliott> I'm going to use my legendary buck-passing skills by pinging Deewiant and fizzie now, and go back to coding Java.
12:17:24 <Taneb> By translating it, unless it is a cheating quine, it outputs the untranslated version
12:19:32 <fizzie> I'm just going to hide here behind this convenient tree; I'm supposedly at work and all.
12:19:52 <elliott> fizzie: You can't pass the buck to a TREE!
12:19:54 <CakeProphet> but I have an environment that outputs a Java quine when given a null character from the BF program. Therefore "." is computatinally equivalent to both the Java quine that it outputs and the bf program that is hooked up to stdio that outputs the java quine.
12:20:42 <Taneb> Only if computatinally isn't a typo and it means something that I have no idea what
12:21:25 <CakeProphet> I am not going to be able to explain what is confusing me.
12:22:04 <elliott> it is computationally equivalent _in the context of your environment_.
12:22:24 <Taneb> In your environment, a computationally equivalent Java program would output "."
12:23:30 <CakeProphet> what if the environment of the target language is restricted and cannot do the same things that the source environment can do.
12:23:31 <Taneb> Okay, trust elliott, he's probably more right than I am
12:23:44 <CakeProphet> for example, Java runtime compared to the standard bf environment (stdio)
12:24:24 <CakeProphet> in the context of those two environments, there are Java programs that are not translatable to bf programs.
12:24:47 <elliott> Deewiant: Buck-passin' = bassin'
12:25:03 <CakeProphet> Java program that reads a.txt and outputs it.
12:26:18 <CakeProphet> anyways, it is pretty fucking early and I am tired of this... so... yeah
12:26:43 <CakeProphet> I think I have made some progress towards clarifying what I was confused about.
12:26:48 <elliott> Let me know when you realise you're wrong
12:28:38 <CakeProphet> I am still positing that you cannot translate netbeans source code to a bf program that will do the exact same thing.
12:28:44 <Deewiant> Well he's right in that the Java standard library does more than brainfuck's , and . do
12:30:05 <elliott> Deewiant: If hooked up to a console, yes
12:30:28 <elliott> CakeProphet: If you take "standard BF" to mandate the interpretation of IO, then sure. Now imagine this scenario:
12:30:33 <CakeProphet> "do the same thing" as in, windows will appear in your window manager, it is responsive to keyboard and mouse input, it will not work in the same systems that netbeans will not work in.
12:30:38 <elliott> CakeProphet: The program prints out "draw a box"; "draw a line inside box A"; etc.
12:30:48 <fizzie> Deewiant: Two hours ago: <fizzie> CakeProphet: Seriously, if you talk about "translating in theory", then people are going to take the computational-complexity view on this. If you say something like "Java runtime has all kinds of IO-related features that Brainfuck implementations don't tend to have, and the Brainfuck language doesn't exactly define", then I don't think you'll get so many people disagreeing.
12:30:51 <elliott> CakeProphet: If some underpaid worker read these instructions off a normal BF console output,
12:31:04 <elliott> CakeProphet: And manually constructed the UI objects on a screen,
12:31:15 <elliott> CakeProphet: Then they would have caused the implementation to stop being standard BF by your argument.
12:31:54 <CakeProphet> elliott: and so, nothing has changed, it is still impossible.
12:31:57 <fizzie> Deewiant: I just had a sense of that dezza fu.
12:32:10 <fizzie> (And the "O" was a typo.)
12:32:51 <elliott> CakeProphet: You're straying really close to "stubborn idiot" territory. When the entirety of #esoteric is telling you you're wrong about a point of basic computer science, you should probably admit you're almost certainly wrong and try and understand why, rather than arguing back.
12:32:58 <elliott> (Sure, that's an appeal to authority, but then so is education of all sorts.)
12:34:09 <elliott> Phantom_Hoover: CakeProphet is, yes.
12:34:38 <elliott> Taneb: hi, nothing changed
12:37:00 <CakeProphet> the entire point of this conversation has been to understand why I might be wrong. So far you have explained how theoretical computer science handles the issue, but not why I am wrong. In any case, I'm done.
12:37:30 <elliott> fuk theoretics, we gangsta computa programmas on the street no the real computaional equivalence
12:37:43 <elliott> its a gun pointed 2 ur head//// and a bf implementation with only console io
12:38:17 <CakeProphet> I am not a "fuck theoretics I am a pragmatist" stereotype.
12:38:42 <CakeProphet> but I guess not fully understanding a subject = personal flaw
12:39:24 -!- Sgeo_ has joined.
12:39:29 -!- Sgeo has quit (Ping timeout: 255 seconds).
12:39:44 <elliott> CakeProphet: it wasn't anything related, i was just being silly
12:40:08 <CakeProphet> next time I talk about something on #esoteric I will make sure I know everything about it, otherwise I will be met with personal insults about how I haven't really been studying anything / can't program / etc
12:40:16 -!- CakeProphet has left.
12:41:15 <fizzie> It reminded me a bit of that Swordfish hacking scene, in fact.
12:42:01 <elliott> oh, i figured it was only a matter of time before he took being wrong personally
12:42:19 <elliott> kinda thought it would be sooner tbqh
12:43:29 <elliott> } else if (command.get("aliases") instanceof List<String>) {
12:43:29 <elliott> commandAliases = (List<String>) command.get("aliases");
12:43:37 <elliott> IntelliJ, you can't seriously be complaining about that cast on the second line.
12:43:46 <elliott> There's... no way that value is going to change.
12:43:50 <elliott> It is so not an unchecked cast.
12:43:56 <Deewiant> elliott: It could change concurrently
12:44:21 <elliott> Deewiant: It's part of the command description YAML for the Bukkit plugin
12:44:37 <elliott> I don't even think you're /allowed/ to change it, even theoretically
12:44:53 <elliott> Yeah but you can't SuppressWarnings an assignment :-(
12:44:59 <Taneb> Bukkit? The Minecraft thing?
12:45:04 <elliott> Having said that IntelliJ knows way more than any computer should
12:45:28 <Deewiant> But that's a nasty double-lookup anyway :-P
12:45:47 <elliott> Deewiant: If it was d[k] instead of d.get(k) you wouldn't bat an eye at it :)
12:46:08 <elliott> Deewiant: Would you bat an eye at array[0] being used twice?
12:46:38 <elliott> Do you name every subexpression? :-P
12:46:47 <Deewiant> If they have more than one use, I try to
12:46:56 <elliott> Java really needs a casting operator that converts nulls
12:47:06 <fizzie> elliott: Incidentally, what's the type of "command"?
12:47:33 <elliott> fizzie: Map<String,Object>, grossly enough
12:47:39 <elliott> Bukkit's API for this is kind of shitty
12:47:45 <elliott> It doesn't even expose it as the normal YAML API
12:47:49 <Deewiant> elliott: Right, so that can change concurrently and IntelliJ can't know
12:48:29 <Deewiant> Maybe if it were a HashMap or whatever's not synchronized it'd think it knows
12:48:30 <elliott> if (commandPermissionObject == null
12:48:30 <elliott> || !(sender instanceof Player)
12:48:30 <elliott> || permissionHandler.has((Player) sender, (String) commandPermissionObject)) {
12:48:38 <elliott> At this GROSSE MULTI-LINE CONDITIONAL
12:48:46 <elliott> RELYING ON SHORT-CIRCUITING FOR CORRECTNESS
12:49:18 <fizzie> elliott: Well, you can cast it (List) without warnings, just avoid the generics there.
12:49:40 <Deewiant> That should get you a warning about not using generics :-P
12:50:03 <Deewiant> You do use -Xlint:all,-serial don't you
12:50:06 <elliott> Java is such a strange language, for what is essentially the most "standard" language out there
12:50:20 <fizzie> I think "instanceof List<String>" is equivalent to "instanceof List", anyway, since due to that type erasure thing the generics don't exist any more at runtime.
12:50:28 <elliott> Deewiant: I just use whatever IntelliJ uses by default, which I think is actually based on its own static analysis framework rather than javac
12:50:34 <elliott> It's certainly faster than javac :-P
12:50:47 <Taneb> <elliott>Java is such a strange language, for what is essentially the most "standard" language out there
12:50:55 <Taneb> I think that's a covert tautology
12:51:21 <elliott> But still, Java's the weirdest member of the mainstream OOP canon by far
12:51:31 <elliott> It's got as many quirks as Eiffel
12:53:05 <Taneb> Add as many new features and syntax sugar as you can
12:53:15 <Taneb> In the hope of making a new language
12:53:25 <elliott> That's been done accidentally many a time :-P
12:53:31 <Taneb> That is sensible and usable enough to go mainstream
12:53:43 <Taneb> But still has brainfuck at its core
12:53:56 <elliott> } else if (aliasesObject instanceof List<String>) {
12:53:56 <elliott> aliases = (List<String>) aliasesObject;
12:54:05 <elliott> I wonder if there's technically a way to make that fail :-
12:55:05 <elliott> Deewiant: fizzie: "Illegal generic type for instanceof"
12:55:17 <Taneb> Different idea: functional brainfuck
12:55:18 <elliott> You can't instanceof a generics type
12:55:38 <fizzie> But since you already pasted it, I thought it just did the same as instanceof List.
12:55:47 <elliott> Deewiant: fizzie: Which also means that the only way I can do a "checked" cast is with (List).
12:55:53 <Deewiant> I like that you only looked at the diagnostic now
12:55:53 <elliott> <Deewiant> IM GOING TO KILL MYSELF
12:56:04 <fizzie> The "checked" doesn't mean that you have checked it at runtime, I don't think.
12:56:10 <elliott> I've been trained to ignore squiggly red underlines by word processors
12:56:31 <elliott> fizzie: It's about scoping isn't it
12:56:37 <elliott> instanceof definitely lets you do a checked cast I thought
12:56:41 <fizzie> It'd be a permissible cast to (List) even if you didn't instanceof-test.
12:56:56 <elliott> It's not, because of the type of aliases being List<String>
12:57:07 <elliott> And "aliases = (List<String>) ((List) aliasesObject);" is also complained about :P
12:57:17 <fizzie> Yes, but that's because you try to cast to List<String>.
12:57:32 <fizzie> It's about the compile-time type-checking of generics, and casting to a genericized type goes around that.
12:57:41 <Taneb> You know what would be fun?
12:57:46 <elliott> Can you make an if branch body @SuppressWarnings easily?
12:58:01 <Taneb> Porting Netbeans to brainfuck just to annoy CakeProphet
12:58:02 <fizzie> I'm not especially well-versed on the details. But you can always cast to plain (List), which is what the runtime type of the object is in reality.
12:58:13 <fizzie> Then you'll just need another cast to String when you get objects from it.
12:59:04 <fizzie> IIRC the point is that you shouldn't have a List<String> anywhere without the compiler being able to really check (not just trust your casts) that it in fact is a list of strings.
12:59:19 <elliott> fizzie: So basically Java wants to be Coq :)
12:59:59 <fizzie> I'm not sure if there were some any cleaner workarounds than just avoiding the use of generics for the cases where your API gives you just an Object that you happen to "know" is a List<String>.
13:00:18 <elliott> @SuppressWarnings("unchecked") List<String> tmp = (List<String>) aliasesObject;
13:00:27 <elliott> Now IntelliJ complains that tmp is a redundant variable :-D
13:00:44 <elliott> fizzie: It could technically be a Map or anything else, it's just that that would be an invalid plugin YAML
13:00:49 <elliott> Dunno if it'd let you load that
13:01:01 <elliott> One field that's meant to be a list also accepts a string as the single element, sigh
13:01:37 <fizzie> If you want to have a generic there, it is permitted for you to cast it to List<?>.
13:01:49 <fizzie> Not that it's much of an improvement over List.
13:01:59 <elliott> Literally going to commit suicide
13:02:38 <fizzie> And I think you're allowed to cast to List<? extends Object> too if you like.
13:02:55 <fizzie> But not List<Object>, because that'd be a list of Objects only.
13:03:31 <fizzie> I vaguely recall there was some way of narrowing the types down without a warning, but I may be just misremembering that.
13:03:38 <Deewiant> elliott: Make an identity function and try id(tmp)
13:03:43 <fizzie> Probably ais could tell you, being a more Java guy.
13:05:21 <elliott> Deewiant: I bet there's an IntelliJ SuppressWarnings annotation I can use :-D
13:06:04 <fizzie> Oh, right, I recall the reason for the "unchecked cast" warning more properly now.
13:06:09 <zzo38> I have just finished playing a game of pokemon card. This is probably the first time I have done, I have evolved for the sole purpose of increasing my own retreat cost! (And I did win. Both players 1 side card remain, opponent 0 cards in draw pile, me 7 cards in draw pile)
13:07:23 <fizzie> elliott: See, in "List tmp = (List)obj", the run-time checking is able to actually check the cast, and throw a ClassCastException if it fails. But in "List<String> tmp = (List<String>)obj", the run-time type of "obj" is "List", and the cast would succeed with no exceptions even if it were in fact List<Cock> instead. So that's why it's "unchecked".
13:07:53 <fizzie> And then you'd get a ClassCastException from Cock to String on some later tmp.get(42) where you'd least expect it.
13:07:58 <elliott> This is why languages shouldn't include cocks
13:08:02 <elliott> fizzie: Hey, wait, I could do case analysis
13:08:06 <elliott> If the list is empty, just construct a new empty one
13:08:14 <elliott> Otherwise, instanceof the first element...
13:08:19 <elliott> oh wait, it could be List<? extends Object>
13:08:55 <fizzie> You could iterate the list, instanceof-test all the elements against String, and build your own List<String>.
13:09:12 <fizzie> You could even make a helper static List<String> stringifyMyRide(List<?> lst) method.
13:09:25 <elliott> Is there a more Javacally way to say assert(false);?
13:09:29 <elliott> if (aliasesObject instanceof String) {
13:09:29 <elliott> aliases = new ArrayList<String>();
13:09:29 <elliott> aliases.add((String) aliasesObject);
13:09:29 <elliott> } else if (aliasesObject instanceof List) {
13:09:29 <elliott> aliases = (List<String>) aliasesObject;
13:09:46 <fizzie> Some sort of a RuntimeException, maybe.
13:09:50 <oklofok> about CakeProphet's silly stuff about computational equivalence, we just had an international, rather well-known conference where one of the speakers whined about the exact same thing for half an hour
13:11:02 <fizzie> For example, javax.xml.bind.TypeConstraintException has a description that sort-of matches your case. :p
13:11:05 <elliott> did he storm off afterwards too
13:11:12 <elliott> oklofok: hey wait you told us about hat at the time :))))))))
13:11:34 <elliott> throw RuntimeException("fuck this");
13:12:22 -!- Guest64652 has changed nick to Gregor.
13:12:51 -!- Gregor has changed nick to Guest36411.
13:15:12 <Deewiant> elliott: You could put the assert in front of that :-P
13:15:16 <zzo38> I invented a notation of pokemon card deck list using ASCII.
13:15:32 -!- Guest36411 has changed nick to Gregor.
13:16:03 <Deewiant> I did too: <n> times <card name>
13:16:22 <fizzie> elliott: If you can manage somehow to get a Class<List<String>> object c (though I have no idea how, since only List.class is a valid class literal...), you can "List<String> l = c.cast(obj)" without any warnings about uncheckedity. But I suppose that may be impossible too.
13:18:58 <fizzie> Deewiant: It took me quite a while to puzzle out how "<n> times <card name>" is putting the assert before a throw.
13:20:03 <zzo38> 4#92L17+2L17,L26+2L38 3#96L12+2L36 #124L23 #150L30 #21L13 #35L15+D33 #108L26 #249L55 22{@} {dc rc} ENERGYREMOVAL ENERGYRETRIEVAL ENERGYSEARCH 2POTION GAMBLER ITEMFINDER CHALLENGE GUSTOFWIND FULLHEAL SWITCH 2POKEMONTRADER BILL MASTERBALL
13:20:25 <zzo38> Is it good format OK?
13:26:43 <zzo38> Of course there is the more common long form, but I prefer short form deck listing.
13:40:01 -!- Tritonio has joined.
13:47:26 -!- Taneb has quit (Ping timeout: 240 seconds).
13:55:20 <zzo38> cheater_: I am reading your message about what am I doing.
13:55:51 <cheater_> i would like to see the syntax tree of that sentence.
13:57:23 <zzo38> [I] am [reading [your [[message] about [what am I doing]]]] (maybe I did this wrong I don't know for sure)
13:58:13 -!- Tritonio has quit (Quit: Leaving).
13:58:26 <zzo38> I also do other things too.
13:59:01 <zzo38> Such as, pokemon card, and writing the document of FurryScript, and writing the D&D character sheets both mine and my brother.
13:59:27 <oklofok> are you okay? i just dropped you people on the floor by accident
13:59:41 <oklofok> nah just kidding, i know you're not real
14:01:21 <zzo38> Yes it is OK, in case my bed broke, I should sleep on the floor instead.
14:08:59 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:12:46 <zzo38> Please tell me if this document is understandable to you: http://esolangs.org/wiki/User:Zzo38/FurryScript
14:14:05 -!- hagb4rd has quit (Quit: hagb4rd).
14:20:50 <cheater_> ǐ̷̭͙̭ͪ͒̅ͥṡ̶͔̼̒́ ̸͓͕̭̲̬̺ͩ͐ͮ̽͛ͪ́͡y̶͈̹̺̙̘̓ͦͥ͗̾̐̒ọ̤ͮu̪̭̦̺̼̪ͨ̌ͫ̎ͪ͗̎̋͛͞r̢͕̞̦̣̩ͤ̅ͩ̐͑̕ ̖̲̺̘͔͕̞̰̤ͯ̉m̝̗͓̺̳͙̬̜̮͗̔͋ͬ͆͂́ͦ̚ỏ̶͉͉̲̙̭͓̼̌̀n̼̮̱̳̼̮̣̹̈́ͩͩ̊͘͝i̗͂ͫ͗̿ͯ̚ţ̢̗͎̃ͭͣ͆̋̂͑͘ọ̸̐̓̑̌̇͗̎̒͟r̥͙͌͋͢͞ ̮̤͈͚̯ͬ̐̋ͫ͗͟͞b̴̨͈̭̄ͧr̸͎̃͌͑o̩̘̝̜̍ͪ̓͑͘͡ͅk̟̻̥ͧ̑ͥ͡e̶̪ͨ̏ͥ͟
14:21:22 <cheater_> oklof̥̟̫̺̤ͮ̀̃͒̎ͪ̌ͩo̡̪͈̫ͮ́ͪ̋ͭk̛̻ͨͦ̉̉̕ͅ ̣̫̗̘͕̾ͧͅḓ̴̘͉̪̭̤̔ͤ͛̿ͤ̚͝i̗̜̯̤͇͐ͦ̋̌ͮ͒̈́̐̕d̋ͦ͏̞̲̦͖͇̪̤ͅ ̴͙̻̪̫̻̒ͥͬ͞͡y̝̪͙̰̖̼͖ͬͬ̍͂͐͊̎̚ͅǒ̘͍͔̫̤̻̠͗ͫ͘u̸͂̓͗ͫ͏̭̠͉̣̜̘̖̻ ̸̛̫͖̰̲͙̻͋̍̉̈d̪̤͎̗̟̪̩̦̗͗ͬͧͧͮ͆ͫ̑r̭̱̳̰̟̰ͭ͑ͥͤ͊o̶͇̪̖̒̑ͣͫͅp̺̩͛ ͕̦͈̲͎͖̐͛ͬ̈ͯy̺̹̫ͧ̈́̈́͌̍͝͝o̹͐͌͋͋̑͗͘
14:21:23 <cheater_> ̜ų̣̙̙̗̮̝̌̇ř̗̙̩͗̈ ̨̝̤̩̬̺̖̑ͩ̃̾̅̃̓̓͘͝l̴̔̒̃͋͂͆҉̧̬̗͇̫̬͇̦̱ȁ̴̽͜҉̖̙̫̠̙͔p̬͈̮̘͉̒ͯ̉̆̊͌ͧ͐ͅͅtop
14:21:35 <zzo38> What are you trying to type now?
14:21:45 <zzo38> It seems like mixed up.
14:22:42 <cheater_> it mus͔͓͕̄͊͋͘͞t̸̯̟̮͋̆̍͗̑ͫ̚͘ ̳̬̫̆ͣ̓̈́̂̀̚͞b̤͍̱̮̮͇̫́͒ͯ̽̀̓͆͑ę̹̗̉̅ͫ͋ͬ͌ͤ̂͟ ̆ͤͯ͏̘̯͠yͣ̓̊̊̾҉̤̰̦͕̯õ͌͆ͬ̓̽̂̚҉͓̟̱̬̰̻̯u̘̱̺̤̲͑r monitor
14:24:03 -!- Taneb has joined.
14:24:24 <zzo38> Now I can read it a bit. But, no it is not my monitor is broken. The monitor is working correctly. It is the speaker which is broke. But that doesn't cause the mixed up text on screen.
14:27:24 <zzo38> Hello Hello Hello Hello Hello
14:30:35 -!- BeholdMyGlory has joined.
14:32:27 -!- copumpkin has joined.
14:32:28 -!- copumpkin has quit (Changing host).
14:32:28 -!- copumpkin has joined.
14:35:45 <zzo38> Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello
14:58:26 -!- lifthrasiir has quit (Ping timeout: 252 seconds).
15:28:04 -!- monqy has joined.
15:28:53 -!- foocraft has joined.
15:49:23 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
16:02:31 <Taneb> I still think Numberwang is too useable
16:11:49 <Taneb> How can I make it less useable?
16:12:10 <Taneb> While still a) Turing complete and b) deterministic
16:13:01 <monqy> determinism is boring
16:13:37 <Taneb> Have you seen the Numberwang spec?
16:13:50 <Taneb> I have no idea what the program 3! would do
16:14:19 <monqy> speaking of esolangs, what is it with people and replacing the list of ideas with magic the gathering card deck of brainfuck
16:15:15 <Taneb> Has that happened a lot?
16:15:30 -!- derrik has joined.
16:16:02 <Taneb> Man, that must seem pretty non-sequitur for you, derrik
16:17:08 <Taneb> It almost made sense in context, though
16:17:46 <Taneb> What do you think is the best way to make a language less usable while keeping it a) Turing Complete and b) Deterministic?
16:18:22 <elliott> i am not so sure that numberwang is tc myself
16:18:27 <elliott> although that's more oerjan's forte >:D
16:18:47 <elliott> oh hm it's close to the b-machine thing
16:18:59 <elliott> Taneb: i'd say it's as confusing as you're going to get
16:19:13 <Taneb> But it was so easy to prove Turing Complete!
16:19:18 <elliott> Taneb: as of right now you can ignore command three, though
16:19:27 <elliott> integrate some vital operation into it
16:19:35 <elliott> (this maintains tcness only by power of hope)
16:19:51 <Taneb> I'll also add IO in the same move!
16:20:19 <elliott> Taneb: just make 3 print "That's Numberwang!", and 0 print... something else
16:20:28 <elliott> that's all anyone could possibly need
16:20:37 <Taneb> 0 is flip and move left
16:20:51 <elliott> yeah, the point is that you have two instructions that print different things
16:20:57 <elliott> that should be enough, if the instructions are vital enough
16:21:16 <Taneb> Heck, I think that Unary program shows us that that isn't even necessary
16:21:45 <elliott> unary looks like it has normal output
16:22:05 <elliott> i'm just saying, you can do output by just making two of your commands print two different things as a side-effect
16:22:07 <Taneb> I mean, it shows meaning can be demonstrated with only one character
16:22:19 <elliott> um well yes but if your program doesn't halt that doesn't work
16:22:24 <elliott> because the value is encoded into the length
16:25:47 <elliott> still doesn't require using three for turing-completeness :P
16:26:00 <Taneb> But it does for any output.
16:26:20 <Taneb> People making Hello World programs?
16:28:14 <elliott> i doubt that's possible, considering the program that three starts running
16:28:21 <elliott> i.e. I rather suspect it'll output other values beyond your control
16:28:39 <Taneb> With the right setup, it should be theoretically possible
16:29:41 <elliott> that's a proposition stated without proof :P
16:29:49 <elliott> it could very well be completely impossible to output hello world
16:29:51 <Taneb> Make that hypothetically
16:31:00 <Taneb> It's just considerably easier to get the entire population of the UK to agree on football teams
16:38:10 -!- elliott has quit (Ping timeout: 252 seconds).
16:47:05 <zzo38> I want to play pokemon card, please.
16:47:20 <Taneb> I want to play chess
16:47:32 <zzo38> Normal (FIDE) chess or some variant?
16:47:47 <Taneb> Or maybe Threechess
16:51:23 <zzo38> Now invent pokemon card chess
16:51:45 <Taneb> But I have no pokemon cards
16:54:02 <zzo38> Use computer to make up cards
16:54:17 <Taneb> And I'm going out for dinner in 6.5 minutes
16:54:52 <zzo38> http://zzo38computer.cjb.net/img_14/pokemon_card_01.png Pokemon Card GB2
16:55:37 <zzo38> Do you know how to do this one?
16:55:45 <Taneb> No, and I have to go now
16:58:31 -!- lifthrasiir has joined.
17:00:11 -!- Taneb has quit (Ping timeout: 252 seconds).
17:11:28 -!- Phantom_Hoover has joined.
17:31:23 -!- DocHerrings has joined.
17:33:35 <DocHerrings> Boredom is a terrible thing - I am writing a series of Markov productions that calculate Keymaker's Clue language.
17:42:47 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
17:52:18 -!- Sgeo has joined.
17:53:40 <Sgeo> Hey, PSOX was useful for something!
17:53:52 <Sgeo> (If arguing with CakeProphet is considered useful)
17:55:46 <fizzie> I am very much doubtful that the "conversation" today was anything that'd count as "useful".
17:57:43 <Sgeo> http://www.smbc-comics.com/?id=2208
17:59:40 -!- ais523 has joined.
18:00:39 <pikhq_> "Gtk Hello World in Qt C++".
18:01:00 <Sgeo> Phantom_Hoover, my site is not up-to-date wrt PSOX
18:01:17 <Sgeo> The wiki's link to the assembla stuff is
18:01:51 <pikhq_> Sgeo: Well, Qt is both a UI toolkit and a library providing a fairly simple extension to C++'s standard semantics and some replacement standard library functions.
18:03:29 -!- cheater_ has quit (Ping timeout: 255 seconds).
18:04:59 <pikhq_> Anyways. Someone bound GObject into the Qt C++ type system.
18:08:02 <Sgeo> elliott, Phantom_Hoover, John/[SPOILER] panels are up
18:16:27 -!- cheater_ has joined.
18:19:06 -!- oklopol has joined.
18:20:51 -!- oklofok has quit (Ping timeout: 252 seconds).
18:28:31 -!- zzo38 has quit (Remote host closed the connection).
18:28:32 -!- derrik has quit (Quit: nights).
18:39:31 <DocHerrings> Okay, Markov production rule finished (so now Clue has a Thue interpreter).
18:42:14 <DocHerrings> Well, maybe later. Markov to Thue conversion is messy.
18:54:42 -!- MigoMipo has joined.
18:57:48 -!- foocraft has quit (Quit: So long, and thanks for all the fish!).
18:58:19 -!- foocraft has joined.
19:08:24 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
19:14:58 -!- oerjan has joined.
19:19:08 <oerjan> <Sgeo> Wow. Headphones in my ownership tend to die within days, apparently
19:19:35 <oerjan> it's because of the radiation from the brain implantat the aliens put in you. hth.
19:21:00 <oerjan> so now i too can learn to hate the new google top bar
19:21:06 -!- pikhq_ has quit (Read error: Operation timed out).
19:21:10 <ais523> in what way in particular is it irritating you?
19:21:15 <ais523> also, which Clue was DocHerrings talking about?
19:21:21 <oerjan> it does not disappear when i scroll
19:21:24 <ais523> (it'd be extra fun if it wasn't either of the ones I know of)
19:21:24 -!- pikhq has joined.
19:21:29 <ais523> oerjan: gah, I hate bars that do that
19:21:34 <ais523> (I hardly ever use Google, so I didn't notice)
19:21:51 <Phantom_Hoover> @tell elliott SUNDAY IS GREGOR'S BIRTHDAY TAKE NOTE. ALSO PRESENTS.
19:24:12 <oerjan> <monqy> I thought I was building off of a sort of joke I would make, not spoiling one of the sort someone else would make
19:24:21 <oerjan> LEAVE THE BAD JOKES TO THE PROFESSIONALS
19:30:23 <oerjan> <Taneb> Any ASCII string can be converted into a base-128 number
19:30:26 -!- zzo38 has joined.
19:30:52 <oerjan> > readInt 128 ord "abcd"
19:30:53 <lambdabot> Couldn't match expected type `GHC.Bool.Bool'
19:31:06 <lambdabot> forall a. (Num a) => a -> (Char -> Bool) -> (Char -> Int) -> String -> [(a, String)]
19:31:36 <oerjan> > readInt 128 (<'\128') ord "abcd"
19:32:16 <oerjan> > showIntAtBase 128 chr 205042148 ""
19:32:39 <oerjan> actually it won't handle leading NULs
19:33:31 <ais523> shouldn't you delete all DELs?
19:33:45 <ais523> and all NULs, for that matter?
19:33:55 <Phantom_Hoover> <ais523> also, which Clue was DocHerrings talking about?
19:33:58 <ais523> the purpose of those characters is that you can leave chunks of NULs that don't mean anything on your tape in case you need to correct things
19:34:06 <oerjan> hm if you delete DELs, shouldn't you also delete the following character?
19:34:17 <ais523> and then add extra things in the NUL space if you need to add
19:34:26 <ais523> and to delete, just punch out every hole on the tape for that character and you get DEL
19:34:38 <ais523> I think DEL originally was a placeholder for things that had already been deleted
19:34:40 <ais523> not a delete character
19:34:57 <ais523> nowadays, we don't use paper tapes, so the whole trick is sort-of moot
19:35:50 <ais523> hmm, I should tell C-INTERCAL to ignore NUL and DEL
19:35:59 <oerjan> ais523: well there are still write-once media
19:36:13 <ais523> working well with write-once media is exactly the sort of feature that works well with it
19:36:22 <Sgeo> Oh, we're talking about ASCII?
19:36:40 <oerjan> but i don't know if they support changing single bytes after the fact
19:36:41 <ais523> oerjan: modern write-once media, like CD-Rs, unfortunately don't let you overprint 0s with 1s like tape did
19:37:11 <ais523> basically, because CD-Rs need a separate encoding layer because they can't represent two 1s in a row
19:37:29 <ais523> there's some sort of transformation done on bytes in order to change them to longer codewords with no consecutive 1s
19:37:52 <ais523> I'm not sure how many 0s they can have in a row; presumably there's some limit to avoid the read head losing count, as it needs to know where it is on the CD somehow
19:38:03 <ais523> and mechanical imperfections prevents you just using the timing, if the distance is too long
19:38:24 <Sgeo> Could said limit be larger than number of physical bits on the disc/
19:38:40 <ais523> in practice it's very unlikely
19:38:41 <oerjan> hm with such a scheme an ascii 0 would be a placeholder that could be replaced with an arbitrary digit
19:39:41 <ais523> oh, that reminds me, I've written an informal Anarchy spec
19:39:42 <oerjan> although i guess there are non-digits possible as well
19:40:00 <ais523> still unfinished, still not mentioning a lot of things that would have to be mentioned in order to get an actual language
19:40:07 <ais523> but enough there for people to get what's going on
19:40:22 <ais523> hopefully it won't turn into a second Feather; at least, there are no obvious inconsistencies or difficulties in the spec
19:40:51 <oerjan> interestingly the Wang B-machine which numberwang alludes to allowed only setting bits, not clearing. (although numberwang doesn't follow that, using flipping)
19:41:04 <zzo38> There is still possible such media such as print. And if it is scanned into the computer, or using a camera.
19:42:00 <ais523> hmm, like those optical scan forms used for multiple-choice tests?
19:42:29 <oerjan> <ais523> there's some sort of transformation done on bytes in order to change them to longer codewords with no consecutive 1s <-- well the "obvious" way is to use fibonacci base
19:42:45 <ais523> oerjan: hmm, I wonder if that is it?
19:43:01 <ais523> here we go: http://pastebin.com/raw.php?i=MDEebq26
19:43:40 <zzo38> In fact something I designed which is similar, is FORMCARD, which also uses delete characters similar to ASCII using them in that way, although FORMCARD is based on Hollerith instead of ASCII (although it can also use POSTNET for purely numeric data).
19:43:57 <oerjan> ais523: well fibonacci base doesn't support limiting the number of 0's, which i vaguely recall seeing before
19:45:01 <ais523> I have no idea if the limit is a small integer or of the order of hundreds
19:45:17 <ais523> in practice, they probably just make sure each word has at least one bit set
19:45:24 <ais523> or at least two or three, if more are needed
19:46:12 <oerjan> istr it was pretty small, so there was a fixed length encoding of some length of bits
19:49:03 <ais523> that seems about right
19:51:40 <oerjan> "The pits and lands themselves do not directly represent the zeros and ones of binary data. Instead, non-return-to-zero, inverted encoding is used: a change from pit to land or land to pit indicates a one, while no change indicates a series of zeros. There must be at least two and no more than ten zeros between each one, which is defined by the length of the pit."
19:52:35 <ais523> "no more than ten", that's god to know
19:53:15 <oerjan> "Under EFM rules, the data to be stored is first broken into 8-bit blocks (bytes). Each 8-bit block is translated into a corresponding 14-bit codeword using a lookup table.
19:53:28 <oerjan> The 14-bit words are chosen such that binary ones are always separated by a minimum of two and a maximum of ten binary zeroes."
19:53:57 <ais523> hmm, so I expect some byte transformations are possible on CDs
19:54:03 <ais523> as you can burn a land into a pit
19:55:51 <oerjan> "EFM requires three merging bits between adjacent 14-bit codewords to ensure that consecutive codewords can be cascaded without violating the specified minimum and maximum runlength constraint. The 3 merging bits are also used to shape the spectrum of the encoded sequence. Thus, in the final analysis, 17 bits of disc space are needed to encode 8 bits of data.
19:56:09 -!- Taneb has joined.
19:56:13 <oerjan> (http://en.wikipedia.org/wiki/Eight-to-fourteen_modulation)
19:56:42 <ais523> heh, CDs read fast enough that they need to have a consistent spectrum?
19:57:00 <ais523> I was surprised at that, but suppose it was inevitable
19:57:04 <oerjan> > readInt 128 (<'\128') ord "abcd" -- repeat what i tested above based on a comment by Taneb
19:57:11 <ais523> as if there's a simple trick to read faster, people are going to use it
19:57:37 <pikhq> And modern CD drives are at the physical limits on read speed.
19:57:43 <pikhq> (any faster and the disc would shatter)
19:57:57 <Taneb> They've got data transfer at 26 Terabits a second in some lab somewhere
19:58:01 <ais523> perhaps they don't need to make the spectrum that consistent after all, then
19:58:02 <Taneb> Not CDs, but it works
19:58:16 <Taneb> And the technology is comparatively simple
19:58:26 <pikhq> Taneb: Well, it's the physical limits of what can be done *with the CD spec*.
19:58:33 <oerjan> i hear CERN transfers some huge data amounts
19:58:35 <pikhq> Obviously you can get higher rates with differing media.
20:01:15 -!- copumpkin has quit (Remote host closed the connection).
20:01:40 -!- copumpkin has joined.
20:01:41 -!- copumpkin has quit (Changing host).
20:01:41 -!- copumpkin has joined.
20:03:34 -!- pumpkin has joined.
20:03:35 -!- pumpkin has quit (Changing host).
20:03:35 -!- pumpkin has joined.
20:06:17 -!- copumpkin has quit (Ping timeout: 264 seconds).
20:09:29 <Taneb> Man, I just got confused when Wikipedia didn't have an article on the Churing-Turch Thesis
20:13:02 -!- pumpkin has quit (Remote host closed the connection).
20:13:38 -!- copumpkin has joined.
20:13:38 -!- copumpkin has quit (Changing host).
20:13:39 -!- copumpkin has joined.
20:14:16 * oerjan swats copumpkin -----###
20:14:39 <Taneb> Did he abbreviate something to ABCDEF?
20:16:15 <oerjan> no, he is quit-join spamming with a bad connection _and_ a broken cloak setup simultaneously
20:16:35 <copumpkin> I've done it three times in the past 20 minutes haven't I?
20:16:49 <oerjan> well it looks worse when no one else is talking
20:17:07 <Taneb> I got a tetanus jab last year, later that month I got over 1000 friends on Facebook
20:17:44 <ais523> Taneb: probably coincidence
20:18:00 <oerjan> no, correlation implies causation, obviously
20:18:20 <ais523> oerjan: are correlation and causation correlated?
20:18:26 <ais523> then correlation /causes/ causation!
20:18:34 <Taneb> I think it's connected to the time I watched the director's commentary for Finding Nemo
20:18:48 -!- ais523 has set topic: correlation causes causation | Esoteric programming languages | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
20:19:00 <ais523> anyone looked at Anarchy yet, btw?
20:19:31 <Taneb> You mean, this channel?
20:19:54 <oerjan> this is channel is anarchy? shocking! someone should fire the ops
20:20:38 <ais523> Taneb: no, my language
20:20:43 <ais523> http://pastebin.com/MDEebq26
20:21:02 <ais523> it's unusual for esolang design, as I invented it not because I thought it would be a fun basis for a language
20:21:06 <ais523> but because I needed it to write prorgams in
20:21:13 <ais523> unfortunately, it looks like a pain to implement
20:21:19 <ais523> not massively difficult, but timeconsuming
20:21:28 <ais523> also, I need to get a constraint solver from somewhere
20:21:32 <Taneb> So it's actually quite close to the actual meaning of esoteric?
20:21:36 <oerjan> i looked far enough to think you're going to have some trouble with the type inference there
20:22:14 <ais523> oerjan: quite probably
20:22:18 <oerjan> i mean if that was not unsolvable it would probably be supported by ML already...
20:22:49 <oerjan> mind you ocaml _does_ have something similar doesn't it
20:22:57 <Taneb> What's a good language for someone with no knowledge of programming?
20:23:05 <ais523> I'd be surprised if it were unsolvable
20:23:27 <ais523> Taneb: Prolog, because if you do have knowledge of programming, your mind will explode trying to learn it
20:23:32 <oerjan> well i did not think about it very deeply (my eyes started to glaze over)
20:23:47 <ais523> so learn it first, then you don't have to have an exploded mind trying to learn it later
20:23:49 <oerjan> haskell, for the same reason :P
20:24:13 <ais523> err, do you have to learn them simultaneously, then?
20:24:34 <oerjan> Taneb: um you don't have no knowledge of programming do you?
20:24:53 <oerjan> ais523: you could do Mercury for that
20:24:54 <Taneb> No, I'm trying to get a friend into computer sciency topics
20:25:07 <ais523> oerjan: someone mixed Haskell and Prolog?
20:25:19 <ais523> anyway, why did you think Anarchy's type system is uncomputable?
20:25:38 <oerjan> ais523: well not directly mixing but ideas from both prolog and ML/haskell sides
20:25:41 <ais523> it just seems like sugar around an existing type system
20:26:02 <oerjan> it's a statically typed, pure, logic language
20:26:13 <Taneb> I like duck typing
20:26:23 <Taneb> It helps prevent forest fires
20:27:01 <oerjan> ais523: well it was that thing about having constructors not associated with a single datatype. although i guess that ocaml thing _does_ that.
20:27:15 -!- MigoMipo has quit (Read error: Connection reset by peer).
20:27:27 <Taneb> Oh god, that was pretty much the stupidest thing I have ever said online
20:27:48 <ais523> it might help if you think of the type constructors being different type constructors on call and return
20:27:53 <ais523> that's how I'll probably implement it
20:28:03 <ais523> Taneb: in that case, you haven't been nearly as stupid online as most people
20:28:07 <oerjan> ais523: also, afaik most things grafted onto hindley-milner tend to make type inference undecidable
20:28:27 <ais523> well, I just do type inference via constraint solving
20:28:35 <ais523> I assume hindley-milner works like that too as it's the only sensible way
20:29:06 <oerjan> ais523: you might have trouble with having "principal types" (i.e. a unique inferred type for your terms which works in all contexts)
20:29:42 <ais523> oerjan: oh, I was just going to duplicate every use of a function
20:29:46 <oerjan> and yes, hindley-milner is mostly unification on the type level
20:30:01 <ais523> C++-style template specialisation
20:30:19 <ais523> in fact, I might have to inline every use of a function other than recursion, but even so, I think it still ends up decidable
20:30:22 <oerjan> ais523: hm iirc there is a sense in which hindley-milner is equivalent to doing that
20:31:29 <ais523> I'm just annoyed at having had to do the relevant desugaring by hand at my day job
20:31:41 <ais523> or else bodge it by using types more general than are actually needed
20:32:56 <oerjan> ais523: btw iirc there is also a (probably dead) logic language based on haskell
20:33:03 <oerjan> i think that was the one named curry
20:33:33 <ais523> Anarchy's constraint solving is uncomputable because you can express Diophantine equations in it
20:33:37 <Taneb> http://en.wikipedia.org/wiki/Curry_(programming_language)
20:33:41 <ais523> but interps are allowed to go into an infinite loop if you do that
20:36:44 <oerjan> the curry mailing list doesn't seem to be entirely dead
20:37:45 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
20:41:31 -!- rodgort has joined.
20:50:42 <Taneb> Teaching someone Lambda calculus
20:51:39 <Taneb> Someone who has very little programming background
21:01:36 <oerjan> Taneb: the same guy? in that case what about scheme, it may the simplest "real" language to do LC faithfully...
21:01:46 <oerjan> just don't mention call/cc :P
21:02:10 <Taneb> Just doing it theoretically
21:03:18 <Taneb> I didn't actually realise there was a typo...
21:03:39 <oerjan> INSUFFICIENT OC(P)D DETECTED
21:04:09 <oerjan> geek license suspended pending review
21:04:42 <Taneb> I'm not a very good teacher...
21:04:52 <Taneb> Just said "So, when f is inputted, m replaces all the fs with fs and takes out the f in the input"
21:05:22 <oerjan> hard at work replacing fs by fs
21:06:16 <oerjan> i think of lambda calculus as the simplest possible mathematical model of naming things
21:07:25 <Phantom_Hoover> Come on, call/cc is pretty simple once you get your head around it.
21:07:52 <monqy> always mention call/cc
21:08:17 <oerjan> like algebraic topology
21:09:27 <oerjan> and zygohistomorphic prepromorphisms
21:10:19 <Taneb> xenolinguistic polysyllablic neomorphemes?
21:11:23 <oerjan> except for the neo- part
21:11:32 -!- boily has quit (Ping timeout: 276 seconds).
21:12:15 <oerjan> i didn't make up any of those words
21:13:05 <Phantom_Hoover> Although zygohistomorphic prepromorphisms are kind of only used as a joke, AFAIK.
21:13:06 <oerjan> the last one _is_ used as a joke on that though
21:13:24 <oerjan> yeah but it _does_ have a real meaning, if obscure
21:13:37 <oerjan> not that i can recall what it is
21:14:38 <Taneb> I suspect I'd be a better computer science teacher if I had actually ever taken a computer science class
21:17:03 <Taneb> But did Alan Turing ever take a computer science class?
21:17:15 <Taneb> Did Alonzo Church ever take a computer science class?
21:17:32 <oerjan> did newton ever take a physics class
21:18:31 <Taneb> No! Isaac Newton (who was kind of a dick) learnt about physics on the internet!
21:18:34 <pikhq> Did Thog ever take a fire-building class?
21:18:37 <oerjan> they almost certainly did take math classes though
21:19:03 <Taneb> Meh, I've got a GCSE in stats.
21:19:06 <Taneb> That should be enough
21:19:36 -!- Nisstyre has quit (Ping timeout: 260 seconds).
21:19:51 <oerjan> anyway, as an amateur very-occasional programmer i didn't learn most computer science i know from classes either
21:20:33 <Phantom_Hoover> I have never been near a computer science class, which is why nobody listens to me.
21:21:20 <pikhq> oerjan: Well, *programming* is a practical skill best learned by just doing it, and *computer science* is a particular form of mathematics.
21:21:23 <ais523> I have approximately 2.16 A levels in Maths
21:21:33 <ais523> some proportion of that is stats
21:21:55 <pikhq> oerjan: And seeing as you have a Ph.D. in math, well, it makes sense you'd find CS easy...
21:21:59 <Taneb> I find out if I've got a maths GCSE in August
21:22:09 <ais523> Phantom_Hoover: the way it worked when I did maths A level (and still works similarly nowadays, although some of the details have changed) is that you do "modules"
21:22:16 <oerjan> this is when we find out Phantom_Hoover has too passionate enemies in life: brainfuck derivatives and statistics
21:22:25 <ais523> and six modules, subject to some constraints, gives you an A level; your grade is the average grade of the modules
21:22:41 <ais523> another (distinct) six gives you a second A level
21:22:44 <oerjan> although possibly too, too
21:22:57 <monqy> time for a brainfuck derivative based on statistics, or perhaps statistics about brainfuck and derivatives thereof
21:23:02 <ais523> the actual names vary based on which modules; I did a balance mix and ended up with simply Maths and Further Maths
21:23:06 <pikhq> Stochastic Brainfuck, eh?
21:23:15 <Taneb> But, by the time I'm 23, I could have a Masters in Maths!
21:23:15 <ais523> and did thirteen modules, so I still have one left over (the one with the lowest mark that wasn't compulsory)
21:23:39 <ais523> presumably this would mean that if I did another five, I could get Even Further Maths
21:23:42 <ais523> or maybe there's a time limit on the things
21:23:47 <Taneb> To far you've past it maths?
21:24:23 <pikhq> Phantom_Hoover: Math generally is taught poorly.
21:24:30 <pikhq> And so *utterly* slowly, too.
21:24:37 <oerjan> wait is that what gcse means, i thought Taneb was older than that :P
21:24:39 <ais523> I was quite lucky, they sat me in a corner and gave me a bunch of textbooks
21:24:43 <ais523> and told me to go learn maths
21:25:07 <ais523> Phantom_Hoover: is that to do with the fractional adjustment between English and Scottish tariffs, or something else?
21:25:07 <Taneb> I have 0 A-Levels, and 1 GCSE
21:25:14 <ais523> ah, the UCAS reference cleared it up
21:25:15 <Taneb> I find out in August if that goes up to I think the equivalent of 12
21:25:22 <ais523> I agree with them that the Scottish qualifications are worth more
21:25:29 <pikhq> oerjan: It's one of the testing bits towards the end of secondary education in England, I think Scotland, and no idea about Northern Ireland or Wales.
21:25:34 <ais523> but Universities generally admit based on English scales
21:25:41 <Taneb> Wales is the same as england
21:25:59 <ais523> pikhq: the general rule is that England and Wales are the same, and Scotland and Northern Ireland are different from those and from each other
21:26:03 <Phantom_Hoover> ais523, although I only have 0.75 A*As on A levels with additional AS (9 units).
21:26:16 <pikhq> ais523: Yeah, but I prefer to make no assumptions about the UK.
21:26:17 <ais523> Phantom_Hoover: an AS is the first half of an A level
21:26:27 <ais523> you do that first, then you do an A2 that upgrades the AS to a full A level
21:26:52 <Phantom_Hoover> <ais523> pikhq: the general rule is that England and Wales are the same, and Scotland and Northern Ireland are different from those and from each other
21:26:58 <ais523> you can stop after the first half if you like; for instance, I have an AS in Electronics (as well as a GCSE in Systems and Control, which is a euphemism for electronics, and a MEng in Electronic Engineering)
21:27:13 <pikhq> It's the easy solution for Americans who actually know that England, Wales, Scotland, and Northern Ireland have different systems for things.
21:27:25 <pikhq> (or, indeed, that they are *actually different*)
21:27:32 <ais523> very few things are different between England and Wales in terms of administration
21:27:42 <ais523> they're starting to diverge a bit more now Wales has its own government, but that's pretty recent
21:27:43 <Phantom_Hoover> And the lack of a separate table in the tariffs suggests that they do use the English system.
21:27:48 <Taneb> That's because England actually conquered Wales pretty early on
21:27:52 <ais523> (and Wales speaks a mix of English and Welsh)
21:28:01 <Taneb> Rather than had a weird political union
21:28:11 <Taneb> Caused by ending up with the same guy in charge
21:28:14 <ais523> and Scotland was never successfuly conquered by the English; rather, intermarrying lead to England and Scotland having the same king at the same time
21:28:14 <pikhq> ais523: Still. England and Wales are *likely* to not diverge, but they do on some things.
21:28:42 <ais523> which lead to a mess, as the way inheritance works, you can't diverge from thatp oint
21:28:51 <pikhq> Phantom_Hoover: And then had a series of conflicts about it, bringing a big mess.
21:28:58 <Phantom_Hoover> <ais523> which lead to a mess, as the way inheritance works, you can't diverge from thatp oint
21:29:06 <pikhq> ais523: If they had differing laws for inheritance.
21:29:11 <ais523> Phantom_Hoover: I know it is
21:29:18 <ais523> I know it's more complex than I understand
21:29:25 <Taneb> There was a short period where England was at war with itself
21:29:28 <pikhq> There would be even more headaches, though.
21:29:31 <Taneb> Ended up with Christmas parties being banned
21:29:35 <ais523> Taneb: do you mean the Civil War?
21:29:50 <Taneb> Scotland wasn't at war with itself, though
21:29:51 <ais523> that was pretty complicated too
21:30:06 <ais523> and England wasn't at war with itself, it was basically people loyal to the King versus people loyal to Parliament
21:30:26 <Taneb> Okay, a bit of England versus a different bit of England
21:30:52 <Taneb> But the end result was a very weird school and political system
21:31:00 <ais523> it's just like any other rebellion, really, except that a) both sides were technically in charge beforehand, and b) both sides were pretty large
21:31:04 <ais523> rebellions are normally rather asymmetrical
21:31:23 <Taneb> But Cromwell banned Christmas
21:31:25 <ais523> nowadays, incidentally, the Queen still has to ask for permission to enter Parliament, as a result of all that
21:31:39 <ais523> and a guy with a sword stands inside the door of Parliament just in case it gets invaded again
21:31:41 <Taneb> The Queen is banned from the House of Commons
21:31:41 <pikhq> Taneb: You already had a weird school and political sstem.
21:31:49 <pikhq> Just got *further* weirdness.
21:31:59 <ais523> (rather awesomely, a couple of years ago a protestor broke into Parliament and the guy with a sword actually drew it and pointed it at him)
21:32:05 <pikhq> Such as the House of Commons, the whole ceremony with the Black Rod, etc.
21:32:10 <Taneb> The Serjeant at Arms
21:32:22 <oerjan> <Phantom_Hoover> It's... a bit more complex than that. <-- yeah i recall Hanover split from the UK when victoria became queen because they did _not_ have the same succession rules
21:32:24 <Taneb> Is the name of the guy with the sword
21:32:27 <pikhq> Erm, the House of Commons'
21:32:38 <ais523> Taneb: yep, compleat with old-fashioned spelling
21:32:39 <Phantom_Hoover> oerjan, no, I mean more how James ended up being I and VI.
21:33:02 <Taneb> That's because Scotland and England didn't officially become the same country until Anne
21:33:09 <Taneb> We use the lowest possible number now
21:33:20 <Taneb> Or is it the highest?
21:33:24 <ais523> I think it just follows English numbering
21:33:32 <ais523> presumably there are Scots annoyed at that
21:33:49 <Phantom_Hoover> Taneb, it was a roundabout way of indicating the whole situation that led to unification.
21:33:49 <pikhq> Probably also annoyed at the English Parliament becoming the UK Parliament.
21:34:31 <pikhq> Phantom_Hoover: Actually, yeah, that's probably more annoying for people in England.
21:34:37 <Taneb> If I lived TWENTY MILES WEST, I would get free University tuition
21:34:39 <ais523> indeed, Scotland got the best end of that deal
21:34:56 <Taneb> I'm a Northumbrian
21:35:01 <ais523> presumably Taneb lives near the English/Scottish border
21:35:03 <pikhq> Not being able to have any legislative process that applies to them exclusively is probably a bitch.
21:35:09 <Phantom_Hoover> Sure, but the shortest distance would be normal to the border.
21:35:22 <ais523> this also implies that he's a Northener, and thus anyone from London is contractually required to hate him
21:35:29 <oerjan> Phantom_Hoover: well yeah i hear some scots insist on calling the current queen Elizabeth I ...
21:35:42 <ais523> (I'm from Birmingham, which means that nobody has a regional requirement to hate me, but many people have a regional requirement to laugh at me)
21:36:06 <pikhq> oerjan: If only the Commonwealth Realms did that.
21:36:07 <Phantom_Hoover> Taneb, oh, huh, the border is more vertical on the east than I thought.
21:36:19 <pikhq> As technically Her Majesty *is* their first Queen by the name of Elizabeth... :P
21:37:21 <ais523> Phantom_Hoover: indeed, I was thinking "why west? oh right, the border isn't straight"
21:37:32 <ais523> hmm, has Scotland /ever/ been successfully invaded?
21:37:42 <ais523> I know the Romans tried and failed
21:37:49 <ais523> and so did the English, multiple times
21:38:17 <ais523> oh, I think it was successfully invaded by people from modern-day Ireland once (which is where the name Scotland comes from)
21:38:27 -!- azaq23 has quit (Quit: Leaving.).
21:39:06 <oerjan> <Taneb> I'm a Northumbrian <-- and you say that after i was joking the other they that you were coincidentally Elliott's next door neighboor
21:39:10 <pikhq> Apparently some parts of it were actually occupied by Rome.
21:39:19 <Phantom_Hoover> ais523, I don't think they got all that much of it, though.
21:39:53 <ais523> Phantom_Hoover: probably not
21:40:02 <ais523> I imagine invading Scotland gets really difficult after a while
21:40:08 <ais523> past a certain latitude, even the A-roads are single track
21:40:16 <pikhq> Up there with invading Russia, it seems.
21:40:23 -!- Taneb has quit (Ping timeout: 255 seconds).
21:40:47 <pikhq> Best way to do it is just to luck out in having the same monarch as Scotland.
21:42:08 <ais523> one amusing thing to do is to look at a map of Scotland colored by which way people vote
21:42:32 <ais523> because basically the whole country votes for Labour, sometimes the Liberal Democrats (although probably not next time round...), or the SNP
21:42:42 <ais523> and there's one constituency which is staunchly Conservative, looking out of place
21:43:34 <ais523> I think it's a lowland place full of richish farmers, whereas most of Scotland is hilly or mountainous
21:44:14 <ais523> we're discussing the UK here, you should use British spellings!
21:44:39 * Phantom_Hoover notes that the only places that voted Lib Dem were Orkney and the Shetlands.
21:45:00 <ais523> Phantom_Hoover: oh right, Scotland has had a full election since the Lib Dem collapse
21:45:19 <HackEgo> 399) <Phantom_Hoover> Scotland turns from red and yellow to A DIFFERENT SHADE OF YELLOW
21:45:37 <ais523> (for people who don't know: the Lib Dems were the third party for ages, and due to a near-tie in the UK general election, actually ended up in power, much to everyone's surprise)
21:46:02 <oerjan> "were"? did they collapse that much?
21:46:07 <ais523> (and then when they didn't keep every promise they'd ever made, especially with having to negotiate with the Conservatives, everyone abandoned them in disgust)
21:46:16 <ais523> oerjan: they've been coming fourth or fifth or sixth in by-elections
21:46:30 <ais523> they're still in power with the Conservatives, ubt only because there hasn't been an election since
21:46:36 <ais523> which is a pity, because I rather like them
21:46:48 <oerjan> ais523: basically british voters don't understand the concept of coalitions, i guess
21:46:49 <ais523> and think that most of the reasons people are hating them are stupid
21:47:11 <ais523> also, there's the whole tuition fees thing (which Phantom_Hoover won't have noticed, being Scottish)
21:47:26 <ais523> basically, after the election, all three parties did a U-turn on what to do about university funding
21:47:43 <ais523> and the Lib Dems had the most popular viewpoint beforehand, so people got most annoyed about them changing their mind
21:48:02 <ais523> the funny thing is, all three parties are actually proposing the same thing, just with language that makes it seem different
21:48:35 <oerjan> ais523: with the two party systems of the UK and the US, it's a wonder that the two top parties have ever changed
21:48:38 <ais523> the difference is between people going to university "for free" and paying a percentage of their income afterwards for a while (popular opinion)
21:48:50 <oerjan> i guess it took some _major_ societal change
21:49:06 <Phantom_Hoover> <oerjan> ais523: with the two party systems of the UK and the US, it's a wonder that the two top parties have ever changed
21:49:15 <ais523> and people going to university and paying a lot of money, but then getting a loan for the same amount of money, and paying off the loan with a percentage of their income afterwards for a while (unpopular opinion)
21:49:32 <Phantom_Hoover> Well, in the UK the 2-party system is *far* less pronounced than that in the US.
21:49:33 <ais523> I can't figure out why one opinion is popular and the other is unpopular, given that with a bit of number-tweaking they come to the exact same thing
21:49:50 <ais523> and yes, the US has a very strong 2-party system, the UK doesn't
21:50:03 <pikhq> "Hard-coded" more like.
21:50:50 <pikhq> The last time we had a vaguely viable third party was when Theodore Roosevelt started the Progressive Party. In 1912. For 4 years.
21:51:08 <ais523> basically, think of it this way: if both the top 2 parties were simultaneously embroiled in a major scandal in the UK, it would be enough to tip a third party ahead of them across a wide spread of the country
21:51:12 <ais523> in the US, it wouldn't
21:51:17 <pikhq> Even then, he didn't *win*. Just got second place.
21:51:31 <ais523> probably a third party wouldn't win anywhere, or even come second
21:51:45 <ais523> also, you get occasional oddball wins in the UK as well
21:51:51 <ais523> like the Green Party winning a seat last election
21:52:08 <ais523> the evidence is very clear that they'd decided that it was the seat they had the best chance of winning, and focused all their efforts on it
21:52:09 <pikhq> It's a freak occurance for a third-party candidate to win a state or local seat.
21:52:29 <pikhq> Even less likely to win in the House.
21:52:32 <ais523> the general election before last, the Save Kidderminster Hospital Party won a seat
21:52:35 <pikhq> Nearly impossible to win in the Senate.
21:52:36 <ais523> or was it two seats? I can't remember
21:52:47 <ais523> (presumably more than one constituency lives within range of Kidderminster Hospital)
21:52:56 <pikhq> And for President, it takes the third party *replacing* a party.
21:53:28 <ais523> and as a result, the BBC ended up having to come up with a color for them on their maps (I think it was a dark greyish reddish-purple)
21:54:19 <ais523> oh, here we go: http://en.wikipedia.org/wiki/Independent_Kidderminster_Hospital_and_Health_Concern
21:54:23 <ais523> looks like they only got one seat
21:55:09 <ais523> and have been trying to expand their manifesto to not be specific to the one hospital (which obviously doesn't come up in debate in Parliament all that often)
21:55:20 <ais523> (although I bet they tried to change the subject to it whenever they could)
21:55:24 <ais523> (so as to have a reason for existing)
21:56:08 <oerjan> it doesn't say whether they managed to save the hospital unit
21:56:37 <ais523> I know, that's the reason I went there in the first place :(
21:58:12 <oerjan> it doesn't seem to say in the Kidderminster article either
21:58:45 <Phantom_Hoover> http://www.reddit.com/r/philosophy/comments/ih7qd/how_can_some_people_be_so_sure_that_we_cant_know/c23rb67
21:59:04 <ais523> so, I tried to go to their website, http://healthconcern.org.uk/
21:59:14 <ais523> and wow, website design from 199x (I forget which x, can someone remind me?)
21:59:57 <ais523> ah, the website implies that they downgraded the hospital in 2000, before the party won its seat
22:00:06 <ais523> and they've been fighting to have it restored to its former state
22:11:39 -!- Nisstyre has joined.
22:11:52 -!- olsner has quit (Ping timeout: 252 seconds).
22:12:18 -!- Vorpal has quit (Ping timeout: 264 seconds).
22:13:01 -!- Vorpal has joined.
22:13:20 -!- olsner has joined.
22:29:30 <Sgeo> Phantom_Hoover, what? Is it wrong to correct someone who's mistaken?
22:38:51 -!- Sgeo_ has joined.
22:40:15 -!- Sgeo has quit (Ping timeout: 255 seconds).
22:45:35 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:48:12 <Sgeo_> "Our most common question these last few days has been, "The email address 'submit at machineofdeath dot net' doesn't work! My email program says 'Invalid address!' How do I send in my story??"
22:48:12 <Sgeo_> In response we must gently explain that it is actually "submit@machineofdeath.net". "
22:48:37 <Sgeo_> Hmm, crud, wonder if spambots read these logs
22:52:40 <oerjan> well google rarely finds them
23:18:25 -!- quintopia has quit (Ping timeout: 260 seconds).
23:19:32 <Sgeo_> "Many natural dog food supplements boast garlic as a natural flea preventative.
23:20:26 <ais523> presumably fleas don't like the smell of garlic
23:20:33 <oerjan> secretly, it's really to ward against vampire dogs
23:20:42 -!- quintopia has joined.
23:23:19 <Sgeo_> But garlic in dog food just...
23:23:29 -!- NihilistDandy has joined.
23:23:38 <Sgeo_> Or is it just large amounts that are bad?
23:25:13 <oerjan> i only know about chocolate and dogs...
23:33:25 -!- CakeProphet has joined.
23:33:25 -!- CakeProphet has quit (Changing host).
23:33:25 -!- CakeProphet has joined.
23:46:30 <pikhq> And the whole thing with chocolate and dogs thing is overblown.
23:46:45 <pikhq> It's actually pretty hard to give a dog a lethal dose of chocolate.
23:47:04 <pikhq> Too little, and it doesn't matter much. Too much and the dog vomits it right away.
23:47:05 <ais523> even so, mildly poisoning a pet is a bad thing to do, right?
23:47:12 <pikhq> ais523: Yes, I wouldn't *recommend* it.
23:47:24 <pikhq> Cause you'll either have diarrhea or vomit to clean up after.
23:52:06 -!- CakeProphet has quit (Ping timeout: 276 seconds).
23:52:27 -!- CakeProphet has joined.
23:52:28 -!- CakeProphet has quit (Changing host).
23:52:28 -!- CakeProphet has joined.
00:00:57 -!- itidus20 has joined.
00:01:10 -!- Phantom_Hoover has quit (Quit: Leaving).
00:03:27 -!- copumpkin has joined.
00:03:27 -!- copumpkin has quit (Changing host).
00:03:27 -!- copumpkin has joined.
00:17:51 <zzo38> I have now made approximately one third of the DVI optimizer program.
00:45:28 -!- hagb4rd has joined.
00:50:18 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
01:10:40 -!- BeholdMyGlory has quit (Remote host closed the connection).
01:12:31 -!- myndzi has quit (Ping timeout: 258 seconds).
01:13:47 -!- myndzi has joined.
01:21:00 -!- Sgeo has joined.
01:35:18 -!- Sgeo has quit (Ping timeout: 255 seconds).
01:35:42 -!- Sgeo has joined.
01:43:43 -!- Sgeo_ has joined.
01:45:39 -!- Sgeo has quit (Ping timeout: 255 seconds).
01:46:32 -!- CakeProphet has quit (Ping timeout: 246 seconds).
01:47:22 <zzo38> I found list of spells of D&D game including "Explosive Familiar" it makes the caster's familiar explosive, and "Feign Invisibility" which causes others to believe the caster is invisible even though they can clearly see the caster, they must think they can see him somehow even if he is invisible.
01:48:21 -!- yorick has quit (Ping timeout: 255 seconds).
01:50:08 -!- yorick has joined.
02:43:18 <zzo38> Do you know Double Fanucci?
02:58:26 -!- pikhq_ has joined.
03:02:06 -!- pikhq has quit (Ping timeout: 264 seconds).
03:40:55 <itidus20> zzo, sort of like how stage hypnosis is supposed to work eh.
03:42:10 <itidus20> i've seen an [obviously staged] video of a guy who hypnotized a woman to think he was invisible and then he would tickle her with a feather and make her look up with confusion
03:42:45 <quintopia> zzo38: do you know any good math games?
03:43:00 <itidus20> but i am trying to put such bizzare fetishes behind me.
03:43:22 <itidus20> it might not have been youtube :-? i forget
03:44:17 <itidus20> and there is that book whose name i am not sure of which apparently has this word fnord which the citizens have been conditioned to block out
03:44:32 <itidus20> instilling fear in them because it is present in their texts even though they cannot conciously see it
03:46:59 <itidus20> as far as I know, the actual experience of such things is a deep form of submission whereby you let someone force you to fake it till you make it
03:47:21 <oerjan> fungot: do you know anything about this?
03:47:22 <fungot> oerjan: computergram via first! peter norton, founder of peter norton, founder of peter norton, founder of peter norton, founder of peter norton, founder of peter deutsch and warren teitelman ( all the major problems, consider that " if the translators of the
03:47:29 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc jargon* lovecraft nethack pa speeches ss wp youtube
03:47:35 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
03:47:49 <oerjan> fungot: could you elaborate on that?
03:47:50 <fungot> oerjan: 1-based would be confusing? i hope i someday understand call/ cc will restore the stack and the registers.
03:48:04 <oerjan> fungot, you disappoint me.
03:48:04 <fungot> oerjan: i'm just curious if he had his student do it :)
03:49:00 <oerjan> something is wrong, i cannot see fungot's fnords. oh wait...
03:49:01 <fungot> oerjan: yes... roots are bad...
03:49:37 <Sgeo_> So, who has the mysterious libc.so?
03:50:05 <itidus20> it was after a girl in a chatroom started actually doing this to me that I knew I had to leave her.
03:51:54 <oerjan> Sgeo_: some guy called Error: Malformed requestDomain Name
03:55:47 -!- Lymee has joined.
04:07:39 <zzo38> quintopia: I don't know a lot of math games
04:07:54 <zzo38> Although there are some games that you can possibly involve mathematics with
04:08:42 <itidus20> quintopia, single or multiplayer?
04:09:02 <zzo38> I don't have a specific example; I just mean in general some specific things having to do with certain games might be related to mathematical involving things, or maybe I wrote something wrong I don't actually know how to say this so I write like this is all mixed up sorry
04:10:52 <itidus20> I have a small stash of ebooks which I more or less just hoard and don't investigate, some of which may actually be relevant.
04:13:30 * Sgeo_ vaguely remembers some computer game from when he was a kid
04:14:03 <zzo38> When playing pokemon card I play for overmate. (Even if overmate is not relevant to the rules being used; it is certainly not relevant in the standard rules.)
04:14:25 <itidus20> lewis carroll, raymond smullyan, douglas hofstadter
04:14:46 <itidus20> i don't know if they entirely reach the topic.
04:14:52 <zzo38> I have one book written by Douglas Hofstadter.
04:16:16 <itidus20> i am sure john conway is relevant to the topic but i don't have any ebooks that are really related to him
04:19:41 <oerjan> winning ways, probably
04:20:39 <itidus20> puzzles are more common than actual games
04:21:16 * oerjan has simon tatham's lightup in the other window
04:23:26 <itidus20> depressing wiki comment backs me up "This article is about using mathematics to study the inner-workings of multiplayer games which, on the surface, may not appear mathematical at all. For games that directly involve mathematics in their play, see mathematical puzzle."
04:25:19 <itidus20> anyway here is the page: http://en.wikipedia.org/wiki/Mathematical_game
04:28:07 <quintopia> all the math games i know are too hard for mere humans to do in their heads
04:30:34 <itidus20> As a wannabe game designer it gives me great pain to think about how the only reason games are possible is due to imperfections in the players.
04:31:08 <itidus20> relative to perfect play that is
04:31:37 <itidus20> but thats probably a naive view i hold too often
04:32:13 -!- oerjan has quit (Quit: Good night).
04:32:49 <itidus20> That is the cynical depressing view that all gaming is to demonstrate some level of deviation from perfect play higher than the opponent.
04:33:35 <itidus20> Then again we find that perfect play is a waste of time.
04:34:02 <itidus20> And yet it helps motivate us to play if we idealize perfect play.
04:34:18 <itidus20> All of this of course is my cynical views which are probably wrong.
04:35:57 <quintopia> this is only true of mathematical games
04:36:42 <quintopia> here's an example: the simple three player game help-or-hinder
04:37:16 <quintopia> so winning has nothing to do with perfect players...
04:37:39 -!- Elizacat has quit (Read error: Operation timed out).
04:38:03 <itidus20> i can think of arguments against my earlier comments but its all just a pile of crap comments
04:38:41 -!- mtve has quit (Ping timeout: 252 seconds).
04:39:03 <itidus20> you know what i havent seen much is coop games
04:39:34 <itidus20> i was talking to this guy once about it
04:40:32 -!- Elizacat has joined.
04:41:49 <zzo38> Now I have the DVI file of my and my brother character sheet. Currently it has no story text or footnotes.
04:42:26 <itidus20> omg the first result on google is an xkcd page
04:42:36 -!- mtve has joined.
04:43:20 <itidus20> http://forums.xkcd.com/viewtopic.php?f=3&t=16990
04:43:42 <itidus20> omg quintopia posted on that page
04:46:47 <zzo38> Did you expect the Spanish Inquisition?
04:47:13 <itidus20> well i searched on: "3 player game" "help or hinder"
04:47:24 <itidus20> didn't work in bing so i proceeded to google and it did
04:47:41 <zzo38> OK now I know what you search
04:47:56 <itidus20> yet an MS spokeswoman says "if google didn't exist bing would be good enough"
04:48:52 <quintopia> i didn't remember that that guy invented that game
04:49:15 <itidus20> yeah good enough for me to use as fertilizer
04:50:00 <itidus20> so.... by having an odd number of players the dynamics become much more complex
04:50:42 <Sgeo_> Isn't Diplomacy a 7 player game?
04:50:55 <Sgeo_> Not really mathematical in that way though
04:51:12 <Sgeo_> Although I wonder what would happen if you took the board out and just made it that sort of game
04:52:08 <itidus20> this very sort of topic is what eventually led me to a chatroom for esoteric programming languages
04:53:14 <itidus20> so this page is like anti-3 player games
04:54:23 <zzo38> Theoretical maximum overmate in pokemon card is eight. Try to design a situation using only cards in Pokemon Card GB2 where the player whose turn it is can win with eight overmate on this turn. Better if the number of things that must be done is increased and/or if chance based things are involved although when combining them properly you can guarantee a win
04:56:28 <quintopia> http://en.wikipedia.org/wiki/Phutball this one is good. solving it is PSPACE-complete!
04:56:29 <zzo38> Alternatively, instead of overmate (since overmate is not standard rule), do such that you have six side cards remain and zero cards in draw pile, opponent has many cards in draw pile but only one side card remain. And you are poisoned.
04:56:48 <itidus20> i am a genius of course.. so ideas often come to me
04:57:33 <quintopia> but you are keeping it to yourself
04:57:37 <itidus20> ok i am "confident" you have not heard of this game before
04:57:51 <zzo38> This is "The Ultimate Pokemon Card Puzzle Game".
04:58:01 <itidus20> so.. each player has 2 private 8x8 boards
04:58:50 <zzo38> itidus20: OK. So far. But that isn't much.
04:59:02 <itidus20> they each have a pair of 8x8 boards that only they can see.. thus a total of four 8x8 boards
04:59:34 <itidus20> they also have a bunch of tiles... lets say 128 tiles just to be safe
05:00:16 <zzo38> That should be sufficient to cover the board unless they are allowed to be stacked.
05:00:25 <itidus20> and uh.. 2 more tiles of a second color.. and 2 more tiles of a third color
05:00:50 <itidus20> so.. color 1) 128 tiles, color 2) 2 tiles, color 3) 2 tiles
05:00:51 <zzo38> OK what are these second and third colors mean?
05:01:26 <zzo38> I understand so far what you have written, but not sure of its significance yet due to you can write it later the rules, and then is known its significance to the game.
05:01:43 <itidus20> ok now.. they begin by placing color 3 tiles on the boards.. 1 on each board
05:02:37 <itidus20> now, on one of the boards, they place a color 2 tile somewhere
05:03:31 <zzo38> OK. Do you place of your choice position? Is it allowed to stand on top of the other tile or not?
05:03:48 <itidus20> oh.. its allowed anywhere except the first tile position
05:04:10 <itidus20> for now.. that rule might turn out to need altering
05:04:52 <itidus20> ok.. next.. you build a maze with the color 1 tiles leading to the color 2 tile
05:05:14 <itidus20> from the color 3 tile to the color 2 tile
05:05:26 <zzo38> OK. (I was going to ask exactly that)
05:06:50 <itidus20> diagonal moves are not possible, but the maze has to be a solid object in the way that a tetris piece is a solid object
05:07:04 <zzo38> OK, I think I understand what you mean.
05:07:21 <zzo38> Have gaps? How would that work?
05:07:32 <itidus20> well im not sure.. this part is tricky to formalize in words
05:08:03 <zzo38> If you cannot do it in words, do it in pictures, or in mathematics.
05:08:11 <itidus20> so anyway... what happens is.. in any order.. doesn't matter.. each turn.. both players are told which directions have walls
05:08:21 <itidus20> so it might be like "east and west have walls"
05:08:51 <quintopia> itidus20: the easiest way to say what i think you are trying to say is "no 2x2 region can contain no color 1 tiles"
05:09:08 <itidus20> and then the player tells the other player which direction he makes his move
05:09:13 <zzo38> I think I can see what this is doing a bit
05:09:33 <itidus20> and both players update their boards.. and its a race to reach the end of the maze
05:09:44 <quintopia> why does each player have two mazes
05:10:01 <quintopia> so they can construct the other player's maze on their own board
05:10:16 <zzo38> Yes I think I know exactly what this is now.
05:10:17 <quintopia> it's like multiplayer adventure game :P
05:10:40 <quintopia> except you can never be in a maze of twisty little passages, all alike
05:10:46 -!- mtve has quit (Ping timeout: 260 seconds).
05:10:49 <zzo38> Something like battleships, except not battleships at all.
05:11:20 <quintopia> an idea: what if the mazes can be arbitrary graphs but every node has unique number? :P
05:12:10 <quintopia> sorry, i always try to make things difficult. for instance when i saw the phutball game i said "i wonder if it would be harder on a projective plane?'
05:12:20 <zzo38> Then it is somewhat similar to Wumpus game??
05:12:21 <itidus20> oh i am empty of ideas now. just had to spill that one
05:12:39 <quintopia> or you can make it so the mazes are on tori!
05:13:04 <zzo38> quintopia: Have you ask on this channel a few days ago about FurryScript document? I have now written the document in case you were looking for it. Or, was it someone else who asked for it?
05:13:14 <quintopia> yes i saw you said that and thanked you
05:13:40 <zzo38> Maybe you can make a maze with the tiles and also chess as well.
05:15:48 <itidus20> it is by jumping into such random convos that such ideas come to me
05:17:04 <itidus20> zzo, yeah i like to consider every possible use of the chessboard other than to play chess :-?
05:18:37 <zzo38> itidus20: Yes you can make other games using the same or similar board. Some game similar to chess includes Xiangqi, Shogi, played with their own board, but it is still like chess, you still take turn moving 1 piece each, you attack opponent's king and can win, etc.
05:18:48 <itidus20> i actually created a wild image with my wacom tablet the other day to show my desire to stretch the game of chess
05:20:42 <zzo38> There are many variants and I have invented some chess variants. Some which are played with the same board. I made one game "123456 Chess" which is a chess variant that you can use a chess/checker/backgammon set. You start with rook standing on checkers, and two dice each with 1 on top at start. You can advance the dice which uses up a turn. Capture with checkers must be done if able.
05:22:05 <zzo38> Or, another game, once my brother put eight checkers in front of the pawns for joke. But then we decided to actually play that way. We discussed the rules although as it turned out both of us already agreed on the exact rules to use in our mind, before discussion!
05:22:11 <itidus20> I liked the chess variant shown on the big bang theory
05:22:26 <quintopia> i made my own game with chess pieces once. it had a much higher branching factor than chess, because it was possible to respawn captured pieces
05:22:53 <itidus20> http://oi55.tinypic.com/15n2fro.jpg
05:22:55 <quintopia> but the goal was simpler...simply to get a pawn to the opponents first rank
05:23:16 <quintopia> but i forgot the initial configuration and rules of motion
05:24:42 <zzo38> I have read of another variant where that is the case, win by a pawn on opponent's first rank.
05:25:09 <zzo38> But in that variant, it was otherwise as normal (FIDE) chess and you can win by checkmate too.
05:26:01 <itidus20> i dont like chess because i have no clue how to play.. and that being the best is ridiculously difficult
05:26:37 <itidus20> and a game like chess to me is the perfect thing to exploit into other games
05:28:33 <zzo38> I once had idea in Magic: the Gathering cards, a card, both players assign permanents to each chess piece (with not allowed two pieces for the same permanent), and then play chess. Any captured piece causes corresponding permanent to be discarded. In case of checkmated, losing player permanent corresponding to their king is discarded.
05:29:09 <itidus20> the maze thing is probably not as good in practice as it sounds.
05:29:33 <zzo38> itidus20: I believe you.
05:31:01 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
05:31:10 <zzo38> Yes, I think it is something like battleships, except that it isn't battleships at all.
05:31:13 -!- rodgort has joined.
05:32:05 <zzo38> Do you know how to play Magic: the Gathering card or play pokemon card?
05:32:10 <itidus20> you're right... its basically battleships except reduced down to 1 small ship
05:33:42 <quintopia> itidus20: i am getting another idea for a maze game
05:34:41 <zzo38> If anyone has idea, try to invent "The Ultimate Pokemon Card Puzzle Game".
05:34:57 <quintopia> this one will take some thinking since it is not symmetrical
05:35:03 <quintopia> zzo38: i'm not really into pokemon
05:35:52 <zzo38> quintopia: OK. You are not really into pokemon
05:35:57 <itidus20> quintopia: I once had an idea about generating a maze by dice rolls
05:36:57 <quintopia> itidus20: i want to make a cross between pacman and fox-and-geese, where the geese player is the only one who knows the maze and the positions of everything.
05:38:01 <itidus20> zzo, i am fascinated by some dragonball z emulated roms based on card games
05:38:22 <itidus20> ah fox and geese.. i have a book around with a lot of games described
05:38:24 <quintopia> but the problem is you can't let the maze be designed by the geese player because they could make it a labyrinth (unicursal) and trap the fox too easy
05:38:24 <zzo38> I once had an idea about making up an entire set of rules for a chess variant by dice rolls.
05:38:44 <quintopia> zzo38: such games have existed since the beginning of chess
05:39:19 <zzo38> No, I mean, before the game starts roll the dice to determine each individual small part of the rules. And then the game is played without dice.
05:39:20 <itidus20> theres 1 special book about chess history which i have been unable to locate on the internet
05:40:23 <quintopia> zzo38: make it a drinking game too
05:40:28 <zzo38> I do know, however, of chess variants with dice, including Ludus Equitum (roll two d6 dice to determine which two pieces you are allowed to move, and it is allowed to pass one or both parts)
05:40:35 <NihilistDandy> quintopia: That's the only way I get anything done anymore~
05:41:11 <quintopia> zzo38: that sounds similar to one particularly ancient one i was thinking of
05:41:13 <itidus20> A History Of Chess by some H.J.R. Murray
05:42:06 <zzo38> Ludus Equitum is not particularly ancient. It is relatively modern. However, it is the Society of Creative Anachronism game, so it is using old style rules.
05:42:43 <NihilistDandy> itidus20: Surprisingly, I can't find it either. I thought I had a near comprehensive set of books on chess.
05:43:52 <itidus20> I learned about it when I started to want to know about the very origins of chess
05:44:48 <NihilistDandy> I hope I solve chess. That'd look great on a resume~
05:47:27 <itidus20> theres something so compelling about chess.. but yet for me there is a certain boredom that i imagine with it
05:48:27 <NihilistDandy> Chess is always exciting, unless you play with people who know a little about it
05:48:42 <NihilistDandy> People who know nothing are interesting because they are hard to predict
05:48:56 <NihilistDandy> People who know a lot are exciting because they think in the metagame
05:49:20 <NihilistDandy> People who know a little have a small repertoire and decent middlegame. No fun at all
05:49:52 <zzo38> itidus20: I think I have also played some kind of card game Dragonball Z on NES, although I am unsure of the rule. Each card two numbers, one above is dots tell you how many times to move, the one below I am not sure what it means.
05:50:15 <zzo38> But I like pokemon card.
05:50:20 <itidus20> zzo38: yeah.. thats exactly the kind of game i mean. they're fun to watch
05:50:31 <coppro> I much prefer Magic to Pokemon
05:50:36 <itidus20> i have no clue what goes on though
05:52:20 <zzo38> I do know reading numbers with kanji, and also some words with hiragana and katakana, a bit.
05:52:48 <itidus20> oh well i think theres some translations anyway
05:52:56 <itidus20> but even still i would have no idea
05:54:27 <itidus20> so, zzo, did you learn much about chess variants?
05:55:22 <itidus20> i actually basically independantly discovered the theory of chess variants
05:55:45 <itidus20> and, at the end i googled it and found out with dismay that what i had discovered was nothing new at all
05:55:57 -!- Taneb has joined.
05:56:32 <Sgeo_> Theory of chess variants>
05:56:42 <Sgeo_> How is there a "theory" of such things?
05:56:51 <zzo38> But what I can tell is you are allowed to step in the same square twice when walking, and that when you have to fight it might be useful if Gokuu and Pikkoro stand in the same place because then you can have both on your side fighting. And there are also some item cards. And different tiles have different effect stepping there. Also "Z" seems to mean eight
05:56:56 <itidus20> perhaps theory is the wrong word.. but i will explain
05:56:59 <zzo38> itidus20: http://chessvariants.org/
05:57:25 <Taneb> Anyone want a game of chess?
05:57:27 <itidus20> oh, well, by discovering it myself i had insight into exactly what chess variants are.
05:58:07 <itidus20> they are taking the properties of the individual pieces and forming an abstract class which you might call "chesspiece"
05:58:21 <itidus20> and.. deriving from that class.. new pieces
05:58:42 <itidus20> this general process is exceedingly powerful
06:01:40 <Taneb> Apparently a Whaling meeting ignored Whales!
06:01:44 <Taneb> http://www.bbc.co.uk/news/science-environment-14153779
06:04:55 <itidus20> so naturally most chess moves resolve into vectors. either specific lengths or unlimited
06:05:40 <itidus20> now .. this creates a problem if you imagine a chessboard of say 1000x1000 ... do you still want some pieces crossing it in one go -- that is -- are unlimited movement vectors implied on boards > 8x8
06:05:57 <itidus20> its all very fun for a rainy day
06:06:55 <Taneb> Pieces such as the queen and the rook have less of a vector and more of an angle
06:07:40 <itidus20> of course one way around that would be to divide the board up into districts
06:07:54 <itidus20> where a piece has to stop at the edge
06:08:54 <quintopia> how about making it instead of pieces moving, they clone themselves into some available square. no piece ever moves, but they die after some fixed number of moves.
06:09:06 <Taneb> But what would happen at the border to districts?
06:09:20 <NihilistDandy> Trees seem to be the most correct representation, at least to my mind
06:10:14 <Taneb> What if they're moving in some sort of jelly?
06:10:32 <Taneb> Different pieces can move further through the jelly
06:10:37 <itidus20> the trouble starts when you start trying to abstract moves like en passant and castling
06:11:10 <itidus20> then it feels like a scripting language would be useful
06:11:21 <itidus20> in the definition of the pieces
06:11:22 <quintopia> when a representation is too general to give insight to a human individual, it is not a useful model
06:11:28 -!- zzo38 has quit (Remote host closed the connection).
06:11:29 <Taneb> You know, I've only played en passant once?
06:11:47 <quintopia> en passant was a very late addition to the game
06:12:21 <Taneb> Optimal description of pieces and how they work, I think
06:12:47 <NihilistDandy> En passant is the rule that no one knows about unless they play regularly. Most of the adults I played with recreationally when I was younger had never heard of it
06:13:05 <NihilistDandy> Taneb: Ah, I see. Well, that does make a tree a little ridiculous
06:13:31 <Taneb> I've beaten someone who's beaten someone who was at one time the chess champion of Australia
06:14:28 <NihilistDandy> I suppose what I'm curious about is what exactly we are trying to quantify about the pieces and their movements.
06:15:12 <itidus20> well, i don't know. perhaps the conversation has multi-threaded too
06:15:30 <Taneb> I'm pretty much in a conversation with myself
06:16:06 -!- hagb4rd has quit (Ping timeout: 255 seconds).
06:16:57 <itidus20> So I decided when I was thinking about chess variants that the minimal conditions I would find acceptable is a system which could describe all the rules of chess
06:17:27 <itidus20> including castling and pawns moving 2 spaces on their first go, and queening, and en passant etc
06:18:27 <NihilistDandy> Are we talking a computational system, or a general formalization?
06:18:46 <itidus20> I did try for a little while. I think as I became aware of the existence of professionals who had already done a lot of it, I lost interest.
06:19:45 <itidus20> I had plans on making a program to do it but it started to make me sweat so by then i had thrown in towel
06:20:07 <Taneb> I wouldn't have done that
06:20:15 <Taneb> I would have used the towel to dry off the sweat
06:20:19 <Taneb> And then continued
06:20:27 <Taneb> Maybe got someone to bring you a new towel
06:20:29 <itidus20> I didn't have any exciting ideas anyway
06:20:49 <itidus20> I simply realized that chesspieces could be highly generalized.
06:21:48 <itidus20> Also, there is the draw I feel towards making a realtime chess
06:22:00 <itidus20> I have seen a youtube video of kungfu chess.
06:22:30 <Taneb> http://www.tempestchess.com/
06:25:51 <itidus20> I feel a small joy reading "I would rather take the real-time chess concept as far as it can go."
06:26:52 <itidus20> but yeah.. sumo volleyball sounds like the kind of nonsense I would be looking to create
06:30:34 <Taneb> I would define a piece as: a list of vectors/angles defining how it can move
06:30:47 <Taneb> A boolean defining whether it can "jump" like a knight
06:31:10 <Taneb> And a series of scripts for special events such as castling, en passant, and promotion
06:31:29 <Taneb> Of course, pawns are weird
06:31:38 <itidus20> well, i decided to define a boolean named virgin for whether or not a piece has moved yet :D
06:32:27 <Taneb> How about a second series of vectors/angles defining how it can take, and if this is omitted, the movement one is used for this as well
06:33:08 <itidus20> i also abstracted the role of the king into an idea of like a squad leader
06:33:19 <Taneb> Also, somebody's spammed the wiki
06:33:22 <Taneb> http://esoteric.voxelperfect.net/wiki/100_free_dutch_dating_sites_2008
06:33:26 <Taneb> Can anyone here fix that?
06:34:20 <NihilistDandy> First let me grab those sweet free Dutch dating links!~
06:35:08 <itidus20> so uh.. you could have a chess army consisting of multiple squads..
06:35:15 <itidus20> and if you take down the leader, the whole squad falls
06:35:58 <itidus20> yeah, i am full of ideas on this kind of thing.. it provides me some kind of perverse pleasure
06:38:15 <Taneb> I need to find a charger cable
06:38:31 <Taneb> Actually, can anyone recommend an IRC client for Windows XP?
06:39:36 * Sgeo_ uses Silverex, which has "YChat" in the title bar
06:40:29 <Taneb> Leafchat looks cool
06:40:41 <itidus20> looking on the about box one of the devs of this ychat has an email address silverex@silverex.org
06:41:15 <Taneb> I'm going to leave, shut down, have breakfast, turn on a different computer, install leafchat, and return
06:41:18 <Sgeo_> itidus20, so basically, you're using Silverex, which just puts YChat as the name of the program
06:41:20 <NihilistDandy> Taneb: Leafchat's got perl scripting and so on, which is neat
06:42:05 <itidus20> its listed as: X Chat 2 in the start menu
06:45:29 <Sgeo_> Silverex is just a build of XChat
06:46:21 -!- Taneb has quit (Ping timeout: 276 seconds).
07:08:12 -!- ais523 has quit (Remote host closed the connection).
07:08:18 -!- myndzi\ has joined.
07:10:33 -!- myndzi has quit (Ping timeout: 264 seconds).
07:11:03 -!- Taneb has joined.
07:13:25 <Taneb> This computer is quite slow
07:13:38 <Taneb> It was a normalish computer in 2006
07:13:49 <Taneb> I installed Dwarf Fortress
07:20:28 -!- mtve has joined.
07:24:30 <Taneb> So, what's happening in the world of esoteric programming?
07:25:35 <Taneb> "it B-\"? Sounds interesting
07:25:39 <Taneb> Could you elaborate?
07:26:27 <NihilistDandy> http://blogs.discovermagazine.com/discoblog/files/2010/11/hipster-cat.jpg
07:32:33 <Taneb> Oh, why are ink cartridges so tricky to replace?
07:33:50 <pikhq_> To punish you for not buying a laser printer.
07:34:31 <Taneb> I was holding it upside down
07:35:02 <pikhq_> Still, you should definitely invest in a laser printer.
07:35:19 <pikhq_> Y'know, a printer that you'll probably have to put in your will for your grandchildren.
07:37:23 <Taneb> I can't afford one of those!
07:37:37 <Taneb> A grandchild, not a laser printer
07:38:00 <pikhq_> NihilistDandy: Clearly the laser printer is the superior choice.
07:38:18 <pikhq_> Also, you need to have children first.
07:38:42 <pikhq_> And in this anti-sanity economic climate, children are likely to cost you twice all the money.
07:40:18 <Taneb> Adopting pregnant adults, to minimise effort to gain grandchildren?
07:40:45 <pikhq_> Taneb: You can have pregnant non-adults, y'know.
07:41:03 <pikhq_> At least, as far as the US is concerned.
07:41:15 <pikhq_> (it's a fairly common thing, though)
07:41:43 <Taneb> Yeah, but then you need to look after them
07:42:02 <Taneb> I was trying to minimise long term effort
07:42:41 <pikhq_> I think it may be undoable in the Status Civitatis Vaticanae...
07:44:49 <Taneb> The way things are with the people of the Vatican?
07:44:56 <NihilistDandy> As long as you didn't pronounce that in the style of Church Latin, I'm okay with it
07:45:22 <Taneb> stahtus kiwitahtis waticahn-eye
07:45:40 <Taneb> GCSE Latin, hopefully coming this August
07:45:41 <pikhq_> NihilistDandy: I actually find Church Latin somewhat unnatural.
07:45:55 <Taneb> It's good for ominous chanting
07:46:05 <NihilistDandy> Taneb: I'm so glad I'm not the only one who took Latin
07:46:10 <pikhq_> I don't even really know Latin, I just know that Church Latin sucks. :P
07:46:34 <pikhq_> (my knowledge of Latin is limited to: orthography, pronunciation, obvious cognates)
07:46:36 <NihilistDandy> Church Latin is what happens when you let Italians ruin things :|
07:47:04 <pikhq_> (and random things memorised courtesy of high school choir)
07:47:17 <Taneb> lingua latina Pateri mala est
07:47:26 <pikhq_> Taneb: The age of consent in the Vatican is 12.
07:47:30 <NihilistDandy> I learned more about English in two years of Latin than I did in all my other schooling
07:48:36 <pikhq_> NihilistDandy: They copied most of the laws in existence in Italy in the early 1900s.
07:48:41 <pikhq_> Including their age of consent.
07:48:49 <pikhq_> And have since not changed it.
07:49:01 <Taneb> "The claim is sometimes made that "In the Vatican State, there is an equal age of consent set at 12 years of age",[48] but this is incorrect. In 1929, when the Lateran Treaty was signed, the age of consent in Italy was 12,[49], and this was indeed adopted by the Vatican. However, as stated above, the rise in the Italian age of consent applied automatically to the Vatican City."
07:49:47 -!- monqy has quit (Quit: hello).
07:50:24 <Taneb> And 12 in parts of Mexico
07:50:39 <pikhq_> Hong Kong has an age of consent of 16 for heterosexual sex.
07:50:44 <pikhq_> And no age of consent for homosexual sex.
07:51:03 <Taneb> But you have to be married
07:51:10 <pikhq_> Not because it's illegal to be gay.
07:51:30 <pikhq_> But because the only law estabilishing an age of consent was struck down in the courts.
07:51:37 <NihilistDandy> If the FBI asks, this was a very complex conversation about combinators
07:51:55 <pikhq_> So, it's legal for Catholic priests to fuck little boys in Hong Kong.
07:52:35 <Taneb> My English Teacher moved to Hong Kong
07:52:53 <Taneb> And my piano teacher moved to China
07:58:42 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
08:00:09 -!- esowiki has joined.
08:00:50 -!- esowiki has joined.
08:01:39 -!- esowiki has joined.
08:02:18 -!- esowiki has joined.
08:03:01 -!- esowiki has joined.
08:03:01 -!- glogbot has joined.
08:03:36 <Taneb> For someone from Manchester?
08:04:14 <NihilistDandy> Where the hell did I hear Mancuvian, then? :/ I've thought that that was the term for ages
08:04:43 <Taneb> I'm a novacastrian, incidentally
08:05:33 <Taneb> Don't have a thick enough accent to be a geordie
08:06:26 <NihilistDandy> Damn, I was wondering what was killing my battery life. Had some Monte Carlo Java nonsense running in the background
08:08:04 <NihilistDandy> There's a geordie comedian I see on QI occasionally that I find very funny, but I can never remember his name
08:09:14 <NihilistDandy> I'm mostly in it for the Stephen Fry goodness, but they get some good people on there :D
08:09:26 <Taneb> I watch it for Alan Davies
08:10:38 <Taneb> How about... an esolang based on QI!
08:12:06 <NihilistDandy> I'm sure it's already been done and abstracted to some absurd level already :D
08:12:29 <Taneb> British panel show
08:12:48 <Taneb> It stands for Quite Interesting
08:12:57 <NihilistDandy> Sort of a trivia show, but with vague points and barely any right answers
08:13:17 <Taneb> "What language did the Romans speak?"
08:13:44 <Taneb> You lose points for saying the obvious answer
08:14:02 <Taneb> "What was the great dissapoitment"
08:14:10 <Taneb> "Have you been talking to my husband?"
08:14:41 <NihilistDandy> Ross Noble had some surprisingly accurate answers about hedgehogs a few weeks ago
08:14:58 <Taneb> Man, where was I a few weeks ago...
08:15:17 <itidus20> I doubt that there is a QI esolang though.
08:15:24 <NihilistDandy> I download it since I can't do the BBC video thing from here and they don't show it on BbCA
08:15:37 <Taneb> There's a very good reason for that
08:15:44 <Taneb> They use a lot of copyrighted stuff
08:15:50 <Taneb> Which is licensed only for the UK
08:15:51 <itidus20> although.. much to my surprise, a term i thought up "hashashins weed" has already been used
08:16:01 <Taneb> http://www.youtube.com/watch?v=mqRkkVQ6OSE
08:16:34 <NihilistDandy> Oh, good, they finally updated the HTML5 player on youtube
08:17:45 <Taneb> How about BCL with Q and I instead of 1 and 0
08:17:54 <Taneb> Or Alan Davies and Stephen Fry
08:19:38 <Taneb> http://www.youtube.com/watch?v=PA8qT5PzSS4&feature=related
08:22:23 <NihilistDandy> Grover Cleveland was two presidents of the United States :D
08:23:26 <NihilistDandy> http://www.youtube.com/watch?v=kndxsByVscA&feature=related
08:25:02 <Taneb> http://www.youtube.com/watch?v=BfDCwP2SnI4&feature=related
08:41:21 <NihilistDandy> http://www.youtube.com/watch?v=9aX26k5ZNzI&feature=related
08:43:30 -!- pikhq has joined.
08:46:11 -!- pikhq_ has quit (Ping timeout: 260 seconds).
09:25:21 -!- azaq23 has joined.
09:25:26 -!- azaq23 has quit (Changing host).
09:25:26 -!- azaq23 has joined.
09:47:11 <Taneb> My town's got a music festival this afternoon
09:47:44 <oklopol> we had a music festival a few weekends ago
09:47:48 <oklopol> well you know a full night's sleep
09:48:14 <Taneb> I don't think i've ever been asleep that long
09:48:27 <Taneb> Had about two hours last night
09:48:42 <Taneb> But yeah, I remembered why I don't like it when I'm cleanshaven
09:49:34 <Taneb> I look like a freakin' elf
09:50:26 <oklopol> you make the awesomest palindromes, you don't need sex and you don't need sleep. you are a fucking superhuman :|
09:50:37 <oklopol> oh and you can transform into an elf
09:51:10 <oklopol> people think i'm 5-10 cm shorter than i actually am because of my crouching
09:51:20 <oklopol> but i'm not sure that's transforming into an elf
09:51:38 <Taneb> Depends on your facial hair
09:51:50 <Taneb> Santa's elves are gnomes
09:52:42 <oklopol> but they have the property of dwarves which made you say dwarf in the first place
09:52:53 <Taneb> Except for facial hair
09:53:26 <Taneb> If anything, Santa's elves are Sami
09:53:37 <oklopol> well yeah but i have my own way of elving up and it uses a different breed of elf
09:54:47 <Lymee> ?pl i f x = i f $ f x
09:55:06 <Taneb> Can you make Lambdabot call itself?
09:55:36 <lambdabot> Source not found. BOB says: You seem to have forgotten your passwd, enter another!
09:55:47 <lambdabot> Source not found. I can't hear you -- I'm using the scrambler.
09:56:05 <lambdabot> foldl' f a (x:xs) = let a' = f a x in a' `seq` foldl' f a' xs
10:05:10 <oklopol> so did i tell you i met this canadian guy who thought stars are planets and was pretty sure scientology is the science of studying science
10:05:31 <Taneb> But one of my friends thought the capital of the US was in British Columbia
10:05:59 <Taneb> Got mixed up with Distric of.
10:07:08 <oklopol> but anyway it was kinda fun, 21yo dude who had never been told the first thing about space (perhaps they teach something that's actually useful instead in canada, dunno what tho)
10:07:22 <olsner> then again knowing the capital of anything is useless trivia, especially when it isn't the largest or most famous city in the country
10:07:23 <Taneb> Fighting polar bears?
10:07:33 <Taneb> And take in mind that some people just can't be taught.
10:08:01 <olsner> (i.e. the capital of america is new york)
10:08:12 <Taneb> After we did the early USSR in History for about three months, some people in my class still had no idea who Lenin was
10:08:20 <Taneb> (and Australia's is Sydney)
10:08:38 <oklopol> he was studying accounting and i'm like isn't that stuff just adding up numbers? and he says nono there's so much more there's, let's see, managerial accounting, and then ummmm cost accounting, and well that's all i've had sofar. and i ask what those are and he's like
10:09:40 <oklopol> ...which i assumed meant "adding up numbers".
10:10:19 <Taneb> Sylvester McCoy is going to play Radagast the Brown in the Hobbit movie!
10:13:13 <oklopol> http://www.youtube.com/watch?v=HMGIbOGu8q0&feature=related fny sho
10:14:51 <Taneb> I'm going to quote you on my user page
10:15:51 <oklopol> go ahead, although it's HackEgo quotes i'm after
10:26:37 <cheater_> oklopol, your message got cut at "he's like"
10:29:36 <oklopol> cheater_: no it didn't, actually
10:29:44 <oklopol> sorry, i suppose that's a bit confusing of a thing.
10:32:00 <olsner> he made a reaction of the kind that you would assume meant "adding up numbers"
10:32:17 <oklopol> no actually he said nothing
10:32:37 <oklopol> well what olsner said but my cutting it off meant precisely what i said
10:33:35 <cheater_> pretty cool: https://markup.mozilla.org/en-US/#/mark/new
10:36:51 <Taneb> It's essentially a simpler version of DeviantArt Muro?
10:37:16 <oklopol> they won't let ie users in
10:38:31 <Taneb> On another not, Oerjan demonstrated how easy it is to program in NUmberwang
10:38:42 <Taneb> It should be hard to program in
10:43:41 <oklopol> i preferred on another not
10:49:19 -!- Taneb has changed nick to TanebIsGone.
11:18:05 -!- Phantom_Hoover has joined.
11:24:32 <oklopol> http://www.youtube.com/watch?v=uRbj1Q4tXNo&feature=related these are just amazing
11:36:54 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
12:18:45 -!- augur has quit (*.net *.split).
12:18:45 -!- itidus20 has quit (*.net *.split).
12:19:58 -!- itidus20 has joined.
12:19:58 -!- augur has joined.
12:24:47 -!- foocraft has quit (Quit: So long, and thanks for all the fish!).
12:24:49 -!- BeholdMyGlory has joined.
12:49:28 -!- CakeProphet has joined.
12:49:28 -!- CakeProphet has quit (Changing host).
12:49:28 -!- CakeProphet has joined.
13:05:04 -!- tswett has quit (Ping timeout: 252 seconds).
13:07:28 <CakeProphet> doesn't causation correlate to correlation?
13:07:49 <oklopol> yes, but that doesn't mean there's a causation
13:08:28 <CakeProphet> THEREFORE CAUSATION DOESN'T CAUSE CORRELATION
13:08:51 <CakeProphet> this should be published. This is world-breaking research.
13:09:05 <oklopol> i'm not following you, but i'll gladly coauthor it with you
13:09:36 <oklopol> speaking of which, i should get my euler number in august yay
13:09:42 <CakeProphet> I don't think you actually have to be right to get published in an academic journal.
13:10:12 <CakeProphet> I think you just need to have a lot to say and a lot of sources.
13:10:26 <oklopol> i don't have a lot to say?
13:10:50 <oklopol> i wrote two articles last week
13:11:07 <CakeProphet> well, it's not strictly required that you be full of shit to publish something, of course.
13:11:16 <CakeProphet> but I think it happens. It's just a hunch, really
13:11:58 <oklopol> i read "<CakeProphet> I don't think you actually have the right to get published in an academic journal." :D
13:12:20 <oklopol> i'll gladly admit i'm full of shit but i certainly have a lot to say :D
13:19:00 -!- tswett has joined.
13:42:21 -!- TanebIsGone has quit (Ping timeout: 260 seconds).
13:53:42 <tswett> Turhauttavinta. Käyttämisessä. Pitää.
13:54:06 <oklopol> okokokokokokokokokokokokokokokoko
13:55:10 <tswett> Okokoko turhauttavinta.
13:56:11 <oklopol> i don't think a double elative is very meaningful
13:56:51 <oklopol> yes, lauma = herd, laumasta = happy herd
13:57:08 <oklopol> been doing that a lot today
13:57:35 <tswett> Raikuja! Raikuja koirut siviisetsa!
13:57:37 <oklopol> that is, from from his herd
13:59:03 <tswett> Laumassa. Laumat. Laumoineen.
13:59:53 <tswett> oklopol: say, didn't I plan to meet you somewhere in Finland some time in the year 2014?
13:59:57 <tswett> I'm afraid I must reschedule.
14:00:11 <oklopol> you coming early or dying of cancer?
14:01:47 <tswett> Well, I've forgotten the time and place, for one.
14:02:15 <oklopol> if someone were to find that promise in the logs, would there be further problems
14:02:55 <oklopol> also what did you end up studying at the uni, i only recall your prechoice mumblings on the matter
14:03:49 <oklopol> cool so how many years now, 1?
14:06:52 <oklopol> i don't know if you know this but i love math
14:10:38 -!- oklofok has joined.
14:11:28 -!- oklopol has quit (Ping timeout: 258 seconds).
14:11:34 <oklofok> correlation correlating with causation is correlated with correlation causes causation, and thus causes correlation to cause causation
14:11:47 <oklofok> correlation correlating with causation is correlated with correlation causing causation, and thus causes correlation to cause causation
14:13:08 -!- sebbu2 has joined.
14:13:08 -!- sebbu2 has quit (Changing host).
14:13:08 -!- sebbu2 has joined.
14:15:18 -!- sebbu has quit (Ping timeout: 264 seconds).
14:18:40 <oklofok> just think about what you could do with a hundred million moneys
14:19:25 <oklofok> that's a manyload of moneys.
14:21:44 <CakeProphet> yes it is almost too many manyloads, so many I cannot think of many more.
14:22:50 <CakeProphet> that is a hundred of a million. I don't even know what kind of math you would need to calculate one hundred millions.
14:23:16 <oklofok> more math than you can carry around in a purse that's for sure.
14:23:38 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
14:24:09 <Phantom_Hoover> It means that your expression is so wrong it can't even work out where to start.
14:24:49 <CakeProphet> what if I have a pizza and a choice of 3 out of 12 toppings.
14:24:58 <CakeProphet> like, I don't think they've gotten enough math for that.
14:25:10 <oklofok> you mean you have a choice of 1 out of 4 toppings
14:25:37 <CakeProphet> What? no, that's uh... three less of those. Fuck how do you even describe that.
14:26:02 <CakeProphet> it's like having the thing that a hundred millions makes, but then reversing it.
14:26:22 <CakeProphet> I'm so confused. I think I'm going to go to sleep.
14:26:54 <oklofok> everyone should major in maths, because maths is better
14:28:12 <oklofok> obviously, you choose every fourth
14:28:14 <CakeProphet> but do not feel like getting my computer to calculate it.
14:29:42 <oklofok> yeah 12 choose 3 != 1 choose 4
14:29:55 <CakeProphet> in any case, I didn't really make it entirely clear that that was the actual problem.
14:30:25 <CakeProphet> but yeah, math can't even do that shit. it's unpossible.
14:31:13 <CakeProphet> obviously you have never read the definition of unpossible.
14:31:29 <CakeProphet> STOP MAKING ME REPLY. yes, you are making me, with voodoo.
14:31:59 <oklofok> should go out but i can't find my unbrella
14:34:22 <Phantom_Hoover> http://www.reddit.com/r/askscience/comments/ir3xv/we_know_the_universe_is_very_nearly_flat_does/
14:34:39 <Phantom_Hoover> "[I] have taken an advanced undergrad course in topology."
14:34:49 <Phantom_Hoover> "I accept this assumption, but even with it I'm not seeing the connection between the universe's boundary and its geometry."
14:43:09 -!- sebbu2 has quit (Read error: Connection reset by peer).
14:44:14 -!- sebbu has joined.
14:44:14 -!- sebbu has quit (Changing host).
14:44:14 -!- sebbu has joined.
14:56:21 -!- Taneb has joined.
15:02:49 <tswett> 3 choose 12 is equal to 1 choose 4.
15:06:13 <Taneb> I have no idea what you are talking about
15:06:28 <Taneb> I think you're trying to do division, but have chosen the wrong word
15:06:37 <tswett> Nope. It's the "choose" operator.
15:07:02 <Deewiant> 3 choose 12 equals 1 choose 4 equals zero
15:07:22 <tswett> x choose y is the number of subsets of size y of a set of cardinality x. And 3 choose 12 is equal to 1 choose 4.
15:07:28 <Deewiant> 12 choose 3 does not equal 4 choose 1
15:09:07 <tswett> Sure, but 3 choose 12 is the same as 1 choose 4.
15:09:17 <Taneb> And 7 choose 71278
15:09:29 <Taneb> Whenever the second is more than the first, it's 0
15:09:59 <tswett> Well, just remember the phrase. "From 3, choose 12."
15:11:04 <Taneb> I had never encountered that operaor before
15:11:44 <Phantom_Hoover> Taneb, wait, you have a GCSE and stats and you'd never encountered the choice function?
15:12:38 <Taneb> All we seemed to learn about was the difference between primary and secondary research and how we could do market research
15:12:43 <tswett> Taneb: quick, express (a + b)^n as a summation!
15:13:46 <Taneb> Now you're just making fun of the poor quality of my education
15:17:56 <Taneb> I have no idea what I'm even trying to do
15:29:51 <Taneb> Could you explain it?
15:30:33 <Phantom_Hoover> Taneb, give a closed form for the nth term of (a + b)^n, basically.
15:32:53 <oklofok> no one's saying 12 choose 3 is equal to 4 choose 1 AS A NUMBER, but they are PHILOSOPHICALLY the same
15:33:09 <Taneb> Phantom_Hoover:...
15:33:55 <Phantom_Hoover> Taneb, well, it should be the mth term, since the two ns aren't the same.
15:34:26 <oklofok> yeah and when you're done, give us the third term of the set {1, 5, 4, 6, 2, 76, 8, 4, 2}
15:35:30 <oklofok> so GCSE means what exactly, i think i asked this recently
15:35:46 <Taneb> A relatively low level qualification
15:36:02 <oklofok> but you haven't done any math, cs or physics?
15:36:24 <Deewiant> oklofok: Kind of like ylioppilaskirjoitukset but done after the yläaste-equivalent
15:36:32 <Taneb> Done maths and physics, awaiting results
15:36:35 <oklofok> i bet i didn't know that operation at that point either
15:36:45 <Phantom_Hoover> Although our qualifications in Scotland go insanely low; there are like 4 types of idiot exam.
15:37:08 <oklofok> actually i had taken a few high school courses in elementary school so i guess i did know it
15:37:34 <oklofok> but i don't recall choice having been taught there otherwise
15:38:25 <Phantom_Hoover> Although nobody ever actually takes the lowest 3 to my knowledge.
15:39:34 <oklofok> we... we something upper than that.
15:40:03 <oklofok> upper an idiot i'm way! :\
15:40:20 <oklofok> so i tried borrowing people's cellphones
15:41:03 <oklofok> idgi, in paris and other third world countries the streets are full of all sorts of crooks and everyone still treats you like you're a person; out there everyone assumed i was going to do something fishy
15:41:26 <oklofok> one typed the number in himself, and looked a bit scared
15:41:53 <oklofok> and the other one was a druggie so he was nice ofc
15:41:57 <Phantom_Hoover> Maybe if you didn't go around wearing a stocking on your head all the time.
15:42:28 <oklofok> well i was driving around on my scooter/kickboard/whatever, which makes people look at you a bit weirdly as only kids use those
15:42:32 <Taneb> http://www.youtube.com/watch?v=37X4WAmwiJQ
15:43:17 <Phantom_Hoover> Taneb, I was also referring to that picture of oklofok I've seen.
15:44:31 <oklofok> oh. that was a football though
15:45:17 <oklofok> no bank robber would wear something like that
15:45:52 <Taneb> I reckon that nowadays a bank robber would wear their underwear and never leave their house
15:47:19 <Taneb> Oh dear god the weather
15:47:27 <oklofok> so umm were those real reactions?
15:47:44 <Taneb> I've lived in the UK for 14.5 years and I'm still not used to the weather
15:47:48 <oklofok> why would you assume someone's a robber before they have stated this
15:48:06 <Taneb> Because they are prejudiced
15:48:46 <oklofok> why be prejudiced about something that's not true
15:49:08 <oklofok> a robber wouldn't wear something like that because you can see their face 100%
15:49:12 <Taneb> That is the best thing to be prejudiced about
15:49:32 <Phantom_Hoover> oklofok, I'm guessing it makes it harder to make it out on CCTV.
15:49:42 <oklofok> oh that's actually a good point
15:50:13 <Phantom_Hoover> <Taneb> I've lived in the UK for 14.5 years and I'm still not used to the weather
15:50:32 <Phantom_Hoover> Have I mentioned that my breath fogged up in mid-morning in May inside my house.
15:50:35 <oklofok> still, the guy with the stocking on his head did nothing wrong, bite your fucking tongue
15:50:59 <Taneb> They're in Australia
15:51:09 <Taneb> They have to assume that everybody is trying to kill them
15:51:13 <Taneb> It's the safest way
15:53:17 <Taneb> Well, the rain is really heavy
15:53:48 <Taneb> My front road's going to flood again
15:55:11 <Taneb> The majority of my towns sewage flows through a small pipe along my roud
15:56:32 <Taneb> When my road floods, it smells awful
15:56:34 <oklofok> we don't have floods here, so maybe i'm missing something
15:59:28 <Taneb> Well, now one side of the road is dangerous to drive through
16:00:29 <Taneb> That bus just left a freakin' wake
16:00:48 <Phantom_Hoover> <Taneb> The majority of my towns sewage flows through a small pipe along my roud
16:01:23 <Taneb> Seriously, you just worked out where I live
16:01:58 <Taneb> The rain's just stopped
16:02:10 <oklofok> how many people live in hexham?
16:02:17 <Taneb> Just short of 12000
16:02:35 <oklofok> then either you do not live in hexham or we know who brought you here
16:02:47 <oklofok> neither seems that unlikely
16:03:20 <Taneb> I seriously do live in Hexham
16:04:14 <oklofok> then you were brought here by your irl contacts
16:04:59 <Taneb> I got here from the wiki, which I got from Wikipedia
16:05:08 <oklofok> huh. well elliott lives in hexham as well
16:05:53 <oklofok> he's this kid who refused to meet me a few weeks ago
16:06:07 <Taneb> He lives in Hexham?
16:07:16 <Taneb> I know neither any 12 nor 18 year olds
16:08:26 <Taneb> I can conlude he probably doesn't have a Facebook account
16:08:53 <oklofok> someone still uses facebook?
16:09:28 <Taneb> I let my Facebook get out of hand.
16:09:37 -!- monqy has joined.
16:10:06 <Taneb> Man, what a crazy day
16:10:26 <Taneb> I can prove that I live in Hexham!
16:10:37 <Taneb> Earlier today, I said I was going to a music fest in my town
16:11:05 <Taneb> http://www.visitnorthumberland.com/site/events/shows-and-festivals/selefest-2011-p573711#ProductList-/site/events/shows-and-festivals/selefest-2011-p573711
16:11:35 <oklofok> a guy with your palindrome talent could easily work it out we were going to ask you if you lived in hexham.
16:12:01 <Taneb> I had no idea that you were going to ask me if I lived in Hexham
16:12:27 <Taneb> But if you look at the date of that website, it's today!
16:12:46 <oklofok> how many festivals a year does hexham have?
16:12:57 <Taneb> As far as I know, 1!
16:13:23 <Taneb> But then there's that other time when the rollercoasters come
16:13:42 <Taneb> And that other time when there's a historical redoey thingy on about the Hexham Protests
16:14:30 <Phantom_Hoover> ""Hexham" was used in the Borders as a euphemism for "Hell"."
16:14:43 <Taneb> I've never heard that except on Wikipedia
16:15:43 <Taneb> That is, I don't live in the Borders
16:15:49 <Taneb> Except by a really loose definition
16:15:57 <oklofok> Taneb didn't you say you have read the whole wp
16:16:12 <Taneb> I said I read Wikipedia often
16:16:23 <Taneb> That includes my hometown
16:17:34 <Taneb> I've edited the Wikipedia page for my School!
16:17:35 <Taneb> http://en.wikipedia.org/w/index.php?title=Queen_Elizabeth_High_School,_Hexham&action=history
16:18:01 <Taneb> http://en.wikipedia.org/w/index.php?title=Queen_Elizabeth_High_School,_Hexham&diff=prev&oldid=371171660
16:18:15 <oklofok> that proves nothing, you could've edited every school's wp page at that time.
16:18:30 <Taneb> Why the hell would I do that
16:19:03 <oklofok> you could've done that SO YOU COULD FAKE LIVING ANYWHERE YOU WANTED
16:19:40 <oklofok> because i know all the other 4 finns
16:19:57 -!- foocraft has joined.
16:20:04 <Taneb> I have no need for alcohol
16:20:19 <cheater_> THAT PROVES YOU DO NOT LIVE IN FINLAND
16:20:28 <cheater_> WE ARE HOT ON YOUR TRACK, MISTER
16:21:08 * Phantom_Hoover notes that Taneb's user page redirects to "High Middle Ages".
16:21:24 <monqy> http://esoteric.voxelperfect.net/wiki/ABCD does anyone understand this
16:21:43 <Phantom_Hoover> 21:39:06: <oerjan> <Taneb> I'm a Northumbrian <-- and you say that after i was joking the other they that you were coincidentally Elliott's next door neighboor
16:22:03 <monqy> also http://esoteric.voxelperfect.net/wiki/Category:ABCD_Programming_Language_Family
16:22:27 <monqy> also the "revolver architect" deal on that guy's user page http://esoteric.voxelperfect.net/wiki/User:Billlam
16:22:55 <Taneb> I'm in the talk pagges for two of those
16:22:57 <Phantom_Hoover> Taneb, well, you're practically his next-door neighbour, especially in internet terms.
16:23:19 <Taneb> My next door neighbours are Mr Snowdon and the Bradshaws!
16:23:27 <Taneb> None of whom are called Elliott
16:23:28 * oklofok repeats he has found his next-building neighbor not through this channel
16:23:33 <Phantom_Hoover> I mean, based on the fact that he probably goes to the same school as you...
16:23:38 * oklofok repeats he has found his next-building neighbor through this channel
16:24:39 <Taneb> Someone's just crossed the still flooded road barefoot
16:24:52 <oklofok> "<monqy> http://esoteric.voxelperfect.net/wiki/ABCD does anyone understand this" <<< i can honestly say i do
16:25:06 <monqy> please enlighten me
16:25:25 <Taneb> It's essentially deadfish with no square function, as well as input
16:32:54 <Phantom_Hoover> OK so guys I am being dragged off to Ireland in two days and I need something to stave off the boredom for a week.
16:34:31 <oklofok> also the druggie probably only lent me his phone because he wanted to know where you can get drugs here in turku
16:35:00 -!- copumpkin has changed nick to EstablishmentLov.
16:35:07 -!- EstablishmentLov has changed nick to copumpkin.
16:35:27 <oklofok> walk outside and find a dealer?
16:36:46 <oklofok> i told this german girl prostitution is illegal on every street in finland, and she's like "okay, so where do the prostitutes work then?"
16:36:57 <oklofok> i wish we were more like europe
16:38:12 <oklofok> when i say i wish i spoke japanese like a jap i don't mean i wish i spoke japanese like a jap who doesn't have a mouth because he ripped it off
16:39:40 <oklofok> mostly we just use the phrase "like europe" in here to refer to non-scandinavic europe (oh we also refer to finland as a part of scandinavia usually)
16:40:17 -!- azaq23 has quit (Quit: Leaving.).
16:40:30 <oklofok> i mean we are essentially the same country as sweden except for the language
16:41:49 -!- azaq23 has joined.
16:45:13 -!- cheater_ has quit (Ping timeout: 255 seconds).
17:01:30 <oklofok> okay this chasers thing is incredibly awesome as well
17:01:36 <oklofok> maybe i'm just really easy to impress today
17:01:55 <oklofok> IF I HAVE TOLD YOU YOU'RE AWESOME TODAY, SORRY, THAT'S PROBABLY NOT TRUE AND YOUR LIVES ARE SAD AS SHIT.
17:02:19 <oklofok> so i was thinking maybe i'll start smoking
17:02:29 <oklofok> wonder if i have a lighter
17:08:58 <oklofok> i've actually always wanted to try handing out money on the street
17:16:48 <oklofok> http://www.youtube.com/watch?v=GclCE0cLA-o best ending
17:17:18 <oklofok> "i'm sorry, i outrank you" "can i ask what's going on here?" "sorry, i'm afraid it's classified" "no problem"
17:17:44 -!- cheater_ has joined.
17:22:04 <Phantom_Hoover> oklofok, that's not the one I was talking about, but I hadn't seen it.
17:22:52 <oklofok> actually when i linked it i had forgotten about your suggestion completely, just randomly linke, so lucky me, what's the real one?
17:27:21 -!- hagb4rd has joined.
17:28:05 <oklofok> you mean http://www.youtube.com/watch?v=TdnAaQ0n5-8 ?
17:48:39 <oklofok> i hadn't heard of this but that's like straight outta hustle
17:57:32 <Phantom_Hoover> Based on the one episode of The Hustle I've seen, I agree.
18:00:01 -!- foocraft has quit (Quit: So long, and thanks for all the fish!).
18:01:19 -!- foocraft has joined.
18:01:33 -!- cheater__ has joined.
18:02:37 -!- cheater_ has quit (Ping timeout: 255 seconds).
18:03:28 <oklofok> http://www.youtube.com/watch?v=S7hcFuxVc_Q&feature=related xD
18:05:59 <Taneb> Still not believing I live in Hexham
18:06:36 <oklofok> i'm currently acting on the assumption that you will consistently claim to be from hexham
18:07:03 <Taneb> I cannot think of a way to prove that I am in Hexham
18:07:10 <oklofok> but i wouldn't say i believe it's a physical fact that you live there, although i currently highly suspect that to be the case
18:07:12 -!- zzo38 has joined.
18:07:17 <Taneb> If you think of one, let me know
18:07:26 <oklofok> there are very easy ways to do that
18:08:20 <oklofok> go to one of the things hexham has that is on the internet and put something of my choice there
18:08:32 <oklofok> say a shoe on top of the most famous building
18:08:42 <Taneb> I am not going on top of the Abbey
18:09:09 <Taneb> I will stand next to the abbey in site of the Hexham Courant Webcam for a while with a sign saying "I AM TANEB"
18:10:05 <oklofok> okay, that would be nice of you
18:10:19 <Taneb> And confusing to everyone around me
18:10:20 <oklofok> i would certainly believe you then
18:11:16 <oklofok> full belief is so liberating compared to even a slight doubt
18:11:28 <oklofok> because all you need to store is the fact, you can just forget the proof
18:11:42 <Taneb> It's like Turing-Completeness
18:12:08 <Taneb> I have no idea how to prove Lambda Calculus is Turing Complete
18:12:37 <Taneb> The point is I don't need to
18:12:47 <Taneb> Because everyone who has an interest already knows
18:13:12 <oklofok> i have an interest, but i wouldn't say i actually know, i'm pretty sure i could do it tho
18:13:25 <Phantom_Hoover> Just use the Brainfuck interpreter Ben Gould provided, then use the reduction from BF to P´´, then use Bohm's proof that P´´ is TC.
18:13:59 <oklofok> (unlike ph, i'm going to guess)
18:14:16 <oklofok> i couldn't find a lighter :(
18:14:46 <Taneb> Does anyone know an IRC client that works on a Kindle?
18:15:22 <Phantom_Hoover> Taneb, it's not on Google, therefore it doesn't exist.
18:15:48 <Taneb> I got Mibbit working for Kindle
18:15:54 <Taneb> But Freenode blocks mibbit
18:16:41 <lifthrasiir> are there any consensus for the bit-packing order of bit input/output operations on esolangs?
18:17:02 <Taneb> What, big-endian or little-endian?
18:17:31 <Taneb> There's not even a consensus IRL
18:18:16 <Taneb> IRL here, of course, means in conventional programming
18:18:45 <Phantom_Hoover> Of course not, consensus is stupid for things like that.
18:19:02 <lifthrasiir> well, i didn't mean whether it'd be big or little endian, i meant whether the bit-packing order *is* fixed.
18:19:09 <Phantom_Hoover> Consensus is important for stuff like EoF in BF, because they're all meant to be doing the same thing.
18:19:29 <Taneb> Is consensus second or fourth declension?
18:19:36 <lifthrasiir> is there any esolang that may use little endian or big endian for bit packing from time to time?
18:20:35 <Taneb> Not as far as I'm aware
18:21:09 <Taneb> There's not even a consensus as to which order to list cases for Latin words!
18:21:29 <Taneb> What's with this Nom, Gen, Dat, Acc, Abl, Voc?
18:22:30 <Taneb> Example: http://en.wiktionary.org/wiki/sensus
18:23:45 <Taneb> I do it like Cambridge Latin Course does.
18:23:58 <Taneb> Nom, Voc, Acc, Gen, Dat, Abl
18:24:12 <Phantom_Hoover> It doesn't come from sensus also Oxford Latin Course does it the same way.
18:24:33 <Taneb> Maybe it's them who's weird
18:25:21 <zzo38> Other than myself playing 123456 Chess on a chessboard, there have been two other games over computer I am not a player in either one of them. There has been Nicholas Wolff against Vitya Makov and je ju against Nicholas Wolff. Wolff won the first game and I think they will probably win the second game as well.
18:27:45 <Taneb> You know, I'm told over and over again to not release any personal details on the internet
18:27:56 <Taneb> But when you do, nobody believes you!
18:28:17 <zzo38> Then don't release any personal details on the internet.
18:28:39 <Taneb> They worked it out.
18:28:44 <zzo38> Some people ask me so hard that I lie. But, they are making up lies to try to get my information too. (It is on IRC)
18:29:41 <Taneb> I'm pretty sure you're not listening to anything I say except the first comment of 19:27 BST
18:30:37 <zzo38> Do you mean me? Also it is not my timezone
18:30:53 <Taneb> Except it was the last of 19:26
18:31:16 <zzo38> I am not always connected to IRC
18:31:27 <Taneb> It didn't say you had left
18:31:58 <zzo38> I still don't know what comment you refer to since that isn't my timezone
18:32:21 <Taneb> <Taneb> You know, I'm told over and over again to not release any personal details on the internet
18:33:17 <oklofok> "<Taneb> What's with this Nom, Gen, Dat, Acc, Abl, Voc?" <<< obviously acc comes before dat
18:33:31 <oklofok> also what Phantom_Hoover said
18:33:32 <hagb4rd> i watched this amazing video on yt.. "history of fps-games 1974-?" ..notice the performance of the first 3D shooters is unrecheached (and mabe finds its most darkest hour) for the next 15yrs
18:33:46 <Phantom_Hoover> <oklofok> "<Taneb> What's with this Nom, Gen, Dat, Acc, Abl, Voc?" <<< obviously acc comes before dat
18:33:57 <hagb4rd> i watched this amazing video on yt.. "history of fps-games 1974-?" ..notice the performance of the first 3D shooters is unrecheached (and mabe finds its most darkest hour) for the next 15yrs
18:34:00 <hagb4rd> http://www.youtube.com/watch?v=aipGP5oAuWQ&feature=related
18:34:08 <Phantom_Hoover> Um, the One True Ordering is nom, voc, acc, gen, dat, abl.
18:34:54 <oklofok> "<Taneb> You know, I'm told over and over again to not release any personal details on the internet" <<< eh? have you heard of facebook, no one says that anymore, nowadays everyone says STOP BEING AN ASSHOLE AND PUT YOUR FACE ON FACEBOOK.
18:35:15 <itidus20> yay darkest hours are always the most thrilling
18:35:17 <Taneb> I never said I wasn't recieving conflitcting messages
18:35:23 * Phantom_Hoover wonders what oklofok has as his profile picture on Facebook.
18:36:27 <oklofok> so after years of wanting to start smoking, i just managed to smoke a cig!
18:36:36 <zzo38> Once I start a business I might release some information on internet, such as telephone
18:36:45 <zzo38> And also full name
18:37:34 <Taneb> oklofok: Today was the first day I could bear the smell of ciggarette smoke.
18:37:51 <oklofok> "<Phantom_Hoover> Um, the One True Ordering is nom, voc, acc, gen, dat, abl." <<< well i dunno latin, just that in german it's nom acc dat and gen is last because it's not used that much
18:38:31 <oklofok> "* Phantom_Hoover wonders what oklofok has as his profile picture on Facebook." <<< i don't have a facebook account
18:38:52 <oklofok> because it's coincidence day?
18:38:57 <oklofok> i've always loved the smell
18:39:06 <Taneb> Or possibly because some of my friends smoke
18:39:09 <oklofok> but i'm not very good at doing things
18:39:29 <oklofok> in the sense that i usually don't really do anything.
18:40:04 <oklofok> at least it feels that way
18:40:44 <oklofok> and oh wow do i love the high cigs give you, way better than weed and alcohol
18:43:53 <oklofok> http://www.youtube.com/watch?v=ecO6uWCEgec&NR=1 xD
18:44:19 <zzo38> What are the dimensions of the bars in POSTNET?
18:45:03 -!- oerjan has joined.
18:46:30 <itidus20> hagb4rd, is your point that the first 3d shooters are more awesome than the ones which followed?
18:46:56 <oklofok> what was the first 3d shooter?
18:47:02 <oklofok> i mean the first one that had 3d physics
18:47:02 * oerjan is worried about a proliferation of fake swatters
18:47:08 <hagb4rd> at least for about 10 -12 years
18:47:13 <oklofok> anyone have a time machine?
18:47:35 <oklofok> oh wait i can actually get to the future myself
18:47:51 <olsner> just sit back and wait :>
18:47:58 <Taneb> By sitting in a broken oven
18:47:59 <hagb4rd> no we just have an archive
18:48:40 <oklofok> so i'll just come back and report on the first 3d shooter when they make it.
18:48:47 <itidus20> hagb4rd: I have become aware in my thoughts that software developers tend to take credit for improvements caused by hardware
18:49:01 <hagb4rd> the point is.. ih this guys were still livin, hell.. what would they out of the machines of today? ..maybe they'd turn them off
18:49:58 <itidus20> hagb4rd: are you happy with 6fps? im a little confused where you actually stand on this
18:50:24 <hagb4rd> okay.. let there be ten, and yes.. look at the first games in 90s
18:50:54 <hagb4rd> and then back to this awesome atari game, what was it called?
18:51:32 <hagb4rd> a mean frames per second ;)
18:52:21 <hagb4rd> this one smells like...beer
18:52:50 <oerjan> <Taneb> Can you make Lambdabot call itself?
18:52:57 <oerjan> you can chain commands somewhat
18:53:36 <hagb4rd> and i'm still waiting for you guys io implement this planet processing engine for my elite sequel
18:53:51 <oklofok> oh speaking of oerjan, tswett: why did you never tell me what you've learned? :\
18:54:17 <oerjan> @@ @run 3 + @read @run '5' : @show 9*2
18:54:56 <oerjan> @@ @read @run '5' : @show 9*2
18:55:13 <oerjan> @@ @run 3 + @read @run '5' : @show @run 9*2
18:55:17 <tswett> I've learned... mathematics.
18:55:28 <tswett> Specifically, things from analysis and algebra.
18:55:30 <oerjan> @@ @read @run '5' : @show @run 9*2
18:55:40 <oklofok> what have you learned about algebra?
18:55:49 <oerjan> hm that's not what i was going for
18:55:58 <tswett> I haven't learned what an algebra is.
18:56:13 <oklofok> you have learned no definitions for the term "algebra"?
18:56:19 <oerjan> @@ @run 3 + (@read (@run '5' : (@show (@run 9*2))))
18:56:34 <tswett> Well, I learned what an algebra for a monad is. But not in class.
18:56:36 <hagb4rd> we wish we could have him that far, but ..ya know always busy
18:57:01 <oklofok> i still don't really know what monads are in math
18:57:23 <oklofok> i'm not really smart enough for category theory
18:57:24 <Taneb> They're tribes who move from place to place
18:57:31 <tswett> Oh, they're just this thing equipped with that thing such that yonder thing commutes.
18:57:53 <tswett> Anyway, I learned that at GVSU, "ring" means "pseudoring".
18:58:03 <hagb4rd> modands is used to impress human resources @ 1st case
18:58:20 <oklofok> are you familiar with the idea of having a set S and a set of operations with type S^n -> S for various n?
18:58:37 <oklofok> that's one of the definitions for an algebra
18:59:11 <oklofok> but it can mean all kinds of other stuff as well
18:59:19 <oklofok> what's your favorite theorem in algebra?
18:59:24 <tswett> That sounds like it's almost the definition of an algebraic structure.
18:59:41 <oklofok> or subtheory that you enjoy but can't quite reduce into one main theorem
18:59:48 <oklofok> tswett: yeah those are called algebras
19:00:27 <tswett> Anyway, I don't really have a favorite theorem in algebra.
19:00:42 <oklofok> but an algebra is also when you have a vector space but you can multiply vectors afaiu
19:00:46 <coppro> my favorite theorem is the various compactness theorem
19:00:55 <hagb4rd> there are no structires out there but the ones we might have tried to engrave in stone!
19:00:55 <tswett> How about... the matrix theorem.
19:00:58 <Taneb> I like the axiom of choice
19:01:07 <tswett> I don't know of any theorem called "the matrix theorem", but I would probably like it.
19:01:27 <tswett> I like the axiom of constructibility. It answers a lot of questions.
19:01:41 <oklofok> i guess my favorite algebra stuff is in semigroup theory, idempotents and all that shit
19:01:42 <Taneb> "Any sci-fi movie with Keanu Reaves made post-2000 sucks"
19:01:51 <Taneb> The Matrix Theorem
19:01:58 <oklofok> especially inverse semigroups
19:02:20 <tswett> You know, I like free objects.
19:02:40 <oklofok> is the axiom of constructability "that object of yours? yeah it exists all right."
19:02:49 <coppro> oklofok: I've heard square matrices of a given dimension referred to as 'linear algebras' with reference to their properties as a vector space plus the multiplication operation (or, similarly, linear maps on a given vector space, being themselves vectors in a different space, form a linear algebra with composition)
19:02:59 <tswett> oklofok: nah, it says that every set is constructible.
19:03:43 <coppro> I like the interesting number theorem
19:03:53 <Taneb> That's interesting
19:03:58 <coppro> Theorem: every number is interesting
19:04:00 <oklofok> coppro: well i dunno what the consensus is on these terms, i don't think there really is one, but that would certainly make sense, and is what i'm referring to.
19:04:13 <tswett> I disagree with the interesting number theorem. I think the smallest uninteresting number is 217.
19:04:34 <oklofok> what's the matrix theorem? can't find it
19:04:40 <coppro> Proof: Consider the set of non-interesting numbers. If it is non-empty, pick the least element under some ordering.
19:04:49 <Taneb> tswett: That's a centred hexagon number
19:05:02 <tswett> Taneb: so? I don't know what those are.
19:05:09 <coppro> This element is the least non-interesting number under that ordering, which is interesting
19:05:13 <Taneb> http://en.wikipedia.org/wiki/Centered_hexagonal_number
19:05:23 <tswett> oklofok: http://www.google.com/search?q=%22the+matrix+theorem%22
19:05:24 <coppro> Thus we have a contradiction, and the set of non-interesting numbers must be empty
19:06:00 <tswett> Taneb: well, that's a pretty boring property.
19:06:06 <Taneb> Recreation mathematics: more addictive and worse for your health than cocaine
19:06:16 <oerjan> <oklofok> what's your favorite theorem in algebra? <-- i like that subdirect product of subdirectly irreducible algebras theorem
19:06:56 <oklofok> that's pretty damn neat alright
19:07:03 <itidus20> hagb4rd: I am glad you showed these fps videos. Anyway I think that the fps genre is losing creativity.
19:07:12 <oklofok> the theorem being that gives you all algebras
19:07:15 <coppro> man, next term is going to be interesting
19:07:29 <coppro> I'm going to have a linear algebra class that I actually attend
19:07:32 <coppro> last term's class sucked
19:08:16 <oklofok> i had to learn linear algebra before taking the course on it because we used a lot of the theory for finite fields in coding theory
19:08:17 <oerjan> oklofok: i once used it to prove that kripke models work for intuitionistic logic via heyting algebras
19:08:41 <Taneb> The seven Huzita-Hatori axioms
19:08:43 <oklofok> you talked about doing some stuff with heyting algebras but i still don't really get what heyting algebras re so
19:08:54 <Phantom_Hoover> <hagb4rd> and i'm still waiting for you guys io implement this planet processing engine for my elite sequel
19:09:08 <oerjan> oklofok: basically heyting algebras are to intuitionistic logic what boolean algebras are to boolean logic
19:09:17 <Taneb> Why bother? Just make Oolite plugins
19:09:36 <Phantom_Hoover> <tswett> I disagree with the interesting number theorem. I think the smallest uninteresting number is 217.
19:09:45 <oklofok> i can't actually see what that means but i'll memorize that factoid for now! :P
19:10:54 <Taneb> I think the most interesting number is 12
19:11:06 <oklofok> tswett: i don't think there are any relevant hits on that google page
19:12:14 <oklofok> oerjan: i only know about heyting algebras from burris and sankappanavar's "a fun little course in universal algebra" and it was just in a list of examples, dunno if there'd've been theory on them later on
19:12:28 <oklofok> they have a lot of stuff on boolean algebras, should prolly read that at some point
19:12:38 <oerjan> oklofok: basically T is a theorem of intuitionistic logic iff T = 1 is a valid equation for heyting algebras, which is exactly the same as for boolean logic/algebras
19:13:30 <Taneb> What ways more, a pound of gold or a pound of feathers?
19:13:46 <oerjan> Taneb: a pound of feathers
19:14:04 <Taneb> Can you explain why?
19:14:18 <oklofok> but then what's intuitionistic logic here, (a -> b -> c) -> ((a -> b) -> (a -> c)) and (a -> (b -> a))?
19:14:45 <oerjan> oklofok: well those would be theorems yes
19:15:14 <oklofok> (a -> (b -> c)) -> ((a -> b) -> (a -> c)) and (a -> (b -> a))?
19:15:35 <oerjan> oklofok: in intuitionistic logic you include more than ->, because the operators are much more independent of each other than in boolean logic
19:15:42 <Taneb> Gold is weighed in Troy pounds and feathers in avoirdupois
19:15:59 <oerjan> so and, or, not as well
19:16:12 <Taneb> avoirdupois is 12.53% heavier than troy
19:16:13 <hagb4rd> <Taneb>Why bother? Just make Oolite plugins <-- will do, at least for the less math-dependent parts.. still enought to do.. find nice ways to let my spaceilots having a good time interacting with its vivid world.. how bout a lambda bot in the boardcomuter? :D
19:16:25 <oklofok> well non-intuitionistic (you said boolean, does that mean classical?) logic has not as well
19:16:37 <oerjan> oklofok: of course you can probably find axioms for the -> fragment like with boolean logic
19:16:40 <Phantom_Hoover> Taneb, not to mention the fact that it depends if you're talking about pound mass or pound weight.
19:17:04 <Taneb> Assuming their in the same gravity, does that make a difference?
19:17:15 <oklofok> yeah metamath uses those two as the intuitionistic axioms
19:17:26 <oklofok> and then there's umm (not a -> not b) -> (b -> a)
19:17:44 <Phantom_Hoover> Taneb, ah, but you don't explicitly state that assumption.
19:18:06 <Taneb> Where else are you gonna find both feathers and gold?
19:18:25 <hagb4rd> but this doesn't fit on gravity
19:19:05 <Taneb> But feathers aren't
19:19:19 <itidus20> hag: I had some ideas about planets in 2d.
19:19:44 <oerjan> oklofok: actually one simplification is possible: also in intuitionistic logic not a = (a -> false)
19:19:50 <hagb4rd> like this: http://www.youtube.com/watch?v=A8_-78G8D_I&NR=1
19:19:56 <itidus20> The first idea I had is that if you walk far enough to the left or right in 2d you can come up on the other side
19:20:37 <hagb4rd> 10 years later we had videos and spites of them (like in wing commander)
19:20:51 <oklofok> itidus20: you mean you came up with the idea of somehow making R^2 into a torus?
19:21:01 <oklofok> or do you just mean the torus?
19:21:08 <hagb4rd> but no matter how long you wre riding ..you didnt get there
19:21:20 <Taneb> Gonna get some eats now
19:21:28 -!- Taneb has changed nick to TanebIsEating.
19:21:31 <Phantom_Hoover> hagb4rd, suggest you look at Infinity: The Quest for Earth and despair.
19:21:33 <itidus20> i am happy to admit i am full of crap and can laugh at myself about it
19:21:37 <oklofok> joining the left and right sides can be done like that, or you can add a point at infinity whose open balls are the complements of closed balls around the origin
19:21:51 <oklofok> by "like that" i mean the torus
19:22:19 <itidus20> oklofok: when I was thinking about it what I really wanted to achieve is to do it without a sense of cheating the player
19:23:09 <oklofok> let's forget the player for now and discuss this in the context of topology okay
19:23:45 <itidus20> R^2 is already over my head, but I can still carry on
19:24:45 <oklofok> well in that case, a way to do it without cheating the player is the torus
19:25:15 <oklofok> torus = take a finite square and glue the ends together. this is done in many 2d games.
19:25:36 <oklofok> in comet busters, the comets would come out the other side when they went over the border for instance
19:25:52 <itidus20> but so this wasn't entirely enough for me. there was more. i wanted to allow the player to "dig through the planet"
19:25:54 <oklofok> but i suppose you want something fancier than that
19:25:59 -!- Sgeo has joined.
19:26:29 <oklofok> Phantom_Hoover: a game way older than you, i just assume it's clear what the game is about
19:26:33 <itidus20> humm i will make a quick paint pic
19:26:34 <hagb4rd> http://www.youtube.com/watch?v=7s4G1J9Hiwk&feature=related
19:26:40 <oklofok> Phantom_Hoover: i haven't played asteroids, so i dunno if they had a torus
19:26:49 <hagb4rd> this looks almost nice (planet renedering
19:26:49 * oerjan wonders how many 2d games do klein bottle gluing instead
19:27:05 <oklofok> comet busters came with my windows 3.11
19:27:47 <Phantom_Hoover> hagb4rd, seriously, just look at the tech demos for Infinity.
19:27:49 * Sgeo remembbers some game on his computer called... Tempest, I think
19:28:08 <Phantom_Hoover> Sgeo, sometimes I think you do nothing *but* remembering games on your computer.
19:28:51 <Sgeo> Sometimes I play games that will someday eventually just be games I remember playing on my computer.
19:28:54 <Sgeo> See: Minecraft
19:29:06 <oerjan> now combine that with CP symmetry and you can have some interesting matter/antimatter effects...
19:29:31 <oklofok> so say moving left = moving down the klein tube, and up = around it. then the gluing is, you take a square and if you go up you appear in the same column on the bottom, but going left, you appear on the right, mirrored over the middle
19:29:35 -!- TanebIsEating has changed nick to Taneb.
19:30:01 <itidus20> http://oi51.tinypic.com/nl4u1v.jpg
19:30:12 <Phantom_Hoover> Basically, the laws of physics stay the same if you turn matter into antimatter and swap the parity.
19:30:12 <Taneb> Just typed "Password" instead of my password
19:30:19 <oerjan> oklofok: means the symmetry where mirroring turns matter into antimatter
19:30:44 <oerjan> it's not exactly preserved, but _most_ reaction obey it
19:30:45 <itidus20> in this pic you can sort of see the idea of "digging" through but the first problem arises. it looks very odd if the player does not turn his head around as he falls
19:31:36 <itidus20> so i had this idea that the center of the planet could be another torus , to borrow your word
19:31:39 -!- Sgeo has quit (Read error: Connection reset by peer).
19:32:06 <itidus20> no wait, maybe that wasn't the idea
19:32:08 -!- Sgeo has joined.
19:32:22 <oerjan> (the CPT symmetry where you reverse time as well is still not known to be violated, and the math of quantum mechanics + relativity is supposedly such that it would be very strange if it was)
19:32:34 <oerjan> i don't know the proof myself
19:32:34 <itidus20> anyway.. i thought.. when you reach the center of the planet while falling through, you should reach a dark screen where your path follows a U shape
19:32:53 <itidus20> and you start falling upwards without actually turning upside down
19:34:03 <Phantom_Hoover> itidus20, suggest you read http://everything2.com/title/Using+Asteroids+to+explain+the+topological+classification+of+2-manifolds
19:34:54 -!- shachaf has quit (Read error: Connection reset by peer).
19:34:58 -!- shachaf has joined.
19:37:32 <itidus20> (still reading the article, even while I type this) my more general theorum is that in practice the earth looks flat. It never actually looks like a sphere to anyone standing on it. So it should never have to look round in a video game.
19:38:03 <oklofok> looks like a good enough article
19:38:21 <oerjan> itidus20: what about on mountains near the ocean?
19:38:27 <Sgeo> itidus20, what if someon finds a way to lift off into seep space in the game?
19:39:04 <oklofok> itidus20: you want a surface like that of earth's, but infinitely deep?
19:39:49 <itidus20> well first I imagined a giant circle. and I thought, how big does the circle have to be so that it looks flat
19:40:14 <Sgeo> itidus20, it wouldn't be an absolute size, but a size relative to the observer
19:40:27 <oklofok> you could have a 3-dimensional ball and remove its middle, then have coordinates shrink as you go down to make it appear infinitely deep
19:40:33 <Phantom_Hoover> <itidus20> (still reading the article, even while I type this) my more general theorum is that in practice the earth looks flat. It never actually looks like a sphere to anyone standing on it. So it should never have to look round in a video game.
19:40:37 <oklofok> remove its center point i mean
19:41:01 <oklofok> cool thing about such a world: the earth would be the center of the universe
19:41:07 <Taneb> Aren't they then called annuli
19:42:05 <itidus20> oklofok, well i decided that as you reach the center you reach a black background and your sprite follows a U path and when it goes up again it is falling upwards to some other point. so i guess that is infinite depth.
19:42:19 <oerjan> Taneb: no, that's a ring shape and is not topologically a torus at all
19:42:32 <oklofok> itidus20: i think it's better to prevent reaching the middle altogether
19:42:45 <oklofok> just have the distance to the center be infinite
19:43:05 <oerjan> a flat torus would not be possible to embed in usual space, but it would _locally_ look like an ordinary flat surface
19:43:23 <Taneb> So, two annuli ontop of eachother?
19:43:33 <Taneb> I don't think I really understand this, do I?
19:43:44 <Taneb> Oh, you mean like a net
19:43:46 <oerjan> Taneb: it's a shape which cannot exist in the real universe
19:44:00 <itidus20> I am full of crap. I am a whole magnitude below mathematically. ^_^
19:44:11 <itidus20> But I think up things from left field.
19:44:19 <oerjan> but whose existence poses no actual mathematical contradiction
19:44:22 <oklofok> if you take the closures of two annuli, and glue together the inner and outer circles, don't you get the torus?
19:44:58 <oklofok> Phantom_Hoover: take all points you can find arbitrarily good approximations for
19:45:15 <oklofok> that is, if U is a subset of a topological space, its closure is the set of such points
19:45:23 <oklofok> so for the annulus, you'll just add the circles around it
19:45:39 <itidus20> So I was trying to squiash all this into a tile based side scroller (as an idea) which cannot rotate.
19:45:41 <oklofok> (according to wp it's the set of points more than r, but less than R away from 0)
19:46:12 <oerjan> Taneb: imagine a square where the sides are glued to each other, but not by actually bending the square, instead by making the sides be teleportation portals...
19:46:17 <oklofok> (so you'd add points exactly r or R away from 0, and nothing else, as is easy to check if you know how distance is measured in R^2 (pythagorean theorem being the definition))
19:47:34 <Taneb> I think a flat sphere would be trickier
19:47:50 <oklofok> Phantom_Hoover: did that make sense?
19:47:55 <Phantom_Hoover> <oklofok> if you take the closures of two annuli, and glue together the inner and outer circles, don't you get the torus?
19:48:09 <Phantom_Hoover> I think you'd get a torus if you just glued the inner and outer circles.
19:48:22 <oklofok> Phantom_Hoover: what are the inner and outer circles of the annulus?
19:48:39 <hagb4rd> uh oh al lot for me to read on later, but not to miss actual topcic: the more you get to the sphere the finer is the net.. then comes the transformations.. first of all ther is an irregular noise trasforming the vertexes into rocky landscapes
19:48:41 <Taneb> An annulus is the region between two cocentric circles
19:48:46 <oklofok> for any point on the annulus, you'll find a point even further away from 0
19:48:51 <Phantom_Hoover> oklofok, how can you ask me definitional questions when you used the same terms?
19:49:13 <hagb4rd> there must be a few more layers of transformations. but! :
19:49:21 <oklofok> Phantom_Hoover: well "outer and inner circle" makes sense after taking the closure
19:49:29 <oklofok> inner circle = points at distance r
19:49:33 <oklofok> outer = points at distance R
19:49:34 <oerjan> Taneb: yes, that is impossible. it's to do with the plane not being a cover of the sphere - you cannot wrap a plane around a sphere without some exceptional points
19:49:44 <Phantom_Hoover> <oklofok> Phantom_Hoover: well "outer and inner circle" makes sense after taking the closure
19:49:53 <hagb4rd> after n transformation the landsape in a specific place always looked the same.. we thank you braben & bell
19:49:53 <Phantom_Hoover> But... why do you need the closure in the first place?
19:50:07 <oklofok> Phantom_Hoover: because otherwise i don't know what those terms mean
19:50:16 <Phantom_Hoover> Is it the open circle with radius R less the closed circle with radius r?
19:50:18 <itidus20> ok i guess theres room for compromise
19:50:20 <oklofok> because the points at distance r and R do not belong to the annulus
19:51:03 <oklofok> closure was just a technical term because i wanted to be mathematically precise because that gives me a hard-on.
19:51:15 <itidus20> so what do you do.. make the character change size? :D :D
19:51:24 <oklofok> well because otherwise it's not topologically equivalent to the torus :)
19:51:39 <oklofok> yeah you could just glue together the inner and outer circles, yeah
19:51:53 <itidus20> perhaps as he falls deeper he scales up
19:52:01 <Taneb> I'm pretty sure it shouldn't be creased
19:52:07 <oklofok> "<Taneb> So, two annuli ontop of eachother?" "<oerjan> NO"
19:52:19 <oklofok> i was saying "or perhaps yes?"
19:52:31 <itidus20> like a map projection, when a man goes to iceland
19:52:36 <itidus20> his body probably grows larger
19:53:08 <hagb4rd> yea any points run togeter in x the focus
19:53:12 <itidus20> yeah. greenland/iceland is gigantic on most map projections
19:53:25 <Taneb> I used to think Antarctica was HUGE
19:53:29 <oklofok> "<itidus20> perhaps as he falls deeper he scales up" well more like gets smaller
19:53:34 <Taneb> Now I know, it is, but not as much as I thought it was
19:53:46 <oklofok> i guess that might depend on your point of view maybe
19:53:51 <itidus20> phantom, it has occured to me that the missing link could be that the character could actually change size to make it all work
19:54:04 <itidus20> thanks to listening to this conversation
19:54:12 <Taneb> It all makes sense now!
19:54:18 <oerjan> oklofok: but gluing two annuli would give exceptional points at the crease, which doesn't count to me as really flat
19:54:40 <hagb4rd> plenty space left to log this all :)
19:54:49 <Taneb> So, a quadrilateral with opposite sides of equal length is the way to go?
19:54:57 <oklofok> oh okay i thought you were just talking topology
19:55:00 <itidus20> ok hagb4rd: like suppose uh.. Zelda.. was played on a typical map projection.
19:55:16 <oerjan> but it gives me an even weirder idea: do like i said previously and glue the outer an inner edge of an annulus with teleportation portals, but _which expand or shrink you as appropriately_
19:55:19 <itidus20> now when he is standing on iceland his body will be stretched :D
19:55:24 <zzo38> Why is Canada Post barcode strange?
19:56:15 <oerjan> Phantom_Hoover: the inner circle is smaller than the outer, so if they are to be glued identically you have to change scale while crossing them...
19:56:17 <oklofok> itidus20: i was thinking maybe you could have a metric such that on every level of depth inside earth, you have a surface with the same circumference as earth, but you have infinitely many concentric balls "on top" of each other
19:57:08 <itidus20> oklofok, i really did actually commit some of this to paper months ago.. but i am clueless on topology
19:57:08 <oerjan> this is of course going to get ugly if anything manages to cross it outwards enough times...
19:57:21 <hagb4rd> yea but it's alle processed in realtime dude.. not just stated or persistant
19:57:37 <Phantom_Hoover> oerjan, oh, so you only scale when crossing the border.
19:57:54 <oklofok> easy to imagine this for a 2d world, just take a cylinder that's infinitely tall, digging makes you go down, walking forward makes you go around it
19:58:06 <Phantom_Hoover> So in other words it's identical to Asteroids if things scale linearly when they move down.
19:58:30 <Taneb> Is this still the Elite sequel?
19:58:42 <itidus20> oklofok: well the deeper paradox of falling through earth is that your up vector has to change at some point
19:58:56 <oerjan> Phantom_Hoover: oh i see itidus20 was already bringing up similar ideas. btw this reminds me of a valerian comic...
19:59:04 <oklofok> itidus20: unless you just fall infinitely?
19:59:15 <itidus20> so I decided let him fall in U shape
19:59:24 <Taneb> I'm pretty sure there's some groundbreaking pseudogeometry mathematician who would kill to see this log
19:59:26 <hagb4rd> are you talking about affine transformation to reduce z axis,?
20:00:12 <Phantom_Hoover> hagb4rd, dunno, I just mean that distance scales linearly when you move up or down, but is preserved when you move over the edge.
20:00:30 <hagb4rd> http://en.wikipedia.org/wiki/Affine_transformation
20:00:36 <itidus20> because if i didnt say let him fall in a U shape then either the map flips upside down or the character flips upside down and it would look awkward
20:01:09 <itidus20> i also realize that you couldn't actually fall through.. gravity would pin you in the center
20:01:36 <Taneb> Unless you have momentum
20:01:42 <Taneb> e.g., from gravity
20:01:43 <oerjan> http://en.wikipedia.org/wiki/Across_the_Pathways_of_Space#Funny_Specimens_.28Droles_de_Specimens.29
20:01:57 <oklofok> "<Taneb> I'm pretty sure there's some groundbreaking pseudogeometry mathematician who would kill to see this log" <<< pseudogeometry would be a great name for topology
20:01:57 <itidus20> the idea of falling through is really just to ensure that the planet is real
20:02:37 <itidus20> anyone who quotes that evil man behind general semantics who says the map is not the territory is to be slain >:)
20:03:08 <Phantom_Hoover> <itidus20> i also realize that you couldn't actually fall through.. gravity would pin you in the center
20:03:12 <hagb4rd> dont you remember how hard it was to brake soon eough to make a landing? autopilot noobs :p
20:03:26 <Taneb> Unless you had some sort of thrusters (as you are in a spaceship, I'd assume you would), you'd end up falling down then gliding up the other side
20:03:39 <Taneb> In a distanse that approaches zero
20:03:40 <hagb4rd> otherways you had to go 1 more turn around the sun
20:03:47 <Taneb> Is asymptote the word?
20:04:27 <itidus20> phantom, so uhh.. i don't think any player has any actual reason to dig in a planet. but i think that the idea forces the game to cope with that possibility
20:04:36 <oklofok> if you do something asymptotically, then for any definition of almost doing it, you will eventually be almost doing it.
20:05:18 <Taneb> It averages out to that
20:05:28 <itidus20> does it decrease as you approach the center?
20:06:10 <oerjan> itidus20: basically for a perfectly spherical body, the gravity at a point inside is given by only the part of the body that is further inside from you
20:06:16 <Taneb> I mean, if you just check one side, it'd be 7 or whatever. But because you're being pulled equally in all directions, it's effectively zero
20:06:24 <Phantom_Hoover> hagb4rd, there is no gravitational force acting on you at the centre of a planet.
20:06:49 <itidus20> on a related idea. i had this idea of a game of life sort of thing which makes connected clusters of dots have a mass and hence a gravity and to affect each other
20:06:51 <Taneb> Unless there were significant variance in density throughout the planet
20:06:52 <hagb4rd> gravity is acting on me even if'd be shit out of the universe d
20:07:16 <oerjan> hagb4rd: we are talking total sum of forces here
20:07:19 <Taneb> Which makes it really hard to compute
20:07:26 <oklofok> "<itidus20> on a related idea. i had this idea of a game of life sort of thing which makes connected clusters of dots have a mass and hence a gravity and to affect each other" <<< can i steal this idea and try to do something cool with it next week?
20:07:41 <Taneb> As well as the N-body problem
20:07:50 <hagb4rd> at least, in this encapsuled sim
20:08:08 <itidus20> all of my ideas are free to do whatever you like with as long as i get to use them myself
20:08:25 <Taneb> But the geometrical centre not necessarily, Phantom_Hoover
20:08:38 <Taneb> Which would make the centre of mass elsewhere
20:08:40 <Phantom_Hoover> Taneb, indeed, but a planet will always have them almost exactly the same.
20:08:43 <itidus20> as in, i don't want to get cut off from my own ideas
20:08:44 <oklofok> i like the idea of gravity for a ca
20:09:04 <Taneb> Unless the player starts moving dirt from one side of the planet to the other
20:09:17 <oklofok> Phantom_Hoover: i doubt he tried it in the way i'm thinking
20:09:25 <itidus20> so a tetris piece would have a mass of 4
20:09:29 <oklofok> i'm thinking an actual ca that enforces a gravity
20:09:49 <Phantom_Hoover> oklofok, elliott was trying to get relativity to work.
20:10:00 <oklofok> so that two clusters of 1's would attract
20:10:06 <itidus20> but if 2 tetris pieces bumped together, they would become one object with a mass of 8
20:10:20 <oerjan> Taneb: the shell theorem only works if the planet consists of perfectly spherical shells, naturally
20:10:22 <oklofok> yeah i was thinking some kind of gravitons
20:10:38 <hagb4rd> if think now you are ready to turn off autopilot and totally get lost behind beteigeuze c
20:10:55 <oklofok> 1's need to be preserved in number, and 0's should be a quiescent state, other states can do whatever they like
20:10:57 <oerjan> *perfectly uniform spherical
20:11:01 <itidus20> for me, diagonal connections in CA's (i love the acronyms you guy use so casually) is good enough to share mass
20:11:16 <Phantom_Hoover> <oerjan> Taneb: the shell theorem only works if the planet consists of perfectly spherical shells, naturally
20:11:54 <oerjan> Phantom_Hoover: well those are the ones that integrate to give 0 gravity inside
20:12:09 <oklofok> itidus20: as i love telling people, i get payed to play with ca all day so acronymizing it gets pretty casual
20:12:11 <hagb4rd> we can reduce complexity to make it fit on a single floppy!!!
20:12:43 <oerjan> Phantom_Hoover: i don't know whether those are the _only_ surfaces giving 0 gravity everywhere inside though
20:12:44 <itidus20> oklofok: ok heres another idea i had (i was on a roll that day)
20:13:12 <itidus20> a chess game CA where the piece type is determined by the pieces around it
20:13:46 <hagb4rd> unlike other things this one won't let me stop and wonder
20:13:48 <Taneb> No wait, that's different
20:14:00 <itidus20> well it would be just a CA... but the pieces would exist as uhh
20:14:01 <Taneb> A CA's a cellular automoton, right?
20:14:13 <itidus20> the pieces would be implied by the rules of the CA I guess..
20:14:41 <itidus20> so say you had a cell on its own.. that could be a pawn
20:14:47 <oklofok> a continuous shift-commuting self-map of S^Z where S is a finite set and Z are the integers. Z can also be Z^n for some n, for instance for gravity 2 is a natural choice
20:15:13 <oklofok> itidus20: chess pieces are not really mathematically interesting
20:15:19 <itidus20> i actually drew up some ideas of possible rules for which pieces are which
20:15:56 <oklofok> a lonely queen on the plane wouldn't know what to do!
20:16:05 <itidus20> oh.. well.. ok.. so you start with a regular game of life
20:16:09 <oklofok> also how far can a queen move?
20:16:29 <hagb4rd> oklofok.. the problem you have IS a real problem.. and youreflect it that nice. no'ones sure its gonna ex- or implode
20:16:55 <oklofok> hagb4rd: can you clarify a bit?
20:16:56 <itidus20> ok lets say its not quite game of life.. lets say you have 2 teams .. so trinary state
20:17:30 <oerjan> Phantom_Hoover: yes wikipedia's shell theorem article proves it from gauss' law. but the spherical symmetry is still essential to get 0 at every point rather than just as the total integral
20:17:34 <itidus20> i never really thought about it that way
20:17:59 <oklofok> two teams? a CA that has two players is still just a CA, since they are deterministic. are we talking tilings maybe? that is, nondeterministic CA
20:18:19 <itidus20> well.. you would have a dead cell, a black cell, and a white cell
20:19:03 <hagb4rd> istnt it an approximation at least good enough to to wonder what keeps bananas growing with this specific irregular way
20:19:19 <oklofok> i certainly like the idea of alternation for tilings
20:19:20 <itidus20> so at the end of a generation the player can select 1 cell.. whose type is determined by the cells around it
20:19:52 <oklofok> (in the sense of an alternating turing machine)
20:20:01 <itidus20> and in all likelihood it is now a new kind of piece having moved
20:20:24 <itidus20> and lets say you can capture an enemy cell by moving onto it
20:20:40 <oklofok> okay, well that's a particular game that's kind of weird
20:20:43 <oklofok> dunno what to ask about it
20:20:44 <hagb4rd> http://www.youtube.com/watch?v=5Ku5G4ovnUU
20:20:59 <oklofok> and again, how does a queen move?
20:21:02 <oklofok> can you go arbitrarily far
20:21:32 <itidus20> i was discussing that very question in here last night about how far can a chesspiece move
20:21:34 <Taneb> On a pseudogeometrical torus?
20:21:36 <oklofok> if you can, then the set of valid games might not be closed
20:22:03 <Taneb> I think in this context finite would do better
20:22:06 <oklofok> valid drawings of playings i mean
20:22:21 <oerjan> The Queen That Went Too Far
20:22:46 <itidus20> so the actual pieces are represented as rules of neighborhoods
20:23:17 <itidus20> and the fun of the design is determining which neighborhoods map to which pieces
20:23:49 <itidus20> I came up with a set but I never did anything with this idea
20:24:09 <Taneb> Changing the subject somewhat, is it possible to construct a physical machine that did functional programming at its lowest level?
20:26:28 <itidus20> The idea could also be extended into fairy chess.
20:27:42 <hagb4rd> or even result in resignation.
20:29:27 <Taneb> Some sort of von Neumman architecture?
20:29:43 <oerjan> Taneb: "And the next command is the one after that." "that" being _both_ the interpolated commands?
20:30:03 <oerjan> ok then i think i understand
20:35:49 <oklofok> how about: you have a finite set of states S, partitioned into E and U, the existential and the universal states. now for a point x \in S^Z, you can define its E-successors by changing all the cells of x in an E state to their possible successors, and its U-successors similarly; there's a local rule that tells you what changes are legal. now, to every sequence s in {"E", "U"}^N partitions S^Z we get a subset of points from which the game goes on foreve
20:35:59 <oklofok> i'll paste the latter half just in case
20:36:00 <oklofok> there's a local rule that tells you what changes are legal. now, to every sequence s in {"E", "U"}^N partitions S^Z we get a subset of points from which the game goes on forever, say for EUEUEUEU... this means from x, for some choice of new cell values by E, for any choice of any cell by U, for some choice of...
20:36:26 <oklofok> one way to have alternation but i'm not sure that's the most natural thing to do.
20:37:17 <oklofok> *now, to every sequence s in {"E", "U"}^N we can associate the set of points of S^Z from which the game goes on forever,
20:38:10 <itidus20> working on CAs it must be tough to resist the topic i came up with.
20:39:22 <zzo38> What is your opinion of the way the List of ideas has now been formatted on esolang wiki?
20:40:04 <hagb4rd> this tends at least to an idea i had of it..
20:40:18 <itidus20> so, on looking at reduceron page, I feel my ineptitude. what's the best language to learn functional programming concepts?
20:41:03 <hagb4rd> without beeing able to implement it an alg0
20:41:10 <Taneb> http://byob.berkely.edu
20:41:53 <itidus20> i have tried reading up on lambda calc once but i never quite got it
20:42:04 <Taneb> That site's got a tutorial
20:42:14 <Taneb> It's how I leant it
20:42:25 <zzo38> Do you know of some Icehouse+Tarot games? I have read about one such game called Gnostica. However, I have neither Icehouse nor Tarot.
20:42:30 <itidus20> oh nice it's visual programming
20:42:41 <Taneb> Yeah, it's based on Scratch
20:42:59 <itidus20> I won't fuck the room again by my ideas about visual programming.
20:43:17 <Taneb> It has functional bits in it
20:43:23 <Phantom_Hoover> By which I mean it's not functional by any stretch of the imagination.
20:43:35 <oklofok> the original idea of course was that s = EEE... would give you SFT's, in some sense. but that's not really happening atm...
20:43:47 <Taneb> Functional bits means you can learn functional programming with it
20:44:10 <itidus20> because if you think my ideas about torus worlds, gravity CAs, chess CAs make a mess. then visual programming is just as bad
20:48:47 <oklofok> you may have already supplied me with next week's research topic (by putting games and CA close to each other), this is actually something i've been wanting to do for ages but i had to work on my master's thesis last time so it never got anywhere
20:49:14 <itidus20> I smash them together like a particle collider
20:49:40 <oklofok> gravity + ca is certainly interesting but you could ofc only publish it as a joke
20:50:09 <oklofok> i mean the answer to my particular question of whether you can implement gravity behavior with a ca
20:50:25 <lambdabot> "Haskell Haskell Haskell Haskell Haskell Haskell Haskell Haskell Haskell Ha...
20:50:29 <itidus20> Basically I see things as existing in academic space and entertainment space.
20:50:56 <oklofok> but actually a somewhat similar (much simpler) question was recently solved in a famous 150 or so page paper in the 1d case, i just realized
20:51:14 <itidus20> I take inspiration from people like lewis carroll
20:51:45 <Taneb> I take inspiration from JRR Tolkein
20:51:54 <oklofok> the academic space is a subset of the entertainment space
20:52:04 <Taneb> I say it's the other way round
20:52:09 <itidus20> this may be off topic, but, i had one chess idea about a castle and a forest
20:52:18 <zzo38> I would say the spaces overlap but neither is a subset of the other
20:52:22 <itidus20> the idea is you can enter the forest and emerge from it whereever you like
20:52:32 <oklofok> (i can't imagine any chess related idea being mathematically interesting really)
20:53:07 <itidus20> there was something about guards on the castle. i dunno exactly how it went
20:53:10 <Taneb> (A lot of people would say mathematically interesting is a tautology)
20:53:35 <oerjan> oklofok: well there is the question of complexity class
20:53:42 <itidus20> oklofok, well to me, chess is a CA in disguise.
20:54:12 <itidus20> It just needs to be teased out from its disguise
20:54:29 <Taneb> When you try to make one talk
20:54:40 <oklofok> oerjan: does this sound familiar: take two topological spaces U and T and a point x in T. stick U in place of x.
20:54:40 <Phantom_Hoover> <itidus20> oklofok, well to me, chess is a CA in disguise.
20:54:59 <oklofok> assume additional stuff for U and T if useful
20:55:12 <itidus20> hoover, well it could be deterministic :D
20:55:14 <Taneb> It's a phase sppace
20:55:30 <Taneb> It's deterministic in the fifth dimension
20:55:31 <Phantom_Hoover> itidus20, no, it would literally be the most boring thing in the world.
20:55:41 <oerjan> oklofok: i'm not sure if it has a name but it's a pretty obvious thing to do...
20:55:45 <oklofok> but i was thinking open sets are generated by those of U, and those of T with x replaced by the whole U
20:55:57 <itidus20> replace the players with a rule for evolving the chessboard closer to an end.
20:56:11 <Phantom_Hoover> oklofok, isn't that a fibre— no, wait, it's just a single point.
20:56:24 <oklofok> "<itidus20> oklofok, well to me, chess is a CA in disguise." <<< i don't see it that way at all
20:56:34 <oerjan> oklofok: you'd probably want U to be closed as a subspace, since {x} is (assuming hausdorff spaces)
20:56:40 <zzo38> I had an idea once, chess with two time dinensions.
20:56:55 <Taneb> I once tried to do battleships as a CA
20:57:06 <Taneb> I didn't get very far
20:57:19 <oklofok> oerjan: well it would be obviously
20:57:20 <Phantom_Hoover> Taneb, protip: games are universally nondeterministic.
20:57:35 <Taneb> Hence why I didn't get very far
20:57:58 <oklofok> because T - {x} is still open
20:58:11 <oerjan> oklofok: also http://en.wikipedia.org/wiki/Surgery_theory which is somewhat different but feels related
20:58:13 <oklofok> U would be a clopen set tho so hmm.
20:58:17 <itidus20> theres a mix of ideas that come into play. a binary CA is easily computable and could be said to be properly reduced. or more optimized etc, however -- the factor of human comprehension is always important
20:59:04 <itidus20> humans comprehend chess pieces easily. so are they not better for humans to manipulate than binary tiles
20:59:24 <itidus20> I think there is a tradeoff involved with no perfect answer.
20:59:35 <oklofok> oerjan: i should certainly read some literature on this stuff
20:59:40 <Phantom_Hoover> itidus20, they're fundamentally different abstractions.
20:59:41 <oklofok> on it, but progress is slow
20:59:46 -!- myndzi\ has changed nick to myndzi.
20:59:51 <oklofok> since i constantly come up with new problems to solve :\
21:00:37 <Phantom_Hoover> oklofok, meanwhile I still have over a year until university.
21:00:37 <itidus20> well chess has more cell states {pawn, king, queen, knight, bishop, rook} x {white, black}
21:00:51 <Taneb> Don't forget unoccupied
21:00:54 <zzo38> itidus20: And empty spaces.
21:01:16 <itidus20> ( {pawn, king, queen, knight, bishop, rook} x {white, black} ) + {blank}
21:01:28 <oerjan> oklofok: mind you this is not a field i know much more than the name of either
21:01:49 <Sgeo> Where does location fit into that model?
21:01:57 <oklofok> "<Phantom_Hoover> oklofok, meanwhile I still have over a year until university." <<< math?
21:02:11 <Taneb> Location is inherent, Sgeo
21:02:12 <oerjan> oklofok: that cell attachment thing mentioned in that article sounds promising but there was no link
21:02:19 <itidus20> there are some issues with that model though.. thats true
21:02:28 <itidus20> it is wise to note that theres things missing
21:02:29 <Taneb> By which I mean that these cells are all in the correct location
21:02:33 <zzo38> You could also have additional states if you want to keep track of en passan and castling as cell states as well.
21:02:54 <Phantom_Hoover> itidus20, look, CAs are not well viewed as entities moving around a space.
21:03:05 <Sgeo> King-castled and king-notcastled
21:03:05 <itidus20> langton's ant is one exception
21:03:15 <Sgeo> Rook-castled and Rook-notcastled
21:03:17 <oklofok> i guess actually the "correct" topology is having T's open sets with x replaced by open sets of U
21:03:26 <Phantom_Hoover> There are many exceptions, but they are in the minority.
21:03:33 <itidus20> and human intervention is even worse :P
21:03:55 <oerjan> oklofok: interestingly googling "cell attachment topology" is not enough to restrict the hits to mathematics :P
21:04:02 <Phantom_Hoover> The point is that trying to start viewing CAs that way will just confuse you later on.
21:04:07 <itidus20> like in the movie dark city.. when a generation has finished secret activiies of the night adjust the city
21:04:10 <Phantom_Hoover> <oerjan> oklofok: interestingly googling "cell attachment topology" is not enough to restrict the hits to mathematics :P
21:04:24 <Phantom_Hoover> Topologies of biological cells attached to each other?
21:04:27 <oklofok> assuming hausdorff space you will then get the topology of T by taking the open sets of this thing but "rounding elements of U up to x"
21:04:29 <zzo38> Only the rooks need to keep track of castling restrictions, not the king. If the king moves, both rooks change to the one unabled to be castling.
21:04:41 <oerjan> Phantom_Hoover: yeah something like that
21:05:03 <itidus20> I force myself to be iconoclastic and autodidactic in this.
21:05:04 <Phantom_Hoover> itidus20, and yes, as Sgeo points out, chess has a certain amount of hidden state as well.
21:05:18 <itidus20> yeah i forgot those hidden states, but they can be unhidden :D
21:05:21 <zzo38> Chess doesn't have hidden information.
21:05:22 <Sgeo> Hmm, why both rooks, instead of a random rook?
21:05:34 <itidus20> they were indeed left out of my model
21:05:54 <Phantom_Hoover> Looking at the board, it's impossible to tell if the king has castled.
21:06:08 <Phantom_Hoover> Yes, and kludges are exactly what you were trying to avoid.
21:06:10 <Taneb> Unless you had been paying any attention to the game
21:06:12 <zzo38> Sgeo: Both rooks just seems like a better way to do it, it simplifys some things
21:06:24 <itidus20> pre-castled king could be red and yellow
21:06:35 <Phantom_Hoover> You said yourself you were trying to make a natural chess CA; that is impossible.
21:06:42 <Sgeo> itidus20, why are you trying to assign colors to this?
21:06:49 <Phantom_Hoover> <Taneb> Unless you had been paying any attention to the game
21:07:03 <Sgeo> Game of Life isn't described in terms of black and white, just "living" and "dead"
21:07:04 <zzo38> I think the kings don't need castling state, only the rooks do.
21:07:14 <Phantom_Hoover> Hidden state means that you can't work out the future moves of the game based purely on its present state.
21:07:14 <Taneb> I'm saying it isn't hidden information
21:07:21 <itidus20> sgeo: because I am trying to not take sides
21:07:31 <Sgeo> ...take sides?
21:07:47 <zzo38> Sgeo: Sometimes black/white, sometimes different colors, by standard called "living" and "dead", although I prefer "on" and "off".
21:07:49 <Taneb> In a game of chess, both players know whether a king has moved, and whether a pawn has just moved twice
21:07:50 <Phantom_Hoover> OK, I'm defining 'hidden state' to be state not ascertainable by looking at the position of pieces on the board at a given time.
21:07:50 <itidus20> i have proven that you could represent the hidden information if you wanted to
21:08:17 <Phantom_Hoover> Because the positions of pieces on the board at a given time is all you have in the CA.
21:08:37 <Phantom_Hoover> itidus20, yes, and I have already said that it rules out an elegant representation, which is what you were trying to make.
21:08:39 <itidus20> but i could multiply the states by a few more booleans. i know its ugly
21:08:43 <zzo38> I have also described a few ways in which you can put these information part of the board state, by adding new kind of pieces for this information
21:09:01 <oerjan> Phantom_Hoover: well with a CA there is no trouble adding some extra piece types to encode the necessary hidden state
21:09:02 <zzo38> But still what you do not tell, is which player plays next.
21:09:09 <Phantom_Hoover> oerjan, <Phantom_Hoover> itidus20, yes, and I have already said that it rules out an elegant representation, which is what you were trying to make.
21:09:33 <itidus20> i never ever ever thought of this before though.. colored pieces
21:09:37 <Sgeo> Phantom_Hoover, define "elegant"
21:09:39 <Taneb> yeah, I'm redacting my comment about learning functional programming with BYOB
21:09:49 <zzo38> Now there is 2 kind of rooks, castling allowed rooks, and castling disallowed rooks.
21:09:51 <oerjan> Phantom_Hoover: chess _already_ has pieces which change
21:10:06 <itidus20> Ok I admit that I use no true scotsman logic. I believe it has some value.
21:10:21 <zzo38> And 2 kind of pawns, the kind which has just been moved two spaces, and the normal kind.
21:10:23 <Phantom_Hoover> Sgeo, one in which the cells are completely analogous to the pieces on the board.
21:10:43 <oerjan> itidus20: yeah everyone knows Phantom_Hoover is no true scotsman
21:10:49 <Sgeo> Make a CA whose neighborhood also extends backwards in time to the initial state
21:11:13 <Phantom_Hoover> <Sgeo> Make a CA whose neighborhood also extends backwards in time to the initial state
21:11:13 <Sgeo> Or is that too insane?
21:11:14 <itidus20> there is nothing wrong with revising an argument as long as the intention is good
21:11:30 -!- zzo38 has quit (Remote host closed the connection).
21:12:02 <oklofok> Phantom_Hoover: CA have initial states?
21:12:19 <oklofok> i'm going to have to be surprised by this claim!
21:12:23 <itidus20> Some of my best chat friends have been Scots
21:12:33 <oklofok> you mean no initial configuration or what?
21:13:03 <Phantom_Hoover> oklofok, I mean something along the lines that each generation has no idea when the initial state was.
21:13:10 <oerjan> oklofok: in the beginning there was the garden of eden
21:13:15 <Phantom_Hoover> The transition rules are time-invariant, in other words.
21:13:16 <itidus20> sgeo: the buddha said that you can't do it and you will go mad trying.
21:13:31 <Taneb> We're all mad here
21:14:02 <Phantom_Hoover> oerjan, what was that Alice in Wonderland quote again?
21:14:12 <Sgeo> Can the transition rules mention a specific state? Hmm, that doesn't work, initial chess state is NOT a garden of eden
21:14:21 <itidus20> Thus back in india 2500 years ago or whatever they were discussing that you will go mad trying to trace back to original causes
21:14:24 * oerjan pours some hatmaking chemicals into Taneb's tea
21:14:37 <oklofok> oerjan: god said, let there not be two asymptotically equal states of the world with the same image, and thus there was a garden of eden.
21:14:43 <Taneb> I can't stand tea!
21:14:48 <itidus20> sgeo, the problem is that chess isn't deterministic. if it was then you could
21:15:00 <oklofok> Sgeo: the whole point of CA is they are continuous, meaning they only depend on a finite amount of cells near them
21:15:08 * Taneb absorbs the aroma of tea
21:15:12 <Sgeo> Ok, so so much for that
21:15:17 * Taneb dies of inhaling hatmaking chemicals
21:15:27 <Taneb> It's a State in South west US
21:15:34 <itidus20> sgeo: I mean, you can't see which piece was the last one to move by looking at a chessboard.
21:15:46 <oklofok> let there be two such states.
21:16:09 <Taneb> A CA is a cellular Automaton, cheater_
21:16:29 <itidus20> also, suppose that a rook moved left, then right, then left... you couldn't determine how far left and right it moved
21:16:31 <Taneb> Just the aftertaste...
21:16:54 <oklofok> cheater__: i just gave the definition a few hours ago
21:17:24 <oklofok> oh right cellular automaton, i can't believe people don't know the abbrev...
21:17:53 <oerjan> "But I don't want to go among mad people," Alice remarked. "Oh, you can't help that," said the Cat: "we're all mad here. I'm mad. You're mad." "How do you know I'm mad?" said Alice. "You must be," said the Cat, "or you wouldn't have come here."
21:18:41 <itidus20> is that a set theory thing? :D
21:19:00 <itidus20> that the teaparty consists of a set of mad people
21:19:02 <oerjan> <oklofok> sorry oerjan <-- wat?
21:19:22 <Taneb> I think it's a four dimensional vectors thing
21:19:29 <oerjan> itidus20: where do you think bertrand russell got his teapot from anyway
21:20:04 <Taneb> Something to do with the Mad Hatter's Tea Party
21:20:06 <oklofok> so those people that gets healed by faith healers, why don't they get really mad and make a big deal out of it not working?
21:21:14 <itidus20> there is first of all, certain implications about a person for visiting the faith healer in the first place
21:21:27 <itidus20> just as there is implications about a person visiting a brothel
21:21:27 <Taneb> I'm still trying to figure out how to get that sign I have that says Taneb into town centre
21:22:03 <oklofok> "<itidus20> just as there is implications about a person visiting a brothel" <<< like living in a country that has those?
21:22:27 <itidus20> what do you expect from convicts
21:22:58 <itidus20> but like.. such a person is unlikely to say put some bloody clothes on
21:23:18 <Taneb> I've got relatives in Australia
21:23:19 <itidus20> and.. also.. if the sex is bad.. is it his fault or her fault
21:23:42 <itidus20> i suspect that theres not much room for refunds at a brothel
21:24:06 <itidus20> you get naked with a woman and you're not getting a refund
21:25:08 <itidus20> the chances of someone wanting to try a faith healer and then getting angry about what happens is much decreased than if its a skeptic doing research
21:25:09 <Taneb> How are you going to return the goods, oklofok?
21:25:42 <oklofok> how do you return the goods if you go up the eiffel tower and the view was not good?
21:25:55 <itidus20> humans, also, are reasonable overall. sometimes they let things go.
21:25:59 <oklofok> not saying he's not correct, i'm asking what the fuck he's talking about
21:26:20 <itidus20> company policies tend to be based around the likelihood of customers to not kick up a fuss
21:26:23 <Taneb> what "the fuck" indeed
21:26:38 <itidus20> "<oklofok> so those people that gets healed by faith healers, why don't they get really mad and make a big deal out of it not working?"
21:26:43 <oklofok> so do you mean people might be ashamed of even thinking it might work?
21:27:06 <itidus20> its actually in human nature to let things be more often than not
21:27:22 <Taneb> Because people who have faith in the faith healers will ignore the naysayers, and people who don't just laugh at the naysayers for being slow
21:27:28 <oklofok> but i don't recall hearing about even one case of a tv faith healing not working
21:27:28 <itidus20> with a few more rambunctious individuals standing up for the greater whole
21:27:45 <Phantom_Hoover> This is boring, can we go back to talking about maths?
21:28:34 <itidus20> and reallly noone knows what is possible
21:28:45 <itidus20> overestimation of knowledgebase is a common occurance
21:28:51 <oklofok> by noone you mean everyone right?
21:29:08 <itidus20> just as a programmer can't answer every arbitrary question about a computer
21:29:23 <itidus20> a faith healer can't necessarily explain why something might or might not work
21:29:51 <Taneb> Is collective human intelligence turing-complete?
21:29:57 <itidus20> and a person with a working respitory system probably doesn't know exactly how it works either
21:30:06 <Taneb> Or extelligence, even
21:30:10 <itidus20> we more or less have no clue what our bodies are doing
21:30:30 <Taneb> This was addressed in a Terry Pratchett book
21:30:36 <Taneb> Reaper Man, I think
21:30:36 <oklofok> Phantom_Hoover: so did you know that in a compact hausdorff space the closed sets are exactly the compact ones
21:31:02 <oklofok> hausdorff = for every x != y you find disjoint neighborhoods for x and y
21:31:08 <Phantom_Hoover> <Taneb> Is collective human intelligence turing-complete?
21:31:22 <oklofok> hmmhmm i wonder how it goes
21:31:31 <Taneb> Even if you include those people with perfect memory
21:31:44 <Phantom_Hoover> Taneb, for one thing, there's no such thing as infinite storage.
21:32:40 <oklofok> so first, let C be closed, and let S be an open cover for it (open sets whose union covers C). by adding X - C where X is the whole space, we get an open cover for X, and since X is compact, you then find a finite subcover for X, which gives you a finite subcover for C as well. so closed => compact.
21:32:49 <oklofok> as for the other direction, let's see...
21:32:59 <itidus20> i thnk rather than physical and mental, there is the experiential (conciousness and qualia and all that) and the inexplicableness which makes it possible
21:33:36 <itidus20> but to divide them is wrong. theres a lot of evil that goes on when toying with such ideas
21:33:52 <itidus20> not dividing them might also be wrong
21:34:42 <itidus20> so i guess that the natural way of things is to simply admit we don't understand
21:35:06 <Taneb> http://en.wikipedia.org/wiki/Hyperthymesia
21:35:25 <oklofok> let C be compact, and let x \notin C. for every point y in C we find open U_y and V_y such that U_y contains x, V_y contains y and U_y and V_y are disjoint (this is just hausdorffness). now V_y's actually form an open cover of C, so there's a finite subcover (compactness of C) of the V_y. let's say the indices are Y. but now, the intersection of U_y where y \in Y is open (because it's finite!) so in fact we have separated x from C
21:35:30 <oklofok> x is arbitrary => C is closed
21:36:18 <oklofok> this is kind of trivial i suppose but it's very useful to remember since almost all important spaces are hausdorff, and many are compact.
21:37:07 <itidus20> any view which explains everything is necessarily a false view
21:37:18 <oklofok> (for instance all metric spaces are hausdorff and all bounded metric spaces are compact)
21:38:41 <oklofok> Phantom_Hoover: DID YOU FIND THAT TOO TRIVIAL?
21:39:42 <oklofok> do you know what a path is?
21:40:00 <oklofok> well anyway a continuous function from [0, 1] to your favorite topological space
21:40:49 <oklofok> like f : [0, 1] -> X such that f(x) = y implies if y is in an open set U then for small enough perturbations of x, the image won't go outside U
21:40:56 <oklofok> (definition of continuity)
21:41:10 <oklofok> now what is a continuous subset of X?
21:41:19 <oklofok> *now what is a connected subset of X?
21:41:34 <oklofok> can you come up with a definition using the idea of a path
21:42:51 <oklofok> (i have a bad habit of giving people homework)
21:43:08 <itidus20> "One time I went to buy some ice cream ... I walked over to the vendor and asked her what kind of ice cream she had. 'Fruit ice cream,' she said. But she answered in such a tone that a whole pile of coals, of black cinders, came bursting out of her mouth, and I couldn't bring myself to buy any ice cream after she had answered in that way ..."
21:43:36 <Taneb> I was thinking of http://en.wikipedia.org/wiki/Eidetic_memory
21:43:43 <Taneb> But linked the wrong thing
21:44:28 <itidus20> ok so I had this idea just the other day
21:44:59 <Taneb> Chess variants as XML?
21:45:04 <itidus20> This may sound odd. Normally, we assign a word to only single dimensional numbers.
21:45:17 <itidus20> but suppose we were to assign words to numbers with more than one dimension.
21:45:43 <Phantom_Hoover> <oklofok> can you come up with a definition using the idea of a path
21:46:26 -!- elliott has joined.
21:46:36 <lambdabot> elliott: You have 3 new messages. '/msg lambdabot @messages' to read them.
21:46:49 <Phantom_Hoover> A subset such that \forall x, y \in X, \exists f : f(0) = x, f(1) = y?
21:47:03 <itidus20> suppose I said, lalala = [7][3]
21:47:04 <oklofok> where f is a path, precisely
21:47:09 <oklofok> this is called path-connectedness
21:47:10 <elliott> Taneb: Are you serious do you live in Hexham.
21:47:12 <itidus20> suppose I said, lalala = [7,3]
21:47:22 <itidus20> oops i am misinterpreting the comma
21:47:33 <itidus20> maybe we should go with my first comment
21:47:38 <oklofok> Phantom_Hoover: it would've been SLIGHTLY less trivial if i had specified we're asking when Y a subset of X is connected
21:47:47 <itidus20> taneb, the trick is that every number is already a vector
21:48:06 <oklofok> Y is path-connected if, with the subspace topology, what you said is true for it
21:48:11 <Taneb> So, we're giving names to n-length vectors
21:48:33 <oklofok> that amounts to Y being path-connected if and only if for all x, y in Y, there's a path f that goes completely inside Y.
21:48:39 <Taneb> I don't think we can change the English language like that
21:48:47 <oklofok> the reason i'm saying this is path-connectedness is that there's also another thing called connectedness
21:48:55 <oklofok> which is slightly harder to guess
21:49:32 <elliott> Taneb: SILENT TREATMENT I SEE
21:49:41 <oklofok> we say X is connected if it cannot be partitioned into open sets except in the trivial way of just having the whole X in one component
21:49:52 <itidus20> Taneb, but it is sort of interesting eh?
21:50:03 <oklofok> now, is there a connection between path-connectedness and connectedness?
21:50:16 <Taneb> I have no idea, either
21:50:39 <itidus20> im probably the dumbest in here.
21:51:41 <oklofok> hahah no way that's gonna happen
21:51:45 <Taneb> elliott: Silet treatment about what?
21:51:53 <elliott> Taneb: <elliott> Taneb: Are you serious do you live in Hexham.
21:51:56 <oklofok> you know just now i was like, hey i have some pizza let's eat
21:51:57 -!- FireFly has joined.
21:52:04 <oklofok> and then i look in the fridge and it's empty
21:52:10 <oklofok> and i'm like what the fuck happened to my pizza
21:52:13 <elliott> Taneb: I find this vaguely inconceivable.
21:52:14 <oklofok> and then i saw i had eaten it
21:52:41 <oklofok> "<itidus20> I don't know algebra." <<< the true definition of smartness
21:52:41 <Phantom_Hoover> elliott, you have seen the log when I found out haven't you it is hilarious.
21:53:29 <Taneb> Is there a way to find out how many users there are on the wiki?
21:53:35 <oklofok> hey! Taneb maybe you could also invite elliott to the proof party!
21:53:48 <elliott> Taneb: Special:Listusers or something
21:53:55 <itidus20> i can say i don't understand any of the quotes in here which get mathematical
21:54:33 <oklofok> itidus20: most of the math stuff i say is just for my own amusement
21:54:35 <Taneb> There are 678 users on the wiki
21:54:45 <oklofok> it doesn't even mean anything
21:54:58 <Taneb> Hexham has a population that I'm gonna call 10000 for easier maths
21:55:05 <Taneb> The world has 6 billion people in
21:55:13 <oklofok> 12000 would've been easier silly
21:55:13 <Phantom_Hoover> Taneb, I don't even need to tell you why that count is crazily skewed.
21:56:34 <itidus20> elliot: they mentioned you before. when i was talking about the idea of making a CA in which connected live cells have a collective mass and hence gravity.
21:57:00 <oklofok> http://www.youtube.com/watch?v=c6WKz-z0GYA&NR=1
21:57:04 <Taneb> By these numbers, there is a 1 in 600000 chance of a random person living in Hexham
21:57:22 <Taneb> Now, with 700 users on the esolang wiki
21:57:57 <Taneb> That means there is over a 1 in 1000 chance of one living in Hexham
21:58:04 <monqy> is there any better way to stalk elliott
21:58:07 <Taneb> Two is over 1 million
21:58:09 <Phantom_Hoover> Taneb, you of course realise that the probability of a random esolanger being from Hexham is much more than 1/600000.
21:58:09 <elliott> one in one thousand is pretty bad odds
21:58:24 <monqy> picking random people is pretty lousy
21:58:33 <elliott> monqy: what are you talking about
21:58:43 <monqy> apparently something unrelated
21:58:52 <Phantom_Hoover> As most of those 600000 people don't even know English, let alone move in the social circles that lead to us.
21:58:59 -!- Nisstyre has quit (Quit: Leaving).
21:59:18 <oklofok> what's the speakation number of english?
21:59:37 -!- Nisstyre has joined.
21:59:45 <elliott> Taneb: OK fine, the chance of a random person who is both an esolanger and who reads MSPA living in Hexham is pretty low :-P
21:59:49 <Taneb> 500 million to 1.8 billion
22:00:05 <Taneb> MORE SO NOW I KNOW I AM NOT ALONE
22:00:18 <elliott> Taneb: NOPE, sorry, I'm moving into a cave.
22:00:29 <Sgeo> Who else is in Hexlam?/
22:00:38 <elliott> Me and Taneb are the only two people in Hexham.
22:00:56 <oklofok> well i kind of live in hexham too
22:01:02 <Sgeo> I thought you uncovered some fax alias or something
22:01:29 -!- zzo38 has joined.
22:01:52 <Phantom_Hoover> Well, I think we can chalk that down to coincidence; also go to #esoteric-minecraft now.
22:01:56 <Sgeo> elliott, as in, Hexham was where fax lives or something, so it would seem likely that Taneb is fax
22:02:07 <oerjan> <oklofok> (for instance all metric spaces are hausdorff and all bounded metric spaces are compact) <-- BZZZT WRONG. *complete, totally bounded
22:02:17 <elliott> Taneb: WHY ARE YOU LITERALLY ME
22:02:37 <Taneb> I'M AN ESTIMATED 2-3 YEARS YOUNGER
22:02:40 <elliott> Phantom_Hoover: Not that I know.
22:02:48 <oklofok> itidus20: see, what i said earlier didn't make sense without oerjan's addition
22:02:55 <Sgeo> Phantom_Hoover, no, but I thought maybe that was the case, and that was the "weird coincidence"
22:03:03 <Sgeo> That might not have been a coincidence
22:03:20 <elliott> Phantom_Hoover: I'm not seventeen and a half.
22:03:28 <itidus20> oklo: i am a magnitude more clueless about math.
22:03:55 <Sgeo> Phantom_Hoover, assuming you mean IP, then I don't pay attention to those
22:03:56 <oklofok> oerjan: what's totally bounded? by bounded i meant the space is a ball. but obviously you will then need to add completeness yeah because R^2 would be a counterexample otherwise
22:03:58 <elliott> Taneb: I'm almost sixteen :-P
22:04:05 <oklofok> (by using a different metric)
22:04:34 <Taneb> And I've been outside the UK for why the hell do I have a US keyboard layout 1 1/2 years
22:05:14 <Taneb> I think it's this client
22:05:46 <elliott> Ha, you use Windows; I am justifiably superior.
22:05:59 <elliott> -Taneb- VERSION leafChat 2.3 Windows XP 5.1 http://www.leafdigital.com/software/leafchat/
22:06:32 <Phantom_Hoover> Taneb, shut up I'm making up crazy theories here and you're spoiling them.
22:06:43 <Taneb> I'm already crazy enough
22:06:46 <oklofok> oerjan: is the proof hard btw?
22:07:05 <elliott> Taneb: OK so you are required to stop being literally me.
22:07:05 <Taneb> I got famous last year for wearing a dressing gown and joining a political organization
22:07:26 <oklofok> i don't directly see it, sequential compactness shouldn't be very hard and then i guess you can show compactness eq to that in metric spaces
22:07:51 <Taneb> I'm actually serious
22:08:02 <monqy> what does famous mean
22:08:12 <Taneb> I've been described as a North-East legend
22:08:24 <Phantom_Hoover> And I'm not famous for being crazy well OK I am but not for wearing a dressing gown.
22:08:41 <elliott> Taneb: You are required to explain
22:09:32 <Taneb> darthsandroids.net was running a competition
22:09:46 <Taneb> I entered with a picture of me in a dressing gown holding a model lightsabre
22:09:47 <Phantom_Hoover> Taneb, oh, not the student protests YES I GOOGLESTALKED
22:10:01 <Taneb> Set this as my Facebook profile picture
22:10:08 <Taneb> No, PH, that came later
22:10:16 <elliott> http://darthsandroids.net/ is a free iPod site. You'd think it'd be a free Android phone site.
22:10:23 <elliott> (Or, y'know, Darths and Droids.)
22:10:38 <Taneb> A galaxy in turmoil
22:10:50 <Taneb> Anyway, Febuary '10
22:10:56 <Phantom_Hoover> Taneb, and you turned up in a dressing gown and lightsabre?
22:11:01 <elliott> `addquote <Taneb> Cut to February <Taneb> War were declared <Taneb> A galaxy in turmoil <Taneb> Anyway, Febuary '10
22:11:02 <HackEgo> 506) <Taneb> Cut to February <Taneb> War were declared <Taneb> A galaxy in turmoil <Taneb> Anyway, Febuary '10
22:11:25 <Taneb> I saw a poster saying "Be a Youth Representative for Northumberland"
22:11:30 <Phantom_Hoover> (We have people in Scotland protesting tuition fee rises for them.)
22:11:35 <Taneb> Won the election by a landslide
22:11:46 <Taneb> That was November '10, PH
22:11:59 <Taneb> Got in the Financial Times and everything
22:12:13 <Taneb> Point is, Loads of people across Northumberland heard of me.
22:12:24 <elliott> YOU'RE NOT FAMOUS IF I DON'T KNOW YOUR NAME
22:12:29 <Taneb> This was aided by my awesome name and facial hair (RIP)
22:12:33 * elliott immediately stops consuming all forms of media.
22:12:41 <elliott> Taneb: sorry Phantom_Hoover's name is cooler.
22:12:45 <elliott> Mostly because I can't spell it.
22:12:55 <Taneb> Mine makes me sound like a supervillain
22:12:59 <oklofok> i wonder if i'm famous yet
22:13:21 <elliott> Adhamhnáin_McCuil: Put him in his place
22:13:25 <elliott> IF THAT'S YOUR /REAL/ NAME
22:13:51 <elliott> The place of slightly inferior names to you.
22:14:13 <Taneb> And now I have 1789 friends on Facebook
22:14:31 <monqy> I don't have a real facebook
22:14:54 <elliott> english has bad type checking :(
22:15:14 <Taneb> Zero, Elliott, when I heard you lived in Hexham I checked you out
22:15:29 <elliott> i deleted my facebook ages ago anyway
22:15:37 <oklofok> still only page three for picture languages :-<
22:15:51 <Taneb> Somebody called Robbie Soulsby described you as " Hes nee fukn wanker"
22:16:16 <elliott> I have no idea who that is and I suspect they're not talking about me :-P
22:16:34 <Taneb> Take it was a complement
22:18:10 <Taneb> He is not someone who both has sex and masturbates
22:18:56 <Phantom_Hoover> <Taneb> Somebody called Robbie Soulsby described you as " Hes nee fukn wanker"
22:18:59 <Taneb> Combination of bad spelling, profanity, and Geordie
22:20:51 <Phantom_Hoover> You are currently stalking elliott by asking random friends if they've heard of him y/n
22:21:05 <Taneb> Asking random /people/
22:21:31 <Taneb> PH: I wouldn't count them as friends
22:21:41 <Taneb> ND: It's stalking.
22:22:19 -!- Taneb has quit (Read error: Connection reset by peer).
22:25:47 <oerjan> oklofok: i don't remember the proof, i just looked up at http://en.wikipedia.org/wiki/Totally_bounded_space
22:26:10 <oerjan> also, my jokes seem to be coming true. i need to be careful in the future.
22:26:41 <oklofok> yeah that makes way more sense than the space being a ball since the space being a ball doesn't really give you anything.
22:26:51 <Phantom_Hoover> oerjan, quick, joke that I'll discover that I'm heir to a vast inheritance tomorrow.
22:27:54 <oerjan> yes. a vast herd of sheep in the highlands. and a castle, which sadly is in a bit of a need of repairs.
22:28:01 <oklofok> don't we all wish our families would die
22:29:10 <Phantom_Hoover> oklofok, I already know that I'm heir to my parents' stuff, so that doesn't count as discovering.
22:29:40 <oklofok> i have no idea how much money my parents have
22:30:10 <oklofok> like i have no idea which [10^n, 10^{n+1}] it's in
22:30:34 <oerjan> Phantom_Hoover: enough to eat lamb every day for the rest of your life
22:30:57 <olsner> I would guess much less than 100 million moneys
22:31:06 <oklofok> olsner: i doubt they'd tell me
22:31:18 <oklofok> i don't even know if my mom has a religion
22:33:06 <oklofok> i have a hunch she votes for parties that are into that environment protection stuff, but i have no idea about my dad, really i don't even know whether he votes
22:34:56 <Phantom_Hoover> oklofok, well, for instance, have you ever actually seen your dad.
22:36:05 <Phantom_Hoover> I mean, your parents may well have died when you were 2 and all you can remember is that your mother voted for environmental parties.
22:36:16 <Phantom_Hoover> Possibly because she took baby you into the polling booth.
22:36:21 <oklofok> well i did live with them for 19 years or so
22:37:08 <oklofok> although they spent the last year mostly at our summer house because i liked having the house to myself and they liked gardening and shit
22:37:26 <oklofok> i mean the non-summer house
22:37:55 <Phantom_Hoover> oklofok, wait a minute why do you like topology it's not even discrete explain??????????????
22:38:06 <oklofok> that was an awesome year, my last year of high school, all i did was sit in my armchair naked and eat pizza
22:38:24 <oklofok> Phantom_Hoover: i dunno! that is kind of weird!
22:38:45 <oklofok> but S^Z has a topology as well
22:38:57 <oklofok> and it's pretty discrete in spirit
22:39:27 <oklofok> we also measure subsets of S^Z every day
22:39:46 <oklofok> it's a pretty routine thing
23:02:03 -!- Sgeo_ has joined.
23:02:33 -!- FireFly has quit (Quit: swatted to death).
23:03:13 -!- Sgeo has quit (Ping timeout: 255 seconds).
23:04:28 -!- Sgeo has joined.
23:06:49 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
23:12:40 * Phantom_Hoover attempts to find citation for the story about Prince Charles' bodyguard at Cambridge.
23:13:24 -!- Sgeo_ has joined.
23:15:20 -!- hagb4rd has changed nick to hag[4]rd.
23:15:45 -!- Sgeo has quit (Ping timeout: 250 seconds).
23:16:44 <elliott> 19:21:21: <oerjan> it does not disappear when i scroll
23:18:52 <elliott> 20:09:29: <Taneb> Man, I just got confused when Wikipedia didn't have an article on the Churing-Turch Thesis
23:19:38 <elliott> 20:20:38: <ais523> Taneb: no, my language
23:19:38 <elliott> 20:20:43: <ais523> http://pastebin.com/MDEebq26
23:19:45 <elliott> expired and on a bad pastebin. hth.
23:34:10 <Sgeo_> pastebin.com is bad?
23:34:24 <Sgeo_> Also, sometimes I posted pastes in here deliberately set to expire
23:34:27 <Sgeo_> Like the #jesus stuff
23:34:36 -!- Sgeo_ has changed nick to Sgeo.
23:35:28 <elliott> <Sgeo_> pastebin.com is bad?
23:35:31 <elliott> <Sgeo_> Also, sometimes I posted pastes in here deliberately set to expire
23:44:04 <Sgeo> I don't feel comfortable posting pastes of a non-publically logged channel into a publically logged channel
23:45:01 <elliott> I don't feel comfortable knowing that expiring pastes exist.
23:45:45 <oklofok> vjn pastes will expire in a year :( although they will just move to another domain
23:46:09 <elliott> oklofok: which domain, if.njv?
23:46:49 <oklofok> i will tell you when it's relevant
23:48:06 <elliott> oklofok: SHEESH I WAS TRYING TO MAKE A QUARTER-JOKE
23:49:11 <zzo38> Can you invent any card game using the Fanucci deck?
23:52:23 -!- augur has quit (Remote host closed the connection).
23:52:53 <oerjan> elliott: make a whole joke next time hth
23:53:06 <elliott> oerjan: why? _you_ never do
23:53:35 <oerjan> but that's for the extra fridge logic punch...
23:55:52 <Phantom_Hoover> http://www.mspaintadventures.com/storyfiles/hs2/01596_2.gif
00:10:04 <elliott> 06:33:22: <Taneb> http://esoteric.voxelperfect.net/wiki/100_free_dutch_dating_sites_2008
00:10:17 <elliott> ?tell ais523 Request a copy of the wiki page "100_free_dutch_dating_sites_2008".
00:12:10 <elliott> `addquote <Taneb> I can't afford one of those! <Taneb> A grandchild, not a laser printer
00:12:11 <HackEgo> 507) <Taneb> I can't afford one of those! <Taneb> A grandchild, not a laser printer
00:12:58 <oerjan> i hear 16 year olds with grandchildren are quite rare in england
00:13:22 <Phantom_Hoover> oerjan, yeah, although they're set to be common up here.
00:13:54 <monqy> how does that even work
00:14:07 <oerjan> myndzi: now producing child pornography automatically
00:28:40 <elliott> 15:41:03: <oklofok> idgi, in paris and other third world countries the streets are full of all sorts of crooks and everyone still treats you like you're a person; out there everyone assumed i was going to do something fishy
00:28:40 <elliott> 15:41:07: <oklofok> i asked like 20 ppl
00:28:40 <elliott> 15:41:10: <oklofok> two gave me their phones
00:28:40 <elliott> 15:41:26: <oklofok> one typed the number in himself, and looked a bit scared
00:28:40 <elliott> 15:41:37: <oklofok> (i'm pretty scary)
00:28:41 <elliott> 15:41:53: <oklofok> and the other one was a druggie so he was nice ofc
00:31:30 -!- elliott has quit (Remote host closed the connection).
00:31:42 -!- elliott has joined.
00:36:38 <monqy> i misread nothing as something and was confused when you didnt say anything
00:37:08 <oklofok> the druggie had apparently spent a few years just being stoned all day, like at work as well, then managed to quit and became a financial manager or something with a huge salary, but got sacked now and was real happy about finally being able to move in with his girlfriend. he was looking for some weed for his sleeping problem tho because he'd been prescribed way stronger drugs for it and was afraid he'd get schizophrenic with that stuff.
00:38:06 <zzo38> Does it exist Fanucci deck suit symbols in METAFONT?
00:39:35 <oklofok> i also had interesting conversations with the non-druggies, for instance there were a couple that went "no", and then also a few that went ""
00:43:34 <oklofok> oh and one guy told me in this incredibly annoying way that i could just go see my friend
00:44:27 <elliott> you're SO RELIANT on PHONES, dude
00:46:26 <oklofok> i didn't have my phone because i would've had to carry it in my hand since my pockets are just holes
00:47:26 <oerjan> oklofok: i assume "no" and "" are considered lengthy conversations in finland
00:47:53 -!- Sgeo_ has joined.
00:48:06 <oklofok> i would say happily say no if it didn't defeat my point
00:49:21 -!- Sgeo__ has joined.
00:49:52 -!- Sgeo has quit (Ping timeout: 255 seconds).
00:50:33 -!- pikhq has quit (Ping timeout: 240 seconds).
00:50:45 -!- pikhq has joined.
00:52:34 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
00:53:27 -!- Phantom_Hoover has quit (Quit: Leaving).
01:07:43 <elliott> oklofok: have you ever consiered visiting oklahoma
01:08:09 <oklofok> are you calling me a homo?
01:08:53 <oklofok> i don't know the anythingest thing about oklohomo so you're going to have to tell me why you asked
01:10:43 <elliott> just saying that you should visit oklohama
01:16:53 <oerjan> http://en.wikipedia.org/wiki/Silo,_Oklahoma
01:17:59 <oerjan> other options include salina, slaughterville, and south coffeyville
01:19:44 <oerjan> "I am writing on behalf of People for the Ethical Treatment of Animals, our 800,000 members and supporters, and other compassionate Americans to ask Slaughterville to change its name [...]"
01:21:46 <elliott> you missed out the best part
01:22:41 <oerjan> 'The citizens of Slaughterville voiced their opinion by serving free hot dogs and brandishing signs that read, "Beef: it's what's for dinner."
01:23:09 -!- azaq23 has quit (Quit: Leaving.).
01:27:17 <zzo38> oerjan: If that is how they are voicing their opinion, then other people should request something else for dinner. Instead of, everyone eating a same thing for dinner.
01:29:59 <oerjan> zzo38: the PETA were offering veggie food at the same time
01:31:29 <zzo38> oerjan: Then it is OK. Because, people can go to whichever source of dinner they want, or both in case some people want to eat both hot dog and veggie for dinner.
01:31:57 <zzo38> However I do not think any of this requires a name change of a city.
01:34:27 <elliott> 20:16:29: <hagb4rd> oklofok.. the problem you have IS a real problem.. and youreflect it that nice. no'ones sure its gonna ex- or implode
01:34:28 <elliott> 20:16:36: <hagb4rd> and what happens next!
01:34:28 <elliott> 20:16:55: <oklofok> hagb4rd: can you clarify a bit?
01:34:31 <elliott> i wanna addquote this but it's too long
01:35:31 <oklofok> well i wouldn't want to be a secondary character in a quote anyway, it just feels wrong
01:35:36 <itidus20> http://thegamecrafter.com/publish/selling-your-game
01:35:53 <itidus20> i just arrived at that after reading about Fanucci
01:36:29 <elliott> oklofok: can you link to sevenfold.mid please
01:36:42 <itidus20> Basically... you can design boardgames.. and if they get a buyer, they will manufacture the game and sell it splitting the profits with you 50/50
01:37:48 <oklofok> http://www.rnd.fi/oklopol/music/sevenfold.mid
01:38:00 <elliott> oklofok: ha you told me the domain... when it was relevant
01:38:05 <elliott> rnd is much less nice a name than vjn btw
01:38:07 <oerjan> oklofok: looks a bit random to me
01:38:20 <elliott> has oerjan heard the wonders of sevenfold.mid, i am unsure
01:38:40 <oerjan> since i almost never play sounds
01:38:43 <elliott> oerjan: but it's a classic :(
01:39:01 <elliott> oklofok: can you get this performed irl somehow thx
01:39:09 <itidus20> in addition you can sell the game to yourself
01:39:14 <oerjan> well i definitely do not play sounds in the middle of the night
01:39:22 <oklofok> 1:09 always makes me giggle
01:39:31 <itidus20> So you can design a deck of cards and sell them to yourself :D
01:39:54 <itidus20> oh humm.. i dunno if it actually works that way entirely
01:40:06 <itidus20> like, if thats considered cheating, or if its cool with them
01:40:27 <itidus20> seems they will do that though
01:40:40 -!- CakeProphet has quit (Read error: Operation timed out).
01:41:14 <elliott> oklofok: what bpm is the fast bits anyway
01:41:52 <elliott> i wonder if it's humanly possible to drum that fast
01:42:04 <oklofok> i can check if the guitars are playable, the drums are impossible tho
01:42:22 <itidus20> So you can create your own card deck of 100 cards for $12.09 .. I dunno how much ordering is on top of that
01:42:44 <elliott> oklofok: like i seriously doubt that
01:43:36 -!- CakeProphet has joined.
01:43:36 -!- CakeProphet has quit (Changing host).
01:43:36 -!- CakeProphet has joined.
01:43:54 <oklofok> http://www.youtube.com/watch?v=tNcK6paHCZM
01:44:43 <elliott> oklofok: i really doubt sevenfold is anywhere near a thousand bpm
01:45:09 <elliott> "i wanted to be known for my feet and now i am, i have the world's fastest feet"
01:45:22 <elliott> "around 350-360 bpm if my memory serves" um he said over a thousand
01:45:42 <elliott> but yeah that doesn't really look that fast, it's kind of unfair since how many people actually try and set the record for fastest bass drum playing
01:45:51 <elliott> that's like the least popular drum for fastness
01:45:57 <zzo38> Yes I saw that stuff about making a game with cards and selling the game earning 50% profit.
01:46:38 <oklofok> i think sevenfold is way faster than that vid at least
01:46:46 <elliott> just play it on another drum
01:46:49 <zzo38> I was linked to that game crafter stuff from Wikipedia
01:47:04 <itidus20> i was following up on your Fanucci comments
01:47:17 <zzo38> Yes it is what I guessed.
01:47:36 <elliott> oklofok: can't you open the mid and check the bpm of the drums or is that too much work
01:47:39 <itidus20> now.. its worth saying.. tarot cards are public domain. playing cards are public domain.
01:48:04 <itidus20> except no wait.. maybe they are public domain?? cos that dude was selling em
01:48:08 <zzo38> They have three games there, but I (and you and others) can make additional games of Fanucci deck
01:48:48 <itidus20> If I ever get into serious game dev I may keep it in mind for branching to other media.
01:48:50 <zzo38> itidus20: I expect they should be considered public domain except for the designs used by actual decks can be copyrighted. Probably tarot cards can also do that, so can face cards and ace of spades and jokers in a standard French deck
01:49:18 <zzo38> What they do not mention as far as I can tell is what resolution is used for printing the rules documents
01:50:53 <zzo38> Some tarot decks are for game playing, some are designed for divination, but some are designed for both games and divination (game craft sells such decks). Tarot decks also come in French suited and Latin suited formats.
01:51:26 <zzo38> In fact I have invented my own Latin suited tarot deck.
01:52:17 <itidus20> I have been trying to shift my life away from the occult a bit recently. Not that tarot is inherently occult.
01:52:20 <zzo38> (Which is designed for game playing and I doubt it would work well for divination)
01:53:13 <elliott> get out WHILE U STILL CANNE
01:54:01 <itidus20> well .. divination attracts liars
01:54:31 <zzo38> Well, OK, then use the tarot decks designed for game playing. Note that the Uncarrot Tarot seems designed for really strange divination (it is not compatible with standard tarot), although some games could be played with it too (I had an idea of a trick taking game called "Rulers")
01:54:42 <itidus20> I am not saying divination is impossible.
01:54:50 <oklofok> oh okay it's just 16 beats per second all the way
01:54:52 <itidus20> I am saying it attracts liars though. :-D
01:55:05 <zzo38> (Note that tarot cards were originally designed for trick taking games, although now other games exist too, as well as divination.)
01:55:24 <zzo38> itidus20: Yes I believe it certainly attracts liars.
01:55:27 <elliott> http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=sixteen+per+second+in+per+minute
01:55:34 <itidus20> I hope I am not being offensive to anyone. ^_^
01:55:41 <elliott> i'm so offended that i literally barfed, sorry
01:56:27 <oklofok> when i hear someone say x bpm i convert to bps to have any sort of idea how fast that is
01:56:29 <elliott> oklofok: oh so 960 bpm in the fast parts?
01:56:59 <oklofok> 16 * 60 is a simple mental calculation
01:56:59 <elliott> itidus20: its just times ixty :-P
01:57:35 <elliott> oklofok: seems the maximum speed ever drummed is 1200 bpm
01:57:38 <elliott> at least in this contest thing
01:58:05 <elliott> oklofok: is it still sevenfold if you only play half the beats :D
01:58:10 <zzo38> Of course you cannot do proper divination with cards anyways, it is meaningless. Although other forms of divination are a bit different. Example, with palm reading, there might (although I am not sure) be some things you can genuinely predict with it, although certainly not as much as they claim, and not with a lot of accuracy
01:59:35 <oklofok> elliott: i think it would have roughly the same effect on real instruments
01:59:56 <zzo38> But of course the creases don't do anything themself, so lengthening them with chalk or grease pencil won't help anything. If the creases mean anything at all, they would be based on existing things, such as DNA and so on. Although I am unsure if it is actually possible at all.
02:00:15 <itidus20> the wiki page on divination shows that countless objects have been used for purposes of divination
02:00:22 <elliott> i divined with a cat but it ate me
02:00:32 <itidus20> well maybe it is not the divination page itself but a erlated one
02:00:37 <elliott> itidus20: what does the twenty in your name represent
02:00:44 <elliott> or are you actually twenty people???
02:01:11 <oklofok> the guitar in the beginning is rather impossible to play, since you have 16bps and you're hitting two notes at once
02:01:18 <oklofok> but with two guitars, it's very doable
02:01:32 <itidus20> it is a relic of my time on yahoo chat
02:01:41 <itidus20> which i have formally quit yesterday
02:01:46 <elliott> oklofok: so it's two guitars playing at 960 bpm?
02:02:12 <zzo38> Yes certainly many different ways of divination have been used. There are rules for divination with ordinary (French) playing cards. Of course it is useless but some people might do it for entertainment if you want to, I guess.
02:02:14 <oklofok> it would be, if i was playing it. maybe someone can make two sounds at once on a real guitar sounds sensible, but i doubt it.
02:02:34 <itidus20> i popped into my old reg room for about 12 minutes and told them in no uncertain terms that i am leaving yahoo forever.
02:06:23 <itidus20> several reasons. one is yahoo chat has been going downhill for the last 10 years, kind of like the quality of an apple declines if you trail it behind your car
02:06:56 <itidus20> secondly, the unmoderated nature of chat means it is full to the brim with nasty people
02:08:03 <elliott> this place is fairly unmoderated too. or well, it was until oerjan came along >:)
02:08:52 <itidus20> yes but fuckheads usually don't care about esoteric programming languages
02:09:12 <oerjan> nah it's just that most jerks get serious brain damage if they try to read the channel
02:10:55 <oerjan> and of course there is the occasional one which stays despite the brain damage
02:11:06 <elliott> not naming names, i assume
02:11:14 <itidus20> i'm kind of passive aggressive/conflict avoidant.. but i don't shit where i sleep
02:11:28 <oerjan> elliott: nah, just plain fax
02:11:31 <elliott> I'm kind of a person... but I don't kill bears.
02:11:47 <itidus20> i mean if i have to be an asshole i'll go find somewhere else to do it
02:11:57 <elliott> oerjan: you're cheating. you're one who breaks rules.
02:13:00 <itidus20> eh.. i dont wanna elaborate too much about boring personal side of things
02:14:39 <oerjan> elliott: but we have no rules for cheaters to break
02:16:09 <oklofok> elliott: okay when actually playing a melody, that speed is waaaaaaaaaay beyond my comfort zone
02:16:28 <elliott> oklofok: good thing sevenfold lacks melodies :D
02:16:43 <oklofok> err it's all about the guitar melodies
02:17:20 <oklofok> oh okay anyway lemme show you my pathetic attempt
02:18:23 <oklofok> no it's not :D http://www.vjn.fi/temporary%20shit/fucckkk.wma
02:18:44 <oklofok> the most horrible program ever
02:18:51 <oklofok> it literally just has a record button.
02:19:03 <elliott> oklofok: haha wow was it actually this choppy irl
02:19:11 <elliott> it sounds like your fingers keep slipping
02:19:33 <oklofok> i can hold it steady on one note but argh
02:20:25 <elliott> oklofok: it still sounds pretty cool
02:20:47 <oklofok> i can try to make a seriouser version
02:21:31 <elliott> oklofok: that would be cool, my friend thinks he can do it and i think he's full of shit
02:22:09 <CakeProphet> fortunately these assertions aren't mutually exclusive.
02:22:20 <oklofok> well the beginning isn't that hard, that's just not really a technique i can manage without an amp
02:26:59 -!- NihilistDandy has quit (Ping timeout: 252 seconds).
02:35:02 -!- NihilistDandy has joined.
02:38:02 <oklofok> i gave up already, did the half speed version but my hand is way too tired from the attempts... :D http://www.vjn.fi/temporary%20shit/fuckitall.wma
02:38:23 <elliott> will listen in some minutes :P
02:38:30 <oklofok> i can't really do speeds that high so major hand-breaking attempting it
02:38:32 <elliott> oklofok: one day you will figure out the secret. one day.
02:44:24 <elliott> oklofok: i kind of like these choppy renditions evene more than the actual opening
02:50:24 <oklofok> http://www.vjn.fi/temporary%20shit/spacejazz.wma
02:51:43 <oklofok> no instead i played some space jazz
02:54:12 <elliott> 20:51:45: <Taneb> I take inspiration from JRR Tolkein
02:56:21 <elliott> 21:05:03: <itidus20> I force myself to be iconoclastic and autodidactic in this.
02:56:21 <elliott> itidus20: does this just mean you don't listen to other people
02:59:59 <elliott> this is like watching windows install
03:01:10 <itidus20> grabbed my soda from fridge...
03:02:45 <itidus20> Perhaps the reason for the icono and autod is: I find it very difficult to focus or concentrate.
03:02:55 <itidus20> reasons which make this worse includes.
03:03:30 <itidus20> I live in my moms house still at 29 with a brother who works and can push me around when things come down to it.
03:04:17 <itidus20> I have type 1 diabetes which is currently poorly controlled and mild asthma.
03:05:48 <itidus20> Combined with my conflict-avoidant passive aggressive non-assertiveness, I gradually grow into a depression.
03:07:27 -!- CakeProphet has quit (Ping timeout: 240 seconds).
03:07:39 <oklofok> http://www.vjn.fi/temporary%20shit/spacejazz2.wma more space jazz!
03:07:48 <itidus20> If despite everything else I did manage to live on my own there is a danger I could have a diabetic seizure without anyone there to help get an ambulance etc.
03:08:27 <itidus20> I don't drive, study, work, shower, shave, change clothes, get sunlight, have friends.
03:09:37 <oklofok> you're even cooler than taneb
03:09:54 <oklofok> but i bet you can't play space jazz.
03:09:57 <itidus20> I have phobias of heights and wide open spaces.
03:10:15 <oerjan> i'm not as cool, i do almost 4 of those things
03:10:47 <oklofok> i don't drive, avoid sunlight and rarely meet friends
03:10:57 <itidus20> Sometimes I seem to think myself into a sort of psychosis, imagining that all my perceptions are just neuron clusters firing.
03:10:58 <oklofok> but that's mainly because i'm too busy playing space jazz
03:11:21 <oklofok> itidus20: that sounds pretty cool
03:12:03 <itidus20> it's a misconception due to an incorrect understanding of the boundaries of science
03:12:19 <oklofok> i have this weird thing where i feel like my brain is on overdrive and i hear weird sounds and shit
03:12:44 <oklofok> good for doing math although actual mental calculation isn't enhanced, i did extensive testing once
03:13:51 <oklofok> space jazz? well there's no way to conceive space jazz that's for sure.
03:14:04 <elliott> itidus20: what are the boundaries of science?
03:14:14 <itidus20> science can't explain conciousness
03:14:24 <itidus20> conciousness is tied in with everything we do
03:14:36 <itidus20> thus science can't explain anything completely
03:14:36 * oerjan isn't sure if the channel can survive at this point
03:14:42 <elliott> oklofok: http://en.wikipedia.org/wiki/Space_Jazz
03:14:56 <oklofok> they made a wp page for those two clips? :O
03:15:32 <oklofok> i need to find a new name i guess
03:15:59 <itidus20> oerjan, does it lack the esolang topics too much when i am ranting about non-esolang things?
03:16:04 <elliott> oklofok: no this just makes it better
03:16:12 <oklofok> itidus20: i don't think that's the issue
03:16:29 <oerjan> itidus20: it's quite a bit more personal than usual for this channel
03:16:35 <zzo38> I have also invented a kind of tarot poker, with some new hands, although I have not calculated the probabilities of the hand. The rarest (and therefore best) hand is the "God Flush", which consists of the fool and the four highest trumps.
03:16:46 <oklofok> oerjan: i'm that personal often enough
03:17:17 <itidus20> well the thing is.. all these factors add up to a state where i can't just knuckle down and code
03:17:19 <oklofok> granted, my life is awesome so why wouldn't i
03:17:34 <itidus20> people think.. oh sure he's not working he could be coding all day
03:17:42 <oklofok> although some sex would be nice
03:17:55 <zzo38> Would you know how to calculate some of the tarot poker?
03:18:08 <oklofok> itidus20: it's not a very uncommon problem not to be able to do things you want to do
03:18:27 <itidus20> oklofok: but it's because of stupid shit.
03:18:34 <oklofok> it's always because of stupid shit
03:19:06 <oklofok> in my case it's usually about... absolutely nothing
03:19:37 <itidus20> 1) i need to improve my diabetes. 2)the main problem with my diabetes is my sleeping patterns.
03:19:44 <zzo38> And I only partially agree that science can't explain conciousness. Science can partially explain consciousness, at least. Although there is the "hard problem" (I prefer the slight variant on the hard problem which I call the "hard mystery") that that cannot be explained completely by science. Science also doesn't always explain philosophical things
03:19:47 <oklofok> elliott: i'm thinking i should form a band called space jazz and we'd play space jazz
03:19:56 <oklofok> guess what our first album will be called?
03:19:56 <itidus20> 3) sometimes i have been expected to be awake at a certain hour of the morning
03:20:14 <elliott> oklofok: will it have sevenfold.mid
03:20:29 <oklofok> itidus20: for me, sleeping 16:00 to 00:00 is pretty normal
03:20:46 <oklofok> elliott: that's not really space jazz man
03:20:55 <elliott> oklofok: it's every genre imaginable.
03:21:06 <itidus20> Not being in practice allowed to determine for myself when I wake up unless I sleep during the day has a shocking effect on when I go to sleep.
03:21:35 <itidus20> I have great difficultly sleeping when I anticipate someone else waking me up.
03:21:36 <elliott> itidus20: join the bad sleep schedules club
03:21:42 <oklofok> the main point of space jazz is jumping around at random, and preferably not too fast except in short spurts
03:21:55 <itidus20> but i have diabetes type 1.. im not allowed to have a bad sleep schedule =))
03:22:10 <oklofok> i live on my own, so i'm too :)
03:22:12 <itidus20> drives my endocrinologist to frustration
03:22:24 <oklofok> i don't have my own -ist :(
03:22:42 <itidus20> he says "shift workers sleep more regular hours than you"
03:22:48 <oklofok> well unless my penist counts.
03:23:13 <itidus20> "what do you do all day?" -- uhhmm errr...
03:23:47 <oklofok> have you told him about space jazz?
03:23:51 <itidus20> "you need more sunlight.. your vitamin d levels are too low.. buy some vitamind d pills"
03:24:06 <Sgeo__> There was a piece o spam I wanted to investigate
03:24:36 <itidus20> now diabetes out of control means i am just always tired and lethargic
03:24:51 <itidus20> its hard to tell which is which at times.
03:25:46 <itidus20> So.. I have tried to block out the rest of my house.. I try to soundproof my door as much as I can so that I don't hear my mom on the phone, or her radio
03:25:54 <Sgeo__> I don't see what the point of this is
03:26:10 <Sgeo__> Looks like phishing, but I don't see any password or cc number requested
03:26:11 <itidus20> and also so i can turn up volume when my brother is trying to sleep for work
03:26:35 <elliott> Sgeo__: a lot of spam is like that recently
03:26:36 <Sgeo__> It's a PDF (I used the web viewer, hopefully didn't put myself in danger), possibly malware?
03:26:41 <elliott> i think they're just trying to see if your email is real
03:27:01 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
03:27:23 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
03:27:30 <oklofok> itidus20: why don't you want to hear people flushing the toilet or talking with the radio?
03:27:37 -!- rodgort has joined.
03:27:43 <itidus20> talking on the phone and listening to the radio
03:28:07 <itidus20> because i have become hypersensitive to noises i suppose
03:28:48 <zzo38> In the DVI file format, note that |y1-down1==w1-right1| and so on. Another thing to note is that all commands with the same name in DVI format as GF format also have the same number assigned! (Very useful when creating WEB or CWEB programs that access both kind of files)
03:28:48 <itidus20> I have tried saying i'm lazy. But it's more than that.
03:29:22 <itidus20> But there is a certain level of my laziness involved.
03:29:35 <itidus20> The lazyness occurs on leaf nodes on the tree of my problems.
03:30:11 <oklofok> i'm slightly hypersensitive as well, although possibly it's just because i have a slight phobia for damaging my hearing
03:30:48 <itidus20> I have the best eyesight in my family
03:31:27 <itidus20> ok heres some trivia about hearing
03:31:32 <zzo38> I have the SMTP server set up it is very unlikely I can receive spam messages (they will get unreachable server message if they try), although even then I usually read the directly raw message, so it won't render HTML and stuff that can send them information! (I have never received spam messages since I stopped my email account with my service provider)
03:31:54 <itidus20> when listening to one half of a conversation, the mind/brain apparently tries to reconstruct the other half of the conversation
03:32:26 <oklofok> according to whom? and wouldn't that be kind of an obvious thing to do consciously?
03:32:28 <zzo38> itidus20: Also see "Sonata for Unaccompanied Achilles" in "Godel Escher Bach"
03:32:55 <itidus20> is this a safe place to admit i have that book on my pc?
03:33:05 <oklofok> i'm not particularly distracted by people phoning
03:33:10 <zzo38> (Achilles is talking to the Tortoise by telephone so you can try to guess what the Tortoise says, or you can read it without.)
03:33:17 <elliott> "(I have never received spam messages since I stopped my email account with my service provider)" <-- lol
03:33:26 <elliott> itidus20: no that's bannable
03:33:39 <oklofok> we may just report you to the fbi
03:33:48 <itidus20> well good thing i don't have such a book
03:34:06 <oklofok> and the world security bureau of dealing with dangerous people and shit
03:34:27 <itidus20> i wonder how doug feels about such things
03:34:50 <oklofok> yeah i wonder if doug likes space jazz as much as his name implies
03:34:53 <itidus20> "go ahead just don't get caught"
03:35:17 <oklofok> that's one famous bisexual
03:35:24 <elliott> like you can get "caught" for downloading one book
03:35:48 <oklofok> i wonder if cops admit that stuff to their cop friends openly
03:36:05 <itidus20> I figure that while it's a safe enough to say, that you never know who's watching
03:36:17 <elliott> oh the illuminati definitely dwell here.
03:36:20 <elliott> always best to look at the source.
03:36:40 <oerjan> fungot: what is elliott babbling about
03:36:55 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
03:37:00 <fungot> elliott: ' git' wins over ' hg' because hg is too close to the cat's forehead.
03:37:14 <monqy> why didn't fungot respond im woried
03:37:15 <fungot> monqy: gotta get foods. if somebody tried to hand the homework in in c++ so i can do
03:37:24 <zzo38> Too close to the cat's forehead??
03:38:14 <oerjan> monqy: clearly he didn't want to elaborate about the illuminati
03:39:05 <zzo38> Will fungot respond to this message?
03:39:24 <fungot> monqy: meh. now i'm thinking of a function and stop the eval loop? :)
03:40:19 <itidus20> elliot: so to wrap up my answer. it may be i am those big words i used because of my inability to focus and concentrate lately.
03:40:28 <monqy> I'd do that trick with two bolds but doesn't +c kill that
03:40:40 <monqy> is there some 0-width thing that works
03:40:45 <itidus20> which may itself be due to lazyness on the leafnodes of my particular problems as seen in a top-down form.
03:40:49 <zzo38> monqy: Yes +c kill that I think.
03:41:06 <zzo38> It cancels out some control characters.
03:41:47 <zzo38> It says "No color" but actually it removes some control characters from the message.
03:42:27 <itidus20> if there is some bad shit going down in here it is in my nature to become outspoken about it, and bite off more than I can chew.
03:42:35 <oerjan> i'm sure there's nothing wrong with fungot
03:42:36 <fungot> oerjan: by this i do not
03:42:36 <itidus20> then eventually have an emotional meltdown about it.
03:42:44 <itidus20> and perhaps, to become one of the bad peopel.
03:42:55 <oklofok> "<itidus20> elliot: so to wrap up my answer. it may be i am those big words i used because of my inability to focus and concentrate lately." <<< i thought it was concise enough as it was
03:43:51 <itidus20> so.. just tell me to leave if there is something like that.. to spare us all the pain
03:44:51 <itidus20> i don't care what people are doing to themselves of course. banging 7 rocks is fine with me.
03:45:19 <monqy> I'm confused did I miss something
03:45:33 <itidus20> but, if there is a subtle manipulative undercurrent where people are being exploited for money or some crap
03:45:43 <oklofok> itidus20: i'm not following you :D
03:46:32 <itidus20> it is a weakness i have to act the hero
03:46:35 -!- hag[4]rd has quit (Ping timeout: 250 seconds).
03:46:45 <oerjan> itidus20: well i've banned people for emotional meltdowns before
03:46:55 <itidus20> this isn't a meltdown i assure you
03:47:02 <itidus20> this is merely explaining who i am
03:47:10 <oklofok> that... fun guy/chick dude?
03:47:18 <oerjan> it was rather obvious the other times
03:47:35 <itidus20> meltdown is like when i say I AM LEAVING IRC FOREVER... YOU KNOW WHY.. GO TO HELLLLLLLLL
03:47:38 <zzo38> Ask a question please. https://devlabs.linuxassist.net/projects/texnicard/boards AsK a QuEsTiOn PlEaSe?
03:49:13 <itidus20> its only really a problem with women anyway
03:50:02 <itidus20> but it is like saying all spider bites are caused by spiders
03:50:19 <itidus20> even though not all spiders bite
03:50:47 <itidus20> though certainly they may be in self defence
03:51:08 <oklofok> i'm not touching what you just said
03:51:18 <oklofok> but there certainly is something to touch
03:52:02 <oklofok> i'm a bit of a misogynist, men and women are different in almost every way, even their penises look different.
03:52:06 <itidus20> guys are certainly not perfect but they tend to hover around women if they are assholes
03:53:10 <oklofok> i think assholes and non-assholes hover around women equally gladly
03:53:22 <itidus20> but the women tend to reject non-assholes more
03:53:33 <oklofok> well obviously, they are pretty pointless people aren't they
03:53:35 <elliott> are you really going down the Nice Guy route
03:53:47 <elliott> oerjan: please turn off +c, i need to bold "really"
03:53:57 <oklofok> elliott: are you really going down the are you really going down the nice guy route route?
03:54:23 <oklofok> oh. well that's cool i guess.
03:55:39 <oklofok> it's not really that women prefer assholes, it's that people who aren't after pussy will usually give up way before the girl even considers paying serious attention to the guy
03:55:54 <oklofok> people try to ignore everything unless you shove it down their throart
03:56:04 <oklofok> SO PPL HOW DID YOU LIKE SPACE JAZZ?
03:56:58 <itidus20> well you could say its a reverse definition that a guy who competes well for girls will be percieved as an asshole by his peers who cannot match him
03:57:19 <itidus20> but it tends to carry over into a generalized assholeness
03:58:00 <elliott> i, too, characterise the world so that people who do things not beneficial to people like me are generalised in purely negative terms
03:58:03 <oklofok> i stick to my shove it down her throat thing. not just because i'm into facefucking and space jazz, but also because it makes more sense.
03:59:23 <monqy> I stay away from people
04:01:04 <oklofok> maybe you're using them wrong?
04:01:08 <itidus20> elliott: i would say that in that definition simply leaving you to your own devices is very much beneficial to you
04:03:58 <itidus20> well, the best way to characterize people
04:04:29 <itidus20> brb gotta make some sandwiches
04:04:39 <oklofok> i would say it's best not to, what little characterizing is useful you will do automatically
04:08:11 <monqy> goodbye dog, hello insulin
04:09:58 <itidus20> and finally a small note in a log i am keeping to try to improve my diabetes treatment
04:10:22 <monqy> I can't stop thinking of sgeo
04:11:30 <oklofok> itidus20 certainly reminds me of Sgeo__
04:11:38 <itidus20> i honestly don't complain about these things at all normally.. but when analyzing wh--dog barks let him back in-- why i am unproductive it comes up
04:12:36 <oklofok> itidus20: i don't mind your complaining, as long as you have fresh material.
04:12:52 <oklofok> it's complaint repetition that's annoying
04:13:12 <oklofok> but you know what's not annoying when repeated?
04:13:16 <itidus20> i will be due to have another snack such as a sandwich in 90mins
04:13:35 <elliott> oklofok: link monqy to the space jazz he needs it
04:13:44 <Sgeo__> itidus20, please note that this is a publically logged channel, so if you mind a particularly determined stalker learning all this, probably best not to say it here.
04:14:07 <monqy> tylenol and insulin party
04:14:18 <monqy> #esoteric logs, good times
04:14:30 <oklofok> monqy: yw in advance http://www.vjn.fi/temporary%20shit/spacejazz.wma and http://www.vjn.fi/temporary%20shit/spacejazz2.wma
04:14:32 <itidus20> sgeo: thank you. have I revealed too much? perhaps I should stop now.
04:15:51 <Sgeo__> itidus20, I personally don't mind, but I have annoyed others by sharing my problems constantly, so
04:16:07 <Sgeo__> Although tbh I haven't been paying much attention
04:16:19 <Sgeo__> Or again, if the public logging scares you
04:16:50 <oklofok> monqy: can you believe i composed those songs in just a few minutes?!?
04:17:47 <oklofok> i mean anyone can put a few random notes together but not everyone can do what's that like 30 at least
04:18:10 <oklofok> but i think i might be able to put 100 notes in the same song
04:18:14 <itidus20> i can put random notes together though
04:18:32 <oklofok> wouldn't be a one night project of course, since i only remember like 13 different notes
04:20:31 <itidus20> to me, it feels as if when growing up I missed out on the part where nature teaches us to think up sounds as a painter thinks up a painting
04:21:00 <itidus20> or maybe it is that i can think up the sounds but i can't translate them to musical notes
04:22:32 <oklofok> itidus20: the thing about mixing personal stuff with this channel is some people here (me at least) consider this a safehaven from all rational thought and especially all seriousness. (there have been some special circumstances when regulars (who are better people by irc law) have personal problems.)
04:23:38 <Sgeo__> I don't think my rantings deserve to technically count as a special circumstance
04:24:07 <itidus20> I will try to keep this in mind.
04:25:58 <oklofok> Sgeo__: i was not referring to you in particular (or perhaps at all)
04:27:07 <itidus20> mind(this) as in "this in mind"
04:27:20 <oklofok> i like sharing a lot of details of my life here, but i only do it when i'm comfortable with laughing about them. so there's a 5 minute delay.
04:27:21 -!- oerjan has quit (Quit: Brave Sir Oerjan ran away, he bravely ran away).
04:28:46 <oklofok> anyway about those topological spaces
04:29:32 <itidus20> try to use the most academic terms.
04:29:48 <itidus20> nothing dumbed down .. make it easy on yourself
04:30:18 <oklofok> if X is a set, then a topology on it is a collection T of subsets of X that's closed under arbitrary unions and finite intersections, and X and {} are in T
04:30:50 <oklofok> now this is very general, and you will get all kinds of crazy spaces, so usually you add certain additional things
04:31:48 <oklofok> in fact, there's a whole list of standard additional axioms you can add
04:31:51 <itidus20> who am i kidding.. i'll try wiki simple english. i just had to hear it how it would be actually said.
04:32:08 <oklofok> did you get all the words?
04:32:25 <oklofok> do you know what "closed under" means?
04:32:44 <itidus20> http://simple.wikipedia.org/wiki/Topological_space
04:33:41 <oklofok> basically i'm doing the second paragraph first
04:34:09 <elliott> * oerjan has quit (Quit: Brave Sir Oerjan ran away, he bravely ran away)
04:34:10 <itidus20> but even this page will wrack my brain while i digest it
04:34:34 <oklofok> "One can think of only certain sets as open, or more sets as open."
04:34:58 <oklofok> that should win like a the best sentence award
04:35:11 <itidus20> do these words like open and closed fail if used as literal analogies of their usual meaning?
04:35:54 <oklofok> their usual meaning has nothing to do with their definition
04:35:58 <Sgeo__> I've heard that you can have things both closed and open, so yes
04:36:06 <oklofok> or at least it's way too far from it to be useful
04:36:31 <oklofok> Sgeo__: you have things both open and closed (clopen, believe it or not) in every topological space
04:37:01 <oklofok> in fact, the proof of this is a oneliner
04:37:01 <Sgeo__> There's no way to have a topological space that doesn't contain clopen things?
04:38:00 <oklofok> Sgeo__: it's pretty obvious from the definition really, first of all what set *could* the necessarily clopen thing be in all topological spaces?
04:38:13 <oklofok> i mean, what's a good guess for a set with a special property
04:38:26 <Sgeo__> null. But I think I heard that in that video...
04:38:41 <oklofok> null, and then what's the second most special thing?
04:39:01 <oklofok> hint: you don't have to look inside the space
04:39:05 <elliott> oklofok: what if u...constructed a set...with its own element
04:39:07 <Sgeo__> The set containing null, I guess (kind of like 1?), but that hardly seems special... oh
04:39:10 <elliott> THEN WHAT????????////////////////////
04:39:49 <oklofok> well, in any case null was correct
04:39:52 <oklofok> can you prove it's clopen?
04:40:11 <oklofok> "a topology is a collection T of subsets of X that's closed under arbitrary unions and finite intersections, and X and {} are in T"
04:40:41 <oklofok> recall that C closed set iff X \ C \in T
04:42:23 <Sgeo__> X-C is in T, what's X? A superset of the universe?
04:42:39 <Sgeo__> So, C contains nothing contained within the topology?
04:42:46 <oklofok> X is the underlying space we started with
04:43:03 <oklofok> we have a set X, and T, the topology of X, is a collection of subsets of X
04:43:08 <oklofok> with the properties i listed
04:43:27 <itidus20> oklo, my client is missing some chars.. so can you spell out to me what is actually shown in the line "iff X ? C ?in T"
04:43:43 <oklofok> itidus20: it's just X - C in T
04:44:00 <oklofok> the set "C subtracted from X" is in the set T
04:44:12 <Sgeo__> As long as X contains null, if C is null, X-C is ... wait what
04:44:30 <itidus20> for some reason the font i am using uses a yen symbol for a backslash sometimes
04:44:33 <Sgeo__> Is it possible for X not to contain null?
04:44:35 <oklofok> Sgeo__: yeah, what's a set minus null?
04:44:43 <oklofok> Sgeo__: X might not contain null.
04:44:59 <oklofok> obviously X is a superset of the empty set
04:45:05 <Sgeo__> Argh, I'm getting mixed up
04:45:08 <oklofok> but it doesn't have to have {} as an element
04:45:14 <Sgeo__> <oklofok> recall that C closed set iff X \ C \in T
04:45:45 <Sgeo__> T must contain null if it contans all subsets of X
04:46:12 <Sgeo__> Not that that fact's needed here, I think
04:46:16 <oklofok> T doesn't have to contain all the subsets of X
04:46:40 <itidus20> blah some other font this will do
04:46:41 <elliott> <itidus20> for some reason the font i am using uses a yen symbol for a backslash sometimes
04:46:51 <oklofok> if it contained all subsets of X, then it would be pointless to assume closure properties for it!
04:47:13 <itidus20> higashi -- quickly our cover is blown
04:47:34 <Sgeo__> I'd say that T has to contain X, but that seems to be again... althoguh I guess since sets can be nested... but then, it shouldn't have to contain X
04:48:08 <oklofok> Sgeo__: by definition T contains X
04:48:34 <itidus20> <Higashi> Sir you just told them our meeting place.
04:48:40 <Sgeo__> So, X / C is still X, which is obviously, as asserted by you, in T
04:48:41 <oklofok> {} and X are in T, and T is closed under finite intersections and arbitrary unions (i assume you know what this means because you don't ask)
04:48:51 <oklofok> Sgeo__: yes, and what does this tell you?
04:49:19 <oklofok> now let's prove it's open as well
04:49:30 <oklofok> recall U is open iff it is in T (that is, T is the set of open sets)
04:49:55 <Sgeo__> iff means "if an.. dangit
04:50:06 <Sgeo__> Basically, if one is true, the other HAS to be true
04:50:09 <oklofok> in natural language, if sometimes means if and only if as well, but in math we make a clear distinction
04:50:37 <oklofok> Sgeo__: do you have the proof?
04:50:38 * Sgeo__ almost omitted the distinction between if and iff, that's scary
04:50:58 <Sgeo__> oklofok, is this a different T?
04:51:01 <oklofok> recall that {} is in T by definition
04:51:05 <itidus20> so when i say i am dumbest here... now you get the idea ^_^
04:51:53 <Sgeo__> If it's by definition, probably not, otherwise it would be a redundant definition. Well, yes, but by direct and immediate appeal to the definition.
04:51:54 <oklofok> Sgeo__: no same T, we're taking an arbitrary space X with arbitrary topology T and proving that even for this particular choice, {} is clopen.
04:52:18 <oklofok> Sgeo__: i'm confused, does "{} is in T" follow from "{} is in T" or not?
04:52:35 <Sgeo__> yes, but it's a pointless thing to ask
04:52:47 <oklofok> how else would we prove our theorem
04:52:50 <elliott> attitude to your teacher Sgeo__
04:53:14 <oklofok> given what we proved earlier
04:53:29 <Sgeo__> Well, then null's trivially open
04:53:46 <Sgeo__> Why is "{} is in T" part of the definition? Also, must learn to never take oklofok literally
04:53:58 <oklofok> not take me literally? why?
04:54:07 <elliott> you need to be taking him more literally
04:54:08 <Sgeo__> <oklofok> let me warn you
04:54:09 <Sgeo__> <oklofok> this WILL BE DIFFICULT
04:54:29 <oklofok> "<Sgeo__> Why is "{} is in T" part of the definition?" <<< umm, because we want {} to be open?
04:54:50 <Sgeo__> So, null is clopen because we want it to be?
04:55:22 <oklofok> are you saying we should make the definition of a topological space more complicated so it would not be as easy to prove {} is clopen?
04:55:40 <Sgeo__> That's.. um. Ok, why is a definition of a topology where {} doesn't necessarily need to be contained in the topolgy not a useful definition?
04:55:57 <Sgeo__> Or is it just easier to have {} be in there?
04:56:03 <oklofok> of course it's clopen because we want it to be. anything you prove for a general topological space is true because we want it to be. we proved it from the fucking axioms we chose.
04:56:29 <oklofok> "<Sgeo__> That's.. um. Ok, why is a definition of a topology where {} doesn't necessarily need to be contained in the topolgy not a useful definition?" <<< usually you will get {} open anyway
04:56:44 <oklofok> say if you have two disjoint open sets
04:57:17 <oklofok> their intersection is open (finite intersections of open sets are open) so the empty set is open
04:58:13 -!- myndzi has quit (Ping timeout: 240 seconds).
04:58:21 <oklofok> anyway usually we don't do stuff with this kind of generality
04:58:26 <oklofok> usually we start with a metric.
05:00:30 <oklofok> Sgeo__: X is also clopen; in fact, if C is clopen, then X - C is always clopen, again the proof is a one-liner
05:01:02 <oklofok> since C being clopen means C and X - C are both open...
05:01:30 <Sgeo__> Maybe this is not the best place to start learning topology
05:01:58 <oklofok> it's the best way to start learning math
05:02:14 <elliott> Sgeo__: what, proving a tautology?
05:02:25 <oklofok> for learning topology without learning math, it's certainly a sucky way :D
05:02:46 <oklofok> but we would've gotten to metric spaces next and those are soooo easy
05:02:53 <Sgeo__> Maybe it's just that it's being done on RIC that's bothering me
05:03:33 <Sgeo__> Although I barely remember the definition of closed
05:04:08 <oklofok> closed = complement of a closed set
05:04:51 <oklofok> topology = collection of subsets called open sets, in particular at least {} and the space itself, such that all finite intersections of open sets are open sets as well, and all unions of open sets are open
05:05:34 <Sgeo__> What's an infinite intersection?
05:05:38 <oklofok> let X be a space. then a metric on X is a function d : X * X -> R such that: d(x, x) = 0 for all x, d
05:05:53 <oklofok> no i just accidentally pressed enter
05:06:27 <oklofok> let X be a space. then a metric on X is a function d : X * X -> R^+ (nonnegative reals) such that: d(x, x) = 0 for all x, d(x, y) = d(y, x) and the triangle inequality holds
05:06:40 <Sgeo__> I'm scared that I won't remember this any more than that beautiful demonstration of why e^ix = cos x + i sin x
05:06:58 <oklofok> triangle inequality = d(x, z) <= d(x, y) + d(y, z)
05:07:10 <oklofok> these are really obvious things to ask from a metric if you think about it
05:07:27 <Sgeo__> Are X any old things, or are they necessarily numbers?
05:08:06 <Sgeo__> Ok, so that makes sense. I think.
05:08:21 <oklofok> we're measuring distances so obviously it's 0 from x to itself, and obviously it's the same from x to y as it is from y to x. the triangle inequality just says you can't get from x to z faster by going through a third point y.
05:08:42 <Sgeo__> Intuitively, thinking of points is easier for why it's <= and not =, I think
05:09:10 <oklofok> well = wouldn't really make sense
05:09:25 <elliott> "the triangle inequality just says you can't get from x to z faster by going through a third point y."
05:09:28 <oklofok> going from x to x is 0, but going from x to x via another point obviously gives you some distance
05:09:28 <Sgeo__> It does if you're foolishly imagining X to be real numbers
05:09:54 <oklofok> d(0, 0) = 0 but d(0, 1) + d(1, 0) = 2
05:10:08 <oklofok> the usual metric on R is |x - y|
05:10:18 <oklofok> (distance is always nonnegative, obviously enough)
05:11:05 <oklofok> so now the cool thing: if X is a space (that is, a set) and d is a metric on it, then d "induces" a natural topology for X
05:11:31 <oklofok> inducing just means we can associate a topology to X once we have a metric
05:11:57 <Sgeo__> But there can be other topologies for X?
05:12:10 <oklofok> the topology is: U is open if and only if for all x in U, there is some r such that B_r(x) \subset U where B_r(x) is defined as the set {y | d(x, y) < r}
05:12:21 <oklofok> Sgeo__: yes, many many many topologies.
05:12:29 <oklofok> and many many many metrics
05:12:48 <Sgeo__> Any topologies for which there isn't a corresponding metric?
05:13:01 <oklofok> a topology is called metrizable if there is a metric for it
05:13:07 <oklofok> and most natural topologies are metrizable
05:13:27 <Sgeo__> Open == it's in the topology, right?
05:13:52 <oklofok> so note that B_r(x) is just a ball around x
05:14:06 <Sgeo__> What's the | notation mean
05:14:22 <oklofok> {y | d(x, y) < r} means every y such that d(x, y) is less than r
05:14:28 <oklofok> the set of all such y that is
05:15:25 <Sgeo__> So, for each x in U, it has to be possible to make a ball of some size around it?
05:16:02 <oklofok> a ball which is still completely inside U
05:16:19 <oklofok> so basically open sets are ones that have no points "at their borders"
05:17:18 <Sgeo__> So a set that has points at the borders, is not open, and therefore not in the topology?
05:17:42 <oklofok> yes. assuming your intuitive idea of a border is correct.
05:17:48 <oklofok> so okay now the metric has given us a set of open sets. what's missing?
05:18:05 <Sgeo__> You listed other conditions for a topology
05:18:26 <Sgeo__> Um, intersections (finite?) of open are open, and unions of open are open
05:18:53 <oklofok> we need to show this collection of open sets actually satisfies what we require from a topology
05:19:10 <oklofok> first the trivial things: {} and X need to be open. are they?
05:19:14 <Sgeo__> I'm kind of intuitively thinking of a plane.
05:19:45 <Sgeo__> There's nothing in {} that needs to be able to have a ball around, so yes.
05:19:51 <oklofok> just that stuff out of the actual proofs :)
05:20:03 <oklofok> {} is rather trivially open by that definition of open
05:20:52 <Sgeo__> X can't have borders with contents. I don't see anything we've done that prevents that. (X isn't the topology, but that which contains the topology, right?)
05:21:11 <oklofok> well we don't actually have the concept of a border
05:21:35 <oklofok> you have to apply the definition: X is open iff for all x in X there's a ball around x that's completely within X
05:22:09 <Sgeo__> What's preventing X from having a point at infinity, so to... well, the definition of the metric, I guess.
05:22:41 <oklofok> R^2 + a point at infinity is a metric space.
05:23:12 <Sgeo__> Oh. Thought d() had to return a real non-negative number? Infinity would be an extended real
05:23:45 <oklofok> distances have to be finite yes
05:23:45 <Sgeo__> Can the ball be infinitely large?
05:24:02 <oklofok> doesn't mean you can't make a metric for R^2 + a point at infinity
05:24:33 <Sgeo__> Oh. But then, that doesn't capture what I was trying to get at with the point at infinity, which is being unable to make a ball around it
05:24:33 <oklofok> the usual topology of R^2 is given by all kinds of different metrics! you're right in that the usual one doesn't directly extend for R^2 + point at infinity.
05:25:38 <oklofok> why couldn't you make a ball around it?
05:25:43 <oklofok> obviously you can make a ball around anything
05:26:10 <Sgeo__> But then the ball could partially extend in the wrong direction?
05:26:10 <oklofok> the ball or radius r around x \in X is the set B_r(x) = {y \in X | d(x, y) < r}
05:26:37 <oklofok> the type y \in X is very important, i figured that's obvious but maybe it's not at all
05:27:08 <Sgeo__> I don't see why X would have to contain all the contents of the ball. But honestly, I get the impression that the correct answer is supposed to be that yes, X is open. But I just can't get there.
05:27:11 <oklofok> (it's just X is our only source of points so where else could y be)
05:27:28 <oklofok> Sgeo__: by definition, X contains all the points of a ball
05:27:32 <oklofok> B_r(x) = {y \in X | d(x, y) < r}
05:28:09 <Sgeo__> Ok, what about an X with exactly 1 point?
05:28:19 <Sgeo__> Well, then there's itself at distance 0
05:29:04 * Sgeo__ glares at B_r(x) again and realizes that the distance can be 0. Ok, yes, X is open.
05:29:05 <oklofok> B_r(x) is a subset of X that occasionally looks like something you and i might call a ball.
05:29:23 <oklofok> yep, X is open, what ball did you find around the point x \in X?
05:29:44 <Sgeo__> The entire universe, if r is large enough
05:29:56 <Sgeo__> erm, the entire contents of X
05:29:56 <oklofok> well no r needs to give you the entire universe
05:30:03 <Sgeo__> Sorry for the melodramatics
05:30:14 <oklofok> doesn't in the case of R^2 for instance
05:30:20 <oklofok> it's occasionally called the universe
05:30:54 <Sgeo__> But at the very least, for every x in X, there's a ball around itself containing it, and possibly others.
05:31:24 <oklofok> well perhaps you just don't know what i want you to say: any r > 0 will do. say r = 1.
05:31:50 <oklofok> okay, not let U_1, ..., U_k be a finite family of open sets. we need to show their intersection is open as well.
05:32:17 <oklofok> that's not just an application of the definitions, although not that much more either
05:33:13 <oklofok> what you have to do is take the intersection U = U_1 \cap ... \cap U_k, consider a point x \in U, and show that there's a ball around x that's completely within U.
05:35:23 <oklofok> actually union is a bit easier
05:35:47 <oklofok> note that unions can be arbitrary, you could even have an uncountable number of open sets that you're taking the union of
05:35:49 <Sgeo__> Sorry, concentration lapsing
05:47:54 -!- oklofok has quit (Ping timeout: 252 seconds).
06:33:07 -!- sebz has joined.
06:47:13 -!- sebz has left.
07:01:42 -!- monqy has quit (Quit: hello).
07:01:55 <pikhq> *Aaaah*, fucking up the railroading in D&D.
07:04:22 <pikhq> Person held in a prison that was in an antimagic field, nigh-impossible to break, DM figured we'd give up pretty soon.
07:04:49 <zzo38> If the player can figure it out, that is how you play D&D. By figuring out solutions to those kind of things.
07:05:34 <pikhq> Instead, we used pretty much every buff, turned a handy corpse into a giant stone javelin, and made an opening using a strength of 46.
07:06:21 <zzo38> Yes, it is how it is done. The game is better with these kind of situations at least my opinion.
07:06:27 <pikhq> zzo38: I'm just saying, I love coming up with ridiculous solutions to problems that weren't intended to be solvable.
07:06:35 <pikhq> Yes, it really *does* make it a better game.
07:07:31 <pikhq> At least, if you have the sorts of players that would actually do that.
07:07:32 <zzo38> Especially if the ridiculous solution might involve mathematics.
07:08:15 <pikhq> (which is, of course, the most fun sort to play with)
07:08:20 <zzo38> I am the sorts of players that would actually do that. And the DM sometimes makes such things and I tell him to make such things too
07:09:54 <zzo38> I suggested starting a Level 20 campaign (note: D&D 3.5 edition). The DM said both of us start with no money, no equipment. Both of us agreed. I selected the Spell Mastery feat twice.
07:10:26 <zzo38> My brother selected the Soulknife class, which can create weapons by psychic energy.
07:11:26 <zzo38> (I have 5 Wizard levels, he has 12 Soulknife levels. Neither of us has multiclassed yet (although I plan to).)
07:11:35 <pikhq> Druid's probably a good choice, too.
07:11:55 <pikhq> "Equipment? Fuck that, I'm a fucking elemental."
07:12:11 <zzo38> O, I also selected Eschew Materials (one of the useful uses of this feat in this situation)
07:12:49 <zzo38> Druid would work too. Although you would have to find an item to use as divine focus (not too difficult, just look in the trees).
07:13:18 <zzo38> Both of us character sheets I have copied into the computer and you can view them if you want to.
07:13:46 <pikhq> Not particularly interested; I can pretty well figure out where you went with the build, and I'
07:13:52 <pikhq> m likely to go to sleep somewhat soon.
07:14:07 <pikhq> Neat campaign idea, though. :)
07:15:14 <zzo38> We have also agreed a bit on the story (part of it has changed somewhat from the original (I didn't know at first) due to the character choices, although now it all makes sense with the choices. My character helped his character escape from an island having slaves (he was a gladiator slave) by a merchant ship. We wear nothing but rags.
07:19:06 <zzo38> (I also suggested that his character could multiclass into Warlock class, having an unlimited use of eldritch blast, up to 250 feet if you learn the correct invocations for that!)
07:19:45 <zzo38> (Since the thrown mind blades do not have that much range)
07:20:41 <zzo38> Note also both of us created our character without knowing each other's character ahead of time. I made this suggestion.
07:29:29 -!- myndzi has joined.
07:42:08 <pikhq> ... Wut. Openly gay man voted to statewide office... In *Utah*.
07:44:29 <pikhq> Admittedly, chairman of the Democratic Party in the state.
07:45:09 <pikhq> Still. Fucking *Utah*.
07:45:27 <coppro> pikhq: It wasn't non-Austin Texas
07:46:08 <pikhq> coppro: Bit more notable, actually. 60% of Utah is Mormon.
07:46:42 <pikhq> Which is so rabidly antigay that they're just shy of lynch mobs.
07:47:43 <pikhq> Incidentally... 60% of Utah is registered Republicans.
07:48:06 -!- elliott has quit (Remote host closed the connection).
07:48:17 <pikhq> Likely the same people, actually.
07:48:39 -!- elliott has joined.
08:29:08 -!- MigoMipo has joined.
08:35:38 -!- Taneb has joined.
08:39:08 -!- elliott has quit (Quit: Leaving).
08:59:51 -!- CakeProphet has joined.
08:59:51 -!- CakeProphet has quit (Changing host).
08:59:51 -!- CakeProphet has joined.
09:00:57 <CakeProphet> you know what is more delicious than M&M's?
09:01:33 -!- CakeProp1et has joined.
09:02:14 -!- CakeProp1et has quit (Client Quit).
09:07:53 * Sgeo__ is very amused by events in #jesus
09:09:04 <Sgeo__> (Those events are over now though, no point n joining now
09:09:14 <pikhq> Sgeo__: Why do you torture yourself so?
09:09:29 <Sgeo__> Because sometimes amusing things happen?
09:11:39 <Sgeo__> (Jason was ranting on and on about something, Eliyahu was posting his usual apocalyptic junk. Op yelled at Jason, Jason said Eliyahu was spamming, asked op to boot them. Op asked if he wanted him to boot the troublemaker, Jason said to boot the spammer, Jason gets booted.
09:14:49 <Taneb> There's a lot of spam on the wiki
09:14:57 <Taneb> brb, switching computers
09:14:59 -!- Taneb has quit.
09:15:45 -!- Taneb has joined.
09:32:33 -!- Taneb has left.
09:32:37 -!- Taneb has joined.
09:38:08 -!- Taneb has left.
09:38:12 -!- Taneb has joined.
09:40:37 -!- GuestIceKovu has joined.
09:41:14 <zzo38> pikhq: Are you sure you can figure out where I went with the build? The game has not actually started yet. Also, my selections of things (spells, powers, feats, skills, etc) are often unusual selections.
09:42:02 <zzo38> For my brother, of course there isn't much selections since he has Soulknife class (no spells/etc to select)
09:42:13 -!- Slereah has quit (Ping timeout: 252 seconds).
09:44:04 <Taneb> I read that has Soupknife
09:44:20 <zzo38> OK, now figure out how to do Soupknife.
09:44:46 <zzo38> It would be difficult since you would usually use a spoon for soup, not knife
09:45:56 <Taneb> Unless it was badly made
09:46:18 <zzo38> Yes I suppose that might also be the possibility, maybe
09:54:11 -!- elliott has joined.
10:00:13 -!- MigoMipo_ has joined.
10:01:20 -!- MigoMipo_ has quit (Read error: Connection reset by peer).
10:03:56 -!- MigoMipo has quit (Ping timeout: 264 seconds).
10:08:05 -!- sebbu2 has joined.
10:08:20 -!- sebbu has quit (Ping timeout: 255 seconds).
10:08:48 -!- sebbu2 has changed nick to sebbu.
10:12:03 -!- Phantom_Hoover has joined.
10:13:47 <lambdabot> Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them.
10:29:36 -!- derrik has joined.
10:45:54 -!- azaq23 has joined.
10:59:00 -!- FireFly has joined.
10:59:43 <lambdabot> forall a k. (Ord k) => (a -> a -> a) -> [(k, a)] -> M.Map k a
11:01:42 <CakeProphet> > M.toList $ M.fromListWith (+) . (`zip` repeat 1) $ "This is a tyical English sentence, using quite a variety of characters."
11:02:28 <CakeProphet> > M.fromListWith (+) . (`zip` repeat 1) $ "This is a tyical English sentence"
11:02:31 <lambdabot> fromList [(' ',5),('E',1),('T',1),('a',2),('c',2),('e',3),('g',1),('h',2),(...
11:04:24 <CakeProphet> > M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence"
11:04:26 <lambdabot> fromList [(' ',5),('a',2),('c',2),('e',4),('g',1),('h',2),('i',4),('l',2),(...
11:05:35 <lambdabot> forall a. (Ord a) => a -> a -> Ordering
11:06:12 <CakeProphet> > sortBy (compare.snd) . to M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence"
11:06:27 <CakeProphet> > sortBy (compare.snd) . toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence"
11:06:43 <CakeProphet> > sortBy (compare.snd) . M.toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence"
11:06:44 <lambdabot> Occurs check: cannot construct the infinite type: b = (a, b)
11:11:54 <lambdabot> forall a. (a -> a -> Ordering) -> [a] -> [a]
11:12:43 <lambdabot> forall a a1. (Ord a) => (a1, a) -> a -> Ordering
11:13:46 <CakeProphet> > sortBy (compare `on` snd) . M.toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence"
11:13:48 <lambdabot> [('g',1),('p',1),('y',1),('a',2),('c',2),('h',2),('l',2),('n',3),('t',3),('...
11:14:03 <CakeProphet> > sortBy (flip compare `on` snd) . M.toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence"
11:14:05 <lambdabot> [(' ',5),('e',4),('i',4),('s',4),('n',3),('t',3),('a',2),('c',2),('h',2),('...
11:16:50 <CakeProphet> !addinterp hist haskell print . sortBy (flip compare `on` snd) . M.toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower =<< getContents
11:16:51 <EgoBot> Interpreter hist installed.
11:17:51 <EgoBot> Interpreter hist deleted.
11:17:56 <EgoBot> Interpreter hist installed.
11:18:06 <EgoBot> is not a user interpreter.
11:18:08 <EgoBot> Interpreter hist deleted.
11:18:38 <CakeProphet> !addinterp hist haskell sortBy (flip compare `on` snd) . M.toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower <$> getContents
11:18:38 <EgoBot> Interpreter hist installed.
11:20:02 <EgoBot> Interpreter hist deleted.
11:21:29 <Taneb> ...Is a histogram appropriate for letter frequency?
11:24:40 <lambdabot> Couldn't match expected type `[a]'
11:24:40 <lambdabot> against inferred type `[a1] -> [...
11:24:46 <lambdabot> [" ",",","H","eeee","ll","n","oo","r","v","y"]
11:25:42 <Taneb> I might learn Haskell
11:25:52 <CakeProphet> > map (head&&&length) . group . sort $ "Hello, everyone"
11:25:54 <lambdabot> [(' ',1),(',',1),('H',1),('e',4),('l',2),('n',1),('o',2),('r',1),('v',1),('...
11:27:40 <CakeProphet> This one is probably slower, but I'm not really sure.
11:28:19 <Taneb> The output is longer
11:28:41 <CakeProphet> the output is based on the input, which was different.
11:28:44 -!- ais523 has joined.
11:29:10 <CakeProphet> Taneb: er, you're talking about something else.
11:29:57 <CakeProphet> the first function was: toList . fromListWith (+) . (`zip repeat 1)
11:30:16 <lambdabot> ais523: You have 1 new message. '/msg lambdabot @messages' to read it.
11:30:35 <CakeProphet> toList is optionally. Map probably makes more sense anyways.
11:30:35 * ais523 vaguely advertises NetHack and variants tournament: http://junethack.rawrnix.com
11:31:16 <Taneb> I'm no good at NetHack
11:31:45 <Taneb> And elliott, if you feel morally superior to me due to OS, check now
11:33:19 <ais523> Taneb: you don't have to be any good at NetHack, just play it a bit and you'll end up better
11:33:28 <ais523> also, OS = open source or operating system or something else
11:37:11 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
11:37:15 <Taneb> I use it because it works and it's already there
11:37:38 <Taneb> Gonna switch soon, maybe
11:37:47 <lambdabot> ["abc","ab","ac","a","bc","b","c",""]
11:38:48 <CakeProphet> > let f n = length . filterM (const [True, False]) $ replicate n ' ' in f 4
11:39:10 <CakeProphet> > let f n = length . filterM (const [True, False]) $ replicate n ' ' in f 5
11:39:14 -!- Sgeo__ has quit (Ping timeout: 255 seconds).
11:39:56 <CakeProphet> the most efficient way to write (2^) in Haskell
11:47:16 -!- zzo38 has quit (Remote host closed the connection).
11:49:25 <Phantom_Hoover> OK, how do I get wget to recursively retrieve all files below a certaint point in a hierarchy?
11:50:37 -!- derrik has quit (Ping timeout: 258 seconds).
11:51:42 <ais523> it still requires links to the files in question to exist, otherwise it has no way to determine that they're there
11:53:14 -!- derrik has joined.
11:54:51 <ais523> Phantom_Hoover: it's a pain to find in the man page; I only found it so quickly because I already knew where on the page it was
11:54:55 <ais523> and even then it took a couple of minutes
11:55:23 <CakeProphet> > filterM (\x -> if x < 5 then [True] else [True,False]) [0..10]
11:55:24 <lambdabot> [[0,1,2,3,4,5,6,7,8,9,10],[0,1,2,3,4,5,6,7,8,9],[0,1,2,3,4,5,6,7,8,10],[0,1...
11:55:46 <CakeProphet> > filterM (\x -> if x < 3 then [True] else [True,False]) [0..4]
11:55:47 <lambdabot> [[0,1,2,3,4],[0,1,2,3],[0,1,2,4],[0,1,2]]
11:56:06 <elliott> ais523: ive started to have opinions on java ides... ive turned into...my worst friend
11:56:34 <Taneb> Well, I'm not going to learn Haskell just yet
11:56:48 <ais523> elliott: positive or negative opinions?
11:57:02 <ais523> with Java, you can be OK having opinions on IDEs, because it's designed to need one
11:57:08 <ais523> compared to, say, OCaml/Haskell, which doesn't
11:57:23 <CakeProphet> ais523: I think he means that he thinks some Java IDEs are better than others.
11:57:25 <Taneb> BECAUSE IT WON'T LET ME INSTALL THE THINGY
11:57:30 <ais523> CakeProphet: that is not surprising at all
11:57:39 <CakeProphet> and will possibly debate this with some one
11:57:41 <ais523> if they were all identical, there'd be no reason for more than one to exist
11:58:28 <elliott> and how are you trying to install it
11:58:40 <Taneb> Natty Narwhal, Software Centre
11:58:48 <elliott> that is not the haskell platform
11:58:59 <elliott> Taneb: don't use the package manager to install it
11:59:04 <elliott> natty is ancient, it doesn't even have the platform IIRC
11:59:09 <elliott> ais523: you see, /Eclipse/ deludes you into thinking that everything is going to be smooth automatic sailing. but if you need a separate build system, it completely falls apart.
11:59:15 <Taneb> Natty came out in April
11:59:41 <elliott> Taneb: does "sudo apt-get install haskell-platform" not work?\
11:59:48 <elliott> dunno about the software centre
11:59:51 <ais523> elliott: Netbeans does everything using Ant, which is a pretty frustrating build system
11:59:53 <elliott> but i think the package is called that
12:00:22 <elliott> ais523: yes i was about to get to netbeans. you see, i installed it, then i uninstalled it three seconds later when it used Swing -> horrible Java font rendering and also everything was ugly and slow.
12:00:30 <Taneb> Depends: ghc6 (< 6.12.1+) but 6.12.3-1ubuntu7 is to be installed
12:00:32 <Taneb> E: Broken packages
12:00:33 <NihilistDandy> Eclipse is part of the reason I'll never write for Android
12:00:37 <elliott> ais523: I decided to startusing Maven
12:00:47 <elliott> Taneb: can you pastebin your /etc/apt/sources.list?
12:00:54 <elliott> ais523: you teach java and don't know what maven is...?
12:01:00 <ais523> elliott: I thought it was a build system
12:01:09 <elliott> it's so enterprisey, you have no idea.
12:01:19 <elliott> you define a Project Object Model which produces Artifacts.
12:01:19 <ais523> that's why I was surprised that you were mentioning it in a context that implied it was an IDE
12:01:31 <elliott> which has Dependencies on Artifacts. and it locates those Dependencies from Repositories that you specify.
12:01:32 <ais523> and I knew it was XML-based and enterprisey, but I didn't know how enterprisey
12:01:40 <elliott> and each invocation is a Build Lifecycle.
12:01:47 <elliott> ais523: here's the thing: it's actually less painful than ant :D
12:01:59 <elliott> Taneb: it sounds like you have broken repos
12:01:59 <ais523> what about just using make?
12:02:09 <ais523> that's what I do for Jettyplay
12:02:10 <Taneb> http://pastebin.com/j1gdZ994
12:02:12 <elliott> ais523: well at this point, I was split between two paths
12:02:14 <ais523> I use autoconf, too, just because I can
12:02:23 <elliott> ais523: either I would get it working perfectly and Maven and all Java(tm)
12:02:31 <elliott> ais523: or I would start using any old editor and a shell script to build
12:02:44 <ais523> all it does is determine the locations of things like javac and jar
12:03:03 <elliott> Taneb: try sudo apt-get remove ghc6?
12:03:53 <Taneb> The following packages have unmet dependencies.
12:03:55 <Taneb> haskell-platform : Depends: ghc6 (< 6.12.1+) but 6.12.3-1ubuntu7 is to be installed
12:03:57 <Taneb> E: Broken packages
12:04:13 <elliott> ais523: anyway, so then I decided to give IDEA a second shot, since every Bukkit person seemed to be constantly saving about how advanced and analysisy it is, so I put its weird-ass default of allowing you to put the cursor outside of line boundaries
12:04:17 <elliott> Taneb: I'm not really sure
12:04:46 <ais523> Taneb: try aptitude -f update
12:04:48 <ais523> to see if it can fix them
12:04:51 <elliott> ais523: turns out it's great and also everyone should use it and it integrates perfectly with Maven. also, it knows more about my code than any machine has a right to deduce. also, it uses Swing too but it has a theme that makes it tolerable. why do i have opinions like this.
12:04:54 <elliott> ais523: no aptitude in recent ubuntu
12:04:59 <elliott> and it'd be upgrade, not update
12:05:05 <ais523> elliott: it's anything
12:05:05 <elliott> Taneb: sudo apt-get -f install
12:05:14 <elliott> ais523: but it's not aptitude :P
12:05:15 <ais523> the -f tells it to fix broken packages and mostly ignore the rest of the command line
12:05:28 <Taneb> 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
12:05:30 <ais523> huh, apt-get does have -f now
12:05:33 <elliott> ais523: ANYWAY, my point is: IntelliJ IDEA is good and all other IDEs are stinking badthings
12:05:40 <ais523> it didn't last I looked, that's why I checked aptitude
12:05:58 <elliott> NihilistDandy: this is java, suspend logic at the door
12:06:08 <ais523> I actually like the "fix broken packages" option in synaptic best
12:06:13 <ais523> I don't think the software centre has an alternative
12:06:23 <ais523> elliott: Abandon common sense! This is reality!
12:06:26 <ais523> my favourite line from Pokémon
12:06:31 <elliott> like I've said, IDEs are basically a tool for one-way destructuring of intentions that cannot later be reified (only I know what this means)
12:06:38 <elliott> (but my entire computing philosophy is based on its being evil)
12:06:56 <ais523> such a great line is rather out of character for the game
12:07:21 <elliott> http://en.wikipedia.org/wiki/File:Naive_realism.jpg bets image on wikipedia
12:07:41 <Phantom_Hoover> Reified literally means 'thingified', which cannot be beaten.
12:07:53 <ais523> elliott: I don't get it
12:07:57 <ais523> but that makes it a good image in its own right
12:08:45 <NihilistDandy> I used to link people to a page about nihilism when they'd ask me about it
12:08:57 <elliott> ais523: getting it would ruin it
12:09:03 <elliott> goodness is based mostly on incomprehensibility
12:09:20 <ais523> I was wondering if that was it
12:09:22 -!- BeholdMyGlory has joined.
12:09:32 <ais523> also, thanks for linking to the file description page rather than linking to the image directly
12:11:31 <elliott> ais523: I wanted to link to it directly to keep the absurdism alive but then I realised you'd yell at me
12:11:36 <ais523> wow, ABCD is much worse than ABCDXYZ
12:11:42 <elliott> So I stomped around grumpily for a few seconds then cried
12:11:44 <ais523> orders of magnitude, in fact
12:12:12 <Taneb> Should I reinstall that thing you got me to remove to see if it would make it work?
12:13:01 <ais523> elliott: why did you userfy a spam page?
12:13:28 <elliott> i need to study the source material
12:13:33 <ais523> could you save a local copy for the time being, then?
12:13:39 <ais523> it's still spam, regardless of what namespace it's in
12:13:47 <elliott> ais523: it's art now. but FINE
12:14:15 <elliott> hmm "The 12 Steps For Adult Children." I'm thinking a RUBE type thing, except in abstract object space rather than twodee space
12:15:00 <ais523> hmm, it appears to be creating a linkfarm on a bunch of unrelated wikis
12:15:05 <ais523> in an attempt to boost pagerank that way, I suppose
12:15:18 <ais523> it's a pity these spambots haven't heard of nofollow, the spamming technique they're using doesn't even work
12:15:18 <NihilistDandy> Taneb: Gentoo's probably your best bet, unless you're really tied to Ubuntu
12:15:29 <Taneb> That happened to a wiki I admin
12:15:48 <ais523> for bonus points, the link to the page they're actually trying to promote is invalid (no TLD)
12:15:48 <Taneb> The owner blocked account registration or something
12:15:54 <Taneb> You cannot stop it
12:15:59 <Taneb> They just keep on comming
12:16:13 <ais523> presumably to hide it from Google, and hope that people follow the link anyway
12:16:26 -!- augur has joined.
12:16:29 <ais523> and we're pretty tenacious at stopping spambots
12:16:38 <ais523> occasionally I ask graue to change something on the backend to help
12:16:44 <ais523> but only in a real emergency
12:16:50 <ais523> they do keep on coming, but we keep on blocking them
12:16:54 <ais523> and they have to run out of IPs eventually
12:17:09 <Taneb> So /that's/ why IPv4 is running out
12:17:09 <ais523> Graue will probably just ban <br> or something if they keep turning up
12:17:40 <ais523> spambots are the reason <div and <span don't work on Esolang
12:18:10 <Taneb> Gonna have lunch now, bye
12:18:22 -!- Taneb has left.
12:19:31 -!- cheater_ has joined.
12:22:15 -!- cheater__ has quit (Ping timeout: 250 seconds).
12:22:56 <CakeProphet> > join (++) . (inits . repeat) =<< sequence $ "abc"
12:22:57 <lambdabot> Couldn't match expected type `a -> b'
12:23:16 <CakeProphet> > join (++) . (inits . repeat) >>= sequence $ "abc"
12:23:17 <lambdabot> Couldn't match expected type `[a]' against inferred type `a -> a1'
12:23:32 <CakeProphet> > map join (++) . (inits . repeat) >>= sequence $ "abc"
12:23:33 <lambdabot> Couldn't match expected type `[m (m a)]'
12:23:46 <CakeProphet> > map join (++) . ((inits . repeat) >>= sequence) $ "abc"
12:23:47 <lambdabot> Couldn't match expected type `[m (m a)]'
12:23:54 <CakeProphet> :t ((inits . repeat) >>= sequence) $ "abc"
12:23:55 <lambdabot> Couldn't match expected type `[a]' against inferred type `a -> a'
12:25:31 <CakeProphet> > map ((++) `ap` reverse) . (inits . repeat) "abc" >>= sequence
12:25:33 <lambdabot> ["","a","b","c","c","b","a","aa","ab","ac","ac","ab","aa","ba","bb","bc","b...
12:26:35 <CakeProphet> > map ((++) `ap` reverse) $ (inits . repeat) "abc" >>= sequence
12:26:36 <lambdabot> ["","aa","bb","cc","aaaa","abba","acca","baab","bbbb","bccb","caac","cbbc",...
12:27:27 <CakeProphet> awww yeah, list of all palindromes in an alphabet.
12:28:36 <CakeProphet> > map ((++) `ap` reverse) $ (inits . repeat) "race" >>= sequence
12:28:37 <lambdabot> ["","rr","aa","cc","ee","rrrr","raar","rccr","reer","arra","aaaa","acca","a...
12:28:55 <CakeProphet> somewhere in that sequence is "racecar" :P
12:32:37 <CakeProphet> now if only I had an isEnglishWord function..
12:34:00 <CakeProphet> also I think (inits . repeat) alphabet >>= sequence
12:34:23 <CakeProphet> is probably the more elegant alternative to (`replicateM` alphabet) =<< [0..]
12:35:43 <CakeProphet> "pleases the way my brain interprets the code"
12:36:40 <CakeProphet> replace "the code" with "it" for other things.
12:36:41 <NihilistDandy> > fmap fmap fmap fmap fmap fmap fmap fmap fmap (fmap fmap fmap) fmap fmap sum (fmap fmap fmap fmap fmap read) return show $ 635
12:38:29 <ais523> @unpl fmap fmap fmap fmap fmap fmap fmap fmap fmap (fmap fmap fmap) fmap fmap sum (fmap fmap fmap fmap fmap read) return show
12:38:30 <lambdabot> fmap fmap fmap fmap fmap fmap fmap fmap fmap (fmap fmap fmap) fmap fmap sum (fmap fmap fmap fmap fmap read) return show
12:38:44 -!- Taneb has joined.
12:38:59 <ais523> how is anyone meant to know what that does?
12:39:19 <ais523> do all the fmaps cancel each other out?
12:39:46 <Taneb> Is that a digital sum calculator thing?
12:39:49 <NihilistDandy> @type fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap
12:39:50 <lambdabot> forall a b (f :: * -> *) a1 (f1 :: * -> *). (Functor f1, Functor f) => (a1 -> a -> b) -> f1 a1 -> f1 (f a -> f b)
12:40:06 <elliott> <ais523> do all the fmaps cancel each other out?
12:40:21 <elliott> it's something like all the ones past three make no effect
12:40:23 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
12:40:25 <lambdabot> forall a b (f :: * -> *) (f1 :: * -> *). (Functor f, Functor f1) => f1 (a -> b) -> f1 (f a -> f b)
12:40:26 <lambdabot> forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b)
12:40:26 <elliott> ?ty fmap fmap fmap fmap fmap
12:40:27 <lambdabot> forall (f :: * -> *) (f1 :: * -> *) a b (f2 :: * -> *). (Functor f, Functor f1, Functor f2) => f (f1 (a -> b)) -> f (f1 (f2 a -> f2 b))
12:40:27 <lambdabot> forall a (f :: * -> *) a1 b. (Functor f) => (a1 -> b) -> (a -> a1) -> f a -> f b
12:40:31 <ais523> oh, and I think I can vaguely work out why, too
12:42:23 <CakeProphet> I wonder if there's a better way to generate every palindrome in an alphabet.
12:42:50 <CakeProphet> > map ((++) `ap` reverse) $ (inits . repeat) "abc" >>= sequence
12:42:51 <lambdabot> ["","aa","bb","cc","aaaa","abba","acca","baab","bbbb","bccb","caac","cbbc",...
12:44:22 <Taneb> It only does even lengthed ones
12:44:52 <ais523> NihilistDandy: fear of palindromes?
12:44:55 <CakeProphet> hmmm, okay, this is now a much more difficult problem. :P
12:45:34 <NihilistDandy> > map ((++) `ap` reverse) $ (inits . repeat) "ab" >>= sequence
12:45:35 <lambdabot> ["","aa","bb","aaaa","abba","baab","bbbb","aaaaaa","aabbaa","abaaba","abbbb...
12:45:49 <NihilistDandy> > map ((++) `ap` reverse) $ (inits . repeat) "a" >>= sequence
12:45:51 <lambdabot> ["","aa","aaaa","aaaaaa","aaaaaaaa","aaaaaaaaaa","aaaaaaaaaaaa","aaaaaaaaaa...
12:46:05 <Taneb> E: monitor rot in Nome.
12:46:06 <CakeProphet> for each even length palindrome there needs to be an number of odd palidromes equal to the number of elements
12:46:35 <CakeProphet> where basically the alphabet character is concatenated in the center of the even length string
12:46:48 <CakeProphet> this would give a, b, and c by performing this in the case of "" ++ ""
12:47:22 <ais523> for each even length palindrome but the null string, you can create an odd length palindrome by removing one of the letters in the middle
12:47:51 <quintopia> alternately, you could delete on of the middle characters from the next rank of palindromes
12:49:31 <lambdabot> forall a b c. ((a, b) -> c) -> a -> b -> c
12:49:38 <lambdabot> forall a b c. (a -> b -> c) -> (a, b) -> c
12:50:32 <Taneb> Zen E.C. nip pince-nez
12:50:54 <fizzie> Was late, my ball. Lab Y: metal saw.
12:51:22 <elliott> Gare isn't... strictly a word.
12:51:39 <Taneb> Do nine men interpret? Nine men, I nod!
12:52:53 <Taneb> A ninja, A.J. Nina.
12:53:44 <elliott> Archaeology: ancient cry -- yrc tneicna ygoloeahcra.
12:55:29 <Taneb> mod $nar = "Finn" if random().
12:55:55 <elliott> NihilistDandy: where do you learn your skills...
12:56:01 <NihilistDandy> Reviled did I live, said I, as evil I did deliver.
12:56:05 <elliott> NihilistDandy: where do you learn your skills...
12:57:05 <elliott> Modenil capra; ARPA-C line DOM.
12:57:13 <NihilistDandy> I dunno. Once you see a lot of palindromes, they start to come easy :D
12:57:22 <olsner> yrc tneicna looks like gaelic or something... could be a brand of whiskey
12:57:30 <Taneb> Wednesday 'ad sen dew.
12:57:52 <elliott> NihilistDandy: was that a palindrome
13:01:30 <lambdabot> Couldn't match expected type `m a'
13:01:30 <lambdabot> against inferred type `GHC.Types...
13:01:35 <lambdabot> forall (m :: * -> *) a. (Monad m) => [m a] -> m [a]
13:02:35 <quintopia> i just learned that "Palin" is greek for "backwards"...this explains a lot about American politics
13:03:06 <Taneb> And certain travel documentaries made by a former member of Monty Python?
13:04:17 <lambdabot> No instance for (GHC.Show.Show (f GHC.Types.Char))
13:04:22 <elliott> > map pure "abc" :: [String]
13:04:27 <lambdabot> forall a a1. a -> [a -> a1] -> [a1]
13:04:27 <elliott> also map return, map (:[]), etc.
13:04:37 <CakeProphet> I guess I'll just have to manually concat the []...
13:07:05 <CakeProphet> > let palindromes alphabet = map ((((,) `ap` reverse)) $ (inits . repeat) alphabet >>= sequence >>= (\x y -> map (\z -> x++z++y) ([]:map pure alphabet)) `ap` reverse
13:07:06 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
13:07:12 <CakeProphet> > let palindromes alphabet = map ((((,) `ap` reverse)) $ (inits . repeat) alphabet >>= sequence >>= (\x y -> map (\z -> x++z++y) ([]:map pure alphabet)) `ap` reverse in palindromes "abc"
13:07:13 <lambdabot> <no location info>: parse error on input `in'
13:07:50 <CakeProphet> > let palindromes alphabet = (inits . repeat) alphabet >>= sequence >>= (\x y -> map (\z -> x++z++y) ([]:map pure alphabet)) `ap` reverse in palindromes "abc"
13:07:51 <lambdabot> ["","a","b","c","aa","aaa","aba","aca","bb","bab","bbb","bcb","cc","cac","c...
13:08:25 <CakeProphet> @pl (\x y -> map (\z -> x++z++y) ([]:map pure alphabet)) `ap` reverse
13:08:25 <lambdabot> flip (flip . (map .) . (. flip (++)) . (.) . (++)) ([] : map pure alphabet) `ap` reverse
13:09:36 <NihilistDandy> Off to watch the Puma Man and pass out before work. Adios, all
13:09:53 <CakeProphet> there might be a fancier way to do that, but really the only way I can think of is to use >>= with a function that produces a list containing the even palidrome and its associated odd palindromes
13:10:59 <CakeProphet> if I didn't need the empty string in the list I could simply pass alphabet to that map and use z:y instead of z++y
13:12:14 <CakeProphet> @pl (\x y -> [x++y, map (\z -> x++z:y) alphabet]) `ap` reverse
13:12:14 <lambdabot> ap (ap . ((:) .) . (++)) (flip flip [] . ((:) .) . flip flip alphabet . (map .) . (. flip (:)) . (.) . (++)) `ap` reverse
13:12:20 <Taneb> What is "" backwards?
13:12:35 <Taneb> So, nothing is nothing backwards
13:12:40 <NihilistDandy> There are no characters to order, so no order to reverse
13:13:24 <CakeProphet> > let palindromes alphabet = (inits . repeat) alphabet >>= sequence >>= (\x y -> [x++y, map (\z -> x++z:y) alphabet]) `ap` reverse in palindromes "abc"
13:13:25 <lambdabot> Occurs check: cannot construct the infinite type: a = [a]
13:13:44 <CakeProphet> > let palindromes alphabet = (inits . repeat) alphabet >>= sequence >>= (\x y -> [x++y, map (\z -> x++(z:y)) alphabet]) `ap` reverse in palindromes "abc"
13:13:45 <lambdabot> Occurs check: cannot construct the infinite type: a = [a]
13:14:06 <CakeProphet> in any case, I'm talking about the empty string for the last part of the code
13:14:37 <CakeProphet> I need the empty string so that mapping x++z++y will produce the even lengthed one
13:15:52 <CakeProphet> > let palindromes alphabet = (inits . repeat) alphabet >>= sequence >>= (\x y -> (x++y) : map (\z -> x++z:y) alphabet) `ap` reverse in palindromes "abc"
13:15:54 <lambdabot> ["","a","b","c","aa","aaa","aba","aca","bb","bab","bbb","bcb","cc","cac","c...
13:16:33 <CakeProphet> @pl (\x y -> (x++y) : map (\z -> x++z:y) alphabet
13:16:34 <lambdabot> expecting variable, "(", operator, ":", "++", "<+>" or ")"
13:16:36 <CakeProphet> @pl (\x y -> (x++y) : map (\z -> x++z:y) alphabet)
13:16:36 <lambdabot> ap (ap . ((:) .) . (++)) (flip flip alphabet . (map .) . (. flip (:)) . (.) . (++))
13:17:42 -!- Wamanuz has quit (Read error: Connection reset by peer).
13:18:03 <CakeProphet> > let palindromes alphabet = (inits . repeat) alphabet >>= sequence >>= (\x y -> (x++y) : map ((x++).(:y)) alphabet) `ap` reverse in palindromes "abc"
13:18:03 -!- Wamanuz has joined.
13:18:04 <lambdabot> ["","a","b","c","aa","aaa","aba","aca","bb","bab","bbb","bcb","cc","cac","c...
13:18:18 <CakeProphet> but I think the x and y variables are pretty much necessary to maintain clarity.
13:19:18 <CakeProphet> the "delete a character from the middle" approach might be shorter with the use of functions from Data.List
13:20:01 <CakeProphet> yes but that's not the only thing there....
13:20:22 <NihilistDandy> I know. It just seems like some refactoring could get rid of that silly thing :D
13:20:33 <lambdabot> expecting variable, "(", operator or ")"
13:21:33 <CakeProphet> I guess two flips and 3 compositions is where I draw the line. :P
13:22:11 <CakeProphet> once I understand them in a way that is intuitive...
13:23:16 <lambdabot> forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b)
13:23:55 -!- FireFly has quit (Read error: Connection reset by peer).
13:24:03 <lambdabot> forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b)
13:24:48 <NihilistDandy> :t fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap
13:24:49 <lambdabot> forall a b (f :: * -> *) a1 (f1 :: * -> *). (Functor f1, Functor f) => (a1 -> a -> b) -> f1 a1 -> f1 (f a -> f b)
13:25:22 <CakeProphet> in fact I like this palidrome code so much I think I will save it.
13:25:28 <lambdabot> forall (f :: * -> *) (f1 :: * -> *) (f2 :: * -> *) a b (f3 :: * -> *). (Functor f, Functor f1, Functor f2, Functor f3) => f (f1 (f2 (a -> b))) -> f (f1 (f2 (f3 a -> f3 b)))
13:25:32 <CakeProphet> since it's not something I can pull from memory.
13:26:04 -!- FireFly has joined.
13:26:22 <lambdabot> forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => f (a -> b) -> f (f1 a -> f1 b)
13:29:55 <CakeProphet> is also equal to (inits . repeat) alphabet >>= sequence
13:31:39 <NihilistDandy> Or for some, if I want to stick to my kind of wrong one
13:31:43 <CakeProphet> I think Control.Monad and Data.List are the only dependencies.
13:31:58 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
13:31:58 <lambdabot> Data.Graph.Inductive.Query.ArtPoint ap :: Graph gr => gr a b -> [Node]
13:31:59 <lambdabot> Control.Arrow app :: ArrowApply a => a (a b c, b) c
13:32:23 <lambdabot> Data.ByteString reverse :: ByteString -> ByteString
13:32:33 <CakeProphet> using replicateM I need only Control.Monad so... I'll do that.
13:32:37 <lambdabot> Data.ByteString.Lazy repeat :: Word8 -> ByteString
13:32:40 <lambdabot> Data.ByteString inits :: ByteString -> [ByteString]
13:32:40 <lambdabot> Data.ByteString.Char8 inits :: ByteString -> [ByteString]
13:34:14 <CakeProphet> let palindromes alphabet = [0..] >>= (`replicateM` alphabet) >>= (\x y -> (x++y) : map ((x++).(:y)) alphabet) `ap` reverse in palidromes "ab"
13:34:17 <CakeProphet> > let palindromes alphabet = [0..] >>= (`replicateM` alphabet) >>= (\x y -> (x++y) : map ((x++).(:y)) alphabet) `ap` reverse in palidromes "ab"
13:34:24 <CakeProphet> > let palindromes alphabet = [0..] >>= (`replicateM` alphabet) >>= (\x y -> (x++y) : map ((x++).(:y)) alphabet) `ap` reverse in palindromes "ab"
13:34:26 <lambdabot> ["","a","b","aa","aaa","aba","bb","bab","bbb","aaaa","aaaaa","aabaa","abba"...
13:34:33 <CakeProphet> just double-checking that the new version works.
13:36:22 <NihilistDandy> Sweet. Now if we could just find some suitably opaque combinators equivalent to some of that...
13:37:01 <CakeProphet> well it would be nice to somehow be able to have a map that also included an empty element of some kind, but I'm pretty sure that's not possible without using a lot of combinators.
13:37:10 <elliott> > let strings = ([0..] >>=) . flip replicateM; palindromes = alphabet >>= (\x y -> (x++y) : map ((x++).(:y)) alphabet) `ap` reverse in palindromes "ab"
13:37:11 <lambdabot> Not in scope: `alphabet'Not in scope: `alphabet'
13:37:21 <elliott> > let strings = ([0..] >>=) . flip replicateM; palindromes alphabet = strings alphabet >>= (\x y -> (x++y) : map ((x++).(:y)) alphabet) `ap` reverse in palindromes "ab"
13:37:23 <lambdabot> ["","a","b","aa","aaa","aba","bb","bab","bbb","aaaa","aaaaa","aabaa","abba"...
13:37:54 <CakeProphet> I'd mainly like to reduce the lambda somehow.
13:38:53 <CakeProphet> well, since I'm actually putting it in a file now I can define it as a function instead of using the lambda...
13:43:04 <Taneb> I didn't say that why did I say that
13:46:06 <fizzie> There used to be a thing that you could disconnect a percentage of dialup users with a "ping -p 2B2B2B415448300D0A" command.
13:46:40 <CakeProphet> somewhat improved: http://hpaste.org/49130
13:46:59 <CakeProphet> if I ever need to import Control.Applicative I'll change ap to <*>
13:47:38 <CakeProphet> though it's purely cosmetic, everything I'm doing is purely cosmetic.
13:49:22 <CakeProphet> there are probably many sets of interesting strings you could construct with the [0..] >>= (`replicateM` alphabet) thing.
13:51:57 <CakeProphet> Title: use do syntax for non monadic code http://hpaste.org/49108
13:55:18 <olsner> CakeProphet: it desugars into something that doesn't use any monad functions, so it ends up working
13:58:15 -!- EgoBot has quit (Remote host closed the connection).
13:58:15 <elliott> imo do should constrain the type...
13:58:28 -!- EgoBot has joined.
13:59:11 -!- Taneb has quit (Ping timeout: 255 seconds).
14:00:41 <lambdabot> No instances for (GHC.Num.Num (m a), GHC.Num.Num (m b))
14:06:00 <ais523> does ABCD count as a stupid BF derivative? or is it worse than that?
14:06:05 <ais523> it's basically BF restricted to +-,.
14:06:05 -!- elliott has quit (Ping timeout: 264 seconds).
14:07:12 <CakeProphet> ais523: just a stupid BF derivative.. if that's literally what it is.
14:07:22 <ais523> CakeProphet: well, commands renamed as usual
14:07:46 <ais523> here you go: http://esolangs.org/wiki/ABCD
14:08:03 <CakeProphet> now if you could spawn threads of FSA that could communicate with each other...
14:09:22 <ais523> the page is vaguely obnoxious
14:09:29 <ais523> and was placed in a category specifically for the language, too
14:09:36 <ais523> I'm almost wondering if it's trolling
14:10:32 -!- augur has quit (Remote host closed the connection).
14:14:38 <ais523> well, no almost about it
14:16:03 -!- augur has joined.
14:28:08 -!- augur has quit (Remote host closed the connection).
14:31:41 -!- Taneb has joined.
14:34:22 <Taneb> Game cube Nintendo: cod net nine Buce mag?
14:39:35 -!- augur has joined.
14:41:21 <olsner> Taneb: your palindrome makes no sense either forwards or backwards
14:41:43 <Taneb> I don't make sense
14:47:17 <CakeProphet> @pl let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in take 20 primes
14:47:18 <lambdabot> take 20 (fix ((`ap` tail) . (. head) . liftM2 (.) (:) . (. (filter . ((> 0) .) . flip mod)) . (.)) [2..])
14:47:53 <CakeProphet> I am always impressed with pl's sense of taste
14:48:20 <Taneb> You should see pl's living room
14:49:22 <CakeProphet> it is all very smooth surfaces, with no polka dot colors.
14:55:33 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in join (zipWith (!!)) primes
14:55:34 <lambdabot> Couldn't match expected type `[a]'
14:55:34 <lambdabot> against inferred type `GHC.Types...
14:56:02 <lambdabot> Couldn't match expected type `[a]' against inferred type `Int'
14:56:02 <lambdabot> Expected type: [[a]] -> [[a]] -> a1
14:56:02 <lambdabot> Inferred type: [[a]] -> [Int] -> [a]
14:56:48 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in zipWith (!!) primes primes
14:56:49 <lambdabot> No instance for (GHC.Real.Integral [a])
14:56:50 <lambdabot> arising from a use of `e_120' at...
14:57:07 -!- MigoMipo has joined.
14:57:13 <lambdabot> forall a b c. (a -> b -> c) -> [a] -> [b] -> [c]
14:57:33 <CakeProphet> :t let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in primes
14:58:01 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in zipWith ((!!) `ap` fromIntegral) primes primes
14:58:02 <lambdabot> No instance for (GHC.Real.Integral [b -> c])
14:58:50 <lambdabot> forall b. (Integral [b]) => [b] -> b
14:59:40 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in map (primes!!) primes
14:59:42 <lambdabot> [5,7,13,19,37,43,61,71,89,113,131,163,181,193,223,251,281,293,337,359,373,4...
14:59:50 <CakeProphet> sometimes I wonder how I got so good at Haskell.
15:00:16 <CakeProphet> but yeah, those are the prime numbers that are indexed by a prime number
15:00:34 <CakeProphet> if I were a number theorist, I'd probably give them some kind of goofy name.
15:01:10 <CakeProphet> or name them after myself: CakeProphet numbers.
15:02:13 <Taneb> 7,13,37,61,131,181,281,337...
15:02:31 <CakeProphet> they have many interesting properties, such as being prime, and being nth prime numbers where n is a prime number.
15:03:34 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in map (primes!!) $ map (primes!!) primes
15:04:00 <CakeProphet> ...as you can see, finding the prime numbers indexed by CakeProphet numbers is somewhat time consuming.
15:04:09 <CakeProphet> but I will go ahead and name them rank-2 CakeProphet numbers.
15:04:31 <CakeProphet> because as a number theorist this is ultimately where I get my kicks.
15:04:52 <Taneb> <Taneb>7,13,37,61,131,181,281,337... <-- CakeProphet numbers indexed by Prime numbers
15:05:26 <Taneb> Can they be Taneb numbers?
15:06:11 <CakeProphet> One of the key challenges of number theory is finding unique names for numbers that exhibit arbitrary and interesting properties.
15:06:37 <CakeProphet> I have written many papers on the subject.
15:09:04 <CakeProphet> I will just say that I have an Erdős number of -1
15:09:44 <Taneb> http://oeis.org/A072677
15:10:22 <Taneb> That's the CakeProphet numbers
15:10:29 <Taneb> Also http://oeis.org/A117249
15:11:56 <Taneb> Because they were listed in 2002 and 2006
15:12:34 <CakeProphet> I will just have to reword the definition.
15:16:11 <CakeProphet> A prime number p is a CakeProphet number if the powerset of the set of prime numbers contains exactly 2^q-1 subsets where p is the maximal element, and q is prime.
15:16:53 <Taneb> https://oeis.org/login?redirect=/edit/new
15:18:40 <ais523> CakeProphet: is that powerset stuff a really complex way of saying "the qth largest prime number, where q is prime"?
15:19:09 <CakeProphet> I have no idea how you could infer such a thing.
15:19:24 <CakeProphet> I believe Luc Stephens already published such a thing
15:19:54 -!- derrik has quit (Quit: run).
15:22:13 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes . (-1) . logBase 2 . length . filterM (const [True,False])) primes
15:22:14 <lambdabot> No instance for (GHC.Num.Num [[t]])
15:22:14 <lambdabot> arising from a use of syntactic nega...
15:22:43 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes . subtract 1 . logBase 2 . length . filterM (const [True,False])) primes
15:22:44 <lambdabot> Couldn't match expected type `[[t]]'
15:23:42 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes . subtract 1 . logBase 2 . length . filterM (const [True,False]) . (primes!!)) primes
15:23:42 <lambdabot> Couldn't match expected type `[[t]]'
15:24:43 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes . subtract 1 . logBase 2 . length . filterM (const [True,False]) . (\x -> takeWhile (/=x))) primes
15:24:44 <lambdabot> Couldn't match expected type `[[t]]'
15:25:19 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes . subtract 1 . logBase 2 . length . filterM (const [True,False]) . (\x -> takeWhile (/=x) primes)) primes
15:25:20 <lambdabot> Couldn't match expected type `[[t]]'
15:25:27 <CakeProphet> I should probably not try to program at this hour.
15:26:41 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes . subtract 1 . logBase 2 . length . filterM (const [True,False])) (inits primes)
15:26:42 <lambdabot> Couldn't match expected type `[[t]]'
15:31:49 <lambdabot> forall a (m :: * -> *). (Monad m) => (a -> m Bool) -> [a] -> m [a]
15:32:16 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter (elem primes.subtract 1.logBase 2.length.filterM (const [True,False]))$inits primes
15:32:17 <lambdabot> Couldn't match expected type `[[t]]'
15:33:37 <lambdabot> forall a. (Eq a) => a -> [a] -> Bool
15:33:55 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter ((`elem` primes).subtract 1.logBase 2.length.filterM (const [True,False]))$inits primes
15:33:56 <lambdabot> No instance for (GHC.Float.Floating GHC.Types.Int)
15:35:13 <lambdabot> forall a. (Fractional a) => a -> a -> a
15:36:06 -!- oklopol has joined.
15:36:35 <CakeProphet> wow it sure is incredibly stupid that logBase doesn't work with integral..
15:36:50 <lambdabot> forall a. (Floating a) => a -> a -> a
15:39:45 <lambdabot> Prelude ceiling :: (RealFrac a, Integral b) => a -> b
15:39:46 <lambdabot> Prelude floor :: (RealFrac a, Integral b) => a -> b
15:39:46 <lambdabot> Prelude round :: (RealFrac a, Integral b) => a -> b
15:40:43 <CakeProphet> > let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in filter ((`elem` primes).subtract 1.floor.logBase 2.(fromIntegral::Int->Float).length.filterM (const [True,False]))$inits primes
15:44:47 <CakeProphet> I've found myself using the monad instance of (e ->) much more now that I know how it works.
15:45:50 -!- Nisstyre has quit (Ping timeout: 255 seconds).
15:46:14 <lambdabot> forall (m :: * -> *) a. (Monad m) => [m a] -> m [a]
15:47:30 <lambdabot> Occurs check: cannot construct the infinite type: m = (->) (m a)
15:49:22 <lambdabot> forall a (m :: * -> *) b c. (Monad m) => (a -> m b) -> (b -> m c) -> a -> m c
15:49:35 <CakeProphet> not sure about these operators. Haven't figured out when to use them.
15:51:30 <lambdabot> Source not found. Where did you learn to type?
15:51:45 <CakeProphet> lambdabot: where did you learn to lookup sources?
15:56:43 -!- monqy has joined.
15:57:44 <CakeProphet> liftM f m1 = do { x1 <- m1; return (f x1) }
16:00:00 <CakeProphet> foldM f a (x:xs) = f a x >>= \fax -> foldM f fax xs
16:00:11 <CakeProphet> or perhaps just completely arbitrary about its use...
16:07:26 -!- Nisstyre has joined.
16:07:36 -!- Taneb has quit (Ping timeout: 258 seconds).
16:11:19 -!- Sgeo has joined.
16:19:03 -!- esowiki has joined.
16:19:43 -!- esowiki has joined.
16:20:28 -!- esowiki has joined.
16:21:13 -!- esowiki has joined.
16:22:03 -!- esowiki has joined.
16:22:43 -!- esowiki has joined.
16:23:33 -!- esowiki has joined.
16:24:14 -!- esowiki has joined.
16:24:54 -!- esowiki has joined.
16:25:34 -!- esowiki has joined.
16:26:24 -!- esowiki has joined.
16:27:04 -!- esowiki has joined.
16:27:44 -!- esowiki has joined.
16:28:34 -!- esowiki has joined.
16:29:14 -!- esowiki has joined.
16:29:54 -!- esowiki has joined.
16:30:39 -!- esowiki has joined.
16:31:19 -!- esowiki has joined.
16:32:04 -!- esowiki has joined.
16:32:08 -!- glogbot has joined.
16:32:15 -!- EgoBot has joined.
16:33:38 -!- esowiki has joined.
16:34:30 -!- esowiki has joined.
16:35:10 -!- esowiki has joined.
16:35:46 -!- esowiki has joined.
16:36:36 -!- esowiki has joined.
16:36:36 -!- glogbot has joined.
16:36:44 -!- HackEgo has joined.
16:36:44 -!- EgoBot has joined.
16:46:30 -!- Taneb has joined.
16:48:58 <oklopol> Sgeo: wrong answer. the correct answer is: if x is in the union, it is in one of the sets U_i by def of union. thus there's a ball around x completely inside U_i. but obviously the same ball is completely inside the union as well. so the union of open sets is open.
16:49:01 <Taneb> I don't want to take my sign into town because the weather looks... looming and my sign isn't waterproofed
16:49:48 <oklopol> as for intersection, consider U = U_1 \cap ... \cap U_k, let u \in U and let B_{r_i}(x) \subset U_i for all i. now just take the smallest of the r_i, and it will of course be contained in all the U_i, and thus their intersection.
16:50:07 <Taneb> And I've badly timed this
16:50:11 <Taneb> It's almost dinnertime
16:50:14 <oklopol> thus, a finite intersection of open sets is open
16:50:37 <Taneb> I'll do it tomorrow. Can't be bothered now
16:50:45 <Phantom_Hoover> oklopol, and you expected Sgeo, who is inexplicably frightened of maths, to answer?
16:50:53 <oklopol> he proved the trivial cases
16:51:03 <oklopol> then i left and apparently he didn't continue!
16:51:28 <oklopol> well, not that those two cases weren't trivial
16:54:26 <Sgeo> Sorry, watching Doctor Who
16:54:52 <Phantom_Hoover> Loading package OpenGL-2.2.3.0 ... linking ... <interactive>: /usr/local/lib/GeomAlgLib-0.2.0/ghc-7.0.2/HSGeomAlgLib-0.2.0.o: unknown symbol `__stginit_ghczm7zi0zi2_Maybes_'
16:55:15 <oklopol> doctor who. i saw part of one episode of that and it reminded me of buffy the vampire slayer.
16:55:36 <oklopol> so maybe i should watch it because buffy was an awesome show
16:55:45 <Phantom_Hoover> `addquote <oklopol> doctor who. i saw part of one episode of that and it reminded me of buffy the vampire slayer.
16:55:48 <HackEgo> 508) <oklopol> doctor who. i saw part of one episode of that and it reminded me of buffy the vampire slayer.
16:56:07 <Taneb> Christopher Eccleston was the best of New Who.
17:07:36 -!- esowiki has joined.
17:08:17 -!- esowiki has joined.
17:08:17 -!- glogbot has joined.
17:08:19 -!- HackEgo has joined.
17:08:20 -!- EgoBot has joined.
17:19:32 -!- derrik has joined.
17:23:20 <Taneb> I'm going to do something radical
17:24:14 <Taneb> Use this channel to make an esoteric programming language
17:25:30 <monqy> how would you use this channel to make an esoteric programming language
17:25:49 <Taneb> By throwing ideas at people
17:25:54 <Taneb> And seeing what bounces off
17:27:48 -!- Taneb has quit (Quit: Taneb).
17:28:16 -!- Taneb has joined.
17:28:27 <Phantom_Hoover> What is this discrete math everybody keeps going on about.
17:28:37 <Taneb> It's very stealthy
17:29:04 <Phantom_Hoover> You realise that discrete is spelt differently to discreet, right/
17:29:23 <Taneb> I wasn't letting that get in the way of a good pun
17:31:32 -!- Gregor has joined.
17:31:48 <Taneb> Right, that esoteric programming language I was going to make...
17:31:57 -!- Gregor has changed nick to Guest87848.
17:32:08 <Phantom_Hoover> ...is not as important as helping me to get cglib to work.
17:32:26 <Taneb> I can't help you with that
17:32:45 <Taneb> Can anyone here help Phantom_Hoover get cglib to work?
17:34:34 <oklopol> Phantom_Hoover: there's no real definition, but if you want something other than a list of fields that are usually considered discrete, i can share my own heuristic: discrete math is stuff that starts with a finite set, non-discrete math starts with the reals.
17:35:02 <Phantom_Hoover> oklopol, but there are all these people talking about it as a school-level thing.
17:35:56 <Taneb> Are real numbers defined in school level?
17:37:30 <oklopol> Phantom_Hoover: discrete math is not really done that much in unis
17:38:01 <oklopol> but it has strong connections with analysis
17:38:21 <oklopol> so depends on your view really, the way i've done it and seen it done it's definitely discrete
17:38:25 -!- Taneb has left.
17:39:05 <oklopol> Phantom_Hoover: well afaiu people get serious boners having planar graphs w.r.t. different topological spaces and shit like this
17:39:38 <oklopol> i don't know much about it, but someone here once said graph theory is just algebraic topology
17:40:58 -!- Nisstyre has quit (Ping timeout: 258 seconds).
17:41:44 <oklopol> and for instance symbolic dynamics, which is very discrete, is originally a tool for handling dynamical systems in general; dynamical system = topological space and a finite set of continuous functions on it (transformations say), mapping points around in some fun way, symbolic dynamics splits that space into a finite partition and considers the symbolic sequences obtained by taking one partition element and seeing on top of which partition elements it
17:42:08 -!- Nisstyre has joined.
17:42:45 <oklopol> and the discrete branch symbolic dynamics has given linear algebra one rather big number theoretical type result, and linear algebra is the most important tool in symbolic dynamics; so again strong connections.
17:43:01 <oklopol> (linear algebra is not at all discrete, since it starts with the reals :-))
17:47:48 <oklopol> also graph theory has connections with linear algebra probably since symbolic dynamics mostly studies SFTs and sofic systems, which on the other hand are just sets of possible paths in a finite graph.
17:48:00 <oklopol> and i assume graph theory also cares about such paths
17:48:12 <oklopol> also you prolly ask different kinds of questions
18:04:16 -!- Taneb has joined.
18:10:59 <Taneb> Gonna switch clients
18:11:18 -!- Taneb has left.
18:11:54 -!- Taneb has joined.
18:19:40 <Taneb> had Duck Madras for dinner
18:22:22 <oklopol> today i shall use the common kitchen.
18:22:56 <oklopol> i seriously hope no one comes there while i'm "cooking"
18:29:16 -!- GuestIceKovu has changed nick to Slereah.
18:32:12 <Taneb> No more double redirects!
18:32:14 -!- zzo38 has joined.
18:34:02 <Taneb> Incidentally, Numberwang is tied fourth page for most categories
18:39:39 <Sgeo> What does "12! 4.4! 92! 10! 49.8! 2! 2! 2!" do?
18:39:55 <monqy> depends on where it's used
18:40:08 <Taneb> When more than where
18:40:27 <Sgeo> Wait, wouldn't 12 just run 3 which runs that program...?
18:41:00 <Sgeo> " its position in the program, and the step number is calculated."
18:41:08 <monqy> speaking of numberwang categories, how is it self-modifying?
18:41:23 <Taneb> I thought it was when I made the page
18:41:32 <Taneb> Misunderstood, been meaning to remove that
18:42:21 <monqy> also for usability unknown, I'd say it's unusable for programming
18:43:25 <Taneb> It's actually quite easy to write a Hello World program
18:43:31 <Taneb> Just nobody's bothered
18:44:04 <Sgeo> Does a quine exist, or is that weird exception in play?
18:44:20 <Taneb> A quine probably exists
18:45:04 <Sgeo> Phantom_Hoover, something about not being able to do arbitrary outputs at arbitrary points
18:45:25 <Phantom_Hoover> Sgeo, are you confusing this with arbitrary effect at an arbitrary point?
18:46:40 <Taneb> I reckon the shortest possible quine in Numberwang, excluding the null program, would abuse the numberwang operation a lot
18:46:49 <Phantom_Hoover> Sgeo, if arbitrary ASCII output isn't allowed, then yes, a quine is impossible.
18:47:37 <Taneb> Output is bit-by-bit
18:48:01 <Sgeo> What if arbitrary ASCII output is possible, but requires something difficult, like brute-forcing a hash
18:48:20 * Sgeo wonders how that would work as a language
18:48:27 <Sgeo> Besides the boring trivial way
18:48:30 <Taneb> Make it and see, Sgeo
18:49:08 <Sgeo> Not boring way: Output commands are collected then hashed and the hash is displayed as output
18:49:38 <Sgeo> Wait, does every possible SHA-1 hash (or maybe MD5, not sure which to go with) have at least one corresponding input?
18:52:06 <Taneb> I honestly have no idea
18:53:22 <ais523> it's probably impossible to tell
18:53:30 <ais523> or as hard as reversing every hash
18:54:01 <Sgeo> BF derivates are boring, but I'm too uncreative to come up with another ... underlying structure for what is essentially only an idea for how to do output
18:54:30 <Sgeo> ais523, so, that would make it unknown whether a quine exists, or whether cat programs are possible.
18:54:39 <ais523> nowadays, I favour the idea of "incremented ASCII" for output, you output, say, 11 for newline or 33 for space
18:54:43 <ais523> because then you can have EOF=0 without a clash
18:55:13 <Sgeo> For output? Isn't input what that's more necessary for?
18:55:25 <ais523> but it should be symmetrical
18:57:48 <Sgeo> When I finish this Doctor Who series, I'll write up my BF derivative
18:57:58 <Sgeo> Although I do agree that BF derivatives suck
18:58:18 <Sgeo> I'm too boring for anything else .... ooh, hash-reversing-based computation too?
18:58:36 <Sgeo> So that whether it's TC or not is dependent on whether there's a reverse for every hash
18:58:58 <Sgeo> ...why do I have a feeling others have done this before, except with other "unknown" questions?
19:00:02 <monqy> oozlybub and murphy
19:01:40 <zzo38> Another way of EOF=0 without clash is if you have more than 8-bits numbers you can make it so that 256 means output 0 byte, 1 or 257 means output 1 byte, etc. It can be used for input, too. There might also be other possibilities.
19:04:37 -!- oerjan has joined.
19:09:00 <Taneb> Writing a Hello World program in Numberwang
19:11:24 <oerjan> actually if you don't do any jumping you don't need to be that careful with phases, i think
19:12:00 <oerjan> but maybe you are using jumps
19:13:09 <oerjan> i'm just thinking that the beginning of the program is also the perfect spot to put a 3! command if you want to enter that easy row in my table
19:13:31 <oerjan> because then the step number will be 1 when entering the subprogram
19:14:07 <Taneb> Program starts with 3! now
19:14:17 <Taneb> And I've got moon chavs in my head
19:15:22 <Taneb> About a feature of the British population
19:15:27 <Taneb> The lowest of the low
19:17:31 <Taneb> And the safe numberwang flips the cell after where you start and the one after that
19:17:43 <Taneb> And ends up in the one after the one where you start
19:17:56 <Taneb> So if you begin with [0...]
19:18:14 <Taneb> You end up with [0,1,1] with the current cell as the first "1"
19:18:23 <oerjan> ...0..., iirc it's two-sided?
19:18:49 <Taneb> But you can ignore that
19:18:52 <oklopol> ...are you talking about bi-infinite sequences over a finite alphabet?
19:19:18 <oerjan> oklopol: over {0,1} yes, since that's what a numberwang tape is
19:19:20 -!- Nisstyre has quit (Ping timeout: 264 seconds).
19:20:11 <Taneb> Imagine writing a quine in Numberwang
19:20:31 <oerjan> and the next command after the 3! will have the _same_ step number (mod 9), but of course incremented position
19:20:52 <oerjan> Taneb: heh, that should be possible
19:21:01 <oklopol> Phantom_Hoover: i just expanded it into its little known second origin
19:22:10 <oerjan> well verbose, for sure
19:22:57 <Taneb> I think the shortest would use the numberwang operator in various imaginitive ways
19:24:05 <Taneb> ...This would be a lot easier if the Numberwang operator's program was 1 number shorter
19:24:28 <Taneb> I'm confusing myself
19:24:59 <oerjan> a _bit_ easier, since you could then put several 3!'s in a row, but you would have to get lucky with which bits you needed
19:26:09 <oerjan> since it's just 1 too long for that, you'll need some padding. oh hm.
19:26:36 <oerjan> 4 commands of padding, i think
19:26:51 <oerjan> which can be a nop if it fits
19:27:19 <Taneb> Hang on, wait a mo
19:27:38 <Taneb> The Numberwang sub-program has a length of 8
19:27:56 <Taneb> The corresponding commend has a length of 1
19:28:14 <Taneb> Which retains mod-nine-ness
19:28:15 <oerjan> yep, so the step number will be back to the same for the next main command
19:28:23 <oerjan> but the position will be incremented
19:29:15 <Taneb> "Hello, World!" actually starts 3! 2! 1!
19:29:51 <oerjan> and 4 padding commands will increment the sum of step and position by 8
19:30:20 <oerjan> getting back in phase for another 3!
19:32:49 <oerjan> Taneb: um with 3! 2! that 2! will enter the numberwang program again right, but not at the easy row i think...
19:33:34 <Taneb> It would, because the two will change the step counter from 9 to 10
19:34:28 <Phantom_Hoover> Oh my god he's going to god tier isn't he IT'S ALL TRUE
19:34:32 <oerjan> Taneb: but the position is 1 now...
19:34:52 <Taneb> Subprogram has its own position
19:36:44 <oerjan> hm that means that you need 9 commands of padding to get back to the right step number if you need to change the bit
19:38:09 <oerjan> ideally you'd want to set up the bits so that is rarely necessary
19:46:17 <Taneb> 3!2!1!0! handily outputs the first four bits
19:49:58 -!- pikhq_ has joined.
19:51:19 <oerjan> <Taneb> Well, I'm not going to learn Haskell just yet <-- AAAAAAWWWWW
19:52:01 -!- Nisstyre has joined.
19:52:25 -!- pikhq has quit (Ping timeout: 260 seconds).
19:52:43 <itidus20> i used to know a haskell coder on yahoo.. before i left yahoo
19:53:13 <oklopol> so recall yesterday or a year ago or whatever anyway i told ya i decided to eat my pizza and found that i had already eaten it.
19:54:18 <itidus20> i find that assumptions really come to life when it comes to "who did this?"
19:54:29 <itidus20> "I can't find it" "someone must have stolen it"
19:55:28 <oerjan> !haskell do let {x = 1}; x+2
19:55:55 <oerjan> !haskell main = print $ do let {x = 1}; x+2
19:55:55 <itidus20> to assume that someone can be described by a rule without exception... is to assume they are omnipotent
19:56:10 <itidus20> it's a difficult idea to break if you have it in your head
19:56:30 <oklopol> but if you don't deduce things and make associations, you are a stone
19:56:45 <oerjan> apparently they relaxed the typing of do expressions somewhere been EgoBot's and lambdabot's haskell versions
19:57:16 <itidus20> prescribing omnipotence to someone causes a lot of problems
19:57:24 <oerjan> presumably to make that rebindable syntax stuff work better
19:57:47 <itidus20> like, in other words, you can't model a human as a discrete system. maybe noone else does something that dumb
19:58:11 <monqy> 12:56:24 < itidus20> to assume that someone can be described by a rule without exception... is to assume they are omnipotent
19:58:37 <oerjan> > let a >>= f = f a + 1 in do x <- 3; 2*x
19:58:38 <lambdabot> No instances for (GHC.Num.Num (m (m b)), GHC.Num.Num (m b))
19:58:39 <oklopol> for instance stones are omnipotent, as they don't do anything, without exception
19:58:43 <itidus20> there is no rule which applies to someone all of the time
19:58:51 <monqy> I'm human. all the time.
19:58:55 <oerjan> heh that was a bit too much to hope for
19:59:02 <monqy> how about tautologies
19:59:08 <itidus20> monqy, but what is a human ( :-s )
19:59:27 <monqy> I'm alive except when I'm not
19:59:30 <itidus20> a human is a stage in evolution
19:59:38 <monqy> this is a rule now I'm omnipotent
20:00:19 <itidus20> well you admit that to be alive has an excetion ^_^;;
20:00:21 <monqy> I really don't get how you jumped from "follows a rule precisely" to "must be omnipotent"
20:01:00 <itidus20> applying my no true scotsman logic.
20:01:43 <itidus20> assuming a human behaves according to a rule, without exception, is to assume they are omnipotent
20:02:09 <pikhq_> itidus20: This presumes that obeying the rule requires omnipotence.
20:02:22 <pikhq_> Not all rules possess that property.
20:02:24 <itidus20> to obey a rule without exception does
20:02:41 <itidus20> pikhq, ok now this is getting interesting
20:02:56 <Phantom_Hoover> itidus20, allow that collections of rules are themselves rules.
20:03:08 <pikhq_> What if the rule is "Think while conscious"?
20:03:08 <Phantom_Hoover> Furthermore, allow that the set of possible exceptions is finite.
20:03:56 <Phantom_Hoover> Following a rule allowing for exceptions is therefore itself a rule.
20:03:57 <Taneb> I thought obeying a rule without exception means your not omnipotent
20:04:12 <pikhq_> Taneb: Not if you are doing so willfully.
20:04:30 <pikhq_> Taneb: Then, you can be omnipotent but willfully not exploiting it.
20:05:05 <itidus20> ok, a good example might be to say of a fighter that he never loses
20:05:26 <itidus20> if he truely never lost then he would be omnipotent
20:05:38 <monqy> 1) and this accounts for every case?
20:05:41 <monqy> 2) no it doesn't mean that
20:06:01 <oklopol> so you mean rules of the form "can do x"
20:06:42 <itidus20> so you could try to fight him but be guaranteed to lose
20:07:38 <pikhq_> itidus20: Not rules are such that obedience requires omnipotence, however. Ergo, your claim is false. :)
20:07:51 <pikhq_> Actually, that doesn't even require omnipotence.
20:08:02 <pikhq_> Just that he be stronger than everything else that fights.
20:08:31 <Sgeo> Maybe itidus20 isn't using omnipotence to mean what we think of as "omnipotence"?
20:08:34 <itidus20> if i was better at logic i probably wouldn't need to argue about such a thing
20:08:54 <oklopol> logic certainly makes you happy
20:08:54 <pikhq_> In which case his argument fails for inattentive use of vocabulary. :)
20:10:11 <oklopol> thinking in general is the way to happiness. only someone who does not spend all day thinking about whether life has any kind of point can truly get depressed.
20:10:34 <itidus20> something starts the thinking off though
20:10:47 <itidus20> it's like a scab forming in response to an injury
20:10:58 <Sgeo> oklopol, what? Are you saying chemical imbalances cannot occur in phlosophers?
20:11:50 <oklopol> added the "whether life has any kind of point" just to make sure
20:12:37 <monqy> sgeo the famously bad at responding appropriately to sarcasm bisexual
20:13:16 <Sgeo> I still don't get where this "Sgeo is famously bisexual" meme is coming from
20:13:22 <Taneb> I read that as Sgeo is famously bad at responding to "the sarcasm bisexual"
20:13:30 <itidus20> theres a quote i saw on a forum signature once about some yeast talking to some vinegar(i forget exactly what?) blissfully unaware that they were in the process of becoming bread
20:13:30 <oerjan> <itidus20> if i was better at logic i probably wouldn't need to argue about such a thing <-- applying logic to omnipotence probably does not work very well. perhaps for similar reasons to russell's paradox.
20:13:32 <Taneb> I was wondering, who's the sarcasm bisexual?
20:13:44 <oklopol> '<Sgeo> I still don't get where this "Sgeo is famously bisexual" meme is coming from' <<< classic Sgeo :D
20:14:05 <Sgeo> There's non-classic Sgeo?
20:14:20 <Sgeo> ^^Let me guess, that's more classic Sgeo
20:14:27 <Phantom_Hoover> I assumed it was that crystal-cola troll, but then I looked at the logs and crystal-cola said that stuff in response to famous bisexuals.
20:14:42 <oklopol> there's a list of famous bisexuals on wp
20:15:20 <Sgeo> Hmm, it occurs to me that I know someone who's bisexual who co-authored a chapter of a textbook
20:16:09 <oklopol> Taneb: obviously it would've been me in this case, since Sgeo was responding badly to my sarcasm
20:16:12 <Taneb> Nor have I co-authored a chapter of a textbook
20:16:49 <ais523> I accused oklopol of being openly heterosexual once
20:17:19 <oklopol> i believe i have disclosed my sexuality
20:17:37 <oklopol> there's even a quote about it
20:18:16 <oklopol> i guess for all intents and purposes i'm straight tho
20:19:01 <zzo38> For all intents and purposes **it usually doesn't matter** (I think)
20:19:32 <oklopol> obviously i mean intents and purposes where it does matter
20:19:35 <Taneb> Except for the purpose/intent of matchmaking
20:20:11 <Taneb> Willing sexmaking, in anycase
20:20:18 <zzo38> Yes, for those purposes it would matter.
20:20:53 <zzo38> But it doesn't matter for purpose of co-authoring a textbook.
20:21:37 <Sgeo> Unless the textbook involves personal sexual experiences. Which would be a really weird textbook.
20:21:51 <oklopol> haha this bubbly water thingie has added calcium and it says "scientifically proven to be a good source of calcium" on the bottle
20:22:30 <oklopol> i wonder if they actually made scientists test the added calcium was actually in there after the fact just to be able to add that :D
20:22:54 <Taneb> It's things like that why people don't trust science
20:23:55 -!- pikhq has joined.
20:24:26 <Taneb> You know what would be interesting?
20:24:39 <oklopol> what would be interesting?
20:24:40 <Taneb> A BCT interpreter in Dwarf Fortress
20:25:08 <zzo38> My DVI optimizer program works! Tell me if you have other suggestions related to such program.
20:26:13 <zzo38> Device Independent format
20:26:46 -!- pikhq_ has quit (Ping timeout: 240 seconds).
20:26:55 <pikhq> I think it's only really used as an intermediate form for TeX.
20:26:59 <oklopol> the most reliable latex output format on my system atm
20:27:18 <pikhq> To be fair, it *was* invented in the nasty old days before Postscript.
20:27:20 <zzo38> pikhq: It can be; the final format would be the printer's native format, such as PCL or whatever.
20:27:36 <oklopol> something wrong with pdf output and my ps viewer is horrible
20:27:38 <zzo38> PostScript and PDF is full of dumb things.
20:27:48 <pikhq> zzo38: The point is that the only things that really output it are TeX.
20:27:59 <zzo38> No, I make other programs that produce DVI files too.
20:28:06 <zzo38> And even groff can do so, I think.
20:28:24 <oklopol> why would anyone use anything other than tex/latex when you can use tex/latex
20:28:25 <zzo38> If I make any program for printing, DVI format is the format I use.
20:28:38 <pikhq> I find it very easy to forget that roff is used for anything but man pages. :)
20:29:12 <zzo38> oklopol: TeX is very good but sometimes you would need different kind of program for printing.
20:29:13 <oerjan> oklopol: because it's evil open sourcery. regards, microsoft.
20:32:55 <zzo38> Various things, including music, ANYTODVI, things not supported by TeX, and sometimes it is useful to just write a C program that directly produces print output. You might also convert other formats in some cases (not scanned documents though; I believe that is what DjVu is for).
20:32:57 -!- oklofok has joined.
20:33:27 <oklofok> <oklopol> zzo38: like what?
20:33:51 <ais523> oklofok: <zzo38> Various things, including music, ANYTODVI, things not supported by TeX, and sometimes it is useful to just write a C program that directly produces print output. You might also convert other formats in some cases (not scanned documents though; I believe that is what DjVu is for).
20:34:35 <zzo38> The server didn't recognize the disconnection
20:34:45 -!- oklopol has quit (Ping timeout: 264 seconds).
20:37:33 <zzo38> Cases that you might write other programs converting some format directly to DVI, such as ESC/P.
20:38:10 <zzo38> A few other people I have talked to agree that PostScript and PDF are full of dumb things, although one person preferred PCL.
20:40:10 <oklofok> well i don't really care, they all look the same on paper
20:40:24 <oklofok> and compilation time is roughly the same
20:42:01 <zzo38> Of course you can use what you want, and you can publish the book. However, PostScript and PDF can sometimes produce fuzzy output on paper (I have experienced this).
20:45:00 -!- foocraft has quit (Ping timeout: 250 seconds).
20:45:23 <zzo38> Of course they are all being converted to PCL, although the resulting PCL data can become different.
20:45:42 <oklofok> what do you mean being converted
20:46:36 <zzo38> I mean, you convert DVI or PostScript or PDF or whatever into PCL so that the printer can accept it.
20:51:32 -!- foocraft has joined.
20:59:45 -!- Guest87848 has changed nick to Gregor.
21:04:18 <Taneb> Goodnight everyone
21:04:42 -!- Taneb has quit (Quit: being forced to go to bed).
21:14:44 <Sgeo> Ok, one of the people in #jesus just called himself a prophet
21:15:33 <Sgeo> <> its my responsibility as a prophet to tell you what God wants me to
21:15:34 <Sgeo> <> rather then what you want to hear
21:15:47 <Sgeo> (name deleted due to this being a publically logged channel)
21:17:32 <olsner> Sgeo: is that sort of thing unusual for #jesus?
21:19:11 <ais523> there's one particular corner in Birmingham City Centre which is good for finding evangelists
21:19:27 <ais523> usually Christian; they're ranting too much to figure out the specific sort of Christianity they believe in
21:20:25 <Phantom_Hoover> Oh my god apparently the Catholic church is the New World Order I love this channel.
21:20:46 -!- elliott has joined.
21:25:01 <NihilistDandy> Did you show him Gödel's ontological proof and tell him why modal logic is bad?
21:25:03 -!- derrik has quit (Quit: bedtime).
21:27:40 <elliott> 16:54:52: <Phantom_Hoover> Loading package OpenGL-2.2.3.0 ... linking ... <interactive>: /usr/local/lib/GeomAlgLib-0.2.0/ghc-7.0.2/HSGeomAlgLib-0.2.0.o: unknown symbol `__stginit_ghczm7zi0zi2_Maybes_'
21:27:40 <elliott> 16:55:00: <Phantom_Hoover> What does that even mean??
21:27:40 <lambdabot> elliott: You have 2 new messages. '/msg lambdabot @messages' to read them.
21:27:44 <elliott> it means you have problems beyond you
21:28:33 <elliott> 16:56:07: <Taneb> Christopher Eccleston was the best of New Who.
21:28:33 <elliott> Man okay I love Eccleston and people who don't love Eccleston are bad but are you really saying he's better than Tennant.
21:29:31 <NihilistDandy> He just doesn't quite have the wrath down like Tennant did
21:29:45 <Sgeo> I've only seen two episodes of Eccleston, is that why I think he might not be the best?
21:29:49 <ais523> I don't like recent Doctor Who at all
21:29:51 <pikhq> Phantom_Hoover: The Catholic Church the *new* world order?
21:30:08 <itidus20> theres a dr who anime thing that someone made
21:30:10 <pikhq> Not the "Older than dirt world order"?
21:30:11 <ais523> elliott: since and including Eccleston, i.e. after the really long hiatus
21:30:18 <elliott> itidus20: i watched that, it was really really bad
21:30:41 <pikhq> That phrase, incidentally, is retarded.
21:30:53 <elliott> ais523: Ever seen Blink? Silence in the Library/Forest of the Dead? (OK yes River Song is in it but it was before she was an insufferable plot element.)
21:31:02 <pikhq> NihilistDandy: Yes.
21:31:06 <itidus20> elliot: if it was crap it's due to the style rather than the quality
21:31:08 <pikhq> NOVVS ORDO SECLORVM is "New Order of the Ages", people.
21:31:09 <Phantom_Hoover> pikhq, here, have the truth: http://www.scribd.com/fullscreen/48146280?access_key=key-191mra1tp1fxslz2rem8
21:31:10 <ais523> elliott: I don't think I've seen any of those
21:31:17 <ais523> I stopped watching it for religious reasons after a bit
21:31:21 <ais523> which is strange as I'm not religious
21:31:42 <elliott> ais523: You should; I don't know of anyone who thinks they aren't awesome, even non-Doctor Who-likers
21:31:51 <NihilistDandy> Though the Angels stop being scary after the first episode.
21:32:32 <elliott> NihilistDandy: yeah, but it took years for Moffat to ruin that.
21:32:52 <pikhq> Phantom_Hoover: Oh God the derp.
21:32:57 <NihilistDandy> I do think that Amy is my favorite companion so far, though
21:33:40 <Phantom_Hoover> I really, really want to find whoever paired her off with Mickey and kick them until they say sorry.
21:33:54 <elliott> I like all the companions, does that make me bad? Well, Rose was a bit annoying, but not THAT annoying.
21:34:12 <NihilistDandy> I can't put my finger on what put me off about Martha, so it's probably latent racism.~
21:34:36 <elliott> Phantom_Hoover: wow, wait, that was a thing that happened? Like Rose Mickey?
21:34:37 <NihilistDandy> Or it could just be her accent and that I found her uninteresting until the last few episodes
21:34:53 <elliott> Phantom_Hoover: It's because of that Associates of Doctor Who Social Club.
21:35:03 <Phantom_Hoover> But what makes me *angry* about it is that she was already engaged when we last saw her.
21:35:15 <elliott> But that would involve hiring a new actor.
21:35:36 <elliott> `addquote <NihilistDandy> MY CONTINUITY <NihilistDandy> MY FANFICTION <NihilistDandy> RUINED
21:35:38 <HackEgo> 509) <NihilistDandy> MY CONTINUITY <NihilistDandy> MY FANFICTION <NihilistDandy> RUINED
21:36:12 <oerjan> <elliott> 16:54:52: <Phantom_Hoover> [...] unknown symbol `__stginit_ghczm7zi0zi2_Maybes_' <-- stginit stuff is part of the ghc runtime system, i think. maybe something has not been linked properly, or there is version incompatibility?
21:36:23 <elliott> oerjan: yeah, like I said: problems beyond your reach
21:36:30 <elliott> Reinstall GHC, compile everything again, hope it doesn't break
21:36:32 <Phantom_Hoover> It's the fact that they cared about her character so little that they completely ignored the development that had been set up.
21:36:41 <elliott> Phantom_Hoover: Theory: It was a different Martha.
21:37:20 <elliott> Phantom_Hoover: Was The End of Time really really awesome, or am I just imagining that memory?
21:37:31 <elliott> OK but now back to the on-topic activity of logreading.
21:37:36 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:38:27 <Phantom_Hoover> It was pretty terrible from a characterisation and plot standpoint, but from a "stuff blows up" standpoint it was pretty good.
21:38:48 <elliott> 18:48:01: <Sgeo> What if arbitrary ASCII output is possible, but requires something difficult, like brute-forcing a hash
21:38:49 <elliott> You can't brute-force a hash, not really
21:38:59 <elliott> I mean, as an output mechanism that doesn't work, at least any way I can think of
21:39:08 <elliott> Because every hash has aleph-null strings
21:39:13 <Phantom_Hoover> I really liked Human Nature/The Family of Blood, but I can't see anyone else who did.
21:39:23 <olsner> hmm, I seem to have missed the End of Time
21:40:46 <elliott> 18:49:38: <Sgeo> Wait, does every possible SHA-1 hash (or maybe MD5, not sure which to go with) have at least one corresponding input?
21:40:58 <elliott> sounds like an insanely difficult thing to prove, too
21:41:04 <elliott> 18:53:22: <ais523> it's probably impossible to tell
21:41:05 <elliott> 18:53:30: <ais523> or as hard as reversing every hash
21:41:12 <Phantom_Hoover> <elliott> 18:48:01: <Sgeo> What if arbitrary ASCII output is possible, but requires something difficult, like brute-forcing a hash
21:41:15 <elliott> ais523: come now, this is mathematics, you can prove theorems in ways other than brute froce.
21:41:29 <Phantom_Hoover> I think he just means that the output instruction outputs a hash.
21:41:31 <ais523> elliott: indeed; it's just that hashes are designed specifically to try to stop people proving things about them
21:41:43 <elliott> 18:54:39: <ais523> nowadays, I favour the idea of "incremented ASCII" for output, you output, say, 11 for newline or 33 for space
21:41:43 <elliott> 18:54:43: <ais523> because then you can have EOF=0 without a clash
21:41:43 <elliott> 18:55:21: <ais523> well, yes
21:41:43 <elliott> 18:55:25: <ais523> but it should be symmetrical
21:41:48 <elliott> ais523: outputting 0 should close stdout :)
21:41:54 <Phantom_Hoover> So if you want to output x, you need to work out y such that hash(y) = x.
21:45:20 <elliott> ais523: are true and false one and zero in underlambda?
21:45:33 <ais523> well, the Church numerals for those
21:45:57 <Sgeo> Phantom_Hoover, yes, output instruction ouutputitng a hash is what I'm thinking of
21:46:06 <Sgeo> Or at least, fits what I want, and I did think of
21:46:09 <elliott> ais523: how easy is it to write the function "0 ==> 0; x > 0 ==> 1" where x is guaranteed to be a church numeral?
21:46:22 -!- elliott has left ("Leaving").
21:46:26 -!- elliott has joined.
21:46:35 <elliott> Sgeo: can't output strings whose length is not a certain multiple
21:46:52 <elliott> Phantom_Hoover: in underlambda
21:47:04 <elliott> Sgeo: you could omit trailing zeroes from the output but then you couldn't end output with zeroes
21:47:49 <Phantom_Hoover> FFS Haskell, why do you need to make it so hard to extract items from a tuple.
21:48:01 <lambdabot> Data.Typeable typeOf3 :: Typeable3 t => t a b c -> TypeRep
21:48:02 <lambdabot> Data.Typeable typeOf2Default :: (Typeable3 t, Typeable a) => t a b c -> TypeRep
21:48:07 <elliott> Phantom_Hoover: Don't use three-tuples.
21:48:12 <elliott> And also, use pattern matching.
21:48:24 <monqy> use template haskell
21:48:24 <elliott> Phantom_Hoover: Show your code.
21:48:25 <olsner> haskell only supports tuples up to the size of 2
21:48:34 <elliott> Phantom_Hoover: Show your code.Phantom_Hoover: Show your code.
21:48:36 <elliott> Phantom_Hoover: Show your code.Phantom_Hoover: Show your code.Phantom_Hoover: Show your code.
21:48:44 -!- copumpkin has changed nick to bob_loblaw.
21:48:54 <elliott> Phantom_Hoover: Your code.
21:48:55 <Sgeo> elliott, easy to work around
21:48:57 <elliott> The code you are trying to extract.
21:49:45 <elliott> Phantom_Hoover: Then why are you complaining about a function being missing?
21:49:47 <Sgeo> Make last byte indicate .. no, make first byte indicate... hm
21:49:50 <elliott> Are you trying to use it imaginarily?
21:50:05 <elliott> Sgeo: make the first byte indicate how many bytes of the rest of the hash to output minus one
21:50:09 <elliott> (so that 0 prints one byte)
21:50:10 <Phantom_Hoover> I'm trying to work out how this library's data structures work.
21:50:18 <elliott> Sgeo: assuming hashes are less than two hundred something bytes that should work fine
21:50:24 -!- bob_loblaw has changed nick to copumpkin.
21:50:39 <elliott> Sgeo: if it specifies a length longer than the hash, either: - cut out the rest; - make that invalid; - or fix the hash length so that it's exactly two hundred and fifty six bytes long
21:50:54 <elliott> `addquote <itidus20> to assume that someone can be described by a rule without exception... is to assume they are omnipotent <oklopol> for instance stones are omnipotent, as they don't do anything, without exception
21:50:56 <HackEgo> 510) <itidus20> to assume that someone can be described by a rule without exception... is to assume they are omnipotent <oklopol> for instance stones are omnipotent, as they don't do anything, without exception
21:51:17 <monqy> you got to that bit?
21:52:03 <olsner> oh, was there a good bit? I haven't been following #esoteric today
21:52:22 <oklofok> olsner: we were comparing penis lengths and shit as usual
21:52:39 <itidus20> ok heres a useful example of what i had in mind
21:53:03 <itidus20> "Any monitor made by ???? company will be reliable."
21:53:24 <oklofok> didn't you already explain by a rule you meant a capability to solve certain kinds of problems
21:53:33 <elliott> itidus20: do you mean omniscient, not omnipotent?
21:53:57 <Sgeo> elliott, I like River Song
21:54:43 <itidus20> I mean that seeing reality as rules _without having a capacity to be flexible on those rules_ leads to abundant errors assumptions and misconceptions.
21:55:17 <monqy> itidus20: i.e. omnipotence?
21:56:25 <itidus20> someone showed me an image before which brings a great example to mind
21:56:31 <NihilistDandy> itidus20: You just need more precisely defined rules :D
21:56:33 <monqy> itidus20: what about when those rules are provably correct?
21:56:40 <elliott> 20:11:20: <Phantom_Hoover> Sgeo, it's incredibly obvious sarcasm.
21:56:40 <elliott> 20:11:30: <oklopol> i hoped it was
21:56:40 <elliott> 20:11:50: <oklopol> added the "whether life has any kind of point" just to make sure
21:56:40 <elliott> 20:12:28: <oklopol> i forgive you
21:56:49 <itidus20> "The Titanic is unsinkable." "I believe you bro."
21:56:54 <elliott> itidus20: "All integers are either negative or positive."
21:56:59 <elliott> itidus20: are the integers omnipotent
21:57:00 <monqy> "the titanic is sinkable" "oh man omnipotence"
21:57:19 <Phantom_Hoover> .......................................................................................................
21:57:24 <elliott> monqy: he's saying that the only way for the titanic to be not-sunk in all possible universes is for the titanic to be able to meld reality itself so that this does not happen
21:57:37 <elliott> monqy: which is sort of reasonable enough, in that it basically has to override physics
21:57:50 <elliott> monqy: and the only way to do that without contradicting the laws of physics is to stop all world-states where it sinks from happening
21:57:53 <elliott> i.e. be "omnipotent" in a sense
21:58:06 <elliott> it clearly doesn't apply to tautological statements, i.e. anything mathematical.
21:58:12 <elliott> Phantom_Hoover: that's a tautology
21:58:19 <oklofok> meld? now you're just making up words.
21:58:29 <NihilistDandy> By contrast, I can say with mathematical certitude that there exists at least one possible universe where the Titanic sank
21:58:34 <elliott> it's true that non-tautological statements (i.e. statements that can be false in a possible world) cannot be guaranteed to be true without some sort of filtering of states being done
21:58:51 <elliott> i guess it's not really clear how omnipotence comes in because like
21:59:01 <elliott> there is only one world that actually happens, and infinite possible worlds
21:59:06 <elliott> and you can't change the possible worlds
21:59:13 <elliott> so i dunno, i guess it just gives you great luck
21:59:18 <elliott> the integers aren't omnipotent
21:59:39 <oklofok> that's an excellent point to make.
21:59:45 <NihilistDandy> Though that'd make a great next step in the vein of Flat(ter)land
21:59:52 <itidus20> I don't want to rush things too much, but my intended focus was that qualities other than unsinkability can be applied to humans and their behavior.
22:00:04 <elliott> i'm sure we can all agree on that.
22:00:13 <elliott> there's a lot of "the integers are god" type sentiment
22:00:27 <elliott> but then so is the set {{}}, because all of its elements are {} :/
22:00:29 <zzo38> Or else "the natural numbers are god" if you prefer that.
22:00:36 <elliott> all mathematical objects are omnipotent
22:00:39 <elliott> i like this itidus20 i like it
22:00:55 <elliott> 20:14:27: <Phantom_Hoover> I assumed it was that crystal-cola troll, but then I looked at the logs and crystal-cola said that stuff in response to famous bisexuals.
22:01:07 <elliott> Phantom_Hoover: Come on, you don't have to belittle fax by pretending you don't know who e is.
22:01:10 <NihilistDandy> Let's go tell #math that we've proved the existence of god
22:01:41 -!- pikhq has quit (Ping timeout: 240 seconds).
22:01:43 <elliott> I don't think fax is even intentionally a troll, e's just... really bad at this social interaction stuff.
22:01:55 -!- pikhq has joined.
22:02:01 * itidus20 is glad that something he said meant something to someone else.
22:02:24 <elliott> Phantom_Hoover: A daring one who would be sure of fax's gender after all this time :-P
22:02:25 <oklofok> god created the natural numbers, the rationals were done by man and the work was finally completed (topologically) by satan himself
22:02:33 <elliott> It was just... really bad and obvious trolling.
22:02:38 <elliott> `addquote <oklofok> god created the natural numbers, the rationals were done by man and the work was finally completed (topologically) by satan himself
22:02:39 <HackEgo> 511) <oklofok> god created the natural numbers, the rationals were done by man and the work was finally completed (topologically) by satan himself
22:03:36 <elliott> 20:21:37: <Sgeo> Unless the textbook involves personal sexual experiences. Which would be a really weird textbook.
22:03:41 <elliott> the sgeo guide to calculus
22:04:22 <itidus20> does any point conform to a line?
22:05:01 <oerjan> <elliott> ais523: how easy is it to write the function "0 ==> 0; x > 0 ==> 1" where x is guaranteed to be a church numeral? <-- it's easy enough in underload at least. lessee, (!())~^(!())~^ i think
22:05:23 <itidus20> well, i think its useful to think of a rule as a line
22:05:27 <elliott> oerjan: yes but underlambda has all these fancy things :D
22:05:33 <ais523> elliott: it's very easy, you basically, just do (0 to the power of (0 to the power of n))
22:05:37 <Sgeo> Phantom_Hoover, on the relevancy or lack thereof of sexual orientation in writing textbooks
22:05:38 <ais523> which is what oerjan's code above does
22:05:59 <ais523> and 0 to the n is generally useful enough that it'll be a single character in Underlambda
22:05:59 <itidus20> an object cannot stay on a line forever
22:06:06 <ais523> itidus20: what if it's a point?
22:06:07 <elliott> ais523: fair enough; I think your incremented IO formulation is better if you say "false" than 0; it seems less arbitrary
22:06:12 <NihilistDandy> Sgeo: Homosexuals are better at computer science, heterosexuals are better at analysis?
22:06:12 <elliott> although fails to explain why you need to increment, I suppose
22:06:17 <ais523> elliott: but then you have more than one type of true
22:06:21 <elliott> ais523: I was just wondering how easy it was to write a "if non-zero" in Underlambda
22:06:26 <oklofok> "<Phantom_Hoover> oklofok was writing a textbook, wasn't he." <<< xD
22:06:26 <itidus20> I should very carefully state that my math is the lowest in the room.
22:06:32 <elliott> Fails on non-Smith numerals right?
22:06:39 <elliott> itidus20: but Sgeo is in here?
22:06:45 <oklofok> i write math in a pretty boring way usually actually
22:06:48 <Sgeo> elliott, is my math really that bad?
22:06:52 <elliott> ais523: Underload numerals aren't Church numerals, they would need an extra caret after it
22:06:57 <elliott> Sgeo: no, i'm just being snarky :)
22:06:58 <itidus20> elliot: I'm serious.. I am not a math guy
22:06:58 <oklofok> you don't need to spice it up
22:07:15 <Phantom_Hoover> You're actually *scared* of it, rather than incompetent.
22:07:17 <elliott> ais523: So I gave oerjan the task of renaming them and now you have an eponymous numeral representation :-P
22:07:20 <itidus20> ais523: perhaps no object is a point
22:07:40 <elliott> But yeah, I think that only works on Smith numerals, which is fine ofc when you're dealing with streams
22:07:54 * Sgeo doesn't want to think of himself as scared of math
22:07:55 <elliott> ais523: hmm, it would be nice if you could generalise "incrementing" to arbitrary quotations... feels gross to have all streams forced to use integers
22:07:57 <itidus20> 3 objects will eventually lose synch from a line
22:08:01 <ais523> elliott: what else would you want it to work on?
22:08:01 <Sgeo> I consider myself to like math :(
22:08:02 <monqy> Phantom_Hoover, itidus20: but then they'd be omnipotent
22:08:05 <ais523> you can't do it on arbitrary functions
22:08:12 <ais523> without being able to solve the halting problem
22:08:14 <elliott> ais523: so you could map a stream of (x :: X)s to false and f(x) for some f
22:08:30 <elliott> ais523: just wrap the quotation somehow
22:08:36 <elliott> in a way that makes it distinguishable from 0
22:08:41 <itidus20> no 3 objects in the universe will stay in line forever (but this is just using the impermenance rule :-s )
22:08:45 <Phantom_Hoover> You've repeatedly said you don't like formal science because of the maths.
22:08:55 <ais523> elliott: you mean boxing objects into a standard form and tagging them to say what they are?
22:08:59 <ais523> but that's what Feather does
22:09:06 <NihilistDandy> Phantom_Hoover: Not that I would call a lot of what the formal sciences do "math" :D
22:09:10 <itidus20> buddha gotama's rule that everything comes to an end
22:09:20 <NihilistDandy> Phantom_Hoover: But at least they beat the social sciences
22:09:22 <elliott> ais523: I'm just saying that anything that can only handle integers sucks :P
22:09:26 <ais523> and is overcomplicated for Underlambda
22:09:28 <itidus20> then again my mentor told me buddha wasn't that great at math
22:09:32 <ais523> you could make it handle, say, strings too
22:09:33 <Phantom_Hoover> NihilistDandy, physics is completely mathematically modelled.
22:09:46 <elliott> NihilistDandy: Now now, Phantom_Hoover's literal hate of anyone who does a soft science is bad enough.
22:09:49 <oerjan> <NihilistDandy> By contrast, I can say with mathematical certitude that there exists at least one possible universe where the Titanic sank <-- rubbish, it was a coverup and it was really abducted by aliens
22:09:51 <ais523> has itidus20 misinterpreted what the channel's about?
22:09:53 <Phantom_Hoover> <elliott> NihilistDandy: Now now, Phantom_Hoover's literal hate of anyone who does a soft science is bad enough.
22:09:54 <Sgeo> I don't think I like my math getting mixed up with practicality. Also, I need paper or a paper like thing, it's been a while
22:10:10 <itidus20> I thought it was about esoteric programming languages.
22:10:32 <elliott> Phantom "Kate Beaton is literally the only humanities major I respect" Hoover
22:10:36 <oklofok> "<Sgeo> I don't think I like my math getting mixed up with practicality." <<< seconded
22:11:13 <elliott> Phantom_Hoover: Define:sarcasm on my original statement
22:11:18 <oerjan> <elliott> there's a lot of "the integers are god" type sentiment <-- a kroneckal mistake
22:11:49 <elliott> NihilistDandy isn't used to oerjan's puns by now? :D
22:11:57 <itidus20> it said that math mixed with practicality is not popular
22:12:10 <NihilistDandy> elliott: Usually I am, but sometimes... sometimes I get blindsided
22:12:16 <monqy> it's popular amongst bad people
22:13:14 <itidus20> So, my mom believes that the brand-name of a food in a supermarket tells her information about the food. It is something I have to slowly educate her about
22:13:26 <NihilistDandy> itidus20: Math is about pi and the Fibonacci sequence, obviously. The way people go on about differentiable manifolds and assembly maps, you'd think they were somehow conceptally different from those foundations.
22:13:57 <ais523> itidus20: oh dear, you might be in a competition with Sgeo for misinformed parents there
22:14:08 <ais523> but at least your response to the situation is a sane one
22:14:14 <elliott> itidus20: like what information
22:14:22 <oerjan> <elliott> the sgeo guide to calculus <-- you've never seen curves so smooth
22:14:31 <ais523> NihilistDandy: I don't know, my mind blotted it out to save me from the stupid
22:14:37 <ais523> I'm sure other people here can remember, though
22:14:37 <itidus20> that the brandnamed one is inherently superior
22:15:05 <pikhq> Probably the stupidest bit is that he's studying at a school without a CS program.
22:15:12 <pikhq> At his father's suggestion.
22:15:17 <itidus20> She also believes things that are written on the packaging like fat-free.. or approved by such and such a foundation
22:15:37 <pikhq> NihilistDandy: He's getting some sort of IT degree.
22:15:48 <ais523> Phantom_Hoover: no, well only indirectly, and not someone here
22:15:50 <pikhq> NihilistDandy: Which requires more *business* classes than math.
22:15:54 <elliott> Phantom_Hoover: ais523 hides his scheming plots behind a veneer of objectivity.
22:15:56 <elliott> RUN WHILE YOU STILL HAVE A CHANCE
22:16:06 <NihilistDandy> pikhq: I used to be in that situation. My mother thought I was doing CS. I had to explain to her that she was wrong and possibly broken
22:16:12 <ais523> can't I be objective /and/ insult people?
22:16:15 <oklofok> ais has also taken a lot of business stuff
22:16:25 <itidus20> My dad used to explain that the company gets paid a fortune to put their foundation's logo on the food and that, foods without the logo could potentially pass the standards to have the logo.
22:16:30 <ais523> oklofok: I'm having trouble parsing your sentence
22:16:32 <elliott> NihilistDandy: "wrong and possibly broken" X-D
22:16:34 <NihilistDandy> Phantom_Hoover: Information Security and Forensics, they called it
22:16:37 <pikhq> oklofok: Calc I is the highest math class he is required to take.
22:16:42 <ais523> or at least, resolving the words in it into possible meanings for those words
22:17:04 <pikhq> He could fulfill the programming requirements with Visual Basic.
22:17:07 <NihilistDandy> It was at RIT, though, so it's not like it was some nonsense program
22:17:59 <oerjan> <elliott> ais523: So I gave oerjan the task of renaming them and now you have an eponymous numeral representation :-P <-- wait i recall there was a discussion, but i don't recall that i was the one who suggested naming them after ais523
22:18:23 <elliott> oerjan: you did, after the
22:18:26 <NihilistDandy> Phantom_Hoover: Now I'm doing CS and pure math at UVM. Much happier :)
22:19:14 <ais523> itidus20: I can believe that
22:19:25 <oerjan> itidus20: that any two points lie on a unique common line is one of the famous ancient greek axioms of geometry. or was that postulate.
22:19:41 <ais523> in electronics, multimetres cost about ten times as much if they've actually been measured to make sure they measure correctly
22:19:47 <ais523> even though it's the same both way s round
22:19:49 <NihilistDandy> elliott: My mother thought (until I corrected her) that "computer science" was what gave me insight in to how to fix her computer problems
22:20:07 <elliott> NihilistDandy: I would like to say that "computing theorist" would solve this problem, but it probably wouldn't :P
22:20:20 <ais523> NihilistDandy: my mother came to me in a panic today, because she'd tried to turn a computer off and put it into standby instead, and in the meantime removed a USB stick containing a document she was editing
22:20:43 <elliott> I will never cease to be amazed at how much distress computers can cause unsavvy people
22:20:58 <elliott> I wonder if we could sue major software manufacturers for the grief? :P
22:21:03 <NihilistDandy> I will never cease to be amazed how much distress they cause the savviest people
22:21:10 <ais523> and was then terrified at the save-as dialog
22:21:19 <ais523> when we told her that was probably the best option
22:21:38 <oklofok> "<ais523> oklofok: I'm having trouble parsing your sentence" <<< you, as well, have taken many business type of thing classes.
22:21:48 <NihilistDandy> ais523: Your mother is the most adorably strange woman I've ever heard of
22:21:53 <ais523> two a year for four years, and that was far too many
22:22:03 <elliott> NihilistDandy: sounds like a normal non-savvy person to me
22:22:03 <ais523> NihilistDandy: not really, most computer users are much worse
22:22:12 <ais523> you can cause complete havoc by rearranging icons on most people's desktops
22:22:16 <elliott> Windows power users, as insane as some of the things they do are, do seem to be rather happy with computers
22:22:19 <ais523> (where by most, I just mean >50%, not ~99%)
22:22:20 <elliott> Mostly because they're sure of everything
22:22:44 <ais523> elliott: it was such a relief to me when I moved to Linux and no longer had to understand Windows
22:22:55 <ais523> it's a moving target, even though I understood it once I no longer do
22:22:55 <NihilistDandy> I just make sure I can do everything I need to do daily on the big three platforms, and that I know some neat tricks for certain things on each one
22:23:02 <elliott> I know that computers cause me a lot of grief :/
22:23:03 <ais523> (I used to write Win16 software for fun)
22:23:09 <elliott> Sometimes I wonder if it's worth it
22:23:14 <elliott> Probably not, but it's what I'm good at
22:23:41 <ais523> elliott: how long did it take you to work out what File | Save As did?
22:23:49 <ais523> I know I didn't work it out immediately, although it was quite fast
22:23:52 <olsner> is there any way we can use our computer-related skills without actual computers?
22:24:04 <elliott> ais523: I don't have any recollection of doing so; I started using Windows when I was three years old
22:24:09 <ais523> olsner: programming skill works offline
22:24:17 <elliott> ais523: I have no idea how I learned to type, either
22:24:29 <ais523> elliott: heh, I was taught to type formally
22:24:32 <elliott> I have a suspicious feeling that it may be almost as ingrained as my knowledge of English
22:24:36 <NihilistDandy> Sometimes I think I should hang up my null pointers and start a farm in Nebraska. Then I remember that the horror of being constantly surrounded by sunlight and shit is what got me into computer science in the first place and, well...
22:24:39 <ais523> then ignored all that and taught myself how to do it without jamming fingers on the home row
22:24:45 <elliott> I'm still really slow at using most GUIs though :/
22:24:54 <elliott> Well, not really, but quite
22:25:09 <elliott> I see a lot of videos where people move the mouse at record speed clicking menus and the like without even pausing
22:25:32 <ais523> elliott: I used to be able to do that, with an actual physical mouse
22:26:43 <olsner> hmm, I think I must've learned about "save as" in text mode guis, e.g. quickbasic
22:26:50 <NihilistDandy> My first computer was an Apple, of some sort. Back when things were still really NeXTSteppy
22:26:56 <olsner> which was before learning about english, of course
22:27:36 <ais523> olsner: at least English isn't your native language
22:27:51 <oklofok> does anyone else read "with an actual physical mouse" as "an actual live mouse"
22:28:07 <ais523> I used to be really good at using MouseKeys
22:28:14 <ais523> but this laptop now has a touchpad, so I use that instead
22:28:27 <ais523> (the previous one did in theory but it didn't work; at least, it worked for about ten seconds once, but it mostly didn't work)
22:28:58 <NihilistDandy> Being "good with MouseKeys" sounds like a contradiction in terms
22:29:35 <ais523> NihilistDandy: sometimes you badly need a mouse, though
22:29:46 <ais523> ooh, I actually completed one level of Adanaxis (the one after the tutorial) with the touchpad
22:29:51 <ais523> but wow, was that painful
22:30:07 <ais523> not a stunt-run I'd recommend
22:30:12 <oerjan> <ais523> in electronics, multimetres cost about ten times as much if they've actually been measured to make sure they measure correctly <-- does that mean it's cheaper to buy 9 and measure them yourself?
22:30:20 <ais523> oerjan: probably 1 and measure it yourself
22:30:27 <ais523> the problem is that the measuring equipment is pretty expensive
22:30:45 <ais523> I suppose you could buy three and take the majority opinion
22:37:35 <oerjan> ...and the moment i finish reading scrollback, everyone has stopped talking
22:37:54 <ais523> I have been talking, but in #nethack because I'm in a nethack tournament
22:38:27 <elliott> oerjan: just logread scrollback
22:38:30 <elliott> then i'll logread your logreading
22:38:46 <olsner> sounds like some kind of correspondence IRC
22:39:13 <elliott> String[] ConfigArray = new String[21];
22:39:22 <elliott> can't get over how bad this plugin's configuration system is
22:41:36 <elliott> ConfigArray[0] = simplesaveproperties.getProperty("save.use");
22:41:37 <elliott> ConfigArray[1] = simplesaveproperties.getProperty("save.interval");
22:41:37 <elliott> ConfigArray[2] = simplesaveproperties
22:41:37 <elliott> .getProperty("save.message.starting");
22:41:49 <elliott> it's faster than a hashtable lookup!
22:41:54 <ais523> elliott: is getProperty using reflection, there?
22:41:59 <ais523> and that basically is a hash table
22:42:01 <elliott> ais523: no, it's just reading from a .properties file
22:42:02 <ais523> with a very specific hash function
22:42:20 <elliott> pro of bukkit plugins being so easy to write: I can look at most plugins and think "yup, I could write that in a day or two"
22:42:31 <elliott> con of bukkit plugins being so easy to write: people like this can write plugins
22:42:40 <elliott> and then i have to try and make their plugins work
22:42:49 <ais523> elliott: or just write it yourself in a day or two?
22:43:14 <zzo38> What is bukkit plugins?
22:44:32 <zzo38> But what is bukkit?
22:46:14 <elliott> <ais523> elliott: or just write it yourself in a day or two?
22:46:19 <elliott> yes, but that delays the srver launch :)
22:46:29 <ais523> not if the existing plugins take more than a day or two to figure out
22:46:52 <elliott> zzo38: Bukkit is an API for writing portable plugins to change the game mechanics or add various server features to any supporting Minecraft multiplayer server
22:47:13 <elliott> ais523: but it's best to try first, because usually it'll take much less
22:47:32 <elliott> and by the time I realise rewriting would have been quicker, making the existing plugin work would probably add less time to the total than rewriting it from scratch
22:47:33 <olsner> try rewriting first? or using the existing one first?
22:47:43 <zzo38> Like what kind of game mechanics and server features do you change?
22:49:06 <elliott> zzo38: well, there are plenty of things that adjust the damage various monster attacks, fall damage, etc. do; there are plugins to protect blocks in certain areas from being created and destroyed by various users, and to stop people opening chests owned by others; there are plugins that add whole new game mechanics and blocks to the game; there are plugins that add portals that go to different alternate worlds; there are plugins to allow the serv
22:49:06 <elliott> er admin to create and edit blocks on a mass scale with commands... things that add various features to the chat system, etc. etc. etc.
22:49:36 <elliott> this particular plugin just adjusts the interval that the server saves the world in, and also periodically saves to a backup folder whenever anyone is online
22:50:10 <NihilistDandy> How many people can you reasonably have on a server at one time?
22:50:39 <elliott> NihilistDandy: Depends on how much money you have.
22:51:05 <elliott> NihilistDandy: The reddit servers have... god, how much is it, Phantom_Hoover?
22:51:22 <NihilistDandy> So for a reasonable hobbyist operation, probably no more than 10
22:51:43 <elliott> NihilistDandy: Eh, if you go with one of the "Minecraft server hosts", you could easily do twenty
22:52:15 <NihilistDandy> Mostly I'd just like to see a huge one, with enough people to reduce the landscape to bedrock within a few days
22:52:20 <elliott> I'm just doing it on my twenty-dollar-a-month one gig of RAM VPS, so something like seven would be the maximum before I'd see serious strain, I suspect, although that's with rather worst-case conditions (nobody sharing loaded chunks, etc.)
22:52:57 <NihilistDandy> Or *a* day, given the obsessive quality of Minecraft
22:52:58 <elliott> NihilistDandy: #esoteric-minecraft if you're interested; we've had a server before, but it hasn't been updated in a rather long time so I've got impatient and am starting my own.
23:25:44 <zzo38> I think LLVM trampolines seem to be more useful than GNU trampolines.
23:28:57 <olsner> you think they seem? should be easy to verify what they actually seem like :P
23:56:08 -!- pingveno has quit (Quit: Changing server).
23:56:09 -!- FireFly has quit (Quit: swatted to death).
00:01:04 -!- zzo38 has quit (Quit: killed to death).
00:01:30 -!- pingveno has joined.
00:05:54 -!- zzo38 has joined.
00:15:26 <oerjan> i found an interesting reddit comment on reverse engineering and (somewhat) haskell by copumpkin: http://www.reddit.com/r/haskell/comments/iqz0l/reverse_engineering_of_compiled_haskell/c264g5b
00:16:14 <oerjan> well i only noticed it was by copumpkin after i'd starting reading it
00:17:37 <Sgeo> I have re-read the panels around the end of act 4
00:18:22 <Sgeo> It makes it obvious that it's refereing to it, but I'm still lost
00:18:57 <Sgeo> elliott, wrt Homestuck update
00:19:52 <copumpkin> oerjan: I'd still be curious to feed hex-rays a ghc-compiled binary
00:20:11 <copumpkin> I bet even function boundary analysis in basic IDA would fail, though
00:20:46 <Phantom_Hoover> Sgeo, elliott is going to mock you about this, but he was completely lost by the ectobiology stuff when I read it with him.
00:20:47 <zzo38> I have found myself wanting to use a PHI command in C, although of course C doesn't have that.
00:26:30 <ais523> <girtar, in a top rated YouTube comment> Wait, why the heck is that the highest rated comment....?
00:26:40 <ais523> this confirms it, YouTube commenting has now become a parody of itself
00:27:13 <ais523> I've been suspecting it for a while, but not had solid proof
00:28:23 <oerjan> ais523: you _do_ know what the top voted reddit post ever is, don't you?
00:28:53 <oerjan> see http://www.reddit.com/r/all/top/?sort=top&t=all :)
00:29:17 <ais523> what does the icon next to it mean?
00:29:53 <ais523> also, is the person who made it famous/special in any way that might lead to a post of theirs getting singled out?
00:30:37 <elliott> he was the most famous user of old reddit
00:30:44 <ais523> I don't, I don't really use reddit
00:30:49 <ais523> I read proggit for the comments, but that's about it
00:30:53 <ais523> I don't read homepage, for instance
00:32:22 <elliott> Phantom_Hoover: much before
00:32:49 <Phantom_Hoover> elliott, ah, so it was the power user crap Reddit prides itself on not having?
00:33:40 <oerjan> ais523: i'm not sure what that icon means, i _thought_ it meant a picture was missing but that's a self post so cannot have any...
00:34:09 <elliott> Phantom_Hoover: no, qg was cool
00:34:35 <Phantom_Hoover> elliott, well sure, but the fact that it was upvoted wasn't a random thing.
00:34:36 <oerjan> hm no looking at the frontpage the missing picture icon is an alien with a camera and a question mark
00:34:43 <elliott> oerjan: it's something i've never seen before, probably added just for that post
00:34:43 <ais523> oerjan: maybe that's why it's missing
00:34:49 <elliott> Phantom_Hoover: Well sure, but come on, it's a one-off
00:36:16 <oerjan> ais523: but there other self posts which have no icon
00:37:26 <elliott> http://www.reddit.com/static/self_default2.png
00:37:33 <elliott> maybe using a question mark changes it:)
00:41:38 -!- zzo38 has quit (Remote host closed the connection).
00:43:15 <oerjan> oh i finally found one deep down in the frontpage which has it http://www.reddit.com/r/gaming/comments/is1s7/extralivesorg_is_trying_to_raise_8500_to_build_a/
00:44:11 <oerjan> and moreover this one has the A+ icon for a self comment as well
00:44:34 <oerjan> while i've found a couple that have neither
00:45:18 <oerjan> oh well maybe there's some obscure setting which does it
00:59:32 <copumpkin> oerjan: you interested in reversing?
01:03:12 -!- Phantom_Hoover has quit (Quit: Leaving).
01:07:21 -!- CakeProphet has quit (Ping timeout: 264 seconds).
01:18:05 -!- pumpkin has joined.
01:18:06 -!- pumpkin has quit (Changing host).
01:18:06 -!- pumpkin has joined.
01:18:36 -!- copumpkin has quit (Ping timeout: 276 seconds).
01:19:44 -!- pumpkin has changed nick to copumpkin.
01:34:25 -!- myndzi\ has joined.
01:38:06 -!- myndzi has quit (Ping timeout: 276 seconds).
01:40:15 -!- Sgeo_ has joined.
01:43:33 -!- Sgeo has quit (Ping timeout: 255 seconds).
01:46:21 -!- pumpkin has joined.
01:46:46 -!- copumpkin has quit (Ping timeout: 240 seconds).
01:48:14 -!- copumpkin has joined.
01:48:14 -!- copumpkin has quit (Changing host).
01:48:14 -!- copumpkin has joined.
01:50:31 -!- pumpkin has quit (Ping timeout: 250 seconds).
01:56:36 -!- cheater_ has quit (Ping timeout: 255 seconds).
01:58:51 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
02:03:29 -!- Sgeo has joined.
02:04:06 <Sgeo> I need to write a patch for XChat
02:04:17 <Sgeo> To stop its notifications from telling me that I disconnected
02:04:31 <Sgeo> Or at least, limit it to only once in x amount of time.
02:08:49 -!- cheater_ has joined.
02:10:02 * Sgeo wonders if XChat scripts have access to that stuff
02:22:04 <Sgeo> elliott, how much does prgmr HD space cost?
02:22:52 <elliott> What do you mean/why do you want to know?
02:23:07 <Sgeo> I want to know because I'm considering trying prgmr
02:23:27 <Sgeo> To play around with
02:23:54 <elliott> That seems like a bad reason to spend at least ten dollars a month :-P
02:24:01 <elliott> But it increases with the RAM.
02:24:20 <Sgeo> elliott, so what VPSes are more suited to just playing around with?
02:25:00 <elliott> You have a Linux box with an IP already, don't you?
02:25:16 <elliott> A VPS is for when you have actual services that you want to serve twenty-four seven :P
02:25:22 <elliott> I mean, your money, but...
02:25:34 <Sgeo> (Well, probably my dad's money)
02:25:36 <elliott> You're not gonna find anything more than a few dollars cheaper than prgmr and what you do find will be a lot worse.
02:26:16 <Sgeo> I want toy services that I want to serve 24/7
02:27:27 <elliott> Your usecase sounds rather badly thought-out
02:28:36 <Sgeo> IRC bots, maybe some Second Life stuff, wanting to play with web stuff without being restricted in my choice of language
02:28:51 <Sgeo> (Web stuff that other people can actually use)
02:29:31 <elliott> You could just leave your laptop on, then it costs [fraction of electrical bill] rather than whatever prgmr does:P
02:29:37 <elliott> But sure, prgmr would fit for that I guess.
02:55:33 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:59:26 * Sgeo vaguely wonders what happened to a certain DJ that shares his name
03:00:06 <oerjan> well we found it confusing with several people named the same thing, so we killed him.
03:00:18 <oerjan> it was a fair coin toss, though
03:00:20 <ais523> actually, we found it confusing with several people named the same thing, so we killed you
03:00:30 <ais523> and are not sure why your client is still sending messages
03:00:53 <oerjan> ais523: ...are you sure you remember the right coin result
03:01:47 -!- zzo38 has joined.
03:05:59 <Gregor> Actually, each of oerjan and ais523 was tasked with killing one of you if the coin flip went that way, but they both misread the coin and killed both of you.
03:06:06 <Gregor> Still, the ambiguity was resolved.
03:08:12 -!- cheater_ has joined.
03:10:03 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:26:39 -!- azaq23 has quit (Ping timeout: 276 seconds).
03:43:51 -!- elliott has quit (Remote host closed the connection).
03:44:33 -!- elliott has joined.
03:44:40 -!- elliott has quit (Changing host).
03:44:40 -!- elliott has joined.
03:59:48 -!- elliott has quit (Remote host closed the connection).
03:59:51 -!- elliott_ has joined.
04:22:55 <zzo38> My brother made up his character's name by now. He named his character "Also".
04:28:09 <oerjan> zzo38 is part of this group, and also his brother
04:28:46 <zzo38> Now I should *also* put it into the computer.
04:30:39 <oerjan> also puns can easily fall flat if you don't get the grammar just right
04:45:58 <Gregor> http://jeffkatz.typepad.com/.a/6a0120a721c2d7970b0133ed630c7b970b-800wi Delicious, delicious heart attack.
04:47:04 <pikhq> I am American and I approve of this murder weapon.
04:52:19 -!- elliott_ has quit (Remote host closed the connection).
04:52:25 -!- elliott has joined.
04:58:41 <oerjan> he didn't say he ate them
05:00:16 <elliott> you'd inhale the cholesterol
05:01:56 -!- oerjan has quit (Quit: Good night).
05:05:28 <copumpkin> but I did feel rather gross after eating them
05:05:46 <Sgeo> Clearly copumpkin is as deceased as I am.
05:08:25 <elliott> oh wow java generics are crappy
05:09:41 <elliott> but they're, like, _really_ crappy :O
05:10:47 <copumpkin> but water is, like, _really_ wet :O
05:11:45 <itidus20> perhaps wetness is the extent to which a thing is saturated with water
05:12:27 <copumpkin> does that mean water is the wettest thing of all?
05:12:36 <elliott> oh, phew, they're not _quite_ as bad as I thought I'd just proved
05:12:52 <itidus20> but wetness might relate to liquids, which would complicate things
05:12:59 <itidus20> since not all liquids are water
05:13:51 <itidus20> it also brings up the question of whether ice is wet
05:14:32 <itidus20> So, in wetness, is water a necessary element? is liquid state a necessary element?
05:14:48 <itidus20> Can you have something wet which is neither water nor liquid
05:16:09 <Gregor> Is humid air wet? Is mercury?
05:16:20 <Gregor> It's a natural word, so its probably ambiguous at best.
05:16:22 <itidus20> I am showing off because gregor is here
05:17:15 <Gregor> Not capitalizing my name or using punctuation isn't particularly impressive showing off ... :P
05:17:34 <pikhq> When Particle Man is in water, does he get wet, or does the water get him instead? </TMBG>
05:30:21 <zzo38> In Soviet Russia, wet gets YOU!!
05:30:40 <elliott> ais523: haskell/java bridge using jni
05:30:44 <ais523> it's rare for me to leave the computer on and unattended overnight
05:30:49 <elliott> therapy is available down the hall.
05:30:54 <ais523> in the daytime, it's possible my boss has contacted me or something like that
05:31:03 <elliott> you can only avoid reading that line for so long, ais523.
05:31:09 <ais523> elliott: that's no more insane than haskell/imperative language, isn't it?
05:31:23 <elliott> ais523: you're saying that involving Java in something doesn't make it more of a terrible idea?
05:31:34 <elliott> that would be some kind of Act of Maximum Terribleness
05:31:36 <ais523> elliott: only marginally
05:31:38 <Gregor> Haskell/JavaScript bridge 8-D
05:31:44 <ais523> I don't consider Java some sort of great, all-encompassing evil
05:31:49 <elliott> like, killing a baby with Java isn't really worse than just killing a baby, I suppose
05:31:49 <ais523> just an ordinarily evil
05:31:59 <ais523> almost mundane, in fact
05:32:00 <elliott> ais523: OK, but as a language, it sure doesn't like talking to other people :P
05:32:07 <elliott> Of course Java is mundane, it's just /strange/ and mundane
05:32:25 <elliott> Java constantly surprises me, and I'm hardly inexperienced with C and Python and other such "boring languages"
05:32:38 <ais523> it doesn't surprise me much
05:32:39 <Sgeo> Gregor, I think I have use for that
05:32:50 <elliott> ais523: that may be cause for concern :-)
05:32:56 * Sgeo abruptly gets shot
05:32:59 <elliott> ais523: but yes, it honestly does
05:33:02 <ais523> it's designed exactly like I expect it to be designed
05:33:18 <elliott> ais523: you expect type erasure?
05:33:21 <ais523> more abstraction layers than are particularly sane, and a standard library that tries to do everything itself
05:33:45 <ais523> and yes, but partly because I know that Java's template system is a last-minute hack that was retrofitted to the language
05:33:57 <elliott> that's not an "expectation"
05:34:02 <elliott> ais523: you expect the rather strange anonymous subclass syntax?
05:34:19 <ais523> elliott: it's saner than what C++ would come up with for the same thing
05:34:46 <ais523> elliott: well, you come up with a better syntax
05:34:59 <elliott> ais523: Why, when I could come up with a better language?
05:34:59 <zzo38> The C++ template syntax is bad because it uses < > as delimiters even though they also mean less than and greater than signs.
05:35:01 <ais523> I think you're just not thinking from the Java point of view
05:35:05 <elliott> It's strange to be able to do that with shortcut syntax in the first place
05:35:16 <elliott> And certainly not what I'd expect from the Most Boring Orthodox OOP Language Ever
05:35:17 <Sgeo> The syntax isn't what's bothersome, although I haven't used Java much. But how do you not have lambdas?
05:35:20 <ais523> not really, if everything is a class or an object, then what's a new method? a class
05:35:33 <ais523> so you need to be able to make throwaway classes like that
05:35:40 <ais523> and the syntax is much the same as defining an ordinary class
05:35:49 <ais523> except that you put the class definition where the class name should go
05:36:04 <Sgeo> Why can't anonymous functions just be syntax sugar for a method of an anonymous class, then?
05:36:06 * elliott steps away from ais523, curls up in a ball, and cries himself to sleep.
05:36:23 <ais523> elliott: I note that C does the same thing, with anonymous structs
05:36:37 <ais523> struct {int i; float f;} x;
05:36:38 <elliott> ais523: I wish you were around when Java actually surprised me so I could tell you why
05:36:47 <elliott> what happens in IDEA, stays in IDEA
05:41:51 <pikhq> Sgeo: Java 8 is actually adding lambdas.
05:42:17 <ais523> what syntax, incidentally?
05:42:25 <Sgeo> pikhq, yay! Now how about all the APIs that don't take lambdas?
05:42:39 <Sgeo> Or are they using Runnable or something, which, I _think_ stuff takes?
05:42:47 <ais523> well, they're just sugar for a five-liner that creates an anonymous inner class
05:43:11 <ais523> Runnable is sort-of the defacto standard for those if you're just using them as a callback, but taking no arguments and returning void is a bit crippling
05:43:34 <Sgeo> Haven't used much Java
05:43:37 <ais523> (not /fatal/, but you don't want to have to use stupid workarounds)
05:43:52 <pikhq> The planned syntax is #{ arglist -> code }
05:44:28 <ais523> that's such an unjavaish operator
05:45:19 <pikhq> And you can only close over final or "effectively final" variables...
05:45:52 <elliott> i never expect to see that outside of a literal/comment in java
05:46:33 <ais523> well, it's for consistency with method pointers, isn't it?
05:46:40 <ais523> pikhq: that restriction's been around for ages
05:46:49 <ais523> it's to save having to distinguish between current and original value
05:46:55 <Sgeo> Effectively final?
05:47:18 <pikhq> Sgeo: Basically, can be declared final without causing a compilation error.
05:47:46 <Sgeo> (Well, cool's the wrong word. But ... smarter than... an unsmart compiler?)
05:48:01 <pikhq> Anyways. It's basically syntactic sugar around anonymous classes.
05:48:18 <ais523> I suppose it's to make idiots think about whether they mean {final T x = this.x; return new C() {C(){setT(x);} } } or {final T finalThis = this; return new C() {C(){setThingToAccessToGetT(finalThis);} } }
05:48:36 <ais523> I probably have made minor syntax errors there, because Java more or less requires an IDE to do the boilerplate for you
05:48:41 <ais523> it's almost as bad as VHDL
05:48:50 <pikhq> Well. Anonymous classes of a single method.
05:49:07 -!- zzo38 has quit (Remote host closed the connection).
05:49:23 <pikhq> And the type gets inferred.
05:49:45 <ais523> elliott: you'll love this syntax, then (proposed, I'm not sure it was accepted): Math#sin for what is basically #{ x -> Math.sin(x) }
05:49:59 <ais523> pikhq: type inference? in /Java/? now I'm shocked
05:50:10 <pikhq> ais523: It's about as advanced as C++0x's.
05:50:21 <ais523> and how advanced is that?
05:50:49 <ais523> C++0x is more insane than my mind can easily grasp
05:50:59 <ais523> I couldn't even follow the move constructor debate
05:51:05 <pikhq> ais523: Pretty much, if you're trying to use #{ } where only a class with a single method is expected, it figures out that you want to use that type. Otherwise it's a compile error.
05:51:07 <elliott> C++0x is a beautiful, crystalline trainwreck
05:51:12 <ais523> despite knowing early C++ (really early, before namespaces were invented)
05:51:21 <elliott> it is the Best language and, therefore, a completely useless piece of shit
05:51:36 <ais523> can anyone here explain move constructors?
05:51:40 <elliott> but it lead to C++ sudoku!
05:51:47 <ais523> my guess is no, because they're basically inexplicable
05:51:55 <ais523> but perhaps someone here is insane enough to grasp them
05:52:05 <ais523> I mean, I understand the intention and what they're meant to encourage
05:52:25 <ais523> I just don't get a) why that's considered a desirable feature for a language, or b) any of the millions of details needed for them to work correctly
05:52:42 <elliott> summarise? opening a tab will crash flash
05:52:49 <ais523> they also make perfectly innocent-looking code do ridiculous things
05:52:55 <elliott> (flash /really/ hates pages loading or closing in Chrome for some reason)
05:53:01 <ais523> elliott: I can't easily, because I don't understand it really
05:53:07 <elliott> <ais523> I mean, I understand the intention and what they're meant to encourage
05:53:14 <ais523> you know what a copy constructor is, right?
05:53:25 <ais523> it's like that, except you destroy the thing being copied, because it isn't needed any more
05:53:26 <elliott> yes, it's constructing a new object with just an existing one as an argument
05:53:28 <elliott> and copying all its fields over
05:53:31 <elliott> but it's really hard to get right
05:53:56 <elliott> whatever Clean uses for IO, anyway
05:54:08 <ais523> it's reminiscent of linear typing, at least
05:54:14 <pikhq> The *reason* for move constructors is so that the compiler doesn't have to actually do deep copies for its temporary values.
05:54:18 <ais523> except that linear typing's "legitimate ways to cheat" are rather unlike C++'s
05:54:33 <ais523> pikhq: why can't it just use the original value?
05:55:20 <pikhq> ais523: Because things tend to get passed *by value* to relevant functions.
05:55:32 <elliott> but yes, the reason for anything insane in C++ tends to be "performance, even though you'd just use a struct if you _really_ cared"
05:55:32 <ais523> pikhq: oh right, and C++ doesn't hide calling convention stuff
05:55:47 <ais523> elliott: that's because C++'s market is very specific nowadays
05:56:08 <ais523> it's people who care massively about performance, but who can't use C for various reasons, mostly library support
05:56:09 <elliott> ais523: games programming, application developers (who don't care about the new features), and "specialist" areas? like embedded/realtime stuff
05:56:27 <ais523> (I don't include needing to use an object-oriented view of things as a reason to use C++, as C is better at that)
05:56:38 <elliott> `addquote <ais523> (I don't include needing to use an object-oriented view of things as a reason to use C++, as C is better at that)
05:56:39 <HackEgo> 512) <ais523> (I don't include needing to use an object-oriented view of things as a reason to use C++, as C is better at that)
05:56:52 <pikhq> e.g. foo = bar + baz + qux; would have to create a value for "baz + qux", to pass it to operator+ for adding bar to get the final value...
05:56:55 <elliott> i'll delete most of them later :-)
05:58:02 <ais523> pikhq: unless operator+ took references as arguments
05:58:09 <ais523> which is the standard for arithmetic operators, isn't it?
05:58:23 <pikhq> Oh, right. To *work around that*.
05:58:43 <elliott> is there ever really a reason to pass by value in C++?
05:58:44 <pikhq> C++'s semantics are far too complicated.
05:58:53 <pikhq> elliott: I dunno, but people *do it*.
05:58:56 <ais523> elliott: you pass integers and smaller primitive types by value, generally
05:59:19 <ais523> because if you pass them by reference, the compiler has to find some memory to store them in in order to pass a pointer to them, which is pretty convoluted
05:59:46 <elliott> I mean non-primitive types
06:00:01 <elliott> most languages don't even have a /way/ to specify that you want a by-value passing
06:00:10 <elliott> (as opposed to by-reference)
06:00:15 <ais523> nowadays, I think value is faster for even structures up to 64 bits wide, with modern compilers and calling conventions
06:00:25 <elliott> (although this is an implementation detail in the case of immutable objects)
06:00:31 <elliott> ais523: not many structures are less than sixty four bits wide...
06:00:48 <ais523> elliott: they are if you go up to Java levels of enterpriseyness
06:00:49 <elliott> (I would say that int is usually used even when char would do fine, for futureproofing and not-having-to-think-about-it reasons)
06:01:10 <ais523> if you have nothing but a vtable, for instance
06:01:16 <ais523> and the vtable is stored as a pointer
06:01:22 <ais523> a pointer to a pointer would just be ridiculous
06:01:40 <ais523> elliott: well, in the minds of C++ users
06:01:40 <elliott> so what you're saying is, C++ needs opaque typedefs :)
06:01:54 <elliott> in Haskell, those desugar to the contained value
06:01:58 <elliott> so there's zero runtime overhead
06:02:29 <ais523> elliott: gah, never suggest a new feature for C++, even as a joke
06:02:34 <ais523> the consequences aren't pretty
06:02:50 <elliott> I'm sad that concepts weren't accepted, those were really what C++ template metaprogramming needed
06:03:00 <ais523> something wasn't accepted? seriously?
06:03:06 <elliott> you don't know about concepts?
06:03:14 <elliott> they were half the size of C++ itself
06:03:17 <ais523> not if the word has a specific technical meaning in the context of C++
06:03:24 <elliott> and required a massive gcc fork to implement
06:03:29 <elliott> presumably to prove it was even humanly possible
06:03:37 <elliott> ais523: take a skim of http://en.wikipedia.org/wiki/Concepts_(C%2B%2B)
06:03:41 <elliott> In the pending C++0x revision of the C++ programming language, concepts and the related notion of axioms were a proposed extension to C++'s template system, designed to improve compiler diagnostics and to allow programmers to codify in the program some formal properties of templates that they write. Incorporating these limited formal specifications into the program (in addition to improving code clarity) can guide some compiler optimizations, and
06:03:41 <elliott> can potentially help improve program reliability through the use of formal verification tools to check that the implementation and specification actually match.
06:03:51 <elliott> it was kind of like.... typeclasses
06:04:00 <elliott> except... used as a sort of formal verification system
06:04:02 <ais523> presumably it's someone trying to embed a different language into an existing one?
06:04:13 <elliott> ais523: Wikipedia lists no prior art
06:04:19 <elliott> I suggest a quick read of the article, it's truly jaw-droppingly C++
06:04:23 <elliott> apparently too C++ for the committee
06:04:44 <ais523> it reminds me of a random reddit poster saying that incomprehensible template error messages were the compile-time version of a segfault
06:04:50 <ais523> presumably, that's an attempt to statically prevent segfaults
06:05:15 <elliott> I really hope they were powerful enough to make a big C++ subset --> C++ template compiler easy-ish
06:05:28 <elliott> then you could propose to the committee to specify C++ templates based on the C++ semantics itself
06:05:34 <elliott> thus shortening the report and allowing for further extension
06:05:41 <elliott> like, say, allowing every C++ feature to be used at the type level
06:06:04 <ais523> the Java-like solution to this would be to allow templates to extend each other
06:06:08 <itidus20> does the C++ committee take the same crap that the html5 committee does?
06:06:16 <ais523> it wouldn't /help/, but would be more javaish
06:06:26 <coppro> itidus20: same crap as in what?
06:06:47 <itidus20> i do not know entirely what I mean.. but I hear the ISO is a joke
06:07:07 <ais523> elliott: OK, the axioms addition is very C++ish indeed
06:07:11 <ais523> actually, it reminds me a bit of C99
06:07:37 <elliott> hmm, I see the kind of feel you mean
06:07:42 <elliott> it's just... on a C++ scale
06:08:12 <ais523> yep, that's a good description
06:08:34 <ais523> hmm, this reminds me a bit of listening to a piece of computer game music and trying to figure out what series it comes from by the style
06:08:35 <itidus20> (sorry for fake foreign accent) It is much the feeling that dependancy on C/C++ undermines potential of esoteric languages.
06:08:42 <ais523> only with programming languages
06:09:00 <elliott> that's not fake foreign accent, that's just academicspeak
06:09:05 <ais523> itidus20: C in particular has a view of the universe that was low-level once, but nowadays is an abstraction inversion
06:09:06 <elliott> or maybe the latter is an absorption of the former
06:09:25 <ais523> but it's hard to do better
06:09:32 <itidus20> Well, there is danger in dependance.
06:09:35 <elliott> ais523: I have a feeling the C committee went that way after someone came up to them with a copy of the Lisp Machine ZETA C compiler, and said "explain this".
06:10:11 <ais523> I've got annoyed with gcc-bf, because I just run into abstraction inversions everywhere, and it saddens me
06:10:24 <coppro> abstraction inversions?
06:10:38 <Sgeo> Wow, coppro asked the question I was going to ask
06:10:38 <elliott> hmm, that made sense when i typed it
06:10:51 <elliott> Sgeo: thus proving that neither of you can use Google (you're not ais523, you have no excuse)
06:10:52 <itidus20> A dependance on c/c++ means that GNU can be led along by the c standard.
06:10:55 <ais523> coppro: basically, when a language provides high-level concepts only, so if someone wants to use low-level concepts, they have to implement them in terms of the high-level concepts
06:11:06 <ais523> which are again implemented in terms of low-level concepts
06:11:07 <elliott> which doesn't advance automatically with the C standard
06:11:08 <itidus20> do they define their own standards?
06:11:16 <elliott> itidus20: they refer to published ones
06:11:31 <ais523> pikhq: the classic example is synchronization in ADA, but most people, including me, don't know how it works
06:11:32 <elliott> you can change what the latest ISO standard for C is, but you can't change what ISO C90 is
06:11:37 <itidus20> but you can see the danger here right?
06:11:44 <elliott> itidus20: it's just the trust issue.
06:11:50 <elliott> in the end, you have to (depend|trust) someone.
06:11:55 <pikhq> ais523: No, I mean "in C".
06:12:00 <itidus20> if google and microsoft lobby the standard
06:12:07 <pikhq> ais523: I know what abstraction inversion is, and can think of a few really good examples.
06:12:22 <pikhq> Most obviously, implementing locking primitives in Erlang on top of its messaging. :)
06:12:26 <ais523> pikhq: hmm... vectorised instructions, perhaps
06:12:43 <ais523> that's not quite what I mean, though
06:12:57 <itidus20> they should make a language called stallman
06:13:16 <itidus20> :D every program needs to have the name stallman in the filename to compile
06:13:20 <pikhq> (so you can do locking-based multithreading on top of message-passing multithreading on top of locking-based multithreading!)
06:13:50 <itidus20> smacks my knee with jocularity
06:14:29 <Sgeo> itidus20, ...why? No offense, really, but that sounds boring
06:14:56 <ais523> pikhq: fetch/modify/store's a decent example, I think
06:15:06 <ais523> in C, all movement of data into and out of caches is implicit
06:15:35 <ais523> so you have to do silly things normally used only by Vorpal, and weird unusual libraries, or else confusing code that doesn't really mean what it looks like it means, to get your memory access patterns to what you want
06:15:49 <Sgeo> Will anyone be mad at me if I strap my hash output language into a sucky thing like BF?
06:15:54 <Sgeo> Because I'm uncreative
06:16:01 <ais523> I won't, but half the channel will
06:16:28 <elliott> because i won't care anyway :P
06:16:38 <elliott> PH will, but PH already hates literally every person on the planet
06:16:49 <pikhq> ais523: Obvious solution is to ban 3/4ths of people from using C ever.
06:17:06 <Sgeo> So: Come up with a unique language just to show off the hash output.
06:17:07 <pikhq> Doesn't solve any of the problems with C, but it *does* make them hardly relevant!
06:17:30 <ais523> Sgeo: have you seen http://esolangs.org/wiki/SLOBOL?
06:17:51 <Sgeo> I may have seen it but forgotten everything about it
06:17:56 <ais523> well, look at it again
06:18:17 <ais523> it's hash source rather than hash output, but much the same thing
06:18:37 <Sgeo> Not really. It's the compiler that has to bruteforce hashes, not the program author.
06:18:54 <ais523> wow, on NetHackWiki, I just found a disambiguation page with two disambiguation headers
06:19:02 <ais523> as in, it had to disambiguate what was being disambiguated
06:19:15 <ais523> pity the other pages linked aren't dab pages too, or it would have been even better
06:20:08 <ais523> http://nethackwiki.com/wiki/Fire
06:20:22 <ais523> basically, it's full of all the different pages relating to fire as in burning things
06:20:26 <elliott> Sgeo: why not just put it on top of BF, it won't really matter
06:20:31 <ais523> with a header connecting to fire as in firing an arrow
06:20:31 <elliott> Sgeo: and make cells the size of a hash
06:20:37 <ais523> and another one about a god in Slash'EM
06:20:54 <ais523> I think Wikipedia just uses different sections for homonyms like that
06:20:59 <Sgeo> elliott, ooh, didn't think of that
06:21:16 <Sgeo> Was thinking I'd add ! to the commands, or something
06:22:14 <elliott> Sgeo: means you get to use fun arithmetic to output the simplest things :D
06:22:26 <elliott> the simplest quine will be, like, a gigabyte long
06:22:55 <Sgeo> Assuming there is a quine..
06:23:14 <fizzie> (Disclaimer: I don't know how you're using hashing in them outputs, but...) If you have a k-bit output from a hash function, and restrict yourself to k-bit inputs for it, I don't think it's very likely the function will be surjective, so you wouldn't be able to generate all possible outputs.
06:24:02 <ais523> fizzie: didn't the NSA go to a lot of trouble to prove that DES wasn't surjective?
06:24:03 <Sgeo> Actually wait, the hash-sized cells restricts the possible inputs to the hash
06:24:35 <Sgeo> Which would make it less likely that a quine exists, I thin
06:25:09 <fizzie> ais523: Mmmmaybe. It sounds like something that -- especially for a hash function -- would be really tricky to prove.
06:25:09 <itidus20> sgeo: poking light hearted fun at stallman's fixation on which words people use. stallmanhelloworld.gnu .. if gnu is the extension
06:25:14 <fizzie> ais523: Maybe it was the round function?
06:25:28 <ais523> fizzie: I imagine it was really tricky to prove
06:25:31 <ais523> at least, it was far from obvious
06:25:41 <ais523> but they had to in order to ensure that 3DES was harder to bruteforce than DES
06:27:29 <elliott> fizzie: Sgeo wants a language for which it's unknown whether a quine exists or not
06:27:33 <elliott> Sgeo: btw don't use dha or whatever
06:28:06 <Sgeo> elliott, hmm, why not?
06:28:36 <itidus20> presence of the word quine in the file would cause the program to compile a quine of the program"
06:28:47 <elliott> Sgeo: Because you ideally want the hash to be two-hundred-and-fifty-seven bytes long. The first byte is "how many bytes of this hash to print" minus one. i.e. first byte = 0 means the one byte following will be printed.
06:29:01 <elliott> Sgeo: So this way we can specify only the valid lengths in the first byte and there are no edge cases.
06:29:28 <elliott> Sgeo: There's a really nice hash that outputs an infinite stream that you just take the first N bytes of that you want; lemme find it
06:29:32 <Sgeo> What if first byte = 0 means that 0 bytes following will be printed
06:29:43 <Sgeo> So, 256 byte hash
06:29:46 <elliott> Sgeo: Well, you could have that, but it means . could be a nop.
06:29:49 <elliott> Which is not shared with brainfuck.
06:29:59 <elliott> I mean there's no problem with it.
06:30:12 <fizzie> A scheme like that sounds like it would make it trivial to just bruteforce a set of hashes that start with "0000", "0001", "0002", ..., "00ff", and then use those for all output.
06:30:13 <elliott> Sgeo: also, it means that . at the start of the program does nothing, rather than outputting a NUL byte
06:30:20 <elliott> fizzie: Oh, hmm, of course.
06:30:52 <elliott> fizzie: Well, I just cooked it up in three seconds after I told Sgeo that he obviously didn't have arbitrary output at an arbitrary point because ...
06:31:04 <elliott> fizzie: Because of lengths etc.
06:31:28 <fizzie> Yes. Some sort of "remove trailing nulls" thing might work, except then you couldn't output trailing nulls.
06:31:38 <fizzie> ("Yes" to the lengths thing.)
06:31:40 <elliott> fizzie: That's also what I said.
06:31:47 <elliott> Sgeo could cheat and have an "output NUL byte" instruction.
06:31:55 <elliott> fizzie: Just calculate the prefixes again
06:32:36 <fizzie> No, I mean, remove trailing nulls from the "final output". Okay, I guess that's not going to work if you want some output before the end of the program.
06:32:48 <Sgeo> Output transformer. Program can only output 1-255, but this somehow expands to 0-255. 0 is always and only at the end
06:32:53 <elliott> Sgeo: Do what fizzie said, except don't filter the nuls outputted by @.
06:33:00 <elliott> Where @ is the nul byte outputter instruction because I said so.
06:33:41 <Sgeo> I need to sleep soon
06:33:45 <elliott> http://en.wikipedia.org/wiki/Very_smooth_hash oh this is cool
06:34:38 <Sgeo> Is it... surjective or non-surjective?
06:34:51 * Sgeo wikis surjective
06:35:00 * Sgeo can never keep the jectives straight
06:35:49 <Sgeo> I want unknown surjectivity
06:36:27 <elliott> i was just calling it cool
06:38:07 * Sgeo throws his initial idea for making doing computations in a language require reversing a hash out the window
06:38:31 <elliott> what was wrong with my idea
06:38:40 <Sgeo> elliott, what?
06:38:45 <monqy> goodbye sgeo's initial idea for making doing computations in a language require reversing a hash
06:38:45 <Sgeo> I wasn't talking about your idea
06:41:07 <Sgeo> Maybe I should throw it out here to be fixed up: Just stuff separated by ! that when hashed, must result in BF code.
06:41:32 <ais523> hmm, I'm reading TV Tropes again
06:41:35 <ais523> because I enjoy it and have time
06:41:39 <Sgeo> But then it's too easy to just do a bunch of brute-forcing to get each of the BF commands, then just use that forever
06:41:46 <Sgeo> Since no-ops are pretty easy
06:41:48 <ais523> unfortunately, Firefox 3 opens tabs in IE order rather than Firefox 1 order
06:42:01 <ais523> this does actually make a huge difference when visiting TV Tropes
06:42:11 <ais523> probably IE order, everything uses it nowadays
06:42:26 <ais523> opening a tab next to the page that contained the link you clicked on
06:42:37 <elliott> ais523: Chrome opens tabs to the right of the last middle-click-opened tab; if you've switched tabs since you last did some middle-clicking, I'm not entirely sure how it decides
06:42:37 <ais523> (Firefox 1 opened it at the end, leading to you reading in a queue rather than a stack_)
06:42:53 <elliott> it either goes to the right of the current tab or to the right of the tab bar, it seems
06:42:58 <elliott> ais523: what, apparent nondeterminism?
06:43:08 <ais523> I never did figure out exactly what caused which of those to happen
06:43:12 <elliott> I honestly don't know how it's deciding where to put the first, but I'll just assume it's doing something Terribly Clever
06:44:48 <Sgeo> Attention Sgeo: Sleep is not optional.
06:46:36 <ais523> wow, I was reading TV Tropes and came across a reference to me
06:46:49 <ais523> although inevitable in retrospect
06:47:17 <elliott> ais523: in the nethack article?
06:47:30 <ais523> you might even be able to figure out what for
06:47:43 <ais523> if you haven't seen it, http://www.youtube.com/watch?v=D9oMSPzChgk
06:47:52 <elliott> (he says without clicking)
06:47:58 <ais523> speedrun isn't finished
06:48:03 <ais523> it was originally an April Fool's joke
06:48:18 <ais523> blame the encoder, not me
06:48:30 <elliott> is there a slower version.............
06:48:31 <ais523> or whoever wrote the bootup sequence of DOS
06:48:42 <ais523> you wouldn't see much more, I gave a transcript in the comments
06:49:06 <elliott> ais523: RNG cheat, wish for an item, touch it in a way that makes you die?
06:49:10 <elliott> @kinkkku I quote the submission text: «A female Tourist comes into the dungeon, finds a shiny artifact silver saber (Grayswandir) on the stairs she entered by [...], picks it up (the default options pick up all items you come across), takes damage from touching the artifact (a 1 in 4 chance for an unintelligent crossaligned artifact like the lawful Grayswandir for a neutral Tourist; [...]), and dies from the damage (around a 52% chance for a
06:49:19 <ais523> elliott: that would involve getting control of the character
06:49:28 <ais523> it took me around 2 and a half million tries
06:49:40 <elliott> <ais523> elliott: that would involve getting control of the character
06:49:44 <ais523> but eventually, I stumbled across a game where I died before gaining control of the characer
06:49:47 <ais523> it's theoretically possible
06:49:55 <elliott> touching a cockatrice corpse
06:50:00 <ais523> and I knew it was, so just left my computer running for a week playing games until it happened
06:50:05 <ais523> you don't spawn blind, but you have the right idea
06:50:13 <elliott> "Grayswandir was generated on the upstairs, he picked it up due to autopickup, and it blasted him."
06:50:20 <ais523> here you go: http://tasvideos.org/forum/viewtopic.php?p=267682#267682
06:50:26 <elliott> ais523: I thought it meant fastest in realtime
06:50:45 <ais523> elliott: I finish input before the game loads, is that fast enough?
06:50:45 <elliott> ais523: also, is that post just what i quoted but with really long aistext in the [...]s?
06:51:07 <ais523> it's a transcript of all the text the game would output if I hadn't skipped it
06:51:25 <ais523> I suspect it is fastest in realtime, anyway
06:51:30 <ais523> anything slower in gametime means actually inputting commands
06:51:37 <elliott> argh, Patashu, get out of that thread
06:51:38 <ais523> and that's bound to be slower than ending input before the game loads
06:51:42 <elliott> I am seriously worried about how tiny the internet is
06:52:03 <elliott> I literally can't go anywhere without running into someone I've seen before somewhere completely unrelated
06:52:30 <elliott> ais523: why would input take any sort of time?
06:52:43 <ais523> elliott: because you overflow the BIOS keyboard buffer eventually
06:52:53 <elliott> ais523: ugh; write a PureDOS
06:52:55 <ais523> also, if you type too early, the keys are interpreted as interrupting the boot process
06:53:09 <elliott> on top of some specification of the xeightsix's semantics
06:53:20 <elliott> and then normalise its results to some cycles/sec count
06:53:24 <ais523> nah, the whole point is to emulate the real hardware as accurately as you can
06:53:35 <elliott> NetHack doesn't _have_ hardware!
06:53:35 <ais523> I actually had to submit a patch to the emulator so that it would run NetHack
06:53:52 <Sgeo> Why wouldn't it run NetHack?
06:53:56 <ais523> but that was a case of improving its handling of a particular edge case that was nonetheless exploited a lot by DJGPP
06:54:14 <ais523> Sgeo: basicaly, DJGPP does __int86 by using self-modifying code to overwrite the argument of an int instruction
06:54:23 <ais523> and JPC-RR's pipeline was longer than NetHack expected
06:54:33 <elliott> i kind of hate pipelining because of that
06:54:38 <elliott> self-modifying code is so nice
06:54:45 <ais523> so I added code to do a simulated pipeline stall if the code tried to self-modify
06:54:55 <ais523> it stalls the pipeline a bit faster than real hardware does, but NetHack doesn't notice
06:55:09 <ais523> and neither would anything else unless it were specifically trying to detect an emulator
06:55:20 <ais523> (apparently some games have done that as an anti-cheating measure)
06:55:49 <ais523> also, naughty TV Tropes, assuming I'm male without asking
06:56:00 <ais523> although I suppose someone who already knew I was might have added that
06:56:20 * elliott tries to track down a citation for ais523 being male with Google
06:56:34 <ais523> my guess is that it exists but will be nontrivial to find
06:56:55 <Sgeo> Wouldn't #esoteric logs work?
06:56:56 <elliott> http://www.wolframalpha.com/input/?i=User%3Aais523 is the second result for "ais523 male"...
06:57:09 <elliott> Sgeo: not if google doesn't find them
06:57:30 <elliott> There are not too many male admins wearing rouge, because I like men in makeup .... We still have one: {{subst:User:Ais523/User wikipedia/RC patrol (NCR)}}. ...
06:57:36 <elliott> from Wikipedia talk:No climbing the Reichstag dressed as Spider-Man ...
06:57:40 <elliott> there, ais523 is a male admin wearing rouge
06:57:51 <ais523> elliott: err, that's not a reference to me
06:57:58 <ais523> I might have userfied the userbox in question
06:58:04 <ais523> but that doesn't imply anything about my gender
06:58:11 <ais523> (in fact, IIRC I /created/ it)
06:58:27 <elliott> that quote doesn't even appear on that page, seemingly
06:58:48 <elliott> I am allergic to cologne, and therefore will need to scale in protest.[citation needed] There are not too many male admins wearing rouge, because I like men in makeup.[citation needed] - Kathryn NicDhàna ♫♦♫ 01:02, 15 March 2007 (UTC)
06:59:04 <ais523> hey, that ... is cheating
06:59:08 <elliott> ais523: it seems it just picked your signature up because i mentioned it
06:59:10 <ais523> it's even in an unrelated comment!
06:59:18 <ais523> and that's not a sig, it's a userbox
06:59:27 <ais523> my sig has a link to my user, user talk, contribs pages
06:59:40 <elliott> www.macchinaveloce.com/.../wikipedia-book-pdf_lamborghini-miura_...File Format: PDF/Adobe Acrobat - Quick View
06:59:40 <elliott> 30 Jan 2011 – The three men worked on the car's design at night, hoping to sway ..... Aetherfukz, After Midnight, Ais523, Alanraywiki, Alansohn, Alhutch, ...
07:00:14 <ais523> some spambots were using usernames taken from Wikipedia a while back to confuse spam filters
07:00:32 * elliott concludes that he/she has no real reason to believe that ais523 is male
07:00:50 <elliott> jokes only ais will get . com
07:01:54 <ais523> what sort of question is that?
07:02:02 <elliott> ais523: a question that Google will index the answer to :-D
07:04:41 <elliott> www.qdb.us/queue/best/5 - Cached<teapot> and i have a fantasy about having 2 men at once: one for .... <ais523> meh, I've been so busy in RL recently I've hardly been sleeping at all ...
07:04:49 <elliott> like bash famous but slightly less popular
07:04:55 <elliott> ok i give up, i'm going to refer to ais523 with spivak from now on
07:05:11 <ais523> I refer to /myself/ with singular they in /me, because it seems weird otherwise
07:05:22 <ais523> I can't use gendered pronouns without hesitating nowadays
07:05:56 <ais523> and it's simpler than worrying whether I'm making assumptions about my own gender
07:06:43 <monqy> I should return to myself as "it". that'd be cool. too bad I don't use /me at all ever
07:07:01 <elliott> "it" is a cool pronoun i approve of it
07:07:05 <elliott> you're hardly the first to though monqy
07:07:42 <monqy> does anyone consider it offensive to be referred to as "it"
07:08:17 <elliott> probably most people for whom it isn't their preferred pronoun
07:08:19 <elliott> I don't mind, for the record
07:08:26 <elliott> although it might confuse me the first few times
07:09:11 <monqy> if only grammatical gender wasn't a thing. then I would be less unhappy.
07:09:32 <elliott> grammatical gender must be such a fucking pain
07:09:37 <Sgeo> elliott, I don't see ais523 on there
07:09:51 <ais523> Sgeo: it's clearly a cached version
07:10:01 <elliott> monqy: can i call you it, that would be cool. or wait how about punctuation
07:10:30 <olsner> -- is the new personal pronoun?
07:10:41 <monqy> I'm cool with it so long as I know what it means
07:10:44 * Sgeo submitted himself to bash once. Everyone hated it.
07:10:51 * elliott thinks that -- is going to use "--" forever
07:11:00 <elliott> only a mod will have seen it
07:11:02 <Sgeo> Note: Not literally everyone
07:12:08 <Sgeo> elliott, by bash I may have meant qdb
07:12:27 <Sgeo> And ther are votes on it
07:12:37 <Sgeo> 19 votes, although it no longer shows up as approved
07:13:20 <elliott> http://qdb.us/search?q=%23esoteric&order=real_score&sort=desc&limit=25&approved=-1
07:13:24 <monqy> good quote very funny
07:14:28 <elliott> it just seems to be an excerpt of random channel banter :D
07:14:46 <olsner> Sgeo: maybe if you didn't submit it yourself in a fit of "omg I'm so funny" but rather waited until you said something that someone else found worth quoting, your first quote would be better
07:15:01 <elliott> OMG ITS ALMOST HALF RATED GOOD
07:15:05 <elliott> OMG OMG OMG OMG IM SO FANOUS
07:15:08 <fizzie> zzoquote's rating is appropriately "?".
07:15:51 <elliott> is it ok to vote myself up DONT CARE SUCKAS DOING IT ANYWAY
07:15:53 <olsner> (that's the reasoning I use to prevent myself from quoting all my super awesome puns just because no-one else did)
07:16:11 <elliott> coppro: http://qdb.us/303709
07:16:22 <elliott> coppro: plz explain your proximity to an imitator of I
07:17:44 <fizzie> I have a single well-voted bash.org-quote -- http://bash.org/?39012 -- and I can't quite recall if it was from #esoteric or not. Based on the content it might well be, though the other speaker's nick doesn't sound that familiar.
07:19:05 <olsner> elliott: you have all the logs memorized or something?
07:19:06 <fizzie> Not in my logs either, and I suppose I was on-channel at the time.
07:19:46 <olsner> oh, that's a much more realistic explanation
07:19:51 <Sgeo> I should wget them or something at some point
07:19:58 <Sgeo> Or sync with Gregor's project
07:20:03 <Sgeo> I feel willing to use cygwin
07:20:15 <elliott> you just need rsync for windows.
07:20:18 <elliott> http://qdb.us/302321 <-- wat
07:21:19 * Sgeo is now very curious as to what network that was
07:21:52 <elliott> zamabe [~zamabe@i.saw.this.giant.bird.and.his.name.was.linux] has quit [G-Lined: Spam sucks.]
07:22:16 <Sgeo> Christ is clearly Gamzee
07:22:40 <elliott> <fizzie> like there was this one day I took three grams of sugar and few litres of coke and some assorted lego mindstorm bits and made sense out of them
07:22:43 <elliott> fizzie: what does it MEAN?????
07:23:22 <Sgeo> http://honk-honk.org/ well, that's pathetically boring
07:24:38 <fizzie> elliott: More context would maybe make SENSE out of it, but I can't find any of this stuff from my logs. They must be in the -- dramatic pause -- OLD LOGS. Annoying that bash.org doesn't show a submission timestamp. (But the numbers are pretty low, they're around 900k now.)
07:25:02 <elliott> fizzie: This is why you should never snort Lego Mindstorm bits.
07:25:15 <fizzie> Is bash.org even older than 2002/2003?
07:25:53 <monqy> © QDB 1999-2011, All Rights Reserved. if that means anything
07:25:53 <olsner> old enough that it has always existed
07:25:55 <elliott> ais523: plz tell wikipedia they need an article on bash.org. thx
07:26:12 -!- Sgeo_ has joined.
07:26:16 <ais523> elliott: [[Wikipedia:Requested articles]]?
07:26:22 <Sgeo_> Going to throw this router in the trash
07:26:24 <elliott> ais523: it's probably existed a thousand times :P
07:26:43 <ais523> and nobody ever reads requested articles anyway
07:26:56 <elliott> "here's a lot of _actually difficult_ non-gnome work to do"
07:27:48 -!- Sgeo has quit (Ping timeout: 255 seconds).
07:29:02 <elliott> ais523: Do you know of any tolerable non-Java JVM languages?
07:29:08 <elliott> Clojure sucks, Scala sucks, Python sucks, Ruby sucks, ... :(
07:29:10 <Sgeo_> Ok, this xkcd is more of a ... pitch for some sci-fi show, than an actual comic
07:29:21 <ais523> elliott: why did you add "non-Java" to "tolerable"?
07:29:31 <fizzie> elliott: The Mindstorm one seems to come from Mar 29, 2002, and here's the context that will make it all sensible: http://p.zem.fi/37do
07:29:34 <elliott> ais523: Well, Java is... tolerable, it just shortens your lifetime.
07:29:39 <ais523> I wouldn't have expected you to think of Java as tolerable, even though you'd been writing in it
07:29:51 <elliott> fizzie: Suddenly it makes SENSE. Also you had no tab-complete.
07:29:59 <elliott> ais523: It's not good or acceptable, it's just... tolerable.
07:30:04 <elliott> I'm not, for instance, yet dead.
07:30:09 <elliott> Compare if I'd been using PHP.
07:30:25 <elliott> <elliott> I'm not, for instance, yet dead.
07:30:28 <elliott> has an insanely weird rhythm
07:30:42 <ais523> I was reading proggit discussing PHP deprecating the mysql library (in favour of mysqli)
07:30:45 <fizzie> elliott: I do like how mooz's "standard" way of decoding ROT13 is to run it through a Befunge program. That's dedication.
07:30:59 <ais523> they're deprecating it in one of the worst ways possible (in particular, generating no deprecation warnings)
07:31:04 <elliott> fizzie: that mooz guy sounds totally cool, he should drop his life and come have fun with us :(
07:31:18 <ais523> I use a firefox extension to derot13 stuff
07:31:19 <elliott> ais523: this is PHP, if they do anything like that they'll get murdered by the users
07:31:35 <elliott> ais523: I'm sure register_globals' deprecation was met with insane fury and footstomping
07:31:43 <ais523> but the thing doesn't even support parametrized queries!
07:31:49 <elliott> can you BELIEVE magic quotes??
07:31:50 <ais523> wait, what did magic quotes do?
07:31:59 <ais523> I know what register_globals did, and why it's an insanely bad idea
07:32:00 <elliott> ais523: automatically escaped every quote/backslash in query/form parameters
07:32:03 <elliott> so that you would avoid SQL injections
07:32:16 <Sgeo_> That's... not the right way to avoid SQL injections
07:32:20 <ais523> the worst thing is, in some cases that might actually work
07:32:21 <elliott> ais523: so you had to strip the slashes to output them
07:32:22 <ais523> which just makes it worse
07:32:43 <Sgeo_> How does anyone not know the right way to avoid SQL injections?
07:32:53 <ais523> it's like undefined behaviour, defined as "does more or less what you want except when you demonstrate it to a customer"
07:32:55 <Sgeo_> If they've HEARD of it, I mean, how do they not know
07:33:11 <elliott> Sgeo_: well, we are talking 1997/1998
07:33:24 <elliott> they probably didn't hear of it, someone probably just complained that their site got hacked
07:33:31 <elliott> and they looked at the ogs
07:33:34 <elliott> "aha, we need to escape this"
07:33:41 <elliott> "it would be convenient if you didn't have to"
07:33:45 <elliott> "so that you couldn't make mistakes like this"
07:34:07 <elliott> Sgeo_: when magic quotes was introduced,
07:34:20 <elliott> PHP still did loops by fseek()ing back to the start of the loop upon reaching its end
07:34:21 <ais523> elliott: I have a better idea for something that has PHP levels of awful and yet is not as bad as magic quotes
07:34:23 <elliott> and continuing execution from there
07:34:38 <Sgeo_> Are the mailing lists archived somewhere?
07:34:46 <Sgeo_> To actually see the thought processes
07:34:47 <ais523> you change the string concatenate operator to escape things it concatenates other than string literals
07:34:49 <Sgeo_> Instead of speculating
07:34:59 <ais523> elliott: and wow, that is a pretty ridiculous way to do loops
07:35:21 <elliott> ais523: If you have a SQL query tree, then it makes sense for a string node to be escaped in conversion to raw textual SQL
07:35:29 <elliott> That doesn't involve a concatenation operator, though
07:35:30 <monqy> elliott: why would anyone ever do loops like that
07:35:34 <Sgeo_> fseek()? That sounds like opening the file and I guess, in this context, executing part of it?
07:35:34 <elliott> But if you used string interpolation, it'd look about the same
07:35:44 <elliott> monqy: Never reading the dragon book?
07:35:47 <monqy> it amazes me how php manages to exist
07:35:58 <fizzie> Oh ghod, magic quotes. There were even separate settings for magic_quotes_gpc (for GET/POST/COOKIE fields) and magic_cookies_runtime (for database/fread/most-but-not-all-external-sources data), and you could never know which values will and will not have magically escaped quotes.
07:36:01 <elliott> ais523: actually, concatenation is really weird if you're thinking of an ast
07:36:13 <Sgeo_> fseek() + an eval, I guess?
07:36:17 <elliott> ais523: (select foo from) has to be a "partial query"... basically, wherever the parser ends up, you ... oh it's a zipper
07:36:22 <ais523> elliott: this is PHP, I'm just thinking of "whatever's hackiest to implement"
07:36:26 <Sgeo_> although wouldn't that hit stack overflow?
07:36:26 <elliott> you navigate down the parsetree with a zipper as you construct it
07:36:28 <fizzie> Current PHP docs: "There is no reason to use magic quotes because they are no longer a supported part of PHP. However, they did exist and did help a few beginners blissfully and unknowingly write better (more secure) code. But, when dealing with code that relies upon this behavior it's better to update the code instead of turning magic quotes on. So why did this feature exist? Simple, to help prevent SQL Injection. Today developers are better aware of security
07:36:28 <fizzie> and end up using database specific escaping mechanisms and/or prepared statements instead of relying upon features like magical quotes."
07:36:30 <elliott> and then when you reach the end )
07:36:37 <fizzie> See, "it made sense back then", they say.
07:36:45 <elliott> just replaces the hole in a
07:36:50 <ais523> elliott: reminds me a bit of the metasyntactic variable - in maths
07:36:59 <elliott> (if a is a holy-parse-tree)
07:37:12 <elliott> (select a from) + (foo.) + bar --> select a from foo.bar
07:37:20 <ais523> which is used to construct, basically, parse trees with holes in
07:37:32 <elliott> ais523: well, it's more like mixfix, but yes
07:37:45 <elliott> that is, it's more like defining arbitrary operators i.e. mixfix, than a parse tree
07:37:51 <elliott> because mathematics doesn't really /have/ parse trees
07:37:59 <elliott> well, not ones that even vaguely match up to the syntactic form
07:39:06 <elliott> ais523: oh man these holy parse trees are cool
07:39:22 <ais523> or is the typo deliberate?
07:39:40 <elliott> wonder what ((select a from) + (where b=9)) results in
07:39:52 <elliott> oh, clearly you just need a subtree-insert operation
07:39:56 <elliott> like inserting in a string
07:40:00 <Vorpal> <ais523> so you have to do silly things normally used only by Vorpal, and weird unusual libraries, or else confusing code that doesn't really mean what it looks like it means, to get your memory access patterns to what you want <--- XD
07:40:15 <Vorpal> "silly things normally"
07:40:27 <elliott> insert(1, sometable, (select a from) + (where b=9)) --> select a from sometable where b=9
07:40:35 <ais523> oh good, I don't actually have to implement posix_memadvise or whatever it's called
07:40:55 <Vorpal> ais523, posix_madvise iird
07:41:09 <ais523> elliott: err, secret project
07:41:22 <Vorpal> ais523, not very secret if you blab about it
07:41:24 <ais523> that explains anything I do that results in obscure questions about Linux internals
07:41:40 <elliott> ais523: STUPID PUBLIC LOGBOTS
07:41:43 <ais523> also, writing fakeinit
07:41:49 <Vorpal> ais523, when will it stop being secret
07:41:58 <ais523> Vorpal: when, if ever, it's finished
07:42:11 <elliott> ais523: good thing Feather wasn't under that, then
07:42:13 <elliott> or we'd never hear about it
07:42:20 <ais523> it's probably not that interesting to this community anyway, other than in being generally insane and programming-related
07:42:40 <elliott> ais523: so you mean, it is interesting to this community?
07:42:44 <Vorpal> ais523, why is it secret
07:43:01 <ais523> Vorpal: err, convoluted reasons
07:43:08 <elliott> ais523: s/convoluted/secret/
07:43:26 <ais523> that are really minor, in that the reasons don't really justify the effort I have to go to to stop anyone figuring out exactly what I'm doing
07:44:25 <ais523> I'd be a lot more cautious if it were an NDA
07:44:40 <ais523> what I care about is that people don't figure out exactly what I'm doing, or at least why
07:45:01 <ais523> figuring out approximately what is fine
07:45:05 <ais523> because it makes no sense out of context
07:45:12 <Vorpal> ais523, anyway the fact that you even consider "implementing" posix_madvise indicates it is a libc, OS or similar.
07:45:24 <elliott> ais523 is actually implementing Microcosm
07:45:37 <Vorpal> elliott, that could be it yes.
07:45:40 <elliott> ais523: wait, it's secret but not for official reasons?
07:45:48 <elliott> you don't love us :'''''''''''(
07:45:49 <ais523> I may ask someone to explain user-mode Linux to me at some point, but I don't think it does what I want
07:45:58 <ais523> elliott: it's secret for really inane and pointless reasons
07:46:04 <ais523> which makes me want to keep it secret all the more
07:46:17 <elliott> ais523: lamest???? signs point to YES
07:46:40 <ais523> it isn't an OS, at least
07:46:44 <ais523> it has some similarities
07:47:08 <fizzie> UML is very obvious from the name; it just runs an instance of the kernel as a user-mode task, without most of the drivers since they're not necessary, and some plumbing back to the host.
07:47:47 <ais523> hmm, I could even tell people its name and they wouldn't know what it did, but that's because it's not a very descriptive name
07:47:50 <fizzie> Sounds like some sort of A New Kind Of OS.
07:48:07 <ais523> but I'm not going to, because I suck at maintaining deceptions
07:48:14 <elliott> ais523: we will wear you down eventually
07:48:26 <ais523> bleh, why is everyone so excited?
07:48:27 <Vorpal> I'll leave that to elliott yes
07:48:39 <Vorpal> ais523, because it sounds interesting
07:49:06 <Vorpal> ais523, is this the always PID 2-project?
07:49:13 <elliott> which is apparently part of it
07:49:20 <elliott> ais523: oh come on, with your track record, we're interested in everything you do by definition
07:49:28 <ais523> it turns out that init doesn't actually do very much
07:49:53 <cheater_> hint: http://io.smashthestack.org:84/intro/
07:51:04 <elliott> nooooooooooooooooooooooooo
07:51:25 <cheater_> i really like the graphical demo
07:51:57 <cheater_> i wonder if they could use the existing partition table as a possible source of data for autogenerating more interesting graphical presentations
07:53:51 -!- monqy has quit (Quit: hello).
08:03:17 -!- elliott has quit (Read error: Connection reset by peer).
08:03:21 -!- elliott__ has joined.
08:04:07 <elliott__> ais523: what does it say about me that the first thing I thought in this recent patch of Java coding when I found that the Bukkit API forces you to use instanceof was "but that breaks parametricity!"?
08:04:34 <ais523> elliott__: that you're still thinking in terms of actual OO as compared to practical real world Java OO
08:04:43 <elliott__> ais523: umm, parametricity is a functional thing
08:04:58 <elliott__> in fact, it breaks down slightly with _|_, IIRC
08:05:01 <ais523> umm, there's an OO equivalent that's basically the same thing
08:05:06 <ais523> substitutability, or something
08:05:11 <ais523> just with different names
08:05:14 <ais523> instanceof is bad, anyway
08:05:30 <elliott__> that's not what parametricity is, really
08:05:35 <ais523> the only time I've used instanceof is to work around a really badly designed API
08:05:45 <elliott__> ais523: with Bukkit, it seems reasonable enough
08:06:01 <elliott__> ais523: e.g. in the body of a /command, you have a CommandSender
08:06:12 <elliott__> ais523: which could be the server console, a player, or <something else entirely that nobody's anticipated>
08:06:17 <elliott__> (you can execute commands in code)
08:06:23 <elliott__> ais523: so if you want to do something player-specific...
08:06:42 <ais523> those should be subclasses of CommandSender, surely?
08:06:47 <elliott__> probably there could be a nicer way of doing it, but I can't think of a similarly extensible one off the top of my head
08:06:51 <ais523> CommandSentByPlayer, etc
08:06:58 <elliott__> ais523: um, there is no such Command object
08:07:00 <ais523> although Java's lack of multiple inheritance stops that working properly
08:07:07 <ais523> well, what represents the /command itself?
08:07:18 <ais523> well, have different listeners, then
08:07:32 <elliott__> http://jd.bukkit.org/apidocs/org/bukkit/command/Command.html
08:07:36 <elliott__> http://jd.bukkit.org/apidocs/org/bukkit/command/CommandSender.html
08:09:29 <elliott__> "DefaultCommands is the only plugin you need for your server! It has everything!"
08:12:40 <elliott__> has anyone implemented nullity for a popular programming language?
08:15:36 <elliott__> http://www.bookofparagon.com/Mathematics/PerspexMachineIX.pdf good paper
08:16:34 <elliott__> "Imagine you're landing on an aeroplane and the automatic pilot's working," he suggests. "If it divides by zero and the computer stops working - you're in big trouble. If your heart pacemaker divides by zero, you're dead."
08:16:51 <Sgeo_> According to wiki, whether it equals itself is the only significant difference
08:18:00 <elliott__> stop abbreviating wikipedia as wiki
08:18:29 <Sgeo_> Am I allowed to abbreviate c2 wiki as wiki
08:19:02 -!- Taneb has joined.
08:20:29 <Taneb> Right, I'm on Windows 7 now, I may be able to get Haskell working
08:20:55 <Taneb> Downloading the platform installer...
08:22:39 <fizzie> Maybe you should provide us a progress bar too.
08:22:49 <ais523> hmm, TV Tropes queue emptied
08:23:00 <ais523> that was surprising, to say the least, I expected it to last longer
08:23:16 <Taneb> I'm getting good at escaping TVTropes
08:23:17 <olsner> wat, you ran out of tv tropes?
08:23:25 <elliott__> fizzie: tell ais523 about your system
08:23:28 <ais523> olsner: well, i don't follow every link
08:23:35 <elliott__> ais523: I managed to escape TV Tropes perfectly
08:23:43 <Taneb> I also need to remember to use full stops.
08:23:44 <ais523> in fact, I tend to follow less than 1 link on average from each page
08:23:50 <ais523> elliott__: don't tell me you memorized the whole thing?
08:24:06 <Taneb> They're like the semicolons of written language
08:24:27 <elliott__> ais523: nope, i started finding people casually dropping trope terminology as a substitute for actually knowing anything about fiction sufficiently annoying that every time I read a page it's insanely obnoxious
08:24:34 <elliott__> I've developed a natural resistance
08:25:30 <fizzie> My system consists of a .txt file of tvtropes URLs; there's about 60 or so in there. I pick from there at random, and then add any interesting-sounding non-duplicate links at the end of the file.
08:25:54 <elliott__> fizzie: make it an sql database; then you don't have to worry about duplicates
08:25:56 <ais523> fizzie: that's not too dissimilar from mine, except that I do more than one at a time
08:26:03 <ais523> and queue rather than picking at random
08:26:13 <Taneb> My escape system is, think of something else, close the browser in one go, realise I'm not in TVTropes anymore, celebrate.
08:27:00 <elliott__> ais523: here's an idea: a script that detects if you ever click a link you've clicked before this session; if you do, it closes the tab you clicked it on
08:27:17 <elliott__> eventually, you'll get sufficiently paranoid of clicking links that you'll give up
08:27:18 <ais523> elliott__: why would that help?
08:27:25 <elliott__> or, I suppose, run out of links that don't self-destruct
08:27:33 <ais523> I click duplicates sometimes, but they don't take much effort to close
08:27:43 <elliott__> ais523: well, it's just a "this has gone on way too long" signal :D
08:27:56 <elliott__> and since it closes duplicates, there's no way to get back a page it takes away from you
08:27:58 <Taneb> I always seem to end up at the page for Futurama
08:28:31 <ais523> well, it happened to me recently, which makes sense as I stay within related groups of pages
08:28:50 <ais523> do people normally browse it aimlessly?
08:28:56 <ais523> normally I go there to look up something in particular
08:29:13 <elliott__> ais523: people end up on it and then can't get out because every link looks interesting
08:29:48 <ais523> well, the links that look interesting to me tend to form a finite subset, and be only a couple on each page
08:30:04 <ais523> and eventually they end up forming a walled garden, when I disregard links I don't care about
08:30:11 <ais523> it also helps that I have some of the more common targets memorized
08:30:21 <ais523> in fact, it's reaching the point that I can often guess what's behind a piped link too
08:33:14 <elliott__> hmm, is wtf-is-latin's-code:generis etymologically related to en:generic at all?
08:34:20 <Taneb> Hang on, I can find out
08:34:50 <fizzie> generic: "Etymology: Either < post-classical Latin genericus (a1315; also 1644 in Descartes), or directly < classical Latin gener-, genus kind (see genus n.) + -ic suffix."
08:37:36 <Taneb> Variables in Haskell do not vary?
08:37:47 <Taneb> Then why the hell are they called variables?
08:38:15 <elliott__> Taneb: But really, they vary as much as variables do in mathematics
08:38:34 <elliott__> I wouldn't actually call f a variable...
08:38:41 <elliott__> But it is one, technically, I'd say
08:39:03 <Taneb> No, just Wikibooks
08:39:17 <elliott__> It's not a very good tutorial at all IMO
08:39:40 <elliott__> http://learnyouahaskell.com/ is the best tutorial but if you really can't stand cartoon animals then I guess Real World Haskell might suffice
08:41:03 <elliott__> Taneb: Or, well, read what you want but if you suffer eternally then I warned you :-P
08:42:05 <Taneb> Thanks for the pointers
08:44:22 <elliott__> Taneb: Real World Haskell is also good to read after LYAH; it's good on the overall "how to structure and write a Haskell program" which isn't easy to see coming from imperative languages, but less so on the details of the actual language which LYAH covers bettwe
09:06:38 -!- Taneb_ has joined.
09:08:19 -!- Taneb has quit (Ping timeout: 252 seconds).
09:11:35 -!- Taneb_ has changed nick to Taneb.
09:15:57 -!- ais523 has quit (Remote host closed the connection).
09:20:30 <Taneb> Haskell's pretty neat
09:22:17 <Taneb> The elegance of that is outstanding
09:28:56 <fizzie> 2 4 8 16 32 64 128 256 512
09:29:29 <elliott__> fizzie: How does MATLAB print arrays longer than the screen?
09:29:48 <fizzie> It continues on the second line with "Column 10".
09:29:51 <fizzie> Didn't bother pasting.
09:30:13 <fizzie> The output formatting is not very pretty in general, though.
09:31:20 <fizzie> (There's a spreadsheet-like matrix viewer in the GUI side.)
09:39:05 -!- Phantom_Hoover has joined.
09:41:36 <elliott__> hmm, is it usual to nest packages in Java to provide a hierarchy?
09:41:41 <elliott__> rather than prefixing a bunch of class names
09:41:51 <elliott__> I guess not, since you can't import them qualified like that
09:44:03 <fizzie> The larger collections in the standard runtime do have some hierarchical packagemancy going on. E.g. java.awt has java.awt.font, java.awt.color, java.awt.image and so on for not-used-all-the-time specializations.
09:45:45 <elliott__> It's net.[secret].[secret].MiscellaneousCommands vs. net.[secret].[secret].commands.Miscellaneous.
09:56:00 -!- Taneb has quit (Quit: Page closed).
10:19:35 -!- FireFly has joined.
10:19:39 -!- FireFly has quit (Changing host).
10:19:40 -!- FireFly has joined.
10:23:22 -!- oklofok has quit (Read error: Connection reset by peer).
10:23:31 -!- oklopol has joined.
10:36:56 <Lymee> >> take 5 $ fix (+1) 0
10:37:02 <Lymee> > take 5 $ fix (+1) 0
10:37:03 <lambdabot> arising from a use of `e_1510' at <int...
10:37:23 <Lymee> Fix is for infinite loops, right?
10:38:45 <elliott__> that doesn't imply infinite loops by any stretch
10:39:22 <elliott__> > let fact me 0 = 1; fact me n = n * me (n-1) in fix fact 9
10:39:25 <elliott__> Lymee: note how fact doesn't refer to itself
10:40:32 <elliott__> in fact that's the implementation, almost
10:40:40 <elliott__> (it's actually "fix f = let x = f x in x" for sharing)
10:41:10 <lambdabot> Overlapping instances for GHC.Show.Show (a -> b)
10:41:36 * Lymee is quite sure she has at least one type wrong.
10:41:48 <elliott__> Lymee: are you trying to get just _|_>
10:41:56 <Lymee> elliott__, I'm being silly.
10:42:08 <elliott__> Lymee: i was asking how exactly you're trying to be silly
10:42:19 <Lymee> Create ways to crash things.
10:43:29 <Lymee> > error "Not even this way?"
10:43:43 <Lymee> (heh obviously not)
10:43:46 <Lymee> (that would be horrible otherwise)
12:00:19 -!- Taneb has joined.
12:14:05 -!- boily has joined.
12:25:13 <Gregor> My advisor was in Paris on Thursday, Indiana this weekend, and is now in Seattle.
12:25:20 <Gregor> To quote: "My body clock is ... missing"
12:27:54 -!- asiekierka has joined.
12:28:11 <lambdabot> Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them.
12:28:36 <elliott__> Do you want me to leave a message when I leave messages?
12:28:51 <elliott__> I don't remember leaving any, those must be from at least yesterday.
12:29:51 <Taneb> Just pretend you're in California
12:43:07 <elliott__> Taneb: I was about to say "oh, what a coincidence; it's raining here too" but then I... yeah.
12:43:47 <Taneb> I'm still outstanded by that coincidence
12:43:55 <Taneb> Whereabouts in Hexham do you live?
12:44:25 <Taneb> Give me an East or a West
12:45:56 <HackEgo> 498) <fizzie> elliott: You have become the very thing you fought for!
12:48:51 -!- asiekierka has quit (Quit: Page closed).
12:58:26 <elliott__> Phantom_Hoover: Does it have to be a modem too?
12:58:41 <elliott__> Phantom_Hoover: So you have a separate ADSL modem?
12:58:59 <elliott__> Phantom_Hoover: http://www.linksysbycisco.com/UK/en/products/WAP54G
12:59:05 <elliott__> For extra niceness run OpenWrt on it.
12:59:25 <elliott__> (I technically haven't used that Linksys router, but I own one and let's face it, I've never heard a single person do anything but recommend it.)
12:59:47 <elliott__> PC with 300MHz or Faster Processor
12:59:47 <elliott__> Internet Explorer 5.0 or Netscape Navigator 6 or higher for Web-based Coniguration
12:59:47 <elliott__> Windows 2000 or XP (to use the Setup Wizard)
13:00:30 <fizzie> Only if you want to "conigure" it.
13:01:16 <fizzie> The WAP (at least some hardware revisions of it) has significantly less flash than the WRT, so running OpenWRT on it (at least some models) is a bit painful.
13:01:17 <elliott__> Phantom_Hoover: why'd you want to know a good router anyway.
13:01:34 <elliott__> fizzie: Oh well, nothing really wrong with the Linksys firmware is there?
13:01:45 <elliott__> I mean, unless you REALLY want to run a web server off your router.
13:01:50 <fizzie> Not really, unless you want to do Fancy Tricks.
13:02:06 <elliott__> Is there a better wireless router by Linksys?
13:02:08 <Phantom_Hoover> elliott__, because the current one sucks to the extent that I have been using the neighbours' network exclusively for a month.
13:02:14 <elliott__> Oh, http://www.linksysbycisco.com/UK/en/products/WAP54G
13:02:35 <elliott__> fizzie: Does the WAP even have Ethernet ports?
13:02:57 <fizzie> That's pretty much the main difference between the WRT and the WAP.
13:03:01 <elliott__> Phantom_Hoover: Yeah OK get the WRT54GL or WAP54G if you can't.
13:03:10 <elliott__> fizzie: Their site is badly organised :-P
13:03:16 <elliott__> The routers section looked wired-only to me
13:03:35 <elliott__> Phantom_Hoover: It's... what does that even mean?
13:03:41 <fizzie> I haven't been following Linksys hardware in the recent years, so I don't know what are their current models.
13:03:47 <elliott__> fizzie: they're all black and shiny and round.
13:04:01 <Phantom_Hoover> elliott__, well, I'm on the opposite side of the house to where the modem is.
13:04:01 <elliott__> Phantom_Hoover: I mean it has DUAL ANTENNAE.
13:04:26 <elliott__> Phantom_Hoover: I doubt you'll find anything with an especially better signal strength without, I dunno, buying some kind of super-expensive corporate Cisco router.
13:04:29 <fizzie> You might need a newer thing if you want 802.11n, though. Unless they have modernized versions of the 54G series.
13:04:32 <elliott__> fizzie can tell me I'm full of shit if he wants.
13:04:42 <elliott__> fizzie: We don't have fast enough internet connections in the UK for n to matter :)
13:05:08 <fizzie> Well, you might want to hang some sort of NAS into a Ethernet port or something, I'unno.
13:05:20 <Phantom_Hoover> elliott__, hey, I theoretically have fibre optic broadband!
13:05:22 <elliott__> Seems there's a bunch of tangly spinoffs and the like.
13:05:32 <fizzie> The network projected by my WAP54G certainly has worked just fine through two non-load-bearing walls.
13:05:32 <elliott__> Phantom_Hoover: What speed do you get when plugged in via Ethernet?
13:05:59 <elliott__> Phantom_Hoover: That was a sincere question.
13:06:19 <elliott__> It could just be really bad WiFi that's making it slow.
13:09:24 <fizzie> WRT160NL seems to be the modernized version of WRT54G for OpenWRT purposes; at least it's on the list of supported hardware. In other ways it seems to have the standard-ish hardware configuration; one ethernet port for a modem/cable/whatever, a four-port ethernet switch for wiring things directly, and then the wireless.
13:09:53 <elliott__> Also it's like ten quid more expensive.
13:09:54 <fizzie> I don't have any personal knowledge of post-{WAP,WRT}54G* models.
13:10:04 <fizzie> It does look more evil, that's for sure.
13:10:15 <Phantom_Hoover> <elliott__> Phantom_Hoover: What speed do you get when plugged in via Ethernet?
13:10:39 <Phantom_Hoover> I cannot just plug the computer into the modem and get a connection, but I suspect this is my fault.
13:10:57 <elliott__> Does your router not have ethernet ports?
13:11:26 <Phantom_Hoover> But if I plug the ethernet cable from the modem into my computer, nothing happens.
13:11:33 -!- CakeProphet has joined.
13:11:34 -!- CakeProphet has quit (Changing host).
13:11:34 -!- CakeProphet has joined.
13:11:39 <elliott__> Stop confusing "router" and "modem", Phantom_Hoover.
13:12:11 <elliott__> Does your router not have ethernet ports?
13:12:35 <fizzie> "Router? We hardly knew her!"
13:12:46 <elliott__> Phantom_Hoover: then why are you plugging the ethernet into the modem.
13:13:06 <Phantom_Hoover> I think it was because the router wasn't there or something.
13:13:53 <fizzie> Gregor: The WRT160NL has 40 units more of... stuff. Plus an L.
13:14:10 <elliott__> `addquote <Gregor> I have a WRT120N <fizzie> Gregor: The WRT160NL has 40 units more of... stuff. Plus an L.
13:14:11 <HackEgo> 513) <Gregor> I have a WRT120N <fizzie> Gregor: The WRT160NL has 40 units more of... stuff. Plus an L.
13:14:17 <elliott__> Phantom_Hoover: It's black and shiny.
13:14:24 <elliott__> Phantom_Hoover: Pls to be trusting my superior judg-
13:14:25 <Gregor> Phantom_Hoover: 'snot bad.
13:14:33 <Gregor> The 'L' means it supports custom firmwares by the way.
13:14:40 <Gregor> Supports as in actively supports.
13:14:43 <elliott__> Phantom_Hoover: http://www.ebuyer.com/product/191548?utm_source=google&utm_medium=products
13:14:46 <Gregor> (Not hacktively supports)
13:15:05 <elliott__> fizzie: It also has over twenty more pounds :-P
13:15:26 <Gregor> Mind you, the 120N can't run OpenWRT.
13:16:27 <elliott__> Phantom_Hoover: ONLY TWENTY-THREE QUID THAT'S A BLOODY BARGAIN
13:16:39 <Gregor> The native firmware is not bad at all, actually.
13:16:53 <elliott__> Phantom_Hoover: WITH CHEAPEST POSTAGE IT'S £27.16
13:16:54 <Gregor> I remember using a ... WRT-wtf-some-old-shit and thinking "this firmware SUCKS I need DD-WRT"
13:16:59 <Gregor> But the modern firmware is much better.
13:17:12 <elliott__> Gregor: Any Linksys firmware would be godly coming from the ISP-supplied crap I'm using.
13:17:30 <elliott__> dd-wrt always sets off my... marketing alarms.
13:17:44 <elliott__> Who are these people and why are they spending more time making a sleek website than coding.
13:17:54 <elliott__> Phantom_Hoover: EXCUSE ME I JUST ADDED IT AND WORKED OUT THE CHEAPEST POSTAGE
13:18:12 <Gregor> Y'know, there are these things called "stores"
13:18:16 <Gregor> You can go to them to buy things.
13:18:22 <Gregor> And then you have them immediately, no waiting for post.
13:18:37 <elliott__> Gregor: Considering how much more expensive most of the sellers of those routers are...
13:18:51 <elliott__> Gregor: I'm gonna say that buying it from the cheap, reputable online store is a better idea.
13:19:01 <elliott__> Phantom_Hoover: I DON'T BUT THE POSTAGE DIDN'T ASK FOR AN ADDRESS
13:19:06 <CakeProphet> > makeHash alphabet = fromList . zip $ (`replicateM` alphabet) =<< [0..] $ [0..]
13:19:07 <lambdabot> <no location info>: parse error on input `='
13:19:13 <CakeProphet> > makeHash alphabet = fromList . zip $ (`replicateM` alphabet) =<< [0..] $ [0..] in makeHash "abc"
13:19:14 <lambdabot> <no location info>: parse error on input `='
13:19:21 <CakeProphet> > let makeHash alphabet = fromList . zip $ (`replicateM` alphabet) =<< [0..] $ [0..] in makeHash "abc"
13:19:22 <lambdabot> Couldn't match expected type `[(a, GHC.Real.Rational)]'
13:19:42 <Gregor> I bought my WRT120N for $40 last week. That's about 25
13:19:55 <elliott__> Gregor: Congratulations, you're in America where electronics are generally cheaper.
13:20:02 <elliott__> Next on a series of really obvious things...
13:20:29 <Gregor> Looks like you fail at being AMERICAN
13:20:34 <Gregor> lul look at their accent
13:20:43 <Gregor> THEY DON'T PRONOUNCE THEIR 'R'S
13:21:17 <Taneb> Actually, that Brits don't pronounce our "R"'s is slightly unaccurate
13:21:26 <Taneb> We pronounce them when they begin a syllable
13:21:38 <CakeProphet> > let makeHash alphabet = M.fromList . zip $ (`replicateM` alphabet) =<< [0..] $ [0..] in makeHash "abc"
13:21:39 <lambdabot> Couldn't match expected type `[(k, a)]'
13:21:49 <fizzie> I like how the local retailer sells this "cheap networking products" brand called "Netwjork". It sounds so incredibly reliable.
13:21:52 <Gregor> Taneb: Also there are more accents in the British isles than in North America :P
13:21:55 <lambdabot> forall a b. [a] -> [b] -> [(a, b)]
13:22:08 <Phantom_Hoover> Most English accents drop rs after vowels to a greater or lesser extent, yes.
13:22:44 <fizzie> The Netwjork WLAN router is 19.90 eur, so £17/$28.
13:22:44 <Phantom_Hoover> Scottish and Irish ones don't, with a very few exceptions.
13:23:06 <tswett> How about Viking accents?
13:23:09 * CakeProphet actually doesn't have much of an accent. He masks it pretty well usually.
13:23:23 <Gregor> Dood. General American accent can kick all your butts.
13:23:32 <CakeProphet> it's covert enough that other southern people do not hear my accent, but people from other regions will still notice it a little bit.
13:23:35 <Gregor> I can make people's ears bleed by talking to them.
13:24:06 <tswett> The General Americam accent is stupid. Now, a Midwest accent: that's a good accent.
13:24:08 <CakeProphet> also why the fuck is this code not working.
13:24:26 <Gregor> tswett: The Midwest accent is the prototype of the GA accent :P
13:24:39 <elliott__> Phantom_Hoover: ARE YOU GOING TO BUY IT
13:24:41 <Gregor> Unfortunately, my western US accent is shifting into a midwest accent :(
13:24:41 <tswett> Gregor: does GA have Canadian raising?
13:24:52 <Gregor> tswett: No. Neither does the vast majority of the midwest.
13:24:57 <elliott__> Phantom_Hoover: I agree tswett's native country's accent is sweet.
13:25:20 <tswett> Okay, a Hancock accent. :P
13:25:29 <CakeProphet> > let makeHash alphabet = M.fromList . zip ((`replicateM` alphabet) =<< [0..]) $ [0..] in makeHash "abc"
13:25:49 <CakeProphet> my incredibly efficient hash function does not construct very quickly or something.
13:27:47 <Phantom_Hoover> elliott__, also cheapest shipping on that router is useless.
13:27:54 <lambdabot> forall a b. (Eq a) => a -> [(a, b)] -> Maybe b
13:27:58 <elliott__> Phantom_Hoover: You're gone for a week anyway.
13:28:01 <tswett> Hancock is the United States' Finnish outpost. It has a teleporter that takes you to Porvoo, Finland.
13:28:12 <Phantom_Hoover> elliott__, yes, so I don't exactly want it arriving to an empty house.
13:28:23 <CakeProphet> elliott__: not quite as efficient as the non-existence infinite Map.
13:28:26 <elliott__> Phantom_Hoover: Yes they will abandon it at the door so that ten people can steal it.
13:28:29 <CakeProphet> you know, the one that has to rebalance itself all of the time.
13:28:56 <elliott__> CakeProphet: would be kinda cool if it like constructed the tree on lookup, then like
13:29:02 <tswett> (Obviously, Porvoo has a teleporter that takes you back to Hancock.)
13:29:36 <elliott__> CakeProphet: it makes no sense, so no.
13:29:56 <CakeProphet> it sounded pretty strange, but I wasn't sure...
13:30:35 <CakeProphet> this coming from someone who is trying to implement a hash function as a Map.
13:31:05 <fizzie> Why Porvoo in particular?
13:32:00 <CakeProphet> really I'm just trying to find as many uses as possible for the set-of-all-strings-in-an-alphabet thing.
13:32:08 <Zwaarddijk> because the bishop of the porvoo diocese is pretty important in this conspiracy
13:32:14 <CakeProphet> hash function is probably not one of them, I guess.
13:33:25 <tswett> fizzie: I don't know; it wasn't my decision.
13:39:52 <tswett> But I can assure you the teleporter definitely takes you to Porvoo.
13:53:42 <CakeProphet> if we had a concrete metric for expressiveness
13:56:59 <CakeProphet> but I guess expressiveness has a lot to do with your available library.
13:57:57 <CakeProphet> its generality or the conrete problems it solves.
13:59:31 <CakeProphet> I can generate a powerset in Haskell as well as list all finite strings in an alphabet with two functions.
14:10:44 -!- derrik has joined.
14:12:57 -!- BeholdMyGlory has joined.
14:18:56 -!- derrik has left.
14:21:57 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:47:50 -!- copumpkin has joined.
14:47:51 -!- copumpkin has quit (Changing host).
14:47:51 -!- copumpkin has joined.
15:03:10 -!- augur has quit (Remote host closed the connection).
15:12:13 -!- asiekierka has joined.
15:23:17 -!- Sgeo_ has quit (Read error: Connection reset by peer).
15:23:50 -!- Sgeo_ has joined.
15:31:33 -!- augur has joined.
15:39:30 -!- monqy has joined.
16:08:59 -!- MigoMipo has joined.
16:11:33 -!- copumpkin has quit (Ping timeout: 264 seconds).
16:11:58 -!- copumpkin has joined.
16:11:59 -!- copumpkin has quit (Changing host).
16:11:59 -!- copumpkin has joined.
16:17:41 -!- Taneb has quit (Ping timeout: 252 seconds).
16:27:26 -!- Taneb has joined.
16:52:31 -!- Taneb has quit (Ping timeout: 252 seconds).
17:03:54 -!- augur has quit.
17:04:32 -!- augur has joined.
17:04:44 -!- copumpkin has changed nick to anafunctor.
17:10:56 -!- zzo38 has joined.
17:11:02 -!- augur has quit (Remote host closed the connection).
17:11:30 -!- anafunctor has changed nick to copumpkin.
17:24:07 -!- Taneb has joined.
17:26:19 -!- pikhq has quit (Ping timeout: 246 seconds).
17:32:15 -!- azaq23 has joined.
17:44:00 -!- Taneb has quit (Quit: Page closed).
17:49:45 -!- asiekierka has quit (Quit: Page closed).
17:51:49 -!- augur has joined.
18:03:27 <zzo38> Do they exist Knuth-style literate Haskell?
18:10:02 <lifthrasiir> Automatically guessed a kind "spoon" for the extension ".sp".
18:10:03 <lifthrasiir> Found a path with 4 processors (weight=25): stream --(10)--> spoon --(5)--> brainfuck --(9)--> interp-textio --(1)--> interp
18:10:32 <lifthrasiir> now i have to determine whether .bf belongs to Brainfuck or to Befunge...
18:11:49 <zzo38> You can use .b for Brainfuck so that .bf can be used for Befunge, it is what sometimes is used convention.
18:11:53 -!- Taneb has joined.
18:12:17 <lifthrasiir> i've seen .bf for brainfuck in the wild, so i wasn't quite sure about it.
18:13:01 <zzo38> Yes it is sometimes used. Although I believe the recommended convention is .b for brainfuck (which is also commonly used).
18:15:10 <Taneb> Here's an idea for an esolang name: lingua abstrusa
18:16:35 <lifthrasiir> and due to the obvious reason its preferred file extension would be a period followed by Unicode code point U+3164.
18:16:52 <Taneb> It would be declarative, if I understand declerative right.
18:16:53 <quintopia> language names aren't as interesting as language ideas
18:17:38 <Taneb> Claudius patros Augusti est is equivalent to Augustus cliens Claudii est
18:18:14 <Taneb> People (the only data type) can have many clients but only one patron
18:19:32 <Taneb> Each person has an occupation, e.g. agricola
18:19:53 <Taneb> Occupation is defined such as Claudius aricola est
18:20:05 <Taneb> People are second declension
18:20:10 <Taneb> Occupations are first
18:20:20 <Taneb> Operations are based on occupation
18:22:05 <Taneb> Occupations can also be third declension
18:25:00 <Taneb> agricolae res mercatori dare potest
18:25:29 <Taneb> mercatori res omnes dare potest
18:27:06 <Taneb> agricolae cibum facit
18:28:15 <Taneb> artifices artes facit
18:29:23 <Taneb> saceradotes I/O sunt
18:29:34 <Taneb> How does this look so far?
18:37:42 <Taneb> It needs more syntax
18:38:50 <Taneb> Making a page on the wiki for it under my username
18:51:39 <Phantom_Hoover> Also consider that esolangs built around syntax tend to suck.
18:58:44 <Taneb> Going to watch University Challenge now, bye
18:58:47 <quintopia> if the point is to have unusual syntax...
18:59:41 <fizzie> Sometimes .bef is used for Befunge, since it's more unambiguous.
18:59:49 <fizzie> And of course .b93/.b98.
19:01:04 * Gregor invents a trivial alteration of Brainfuck called BeFuck. The only differences between BF and BeF are 1) that < and > are swapped for { and }, and 2) the file extension is .bef
19:01:31 -!- pikhq has joined.
19:03:07 <Gregor> With a name like BeFuck, the only difference SHOULD be a terrible C++ API and fanatic devoted followers.
19:06:52 -!- hiato has joined.
19:06:53 -!- hiato has quit (Client Quit).
19:30:33 <Taneb> Clare college Cambridge won
19:30:50 <Taneb> Beat Winchester college Oxford 190-180
19:32:45 <pikhq> *Ugh*. So, I found out that my drive needs 4k alignment, but doesn't report that.
19:33:05 <pikhq> And it's a *royal* pain to change the start of an LVM PV.
19:33:20 -!- oerjan has joined.
19:33:35 <pikhq> Like, "I'm probably going to have to start shuffling shit."
19:33:57 <oerjan> shuffling shit is not very fun, i think
19:34:24 <Taneb> That was one of the Twelve Tasks of Herakles
19:34:42 <pikhq> oerjan: Shuffling my partitions so that I can have them start on 4k boundaries.
19:34:42 <oerjan> hm indeed. so the moral is, use lots of water.
19:35:13 <pikhq> Which, for drives with 4k physical blocks, can double or triple IO performance.
19:35:49 <pikhq> And for utterly *retarded* reasons, most drives report that they have 512 byte blocks.
19:36:05 <pikhq> (yes, there is a scheme for reporting the drive's physical layout, but drives lie.)
19:36:31 <olsner> of course they lie, if they told the truth the operating systems would just be so terribly confused by all the information
19:36:40 <pikhq> *And* sometimes the layout is offset. There is also a means of reporting *this*, but the drives lie about it too.
19:37:53 * oerjan skips most of the logs today.
19:38:35 <oerjan> <zzo38> Do they exist Knuth-style literate Haskell?
19:38:59 <oerjan> what do you mean by knuth-style? \begin{code}...\end{code} is one of the supported styles, anyhow
19:39:08 <pikhq> ... I think my drive is 512 *bytes* off, too. :/
19:39:21 -!- ais523 has joined.
19:39:25 <oerjan> (the other being "> " bird marks)
19:40:01 <olsner> pikhq: so the first block is just 1/8th block? and then the rest of the disk is filled with n+7/8 blocks?
19:40:16 <zzo38> By "Knuth-style" I mean things such as: Table of contents, index, named chunks (which can be included in others), pretty printing, print out (rather than HTML), etc. Partially also the input format, but mostly I refer to the output presentation and how they work in general.
19:40:38 <pikhq> olsner: It's a workaround so that a partition spanning the entire disk will pretty much work.
19:40:57 <pikhq> Guess what isn't the norm in Linux-land?
19:41:09 <olsner> so the 512 bytes is for an MBR, basically?
19:41:12 <oerjan> zzo38: oh. i don't know. maybe some of that if you also use haddock. istr it does not support reordering things though (and haskell doesn't really need that)
19:41:12 <zzo38> (Also, I happen to prefer Plain TeX + DVI rather than using LaTeX + PDF, although this is mostly a matter of preference)
19:41:28 <pikhq> Also, the traditional layout required 512 byte alignment.
19:41:33 <oerjan> (since most haskell declarations can appear in arbitrary order)
19:42:22 <zzo38> oerjan: However, note cross-references. Also named chunks might be useful in case of very complicated expressions or something like that maybe.....
19:42:26 <pikhq> So, if I could easily move my LVM partition 512 *bytes* towards the start, I'd be set up right.
19:42:41 <pikhq> Unfortunately, that is nontrivial.
19:43:00 <olsner> dd can probably do that :>
19:43:13 <oerjan> zzo38: the haddock-generated html on hackage does have many interior cross-links
19:43:49 <Gregor> Fish generate all my HTML.
19:43:53 <zzo38> Well, but that is HTML. Not printout format.
19:45:09 <oerjan> ah yes also haddock isn't tex/latex based
19:45:22 <zzo38> And then Knuth-style does prettyprinting.
19:46:03 -!- zzo38 has quit (Quit: zzo38).
19:48:08 <pikhq> I seem to get 58 MiB/s writing to my filesystem.
19:48:27 <pikhq> The *raw* performance of my drive being ~114 MiB/s.
19:57:36 * oerjan stares at Taneb. like a cow.
19:58:06 <Taneb> That's based on real events
19:58:42 <Taneb> I walked through a field with cows in it, and the cows stared at me
19:59:04 <oerjan> and then you suddenly woke up with a lot of dead cows around, i assume.
19:59:33 <Taneb> Yes. That is exactly what happened.
20:00:05 <Taneb> I'm not sure if this esolang I'm making will ever be turing-complete
20:00:34 <Taneb> Right now, it's more of a farming sim
20:01:16 <Taneb> http://esoteric.voxelperfect.net/wiki/User:Taneb/lingua_abstrusa
20:01:35 <ais523> Taneb: have you seen Lingua::Romana::Perligata?
20:01:49 <ais523> it's probably a bit different from what you're doing, but it's awesome
20:02:33 <Taneb> That's just a Perl dialect
20:02:53 <Taneb> I say just, but a lot of work probably went into it
20:04:41 * oerjan clings to the illusion that "soli" may be a legitimate variation there
20:05:35 <Taneb> Ave Damian Conway, facentes te salutant
20:05:51 <Taneb> *lingas abstrusas facentes
20:06:23 <Taneb> From facio, facere
20:06:59 <oerjan> ok even i should have known that
20:07:18 <Taneb> lingua abstrusa is as close to esoteric language as I could be bothered to work out
20:23:29 -!- pikhq has quit (Quit: Bleh).
20:24:38 <Phantom_Hoover> Taneb, you know that 'esoterica' is a Latin word, right?
20:24:50 <Taneb> I thought it was Greek
20:25:57 * oerjan madly corrects Taneb's grammar
20:26:09 -!- pikhq has joined.
20:26:24 <cheater_> why are you people talking about polish constitution
20:27:26 <oerjan> Taneb: feel free to undo if you thought that was too mad
20:27:45 <cheater_> http://en.wikipedia.org/wiki/Nihil_novi
20:28:19 <oerjan> or if, heaven forbid, i actually got something wrong
20:29:14 <cheater_> oerjan, clickady-clickadilidoo
20:30:32 <oerjan> cheater_: shut up, you mere peasant
20:31:21 <cheater_> oerjan, i come from a royal family
20:31:53 <Taneb> ...I may be part Sri Lankan
20:31:59 <oerjan> oh so you're a _royal_ pain in the ass?
20:32:16 <Taneb> I'm definitely English and Dutch decent
20:32:49 * oerjan recalls his mother's family had some dutch nobility way back
20:33:10 <Taneb> But I'm peasantry as far as tracable
20:34:09 <Taneb> I've got a friend who's grandfather was a peer
20:34:26 <Taneb> Of the house of Lords
20:34:43 <Taneb> That offers me some social standing, feudal system wise
20:34:48 <oerjan> alas, norway abolished its aristocracy in 1814
20:36:03 <cheater_> my family is older than any country i have lived in
20:36:25 <oerjan> if you say so, Mr. Noah
20:37:16 -!- tswett has quit (Changing host).
20:37:17 -!- tswett has joined.
20:37:26 <Phantom_Hoover> My family is Irish peasants as far as the eye can see.
20:38:04 <Taneb> My family has bee traced back to the 26th of December 1613
20:38:04 <oerjan> well my family is pretty much mostly norwegian fishermen afaik
20:38:39 <Phantom_Hoover> Taneb, ISTR that my family has been traced back to Rathlin, before which they were in Scotland which makes tracing it very hard.
20:40:56 <oerjan> your great great great great great great great great great great great great great great great great great great great great great grandmother was nessie
20:41:42 <Taneb> Nessie was in Loch Ness. Phantom_Hoover's family comes from the Hebrides
20:41:57 <Taneb> Or as I like to call them, the Grooms
20:42:30 <oerjan> well obviously the people from the hebrides are hybrids, duh
20:42:46 <Taneb> Island group off the West Coast of Scotland
20:43:17 <Taneb> I made it up for the sake of a joke
20:44:17 <Taneb> Disprooving the nessie claim in a kinda stupid way
20:44:25 <Taneb> When there are more sensible ways to do it
20:44:46 <Taneb> And then I pointed out the spelling of the island group looks like he-brides
20:45:38 <Taneb> Islam, like Christianity, was created by a bunch of people doing what a Jew told them to do
20:46:00 <Taneb> Somewhere in the Middle East
20:46:21 <oerjan> Taneb: i'm not sure that is much more accurate than what Phantom_Hoover quoted
20:46:42 <Taneb> Jesus and Mohammed were both Jews
20:46:47 <Taneb> In the Middle East
20:47:01 <oerjan> i cannot recall ever hearing that mohammed was a jew
20:48:54 <oerjan> iirc muhammed was from a pagan tribe
20:49:06 <Taneb> Okay, prove me wrong
20:49:30 <Taneb> Anyway, they both have Judaism as a major influence
20:52:48 <Taneb> Okay, my ancestry has been traced back to the probably 16th century
20:52:57 <oerjan> "Muhammad’s denunciation of the Meccan traditional religion was especially offensive to his own tribe, the Quraysh, as they were the guardians of the Ka'aba."
20:53:16 <Taneb> The parents of someone who got married in 1611
20:54:31 <oerjan> "About five generations before Muhammad the situation was changed by Qusai ibn Kilab. By war and diplomacy he assembled an alliance that delivered to him the keys of the Kaaba, an important pagan shrine which brought revenues to Mecca because of the multitude of pilgrims that it attracted."
20:55:15 <Taneb> Fine, fine, I'm wrong
20:56:40 * oerjan does a small victory dance
21:02:42 -!- boily has quit (Ping timeout: 260 seconds).
21:12:25 -!- Taneb has quit (Read error: Connection reset by peer).
21:39:40 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:18:38 -!- myndzi has joined.
22:20:28 -!- myndzi\ has quit (Ping timeout: 276 seconds).
22:34:07 -!- augur has quit (Ping timeout: 255 seconds).
22:35:26 -!- NihilistDandy has quit (Quit: Cookin').
22:36:34 -!- Sgeo has joined.
22:37:16 <pikhq> Consider it fucked.
22:37:40 -!- Sgeo_ has quit (Ping timeout: 250 seconds).
22:53:32 -!- Vorpal has quit (Ping timeout: 260 seconds).
22:55:15 -!- augur has joined.
22:57:40 -!- Vorpal has joined.
23:15:13 -!- Phantom_Hoover has quit (Quit: Leaving).
23:29:04 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:37:43 -!- elliott__ has quit (*.net *.split).
23:37:43 -!- lifthrasiir has quit (*.net *.split).
23:37:43 -!- lambdabot has quit (*.net *.split).
23:43:04 -!- lifthrasiir has joined.
23:43:04 -!- lambdabot has joined.
23:43:18 -!- comex has quit (Excess Flood).
23:43:25 -!- oerjan has quit (Quit: Lost terminal).
23:43:34 -!- comex has joined.
23:44:30 -!- elliott__ has joined.
23:44:47 -!- augur has quit (Remote host closed the connection).
23:46:15 -!- oerjan has joined.
23:47:03 -!- FireFly has quit (Quit: swatted to death).
23:58:21 -!- NihilistDandy has joined.
23:59:20 -!- NihilistDandy has quit (Client Quit).
23:59:43 -!- NihilistDandy has joined.
00:05:51 -!- copumpkin has joined.
00:07:33 -!- augur has joined.
00:35:13 -!- augur has quit (Remote host closed the connection).
00:46:34 -!- ais523 has quit (Remote host closed the connection).
00:54:11 <pikhq> http://i.imgur.com/w7cns.jpg This was the Yahoo! News pictures page. Today.
00:58:59 -!- azaq23 has quit (Read error: Connection reset by peer).
00:59:26 -!- azaq23 has joined.
01:05:39 <Vorpal> pikhq, seems... outdated
01:05:59 <Vorpal> pikhq, not all from the same time period either
01:06:05 <pikhq> There are people on the Internet younger than some of those pictures.
01:06:23 <Vorpal> pikhq, when is the Los Angeles freeway shutdown from
01:06:37 <pikhq> This weekend only.
01:18:05 <oerjan> it appears that francisco mota (User:FMota on our reddit) just started http://www.reddit.com/r/lambdapuzzles
01:19:39 <Gregor> http://codu.org/tmp/wol3-2011-07-18.ogg
01:20:03 <Gregor> Puzzles in Lambda calculus = possibly the best worst idea ever.
01:22:25 -!- quintopia has quit (Ping timeout: 255 seconds).
01:26:14 <oerjan> it would appear to have at least assimilated phantom_hoover
01:28:06 -!- quintopia has joined.
01:28:06 -!- quintopia has quit (Changing host).
01:28:07 -!- quintopia has joined.
01:47:21 -!- copumpkin has changed nick to Godwin.
01:47:44 -!- Godwin has changed nick to copumpkin.
01:50:01 -!- CakeProphet has quit (Read error: Operation timed out).
01:57:36 -!- augur has joined.
02:02:38 -!- augur has quit (Remote host closed the connection).
02:13:24 -!- augur has joined.
02:29:55 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:42:37 -!- cheater_ has joined.
03:24:28 -!- azaq23 has quit (Ping timeout: 276 seconds).
03:25:36 -!- azaq23 has joined.
03:32:43 -!- derrik has joined.
03:38:38 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
04:14:33 -!- chickenzilla has quit (Ping timeout: 252 seconds).
04:22:06 -!- chickenzilla has joined.
04:28:21 -!- augur has quit (Remote host closed the connection).
04:32:31 -!- derrik has quit (Quit: work to do).
04:33:29 -!- augur has joined.
04:34:07 <Gregor> True Fact: Most men feel inadequate if their hair is longer than their penis.
04:34:56 <pikhq> True Fact™: Most men with long hair have nothing to compensate for.
05:09:05 <oklopol> my hair is longer than my penis :(
05:09:36 <oklopol> but at least i can wrap it around my penis.
05:16:17 <Sgeo> I got new earbuds just yesterday (or the day before). The wire's already on the verge of breaking I think
05:17:56 * Sgeo needs wireless headphones
05:27:40 <Sgeo> I think it keeps getting bent
05:29:43 <itidus20> Yeah I hate that when earbud wires bend.
05:32:38 -!- oerjan has quit (Quit: It's just because your head is spinning all the time!).
05:36:02 -!- augur has quit (Read error: Connection reset by peer).
05:36:14 -!- augur has joined.
05:41:37 -!- Slereah has quit (Ping timeout: 276 seconds).
05:41:58 -!- GuestIceKovu has joined.
06:06:40 <olsner> ... if only they could invent flexible wires
06:10:09 <itidus20> if a wire can conduct electricity then it has done it's job. asking for it to be flexible is overreaching. it is not in the nature of a wire to flex.
06:11:35 -!- augur has quit (Read error: Connection reset by peer).
06:11:55 -!- augur has joined.
06:16:53 -!- augur has quit (Read error: Connection reset by peer).
06:17:09 -!- augur has joined.
06:38:50 -!- augur has quit (Read error: Connection reset by peer).
06:39:11 -!- augur has joined.
06:42:11 -!- augur has quit (Read error: Connection reset by peer).
06:42:21 -!- augur has joined.
07:30:43 -!- azaq23 has quit (Quit: Leaving.).
07:49:07 -!- Taneb has joined.
07:56:18 -!- monqy has quit (Quit: hello).
08:06:01 -!- augur has quit (Read error: Connection reset by peer).
08:06:22 -!- augur has joined.
08:24:14 <fizzie> There's that saying that the definition of insanity is doing the same thing over and over again and expecting different results.
08:24:20 <fizzie> (In regards of them helloes.)
08:24:37 <Taneb> You've just gave me a different result
08:24:57 <fizzie> Yes, well, I don't see how that matters.
08:25:28 <Taneb> It shows that in this case, it wasn't necassarily insane to expect different results
08:26:48 <fizzie> No, the saying doesn't specify anything about whether you will or will not get different results.
08:26:58 <fizzie> It's always insane to expect different results, even when it's likely to occur.
08:27:01 -!- augur has quit (Read error: Connection reset by peer).
08:27:12 <Taneb> Although that is the spirit of the sayin
08:27:22 -!- augur has joined.
08:27:30 <fizzie> I don't believe in spirits, sorry.
08:27:30 <Taneb> If different results are likely to occur, is it not insane to expect repitition?
08:29:12 <fizzie> That's not what the saying's saying. (I seem to be doing the same thing over and over again here.)
08:29:57 <Taneb> And, as the people on the channel as well as the time changed between each "Hello", are they really the same thing?
08:30:36 <fizzie> In ten seconds, with no join/parts in-between... I would classify those last two instances pretty much the same thing.
08:30:56 -!- elliott__ has quit (Ping timeout: 264 seconds).
08:31:03 <Taneb> Inbetween the last two, my client said augur had joined
08:31:54 <fizzie> As seen from here, it was the other way around. Anyway, I don't have a real point here, I just thought it'd be utterly pedestrian to just reply back with yet another "hello".
08:42:43 -!- elliott__ has joined.
08:44:40 -!- Taneb has changed nick to TanebGone.
09:18:04 -!- Phantom_Hoover has joined.
09:21:28 <fizzie> Phantom_Hoover: hap, n.2: /north. dial./ A covering of any kind. 1724 A. Ramsay Tea-table Misc., Hap me with thy petticoat, Grant me for a hap that charming petticoat.
09:24:31 <fizzie> hap, v.2: Etymology: Derivation unknown. Its distribution from East Anglia and Lancashire to Scotland seems to point to Norse origin. [..] Now only Sc. and dial. [..] 2. To cover for warmth, as with extra clothing or bed-clothes; to wrap; to ‘tuck up’ (in bed). c1330 R. Mannyng Chron. Wace (Rolls) 9017, He gaf hym drynke poysoun, And happed hym warme, and bad hym slepe.
09:26:23 -!- TanebGone has changed nick to Taneb.
10:08:21 <Taneb> Huh. JFK's brother-in-law's uncle was PM of the UK
10:13:32 -!- atehwa has joined.
10:35:36 -!- GuestIceKovu has changed nick to Slereah.
10:49:43 -!- FireFly has joined.
11:03:35 <Taneb> Is there a big sign I can add to a wiki article that says something to the effect of "This article needs a complete sort-out"
11:21:37 <cheater_> yeah there was this "not up to standards" thing
11:21:45 <cheater_> or "might need to be cleaned up" or something like that
11:38:33 -!- Sgeo has quit (Quit: Router stuff).
11:41:23 <fizzie> Heh; comp.lang.c, someone had a (presumably) memory correction issue causing fread calls to segfault. His "fix": FILE *fp = fopen(...); FILE fback; memcpy(&fback, fp, sizeof(FILE)); /* ..code.. */ memcpy(fp, &fback, sizeof(FILE)); fread(...); -- "Now there is no segmentation fault, job done."
11:41:59 <fizzie> s/correction/corruption/
12:07:17 -!- cheater_ has quit (Ping timeout: 255 seconds).
12:08:00 <fizzie> In later posts it turned out to be Obama's fault that e had to "fix" it like that.
12:08:08 -!- Sgeo has joined.
12:10:08 <Taneb> Crazy guy on comp.lang.c fizzie's dealing with
12:10:58 <fizzie> Taneb: See, it's Obama's fault the guy's apartment is now worth less than their mortgage and something something something that translates to not being able to look for a proper fix.
12:11:22 -!- FireFly has quit (Quit: swatted to death).
12:12:16 <Taneb> Someone with that sort of grasp of logic shouldn't be allowed anything more computationally powerful than a plastic spoon
12:13:46 -!- boily has joined.
12:16:23 <Taneb> Gonna have lunch now, bye
12:28:22 -!- FireFly has joined.
12:30:31 -!- CakeProphet has joined.
12:30:31 -!- CakeProphet has quit (Changing host).
12:30:31 -!- CakeProphet has joined.
12:31:50 -!- BeholdMyGlory has joined.
12:36:01 <lambdabot> <no location info>: parse error on input `.'
12:36:27 -!- cheater_ has joined.
12:37:06 <CakeProphet> perhaps slightly abusable, but... we're talking about a language that has an OverloadedStrings extension.
12:37:57 <CakeProphet> nested `'s for... uh, great win? actually, just for demonstration.
12:38:31 <lambdabot> <no location info>: parse error on input ``'
12:39:09 <CakeProphet> so GHC is aware of types to some degree before it finished the parsing stage.
12:40:14 <CakeProphet> well, it could also have a sophsticated error reporting system.
12:40:36 <Vorpal> CakeProphet, as far as I can tell it bailed out because there is nothing in front of the `
12:41:56 <CakeProphet> unless (a -> b -> c) is an instance of Floating...
12:42:07 <Vorpal> CakeProphet, my guess is some weird result from partial evaluation...
12:42:28 <fizzie> Maybe it's just a lambdabot thing where it reads one full expression and ignores trailing fluff? Certainly "pi 3 4" is not okay in ghci.
12:43:02 <lambdabot> Not in scope: `is'Not in scope: `stupid'
12:43:09 <lambdabot> lexical error in string/character literal at end o...
12:43:17 -!- cheater_ has quit (Ping timeout: 255 seconds).
12:43:22 <Vorpal> must be what fizzie said
12:43:30 <Taneb> Is coirrational a thing?
12:43:40 <Vorpal> > let pi = 3 in show pi
12:44:18 <CakeProphet> apparently works in nested expressions as well.
12:45:15 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
12:45:35 <fizzie> > let x = 3 + 4 5 in x
12:45:39 <fizzie> You had a [C in there.
12:46:30 <CakeProphet> so it just blindly evaluates the expression as though it's correctly formed and disregards the leftover stuff?
12:46:59 <Vorpal> > let x = 3 + 4 5 in x [C
12:47:01 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
12:47:05 <CakeProphet> expected type a -> b -> c inferred type (Floating a) => a
12:47:08 <Vorpal> > let x = 3 + 4 5[C] in x
12:47:09 <lambdabot> Not in scope: data constructor `C'
12:47:18 <Vorpal> > let x = 3 + 4 5[C in x
12:47:19 <lambdabot> <no location info>: parse error on input `in'
12:47:48 <lambdabot> forall a. (SimpleReflect.FromExpr a) => a
12:48:01 <lambdabot> [3.141592653589793,3.141592653589793,3.141592653589793,3.141592653589793,3....
12:50:37 <lambdabot> Ambiguous type variable `a' in the constraints:
12:52:27 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> a
12:52:30 <CakeProphet> it seems to be very deep in the interpreter.
12:53:10 <Vorpal> I mean, you can't evaluate IO
12:53:32 <Vorpal> as you saw, you just got an IO back
12:54:21 <lambdabot> forall (f :: * -> *). (Functor f) => f FilePath -> f (IO String)
12:54:33 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
12:55:50 -!- cheater_ has joined.
13:02:21 <Vorpal> CakeProphet, only when evaulated, like in a do block or such
13:02:42 <CakeProphet> isn't everything "strict when evaluated"? :P
13:02:53 <Vorpal> CakeProphet, hm good point
13:03:09 <Taneb> Kids, don't try to evaluate your parents
13:04:14 <lambdabot> forall a (m :: * -> *). (Monad m) => a -> m a
13:04:22 <lambdabot> Control.Exception mapException :: (Exception e1, Exception e2) => (e1 -> e2) -> a -> a
13:09:52 <CakeProphet> the laziness of one argument depends on another.
13:12:47 <CakeProphet> par is apparently not strict in the second argument
13:14:59 <Vorpal> CakeProphet, I think types should have strictness info
13:15:45 <CakeProphet> it's possible for explicit strictness anyways.
13:16:06 <CakeProphet> fix pretty much tells you if it's strict or not
13:18:07 <CakeProphet> par is an interesting concept, I might try to use it sometime.
13:18:23 <CakeProphet> perhaps in the regular expression language I'm working on
13:18:33 <CakeProphet> or the signal processing library that I've got on the backburner.
13:21:37 <CakeProphet> Another common use is to ensure any exceptions hidden within lazy fields of a data structure do not leak outside the scope of the exception handler, or to force evaluation of a data structure in one thread, before passing to another thread (preventing work moving to the wrong threads).
13:22:04 <CakeProphet> that's interesting. I would think that message passing among threads would send the data fully evaluated.
13:23:09 <CakeProphet> I guess it would make passing infinite data structures impossible
13:23:50 <Taneb> I wonder what history will make of the News International scandal that is going on at the moment
13:25:56 <CakeProphet> I guess it's referentially transparent because it always returns bottom, but it still prints an error message while not being part of IO.
13:30:02 <lambdabot> forall a. (Integral a) => a -> a -> Ratio a
13:30:14 <lambdabot> forall t. (Integral t) => t -> Ratio t
13:35:00 <Taneb> What am I being hehed at for?
13:35:04 <CakeProphet> oh cool, I think I can define a pulse wave as (/2) . signum
13:36:32 <CakeProphet> though it won't allow me to vary the pulse width.
13:38:51 <Vorpal> Taneb, last previous line
13:46:38 <CakeProphet> ah okay so signum is completely equivalent to a square wave.
13:50:13 <CakeProphet> > let boxcar a b x = fromEnum (a < x < b) in map (boxcar 2 10) [0..]
13:50:14 <lambdabot> cannot mix `GHC.Classes.<' [infix 4] and `GHC...
13:50:43 <CakeProphet> > let boxcar a b x = fromEnum (a < x && x < b) in map (boxcar 2 10) [0..]
13:50:44 <lambdabot> [0,0,0,1,1,1,1,1,1,1,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,...
14:04:35 -!- foocraft has quit (Ping timeout: 250 seconds).
14:10:38 <CakeProphet> Perl calls it defined-or, while C# gives it the terrible name "Null coalescing operator"
14:11:02 <CakeProphet> Which, for some reason, the wikipedia page uses as its title.
14:12:11 <CakeProphet> but hey, at least C# does something right.
14:20:42 <Lymee> Why not just call it the "default operator" or something.
14:20:47 <Lymee> More obvious than "defined-or"
14:20:54 <Lymee> And... well... C#'s name for it.
14:23:04 <CakeProphet> well, given the way Perl's boolean operators work, defined-or makes sense.
14:25:07 <CakeProphet> but it's basically the same thing as Perl's or, except it applies defined() to the first argument for the purposes of testing to see if it's true.
14:27:14 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:28:01 <CakeProphet> but anyways, it's something Java needs badly.
14:28:15 <CakeProphet> because you spend far too much time testing for nulls.
14:30:14 <lifthrasiir> it would be better if java didn't have nulls.
14:30:37 <CakeProphet> it would be terrible without a workaround.
14:30:54 <lifthrasiir> of course, given some kind of option types.
14:31:17 <CakeProphet> C# has type? which is short for Nullable<type>
14:31:39 <CakeProphet> which it uses to allow value-types (aka structs, int, bool, etc) to be assigned to null.
14:32:04 <CakeProphet> so you could change it so that the ? is required for all types to be nullable.
14:32:23 <lifthrasiir> yeah, C# nullable is far better than nothing
14:32:36 <CakeProphet> but then what is an unitialized variable of type A?
14:32:56 <CakeProphet> er... ? is part of the sentence, not the type name :P
14:32:58 <lifthrasiir> and afaik Sing# (an extension to C#) has type! which always guarantees that type cannot contain null.
14:47:30 <CakeProphet> Recently this motto has been very much discussed in the Perl community, and eventually extended to There’s more than one way to do it, but sometimes consistency is not a bad thing either (TIMTOWTDIBSCINABTE, pronounced “Tim Toady Bicarbonate”).
14:47:38 <CakeProphet> I am tempted to remove this sentence from Wikipedia.
14:50:08 <CakeProphet> and slogan. Why would anyone ever say that.
14:50:39 <CakeProphet> also there should not be the word "but" because these statements are not in contradiction with one another.
14:51:58 <Phantom_Hoover> To clarify that some secondary statement that could be concluded from the first is not, in fact, true.
14:54:24 -!- copumpkin has joined.
15:01:06 <CakeProphet> From Perl 6 article: Also, the , (comma) operator is now a list constructor, so enclosing parentheses are no longer required around lists.
15:01:15 <CakeProphet> I am pretty sure that was always the case.
15:01:29 <CakeProphet> the enclosing parentheses were required due to precedence.
15:09:08 <CakeProphet> "As a Rubyist it seems a bit controversial to me, as this looks like a multiple inheritance scheme..."
15:09:24 <CakeProphet> wow, it sounds like he's talking about his religion.
15:09:32 <CakeProphet> I should never read Wikipedia talk pages in my free time.
15:11:20 <CakeProphet> Sounds crazy to me, it's totally consistent with the Perl attitude towards authority.
15:11:26 <CakeProphet> There is a Perl attitude towards authority?
15:11:47 <CakeProphet> what are these people even talking about. Do they realize they are talking about programming languages?
15:14:01 <CakeProphet> I did not know that programming languages had states of mind associated with them. I was pretty sure they were a means to describe the solution to a problem.
15:14:51 <CakeProphet> Does Perl code have some kind of anti-establishment connotation that I haven't been picking up on this entire time I've been writing it?
15:17:08 -!- monqy has joined.
16:13:27 -!- ais523 has joined.
16:27:19 -!- azaq23 has joined.
16:31:12 <Taneb> Is there an integer division operator in Haskell>
16:31:54 <lambdabot> forall a. (Integral a) => a -> a -> a
16:42:25 <lambdabot> forall a. (Integral a) => a -> a -> a
16:42:29 <lambdabot> forall a. (Integral a) => a -> a -> a
16:42:30 <lambdabot> forall a. (Integral a) => a -> a -> a
16:42:47 <lambdabot> forall a. (Integral a) => [a -> a -> (a, a)]
16:42:57 <lambdabot> forall a. (Integral a) => [a -> a -> a]
16:47:28 <ais523> elliott__: could you talk me out of something?
16:47:38 <ais523> I was thinking about creating an esolang that was completely identical to another esolang
16:47:50 <Phantom_Hoover> Oh, wait, quot/div and mod/rem only differ when negative numbers are involved.
16:47:54 <ais523> as a parody of bad BF derivatives
16:48:10 <Taneb> You mean like I hate your brainfuck derivative I really do?
16:48:10 <ais523> perhaps just create an esolang that's identical to brainfuck
16:48:16 <ais523> ah, it's already been done?
16:48:43 <Taneb> http://esoteric.voxelperfect.net/wiki/I_hate_your_bf-derivative_really_I_do
16:48:44 <ais523> no, I meant with + being increase, - being decrease, etc
16:48:48 <ais523> exactly the same as BF
16:49:51 <ais523> I'm thinking of calling it Brainfuck
16:50:05 <ais523> as that name isn't currently taken
16:50:32 <ais523> or maybe even BrainFuck
16:51:32 <Phantom_Hoover> Dammit, I stopped watching that Murdoch hearing because it was boring.
16:51:45 <Phantom_Hoover> And then someone attacked Rupert Murdoch with a cream pie.
16:53:15 <ais523> I missed it too, I got here a few seconds after it happens
16:53:18 <ais523> and then missed the replay as well
16:53:23 <ais523> but no doubt it'll be all over the Internet by now
16:53:31 <Taneb> http://www.bbc.co.uk/news/uk-politics-14209268
16:53:49 <ais523> it's worth wondering how the assailant managed to break into the House of Commons in the first place
16:54:02 <Taneb> I think he got in the easy way
16:54:07 <Phantom_Hoover> Much as I disapprove of it, I can't fault his Twitter style.
16:54:11 <ais523> Phantom_Hoover: also, I can tell that that link's broken without even reading it
16:54:16 <ais523> as that anchor doesn't exist on the Twitter homepage
16:54:31 -!- olsner_ has joined.
16:55:02 <ais523> Phantom_Hoover: Twitter themselves use broken links
16:55:10 -!- comex_ has joined.
16:55:13 <ais523> what they do is, all links to Twitter actually go to the homepage, then it AJAXes the actual content
16:55:31 <ais523> people without JS in their primary browser care
16:56:37 <Phantom_Hoover> A tiny minority who seem to take great pride in disabling browser functionality and telling everyone loudly that they have done so, yes.
16:57:39 <ais523> but it's a negative functionality, in that it makes websites more annoying
16:57:46 <cheater_> using the internet without js is like using a car without tyres
16:58:06 <ais523> cheater_: the worst I saw was a page that tried to set cookies when you move your mouse
16:58:11 <ais523> mostly because I prompt on those
16:58:24 <ais523> but there are some pretty stupid things done even with default browser settings
16:59:03 <Phantom_Hoover> If you're going to turn off JS, don't bring it up when we send you links that need JS to work.
16:59:14 <cheater_> that might be true, Phantom_Hoover, but personally i couldn't bear a life without those wonderful little humans
16:59:18 -!- comex has quit (*.net *.split).
16:59:18 -!- olsner has quit (*.net *.split).
17:00:34 -!- Kariya-jin has joined.
17:00:52 <ais523> Phantom_Hoover: well, what Twitter does with the #! thing breaks standard browser functionality too
17:01:13 <ais523> I'm not sure if it's got middle-click working yet; most sites that do #! stuff don't work with that
17:01:30 <ais523> also, I don't like the page to have to load twice every time I visit it
17:05:17 -!- foocraft has joined.
17:12:28 -!- Taneb has changed nick to TanebAway.
17:25:39 -!- Kariya-jin has left.
17:46:36 -!- TanebAway has changed nick to Taneb.
17:54:01 -!- augur has quit (Read error: Connection reset by peer).
17:54:21 -!- augur has joined.
18:00:37 <Taneb> Eh? C/Intercal: I, lilac, ret niche.
18:01:16 <olsner_> it doesn't work as well when half the palindrome is gibberish :)
18:01:29 <Taneb> They are all real words!
18:01:44 <Taneb> But yeah, it's nonsense
18:04:09 <olsner_> > ap (++) reverse "But yeah, it's nonsense"
18:04:11 <lambdabot> "But yeah, it's nonsenseesnesnon s'ti ,haey tuB"
18:05:40 <Taneb> Pal, Fractran art? Car flap.
18:13:47 -!- elliott_ has joined.
18:15:27 -!- elliott has joined.
18:17:00 -!- elliott__ has quit (Ping timeout: 264 seconds).
18:18:00 -!- elliott_ has quit (Ping timeout: 252 seconds).
18:32:57 -!- azaq23 has quit (Quit: Leaving.).
18:33:22 -!- azaq23 has joined.
18:34:56 <Taneb> Working on my Numberwang Hello World
18:39:05 <itidus20> I'm working on something delightfully retarded.
18:39:22 <Taneb> A Numberwang Hello World?
18:39:30 <Taneb> A Christmas present?
18:39:58 <itidus20> Those multi-dimensional numbers I was talking about the other day
18:40:24 <itidus20> consisting of more than one dimension
18:41:32 <itidus20> Well what I realized was that all the named numbers are one dimensional: one,two,three,four,five,six,seven,eight,nine,ten, etc
18:42:02 <Taneb> Giving names to vectors!
18:42:04 <itidus20> im too stupid to do anything with complex numbers
18:42:10 <Taneb> Like, lala = (7,3)
18:42:35 <itidus20> i'm the most mathematically-challenged here
18:43:34 <itidus20> more than 2 would be making life difficult on myself.
18:44:13 <Phantom_Hoover> itidus20, [a, b] + [c, d] = [a+c, b+d]; [a, b] * [c, d] = [a*c - b*d, a*d + b*c].
18:44:59 <Phantom_Hoover> (OK, I've almost certainly missed something fairly minor, but those are the important bits.)
18:47:40 <Taneb> My Numberwang Hello World works perfectly... for three operations
18:52:41 <itidus20> so this is sort of what i'm doing: http://hpaste.org/49235
18:52:44 <Phantom_Hoover> Taneb, presumably you're trying to nullify the effect of the Numberwang operator?
18:53:05 -!- augur has quit (Remote host closed the connection).
18:53:16 <Taneb> Oerjan worked out the safest way to do that
18:54:02 <Taneb> When the step counter mod 9 is 0
18:54:19 <Taneb> That doesn't call any additional numberwangs, and doesn't use gotos
18:55:08 <Phantom_Hoover> itidus20, why do you seem to have two contradictory definitions of +?
18:55:32 <itidus20> im exploring what it means to add two of those things together
18:56:09 <Taneb> Okay, apparently when I have a cold, I love Kaiser Cheifs
18:57:02 <itidus20> so when i started doing this the theory was that you could have a unique word for a horizontal 2 instead of a vertical 2
18:57:21 <itidus20> or, uh.. that is.. when i started actually mapping it out
18:57:45 <itidus20> the first idea was to give a unique written name to things of the form [x][y] instead of just [x]
18:58:50 <itidus20> and next i realized that gave a width x height result
18:59:31 <itidus20> and then later I started to realize you start ending up with non-rectangular objects more like bargraphs
18:59:56 <Phantom_Hoover> Looks like you're going to end up with arbitrary shapes.
19:01:02 <itidus20> this kind of crap doesn't have to mean much for me
19:01:27 <Phantom_Hoover> There are conditions, but they're not terribly interesting ones.
19:01:29 <itidus20> theres probably some unspoken hypothesis i'm working towards
19:02:12 <Taneb> We need someone who's brilliant at maths but has not yet learnt the limits of the possible
19:02:33 <Phantom_Hoover> I learnt the limits of the possible, then I forgot what they were.
19:02:45 <Phantom_Hoover> They're not terribly interesting, and they're generally there for a reason
19:03:43 <itidus20> perhaps I should discriminate between rectangular and non-rectangular shapes
19:04:10 <Phantom_Hoover> But in seriousness, mathematicians have tried most generalisations you can think of.
19:05:09 <fizzie> Phantom_Hoover: The addition and multiplication rules you gave are also just consequences of the single i^2 = -1 after you write them as (a+bi).
19:05:13 <pikhq> Well, of course they have. Generalisation is an easy way to do interesting mathematics.
19:05:32 <itidus20> I appreciate the power of generalization :>
19:05:39 <Phantom_Hoover> pikhq, yeah, and generally the ones that haven't been tried aren't very interesting.
19:06:06 <Taneb> lifthrasiir: Numbrewang is theortically sable
19:06:23 <Phantom_Hoover> For instance, you can extrapolate relativistic (?) physics to more than 1 time dimension, but the equations cease to be solvable.
19:07:21 <itidus20> I am into game design in a big way. But theres lots of things I encounter which make game-dev seem boring.
19:07:56 <lifthrasiir> Taneb: hmm, is there any significance of the step number? the specification does not mention the use of it.
19:08:06 <itidus20> in terms of display there is that disparity between internal logic and representation of that logic
19:08:37 <Taneb> At each step, the digital root of the sum of the current command, its position in the program, and *the step number* is calculated. The result modulo four is taken, and the appropriate instruction is ran
19:08:41 <itidus20> and so the graphics and sounds in a game can just be swapped around meaninglessly. Just like you can replace the pieces on a chessboard.
19:08:48 <Phantom_Hoover> In terms of display there is the fact that it's annoyingly fiddly to set up.
19:09:18 <Taneb> Maybe you two should team up and make a games console?
19:09:47 <itidus20> Bob of Bob's Game is trying to make something called the nD
19:11:00 <lifthrasiir> Taneb: ugh, so at the each step digital-root(command) is added to the step number, right?
19:11:01 <Taneb> Since when was Beyonce the world's number one superstar?
19:11:06 <itidus20> im not really interested in hardware
19:11:36 <lifthrasiir> i tried to implement numberwang in my esotope and stucked at that part.
19:11:50 <Taneb> lifthrasiir: No, the command, the step number, and the index of the command are added up, and the digital root of that (mod 4) is the actual command
19:11:57 <itidus20> ok so with games, I don't like the idea of a game's design imposing the limits of perfect play.
19:12:38 <itidus20> I want to see games where there is no such thing as perfect play.
19:13:34 <itidus20> The more discerte a game becomes it seems the more likely that a perfect play scenario exists
19:13:42 <lifthrasiir> Taneb: is that something like this: for(step=idx=0; idx<ncmds; ++idx, ++step) execute(digital-root(step + idx + cmds[idx]) % 4); ?
19:14:27 <Phantom_Hoover> <itidus20> The more discerte a game becomes it seems the more likely that a perfect play scenario exists
19:14:39 <Taneb> Go for it, lifthrasiir
19:14:55 <itidus20> sorry someones stomping in the hall.. i can't hear myself think
19:15:26 <Phantom_Hoover> Non-discrete games tend to accumulate errors, while discrete ones don't, so they are less obviously deterministic.
19:15:33 <Taneb> So, itidus, you want a sandbox?
19:16:13 <Taneb> As in a sandbox game
19:16:14 <itidus20> I don't want a person to ever be able to get closure in a game, that they are the best that is possible
19:16:32 <lifthrasiir> Taneb: ah, one more question: eight commands in the instruction 3 do not affect the step number, right?
19:16:41 <Phantom_Hoover> itidus20, suggest Minecr— wait, that's too open-ended for you, probably.
19:16:44 <Taneb> They do, lifthrasiir
19:17:00 <itidus20> ok forget the discrete comment.. that was just being dumb of me as usal
19:17:20 <itidus20> I don't want people to even be able to imagine being perfect at the game
19:17:21 <lifthrasiir> hmm, then the step number increases by 8 after the instruction 3?
19:17:42 <Taneb> It increments after every instruction, including the 3 and the ones in the 3
19:17:57 <itidus20> Like in the case of Chess and Go, although they can't compute perfect play, they can imagine it with sufficient computing power.
19:18:48 <itidus20> And although the sufficient computing power is supposed to not exist, they can still imagine it existing
19:19:00 <Phantom_Hoover> <itidus20> Like in the case of Chess and Go, although they can't compute perfect play, they can imagine it with sufficient computing power.
19:19:46 <Taneb> But theoretically, there are only a finite number of possible games of Go
19:20:06 <itidus20> humans are clearly better at playing go than devising computers to play go :D
19:20:08 <pikhq> Taneb: Yes, it's just got significantly search space than chess.
19:20:17 <pikhq> Erm, significantly greater.
19:20:28 <lifthrasiir> Taneb: ugh, wait, then what about the command's position in the program?
19:21:00 <Sgeo> Hmm, it's been a while since I played Go
19:21:09 <Phantom_Hoover> Search space is, of course, what makes AIs a lot less reliable in continuous than discrete games.
19:21:17 <lifthrasiir> let's say the command at the position 42 invoked the instruction 3. now what are the positions of 12! and consequent commands?
19:21:25 <pikhq> Chess AI has turned out to be *much* less interesting than people would've liked.
19:21:37 <Taneb> 0 through 7, I think
19:21:39 <Phantom_Hoover> Although perfect play is clearly possible in, say, missile defence.
19:21:51 <pikhq> Instead of being something that'll produce an intelligent, thinking computer, it's created a very fast, stupid computer with well-designed heuristics.
19:21:53 <Taneb> And it was done last year in Draughts
19:22:28 <pikhq> Phantom_Hoover: Perfect play is *possible* in most games.
19:22:28 <itidus20> phantom: do you mean that a computer using the neural network approach to solving chess will fail just as badly?
19:22:34 <pikhq> It's just ridiculously unfeasible. :)
19:23:28 <itidus20> well, surely they have tried applying artificial neural nets towards emulating the mind of a chess grand master to the extent such things are possible
19:23:53 <Taneb> And not enough point
19:23:56 <Phantom_Hoover> OK, I should stop the ahahahahahahaha thing, it's probably ridiculously annoying.
19:24:09 <Taneb> When they can already defeat Gary Karsparov or whoever
19:24:23 <itidus20> taneb: so they don't "really" want to solve it :D
19:24:45 <Taneb> Yeah, because the stupid algorithms are already better than they need
19:24:59 <itidus20> it's just a toy to promote IBM etc :P
19:25:17 <itidus20> well i am wondering if such things would actually make any difference you see
19:25:25 * Sgeo points itidus20 towards http://arimaa.com/arimaa/
19:25:43 <itidus20> is chess just as unsolvable with ANN as without
19:26:10 <Taneb> To solve chess would require a computer larger than the observable universe
19:26:34 <elliott> <ais523> elliott__: could you talk me out of something?
19:26:34 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
19:26:58 <ais523> elliott: are you logreading, or do you want me to repeat context?
19:27:21 <itidus20> taneb: but that would imply no breakthroughs probably
19:27:29 <itidus20> breakthroughs are always unanticipated.
19:27:35 <ais523> elliott: basically, it was designing an esolang identical to an existing esolang
19:27:42 <ais523> such as BF with none of the commands changed
19:27:51 <ais523> I'm thinking of calling it Brainfuck, as that name isn't currently taken
19:27:56 <elliott> ais523: not even syntactically?
19:27:56 <itidus20> it's a good statement though about the universe
19:28:11 <elliott> ais523: i approve wholeheartedly
19:28:30 -!- oerjan has joined.
19:30:36 <itidus20> ok so, gaming can be about improvement, and being the best. trouble here is that best is relative.
19:30:57 <itidus20> so you be the best by keeping everyone else down and you're still the best
19:30:57 <oerjan> `addquote <fizzie> It's always insane to expect different results, even when it's likely to occur.
19:31:01 <HackEgo> 514) <fizzie> It's always insane to expect different results, even when it's likely to occur.
19:31:05 <lifthrasiir> Taneb: in order to get out of the instruction 3, all generated commands have to be executed or the instruction 2 has to be invoked. am i missing anything?
19:31:27 <Taneb> Yes, the 2 keeps it in the 3
19:31:35 <Taneb> 2s don't escape 3s
19:31:55 <oerjan> (which corresponds to no timezone known to mankind)
19:32:25 <lifthrasiir> Taneb: if the instruction 3 invoked the instruction 3 in the middle, then commands have to be terminated twice (or possibly more)?
19:32:28 <oerjan> elliott: wait, you want context now?
19:33:08 <lifthrasiir> okay, right now i tried to categorize the behavior of the instruction 3 for possible step numbers.
19:33:45 <elliott> oerjan: well it was funny :P
19:34:04 <oerjan> `addquote <fizzie> There's that saying that the definition of insanity is doing the same thing over and over again and expecting different results. [...] <Taneb> You've just gave me a different result [...] <fizzie> It's always insane to expect different results, even when it's likely to occur.
19:34:05 <HackEgo> 514) <fizzie> There's that saying that the definition of insanity is doing the same thing over and over again and expecting different results. [...] <Taneb> You've just gave me a different result [...] <fizzie> It's always insane to expect different results, even when it's likely to occur.
19:36:35 <elliott> oerjan: it was better originally :-P
19:36:36 <itidus20> draws are not possible in arimaa eh
19:36:42 <elliott> but I note that the [...]s are unneeded there
19:36:49 <elliott> you only need to cut it out when time passing matters
19:37:02 <oerjan> elliott: well it's just that both people said things in between
19:37:25 <itidus20> no first move advantage and no draws? how can it be so. :o
19:37:41 -!- pikhq_ has joined.
19:38:00 -!- pikhq has quit (Ping timeout: 264 seconds).
19:39:03 <elliott> Phantom_Hoover: i love the software license
19:39:38 <itidus20> I'm not looking to make boardgames though. I am focused on the abstract word game.
19:39:46 <elliott> Phantom_Hoover: i forget exactly
19:42:16 <itidus20> well if it is solvable I don't know how "no first move advantage and no draws" could be possible
19:42:47 <oerjan> `addquote <fizzie> Taneb: See, it's Obama's fault the guy's apartment is now worth less than their mortgage and something something something that translates to not being able to look for a proper fix. <<Taneb> Someone with that sort of grasp of logic shouldn't be allowed anything more computationally powerful than a plastic spoon
19:42:48 <HackEgo> 515) <fizzie> Taneb: See, it's Obama's fault the guy's apartment is now worth less than their mortgage and something something something that translates to not being able to look for a proper fix. <<Taneb> Someone with that sort of grasp of logic shouldn't be allowed anything more computationally powerful than a plastic spoon
19:43:05 <oerjan> `addquote <fizzie> Taneb: See, it's Obama's fault the guy's apartment is now worth less than their mortgage and something something something that translates to not being able to look for a proper fix. <Taneb> Someone with that sort of grasp of logic shouldn't be allowed anything more computationally powerful than a plastic spoon
19:43:06 <HackEgo> 515) <fizzie> Taneb: See, it's Obama's fault the guy's apartment is now worth less than their mortgage and something something something that translates to not being able to look for a proper fix. <Taneb> Someone with that sort of grasp of logic shouldn't be allowed anything more computationally powerful than a plastic spoon
19:43:22 <itidus20> "End game tables are not useful since games can end with all pieces on the board. "
19:44:05 <oerjan> itidus20: it could have a _second_ move advantage, you know :P
19:44:38 <oerjan> like those game variations where the second player is allowed to switch places on eir first move
19:44:48 <Phantom_Hoover> "Project which are non-commercial require obtaining a written authorization."
19:45:16 <elliott> 19:03:07: <Gregor> With a name like BeFuck, the only difference SHOULD be a terrible C++ API and fanatic devoted followers.
19:45:22 <elliott> Gregor: Was BeOS's API that bad?
19:45:31 <Gregor> It was C++, that's all I know :P
19:45:32 <itidus20> i don't intend to make an arimaa.. simply to steal a few of their concepts for use in realtime arcade games
19:45:35 <Gregor> But C++ pretty much implies terrible.
19:45:58 <elliott> 19:40:16: <zzo38> By "Knuth-style" I mean things such as: Table of contents, index, named chunks (which can be included in others), pretty printing, print out (rather than HTML), etc. Partially also the input format, but mostly I refer to the output presentation and how they work in general.
19:45:58 <elliott> 19:41:12: <oerjan> zzo38: oh. i don't know. maybe some of that if you also use haddock. istr it does not support reordering things though (and haskell doesn't really need that)
19:46:12 <elliott> What oerjan said; Haskell doesn't need the crutches that other languages do to support literate programming
19:47:02 <elliott> 20:06:06: <oerjan> what is facentes
19:47:07 <elliott> oerjan: it's what you poop, HTH
19:47:46 <itidus20> Ok uh.. suppose you compare the idea of a puzzle in an adventure game to that of solving a boardgame. well an arimaa-like puzzle might be less frustrating
19:48:04 <elliott> `addquote <Taneb> That offers me some social standing, feudal system wise
19:48:06 <HackEgo> 516) <Taneb> That offers me some social standing, feudal system wise
19:48:26 <itidus20> i wanted to buy it but i'm broke
19:48:37 <Taneb> I wanted to buy it, so I did.
19:48:51 <Taneb> And now I don't need to pay for a school trip to Rome
19:49:12 <Taneb> That is good news, that has came about from bad news
19:50:06 <elliott> 00:54:11: <pikhq> http://i.imgur.com/w7cns.jpg This was the Yahoo! News pictures page. Today.
19:50:07 <oerjan> elliott: also i assume knuth's literate programming was originally for pascal, which has stupidly stringent ordering requirements (admittedly to get trivial one-pass compilation)
19:50:26 <elliott> oerjan: um wirth invented literate programming?
19:50:41 <oerjan> elliott: er wait i'm confusing myself
19:50:49 <Taneb> Also, is there anyplace I can see a list of all the hackego quotes
19:51:07 <oerjan> i _thought_ wirth, my subconscious must have corrected it, and this time it was right :P
19:51:42 <itidus20> my regex skills aren't up to speed though
19:52:02 <Taneb> Is it bad that I got confused because I couldn;t think of a swear word with that pattern?
19:52:18 <elliott> <Taneb> Also, is there anyplace I can see a list of all the hackego quotes
19:52:23 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.32205
19:52:28 <elliott> that's an immutable snapshot
19:52:32 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/quotes
19:52:33 <elliott> but that lacks quote numbers
19:52:47 <oerjan> itidus20: nah it's just that my mind graph has a pascal -> wirth edge, and i knew (knuth's) WEB was in pascal, so somehow the wires got crossed
19:53:11 <itidus20> pascal reinforced the confusion
19:53:37 <elliott> oerjan: the wire crossing problem?
19:54:50 <olsner_> the oerjan confusion problem?
19:55:23 <itidus20> I think that there is value in languages which have hollow meaningless keywords
19:57:12 <itidus20> well a human probably can't design a program in hex
19:57:17 <Taneb> Is the English Language Turing-Complete?
19:57:26 <itidus20> sure they can implement it in hex but i doubt they can design it in hex
19:58:13 <itidus20> well.. is a human body turing complete :>
19:58:16 <oerjan> Taneb: i'd say it's either obviously turing-complete, or too vague to be used for computation...
19:58:29 <elliott> we have only finite memory
19:58:48 <elliott> Phantom_Hoover: why do you need imperatives?
19:59:01 <elliott> "A list starting with 9 and followed by itself, with each element incremented by one."
19:59:10 <elliott> that's map succ (repeat 9)
19:59:14 <oerjan> ye olde declarative english
19:59:29 <Phantom_Hoover> elliott, yeah, but imperatives are the most direct way to do it.
20:00:29 -!- pikhq has joined.
20:00:30 <elliott> Phantom_Hoover: Only if you consider imperative languages more obvious than functional ones
20:01:03 <itidus20> I don't think enough thought is given to how humans percieve a language(in common programming) so much as how the language compiles
20:01:33 <itidus20> falling back on a basic set of keywords to do everything
20:01:42 <itidus20> you can never escape the friggen keywords
20:01:57 <Phantom_Hoover> Protip: if you think you have some Big New Idea and you're not an expert, it's probably been done.
20:02:21 <Phantom_Hoover> elliott, unless you consider the special forms keywords.
20:02:27 <elliott> Phantom_Hoover: you can rebind them
20:02:28 <itidus20> I admit english has words like "is"
20:02:32 <elliott> (let ((lambda 9)) lambda) => 9
20:02:38 <elliott> so they're not keywords by any stretch of the imagination
20:02:55 <itidus20> "you","I","is" etc.. could be english keywords
20:03:05 <elliott> (let ((lambda (lambda (x y) y)) (x (lambda () 9))) (lambda (x) x)) => <function>
20:03:22 -!- pikhq_ has quit (Ping timeout: 246 seconds).
20:03:43 <itidus20> but the english words tend to be controlled by general grammars.. such that "you" and "I" are pronouns.
20:06:26 <oerjan> itidus20: basically afaik there have been attempts to make programming languages looking like english and they've all been crap
20:07:00 <oerjan> COBOL and Applescript are the two i know about
20:07:53 <itidus20> on thinking about it, by separating reserved words from created words you often know whether an identifier is safe to use
20:08:11 <itidus20> it could be a mess if you had to consult a dictionary each time you thought up an identifier
20:08:33 <Taneb> And if the implementation was written by someone with a different dictionary...
20:08:49 <Taneb> Say, the complete OED that costs £750 and can kill people
20:08:56 <itidus20> uhh i don't mean english as such
20:09:42 <oerjan> itidus20: i don't think you can kill people with a digital version. well maybe.
20:10:40 <itidus20> apparently when they released the sofrware one.. they used something called securom... and apparently if you replace that file with one called swhx its freely usable
20:10:58 <itidus20> probably not legally of course
20:11:44 <itidus20> so theres torrents out there demonstrating this
20:16:31 -!- pikhq_ has joined.
20:18:09 <oerjan> <fizzie> Maybe it's just a lambdabot thing where it reads one full expression and ignores trailing fluff? Certainly "pi 3 4" is not okay in ghci.
20:18:10 -!- pikhq has quit (Ping timeout: 240 seconds).
20:18:18 <oerjan> no there is an actual instance.
20:19:05 <oerjan> also known in math as "pointwise" arithmetic
20:21:17 <ais523> Phantom_Hoover: hmm, is it legal in the UK to crack the DRM on a legitimate copy of something you bought?
20:21:24 <ais523> I think it is, but I'm not sure
20:21:27 -!- ralc has joined.
20:21:28 <ais523> (it's illegal in the US)
20:22:17 -!- cheater_ has quit (Ping timeout: 255 seconds).
20:24:53 <oerjan> damn it's annoying that CakeProphet isn't here so i can correct his haskell misconceptions :P
20:25:29 <itidus20> The mystery of the dictionary is the way each entry just contains words.
20:25:55 <oerjan> itidus20: a bootstrapping problem...
20:27:35 <oerjan> <Vorpal> CakeProphet, I think types should have strictness info
20:28:01 <oerjan> strictness is not a property of types, but of functions. although some data constructors can be strict functions (if declared with !)
20:28:04 -!- pikhq_ has quit (Ping timeout: 252 seconds).
20:28:05 -!- pikhq has joined.
20:28:20 <oerjan> *if having fields declared with !
20:28:44 <oerjan> dammit Vorpal isn't here either :(
20:29:11 -!- Tritonio has joined.
20:29:25 <oerjan> yes but you weren't involved in the conversation i am logreading
20:29:47 <Vorpal> oerjan, I'm preoccupied though
20:30:07 <oerjan> Vorpal: i was just commenting on your strictness comment
20:31:19 <itidus20> "The oldest known dictionaries were Akkadian empire cuneiform tablets with bilingual SumerianAkkadian wordlists, discovered in Ebla (modern Syria) and dated roughly 2300 BCE." I assume they also had the bootstrapping problem
20:32:03 <itidus20> but bilingual is another side of it.. far more useful
20:32:44 <oerjan> ok CakeProphet's haskell misconceptions are becoming too much for me, i'll skip the rest of that log discussion
20:34:19 <oklopol> "<itidus20> no first move advantage and no draws? how can it be so. :o" <<< you can easily remove draws from any game, and i don't think this has anything to do with first move advantages
20:35:27 -!- cheater_ has joined.
20:35:33 <oerjan> <ais523> I'm thinking of calling it Brainfuck
20:36:01 <oerjan> you'll need wiki disambiguation then
20:36:17 <ais523> Esolang needs more disambiguation
20:36:26 <itidus20> it may not have been completely strict about those terms on the arimaa page.. im probably taking "no first move advantage" too literally
20:36:49 <ais523> realising the need for disambig just made the idea seem even better
20:37:42 <oklopol> "<Taneb> But theoretically, there are only a finite number of possible games of Go" <<< depends on endgame rules, i think some of them might let you have an uncountable number of games?
20:41:53 -!- boily has quit (Ping timeout: 276 seconds).
20:43:30 <oklopol> "<oerjan> yes but you weren't involved in the conversation i am logreading <oerjan> whew" <<< well THANKS :|
20:45:46 <oklopol> itidus20: no first move advantage is always relative, since mathematically it's rather meaningless
20:46:30 <oklopol> it just means that when humans play the game, they don't find starting particularly useful
20:47:08 <ais523> oklopol: depends on the ko rule, not the engame rules
20:47:17 <oklopol> erm sorry i meant the ko rule
20:47:25 <oklopol> what the fuck is an endgame rule
20:47:30 <itidus20> ok i just watched the arimaa tutorial. interesting game.
20:48:10 <ais523> oklopol: basically, rules for scoring when the players can't agree who won
20:48:11 <Taneb> I was present when someone mentioned porn in the House of Commons
20:48:14 <Taneb> On National Television
20:48:19 <Zwaarddijk> don't all go rules forbid repeated positions?
20:48:33 <ais523> Zwaarddijk: yes, but they differ in the timeframe they forbid them in
20:48:43 <ais523> superko forbids any sort of repetition over the lifetime of the game
20:48:52 <ais523> but simple ko disallows only undoing the opponent's last move
20:48:53 <oklopol> ais523: oh right, in any case what i meant was i certainly didn't meant that
20:49:03 <Zwaarddijk> I wonder whether the ban on repeated positions in chess is even taken into account until the endgame
20:49:17 -!- cheater_ has quit (Ping timeout: 255 seconds).
20:49:22 <ais523> and there are some variants which disallow triple KO too (basically, where each player repeatedly undoes the opponent's last-but-3 move)
20:49:32 <oklopol> anyway, it is obvious that there IS a first player advantage in arimaa in the sense that the first player has a winning strategy, we just don't know it
20:49:35 <elliott> <Taneb> I was present when someone mentioned porn in the House of Commons
20:49:36 <elliott> <Taneb> On National Television
20:49:44 <ais523> Taneb: what were you doing in the house of commons?
20:49:57 -!- FireFly has quit (Quit: swatted to death).
20:49:57 <oklopol> "<ais523> Zwaarddijk: yes, but they differ in the timeframe they forbid them in" <<< what do you mean?
20:50:10 <Taneb> Being a member of one of the two organisations allowed to debat there
20:50:31 <elliott> oh, present as in actually there
20:50:36 <elliott> ais523: He's secretly the Queen.
20:50:42 <ais523> elliott: I was trying to deliberately misinterpret, but I think I failed
20:50:42 <oklopol> "<ais523> but simple ko disallows only undoing the opponent's last move" <<< this was what i meant, then could a game theoretically go on forever?
20:50:49 <ais523> also, which house of commons?
20:50:52 <oerjan> <oklopol> [...] <oerjan> whew" <<< well THANKS :| <-- that was on response to noticing Vorpal was actually present duh :(
20:51:11 <ais523> oklopol: yes, it even happens sometimes (triple KO, when each player undoes the opponent's last-but-third move, and doing anything else would give a major disadvantage)
20:51:14 <elliott> <Vorpal> CakeProphet, I think types should have strictness info
20:51:16 <Phantom_Hoover> Taneb, you're in that youth whatsit that doesn't matter, right?
20:51:32 <ais523> Taneb: did you see someone attack Rupert Murdoch?
20:51:35 <ais523> and his wife retaliate?
20:51:46 <Taneb> I left before that happened
20:51:49 <Phantom_Hoover> ais523, that wasn't even in the House of Commons, was it?
20:51:51 <oklopol> ais523: alright. then just add some possible move in the middle and you'll have uncountably many games.
20:52:03 <elliott> ais523: You may have been there years ago, but were you there TODAY???
20:52:03 <oklopol> interestingly enough, go is a second player win
20:52:06 <ais523> Phantom_Hoover: it was in the same building
20:52:11 <oklopol> winning strategy for second player
20:52:22 <ais523> it was one of the committee rooms
20:52:35 <oklopol> elliott: i'm just telling you because i like you
20:52:42 <Phantom_Hoover> So not where they'd let a random teenager who doesn't matter.
20:52:45 <elliott> oklopol: is the riemann hypothesis true
20:52:57 -!- FireFly has joined.
20:53:02 <elliott> huh, aaron swartz charged with data theft?
20:53:07 <Taneb> The Mythbusters said so
20:53:51 <oerjan> <Zwaarddijk> I wonder whether the ban on repeated positions in chess is even taken into account until the endgame <-- well insofar as it only being during the endgame that you're likely to not have irreversible moves (e.g. captures, pawn movements)
20:54:07 <oklopol> Phantom_Hoover: independent from axioms. yeah it's true.
20:54:10 <elliott> oh, not "theft" of data he got from people
20:54:26 <elliott> liberating academic papers, it seems
20:54:36 <oklopol> chess is also first player win
20:54:45 <oklopol> tennis, interestingly enough, is always a draw.
20:55:01 <elliott> hahaha, he didn't even do anything wrong
20:55:06 <elliott> just downloaded more articles than they wanted
20:55:33 <elliott> `addquote <oklopol> interestingly enough, go is a second player win <oklopol> chess is also first player win <oklopol> tennis, interestingly enough, is always a draw.
20:55:35 <HackEgo> 517) <oklopol> interestingly enough, go is a second player win <oklopol> chess is also first player win <oklopol> tennis, interestingly enough, is always a draw.
20:55:50 <Phantom_Hoover> elliott, looks like he also broke into a cabinet or something.
20:56:03 <elliott> Phantom_Hoover: that's not what he's being charged with.
20:56:09 <oklopol> fizzie: i have to think about this
20:56:28 <elliott> "I kind of picture MIT as the paramount of Technology and that includes some aspects of security. I am disappoint about lax NAC."
20:56:38 <elliott> that's why no pranks ever happen there, ever
20:56:41 <ais523> elliott: he did do anything wrong, he didn't have access to even a single article legitimately
20:56:43 <Taneb> MIT: TIM BACKWARDS
20:56:55 <ais523> he got the access by breaking into the cupboard containing a network switch at MIT
20:57:05 <ais523> he wasn't an MITian at the time
20:57:14 <ais523> and then piggybacked on their access
20:57:18 <elliott> ais523: firstly, OK, s/do anything wrong/do anything illegal/
20:57:21 <ais523> with both MIT and JSTOR trying to stop him
20:57:35 <Taneb> ygolonhcet etutitsni fo stessuhcassam
20:57:36 <elliott> ais523: JSTOR asked the government not to prosecute, it seems
20:57:39 <elliott> although my source may be biased
20:57:41 <oklopol> "<Taneb> MIT: TIM BACKWARDS" <<< the palindromist strikes again
20:57:47 <ais523> well, vandalising a network switch cabinet is probably wrong even if you agree with everything else he did
20:57:55 <elliott> ais523: was the switch cabinet damaged?
20:58:13 <elliott> if not, "vandalising" seems a bit much
20:58:17 <ais523> I assume so, typically opening a locked cabinet without the key damages it
20:58:32 <ais523> unless you pick the lock
20:58:32 <Taneb> Unless the cabinet is badly designed
20:58:46 <elliott> that's a rather minor damage, but fair enough
20:59:01 <Phantom_Hoover> elliott, opening a locked cabinet without permission is wrong regardless.
20:59:23 <ais523> Phantom_Hoover: I don't think it's completely inexcusable in all circumstances
20:59:37 <ais523> I think it's typically likely to be wrong, but there are circumstances in which it's morally justifiable
20:59:43 <elliott> Phantom_Hoover: Not necessarily.
20:59:49 <elliott> Besides, MIT has a long history of that kind of stuff.
20:59:58 <ais523> elliott: even when done by non-MITers?
21:00:06 <itidus20> oklopol: so interesting to me is whether you can have a game like arimaa where there is no first/second player advantage
21:00:35 <itidus20> and as a wannabe game designer, this is a pain
21:00:38 <oerjan> <Taneb> lifthrasiir: No, the command, the step number, and the index of the command are added up, and the digital root of that (mod 4) is the actual command
21:00:40 <elliott> ais523: Not that I know of, but I don't think anyone in charge of switch cabinets at MIT expects them to never be broken into
21:00:45 <ais523> itidus20: making the game symmetrical is an easy way
21:00:54 <ais523> as in, both people think of moves independently, then make them simultaneously
21:01:05 <oerjan> mind you i believe you can take the digital roots first, and do the additions mod 9
21:01:09 <coppro> digital root mod 4? what?
21:01:19 <oerjan> coppro: digital root, then mod 4
21:01:31 <ais523> elliott: well, if they figured out someone had planted a laptop in a switch cabinet, they'd probably have just removed it rather than trying to block its IP and MAC address
21:01:53 <itidus20> ais: yeah.. but can you rule out advantage while also ruling out a draw?
21:02:22 <ais523> itidus20: you could finish off with matching pennies or something
21:02:30 <ais523> although that's a bit of a contrived and cheaty example
21:02:32 <oerjan> Taneb: oh wait i just realized something, digital roots tend to be 9 not 0. hm whoops i wonder if my table has errors because of this.
21:03:05 <itidus20> im just looking at the painful limitations of games
21:03:09 <ais523> itidus20: a two player game; each player says head or tails (chosen independently, and then both reveal at the same time), the first player wins if they say the same, the second otherwise
21:03:24 <ais523> it's a bit like rock-paper-scissors, except you can't get draws
21:03:27 <oerjan> 0 shouldn't happen unless you are at the beginning of the program starting with 0!
21:06:05 <ais523> Taneb: use a unicorn horn if you can; if not, eat eucalyptus leaf or as a last resort pray
21:06:09 -!- Taneb has quit (Read error: Connection reset by peer).
21:06:11 <ais523> you only have around 40 turns left to live
21:06:17 <ais523> oh, right, wrong channel
21:07:05 <itidus20> So each player specifies a 0 or 1 privately p1 and p2. And then they are both revealed. if (p1 == p2) player 1 wins, else player 2 wins.
21:07:10 <oerjan> it might be some 0's should be 1's instead. fortunately this won't ruin the easy numberwang row
21:07:41 <ais523> itidus20: yep, that's it
21:09:30 <oklopol> "<itidus20> ais: yeah.. but can you rule out advantage while also ruling out a draw?" <<< if you don't have draws, either the first or the second player always wins, obviously. (assuming perfect players, and why wouldn't you.)
21:10:35 <oklopol> well okay if you have imperfect information, that's not true
21:10:52 <itidus20> noone in the universe has perfect information :>
21:10:55 <ais523> oklopol: imperfect information or randomness
21:11:01 <ais523> matching pennies does it via imperfect information
21:11:22 <itidus20> ais: but it's still very formal. i like it. it's not dice rolling
21:11:24 <oklopol> nothing except silent disapproval to what itidus20 said
21:11:59 <oklopol> itidus20: have you read any game theory? it's all about that stuff
21:12:07 <itidus20> oklo: i don't like the state of affairs. i am slinging arrows about.
21:12:32 <oklopol> well that makes perfect sense i guess
21:12:53 <coppro> oklopol: I've never heard of any rules of Go which would lead to an uncountable number of games
21:13:31 <itidus20> ok so.. looking at the penny example. so each player selects 1 bit privately, and then.. the rules are a 2 bit table.
21:14:04 <ais523> itidus20: that's a common representation for games in academia
21:14:14 <itidus20> you could have it such that the rules were stacked 3 ways to win vs 1 way to lose
21:14:14 <ais523> it doesn't work too well for complex games, though
21:14:33 <oklopol> coppro: ais523 just mentioned simple ko
21:14:35 <ais523> itidus20: that wouldn't be too fun, though, as one player play the move that let them always win
21:14:38 -!- ralc has quit (Ping timeout: 260 seconds).
21:14:44 <ais523> coppro: simple ko, you can
21:14:49 <ais523> superko, the number of games is finite
21:15:00 <ais523> coppro: triple ko allows you to produce arbitrary integers
21:15:00 <itidus20> ais: and this is why fundamentally we hate first person advantage
21:15:06 <coppro> ais523: Which are countable
21:15:08 <ais523> two triple kos on the board at the same time gives arbitarry reals
21:15:22 <ais523> because you can interleave them uncountably many ways
21:15:38 <itidus20> because it ultimately allows the first player to always win in perfect conditions(which luckily don't exist)
21:15:57 <ais523> basically, imagine you take the binary expansion of a real, for 0 each player plays a move in the first triple ko, for 1 each player plays a move in the second triple ko
21:16:04 <ais523> all reals give different games that way
21:16:09 <ais523> (between 0 and 1, but that doesn't matter)
21:16:15 <ais523> thus, uncountably many games are possible
21:16:29 <oklopol> or alternatively, have repetitions either 3 or 4 steps away from each other and just encode a bit sequence
21:16:31 -!- oerjan has quit (Remote host closed the connection).
21:16:32 <itidus20> so to me.. chess is matching pennies where: 01 = win, 00,10,11 = lose
21:16:39 -!- oerjan has joined.
21:16:46 <itidus20> just that its so complex that noone knows how to grab that advantage
21:17:17 <itidus20> its ok and all... but its a nasty fact.
21:17:17 <ais523> people tend to play chess a lot more than matching pennies, thuogh
21:17:27 -!- Tritonio has quit (Quit: Leaving).
21:17:36 <itidus20> it means chess is useless on a small enough scale
21:18:00 <ais523> I suspect there's more perceived skill in chess precisely because you can gain an advantage by knowing the lookup table more than your opponent does
21:18:10 <itidus20> on a small enough board it is tic tac toe as far as the PC is concerned
21:18:56 <itidus20> i still appreciate the actuality of chess
21:19:06 <oklopol> iirc with the natural infinitification, go with simple ko is something like exptime hard but we don't know anything about superko
21:19:33 <oklopol> (whether a position is winning that is)
21:19:51 <oklopol> what does the actuality of chess mean?
21:20:14 <itidus20> what people do with chess instead of theorizing and analyzing it
21:20:55 <oklopol> chess is extremely boring to play though
21:22:32 <oklopol> well i like board games where you don't need to think, then i don't start clumsily doing brute-force search
21:23:45 <oklopol> i kind of liked go as well the one time i played it
21:23:48 <ais523> most of the skill in monopoly is negotiation
21:23:53 <ais523> two-player monopoly is really boring
21:24:09 <itidus20> so on trying to arbitrarily map the 4 possible results of penny matching i see that only 1 version is balanced
21:24:22 <oklopol> negotiation is gay, i just like the part where you have a number that tells you how good you're doing and it randomly goes up or down
21:24:30 <olsner_> where can you negotiate in monopoly? I thought the rules and chance decided everything in monopoly?
21:24:52 * Sgeo wants to try Diplomacy at some point
21:25:13 <ais523> olsner_: you can trade properties
21:25:32 <oklopol> but yeah negotiation type of thingies are certainly more fun than search games
21:28:31 <lambdabot> unexpected "e": expecting digit, "+" or end
21:28:40 <lambdabot> unexpected ".": expecting digit, "+" or end
21:28:54 <ais523> lambdabot: so by "expecting number", you mean "expecting positive integer"?
21:29:00 -!- ralc has joined.
21:29:15 <olsner_> non-negative then ... unless you say 0 is positive
21:29:29 <ais523> yep, non-negative, I was surprised at those cases working
21:29:32 <ais523> especially the first of them
21:30:18 <oerjan> @die 100000000000000000000000000000000000d6
21:30:18 <lambdabot> 100000000000000000000000000... => 350000000000000000177312581656777664
21:31:37 <olsner_> I guess it does randomR (1,x) which ends up being (1,0) and lo>hi is undefined
21:31:46 <oklopol> just goes to an infinite loop if you cast it
21:32:53 <olsner_> hmm, a zero-sided die, could be a sphere
21:33:14 <ais523> that's a one-sided die
21:33:26 <ais523> a zero-sided die would have to not land at all
21:37:29 <olsner_> it's a bit weird though, the limit at infinite sides would be a sphere, so I'd expect the lower limit to be something else
21:38:45 <Sgeo> There's a bot on Foonetic
21:39:07 <Sgeo> Calls 2 sided die coins, 1 sided die marbles, and 0 sided die ephemeral, iirc
21:40:10 <monqy> What are 3 sided die? Die?
21:40:47 <Sgeo> 0 sided are called ethereal
21:40:57 <Sgeo> Yeah, just die
21:41:19 <Sgeo> * Sgeo rolls 1d1
21:41:20 <Sgeo> <flyingferret> 1, dummy.
21:41:20 <Sgeo> * Sgeo rolls 1d2
21:41:20 <Sgeo> <flyingferret> Sgeo got: tails.
21:41:20 <Sgeo> * Sgeo rolls 1d0
21:41:20 <Sgeo> <flyingferret> Ethereal dice always show 0.
21:41:42 <olsner_> don't ethereal and ephemeral mean kind of the same thing?
21:42:34 <Sgeo> * Sgeo rolls 1000000000000d1
21:42:34 <Sgeo> <flyingferret> I don't have that many marbles.
21:42:34 <Sgeo> * Sgeo rolls 1000000000000d2
21:42:34 <Sgeo> <flyingferret> I don't have that many coins.
21:42:34 <Sgeo> * Sgeo rolls 1000000000000d0
21:42:34 <Sgeo> <flyingferret> Ethereal dice always show 0.
21:42:55 <elliott> a temporary file is ephemeral; sprites are ethereal
21:43:23 <Sgeo> * Sgeo rolls 1000000000000d3
21:43:23 <Sgeo> <flyingferret> My dice bag is not that big.
21:51:23 <olsner_> anyway, what about 3-sided? everything 4 and up is trivial, and we seem to have covered 0-2, but I can't imagine anything 3d and 3-sided
21:51:28 -!- olsner_ has changed nick to olsner.
21:54:18 <oklopol> but yeah if the faces need to be plane, hmmhmm.
21:54:55 <itidus20> the problem is the idea each face needs to be a triangle
21:55:09 <olsner> but you should be able to make something that has exactly three stable states
21:55:34 <Sgeo> Why would it need to be regular
21:55:40 <Sgeo> Just have two points on each side
21:55:45 <itidus20> and if you add a vertex to a triangle you get a 4 sided shape
21:55:53 <oklopol> yeah for instance what Sgeo is saying
21:58:14 <oklopol> but if you can't have bends, consider the first face, the second face and the third face must divide its rim in among each other and extend in the same direction; but then if those faces are plane, and the resulting object is closed, clearly the first face has to be just a line
21:58:17 <Phantom_Hoover> <olsner_> anyway, what about 3-sided? everything 4 and up is trivial, and we seem to have covered 0-2, but I can't imagine anything 3d and 3-sided
21:58:38 <Phantom_Hoover> It's trivial to make a shape which can only form a stable equilibrium in n states.
21:59:12 <olsner> Phantom_Hoover: yes, you missed the line a couple of lines down where I drew that conclusion
22:18:41 -!- pumpkin has joined.
22:21:09 <Phantom_Hoover> I have this distressing feeling that my headphone jack is on its last legs.
22:21:37 -!- copumpkin has quit (Ping timeout: 250 seconds).
22:24:58 -!- pumpkin has changed nick to copumpkin.
22:27:16 -!- augur has joined.
22:29:54 -!- elliott has quit (Quit: Leaving).
22:31:18 -!- elliott has joined.
23:02:42 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:17:47 * pikhq does something unthinkable on Linux...
23:22:37 <elliott> `addquote <Sgeo> Fuck clay its only purpose is ecoration
23:22:38 <HackEgo> 518) <Sgeo> Fuck clay its only purpose is ecoration
23:25:29 <oerjan> ecoration of ecosystems
23:26:34 -!- copumpkin has joined.
23:27:20 <monqy> also I've seen some very useful clay
23:28:55 <itidus20> So is a line more true than a curve?
23:29:37 <monqy> true? what does that mean
23:29:57 <itidus20> Or is it just that straight lines are easy
23:30:27 <monqy> Is theory more puce than practice?
23:30:36 <itidus20> we have a fixation on straight lines
23:30:52 <monqy> I love curvy wobbly non-lines
23:32:31 <itidus20> i tend to associate 1 dimension with a straight line
23:33:01 <itidus20> probably all those x,y,z diagrams
23:34:31 <pikhq> Incidentally (and this seems to have happened to no fanfare), e4defrag seems to have actually gotten released.
23:35:02 <Phantom_Hoover> If you mean that 1D things are normally portrayed as straight, that's because they have no innate curvature.
23:35:42 <pikhq> It is perfectly *valid* to have a 1-dimensional vector space in a higher space that is curved in that higher space, though.
23:35:52 <oerjan> itidus20: a 1 dimensional vector space _is_ a straight line.
23:36:03 <oerjan> pikhq: um, no. that's not a vector space then.
23:36:16 <oerjan> well, not a vector subspace.
23:36:40 <pikhq> Hrm. Actually, let me think about this before I try to explain what I meant.
23:36:46 <pikhq> And see if I just said something stupid.
23:36:54 <oerjan> however 1 dimensional non-vector spaces don't need to be straight lines (duh)
23:37:04 <itidus20> pikhq: informally I get what you meant. that a ribbon representing 1d could twirl about in 3d space
23:37:13 <pikhq> Yeah, I just said something stupid.
23:37:46 <pikhq> Vector spaces quite explicitly need to be linear.
23:38:11 <oerjan> itidus20: http://en.wikipedia.org/wiki/Space-filling_curve >:)
23:38:13 <pikhq> Of course, a non-vector space has no such restrction. Yay.
23:38:36 <itidus20> @no such restriction.. ^5 another beer
23:39:11 * oerjan wonders what that command was
23:39:20 <lambdabot> Maybe you meant: bid do id todo yow
23:39:48 <pikhq> oerjan: Excuse me for saying stupid shit. Just because I did well in linear algebra doesn't mean I'm going to fuck up even basic bits of it. :P
23:39:50 -!- foocraft has quit (Ping timeout: 255 seconds).
23:40:13 <oerjan> @do [such restriction.. 2^5 another beer]
23:40:14 <lambdabot> [such restriction .. 2 ^ 5 another beer]
23:40:46 <oerjan> @no [such restriction.. 2^5 another beer]
23:40:47 <lambdabot> [such restriction .. 2 ^ 5 another beer]
23:41:16 <oerjan> elliott: so close to parsing correctly
23:41:51 <itidus20> pikhq: my role here is to be a clueless free agent assuming to understand another's field without having read more than a wiki page or 2
23:42:10 -!- elliott has quit (Remote host closed the connection).
23:42:28 <oerjan> itidus20: see what you did, scaring away elliott
23:42:56 <itidus20> i can't recall where the understanding anothers field line comes from.. probably big bang theory
23:42:59 <oerjan> elliott doesn't like clueless people, true fact
23:43:19 -!- elliott has joined.
23:43:56 <itidus20> but my comments are also hopefully kind of fun because they have no financial or research incentive
23:44:03 <itidus20> they don't mean to be anything
23:44:25 <oerjan> ok so you are not a spambot, i guess that's _something_...
23:45:10 <itidus20> maybe that is saying a bit much
23:46:07 <lambdabot> *Exception: Prelude.maximum: empty list
23:46:30 <itidus20> http://oi56.tinypic.com/2d14acn.jpg
23:52:53 <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
23:52:59 <lambdabot> Illegal tuple section: use -XTupleSections
23:53:46 -!- foocraft has joined.
23:54:32 <oerjan> :t (,) 1 -- same thing
23:54:34 <lambdabot> forall t b. (Num t) => b -> (t, b)
23:54:57 <Vorpal> elliott, I just found out "bash on balls" exist. Seriously wtf.
23:55:10 <Vorpal> https://github.com/jayferd/balls
23:57:21 -!- augur has quit (Remote host closed the connection).
23:57:48 <monqy> bash web platform sounds like a horrible idea
23:58:33 <Vorpal> yes I think it is tongue in cheek indeed
23:58:42 <Vorpal> "This is a fully-featured web platform for everyone's favorite scripting language: bash. Because, you know, we can."
00:02:10 <pikhq> Methinks that doing that on zsh would be slightly saner. If still completely nuts.
00:02:54 <lambdabot> undefined = error "Prelude.undefined"
00:03:19 <lambdabot> *Exception: Prelude.head: empty list
00:03:47 <oerjan> Lymee: that head source is not canonical, implementations are allowed to use more specific error messages
00:04:42 <Lymee> it's just unexpected when the source says one thing and the result is another.
00:05:12 <oerjan> i think @src is a bit of a mishmash of haskell report and ghc source
00:05:28 <pikhq> Yeah, it seems to do source from the Report except when it's really misleading.
00:05:59 <pikhq> And a different _|_ value is not very misleading. :)
00:07:03 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E...
00:11:54 <Lymee> Must be messy when neither is implemented..
00:12:23 <Lymee> oerjan, how does that work?
00:13:41 <pikhq> Lymee: error is a bottom value. Which, incidentally, is the only kind of value which is of every type.
00:13:57 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E...
00:14:07 <Lymee> It's clearly returning a [Char]
00:14:15 <Lymee> One that makes /sense/ at that.
00:14:33 <Lymee> > error error "wat"
00:14:34 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
00:14:37 <pikhq> Lymee: It's not actually making sense.
00:14:46 <Lymee> > error $ error "wat"
00:14:57 <pikhq> Lymee: The show routine is printing out the initial " for the string.
00:15:20 <pikhq> Lymee: And then the RTS starts outputting that it got an exception, so it prints *Exception: .
00:15:30 <pikhq> Lymee: And then, it tries to output the error message for that.
00:15:36 <pikhq> Lymee: And then the RTS starts outputting that it got an exception, so it prints *Exception: .
00:16:31 <pikhq> And so you get an infinite number of error messages.
00:17:23 <Lymee> > [1,2,3,4,(error "5")]
00:17:30 <Lymee> > take 4 $ [1,2,3,4,(error "5")]
00:17:33 <Lymee> > take 5 $ [1,2,3,4,(error "5")]
00:17:35 <lambdabot> *Exception: *Exception: Prelude.undefined
00:17:46 <Lymee> > take 0 $ reverse $ [1,2,3,4,(error "5")]
00:19:38 <lambdabot> throw exception = raise# exception
00:19:43 <lambdabot> Source not found. Are you on drugs?
00:20:14 <Lymee> Is raise# an internal function?
00:20:23 <pikhq> That's what # is used to indicate, yes.
00:29:09 <Lymee> > let blah# = 1 in blah# + blah#
00:30:16 -!- FireFly has quit (Quit: swatted to death).
00:34:18 -!- augur has joined.
00:37:06 <pikhq> Yeah, it's just a convention.
00:40:44 <Lymee> > let # = 1 in # + #
00:40:46 <lambdabot> <no location info>: parse error on input `#'
00:40:54 <Lymee> > let _ = 1 in _ + _
00:40:56 <lambdabot> Pattern syntax in expression context: _Pattern syntax in expression context...
00:41:17 <pikhq> > let # = 1 in (#) + (#)
00:41:19 <lambdabot> <no location info>: parse error on input `#'
00:46:32 <oerjan> > let (#) = 1 in (#) + (#)
00:46:33 <lambdabot> <no location info>: parse error on input `)'
00:47:06 <oerjan> it would appear that lambdabot has MacicHash set, anyway
00:50:00 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:51:55 <Lymee> > let _# = 1 in _# + _#
00:52:03 <Lymee> > let #_ = 1 in #_ + #_
00:52:04 <lambdabot> <no location info>: parse error on input `#'
00:54:12 -!- BeholdMyGlory has joined.
00:54:34 <oerjan> with MagicHash # is treated essentially as an alphanumerical character, but not one that can be at the beginning of an identifier (i.e. more like a number than like a letter)
00:55:03 <oerjan> > let _#_#_ = 1 in _#_#_
00:55:04 <lambdabot> Pattern syntax in expression context: _
00:55:14 <oerjan> well so much for that theory
00:55:42 <lambdabot> <no location info>: parse error on input `='
00:55:50 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
00:56:06 <lambdabot> Pattern syntax in expression context: _
00:56:55 <lambdabot> <no location info>: parse error on input `='
00:57:32 <oerjan> > let _#a = a+b in _#a
00:58:04 <oerjan> > let _#a = a+b in _#b
00:58:38 <oerjan> > let _# a = a+b in _#b
00:59:00 <oerjan> ok so somehow the # _always_ ends the identifier
00:59:31 <oerjan> > let a#b = a+b in c#d
01:00:03 <Lymee> > let **/** = blah in **/**
01:00:04 <lambdabot> <no location info>: parse error on input `**/**'
01:00:15 <lambdabot> <no location info>: parse error on input `*'
01:00:29 <lambdabot> <no location info>: parse error on input `*'
01:00:34 <pikhq> http://www.weather.com/maps/maptype/currentweatherusnational/uscurrentheatindex_large.html The US midwest: because OH GOD MY FLESH IS BOILING
01:00:39 <oerjan> no, # really is special, it is not an operator character in this use
01:00:52 <oerjan> > let a # b = a+b in 2 # 2
01:00:52 <Lymee> > let **/** = \x y -> x * y in 1 **/** 2
01:00:54 <lambdabot> <no location info>: parse error on input `**/**'
01:00:59 <Lymee> > let (**/**) = \x y -> x * y in 1 **/** 2
01:01:01 <oerjan> although it seems to be there
01:01:53 <monqy> > let x **/** y = x * y in 1 **/** 2
01:02:09 <pikhq> (for non-Americans; those are °F; 30°C = 86°F)
01:03:02 <Lymee> > let (#) = \x y -> x * y in 1 # 2
01:03:03 <pikhq> Yes. And the US midwest.
01:03:04 <lambdabot> <no location info>: parse error on input `)'
01:03:23 <Lymee> pikhq, I wonder what Flordia is like.
01:04:12 <oerjan> pikhq: http://s3.amazonaws.com/files.posterous.com/haggis/GAhuydjnactzJByDuEBnhFbDleICnFGGiFwbyctAFhibnccygAlcFybAECye/media_httptdwgeeksfil_EyJDb.jpg.scaled500.jpg?AWSAccessKeyId=AKIAJFZAE65UYRT34AOQ&Expires=1311124134&Signature=tHe1WUqs4692fTb%2BKjKr84%2FuYbk%3D
01:04:23 <oerjan> goddamn that was a long URL
01:06:19 <oerjan> Lymee: # is only weird if the MagicHash flag is set, otherwise i believe it's an ordinary operator char
01:07:52 <oerjan> and normally the MagicHash flag is only set if you want to import and use ghc internal/primitive functions
01:08:06 <oerjan> (those containing # in their name)
01:08:43 <oerjan> well, or if you want to define them, but that's for the ghc implementers
01:09:26 <Lymee> > let throw# = \x -> x in error 'this wont work i dont think"
01:09:27 <lambdabot> lexical error in string/character literal at chara...
01:09:29 <oerjan> although many of them probably aren't defined in haskell at all
01:09:34 <Lymee> > let throw# = \x -> x in error "this wont work i dont think"
01:09:36 <lambdabot> *Exception: this wont work i dont think
01:10:10 <EgoBot> sh dc -e "1k?32-5*9/p"
01:10:15 <oerjan> Lymee: well duh haskell is lexically scoped (except for ?x implicit parameters)
01:10:30 <Lymee> oerjan, I'm aware.
01:10:59 <Lymee> That was a few days ago.
01:11:58 <EgoBot> Interpreter insanetemp installed.
01:12:12 <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 insanetemp jethro kraut lperl lsh map num numberwang 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 w
01:12:26 <oerjan> bah always running out of space in that list
01:12:37 <EgoBot> sh sed 's/th/þ/g ; s/Th/Þ/g ; s/s/ſ/g ; s/ae/æ/g ; s/Ae/Æ/g ; s/oe/œ/g ; s/Oe/Œ/g'
01:13:15 <Phantom_Hoover> !pikhq The rain in Span falls mainly on the encyclopaedias of foetuses.
01:13:15 <EgoBot> Þe rain in Span fallſ mainly on þe encyclopædiaſ of fœtuſeſ.
01:13:44 <oerjan> Gregor: EgoBot needs a better listing method for !userinterps
01:14:19 <EgoBot> That is not a user interpreter!
01:14:42 <EgoBot> /bin/cat: warez: No such file or directory
01:14:47 <EgoBot> /tmp/input.16017: line 1: where: command not found
01:14:51 <pikhq> !sh cat `which warez`
01:15:10 <Lymee> !sh cat /usr/bin/warez | paste
01:15:40 <Lymee> !sh cat /usr/bin/warez 2>&1 | paste
01:15:41 <oerjan> it's HackEgo which does that pasting stuff
01:15:44 <pikhq> Lymee: man paste por favor.
01:15:52 <EgoBot> /usr/bin/man: can't open the manpath configuration file /etc/manpath.config
01:15:58 <pikhq> *On your own system*.
01:16:18 <pikhq> I'll give you a hint; it's in GNU coreutils, and mandated by POSIX.
01:16:41 <EgoBot> /tmp/input.16456: line 1: sprunge: command not found
01:16:51 <Lymee> What was the function to post things into pastebin again?
01:16:59 <Lymee> !paste cat /usr/bin/warez
01:17:28 <Lymee> !sh cat /usr/bin/warez 2>&1 | curl -F 'sprunge=<-' http://sprunge.us
01:17:28 <EgoBot> /tmp/input.16593: line 1: curl: command not found
01:17:37 <Lymee> !sh cp /usr/bin/warez warez
01:17:38 <EgoBot> /bin/cp: cannot create regular file `warez': Permission denied
01:17:45 <Lymee> !sh cp /usr/bin/warez ./test
01:17:45 <EgoBot> /bin/cp: cannot create regular file `./test': Permission denied
01:17:54 <EgoBot> /home/egobot/egobot.hg/multibot_cmds
01:18:01 <EgoBot> /bin/ls: interps: Function not implemented
01:18:11 <Lymee> !sh cat /usr/bin/warez > warez
01:18:12 <EgoBot> /tmp/input.16852: line 1: warez: Permission denied
01:18:24 <Lymee> `run cat /usr/bin/warez > warez
01:18:37 <Lymee> `paste /usr/bin/warez
01:18:38 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.26123
01:18:50 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.6501
01:19:03 <HackEgo> /tmp/hackenv.17049/bin/paste
01:19:55 <Phantom_Hoover> Dammit, I kind of hoped they both ran in the same environment.
01:20:18 -!- Phantom_Hoover has quit (Quit: Leaving).
01:23:11 -!- azaq23 has quit (Ping timeout: 258 seconds).
02:04:27 <Gregor> oerjan: Suggestions/patches welcome.
02:12:17 <oerjan> elliott: EgoBot's !userinterps list keeps overflowing
02:13:32 <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 insanetemp jethro kraut lperl lsh map num numberwang 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 w
02:14:45 <oerjan> maybe making a different list for the things that aren't really interpreters?
02:15:17 <oerjan> !userutils or something
02:15:31 <monqy> !fudd the best utility
02:15:50 <monqy> !ehird what does this one do
02:16:14 <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}
02:16:23 <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)
02:16:24 <oerjan> oh those aren't actually equal
02:17:13 <oerjan> and possibly another list for all those respelling commands
02:17:32 <monqy> !eehird is this one any good
02:18:01 <oerjan> !eehird what happened there?
02:18:16 <oerjan> ah lots of missing imports
02:18:44 <monqy> isAlpha and isSpace?
02:18:55 <monqy> or is dropWhile not in Prelude either
02:19:12 <EgoBot> Interpreter eehird deleted.
02:19:32 <oerjan> !addinterp eehird haskell import Data.Char; 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)
02:19:32 <EgoBot> Interpreter eehird installed.
02:19:43 <monqy> !eehird Does it work now?
02:20:25 <oerjan> that thing probably never worked in the first place
02:21:15 <EgoBot> Interpreter eehird deleted.
02:21:27 <oerjan> !addinterp eehird haskell import Data.Char; 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)
02:21:28 <EgoBot> Interpreter eehird installed.
02:24:11 <oerjan> and EgoBot doesn't support multiline output to the channel
02:24:36 <oerjan> elliott: i think it may be intended to simulate your habit of breaking things into tiny lines
02:24:48 <oerjan> !eehird Like. This. Maybe so! Hm?
02:25:05 <EgoBot> Interpreter eehird deleted.
02:25:26 <oerjan> you cannot do that with EgoBot anyhow
02:25:48 <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 ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang 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 yodaw
02:26:07 <elliott> http://esolangs.org/w/index.php?title=Special:Recentchanges&limit=500 <-- talk about recent changes spam
02:26:57 <monqy> multiple varieties of spam
02:28:08 <oerjan> ok i fixed the part that wasn't Nthern :P
02:29:01 <elliott> the Nthern was the problem :P
02:30:08 <monqy> http://esolangs.org/wiki/Special:Contributions/46.21.144.51 a good person
02:31:53 <EgoBot> haskell (print . (+32) . ((9/5)*) . read) =<< getLine
02:32:04 <EgoBot> sh dc -e "1k?32-5*9/p"
02:32:09 <EgoBot> That is not a user interpreter!
02:32:11 <EgoBot> sh dc -e "1k?9*5/32+p"
02:32:36 <EgoBot> Interpreter ustemp deleted.
02:32:46 <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 ehird elmer fudd google graph gregor hello id insanetemp jethro kraut lperl lsh map num numberwang ook pansy pi pikhq pirate plot postmodern postmodern_aoler prefixes python redneck reverse rimshot rot13 rot47 sadbf sanetemp sfedeesh sffedeesh simplename slashes svedeesh swedish valspeak warez wc yodawg
02:32:59 <EgoBot> unlambda (sending via DCC)
02:34:13 -!- azaq23 has joined.
02:36:46 <Gregor> Elizacat: *eh*, it's a User: page
02:37:55 <Gregor> Elizacat: You 'el' people
02:38:04 <Elizacat> I'm not elliott and do not compare me to him
02:38:06 <Gregor> elliott: *eh*, it's a User: page
02:38:12 <oerjan> elliott: some guy whose client is too stupid to complete nicks by last-speaking
02:38:12 <Elizacat> and I'm probably not the right gender :p
02:39:37 <oerjan> elliott: the irony demons appear to be haunting me
02:40:16 <elliott> oerjan: try doing something really ironic and they'll go away
02:40:32 <elliott> Elizacat: can't you just be cateliza or something
02:40:35 <oerjan> elliott: but they just _made_ me do something ironic
02:40:48 <elliott> oerjan: you have to do it of your own accord
02:40:49 <monqy> elliott: poor CakeProphet
02:41:14 <monqy> no conflicts with something though
02:41:47 <oerjan> GreatEliza. see, it's perfect.
02:41:50 <elliott> CakeProphet deserves it for his crimes against Haskell.
02:42:46 <Elizacat> <elliott> Elizacat: can't you just be cateliza or something
02:43:01 <Elizacat> I'm capitalised. I'm more important.
02:43:19 <monqy> i was just about to say
02:43:34 <Elizacat> but I am a cat in the Eliza namespace
02:43:37 <elliott> Are you just in here in case you ever need to ping Vorpal again :P
02:43:44 <Elizacat> not an Eliza in the cat namespace.
02:43:56 <monqy> namespace who what
02:44:05 <Elizacat> elliott, Vorpal and I are already good mates I can get ahold of him elsewhere :3
02:44:12 <elliott> well you never say anything and you're squatting on valuable name territory >:(
02:44:17 -!- BeholdMyGlory has quit (Remote host closed the connection).
02:44:54 <Elizacat> elliott, I don't have much to say, no, I'm quiet.
02:45:05 <Elizacat> elliott, but esoteric programming languages interest me.
02:45:19 <Elizacat> elliott, also I'm here for fizzie for some mcmap-related stuff if I can ever find him awake
02:46:16 <Elizacat> monqy, confused? good, good...
02:46:28 <elliott> Elizacat: wrong channel, and I'm also an mcmap developer, so just tell me.
02:46:40 <Elizacat> elliott, there is another channel?
02:46:50 <Elizacat> elliott, Vorpal was like "go to #esoteric" and I'm like "sure"
02:46:51 <elliott> Well, yeah, but it's really semi-private, so I guess here is on-topic enough :-P
02:46:58 <elliott> Well yes, but Vorpal is wrong about most things.
02:47:10 <Elizacat> no he's always right what do you mean
02:47:18 <Elizacat> please do not remove my ovaries with a pear knife
02:48:00 <Elizacat> is swearing allowed or is this place family-friendly
02:48:03 <Elizacat> by that I mean adult-hostile :p
02:48:17 <pikhq> Well, "fuck off and die in a fire" is farily common here, so. :)
02:48:25 -!- augur has quit (Remote host closed the connection).
02:48:44 <Elizacat> monqy, watch out for elliott he seems to linger 501 feet outside a playground a lot...
02:48:45 <pikhq> elliott: Mostly me, yes.
02:48:58 <elliott> monqy: Elizacat killed my family
02:48:59 <pikhq> I'm quick to express nonexistence rage.
02:49:08 <elliott> that's why i linger outside the playground
02:49:18 <pikhq> Jeeze, I swear. I can't spell worth shit today.
02:49:23 * elliott curls into fetal position; cries self to sleep.
02:49:24 <monqy> I don't like playgrounds
02:50:08 <Elizacat> I don't believe in talking unless I really have something to say
02:50:29 <Elizacat> if anyone can ping me when fizzie is around, I'd like to speak to him about mcmap :p
02:50:48 <elliott> Elizacat: Like I said, just ask me :P
02:50:50 <Elizacat> I found a strange crash, I think it's related to multi-block updates
02:50:56 <Elizacat> it segfaults in different places each time
02:51:17 <elliott> Using latest git commit? (Vorpal's update patch is OK; it touches none of that stuff.)
02:51:32 <elliott> There's a lot of weird behaviour mostly at high altitudes, but it's never segfaulted for me recently.
02:51:39 <Elizacat> it usually happens with //regen
02:51:56 <elliott> What the heck does //regen do? That's not an mcmap command
02:52:08 <elliott> Someone needs to tell WorldEdit to stop stealing our command prefix back in time
02:53:42 <elliott> Elizacat: Anyway, I'm not so hot on the protocol side of things, but is there such a thing as a multi-block update? I thought there was just "single block update" and "whoops lol I replaced an entire chunk here you go".
02:54:10 <elliott> Vorpal always gets about ten times more crashes and weird behaviour with mcmap than anyone else, though; you could try cutting all ties with him and see if that helps.
02:54:33 <oerjan> !slashes /\\/\/\/\/\/\/\/\//\\\\\\
02:54:41 <Elizacat> Program received signal SIGSEGV, Segmentation fault.
02:54:41 <Elizacat> [Switching to Thread 0x7ffff3eb5700 (LWP 31277)]
02:54:41 <Elizacat> 0x00007ffff6af6a50 in ?? () from /lib/libc.so.6
02:55:09 <elliott> Elizacat: Well that's not helpful :P
02:55:20 <elliott> Except that it means we're passing invalid data to libc, I guess
02:55:27 <elliott> Elizacat: You have got a debug build right?
02:55:32 <oerjan> !slashes /\\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\//\\\\\\\\\\\\\\\\
02:55:32 <EgoBot> ////////////////////////////////////////////////////////
02:58:12 <Elizacat> memcpy(&c->blocks[CHUNK_XOFF(x)][CHUNK_ZOFF(z)][y0], zb, yupds);
02:58:12 <elliott> memcpy(&c->blocks[CHUNK_XOFF(x)][CHUNK_ZOFF(z)][y0], zb, yupds);
03:02:06 <elliott> Those look kind of suspect, unless you actually are that far out
03:03:36 <Elizacat> http://img.thedailywtf.com/images/201101/err/death.png
03:03:46 <elliott> Elizacat: You could printf-debug above the memcpy printing &c->blocks[CHUNK_XOFF(x)][CHUNK_ZOFF(z)][y0], zb and yupds
03:03:56 <elliott> Maybe one of them is NULL or something easy like that :-)
03:09:30 <Elizacat> 23:09:16 [DEBUG] CHUNK_XOFF(x) CHUNK_XOFF(z) y0 yupds 0 0 0 -126
03:09:31 <Elizacat> Program received signal SIGSEGV, Segmentation fault.
03:09:48 <elliott> Well -126... is not right.
03:10:27 <elliott> #define CHUNK_XOFF(coord) ((coord) & (CHUNK_XSIZE-1))
03:10:27 <elliott> #define CHUNK_ZOFF(coord) ((coord) & (CHUNK_ZSIZE-1))
03:10:50 <elliott> I'm tempted to blame this on some sort of overflow, but that's just my excuse for not really knowing :)
03:12:02 <Elizacat> elliott, it's the chunk beneath me
03:12:29 <Elizacat> I don't know what the fuck jint is though
03:12:35 <elliott> it's just thirty-two bit int
03:12:39 <elliott> stopf("too high chunk update: %d..%d", y0, y0+ys-1);
03:12:39 <elliott> else if (y0 + ys > CHUNK_YSIZE)
03:12:46 <elliott> well CHUNK_YSIZE obviously isn't wrong
03:13:01 <elliott> Or that entire logic, but it works most of the time so probably not
03:13:19 <Elizacat> 23:09:04 [DEBUG] CHUNK_XOFF(x) CHUNK_XOFF(z) y0 yupds 15 14 0 128
03:13:19 <Elizacat> 23:09:04 [DEBUG] CHUNK_XOFF(x) CHUNK_XOFF(z) y0 yupds 15 15 0 128
03:13:41 <elliott> Elizacat: Can you print ys too?
03:13:55 <elliott> else if (y0 + ys > CHUNK_YSIZE)
03:13:59 <elliott> so yupds is just getting set to ys
03:14:34 <elliott> It's probably wrong though, that's what's important :-)
03:16:21 <Elizacat> p = &packet->bytes[packet->field_offset[6]];
03:16:21 <Elizacat> handle_chunk(packet_int(packet, 0), packet_int(packet, 1), packet_int(packet, 2),
03:16:21 <Elizacat> packet_int(packet, 3)+1, packet_int(packet, 4)+1, packet_int(packet, 5)+1,
03:16:21 <Elizacat> (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3], &p[4]);
03:16:31 -!- augur has joined.
03:16:55 <elliott> I'm still fairly certain that ys is the only thing that could be wrong
03:17:00 <elliott> Which probably means one of two things:
03:17:07 <elliott> - Notch is incompetent as ever, fucked something up, we have to work around it
03:17:11 <elliott> - We're interpreting the protocol wrongly
03:19:02 <Elizacat> worldedit is sending invalid size
03:19:09 <elliott> Elizacat: See, I knew it was somebody else's fault
03:19:14 <Elizacat> http://mc.kev009.com/Protocol#Map_Chunk_.280x33.29
03:19:45 <elliott> Elizacat: Oh well, simple fix: bail out of handle_chunk if the size is invalid
03:19:51 <elliott> That'll cause it not to update the chunk, but what can you really do?
03:19:57 <elliott> Or does WorldEdit always update the entire hcunk
03:20:04 <elliott> In which case we can detect WorldEdit's invalid value and set it to the entire chunk size
03:21:54 <elliott> I'll hopefully see about getting Vorpal's patched merged in soon
03:22:02 <elliott> Maybe in ten years when I finish the Scheme integration
03:22:38 -!- azaq231 has joined.
03:22:52 <Elizacat> 23:22:41 [DEBUG] sx sy sz 16 -126 16
03:23:14 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:23:33 <elliott> if (sy < 0) { log_print("sk89q sucks"); sy = 127; }
03:25:46 <elliott> But yeah, either WorldEdit or CraftBukkit needs fixing
03:26:02 <elliott> (If the latter, almost certainly the Minecraft server itself, but what good does reporting bugs to Mojang achieve?)
03:27:09 <Elizacat> that workaround doesn't seem to work properly
03:27:15 <Elizacat> I don't know what the official notch client does
03:27:47 <Elizacat> I think maybe abs() is the right thing to do
03:27:47 <elliott> Hmm, try if (sy < 0) { log_print("sk89q sucks"); sy = 126; }
03:27:53 <elliott> If that works, then yeah, try abs
03:28:11 <elliott> I'm tempted to just say "return;" until WorldEdit or whatever is fixed but that doesn't really help :)
03:31:58 <Elizacat> elliott, I could re-request the chunk, I think
03:32:04 <Elizacat> elliott, not sure how to go about that
03:32:10 <Elizacat> elliott, not sure if that's wise, but that could be a workaround
03:32:18 <elliott> Elizacat: I don't think you can
03:32:25 <elliott> The server decides when you be needin' dem chunks
03:34:53 <Elizacat> elliott, I'd be really curious asto how the notchian server behaves in this regard
03:35:11 <Elizacat> obviously the client doesn't crash :)
03:35:14 -!- derrik has joined.
03:35:18 <Elizacat> so we're doing something different from them, clearly
03:35:35 <elliott> I don't know, it seems to handle every situation, including the impossible-to-handle situation where the server sends a truncated chunk due to Notch thinking that compression can never enlarge data
03:35:46 <elliott> I can only assume it asks Notch himself what it has to do
03:35:59 <elliott> Patented brain-in-a-digital-jar technology
03:38:49 <Elizacat> https://github.com/sk89q/worldedit/blob/master/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java
03:39:46 * elliott idly considers porting mcmap to another language again.
03:39:50 <elliott> Say, one without segfaults.
03:40:39 <Elizacat> I'm going to remain silent on the issue
03:40:45 <Elizacat> let's just say C is a reasonable compromise
03:41:01 <Elizacat> sure it sucks, but it's the only thing anyone can agree on
03:41:11 <Elizacat> my language of choice is not up for debate here :)
03:41:22 <elliott> I'd probably just port it to Haskell and quarter the line count
03:41:34 <Elizacat> and reduce your dev pool by about 90% :P
03:41:42 <Elizacat> thing about C is it's accessible
03:42:09 <elliott> The dev pool is already two people
03:42:21 <Elizacat> elliott, port it to Java and quadruple the line count and add a bunch of useless shite to it and increase RAM use tenfold and leak but
03:42:26 <Elizacat> elliott, hey, it's OO now!!11111
03:42:31 <elliott> "Accessible" seems ill-defined; I would say that a majority of mcmap's users have some experience with Haskell :-P
03:43:11 <elliott> But yeah, certainly more people know C; I'm not sure a random open source project in Haskell is likely to get any fewer developers than one in C, though; Haskell might actually be "hipper"
03:43:49 <elliott> The chances of me actually bothering to port it are insanely low, mind you :P
03:44:15 <elliott> But it is annoying how hard most of the bugs are to track down and then they turn out to be stupid low-level stuff
03:45:11 <Elizacat> Haskell is mostly for hippies and CS students
03:45:20 <Elizacat> I'm neither of those, though you wouldn't know by how well I'm kept
03:45:53 <elliott> Also CS graduates; also people who have been bitten too many times by the bugs and lack of high-level abstraction that imperative languages have :p
03:46:05 <Elizacat> "when was the last time you had a haircut Elizabeth?" "when did the columbia blow up... '03? yeah about then"
03:46:32 <Elizacat> elliott, I'm no functional language monkey
03:46:41 <Elizacat> elliott, I'm no CS student. I'm just a biologist who does this in her spare time
03:46:54 <elliott> BUT I RESERVE THE TERM "MONKEY" FOR INFERIOR LIFE-FORMS SUCH AS PYTHON CODERS THANK YOU VERY MUCH.
03:47:06 <ais523> biologists who program tend to program more awesomely than other people who program, IME
03:47:21 <Elizacat> elliott, let's just agree that ruby sucks :D
03:47:26 <elliott> ais523: Physicists on the other hand... (Isn't it physicists?)
03:47:35 <elliott> Elizacat: Dunno, if Python is in the race...
03:48:09 <Sgeo> elliott, *cough*
03:48:11 <elliott> You can't to be in #esoteric without your taste in languages mercilessly deconstructed >:)
03:48:24 <ais523> Elizacat: I teach in a CS department, and at the undergraduate level, I think I agree with you
03:48:27 <Elizacat> and well, if I had to live in that cesspit any longer
03:48:31 <elliott> Elizacat: They went downhill after they started releasing their lectures on CD
03:48:37 <Elizacat> and I have never regretted it :)
03:48:39 <Sgeo> I'm a bit of a Python fan >.>
03:48:58 <elliott> Sgeo: Quiet the adults are talking.
03:49:49 <monqy> hey is this a lajgauage war
03:50:15 <elliott> only the finest lajgauages will survive
03:50:27 <Elizacat> i'm gonna get my mind out of the gutter brb
03:50:53 <elliott> I hope you didn't misread it as something as dirty as "language"
03:51:01 <elliott> I'm afraid we'd have to ban you
03:51:07 <Elizacat> "lajgauages" was misread as something very naughty
03:51:34 <Elizacat> well when you hang out with men all day and the primary joke is "that's what she said *looks at Elizabeth*"
03:51:38 <monqy> im a functional lajgauge monkey too. a functional lajgauge monqy.
03:52:02 <Elizacat> I'm just gonna leave that accidental typo :p
03:53:03 <pikhq> He's not a native citizen.
03:53:31 <elliott> "No Person except a natural born Citizen, or a Citizen of the United States, at the time of the Adoption of this Constitution, shall be eligible to the Office of President"
03:53:32 * Elizacat writes "elliott, native US citizen, signed me"
03:53:40 <Elizacat> "oh yeah she's definitely telling the truth. Definitely legit"
03:53:43 <elliott> sorry, i wasn't an american citizen at the time of the adoption of the constitution
03:53:54 <pikhq> He'll have to follow Schwarzenneger.
03:54:39 <oerjan> i hear it's sperminator these days
03:54:41 <Elizacat> you mean the asshat who fucked up California because the so-called liberal people of that fine state elected a dickwad like him 'cause he's famous?
03:55:04 <Elizacat> if he could run for president I bet he'd win tho
03:55:15 <pikhq> Elizacat: The reason I'm saying him is just that he'd be the most likely impetus for a repeal of that clause of the constitution.
03:55:16 <Elizacat> they voted for reagan, and he was an asshat, so surely the terminator has a good shot.
03:55:20 <pikhq> Not that I like him.
03:55:21 <elliott> did that cartoon ever come out
03:55:27 <elliott> NOOOoooooOOOOOoooOOOOoooOOOooOOOOOOooooooo its on hold
03:55:34 <elliott> im going to cry myself to death and punch everyone in here to death
03:55:43 * pikhq is US citizen & resident
03:55:55 <elliott> "Hours after Arnold Schwarzenegger announced he's halting his acting career, TMZ reported that his animated The Governator series is on indefinite hold.
03:55:55 <elliott> "In light of recent events, A Squared Entertainment, POW, Stan Lee Comics and Archie Comics have chosen to not go forward with the Governator project," a rep told the website."
03:56:02 <Elizacat> pikhq, I left the US for political reasons :p
03:56:17 <elliott> i left the us because i had teleported there by way of pure impossible quantum
03:56:37 <Elizacat> elliott, well you sound some sort of European
03:56:41 <pikhq> Elizacat: It's rapidly getting to the point where you'll be leaving the US for the ability to have a standard of living *at all*.
03:56:46 <Elizacat> elliott, gonna venture a guess you're either british or scandinavian
03:56:48 <elliott> do only european know about quantum
03:56:52 <monqy> i totally left the us too guys
03:57:00 <elliott> elliott isn't a very scandinavian name is it
03:57:10 <elliott> compare "vorpal" very scandinavian name
03:57:12 <Elizacat> elliott, I know a girl in sweden by the name of Elliott
03:57:19 <Elizacat> "it's a girl's name I'm telling you"
03:57:25 <Elizacat> "what are you on and I want some"
03:58:05 <elliott> "Although the given name was historically given to males, females named Elliott have seen an increase in recent years.[when?][citation needed]"
03:58:08 <elliott> your friend edits wikipedia
03:58:23 <Elizacat> elliott, Vorpal's real name is not Vorpal obv :p
03:58:31 <Elizacat> elliott, I'm not telling his real name! I know it though.
03:58:40 <Elizacat> elliott, let's just say his name is very swedish
03:58:43 <elliott> An "Arvid" Master "Norlander"
03:58:56 <elliott> An "Arvid" Master "Norlander" "Vorpal"
03:59:00 <elliott> Elizacat: i brought him here >_>
03:59:08 <Elizacat> elliott, I'll bring YOU here if you get my drift
03:59:20 <elliott> i dont want a drift its nice and warm in here..........
03:59:48 <monqy> its too warm in here
04:00:04 <elliott> Elizacat: give monqy some drift so he can catch it
04:00:30 <pikhq> Elizacat: So, what, if anything, was it that finally made you get up and leave the US, anyways?
04:00:33 <quintopia> Elizacat: a snow drift in the room would make it chilly
04:00:41 <Elizacat> pikhq, "I left the US" - see first two words
04:00:55 <elliott> Elizacat: terrible unforgivable puns are restricted to oerjan.
04:00:56 <monqy> usa makes my head hurt and i hope the rest of the world is better
04:01:03 <Elizacat> pikhq, Americans do not really... appreciate... European-style socialists.
04:01:05 <elliott> sorry. you will have to get a license (no license applications are accepted)
04:01:08 <pikhq> Elizacat: Ah, so not a specific event, just "The right-wing is nuts".
04:01:10 <elliott> cease and desist cease and desist
04:01:12 <elliott> cease and desist cease and desist
04:01:14 <pikhq> "And the 'left-wing' isn't."
04:01:17 <Elizacat> pikhq, also the country is going to shit.
04:01:26 <Elizacat> pikhq, oh not I'm crazy I'm just not "kill the gays" crazy
04:01:27 <elliott> oerjan: he;lp they arent cesing nad desting
04:01:30 <pikhq> Well, yes. It's been pretty obvious for the past 10 years or so.
04:01:39 <elliott> oerjan: use your wiki admin powers
04:01:58 <oerjan> elliott: well be careful so they don't dest _your_ 'nads
04:02:11 <pikhq> And utterly *astounding* the past 4 years.
04:02:23 <Elizacat> pikhq, everyone blames the black dude for it
04:02:36 <elliott> black people,,,,,,,,,,,,,,,,,,, are all dead,,, in the future
04:02:39 <pikhq> It's like every single bad financial decision made in the past 30-40 years hit at once.
04:02:46 <elliott> I'm remarkably coherent today!
04:02:49 <Elizacat> bush really put the nail in the coffin
04:03:14 <elliott> contaroversila opinion: bushc was a bad persident!!!
04:03:23 <pikhq> Makes me wish I could freaking finish college.
04:03:29 <Elizacat> everyone agrees on that due to his shit ability to publicly speak
04:03:29 <quintopia> well, not true...fdr started it, carter added to it, and then everyone else just added their little chunk
04:03:38 <monqy> I'll have to stay in usa for a few more years at least. this upsets me.
04:04:21 <Elizacat> quintopia, FDR wasn't so bad, tbh, although him dragging the US into WWII was kinda ehhh... it did kick off the whole "huge military-industrial complex" crap
04:04:25 <elliott> monqy: how was an zepto master born in unzepto country...
04:04:28 <Elizacat> I mean I can see the US reasons for doing so
04:04:35 <elliott> let us pray now to zepto /pray
04:04:39 <pikhq> quintopia: Uh, Reagan's to blame for the top tax rate being below 70%. (far, far below). ;)
04:05:21 <Elizacat> hmm everyone always gets in my face about higher tax rates in Europe, but the reality is the poor pay far less tax in Europe than they do in America
04:05:24 <quintopia> sure, but there were plenty of tax exemptions in existence before reagan. the upper crust have never been hurting in the us
04:05:25 <Elizacat> most people only pay the VAT if they are poor
04:05:29 <oerjan> elliott: this is explained by how true mastery of zepto requires suffering
04:05:31 <Elizacat> and in some countries you can get a VAT refund
04:05:41 <pikhq> Bush gets a lot of blame for taking Clinton's slight budget surplus and running it into this shit.
04:05:50 <elliott> oerjan: but the pure state of zepto is unsuffering itself.....
04:05:56 <Elizacat> pikhq, though Clinton was a neolib, truthfully not a fan of him either!
04:06:05 <Elizacat> pikhq, and DMCA = unforgivable in my book
04:06:28 <pikhq> Elizacat: One needn't be a fan to admit that he did better financially than any Republican has in the past 50 years. :P
04:06:30 <Elizacat> I don't get why America gave a shit who he was having oral sex with
04:06:32 <ais523> hmm, is an Elizacat what you get if you cat ELIZA into itself, so it keeps responding to its own comments?
04:06:35 <ais523> that's alway hilarious
04:06:45 <Elizacat> when the president gets one, the one who did it does!
04:06:47 <elliott> you're not trying hard enough
04:07:05 <pikhq> The Republicans are utterly *amazing* at setting a media narrative.
04:07:17 <Elizacat> quintopia, oh god I can see the headlines now
04:07:21 <Elizacat> quintopia, actually it sounds like an Onion headline
04:07:27 <Elizacat> "Scottish woman gives her boyfriend a blowjob"
04:07:42 <Elizacat> "boyfriend: I did not have sexual relations with that woman"
04:08:13 <Elizacat> pikhq, though, I see America is fed up with both by their rapid cycling crap
04:08:38 <quintopia> Elizacat: lemme check my onion archives. ig may have happened.
04:08:38 <Elizacat> pikhq, I mean, if they hate both parties, pray tell, why do they keep electing them?
04:08:57 <pikhq> The thing most screwing us, though, is that we act like the prosperity we had since WWII was because we did something right.
04:09:02 <quintopia> i can tell you why they continue to elect them
04:09:13 <quintopia> its because people dont vote for losers
04:09:19 <pikhq> The only thing we "did" right was not have our industry razed to the ground along with the rest of the world.
04:09:23 <Elizacat> pikhq, we only have it because of bullying everyone else
04:09:27 <quintopia> and everyone knows only one of the two big parties can win
04:09:40 <pikhq> It's very, very easy to prosper when everyone else is in a few decades of economic recovery from WWII.
04:09:49 <Elizacat> quintopia, they could change things but they are too stupid to realise that :)
04:09:56 <Elizacat> quintopia, it's as simple as voting "not republican or democrat"
04:10:01 <Elizacat> what they would actually vote for...
04:10:07 <Elizacat> and I am not a fan of the libertarians
04:10:14 <Elizacat> because don't you know, everyone on welfare is a lazy slob
04:10:34 <quintopia> i dont think they are so bad as far as policy goes.
04:10:40 <Elizacat> welfare abuse happens but for god's sake it's onlyt he norm in America due to the lack of ANY sort of auditing due to slashing the welfare budget. Idiots.
04:10:43 <quintopia> i've never seen the written platform
04:10:44 <pikhq> quintopia: They're certainly *less* bad.
04:10:55 <pikhq> quintopia: At least they don't give a fuck about what happens in people's bedrooms.
04:10:57 -!- Arkanhell27 has joined.
04:11:26 <quintopia> welfare abuse doesnt happen *much* here. it's very low level compared to where it once was
04:11:44 <pikhq> The US is also quite astoundingly high in income inequality...
04:11:46 <Elizacat> America is too stupidt o realise that
04:11:52 <Elizacat> pikhq, it is because the rich pay no tax
04:12:00 <Elizacat> pikhq, despite what the republicans will tell you
04:12:01 <elliott> when you don't have an explanation for something, blame it on people being stupid
04:12:03 <pikhq> Near the top, in fact.
04:12:26 <monqy> stupid people made me who i am today. this distresses me.
04:12:28 <pikhq> And *the top* for developed countries.
04:12:34 <Elizacat> elliott, never attribute to malice what can be adequately explained by stupidity
04:12:44 <Elizacat> pikhq, America is a developed country...?
04:12:45 <pikhq> Well, "developed"; honestly, our infrastructure will probably fall apart if you look at it wrong.
04:12:46 <quintopia> i want to dispute that america's prosperity since ww2 is entirely because infrastructure remained in place
04:12:58 <Elizacat> pikhq, last time I was in Florida I saw people living in tin shacks
04:13:01 <pikhq> quintopia: Not entirely, but that had a hell of a lot to do with it.
04:13:07 <Elizacat> pikhq, I couldn't help but wonder how that shit can happen in a first-world country
04:13:21 <elliott> zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto
04:13:33 <pikhq> quintopia: Obviously, that doesn't help you if your infrastructure is utterly *awful*.
04:13:40 <Elizacat> quintopia, large military to back it up + large infrastructure
04:13:44 <Elizacat> quintopia, but we're coming on an interesting point
04:13:49 <fungot> zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto zepto ...too much output!
04:13:50 <Elizacat> quintopia, America is trying to reinvent itself as a huge "services country"
04:14:01 <quintopia> a large part of it was an increased focus on r+d pretty much across the board, even in private industry, and also with the previous half century's heavy importing of the world's brightest minds wherever possible
04:14:03 <Elizacat> quintopia, which is why it has VERY strong IP law now
04:14:21 <Elizacat> quintopia, the folly in this though is that the government is saddled with debt and the currency is collapsing
04:14:30 <Elizacat> and it doesn't help when few people can actually get into these jobs
04:14:31 -!- Arkanhell27 has left.
04:14:39 <monqy> look what youve done
04:14:51 <monqy> r.i.p. arkanhell27 "a hood guy"
04:15:05 <monqy> h is just so close to g you see
04:15:06 <pikhq> quintopia: But now we don't have *any* of that.
04:15:07 <oerjan> let's hope it was a satanist or something
04:15:13 <pikhq> quintopia: Pretty much all we have is inertia.
04:15:21 <Elizacat> oerjan, hey now I used to be pagan!
04:15:28 <Elizacat> oerjan, for certain values of pagan yes but still
04:15:34 <quintopia> pikhq: no worries tho. at least our children are getting world class educations!
04:15:50 <oerjan> Elizacat: yeah but that's not why you came to this channel i assume
04:15:50 <Elizacat> America's education is being privatised
04:15:58 <Elizacat> sorry, that is what is happening
04:16:03 <Elizacat> this is why there is so much emphasis on going to university now
04:16:09 <Elizacat> because primary and secondary education blows
04:16:14 <pikhq> Now even our colleges are starting to decline in quality.
04:16:22 <Elizacat> elliott, I grew out of the whole pagan phase when I was 15 :p
04:16:44 <Elizacat> pikhq, because tuition is so high and nobody can afford to fucking go?
04:16:48 <elliott> does any pagan not grow out of the whole pagan phase when they're fifteen
04:17:00 <Elizacat> pikhq, I mean people in the UK bitched about the tuition hike to £9000 and that's still half of what you'll pay at a decent US uni
04:17:14 <Elizacat> pikhq, unless you're poor/ghetto and go to a community college
04:17:31 <Elizacat> pikhq, but few people can really advance beyond that without owing the government thousands of $$$ in debt which will stalk them for life
04:17:34 <Elizacat> due to laws designed to lock it in
04:17:34 <pikhq> Elizacat: And our colleges also are focused on giving you what amounts to a more expensive high school diploma.
04:17:41 <Elizacat> quintopia, probably less than half.
04:17:49 <Elizacat> quintopia, that's about $12k USD or so
04:17:54 <quintopia> try a third to a fifth, depending on whether its a public or private university
04:18:03 <pikhq> Elizacat: That's a semester at some schools.
04:18:26 <Elizacat> <elliott> does any pagan not grow out of the whole pagan phase when they're fifteen
04:18:43 <Elizacat> elliott, my boyfriend is wiccan for certain values of wiccan so...
04:18:52 <Elizacat> elliott, not that it matters to me as I'm not a bigot
04:19:03 <pikhq> Quite honestly, my only hope is to graduate soon and hope that US degrees still have *some* standing whilst trying to leave the country.
04:19:15 <elliott> my twos can look line ones sometime :P
04:19:34 <Elizacat> it's more the philosophy he's into than the actual pagan nature itself
04:19:39 <Elizacat> who cares what someone else's religion is :D
04:20:09 <monqy> hey guys im back from being away what did i miss
04:20:10 <elliott> same way you might care what someone's political beliefs are? anything that forms the underlying fabric of someone's beliefs is something to be interested in, surely
04:20:11 <Elizacat> pikhq, go to norway! well, actually I would be careful...
04:20:22 <Elizacat> pikhq, norway's economy is swimming in money due to oil, but that's only got another 30 years...
04:20:41 <Elizacat> I would go to norway right now, but be prepared to move out in 30 years.
04:20:47 <Elizacat> though I like scotland, very nice.
04:20:48 <pikhq> Elizacat: Norway's also Schengen, making leaving fairly easy.
04:20:57 <Elizacat> it's not great or shitting unicorns, but it's ok
04:21:01 <Elizacat> relative to the rest of the UK at least
04:21:33 <Elizacat> pikhq, honestly i think the only country aligned with myself politically is Iceland, more or less, but well... their economy is kinda shit.
04:21:44 <Elizacat> what do you expect with a country with less than 400k people...
04:21:55 <elliott> Elizacat: monaco's economy isn't too bad i gather
04:22:10 <Elizacat> elliott, if you're a rich hipster it's a great plcae to live
04:22:18 <Elizacat> elliott, but I don't fancy that :p
04:22:30 <Elizacat> avoid Italy btw, it's very catholic. unless you don't mind that sort of thing.
04:22:34 <elliott> Elizacat: re <Elizacat> what do you expect with a country with less than 400k people...
04:22:50 <Elizacat> elliott, they have about a million people I think
04:23:28 <Elizacat> Monaco boasts the world's highest GDP nominal per capita at $215,163 and is the most densely populated country in the world. Monaco also has the world's highest life expectancy at almost 90 years, and the lowest unemployment rate
04:23:34 <Elizacat> you will be living with a bunch of rich assholes
04:23:41 <elliott> oerjan: what's RWS again? ReaderT WriterT State?
04:24:04 <oerjan> elliott: yeah basically
04:24:24 <elliott> i should go to bed soon like a normal person
04:25:45 <oerjan> monqy: presumably it diminishes overhead when you have all those monads to combine
04:29:28 <Elizacat> combining monads, that sounds really hot
04:29:43 <Elizacat> wanna come back to my place and combine moands with me? :)
04:29:56 <Elizacat> although I gotta admit I'm not very functional
04:30:10 * Elizacat has now reached quota for puns for the month
04:30:24 <oerjan> the two first panels of today's xkcd ironically describes how haskell was made
04:31:42 <ais523> Elizacat: borrow some from oerjan, he has an unlimited pun quota
04:32:29 -!- ralc has quit (Read error: Connection reset by peer).
04:32:47 <elliott> oerjan: how to avoid ST's additional type argument, a short guide:
04:32:59 <ais523> who here's used Agda, btw? my new coworker has apparently been implementing it in Epic
04:33:12 <elliott> ais523: I've sort of used it
04:33:21 -!- copumpkin has changed nick to skewness.
04:33:34 <elliott> ais523: is your coworker Edwin Brady?
04:33:37 <ais523> a simple parser written in Agda took, with the impl, well over an hour to parse an expression with six operands and five operators, all of which were numbers or arithmetic respectively (with single-character names)
04:34:16 <elliott> runGen = unsafePerformIO . unGen
04:34:16 <elliott> at least I've avoided the type argument
04:34:20 <elliott> hmm, this may actually be unsafe, cool
04:34:35 <ais523> elliott: the more traditional compiler took only a couple of seconds to run the code, but over an hour to compile it
04:34:37 <Elizacat> I thought this was #esoteric not #functional
04:34:53 <ais523> Elizacat: well, we look at existing languages to inspire our own
04:35:01 <monqy> we also look at gay sex
04:35:03 <elliott> it just so happens that all of us are functional programmers because FUNCTIONAL LANGUAGE RULE WOOOOOOOO
04:35:06 <Elizacat> I'm not much of a functional language monkey
04:35:15 <Elizacat> monqy, male or female or shemale on shemale
04:35:17 <elliott> if you keep saying it enough it becomes true Elizacat
04:35:39 <monqy> how should i know im just a monqy
04:35:41 <Elizacat> elliott, I will have a million quid by the end of the month
04:35:50 <Elizacat> elliott, thanks I will now keep saying this.
04:35:54 <ais523> I think knowing a couple of functional languages is important to be able to design languages well yourself, or at least compilers
04:36:04 <ais523> even if the language itself isn't functional
04:36:23 <Elizacat> monqy, you said you look at gay sex I was asking for what kind
04:36:26 <elliott> (out, out1, out2) -> (inp, inp1, inp2) -> Gen ()
04:36:55 <Elizacat> monqy, how can you say you look at gay sex all day if you don't even know what kind of gay sex you're looking at!
04:36:56 <monqy> Elizacat: I've mostly only heard rumours but I think it's male????
04:37:30 <ais523> monqy: hey, you can't derail the conversation with that any more, that meme died out years ago
04:37:34 <ais523> and wasn't particularly interesting even then
04:37:54 <Elizacat> I usually derail a conversation with a non-sequitor
04:37:58 <Elizacat> repeat until conversation is derailed
04:38:06 <monqy> I wasn't here years ago so I'm going to forgive myself on this one
04:38:18 <Elizacat> http://www.flickr.com/photos/openfly/5948018975/lightbox/
04:38:22 <elliott> *Redsynth.Test> let x = runGen newVar in runGen (writeVar x 9 >> readVar x) :: [Integer]
04:38:25 <elliott> yay, i broke the type system
04:38:51 <elliott> that was ghci, not editing
04:39:03 <elliott> anyway i know what we are /shakes cane at the weeks-oldie
04:40:02 <monqy> what does that mean
04:40:31 <monqy> i dont feel very ended
04:41:07 <Elizacat> monqy, how many scones do I have to feed you
04:41:11 <ais523> monqy: it means success
04:41:15 * Elizacat shoves another scone into monqy's mouth
04:41:24 <monqy> i am going to get fat stop it
04:41:30 <ais523> even on VMS, contrary to popular opinion
04:41:50 <Elizacat> nothing is a success as long as you are using VMS
04:42:41 <Elizacat> vorpal was right, I do seem to fit in a bit here :P
04:43:03 <Elizacat> although I'm not much for functional languages alas, to me it felt like bondage and discipline :P
04:43:07 <Elizacat> which is hot, but not in programming
04:43:47 <Elizacat> I counter with "I am not a maths major"
04:43:49 <elliott> funny, python feels more like bondage and discipline
04:43:53 <ais523> what about esolangs that aren't functional, but end up being used that way by uncreative people?
04:44:01 <ais523> (e.g. Underload; I'm uncreative, but apparently oerjan isn't)
04:44:07 <elliott> want this control structure? why no you can't have it. Guido doesn't like it.
04:44:10 <elliott> you like Guido, don't you?
04:44:18 <Elizacat> a lot of esolangs don't have for
04:44:24 <elliott> ah. folds? yes. Guido doesn't want you to use that.
04:44:30 -!- skewness has quit (Ping timeout: 240 seconds).
04:44:35 <lambdabot> forall a (m :: * -> *) b. (Monad m) => [a] -> (a -> m b) -> m [b]
04:44:55 -!- skewness has joined.
04:44:56 -!- calamari has joined.
04:44:57 <elliott> lots of imperative languages don't have structured control structures at all :)
04:44:59 <Elizacat> names escape me atm, it's been too long
04:45:11 <Elizacat> I'm a biologist who happens to code
04:45:15 <monqy> by "for" do you mean built-in or what
04:45:36 <elliott> well yeah but that isn't the point monqy :-P
04:45:40 <Elizacat> now silence about this nonsense or I shall make you use Java
04:45:54 <elliott> hmm, mo' typeclass problems
04:45:55 <Elizacat> may your days be free of downward-fungargs and function pointers
04:46:22 <elliott> lol @ plebians who don't understand lexical scope
04:46:31 <elliott> also lol @ plebians who use pointers
04:46:35 <monqy> those people still exist?
04:46:42 <monqy> the not understanging lexical scope ones
04:46:43 <elliott> yes, newLISP exists after all
04:46:47 <Elizacat> outside of CS academia I'm afraid!
04:47:08 <Elizacat> I haven't used lisp in a while, but I used to use clisp
04:47:23 <Elizacat> back in the days when I was just a young adolescent, struggling with my sense of identity...
04:48:07 <Elizacat> I will point out though that there's nothing wrong with liking esolangs but not liking functional languages, nor is there anything wrong with not wanting to be in the CS cesspit :(
04:48:27 <Elizacat> I don't like buttsex so that probably has something to do with not liking CS as you take it in the ass a lot in that field
04:48:27 <Sgeo> elliott, Picolisp doesn't use lexical scoping, but you like it
04:48:41 <elliott> picolisp has several zepto properties
04:49:04 <monqy> cs is bad in that everyone misses the point ugh
04:49:20 <monqy> I don't know what the point is all I know is that everyone misses it
04:50:03 <monqy> maybe I should have been a mathematics major
04:50:16 <Elizacat> CS is just the post-Turing decline in formal systems theory
04:50:30 <oerjan> ^ul (( )*S:):((What)~^(do)~^(you)~^(mean)~^(no)~^(for)~^)^
04:50:30 <fungot> What do you mean no for
04:50:38 -!- cheater_ has joined.
04:51:49 <Elizacat> just be thankful I'm not like my bf
04:52:06 <monqy> whats wrong with logo
04:52:07 <elliott> in fact it almost is scheme
04:52:08 <pikhq> M-expression Lisp, you mean?
04:52:18 <elliott> pikhq: logo is fixed-arity but close enough
04:52:47 <monqy> i think logo may have been my first language
04:52:54 <Elizacat> I think part of the reason too I don't like funclangs is because I simply prefer to get things done rather than study about theory all day long :P
04:52:59 <pikhq> elliott: Meh, variable arity isn't all taht essential to Lisp, anyways.
04:53:04 <elliott> Elizacat: that's why i never bothered to learn programming
04:53:05 <Elizacat> CS theorists think about programming, as for myself, I prefer to do :)
04:53:06 <elliott> I just write BASIC with gotos
04:53:17 <Elizacat> elliott, well Vorpal tells me you overengineer :P
04:53:20 <Elizacat> or maybe he was thinking someone else
04:53:28 <elliott> i'm shocked and offended :-)
04:53:32 <Elizacat> maybe I"m thinking someone else
04:53:37 <monqy> im shocked and offended too
04:53:42 <elliott> but seriously, it is basically just wilful ignorance to say that thinking about programming stops you getting things done.
04:53:53 <elliott> if you don't think, you can't accomplish anything. programming is a science.
04:53:56 <monqy> what if i dont want to
04:54:24 <Elizacat> elliott, sorry it's both an art and science, it transcends both
04:54:43 <elliott> uh, i'm assuming that was a joke at least
04:54:44 <monqy> and yet you dislike functional
04:54:46 <Elizacat> elliott, algorithimic study is a science, I think the languages themselves are more of an art :)
04:55:01 <elliott> why does programming have to be both an art and a science
04:55:06 <elliott> physics is science, isn't it beautiful?
04:55:08 <Elizacat> I say this as someone who has a disdain for the arts too
04:55:12 <elliott> it seems well enough just to say that science is art
04:55:21 -!- calamari has quit (Quit: Leaving).
04:55:34 <itidus20> programming relates to language. language relates to literature
04:56:07 <Elizacat> elliott, I think physics are a mess actually
04:56:23 <Elizacat> elliott, standard model is *awful* I don't care who you are
04:56:26 <elliott> it was an example, but w/e
04:56:27 <Elizacat> if you think otherwise you are on some good shit
04:56:28 <monqy> physics isn't my style. my groove. it isn't.
04:56:46 <elliott> i should have said biology >:)
04:57:04 -!- skewness has changed nick to variants.
04:57:44 <elliott> oh, hey, I need Data.Generics
04:57:50 <ais523> biology's a good field to be in, because as long as your methodology is good pretty much any experiment leads to publishable results
04:57:54 <ais523> even if they're "nothing happened"
04:58:06 <ais523> because that's notable and interesting in biology, especially if you think something should have done
04:58:13 <Elizacat> bf: "get to bed please" me: "I'm having a discussion on IRC" bf: "carry on :P"
04:58:15 <ais523> and there are more or less infinitely many unsolved problems
04:58:17 <elliott> ais523: also you get to torture frogs
04:58:29 <Elizacat> it's not torture when their brain is the size of a pea
04:58:43 <pikhq> ais523: Not "infinitely many", just a very large unsolved problem space.
04:58:48 <elliott> it's torture iff they can feel pain
04:58:52 <elliott> the size of their brain is irrelevant
04:59:05 <pikhq> Large *and easy to access*, more-like...
04:59:06 <elliott> if it can feel pain, you can torture it.
04:59:08 <ais523> pikhq: that's what the more or less was for
04:59:12 <elliott> if it can't feel pain, you can't torture it.
04:59:17 <Elizacat> what if I told you by severing the right nerves in the spine they can't feel pain eh?
04:59:24 <monqy> do forgs feal pain.......
04:59:30 <pikhq> Unlike physics, where you pretty much *need* to spend your career on it to get a notable result.
04:59:36 <itidus20> chess is a popular standard. but surely the specific rules are of more historic than mathematical interest.
04:59:37 <elliott> Elizacat: then that wouldn't be torture, that would just be relatively pointless messing about
04:59:37 <Elizacat> it is arguable whether or not they feel pain
04:59:40 <Elizacat> in the sense that humans feel pain
04:59:41 <monqy> are frogs people too
04:59:45 <elliott> probably ending in death, which of course is bad, but not torture
04:59:46 <Elizacat> they obviously wish to avoid the negative stimulous
05:00:02 <Elizacat> but nobody really knows if it is "suffering" in the sense humans or mammals have it
05:00:27 <elliott> makeMut :: (RW v) => Gen (a v)
05:00:27 <elliott> readMut :: (RW v, R v') => a v -> Gen (a v')
05:00:34 <elliott> my project is exploding under its own complexity
05:00:51 <elliott> Elizacat: it was three lines
05:00:57 <monqy> elliott: what does this mean????
05:02:23 <oklopol> "<monqy> p.s. for sucks" <<< this would make a great saying
05:02:25 <itidus20> I think that the reason programming becomes science/engineering is that it can't be wrong. The way a program is required to work.
05:02:26 * oerjan hangs the stuffed monkey on the wall
05:02:35 <pikhq> https://gist.github.com/1091803 ... Wow.
05:02:42 <ais523> oklopol: heh, we both parsed for as a preposition there rather than a noun?
05:02:46 <Elizacat> oerjan, can we hang the stuffed monqy on the wall
05:02:51 <ais523> pikhq: without looking, is that the comparison of echo impls between UNIX variants
05:02:59 <itidus20> Whereas art can always be approximate
05:03:06 -!- variants has changed nick to copumpkin.
05:03:07 -!- copumpkin has quit (Changing host).
05:03:07 -!- copumpkin has joined.
05:03:41 <oerjan> Elizacat: that's the joke.jpg
05:03:42 <elliott> GNU echo is my favourite program it does everything
05:03:42 <ais523> I think they're all good, for their own purposes
05:03:55 <elliott> GNU for printing help messages and version information?
05:04:04 <ais523> elliott: GNU is the only one there which supports the -e flag
05:04:04 <pikhq> ais523: The comparison of GNU echo isn't entirely fair.
05:04:19 <pikhq> ais523: It's omitting a few dozen other files.
05:04:22 <ais523> which I've found myself wishing for in Busybox before now
05:04:34 <ais523> I solved the problem with printf in the end, but it was messy
05:04:41 <elliott> ugh, Data.Generics makes this a real pain
05:04:55 <elliott> ais523: busybox has catv for that purpose
05:04:59 <itidus20> I think that gaming will eventually prove to be "software as art"
05:05:03 <ais523> aha, I didn't know about that
05:05:05 <ais523> can you run it in reverse?
05:05:17 <ais523> as in, echo -n -e is sort of the reverse of cat -v
05:05:23 <ais523> (echo -e without -n will just print -e)
05:05:33 <elliott> printf is probably the thing to use
05:06:02 <ais523> (the problem, incidentally: you have a serial terminal on a system that contains only Busybox, and the terminal will garble non-ASCII characters you send; you have Busybox sh running in the terminal; how do you send a binary?)
05:06:55 <pikhq> ... No, not commonly in Busybox. :/
05:07:02 <pikhq> No, wait, yes it is. Right there.
05:07:16 <pikhq> ais523: You overthought the problem.
05:07:17 <elliott> ais523: btw, I've re-added the VHDL-style monadic DSL back in to my synthesiser toy; now the only problem is finding an actual /use/ for it
05:07:38 <ais523> pikhq: it was a stripped-down version, that didn't have uudecode
05:07:43 <ais523> in fact, the binary we were trying to send was uudecode
05:08:04 <oklopol> "<pikhq> Unlike physics, where you pretty much *need* to spend your career on it to get a notable result." <<< then there's stuff like number theory where you have to spend your career to find out you weren't good enough to ever get a norable result in the first place
05:08:18 <elliott> ais523: the functional style seems nicer in all cases I've tried so far :P
05:08:23 <pikhq> ais523: No base64 either?
05:08:28 <elliott> oklopol: you really have an obsession with number theory's difficulty
05:08:41 <ais523> in the end I wrote a script that translated things to a series of printfs
05:09:04 <Sgeo> calibre works fine on the command line on Linux, right?
05:09:12 * Sgeo wonders how to make a Nook publication
05:09:25 <ais523> hmm, given that someone mentioned xkcd earlier, I've actually been looking back through it trying to find a good one
05:09:31 <oklopol> "<ais523> oklopol: heh, we both parsed for as a preposition there rather than a noun?" <<< well yes, but i only did if for sucks
05:09:38 <ais523> I rather like http://xkcd.com/887/ which has what I want in an xkcd
05:10:00 <elliott> oerjan: how do i get an infinite list of iorefs
05:10:03 <ais523> even if it isn't a joke in that there's no punchline, there's a bunch of intriguing research, and the results are quite amusing
05:10:16 <oerjan> elliott: unsafeInterleaveIO
05:10:22 <monqy> theres a punchline its just really bad
05:10:25 <elliott> oerjan: doesn't recursive do work
05:10:52 <oerjan> elliott: no, that gives you only a cyclic list with _one_ ioref in it :P
05:11:16 <elliott> oerjan: doesn't sequence (repeat newIORef) work
05:11:20 <oerjan> or wait actually you don't even need recursive do for that
05:11:32 <lambdabot> forall (m :: * -> *) a. (Monad m) => Int -> m a -> m ()
05:11:37 <lambdabot> forall (m :: * -> *) a. (Monad m) => Int -> m a -> m [a]
05:11:53 -!- azaq231 has quit (Quit: Leaving.).
05:11:57 <oerjan> elliott: what's wrong with unsafeInterleaveIO, this is the kind of stuff it's _for_
05:12:19 <oerjan> also, i used both that and recursive do in Malbolge Unshackled
05:12:49 <lambdabot> Control.Monad replicateM :: Monad m => Int -> m a -> m [a]
05:12:50 <lambdabot> Control.Monad replicateM_ :: Monad m => Int -> m a -> m ()
05:12:50 <elliott> oerjan: yeah yeah i know :P
05:12:55 <elliott> turns out I don't need it :D
05:13:13 <elliott> Illegal instance declaration for `GenF (mut -> Gen ()) pure'
05:13:13 <elliott> (the Coverage Condition fails for one of the functional dependencies;
05:13:13 <elliott> Use -XUndecidableInstances to permit this)
05:13:22 <oklopol> yes, obviously the reason is i'm not in number theory myself
05:13:24 <oerjan> elliott: if it's in IO, you won't be able to get an infinite number of IORefs without, i believe
05:13:53 <oklopol> INSTEAD I SHALL JUST FAIL IN A SIMPLER FIELD
05:14:38 <elliott> ais523: didn't you say you were sleeping like a normal person
05:14:52 <elliott> [a',b',c'] <- sequence [readVar a, readVar b, readVar c]
05:14:55 <elliott> oerjan: what's wrong with this??
05:14:56 <oklopol> actually i realized one of my best results is essentially the same as this famous theorem in symbolic dynamics, or at least the proofs are very similar
05:15:25 <oklopol> if my result follows from that, i'm switching to biology
05:15:42 <elliott> oklopol: sshhhh, Elizacat is around
05:15:48 <ais523> elliott: I was, but that pattern is easily breakable
05:16:00 <ais523> also, restorable, astonishingly
05:16:24 <elliott> ais523: i share your maybe-not-pain
05:16:48 <oerjan> elliott: i don't see anything wrong...
05:17:30 <oklopol> Elizacat: sorry i didn't mean to imply your field is inherently simpler than mine, more that it has more hot chicks
05:18:41 <oklopol> there's this hot biology chick at uni who i'd prolly ask out if she didn't have kids :-d
05:18:44 <elliott> ?. pl undo do m <- newMut; f m; readMut m
05:18:53 <ais523> oklopol: don't you have a girlfriend?
05:19:21 <ais523> hmm, I must be confused
05:19:28 <elliott> he used to, but then he un-got a girlfriend
05:22:29 <oklopol> maybe i could ask the biology chick out for casual sex tho
05:25:29 <elliott> *Redsynth.Test> let ID x = addS (addition (one,zero,zero,zero) (one,zero,zero,zero)) in x
05:25:29 <elliott> *** Exception: Maybe.fromJust: Nothing
05:26:51 <ais523> I think fromJust is actually inexpressible in Agda
05:27:21 <ais523> and in Anarchy, it'd require you to either override the compile error, or put it in a context where only Just was possible and where that was inferrable by the compiler
05:27:37 <ais523> Agda reminded me a bit of Anarchy, even though they're moving in opposite directions in another sense
05:28:01 <Sgeo> Is Anarchy intended to be a real language? I know Agda is
05:28:02 <elliott> <ais523> I think fromJust is actually inexpressible in Agda
05:28:11 <Lymee> ?pl \a b c -> a a a a b b b b c c c c a b c a a b b c c
05:28:14 <Elizacat> <oklopol> Elizacat: sorry i didn't mean to imply your field is inherently simpler than mine, more that it has more hot chicks
05:28:15 <Lymee> Let's see what this does!
05:28:15 <lambdabot> flip flip id . fmap ap . flip flip id . (ap .) . join . (flip .) . join . (flip .) . (flip =<< (flip .) . join (flip . (flip .) . flip flip id . (ap .) . join . (flip .) . join (flip . (flip .) .
05:28:15 <lambdabot> flip flip id . (ap .) . flip flip id . (ap .) . flip flip id . (ap .) . join . join . join . join (join (join id)))))
05:28:15 <lambdabot> optimization suspended, use @pl-resume to continue.
05:28:18 <elliott> you can assume it as an axiom
05:28:19 <Elizacat> not as many as you would hope oklopol
05:28:23 <ais523> it's intended to be usable
05:28:29 <ais523> that doesn't quite rule it out from being an esolang
05:28:31 <lambdabot> flip flip id . fmap ap . flip flip id . (ap .) . join . (flip .) . join . (flip .) . (flip =<< (flip .) . (flip =<< (flip .) . flip flip id . (ap .) . join . (flip .) . (flip =<< (flip .) . flip
05:28:31 <lambdabot> flip id . (ap .) . flip flip id . (ap .) . flip flip id . (ap .) . join . join . join . join (join (join id)))))
05:28:33 <elliott> Theorem foo : forall a, a. Admitted.
05:28:38 <ais523> it has esoish features, but also a lot of concessions to practicality
05:28:51 <ais523> e.g. I plan to steal OCaml's standard library so that there is actually a standard library
05:29:04 <Lymee> Theorem trollLogic : forall a, b.
05:29:07 <Elizacat> oklopol, I went into this field simply because 1) I love biology, 2) CS is a sausagefest, 3) modern CS is just crap
05:29:10 <elliott> ais523: how about stealing not Ocaml's
05:29:30 <Elizacat> oklopol, joke's on me, #1 and #3 still hold true, but #2, bio is a sausagefest too!
05:29:53 <Elizacat> I get hit on constantly, and I am not even that good looking
05:29:58 <ais523> elliott: because I plan to write the compiler using OCaml as a backend
05:30:14 <Elizacat> (ladies and gentlemen, swamp thing! *points to self*)
05:30:17 -!- Lymee has set topic: correlation causes causation | Troll programming languages | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
05:30:22 <elliott> ais523: should i go to bed...
05:30:49 <Gregor> "CS is a sausagefest" being a reason not to go into it is a great self-fulfilling prophecy.
05:31:04 <ais523> elliott: I will soon, I think
05:31:20 <Lymee> Gregor, many things are...
05:31:49 <elliott> Gregor: it's not like making the decision to go into CS would fix that overnight
05:32:02 <elliott> so it depends how much patience you have :-P
05:32:13 <elliott> ais523: i hate people who have as terrible a sleeping pattern as me, because i use them being awake as an excuse not to sleep yet
05:32:40 <pikhq> I hate going to sleep when elliott wakes up.
05:32:47 <ais523> elliott: the best advice I can give is to work out which sleep pattern you /want/ to have
05:32:53 <elliott> ais523: the one i don't have
05:32:56 <Sgeo> elliott, I'd say I have unpaid work to do, but I'm now going to get paid for it. Less than minimum wage, but still
05:33:05 <ais523> my sleep pattern was really bad before I found to my surprise that that actually worked
05:33:12 <elliott> Sgeo: better than nothing :)
05:33:35 <pikhq> Also, wow. Of those various echo implementations, only *one* is actually POSIX-compliant.
05:33:35 <Lymee> ais523, does this include the output of my brain's built in random number generator?
05:33:41 <Lymee> Only explanation I can find.
05:33:55 <pikhq> (though its source is not)
05:33:58 <Lymee> pikhq, how can /echo/ fail?
05:34:16 <pikhq> Lymee: It is forbidden for echo to take options.
05:34:24 <elliott> ais523: i would say i want to get up when i get up and go to bed when i go to bed, but that's stupid because I'm about 90 percent sure I have ridiculously low melatonin levels
05:34:30 <elliott> and also terrible willpower
05:35:00 <ais523> elliott: well, it's more, figure out what sleep time and wake time allows you to get the most done in a day
05:35:03 <ais523> possibly by experiment
05:35:29 <ais523> I've been finding that 9pm sleep, 6am wake (with some hours in it spent not sleeping) is easy to stick to, but not very useful for actually getting work done for some reason
05:35:48 <elliott> that sounds impossible to stick to for me
05:36:02 <Gregor> ais523: Perhaps because you're not a farmer.
05:36:21 <ais523> elliott: in my case, I can't really get work done in the afternoons
05:36:29 <ais523> nor immediately after I wake up
05:36:36 <Gregor> Or, more to the point, work amongst humans implies comradery, and comradery implies being awake when other people are awake.
05:36:46 <ais523> which leaves only a few hours in the sane-people sleep schedule
05:36:49 <elliott> "work amongst humans implies comradery" <-- this is complete bullshit
05:36:54 <ais523> the insane one where I go to bed at 9am is a lot more productive
05:37:11 <elliott> ais523: i'm useless for hours after I wake up
05:37:32 <oerjan> elliott the black hole
05:37:45 <elliott> i'd just like to be awake constantly, except i can press a button and it makes me feel really tired but not like I haven't slept and then I would have a sleep if I felt like it
05:38:30 -!- cheater_ has quit (Ping timeout: 255 seconds).
05:38:37 <monqy> i wish i could go unconscious and hallucinate at will this would be pretty cool
05:38:54 <elliott> yeah that's pretty much the only reason i'd want to be tired
05:39:02 <elliott> falling asleep is nice and also unconscious hallucination is nice
05:39:06 <elliott> hmm, I bet ais523 is terrified of dreams
05:39:27 <ais523> elliott: nah, I think we've discussed dreams in here before
05:39:33 <ais523> they often leave me disoriented afterwards
05:39:40 <elliott> do they not count because you can't take real-world actions in them?
05:39:49 <ais523> after I realise beliefs I thought I held while dreaming were completely nonsensical
05:39:52 <elliott> I know you're scared of hallucinogens and anything that impairs thoughts
05:41:22 <ais523> that's a reasonable term
05:43:12 <itidus20> a dream can influence a waking thought
05:43:50 <itidus20> infact, all dreams which get mentioned in waking time have influenced communication
05:43:56 <ais523> indeed, you can remember dreams, although usually only the end of one
05:44:09 <ais523> my dreams, if described, often sound like the sort of thing zzo38 would come up with
05:44:11 <ais523> and have about as much context
05:44:23 <ais523> e.g. I was dreaming of Chess vs. Missigno. a few days ago
05:44:41 <itidus20> elliot: the concept of the word dream is based on collective experiences of dreams
05:44:45 <ais523> I even worked out some of the rules after I woke up
05:45:01 <ais523> then realised it was an obvious win for the Chess player; it might be interesting if you added a second Missingno., but I doubt it
05:46:38 <itidus20> i know that Missingno is a pokemon but how can it "vs" Chess? a pokemon battle?
05:46:43 <ais523> (summary of the rules: played on a chessboard; the chess player starts with a standard set of 16 pieces arranged in the usual way, but the king has no royal powers because they're permanently in checkmate; the missingno. player starts with two missingno.s on d8 and e8, and a missingno. can teleport to any square of the board and captures as it moves)
05:46:45 <elliott> wow, this is definitely the most confusing code I've wirten ... today
05:47:05 <elliott> ais523: are the pieces lovingly handcrafted marble missingnos
05:47:19 <ais523> (and the chess player wins by capturing both missingno.s or having a king (including a pawn promoted to king) on the 8th rank at the start of the turn, the missingno. player wins by capturing all the chess pieces)
05:47:29 <ais523> elliott: I didn't get that far, but I assume so
05:47:40 <ais523> when I dream, details don't exist unless I wonder about them, and I didn't
05:47:49 <ais523> it'd be great if they were, though
05:47:57 <ais523> or maybe Staunton pattern missingno.s in wood
05:48:08 <ais523> note that missing the dot in missingno. is as bad as capitalising the b in brainfuck
05:48:59 <itidus20> What I think is that the best features of Nintendo glitches is the fact that the code was too optimized to allow for conditional guards against them.
05:49:07 <itidus20> Like they left the gates open for glitches.
05:49:29 <ais523> I may be doing a glitchrun of Pokémon Blue as part of a Let's All Play next month, and I've been practicing
05:49:35 <ais523> that's presumably why Missingno. surfaced in my mind
05:49:35 <itidus20> Or maybe they just didn't realize
05:49:45 <ais523> not sure why chess was involved
05:49:53 <elliott> "The GNU version is best. none of the other's implement --help to print the program's usage, including specifics on the (also not implemented) -E and -e options, which are useful depending on how your script uses echo. Also, vs the SYS V and other older versions, this version of echo doesn't require a shell to properly handle escape sequences or quotes. It also properly detects and uses locales and characters sets. The FreeBSD version does almost
05:49:54 <elliott> none of these things. Also, given the source code above, it would be a simple matter to reimplement echo more simply. Be careful. Some of that extra functionality may be neccesary for your system to function."
05:50:19 <itidus20> But so.. is it ethical/moral to knowingly leave out conditional guards just incase a glitch occurs
05:50:31 <elliott> no you should be put in prison for it
05:50:36 <elliott> for making a GAME that is BUGGY OMG
05:50:41 <pikhq> elliott: To that I say: only SysV makes echo "$FOO" safe. :)
05:50:43 <itidus20> with super mario you see... they were fighting over every byte
05:50:59 <ais523> elliott: I'd have to object to that on the basis that it isn't generally /useful/ for echo to implement locales unless it has help/version info
05:51:18 <itidus20> so the code was "truer" because it allowed glitches
05:51:34 <ais523> itidus20: did you see ksplice's vulnerability report against Super Mario Bros., complete with hotpatch
05:51:45 <ais523> it was one of the better April Fools jokes from last April 1, IMO
05:51:46 -!- cheater_ has joined.
05:51:50 <itidus20> i don't know who ksplice is :D
05:52:16 <ais523> they're basically a Linux kernel security company; they sell a product that allows for kernel updates without rebooting
05:52:22 <ais523> and also talk about related stuff on their blog
05:52:40 <ais523> here we go: http://blog.ksplice.com/2011/04/smb-1985-0001-advisory/
05:52:56 -!- paskill has joined.
05:52:58 <itidus20> but yeha.. this has been on my mind for a while.
05:53:25 <itidus20> the reason for the cool glitches in games is simply they don't add code to prevent them.
05:53:31 <ais523> I was talking to a bunch of SMB1 speedrunners about it, they suspected that it probably had unintended side effects but weren't sure what
05:53:42 <elliott> itidus20: or... for mistakes
05:54:06 <pikhq> What does the patch actually do, anyways?
05:54:20 <ais523> pikhq: we weren't entirely sure
05:54:22 <itidus20> like.. theres a mario glitch which allows small mario to have the pallete of fire mario
05:54:40 <ais523> one of its effects is to prevent rightwards horizontal zipping from working
05:54:41 <itidus20> now nintendo could have included code which says "small mario should never be allowed to have the fire mario pallete"
05:55:00 <ais523> as it's a one-line change that replaces a variable with a constant, it probably makes leftwards zipping really easy or something
05:55:03 <itidus20> but since they never formally said it can't happen... it ended up happening
05:55:11 <elliott> itidus20: that... isn't how coding works
05:55:16 <elliott> you don't have to put conditionals for impossible conditions in
05:55:20 <ais523> itidus20: well, the strange thing there is that something that should be stored in one variable is actually stored in two
05:55:25 <elliott> the problem is that /some other/ code has a bug that deliberately sets it that way
05:55:32 <elliott> the bug is not in the lack of condition, it's in the other code changing
05:55:38 <ais523> and the problem happens when they get out of sync
05:56:24 <itidus20> but most modern games i think will just say "somethings wrong lets abort"
05:56:52 <pikhq> itidus20: Part of it is that many such conditions are actually *security flaws*.
05:56:55 <ais523> itidus20: it's very rare for a game to abort on detecting an internal consistency, except for multiplayer games that use reproducability in order to reduce bandwidth
05:57:16 <pikhq> On retro games, there are actually errors that let you patch memory.
05:57:17 <ais523> most will spout debug messages but otherwise try to continue
05:57:25 <ais523> pikhq: my favourite is in SML2
05:57:30 <elliott> test :: Gen (Var Bit, Var Bit)
05:57:30 <elliott> test = toLocs `fmap` struct (undefined::Bit, undefined::Bit)
05:57:35 <elliott> i've forgotten completely why i'm doing this
05:57:36 <pikhq> ais523: Yeah, that was an *amazing* run.
05:57:39 <ais523> it's possible to glitch out of a level's boundary, which has the result of making the entire ROM and RAM a playable level
05:57:47 <ais523> and you can break blocks in order to change RAM
05:57:56 <fizzie> ais523: Detecting an "internal consistency"? "Oh no, I'm in a consistent state! Abort! Abort!"
05:58:11 <pikhq> The Pokémon Yellow save glitch is pretty awesome, too.
05:58:47 <pikhq> Restarting the game at the right time in the save process makes it think your inventory is unbound, making the inventory screen into a memory patcher.
05:58:48 <ais523> pikhq: the same trick's been done without resetting during a save, but it requires a Ditto
05:59:09 <ais523> to be precise, it's known as the ZZAZZ glitch, because it changes three out of every four bytes in memory to 153
05:59:23 <ais523> which happens to be Z in the crazy character set that Pokémon first gen used
05:59:45 <ais523> also, Bulbasaur or Explosion, with other methods of interpreting it
05:59:56 <ais523> in particular, it overwrites the "number of Pokémon in party" counter with 153
06:00:03 <ais523> which is quite the buffer overflow
06:00:10 <itidus20> I was obsessed with glitches ever since I read about guile's glitches in street fighter 2
06:00:17 <pikhq> Gotta love Pokémon's glitches.
06:00:31 <pikhq> It's like a TASer's wet dream or something.
06:00:34 <itidus20> I thought "is this real?" "which street fighters will this work on?"
06:01:05 <ais523> pikhq: the funny thing is, they've been really different version-to-version
06:01:34 <itidus20> and so, i learned about the chinese word ira waza
06:01:38 <fizzie> As for the palette thing, I'd assume (not that I recall anything about NES graphics) that the "second variable" where the palette is stored, separate from the character state, is just some sort of a sprite palette control register, which is what's getting out of sync.
06:01:44 <ais523> especially Ruby/Sapphire, which have no known exploitable glitches and basically no glitches altogether, compared to Emerald, which has a huge number of fun exploitable glitches
06:02:01 <pikhq> itidus20: Could you write that in kanji?
06:02:15 <pikhq> As it is, that's parsing as a random conglomeration of morae for me.
06:02:22 <itidus20> was it ura waza i meant i think
06:02:42 <itidus20> means something like.. underhanded technique
06:02:44 <ais523> fizzie: IIRC that glitch is actually different, but I can't remember the details
06:03:02 <pikhq> Meaning "underhanded trick", or (computer terminology) "exception".
06:03:04 <coppro> ais523: do you have a link with all the glitches?
06:03:12 <ais523> coppro: in which game?
06:03:16 <pikhq> Makes perfect sense with the kanji.
06:03:24 <itidus20> pikhq: the word has an awful lot of meaning
06:03:33 <itidus20> including how to fold a tshirt in split seconds
06:03:51 <pikhq> itidus20: No, it only has a single but general meaning. :)
06:03:55 <ais523> coppro: for speedrun-exploitable ones in the first two generations, http://tasvideos.org/GameResources/GBx/Pokemon.html is pretty good
06:04:04 <ais523> but it doesn't document Emerald or DPP glitches well
06:04:21 <ais523> and Black/White, although they have a few known glitches, haven't really been researched fully
06:04:28 <pikhq> I thought there were *some* Ruby/Sapphire glitches...
06:04:36 <pikhq> Though it's not like I've seen that run recently.
06:04:43 <pikhq> It may have just been a heavy luck manipulation run.
06:04:44 <ais523> pikhq: indeed, but none are used in a speedrun
06:04:52 <ais523> it's just luck manipulation and lag manipulation
06:05:11 <ais523> things like undiving while going through a door let you go out of bounds, but that doesn't accomplish anything useful
06:05:17 <itidus20> pikhq: ok one meaning but richly laden with things
06:05:25 <ais523> because out of bounds is just a few tiles and then blackness you can't walk in
06:05:39 <ais523> (as opposed to DPP, where you /can/ walk in the blackness, which lead to huge projects with people "mapping the void"
06:05:47 <itidus20> the word "ura" is especially potent
06:05:51 <pikhq> Unlike RGB, where "out of bounds" is "level in arbitrary memory". :)
06:06:01 <pikhq> Or possibly "lot of stuff that's inexplicably there".
06:06:10 <pikhq> itidus20: "ura" just means "back".
06:06:12 <itidus20> pik i don't know japanese though..
06:06:23 <itidus20> and back is an exceedingly general word
06:06:43 <itidus20> but back in japan means different things than back in english
06:06:49 <itidus20> some very culturally specific things
06:06:54 <coppro> I need to see a TAS of that
06:07:26 <pikhq> Nah, it's just that it's also a morpheme which gets composed with things, unlike English where it's pretty much standalone.
06:08:08 <pikhq> Nothing mystical or magical 'bout it.
06:08:12 <coppro> shame there aren't any on tasvideos
06:08:24 <coppro> that game's luck engine is so utterly ridiculous
06:09:21 <pikhq> itidus20: I would. Japanese tends to have extremely general morphemes which get composed into more complex yet general words. It really is just how the language works. :)
06:09:42 <itidus20> ok, the morpheme is mysterious then
06:09:51 -!- ais523 has quit (Remote host closed the connection).
06:12:40 <pikhq> No more so than any other.
06:13:18 <itidus20> heres an interesting one: http://www.aikiweb.com/forums/showpost.php?s=27fc6a9bcfa745aac1fa09ae1afaa5b3&p=99677&postcount=6
06:13:30 -!- oerjan has quit (Quit: Good night).
06:14:13 <itidus20> from, big debate about 2 words omote and ura: http://www.aikiweb.com/forums/showthread.php?t=7802
06:15:07 <pikhq> You're one of those people that goes "NEKO NEKO KAWAII DESU DESU", aren't you?
06:17:57 <itidus20> i wish i knew it better, but i know i don't know it
06:19:04 <itidus20> i find it mystical due to it being the term associated with glitches which only occur in japanese software
06:19:32 <itidus20> that is basically what i am stuck on
06:20:19 <atehwa> Hi guys, I'm thinking about arranging an esolang course for the University of Helsinki, but my connection with the community ceased around 2004... so... can you enlighten me on the highlights after that, preferably languages that had new ideas and were not just addons / encodings for already existing esolangs, and interesting findings (such as the discovery of first loop in Malbolge)?
06:20:24 <itidus20> wiki says: The term itself became globally popularized when video gamers in the 1980s began sharing their game-related urawaza online.[1]
06:20:58 <elliott> atehwa: heh; any relation to fizzie, Deewiant?
06:21:10 <elliott> aalto is a different thing isn't it...
06:21:25 <elliott> you wacky finns. and your universities
06:21:51 <elliott> I can try and give a comprehensive-ish answer but it'll have to wait until tomorrow
06:22:06 <elliott> oh ais has left unfortunately
06:22:13 <elliott> he'd be a good person to ask
06:22:56 <elliott> atehwa: I will say that Underload is one of the most interesting esolangs since
06:23:36 <atehwa> yes, Aalto is a combined college of technical, artistic and economic schools
06:24:17 <atehwa> elliott: well, I know the wiki, but it seems that the number of langs / year has been going up ever since 2002, and most of the new languages are really uninteresting.
06:24:29 -!- SgeoN1 has joined.
06:26:12 -!- Sgeo has quit (Ping timeout: 255 seconds).
06:26:46 <atehwa> but anyway, thanks already, I'll check Underload, BCT and Grasp.
06:27:35 -!- elliott has quit (Ping timeout: 252 seconds).
06:31:30 <fizzie> I like Glass, but that's mostly personal language preference, not out of some sort of inherent amazingivity.
06:32:30 <fizzie> Also Feather would be a good language to cover, if it just existed.
06:33:12 -!- Sgeo has joined.
06:33:17 <Deewiant> The Befunges are probably worth mentioning due to seeing most "real-world" use
06:33:20 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
06:33:36 <fizzie> fungot: How do you feel to be an example of "real-world" use?
06:33:36 <fungot> fizzie: " works here now. the point is
06:33:46 <fizzie> fungot: ...the point is?
06:33:46 <fungot> fizzie: but since it runs in sandbox mode... i never thought of that myself
06:33:56 <fizzie> Aw, he's being incoherent again.
06:34:15 <Sgeo> No, fungot, we are not letting you out of the box. We don't trust you to be Friendly.
06:34:16 <fungot> Sgeo: i understand why it's distracting. and i did both an fnord and running it on ' fnord'
06:35:24 <Sgeo> DAMMIT ABIWORD HAS NO AUTORECOVERY
06:35:56 <Sgeo> Oh, everything's still here, good
06:36:29 <derrik> WordPerfect is the 90's
06:37:15 <fizzie> WordPerfect is also the 80s.
06:38:47 <fizzie> WP42 is from 1986; the very popular WP51 is from 1989; I don't think the Windows versions in the 1990s were ever all *that* popular.
06:39:58 <derrik> throughout the first half of the 90's i didn't even know windows
06:40:08 <derrik> i know windows since v. 95
06:42:05 <pikhq> Through the first half of the 90's I didn't even know my ABCs. :P
06:42:14 <fizzie> Piet might also be a notable "image-based language" example to mention, though it's not "after 2004" so it's not part of the question.
06:42:39 <fizzie> Your abstract base classes.
06:48:07 -!- Nisstyre has quit (Quit: Leaving).
06:49:09 -!- monqy has quit (Quit: hello).
06:50:07 <Sgeo> I am in a good mood now.
06:50:15 <Sgeo> Just read what I actually typed up
06:50:20 -!- sebbu has quit (Read error: Connection reset by peer).
06:50:22 <Sgeo> Apparently my step-mother's losing this case
06:50:48 -!- sebbu has joined.
06:50:49 -!- sebbu has quit (Changing host).
06:50:49 -!- sebbu has joined.
06:50:58 <Sgeo> Hmm, actually, wow that sounds like a nasty thing for me to say
06:53:10 <Sgeo> Something against a car insurance company.
06:54:58 <atehwa> Deewiant: oh, I'll definitely include fungeoids, especially Befunge, because it continues to fascinate people
06:56:05 <fizzie> And, uh... BF Joust? There was a veritable flurry of BF Jousting going on on-channel some time ago. It's at least different.
06:56:55 <Deewiant> Only if you count Redcode, methinks
06:57:31 <fizzie> Deewiant: Well, it's sort-of a real world use case too. :p
06:57:55 <Deewiant> But it's not /really/ the same language
06:58:15 <fizzie> Closely inspired by, at least.
06:58:19 <fizzie> I have a vague feeling I have some (possibly qualified as "former" in my case) acquaintances shared with atehwa. Possibly from the direction of the irtie/bC! circles? The name rings a bell.
06:58:53 <Deewiant> I recognize the name but probably just from some random netplace
06:58:59 <atehwa> fizzie: I was still there when Piet came, didn't look properly into that, though. I can check Glass out.
06:59:11 <fizzie> Deewiant: Were you on the mailing list?
06:59:39 <Deewiant> No, but I've read through the few archives that mtve handed over (where's the rest‽)
06:59:47 <fizzie> atehwa: Didn't you run the mailing list?
07:00:29 <atehwa> I didn't shut it down properly, though.
07:00:45 <atehwa> And the failure of 2004 Essies was my fault, too.
07:01:22 <atehwa> Deewiant: the archives are at http://esoteric.sange.fi/archive/
07:01:31 <atehwa> but that does not include the times @ cats-eye
07:01:55 <Deewiant> Right, I meant the cats-eye ones
07:04:14 <atehwa> fizzie: and good that you mentioned bf joust, I wasn't aware of that, either
07:04:49 <atehwa> they just had competitions for the shortest bf program to do task <X>
07:05:21 <fizzie> BF Joust: the brainfuck-based competitive programming game that has had the most plots plotted out of it. [citation needed]
07:05:54 <atehwa> It seems to me that enthusiasm on CoreWars is declining, too.
07:06:03 <Deewiant> http://frox25.no-ip.org/~mtve/tmp/bef_maillist_0_520.txt is a 1996-1997 mailing list log so I'm missing 5 years :-P
07:06:09 <atehwa> There was a really creative time period in that, after the invention of imp rings.
07:11:54 <fizzie> Deewiant: I have a vague feeling I managed to subscribe before the sange.fi times, but I can't find anything older than April 2001 in these old tarballs.
07:12:48 -!- derrik has quit (Quit: gone).
07:18:06 <atehwa> I could check if I have messages from the 90's :)
07:23:08 <atehwa> jeez, my old emails are a terrible mess :(
07:29:22 <itidus20> I saw this on another channel, it has some relevance here so had to post: http://redmine.ruby-lang.org/issues/5054
07:29:52 <pikhq> http://www.youtube.com/watch?v=NM51qOpwcIM ... Lady Gaga actually has talent? Like, she can actually sing? Holy crap.
07:30:20 <pikhq> Fuck you, RIAA, for turning that into a vapid pop star.
07:31:19 <lifthrasiir> itidus20, that's eeeeeeeeeeeeeeeeeeeeeeeeend!
07:32:07 <atehwa> itidus20: seems they're reinviting Lisp's super brackets
07:32:16 <pikhq> Okay, it's not utterly *amazing*, but it's not utterly terrible and artificial.
07:32:25 <lifthrasiir> frankly speaking, i prefer the general super-end token (e|en|end)*end.
07:33:24 <atehwa> at least Interlisp-D still had those
07:33:32 <lifthrasiir> if the tab size is 4 or more then the existing (end\s+)*end should suffice.
07:34:08 <itidus20> An interesting sociological phenomenon that thread mentions is "I wouldn't mind it since I wouldn't use it." vs "I would have to endure it when someone else used it."
07:34:18 <atehwa> [define (foo x) (let [(bar (1+ x] (* foo bar]
07:34:37 <itidus20> they don't put it that way though
07:36:31 -!- copumpkin has quit (Ping timeout: 252 seconds).
07:37:38 -!- copumpkin has joined.
07:39:47 <itidus20> atehwa: i'm just a newbie here. no math skills. etc. it's quite that you're considering an esolang course
07:40:50 <itidus20> it's like the programming underground
07:41:18 <atehwa> If it gathers enough momentum, it would be one thing more for the dpt of computer science to be proud of :)
07:42:21 <atehwa> the department of computer science in the University of Helsinki budgets some of its course money to "courses that are in the interest of students"
07:42:26 <atehwa> so I hope this could be one
07:42:33 <Deewiant> How're you justifying it to the higher-ups?
07:43:06 -!- Sgeo_ has joined.
07:43:32 <atehwa> It's pretty easy to justify anyway, though, because not only tend esolangs motivate people and demonstrate the joy of programming, they also have direct connections to the foundations of computing, in a (relatively) tangible form.
07:43:36 -!- SgeoN1 has quit (Ping timeout: 255 seconds).
07:45:24 -!- Sgeo has quit (Ping timeout: 255 seconds).
07:47:58 -!- Taneb has joined.
08:01:44 <Vorpal> <elliott> but seriously, it is basically just wilful ignorance to say that thinking about programming stops you getting things done. <-- agreed.
08:01:49 -!- copumpkin has quit (Ping timeout: 252 seconds).
08:02:14 -!- copumpkin has joined.
08:02:19 <lifthrasiir> i'm now working on something like this: http://codepad.org/DI3V1Tcb
08:04:06 <lifthrasiir> it'd be a flow graph where the vertex is a pair of step number mod 9 and program index, and the remaining part is to reduce the graph so that i can figure out the actual meaning of it
08:33:41 -!- foocraft_ has joined.
08:36:51 -!- foocraft has quit (Ping timeout: 258 seconds).
08:38:32 -!- paskill has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
08:40:18 -!- Taneb has quit (Ping timeout: 252 seconds).
08:48:38 <fizzie> atehwa: s/one more thing for your CS department to be proud of/one more thing for our CS department to be ashamed of/
08:49:16 <fizzie> There has been talk for a "functional programming in general" course here for years, but it has never materialized.
08:49:50 <Deewiant> There was that Scheme course last summer (or the summer before that?), as a special case.
08:49:52 <fizzie> The closest we got was that one final SICP go-through summer thing, and that was more of a memorial service for the abandoned Scheme-based introductionary course.
08:51:14 <Deewiant> I hear there was even a Coq-using course on theorem proving at their CS department a while back.
08:52:01 <fizzie> I hear their classrooms are paved with gold.
08:52:35 <fizzie> Me neither, to be honest.
08:53:35 <fizzie> T-79.5305 Formal Methods P can sometimes have interesting topics at our place too, though. (And doesn't seem to have been organized after autumn 2008 or so.)
08:55:47 <atehwa> I don't have all that much to do with TKTL, really, but there's a lot of friends there
08:56:30 <atehwa> the last time I had something to do with them was when Lambda ry arranged a course on lambda calculus and I gave part of its lectures :)
08:56:50 <atehwa> http://wiki.helsinki.fi/display/haskell/Johdatus+lambda-kalkyyliin
08:57:17 <fizzie> I think I must have seen an advertisement for that somewhere.
08:57:43 <atehwa> wow, it's been three years already :O
09:09:26 -!- pingveno has quit (Ping timeout: 258 seconds).
09:34:02 -!- pingveno has joined.
09:56:06 -!- Phantom_Hoover has joined.
10:02:36 -!- foocraft_ has quit (Quit: So long, and thanks for all the fish!).
10:18:48 <atehwa> oh! There _still_ isn't a spec for a language where the only computation mechanism is colored undirected graph rewriting?
10:19:23 <atehwa> ... but eodermdrome takes the case of uncolored undirected graph rewriting...
10:25:10 -!- jcp|other has joined.
10:25:34 -!- pingveno has quit (Ping timeout: 252 seconds).
10:27:14 -!- jcp- has quit (Ping timeout: 260 seconds).
10:27:36 -!- jcp has quit (Ping timeout: 276 seconds).
10:33:26 -!- jcp has joined.
10:37:26 <lifthrasiir> http://cosmic.mearie.org/tmp/crazy6.png ... oh well.
10:38:03 <lifthrasiir> this is a lot more complex than i expected.
10:39:43 <atehwa> looks like a state graph.
10:40:31 <lifthrasiir> that is a behavior of the instruction 3 in Numberwang, plotted for one subcase out of nine.
10:44:42 -!- pingveno has joined.
10:48:03 -!- FireFly has joined.
11:35:21 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
11:48:34 -!- Phantom_Hoover has joined.
11:58:42 -!- boily has joined.
12:06:48 <lambdabot> Phantom_Hoover: You have 15 new messages. '/msg lambdabot @messages' to read them.
12:10:19 <atehwa> !bfjoust test_ish >>>>>>>++[>>[-]<-]
12:10:27 <EgoBot> Score for atehwa_test_ish: 10.0
12:16:20 <atehwa> !bfjoust test_ish >>>>>>>++[>>[--.]<-]
12:16:23 <EgoBot> Score for atehwa_test_ish: 3.0
12:17:05 <atehwa> !bfjoust test_ish >>>>>>>++[>>[-.]<-]
12:17:07 <EgoBot> Score for atehwa_test_ish: 12.2
12:17:38 <Deewiant> !bfjoust test_ish2 (>)*7++(>>[-.]<-)*22>[[-.]]
12:17:40 <EgoBot> Score for Deewiant_test_ish2: 11.5
12:18:05 <atehwa> !bfjoust test_ish >>>>>>>++[>>[----.]<-]
12:18:08 <EgoBot> Score for atehwa_test_ish: 6.9
12:21:27 <atehwa> !bfjoust test_ish (>)*7(>>[-]<-)*22>>[-]
12:21:30 <EgoBot> Score for atehwa_test_ish: 9.4
12:22:39 <Deewiant> atehwa: That >> will make you run off the end of the tape on odd tape lengths
12:22:53 <atehwa> !bfjoust test_ish (>)*7(>>[-]<-)*22>>[[-]<+++]
12:22:55 <EgoBot> Score for atehwa_test_ish: 9.4
12:23:01 <atehwa> Deewiant: I think it is balanced out by <
12:23:15 <Deewiant> atehwa: No it's not, because you only do the < afterwards
12:23:27 <atehwa> !bfjoust test_ish (>)*7(>>[-]<-)*22>[[-]<+++]
12:23:27 <Deewiant> atehwa: You will lose as soon as you exit the tape, whether you write there or not
12:23:29 <EgoBot> Score for atehwa_test_ish: 9.4
12:24:10 <Deewiant> Oh, but you only move 7 at the start, fair enough
12:24:16 <atehwa> yes, but how does it depend on the tape length being _odd_, because the loop only proceeds one tape place per iteration?
12:24:50 <atehwa> !bfjoust test_ish (>)*7(>>[-.]<-)*22>[[-]<+++]
12:24:52 <EgoBot> Score for atehwa_test_ish: 10.5
12:25:02 <atehwa> one can only wonder... :)
12:25:19 <atehwa> no, I'm just testing this thing out for the first time.
12:26:15 <Phantom_Hoover> 04:53:53: <elliott> if you don't think, you can't accomplish anything. programming is a science.
12:26:27 <Phantom_Hoover> No it isn't, it's maths mixed with the odd bit of engineering.
12:28:14 <Phantom_Hoover> 04:56:23: <Elizacat> elliott, standard model is *awful* I don't care who you are
12:28:33 <Phantom_Hoover> Oh, look, a biologist who codes hates the standard model.
12:30:21 <atehwa> !bfjoust test_blah (>)*9([(-)*120[-]]>)*21[[-]<+++]
12:30:23 <EgoBot> Score for atehwa_test_blah: 27.1
12:31:01 <atehwa> yay I made it on the hill :)
12:31:42 <atehwa> !bfjoust test_blah (>)*9([(-)*120[-]]>)*21[[+]<--]
12:31:45 <EgoBot> Score for atehwa_test_blah: 27.4
12:32:29 <atehwa> !bfjoust test_blah (>)*9([(-)*120[-.]]>)*21[[+]<--]
12:32:31 <EgoBot> Score for atehwa_test_blah: 23.1
12:32:38 <atehwa> !bfjoust test_blah (>)*9([(-)*120[-]]>)*21[[+.]<--]
12:32:41 <EgoBot> Score for atehwa_test_blah: 27.4
12:33:01 <atehwa> !bfjoust test_blah (>)*9([(-)*110[-]]>)*21[[+]<--]
12:33:04 <EgoBot> Score for atehwa_test_blah: 29.0
12:33:18 <atehwa> !bfjoust test_blah +(>)*9([(-)*110[-]]>)*21[[+]<--]
12:33:21 <EgoBot> Score for atehwa_test_blah: 28.6
12:33:35 <atehwa> !bfjoust test_blah (+>)*9([(-)*110[-]]>)*21[[+]<--]
12:33:38 <EgoBot> Score for atehwa_test_blah: 23.6
12:33:48 <atehwa> !bfjoust test_blah (>)*9([(-)*100[-]]>)*21[[+]<--]
12:33:51 <EgoBot> Score for atehwa_test_blah: 28.3
12:33:58 <atehwa> !bfjoust test_blah (>)*9([(-)*105[-]]>)*21[[+]<--]
12:34:00 <EgoBot> Score for atehwa_test_blah: 27.4
12:34:07 <atehwa> !bfjoust test_blah (>)*9([(-)*90[-]]>)*21[[+]<--]
12:34:10 <EgoBot> Score for atehwa_test_blah: 26.8
12:34:21 <CakeProphet> atehwa: I'd say you probably spend way too much time decrementing in that loop.
12:34:24 <atehwa> I wonder if one could make a binary search on the optimal value.
12:34:40 <Deewiant> One could, but it's not that useful.
12:34:46 <Deewiant> It's based on the current hill.
12:34:49 <CakeProphet> you will be rushed at that point by most jousters.
12:35:50 <atehwa> !bfjoust test_blah (>)*9([-[-[-[-[(-)*115[-]]]]]]>)*21[[+]<--]
12:35:53 <EgoBot> Score for atehwa_test_blah: 18.7
12:36:18 <atehwa> !bfjoust test_blah (>)*9([(-)*110[-]]>)*21[[+]<--]
12:36:21 <EgoBot> Score for atehwa_test_blah: 29.0
12:36:27 <CakeProphet> still wayy too much time spent making decoys.
12:37:24 <atehwa> Deewiant: but if the flag reaches zero during (-)*x, it won't even stay down for two cycles?
12:37:57 <Deewiant> What you should really do is have that be (+)*x where x is smalish
12:38:07 <Deewiant> With the idea of taking out decoys
12:38:38 <Deewiant> As it is, you're spending over 115 cycles on a lot of initially-blank cells
12:38:43 <Deewiant> And thus not getting anywhere.
12:38:49 <atehwa> I see. But that's not the point, the point is to speed up the rush, and not care about decoys.
12:38:57 <CakeProphet> and most of the current jousters are pretty sophisticated and will just skip your decoys.
12:39:06 <atehwa> no no, initially-blank cells are skipped over by []
12:39:26 <Deewiant> Initially-blank cells will quickly be set to non-initially-blank by faster rushers
12:39:39 <Deewiant> And then you can end up stuck on them for a long time if they did it with a - instead of a +
12:39:58 <CakeProphet> I think the choice of sign is mostly irrelevant, right?
12:40:09 <CakeProphet> since the polarities flip on half of the matchups.
12:40:19 <atehwa> of course, I can see if this decoy-thinking helps
12:40:29 <atehwa> !bfjoust test_blah (>)*9([(+)*10[-]]>)*21[[+]<--]
12:40:32 <EgoBot> Score for atehwa_test_blah: 21.6
12:40:41 <CakeProphet> what's the link to that place where you can submit your jouster and then watch an animation of the tape?
12:40:44 <Deewiant> atehwa: You can use http://codu.org/eso/bfjoust/egojsout/ for some visual testing
12:41:16 <atehwa> !bfjoust test_blah (>)*9([(-)*115[-]]>)*21[[+]<--]
12:41:19 <EgoBot> Score for atehwa_test_blah: 26.6
12:41:47 <atehwa> !bfjoust test_blah (>)*9([(-)*110[-]]>)*20[-]
12:41:49 <CakeProphet> though, I quickly became discouraged after I could actually see how difficult it was to beat anything.
12:41:50 <EgoBot> Score for atehwa_test_blah: 28.4
12:42:48 <Deewiant> atehwa: My bots are fairly simple, I think they're nice to test against since they don't have complex behaviour (or complex-to-understand simple behaviour)
12:43:06 <atehwa> !bfjoust test_blah (>)*9([++++[-[-[-[-[-[-[-[(-)*110[-]]]]]]]]]>)*20[-]
12:43:09 <EgoBot> Score for atehwa_test_blah: 0.0
12:43:17 <CakeProphet> I've considered having a declaritive style domain-specific language to specify properties of a jouster.
12:44:03 <CakeProphet> you should really consider using smaller numbers for decrement
12:44:12 <CakeProphet> also using preset numbers for decoy-clearing / flag-clearing is a bad idea.
12:44:57 <atehwa> but really, (+)*10[-] is a different idea than (-)*110[-]
12:45:14 <atehwa> they have a different goal
12:45:31 <Deewiant> Yes, and the (+)*10[-] just works better in practice :-P
12:45:40 <atehwa> did not this time, I tested it already.
12:45:59 <Deewiant> egojsout says "Unmatched loop"
12:46:00 <atehwa> could work better, of course, in a different context.
12:46:12 <atehwa> I miscounted the brackets.
12:47:13 <atehwa> !bfjoust test_blah (>)*9([++++([-{[(-)*110[-]]}])%8>)*20[-]
12:47:15 <EgoBot> Score for atehwa_test_blah: 0.0
12:48:11 <atehwa> !bfjoust test_blah (>)*9([++++([-{[(-)*110[-]}])%8]>)*20[-]
12:48:14 <EgoBot> Score for atehwa_test_blah: 0.0
12:48:23 <Vorpal> Deewiant, doesn't )*20 close it?
12:48:50 <Vorpal> what does that close then
12:49:02 <Vorpal> oh wait the ] isn't matched
12:49:36 <atehwa> !bfjoust test_blah (>)*9([++++([-{(-)*110[-]}])%8]>)*20[-]
12:49:39 <EgoBot> Score for atehwa_test_blah: 26.3
12:50:15 <atehwa> !bfjoust test_rush (>)*9([(-)*110[-]]>)*21[-]
12:50:17 <EgoBot> Score for atehwa_test_rush: 29.8
12:50:29 <atehwa> that's still the best one I could come up with so far.
12:50:36 <Deewiant> Again, "best" for the current hill
12:50:42 <Deewiant> They have different characteristics
12:50:51 <Deewiant> I prefer this one because it doesn't push allegro down to fourth place ;-)
12:50:59 <atehwa> yes, I played koth sometime :)
12:51:25 <atehwa> sometimes you could get back on the hill with a warrior that had been dropped :)
12:52:45 <CakeProphet> !bfjoust (>)*8(>[(<)*8(-)*33(>)*8([-[++[(+)*9[-]]]]>)*21])*21>
12:52:45 <EgoBot> Use: !bfjoust <program name> <program> . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/
12:52:52 <CakeProphet> !bfjoust copypasta (>)*8(>[(<)*8(-)*33(>)*8([-[++[(+)*9[-]]]]>)*21])*21>
12:52:54 <EgoBot> Score for CakeProphet_copypasta: 16.5
12:53:10 <atehwa> one could also automate the fine-tuning.
12:55:39 <atehwa> !bfjoust test_rush (-)*123(>)*9([(-)*110[-]]>)*21[-]
12:55:42 <EgoBot> Score for atehwa_test_rush: 33.4
12:55:59 <EgoBot> Score for CakeProphet_shudder: 15.3
12:56:23 <Deewiant> atehwa: Do you really want to special-case the last cell on 30-long tapes? :-P
12:57:03 <atehwa> actually, I was too lazy to calculate for off-by-one mistakes :)
12:57:44 <Deewiant> Make it *8 instead of *9 and put the > in front and drop everything after the *21
12:58:23 <atehwa> !bfjoust test_rush (-)*123(>)*8(>[(-)*110[-]])*21
12:58:25 <EgoBot> Score for atehwa_test_rush: 33.4
12:58:53 <atehwa> it's almost the same what I append at the end of the program...
12:59:08 -!- copumpkin has quit (Ping timeout: 250 seconds).
12:59:32 -!- copumpkin has joined.
13:03:35 <fizzie> Updated that http://zem.fi/egostats/ too, though it's quite a few programs out-of-date again already. It's very slow in the plotting.
13:04:32 <cheater_> in advance to all apple fanboys: stfu
13:08:10 <Deewiant> atehwa: Re. automating fine-tuning, ais523_waterfall or some version of it was originally tuned with a genetic algorithm until it beat all programs on the hill
13:10:32 -!- BeholdMyGlory has joined.
13:12:20 -!- Taneb has joined.
13:17:32 <atehwa> !bfjoust test_rush (-)*123(>)*12(+)*40<<<<(>[(-)*110[-]])*21
13:17:34 <EgoBot> Score for atehwa_test_rush: 18.6
13:17:52 <CakeProphet> my program wins by joining the ends of the tape together, moving a step back, and performing a careless clear.
13:17:54 <Deewiant> (>)*12 --> auto-lose on three tape lengths
13:18:09 <atehwa> !bfjoust test_rush (-)*123(>)*8(>[(-)*110[-]])*21
13:18:12 <EgoBot> Score for atehwa_test_rush: 33.4
13:18:28 <atehwa> Deewiant: yeah, I just wanted to see if it will pay off.
13:18:42 <Deewiant> Auto-losing generally doesn't pay off :-)
13:18:59 <EgoBot> Score for CakeProphet_suicide: 0.0
13:19:12 <atehwa> It could, if it's for statistically few enough cases.
13:19:28 <Deewiant> It could, yes, but it generally doesn't.
13:19:54 <Deewiant> !bfjoust foo (-)*123(>)*8(+)*40(>[(-)*110[-]])*21
13:19:57 <EgoBot> Score for Deewiant_foo: 32.8
13:20:16 <CakeProphet> the best solution is to add hundreds of intricate loops that account for every tape length / enemy strategy / blah blah
13:20:27 <EgoBot> Score for Deewiant_foo: 0.0
13:20:45 <Deewiant> CakeProphet: Yeah, see waterfall3
13:21:22 <Deewiant> http://www.esolangs.org/wiki/BF_Joust
13:42:07 <tswett> Hey, people who live in random European countries get to watch movies and read books in English.
13:42:18 <tswett> That's neat. I wish I lived in a random European country.
13:42:36 <tswett> Clearly, that will happen to me if I continue Finnishly babbling.
13:42:58 <tswett> Povistaa malamutii täypin.
13:43:39 <Phantom_Hoover> tswett, but you get to see Australian things before the rest of us!
13:43:57 <tswett> Because I don't know enough actual Finnish to actually speak Finnish.
13:44:05 <tswett> Phantom_Hoover: lies. I actually live in India.
13:46:08 <Deewiant> I don't see the chain of reasoning from "I don't speak Finnish" to "I should babble Finnish-sounding nonsense"
13:47:14 <atehwa> it sounds like a good idea, though.
13:47:53 <tswett> See, that was a real word.
13:48:39 <CakeProphet> I am quite satisfied with this palindrome generator thing I wrote a few days ago.
13:54:48 -!- quintopia has quit (Remote host closed the connection).
14:01:00 <Deewiant> @check \q xs -> scanl subtract q xs == map (foldl subtract q) (inits xs)
14:01:21 -!- copumpkin has quit (Ping timeout: 246 seconds).
14:01:45 -!- copumpkin has joined.
14:08:09 <lambdabot> [0,0,1,0,1,2,0,1,2,3,0,1,2,3,4,0,1,2,3,4,5,0,1,2,3,4,5,6,0,1,2,3,4,5,6,7,0,...
14:09:08 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:09:54 <CakeProphet> > sum $ zipWith (*) [0..10] (reverse [0..10])
14:10:11 <CakeProphet> > sum $ zipWith (*) [1..10] (reverse [1..10])
14:11:18 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11]
14:12:26 <lambdabot> [[0,1],[0,1,2],[0,1,2,3],[0,1,2,3,4],[0,1,2,3,4,5],[0,1,2,3,4,5,6],[0,1,2,3...
14:23:21 <lambdabot> [[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27...
14:25:00 <CakeProphet> interesting idea because map length . inits seems to increase the length of the list by one.
14:25:07 -!- mundi has joined.
14:25:22 -!- cheater_ has quit (Ping timeout: 250 seconds).
14:26:11 -!- cheater_ has joined.
14:28:05 -!- mundi has left ("Ex-Chat").
14:37:04 -!- cheater_ has quit (Ping timeout: 250 seconds).
14:38:01 -!- cheater_ has joined.
14:41:14 <CakeProphet> hmmm, seems that Haskell has lost its 4th place status in the Great Language Shootout.
14:43:58 -!- NihilistDandy has quit (Read error: Connection reset by peer).
14:44:49 -!- copumpkin has joined.
14:51:33 -!- cheater_ has quit (Ping timeout: 255 seconds).
14:52:28 -!- jcp|1 has joined.
14:52:48 -!- jcp has quit (Ping timeout: 276 seconds).
14:52:53 <Taneb> !bfjoust random [+-.+..].[>>>>.<->[>]-.-<].[<-..<.][[]<><]-<<[[>.-><>.+[[-+]..-+[>+<>]>[+]]]]+>[.[+.-<-<+.<+[<>[[<[.->]]]]]]
14:52:55 <EgoBot> Score for Taneb_random: 12.7
14:54:03 <Taneb> That did better than I thought it would
14:54:12 -!- jcp|other has quit (Ping timeout: 246 seconds).
14:55:26 -!- jcp has joined.
14:57:58 <Lymee> Did you really submit a fully random program?
14:58:30 <Lymee> !bfjoust random-reduced [+-.+..]
14:58:33 <EgoBot> Score for Lymee_random-reduced: 12.5
15:00:08 <Lymee> Taneb, did you write an evolver?
15:00:37 <Taneb> Nah, just made a few random ones and used the best one
15:00:47 <Deewiant> Lymee: That's not quite reduced, if the opponent does a -- or ++ style clear, the ] can pass
15:00:58 <Taneb> An evolver would probably be better
15:01:09 <Lymee> !bfjoust random-reduced [+-+]
15:01:12 <EgoBot> Score for Lymee_random-reduced: 11.7
15:01:39 <Lymee> How about "dead code eliminated"
15:01:53 <Deewiant> It's not equivalent, is what I meant
15:01:58 <Deewiant> That code isn't necessarily dead
15:02:03 <Lymee> It doesn't do anything useful.
15:02:05 <Deewiant> Although in practice is likely to be
15:02:42 <Deewiant> If the opponent comes to your flag and does (-)*100000, that code will be executed :-P
15:02:55 <Deewiant> Well, if it does it at the right time
15:03:12 <Lymee> It's unlikely to do anything helpful, at least.
15:04:20 -!- cheater_ has joined.
15:05:00 <tswett> What does . do in bfjoust?
15:08:00 <Taneb> Now, if I had actually written an evolver
15:11:31 <Taneb> Rather than taken one of the worst approaches to BFJoust programming possibl
15:11:56 <Taneb> I may have been higher on the highscore list
15:14:17 <lambdabot> ["","<",">","[","]","+","-",".","<<","<>","<[","<]","<+","<-","<.","><",">>...
15:14:27 <CakeProphet> run this until you beat everything on the hill.
15:14:43 <CakeProphet> you could add a filter to ensure brackets are balanced.
15:16:27 <lambdabot> 146213274662667137112548063777985657385914925426115053337407750877446569570...
15:17:17 -!- quintopia has joined.
15:17:18 -!- quintopia has quit (Changing host).
15:17:18 -!- quintopia has joined.
15:18:04 <CakeProphet> hmmm, well, you could treat a pair of balanced brackets as a single character for the purposes of counting possibilities.
15:18:12 <lambdabot> 169993231486018340685555030298982692999685661970922295867882569185687427371...
15:18:41 <CakeProphet> see? that's not very many possibilities at all within set of bfjoust programs less than or equal to 1000 characters long.
15:18:43 <Taneb> And discount programs that have a < before any >s
15:18:57 <CakeProphet> ah, yeah I can't calculate that number easily..
15:19:58 <CakeProphet> who knows it might be a viable solution that won't take 1 billion years to execute.
15:20:44 <CakeProphet> it would be interested to see the winning program. It would be literally be one of the most optimal bfjoust programs, pulled out of the realm of possibility.
15:21:05 <CakeProphet> I've exceeded my typo limit. Thats means I have to go to sleep now. good night.
15:21:44 -!- jcp|other has joined.
15:22:17 <CakeProphet> (Future plan: create virus. establish botnet. find optimal bf joust programs from the set of all bfjoust programs
15:23:21 -!- jcp has quit (Ping timeout: 276 seconds).
15:23:36 -!- jcp|1 has quit (Ping timeout: 246 seconds).
15:25:31 <tswett> Select four programs: A, B, C, and D. Pit A against B and C against D. WLOG, assume A and C win. Kill B and D and replace them with A and C's offspring.
15:29:56 -!- jcp has joined.
15:33:43 -!- monqy has joined.
15:34:22 -!- pikhq has quit (Ping timeout: 240 seconds).
15:34:27 -!- pikhq_ has joined.
15:36:52 <fizzie> The fizzie_evo_4 program was evolved against some old hill a bit like that; it's quite close to one of the members of the starting population, which were the wiki's BF Joust article's examples.
15:55:27 -!- cheater_ has quit (Ping timeout: 255 seconds).
15:55:52 -!- cheater_ has joined.
16:05:23 -!- Phantom_Hoover has quit (Quit: Leaving).
16:23:39 -!- Nisstyre has joined.
17:31:36 -!- Taneb has quit (Ping timeout: 252 seconds).
17:36:44 -!- MigoMipo has joined.
17:40:51 -!- CakeProphet has quit (Ping timeout: 240 seconds).
17:52:52 -!- CakeProphet has joined.
17:52:53 -!- CakeProphet has quit (Changing host).
17:52:53 -!- CakeProphet has joined.
17:58:48 <augur> http://satwcomic.com/
17:58:54 <augur> someone translate :(
18:00:48 <tswett> Apparently, it's all done by Google Translate. So, use Google Untranslate to get it back to English.
18:06:20 <tswett> Ooh, I can almost read that first sentence. "Jag har undrat, varför har du en fisk på huvudet?"
18:06:49 <tswett> It's, like... "I ___ ______, wherefore hast thou an fish __ _______?"
18:07:53 <tswett> "An boat? Wherefore will thou have an boat __ _____ ____?"
18:08:40 <fizzie> på huvudet -> on [your] head.
18:08:58 <tswett> Wherefore hast thou an city upon head?
18:09:03 <fizzie> The Finnish is not terribly correct, but, well, Google Translate.
18:09:28 <fizzie> har undrat -> have wondered.
18:10:08 <augur> fizzie: do you always translate into shakepearean english
18:10:39 <tswett> Only when translating from Germanic languages.
18:10:46 <augur> oh god you people with your names that are the same length
18:10:55 <augur> WHEREFORE ART THOU JOHN
18:11:12 <tswett> Oh, it's easy to tell us apart. My name is white, everyone else's is gray.
18:11:14 <augur> FOR THINE MOBILE RINGETH NOT
18:11:19 <augur> AND GOETH STRAIGHT TO VOICEMAIL
18:12:14 -!- Taneb has joined.
18:12:54 <Taneb> What's happening in the world of esoteric programming?
18:13:48 <augur> Taneb: dependently typed befunge
18:14:38 <Taneb> How does that work?
18:15:44 <augur> who knows, i just made it up
18:22:57 -!- elliott has joined.
18:23:13 <lambdabot> elliott: You have 6 new messages. '/msg lambdabot @messages' to read them.
18:23:36 <Taneb> elliott, can you whitelist me on the Minecraft server?
18:24:11 <elliott> yep; gimme a minute first though, I just got online
18:28:46 <pikhq_> elliott: My request is still pending.
18:29:17 <pikhq_> Though, I've got shit I should probably doing ATM, so whatever. :P
18:29:55 <elliott> pikhq_: I know; it's just that we've only really tested the server up to the limits of the people who were on during testing, so I'm trying to make sure everything will run stably with lots of RAM left over, etc. with more people before I let anyone else on...
18:30:04 <elliott> Don't worry, there's nothing much at all on the server right now. Not even a house. :p
18:30:30 <pikhq_> elliott: Hooray, everyone being too lazy to play a game! :P
18:31:27 <elliott> pikhq_: It's been up with the real map for exactly two days; we've been focusing on mining a bunch of resources and trying to find a spot to build a civilisation :P
18:32:38 <elliott> More like one day, actually
18:33:45 <pikhq_> And then my speaker decided to take a suicide leap off my desk.
18:34:38 -!- elliott has quit (Read error: Connection reset by peer).
18:35:17 -!- azaq23 has joined.
18:36:50 -!- CakeProphet has quit (Ping timeout: 264 seconds).
18:36:50 -!- CakeProphet has joined.
18:36:51 -!- CakeProphet has quit (Changing host).
18:36:51 -!- CakeProphet has joined.
18:37:34 <lifthrasiir> http://www.coltech.vnu.edu.vn/~hoangta/jvse2010/Sakai-JVSE2010.pdf looks like this link never appeared in this channel.
18:39:40 -!- elliott has joined.
18:39:45 -!- elliott has quit (Changing host).
18:39:45 -!- elliott has joined.
19:11:31 -!- CakeProphet has quit (Ping timeout: 240 seconds).
19:18:00 -!- CakeProphet has joined.
19:18:00 -!- CakeProphet has quit (Changing host).
19:18:00 -!- CakeProphet has joined.
19:23:15 -!- CakeProphet has quit (Ping timeout: 240 seconds).
19:24:18 <elliott> 00:13:55: <Lymee> > fix error
19:24:19 <elliott> 00:13:57: <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E...
19:24:19 <elliott> 00:14:07: <Lymee> It's clearly returning a [Char]
19:24:19 <elliott> 00:14:15: <Lymee> One that makes /sense/ at that.
19:24:21 <elliott> Lymee: not in the way you think
19:24:26 <elliott> 00:14:57: <pikhq> Lymee: The show routine is printing out the initial " for the string.
19:24:26 <elliott> 00:14:57: <lambdabot> error s = throw (ErrorCall s)
19:24:27 <elliott> 00:15:20: <pikhq> Lymee: And then the RTS starts outputting that it got an exception, so it prints *Exception: .
19:24:29 <elliott> 00:15:30: <pikhq> Lymee: And then, it tries to output the error message for that.
19:24:31 <elliott> 00:15:36: <pikhq> Lymee: And then the RTS starts outputting that it got an exception, so it prints *Exception: .
19:24:34 <elliott> 00:15:42: <pikhq> Lymee: And so on.
19:24:40 <elliott> note how there's no closing quote in error (error "wat")
19:25:21 <Lymee> You can have an exception while displaying the exception string.
19:25:47 <Lymee> > let evilValue = fix error in True || evilValue
19:25:48 <lambdabot> Couldn't match expected type `GHC.Bool.Bool'
19:26:17 <elliott> Lymee: you can have an exception while evaluating any value
19:26:23 <elliott> an error string happens to be a value :)
19:26:28 <elliott> fix error is of type String
19:26:47 <elliott> so (String -> a) has to become (b -> b)
19:26:52 <elliott> b=String is the only thing that fits
19:27:20 <elliott> > let evilValue = fix error `seq` False in True || evilValue
19:27:33 <elliott> that's not really an evil value any more than an infinite loop is
19:27:53 <Lymee> Lazy evaluation gets confusing.
19:28:07 <elliott> that case is very obvious :P
19:29:22 <Lymee> I'm making an observation.
19:29:31 <elliott> 01:09:34: <Lymee> > let throw# = \x -> x in error "this wont work i dont think"
19:29:31 <elliott> 01:09:36: <lambdabot> *Exception: this wont work i dont think
19:29:31 <elliott> thankfully, haskell is lexically scoped
19:36:55 -!- oerjan has joined.
19:37:16 <monqy> haha nonlexical scoping
19:40:44 -!- CakeProphet has joined.
19:41:50 <Elizacat> <Phantom_Hoover> 04:56:23: <Elizacat> elliott, standard model is *awful* I don't care who you are
19:41:50 <Elizacat> <Phantom_Hoover> Oh, look, a biologist who codes hates the standard model.
19:41:50 <Elizacat> <Phantom_Hoover> Clearly this means we should all jump ship.
19:42:02 <Elizacat> just mostly focused on biology :)
19:42:07 <Elizacat> would I be programming if that were my sole interest
19:42:21 <Elizacat> besides I find most hard CS people are really just closet lambda calculus nerds
19:43:16 <elliott> yep, you don't understand functional programming so all CS is just \calculus nerding, reasonable conclusion to make
19:46:55 <itidus20> i still need to learn it. there must be an easy way to understand functional programming
19:47:11 <monqy> Elizacat: and is this why CS is an awful thing?
19:47:36 <oerjan> i think possibly it's because lambda calculus is the simple model of computation which corresponds closest to high-level mental concepts
19:48:28 <oerjan> i mean TMs are TC, but programming them is still essentially esoteric
19:48:29 <elliott> here oerjan discovers sarcasm
19:48:52 <monqy> second best only to puns
19:48:58 <oerjan> elliott: you need to use the new reddit convention of embedding /s in the alt text of your punctuation
19:49:14 <elliott> oerjan: but then we'd know for _sure_ that elizacat was serious
19:50:11 <oerjan> while lambda calculus is just very thin syntactic sugar from actually being usable
19:50:45 <elliott> oerjan: if that: /me links to http://tinyconcepts.com/invaders.html again :P
19:51:02 <elliott> (ok so the "array" code is pretty ugly, but that's just the fault of the choice of datatype :P)
19:52:12 <oerjan> that code has no line breaks in my browser :(
19:52:20 <Elizacat> taking me seriously may be hazardous to your health
19:52:35 <Elizacat> if you have an erection lasting more than four hours seek immediate medical help
19:52:46 <oerjan> elliott: that already is a bit of syntactic sugar, you have equations and multiletter identifiers :P
19:53:17 <oerjan> although the latter might be all you really need for some readability
19:53:29 <elliott> oerjan: I consider identifiers irrelevant for \calculus
19:53:40 <elliott> The form with explicit variables is just defined on a set of variable names :P
19:53:47 <Taneb> In any circumstances, unless battling a mime, do not attempt to punch yourself in the face.
19:54:04 <elliott> oerjan: top-level letrec is probably the important thing
19:54:11 <oerjan> elliott: "usable" includes readability considerations
19:54:12 <Taneb> I know this from personal experience.
19:54:27 <oerjan> elliott: yeah easy recursion is somewhat important
19:54:33 <elliott> oerjan: yes, I'm just saying that multi-letter variables aren't a change IMO
19:54:39 <elliott> That's how I consider the lambda calculus normally
19:55:01 <elliott> oerjan: well fix is easy enough, but mutual recursion is very hard in the lambda calculus, you basically have to inline all the mutual functions within each other...
19:55:26 <elliott> you can formulate letrec in the lambda calculus though, so the only sugar is not having to name every bound variable as a parameter to the bound variable, pretty much
19:55:37 <elliott> by giving them directly-associated names instead
19:56:53 <oerjan> <Taneb> I know this from personal experience. <-- i am starting to get an inkling you use this phrase a lot
19:57:27 <elliott> oerjan: do you know that from personal experience?
19:57:35 <monqy> damn it elliott I was going to say that
19:58:16 <Taneb> Look, I often walk my dog through a field with cows in it. And I punched myself in the face once.
19:58:25 <elliott> `addquote <Taneb> Look, I often walk my dog through a field with cows in it. And I punched myself in the face once.
19:58:28 <HackEgo> 519) <Taneb> Look, I often walk my dog through a field with cows in it. And I punched myself in the face once.
19:59:03 <oerjan> monqy: you snooze, you lose
19:59:13 <elliott> Taneb: is that your life story
19:59:22 <monqy> i dropped my lunch and was picking it up off of the floor this is my excuse
19:59:30 <Taneb> No, I also grew a moustache when I was twelve
20:02:52 <Taneb> Well, in less than a year I'll be thinking about choosing what to do at university
20:03:09 <oerjan> elliott: well if you can use fix you should also be allowed to use letrec (since both can be defined)
20:03:32 <elliott> oerjan: I'm just saying that you can have a top-level set of mutual bindings in the lambda calculus almost directly
20:04:01 <elliott> you can define a letrec such that (with [...] sugar for lists because I'm lazy) `letrec [\[a,b,c]. ..., \[a,b,c]. ..., \[a,b,c]. ...]` works
20:04:07 <elliott> with the first being a, second b, third c
20:04:18 <elliott> so basically, top-level mutual bindings are just thin syntactic sugar
20:04:22 <elliott> and that's all you really need
20:04:52 <oerjan> hm i was about to write something like that, but without lists
20:05:06 <elliott> oerjan: how could you do it without lists?
20:05:23 <oerjan> well the letrec would then depend on number of functions
20:05:24 <elliott> fix (\[a,b,c]. [..., ..., ...])
20:07:56 -!- olsner has quit (Read error: Operation timed out).
20:08:33 <oerjan> fix (\l a b c -> l (def. a) (def. b) (def. c)), or something like that
20:09:13 <oerjan> hm that won't work i think
20:10:10 <oerjan> there should be something that can replace fix there to make it work, anyway
20:15:14 <oerjan> fix (\t f -> t (\a b c -> f (def. a) (def. b) (def. c)))
20:16:00 <oerjan> i think that may be it. t now represents a 3-tuple and f a function for unwrapping it
20:20:27 <oerjan> > fix (\t f -> t (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a)
20:20:52 <oerjan> that did not seem to work very well :P
20:21:21 <oerjan> > let a = 1:b; b = 1:zipWith (+) a b in a
20:21:26 <lambdabot> [1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,1...
20:21:28 <Taneb> Now, I promised myself when I was 7 that I would do maths at University
20:21:44 <Taneb> But you guys have made me want to do Computer Science
20:21:44 <oerjan> > take 4 $ fix (\t f -> t (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a)
20:22:33 <oerjan> elliott: i guess that becomes an infinite loop instead :(
20:22:45 <elliott> oerjan: wait, it looks very wrong
20:22:46 <Elizacat> research would probably be the better way to go for CS
20:22:47 <Taneb> Now, Oxford offers a Maths and Computer Science course
20:22:51 <elliott> oerjan: fix (\t f -> t ...) looks wrong
20:22:59 <elliott> oerjan: isn't that necessarily an infinite loop
20:23:19 <elliott> Taneb: maths and computer science is a good thing to do, I think they do Haskell at Oxford
20:23:24 <elliott> also Oberon for some reason? so weird
20:23:44 -!- olsner has joined.
20:23:48 <elliott> <Elizacat> http://i.imgur.com/GXlwe.jpg
20:23:53 <elliott> if objective c gives you a magical sense of childlike wonder
20:23:57 <elliott> you're a really boring person
20:24:40 <monqy> i do not like this list
20:24:48 -!- NihilistDandy has joined.
20:24:52 <Taneb> And if Malbolge makes programming like breathing, ask the nurse for more oxygen.
20:35:56 <oerjan> elliott: i think the problem is that the obvious church representation of tuples isn't actually lazy...
20:37:05 <oerjan> no, when doing t (\a b -> f a b) f doesn't get to start running until the tuple function is evaluated
20:37:08 -!- Taneb has quit (Ping timeout: 252 seconds).
20:37:54 -!- boily has quit (Ping timeout: 252 seconds).
20:38:43 <oerjan> might actually have to define fst and snd to apply inside f
20:39:42 <monqy> so I take it you're not doing normal order
20:39:58 <oerjan> monqy: um yes i am, this is haskell...
20:40:35 <oerjan> normal order doesn't mean _every_ data type representation becomes automatically lazy (is the moral of this)
20:42:29 <oerjan> > fix (\t f -> (\f -> f (t (\a b -> a)) (t (\a b -> b))) (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a)
20:42:41 <oerjan> > take 4 $ fix (\t f -> (\f -> f (t (\a b -> a)) (t (\a b -> b))) (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a)
20:42:58 <oerjan> still slow as molasses :P
20:43:42 <oerjan> and not as pretty any longer
20:46:52 <oerjan> > take 4 $ fix (\t f -> (\a b -> f (1:b) (1:zipWith (+) a b)) (t (\a b -> a)) (t (\a b -> b))) (\a b -> a)
20:51:38 <oerjan> <fizzie> atehwa: Didn't you run the mailing list?
20:52:46 <elliott> I forgot all about that, heh
20:52:46 <elliott> 06:24:17: <atehwa> elliott: well, I know the wiki, but it seems that the number of langs / year has been going up ever since 2002, and most of the new languages are really uninteresting.
20:53:08 <oerjan> elliott: i saw you mention underload, did you mention /// yet? :P
20:53:17 <elliott> oerjan: oh right. you do it.
20:53:55 <itidus20> taneb: i would say that anyone who can follow this room without skipping a beat doesn't need a CS bachelors
20:54:01 <oerjan> atehwa: /// (Slashes) is the best esolang ever. or something.
20:54:14 <oerjan> sadly i don't think he's present at the moment.
20:54:32 <elliott> itidus20: "Hey, lemme in to your grad school. Degree? I don't need no stinkin' degree, I'm an ESOIST."
20:54:55 <fizzie> I considered mentioning ///, but assumed he already knows about Thue, and one string-rewriting thing might be enough.
20:55:14 -!- pumpkin has joined.
20:55:18 <oerjan> oh, eodermdrome maybe. but of course my memory is biased toward the languages i've worked on
20:55:30 <oerjan> fizzie: /// is far more elegant than thue :(
20:55:51 <oerjan> (although that may be somewhat caused by thue's sucky syntax and IO)
20:55:55 <fizzie> eodermdrome he seemed to find.
20:57:06 <oerjan> itidus20: are you having a reverse Dunning-Kruger effect here? :P
20:57:20 <itidus20> i can't follow the room without skipping a beat
20:57:40 <oerjan> or would that be dunning-kruger by proxy
20:57:52 <oerjan> itidus20: i realize that, therefore "reverse" :P
20:58:13 -!- copumpkin has quit (Ping timeout: 252 seconds).
20:58:13 <oerjan> ("since i don't understand half what they say, they must know _everything_")
20:58:26 <itidus20> i am a dropout but it's more for sociological reasons than intellectual
20:58:52 -!- ais523 has joined.
20:58:56 <oklopol> lol, comparing thue to ///
20:59:31 <itidus20> at the end of the degree they start expecting you to do things like teamwork and projects
20:59:31 <ais523> oklopol: they're not that different, but the major difference is a really really significant one
20:59:46 <elliott> also, it's not that they're dissimilar
20:59:47 <ais523> elliott: I finally finished the Big PvP Ban
20:59:51 <elliott> it's that it's like comparing php to scheme
20:59:56 <ais523> which I've been working on for 5 days noe
21:00:04 <ais523> it's a NetHack-related project
21:00:13 <ais523> mostly interesting because banning PvP in NetHack implies I'm implementing multiplayer
21:00:22 <elliott> yes, I made that conclusion-jump too
21:00:28 <elliott> ais523: why ban PvP? PvP is fun :-P
21:00:40 <elliott> ais523: Are you doing that fancy -- what was it -- roguelike relativity thing?
21:01:07 <ais523> elliott: because PvP doesn't work
21:01:19 <ais523> banning it is necessary to prevent the game crashing
21:01:31 <ais523> if I wanted PvP to work, I'd have to follow up by reimplementing it on a different codepath
21:01:38 -!- pumpkin has changed nick to copumpkin.
21:01:56 <elliott> <elliott> ais523: Are you doing that fancy -- what was it -- roguelike relativity thing?
21:02:14 <pikhq_> What, and call it githack?
21:02:41 <ais523> elliott: I'm not sure what you mean by that
21:02:43 <itidus20> you can't learn to cope with a degree by doing a degree
21:02:51 <elliott> ais523: How are you handling it
21:03:03 <elliott> Multiplayer Doesn't Work in roguelikes in any naive way
21:03:06 <ais523> monqy: after spending 5 days editing well over half of the files in the distribution, I'd be inclined to agree with you, but I fear a rewrite would be even harder
21:03:16 <elliott> ais523: So how are you doing it
21:03:31 <ais523> elliott: behind-the-scenes, via peer-by-peer where there's one process per player, which handles everything that happens involving that player
21:03:44 <elliott> 12:26:15: <Phantom_Hoover> 04:53:53: <elliott> if you don't think, you can't accomplish anything. programming is a science.
21:03:44 <elliott> 12:26:27: <Phantom_Hoover> No it isn't, it's maths mixed with the odd bit of engineering.
21:03:45 <elliott> 12:27:04: <Phantom_Hoover> They're like the exact opposite things.
21:03:45 <elliott> That's what "a science" means, generally :-P
21:03:45 <ais523> from the player's point of view, by putting both players into the turn order, and you have to wait for your turn to come round
21:03:56 <elliott> ais523: Right, so you have to have everybody awake to play
21:03:59 <elliott> Not MMORPG-style or anything
21:04:52 <ais523> yep, it's small-party multiplayer
21:06:00 <elliott> 13:04:32: <cheater_> in advance to all apple fanboys: stfu
21:06:08 <elliott> HEY GUYS DID YOU HEAR ABOUT THE NEW APPLE PRODUCTS
21:06:16 <elliott> THEY CAME OUT WITH NEW APPLE PRODUCTS
21:06:33 <elliott> (Heh, I just checked; and so my computer becomes obsolete already)
21:06:43 <elliott> Time to throw it out the window
21:07:00 <elliott> Aww what, it has an i7 now?
21:07:01 <monqy> dont hit anyone with it that might hurt
21:07:29 <itidus20> apple juice, apple cider, ringo starr
21:08:05 <cheater_> elliott, i'm happy you've read my very important PSA
21:08:34 <itidus20> ipad2.0, it's worth giving up your kidney for
21:09:34 -!- pumpkin has joined.
21:10:30 -!- copumpkin has quit (Ping timeout: 258 seconds).
21:10:41 <monqy> also I don't understand tablets what's so good about them
21:11:05 <monqy> by tablets I mean the gimmicky touchscreen computers
21:11:17 -!- Taneb has joined.
21:11:25 <elliott> well, mice kind of suck. direct touch is one answer to that.
21:11:34 <elliott> and at least the ipad doesn't have a (visible) filesytem.
21:11:40 <monqy> but direct touch also sucks
21:11:41 <itidus20> by isolating certain hardware configurations and naming them platforms, a company can get rich
21:12:10 <elliott> monqy: for typing sure, dunno about for other things
21:12:28 <monqy> you have to obscure the screen, for one
21:12:51 <elliott> how's that any different to, i dunno, a whiteboard, or a book, or anything else
21:12:55 -!- pumpkin has changed nick to copumpkin.
21:13:01 <elliott> i'm pretty good at keeping my fingers out of the way
21:13:11 <monqy> I guess it depends on what's happening
21:13:29 <ais523> I haven't worked out what I'd use a tablet computer for, if I had one
21:13:30 <monqy> if the interface designers aren't idiots
21:13:32 <elliott> i'm not convinced touch is a good idea and the ipad has apple lockdown shit but
21:13:40 <ais523> they're not really properly portable, and the keyboard's aren't good enough for serious programming work
21:13:59 <elliott> ais523: IMO, the iPad is basically Apple releasing its next computer model a decade early
21:14:07 -!- Nisstyre has quit (Quit: Leaving).
21:14:14 <ais523> elliott: I think they found a genuine gap in the market
21:14:18 <ais523> but I'm not sure it's a very large one
21:14:28 <monqy> next computer model: not for serious programming work?????
21:14:31 <elliott> which means more unacceptable Apple lockdown, and lots of other crap, but it seems clear to me that the current path of computer evolution is a dead-end
21:14:37 <elliott> monqy: Apple care about developers?
21:14:46 <elliott> all they need to do is release XCode for iPad and they're done
21:15:21 <ais523> elliott: you'd really need to design a new language syntax for being easily written on a tablet
21:15:25 <ais523> I'd hate to write, say, C on one
21:15:33 -!- Nisstyre has joined.
21:15:42 <elliott> typing is pretty much the main issue with direct touch
21:15:56 <monqy> flowcharts flowcharts flowcharts
21:17:36 <ais523> elliott: there have been interesting suggestions that what's needed is a force-feedback touchscreen
21:17:39 <Sgeo_> Well, I managed to humiliate myself IRL today
21:17:43 <ais523> that could form physical keys that you could feel and press
21:17:48 <ais523> so it'd work like a mechanical keyboard
21:18:02 <ais523> it seems like a nifty idea, especially if you can make it into a Braille display too
21:19:12 <elliott> ais523: yes; it's not clear how you can do that, though, but if it was done, at a sufficiently good resolution, that would be amazingly impressive
21:20:01 <ais523> I suppose the other problem with tablets is, if you're using a large portion of it as a keyboard, why not put a keyboard there rather than a screen?
21:20:12 <monqy> amazingly impressive useless gimmick. why can't it have a port for keyboardery
21:20:22 <monqy> or a builtin keyboard yeah
21:20:29 <ais523> monqy: the trend nowadays is for systems to have fewer and fewer ports
21:20:40 <ais523> and peripherals generally
21:21:09 <ais523> I happen to own a USB floppy drive (and have had to use it on occasion), but I bet most people have no way to read floppy disks nowadays unless they have a desktop PC or really old laptop
21:21:18 <elliott> <monqy> amazingly impressive useless gimmick. why can't it have a port for keyboardery
21:21:24 <elliott> monqy: You realise that there are other uses for tactile feedback?
21:21:30 <elliott> It would be nice if GUI buttons gave actual feedback, for intsance
21:21:51 <elliott> monqy: And assuming it had multiple levels, you could do all sorts of stuff
21:21:59 <monqy> i also hate gui buttons
21:22:21 <elliott> Well if you just want a linguistic-style interface of course nothing to do with touch at all will interest you
21:22:36 -!- Taneb has quit (Ping timeout: 252 seconds).
21:25:08 <oerjan> <Lymee> You can have an exception while displaying the exception string.
21:25:38 <oerjan> that's a function of how lambdabot is programmed. i recall a previous version bailed out on a second one.
21:25:41 <ais523> wow, someone found an exploit on Google Webmaster Tools that let them remove arbitrary sites from the Google index
21:25:52 * elliott checks GitHub notifications
21:25:55 <ais523> apparently, you could change the query string of an otherwise valid removal request
21:26:17 <ais523> that's a pretty silly mistake to make
21:26:23 <ais523> although a moderately common one
21:26:44 <ais523> (the tool in question's been temporarily disabled until it could be fixed)
21:26:46 <oerjan> basically, it's just about putting catch in the function handling an exception from an outer catch
21:27:10 <fizzie> ais523: "if you're using a large portion of it as a keyboard, why not put a keyboard there rather than a screen?" -- because in very many use cases (browsing...) you're for the most part not using a keyboard. Having a physical one would be comparable to having the virtual one always-on.
21:27:48 <fizzie> (I'm sure they don't mind the fact that there's then also no need to consider different regional keyboard layouts in hardware.)
21:27:55 <elliott> FireFly: monqy is who said that
21:29:07 <fizzie> elliott: That was a direct copypasta from an ais523 comment.
21:29:34 <ais523> yep, I was thinking about that
21:29:59 <monqy> incidentally I'd prefer browsing with keys over fingers
21:30:58 <ais523> I normally browse with a mouse
21:31:09 <ais523> but I've been wondering if using a keyboard to navigate would work better
21:31:15 <ais523> my guess is no, but I'm not sure
21:31:25 <fizzie> I browse with my nose. (Not really, but it sorta-rhymes.)
21:31:33 <monqy> I imagine fingers would be clumsy
21:31:42 <monqy> links too close together, touch the wrong one
21:32:56 <elliott> monqy: meh; that's a problem with my iPhone, but tablets are much bigger
21:32:59 <elliott> And even with my iPhone I rarely misclick
21:42:26 <itidus20> theres nothing wrong with keyboards... they don't like this idea
21:42:37 <itidus20> they can't kill the keyboard with a touchscreen
21:43:42 <itidus20> and as far as computers go they're a commodity
21:44:12 <itidus20> except for being out and about
21:46:59 <itidus20> im sure if research was done between writing a 3000 word essay on an ipad vs writing it on a laptop the laptop would win
21:47:21 <itidus20> but then people would argue that it's due to familiarity with the keyboard that they like the keyboard.
21:47:49 <itidus20> the question then is whether there is any level at which a person could enjoy a touchpad keyboard more than a regular keyboard
21:48:22 <itidus20> and it may turn out the ipad is for writing things like urls or using 140 character twitter
21:49:00 <elliott> <itidus20> im sure if research was done between writing a 3000 word essay on an ipad vs writing it on a laptop the laptop would win
21:49:05 <elliott> yes because the only thing people do on computers is type
21:49:17 <elliott> that's why they're called typewriters
21:50:51 <ais523> well, I'd prefer a laptop to a tablet because most of what I do on a computer is in fact typign
21:51:00 <ais523> but I acknowledge that other people might do other things on theirs
21:51:03 -!- pikhq has joined.
21:51:10 <ais523> and that different systems might be better for them as a result
21:51:53 * atehwa waves back at oerjan, elliott.
21:52:31 <atehwa> oerjan: I managed to find out about /// myself, because it had enough backreferences :)
21:53:03 <itidus20> well the patent hounds are gnashing over these "gestures"
21:53:27 <coppro> ais523: Do you make TASes yourself?
21:53:34 <ais523> coppro: I'm working on a NetHack TAS
21:53:49 <atehwa> oerjan: actually, funny how you started by mentioning /// and eodermdrome, because those two were exactly the ones I found valuable myself. :)
21:53:52 <ais523> I'm a bit unusual in the TAS community in that I don't make TASes without a license from the game's developers to use the ROM for the purpose
21:54:10 <atehwa> there could be lots of more interesting graph-rewriting languages for undirected graphs, though.
21:54:21 <pikhq> ais523: Which leaves you only working on Nethack? :P
21:54:28 <oerjan> atehwa: if you look carefully, you'll note i wrote most of the programs in them :)
21:54:38 <elliott> ais523: if you own the game and rip the ROM yourself, you can do that legally without asking anyone, AFAIK
21:54:40 -!- pikhq_ has quit (Ping timeout: 276 seconds).
21:54:58 <ais523> elliott: I think so, in the UK (although I'm not completely sure); but I don't have ROM-dumping equipment
21:55:07 <atehwa> I tried to define a rewriting from SK combinator calculus to Eodermdrome graphs, but I couldn't define graph duplication, which I'd need to implement S.
21:55:18 <ais523> I suppose modern enough games, which come on CD or whatever, don't even need ROM-dumping, you can just read the CD directly
21:55:28 -!- quintopia has quit (Ping timeout: 255 seconds).
21:55:43 <pikhq> Yeah, though most of the CD-based systems are a pain to emulate.
21:55:52 <pikhq> Personally, I'm surprised they're TASing Playstation games now.
21:55:54 <atehwa> yes, and I agree that /// is far more elegant than Thue, mainly because it has first-class rewrite rules.
21:56:07 <elliott> atehwa: like i said, you might want to ask ais523 too (he created underload and eodermdrome, FWIW)
21:56:42 <itidus20> pikhq: psp,ps2,gamecube is the main challenges lately in emulation field i believe
21:56:51 <ais523> atehwa: graph duplication is a pain to do in Eodermdrome; you can't do it on general graphs
21:57:10 <coppro> Really the area of ROM duplication is fuzzy
21:57:11 <itidus20> everything else is basically done
21:57:14 <Sgeo_> <3 This Is Gallifrey
21:57:22 <Sgeo_> http://www.youtube.com/watch?v=idQRiLZukG0
21:57:27 <ais523> but you're only using a subset, so you could match against those
21:57:33 <pikhq> itidus20: "Abandoned" doesn't mean "finished".
21:57:49 <itidus20> pikhq: ok i admit they never crafted them to perfection.
21:57:52 <ais523> the major issue in Eodermdrome is that after a while you run out of letters
21:57:59 <pikhq> Though, SNES emulation is *pretty close* to perfection.
21:58:10 <pikhq> As is NES and Gameboy...
21:58:19 <coppro> The whole gameboy series is great
21:58:36 <pikhq> The Playstation and N64 emulators are utterly *horrible* thus far.
21:58:46 <elliott> <itidus20> pikhq: psp,ps2,gamecube is the main challenges lately in emulation field i believe
21:58:51 <elliott> gamecube emulation is pretty good IIRC
21:59:02 <pikhq> elliott: Wii and Gamecube emulation are nearly the same problem.
21:59:12 <elliott> with wii there's always the controller
21:59:17 <ais523> they're done on the same emulator
21:59:18 <elliott> making an emulator not even that useful without it
21:59:18 -!- quintopia has joined.
21:59:18 -!- quintopia has quit (Changing host).
21:59:18 -!- quintopia has joined.
21:59:29 <itidus20> elliott: maybe it's just that for one thing, hardware needs are advancing a lot.
21:59:29 <coppro> sure, but it's bluetooth
21:59:33 <ais523> interestingly, there's an accepted Wii TAS, but not an accepted GameCube TAS
21:59:38 <ais523> or even a submitted one
21:59:53 <itidus20> it would be cheaper to buy the console in question than to upgrade your hardware enough to emulate it better
22:00:12 <pikhq> itidus20: Actually, Wii emulation is playable on commodity hardware ATM.
22:00:22 <itidus20> depends on your definition of commodity
22:00:32 <coppro> the Wii is quintopia quite weak
22:00:40 <atehwa> ais523: yes, well, this time I'd only need graph duplication for a well-defined subset of graphs, but that's tricky enough anyway
22:00:42 <pikhq> The Wii is definitely easier to emulate than the PS2.
22:00:48 <pikhq> Probably easier than the PS1, actually.
22:00:57 <elliott> the Wii is quintopia quite weak --coppro
22:01:12 <pikhq> Having a dozen processors to emulate in sync is pretty much asking for painful emulation.
22:01:12 <coppro> elliott: you have seen through my subliminal messaging
22:01:41 <ais523> atehwa: the real issue with Eodermdrome, other than implementing it, is working out which operations you can and can't do
22:01:55 <pikhq> Which, incidentally, is why there's still an unemulated game for the SNES.
22:02:06 <itidus20> gamecube emulation is more of a mess than ps1
22:02:29 <oerjan> atehwa: you might want to take a look at deadfish, possibly not for the language itself (;D) but for all the other langs that implement it
22:02:30 <itidus20> the reasons are fair enough of course
22:02:50 <itidus20> hardware power is always important.
22:03:05 <pikhq> I didn't realise that the Gamecube had a dozen CPUs that needed emulation.
22:03:31 <coppro> Sgeo_: http://www.youtube.com/watch?v=0hl1Trh1aZo
22:03:35 <itidus20> you will find that the dolphin emulator community is a bubbling soup of incompatibility reports
22:03:45 <atehwa> maybe I should try it, though, because eodermdrome -> SK would be much more straightforward than eodermdrome -> BCT -> Tag system -> string rewriting -> TM -> lambda calculus
22:04:07 <Sgeo_> coppro, I kind of like Vale Decem less than This is Gallifrey
22:04:08 <itidus20> its getting better perhaps i dunno
22:04:09 <pikhq> The PS1 community would be, too. If it hadn't all been abandoned in unison a while back.
22:04:24 <ais523> pikhq: what caused that?
22:04:31 <pikhq> ais523: No *idea*.
22:04:53 <ais523> hmm, that looks almost like you're trying to hint at something, and I don't get it
22:05:11 <pikhq> ais523: Though I suspect it's somewhat similar to what happened to zsnes; a few developers left and nobody stepped in to replace them.
22:05:17 <pikhq> Leaving it all a stagnant wasteland.
22:05:53 <pikhq> With the only real development happening being random UI tweaks here and there.
22:05:53 -!- Sgeo__ has joined.
22:05:55 <coppro> mednafen seems to be the hotspot these days
22:05:57 <Sgeo__> OH FOR FUCKING FUCK"S SAKE
22:06:51 <Sgeo__> 14:52:49 <coppro> Sgeo_: ... leave
22:07:02 <Sgeo__> Well, coppro seems to have control over my Internet connection now
22:07:06 <atehwa> ais523: what are your favourite languages / findings since 2004? BCT, eodermdrome, ///, underload already mentioned.
22:07:19 <pikhq> coppro: Uh, that's just a frontend for a bunch of emulators.
22:07:47 <ais523> atehwa: hmm... I don't think I'll ever top Underload, and that was mostly an accident
22:08:07 <coppro> pikhq: I thought it was an infrastructure?
22:08:11 <atehwa> :) what about others' work?
22:08:31 <pikhq> coppro: No, it's a bunch of emulators tied together into a single interface.
22:08:38 <Sgeo__> This is a brand new router
22:08:47 <Sgeo__> So I guess it's not likely the router's fault
22:09:10 <pikhq> Though at least they tend to use best-in-class emulators.
22:09:17 <coppro> pikhq: huh; I'd heard there were multiple frontends. But then again, I know little
22:09:35 <pikhq> The "hotspot" for emulator development varies based on the system.
22:10:17 <pikhq> Some of the older ones are abandoned for having basically *finished*.
22:10:24 <pikhq> e.g. NES, Genesis.
22:10:31 <elliott> atehwa: in case you can't tell, 99 percent of esolangs nowadays are bad brainfuck derivatives
22:10:46 <elliott> the only weapon we have left is snarky comments on the wiki
22:10:46 <pikhq> Some have a single crazy bastard as the only real development. e.g. SNES.
22:10:54 <ais523> atehwa: I'm trying to remind myself of what's been created recently
22:11:01 <pikhq> Others last had major emulator improvements a decade ago. e.g. N64, PS1.
22:11:12 <ais523> it's rare that I'm impressed by an esolang
22:11:35 <ais523> most are boring derivatives rather than new concepts
22:11:39 <pikhq> (said crazy bastard is also astoundingly good at it.)
22:13:43 <ais523> atehwa: oh right, I rather liked BF Joust
22:13:57 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
22:13:58 <ais523> (it's not originally mine, but I ended up mostly responsible for maintaining/promoting it)
22:15:51 <monqy> I have a few ideas but I need to flesh them out more and I'm a bit afraid they're boring or too similar to other things. also I'm horrible at describing things.
22:16:20 <ais523> with my languages, I spend years designing them, then put a half-baked description on the wiki when people beg me for details
22:16:43 <ais523> (I think Feather is the most infamous case, where it wasn't even me who created the page, and the language is nowhere near finished, and probably will never be finished because ouch, Feather)
22:20:51 <atehwa> and already in 2000, most "new" esolangs were like, "hey guys I know how we can improve on brainfuck"
22:21:09 <ais523> I still think genuinely great and innovative esolangs can be designed
22:21:21 <itidus20> beerfest showed how... name it: headfuck
22:21:21 <ais523> but I'm having difficulty thinking of one, and there may not be another one for years
22:21:47 <ais523> I'm glad that I admitted its existence, though
22:22:01 <elliott> and in the beginning, the LORD created Feather, and saw that it was good; but could not disclose it to the mortal people, for their minds were weak and not sufficiently malleable
22:22:02 <ais523> it's added a fun meme, even if it's a headscrewy one
22:22:09 <tswett> Sarumpaet. The program is an unlabeled, undirected graph. The program executes by applying one rewriting rule.
22:22:15 <itidus20> headfuck is what you call someone while chewing on a glass beer mug intimidatingly
22:22:21 <atehwa> but by the way, if you guys _haven't_ checked out kayak, I find that quite a remarkable one.
22:22:29 <ais523> tswett: that's a bit like Eodermdrome, isn't it?
22:22:45 <ais523> atehwa: oh right, I remember that one
22:23:17 <ais523> I liked ABCDXYZ's (and BackFlip's) investigation of the same concepts, but the execution on ABCDXYZ was really off
22:23:20 <itidus20> so have any esolangs ever been referenced in other media? eg. comics, animations, cinema, novels
22:23:45 <ais523> I'm not aware of any examples
22:23:47 -!- CakeProphet has quit (Ping timeout: 250 seconds).
22:23:52 <ais523> other than the occasional art
22:23:54 <itidus20> i guess that even regular langs haven't
22:24:01 <ais523> I have a very unfinished esolang-based computer game somewhere
22:24:03 <atehwa> we also spent a lot of time designing a language for rewriting labeled undirected graphs, but nothing much came out of that (since we thought a reference implementation would be essential)
22:24:17 <itidus20> sheldon on big bang theory definitely would know at least 1
22:25:01 <ais523> computer games have quite a few esolang references, actually; Enigma has a brainfuck-related problem; and Rubicon is based around RUBE (it's a pretty good and fun free computer game, but it no longer runs on my computer)
22:25:19 <itidus20> atehwa: lets not forget that sometimes the use for something only occurs decades later :D
22:25:24 <ais523> I've also tried esolang-generated music, but it doesn't come out too well
22:25:45 <ais523> Fugue really needs some optimisation for mass stack moves, otherwise Lost Kingdoms comes out too repetitive
22:25:56 <tswett> Repelago. There's an infinite hexagonal grid, populated with polyhexes. They move around randomly, with the condition that no two polyhexes can ever become adjacent.
22:26:16 <ais523> ooh, noit o' mnain worb, that's a great language
22:26:23 <ais523> based on much the same principle
22:27:14 <ais523> I'm still unsure of what its probabilistic computational class is like
22:27:34 <ais523> it'd be nice to tweak it to make it TC (by infinitely repeating the arena to start with and possibly making semantics changes)
22:27:44 <ais523> actually, you wouldn't even need to break symmetry, the randomness does that for you
22:27:47 <elliott> atehwa: by the way, you should contact oklopol, he's a world-renowned esolangs professor
22:27:55 <elliott> (note: claim may be about to be made reasonable by ais523)
22:28:10 <ais523> elliott: meh, if you treat the claim as relative rather than absolute, it's a good one
22:28:53 <tswett> NOMW is quite different, really. It has bobules, which are just monominoes. I don't really see how it's possible to compute at all, though I wouldn't be surprised.
22:29:18 <oerjan> you mentioned backflip, that was a nice one, which also reminds me of smatiny (which is nice even if it's a simple variation of smetana)
22:29:40 <atehwa> so, Repelago, ABCDXYZ.
22:29:43 <ais523> smatiny is great, indeed
22:29:47 <ais523> and also somewhat accidental, I think
22:29:58 <ais523> tswett: you compute probabilistically
22:30:25 <ais523> btw, does noit o' mnain worb have a fixed lowercase n at the start, like brainfuck?
22:30:31 <tswett> ais523: yeah, it does.
22:30:42 <ais523> what about at the start of a sentence?
22:31:37 <atehwa> ais523: noit o'mnain worb is old enough that I know it "well"
22:31:47 <tswett> ais523: how do you make something like an AND or NOT gave in NOMW?
22:31:56 <ais523> atehwa: are those scare quotes or emphasis quotes
22:32:24 <ais523> tswett: the idea is to do it along a similar line to electronics; concentration of bobules is the equivalent to potential, motion to current
22:32:42 <ais523> the basic debate is as to whether you can make a sufficiently-high-quality transistor to do calculation
22:32:57 <ais523> if you can make an amplifier that amplifies by a factor of more than 1, everything is fine
22:33:03 -!- MigoMipo has quit (Quit: Quit).
22:33:40 <ais523> if that's possible, you do it by making a weak signal block the exits of a one-way strip, so that a stronger signal doesn't flow through it and instead comes to the output
22:33:50 <ais523> once you have amplification, you can do the other logic operations based on that
22:34:01 <ais523> not trivially, but I think it's doable
22:35:03 <ais523> wow, our latest batch of spambots have a real headlight addiction
22:35:04 <tswett> Whoa, that sounds accurate.
22:36:51 <tswett> Yeah, it's like. Suppose you've got a T-shape. Inputs come in from the right and from below. There are diodes in front of the path below preventing bobules from moving upward.
22:37:57 <tswett> If the bottom input is 1, then it will pass the signal. If the bottom input is 0, it will (mostly) suppress the signal. If the bottom input is Z, it will, again, pass the signal.
22:39:35 <ais523> now, the issue that makes me wonder if that really works, is that you're going to need to drain bobules from the bottom, or the top input will fill the region up and then conduct
22:39:40 <ais523> you need to drain fast enough to drain the top input
22:39:50 <ais523> but if you do that, then maybe the bottom input won't be strong enough to actually block the diodes
22:40:33 <tswett> What do you mean? Either you're draining, or you're not. If you're not draining, the signal passes. If you are, it doesn't.
22:40:50 <elliott> http://esolangs.org/w/index.php?title=Talk:FALSE&curid=1448&diff=23951&oldid=21346
22:40:53 <elliott> ok, _this_ is really irksome
22:41:00 <elliott> fixing links is one thing, changing /spelling/?
22:41:01 <ais523> tswett: well, you have a weak signal going into the below
22:41:12 <ais523> which has to be drained, or the transmitter will conduct even if it isn't there
22:41:26 <ais523> if you drain it too fast, it won't actually allow the right input to continue
22:42:26 <ais523> real-life transistors don't have this issue, because they can create energy barriers, a phenomenon that doesn't exist in NOMW at all
22:42:32 <tswett> So. 1 and Z both pass. 0 forces a 0.
22:43:00 <ais523> ooh, ingenious; the bottom "signal" is in fact whether or not you're draining?
22:43:04 <elliott> http://esolangs.org/wiki/Brainbool#Converting_Brainbool_to_Brainfuck umm, isn't this really excessive?
22:43:08 <elliott> [--]+ seems an adequate logical not
22:43:15 <tswett> ais523: pretty much, yes.
22:43:37 <ais523> so then you've designed a field-effect rather than bipolar transistor, but that's still enough for semiconductor-completeness
22:44:09 <oerjan> elliott: um [--]+ isn't guaranteed to halt
22:44:50 <Lymee> unsafePerformIO :: IO a -> a < um
22:44:52 <elliott> oerjan: oh right [] is while not if :D
22:45:08 <Lymee> What situations would it be used in?
22:46:10 <oerjan> Lymee: it's original intended use was for FFI functions, which are imported as in IO but sometimes they're real effect is pure...
22:46:18 <elliott> Lymee: ones you're not qualified to encounter :D
22:46:31 <oerjan> but it has been used for many more evil things
22:47:03 <ais523> if you want to map 8-bit to 1-bit BF, just change + and - to (+)*128 and (-)*128 respectively
22:47:05 <oerjan> Lymee: it's used as a brittle hack for getting global variables, for example
22:47:26 <oerjan> (mutable variables, that is)
22:47:41 <ais523> I thought it was added just because they could
22:47:44 <tswett> ais523: so, I know of one potentially useful binary gate, and two potentially useful unary gates: http://pastebin.com/iXNJmkDD
22:48:25 <oerjan> ais523: it was part of the ffi addendum afair
22:48:45 <ais523> I think the T-gate is probably the basis of any sensible NOMW program
22:48:58 <ais523> together with wire connection
22:49:10 <ais523> we probably also need the logic level L and H, which correspond to a weak signal 0 or 1
22:49:22 <tswett> I notice that it's not apparently possible to discriminate betwen 1 and Z.
22:49:32 <ais523> as in, if you wire an L to a 1, you get a 1, as the L can't sink fast enough to keep up with the 1
22:49:42 <ais523> that's how you discriminate between 1 and Z
22:49:43 <Lymee> > fst (1,unsafePerformIO $ printStrLn "teehee")
22:49:43 <tswett> Then again, you could probably do that with an interved T-gate.
22:49:44 <lambdabot> Not in scope: `unsafePerformIO'Not in scope: `printStrLn'
22:49:49 <ais523> because 1 wired to L = 1, 0 wired to L = L
22:50:07 <ais523> and 1 is typically quite easy to distinguish from L
22:50:14 <oerjan> Lymee: that would defeat half of lambdabot's approach to sandboxing :P
22:50:29 <ais523> you might need to end up going fully analog at least to start with
22:51:20 <tswett> ais523: I dunno, let me see what can be done if you toss in the inverted T-gate.
22:51:34 <oerjan> !haskell import System.IO.Unsafe; main = print $ fst (1,unsafePerformIO $ putStrLn "teehee")
22:51:41 <ais523> a T-gate with the diodes going the other way is clearly possible, if you change from n-type to p-type wire
22:51:56 <ais523> (as in, whether you change the program from starting with empty wire to changing with full wire)
22:51:56 <oerjan> Lymee: as you see the unsafePerformIO is not triggered
22:51:58 <tswett> Suppose you have diodes going upward instead of downward. 0 or Z as the lower input will make it simply conduct, but 1 as the lower input will saturate it with 1s.
22:52:42 <ais523> tswett: not quite; if you have 1 as the lower input and 0 as the upper input, you end up with about 0.5, a state known as X in VHDL
22:52:51 <ais523> (VHDL has named more or less every value for a boolean that you might think of)
22:53:03 <tswett> ais523: oh, that's true.
22:53:30 <oerjan> Lymee: another use for unsafePerformIO is for implementing things like Debug.Trace.trace
22:54:12 <tswett> Depends on how strong the upper input is, I think.
22:54:37 -!- Nisstyre has quit (*.net *.split).
22:54:37 -!- Vorpal has quit (*.net *.split).
22:54:44 <oerjan> !haskell import System.IO.Unsafe; main = print $ snd (1,unsafePerformIO $ putStrLn "teehee")
22:55:08 <oerjan> !haskell import System.IO.Unsafe; main = print $ snd (1,unsafePerformIO $ putStr "teehee")
22:55:57 <tswett> If the T and RT gates act as I expect, then these are our gates: http://pastebin.com/hLsUGri6
22:57:16 <tswett> AND and OR on 0 and 1 are there plain as day. NOT couldn't be too difficult...
22:59:34 -!- Vorpal has joined.
22:59:35 <elliott> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: String)
22:59:49 <elliott> I wonder how that even works
23:00:24 -!- Nisstyre has joined.
23:00:42 <tswett> No, NOT is impossible using these gates. They're all increasing, given the ordering 0 < Z < 1.
23:02:51 <tswett> ais523: any idea whether it's possible to make a non-increasing function?
23:03:11 <tswett> I would be surprised if it were.
23:03:21 <ais523> tswett: you can do minus a constant
23:03:30 <tswett> ais523: that's still an increasing function.
23:03:46 <ais523> by putting a drain past a narrow wire so it can only drain a fraction of the signal
23:07:22 <oerjan> elliott: that was weird hm
23:07:42 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: String)
23:08:21 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: [Maybe Bool])
23:08:46 <oerjan> elliott: it seems to be interpreted as an empty list
23:08:54 <tswett> I'm pretty sure that the presence of a bobule can never cause the absence of one later on.
23:09:31 <oerjan> elliott: maybe it has to do with the tag bits on ghc pointers
23:09:42 <tswett> Well, there's a really marginal case where that sort of thing can happen, I think.
23:09:52 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Maybe Bool)
23:10:17 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (Nothing :: Maybe Bool) :: String)
23:10:43 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (Nothing :: Maybe Bool) :: Int) -- >:)
23:10:58 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (Nothing :: Maybe Bool) :: Int) -- >:)
23:11:11 <oerjan> elliott: not quite as repeatable :P
23:11:19 <elliott> <oerjan> elliott: maybe it has to do with the tag bits on ghc pointers
23:11:23 <elliott> it probably means "first constructor"
23:11:28 <elliott> and doesn't even look at the rest
23:11:30 <tswett> No, that can't happen. Essentially, a bobule picks a random one of its 9 surrounding squares. If that square is impassable, nothing happens; otherwise, it swaps places with that square.
23:11:59 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either () Bool)
23:12:12 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either () Bool)
23:12:12 <tswett> Ooh, but wait. Under the "bobules swap instead of colliding" model, a bobule can go through a diode in the wrong direction, by being replaced with a bobule going the other way.
23:12:29 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either Bool Ordering)
23:12:40 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either Bool Ordering)
23:15:45 <oerjan> > [minBound..maxBound :: Ordering]
23:17:25 <oerjan> > zipWith compare [2, 4..20] [10..20]
23:18:01 <oerjan> > zipWith compare [0, 2..20] [5..15]
23:18:02 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:18:03 <lambdabot> [LT,LT,LT,LT,LT,EQ,GT,GT,GT,GT,GT]
23:18:43 <oerjan> > sortBy (const $ const GT) [1..20]
23:18:44 <lambdabot> [20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
23:19:06 <oerjan> > sortBy (const $ const LT) [1..20]
23:19:08 <lambdabot> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
23:19:30 <tswett> > sortBy (const $ const GT) "pumpkin brigade"
23:22:02 <tswett> > sortBy (\x y -> case (ord x + ord y) `mod` 3 of 0 -> LT; 1 -> EQ; 2 -> GT) "pumpkin brigade"
23:22:42 <tswett> Hm. If you subtract instead of adding, you get a rock-paper-scissors ordering.
23:22:47 <tswett> > sortBy (\x y -> case (ord x - ord y) `mod` 3 of 0 -> LT; 1 -> EQ; 2 -> GT) "pumpkin brigade"
23:24:20 <oerjan> your case can be replaced with toEnum btw
23:25:22 <tswett> Wait, this isn't an RPS ordering. This is:
23:25:43 <tswett> > sortBy (\x y -> case (ord x - ord y) `mod` 3 of 0 -> EQ; 1 -> GT; 2 -> LT) "pumpkin brigade"
23:49:32 <tswett> !haskell import System.IO.Unsafe; main = print $ snd (1,unsafePerformIO . sequence . replicate 3 $ putStrLn "teehee")
23:51:38 <oerjan> there's a reason i changed it to putStr :)
23:52:00 <lambdabot> replicateM n x = sequence (replicate n x)
00:00:09 <lambdabot> replicateM_ n x = sequence_ (replicate n x)
00:01:03 <oerjan> > let f m n = error $ show m ++ ' ' : show n in sortBy f [1..10]
00:01:42 <oerjan> > let f m n = error $ show m ++ ' ' : show n in sortBy f [1..10]
00:02:02 <oerjan> > let f 1 2 = LT; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10]
00:02:59 <oerjan> > let f x y | (x,y) `elem` zip [1,3] [2,4] = compare x y; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10]
00:03:14 <oerjan> > let f x y | (x,y) `elem` zip [1,3,1] [2,4,3] = compare x y; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10]
00:03:57 <oerjan> > let f x y | (x,y) `elem` zip [1,3,1,5] [2,4,3,6] = compare x y; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10]
00:04:27 <oerjan> > let f x y | (x,y) `elem` zip [1,3,1,5,7,5] [2,4,3,6,8,7] = compare x y; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10]
00:10:10 -!- copumpkin has joined.
00:11:14 <oerjan> > sortBy (\x y -> case (ord x - ord y) `mod` 3 of 0 -> EQ; 1 -> GT; 2 -> LT) "copumpkin cobrigade"
00:12:17 <Sgeo__> http://qntm.org/tetris
00:12:24 <oerjan> interesting there are several common substrings to without the co
00:12:28 <lambdabot> copumpkin: You have 1 new message. '/msg lambdabot @messages' to read it.
00:13:39 <oerjan> in fact just a k and i moved
00:41:14 <tswett> Today, Anki expects me to recall 51 Finnish words and learn an additional 20.
00:41:31 <monqy> > error $! error "yo"
00:42:16 <lambdabot> *Exception: *Exception: Prelude.undefined
00:42:43 <oerjan> i wonder why error (error "yo") doesn't give two...
00:43:02 <oerjan> > error $ ' ':error "yo"
00:43:11 <itidus20> thats my finnish vocab. i believe it means "what is that? that is bus"
00:43:24 <monqy> > fix (error .) "yo"
00:43:26 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E...
00:43:46 <monqy> > error (error "yo")
00:43:56 <oerjan> clearly this is something subtle...
00:44:17 <oerjan> > error (error (error "yo"))
00:44:45 <monqy> > error $ error $ error $ "yo"
00:44:46 <lambdabot> *Exception: *Exception: *Exception: yo
00:44:52 <oerjan> if there were a rewriting rule, i'd expect it to trigger with $ as well
00:45:25 -!- copumpkin has quit (Ping timeout: 252 seconds).
00:45:49 -!- copumpkin has joined.
00:46:14 <oerjan> copumpkin: shachaf: do any of you have any idea why this differs?
00:46:42 <shachaf> oerjan: That's kind of weird.
00:46:47 <oerjan> copumpkin: lambdabot gives different printout for error (error "yo") and error $ error "yo"
00:46:47 <monqy> > error (error "yo")
00:46:53 <monqy> > error $ error "yo"
00:47:03 <copumpkin> yeah, someone brought that up a while ago
00:47:05 <elliott> <oerjan> > error (error (error "yo"))
00:47:05 <elliott> <lambdabot> *Exception: yo
00:47:05 <elliott> <monqy> > error $ error $ error $ "yo"
00:47:05 <elliott> <lambdabot> *Exception: *Exception: *Exception: yo
00:47:16 <copumpkin> I can't remember why it is, but I think there was discussion about it on haskell-cafe
00:47:44 <oerjan> elliott: they _should_ be identical. i'd be extremely surprised it f $ x isn't rewritten to be identical to f x inside ghc
00:48:02 <shachaf> > (let x = error in x) (error "foo")
00:48:13 <shachaf> > (let x = error in x `seq` x) (error "foo")
00:48:19 <shachaf> > (let x = error in id x) (error "foo")
00:51:00 <oerjan> found it: http://www.haskell.org/pipermail/haskell-cafe/2011-February/088905.html
00:54:56 <shachaf> So GHC knows that error is strict, but not that id error is?
00:55:22 <oerjan> the demand analyzer only knows that ($) is strict in its first
00:55:23 <oerjan> argument -- it's not strict in its second."
00:56:13 <oerjan> "If ($) were getting inlined, the code would look the same coming into
00:56:14 <oerjan> demand analysis in both cases, so you wouldn't see a difference. So
00:56:14 <oerjan> I'm guessing you're compiling with -O0.
00:59:17 <pikhq> -funroll-all-loops
01:41:39 -!- FireFly has quit (Quit: swatted to death).
01:45:12 -!- tswett has quit (Ping timeout: 246 seconds).
01:46:22 -!- tswett has joined.
01:47:46 <elliott> `addquote <Sgeo> I'm having nostalgia for when we could see the glass from the floor
01:47:47 <HackEgo> 520) <Sgeo> I'm having nostalgia for when we could see the glass from the floor
01:59:27 -!- cheater__ has joined.
02:02:52 -!- cheater_ has quit (Ping timeout: 240 seconds).
02:40:57 <oklopol> "<itidus20> thats my finnish vocab. i believe it means "what is that? that is bus" <<< i would translate it as "ths wht is? it is a bus."
02:42:48 <itidus20> yeah.. somehow that phrase stuck
02:43:13 <oklopol> a similar sentence that means something would be "mik tm on? se on bussi"
02:43:36 <itidus20> ah.. i wouldn't know how to create such a character
02:43:40 <oklopol> what is this? it is a bus.
02:45:02 <itidus20> so im studying some haskell .. very beginner stuff
02:45:10 <oklopol> i don't know how not to know how to make such a character, so i certainly have some sympathy
02:46:09 <itidus20> i have just learned fst (1,'a') and snd ("abc",2)
02:46:14 <oklopol> i was about to ask why the fuck everyone's learning it
02:46:27 <oklopol> why the fuck is everyone learning it?
02:46:53 <oerjan> oklopol: on beesti languagi
02:47:47 <itidus20> my friend who i left behind in an old chatroom would be very happy to hear i know any haskell words
02:48:01 <oklopol> "besti" is occasionally used i think
02:48:31 <itidus20> i think that the toughest part to learn is pronunciation
02:48:40 <oerjan> > fst . fst . fst . fst $ (((("fst!",1),2),3),4)
02:49:23 <oklopol> itidus20: how deep expressions have you learned to evaluate so far?
02:49:39 <oerjan> i'm sorry, obscure haskell demonstrations are obligatory on this channel
02:49:56 <oerjan> (not that that was particularly obscure for haskell)
02:49:56 <oklopol> that 4 was roughly my limit i think
02:49:58 <itidus20> an exercize was: Exercise 3.2 Use a combination of fst and snd to extract the character out of the tuple
02:50:28 <itidus20> oh.. the thing is the book doesn't have the dot
02:50:38 <itidus20> hmm this brings back grave memories
02:50:38 <oerjan> i have a hunch he may not have learned . and $ yet :P
02:51:00 <oerjan> itidus20: that's fine you can use parentheses instead
02:51:09 <oklopol> well anyway biggest penis = snd (fst penis)
02:51:16 <itidus20> the k and r book wasn't referencing certain characetrs when someone tried to show me
02:52:25 <oerjan> itidus20: well haskell mostly uses just plain ascii, although there is a flag for using unicode for some stuff if you want things to look more like typeset math
02:52:53 <itidus20> uh.. im gonna assume the book simply didn't introduce the . yet
02:52:59 <oerjan> itidus20: almost certainly
02:53:07 <itidus20> however.. yeah that reminds me that my k and r book.. had missing chars
02:53:23 <oklopol> or maybe they just used \circ instead
02:53:32 <oerjan> > fst (fst (fst (fst (((("fst!",1),2),3),4))))
02:56:56 <oklopol> itidus20: if f and g are functions, (g . f) is a new function that first applies f, and then applies g to the result. main use of this of course being obfuscation.
02:57:14 * oerjan swats oklopol -----###
02:57:20 <itidus20> oklo: im not listening.. :P im not taking the combinatrics approach
02:57:55 <itidus20> i mean i will if it ever gets there but yeah
02:58:04 <oklopol> you don't get that definition?
02:58:15 <oerjan> oklopol: you don't get that he might not get it?
02:58:25 <oklopol> oerjan: you don't get that i don't get that he might not get it?
02:58:38 <itidus20> i have no math background.. i encountered a curious ebook though which seems to be good at people like me
02:59:09 <itidus20> but worse than no math background my brain is wired in a strange way
02:59:16 <oerjan> itidus20: is it that Learn You a Haskell book? it's frequently recommended although i learned haskell before that...
02:59:42 <itidus20> Yet Another Haskell Tutorial by some guy Hal Daume
03:00:09 <oerjan> that's a bit older i think.
03:00:18 <itidus20> I don't think very well. But I do think.
03:02:00 <oerjan> itidus20: lambdabot only does expression printing, not output functions
03:02:10 <oerjan> you might try EgoBot instead
03:02:17 <oerjan> !haskell putStrLn "bye"
03:02:38 <oerjan> on the other hand, lambdabot has many more functions imported by default
03:03:05 <oerjan> itidus20: these days the recommendation is the haskell platform
03:03:23 <oerjan> hugs is sadly completely unmaintained now
03:03:46 <oerjan> although i used it for a long time
03:03:57 <itidus20> if i get anywheer i will keep it in mind
03:04:30 <itidus20> oh.. unrelated.. i have a curious function i would like to define
03:04:46 <itidus20> someone was explaining the game of pennymatching to me yesterday
03:04:53 <pikhq> Using Hugs these days is a bit like using GCC 1 for your C development.
03:05:37 <oerjan> itidus20: oh also when you asked the thing about characters i checked your client version and you seem to be on windows. so (1) there's a character map which you can use to get strange characters (2) if you use hugs you probably want to use winhugs
03:06:44 <itidus20> i have winhugs yeah. haskell book is ok. but once upon a time the k&r book had some troubles leaving out certain chars. ill have to check up one day if it has them
03:07:18 <itidus20> so about pennymatching.. one curious thing is that the rules are identical for each player
03:07:44 <itidus20> so they don't have to be defined for each player, only for a generic player.
03:08:26 <oerjan> sounds like nim-type games
03:08:38 <itidus20> oh.. pennymatching is very very simple.
03:09:07 <itidus20> 2 players choose a binary digit (such as heads or tails) in private and then compare.
03:09:27 <itidus20> if they are the same then player 1 wins. if they differ then player 2 wins
03:09:41 <itidus20> someone described it to me yesterday
03:09:51 <oerjan> heh ok that's probabilistic so not really nim-like
03:10:31 <oerjan> looks like a simple mixed strategy game
03:11:16 <itidus20> so, as i started to overanalyze it, i realized that of the four outcomes: 00,01,10,11 that theres no other possible win condition except "one of the players wins by getting 00 or 11"
03:11:56 <oerjan> i though you said player to wins on 01 and 10
03:12:03 <itidus20> well each player supplies a binary digit to the game
03:12:33 <itidus20> and.. of the 2 players.. one of them wins on 00/11 and one of them wins on 01/10
03:12:56 <itidus20> the rule about which player wins on which is arbitrary
03:13:10 <elliott> <oerjan> itidus20: oh also when you asked the thing about characters i checked your client version and you seem to be on windows. so (1) there's a character map which you can use to get strange characters (2) if you use hugs you probably want to use winhugs
03:13:15 <elliott> what characters are strange for haskell?
03:13:44 <oerjan> elliott: well he was pointing out he couldn't make finnish ä, i think
03:16:41 <itidus20> so when i started to analyze this pennymatching what i found is that in order to have a fair game, whatever player 1 does, player 2 must have a 50% chance of winning
03:17:19 <itidus20> i don't know how to formalize the idea exactly.. but it's fascinating since the idea of fairness is recursive between the 2 players
03:18:30 <itidus20> option A = 50% chance. option B = 50% chance.
03:19:17 <itidus20> i should try drawing it for myself in paint
03:22:47 -!- azaq23 has quit (Ping timeout: 250 seconds).
03:22:56 -!- azaq23 has joined.
03:23:14 <oerjan> itidus20: i think it depends on your definition of fair. you might also make it >= 50% i think
03:23:33 <itidus20> uh like.. if you go heads, you have 50% chance of winning because they also have 50% chance of winning *pulls out hair*
03:24:10 <oerjan> there may not be any way in this game of making it > 50% for any option
03:24:48 <monqy> > 50 for heads: always win (for fairness: for tails: always lose)
03:24:49 <lambdabot> Not in scope: `for'Not in scope: `heads'Not in scope: `always'Not in scope:...
03:24:56 <oerjan> i mean, it wouldn't necessarily by unfair if A had a choice that guaranteed that A loses
03:24:56 <monqy> a vanilla coinflip
03:24:59 <itidus20> if you say that a player wins on 10/11 and the other player wins on 01/00
03:25:15 <itidus20> oerjan: true.. not if they didn't know the rule
03:25:25 <oerjan> but there wouldn't then be enough options with just heads and tails to make it fair the other way around
03:25:57 <oerjan> but it could work if there were more than two options
03:26:01 <itidus20> i worded it in a very obfuscated way
03:26:26 <itidus20> but what fascinated me most of all is the recursive way of defining a 50% chance of winning between the 2 players
03:27:12 <itidus20> i lack the math skill to see sense in it
03:30:41 <oerjan> itidus20: you probably are calculating what's called a nash equilibrium. see http://en.wikipedia.org/wiki/Strategy_(game_theory)#Mixed_strategy it even has a link to Penny Matching
03:32:35 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:56:52 -!- copumpkin has changed nick to contrapumpkin.
04:02:33 -!- contrapumpkin has changed nick to yoda.
04:02:46 -!- yoda has changed nick to coyoda.
04:03:00 <oerjan> yoda, opposite category is in, hm?
04:04:58 -!- coyoda has changed nick to YodaLemma.
04:07:17 -!- canaima17242 has joined.
04:08:33 -!- canaima17242 has quit (Quit: Leaving.).
04:09:14 -!- YodaLemma has changed nick to copumpkin.
04:56:46 -!- Sgeo__ has changed nick to Sgeo|DiesAtBadTi.
05:20:39 -!- zzo38 has joined.
05:23:50 <lifthrasiir> zzo38: hmm, is the Unispace specification stable?
05:25:13 <lifthrasiir> i feel it is still vague about multiple labels and INTERCAL operators
05:25:36 <zzo38> lifthrasiir: Some people (including you) can change it if you want to. Including to make it less vague, or discussion those things on the Talk page, or add other Unicode space characters, etc
05:26:43 <lifthrasiir> okay, but as always i wanted to implement it in esotope and the stability of the language is paramount ;)
05:27:39 <lifthrasiir> i appreciate the choice made by Migomipo who separated Migol 09 and 11, for example
05:31:04 <zzo38> It isn't completely stable yet, it is just some ideas I wrote. Feel free to update whatever is unclear or incomplete on that wiki article for Unispace.
05:41:56 <pikhq> Holy crap. There is a lake of sulfuric acid.
05:42:39 <pikhq> A naturally occuring lake of *sulfuric acid*.
05:43:43 <quintopia> happens around volcanos especially
05:44:26 <pikhq> But, yeah, it makes sense how it can occur.
05:44:53 <pikhq> Volcanic gas very high in sulfur bubbling into a lake — bam, sulfuric acid lake.
05:45:22 <quintopia> which specific one are you talking about?
05:48:51 <pikhq> And even less so sans gas mask.
05:52:56 <pikhq> There's different levels of "fuck no", though.
05:53:57 <quintopia> but all of them are above a threshold of taking action
05:54:47 <pikhq> Of course, there's *much* better ways of getting sulfur, making the whole proposition sickening and pointless.
05:55:44 <pikhq> Though, TBH, most of those really hazardous things that people in undeveloped nations end up doing are either pointless or much better done via machines.
05:56:23 <quintopia> lets go put that sugar refinery out of business!
05:56:38 <pikhq> Well, there's this nasty problem with economic inequities...
05:56:43 <quintopia> those poor guys need to be unemployed
05:57:36 <pikhq> And it's very, very nontrivial to bootstrap an economy.
05:59:06 <quintopia> who needs to bootstrap an economy? we just bring in our own people and equipment, pay fair tax on export and use of the land...
05:59:32 <quintopia> eventually theyll take over the operation themselves cuz thats just how things go
05:59:44 <quintopia> but for now, it cant hurt them really
06:01:27 <pikhq> Or, knowing humanity's propensity for dickishness, we'll just settle in and create an oppressed underclass that eventually rises up and then has no idea how to run shit, causing things to go to shit.
06:03:17 <quintopia> wtf? create? theres already one! otherwise there wouldnt be people carrying sulfur out of a volcano for $13/day
06:04:06 <pikhq> That's not the *underclass* in that society.
06:04:13 <pikhq> You may now be frightened.
06:05:19 <quintopia> so you agree we wouldnt really be hurting them to build some infrastructure there?
06:05:43 <pikhq> Well. No. My only issue is that there's a decent chance the people involved in doing so will be royal dicks.
06:06:39 <quintopia> i was saying we should be those people
06:06:53 <pikhq> Oh, we personally? No argument. :P
06:07:17 <pikhq> Though I'm afraid that at the moment, they're paid higher wages than I.
06:08:51 <quintopia> not long ago i heard a few fuck reagans
06:09:01 <zzo38> Why did you get dead yesterday?
06:09:08 <quintopia> so it seems we shall have a good oldfashioned consie president orgy soon
06:09:45 <zzo38> And why didn't you write that book tomorrow?
06:12:07 <zzo38> You, in case you are on this channel.
06:13:06 -!- oerjan has quit (Quit: Good night).
06:13:59 <quintopia> well ask again last week and maybe I'll havd an answer for you by the day i am laid to rest
06:14:42 <zzo38> OK, I will try. But maybe I can't.
06:15:15 -!- copumpkin has quit (Read error: Operation timed out).
06:15:49 <quintopia> well, if i never try to find out how your attempt went, then you can both succeed and fail
06:17:06 -!- copumpkin has joined.
06:24:06 <zzo38> I read book once, it says Jesus is laughing and none of the things they described in the Bible actually existed, they are mythology meant to make up ideas and philosophy and parables and those things, and it makes Gnostic Christianity still valid.
06:25:57 <zzo38> (In the past, it was, and still is in the present, my opinion, that the proper meaning of religion, it doesn't matter whether or not the events described in the Bible actually happened or not.)
06:28:29 <zzo38> Do they exist any of the mana symbols and other symbols for Magic: the Gathering, and energy card symbols for Pokemon card, and Fanucci suit symbols, and so on, in METAFONT?
06:28:57 <pikhq> RE: MTG symbols. No, but there should be.
06:30:10 <zzo38> Yes I think it would be good idea. Would you know who knows how to do it with a good job?
06:37:41 <fizzie> There is at least one (probably several) TTF of (some) MTG symbols, it might be possible to do some manual convertatation, or at least use it as a starting point. (Though I have no clue how good it is; I just saw one somewhere.)
06:39:10 <fizzie> Don't know about how one would do those multicolored hybrid symbols in METAFONT; isn't it quite strictly monochromatic?
06:40:38 <zzo38> Yes it is monochromatic (although you can use specials if needed). It doesn't need colored; you can do it in monochrome so that it works on monochrome printers. The background circle is the colored part and it would be a separate circle symbol, inserted whenever needed for color symbols on color printers.
06:41:44 <fizzie> But there are those two-color ones, like http://wiki.mtgsalvation.com/images/4/4b/Manaur.gif -- though I guess you could have the two halves as separate symbols.
06:42:28 <zzo38> Yes you can have the two halves as separate symbols.
06:42:52 -!- CakeProphet has joined.
06:42:53 -!- CakeProphet has quit (Changing host).
06:42:53 -!- CakeProphet has joined.
06:43:04 <zzo38> (You could use ImageMagick colors, PostScript colors, PDF colors, or what I prefer is CMYKX color specials (where X is like K but used for monochrome printers, while CMYK is for color printers))
06:44:30 <zzo38> I think separate symbols would work. Each half of circle is one symbol which is colored when printing. And the mana symbols can just be the smaller ones than normal and then put in place.
06:47:52 -!- Taneb has joined.
06:48:05 <pikhq> http://www.mezzacotta.net/garfield/?comic=141 I do believe that the text beneath is the best bit about this one.
06:48:24 * pikhq is a-archive-binging sqrt(-$garfield)
06:49:26 <zzo38> The other way is to convert the images used in MSE directly to GF format for the specified resolutions.
06:51:01 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
06:52:23 <fizzie> There you have the floating-point version.
06:52:49 <elliott> <itidus20> > sqrt -3.14159
06:52:53 <elliott> around the negative number
06:53:20 <pikhq> Otherwise it's (-) sqrt 3.14159, which is of course a type error.
06:53:51 <itidus20> so you can't have a negative function
06:54:10 <pikhq> Unary minus is a bit of a hack in Haskell.
06:54:32 <pikhq> (TBH, it's a bit of a hack in pretty much every language with both it and binary minus, but that's beside the point)
06:54:35 <itidus20> well.. mathematical theory probably hasn't explored the implication of a negative function
06:55:05 <itidus20> but since a function isn't really a number im just being dumb
06:55:16 <pikhq> Well, I suppose you could do a variant of Church numerals, thereby getting you functions as numbers.
06:55:28 <pikhq> Actually, without "variant of".
06:55:46 <pikhq> You only need to do extra legwork if you want it to do negatives or something.
06:58:02 <itidus20> sometimes i find my own words to be a thicket, because i have seen how calculated peoples words can be after they start reading about manipulative psychology
06:58:27 <fizzie> How was it with lambdabot, how does it have all the modules (all of them) available by default?
06:58:29 <itidus20> almost every sentence can be evil if the intent behind it is evil
06:58:46 <zzo38> What does :+ do? Is it for specifying complex numbers?
06:58:55 <fizzie> It's the complex number constructor, yes.
06:59:11 <zzo38> itidus20: That is difficult to know if it is correct or whatever it is
07:00:01 <zzo38> Does the intent behind a sentence make it evil? I don't know.
07:00:12 <itidus20> or do you mean followers of general semantics
07:00:52 -!- CakeProphet has quit (Ping timeout: 255 seconds).
07:00:53 <zzo38> That is the philosophical ideas of evil and such.
07:01:43 <itidus20> it has come to my attention that rather than using words to express feelings, people these days are interested in using communication as a weapon
07:02:21 <itidus20> being entirely two faced thinking noone knows what they are doing
07:02:42 <fizzie> Floating-point vs math™: floating-point wins again:
07:02:43 <fizzie> > (-pi) :+ 0 == mkPolar pi pi
07:02:45 <itidus20> i don't mean here i just mean in general
07:02:47 <fizzie> > magnitude $ ((-pi) :+ 0) - (mkPolar pi pi)
07:02:49 <lambdabot> It could refer to either `Data.Complex.ma...
07:03:21 <fizzie> Hrm, do I need to full-qualify that?
07:03:25 <fizzie> > Data.Complex.magnitude $ ((-pi) :+ 0) - (mkPolar pi pi)
07:04:32 <fizzie> (Wonder what the other sort of magnitude is.)
07:05:00 <lambdabot> (-3.141592653589793) :+ 3.8473413874435795e-16
07:05:08 <fizzie> Almost, but not quite.
07:05:22 <pikhq> Effing floating point.
07:05:24 <itidus20> marketing, salespeople, advertising, pickup artists, brainwashing, cults, suggestion, covert hypnosis, n.l.p., body language, double-entendres, general semantics, operant conditioning.. all this crap and whatever else comes from it
07:05:47 <zzo38> Yes it is possible not everyone knows exactly what they are thinking, because even your thoughts are all hallucination, too. You can say things for many purposes. One reason, is to ask question, answers, tell something, notify something, etc.
07:05:48 <pikhq> And *now* I realise what "mkPolar" is doing.
07:06:35 <pikhq> Just constructing a complex number from a polar coordinate pair.
07:06:37 <zzo38> Or for word games.
07:06:49 <pikhq> (sorry, just first time I'd seen that function)
07:06:57 <lambdabot> (-3.141592653589793) :+ 3.8473413874435795e-16
07:07:15 <pikhq> Yeah, that would be the obvious implementation.
07:07:37 <itidus20> zzo: well anyway, the people involved sell themselves out
07:07:40 <pikhq> Effing floating point. :P
07:08:31 <zzo38> But yes it is true, they say things for lying and marketing and so on, too.
07:08:48 <fizzie> Interestingly, 'cis' and 'mkPolar' seem to be independently implemented: "mkPolar r theta = r * cos theta :+ r * sin theta" and "cis theta = cos theta :+ sin theta", from the sources.
07:09:20 <pikhq> How strange. I wonder what difference exists.
07:09:56 <pikhq> Hmm. Actually, might be laziness.
07:10:27 <pikhq> Don't think that'd be *notable*, though.
07:11:26 <fizzie> Might be laziness. On an "intermediate results in higher precision" machine and an old-fashioned language, you might also get better results from doing "r * cos theta" and "r * sin theta" separately, before stuffing them into a "struct complex" or whatnot which would potentially involve truncamation.
07:11:50 <fizzie> Like the good old x87's 80-bit floats, a regular source of surprising inequalities.
07:12:14 <pikhq> Floats already produce some surprising inequalities, though.
07:12:49 <zzo38> I think for measuring angles in a computer, neither radians nor degrees is best. Instead maybe you can have something such as 0xC000 for one full turn (using unsigned 16-bit numbers).
07:13:19 -!- monqy has quit (Quit: hello).
07:13:51 <pikhq> zzo38: It really depends on why you're measuring angles.
07:15:18 <fizzie> "Degrees" where 256 == full turn are quite often used too, since when you put those into a byte-sized variable, the wrap-around is in many cases quite "natural", plus 256 elements is still borderline reasonable for a trig table.
07:15:40 -!- zzo38 has quit (Remote host closed the connection).
07:15:41 -!- azaq23 has quit (Quit: Leaving.).
07:16:41 -!- Scientits has joined.
07:18:40 <fizzie> And the grads (gradians) which have the value of 400 as 2*pi (sorry, tau). I think I had a calculator which could be set to grads, for some inexplicable reason.
07:20:04 -!- ais523 has quit (Remote host closed the connection).
07:20:12 <pikhq> *Aaah*, calculators.
07:20:24 <pikhq> Is there any good reason for them?
07:20:48 <fizzie> You can play (multiplayer, with the link cable) Tetris with them in class?
07:20:57 <pikhq> You can do that with a Gameboy.
07:21:06 <fizzie> Yes, but that might be more conspicuous.
07:21:53 <fizzie> Also there's a demo called Anal Party IV for the TI-86, which does sound (well... some) by twiddling the link port registers.
07:22:10 <itidus20> is there any field where humans still actually calculate immediate expressions by hand?
07:22:28 <pikhq> itidus20: Education.
07:22:39 <fizzie> (It's not an especially impressive demo; the graphics hardware in TI-86 only has a simple bitmapped screen, so you can't do anything really clever with it.)
07:22:40 <itidus20> uh.. by immediate expressions i mean.. as in .. resolving an equation to a value
07:22:56 <itidus20> scientits: im a newbie, a duimbass and i don't know math. forgive my use of these words
07:23:12 <Scientits> is my name that intimidating? I don't know much maths
07:23:32 <Scientits> I was going to say shopping, in response to your question
07:23:36 <itidus20> oh you call it maths.. you must not be from the us
07:23:41 <Scientits> because that's apparently what we're best at as a society
07:23:58 <elliott> Scientits: btw this channel is about programming
07:25:25 <itidus20> where i live its also called maths though
07:29:14 -!- Scientits has left ("Leaving").
07:31:47 <itidus20> so what i meant was.. inserting numbers into equations and working out the answers without the aid of a calculator
07:32:00 <itidus20> or..even.. doing it with a calculator
07:32:58 <pikhq> Yes, that's only done in education.
07:33:09 <pikhq> Which *suggests* that it does not belong there.
07:35:46 <elliott> everyone thinks this is an esoterica channel.
07:53:08 <itidus20> a certain tradeoff is occuring to me. in general normal people are not entertained by their own work.
07:53:54 <itidus20> for example, a poet probably doesn't contemplate on their own poems. a writer on their own novels, a director on their own films, a musician on their own music, etc
07:54:08 <elliott> that's just false humbleness
07:54:42 <elliott> I mean sure there may be some people who don't think their work sucks but has absolutely no interest in it
07:54:47 <elliott> but I very much doubt they're in the majority
07:55:29 <itidus20> well, in general it is easier to be entertained I think by something someone else made
07:55:33 <pikhq> Also, most programmers hate everyone *elses* code, and only likes their own.
07:55:49 <itidus20> well programming is something difficult to place in this sense
07:56:04 <elliott> itidus20: that's certainly true
07:56:20 <elliott> but that may be just because the act of creating a work involves so much attention to it that it's like playing a song nine hundred times
07:57:05 <itidus20> This always brings to mind field of dreams for me
07:57:23 <itidus20> about building something for someone else
07:58:33 <itidus20> i want to be my own audience because i can tailor something to my exact needs and i can give myself the most direct feedback
07:58:41 <itidus20> but however... perhaps it is like incest
08:18:27 <itidus20> theres this feeling i get when looking at code of a kind of boredom or ennui knowing it isn't going to do anything exciting, or knowing it doesn't mean anything
08:19:00 <itidus20> im not sure if its the "you should turn on your intellect now" feeling
08:19:19 <itidus20> maybe i am just too inexperienced to "get it"
08:19:50 <itidus20> it was quite late in life afterall that I started to give a damn about politics or legal or economic matters in newspapers
08:19:53 -!- Taneb has quit (Read error: Connection reset by peer).
08:20:14 <itidus20> maybe i just need to let it come
08:23:09 -!- Sgeo|DiesAtBadTi has changed nick to Sgeo.
08:48:26 <augur> http://wellnowwhat.net/transfers/testWaveform.wav
08:50:04 <augur> we're working on making it better tho
08:50:21 <augur> i think part of the problem is the time resolution, giving it a sort of modem-y sound
08:50:49 -!- Taneb has joined.
08:51:35 <augur> "a e i o u" isnt a bad guess
08:51:53 <augur> given the phonetics of "e"
08:52:13 <augur> and the apparent strength of the final [u] in the "o"
09:04:49 -!- ineiros has quit (Read error: Operation timed out).
09:05:08 -!- ineiros has joined.
09:36:12 -!- Zwaarddijk has quit (Ping timeout: 258 seconds).
09:36:15 -!- Zwaarddijk has joined.
10:03:32 -!- copumpkin has quit (Ping timeout: 240 seconds).
10:03:56 -!- copumpkin has joined.
10:31:24 -!- Ycros has left.
10:41:57 -!- Taneb has quit (Ping timeout: 252 seconds).
10:48:38 <oklopol> "<itidus20> a certain tradeoff is occuring to me. in general normal people are not entertained by their own work." <<< i love pretty much all of my own work
10:49:00 <oklopol> i also think all of it sucks ass
10:51:38 <oklopol> "<elliott> but that may be just because the act of creating a work involves so much attention to it that it's like playing a song nine hundred times" <<< i think the majority of people enjoy hearing the same thing over and over (although with other stuff in between repetitions)
10:54:20 -!- FireFly has joined.
10:59:03 <oklopol> well, at least if that thing is pure greatness
11:02:03 -!- Taneb has joined.
11:12:23 <Taneb> Well, my BF Joust evolutiony thing is approaching being ran
11:16:04 <fizzie> I predict it will enslave humanity in approximately 7 hours.
11:16:07 <fizzie> That's what always happens.
11:16:56 <Taneb> I've taken precautions
11:17:02 <Taneb> It's written in Python
11:17:04 <fizzie> That's also what they always say.
11:17:26 <fizzie> Mine was written in Perl, and it still enslaved a couple of humanities.
11:23:18 <Taneb> Also, the evolution process is controlled by me
11:26:25 <itidus20> Ychat just announces the <itidus20> now.. but
11:27:21 <itidus20> i feel there is a disconnect with programming languages and the desired result
11:27:42 <itidus20> (yeah its called the art of programming dumbass)
11:30:23 <itidus20> but uh.. I suspect that things can be better
11:34:46 -!- sebbu has quit (Ping timeout: 260 seconds).
11:36:02 -!- sebbu has joined.
11:36:28 <elliott> `addquote <NihilistDandy> The Russian's emblem was the hammer and sickle, not the fist and other fist
11:36:32 <HackEgo> 521) <NihilistDandy> The Russian's emblem was the hammer and sickle, not the fist and other fist
11:47:16 -!- boily has joined.
11:50:11 <Taneb> Well, now my BF Joust interpreter might be working
12:00:39 <Taneb> Well, I'm running it 256 times
12:00:53 <Taneb> And it had an error
12:01:18 <Taneb> This'd be much easier if Python had until loops
12:01:34 <elliott> Taneb: Have you tried "while not"...
12:04:12 <elliott> `addquote <fizzie> Deewiant: So you... reverse the byte order manually, but then call ntohl too? <Deewiant> fizzie: The host might be big-endian!
12:04:13 <HackEgo> 522) <fizzie> Deewiant: So you... reverse the byte order manually, but then call ntohl too? <Deewiant> fizzie: The host might be big-endian!
12:04:31 <elliott> fizzie: Technically that quote is missing a space, since you apparently still put spaces after line-terminating question marks.
12:10:07 <fizzie> Yes, I can't seem to shake that hobbit.
12:18:58 -!- CakeProphet has joined.
12:19:15 <CakeProphet> I just had to explain to my parents in an argument that you don't actually feel anything with your heart.
12:20:07 <NihilistDandy> `addquote <elliott> God, I sure do hate Apple and their header files that only include the functions they're specified to.
12:20:09 <HackEgo> 523) <elliott> God, I sure do hate Apple and their header files that only include the functions they're specified to.
12:22:44 <elliott> It's like they don't _want_ to be at fault here!
12:24:29 <Taneb> CakeProphet: then they're idiots
12:24:59 <elliott> I feel with my left foot, personally
12:25:00 <Taneb> ...Python just crashed
12:25:45 <oklopol> well there are nerves in the heart right?
12:26:02 <CakeProphet> oklopol: yes, but that's not what they feel /with/
12:26:03 <Taneb> It just dissappeared
12:26:11 <Taneb> I'm on Windows temporarily
12:26:19 <CakeProphet> ...well, it is sort of, but... fuck, you know what I mean.
12:26:24 <oklopol> well i can feel something with my hand
12:26:29 <oklopol> i'm sure this is all your parents meant
12:26:42 <oklopol> that you can also touch stuff with your heart and feel it
12:27:19 <Taneb> Have a friend who was absolutely certain that the capital of the US is in British Columbia
12:27:20 <CakeProphet> I started to explain that you feel emotions in your brain, and they said if they felt things with their head then they could turn them off.
12:27:38 <CakeProphet> so obviously they're just completely ignorant of everything.
12:27:49 <oklopol> maybe they were just fucking with you
12:28:32 <CakeProphet> then this is quite a prank they're pulling. It's a joke they've been pulling my entire life.
12:29:31 <Taneb> I can't be outdone by idiots like your parents!
12:29:59 <Taneb> I'm going to have children, then pretend to be an idiot until they are 21!
12:30:34 <oklopol> i'm going to make my children think i'm dead, and show up as a ghost every now and then
12:30:44 <fizzie> "if they felt things with their head then they could turn them off" -- what?
12:30:55 <oklopol> give them like a bit of lsd so they don't know if it was real or not
12:31:06 <Taneb> I often turn things off with my head
12:31:13 <Taneb> For example, light switchs
12:31:15 <oklopol> yeah it's called telekinesis
12:31:37 <Taneb> Telekinesis? I just call it hitting my head off things
12:31:47 <CakeProphet> apparently everything in your head is under conscious control.
12:32:16 <itidus20> cake: which includes so called unconcious concious?
12:32:50 <elliott> <oklopol> that you can also touch stuff with your heart and feel it
12:32:54 <elliott> i don't think your heart has nerves
12:33:05 <elliott> <Taneb> I can't be outdone by idiots like your parents!
12:33:05 <elliott> <Taneb> I'm going to have children, then pretend to be an idiot until they are 21!
12:33:10 <elliott> Do one better! Pretend to be an idiot until YOU DIE.
12:33:12 <CakeProphet> this is where it became intolerable. "feeling with your heart" was kind of reasonable, because emotions are experience as bodily sensations to an extent, but.. they didn't think that emotions were a result of their "head"
12:33:15 <elliott> And leave NO TRACE of you ever not being an idiot.
12:33:18 <elliott> It will be the ULTIMATE prank.
12:33:21 <oklopol> well prolly not enough that you could actually feel stuff touching it, but i mean if you say bang it with a hammer
12:33:50 <oklopol> "<elliott> Do one better! Pretend to be an idiot until YOU DIE." <<< nah just wait until your kids die
12:33:58 <Taneb> Does it have touch receptors?
12:34:48 <Taneb> I dunno, the liver has light receptors
12:35:13 <oklopol> haven't heard that one, why the fuck?
12:35:15 <CakeProphet> to recognize when you've been disemboweled in the daytime? I could see that as being useful information.
12:35:21 <elliott> Taneb: that's because... ummm... err....
12:35:25 <NihilistDandy> `addquote <elliott> Do one better! Pretend to be an idiot until YOU DIE.
12:35:27 <HackEgo> 524) <elliott> Do one better! Pretend to be an idiot until YOU DIE.
12:35:36 <elliott> NihilistDandy: My, aren't I quotable today.
12:35:51 <Taneb> The liver light receptors were a co-incedence that slowly led to the developement of eyes
12:36:50 <oklopol> god was like lol evolution ur being so dum
12:42:02 <itidus20> i more or less accept that we exist as a kind of mysterious tradeoff
12:42:43 <itidus20> not even that.. i just don't know
12:42:48 <oklopol> i mean i have no idea what that means, but i assume that's your point
12:43:08 <itidus20> theres no real divide between self and other
12:44:25 <oklopol> yep black and white, real and unreal, yin and yang, lemme get my crystal ball
12:44:49 <Taneb> Like, is my left hand part of me?
12:45:00 <Taneb> Is this sofa I'm sitting on?
12:45:15 <itidus20> taneb: having spent far too much time thinking about these things... i have only led myself into depressions
12:45:29 <oklopol> left hand yes, sock only if you just jizzed on it, sofa no except if you just jizzed on it
12:45:49 <itidus20> but it helps to remember that not knowing is not knowing
12:46:34 <itidus20> taneb: a depressed view of existence isn't necessarily a more accurate one
12:47:31 <CakeProphet> what if you jizz on everything? Does everything become one?
12:47:47 <oklopol> have you even READ the bible?
12:48:59 <Taneb> So... God has jizzed on everything?
12:49:12 <oklopol> have you even READ the bible?
12:49:42 <Taneb> Couldn't get into it.
12:49:48 <elliott> `addquote <Taneb> So... God has jizzed on everything? <oklopol> have you even READ the bible?
12:49:50 <HackEgo> 525) <Taneb> So... God has jizzed on everything? <oklopol> have you even READ the bible?
12:51:20 <oklopol> i shall now sleep until the sun goes down
12:54:58 <oklopol> i agree, that's why i always go to sleep when the sun starts sunning rudely
12:56:24 <elliott> oklopol: it's four pm there dude
12:57:22 <oklopol> yes i usually sleep all day
12:57:40 <elliott> nope it's just that the sun has been sunning rudely for quite a while
12:57:45 <elliott> you should try doing it a bit earlier so that you miss all of it
12:58:55 <Taneb> Hire someone to see it for you?
12:59:21 <Taneb> Well, my BF Joust interpreter works
13:01:26 <Taneb> Nope, I've broken it
13:09:08 <tswett> Nälkä, eikä oo ruokaa.
13:12:59 <Taneb> Olen käsine! Ei, olen kaksi käsineet!
13:18:00 <Taneb> Jsem rukavice! Ne, já jsem dva rukavice!
13:18:21 <Taneb> Ben bir eldiven! Hayır, iki eldiven!
13:18:37 <Taneb> Ich bin ein Handschuh! Nein, ich bin zwei Handschuhe!
13:18:48 <Taneb> Why is German so long?
13:19:08 <Taneb> I just want to express my identity as a glove
13:19:20 -!- cheater__ has quit (Ping timeout: 255 seconds).
13:19:25 <Taneb> Then correct myself as my glove identity has duplicated
13:20:23 <tswett> Yeah, in "Ich bin ein", everything but "bin" is redundant, and "Handschuh" is longer than it has to be.
13:21:00 <tswett> It should be, like, "Bin Glof! Nein, bin zwei Glofe!"
13:21:25 <Taneb> We should make a petition to reform the German language
13:21:45 <tswett> Nah, we should all just speak Spanish instead. I like that one.
13:22:01 <Taneb> Soy un guante! No, yo soy dos guantes!
13:22:18 <Taneb> It's not as short as Turkish...
13:22:27 <tswett> What you say if being a glove is your job.
13:24:01 <Taneb> Damn, python.org is down
13:24:28 <Taneb> ...Is there a short way to find the sum of all the numbers in a list in python?
13:24:37 -!- elliott has quit (Read error: Connection reset by peer).
13:24:45 -!- elliott has joined.
13:26:29 <Taneb> In the words of the great Stephen Fry: Wo ist mein Handy?
13:26:44 <CakeProphet> hmmm, my Python knowledge is a little rusty.
13:26:59 <Taneb> Mine is extremely incomplete
13:27:16 <CakeProphet> but it was my first language, so I spent a lot of time mastering it.
13:27:53 <CakeProphet> are you familiar with generator comprehensions?
13:28:42 <CakeProphet> (expr for var in list). if you use square brackets it's a list comprehension which is strictly evaluated, but using () makes a lazy iterator object
13:29:03 <elliott> Taneb: You should use Haskell it's a great thing and also better than Python.
13:29:06 <CakeProphet> so for large iterations, generators are preferable.
13:29:09 <elliott> Opinions hour with Elliott.
13:29:19 <elliott> CakeProphet: Only true if you're going to iterate over it afterwards
13:29:27 <Taneb> I'm better at Python than I am at Haskell
13:29:44 <Taneb> Actually, I'm awful at Haskell
13:29:52 <elliott> reversed([x for y in z]) shouldn't be much slower than reversed(x for y in z)
13:29:55 <elliott> Although the latter is nicer
13:30:10 <elliott> Taneb: It's called self-improvement. :p
13:30:11 <CakeProphet> elliott: well... yes. I was talking about iterating, not representing data.
13:31:34 <CakeProphet> elliott: well reversed can't take an iterator at all.
13:31:46 <elliott> It'll be in itertools somewhere
13:33:08 <CakeProphet> also the /length/ of the list is important. Which is why I say that for large iterations, generators are much more space efficient. For small lists/iterations, it's not going to be a noticable difference.
13:33:57 <elliott> You'll probably rarely be able to tell at all what with how slow Python is
13:34:55 <CakeProphet> I've just made it a habit to use generators when I do not need to store the values later because they're generally more efficient for that purpose.
13:35:29 <CakeProphet> for example: using xrange instead of range (though I believe in Python 3 range produces an iterator)
13:36:20 <CakeProphet> I've always found worrying about efficiency in languages like Perl and Python to be somewhat ironic.
13:37:29 <elliott> You can worry about algorithmic efficiency, but microoptimising is basically completely pointless
13:37:32 <CakeProphet> I suppose being concerned about how performance /scales/ is reasonable, but trying to get the fastest runtimes would be silly.
13:37:56 <elliott> Now in Haskell, you can microoptimise without significantly changing the global structure of your code, if you need it... ;D
13:38:05 <elliott> I can twist literally anything into an argument for why Haskell is the best, try me.
13:38:20 <elliott> (Says the guy who spends most of his Haskell-coding time groaning about its glaring imperfections.)
13:39:08 <CakeProphet> Python's C interface is pretty good. The "Great Language Shootout" benchmarks have the lowest Python-to-C ratio at 1.02
13:39:18 <CakeProphet> obviously these programs cheat and write everything in C..
13:39:56 <CakeProphet> but it shows that there's not much overhead to this approach when micro-optimizing computationally intense sections of code.
13:42:13 <CakeProphet> my main complaint with Python is that it has poor functional programming support in libraries and syntax.
13:44:01 <CakeProphet> I believe I suggested improving the functools module on the Python mailing list one time, including things such as id and compose functions. It wasn't taken seriously.
13:44:49 <CakeProphet> at least it has a partial application constructor thing.
13:45:38 <CakeProphet> but I think it would be much cleaner to write a function decorator that supported partial application directly in the __call__ method. Because partial(f, a, b, c) is uglier than just f(a,b)
13:47:40 <CakeProphet> ophet(+i)] [4:Freenode/#esoteric(+cn)] [Act: 3,5,6]
13:47:56 <CakeProphet> hand must have slipped and did something weird.
13:48:36 <CakeProphet> it would be a func and pretty easy little module
13:50:14 <CakeProphet> basically you would create a class called curriable, that took a function as its constructor argument, and defines a __call__ method that returns a partial application when every mandatory argument to the original function is not given.
13:51:00 <CakeProphet> you'd have to use the inspect module to grab the functions signature information and stuff, so that you can know when to partially apply and when to return the normal result.
13:51:32 <CakeProphet> and functools, so that you could borrowed the partial class
13:52:37 <CakeProphet> okay if you import functools, you get a class called partial. Partial is constructed with a function and some arguments to that function.
13:53:20 <CakeProphet> it then returns a callable object that takes the rest of the functions arguments, and then gives you the result. This is called partial application, where you supply some of the functions arguments at one point in execution, and then supply the rest later.
13:54:12 <CakeProphet> the problem is that this does not occur automatically, you have to construct the partial object manually: thus, partial(f,a,b) instead of just f(a,b)
13:54:42 <CakeProphet> you could create a class called curriable, that wraps over a function, and implements a __call__ method that does the partial application semantics when not enough arguments are supplied.
13:55:31 <CakeProphet> to determine if this is the case, you could use the inspect module. Which has a function (can't remember the name) that returns information about a functions parameters.
13:55:42 <Taneb> So, if enough arguments are supplied, it calls the function as normal, otherwise it returns the partial?
13:55:57 -!- elliott has quit (Read error: Connection reset by peer).
13:56:01 -!- elliott_ has joined.
13:56:04 <CakeProphet> and then, using Pythons decorate syntax, you could define functions that are automatically curriable
13:57:16 <CakeProphet> @d; def func(): ... === def temp(): ...; func = d(temp)
13:57:42 <CakeProphet> ; is linebreak since this is Python and Python is stupid.
13:58:49 <CakeProphet> basically the @whatever is just a sugary way to wrap a function inside another object, so that you can implement special call semantics or whatever you want to do really.
13:59:06 <CakeProphet> you could have a wrapper that logs function calls, for example.
13:59:14 -!- cheater_ has joined.
13:59:55 <CakeProphet> or provides some metadata. or allows you to change the definition of the function at runtime (I think I've actually done this before...)
14:04:20 <CakeProphet> also you write class methods (aka static methods) in Python by putting @classmethod above the method definition.
14:04:57 <CakeProphet> in Java I like to call static methods "functions"
14:05:15 <CakeProphet> since this is basically when they are used.
14:06:38 -!- BeholdMyGlory has joined.
14:07:04 <CakeProphet> er, actually Python has staticmethod and classmethod. classmethod makes the method take the class as its implicit argument, while staticmethod has no implicit argument at all.
14:11:35 <cheater_> does italian have separate singular and multiple "you"?
14:11:36 <Taneb> So, I'm making something that takes a function and some parameters, and returns a function, which is the same function as before but with the parameters hardcoded?
14:12:08 <CakeProphet> Taneb: well, you could, but that's already been done for you if you import functools and then type functools.partial
14:12:39 <Taneb> And if there are enough parameters, the function is called?
14:12:58 <CakeProphet> what you would be making is a thing (aka class) that takes a function and produces a function that will either partial apply or completely apply based on the number of arguments.
14:13:31 <CakeProphet> actually it wouldn't be producing a function directly, because you can define function-like objects by implementing the __call__ method.
14:13:42 <CakeProphet> which is called whenever your object is called as though it were a function.
14:13:52 <Taneb> So, if I had a kinda boring function called total that took two arguments and returned their sum
14:14:11 <Taneb> whatever(total,3) would return a function that added three to things
14:14:22 <lambdabot> [4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30...
14:14:22 <Taneb> but whatever(total,3,7) would return 10?
14:14:40 <CakeProphet> whatever(total)(3) would return the function that adds three to things
14:14:40 <Taneb> A function that returns ten?
14:15:13 <CakeProphet> and then you just use @whatever above the def for total
14:16:10 <CakeProphet> whatever(total) just augments total so that it automatically partially applies when (get ready for it) applicable.
14:16:56 <CakeProphet> it could do this by either returning a function, or by being a class that implements a __call__ method
14:17:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:18:10 <CakeProphet> this is the semantics Haskell does by default. (3+) is a function that adds three to things.
14:18:25 <CakeProphet> but Python can do this as well if you define a function wrapper for it.
14:20:10 -!- oklopol has quit (Ping timeout: 250 seconds).
14:20:54 <CakeProphet> then you could have: import operator, itertools; add = whatever(operator.add); map(add(3), itertools.count(0))
14:21:14 <CakeProphet> which is roughly equivalent to the Haskell code map (+3) [0..]
14:21:33 <CakeProphet> except it's wordier because you have to import some boilerplate to get the desired semantics.
14:23:41 -!- cheater_ has quit (Ping timeout: 255 seconds).
14:24:50 <Taneb> Apparently, built-in functions don't count as functions
14:25:08 <Taneb> TypeError: <built-in function len> is not a Python function
14:25:27 <Taneb> inspect.getfullargspec(len)
14:25:47 <CakeProphet> inspect can't get the argument information from a built-in function.
14:27:12 -!- oklopol has joined.
14:29:20 <CakeProphet> in that case you can have a special-case for built-in functions where you catch a TypeError, test if it was a built-in, and then see if the exception message matches func_name + "() takes exactly .*? arguments? (\d+ given)"
14:32:18 -!- oklopol has quit (Ping timeout: 250 seconds).
14:36:53 -!- cheater_ has joined.
14:37:26 <CakeProphet> Taneb: but in the meantime you could just ignore built-ins
14:43:24 -!- copumpkin has joined.
14:44:40 <CakeProphet> also when returning the partial object you may want to wrap that object within your class as well.
14:44:52 <CakeProphet> so that the partially applied function can be partially applied further.
14:45:38 <CakeProphet> well, bad example. whatever(three_argument_function)(a)(b)(c)
14:46:58 <Taneb> So it's... weirdly recursive?
14:47:16 <CakeProphet> it just returns instances of the same class when called.
14:47:44 <CakeProphet> so that the functionally is contagious, so to speak.
14:48:14 <lambdabot> Prelude curry :: ((a, b) -> c) -> a -> b -> c
14:48:14 <lambdabot> Data.Tuple curry :: ((a, b) -> c) -> a -> b -> c
14:48:14 <lambdabot> Prelude flip :: (a -> b -> c) -> b -> a -> c
14:48:16 <lambdabot> Text.Regex.Base.RegexLike makeRegexOpts :: RegexMaker regex compOpt execOpt source => compOpt -> execOpt -> source -> regex
14:48:17 <lambdabot> Network.BufferType buf_append :: BufferOp a -> a -> a -> a
14:48:17 <lambdabot> Network.BufferType buf_snoc :: BufferOp a -> a -> Word8 -> a
14:48:55 <CakeProphet> > let if' a b c = if a then b else c in (if') (True) (2) (3)
14:49:05 -!- oklopol has joined.
14:50:19 <CakeProphet> demonstrating how partial application works in Haskell, called currying in Haskell. You can curry the curried function.
14:50:53 -!- oklofok has joined.
14:53:31 -!- oklopol has quit (Ping timeout: 252 seconds).
14:53:46 <CakeProphet> currying is useful because it allows you to construct more specific functions from general functions.
14:55:11 -!- oklofok has quit (Ping timeout: 240 seconds).
14:55:47 <CakeProphet> for example const in Haskell lets you create functions that always return a constant value.
14:56:44 <CakeProphet> in Python const would look like: @curriable; def const(a,b): return a
14:59:21 <Taneb> def makeconst(a): return lambda b: a
15:01:25 <CakeProphet> def makeconst(a, b=NotImplemented): return ((lambda b: a) if b is NotImplemented else a)
15:02:50 <CakeProphet> I used NotImplemented instead of None because there might be situations where you want to use None for b
15:04:28 <CakeProphet> heh, NotImplementedType is a pretty fancy type.
15:04:36 <CakeProphet> it's got a __repr__ method and nothing else.
15:05:19 -!- oklopol has joined.
15:05:26 <CakeProphet> NoneType only defined __repr__ and __hash__. hmmm, interesting, so NotImplemented cannot be used in a dictionary.
15:06:24 <CakeProphet> oh wait, yes it can, I think it just inherits __hash__ from object.
15:07:27 <CakeProphet> Python's object hierarchy propagates a wealthy family history of opioid use.
15:09:35 -!- oklopol has quit (Ping timeout: 255 seconds).
15:09:47 -!- oklopol has joined.
15:10:39 -!- oklofok has joined.
15:14:05 -!- oklopol has quit (Ping timeout: 255 seconds).
15:17:39 -!- oklofok has quit (Ping timeout: 264 seconds).
15:18:30 -!- oklopol has joined.
15:54:38 <elliott_> `addquote <elliott_> Vorpal: Won't be slower than Python ;-) <Vorpal> elliott_, yeah but that is like saying a T-Ford going down a hill won't be slower than a bicycle uphill on a bumpy road :P
15:54:39 <HackEgo> 526) <elliott_> Vorpal: Won't be slower than Python ;-) <Vorpal> elliott_, yeah but that is like saying a T-Ford going down a hill won't be slower than a bicycle uphill on a bumpy road :P
15:56:55 <Vorpal> (for reference, he was talking about a program written in C...)
16:35:03 -!- Taneb has quit (Ping timeout: 252 seconds).
16:37:49 -!- zzo38 has joined.
16:38:29 -!- Taneb has joined.
16:49:15 -!- pikhq has quit (Ping timeout: 246 seconds).
16:49:20 -!- pikhq has joined.
16:56:00 -!- MigoMipo has joined.
17:07:21 <Taneb> Oh, you don't count, I was just talking to you
17:17:34 <Taneb> I'm trying to implement Numberwang in C++
17:17:46 <Taneb> I haven't even touched C++ in years
17:17:49 -!- boily has quit (Quit: WeeChat 0.3.5).
17:20:27 <Taneb> Oh, I won't bother
17:28:17 <zzo38> Even so far my DVI optimization program does a better job than TeX although I am still improving it. You can also suggest other things with it, including optimizations I may have missed, and so on.
17:28:36 <Taneb> I'll do it in JavaScript instead
17:38:58 -!- zzo38 has quit (Remote host closed the connection).
17:47:17 -!- elliott_ has quit (Read error: Connection reset by peer).
17:51:41 -!- azaq23 has joined.
18:01:01 -!- elliott has joined.
18:13:38 -!- monqy has joined.
18:18:28 -!- pikhq_ has joined.
18:19:21 -!- pikhq has quit (Ping timeout: 258 seconds).
18:25:06 <Taneb> Does anyone know how to convert a string like "4.4" to a number in Javascript?
18:28:56 <Taneb> parseFloat works, though!
18:32:07 <Taneb> Okay, that's a bit weird/
18:32:23 <Taneb> In Chrome, at least, NaN is not equal to itself...
18:32:45 <Taneb> But it is not equal to itself
18:33:55 <pikhq_> Yes, that's by definition.
18:34:48 <Taneb> Does the definition recommend a way to test for NaN-ness?
18:35:23 <monqy> there's probably something like an isNaN function
18:35:36 <fizzie> (The lowercase 'n' was a typo.)
18:37:33 <elliott> <Taneb> parseFloat works, though!
18:37:36 <elliott> Make sure to include the ten.
18:37:41 <elliott> Or 0 at the start = different parsing.
18:37:54 <Taneb> Really? How interesting
18:38:01 <elliott> It's because it thinks it's octal
18:38:06 <elliott> Too smart for its own good
18:38:43 <Taneb> I'm not sure if parseFloat does that
18:39:01 <Taneb> parseFloat("019") returns 10
18:39:08 <elliott> Still wouldn't trust it :P
18:39:17 <Taneb> and parseFloat("0x19") returns 0
18:47:14 <Taneb> I've just had an idea for an Esolang
18:47:31 <Taneb> One consisting entirely of error handling
18:48:28 <Taneb> And everything that isn't error handling causes an error
18:48:37 <Taneb> Which is then handled
18:50:00 <elliott> shades of http://esolangs.org/wiki/Reaper
18:51:24 -!- Cheery has joined.
18:51:37 <Taneb> Not quite what I had in mind
18:51:49 <Cheery> hi.. #compilers is rather quiet channel.. so I came to ask this here..
18:52:42 <Cheery> is it unadvisable somehow to insert spillnodes early and reduce them out later if they appear to become unnecessary?
18:53:04 <olsner> you're building a spillnode-based esolang?
18:53:42 <Taneb> (What's a spillnode?)
18:54:18 <Cheery> oh. i forgot to provide context.
18:54:47 <Cheery> I attempt to output machine code from intermediate language of some sort.
18:55:11 <Cheery> that is.. compile IR into target machine code :)
18:56:42 <Cheery> once I take much as possible away from it.. it becomes mostly a problem of just selecting instructions and mapping target machine registers for variables.
18:58:12 <elliott> `addquote <Taneb> This staircase is very good for correcting people's opininons about communism
18:58:13 <HackEgo> 527) <Taneb> This staircase is very good for correcting people's opininons about communism
18:59:57 <Cheery> Taneb: spillnode is a node that translates into load or store whenever live variable gets spilled into memory.
19:07:02 -!- atehwa has quit (Ping timeout: 250 seconds).
19:31:41 -!- oerjan has joined.
19:33:51 -!- Taneb has quit (Read error: Connection reset by peer).
19:35:46 -!- elliott_ has joined.
19:35:47 -!- elliott has quit (Read error: Connection reset by peer).
19:38:41 -!- cheater_ has quit (Ping timeout: 255 seconds).
19:40:09 <oerjan> <itidus20> well.. mathematical theory probably hasn't explored the implication of a negative function
19:40:30 <oerjan> um it probably has, in several different variants. that's the way it usually goes.
19:40:51 <pikhq_> oerjan: I discussed one such way not long after.
19:40:52 <oerjan> but first you have to define what kind of negative function you _mean_ by the word
19:40:56 <pikhq_> Well, more "touched on".
19:41:36 <pikhq_> (one of the obvious ways of doing a "negative function" is, of course, a Church pair of a Church boolean and a Church numeral)
19:43:13 <pikhq_> That... Is the thing I least expected.
19:43:51 <Sgeo> > (sqrt-3.14159) 3.14159
19:44:06 <Sgeo> > (sqrt-3.14159) 4
19:44:49 <oerjan> lambdabot has instances Num b => Num (a -> b), Floating b => Floating (a -> b) etc., which simply applies the usual numerical methods to the result
19:45:42 <oerjan> this is fairly common mathematical usage e.g. when considering vector spaces of functions
19:46:28 <lambdabot> Not in scope: `add'Not in scope: `add'
19:46:34 <pikhq_> oerjan: Okay, that'd do it.
19:46:44 <olsner> > let add = (+) in (add 1 * add 2) 1
19:47:07 <pikhq_> Also explain why the type error on "sqrt -3.14159" was a missing Show instance, not a missing Num instance. :)
19:47:44 <oerjan> or rather, an overlapping instance - there are two conflicting modules defining Show for functions
19:47:55 <lambdabot> No instance for (GHC.Num.Num GHC.Base.String)
19:48:14 <pikhq_> elliott_: Thought you might like to know that Linux 3.0 is going to be released "soon".
19:48:20 <oerjan> previously the function instance was similar to that
19:49:36 <pikhq_> elliott_: A clone of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git should be 100% usable; unless someone finds a major bug, that's getting released.
19:49:49 <oerjan> pikhq_: lambdabot in private tells that the instances are from the smallcheck and vector-space packages
19:51:07 <oerjan> so sometimes the inability to selectively import instances in haskell gets rather annoying
19:51:30 -!- cheater_ has joined.
19:52:20 -!- GuestIceKovu has joined.
19:53:25 -!- augur has quit (Remote host closed the connection).
19:53:32 -!- Slereah has quit (Ping timeout: 240 seconds).
19:53:56 <oerjan> i believe they have done some work to ensure lambdabot no longer has overlapping name definitions (e.g. it no longer imports pure from both Control.Arrow and Control.Applicative), but the instances are impossible to get rid of with import statements
19:54:05 <lambdabot> forall a (f :: * -> *). (Applicative f) => a -> f a
19:54:20 <lambdabot> Not in scope: `Control.Arrow.pure'
19:54:27 <lambdabot> Control.Applicative pure :: Applicative f => a -> f a
19:54:49 <oerjan> hm it is possible they simply removed pure from Arrow altogether
19:55:02 <oerjan> (it was just a synonym of arr anyhow)
19:56:00 <oerjan> oklopol: it got annoying whenever someone wanted to import both Control.Arrow and Control.Applicative
19:56:18 <oerjan> to have two different functions named the same thing
19:58:06 <oerjan> <fizzie> How was it with lambdabot, how does it have all the modules (all of them) available by default?
19:58:39 <oerjan> i believe > runs in the environment of a module named L, which contains a heap of import statements
19:58:48 <oerjan> but certainly not _all_...
20:00:06 -!- Taneb has joined.
20:01:28 <oerjan> <fizzie> > magnitude $ ((-pi) :+ 0) - (mkPolar pi pi)
20:01:46 <oerjan> darn so apparently they didn't get rid of all ambiguity
20:02:44 <oerjan> that vectorspace package strikes again, redefining magnitude
20:02:55 <olsner> oerjan: didn't arrow become a subclass of Category, with pure replaced by something from Category?
20:05:46 <oerjan> this is stupid, as i believe it should be easy to get ghc to give error messages if you do that kind of ambiguity
20:05:54 -!- pumpkin has joined.
20:07:00 <oerjan> !haskell module Main(Control.Monad, liftM) where import qualified Control.Monad; liftM = 3.14; main = print liftM
20:07:29 <oerjan> !haskell module Main(Control.Monad, liftM) where import qualified Control.Monad(*); liftM = 3.14; main = print liftM
20:07:31 -!- copumpkin has quit (Ping timeout: 258 seconds).
20:07:43 <Sgeo> zhttp://www.youtube.com/watch?v=k91u6dtwYm8
20:07:48 <oerjan> !haskell module Main(Control.Monad(*), liftM) where import qualified Control.Monad; liftM = 3.14; main = print liftM
20:08:06 <oerjan> huh what _is_ the syntax for that...
20:09:50 <olsner> module Foo (baz,module Bar) I think
20:10:06 <oerjan> !haskell module Main(module Control.Monad, liftM) where import qualified Control.Monad; liftM = 3.14; main = print liftM
20:10:06 <olsner> (if Foo also wants to export a local function baz)
20:11:05 <oerjan> apparently it doesn't perform the check in that case
20:11:16 <oerjan> maybe it has to be compiled, not just loaded
20:11:35 <olsner> exporting two different symbols with the same name is apparently not an error :)
20:11:40 <olsner> maybe Main is special though
20:12:58 <oerjan> the report is pretty clear that this kind of thing should be a clash
20:22:28 <pikhq_> elliott_: I should do something about your aimake concept.
20:22:49 <pikhq_> I'm not sure how to do it, but C builds should not be harder than "build foo.c"
20:23:52 <oerjan> @hoogle Complex a -> a
20:23:53 <lambdabot> Data.Complex imagPart :: RealFloat a => Complex a -> a
20:23:54 <lambdabot> Data.Complex magnitude :: RealFloat a => Complex a -> a
20:23:54 <lambdabot> Data.Complex phase :: RealFloat a => Complex a -> a
20:24:01 <pikhq_> The *obvious* method involves adding annotations to the source, but that feels a bit like a copout (not to mention hard to not fuck up).
20:24:06 <oerjan> > realPart (0 :+ undefined)
20:24:26 <oerjan> pikhq_: apparently Complex is strict, so no laziness available
20:26:06 <pikhq_> oerjan: So mkPolar is defined the way it is for strictness reasons? "mkPolar r theta = r * cis theta" would be less strict than "mkPolar r theta = r * cos theta :+ r * sin theta", presuming a lazy *.
20:27:16 <oerjan> pikhq_: um no i was implying that since Complex is a strict type, that _shouldn't_ be the case
20:27:29 <pikhq_> So, mkPolar is defined the way it is for no good reason.
20:28:11 <oerjan> well one reason is for stupid compilers which would otherwise create a temporary value
20:29:24 <oerjan> presumably parts of the haskell report predates clever compilers by quite a lot
20:29:49 <pikhq_> Uh, Data.Complex isn't in the Report. :)
20:31:08 <pikhq_> elliott_: On a scale of 1 to 10, how bad of an idea is adding notations to C source to make things happen somewhat sanely?
20:32:24 -!- pumpkin has changed nick to copumpkin.
20:33:34 <pikhq_> Hmm. *Regardless*, it'd probably need to have a full C preprocessor. :/
20:33:41 <pikhq_> Well, more like 3/4ths of one.
20:33:55 -!- augur has joined.
20:37:46 <oerjan> <Taneb> Also, the evolution process is controlled by me
20:37:57 <pikhq_> elliott_: You. Insight. :P
20:38:16 <oerjan> clearly someone hasn't read yudkowski, or elliott_'s (?) rants about it
20:38:38 * elliott_ has not ranted on any AI topic to his knowledge
20:38:45 <oerjan> elliott_: yay i got closer than expected!
20:38:46 <elliott_> maybe argued, but not monologued
20:39:02 <elliott_> pikhq_: but i would agree with him, seeing as this is bf joust and the programs are kilobytes at most. :p
20:39:07 <Taneb> Nah, just I haven't got around to automating that yet
20:39:18 <pikhq_> elliott_: Relevant insight.
20:40:04 <oerjan> Taneb: no i mean, yudkowsky would say that thinking you control the AI would be no match against a _real_ superhuman AI
20:41:38 <oerjan> also, i was somewhat joking
20:42:39 <Taneb> I really need to do rather a lot of optimization, maybe a language change.
20:42:59 <Taneb> It takes about 5 minutes to evaluate a generation
20:43:22 <Taneb> I could probably get that down to two fairly easily
20:45:00 <pikhq_> Probably the single biggest problem is that there is no *way* to tell from just C source whether something is intended as a library or a program.
20:45:40 <Taneb> Unless it has a comment saying "THIS IS A LIBRARY"
20:45:48 <oerjan> <elliott> `addquote <NihilistDandy> The Russian's emblem was the hammer and sickle, not the fist and other fist
20:45:56 <oerjan> http://theredhunter.com/Fateh%20logo.gif
20:46:05 <pikhq_> Followed closely by how it's utterly impossible in the general case to discover what should be linked into that.
20:46:38 <pikhq_> Though it's actually pretty easy if you assume that each header file corresponds to 0 or 1 C files that should be linked.
20:47:38 <pikhq_> *With* that assumption, you can just about do it by grepping for #include statements.
20:51:32 <elliott_> oerjan: there's some good quotes later on :D
20:56:26 <Taneb> Why does my brother have to have a friend with almost exactly the same name as him?
20:57:33 <olsner> maybe he just likes people with similar names to his
20:58:23 <Taneb> Of course, that comment was a) rhetorical, b) completely irrelevant, c) fundamentally useless, d) kinda stupid, and e)
20:58:30 <Taneb> I couldn't think of an e
20:59:43 <oerjan> sadly it's not _the_ e
21:00:14 <olsner> > exp 1 -- is this the e?
21:00:40 <Taneb> To an appropriate number of decimal places
21:00:57 <lambdabot> 2.7182818284590452353602874713526624977572
21:01:05 <olsner> yes, I think it was a bit few to be truly appropriate
21:02:22 <Taneb> I've got a friend who makes a quote list similar to HackEgo's... but NOT ON IRC!
21:02:24 <oerjan> <cheater_> does italian have separate singular and multiple "you"?
21:02:42 <oerjan> also a polite one, lei
21:03:03 <Taneb> This is the same friend who thought Washington DC was in British Columbia, managed to set a pan of water on fire, and whom I tried to teach Lambda Calculus
21:03:19 <olsner> "managed to set a pan of water on fire", wow
21:03:32 <Taneb> Nobody's sure how she did it
21:03:40 <oerjan> Taneb: are you sure he hasn't escaped from a sitcom somewhere?
21:03:55 <oerjan> or... are you sure you're not living in one
21:04:08 <Taneb> She's female. In sitcoms it's generally the males who are idiots
21:05:46 <oerjan> well i recall at least one exception (from cheers, although there were male idiots too)
21:06:03 <oerjan> oh and friends had one
21:06:14 -!- pumpkin has joined.
21:06:16 * oerjan is not entirely up-to-date with modern sitcoms
21:06:21 <Taneb> And if this were a sitcom, she and I would have more unresolved sexual tension
21:06:36 <elliott_> Maybe you're just in a really badly-written sitcom
21:06:45 <oerjan> for a value of not entirely approximately equal to "entirely not"
21:06:49 <Taneb> BUT THERE'S NO LAUGH TRACKS
21:07:10 <Taneb> BUT I'VE GOT AN iPOD!
21:07:14 <oklopol> my mom used to boil rags to clean them, and once accidentally left one to boil for a few days. nothing happened.
21:07:53 -!- copumpkin has quit (Ping timeout: 252 seconds).
21:08:06 * oerjan ponders a civilization which would find ipods hilariously anachronistically futuristic
21:08:40 <Taneb> There was one of them in Doctor Who, I think
21:08:44 <oerjan> (see: Zeerust on tvtropes)
21:08:47 <Taneb> One of the Eccleston episodes
21:08:59 <Taneb> I'm avoiding TVTropes
21:09:06 <Taneb> Because my system is perfect
21:09:11 -!- Cheery has quit (Quit: Lost terminal).
21:09:18 <oerjan> hey i was being nice and not giving a link
21:09:23 <olsner> oerjan: hilariously anachronistically futuristic? what's that even mean?
21:09:38 <oerjan> olsner: like the jetsons
21:09:41 <oklopol> remove anachronistically and you'll get it
21:10:28 <olsner> oerjan: so, hmm... like the future looked a long time ago?
21:10:34 <Taneb> My biology teacher: I'll do the teachering.
21:10:36 <oerjan> olsner: as i said, zeerust
21:10:53 <oklopol> yeah maybe not hilariously futuristic, more like futuristic in a hilarious way
21:11:09 <pikhq_> Well. I at least have a quick, stupid proof-of-concept.
21:11:21 <pikhq_> http://sprunge.us/KXSb
21:12:07 <Taneb> I'm being kicked off to go to bed now
21:12:20 -!- Taneb has quit (Read error: Connection reset by peer).
21:12:32 <pikhq_> Given a main.c, it attempts to search for all needed source files.
21:12:41 <oerjan> poor Taneb, he would fit in so well here if he could just get a messed up sleep schedule
21:12:54 <oklopol> oerjan: what was your conclusion?
21:13:36 <oerjan> oh. i think i just pondered pondering.
21:13:51 <oklopol> i have to do some stuff ->
21:14:07 <elliott_> <oerjan> poor Taneb, he would fit in so well here if he could just get a messed up sleep schedule
21:14:38 <oklopol> i have a pretty nice sleepy time distribution
21:21:54 -!- pumpkin has changed nick to copumpkin.
21:26:53 <oerjan> also regarding tvtropes, http://www.mezzacotta.net/postcard/?comic=926
21:27:12 <oerjan> (yes, there is no picture)
21:35:06 <oerjan> today's darths & droids is particularly hilarious, i think
21:53:56 <pikhq_> So, my scan script, though naive, works nicely for things that don't try to break it.
22:17:54 -!- Wamanuz2 has joined.
22:18:24 -!- Wamanuz2 has quit (Remote host closed the connection).
22:20:31 -!- Wamanuz has quit (Ping timeout: 258 seconds).
22:21:33 -!- Wamanuz has joined.
22:26:42 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:27:49 -!- elliott_ has quit (Ping timeout: 252 seconds).
22:29:32 -!- Sgeo_ has joined.
22:29:44 <Sgeo_> I obviously have a good Internet connection
22:30:42 -!- Sgeo has quit (Ping timeout: 250 seconds).
22:34:20 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:34:21 -!- CakeProphet has quit (Ping timeout: 260 seconds).
22:35:45 -!- CakeProphet has joined.
22:35:46 -!- CakeProphet has quit (Changing host).
22:35:46 -!- CakeProphet has joined.
22:39:19 -!- Sgeo_ has changed nick to Sgeo.
22:49:54 -!- copumpkin has joined.
22:51:36 -!- pikhq_ has quit (Read error: Operation timed out).
22:54:25 -!- pikhq has joined.
23:03:07 <pikhq> Well, now I have a simple compiler wrapper.
23:03:16 -!- pumpkin has joined.
23:03:19 <pikhq> http://sprunge.us/AXBj
23:03:46 <pikhq> Perfect, no; better, yes.
23:04:48 -!- augur has quit (Remote host closed the connection).
23:05:19 -!- pumpkin has changed nick to copumpkin_.
23:06:23 -!- copumpkin has quit (Ping timeout: 276 seconds).
23:12:59 -!- copumpkin has joined.
23:15:17 -!- copumpkin_ has quit (Ping timeout: 246 seconds).
23:30:36 <pikhq> http://sprunge.us/CQWO Added some annotations to make up for my laziness...
23:32:33 <pikhq> XD, minor bug. Anyways.
23:47:51 <oerjan> Gregor: eso.codu.org appears not to be loading
23:48:35 <oerjan> or http://www.codu.org/eso/ork/exa/orkipple.ork
23:49:12 <oerjan> oh wait that one is also in the file archive
23:49:28 <oerjan> Gregor: but still, broken wiki links, i hope it's temporary...
23:49:32 -!- augur has joined.
23:51:26 <Gregor> oerjan Uhh, E_WORKSFORME
23:53:21 <oerjan> Gregor: there are some doubts about Ork's TC-ness, see Talk: page
23:56:20 <oerjan> for the brainfuck interpreter, the problem would be that it's not unbounded in either cell number (explicitly) or cell size (because they're doubles, per the spec)
23:56:43 <oerjan> for the kipple interpreter, the problem would be that i cannot make heads or tails of it
00:00:34 <oerjan> oh hm you limit kipple stacks to length 32256 iiuc
00:01:07 <oerjan> also it's spelled "instantiate" ;D
00:03:30 <oerjan> Gregor: can ORK do recursive objects, and so e.g. linked lists?
00:03:43 <Gregor> oerjan: I don't recall :)
00:08:51 -!- FireFly has quit (Quit: swatted to death).
00:30:44 <Sgeo> http://www.reddit.com/r/DebateReligion/stylesheet.css huh, they're actually interfering with RES
00:32:54 <Sgeo> Gah, there's a lot of vitriol in that subreddit
00:35:17 <Gregor> DebateReligion -> "there's a lot of vitriol in that subreddit" -> duh
00:47:58 <Sgeo> That's a little creepy
00:48:03 <Sgeo> /** 'Force' users to use the subreddit style **/
01:17:34 <Sgeo> lol, told someone I was playing with Minecraft, he thought I meant minesweeper
01:18:05 <Sgeo> Oh, or maybe he was joking
01:22:44 <oerjan> _someone_ probably made minesweeper in minecraft
01:24:26 <pikhq> Yes, someone actually did.
01:52:36 -!- copumpkin has quit (Ping timeout: 240 seconds).
01:53:01 -!- copumpkin has joined.
02:00:08 -!- CakeProphet has quit (Ping timeout: 276 seconds).
02:02:05 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:15:07 -!- cheater_ has joined.
02:21:04 -!- pikhq_ has joined.
02:24:17 -!- pikhq has quit (Ping timeout: 258 seconds).
03:21:17 -!- azaq23 has quit (Ping timeout: 255 seconds).
03:38:17 -!- azaq23 has joined.
03:46:08 -!- BeholdMyGlory has quit (Remote host closed the connection).
04:08:28 -!- quintopia has quit (Read error: Operation timed out).
04:08:36 -!- quintopia has joined.
04:09:21 <Lymee> !python sum(['aaa','bbb','ccc'])
04:09:22 <EgoBot> Traceback (most recent call last):
04:09:41 <Lymee> Is there any reason why sum doesn't work on any data type that defines '+'?
04:12:51 <Lymee> With the possible condition that it's order is not guaranteed if it's not cumulative, not associative or has side effects?
05:08:54 -!- atehwa has joined.
05:16:35 -!- zzo38 has joined.
05:17:05 <zzo38> I played D&D game today. Can you guess the number of each of our experience points (me and my brother) (including both individual and group XP)?
05:18:51 <Sgeo> Yes. Do I have any decent chance of guessing correctly? No.
05:22:17 <zzo38> No. More than 69. Note we have experience level 20 currently
05:22:42 <zzo38> And that it is not enough to go to level 21
05:24:18 <pikhq_> zzo38: 19,0000 experience?
05:24:44 <zzo38> That is the starting experience for level 20. (Also the comma doesn't belong there)
05:24:48 <pikhq_> Erm. 190,000, and why the hell did I do Japanese/Chinese grouping for that.
05:25:14 <zzo38> I meant the amount gained, not the total amount.
05:25:17 <pikhq_> Though I wonder if that's actually doable in a single encounter.
05:26:16 <zzo38> We don't use encounter experience anyways; the DM assigns XP based on other things, including encounters and other stuff
05:27:06 <zzo38> (But not the encounter experience table used in the book; instead XP is assigned based on what is achieved, meaning if an encounter is achieved then that counts too but based on achievements rather than encounter levels)
05:27:18 <pikhq_> I suppose if you somehow stumbled across a vorpal sword at level one and then killed a deity, you could hit level 20.
05:27:38 <zzo38> pikhq_: No. Because we also use the rule no more than 1 level up per session.
05:28:05 <zzo38> And like I said we use achievement-based XP, not encounter-based XP. I prefer these differences in rules actually.
05:28:13 <coppro> pikhq_: standard D&D rule is max 1 level per encounter
05:28:19 <quintopia> what if you decide to play twice as long one day
05:28:32 <quintopia> you have to arbitrarily break into smaller sessions?
05:28:35 <zzo38> quintopia: Then a session break is added at one point, when XP is counted
05:29:25 <zzo38> We use max 1 level per session, and I like it this way so do the other players and the DM
05:29:53 <pikhq_> *Personally*, I prefer to have the DM arbitrarily do a level bump.
05:30:28 <zzo38> So, XP is never counted except at the end of a session. You cannot level up during a session, even if there is a magic effect that adds XP to your total, in which case it is done immediately but does not level up until end of session
05:30:31 <pikhq_> (I happen to dislike CR and experience costs)
05:30:52 <zzo38> I also happen to dislike CR.
05:31:07 <zzo38> Experience costs though, I don't dislike as much.
05:31:07 <Sgeo> You can kill deities in D&D without being one?
05:31:23 <pikhq_> Sgeo: D&D deities are just extraordinarily strong beings.
05:31:24 <zzo38> Sgeo: Depends on the campaign too.
05:31:43 <pikhq_> Presuming a "standard" setting; some settings can very well have omnipotent, immortal deities.
05:31:57 <zzo38> pikhq_: Yes. Depends on the campaign.
05:32:20 <coppro> nearly every roleplaying game has an omnipotent immortal deity
05:32:31 <pikhq_> Of course, in most RPGs everything can be modified by the campaign.
05:35:57 <zzo38> Well, in Forgotten Realms, there is one metadeity (the book says it is a deity but I don't believe them)
05:38:54 <zzo38> Do you believe me or do you believe the book (or do you believe both)?
05:39:48 <pikhq_> I'm inclined to call Ao the in-setting manifestation of the DM, personally.
05:42:58 <zzo38> O, so you have your own opinion. That is OK, too.
05:44:48 <zzo38> I updated the pre-game copies of the character sheets on my computer since both of our character also speak Thesk language too.
05:46:24 <zzo38> (Since both of us are escaped slaves from the Thesk island, him a arena slave and me a magical assistance slave. We are saved by a dwarf who says we need to do them a favor or be dead by magic, but we don't even know what that favor is!)
05:54:18 -!- zzo38 has quit (Remote host closed the connection).
06:14:05 <itidus20> so i discovered visualboy advance emulator already contains an interframe filter.. i thought i was clever thinking of interframe filters for emulators the other day but clearly some movement has been made in that direction already
06:32:37 -!- oerjan has quit (Quit: Good night).
06:40:34 <Lymee> So. In Java you can mess with boxing with reflection. In Scala, a lot of language features use boxing "backstage"
06:40:50 <Lymee> I wonder what kind of tangled messes you can create with that kind of functionality.
06:44:48 <Lymee> (maybe "functionality" should be in quotes)
06:51:27 -!- Sgeo has quit (Ping timeout: 255 seconds).
06:55:33 -!- azaq23 has quit (Quit: Leaving.).
07:01:50 -!- Sgeo has joined.
07:27:42 -!- rodgort has quit (Quit: ERC Version 5.3 (IRC client for Emacs)).
07:28:05 -!- monqy has quit (Quit: hello).
07:29:23 <fizzie> Ping ping here and a ping ping there and... I'm sure there's a song like that.
07:29:26 -!- rodgort has joined.
07:30:06 -!- CakeProphet has joined.
07:30:06 -!- CakeProphet has quit (Changing host).
07:30:06 -!- CakeProphet has joined.
07:50:53 -!- CakeProphet has quit (Ping timeout: 240 seconds).
07:52:51 -!- CakeProphet has joined.
08:22:46 -!- Taneb has joined.
08:38:55 -!- NihilistDandy has quit (Read error: Operation timed out).
08:40:06 -!- NihilistDandy has joined.
08:44:47 -!- Nihilist1andy has joined.
08:47:21 -!- copumpkin has quit (Ping timeout: 250 seconds).
08:47:45 -!- copumpkin has joined.
09:17:47 -!- CakeProphet has quit (Ping timeout: 240 seconds).
09:47:02 -!- copumpkin has quit (Ping timeout: 246 seconds).
09:47:38 -!- copumpkin has joined.
10:29:58 -!- shachaf has quit (Remote host closed the connection).
10:54:43 -!- CakeProphet has joined.
10:54:48 -!- CakeProphet has quit (Changing host).
10:54:48 -!- CakeProphet has joined.
10:58:06 -!- NihilistDandy has quit (Quit: leaving).
10:58:07 -!- Nihilist1andy has quit (Quit: leaving).
10:59:45 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
11:00:04 <lambdabot> No instance for (GHC.Enum.Enum (a -> a))
11:00:04 <lambdabot> arising from a use of `e_11' at...
11:00:44 <lambdabot> Occurs check: cannot construct the infinite type: t = t -> a -> a
11:01:55 <lambdabot> parse error (possibly incorrect indentation)
11:02:07 <lambdabot> Occurs check: cannot construct the infinite type: t = t -> a -> a
11:02:07 <lambdabot> Probable cause: `x' is applied to too few arguments
11:02:07 <lambdabot> In the second argument of `(+ x)', namely `x'
11:02:32 <lambdabot> Occurs check: cannot construct the infinite type: t = t -> a -> a
11:02:32 <lambdabot> Probable cause: `x' is applied to too few arguments
11:02:32 <lambdabot> In the second argument of `(+ 3)', namely `x'
11:03:17 <lambdabot> forall a. (Num a) => (a -> a) -> a -> a
11:03:32 <lambdabot> No instance for (GHC.Enum.Enum (a -> a))
11:03:32 <lambdabot> arising from a use of `e_130' a...
11:04:45 <lambdabot> forall a. (Num a) => (a -> a) -> a -> a
11:08:46 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
11:09:34 <atehwa> does anyone know whether there has been serious attempts at implementing a rewriter engine for undirected graphs?
11:10:12 <CakeProphet> not that I know of, it doesn't sound impossible at all though.
11:10:34 <fizzie> Weren't there some attempts at Eodermdrome implementation?
11:10:52 <atehwa> That's where the design of grrr died off, and that's where eodermdrome is lacking.
11:11:23 <atehwa> grrr was supposed to be "graph reduction renderer", to visually explore undirected (but labeled) graph rewriting
11:12:01 <atehwa> visualisation would be even more useful for eodermdrome, though.
11:12:47 <fizzie> From March of this year:
11:12:48 <fizzie> <Phantom__Hoover> I am also totally disappointed at the lack of interest in my plans for an Eodermdrome implementations.
11:12:48 <fizzie> <fizzie> Phantom__Hoover: The language is cursed: people always just talk about implementing it, but never do. (Did oklopol have an eodermdrome thing or how was it?)
11:12:48 <fizzie> <fizzie> [2008-07-17 19:06:16] < oklopol> i implemented eodermdrome
11:14:28 <fizzie> I have a vague feeling that oklopol's implementation was something incredibly slow.
11:14:51 <atehwa> I wouldn't be surprised
11:14:54 <fizzie> http://www.vjn.fi/pb/p565155612.txt
11:15:01 <fizzie> Hmm, no, that was just a running example.
11:15:02 <Deewiant> CakeProphet: Caleskell has instance Num (a -> a), which can make some things confusing
11:15:53 <atehwa> Because basically, you can just brute-force the search for rewritable subnets
11:16:03 <atehwa> and that _is_ incredibly slow.
11:16:13 <fizzie> http://www.vjn.fi/pb/p646231414.txt <-- yeah, okay, so it's not quite an implementation of the language yet.
11:16:56 <fizzie> There might be later pastes too.
11:17:09 <fizzie> It's just that oklopol's not very good at sharing what he does with others.
11:18:29 <fizzie> I do recall wondering whether NAUTY would have been of any use in an Eodermdrome impl.
11:18:59 <fizzie> But it might be that it doesn't help in the subgraph isomorphism problem at all.
11:19:56 <fizzie> There are of course other libraries too.
11:20:14 <atehwa> the esolang community has a great record of wasting work :)
11:20:45 <fizzie> Googling with the obvious words finds Python bindings for something called "VF" that speaks of subgraphs, isomorphisms, and has functions that start with "match", which is of course a good sign.
11:20:55 <fizzie> Haven't bothered to read any documentation.
11:21:40 <atehwa> it might be almost a comparable effort to find out whether some given program does what I was talking about, as to write the frigging program.
11:25:20 <atehwa> wow, seems I _have_ actually documented grrr partially
11:25:26 <atehwa> Maybe I'll have to add that to the wiki.
11:29:09 <Taneb> I've just made a surprisingly good BF Joust program
11:29:40 -!- mycroftiv has quit (Ping timeout: 264 seconds).
11:30:50 -!- mycroftiv has joined.
11:30:57 <Taneb> !bfjoust lowgate >>>>>>>>>([[-[++]]]>)*21
11:31:06 <EgoBot> Score for Taneb_lowgate: 13.4
11:32:29 <atehwa> why does it have double [[]] ?
11:32:52 <Taneb> So it doesn't commit suicide if it wins
11:32:56 <atehwa> The [++] loop may get locked if there is an odd cell
11:33:14 <Taneb> That would explain why it loses so often
11:34:19 <fizzie> atehwa: There's that GrGen graph rewriting systemajomatic -- http://www.info.uni-karlsruhe.de/software/grgen/index.php -- I suppose it's more commonly used with directed labeled graphs, but the feature list seems to suggest the edges can be undirected too. I don't know the details of the pattern-matching/rewriting language it uses though.
11:34:40 <Taneb> I'll translate my python system into JavaScript
11:35:02 <Taneb> Then, I'll learn C and translate it into that
11:35:05 <atehwa> fizzie: I just checked out NAUTY, and it is only partially applicable
11:35:17 <atehwa> because IIUC it does not search for subgraphs
11:35:37 <Taneb> Then my genetic program will RUE THE DAY
11:35:38 <atehwa> and brute-forcing subgraphs then checking for graph isomorphism is even worse
11:35:51 <fizzie> atehwa: Right. The VF library seems rather more applicable, but the website for that seems to be a bit down.
11:36:21 <atehwa> maybe the website has a difficult life situation :(
11:36:24 <fizzie> Taneb: That "fizzie_evo_4" on the hill has also been evolvamated. (Well, for some values of, anyway.)
11:39:03 <atehwa> VFlib seems to be a library of _graphs_ :)
11:40:00 <fizzie> I think that's just misleading body text.
11:40:56 <fizzie> http://portal.acm.org/citation.cfm?id=840896 describes what they use.
11:41:07 <fizzie> The library itself lives in some .it address that doesn't want to speak to me.
11:41:23 <fizzie> It's Italy, maybe it's on strike. (Who said the art of stereotypisms is dead?)
11:41:47 <atehwa> http://www.cs.sunysb.edu/~algorith/implement/vflib/distrib/
11:42:40 <fizzie> That would involve untarballing a tarball to see what it has eaten, far too much work.
11:43:14 <fizzie> There is also http://www710.univ-lyon1.fr/~csolnon/LAD.html
11:43:21 <atehwa> well, it has the library and some documentation. But you need not bother, this was my quest originally anyway :)
11:43:59 <fizzie> LAD's based on a later-published algorithm than VF, so it's unambiguously better.
11:44:14 <fizzie> (I mean, they wouldn't have gotten it published if it were worse, right?)
11:44:46 <atehwa> LAD seems good, on the surface, at least :)
11:45:07 <fizzie> They do benchmark against VF. :p
11:45:50 <atehwa> LAD seems to be really minimalistic, too.
11:46:02 <atehwa> so it could be rather easy to extend.
11:46:18 -!- shachaf has joined.
11:50:44 <atehwa> although, it might not make sense to build a graph rewriting implementation on pure static subgraph isomorphism matcher, either
11:51:12 <atehwa> because different rewritings can fire others, and there's much room for optimisation there
11:51:23 <atehwa> but maybe it's a good starting point anyway.
11:53:05 <atehwa> oh. Seems LAD's algorithm might not be applicable to graph patterns where there are constraints that some edges _not_ exist
11:53:16 <atehwa> which is the case of eodermdrome "closed" nodes
12:00:56 <atehwa> This is a lot more interesting that I'd thought :)
12:05:06 <fizzie> Right, Eodermdrome matching is sort of between finding an isomorphic subgraph and an isomorphic induced subgraph.
12:05:34 <atehwa> actually the matching rules for eodermdrome are smart indeed
12:06:13 <atehwa> it's a very nifty way to specify _two_ kinds of constraints on the graph.
12:06:34 <atehwa> namely, the existence of some arcs, and the absence of others
12:06:53 <atehwa> while still being able to leave the existence of some arcs as "don't care"
12:08:05 <fizzie> It's also very "intuitive" how to do the replacement, with the open nodes being the ones that are used to "hang" the new graph in place to the larger state graph.
12:09:04 <cheater_> python is caching something somewhere, and i have no idea where it's happening and how to turn it off
12:09:35 <atehwa> fizzie: true, although the rules make it impossible to disconnect arbitrary subgraphs
12:10:05 <atehwa> because in order to leave a node open, you have to mention it on both sides
12:10:27 <atehwa> and in order to mention two nodes on RHS, you have to connect them directly or indirectly
12:11:36 <atehwa> so anytime you want to disconnect a node from some other node, you have to close it - and that means it cannot have a subgraph behind it
12:12:31 <atehwa> but effectively, the rules of eodermdrome just enforce that the rewrite rules never even produce disjoint graphs.
12:13:04 <atehwa> cheater_: reload(module)?
12:20:26 <cheater_> yeah, except uwsgi doesn't reload the module on every refresh :p
12:36:33 <Taneb> I keep typing undefined as underfined
12:36:49 <Taneb> Got an error message: underfined is not defined
12:37:02 <Taneb> Thought it was ironic until I realised my typo
12:37:26 <lambdabot> scanl = flip flip inits . (((.) . map) .) . foldl
12:45:35 <Taneb> I've translated my BFJoust interpreter to JavaScript
12:49:55 <CakeProphet> I think Perl was the earliest language in the C family to have map and filter operators.
13:09:08 <lambdabot> map = fix (flip flip tail . (ap .) . flip flip head . ((.) .) . liftM2 flip (((.) . (:)) .))
13:09:55 <CakeProphet> @pl map f ls = case ls of [] -> []; (x:xs) -> f x : map f xs
13:09:56 <lambdabot> expecting variable, "(", operator or end of input
13:22:40 <fizzie> I don't know any F# users, no.
13:32:37 -!- copumpkin has changed nick to nmcblanket.
13:32:53 -!- nmcblanket has changed nick to copumpkin.
13:33:30 <CakeProphet> according to wikipedia it is a variant of ML
13:35:22 -!- BeholdMyGlory has joined.
13:37:46 <CakeProphet> The other sort of algebraic data type mentioned, "discriminated unions" (type-safe versions of C unions), can be defined to hold a value of any of a pre-defined type.
13:37:59 <CakeProphet> why does Microsoft have to rename everything terribly.
13:38:32 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:38:35 <CakeProphet> I actually heard someone use the term "managed language" in a conversation recently.
13:39:33 <CakeProphet> which I'm pretty sure just means that it runs on a virtual machine and is bytecode compiled.
13:39:53 <CakeProphet> but for some reason Microsoft has to define these new names for things and use those instead, as though it is different somehow.
13:43:09 <fizzie> The managed/unmanaged distinction is theirs, yes.
13:45:29 <CakeProphet> this person said they do not like managed languages. I ask them what they thought that meant
13:45:44 <CakeProphet> they said it means that it has "hidden code" such as garbage collectors.
13:45:45 <fizzie> As far as I understand it, managed code is anything represented in the CIL bytecode, though the runtime does not actually run that, it native-code compiles it. I guess it counts as a form of JIT.
13:46:42 <CakeProphet> This was spoken in the context of not liking managed languages. So in essence he was saying he doesn't like garbage collection or virtual machines.
13:47:13 <fizzie> Well, I guess that's his prerogative?
13:47:57 <CakeProphet> I asked him if he had any problem with using libraries, since this is "hidden code that could potentially cause bugs not in your own code"
13:48:15 <fizzie> I'm sure there are still happy assembly coders who don't like any safety features either.
13:48:50 <CakeProphet> it's just the idea that using a garbage collector will somehow result in all of these bugs that you have no control over
13:49:10 <fizzie> Oh, I thought it was about the performance issue.
13:49:48 <CakeProphet> but if you "aren't new to programming" then manual memory management is practically bugfree....
13:49:49 <fizzie> Just saying "hidden code" might equally well mean performance overhead. But I guess you were there.
13:50:21 <CakeProphet> yeah, I was saying that manual memory management will result in /more/ bugs than using a well-tested garbage collector.,
13:51:24 <CakeProphet> and his rebuttal was that experienced programmers don't have to worry about that.
13:51:38 <CakeProphet> I don't know. I am infuriated. :P I should stop remembering this conversation.
13:52:51 <CakeProphet> I can't wait to interact with these people in a work environment.
13:53:14 <CakeProphet> they will hate me because I will be all snobby about everything. :P
13:54:49 <CakeProphet> I wonder what language I will be programming in when I get a job. My money is on Java or C# if it's a software company. Or Javascript, PHP, Python if it's web programming.
13:55:26 <fizzie> People do serious web-things in quite a plethora of languages nowadays.
13:55:29 <CakeProphet> but there's a lot of possibilities, these are just common languages for those things.
13:55:47 <CakeProphet> Ruby or even Perl is a possibility for web programming.
13:57:11 <CakeProphet> I once found a programming gig for SBCL (Lisp)
13:57:33 <CakeProphet> but I didn't have any qualifications for it, unfortunately.
13:57:53 <CakeProphet> I was looking forward to mind-numbing layers of parentheses.
13:58:17 <fizzie> SSH Communications famously (well, not quite) mentioned they use Scheme a lot in one of their job ads.
13:58:25 <CakeProphet> in possibly the oldest language that is still in common use.
14:01:24 -!- copumpkin has joined.
14:01:39 <fizzie> I once got a summer job at Nokia (well, their research side) for knowing Perl. Or maybe Befunge.
14:02:05 <fizzie> Perl is what they wanted done, but esolangs were discussed quite a lot at the interview.
14:02:44 <CakeProphet> I might list Lisp even though I don't really know it, lol.
14:03:01 <CakeProphet> meaning I don't comfortably know a common dialects idioms.
14:04:16 <CakeProphet> but I read SICP, so that counts for something. :P
14:05:01 <CakeProphet> fizzie: did they care about having any kind of work experience with Perl, or was just knowing Perl enough?
14:06:03 <fizzie> Well, they wanted someone who knew Perl, not just knew about Perl. But certainly no Microsoft Certified Perl Expert qualifications.
14:06:35 <CakeProphet> right, I'm just wondering how they verified such things.
14:07:16 <fizzie> By asking me, basically.
14:07:45 <fizzie> There was no Perl quiz or anything, I mean. They just asked me how well I knew it.
14:07:54 <CakeProphet> because it means I can use knowledge of multiple languages in a job interview as an advantage.
14:07:54 <fizzie> Then I had to formulate some sort of an answer.
14:08:11 <Elizacat> https://gist.github.com/1023982 oh god I'm gonna barf.
14:08:13 <cheater_> apparently fizzie has had too many fried beans today
14:09:29 <cheater_> http://www.rte.ie/news/2011/0722/oslo.html
14:09:42 <Taneb> There's been an explostion in Oslo.
14:10:02 <Elizacat> that one really just made me puke
14:10:05 <Elizacat> whoever does that needs to be killed
14:10:36 <Elizacat> I don't find lambdas very useful outside of functional programming languages
14:10:54 <CakeProphet> well, when you can add multiple statements to it
14:10:59 <cheater_> python's lambdas aren't bad, they're just useless
14:11:19 <Elizacat> cheater_, yet everyone whines when they are proposed for removal... :p
14:11:32 <cheater_> i would much rather like anonymous functions
14:12:04 <CakeProphet> yes, anonymous functions are lambdas technically. this is what I'm referring to.
14:12:31 <CakeProphet> but Python has a terrible way of delimiting blocks and so anonymous functions are syntactically difficult.
14:14:28 <CakeProphet> !perl print map {s/a/b/g;s/c/d/g;} "abcdefg"
14:14:29 <EgoBot> Modification of a read-only value attempted at /tmp/input.11021 line 1.
14:15:25 <CakeProphet> !perl print map {s/a/b/gr . s/c/d/gr;} "abcdefg"
14:15:25 <EgoBot> Bareword found where operator expected at /tmp/input.11157 line 1, near "s/a/b/gr"
14:16:18 <CakeProphet> even though that's what I've been programming in for the past few months.
14:18:28 <CakeProphet> but anyways, point to be made is: Perl has anonymous subroutines. people use them.
14:18:50 <CakeProphet> the whole "lambdas are bad style" thing in Python is probably a result of lambdas looking ugly and being highly constrained in Python.
14:20:05 <CakeProphet> but hey, the lambda-only class definition actually doesn't look too bad. It's kind of fun to see how you could write a class functionally in Python.
14:21:17 -!- lambdabot has quit (Ping timeout: 240 seconds).
14:22:21 <cheater_> CakeProphet, a lambda is an expression, in python a function can be multiple expressions, unlike in many languages that have lambdas
14:22:39 <cheater_> it's because python is descriptive rather than declarative
14:23:38 <CakeProphet> I don't think you describe computations in Python by how they "should" work
14:23:40 <cheater_> well, i think "imperative" does not focus on the important aspect of the difference between so called "imperative" languages and so called "functional" langauges
14:23:44 <CakeProphet> well, maybe you do that in all languages. I don't know.
14:23:59 <cheater_> i mean you can perfectly well say that python is an imperative, functional language
14:24:13 <CakeProphet> except it's not really all that functional.
14:24:25 <cheater_> functional means a function is a first class object
14:24:31 <cheater_> which it is, because you can manipulate functions
14:24:33 <CakeProphet> it has first-class functions. that's pretty much the extent of it.
14:24:48 <cheater_> i rather like to use "declarative" for what people call "functional" because you can say that the nature of those languages is that they say what things are, rather than how to build them
14:24:53 <CakeProphet> but it's not really a functional paradigm. but sure, it's functional.
14:25:07 <cheater_> that's why i say "declarative" instead
14:25:35 <cheater_> and that's why i call "imperative" prescriptive, because it prescribes how to get something
14:25:35 <CakeProphet> but I think "has first class functions" is a very flimsy definition of a functional language.
14:25:55 <cheater_> i'd word your concern differently
14:25:56 <CakeProphet> not really what I connotate from the word functional.
14:26:07 <cheater_> "functional" is a very flimsy description of haskell, erlang, ocaml and lisp
14:26:47 <CakeProphet> C has first-class function pointers. is it functional? :P
14:27:01 <cheater_> i don't know C well enough to answer that question
14:27:15 <CakeProphet> I could write a map in C, it would just need an extra length parameter.
14:27:47 <cheater_> yeah but it wouldn't be declarative
14:28:28 <CakeProphet> I could write it recursively if that's what you mean.
14:28:46 <cheater_> you wouldn't declare the map function as its first argument applied to the head of the second, plus map applied to the first argument and tail of the second
14:29:15 <cheater_> yeah, but that's unnatural for the language, and wrong, because it would probably give you a stack overflow
14:29:33 <CakeProphet> without adding several more parameters it would also be in-place.
14:30:07 <CakeProphet> stack overflow depends on the length of the array and the size of the call stack of course.
14:30:24 <cheater_> alternatively, if your recursion would just mean you pass the recursed function the pointer+1, then you're again iterating
14:30:38 <cheater_> which is not really declarative
14:30:43 <CakeProphet> but by your very weak definition of functional, C is functional.
14:30:58 <CakeProphet> if not declarative (aka what I consider functional to mean)
14:31:16 <cheater_> and you can create, modify, append, concatenate, and remove functions
14:31:26 <cheater_> you can copy and overwrite them
14:31:43 <cheater_> so to that extent, C is very much functional
14:32:00 <cheater_> it has even features no other languages have such as concatenation of function bodies
14:32:29 <CakeProphet> also, I don't really see the distinction between incrementing a pointer recursively as "iterating" and getting the head and tail of a linked list as being "declarative"
14:33:11 <cheater_> well let's think of it as an index, rather than a pointer, that starts at 0, then it's 1, 2, and so on
14:33:34 <cheater_> this index gives you, at any point, information about the global structure
14:34:00 <cheater_> it tells the body of the function "at this point, you are at the 60th element"
14:34:14 <CakeProphet> I can't go back to the 0th element from a recursive call.
14:34:44 <cheater_> because you don't know where you are - your context always assumes that what you're passed is the whole thing
14:34:46 <CakeProphet> yes, also with recursive pointer increments and a length parameter, you cannot deduce where the start of the list is.
14:35:17 <CakeProphet> because it's not just an index, you can't just set it back to 0
14:35:26 <CakeProphet> and you have no other information to get you back to the original index.
14:35:56 <cheater_> but that's what i was talking about
14:36:01 <cheater_> my function is something like f(i, list, func) { list[i] = func(list[i]); f(i++, list, func); }
14:36:20 <CakeProphet> it's a reference to a location in memory, that I am shifting forward one location each recursive iteration.
14:36:36 <CakeProphet> similar to how a linked list works, but contiguous in memory.
14:36:56 <cheater_> of course, if you're given a pointer, then it would be f(start, size, list, func) { list[start] = func(list[start]); f(start+size, size, list, func); }
14:37:37 <CakeProphet> it's the same thing basically, that if the expressions have no side effects, then what you do in the recursion does not matter. The distinction between iteration and recursion is meaningless because they are equivalent.
14:37:44 <cheater_> but in what i just wrote you're still describing HOW to do something, instead of what you are getting
14:38:01 <cheater_> you're describing the action of going form list to map(list, func)
14:38:40 <cheater_> in haskell, you are describing the structure of map list func and you are describing it with the nouns "map", "list" and "func"
14:39:40 <cheater_> so maybe it's that in a prescriptive language basically you have nouns and verbs, in a declarative language you have no verbs
14:40:09 <cheater_> you don't "do <action> to <item>"
14:40:38 <cheater_> instead you say "<item> is an <adjective> <item2>"
14:41:05 <cheater_> well, that's just a way to read it
14:41:12 <CakeProphet> yes, as is your definition of nouns and verbs...
14:41:56 <cheater_> i would say, map paintRed fence = "a fence which is red"
14:42:09 <cheater_> you would say map paintRed fence = "a fence which has been painted red"
14:42:30 <CakeProphet> I suppose. I'm just saying a function is very much like a verb.
14:42:54 <cheater_> i would say a function is just a parametrized value
14:43:14 <CakeProphet> when you define the function, you *declare* what it is
14:43:20 <CakeProphet> but when you use it, you are using it like a verb.
14:43:33 <cheater_> not really - when you use the function, you declare what the output is
14:44:44 <CakeProphet> "hey computer, map this function over this list"
14:44:51 <cheater_> "a list of 1, 2, .. incremented by one"
14:45:13 <cheater_> where "incremented by" is an adverb
14:45:59 <cheater_> well, that's just what i think when i see map (+1) [1..]
14:46:12 <CakeProphet> the reason I say functions are like verbs is because they take arguments
14:46:18 <CakeProphet> similar to how language verbs have subjects and objects.
14:47:05 <cheater_> this discussion resonates quite a lot with what i thought when i first started studying mathematics at the university and first started hearing how people actually talk about mathematical objects at work
14:47:14 <CakeProphet> adjectives and adverbs are also like functions in that they augment or modify existing things (aka their argument)
14:47:31 <cheater_> it was always a case of "function f is ...", never a case of "to get the value of function f, you do ..."
14:47:56 <CakeProphet> you declare them, by stating what they are, yes.
14:48:21 <cheater_> a function in mathematics is a constant value, with an argument, which is applied via the substitution principle
14:48:42 <cheater_> let's say you have your value q = 1+2
14:49:28 <cheater_> then you can have your value q(x) = 1+x, where what you do is you first take say q(100), then you expand it to 1+x, and then you substitute x := 100
14:49:29 <CakeProphet> but a function is also an abstraction of a computation. It maps one set of values to another set.
14:49:47 <cheater_> yes, but a map is a static object
14:49:52 <cheater_> it doesn't change, move, or run
14:50:14 <cheater_> every function exists already in Functions
14:50:23 <cheater_> Functions is the set of all functions. :p
14:50:35 <CakeProphet> I'm not saying you describe functions by saying what they do. I'm saying that functions themselves describe an action.
14:50:52 <cheater_> there's a very important notion in mathematics that mathematical objects do not get created, they get discovered
14:50:59 <cheater_> they've been there all the time, behind your back
14:51:28 <cheater_> so in this way, the \Gamma function wasn't discovered, it was described
14:51:30 <CakeProphet> that's a philosphical point I don't think I necessarily agree with. At least not for every mathematical object.
14:51:51 <cheater_> *it wasn't created, it was described
14:51:55 <CakeProphet> to me it's just a system. it's arbitrary in its man-made rules.
14:52:02 <cheater_> can you name a mathematical object which was *created*?
14:52:32 <cheater_> but you said you don't agree and that some objects were created
14:52:42 <cheater_> unless you were referring to something else?
14:53:21 <CakeProphet> I just don't believe they are discovered. As if they had existed this whole time. I believe they are constructed at which point they become defined. I don't think nature cares about our abstractions.
14:53:42 <CakeProphet> we just describe what already existed in nature with concepts we create over time.
14:53:48 <CakeProphet> so... I suppose I am saying they are created.
14:54:52 <cheater_> ah, instead i see it this way.. imagine you're in a huge town where you've never been, everyone speaks a language you don't know
14:55:07 <cheater_> you start out at some point and there are trees and you can punch them
14:55:24 <cheater_> you can go to places, and see new things
14:55:31 <CakeProphet> but they do not have to correspond to anything that actually exists. I could devise a completely arbitrary set of rules. would I have simply discovered that mathematical system or did I create it artificially?
14:55:34 <cheater_> if you remember the path to those things, that's your definition
14:55:44 <cheater_> however, those things were there before you have defined them
14:55:46 <CakeProphet> and if I discovered it, where was it hiding all of this time? :P
14:55:58 <cheater_> well why are you on that island first of all?
14:56:11 <cheater_> i mean what is your business there sir?
14:56:22 <CakeProphet> er, I wasn't referring to your metaphor, actually.
14:57:07 <cheater_> well, your set of rules is the pathway in your mental considerations of mathematics
14:57:24 <cheater_> which lets you arrive at the concept of that mathematical system
14:57:35 <cheater_> it was there, you just haven't ever taken this path before
14:58:17 <CakeProphet> it just seems somewhat arrogant to say that mathematics, which is inherently a human conception, somehow /is/ the innate properties of the universe, and not merely an artificial description.
14:58:42 <cheater_> ah, but mathematics has nothing to do with the universe
14:59:05 <cheater_> trying to assign cosmical properties to mathematical objects is called physics
14:59:19 <cheater_> and then they only say that the mathematics in question are a model, not that they're the real thing
14:59:22 <CakeProphet> but I kind of associate existence with being a part of the universe..
14:59:44 <CakeProphet> so basically what you are saying to me is that you can discover mathematical objects, but they don't really exist.
14:59:46 <cheater_> no physicist will tell you that the string theory is the nature of the universe
15:00:17 <CakeProphet> I don't know, existence is a tricky thing.
15:00:36 <cheater_> i'm saying that mathematical objects exist, and that they always have, and that they are not assigned to any physical objects.
15:00:56 <cheater_> physical in the meaning of "tangible"
15:01:26 <CakeProphet> ideas exist, certainly. But how do you discover ideas?
15:01:39 <CakeProphet> they must be made by an intelligence being at some point.
15:02:22 <CakeProphet> (don't give me that platonic ideal crap :P )
15:02:23 <cheater_> i would say that definitions can be made
15:02:30 <cheater_> there might have been no definition of the idea
15:02:39 <cheater_> which means the idea was outside of your holographic bubble
15:02:59 <cheater_> you can create a definition, by which you arrive at the concept
15:03:17 <cheater_> but the creation of the definition is a secondary concern, it's a means to an end: the concept
15:03:31 <CakeProphet> I don't know, I just find it strange to thing that the idea of freedom of speech existed before any intelligent life thought it up.
15:03:31 <cheater_> the concept, in itself, is what interests us, not the definition of it
15:04:08 <cheater_> notice how even in english you can "have" an idea, but not "create" an idea
15:04:15 <cheater_> you have it, meaning you grasp it
15:04:56 <cheater_> sort of like a fruit high up on a tree
15:05:13 <CakeProphet> yes I can understand all of that. I just don't believe there's much distinction then, really.
15:05:31 <CakeProphet> what we are talking about is practically the same. because an idea might as well not exist until it is available to us.
15:05:42 <cheater_> because look at it: the definition of an idea is secondary to the idea itself, would you agree?
15:05:45 <CakeProphet> so... whether ot not it existed before someone thought of it is somewhat irrelevant.
15:05:52 <cheater_> the definition being our action of discovering the idea
15:06:43 <CakeProphet> I guess. This is just all too human-centered (or intelligence-centered, if you prefer) to really convince me that these things existed since the dawn of time.
15:07:15 <cheater_> the time interval known as a second has existed before humanity
15:07:29 <cheater_> it would be very egoistic to think that seconds have not existed before humans described them
15:07:49 <CakeProphet> the interval of time existed sure, but seconds as an idea didn't.
15:07:52 <cheater_> there were intervals of time of length one second before humanity!
15:08:27 <cheater_> what i'm trying to say is that the difference between the idea and definition is similar to the difference between declarative and prescriptive definitions
15:08:49 <cheater_> idea :: definition == declarative definition :: prescriptive definition
15:09:00 <cheater_> a prescriptive definition is that one step further from the idea
15:09:24 <CakeProphet> I will write a language that goes one step closer than declarative!
15:09:42 <CakeProphet> where the ideas just exist without definition or something.
15:10:35 <cheater_> well you can see that a prescriptive definition could be improved
15:10:43 <cheater_> i wonder what the next step would be
15:11:14 <cheater_> i mean in prescriptive definitions, imo, we have verbs, nouns, and adjectives from which we make those definitions
15:11:16 <CakeProphet> we can't know if the idea existed before the point of grasping because it was not known to us before that point.
15:11:27 <cheater_> in declarative definitions we seem to have nouns and adjectives
15:11:33 <cheater_> can we do with just adjectives?
15:11:59 <CakeProphet> I don't think natural language makes a very good metaphor for programming languages.
15:12:01 <cheater_> can i say "x is five-element, rising, starting-with-one"?
15:12:15 <cheater_> would that be a definition for [1, ... 5]?
15:12:21 <CakeProphet> some of the worst ideas in Perl are based on natural language metaphor
15:12:52 <CakeProphet> but sentences cannot have as deep of a structure as a program expression.
15:13:07 <cheater_> could you call this a "descriptive language"?
15:13:09 <CakeProphet> do the distinction between verbs and adjectives and adverbs as separate modifiers becomes more irrelevant.
15:13:48 <cheater_> no i mean this "adjectives only" language
15:13:53 <cheater_> can it be called "descriptive"?
15:14:01 <CakeProphet> uh, well, I would call any language descriptive.
15:14:21 <cheater_> but really, if you define things with adjectives, you define everything by describing it, right?
15:14:43 <CakeProphet> yes. I can't really imagine how you would not describe something in a language.
15:14:50 <CakeProphet> how do I write an algorithm in C without describing it in some way?
15:15:39 <Taneb> By not using any comments?
15:15:48 <cheater_> in C you basically construct things
15:15:50 <Taneb> And obfuscating it loads?
15:16:12 <cheater_> yeah but that's on meta-level to the language
15:16:49 <cheater_> in C you say "take some flour, some eggs, some water, and baking powder, mix them together, and you have dough"
15:17:02 <cheater_> in haskell you say "dough is a micture of flour, eggs, water, and baking powder"
15:17:10 <CakeProphet> yes, you describe the steps. functions are descriptions of algorithms.
15:17:19 <cheater_> you don't describe the steps on haskell
15:18:11 <CakeProphet> basically what I am saying is that all languages are descriptive. You cannot have a language that does not describe something.
15:18:13 <cheater_> maybe not with dough, but with e.g. a milk shake it's not important if you first put the strawberries, the milk, or the sugar in the mixer
15:18:38 <Taneb> Unless you have a chocolate milkshake
15:19:07 <cheater_> which means that you don't need to be told the consequence of actions of putthing those things in the shaker
15:19:17 <cheater_> CakeProphet, yes, on a meta-level you're right, but you're again talking in terms of the meta-language, not the language itself
15:19:33 <cheater_> but the language itself is actions.
15:19:57 <CakeProphet> the language is a...... description of actions.
15:19:58 <cheater_> C is the description of those actions
15:20:09 <cheater_> that's good, we have converged there nicely
15:20:22 <cheater_> a haskell program is a declaration of objects
15:20:38 <Taneb> The declarations are describtions
15:21:07 <cheater_> is a cookie dough recipe a description of a ready cookie?
15:21:14 <CakeProphet> the thing with declarative programming languages is that they still semantically perform computations
15:21:20 <CakeProphet> and I often prefer to think in this way when I am writing in them.
15:21:23 <Taneb> It is a description of how to make a cookie
15:21:36 <cheater_> but it's the cookie that interests us
15:21:37 <Taneb> Still a description
15:22:04 <cheater_> in C, you define cookie as "take dough igredients, put in dish one by one, stir, put on pan, bake in 180 degrees for 1 hour"
15:22:12 <cheater_> that's probably a very wrong recipe
15:22:30 <Taneb> It doesn't have any chocolate chips
15:22:47 <CakeProphet> but sometimes my approach is flawed. For example, using the approach of asking "how do I get the fibonacci sequence in Haskell", I would never think of the this definition
15:22:52 <cheater_> in haskell, you define cookie as "a heat-treated mixture of dough ingredients"
15:22:59 <CakeProphet> fibs = 0 : 1 : zipWith (+) fibs (tails fibs)
15:23:07 <Taneb> With chocolate chips
15:23:33 <cheater_> CakeProphet, i'm not even debating the practicality of those families of languages
15:23:44 <CakeProphet> yeah I wasn't even debating with those statements. :P
15:23:52 <cheater_> in prescriptive and declarative languages, you *start out with something*
15:24:16 <cheater_> meaning that you have to have items, and from these items new items are generated
15:24:17 <CakeProphet> sure, can't make something from nothing. :P
15:24:24 <cheater_> or rather: new items are defined in relation from old items
15:24:57 <cheater_> it's sort of similar to a definition of a geometric complex
15:25:25 <Taneb> I think he means like a pentagon
15:25:38 <CakeProphet> to me "geometric complex" means a building. lol
15:25:51 <CakeProphet> geometric structure? geometric object? geometric construction?
15:26:00 <Taneb> The last one sounds right
15:26:30 <cheater_> a convex set is simple to describe
15:26:48 <cheater_> a convex set is the intersection of convex sets
15:27:04 <cheater_> a convex geometrical complex is even simpler to describe
15:27:12 <cheater_> it's an intersection of half-spaces
15:27:38 <cheater_> a half-space is a set where on one side of a surface it's full, and on the other side it's empty
15:27:38 <CakeProphet> don't you need to define certain sets as convex sets in order to actuall have any convex sets?
15:27:56 <cheater_> so you make a convex geometrical complex by taking a block of wood, and lopping off bits in straight cuts
15:28:46 <CakeProphet> but the definition is recursive. I don't see how it could apply to anything if there's nothing that is innately convex.
15:29:01 <oklopol> "<cheater_> a convex set is the intersection of convex sets" <<< what :D
15:29:39 <oklopol> that is true for any family of sets
15:30:09 <CakeProphet> is {1,2,3} a convex set? What are the convex sets it is an intersection of, and how are those sets convex?
15:30:28 <cheater_> CakeProphet, yeah, that was not a definition, it was just a picture i used
15:30:44 <cheater_> look at the convex geometrical complex
15:30:50 <CakeProphet> oh so it's just a property of convex sets and not the definition.
15:30:53 <cheater_> it's defined as an intersection of half-spaces
15:31:25 <cheater_> i have defined half-spaces declaratively, and i have defined convex geometrical complexes declaratively
15:32:19 <cheater_> you can also define convex sets like this. it's a bit more complicated, but you define some starting sets, and then you can create all convex sets from them.
15:32:32 <cheater_> you can also define convex sets like this:
15:32:51 <cheater_> a convex set is a set which is convex
15:32:56 <cheater_> meaning, it has the property of convexity
15:33:04 <cheater_> a test for the property of convexity looks like this:
15:33:10 <CakeProphet> a true statement is a statement that is true.
15:33:32 <cheater_> for any two points of the set, create a line segment between those two points. if the line segment is a subset of the set in question, then that set is convex.
15:33:48 <cheater_> this has to hold for all pairs of points.
15:33:57 <cheater_> the wording there isn't perfect :)
15:34:16 <cheater_> i understand that it looks banal right now
15:34:29 <cheater_> but once you start adding more and more adjectives you can e.g. define a torus, a sphere, and so on
15:34:44 <CakeProphet> my perfectionistic brain is formulating all kinds of nasty inconsistencies in your terribly non-rigorous definition.
15:35:50 <cheater_> a ball is a set which is open and which has the property of neighbourhood, meaning that all points are within a neighbourhood to a special point called the center
15:36:18 <oklopol> "<cheater_> NOT FOR CONCAVE SETS, SUCKER" <<< a concave set is the intersection of concave sets, but i guess you meant convex sets are closed under intersection? so are the finite sets.
15:36:39 <cheater_> however i am still starting with the definition of "set"
15:36:56 <cheater_> in mathematics, you can lead everything back to the definition of a set
15:37:23 <cheater_> meaning that if you start out with any definition, it turns out it's just a bunch of sets glued together in special ways.
15:37:45 <cheater_> it's what the whole world is made out of, in mathematics
15:38:11 <cheater_> in computer languages you have many non-equal Ur-Elements
15:38:11 <CakeProphet> yep, turns out stuff is just groups of stuff.
15:38:26 <cheater_> you have functions, integers, floats, etc
15:39:16 <cheater_> anyways, what i think i'm saying is that in a declarative language you define things with other things
15:39:31 <cheater_> whereas in a descriptive language, you would define things without other things
15:39:48 <cheater_> i wonder if that's a good idea at all
15:42:24 <cheater_> in C you'd say to get a maserati GT you'd take a ferrari 430, you'd then change the body work, and then you'd furnish it with a nice interior
15:43:13 <cheater_> in haskell, you'd say a maserati gt is a ferrari 430 - bodywork - interior + new body work + new interior
15:43:27 <CakeProphet> actually in C a masterati GT is just a bunch of pointers.
15:44:00 <cheater_> in a descriptive language, you'd say a maserati gt is a car which is this and this long, it's this and this high, its dimensions are this and that, and its parts are made out of the following materials
15:44:25 <cheater_> basically, you have just defined a maserati GT without ever knowing that there's something called a ferrari 430
15:44:52 <CakeProphet> so to program descriptively is to program declaratively in a roundabout way.
15:44:53 <cheater_> of course, if your description is detailed enough, you will have defined a car which requires what we know as the ferrari 430 engine
15:45:12 <cheater_> because you can describe things imprecisely or more precisely
15:45:33 <cheater_> you could say "a ball is a set with the property of neighborhood"
15:45:48 <cheater_> and for most things, this will fit well enough
15:46:05 <cheater_> of course, for a real ball, d(B) = {}
15:46:14 <cheater_> whereas for our imprecise ball, d(B) = S
15:46:42 <cheater_> however, that's not really important if you're just using balls to, say, define what a 3-dimensional object is
15:47:09 <cheater_> i guess that's an improvement over declarative languages
15:48:56 -!- FireyFly has joined.
15:49:07 <cheater_> you can say in C "to construct Joe, you take Chandler's sperm, and Monica's egg, you fertilize it, you grow the fetus in a womb, and then you let it mature for 30 years and you have Joe"
15:49:22 <cheater_> in Haskell you can say "Joe is the son of Chandler and Monica"
15:50:02 <cheater_> in a descriptive language you would say "Joe has medium-short dark hair, black eyes, of italian descent, is 30 years old, slightly overweight, and likes sandwiches"
15:52:23 <CakeProphet> in brainfuck, you'd say one of the strings that this Haskell program produces
15:52:31 <CakeProphet> I wasn't really sure how to work that in English so I did that instead.
15:53:57 <cheater_> i'm not sure how that is related.
15:54:06 <cheater_> i'm not saying it's unrelated, i just can't parse this.
15:57:47 -!- MDude has joined.
16:00:46 <cheater_> did i explain well what "descriptive" is?
16:02:17 <Taneb> Would it be wrong to improve other's BF Joust programs and submit them to EgoJoust as my own?
16:02:49 -!- FireyFly has changed nick to FireFly.
16:03:02 <Taneb> Even if it was only an extremely minor improvement?
16:03:20 <Taneb> Oh, I'm feeling to guilty.
16:03:37 <Taneb> FireFly? I improved your BF Joust program "meh"
16:04:26 <Taneb> "->(+>->)*4([-]>)*21"
16:04:41 <Taneb> Your original stopped just short of the finish on the longest tape length
16:11:11 <Taneb> You going to submit that, or can I?
16:12:09 <oklopol> well SOMEONE submit it already :\
16:12:46 <Taneb> !bfjoust fireflys_meh_improved ->(+>->)*4([-]>)*21
16:12:48 <EgoBot> Score for Taneb_fireflys_meh_improved: 20.6
16:27:27 <FireFly> You could just.. you know, borrow it
16:36:29 <Taneb> How do I rename it?
16:36:36 <Taneb> And what should I rename it to?
16:42:37 -!- MigoMipo has joined.
16:42:39 -!- copumpkin has quit (Ping timeout: 276 seconds).
16:44:51 <Taneb> Hang on, switching computers
16:45:00 -!- copumpkin has joined.
16:45:34 -!- Taneb has quit (Remote host closed the connection).
16:50:56 -!- Taneb has joined.
17:03:20 <Taneb> I've adjusted my random BF program generator to only make ones with matching brackets
17:09:28 <Taneb> Well, apparently Python has a maximum recursion depth
17:10:17 <Taneb> Makes a ridiculously long error message
17:13:50 -!- calamari has joined.
17:19:19 <Taneb> While loops work almost as well
17:29:35 -!- augur has quit (Ping timeout: 240 seconds).
17:34:27 -!- calamari has quit (Quit: Leaving).
17:34:36 <oklopol> yeah python only does fail recursion
17:34:39 -!- augur has joined.
17:45:45 -!- Taneb has quit (Ping timeout: 252 seconds).
17:54:31 -!- zzo38 has joined.
17:59:03 -!- Taneb has joined.
18:00:23 -!- quintopia has quit (Ping timeout: 240 seconds).
18:03:30 -!- ais523 has joined.
18:04:49 -!- monqy has joined.
18:09:28 <ais523> wow, that was an unexpected security update
18:09:34 <ais523> arbitrary code execution in logrotate, of all things
18:09:44 <Vorpal> drivers/net/loopback.c is so strange... 217 lines... And absolutely no code related to handling packets at all. Just some statistics stuff and driver registering/deregistering code
18:09:53 <ais523> zzo38: the Debian/Ubuntu package
18:10:00 <ais523> also vlc, but that's more plausible
18:10:15 <ais523> Vorpal: giving it a malformed config filename on the command line
18:10:25 <ais523> presumably it calculates its length wrong and does a buffer overflow, or something
18:10:37 <Vorpal> ais523, so it requires root then basically on normal setups?
18:11:00 <Vorpal> I'm not too worried then. No obvious way to use this for privilege escalation.
18:11:39 <ais523> Vorpal: indeed, it seems not to be suid
18:11:45 <fizzie> There was a privilege escalation bug in logrotate earlier.
18:11:50 <fizzie> Though not in the default configuration.
18:12:02 <ais523> fizzie: I assume it has some SUID configuration?
18:12:25 <fizzie> "A shell command injection flaw was found in the way logrotate handled the shred directive. A specially-crafted log file could cause logrotate to execute arbitrary commands with the privileges of the user running logrotate (root, by default). Note: The shred directive is not enabled by default. (CVE-2011-1154)"
18:12:31 -!- Taneb has quit (Ping timeout: 252 seconds).
18:12:34 <fizzie> Though you'd still need to be able to craft that logfile.
18:12:46 <fizzie> I don't know how specially it would need to be crafted.
18:12:59 <fizzie> I.e. would it be enough to just write a user-agent field in an apache log or something.
18:13:04 <ais523> they never do say, for good reason
18:14:08 <fizzie> The summary may also be a bit misleading; from the CVE overview it looks like you'd need to put shell metacharacters in the log file name itself.
18:14:28 <fizzie> So just being able to insert stuff in a logfile wouldn't be enough.
18:14:37 <ais523> is logrotate written in shellscript? or just uses the shell to do some of its commands?
18:15:07 <fizzie> "The shred_file function in logrotate.c in logrotate 3.7.9 and earlier might allow --"
18:16:09 <ais523> my mind immediately went "bash has functions, and a .c extension doesn't necessarily mean anything"
18:16:12 <ais523> but I admit you're probably right
18:16:35 <fizzie> The "shred" configuration directive causes it to use an external command for supposedly-secure log file deletion.
18:16:46 <fizzie> I guess it was passing the log file name to that without worrying about metacharacters.
18:17:15 <fizzie> And did it in a systemy fashion and not an execy one.
18:17:18 -!- BeholdMyGlory has quit (Remote host closed the connection).
18:17:33 <zzo38> Depends whether it goes through the shell parsing and whether the filename starts with -
18:17:56 <Vorpal> ais523, hm.... echo -n '#!/bin/bash\n...' > foo.hs
18:19:10 -!- BeholdMyGlory has joined.
18:20:23 <zzo38> One thing you can do on shebang lines is to type -- after the name of the program, at least, is my idea. But modern kernel don't do suid with #! scripts anyways... but I still type -- when a shell script meant to be run on root account anyways
18:34:36 <ais523> Vorpal: don't you need both?
18:34:43 <ais523> echo has to quote its command line literally if the first arg isn't -n
18:34:54 <ais523> so in POSIX mode, you have to do -n -e in order to get escaping with GNU echo
18:35:22 <Vorpal> ais523, I didn't know that
18:35:26 <Vorpal> ais523, what about -ne?
18:35:33 <ais523> I think they have to be separate
18:35:48 <ais523> (POSIX leaves -n's behaviour impl-defined; GNU echo defines it as "suppress final newline and also accept the -e option")
18:36:05 <Vorpal> ais523, implementation defined? Seriously?
18:36:14 <ais523> Vorpal: there's a lot of impl-defined stuff in POSIX
18:36:17 <Vorpal> ais523, so... what do other echos do with -n
18:36:28 <ais523> Vorpal: some echo it literally
18:36:57 <pikhq_> Vorpal: That's the traditional UNIX behavior.
18:37:07 <ais523> I've been discovering all sorts of interesting things about POSIX recently
18:37:13 <ais523> such as mount(2) being nonstandard
18:37:23 <ais523> it's Linux-specific; I certainly didn't expect that
18:37:23 <Vorpal> pikhq_, so why did POSIX say that -n was implementation defined at all? Why not just don't have it?
18:37:35 <ais523> Vorpal: because some echos do suppress final newline on -n
18:37:40 <Vorpal> ais523, afaik mount(1) is non-standard too
18:37:51 <pikhq_> Vorpal: Echo cannot accept arguments.
18:37:59 <Vorpal> pikhq_, yes it can... -n :P
18:38:04 <ais523> Vorpal: mount(1) isn't a syscall, so I didn't look at it
18:38:18 <pikhq_> Vorpal: POSIX forbids echo from accepting arguments.
18:38:20 <Vorpal> pikhq_, according to ais523 and POSIX?
18:38:34 <pikhq_> Vorpal: It also leaves "-n" implementation-defined.
18:38:47 <pikhq_> Vorpal: But it's not an argument.
18:38:48 <Vorpal> pikhq_, which leaves a way open for it to accept options :P
18:38:52 <ais523> oh, so it doesn't take -n as an argument, it takes it as a string that might cause it to act differently
18:39:09 <Vorpal> ais523, though at least freebsd has mount(1) I know. Probably a few other *nix too
18:39:26 <pikhq_> Vorpal: mount(1) is available in pretty much every UNIX.
18:39:29 <ais523> I imagine most *nix do, because the FHS is written in a way that expects mount(1) exists
18:39:34 <ais523> so I'm pretty surprise it isn't standard
18:39:51 <ais523> and I'd expect mount(2) to exist in a range of Unices too, just because mount(1) has to do the mounting somehow
18:40:05 <Vorpal> pikhq_, hm. what is the difference between POSIX and Unix exactly? The SuS I guess? But I haven't seen that for ages
18:40:21 <pikhq_> Vorpal: POSIX is a "portable operating system" specification.
18:40:36 <Vorpal> pikhq_, where is Unix defined then, the extra bits like mount(1) and so on
18:40:37 <pikhq_> Vorpal: UNIX is a class of operating systems which generally meet the above spec.
18:40:52 <ais523> for instance, I think Cygwin aims to be POSIXy, not UNIXy
18:40:57 <Vorpal> pikhq_, Single Unix Specification, remember seeing that somewhere...
18:41:04 <Vorpal> but that was like years ago
18:41:06 <ais523> btw, I went and wrote my own statically-linked version of true(1)
18:41:11 <Vorpal> 2004 edition or something
18:41:14 <pikhq_> The SUS is a strict superset of POSIX.
18:41:21 <ais523> any guesses as to which syscalls it uses? (it uses three of them)
18:41:30 <Vorpal> pikhq_, I haven't seen any SUS for POSIX.1-2008 yet
18:41:38 <ais523> err, four, I think there's a call to brk in there too
18:41:39 <Vorpal> ais523, well exit is one
18:41:46 <ais523> yep, that's the obvious one
18:42:01 <ais523> it also uses mmap (presumably startup code getting memory)
18:42:03 <Vorpal> pikhq_, isn't that for the 2001 version?
18:42:06 <ais523> and uname, which is the WTFy one
18:42:17 <zzo38> You could make "true" and "false" programs shell builtins or write them as programs using machine code, it would not be too difficult to do on each machine; you can also have a C version of the program in case using on computers that it hasn't been ported yet.
18:42:32 <pikhq_> Vorpal: No, that's v3.
18:42:33 <ais523> zzo38: true generally doesn't need to be massively optimised
18:42:39 <ais523> although I'm a little unsure as to what it's doing calling uname
18:42:40 <pikhq_> Also, mount is not SUS.
18:42:41 <Vorpal> zzo38, it is a shell built-in in bash
18:42:50 <Vorpal> true is a shell builtin
18:42:51 <ais523> and this is a version of true I wrote myself, it called no functions
18:42:58 -!- Taneb has joined.
18:42:58 <ais523> Vorpal: $ type `which true`
18:43:06 <Vorpal> ais523, yes, it is that as well
18:43:14 <zzo38> Of course it doesn't *need* to be massively optimized, although it can be done so easily since you don't need all the C stuff and so on.
18:43:22 <pikhq_> zzo38: You need to be able to exec true and false in POSIX.
18:43:23 <Vorpal> /bin/true is /bin/true
18:43:27 <ais523> happily, ls isn't segfaulting any more
18:43:44 <ais523> I think I may actually have found a kernel bug; my statically-linked version of cat ended up with two stacks at one point, which overlapped
18:43:59 <pikhq_> Vorpal: Also fun: there is precisely one file guaranteed to exist in POSIX.
18:44:02 <ais523> but it's hard to tell, because what I was doing was insane
18:44:04 -!- copumpkin has quit (Ping timeout: 264 seconds).
18:44:07 <ais523> I'll see if I can reproduce it standalone
18:44:23 <ais523> Vorpal: it turns out that Linux doesn't like you mmaping to the stack guard page
18:44:30 <Vorpal> ais523, I can imagine that
18:44:31 <zzo38> pikhq_: Yes you can just make a machine code file. Such optimization is not particularly important although it can be done very easily.
18:44:34 -!- copumpkin has joined.
18:44:35 <Vorpal> ais523, why the fuck would you even do that
18:44:35 <ais523> (the page before the stack that's unallocated so stack overflows can cause segfaults)
18:44:45 <ais523> Vorpal: well, nothing was using it...
18:44:57 <ais523> but it reacts to it by allowing the map and shrinking the stack one page
18:45:00 <zzo38> (You might even be able to store the program in the ELF header, and this can be done for some other programs too)
18:45:02 <Vorpal> pikhq_, where is /dev/zero defined btw? I kind of relied on that in some shell scripts I think. Nothing to serious if the file is not there
18:45:10 <Taneb> Just wrote =+ 1 instead of += 1
18:45:13 <ais523> the bug seems to happen if you do it repeatedly, after doing it twice I ended up with two stacks of different lengths, according to /proc/self/maps
18:45:28 <Vorpal> <ais523> Vorpal: well, nothing was using it... <-- were you out of other available pages to mmap?
18:45:38 <Taneb> Plus side is, I have ice cream
18:45:44 <Vorpal> ais523, did you even *need* to specify a specific address to mmap it at?
18:45:45 <ais523> but I'd written "mmap the last available page before the stack", without thinking of implications
18:45:54 <pikhq_> Vorpal: Traditional behavior.
18:46:01 <Vorpal> ais523, why on earth? Hardware related?
18:46:03 <ais523> although the exact value didn't matter, I needed to specify something
18:46:06 <ais523> and no, not because of that
18:46:20 <ais523> this program is insane, I thought you'd realised that by now
18:46:32 <ais523> I mean, how else can you make ls segfault?
18:46:34 <Vorpal> ais523, how soon until you can tell us what on earth it does
18:46:42 <ais523> Vorpal: when I've finished it)
18:46:54 <pikhq_> Along with /dev/tty, and *nothing else*.
18:46:56 <zzo38> The reason they purchased ice cream is because ice cream is good to eat and anyways they don't sell cane. O no, their mother will get mad at them when they get home.
18:47:00 <Vorpal> ais523, any idea when that is? next week? next month? next year? in 10 years?
18:47:14 <ais523> about a week of actually working on it
18:47:19 <ais523> and I probably won't work on it continuously
18:47:22 <Vorpal> ais523, You are making interest sky rocket when you keep mentioning it like this :P
18:47:40 <ais523> btw, what API does X use to actually draw on screen? framebuffer?
18:47:46 <Vorpal> ais523, I will be feel very let down if it isn't something spectacular!
18:47:55 <Vorpal> ais523, I presume it depends on the driver.
18:48:07 <ais523> annoying, but makes sense
18:48:11 <ais523> I don't want to have to reimplement X too
18:48:13 <Vorpal> ais523, for most drivers, part is done in kernel
18:48:25 <Vorpal> ais523, not only for binary drivers
18:48:34 <ais523> reimplementing init was easy, reimplementing mmap only took a day or so (because I hadn't realised that ASLR was turned on, and then it took me a while to figure out how to turn it off for just one process)
18:49:28 <Vorpal> ais523, my guess for something like nvidia binary driver would be that it mmaps a range of shared pages with the kernel module... And what the kernel does is hard to know, some DMA thing probably
18:49:40 <pikhq_> ais523: The fuck are you *doing*?
18:49:52 <ais523> pikhq_: it's a secret for now
18:50:01 <Vorpal> ais523, I would presume a similar setup for most other drivers
18:50:09 <ais523> at the moment specifically, I'm making a list of all the syscalls in Linux and sorting them into categories
18:50:10 <Vorpal> ais523, at least all that have hardware acceleration
18:50:34 <Vorpal> ais523, somehow I can't imagine controlling a screen by PIO using syscalls for each written byte :P
18:50:35 <pikhq_> Anyways, *most* Linux X drivers are actually going through the DRM layer.
18:50:36 <ais523> Linux actually has undocumented syscalls, but from a grep of the kernel, they all appear to do nothing
18:50:42 <pikhq_> Which is not even *slightly* X-specific.
18:51:00 <Vorpal> ais523, undocumented ones such as?
18:51:03 <ais523> what I'm trying to do with that is to confuse X into thinking it's talking to the kernel, when in fact it's talking to a usermode process
18:51:08 <ais523> and to grab its output/input
18:51:29 <pikhq_> ais523: Um, good luck in the general case.
18:51:47 <Vorpal> ais523, that uh... How would you grab it's output? That doesn't even make sense. Use a X server that targets vnc or such instead. Much saner
18:51:55 <pikhq_> ais523: It's effectively a kernel-mode process for some drivers.
18:51:57 <ais523> I'm trying to work out whether it's easier or harder than reimplementing X
18:52:21 <Vorpal> ais523, just reuse an X server that uses vnc as backend
18:52:30 <zzo38> There is also Wayland, although in my opinion neither X nor Wayland is designed perfectly.
18:52:35 <ais523> hmm, that might be worth considering
18:52:39 <pikhq_> Namely, anything where it needs to have the GPU's framebuffer mmaped.
18:52:59 <Vorpal> ais523, I assume you don't care about hardware acceleration anyway... Because that will be impossible in your setup.
18:53:03 <ais523> what about SDL? it appears to use framebuffer as a fallback (I actually ran Wesnoth on the control-alt-F1 console, although I had to be root), but I can't figure out what it's using as its first choice
18:53:10 <ais523> Vorpal: I do care, I want to make sure it isn't being used
18:53:18 <pikhq_> ais523: Depends on environment variables.
18:53:26 <Vorpal> ais523, then the vnc variant should work :P
18:54:02 <Vorpal> ais523, I believe there is an x11-framebuffer server too
18:54:12 <Vorpal> forgot what it was called
18:54:21 <ais523> the one thing I've pretty much admitted defeat on is UIDs, I don't think you can namespace those in Linux
18:54:44 <ais523> Vorpal: well, if everything went through framebuffer, then it'd make life easier, as framebuffer is just the one character special device
18:54:48 <Vorpal> pikhq_, do you know where the code for the loopback interface is in the kernel? It isn't drivers/net/loopback.c, at least not for the actual packet handling...
18:55:24 <Vorpal> ais523, that is just one X11 backend though. You are not going to pull this off for the general case.
18:56:20 <ais523> it doesn't need to be the general case wrt X backends
18:56:25 <pikhq_> Meh, a conforming C environment is permitted to make X just summon nasal demons, anyways.
18:56:37 <ais523> most programs don't care about the backend, just the frontend
18:57:14 <zzo38> What I would think can be good is to have a SDL-like interface, where you have different windows and the window manager owns the root window and can intercept things from the child windows and do some other stuff. And can also have clipboard buffers such as PRIMARY, SECONDARY, CLIPBOARD. The "screen size" is actually the size of the window
18:57:22 <Vorpal> ais523, well as long as you don't plan to get nvidia-settings, catalyst-control-center or other similar softwares running :P
18:57:34 <ais523> Vorpal: heh, I think I'll give a miss on nvidia-settings
18:57:41 <ais523> I don't think I'd expect that to work
18:57:47 <ais523> even ping(1) I'm putting off for later
18:58:17 <Vorpal> ais523, hm shouldn't be TOO hard in 3.0 what with the new SOCK_ICMP thingy
18:58:48 <ais523> yep, it's doable, it's just not a priority
18:58:55 <Vorpal> ais523, http://kernelnewbies.org/LinuxChanges#line-69
18:58:58 <ais523> the problem is simulating the other end of the connection
18:59:08 <ais523> to get it to send the pong
18:59:38 <Vorpal> ais523, you know what might be easier? Running two linux in qemu and set up a virtual network between them
18:59:48 <zzo38> It should do so that you can run Linux properly with various devices but not needing any proprietary drivers running on the CPU.
19:00:09 <zzo38> (And not even included in the system)
19:00:37 <ais523> Vorpal: well, yes, that seems like the simplest method
19:00:46 <Vorpal> ais523, I'm pretty certain you are doing some sort of layer-above-kernel to virtualise or emulate user space programs, making them not know what their environment is
19:00:58 <Vorpal> I don't know why you are doing it this insane way you are doing though
19:01:08 <Vorpal> so probably I have missed some important thing here
19:01:13 <ais523> Vorpal: yes, that's a decent description for what I'm doing, although it doesn't explain why
19:01:51 <zzo38> Is there USB Plan 9 Protocol drivers for Windows and Linux? (and also FreeBSD and Mac OS X)
19:02:12 <Vorpal> ais523, oh there are plenty of reasons, I just don't know which one. Could be as a security measure for example. Or for running older software. Or for a controlled testbed environment (the "simulating the other end of the connection" bit seems to point at this)
19:02:19 <Vorpal> and there are plenty of other options
19:02:50 <Vorpal> ais523, that "always pid 2" points towards a controlled reproducible testbed environment too
19:03:01 <zzo38> Are there any USB devices that use Plan 9 Protocol?
19:03:15 <ais523> Plan 9 isn't all that popular among hardware manufacturers
19:03:24 <Vorpal> wouldn't USB devices use the USB protocol?
19:03:38 <Vorpal> I mean, how the fuck would it even work otherwise
19:04:18 <zzo38> Vorpal: No, I mean using the Plan 9 Protocol on top of the USB protocol.
19:04:36 -!- Phantom_Hoover has joined.
19:04:39 <Vorpal> zzo38, on top of which USB device type protocol?
19:04:50 <Vorpal> I mean it defines things like mass storage, HID, and so on iirc
19:05:09 <Vorpal> hm I guess there is some type reserved for "vendor specific"
19:05:12 <zzo38> I don't know, maybe it is necessary to add a new device type (or maybe not)
19:05:51 <zzo38> Or as an alternate data on top of an existing protocol depending on the device (if this is possible)
19:06:49 <zzo38> Because I think they should be designed any new kind of USB device, instead of using proprietary protocols you can use Plan 9 Protocol instead.
19:08:01 <zzo38> Does Plan 9 even have a driver for using Plan 9 Protocol on USB?
19:08:18 <Vorpal> what /is/ the plan 9 protocol exactly?
19:08:56 <pikhq_> Vorpal: It's Plan 9's remote filesystem protocol.
19:09:05 <pikhq_> And, being Plan 9, therefore Plan 9's remote everything protocol.
19:09:15 <Vorpal> pikhq_, so not suitable for general purpose USB really?
19:09:25 <Vorpal> pikhq_, what about interrupts?
19:09:29 <pikhq_> Remember, everything is a file.
19:10:00 <Vorpal> pikhq_, yes I know. But what about interrupts, suspending the usb bus, and so on
19:14:20 * Phantom_Hoover notes that Dresden Codak remains on the tenth strip of an arc that began over a year ago.
19:14:39 <Sgeo> I want to try OS/2 Warp now
19:16:40 * pikhq_ notes that Dresden Codak has the worst update schedule.
19:17:10 <pikhq_> Phantom_Hoover: That is the worst update schedule.
19:17:38 <Phantom_Hoover> pikhq_, can it be called an update schedule if there are no updates?
19:17:42 <Vorpal> pikhq_, what about that webcomic that elliott talk about. That hardly ever updates?
19:17:52 <Vorpal> I forgot what it was called?
19:18:02 <Vorpal> Phantom_Hoover, I think it had Torvalds in it
19:18:36 <Vorpal> Phantom_Hoover, that hardly ever updates either
19:18:39 <Phantom_Hoover> The one which, when it updates, will be the harbinger of the apocalypse.
19:19:11 <Vorpal> my point was, that must be a worse update schedule
19:20:56 <Phantom_Hoover> For there to be an update schedule, updates must, at some point, come out.
19:21:06 <Vorpal> Phantom_Hoover, it is an update-schedule: int days_to_next_updates = random()
19:21:16 <ais523> can't they be scheduled to come out once every ten years, or whatever?
19:21:18 <Phantom_Hoover> You could just as well ask the update schedule of a banana.
19:21:21 <ais523> Vorpal: what's RAND_MAX on your system? 2^32-1?
19:21:31 <Vorpal> ais523, well random returns a long int on my system
19:21:42 <Vorpal> ais523, rand() != random() though
19:21:49 <Vorpal> different types on return value
19:21:55 <Phantom_Hoover> ais523, indeed, but to infer this two updates ten years apart would have to have come and less than ten years would have had to have passed since the last.
19:22:36 <ais523> Phantom_Hoover: what if it was stated rather than inferred?
19:23:05 <Phantom_Hoover> ais523, then it would only be worth considering if it was not completely at odds with the evidence.
19:23:26 <fizzie> random() in POSIX is said to return in the [0, 2^31-1] range.
19:23:51 <Phantom_Hoover> Admittedly, as it stands, ELER is scheduled to update on 21st December 2012.
19:23:52 <fizzie> While rand() returns from 0 to RAND_MAX, and RAND_MAX >= 32767.
19:23:54 <ais523> ooh, thanks for linking me that page about changes in 3.0
19:24:14 <ais523> setns() looks... useful for what I'm doing
19:24:22 <ais523> although the workaround with clone() flags is working well for me so far
19:25:00 <Vorpal> ais523, I presume you are using ptrace for this? To be able to catch system calls happening
19:25:19 <ais523> I tried single-step but it was too slow
19:25:28 <Vorpal> ais523, that still doesn't deal with stuff like me opening /dev/console and doing ioctls on it
19:25:36 <Vorpal> I have a program that does that even
19:25:39 <ais523> I'm going to have to, umm, reimplement all of /dev
19:25:50 <ais523> except /dev/null and /dev/zero, those were easy
19:25:58 <Vorpal> ais523, fun. ALSA is going to be very very latency sensitive :P
19:25:59 <ais523> as the existing devices work for those
19:26:07 <pikhq_> ais523: Add /dev/tty and you will have reimplemented everything a LSB application can use.
19:26:20 <Vorpal> pikhq_, what, really!?
19:26:24 -!- oerjan has joined.
19:26:38 <ais523> I'm probably going to make a pty and connect stdout/in/err to it
19:26:43 <ais523> I may as well place it at /dev/tty too
19:26:51 <ais523> you can copy ptys just by copying device numbers, right?
19:26:52 <Vorpal> what *is* /dev/null btw?
19:27:04 <Vorpal> pikhq_, and that isn't in LSB?
19:27:04 <ais523> Vorpal: it's a character special file, reads always return EOF, writes always succeed but do nothing
19:27:15 <pikhq_> Vorpal: /dev/null, /dev/zero, and /dev/tty are in LSB.
19:27:17 <fizzie> ais523: Don't forget /dev/full.
19:27:18 <Vorpal> and why on earth is /dev/full useful?
19:27:23 <ais523> Vorpal: for testing programs
19:27:34 <pikhq_> Vorpal: That is the entire contents of the LSB /dev hierarchy.
19:27:34 <ais523> you can redirect stdout to /dev/full, and see if they behave gracefully or stupidly
19:27:54 <ais523> $ cp /etc/passwd /dev/full
19:27:56 <ais523> cp: writing `/dev/full': No space left on device
19:28:18 <ais523> it's a great way of checking to see if people are checking the return value of fclose()
19:28:19 <Vorpal> ais523, hm... there are some devices in my /dev that would be very hard to do in user space
19:28:35 <ais523> Vorpal: well, it depends on if people are actually using them
19:28:39 <Vorpal> pikhq_, what about /dev/urandom?
19:28:46 <ais523> I'm starting off with an empty /dev, and implementing things in it as necessary
19:28:50 <Vorpal> ais523, /dev/random and /dev/urandom will be easy too
19:29:06 <Vorpal> ais523, ... definitely testbed :P
19:29:32 <ais523> I thought of putting /dev/zero at each of them, but I'm worried some programs will go into infinite loops if their randomness sources do that
19:29:36 <Vorpal> ais523, /dev/snapshot, /dev/vga_arbiter /dev/rtc0, /dev/sda
19:29:48 <Lymee> Make /dev/random return this:
19:29:52 <Vorpal> ais523, of course if you don't want to implement fake "running as root" it will be way easier
19:29:53 <ais523> /dev/sda is easy, it's readable only by root
19:30:00 <ais523> and I'm not faking running as root
19:30:03 <Lymee> > map (%256) [0..]
19:30:10 <ais523> partly because root can trivially escape a chroot
19:30:20 <ais523> (mkdir x; chroot x; cd ..; chroot .)
19:30:26 <Vorpal> ais523, then you make a lot of system calls return EACCESS or similar
19:30:31 <oerjan> lambdabot is missing? :(
19:30:34 <ais523> I think that mechanism of escaping chroots is in there deliberate
19:30:43 <ais523> Vorpal: I'm not emulating every system call
19:30:46 <ais523> just tinkering with their params a bit
19:30:58 <pikhq_> ais523: Stallman didn't design the chroot syscall.
19:31:19 <oerjan> Lymee: you can use EgoBot, although it is a bit different, and has trouble with infinite list output (so use take to shorten it)
19:31:22 <Vorpal> ais523, also /proc/self will be fun
19:31:42 <Vorpal> ais523, especially the very weird symlinks found in there...
19:31:43 <ais523> Vorpal: that's one of the few things I have workign correctly already
19:31:54 <tswett> You know, NOMW could be made Turing-complete (or whatever the probabilistic equivalent is) using a crossover square, I think.
19:31:55 <oerjan> Lymee: oh also % won't be imported by default
19:31:56 <ais523> in fact, I'm catting things in /proc/self in order to test my program
19:31:58 <Vorpal> ais523, what? symlinks to removed files in /dev/fd wortk?
19:32:11 <tswett> Say that if a square is +, then a bobule can enter it, but it cannot leave by a 90-degree angle from the way it entered.
19:32:15 <ais523> did you know that Linux allows you to mount multiple proc filesystems /that give different results/?
19:32:19 <oerjan> !haskell take 80 $ map (Ratio.%256) [0..]
19:32:24 <EgoBot> [0%1,1%256,1%128,3%256,1%64,5%256,3%128,7%256,1%32,9%256,5%128,11%256,3%64,13%256,7%128,15%256,1%16,17%256,9%128,19%256,5%64,21%256,11%128,23%256,3%32,25%256,13%128,27%256,7%64,29%256,15%128,31%256,1%8,33%256,17%128,35%256,9%64,37%256,19%128,39%256,5%32,41%256,21%128,43%256,11%64,45%256,23%128,47%256,3%16,49%256,25%128,51%256,13%64,53%256,27%128,55%256,7%32,57%256,29%128,59%256,15%64,61%256,31%128,63%256,1%4,65%256,33%128,67%256,17%64,69%256,35%128,71%256,9%32
19:32:29 <Vorpal> ais523, yes, all that fancy namespace crap
19:32:34 <Vorpal> ais523, my kernel is compiled without it
19:32:41 <Vorpal> because to me, it is useless
19:32:44 <ais523> well, you won't be able to run my program then
19:32:46 <ais523> it's pretty useful to me
19:32:49 <Lymee> !haskell take 80 $ map ((flip mod) 256) [0..]
19:32:52 <EgoBot> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79]
19:33:00 <Vorpal> ais523, well if you tell me what your program is I might recompile the kernel :P
19:33:07 <oerjan> Lymee: you can use (`mod` 256)
19:33:15 <ais523> those options are on by default, right?
19:33:17 -!- elliott_ has joined.
19:33:19 <Vorpal> ais523, btw, have you check if plash does what you want?
19:33:23 <ais523> othewrise everyone will have to recompile their kernel
19:33:31 <elliott_> ais523: oh, have you revealed what it is?
19:33:39 <Vorpal> ais523, uh no idea. I incrementally updated my .config over the years
19:33:45 <ais523> Vorpal's been guessing, and come to similar conclusions to you
19:34:04 <Vorpal> elliott_, no but he leaked enough and I'm pretty certain he is doing something like virtualisation or emulation of user space programs
19:34:23 <elliott_> "for what purpose" is the part I guessed at
19:34:24 <Vorpal> elliott_, *probably* for some sort of controlled reproducible test bed system.
19:34:50 <ais523> that is a good description, although I don't mind you figuring out that part, because it's reasonably obvious and not the whole thing
19:35:02 <Vorpal> elliott_, since it seems he wants to emulate remote network (wrt ping) and /dev/urandom "wouldn't be easy"
19:35:10 <Sgeo> Don't you hate it when you try to do something awesome, then realize it's completely mathematically impossible?
19:35:11 <ais523> I turned off networking so I wouldn't have to do that
19:35:37 <ais523> Sgeo: it doesn't happen too much
19:35:41 -!- sebbu2 has joined.
19:35:41 -!- sebbu2 has quit (Changing host).
19:35:41 -!- sebbu2 has joined.
19:36:10 <oerjan> Lymee: every ordinary identifier can be turned into an operator by putting `` around it, and every operator identifier can be turned into an ordinary one by putting () around it. (although you cannot iterate this)
19:36:33 -!- sebbu has quit (Ping timeout: 258 seconds).
19:37:17 <oerjan> although you need a ghc option to do it for types
19:38:28 <Vorpal> oerjan, it is sad that you can't iterate it. That would allow stuff like `(* 2 +)` or such
19:38:32 <Vorpal> (well not exactly that)
19:38:54 <oerjan> Vorpal: that's not quite iterating, although yes that might be useful
19:39:09 <Lymee> That could be an extension, right?
19:39:21 <Vorpal> oerjan, but iterating it is only really useful if you can build up expressions between the iterations
19:39:24 <oerjan> but afaik it hasn't been implemented
19:39:38 <Vorpal> oerjan, I mean `(`(+)`)` is utterly useless
19:39:57 <ais523> Agda seems to use _+_ rather than (+); is there any reason for the change?
19:40:09 <ais523> _+_ looking more mathematical, perhaps?
19:40:17 <ais523> (its syntax is otherwise mostly identical to Haskell's with a few extensions)
19:42:36 <oerjan> ais523: isn't that sort of part of its mixfix syntax, you can have as many _'s as you want
19:42:49 <ais523> aha, that may be what it's about
19:42:51 <ais523> I didn't know it did that
19:42:53 <zzo38> Can a Haskell code be prettyprinted?
19:42:57 <ais523> and that's quite a nifty feature
19:43:00 * oerjan doesn't actually know agda
19:43:00 <ais523> zzo38: I don't see why not
19:43:12 <zzo38> And what is _+_ and (+) means?
19:43:13 <ais523> but it turns out I have an Agda fanatic as a coworker
19:43:19 <ais523> and want to be able to at least vaguely understand what he's doing
19:43:39 <oerjan> zzo38: those are agda's and haskell's way of referring to the + operator as a value, respectively
19:44:07 <ais523> oerjan: actually, in Agda there's no + operator by default, you have to implement it by hand
19:44:18 <Sgeo> http://www.impredicative.com/ur/tutorial/intro.html not that far down, but so far, I think I can wrap my brain around it
19:44:45 <Sgeo> I spoke too soon, this syntax I need to slow down for
19:45:32 <Sgeo> Awesome, compose is more understandable than id :/
19:45:47 <oerjan> zzo38: there is a program called hs2tex or something like that which prettyprints haskell, i believe people sometimes use it for math papers. it replaces -> and stuff with proper math symbols.
19:45:51 <zzo38> Yes I do think being able to refer to operators as function value can be useful in some cases.
19:45:57 <Sgeo> (Well, compose has more... elaboration in its syntax, which makes it more uunderstandable by context)
19:46:04 <Sgeo> fun id [a] (x : a) : a = x
19:46:09 <Sgeo> fun id [a] (x : a) : a = x
19:46:15 <Sgeo> fun compose [a] [b] [c] (f : b -> c) (g : a -> b) (x : a) : c = f (g x)
19:46:40 <oerjan> zzo38: also ghc has an option for allowing unicode for many things
19:46:41 <zzo38> oerjan: Does it just put every line without > at the start directly as TeX codes?
19:47:01 <Vorpal> <ais523> oerjan: actually, in Agda there's no + operator by default, you have to implement it by hand <-- not in the standard library!?
19:47:08 <zzo38> And lines with > prettyprinted Haskell codes converted to TeX?
19:47:11 <ais523> Vorpal: you even have to implement integers by hand
19:47:16 <oerjan> zzo38: hm i would guess it uses the \begin{code} convention
19:47:22 <Vorpal> ais523, what does the standard library have then
19:47:25 <ais523> my coworker's master's project was about automatically detecting people trying to implement integers and optimising them into native integers
19:47:43 <Vorpal> ais523, why not make a standard library with these in?
19:48:14 <ais523> possibly there is one; I'm not too clear on the details
19:48:50 <oerjan> <zzo38> Yes I do think being able to refer to operators as function value can be useful in some cases. <-- it is quite frequently used
19:48:51 <zzo38> Well I suppose it can be modified to use > if you prefer that way
19:49:20 <oerjan> !haskell zipWith (+) [1..10] [100, 200.. 1000]
19:49:23 <EgoBot> [101,202,303,404,505,606,707,808,909,1010]
19:49:35 <zzo38> oerjan: Well, in Haskell perhaps it is very useful although in other programming language with function values it can be useful in a few cases to be able to make such thing.
19:51:35 <oerjan> <Sgeo> fun id [a] (x : a) : a = x <-- i guess agda's type system requires that for flexible use. the a would be an implicit type parameter, i think?
19:52:00 <Sgeo> That's Ur that I pasted
19:52:04 <zzo38> For proper Knuth-style literate programming, you would also have index, table of contents, named chunks, and possibly a macro preprocessor if it is useful. (As well as commands that affect how the different kind of operators and so on are treated when making the printout)
19:52:37 <oerjan> Sgeo: i thought you were still talking about agda. although my guess for what the ur means still stands.
19:52:58 <Sgeo> I was never talking about Agda. Other people were talking about Agda.
19:53:12 <Sgeo> And... I _think_ that guess is correct
19:53:21 <zzo38> Are there symbols or combinations of symbols not used in Haskell? I read the documentation. Is `` (with nothing in between) invalid, for example? Others?
19:53:25 <oerjan> Sgeo: which is why i was confused, you gave a link and i frequently don't bother to visit links
19:53:31 <Sgeo> "Then there's parametric polymorphism. Unlike in ML and Haskell, polymorphic functions in Ur/Web often require full type annotations. That is because more advanced features (which we'll get to in the next chapter) make Ur type inference undecidable."
19:53:36 <oerjan> so i assumed you were linking to an agda tutorial
19:54:12 <oerjan> Sgeo: oh it's that dependent web language that was posted on reddit?
19:54:43 <oerjan> with a for hire ad, iirc
19:54:44 <Sgeo> I didn't know it was posted on Reddit, but "dependent web language" sounds right. Well, for Ur/Web. Ur itself is not necessarily web related
19:55:16 <oerjan> oh so there's a plain ur too...
19:55:28 * oerjan may not have bothered to visit that link either ;D
19:55:29 <zzo38> But what else I want to have is Literate LLVM, maybe I will invent that some day (I can call it LWEB maybe)
19:55:40 <zzo38> (with file extension .llw)
19:55:57 <ais523> I dislike LLVM, it makes all sorts of assumptions that are true in practice but I don't like
19:56:31 <zzo38> There are a few things I also dislike about LLVM, although I have made suggestions to correct these things.
19:56:45 <elliott_> 02:59:42: <itidus20> Yet Another Haskell Tutorial by some guy Hal Daume
19:56:57 <elliott_> monqy: it's only ever been alive in GHC, I think
19:56:58 <zzo38> One thing I like to have would be constraint analysis.
19:57:10 <monqy> about what is that itidus20 quote
19:57:19 <zzo38> (I even have ideas about how constraint analysis would work.)
19:57:22 <elliott_> oh wait this is an ancient log
19:57:36 <oerjan> zzo38: well if you use latex you can use its table of contents feature, i assume
19:57:49 <oerjan> zzo38: i believe `` is a syntax error, yes.
19:58:04 <elliott_> <oerjan> zzo38: well if you use latex you can use its table of contents feature, i assume
19:58:09 <elliott_> oerjan: don't talk to zzo about latex :O
19:58:27 <ais523> Oracle have bought ksplice?
19:58:30 <ais523> I didn't see that one coming
19:58:36 <ais523> although in retrospect, it's not a ridiculous thing for them to do
19:58:36 <oerjan> but that's what most people using hs2tex would be doing
19:59:12 <zzo38> That is, you can use things that would be syntax error in Haskell to get out of Haskell code mode, if making a Knuth-style literate programming system for Haskell...
19:59:38 <Sgeo> I don't know if I understand enough ML to grasp this module system stuff :/
19:59:52 <oerjan> zzo38: i believe (almost?) every printable ascii character is either alphanumeric, a legal operator character, or used in the syntax.
19:59:55 <Sgeo> My understanding of everything prior was fueled by my understanding of Haskell
19:59:58 <Vorpal> <ais523> Oracle have bought ksplice?
20:00:45 <zzo38> oerjan: Yes, but some combinations can be syntax errors, which is why you can use those combinations for such things.
20:01:05 <zzo38> Is `` the only one such or is other combinations possible that can do that?
20:01:07 <oerjan> zzo38: and mostly everything which does not combine into an operator or an identifier (which might be a keyword in either case) will split
20:01:22 <ais523> most characters are legal inside strings
20:01:30 <ais523> I suppose """ may be a combination that isn't legal in any context at all but comments
20:01:38 <ais523> how do Haskell comments work again?
20:01:57 <ais523> (or can you write a "string1""string2" in Haskell?)
20:02:08 <oerjan> zzo38: '' is also illegal at the start of a token i think, since ' needs to be escaped inside character classes. and also anything with ' ...more than one character representation... '
20:02:48 <oerjan> inside strings, you can get errors due to nonexisting escapes
20:03:02 <Vorpal> oerjan, could do that as an extension. Overloaded Character literals or something
20:03:09 <oerjan> oh wait \f _is_ an escape
20:03:20 <oerjan> !haskell "\possibly not fnord"
20:03:33 <Vorpal> oerjan, it probably drops errors
20:03:42 <oerjan> Vorpal: no, it sends them in DCC
20:03:49 <Vorpal> oerjan, ah.. DCC is broken for me
20:03:55 <Sgeo> Ok, so if I understand this correctly, kinds are ... bigger in Ur than in Haskell, in that they encompass more than just types
20:04:05 <Sgeo> Kinds are the "types" of more than types
20:05:15 <Sgeo> Oh, derp, I misunderstood what it meant by "type families", so now that bit's clearer. What I said just before is still true though
20:06:30 <oerjan> zzo38: mind you '' is still legal inside other identifiers, because of haskell's decision to support the common mathematical x', x'' naming
20:06:55 <Sgeo> Ok, I think I'm getting this
20:07:28 <zzo38> I read the document it seems the "\&" is good, some C document says only 2 hex digits after \x but I have had it allow any number of "\x000000000000000" is still a single character, for example. So, if it had "\&" like Haskell then you can avoid that. Maybe I can make a next version of Enhanced CWEB to support such things and convert it to work with a C compiler.
20:08:08 <oerjan> zzo38: ,+ is another sequence which i don't think is legal, because most operators cannot begin an unparenthesized expression
20:08:37 <oerjan> (, being a delimiter and so not part of an operator)
20:09:12 <Vorpal> oerjan, it would be legal in a haskell comment
20:09:46 <zzo38> Yes, and in strings, but there would be a parser to check for these things which needs to do so anyways for prettyprinting and indexing.
20:10:35 <oerjan> <ais523> I dislike LLVM, it makes all sorts of assumptions that are true in practice but I don't like <-- well if you're big enough you can probably get a patch in to add options, like the ghc people did
20:10:48 <ais523> oerjan: it's more its fundamental design
20:10:54 <Vorpal> ais523, what sort of things does it assume?
20:11:07 <zzo38> Maybe some things can be done using LLVM metadata?
20:11:20 <elliott_> 12:49:55: <CakeProphet> I think Perl was the earliest language in the C family to have map and filter operators.
20:11:24 <ais523> Vorpal: that all its commands can be implemented via native-code commands that have the same semantics as one of its operators
20:11:35 <zzo38> That is, have a metadata to tell it what thing not to assume, maybe
20:11:49 <pikhq_> If it can be said to have a family at all.
20:12:12 <Vorpal> ais523, uh they probably can. Using something like libgcc in worst case
20:12:20 <oerjan> <elliott_> oh dear <-- you think YAHT is too obsolete? i already advised him that he should get the haskell platform instead of hugs if he was serious (he said, hypocritically >:) )
20:12:25 <ais523> Vorpal: it's a false assumption for BF
20:12:47 <Vorpal> ais523, Ah, what in specific can you not implement by emulation?
20:12:52 <elliott_> oerjan: Yeah, I told him about LYAH later I think
20:13:01 <ais523> gcc tries not to make that assumption; it doesn't actually /work/, but that's due to bugs not design issues
20:13:03 <elliott_> oerjan: and I saw that at the time, that's what made me realise it was an old conversation
20:13:05 <pikhq_> I mean... Haskell's more C family than Perl.
20:13:12 <pikhq_> Because Haskell allows for direct memory access.
20:13:20 <ais523> Vorpal: well, BF requires a temporary to do the equivalent of MOV from x86
20:13:27 <pikhq_> Technically, C doesn't. Just common implementations do.
20:13:33 <ais523> gcc has actually taken that possibility into account; LLVM hasn't
20:13:47 <pikhq_> elliott_: I realise that Haskell isn't very C-like. Neither is Perl.
20:14:04 -!- CakeProphet has quit (Ping timeout: 264 seconds).
20:14:08 <ais523> Perl also allows for direct memory access, I think, somehow
20:14:13 <Vorpal> ais523, okay, but surely that could be done in the code gen by having every other cell be a temporary?
20:14:13 <ais523> probably a really obscure method involving libraries
20:14:23 <pikhq_> Oh, right, it *is* Perl.
20:14:28 <ais523> Vorpal: gcc-bf reserves a temporary for that
20:14:54 <ais523> but it's ugly having to do most of the code generation in ld
20:14:55 <Vorpal> ais523, so it can be done then in bf
20:15:02 <oerjan> <ais523> (or can you write a "string1""string2" in Haskell?) <-- yes
20:15:04 <ais523> I'd rather have the compiler do it
20:15:04 <Vorpal> I mean it isn't fundamentally impossible
20:15:23 <ais523> gcc-bf I mostly gave up on when it came to implementing rightshifts and multiplication
20:15:40 <ais523> elliott_: I've been getting no reply from lambdabot trying that
20:15:48 <ais523> looking at the users lists, I suspect it's because lambdabot isn't here
20:15:53 <ais523> rather than because it barfs on it, though
20:16:07 <ais523> not on Freenode, in fact
20:16:23 <ais523> !haskell putStr ((++) "a""b")
20:16:34 <monqy> rest in peace lambdabot????
20:16:41 <ais523> monqy: it'll probably be back later
20:16:57 <elliott_> `addquote <monqy> rest in peace lambdabot???? <ais523> monqy: it'll probably be back later <monqy> nap in peace
20:17:00 <Vorpal> ais523, hm I wonder why pthread_cancel is defined as a weak symbol in my libgcc
20:17:01 <HackEgo> 528) <monqy> rest in peace lambdabot???? <ais523> monqy: it'll probably be back later <monqy> nap in peace
20:17:14 <Vorpal> along with a few more pthread functions
20:17:23 <ais523> Vorpal: I'm not sure, I don't think I'm going to get pthreads workign
20:17:32 <elliott_> 14:22:39: <cheater_> it's because python is descriptive rather than declarative
20:17:32 <elliott_> 14:22:51: <cheater_> or rather prescriptive
20:17:32 <elliott_> 14:23:40: <cheater_> well, i think "imperative" does not focus on the important aspect of the difference between so called "imperative" languages and so called "functional" langauges
20:17:36 <ais523> at least, not if the threads use futexes, which they probably will
20:17:45 <ais523> as they do too much in userspace
20:17:52 <Vorpal> ais523, maybe some other libgcc function depends on pthread calls iff pthread is loaded?
20:18:02 <ais523> I can't figure out if that's wrong or meaningless
20:18:04 <Vorpal> ais523, and just stubs it out if it doesn't need to care about threads?
20:18:09 <ais523> or correct but pointless, like a tautology
20:18:20 <elliott_> ais523: that applies to most things cheater_ says
20:18:30 <elliott_> 14:23:59: <cheater_> i mean you can perfectly well say that python is an imperative, functional language
20:18:44 <elliott_> 14:24:25: <cheater_> functional means a function is a first class object
20:19:05 <elliott_> 14:26:07: <cheater_> "functional" is a very flimsy description of haskell, erlang, ocaml and lisp
20:19:05 <elliott_> common lisp is not a functional language. nor is scheme.
20:19:11 <elliott_> the others are. well, maybe not erlang.
20:19:13 <Vorpal> ais523, possibly some functions like __register_frame_info_table_bases or __emutls_register_common that are in there
20:19:23 <Vorpal> __enable_execute_stack? What? Come on
20:19:35 <Vorpal> some unwind functions there too
20:19:37 <zzo38> I have a lot of ideas of how constraint analysis could work in LLVM. There can be forward constraints, and in some cases (such as reaching "unreachable") backward constraints, and then constranits based on trap values (such as "add nuw"), etc
20:19:45 <ais523> so, any idea what _newselect(2) is for?
20:19:51 <ais523> it isn't documented, and it isn't implemented either AFAICT
20:20:06 <ais523> not even as a redirect to _ni_syscall like the other unimplemented syscalls
20:20:16 <ais523> I suppose I could try calling it to see what error I got, but that feels messy
20:20:19 <Vorpal> ais523, where is it even mentioned it?
20:20:24 -!- KingOfKarlsruhe has joined.
20:20:32 <ais523> Vorpal: in the kernel headers that specify syscall numbers
20:20:48 <ais523> and the number doesn't seem to clash with any others
20:20:50 <Vorpal> ais523, is it a low or high number?
20:21:04 <Vorpal> could be some abandoned thing
20:21:11 <ais523> the leading underscore confuses me too
20:21:13 <zzo38> What else I would like in LLVM is if you can tell it to store constant values in code space if possible (in the alignment padding, or in case it exactly matches an instruction), and store variables in the immediate operands to instructions if possible, etc
20:21:15 <ais523> syscall names normally don't start with one of those
20:21:20 <ais523> abandoned thing is my guess too
20:22:14 <Vorpal> ais523, greping kernel sources reveals #define __NR__newselect in lots of arch/*/include/asm/unistd.h plus this line:
20:22:17 <Vorpal> ./scripts/checksyscalls.sh:#define __IGNORE__newselect
20:22:32 <ais523> Vorpal: indeed, I did that too
20:22:33 <Vorpal> ./arch/blackfin/include/asm/unistd.h:/* 142 __NR__newselect obsolete */
20:22:45 <ais523> asm/unistd.h is the file responsible for syscall numbers (in the various arches)
20:22:47 -!- nooga has joined.
20:22:55 <Vorpal> ais523, I find this quite amusing: ./arch/mips/include/asm/unistd.h:#define __NR__newselect(__NR_Linux + 142)
20:22:58 <ais523> and checksyscalls.sh checks to see that every syscall is implemented on every arch, minus the ones defined as ignored
20:23:14 <ais523> Vorpal: maybe it's trying to avoid a number clash with some other OS
20:23:24 <Vorpal> #define __NR_Linux 4000
20:23:31 <Vorpal> * Linux o32 style syscalls are in the range from 4000 to 4999.
20:23:55 <Vorpal> there is a huge #ifdef here
20:24:00 <Vorpal> * Linux 64-bit syscalls are in the range from 5000 to 5999.
20:24:00 <Vorpal> #define __NR_Linux 5000
20:24:11 <Vorpal> and then the entire define list AGAIN
20:24:22 <Vorpal> why the hell do they repeat the lines like:
20:24:24 <Vorpal> #define __NR_read (__NR_Linux + 0)
20:24:37 <Vorpal> it is different for different modes
20:24:39 <Vorpal> #define __NR_syscall (__NR_Linux + 0)
20:24:53 <ais523> x86 and x64 have different syscall numbers
20:25:03 <ais523> and one syscall (mmap2) actually takes different parameters on the two architectures
20:25:07 <zzo38> Do you know anything about constraint analysis?
20:25:13 <Vorpal> * Linux N32 syscalls are in the range from 6000 to 6999.
20:25:13 <Vorpal> #define __NR_Linux 6000
20:25:21 <ais523> Vorpal: well, mmap2 is designed for 32-bit systems to open files larger than 32 bits
20:25:32 <ais523> and ditto for 64 bits, but they changed the scaling factor
20:25:32 <Vorpal> ais523, so it isn't needed on 64-bit then
20:25:49 <ais523> mmap2 is like mmap but you specify the offset in units of 4K
20:26:01 <Vorpal> ais523, you mean larger than 64 bits on x86-64?
20:26:09 <ais523> except on 64-bit, you specify the offsets in units of the page size
20:26:15 <ais523> which might not be 4KiB exactly
20:26:29 <Vorpal> ais523, err x86/x86-64 page size *is* 4KiB
20:26:44 <ais523> Vorpal: that makes the man page look a bit weird
20:26:58 <Vorpal> ais523, unless you mean huge-pages, but they are the exception, not the nrom
20:26:58 <ais523> perhaps they're allowing for a potential future change in page size, but think it'll only happen on 64-bit platforms not 32-bit platforms
20:27:12 <Vorpal> like, allows you to create specially crafted 1 MB or larger pages
20:27:21 <ais523> it's probably about that, then
20:27:21 <oerjan> <elliott_> common lisp is not a functional language. nor is scheme. <-- i think that's a rather big shift from the historical use of the phrase. like refusing to call neanderthals humans.
20:27:40 <Vorpal> ais523, no it can't be... because that is decided on by a per-page basis
20:27:50 <Vorpal> ais523, so that doesn't make any sense here
20:28:18 <elliott_> oerjan: OK, Scheme probably counts
20:28:23 <elliott_> oerjan: But Common Lisp is unquestionably non-functional
20:28:30 <ais523> it's hard to define functional languages well
20:28:46 <elliott_> oerjan: Higher-order functions are rare in Common Lisp outside of things like map
20:28:55 <elliott_> And those are usually done with LOOP or ITERATE, even
20:29:01 <ais523> my working definition of non-imperative is languages in which assignment to mutable variables is nonidiomatic
20:29:15 <ais523> in common Lisp, setq is fairly common, isn't it?
20:29:27 <ais523> Vorpal: it's 4096 on my system too
20:29:36 <elliott_> ais523: setf is common, steq isn't
20:29:41 <Vorpal> ais523, any x86 system will give that. Same for x86-64
20:29:53 <elliott_> 14:41:56: <cheater_> i would say, map paintRed fence = "a fence which is red"
20:29:53 <elliott_> 14:42:09: <cheater_> you would say map paintRed fence = "a fence which has been painted red"
20:29:59 <elliott_> this is the stupidest thing ever omg shut up you idiot
20:30:17 <elliott_> ais523: (let ((x (cons 9 0))) (setf (car x) 0) x) ==> (0 . 0)
20:30:23 <ais523> elliott_: I'd interpret "map paintRed fence" as "what results when every component of a fence is painted red"
20:30:24 <elliott_> basically it's setq that can set forms with defined setters, too
20:30:39 <ais523> ah, OK, a generalised version
20:30:40 <elliott_> so it doubles as a raw variable setter and a structure mutator
20:30:49 <elliott_> yep, it's generally referred to as generalised setq
20:30:58 <elliott_> because it used to be (set 'var x)
20:31:05 <elliott_> back when lisps were dynamically scoped and also crap
20:31:13 <ais523> like in C++, setq corresponds to memcpy(&a, &b, sizeof b) and setf corresponds to a=b?
20:31:53 <elliott_> ais523: Sure, although it's more like a=b where a must be a variable name
20:31:58 <elliott_> That memcpy can also write to structure members
20:32:30 <Vorpal> $ getconf -a | grep PAGE
20:33:29 <Vorpal> oerjan, alas, they forgot that one
20:34:22 <ais523> actually, isn't it possible to overload & in C++?
20:34:43 <pikhq_> elliott_: memcpy(&a + offsetof(foo, b), &b + offsetof(foo, b), sizeof(b.foo)); ?
20:34:55 <pikhq_> ais523: And cast to void*.
20:34:59 <ais523> overloading unary * makes more sense
20:35:03 <Vorpal> ais523, not -> though afaik
20:35:25 <fizzie> -> is overloadable, IIRC.
20:35:27 <Vorpal> isn't it either -> or . you can't overload?
20:35:33 <Sgeo> "[...] demos that intentionally use incorrect style because it's easier to present in a short demo [...]
20:35:33 <fizzie> But the "." is not, and neither is the ternary operator.
20:35:40 <Sgeo> http://www.reddit.com/r/programming/comments/hidsa/opa_one_language_for_all_the_stack_forget/
20:35:57 <pikhq_> operator-> is overloadable.
20:35:58 <fizzie> And the :: namespace thing, and the ".*" pointer-to-member mess.
20:36:10 <ais523> what does .* actually do?
20:36:38 <elliott_> Sgeo: OPA is similar to Ur/Web
20:36:45 <pikhq_> Oh, it's possible to overload *every cast* in C++.
20:36:47 <elliott_> but with more marketing, and unfortunately less typing
20:36:48 <fizzie> ais523: It's used when invoking a pointer-to-member-function.
20:36:52 <elliott_> "also, not to be an ass, but generally speaking and talking about UR (that you mentioned), i don't really trust a web framework with such a raw site." lol
20:36:59 <elliott_> i wish webtards would stop finding Ur
20:37:20 <monqy> is ur any good should i learn it
20:37:32 <Sgeo> elliott_, is that a Opa person who said that or a random person?
20:37:46 <monqy> is opa any good should i learn it
20:38:10 <elliott_> oh lol, Ur's site has now been updated
20:38:11 <Vorpal> pikhq_, you can't overload casts *between* built in types though
20:38:39 <fizzie> ais523: "Foo foo; void (Foo::*)(int) bar = &Foo::baz; foo.*bar(42);" is basically "Foo foo; foo.baz(42);" except messier.
20:39:03 <nooga> C++ sucks so badly
20:39:16 <elliott_> nooga: Shhh, C++ is good because of C++ sudoku
20:39:57 <elliott_> nooga: it's where you try to accomplish some usually-functional-programming-related task in C++0x
20:40:07 <elliott_> It's great, it's the best game, I play it regularly
20:40:20 <elliott_> for instance: maybe<T> in C++ seems easy, but you _cannot_ do it with just a pointer to T
20:40:25 <elliott_> because that forbids T from being a reference type
20:40:37 <elliott_> you have to end up taking advantage of everything being convertible to a bunch of chars and back
20:44:33 <elliott_> 14:59:05: <cheater_> trying to assign cosmical properties to mathematical objects is called physics
20:45:48 <monqy> isnt that backwards wow is cheater_ serious in the past
20:45:49 <cheater_> elliott_, only if you promise never to get born
20:45:59 <monqy> cheater_ are you serious in the past
20:46:33 <cheater_> elliott_, are you trying to annoy me or arouse me?
20:46:46 <ais523> I'm wondering whether to logread to see if elliott_'s cheater quotes are real or fake quotes designed to make him look stupid
20:47:03 <elliott_> cheater_: are you trying to be a boring, egotistic shitheadeaded idiot or does it come without effort
20:47:05 <cheater_> ais523, no they're real quotes that are designed to make me look stupid
20:47:19 <elliott_> "shitheadeaded" im good with words
20:47:35 <ais523> you're missing a d at the end
20:48:06 <elliott_> jesus christ how long does this log go on for
20:48:21 <elliott_> 15:42:24: <cheater_> in C you'd say to get a maserati GT you'd take a ferrari 430, you'd then change the body work, and then you'd furnish it with a nice interior
20:48:21 <elliott_> 15:43:13: <cheater_> in haskell, you'd say a maserati gt is a ferrari 430 - bodywork - interior + new body work + new interior
20:48:21 <elliott_> this is literally the worst car analogy i've ever read
20:48:32 <cheater_> that's how long this log goes on for.
20:48:42 <ais523> elliott_: that isn't quite as stupid as some of the tohers
20:48:50 <elliott_> ais523: the others aren't car analogies
20:48:51 <ais523> although admittedly that isn't difficult
20:49:10 <cheater_> elliott_, i'm glad, i really like car analogies, it's great to reach something outstanding
20:49:11 <ais523> I don't consider car analogies inherently stupid, incidentally
20:49:44 <monqy> what isnt stupid about car analogies
20:49:57 <ais523> most car analogies don't compare things to cars in general
20:50:03 <ais523> but specific parts of cars or models of car
20:50:07 <cheater_> monqy, elliott_ is smart about everything.. so i'd say elliott
20:50:25 <monqy> elliott_ is like a car analogy?
20:50:40 <cheater_> monqy, i think he's like a bad car analogy
20:51:17 <cheater_> monqy, i'd say elliott :: humans == maserati gt analogy :: car analogies
20:52:53 <elliott_> monqy: is he really trying to deconvert a cultist of zepto
20:53:43 <ais523> elliott_: oh, disaster: sg(1) is an actual command, so we can't call scapegoat that
20:53:55 <ais523> it's the group equivalent of sg(1)
20:54:06 <elliott_> how have I never tried to run sg before?
20:54:19 <elliott_> ais523: we could lobby for sg to be renamed :-P
20:54:22 <ais523> because it isn't very useful except on a very large system
20:54:23 <monqy> i take it car anaology analogies are unzepto
20:54:26 <elliott_> Or just assume the truth, that nobody uses it
20:54:31 <elliott_> ais523: no but I mean, when talking about scapegoat
20:54:38 <ais523> and is redundant to newgrp anyway
20:54:57 <ais523> wait, why do sg and newgrp both exist?
20:55:11 <elliott_> ais523: see, we can totally call it sg, it'll be our campaign against redundancy
20:55:25 <elliott_> ais523: oh, sg lets you execute a command, but newgrp doesn't
20:55:26 <Sgeo> I know that, mathematically, something can't work, but I can't figure out what's wrong with my idea of how to do it
20:55:31 <ais523> sg appears to have a better name and slightly more options
20:55:31 <elliott_> because the shell does that job with newgrp
20:55:37 <Sgeo> I can't see the flaw that I know must be there
20:55:39 <elliott_> ais523: yes but we deserve that name more >:|
20:55:42 <cheater_> well, back to reading about 12DL8
20:55:55 <ais523> who do I complain to about design flaws in UNIX?
20:56:05 <Sgeo> elliott_, actually, I'm currently rethinking it in terms of something simpler
20:56:29 <ais523> wow, sg has an amateurish manpage
20:56:33 <elliott_> ais523: I'd have a nice cup of tea and a sit down with them
20:56:34 <ais523> it's like it's trying to justify its existence
20:56:48 <elliott_> User Commands 02/14/2011 SG(1)
20:56:49 <ais523> I wonder which is specified by POSIX?
20:57:00 <ais523> also contains typos, like "doesnt"
20:58:12 <Sgeo> Derp, that was obvious
20:59:50 <Sgeo> (I thought maybe you could enumerate through all uncountably infinite states of an infinite 2d binary grid by starting at one point, on and off, then expanding it, etc. I finally realized that those are counting through finite pieces of the grid, not the actual infinite grid
20:59:57 * Sgeo can be slow sometimes
21:00:52 <Sgeo> And yes, I had to rephrase that in terms of 1d before I got it :(
21:01:31 <ais523> what were you trying to count? the polyset of R**2?
21:01:39 <ais523> I don't know if polyset is even a real word
21:02:09 <Sgeo> In fairness, the motivating thoughtss were in terms of Game of Life, where even on an infinite grid, any particular finite subgrid, at any particular finite time, could only have been influenced by a finite area around it
21:03:22 <elliott_> ais523: you can't do struct foo = ((struct foo){...}) in C99, right?
21:03:26 <elliott_> it has to be struct foo = {...}
21:03:28 <ais523> there are a countable number of black/white colored 2D grids that have only finitely many black squares, I think
21:03:35 <ais523> elliott_: I think you can, actually
21:03:42 <ais523> as you can put any expression you like as an initializer
21:03:57 <ais523> it's the difference between putting a struct initializer there and a struct constant there, but I think they're both legal
21:04:12 <elliott_> ais523: ISTR it not working, but -- oh, I rememberw hat was wrong
21:04:15 <ais523> struct foo = {} is almost certainly more efficient, though
21:04:28 <elliott_> struct foo = {a,b,(struct bar){c,d})
21:04:30 <elliott_> struct foo = {a,b,(struct bar){c,d}}
21:04:31 -!- quintopia has joined.
21:04:32 -!- quintopia has quit (Changing host).
21:04:32 -!- quintopia has joined.
21:04:39 <ais523> because semantically, ((struct foo){...}) should make a new struct then copy
21:04:47 <ais523> and yes, the reason there is that it doesn't know what type the outside struct should be
21:05:37 <ais523> because C isn't like Perl, context comes from the inside not the outside
21:05:47 <ais523> so it sees type var = expression, not type var = initializer
21:05:51 <ais523> and then doesn't know what type the expression is
21:05:56 <ais523> from the expression itself
21:07:48 <Sgeo> Anyways, it should be perfectly possible to make a viewer that lets you view finite pieces of a infinite GoL soup (given unbounded disk space)
21:07:51 <elliott_> 18:40:05: <Vorpal> pikhq_, hm. what is the difference between POSIX and Unix exactly? The SuS I guess? But I haven't seen that for ages
21:08:09 <Vorpal> elliott_, that's all!?
21:08:10 <Sgeo> Maybe not efficiently, but that's not the same as impossible
21:08:20 <Vorpal> elliott_, XSI isn't really that big
21:08:39 <pikhq_> ais523: No, just a handful of extra things.
21:08:40 <Vorpal> ais523, last I checked strdup was XSI but not POSIX
21:08:53 <ais523> pretty much everything does strdup even if it isn't standard, though
21:08:57 <ais523> I've been known to actually use it
21:09:11 <pikhq_> I'm pretty sure even Win32 C environments have it.
21:09:12 <Vorpal> `addquote <ais523> pretty much everything does strdup even if it isn't standard, though <ais523> I've been known to actually use it
21:09:13 -!- FireFly has quit (Quit: swatted to death).
21:09:13 <HackEgo> 529) <ais523> pretty much everything does strdup even if it isn't standard, though <ais523> I've been known to actually use it
21:09:25 <ais523> I can't remember if I've ever used alloca
21:09:59 <pikhq_> Oh, in recent POSIX it's actually base, not XSI.
21:10:06 <zzo38> strdup is still useful function, but they don't have memdup.
21:10:39 <ais523> zzo38: have you ever written a program in which memdup would be useful?
21:10:54 <ais523> I find even memcpy, memset, etc, I don't use very often (although I use them occasionally)
21:10:54 <Sgeo> Suppose you want to look at a 5x5 piece at generation 20
21:10:56 <pikhq_> ais523: Actually, memdup could be useful with a somewhat smart libc.
21:11:05 <zzo38> ais523: I do not remember.
21:11:05 <pikhq_> ais523: Namely, one that manages to get the kernel to COW it.
21:11:23 <Sgeo> Then, just randomly generate that pieces, as well as 20 cells surrounding it at all sides, and evolve it
21:11:25 <ais523> that would only really work for entire pages
21:11:33 <Sgeo> (Store what you use somewhere)
21:11:50 <zzo38> I have never used alloca in C, although if I write a program in LLVM, I might use it sometimes (LLVM optimizers can change alloca to SSA in some cases)
21:11:52 <Sgeo> The 5x5 piece is correct, even if the 20 cells surrounding it aren't
21:12:02 <elliott_> 18:45:10: <Taneb> Just wrote =+ 1 instead of += 1
21:12:28 <pikhq_> No reason you couldn't check to see if the memory block in question is wholy contained on pages.
21:12:32 <ais523> alloca does have genuine use-cases, I sort-of wish it was standard
21:12:35 <elliott_> 18:46:42: <pikhq_> It's also LSB.
21:12:35 <elliott_> 18:46:54: <pikhq_> Along with /dev/tty, and *nothing else*.
21:12:49 <pikhq_> elliott_: /dev/null is as well.
21:12:49 <Vorpal> elliott_, it is. /dev/null is even POSIX
21:12:53 <pikhq_> elliott_: We went over this.
21:13:01 <zzo38> Whoever decided to make =+ to add instead of += made a stupid mistake on the day that they did so.
21:13:06 <elliott_> ais523: just use recursion to do alloca
21:13:23 <pikhq_> ais523: It's less useful with variable arrays, though.
21:13:23 <ais523> elliott_: heh, that could get a bit messy
21:13:24 <Vorpal> elliott_, that has a lot of overhead
21:13:33 <zzo38> (Even smart people make a stupid mistake sometimes... but that is how you can learn from it, too.)
21:13:33 <Vorpal> elliott_, and might insert things in the middle
21:13:34 <pikhq_> Which, incidentally, are no longer guaranteed in C.
21:13:42 <Vorpal> elliott_, it would work for linked lists I guess
21:13:48 <Sgeo> Am I just being boring?
21:14:38 <elliott_> 18:54:02: <Vorpal> ais523, I believe there is an x11-framebuffer server too
21:14:45 <elliott_> Xfbdev from XDrive, now standard Xorg
21:14:45 <ais523> pikhq_: which version did they remove them in?
21:15:13 <ais523> at least Wesnoth was a little buggy running in framebuffer, though; it was leaving cursor droppings
21:15:16 <ais523> elliott_: presumably VLAs
21:15:43 <Vorpal> <ais523> at least Wesnoth was a little buggy running in framebuffer, though; it was leaving cursor droppings <-- that was not Xfbdev I think
21:15:47 <elliott_> ais523: why is qemu not suitable for your purpose, btw?
21:15:52 <ais523> Vorpal: it wasn't, it was SDL
21:15:54 <Vorpal> ais523, rather it was probably SDL's fbcon backend
21:15:54 <elliott_> that could give you a controlled environment
21:15:59 <pikhq_> ais523: C1X has variable length arrays as an optional feature, not mandatory.
21:16:00 <zzo38> What is most levels of indirection you have used?
21:16:06 <ais523> elliott_: that would give too much away
21:16:10 <ais523> let's just say I tried
21:16:31 <pikhq_> ais523: This because some implementors really struggled with it, and even refused to actually implement it.
21:16:34 <Vorpal> ais523, how are we supposed to guess before you tell us unless you give us more hints?
21:16:40 <elliott_> `addquote <Vorpal> ais523, how are we supposed to guess before you tell us unless you give us more hints?
21:16:41 <HackEgo> 530) <Vorpal> ais523, how are we supposed to guess before you tell us unless you give us more hints?
21:16:45 <pikhq_> Most obviously, Microsoft.
21:16:55 <elliott_> swap an unfunny quote for a funny one
21:16:59 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
21:17:03 <elliott_> ais523: you saying you used strdup
21:17:05 <pikhq_> There's actually a decent chance that Microsoft will implement C1X, though.
21:17:09 <ais523> you're right, that isn't too funny
21:17:18 <Vorpal> elliott_, why was that one unfunny.
21:17:26 <pikhq_> What with the *mandatory* features being not that much on top of what they'll need for C++0x.
21:17:27 <ais523> Microsoft not implementing C99 will marginalise them in the communities that care about C99
21:17:28 <zzo38> It seems some of the features of C1X that are made optional are some features of C99 that I don't like. Is that partially it?
21:17:30 <Vorpal> it was still somewhat funny
21:17:30 <elliott_> Vorpal: because it didn't have any comedic elements
21:17:36 <ais523> which is, umm, people looking for a FORTRAN replacement, mostly
21:17:43 <ais523> elliott_: it had one, which wasn't very good
21:17:52 <zzo38> What features of C1X are not optional features?
21:18:00 <ais523> which was implying that I only used library functions which had passed some sort of Ais523 Approval Test^TM
21:18:08 <ais523> zzo38: I imagine things like addition
21:18:11 <Vorpal> elliott_, it did. It would be like ais523 torrenting something almost
21:18:27 <ais523> Vorpal: what, using strdup?
21:18:31 <zzo38> Yes, addition, functions, etc. I mean any C99 features and new features
21:18:43 <elliott_> 19:08:18: <Vorpal> what /is/ the plan 9 protocol exactly?
21:18:44 <ais523> 99% OF USES OF STRDUP ARE ILLEGAL!
21:18:44 <Vorpal> ais523, how would you torrent using strdup
21:18:50 <zzo38> Not things such as addition and function
21:18:51 <pikhq_> zzo38: Unicode, anonymous structs and unions, alignment specification, type-generic expressions.
21:19:00 <ais523> Vorpal: you misparsed my sentence
21:19:04 <elliott_> `addquote <ais523> 99% OF USES OF STRDUP ARE ILLEGAL!
21:19:05 <HackEgo> 530) <ais523> 99% OF USES OF STRDUP ARE ILLEGAL!
21:19:14 <Vorpal> elliott_, now that one wasn't very funny :P
21:19:14 <ais523> I was trying to guess at what "it" in your sentence referred to
21:19:25 <pikhq_> zzo38: So, in large part features most compilers already *have*.
21:19:31 <zzo38> Anonymous structs and unions are useful I have used it a lot.
21:19:42 <elliott_> Vorpal: it was ais acting very out of character, when taken out of context
21:19:51 <Phantom_Hoover> Hmm, the flag of Hawaii still has a Union Jack on it for some reason.
21:19:55 <elliott_> but for reasons other than humour
21:19:57 <ais523> elliott_: it's only funny out of context
21:19:57 <pikhq_> Oh, yeah, and static assertions.
21:20:07 <Vorpal> elliott_, yeah mine was quotable too
21:20:16 <ais523> and the allcaps are a giveaway that it was meant to be in a context
21:20:17 <nooga> http://pastebin.com/MthxxLrd
21:20:18 <elliott_> you never win quote wars, stop trying
21:20:20 <Vorpal> elliott_, for stylistic reasons
21:20:27 <elliott_> you're like asiekierka trying to set the topic to something idiotic
21:20:30 <nooga> this hack is quite nice
21:20:33 <Vorpal> elliott_, no I don't do that
21:20:34 <elliott_> you know it's not going to work
21:20:42 <zzo38> What are 99% uses of strdup which are illegal?
21:20:51 <Phantom_Hoover> Never have you added a disputed quote that was even vaguely amusing.
21:20:53 <elliott_> zzo38: strdup can be used to transfer illegal material across the internet
21:20:58 <ais523> elliott_: who does "you" refer to there?
21:21:50 <ais523> a sufficiently advanced operating system probably could do network access with strdup
21:21:56 <zzo38> I don't think 99% uses of strdup necessarily has anything to do with internet at all
21:22:12 <ais523> zzo38: you've pretty much completely missed the context
21:22:16 <ais523> but it would take too long to explain
21:22:43 -!- confab has joined.
21:23:09 <nooga> http://pastebin.com/MthxxLrd http://pastebin.com/MthxxLrd http://pastebin.com/MthxxLrd
21:25:06 <ais523> how many people here know of the sendfile(2) system call?
21:25:09 <ais523> it looks really interesting
21:25:18 <ais523> and I wonder if cp is implemented in terms of it
21:25:38 <pikhq_> It implements a complex buffering scheme on top of stdio.
21:25:41 <ais523> pity it's nonportable (it's in the category of "widely implemented but not with the same semantics on every platform", like ptrace)
21:25:48 <elliott_> <ais523> how many people here know of the sendfile(2) system call?
21:25:54 <elliott_> it's used in every web server ever
21:26:38 <elliott_> Presently (Linux 2.6.9): in_fd, must correspond to a file which supports
21:26:38 <elliott_> mmap(2)-like operations (i.e., it cannot be a socket); and out_fd must refer
21:26:42 <elliott_> ais523: so you can't do cp or anything with it
21:26:47 <elliott_> that's a really stupid restriction, though
21:27:43 <ais523> let's all rage at stupid restrictions on sendfile for a bit
21:28:33 <elliott_> ais523: it probably exploits some property of sockets
21:28:38 <elliott_> and obviously uses memory mapping to read from the FD
21:28:50 <ais523> yep, thus the "must be mmapable" restriction
21:29:05 <elliott_> ais523: but it would avoid buffer copying and syscall overhead, I suppose, even without those restrictions
21:29:19 <ais523> yep, I bet the kernel would be faster at copying one fd to another than userspace would
21:29:22 <elliott_> ais523: have I raved yet today about how syscalls are the cost of a CALL instruction in @?
21:29:32 <ais523> elliott_: not while I've been in here
21:29:53 <ais523> what's the benefit of using CALL over using INT?
21:30:20 <elliott_> well, technically @ has no syscalls, you just get passed functions that happen to access hardware in a privileged manner
21:30:24 <elliott_> but the point is that it has no syscall overhead
21:30:27 <ais523> elliott_: are they expensive because they use INT? or for some other reason?
21:30:34 <pikhq_> ais523: It's a context switch.
21:30:37 <elliott_> ais523: because interrupts are slow, I think, and because you have to copy data
21:30:43 <ais523> what you probably mean is, "system calls don't need context switches"
21:30:50 <ais523> which is a better thing to rave about
21:30:54 <pikhq_> ais523: To do a context switch, you have to flush the pipeline and the page table.
21:30:57 <elliott_> i'm no OS guy, unfortunately; not yet
21:31:10 <pikhq_> And, hence, the cache.
21:31:15 <elliott_> ais523: incidentally, a _lot_ of Synthesis' speed improvements came from optimising the kernel<->user space transition
21:31:27 <ais523> </usr/include/sys/user.h> /* The whole purpose of this file is for GDB and GDB only. Don't read too much into it. Don't use it for anything other than GDB unless you know what you are doing. */
21:31:40 <elliott_> do those warnings ever stop anyone?
21:31:59 <elliott_> I've all but given up on access restrictions of any kind in programming, because nobody ever cares about them
21:32:00 <ais523> elliott_: they didn't stop me, although they did vaguely make me want to look at GDB source as that's the only place I was going to get decent documentation
21:32:12 <ais523> in the end, I looked at various other sources, including the kernel's
21:32:14 <elliott_> although some are necessary for security (<-- @ view of things showing through)
21:32:39 <ais523> what it really means is "we don't think anything important but gdb is going to use this code, so we aren't going to bother to document it"
21:32:45 <elliott_> for instance, you don't want any old code getting the "cast a bunch of bytes into an arbitrary type" function
21:32:53 <ais523> and it was a pain to work out what it did, as a result
21:32:57 <elliott_> because you could construct a safe pointer-accessor object pointing to some privileged code
21:32:59 <ais523> it's a really really system-specific file, anyway
21:33:03 <elliott_> and cast it to a pointer-accessor
21:33:12 <elliott_> and use it to get a hold of e.g. the send byte to port function
21:33:23 <ais523> elliott_: that sounds a bit like Java's security model
21:33:34 <elliott_> ais523: Java doesn't use capability security, AFAIK
21:33:42 <elliott_> @ is practically based around it
21:33:55 <elliott_> especially because its native means of execution is basically arbitrary remote code execution
21:34:02 <ais523> elliott_: it theoretically uses SecurityManager, which is designed around capabilities, it just makes a hash of it
21:34:08 <elliott_> (you just reference an object that happens to not be on your computer, and it fetches it from the @ternet)
21:34:24 <elliott_> (it could be a game of Asteroids, say)
21:34:27 <ais523> struct user_regs_struct { long int ebx; long int ecx; long int edx; long int esi; long int edi; long int ebp; long int eax; long int xds; long int xes; long int xfs; long int xgs; long int orig_eax; long int eip; long int xcs; long int eflags; long int esp; long int xss; };
21:34:28 <elliott_> (and it'd run and display as native code)
21:34:32 <ais523> most system-specific struct ever?
21:34:35 <elliott_> (note: this means that I basically have Flash but better)
21:34:46 <elliott_> (you can embed games into a page, and they're exactly identical to native-code games)
21:34:47 <ais523> elliott_: or ActiveX but less broken?
21:35:01 <ais523> I am using that struct
21:35:05 <elliott_> it's also kind of like the original web browser in that there's no local/remote distinction
21:35:10 <ais523> to get at the arguments to syscalls, which are in registers at the time
21:35:30 <ais523> Linux only allows six arguments to a syscall, because then it runs out of registers
21:35:43 <pikhq_> elliott_: I take it that @ isn't based around arbitrary *machine code* execution, though.
21:35:50 <elliott_> ais523: why not just use __asm__?
21:36:07 <ais523> I'm trying to get at the args to a syscall in a different process
21:36:27 <ais523> so I'm looking for the context-switched-out copy of the registers, not the current process registers
21:36:39 <ais523> the whole file is about grabbing the context that's been switched out of a process
21:37:18 <ais523> it's different for x86 and x64 for that reason (I'm aiming at x86 for the time being)
21:37:47 <elliott_> hmm, I hope there's an Intel chip actually ending in that
21:37:53 <ais523> the platform needs some name
21:37:54 <elliott_> so I can talk about it and confuse people
21:38:06 <ais523> they should call their 64-b
21:38:07 <ais523> struct user_regs_struct
21:38:14 <elliott_> ais523: I usually say x86-64, because it's official enough, generic, and underscores are ugly
21:38:37 <ais523> gah, what just happened?
21:38:39 <ais523> did I accidentally paste a 20-line struct?
21:38:39 <elliott_> ais523: I'm annoyed at you for being ais523, because Vorpal would have whined at anyone else by now
21:38:56 * ais523 puts a single letter on the clipboard
21:39:01 <ais523> just in case it happens again
21:43:32 -!- elliott_ has quit (Remote host closed the connection).
21:43:46 <zzo38> (Actually my D&D character also speaks Thesk language (due to being slavery there (do you like to nest parentheses this much? (I don't know))))
21:43:49 -!- azaq23 has joined.
21:44:07 -!- elliott has joined.
21:44:52 <ais523> zzo38: I nested parentheses like that in the C-INTERCAL manual once
21:44:58 <ais523> but as a joke, not because it was useful
21:45:38 <zzo38> ais523: In what part of the manual?
21:45:47 <oerjan> > let x = "Maybe. " ++ show [var x] in x
21:45:54 <ais523> zzo38: I can't remember
21:45:59 <ais523> I think it mentioned recursion, but I'm not sure why
21:46:10 <ais523> you could search the manual for ))), it would probably find the relevant section quite quickly
21:48:40 <elliott> <oerjan> > let x = "Maybe. " ++ show [var x] in x
21:48:56 -!- quintopi1 has joined.
21:49:32 -!- quintopi2 has joined.
21:51:07 <Vorpal> <elliott_> ais523: I'm annoyed at you for being ais523, because Vorpal would have whined at anyone else by now <-- what?
21:51:18 -!- oklopol has quit (Ping timeout: 252 seconds).
21:52:52 -!- quintopi1 has quit (Client Quit).
21:53:16 -!- quintopi2 has quit (Client Quit).
21:54:37 <oerjan> hm probably the var should be at the outside.
21:57:33 -!- oklopol has joined.
22:00:46 <Sgeo> "JavaScript must be enabled in your browser to display the table of contents."
22:00:54 <Sgeo> (On an Opa book)
22:01:10 <Sgeo> That's.. not encouraging to any beliefs that you gracefully degrade
22:04:00 <Vorpal> wtf is opa? yet another active worlds?
22:04:36 <Sgeo> elliott, because it's more specialized than Ur, which allows for more than just web stuff, or for other reasons too?
22:04:55 <elliott> because it's like Ur without the only thing that makes Ur interesting, i.e. the type and module system
22:05:51 <Sgeo> Maybe I'm interested in the web stuff
22:06:21 <elliott> maybe im allowed to say opa sucks regardless
22:15:38 -!- CakeProphet has joined.
22:15:39 -!- CakeProphet has quit (Changing host).
22:15:39 -!- CakeProphet has joined.
22:22:02 -!- NihilistDandy has joined.
22:24:20 -!- Taneb has quit (Quit: Page closed).
22:24:50 -!- Taneb has joined.
22:31:12 <zzo38> I have read of the Gnostica game using tarot cards and Icehouse pyramids. Can a similar (but different) game be made using Fanucci cards? And maybe instead of Icehouse you can use some different kind of board, too.
22:33:34 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:57:34 <elliott> `addquote <NihilistDandy> Non sequitur is my forte <NihilistDandy> On-topic discussion is my piano <Taneb> Bowls of sugary breakfast cereal is my mezzoforte <Taneb> Full fat milk is my pianissimo
22:57:36 <HackEgo> 531) <NihilistDandy> Non sequitur is my forte <NihilistDandy> On-topic discussion is my piano <Taneb> Bowls of sugary breakfast cereal is my mezzoforte <Taneb> Full fat milk is my pianissimo
22:58:11 <ais523> those weren't non-sequiturs!
22:58:21 <oerjan> neither was this banana
22:58:39 <elliott> `addquote <NihilistDandy> Non sequitur is my forte <NihilistDandy> On-topic discussion is my piano <Taneb> Bowls of sugary breakfast cereal is my mezzoforte <Taneb> Full fat milk is my pianissimo <Taneb> On which note, I'm hungry
22:58:40 <HackEgo> 531) <NihilistDandy> Non sequitur is my forte <NihilistDandy> On-topic discussion is my piano <Taneb> Bowls of sugary breakfast cereal is my mezzoforte <Taneb> Full fat milk is my pianissimo <Taneb> On which note, I'm hungry
22:58:45 <elliott> (<NihilistDandy> Ha. Note)
22:59:05 <Taneb> That's the second accidental pun I've made in the past five minutes
22:59:42 <oerjan> well please drop that pun before you hurt any more people
23:00:07 <Taneb> "Shoe size is a UK 11" "11+25=36" "36/12=3" "That means my feet are about a foot long" "...Handy"
23:00:08 * oerjan gives monqy the banana
23:00:36 <zzo38> I think your feet is supposed to be about a foot long, that is why they made up a foot measurement, isn't it?
23:00:49 -!- copumpkin has joined.
23:00:57 <NihilistDandy> zzo38: The foot measurement is arbitrary and silly. Something about some king or other
23:01:07 <Taneb> I thought that was the Yard?
23:01:27 <NihilistDandy> The Yard is busy with a scandal. Let's leave them out of this
23:01:33 <zzo38> NihilistDandy: Yes, I think it might be the king's foot size, they measured, and that is approximately one foot.
23:01:33 <elliott> monqy: is it cold there its cold here
23:03:03 <elliott> that was your freenode sevrer location
23:03:08 <Taneb> That's in New Hampshire!
23:03:16 <elliott> isn't new hampshire the one with all the stupid libertarians trying to make a ~free state~
23:03:24 <Taneb> I think Bill Bryson lives there
23:03:28 <Taneb> Or lived there or something
23:03:36 <Taneb> I think that's Quebec
23:03:38 <NihilistDandy> And Bill Bryson lives in Massachusetts, now. He used to live here, though
23:03:42 <elliott> NihilistDandy: but it's _one_ of them
23:03:53 <elliott> http://freestateproject.org/
23:04:02 <monqy> elliott: its suny here
23:04:24 <elliott> so what are your social services like what with your lack of decent taxation and all :P
23:04:25 <monqy> elliott: foggy mornigsn though not cold nice though i like foggy i like cold i wish it were colder
23:04:37 <elliott> monqy: what tepermature was ite;
23:04:43 <NihilistDandy> elliott: Better than most of the country, actually
23:04:47 <elliott> i would like cold but it makes my body parts cold and that makes walking hard
23:04:56 <elliott> NihilistDandy: good job usa
23:05:05 <monqy> elliott: ihave no theremometre
23:05:22 <elliott> ; is the best key to typo with imo
23:05:31 <elliott> http://www.google.com/search?hl=en&source=hp&biw=723&bih=658&q=temperature+where+monqy+is&oq=temperature+where+monqy+is&aq=f&aqi=&aql=&gs_sm=e&gs_upl=5183l10342l0l10493l34l23l2l8l8l0l247l1768l1.9.2l12
23:05:39 <NihilistDandy> I have completed my thereminometer, which measures the number of theremins in a 50 foot radius. Current reading: 1
23:06:04 <elliott> NihilistDandy: theremin buddies o/
23:06:09 <monqy> 19 degres it lokes like??? not too bad?????
23:06:11 <pikhq_> It'd be nigh-impossible to make Massachusetts a "libertarian paradise".
23:06:13 <elliott> do you never play yours too
23:06:16 <oerjan> Taneb: we are clearly asymptotically approaching a spelling singularity
23:06:21 <pikhq_> What with the People's Republic of Cambridge and all.
23:06:29 <elliott> monqy: it is like eleven degrees in here or something
23:07:03 <oerjan> now that it has reached #esoteric, there cannot be much time left
23:07:29 <elliott> oerjan: no its just me and monqy we don't lieke keybwords they do what we dont want them to be oding a lot
23:08:09 <oerjan> elliott: that's what you _think_, but it is spreading
23:08:22 <Taneb> Where's Staffordshire again?
23:08:31 <Taneb> Like, how far South?
23:08:35 <oerjan> in about a year and a half, it reaches critical mass
23:09:31 <oerjan> NihilistDandy: why drag the poor alot into this
23:09:47 <NihilistDandy> oerjan: The alots know what they did to deserve it
23:10:22 <oerjan> rip alots? that's just horribly cruel
23:10:53 <pikhq_> How could you be so mean to alots?
23:11:10 <Taneb> Damn blood pressure...
23:11:27 <Taneb> I react badly to changes in altitude
23:11:49 <NihilistDandy> I've been smoking for four years, and my blood pressure is in the good range. I presume that this makes me better than science
23:11:50 <monqy> changes in altitude make my ears anoying
23:11:52 <elliott> is it cold there Taneb too am i the only cold person in hexham
23:11:54 <oerjan> Taneb: hq_> How could you be so mean to alots?
23:12:01 <monqy> smokeing is bad for you...
23:12:11 <oerjan> that was not a good cut and paste
23:12:19 <Taneb> I'm not that cold, but I have a warm house
23:12:28 <oerjan> maybe i should try pushing ^C
23:12:38 <oerjan> Taneb: your mother was a hamster and your father smelt of elderberries
23:12:41 <Taneb> But yeah, it's pretty cold outside
23:12:53 <elliott> why do people smoke it has like the most boring effect of any drug
23:13:09 <elliott> "it makes me feel a bit better i GUESS" WRONG you're just a lameo who picked the wrong addiction
23:13:12 <Taneb> Eggar's saying the wind's coming from the West, so it may get warmer
23:13:16 -!- confab has left.
23:13:22 <elliott> they should put different warnings on the packets
23:13:43 <elliott> KNOWN BY THE STATE OF WHEREVER TO BE A WASTE OF MONEY PRETTY MUCH
23:14:31 <NihilistDandy> Unless you take the unofficial danger tax as a tax
23:14:49 -!- Taos has joined.
23:14:49 <elliott> in the title of the page it says "Well-Typed - The Haskell Consultants" but i want to know who are the haskell conraisins?
23:14:52 -!- ghoulmaster has joined.
23:15:44 * oerjan finds the new nicks suspicious
23:15:48 <Taneb> They try to sell you overpriced dried grapes, claiming that they're functional
23:15:57 <elliott> ghoulmaster: hello we are about programming
23:15:58 <monqy> haskell conraisinjs?
23:15:59 <Taos> elliott: have I now?
23:16:00 <NihilistDandy> `addquote <elliott> in the title of the page it says "Well-Typed - The Haskell Consultants" but i want to know who are the haskell conraisins?
23:16:01 <HackEgo> 532) <elliott> in the title of the page it says "Well-Typed - The Haskell Consultants" but i want to know who are the haskell conraisins?
23:16:34 <elliott> ghoulmaster: ok, lots of people don't :P
23:16:53 <ghoulmaster> elliott: lol i could see that with the name...
23:16:58 <NihilistDandy> I thought this was a comparative literature channel
23:17:11 <Taos> Really? I thought this was to do with elephants
23:17:20 <Taos> I don't remember coming here before
23:17:23 <pikhq_> NihilistDandy: Comparative algorithmically-generated literature channel.
23:17:45 <monqy> brainfuck derivative party channel
23:18:02 -!- Somelauw has joined.
23:18:08 <elliott> ok _who_ mentioned us and where
23:18:21 <oerjan> the conraisins are about raisin money
23:18:23 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
23:18:30 <ais523> elliott: I mentioned us in #nethack once, I think
23:18:30 <Taneb> Brainfuck has disappointing few brains and barely any fucks
23:18:36 <monqy> i read it as "raisin monqy" and got real confused
23:18:58 <elliott> Taneb: s/disappointing/disappointingly/
23:19:01 <elliott> so i can addquote it without lying
23:19:04 <NihilistDandy> If I ever get laid because of brainfuck, that will be the real brainfuck
23:19:22 <Taos> NihilistDandy: its worked for me
23:19:34 <Taos> NihilistDandy: I can spell your name in + and > and < and -
23:19:35 <Taneb> Especially if it's with a human heart
23:19:42 <Sgeo> There is a book about esolangs
23:19:43 <elliott> Taneb: surely you mean brain
23:19:46 <Sgeo> http://www.barnesandnoble.com/w/esoteric-programming-languages-books-llc/1022380853?ean=9781155349770&itm=1&usri=brainfuck
23:19:53 <elliott> Sgeo: omg no that was my calling
23:20:03 <elliott> but i'm going to buy it anyway
23:20:21 <monqy> Purchase includes free access to book updates online and a free trial membership in the publisher's book club where you can select from more than a million books without charge.
23:20:25 <Taneb> elliott: I mean what I say
23:20:30 <elliott> the description is from wikipedia
23:21:07 <elliott> NihilistDandy: no, it is _quite possible_ wp copied us, which is legal
23:21:10 <elliott> the other way around is not
23:21:29 <ais523> if the contents are an exact match with the Wikipedia category, I think that's it
23:22:06 <ais523> the excerpt is an exact match with Wikipedia
23:22:13 <ais523> so I suspect it is indeed a Wikipedia excerpt book
23:22:13 <elliott> that text is not actually in the eoslangs article
23:22:16 <elliott> its just in the google summary
23:22:25 <elliott> ais523: I kind of still want to own it :)
23:22:47 <ais523> it's probably an autogenerated cover
23:22:47 <elliott> is it worth 12 pounds????? we report, you decide
23:22:58 <NihilistDandy> I'll bet it's printed on toilet paper and recycled newsprint
23:23:00 <ais523> note that it lists Esoteric Programming Language as a language
23:23:02 <elliott> how do you go from ISBN → Amazon link?
23:23:08 <elliott> ais523: YES I WANT IT BECAUSE IT IS BAD OK
23:23:46 <Taos> I just cooked my own brainfuck interpreter
23:23:47 <ais523> http://www.amazon.com/s?search-alias=stripbooks&field-isbn=1155349776
23:23:52 <elliott> ais523: hmm, I see no GFDL on that Barns an dNoble page
23:24:01 <ais523> thank you, Special:Booksources
23:24:14 <elliott> i guess i have to buy it from barnes and noble then
23:24:16 <ais523> it's a no-results-found on Amazon, though
23:24:26 <Sgeo> http://www.amazon.com/Esoterics-Websters-Quotations-Facts-Phrases/dp/0546763294/ref=sr_1_1?s=books&ie=UTF8&qid=1311376994&sr=1-1 what the fuck
23:24:27 <elliott> http://www.amazon.com/Esoteric-Programming-Languages-Kvikkalkul-Instruction/dp/images/1155349776 --Google
23:24:30 <elliott> We're sorry. The Web address you entered is not a functioning page on our site --Amazon
23:24:38 <ais523> alternatively: http://books.google.com/books?id=kHOLSQAACAAJ&dq=isbn:1155349776&hl=en&ei=ngYqTtqMLdTE8QPPsvH-Cw&sa=X&oi=book_result&ct=result&resnum=1&ved=0CCgQ6AEwAA
23:24:52 <Sgeo> " This is not an encyclopedic book, but rather a collage of statements made using the word "esoterics," or related words (e.g. inflections, synonyms or antonyms)."
23:24:55 -!- Taos has left.
23:24:59 <ais523> the "related books" there is suspicious
23:25:06 <Sgeo> So, just... random sentences that have the word "esoteric"
23:25:08 <elliott> looks like another generated thing
23:25:17 <elliott> "the editorial decision to include or exclude terms is purely a computer-generated linguistic process."
23:25:40 <elliott> I want to buy this too....
23:25:42 -!- Phantom_Hoover has quit (Quit: Leaving).
23:25:53 <ais523> you could also buy a copy of "Non-English-Based Programming Languages: Brainfuck, Plankalkül, Befunge, Rapira, Malbolge, Non-English-Based Programming Languages, False"
23:25:55 <elliott> Price:£27.50 & this item Delivered FREE in the UK with Super Saver Delivery. See details and conditions
23:26:03 <elliott> ais523: god dammit why are there so many books i want???????
23:26:18 <ais523> elliott: why would you buy books that were that autogenerated?
23:26:22 <elliott> does it include that one with "GRUNNUR";
23:26:22 <Taneb> Well, goodnight folks
23:26:25 <monqy> i should make a program to write novels for me..........make$$$$$$$$
23:26:32 -!- Taneb has quit (Quit: Page closed).
23:26:50 <elliott> I WANT ALL THE SHITTY BOOKS
23:27:10 <elliott> ais523: i can;t im onverhwlemed
23:27:19 -!- Taos has joined.
23:27:27 <Taos> / ___| ___ ___ __| | |__ _ _ ___
23:27:27 <Taos> | | _ / _ \ / _ \ / _` | '_ \| | | |/ _ \
23:27:27 <Taos> | |_| | (_) | (_) | (_| | |_) | |_| | __/
23:27:27 <Taos> \____|\___/ \___/ \__,_|_.__/ \__, |\___|
23:27:56 <Taos> I suppose your not in a terminal
23:28:10 <elliott> what about my not in a terminal
23:28:12 <ais523> I use a variable-width font for IRC
23:28:16 <Taos> means me pumping figlet into the shell does nothing for you
23:28:19 <Sgeo> It says Goodbye, btw
23:28:19 <ais523> which technically has nothing to do with whether I'm in a terminal or not
23:28:24 <elliott> Taos: it doesn't pump into /our/ shell
23:28:28 <ais523> although my terminal's fixed-width as it would otherwise be hard to play NetHack
23:28:31 <monqy> but why does it say goodbye...........................
23:28:43 <Taos> because I got bored and wanted to say that
23:28:46 <Sgeo> monqy, he's surrounded #esoteric with TNT
23:29:01 <Taos> Sgeo: its demo time
23:29:16 <ais523> is figlet some sort of alternative version of banner(1)?
23:29:20 <ais523> that uses a less overblown font?
23:29:27 <elliott> there are people who don't know what figlet is?
23:29:34 <elliott> figlet is basically super-general banner
23:30:09 <Taos> its the first thing I install
23:30:29 <ais523> wow, I made a major discovery today: pressing / in the Gnome file chooser dialog box makes it actually add a textbox you can type the filename in
23:30:33 -!- Somelauw has quit (Quit: leaving).
23:30:33 <Taos> elliott: thats second
23:30:43 <ais523> that really makes that dialog box about 50% less stupid
23:30:49 <elliott> elliott@katia:~/Code/mcmap$ figlet im cow | cowsay
23:30:49 <elliott> _________________________________________
23:30:49 <elliott> | \ / __/ _ \ \ /\ / / | | | | | | | | |
23:30:49 <elliott> | (_| (_) \ V V / |_|_| |_| |_| \___\___/ |
23:30:52 <elliott> -----------------------------------------
23:30:53 <NihilistDandy> __| | ___ __ _ ___ ___ ___ ___ ___ ___ ___ __ _ ___ __| |
23:30:53 <NihilistDandy> / _` |/ _ \ / _` |/ _ \/ _ \/ __|/ _ \ / __|/ _ \/ _ \ / _` |/ _ \ / _` |
23:30:53 <NihilistDandy> | (_| | (_) | | (_| | __/ __/\__ \ __/ \__ \ __/ __/ | (_| | (_) | (_| |
23:30:53 <NihilistDandy> \__,_|\___/ \__, |\___|\___||___/\___| |___/\___|\___| \__, |\___/ \__,_|
23:31:08 <Taos> yay now everyone is piping into irc
23:31:12 <Taos> my job here is done
23:31:27 <ais523> I'm disappointed that the first thing you install isn't sdate
23:31:38 <elliott> Today is Prickle-Prickle, the 58th day of Confusion in the YOLD 3177
23:31:46 <Taos> totally gotta install taht!
23:32:13 <ais523> sdate is pretty good at breaking programs randomly
23:32:15 <itidus20> the first one however makes little to no sense
23:32:25 <elliott> sdate ddate: Today is Prickle-Prickle, the 58th day of Confusion in the YOLD 3159
23:32:37 <elliott> The Glorious Glasgow Haskell Compilation System, version 7.0.4
23:32:51 <ais523> because the vast majority of programs assume that September is only 30 days long, and that the library function will never return anything outside that range
23:32:54 <elliott> GHCi, version 7.0.4: http://www.haskell.org/ghc/ :? for help
23:32:54 <elliott> Loading package ghc-prim ... linking ... done.
23:32:54 <elliott> Loading package integer-gmp ... linking ... done.
23:32:54 <elliott> Loading package base ... linking ... done.
23:32:54 <elliott> Loading package ffi-1.0 ... linking ... done.
23:33:00 <Taos> ais523: why does it break programs randomly
23:33:02 <NihilistDandy> Today is Pungenday,the 57th day of Confusion in the YOLD 3177
23:33:09 <elliott> Taos: because it uses eternal september dates
23:33:11 <elliott> which aren't, technically, valid
23:33:17 <ais523> Taos: <ais523> because the vast majority of programs assume that September is only 30 days long, and that the library function will never return anything outside that range
23:33:38 <elliott> hmm, only about two years until the thousandth of september
23:33:40 <ais523> sdate's a prefix to other commands that modifies dates to just be expressed in terms of september 1993
23:33:42 <elliott> hmm, only about two years until the seven thousandth of september
23:33:48 <itidus20> gah -- now i forget what font I was using
23:33:59 <Taos> /bin/sh: -c: line 0: unexpected EOF while looking for matching `"'
23:34:00 <Taos> /bin/sh: -c: line 1: syntax error: unexpected end of file
23:34:07 <Taos> | '_ \| | | |/ _ \
23:34:07 <Taos> | |_) | |_| | __/
23:34:07 <Taos> |_.__/ \__, |\___|
23:34:08 -!- Taos has quit (Quit: leaving).
23:34:25 <elliott> ais523: at his /bin/sh failure
23:34:31 <elliott> and his quitting too early
23:34:38 <elliott> s/his/gender neutral pronoun/
23:34:42 <NihilistDandy> | '_ \| | | |/ _ \ | '_ \| | | |/ _ \ | '_ \| | | |/ _ \
23:34:42 <NihilistDandy> | |_) | |_| | __/ | |_) | |_| | __/ | |_) | |_| | __/
23:34:42 <NihilistDandy> |_.__/ \__,_|\___| |_.__/ \__,_|\___| |_.__/ \__,_|\___|
23:35:07 <elliott> hey ais523, how much would you hate me if I violated XDG standards
23:35:11 <elliott> NihilistDandy: he didnt say bue >:|
23:35:24 <elliott> `addquote <Taos> _ <Taos> | |__ _ _ ___ <Taos> | '_ \| | | |/ _ \ <Taos> | |_) | |_| | __/ <Taos> |_.__/ \__, |\___|
23:35:26 <HackEgo> 533) <Taos> _ <Taos> | |__ _ _ ___ <Taos> | '_ \| | | |/ _ \ <Taos> | |_) | |_| | __/ <Taos> |_.__/ \__, |\___|
23:35:28 <elliott> NihilistDandy: fixed that for you
23:35:31 <zzo38> Sgeo: YOLD is the year indication for the Discordian calendar.
23:35:42 <ais523> elliott: I'm not sure what XDG standards are
23:35:59 <elliott> ais523: well the one in particular is why you have a ~/.config/ directory
23:36:07 <elliott> and also ~/.cache, and I think ~/.local too
23:36:14 <ais523> I noticed Wesnoth being changed to comply with those
23:36:17 <Sgeo> What command is ais523 using to get that?
23:36:22 <elliott> ais523: it's an environment variable so you can move ~/.config, it's horribly broken though
23:36:25 <itidus20> so are there any books published about esoteric programming languages?
23:36:25 <elliott> there's no way to get regular dotfiles with it
23:36:30 <elliott> so you have to reserve a directory for it
23:36:36 <ais523> I mostly just ignore those standards
23:36:36 <elliott> i'm adding configuration to mcmap
23:36:39 <elliott> and i just want to use ~/.mcmap
23:36:40 <ais523> and don't mind whether people follow it or not
23:36:50 <elliott> ais523: ok, thanks, although it's fizzie's opinion that actually matters :P
23:37:00 <ais523> although, programs I've worked on have used ~/.acehackrc and ~/.taeb
23:37:05 <zzo38> itidus20: I have seen some magazine articles in some magazines about Linux. I have also seen there is a Japanese book that describes a few esolangs including one of my own.
23:37:10 <ais523> Sgeo: it wasn't me using ddate
23:37:11 <NihilistDandy> Also, I think INTERCAL might have a book out there some where
23:37:13 <elliott> <itidus20> so are there any books published about esoteric programming languages?
23:37:28 <ais523> it isn't really a book about esolangs
23:37:35 <Sgeo> <itidus20> other than auto-generated
23:37:35 <ais523> so much as a book containing Wikipedia articles about esolangs
23:37:48 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:37:51 <elliott> ais523: is a book that has a bunch of articles written by its author about esolangs not a book about esolangs?
23:37:59 <elliott> wikipedia's just happen to have really long author lists, that's all
23:38:02 <ais523> itidus20: it's not a physical book yet AFAIK, but the C-INTERCAL Revamped Reference Manual is an esolang-related book
23:38:13 <ais523> elliott: the author's written as "Books, LLC"
23:38:24 <zzo38> elliott: I forget its title although I know there is a book that parts of it describe a few esolangs including one of my own. And it is Japanese book.
23:38:24 <ais523> not as the actual authors of the book
23:38:43 <ais523> doing that's actually illegal under the GFDL, if you make a compilation out of GFDL stuff you have to list at least five actual authors on the title page
23:38:46 <ais523> unless there are less than five
23:38:46 <elliott> ais523: and changing an author name hardly affects what a book is about
23:38:52 <itidus20> it would be a bit of a pointless exercize i know
23:38:57 <ais523> but presumably the CC-by-sa license is more lenient
23:39:46 <itidus20> it would be a piece of trash text no doubt
23:39:49 <zzo38> It is why, when I write a book usually I do not use the GFDL. I don't care whether or not they list the author, or how the book is organized, or whatever. They would have to change it for various purposes including different paper sizes, and so on.
23:40:01 <elliott> zzo38, famous pubished author
23:40:27 <zzo38> elliott: What about famous pubished author?
23:40:37 <zzo38> Is it? I don't think so.
23:40:44 <zzo38> I have never published a book (yet).
23:41:52 <itidus20> looking on the wikipedia wiki, there were printed INTERCAL manuals
23:42:13 <ais523> itidus20: yes, the original manuals were printed, and the electronic version of the manuals based on them
23:42:25 <ais523> and proofread against the paper manuals by someone else
23:42:45 <ais523> also, I'm not sure if "wikipedia wiki" = Wikipedia or Wikimedia Meta-Wiki
23:42:46 <itidus20> notice how i phrased it so that wikipedia is just a specialization of a wiki
23:43:07 <itidus20> all the better for me to do such things
23:43:14 <ais523> as, e.g. "nethack wiki" = "wiki about NetHack" = "nethackwiki.com", I'd assume "wikipedia wiki" = "wiki about Wikipedia" = "meta.wikimedia.org"
23:43:16 <zzo38> If in some day, I publish some book, that might include some of the programs I have written too, but also some other books, possibly. However I never yet publish any book.
23:43:34 <NihilistDandy> `addquote <zzo38> If in some day, I publish some book, that might include some of the programs I have written too, but also some other books, possibly. However I never yet publish any book.
23:43:36 <HackEgo> 534) <zzo38> If in some day, I publish some book, that might include some of the programs I have written too, but also some other books, possibly. However I never yet publish any book.
23:43:37 <itidus20> ais, the "about" is a misnomer
23:43:41 <elliott> NihilistDandy: that was just regular zzo
23:44:06 <itidus20> i see what has happened here though
23:44:08 <ais523> itidus20: well, would you interpret "nethack wiki" as implying that NetHack is a wiki?
23:44:08 <elliott> yeah, but if we addquoted everything zzo38 said... :D
23:44:48 <zzo38> NihilistDandy: I am OK whether you put my quotations or not, it doesn't matter to me either way, but also either way I can collect them by looking at the list of the quotations that are available.
23:44:56 <monqy> nethack which is a wiki.....is a wiki
23:45:25 <itidus20> the name is formally "nethack wiki" and "nethack wiki" is a wiki, hence: nethack wiki wiki
23:45:37 <elliott> itidus20: this is really bad terminology
23:45:50 <monqy> is nethack wiki wiki a wiki
23:46:35 <itidus20> ok i suppose i have created a tautology
23:46:37 <elliott> ais523: so scapegoat.................................
23:46:48 <Sgeo> elliott, as does Feather
23:47:19 <elliott> scapegoat needs to be written in zepto-feather
23:47:44 <Sgeo> Yay, 0 infections found
23:47:46 <ais523> Feather would be a really really bad language to write a VCS in, I imagine
23:48:05 <ais523> Sgeo: does that mean that your virus protection is good or your virus scanner is bad?
23:48:14 <monqy> all i know about feather is what i read on the wiki page
23:48:17 <elliott> ais523: I was about to ask who said he was talking about computer viruses
23:48:22 <elliott> but then I realise that you didn't imply that, either
23:48:30 <itidus20> so thus wikipedia could be "most prolific encyclopedia wiki" vs "nethack wiki"
23:48:50 <ais523> elliott: only with a nonstandard (but correct) definition of "or"
23:48:59 <Sgeo> ais523, well, the scanner is by ESET, which has a good reputation
23:49:01 <NihilistDandy> itidus20: That sounds like a poor translation of an ancient Chinese manuscript
23:49:06 <ais523> Sgeo: oh right, they do
23:49:09 <itidus20> that would be a fallacy of some kind
23:49:11 <Sgeo> Sorry to burst the not-a-computer-virus buble
23:49:17 <monqy> ancient chinese manuscript wiki wiki
23:49:29 <elliott> ais523: I suppose you jumped to "virus"
23:49:38 <elliott> There's certainly infection protection and infection scanners in the real world
23:50:01 <monqy> sgeo was inspecting his wiki wiki
23:50:01 <zzo38> Now there is also wiki related to TeXnicard project (on Redmine), but it is currently empty (except for the file that says it is currently empty)
23:50:15 <itidus20> well there are many encyclopedia wikis.. but wikipedia is the biggest
23:50:16 <Sgeo> zzo38, the file is a lie!
23:50:29 <zzo38> Sgeo: I know..... but, it is mostly empty.
23:50:52 <Sgeo> Empty wiki wiki, a wiki cataloging empty wikis
23:51:06 <Sgeo> And also an empty wiki about wikis
23:51:26 <Sgeo> Just realized that one wiki can be both
23:52:01 <Sgeo> I'm a leaf on the wind
23:52:10 <elliott> dunno if anyone's noticed, but me and monqy are pretty much the biggest contributors to this channel
23:52:16 <elliott> what would you do without us???
23:52:20 <ais523> elliott: how do you do a paragraph break in Markdown?
23:52:36 <ais523> the front page of the patch-tag wiki about AceHack accidentally got Slashdotted
23:52:42 <zzo38> Is it a blank line? I don't know.
23:52:46 <ais523> oh, right, there is a para break there
23:52:50 <itidus20> i'm sort of a parasite on a channel, but i am great at generating randomness
23:52:51 <ais523> just that the styling's so bad I can't see it
23:53:10 <monqy> itidus20: you're like sgeo but more so. bizarro sgeo.
23:53:12 <zzo38> I know a blank line is a paragraph break on MediaWiki, and in TeX, too, by default.
23:53:12 <oerjan> clearly what we need here is the wiki monads and comonads
23:53:20 <ais523> elliott: yep, I thought it wasn't working
23:53:26 <elliott> ais523: patch-tag is a really ugly website :(
23:53:45 <elliott> also acehack has like fifty problems, did you know, i remember telling you about them and them being dismissed :D
23:53:46 <ais523> I'm just using it for hosting, really, it's not a "proper" website
23:53:55 <itidus20> monqy: last night in my dreams I saw a false photo album of my childhood... looking ghostly
23:54:01 <elliott> `addquote <itidus20> monqy: last night in my dreams I saw a false photo album of my childhood... looking ghostly
23:54:02 <HackEgo> 535) <itidus20> monqy: last night in my dreams I saw a false photo album of my childhood... looking ghostly
23:54:11 <elliott> Last night in my dreams I was a banana... looking ghostly
23:54:15 <Sgeo> elliott, so I can say random gibberish and get quoted for it?
23:54:18 <monqy> itidus20: i saw a dancing cgi skeleton named malaria. i danced and played with him.
23:54:22 <elliott> Sgeo: that was funny gibberish
23:54:28 <elliott> `addquote <monqy> itidus20: i saw a dancing cgi skeleton named malaria. i danced and played with him.
23:54:30 <HackEgo> 536) <monqy> itidus20: i saw a dancing cgi skeleton named malaria. i danced and played with him.
23:54:37 <oerjan> with join :: Wiki (Wiki a) -> Wiki a and cojoin :: Wiki a -> Wiki (Wiki a)
23:54:43 <elliott> NihilistDandy: nope, quotes are closed i'm afraid
23:55:01 <Sgeo> NihilistDandy, I'm a banana. Your lenses are made out of me.
23:55:12 <elliott> wow, how long has that slashdot article been without comments, ais523?
23:55:21 <ais523> elliott: probably about five minutes
23:55:27 <ais523> and #junethack are panicking
23:55:29 <elliott> what timezone does /. use, anyway?
23:55:47 <ais523> elliott: to my view, it uses my timezone
23:55:51 <ais523> but that's possibly because I'm logged in
23:55:53 <elliott> ais523: feel free to explain that one to them
23:55:56 <ais523> http://games.slashdot.org/story/11/07/22/2338215/First-NetHack-Cross-Variant-Summer-Tournament
23:55:59 <elliott> you could start with "He's an idiot"
23:56:03 <ais523> heh, I just esolanged Slashdot
23:56:08 <ais523> I wonder if it can take the load?
23:56:20 <ais523> esolanging it would be putting it on the wiki
23:56:20 <itidus20> It's ok guys. I am doing what I can to keep my psyche and ego surviving. All the while the threat of ww3 looms, the mortality of family and friends(loved ones?) and sooner or llater my own mortality.
23:56:34 <elliott> `addquote <itidus20> It's ok guys. I am doing what I can to keep my psyche and ego surviving. All the while the threat of ww3 looms, the mortality of family and friends(loved ones?) and sooner or llater my own mortality.
23:56:36 <HackEgo> 537) <itidus20> It's ok guys. I am doing what I can to keep my psyche and ego surviving. All the while the threat of ww3 looms, the mortality of family and friends(loved ones?) and sooner or llater my own mortality.
23:56:40 <elliott> ais523: how did junethack react to my brilliance..............
23:56:55 <ais523> elliott: I don't get it
23:57:04 <elliott> ais523: itidus20 is the best, any questions?
23:57:07 <ais523> oh, you mean in channel?
23:57:20 <elliott> i sohuld say hi to them so they dont ignore me
23:57:23 <Sgeo> ais523, I just tried to tell elliott that
23:57:35 <Sgeo> I think he just did to me what #junethack did to elliott
23:57:47 <monqy> why would anyone ignore elliott
23:57:56 <ais523> note that I'm an op on #junethack, so don't try anything too trollish
23:58:06 <elliott> ais523: its ok ur my pal i know you wouldn't ban me or anything
23:58:40 * oerjan cackles evilly for no specific reason
23:58:43 <ais523> elliott: you're acting out of character now
23:58:58 <elliott> ais523: i'm acting perfectly in character, you just don't understand the levels i operate on
23:59:22 <elliott> ok i'm done, i hope they accept my apology
23:59:27 <elliott> but i'm too embarrassed to stay there to accept it
23:59:30 <oerjan> who wants thack in june, anyway
00:00:17 <NihilistDandy> Capitalism is a cancer. But I'm a smoker, anyway, so...
00:00:33 <elliott> `addquote <NihilistDandy> Capitalism is a cancer. But I'm a smoker, anyway, so...
00:00:34 <HackEgo> 538) <NihilistDandy> Capitalism is a cancer. But I'm a smoker, anyway, so...
00:01:07 <oerjan> what is socialism then? Lupus?
00:03:29 <itidus20> "Everyone else seems to be able to cope with the people they spend most of their time with." That's what I tell myself at first. But then you hear about the divorces and custardy battles. The domestic violence. Cruel managers. Tyrannical dictators. "What would I do or how would I feel if I was one of them?"
00:03:42 <itidus20> no need to add every quote during my bizzaro rant though.
00:04:13 <itidus20> now see.. if they hadn't gotten to me i could just read my sentences normally
00:04:37 <oerjan> custardy battles are really gruesome things
00:04:43 <itidus20> but i also learned about this concept of embedded suggestions, hence: "add every quote during my bizzaro rant" and "read my sentences"
00:05:07 <itidus20> not intentionally though.. it occurs in normal grammar.
00:05:41 <NihilistDandy> Wait, if you were the one on the receiving end, or the one on the giving end?
00:06:01 <NihilistDandy> You'd probably feel pretty awesome in the latter case
00:06:49 <oerjan> thack _is_ boring. also it's july already.
00:08:18 <itidus20> so this crowd.. and believe me there is such a crowd, is saying that people filter out logic and just see imperatives
00:08:30 <itidus20> at least thats what they seem to be saying
00:11:08 <itidus20> there is an xkcd comic which reminds me of what im describing
00:14:59 <Sgeo> Ju is not a month
00:15:34 <itidus20> in the street fighter back story there is a team of evil women named after months
00:15:36 <monqy> portmantaeus don't exist
00:15:39 <ais523> it was originally meant to be in June, but people decided July was better for them
00:15:55 <NihilistDandy> ............................................______ __
00:15:55 <NihilistDandy> ....................................,.-‘”...................``~.,
00:15:55 <NihilistDandy> .............................,.-”...................................“-.,
00:15:55 <NihilistDandy> .........................,/...............................................”:,
00:15:58 <NihilistDandy> .....................,?........................... ...........................,
00:16:01 <NihilistDandy> .................../.................................................. .........,}
00:16:04 <NihilistDandy> ................./.................................................. ....,:`^`..}
00:16:07 <NihilistDandy> .............../.................................................. .,:”........./
00:16:10 <NihilistDandy> ..............?.....__............................ .............:`.........../
00:16:13 <NihilistDandy> ............./__.(.....“~-,_..............................,:`........../
00:16:16 <NihilistDandy> .........../(_....”~,_........“~,_....................,:`..... ..._/
00:16:18 <NihilistDandy> ..........{.._$;_......”=,_.......“-,_.......,.-~-,},.~”;/....}
00:16:21 <NihilistDandy> ...........((.....*~_.......”=-._......“;,,./`..../”............../
00:16:23 <NihilistDandy> ...,,,___.`~,......“~.,....................`..... }............../
00:16:26 <NihilistDandy> ............(....`=-,,.......`........................(......;_,,-”
00:16:28 <NihilistDandy> ............/.`~,......`-...................................../
00:16:30 <NihilistDandy> .............`~.*-,.....................................|,./.....,__
00:16:33 <NihilistDandy> ,,_..........}.>-._...................................|........... ...`=~-,
00:16:36 <NihilistDandy> .....`=~-,__......`,.................................
00:16:38 <NihilistDandy> ...................`=~-,,.,...............................
00:16:41 <NihilistDandy> ................................`:,,.............. .............`..............__
00:16:44 <NihilistDandy> .....................................`=-,...................,%`>--==``
00:16:46 <NihilistDandy> ........................................_........ …_,-%…….`
00:17:06 <zzo38> Is that picture of something? Of what?
00:17:07 <ais523> NihilistDandy: that's not quite the same thing as accidentally pasting a 20-line struct into the channel
00:17:38 <elliott> NihilistDandy: yeah, don't do that.
00:17:49 <NihilistDandy> Never again. I just realized a script I had did that
00:17:51 <elliott> as an ardent pro-pasting activist, that's way too long
00:18:05 <zzo38> Is it picture of facepalm?
00:18:06 <ais523> elliott: would you abuse ops in #esoteric if you had them?
00:18:14 <ais523> (not that I can grant them to you, I'm just curious as to the answer)
00:18:31 <itidus20> Juni and Juli are members of a special unit within Shadaloo called the "Dolls", also known as Bison Elite Guard, which is composed of twelve young women brainwashed to serve as Bison's personal assassins. The twelve members of the Dolls are named after the months of the Gregorian calendar in various languages, with Juni and Juli being German for June and July.
00:18:44 <oerjan> zzo38: thank you, i couldn't see it before you said it
00:18:49 <monqy> junithack, julithack
00:18:58 <elliott> ais523: Well, I mean, maybe for a joke, but not beyond that
00:19:04 <ais523> it can be hard to attract an op here sometimes
00:19:31 <NihilistDandy> Op powers are only for trolling, as far as I can tell
00:20:01 <monqy> im bad with power i never know what to do with it
00:20:45 <oerjan> ais523: i was _this_ far from banning NihilistDandy
00:20:54 <Sgeo> I have power in some places. Then left those places to rot
00:21:09 <oerjan> NihilistDandy: temporarily mind you
00:21:14 <elliott> i am become Sgeo destroyer of virtual worlds
00:21:26 <Sgeo> elliott, since when are wikis virtual worlds?
00:21:40 <elliott> hey oerjan gimme ops i need to find out for sure whether i'd abuse them or not
00:22:02 <elliott> ais523: i figure i'll inevitably get ops if i just stick around here long enough
00:22:07 <NihilistDandy> As compensation: http://www.smbc-comics.com/#comic
00:22:08 <elliott> im going to be the only person here in thirty years
00:22:15 <Sgeo> ais523, yes, and Creatures Wik, although I was a bit more involved there. And Superosity wiki
00:22:46 <ais523> elliott: I tend to randomly pick up ops in all sorts of places when I don't expect it
00:23:08 <NihilistDandy> elliott: You'll be dead in 30 years. HackEgo will become self-aware and destroy all meatbags in its quote file
00:23:14 <ais523> hasn't happened here, yet, even though this is one of the channels people might most expect me to be an op in (given that I'm one of the two active wiki admins, and Keymaker rarely comes here)
00:24:02 -!- Nisstyre has quit (Remote host closed the connection).
00:24:34 <elliott> ais523: you'll get ops when oerjan becomes a wiki admin
00:24:43 <elliott> so you already have them, enjoy!
00:26:08 -!- ChanServ has set channel mode: +q *!*@gateway/web/freenode/ip.76.99.21.147.
00:26:26 -!- ChanServ has set channel mode: -q *!*@gateway/web/freenode/ip.76.99.21.147.
00:27:28 <zzo38> If I do publish any of my computer program in books, I should also included the DVD of the program in the back of the book, too. (This is one idea about literate programming, although there are others, too.)
00:28:10 <oerjan> that, btw, is apparently the cloak of user "test" :P
00:29:19 <oerjan> elliott: the poor innocent victim of my chanserv testing
00:30:12 <elliott> now wtf would it segfault /there/
00:30:32 <elliott> how do you ascend a scope in gdb? ais523?
00:30:48 <ais523> you can use bt to see a list of frame numbers
00:31:06 <elliott> NihilistDandy: "Routine helps calm you down. Maybe you will talk to another friend. You talk to him every day for some reason. Though it's not exactly right to call him a friend, since you despise him. Your relationship with the fellow is difficult to describe. It should be noted that in troll language, the word for friend is exactly the same as the word for enemy."
00:31:13 <elliott> Aww, it's "enemy", not "victim".
00:31:17 <elliott> My tiny memory strikes again.
00:31:21 <elliott> (Note: My memory is not quite tiny.)
00:31:26 <elliott> ais523: isn't there "frame up" or something?
00:32:02 <zzo38> In that case you use the word of troll language in case you need a new word since the normal English word not exactly right, maybe.
00:32:19 <elliott> (gdb) print block_info[block]
00:32:19 <elliott> $2 = {name = 0x0, type = AIR, trait = NO_TRAIT}
00:33:01 <elliott> olsner: it's a block that doesn't exist
00:33:11 <Sgeo> elliott, derp. I was about to complain that routing calming the guy down makes no sense, but I was mistaken as to who that applied
00:33:37 <elliott> Sgeo: good sgeo memory two thousand and eleven
00:33:44 <elliott> 01:32:44 [DIED] Failed to open file '/home/elliott/.mcmap/colors': No such file or directory
00:33:50 <elliott> oh right, i probably shouldn't require it to exist
00:34:04 * olsner gets some burger-n-ds9
00:35:14 <olsner> (the first part is watching unrar for 21 seconds, really boring)
00:35:38 <elliott> Operation not permitted; only the owner of the file (or other resource) or processes with special privileges can perform the operation.
00:35:38 <elliott> No such file or directory. This is a "file doesn't exist" error for ordinary files that are referenced in contexts where they are expected to already exist.
00:35:43 <elliott> EEXIST is a good name for that
00:36:05 <elliott> olsner: then the second part is DS9 and it's even more boring :DDDDDDDdddddd oh snap
00:36:18 <Sgeo> <elliott> G_FILE_ERROR_EXIST
00:36:18 <Sgeo> <elliott> Operation not permitted; only the owner of the file (or other resource) or processes with special privileges can perform the operation.
00:36:25 <elliott> it's funny because DS9 has a plot, an attribute not shared with the entire rest of star trek
00:36:27 <Sgeo> Why... call it G_FILE_ERROR_EXIST?
00:36:41 <elliott> i think its from unix wow what the fuck happened to the map
00:36:44 <olsner> elliott: both your statements are tainted by truth
00:36:50 <elliott> 01:36:36 MODE: surface긒澖缀è긒澖缀`跈Ā
00:37:16 <olsner> but yeah, I'm really looking forward for this "plot" you speak of
00:37:28 <elliott> olsner: how many episodes in are you??? DS9 is great
00:37:36 <olsner> elliott: 10 or something
00:37:41 <elliott> i'm assuming you meant you haven't seen plot yet
00:37:45 <NihilistDandy> I liked TNG and Voyager, and DS9 is quite acceptable
00:37:49 <Sgeo> I'd comment, but my opinions tend to be random relative to consensus
00:37:54 <elliott> NihilistDandy: You're the worst person
00:37:57 <elliott> I'm removing you from the whitelist now
00:38:11 <olsner> TNG really had no plot at all, and for the most part that was a good thing
00:38:38 <elliott> NihilistDandy: I'm offended by your liking of Voyager, not your ambivalence to DS9
00:38:41 <ais523> I didn't really watch Star Trek enough to be able to tell one series from another
00:38:42 <NihilistDandy> elliott: You'll never get ops now. Your abusive nature is revealed
00:38:43 <Sgeo> elliott very quickly abuses power
00:38:54 <olsner> enterprise is currently my reference to startrek-with-plot
00:39:02 <elliott> NihilistDandy: OK yeah, stop saying that Voyager is an acceptable thing.
00:39:22 <Sgeo> elliott, can we at least agree that the Voyager theme is good?
00:39:29 <ais523> elliott: when I watched it I was too young to know good from bad, at least wrt Star Trek
00:39:32 <elliott> Sgeo: It's a bit boooooooooooooring.
00:39:33 <ais523> so I have only your word to go on
00:39:41 <elliott> So is DS9's, but it's the nicer of the two boring Star Trek themes
00:39:47 <elliott> ais523: Literally everyone hates Voyager :P
00:39:48 <NihilistDandy> olsner: I think Enterprise hurt me a little. I couldn't watch past the third episode
00:39:59 <elliott> NihilistDandy: Through a Mirror, Darkly is the only good Enterprise
00:40:07 <elliott> ALSO ITS INTRO HAVE WE RAVED ABOUT ITS INTRO ENOUGH IN THIS CHANNEL YET
00:40:43 <elliott> NihilistDandy: http://www.youtube.com/watch?v=Dl5zw6fGjdA is the cool intro to In a Mirror, Darkly
00:41:02 <elliott> They took all the exploration scenes from the normal intro and turned them into the far superior Earth-blowing-shit-up scenes
00:42:32 <NihilistDandy> That was pretty cool. The music's kinda bland, though
00:42:55 <elliott> OK, what the hell happened to this...
00:43:04 <elliott> (mode == MAP_MODE_CROSS && map_flags & MAP_FLAG_FOLLOW_Y ? " (follow)" : ""),
00:43:04 <elliott> (mode == MAP_MODE_SURFACE && map_flags & MAP_FLAG_CHOP ? " (chop)" : ""),
00:43:04 <elliott> (map_flags & MAP_FLAG_LIGHTS ? " (lights)" : ""),
00:43:04 <elliott> ((map_flags & MAP_FLAG_LIGHTS) && (map_flags & MAP_FLAG_NIGHT) ? " (night)" : ""));
00:43:09 <elliott> How can any of that be 긒澖缀è긒澖缀`跈Ā?
00:43:20 <elliott> NihilistDandy: Have you seen the normal Enterprise music.
00:43:22 <elliott> Anything is better than it.
00:43:47 <elliott> NihilistDandy: http://www.youtube.com/watch?v=ZPn-lTytfGo Enjoy terrible pop song
00:44:07 <ais523> elliott: have you tried encoding the garbage string as UTF-16, then decoding it as UTF-8?
00:44:28 <elliott> I love how it looks like a bad redub by someone on YouTube
00:44:33 <elliott> ais523: nope, I'm mostly trying to figure how I broke a piece of code I didn't even otuch
00:44:51 <NihilistDandy> Top comment on that video: Hey Im kinda new to the Star Trek franchise just bought the original series on dvd watching it tonight. Now which series has Wil Wheaton in it.
00:45:00 -!- Nisstyre has joined.
00:45:18 <zzo38> Maybe it has messy format strings?
00:45:25 <elliott> I like how Wil Wheaton has about the same number of likers as Wesley Crusher has haters
00:45:35 <zzo38> Or, buffer overflows?
00:45:45 <elliott> zzo38: but i didnt tucho that biteof code
00:46:14 <zzo38> Then maybe buffer overflows.
00:46:16 <pikhq_> elliott: Wil Wheaton is a pretty nice guy, and Wesley Crusher is a terrible character. Simple. :)
00:47:29 <itidus20> I support the Wesley Crushers.
00:48:17 <olsner> I don't really get that though, wesley crusher was a likable geniusishy character, but all I've seen of wil wheaton is the big bang theory making him seem like a dick
00:48:28 <elliott> ais523: how does use valgrind
00:48:33 <elliott> olsner: wesley crusher was not likeable???
00:48:46 <ais523> for checking for memory access errors, just write valgrind before the command name
00:48:48 <olsner> elliott: I am saying he was
00:48:54 <elliott> he was the accidental archetype of "smart but REALLY ANNOYING DICK"
00:49:06 <elliott> and his smartness was just annoying because it made no sense at all
00:49:11 <elliott> ais523: find memory corrupt
00:49:19 <elliott> dunno if i'm smart enough for this but HERE WE GO
00:49:20 <ais523> finding corruption is its default setting
00:49:26 <elliott> also dunno if it'll like SDL
00:49:27 <pikhq_> olsner: People get annoyed at Mary Sue wunderkind.
00:49:45 <itidus20> He has become Sheldon's nemesis. But we sympathize with Sheldon.
00:50:14 <ais523> pikhq_: I think the actor who played Wesley Crusher is on record as saying that he hated Wesley Crusher too
00:50:18 <elliott> i've never watched big bang theory but isn't sheldon meant to be a total jerk too
00:50:24 <pikhq_> ais523: Yes, Wil Wheaton is on record saying that.
00:50:26 <elliott> characters are not likeable just because they're intelligent
00:50:39 <pikhq_> elliott: He's autistic taken up to 11.
00:50:51 <elliott> minecraft why do you hate me
00:51:08 <zzo38> NihilistDandy: No. You mean *I'm* drunk? I don't think I am drunk either.
00:51:11 <NihilistDandy> You can't have your characters announce how they're feeling. THAT MAKES ME FEEL ANGRY!
00:51:51 <elliott> elliott@katia:~/Code/mcmap$ valgrind hello let's be friends
00:51:54 <elliott> ais523: help what do i tell valgrind
00:51:58 <elliott> it wants to know something
00:52:11 <ais523> elliott: valgrind doesn't take input
00:52:14 <ais523> and just outputs to stderr
00:52:15 <olsner> stupid elliott doesn't identify with intelligent unlikable characters on tv
00:52:18 <ais523> so obviously hello is asking for inputs
00:52:19 <elliott> then why is it asking me :(((((((((((((
00:52:29 <elliott> ais523: oh, should i say hello to hello???
00:52:40 <ais523> you have an unmatched '
00:52:41 <elliott> ==3150== Conditional jump or move depends on uninitialised value(s)
00:52:41 <elliott> ==3150== at 0x57BBE40: inflateReset2 (in /lib/libz.so.1.2.3.4)
00:52:41 <elliott> ==3150== by 0x57BBF2F: inflateInit2_ (in /lib/libz.so.1.2.3.4)
00:52:41 <elliott> ==3150== by 0x40A47B: world_thread (in /home/elliott/Code/mcmap/build/mcmap)
00:52:42 <elliott> wow, I don't even want to know
00:53:10 <ais523> bleh, I don't have hello installed
00:53:56 <elliott> what the fuck? it looks like the only memory badness is in the lines i didn't touch
00:54:00 <elliott> and that don't access any values i touched
00:54:41 <elliott> (minecraft may be off-topic here, but mcmap isn't!)
00:58:42 <olsner> THIS STRAW HAS NO BENDY-END
00:59:13 <monqy> bendy is the best part of straws :(
00:59:24 <elliott> what, the NY Times is running a story about /Dwarf Fortress/?
00:59:35 <elliott> monqy: http://www.nytimes.com/2011/07/24/magazine/the-brilliance-of-dwarf-fortress.html?_r=1&pagewanted=all
00:59:36 <olsner> monqy: well, this straw DOES NOT HAVE IT
00:59:56 <elliott> did i die and end up in heaven
01:00:25 <olsner> the lack of bendiness is located to the straw
01:00:53 <oerjan> olsner: monqy: stop it. we don't want straw arguments here.
01:01:05 <elliott> you're such a straw man, oerjan
01:01:17 <olsner> oerjan: if my straw had bendies I could build a strawman
01:02:01 <Lymee> Where do.... Dwarf eat--
01:02:30 <olsner> Lymee: your questions are irrelevant in this crisis
01:02:41 <zzo38> Now read the "level20" D&D recording file.
01:02:46 -!- ralc has joined.
01:02:48 <oerjan> the straw that broke olsner
01:02:52 <elliott> "The only furniture in the small dining room is Scamps’s litter box."
01:02:55 <olsner> Lymee: the straw, the bendy, it lacks it
01:03:08 <elliott> Lymee: hi, can you fix mcmap,
01:03:08 <zzo38> There may be some things I have missed and I will ask my brother and the DM. But other errors such as grammatical or whatever, you can tell me now.
01:03:17 <elliott> "If much of Tarn’s apartment suggests a tenant who never fully moved in, his bedroom suggests a tenant who never sets a sock outdoors."
01:03:26 <elliott> "Tarn wakes up around 3 p.m. every day, codes through the night and goes to bed around 6 a.m."
01:03:57 <elliott> i think tarn's a republican though so :(
01:04:10 <elliott> also i would never make a game as boring as dwarf fortress
01:04:31 <elliott> "Tarn consumed “maybe one glass” of water in the last three months, hydrating with soft drinks instead. “Water’s not doing it for me these days,” he said. “I know it’s bad, but the sugar goes right into programming the game. If I don’t drink soda now, I get a headache and can’t do any work.”"
01:04:36 <elliott> i think they made this article just to laugh at him
01:04:37 <zzo38> Then don't make Dwarf Fortress, please.
01:05:22 <Lymee> elliott, nonsense!
01:05:29 <Lymee> That is the standard all programmers must aspire to.
01:05:45 -!- elliott has set topic: Tarn was pleased. “The hippos like the sewers!” he said. He took a celebratory swig of Dr. Pepper and rocked back and forth. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
01:06:05 <itidus20> There is some property of soda which makes it less painful on sensitive gums.
01:06:35 <elliott> it's probably all that acid
01:06:38 <Gregor> Is it the fizziness, or the acidity? :P
01:07:06 <itidus20> but water tends to irritate my gums
01:07:10 <olsner> elliott: you know, this Tarn character sounds like someone from that story about the search for the Point
01:07:14 <itidus20> because i have some serious gum problems
01:07:22 <elliott> olsner: search for the what now?
01:07:47 <elliott> "The issue wasn’t aptitude so much as passion. He wanted to do math but also to make video games, a juggling act he managed as an undergraduate. This had become impossible. “They wanted 60 hours a week from you, giving you problems that would take 20 hours to solve,” he said. He grew depressed and, in his only encounter with drugs, snorted meth."
01:07:53 <elliott> this is the silliest article
01:07:57 <olsner> elliott: well, was it a search? I just recall something with "the Point"
01:08:05 <itidus20> you know... all the fizz and acids makes it possible for them to add salt to the soda
01:08:33 <elliott> all the real bedroom programmers snort pure liquified scheme
01:08:34 <itidus20> 23mg of sodium per 250ml in my current soda
01:09:10 <itidus20> question is, how much sodium in water. and would i taste 23mg of sodium in 250ml of water
01:09:37 <elliott> itidus20: never leave us ok
01:10:05 <NihilistDandy> I played Dwarf Fortress for 20 minutes before becoming a mix of bored and disillusioned
01:10:26 <elliott> dwarf fortress is great, it's just not a game
01:10:41 <elliott> more like a scientific measuring and probing tool for a universe that doesn't exist
01:10:41 <itidus20> people don't necessarily want games.
01:11:10 <zzo38> No, it is a video game.
01:11:12 <olsner> itidus20: at least one yes
01:11:16 <NihilistDandy> I spend most of my time modelling and probing things that don't exist. I don't need that in a game
01:11:30 <itidus20> is making an avatar jump onto a floating brick a game?
01:11:31 <elliott> super mario brothers is a game, yes :P
01:11:33 <monqy> i wish i could get into dwarf fortress
01:11:41 <monqy> it sounds like the kind of game i would like
01:11:43 -!- cheater_ has quit (Ping timeout: 255 seconds).
01:11:43 <elliott> monqy: get into elliottcraft instead
01:11:45 <zzo38> itidus20: No, that is just an idea.
01:11:47 <monqy> the kind of more than a game i would like
01:12:03 <itidus20> well.. in super mario bros, you do that just within the context of a game
01:12:04 <elliott> monqy: yes i play minecraft, but it is a bad game, so i am making a totally different game and calling it a better minecraft
01:12:18 <elliott> monqy: dwarf fortress-level detail and depth, but minecraft-style graphics and infinite world
01:12:27 <elliott> plus you control a player rather than dwarves (although there are AIs in the world)
01:12:29 <itidus20> super mario bros is about jumping on blocks with a time limit
01:12:34 <elliott> i'm not sure what the goal is yet :<
01:12:44 <elliott> but hey, infinite in all directions unlike minecraft!!
01:12:48 <elliott> (minecraft has a height limit)
01:12:55 <zzo38> itidus20: Well, it is about reaching the end of each level, I think
01:13:04 <zzo38> It is the goal, at least.
01:13:14 <itidus20> by study i mean i look at websites
01:13:15 <olsner> Und jetzt: schalafen werden würden werden sein... Ja?
01:13:40 <itidus20> originally shigeru said.. each level should take about 60 seconds
01:13:44 <elliott> monqy: also competently coded multiplayer??? unlike minecraft's which is so bad you have no idea
01:13:49 <NihilistDandy> elliott: Well, I mean if you have a real UTM you could do it strictly :D
01:13:59 <elliott> NihilistDandy: utms can't do infinite computation in finite time, sorry no
01:14:03 <itidus20> the people said.. oh no. thats a lot of screens that have to be created per level if it is scrolling for a whole minute
01:14:13 <monqy> one time i played minecraft
01:14:17 <itidus20> then shigeru said.. but there will be things on the way to slow them down
01:14:18 <monqy> it was a long time ago
01:14:24 <NihilistDandy> elliott: http://www.youtube.com/watch?v=pJsPoI2w6-A
01:14:28 <elliott> monqy: back when it was a java applet?
01:14:31 <elliott> and you had infinite of all blocks
01:14:45 <monqy> is it not a java applet anymore?
01:14:52 <elliott> monqy: well it's java, but nobody plays it in the applet form any more
01:14:59 <elliott> and it costs money, but not much
01:15:07 <elliott> monqy: the beta is actually a fun game. the coding is so bad you have no idea, but it is actually fun.
01:15:23 <elliott> monqy: 21 dollars, it seems
01:15:29 <elliott> it was half that when i bought it during alpha :P
01:15:31 * olsner had an MRI scan the other week, btw: there should be nothing to worry about - because if there were I hope they would've told me by now
01:15:41 <elliott> (and will double again when it hits final)
01:15:48 <elliott> olsner: worry? I was just getting excited :(
01:15:56 <itidus20> yeah.. super mario game is all about reaching the end of the level within a time limit
01:16:01 <monqy> 42 dollars minecraft?
01:16:04 <olsner> elliott: MRI scans are more noisy than exciting
01:16:11 <elliott> monqy: well, it's a lot bigger game now :P
01:16:23 <elliott> monqy: aren't new games like sixty dollars anyway
01:16:37 <monqy> elliott: i dont buy games i have no idea
01:17:01 <olsner> elliott: otoh, why would you ever worry about my "insignificant" existence
01:17:13 <elliott> monqy: minecraft is good to buy because it gives you two good things to do:
01:17:16 <elliott> monqy: - complain about minecraft
01:17:18 <elliott> monqy: - play it and enjoy it
01:17:33 <olsner> NihilistDandy: the nihilist doubly so
01:17:41 <itidus20> Game theory is not a perfect tool for analyzing video games.
01:17:45 <elliott> monqy: also you get to play with us :{
01:17:51 <itidus20> Nash failed to create a "video game theory"
01:18:01 <elliott> `addquote <itidus20> Nash failed to create a "video game theory"
01:18:02 <HackEgo> 539) <itidus20> Nash failed to create a "video game theory"
01:18:17 <elliott> `addquote <itidus20> Game theory is not a perfect tool for analyzing video games. <itidus20> Nash failed to create a "video game theory"
01:18:18 <HackEgo> 539) <itidus20> Game theory is not a perfect tool for analyzing video games. <itidus20> Nash failed to create a "video game theory"
01:20:21 <elliott> “I don’t mind the idea of never having kids,” he said. “I want to stay focused on the game, and if I had kids, I’d wind up paying attention to them instead.”
01:21:03 -!- CakeProphet has quit (Ping timeout: 252 seconds).
01:21:12 <elliott> why its awesome (its obviously trying to paint him as a "weird" person but who cares)
01:22:07 <itidus20> i cut and pasted someone elses spelling
01:22:57 <itidus20> I was gonna say Bowser from mario... but couldn't think of a name which would click instantly
01:23:08 <itidus20> Since some call him King Koopa
01:23:26 <elliott> wow he makes a lot from donations
01:24:08 <monqy> like a bowser from mario
01:24:17 -!- cheater_ has joined.
01:24:21 <elliott> Still, in the only moment I heard him speak with anything like bitterness, Tarn called Minecraft a “depressing distillation of our own stuff.”
01:24:33 <elliott> NihilistDandy: it's a section break
01:25:29 -!- Nisstyre has quit (Quit: Leaving).
01:25:29 <itidus20> I think the only reason I want Minecraft is the polish. Gameplay polish and also the abundance of NPCs
01:25:58 <pikhq_> Coincidentally, those are the two major lacking features of Minecraft!
01:26:02 <itidus20> And -- since my brain can think up such things... I dare say
01:26:03 <NihilistDandy> 'As Tarn got into the zone, his muttered profanities and grumbles about “x distances”'
01:26:15 <itidus20> Terraria is Lemmings with NPCs.
01:26:25 <elliott> you dont control a character in Terraria
01:26:49 <ais523> you don't really control a character in Lemmings either
01:26:56 <elliott> you control a character in Terraria
01:27:01 <elliott> you dont control a character in Lemmings
01:27:10 <pikhq_> You're just a demigod in Lemmings.
01:27:14 <itidus20> I just uh.. hit on a cool idea didn't i?
01:27:27 <elliott> terraria is basically minecraft + rpg
01:27:28 <ais523> is that really a cool idea?
01:27:40 <ais523> pikhq_: you're more of a tactical advisor who tells them when to turn into walls and when to explode
01:27:50 <pikhq_> ais523: I'm going with demigod.
01:28:19 <itidus20> on bing: Thats an urban legend. However, in the very excellent video game Lemmings, they do. Now thats a great idea for a video game: Lemmings vs Zombies.
01:28:32 <pikhq_> "Demi" because you're not *that* powerful, "god" because thou art greatly seeing and greatly knowing.
01:29:00 <itidus20> "Can I be one of the play testers for Zombies vs. Lemmings? And will there be a sequel game with zombie lemmings?"
01:29:03 <elliott> ais523: lemmings with npcs actually sounds interesting
01:29:14 <itidus20> http://www.obamaconspiracy.org/2011/04/this-isnt-going-away/
01:29:24 <NihilistDandy> pikhq_: I always thought a demigod was just someone in charge of the espresso machine
01:29:25 <ais523> it depends on what the NPCs do, and interact with the game
01:29:42 <elliott> oh, it's against obama conspiracies
01:29:47 <ais523> elliott: I'm not at all surprised that the website exists
01:30:09 <elliott> ais523: I was worried it would be a collection of conspiracies about Obama in /favour/ of them
01:30:27 * elliott becomes the Tarn, tries to figure out what's up with this code
01:31:53 -!- Slereah has joined.
01:31:53 -!- Slereah has quit (Client Quit).
01:31:56 <Sgeo> "There are those who tell us that any choice from among theoretically-equivalent alternatives is merely a question of taste. These are the people who bring up the Strong Church Turing Thesis in discussions of programming languages meant for use by humans. They are malicious idiots. The only punishment which could stand a chance at reforming these miscreants into decent people would be a year or two at hard labor. And not just any kind of
01:31:57 <Sgeo> hard labor: specifically, carrying out long division using Roman numerals. A merciful tyrant would give these wretches the option of a firing squad. Those among these criminals against mathematics who prove unrepentant in their final hours would be asked to prove the Turing-equivalence of a spoon to a shovel as they dig their graves."
01:32:57 <Sgeo> http://www.loper-os.org/?p=448
01:33:18 <elliott> "Why do birthers believe what they do? It turns out that one factor in whether someone mistakenly considers random patterns to be something significant has to do with dopamine levels in their brains — the more dopamine, the more belief. Dopamine is part of the brain’s reward system. I was just reading about this today in Michael Shermer’s book, The Believing Brain."
01:33:23 <elliott> this blog sure is fishing for posts
01:33:36 <elliott> Sgeo: oh, another loper post
01:34:17 <elliott> Sgeo: re turing-equivalence: right point, annoying delivery, as always with loper-os
01:34:24 <elliott> apart from the times it's wrong point, annoying delivery
01:34:40 <Sgeo> elliott, I think it's hilarious delivery *shrug*
01:34:54 <Sgeo> elliott, link to wrong point?
01:35:07 <Sgeo> I think rage is funny
01:35:09 <elliott> "you say this huge blog is wrong sometimes?? PROVE IT WITH A LINK"
01:35:23 <elliott> also, yeah, now try reading every loper post and not getting sick of him and wanting him to shut the fuck up
01:35:28 <elliott> Sgeo: but here's a wrong point: http://www.loper-os.org/?p=428
01:35:44 <elliott> here's a stupid point: http://www.loper-os.org/?p=405
01:35:59 <elliott> here's a stupid point: http://www.loper-os.org/?p=374
01:36:00 <pikhq_> Sgeo: Well, the Turing thesis really *does* imply that the choice of language is "merely" one of taste.
01:36:17 <pikhq_> But, then, the same is true whenever you have a selection of tools theoretically capable of a given task.
01:36:29 <elliott> its not the turing thesis ffs
01:36:34 <elliott> church-turing thesis is a different thing
01:36:41 <pikhq_> Even if your choice is between a spoon and a bulldozer.
01:37:02 <elliott> Sgeo: lol -- see that project cosa stanislav linked to?
01:37:07 <elliott> from the guy behind that thing's blog:
01:37:16 <monqy> i dont think a bulldozer will help me eat this soupe
01:37:17 <elliott> The Surprising Source of My Knowledge about the Brain
01:37:17 <elliott> In my recent article on the flaws in Numenta's memory model, I made several claims about how the brain processes sensory signals. I now reveal the source of my knowledge as promised. Those of you who have followed my work over the years will not be surprised by what I am about to say. As always, it is up to you to take it or leave it.
01:37:20 <elliott> The source of my knowledge is a couple of occult symbolic texts found in the Bible.
01:37:21 <Sgeo> I saw the link, didn't click it
01:37:22 <elliott> -- http://rebelscience.blogspot.com/2011/06/surprising-source-of-my-knowledge-about.html
01:37:36 <pikhq_> The problem is, of course, that we have people convinced that a teaspoon is a good tool for digging a tunnel.
01:37:57 <monqy> does anyone think bulldozeres are good for soupes
01:38:13 <pikhq_> monqy: Well, the XML crowd seems to think that.
01:38:24 <pikhq_> Except instead of a bulldozer it's more a Death Star.
01:38:51 <elliott> "Neither Newton's gravity equation nor the equations of General Relativity explain why things fall. But what better way is there to hide one's cluelessness while presenting a façade of erudition than to use obscure equations to erect an impregnable mountain of obfuscation? Voodoo science is guru science."
01:39:04 <elliott> "Examples of voodoo science masquerading as legitimate science are all around us: time travel, wormholes, black holes, dimensions curled up into little balls so tiny as to be undetectable, parallel universes, continuum physics, quantum computing, symbolic intelligence, machine consciousness, etc... It is all worthless crackpottery."
01:39:16 <elliott> (Spacetime is a fictitious math construct, famous physicists are clueless about time, time dilation is a misnomer and time travel is crackpottery)
01:39:17 <elliott> (Aristotle was right about the causality of motion and, as a result, we are immersed in an immense lattice of energetic particles)
01:39:26 <elliott> (Gravity is an energy conservation phenomenon. It is both instantaneous and nonlocal)
01:39:26 <elliott> (Intelligence is mostly about the temporal correlations between discrete sensory signals)
01:39:43 <elliott> Artificial Intelligence From the Bible!
01:39:44 <elliott> Due to recent dramatic progress in my research, this article has been deleted. My old interpretation of the scriptural metaphors was partially in error. I am working on a new series of articles on the subject. In the meantime, I encourage my readers to read Rebel Science News for the latest.
01:40:07 <Sgeo> can't see when he makes mistakes
01:40:14 <Sgeo> (Erm, as in, in his predictons)
01:40:35 <Sgeo> Although I'm sure he'll call any falsifications "voodoo science"
01:40:55 <elliott> im torn between wanting to read the cosa paper and not wanting to because this guy man
01:42:21 <elliott> monqy: this guy's dataflow software/os/language proposal which seems to be much saner than his other stuff
01:46:00 <oerjan> indeed, you should never use ketchup with filet mignon
01:47:06 <monqy> what do you advise
01:48:09 <oerjan> i like béarnaise sauce
01:50:04 <monqy> I think I've had bearnaise sauce one time it was good pepper sauce is good too i forget if i've ever had filet mignon
01:50:08 <oerjan> hm wait that doesn't mean the same thing as "peppersaus"
01:50:30 <elliott> no thats a completely different thing obviously
01:50:31 <NihilistDandy> I actually kind of like this: http://www.loper-os.org/?p=428
01:51:24 <elliott> with the context of http://www.loper-os.org/?p=288
01:51:59 <elliott> also his response to http://www.loper-os.org/?p=288&cpage=1#comment-1283
01:52:04 <elliott> it's amusing but wrong and stupid
01:53:25 <elliott> loper is full of good ideas written by an annoying person with a too-big ego
01:53:37 <elliott> HAVE I MENTIONED THAT TUNES IS GREAT
01:54:00 <oerjan> elliott: the english word implies chili pepper, the norwegian word implies black pepper (or similar)
01:54:27 <Sgeo> elliott, the thing common between them is that neither are currently usable
01:54:37 <ais523> I think "pepper sauce" refers to black pepper in British English too
01:54:48 <elliott> "TUNES started in 1992-95 as an operating system project, but was never clearly defined, and it succumbed to design-by-committee syndrome and gradually failed."
01:54:50 <pikhq_> "Pepper sauce" just sounds bizarre in American English.
01:54:52 <elliott> TUNES is now officially over
01:55:03 <ais523> so why is clog still here?
01:55:21 <elliott> ais523: the website isn't down, it's just officially abandoned; and besides, clog is a bespin service, not a tunes one
01:55:27 <elliott> we just use the wrong url because everyone does and it's prettier
01:55:30 <elliott> monqy: wait you don't know of tunes?
01:55:39 <pikhq_> A sauce from chili peppers would be "hot sauce", and you can make a black pepper sauce?
01:55:41 <ais523> I only do because of clog
01:55:48 <ais523> pikhq_: you can make a source from black pepper
01:55:54 <Sgeo> Unununium is also dead
01:55:55 <ais523> and other ingredients too
01:55:59 <ais523> not /just/ black pepper, obviously
01:56:04 <pikhq_> ais523: Well, obviously.
01:56:05 <elliott> ais523: every programmer should know about TUNES, I think
01:56:24 <ais523> elliott: in your opinion, lots of people should know about all sorts of things I don't know about
01:56:27 <pikhq_> But, seriously, that seems like a strange sauce basis.
01:56:29 <ais523> I'd give an example except I can't
01:56:29 <elliott> so that they don't keep assuming Unix and Windows are the only ways to do computers, or anywhere near the best way
01:56:44 <ais523> I don't assume UNIX/Windows are the only way to do things at all, though
01:56:51 <itidus20> I'm at the end of the game Like a bauss
01:57:00 <elliott> ais523: let's put it this way: @ doesn't sound like much new to anyone who knows about TUNES
01:57:04 <monqy> whats a bauss is it like a bawwwss ;___________________;
01:57:05 <ais523> UNIX is like the BF of operating systems; people who try to design operating systems normally end up designing crappy versions of it, but that doesn't mean it's the only way to do an OS
01:57:08 <elliott> I would hazard a guess that @ sounded new to you
01:57:26 <ais523> and @ is unlike OSes I know about, but the concepts aren't new to me
01:57:42 <elliott> monqy: @ is the operating system you'll use in a few decades... maybe.
01:57:44 <oerjan> pikhq_: hm i went by wikipedia, where "pepper sauce" redirects to "hot sauce", which has both terms and chili sauce bolded
01:57:56 <pikhq_> oerjan: "Pepper sauce" still sounds bizarre.
01:58:02 <monqy> elliott: googleing for @ doesnt work he;lp[
01:58:02 <itidus20> http://www.youtube.com/watch?v=NisCkxU544c
01:58:06 <elliott> ais523: I like to think @ will be interesting enough to surprise you when it actually exists
01:58:06 <ais523> "chili sauce" would be the usual name in the UK
01:58:12 <elliott> monqy: @ is my ultimate NIH project
01:58:15 <pikhq_> monqy: Modern Windows is, IMO, in the same OS family as UNIX.
01:58:22 <ais523> err, "chilli" I think in British English
01:58:33 <ais523> pikhq_: I agree too, although it's a very bad example of it
01:58:33 <elliott> monqy: I decided that software was fundamentally broken
01:58:34 <Sgeo> "It's 2008 now. If a few dedidated hackers can find the time and money to put some sustained effort into it, we could have a working prototype by 2010, with widespread use by 2015 or 2020.
01:58:59 <elliott> monqy: so i tossed everything out, and started designing a new software environment ("operating system is inaccurate"; @ has no distinction between the OS and everything running "on top" of it)
01:59:07 <Sgeo> What makes something in the same OS family as UNIX?
01:59:09 <elliott> including language, from scratch
01:59:14 <Sgeo> Files in a heirarchy?
01:59:23 <elliott> Sgeo: that would make DOS a UNIX
01:59:39 <ais523> it didn't have directories
01:59:46 <ais523> it spent the rest of its life gradually stealing UNIX concepts
01:59:55 <elliott> monqy: you may peruse http://catseye.tc/ehird/files-suck.html but only in the knowledge that it's old and whiny, and only summarises one aspect of @ (and fairly vaguely at that)
02:00:07 <ais523> how did that end up on catseye?
02:00:15 <ais523> I'm not surprised you wrote that, but I am surprised at where it's hosted
02:00:17 <elliott> ais523: I had no hosting at the time and asked cpressey on IRC, and he said sure
02:00:50 <ais523> gah that's formatted badly, far too narrow
02:01:06 <elliott> nah, it's only about 3 ems too narrow
02:01:13 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:01:27 <pikhq_> Sgeo: The primary feature is having the prime data structure being a hierarchy of blobs of bytes, with a little bit of metadata. Combine with a C ABI and system calls as the basic ABI, and multitasking, and you have a vaguely UNIX-like OS.
02:01:31 <elliott> (ten words per line/sixty-six characters per line is the widely-agreed-upon ideal that presumably has some research backing it up, and that's 33 ems)
02:01:32 <ais523> congratulations, you're the first person who actually made me open up Firebug and edit the CSS
02:01:35 <ais523> to make it three times the width
02:01:49 <ais523> even then, I'd prefer it to go margin to margin
02:02:11 <elliott> ais523: now wouldn't it be nice if browsers didn't make lousy document viewers, and you could have done that without resorting to such things?
02:02:17 <pikhq_> Also, yes, the memory/disk dichotomy is big.
02:02:22 <elliott> (I also think your eyes are broken, but oh well)
02:03:32 <ais523> elliott: I can think of some counterpoints to things in that files article
02:03:57 <elliott> ais523: go on, although I'll probably disagree with them
02:03:58 <ais523> in particular, it's often useful to be able to change the representation of something on disk, and if you abstract away from that, there's no way to do so
02:04:11 <elliott> I even address that in the article
02:04:34 <NihilistDandy> Would you fuckers stop talking so fast? I'm still reading the scrollback for context :D
02:04:47 <ais523> and no you don't, unless I missed where you addressed it
02:05:00 -!- pikhq has joined.
02:05:04 <elliott> ais523: tl;dr current @ design is that any "entity" (/object/whatever) can override its own saving and storing, but most of the time you'll want to just use a pre-written transformer like a compressor, since you must ensure to always save and restore _all_ of the state
02:05:08 <elliott> ais523: "You don’t have to give up the compactness of formats like PNG, either: you can store that as a byte array in memory, and have it as the pluggable “backing storage” of some abstract image type. That way, all images are accessed in the same way (although possibly with different operations depending on the characteristics of the backing storage) regardless of the underlying compressed stora
02:05:24 <elliott> that's a little vague and not the exact current design that I stated, but it still addresses it
02:05:30 <elliott> "You could have overridable serialisation, so that e.g. a PNG-backed image is serialised as the compressed PNG, without any auxiliary data that can be generated when it is used."
02:05:35 <ais523> ah, I suppose my question is as to how you're meant to change the backing storage
02:05:54 <elliott> ais523: depends how you tell the operating system anything about an object
02:06:04 <elliott> Every object could be responsible for its own serialisation/deserialisation, for instance
02:06:13 <NihilistDandy> Also, elliott, last I was aware 100 characters/line was the new sort-of standardy ideal
02:06:17 <ais523> also, how does @ do naming objects? e.g. atm I can access /home/ais523/esoteric/intercal/git/intercal to get the latest C-INTERCAL source
02:06:17 <elliott> and you could pull in GzipSerialiser
02:06:24 <elliott> NihilistDandy: nah, the sources for that seem rubbish
02:06:26 <ais523> and obviously that doesn't have to be done with a hierarchical filename
02:06:31 <ais523> but I'm wondering what specifically replaces it
02:06:43 <pikhq> ais523: That's metadata.
02:06:53 <elliott> I get to answer questions about @ :p
02:06:57 <elliott> ais523: how do you name the x coordinate of the first coordinate in a list of coordinates (say array) in C?
02:07:10 <ais523> elliott: in C, it depends on their internal representation
02:07:18 <elliott> ais523: filesystem names are internal representations
02:07:29 <elliott> but the point is, array[0].x is a name too
02:07:39 <ais523> at the moment, the filesystem representation, while internal, is the one that humans use to specify files
02:07:43 -!- pikhq_ has quit (Ping timeout: 276 seconds).
02:07:47 <elliott> ais523: but in @ the primary means of naming documents isn't by internal name
02:07:51 <ais523> I'm asking what @'s equivalent is, not because I don't think it exists, but because I'm curious as to what it is
02:08:02 <ais523> so it's not so much an accusation as a question
02:08:07 <elliott> ais523: I'm not sure exactly how you /do/, because I don't know what @'s UI looks like yet, other than it being very, very different from anything else
02:08:33 <ais523> ("I don't care what it is as long as it's different"?)
02:08:34 <elliott> ais523: but e.g. you might say "find|document|@ best os" and it would find you a document titled "Why @ is the Best OS"
02:08:40 <elliott> (prioritising title over text, etc.)
02:08:52 <ais523> what if I don't want to do any sort of search?
02:08:58 <elliott> or "find|documents|older than april"
02:09:08 <elliott> ais523: Don't think of it as searching
02:09:11 <ais523> e.g. if I'm using @ to work on some more traditional software
02:09:14 <elliott> ais523: just think of it as naming an object
02:09:24 <ais523> elliott: I want exactly the same result every time, no matter what's happened in terms of creation of other objects meanwhile
02:09:28 <elliott> ais523: If you want a precise name, you could take its object ID -- basically, like a pointer, but it's literally global
02:09:34 <ais523> or deletion or changes of any objects other than the one I want
02:09:39 <ais523> and I can't remember hashes
02:09:42 <zzo38> Can you use the ID numbers for the documents and whatever you want to find?
02:10:11 <ais523> you're ignoring the side of the triangle I most care about
02:10:15 <elliott> ais523: Unix cheats by not having the decentralised or secure properties
02:10:15 <ais523> and I'd much prefer you discarded one of the other two
02:10:31 <elliott> I solve that by having alternate ways to name objects, like I said
02:10:37 <ais523> hmm, decentralised is the one I care least about
02:10:43 <ais523> I'm fine if I can only access stuff on my own computer
02:10:49 <elliott> It's integral to @'s design
02:10:51 <ais523> better, in fact, as I'm typically not connected to a network
02:10:53 <elliott> It's integral to @'s design
02:11:06 <ais523> well, in that case I probably won't use @, it's fundamentally incompatible with the way I work
02:11:09 <elliott> @ makes no innate distinction between RAM and disk; it also makes no innate distinction between local and global
02:11:16 <elliott> ais523: You could define a filesystem view of all your documents
02:11:21 <elliott> Mangle the name and some other data to form its name
02:11:37 <ais523> hierarchical filesystems are far from perfect, but at least they're usable
02:11:39 <elliott> You can do anything you can do in Unix with @; it just wouldn't be /idiomatic/
02:11:47 <elliott> ais523: I just told you how to get a filesystem; you could make it hierarchical too
02:11:57 <elliott> ais523: You could manage it manually by constructing a filesystem object yourself; basically just an associative map
02:12:07 <ais523> what's @'s equivalent to UNIX "find" (i.e. get everything below a certain point in the hierarchy)?
02:12:07 <elliott> But I find dismissing these things before actually using them to be unwise
02:12:13 <zzo38> O, so filesystems are not the fundamental things, but you can still make it up yourself to do like a filesystem?
02:12:27 <ais523> the concepts don't translate at all well, which is why I asked
02:12:29 <elliott> ais523: There is no hierarchy. If you mean on a constructed filesystem, that's up to the API of the associative map
02:12:54 <elliott> ais523: Anyway, the distinction between local and global doesn't make local use more difficult
02:12:58 <zzo38> Well, I certainly wouldn't know until I can see some parts of it that it can be done.
02:13:01 <elliott> [asterisk]lack of distinction
02:13:03 <ais523> say, I'm working on a program, and I want to find all instances of a certain identifier in all the source that makes up that program
02:13:09 <elliott> ais523: Note that distinctoins are made at the user-level
02:13:10 <ais523> (I'm trying not to assume that the source is text-file-like here)
02:13:28 <elliott> ais523: Well, "program" is also an artificial distinction :)
02:13:30 <ais523> presumably I have to group all those files some way so I can equivalent-of-grep over just those
02:13:43 <ais523> elliott: well, let's try "package", which is also an artifical distinction but one that's made deliberately for a reason
02:13:43 <elliott> ais523: But say you have a collection of <objects or whatever> that count as the structure of your program
02:13:57 <ais523> or "portion of all software that I'm responsible for maintaining"
02:14:01 <ais523> which is not arbitrary
02:14:01 <pikhq> ais523: How would you do that on an arbitrary data structure?
02:14:11 <elliott> pikhq: please, don't try and argue @ for me, it makes @ look bad :)
02:14:18 -!- cheater_ has joined.
02:14:19 <pikhq> elliott: Okay, then.
02:14:20 <ais523> pikhq: for a completely arbitrary data structure, with no knowledge about its contents, I couldn't
02:14:38 <ais523> but that's not the case even in @
02:14:47 <elliott> ais523: Well, I don't know how you'll actually phrase queries... because I don't know what @'s UI is yet (this also implies I don't know what its language is yet, because they're two sides of the same coin)
02:15:19 <elliott> ais523: Things like functions will have a way to get at their underlying AST
02:15:33 <elliott> Maybe only in some context like a package
02:15:37 <elliott> To avoid breaking all sorts of parametricity
02:15:40 <ais523> I've just realised that Feather is the only sensible language to write this in
02:15:53 <ais523> you just said "Things like functions will have a way to get at their underlying AST"
02:16:06 <elliott> That breaks all sorts of properties, it's gross
02:16:14 <elliott> But you might be able to get a function's source from its module, say
02:16:15 -!- BeholdMyGlory has quit (Remote host closed the connection).
02:16:27 <ais523> I'd assume functions would be decompiled to get their source
02:16:33 <elliott> ais523: But anyway, tl;dr AST objects (if there is a concept like an AST??) will have a way to search for an identifier
02:16:34 <ais523> and things like comments would be part of the compiled version
02:16:38 <ais523> so that it would roundtrip
02:16:38 <elliott> So it's basically just a map over the project
02:16:53 <elliott> I know this is hopelessly vague, but your questions are all user-level, which is the least certain part of @ so far
02:17:09 <ais523> yes, that's because the system-level stuff, at least at the highest level, makes a lot of sense
02:17:09 <elliott> So I do ask you don't dismiss it before it exists based on _these_ answers :)
02:18:05 <ais523> incidentally, I can think of a moderate solution to the zooko's triangle problem; allow individual users (with whatever way you identify who they are, which you have to do for security reasons) to have their own private names for arbitrary objects
02:18:25 <ais523> that way you have both a secure/decentralised name and a secure/humanreadable name, with the human who reads it doing the centralisation
02:18:26 <Sgeo> ais523, I think there are systems that do that
02:18:35 -!- elliott has quit (Read error: Connection reset by peer).
02:18:38 -!- elliott_ has joined.
02:18:42 <elliott_> <ais523> incidentally, I can think of a moderate solution to the zooko's triangle problem; allow individual users (with whatever way you identify who they are, which you have to do for security reasons) to have their own private names for arbitrary objects
02:18:50 <elliott_> ais523: And yes, that's a Petname system
02:18:57 <ais523> [03:18] <ais523> that way you have both a secure/decentralised name and a secure/humanreadable name, with the human who reads it doing the centralisation
02:18:58 <ais523> [03:18] <Sgeo> ais523, I think there are systems that do that
02:19:00 <elliott_> ais523: And that will be possible, yes
02:19:00 <ais523> I think I'd be fine with that
02:19:08 <elliott_> ais523: It'll be the same mechanism as what replaces a browser's bookmark system, too
02:19:21 <elliott_> ais523: And of course you won't be restricted to naming things with a-constrained-path.txt, or even just a string
02:19:26 <elliott_> No reason a name can't be an object
02:19:29 <Sgeo> So I have to think up names for all my bookmarks?
02:19:35 <ais523> elliott_: except that objects can't be compared, in general?
02:19:41 <pikhq> Sgeo: Your bookmarks already *have* names.
02:19:41 <ais523> a name has to be something comparable
02:19:41 <elliott_> Sgeo: what happens when you press the bookmark icon on your browser?
02:19:45 <ais523> apart from that, it can be general
02:19:58 <elliott_> ais523: although you could have a name that isn't comparable, and it'd just appear in a list of all your names
02:20:00 <elliott_> that'd be fairly pointless, though
02:20:02 <Sgeo> elliott_, A name is filled in, but possibly non-unique
02:20:03 <ais523> Sgeo: your bookmarks are almost certainly given the title of the website they refer to, at the time it was bookmarked, as names
02:20:13 <elliott_> Sgeo: Non-unique names are OK, too
02:20:13 <Sgeo> "Index of /" etc.
02:20:18 <elliott_> Looking it up will just say "oops, which do you mean"
02:20:30 <elliott_> in fact, the default lookup operation might as well just do a fuzzy-ish text search
02:20:37 <Sgeo> Also, I tend to bookmark everything and then never look at them agian
02:20:40 <elliott_> that's a lot more convenient, too, since you can type only part of it and select which one you want
02:21:30 <ais523> elliott_: I think Firefox's address bar thing has quite a few properties in similar with the way @'s names would typically work (although a lot of differences too)
02:21:42 <elliott_> yes; Firefox's address bar is a good idea, implemented badly
02:21:54 <ais523> what do you dislike about the implementation, incidentally?
02:22:07 <elliott_> It's hard to articulate; it just doesn't do what I want
02:22:14 <elliott_> Chrome's is better, but it tends to not find things in my history, which is really annoying
02:22:37 <ais523> when I'm typing in the address bar, either I'm copying an URL, or I'm searching in history
02:22:50 <ais523> so Firefox does pretty much exactly what I want there
02:22:56 <elliott_> ais523: Anyway, hopefully @'s "final" (just the beginning) version will be the OS you want to use; all my efforts right now are classed as pre-pre-pre-pre-alphas of a given /stratum/ of a project leading up to @
02:22:58 <ais523> I definitely don't want it to return arbitrary websites, that's what the search box is for
02:23:07 <elliott_> So there's plenty of time for you to test and comment on it :P
02:23:21 <elliott_> ais523: I'm not even joking, I've even tried to name distinct phases
02:23:41 <elliott_> I can't call anything @ until it's 1.0 quality, and that means being about a million lightyears ahead of any existing OS
02:23:47 <ais523> security sounds like a hard problem in @, in that a single security bug could allow someone to instantly bring down every computer in existence
02:23:50 <elliott_> Oh, and @ isn't its actual name, of course
02:23:55 <ais523> ofc, it's just a placeholder
02:23:59 <ais523> it's not bad for an actual name, though
02:24:03 <ais523> perhaps its actual name will be an object
02:24:09 <elliott_> Bad for Googleability, but who will use Google once @ is around?
02:24:10 <ais523> rather than a text string
02:24:39 <elliott_> Using @ will, ironically but perhaps appropriately, not be as nice as using @ would be in an ideal world; nobody else is going to use it, so you'll still be stuck with the web, and IRC, and all sorts of other mediums that reimplement everything and don't allow you to send objects
02:24:41 <elliott_> <ais523> security sounds like a hard problem in @, in that a single security bug could allow someone to instantly bring down every computer in existence
02:24:42 <ais523> elliott_: probably Google will have the best servers at resolving who has a copy of a given @ object
02:24:48 <elliott_> Really? I'm planning on using capability security.
02:24:58 <elliott_> That seems relatively immune to such things because the security isn't "a thing" or a layer
02:25:01 <ais523> elliott_: I mean, if the security implementation is broken
02:25:04 <elliott_> It's just an inherent property of who gives you what.
02:25:11 <elliott_> ais523: See above; capability security doesn't get implementations.
02:25:17 <ais523> "a capability" isn't something you can hardware into an actual processor
02:25:18 <elliott_> It's literally just not having a standard environment beyond what's passed around.
02:25:27 <elliott_> ais523: A capability is just an object!
02:25:33 <elliott_> It is a 0 lines of code thing.
02:25:39 <elliott_> There are no flags or anything.
02:25:45 <elliott_> It is just recognising that a pointer to X means you are allowed to use X.
02:25:55 <ais523> elliott_: yes, so what if I try to use X without a pointer to it?
02:26:02 <elliott_> ais523: How? You can't name it.
02:26:04 <ais523> that's meant to be impossible, but has to be implemented somehow
02:26:04 <itidus20> "Slartibartfast: Can I be one of the play testers for Zombies vs. Lemmings? And will there be a sequel game with zombie lemmings?"
02:26:14 <itidus20> "Count me in too! Dr C you really should patent that ideaI think that game or app would rake in a fortune! ;)"
02:26:20 <ais523> elliott_: well, say X happens to be on my physical hard drive
02:26:32 <Sgeo> elliott_, there has to be a level of abstraction though
02:26:32 <ais523> I can name it by its location on the drive
02:26:38 <elliott_> ais523: You can't access the bits on your hard drive; nobody passed you that object.
02:26:47 <elliott_> Of course they didn't, that's insanely high-privilege.
02:26:48 <itidus20> that's the kind of crap patents are.. its really just how quickly you can traverse the inventions tree and find an empty node
02:26:59 <ais523> elliott_: so what if an exploit does let me access the bits on my own hard drive?
02:27:10 <ais523> say, removing the hard drive and putting it into an older laptop that doesn't run @
02:27:17 <elliott_> Yes, security bugs are possible, but capability security makes it just so less likely.
02:27:28 <ais523> or corrupting its processor somehow such that it runs arbitrary I/O instructions?
02:27:35 <ais523> that's what I mean by implementing security
02:27:36 <elliott_> ais523: And then modifying the bits so that the piece of code you're running has a pointer to X?
02:27:39 <itidus20> I clearly demonstrated that I was able to independantly discover the idea.
02:27:47 <elliott_> If your hard-drive is not encrypted and you have access to it you can do anything locally.
02:28:02 <ais523> elliott_: yes, or that modifies something it has in order to put the content there
02:28:13 <elliott_> And @ won't even try; a user can ask it to fiddle with bits on its hard drive and it will happily comply, perhaps after panicking a bit and asking if you're sure.
02:28:19 <elliott_> (A user, not a piece of code.)
02:28:23 <ais523> that's what I'm getting at; it's that the universe doesn't support @'s model of capabilities
02:28:28 <elliott_> You've successfully compromised your own system.
02:28:32 <elliott_> ais523: I don't wish to imprison the user.
02:28:32 <ais523> so they have to be implemented in terms of something that doesn't
02:28:37 <Sgeo> elliott_, there's a distinction between user and code?
02:28:46 <Sgeo> Hmm, perhaps whether the code comes from user or elsewhere
02:28:48 <ais523> now, how do we serialise capabilities to send them over the network?
02:28:51 <elliott_> The user is just a really high-privilege context.
02:28:54 <ais523> aha, that's what I'm getting at
02:28:57 <elliott_> ais523: You don't. There is no "capability".
02:29:07 <elliott_> ais523: If someone gives you a reference to an object that happens to be somewhere else in the world, you can use it.
02:29:09 <ais523> elliott_: well, objects are capabilities
02:29:10 <ais523> and you can send those
02:29:13 <Sgeo> But then, a trojan can tell the user to just go "Oh hey, claim you're my source"
02:29:23 <ais523> so presumably, we need to serialise the references to be able to send them over the network
02:29:25 <elliott_> ais523: You just serialise the object and send it, or just send a pointer
02:29:41 <zzo38> I also have the idea to empower the user, but doing it mostly in hardware instead of in software.
02:29:47 <elliott_> (I'm not sure how big the hash will be)
02:29:49 <ais523> elliott_: so if I get the hash of any other object, I can access it?
02:29:59 <elliott_> ais523: Only if another machine says it's offering
02:30:09 <ais523> why would the machine be offering?
02:30:21 <Sgeo> Was about to say that it smells like security by obscurity
02:30:23 <elliott_> Because it's configured to offer; it offers nothing by default
02:30:25 <Sgeo> Is "offering" a boolean?
02:30:43 <elliott_> Sgeo: Offering is a set, presumably
02:31:14 <elliott_> ais523: The user can share things, presumably
02:31:18 <elliott_> Which would make them being-offered
02:31:23 <ais523> elliott_: btw, the "memory/disk" dichotomy seems wrong; UNIXy systems are moving more and more in the direction of removing it
02:31:37 <elliott_> ais523: As long as files on disk are bytes, it is still there
02:31:46 <elliott_> It doesn't matter whether a disk cache exists
02:31:47 <ais523> and files in memory are also bytes?
02:31:49 <elliott_> That's an implementation detail
02:32:05 <monqy> well im laiughning
02:32:06 <elliott_> ais523: Even having to call mmap is too much
02:32:23 <elliott_> Orthogonal persistence is the only way to escape that dichotomy, although those are the wrong terms; it is a simpler system than a filesystem
02:32:27 <ais523> elliott_: well, I meant that mmap has the right sort of semantics, it's just that it should be implict rather than explicit
02:32:49 <ais523> after a while you start seeing mmap reversed, in that the disk is just swap space for memory
02:32:52 <ais523> and gets paged in and out
02:33:04 <elliott_> ais523: That's orthogonal persistence: RAM is just disk cache,
02:33:15 <ais523> yep, I know what it is
02:33:37 <elliott_> ais523: Of course, the ideal would be if a non-volatile RAM interface was plugged into the CPU
02:33:41 <elliott_> Or otherwise into the computer
02:33:42 <ais523> hibernation is more along the same lines; it just swaps data out of the sort of implementation-detail storage that doesn't exist while the system is off
02:33:45 <elliott_> But as it stands, software has to handle it
02:33:52 <ais523> do you know how Linux loads executables, nowadays?
02:33:56 <elliott_> ais523: right; hibernation in @ is just a flush and a power cut
02:34:06 <elliott_> And I forget, but it involves an mmap-alike of some sort
02:34:10 <ais523> it just mmaps them, and lets page faults do the actual loading
02:34:16 -!- NihilistDandy has quit (Quit: Blah).
02:34:21 <elliott_> mmap is my favourite system call
02:34:27 <elliott_> It's that little glimmer of light in Unix.
02:34:27 <Sgeo> elliott_, is there any sort of restart that isn't hibernate and restore?
02:34:37 <elliott_> Sgeo: Uh... you could wipe your disk and reinstall @.
02:34:50 <ais523> Sgeo: presumably it would be the equivalent of kill -15 0
02:35:02 <pikhq> ais523: Also how any sane ld.so does things.
02:35:04 <elliott_> ais523: ouch; that would delete all your files
02:35:07 <elliott_> probably lazily, as the GC runs
02:35:07 <Sgeo> I don't know what kill -15 0
02:35:13 <elliott_> but it'd also crash your system forever
02:35:17 <ais523> elliott_: err, really?
02:35:28 <elliott_> ais523: well, I forget what -15 is :)
02:35:32 <Sgeo> Why, what's signal 15?
02:35:34 <ais523> Sgeo: "tell every process I have permissions to tell to exit to exit"
02:35:37 <ais523> elliott_: it's SIGTERM
02:35:45 <ais523> like -9 except that the programs get a chance to do cleanup
02:36:12 <elliott_> ais523: basically, if you kill all running code, then not only is there no code for the computer to run (???), but there's also no references to any objects
02:36:21 <elliott_> and objects without references get garbage collected
02:36:35 <ais523> but 0 doesn't mean "all running code", it means "all processes I have permissions to signal"
02:36:39 <ais523> which is presumably quite different
02:36:40 <elliott_> so that's a really, really slow disk wipe, basically, assuming that GCs still run with no code for the computer to run
02:36:56 <elliott_> ais523: Well, OK. It would just remove all _your_ files, unless someone else has a reference to them.
02:37:22 <elliott_> ais523: I'm not sure there's any distinction between "kill this code" and "destroy this object", anyway
02:37:40 <ais523> I'm not deleting the code, just telling it to stop running
02:37:47 <ais523> so in @, presumably it'd go into some sort of paused state
02:37:48 <elliott_> You're deleting the thunk that represents that running code
02:38:06 <elliott_> ais523: Oh, you just want to tell the scheduler to stop switching to all objects you can access, then
02:38:07 <ais523> in UNIX, you have two separate concepts; the editor, and the file that it edits
02:38:14 <elliott_> That'd just lock up your session, including post-reboot
02:38:37 <elliott_> (The problems that restarts are usually used to solve -- e.g. "clear my workspace" -- are solved in different ways in @)
02:38:40 <ais523> elliott_: presumably @ notionally has a global scheduler that schedules for everyone in the universe, although it's actually implemented in a decentralised way
02:38:45 <elliott_> Oh, and user responsiveness is the top priority, more or less
02:38:51 <elliott_> Code will never cause your keyboard and mouse to stop working
02:38:56 <elliott_> (because it's lagging your system)
02:39:03 <elliott_> So you'll always be able to kill miscreant processes
02:39:24 <ais523> assuming no scheduler bugs
02:39:40 <elliott_> But @ is basically designed so that every component is too simple to fail.
02:39:50 <ais523> so what's responsible for scheduling the scheduler? or is it somehow more "special" than all the other functions?
02:39:53 <elliott_> e.g. capability security in itself cannot fail, because it's more an observation than code at all
02:40:04 <elliott_> ais523: Well, objects could be responsible for their own scheduling, although that has a whole bag of issues; I'm not sure what my scheduler model looks like because I'm not sure what my concurrency model looks like because I'm not sure what my language looks like.
02:40:19 <elliott_> @ may seem underdesigned, but it's really just that there's so _much_ to think about
02:40:24 <ais523> although I'd think the language would be caused by the concurrency model, not cause it
02:40:45 <elliott_> ais523: there's this big knot at the core of @, but if you look closely, it's actually a point
02:41:00 <elliott_> It looks like a bunch of concepts tangled up that you have to work out at the same time, but they're actually all the same concept
02:41:01 <ais523> I still dislike the statement that capability security is an observation
02:41:14 <elliott_> ais523: it is; the only time an actual bit started existing was at the network boundary
02:41:36 <ais523> well, what prevents you just guessing at references to objects?
02:41:51 <ais523> or is the /internal/ storage for them kilobyte-long hashes?
02:42:05 <elliott_> The internal storage for them is a pointer. But you don't have the ability to cast a random integer to a pointer.
02:42:14 <elliott_> Giving you that capability would be insane; it's insanely privileged.
02:42:23 <elliott_> ais523: Note that @ does not rely on the hardware's really coarse, bad mechanisms for security.
02:42:28 <ais523> but if a bug does give me the ability to cast a random integer to a pointer, it completely blows open the security
02:42:31 <elliott_> ais523: This is why it can run in ring 0, and do things like syscall inlining.
02:42:41 <elliott_> ais523: Well, it blows open the local security.
02:42:43 <ais523> I think that's what I was getting at
02:42:46 <elliott_> ais523: That's like a root escalation exploit in Linux.
02:42:53 <elliott_> It still doesn't give you the power to demand objects from other computers.
02:43:02 <ais523> and presumably, a similar bug would be a remote arbitrary code execution bug
02:43:10 <ais523> which could also occur
02:43:18 <elliott_> Right; but you don't see that much in high-level languages at all.
02:43:21 <ais523> it's just that there's only the one layer of security
02:43:33 <elliott_> ais523: Nah; there's as many layers as there are objects
02:43:35 <ais523> elliott_: we discovered one in Rodney (#nethack's bot) recently
02:43:47 <ais523> but it was using eval, without taint checks
02:43:59 <elliott_> ais523: BTW, in @, eval would be insanely rare, because who stores code as a string?
02:44:05 <ais523> it was trying to regex the eval, but there was a misplaced ^
02:44:07 <elliott_> OK, you can have eval : AST → a
02:44:19 <elliott_> ais523: all I see is typing bugs
02:44:30 <elliott_> (taint checks are basically a really rudimentary type system)
02:44:42 <elliott_> ais523: BTW, casting integer-to-object-leaking bugs seem really contrived, because that's another low-level-ism
02:44:44 <ais523> actually, Perl's taint checking is identical to the Identity monad
02:44:57 <elliott_> Perl taint checking == phantom types
02:45:16 <elliott_> thisiscool :: Data NotOK -> Data OK
02:45:17 <ais523> elliott_: here's a fun fact: Linux has a system call that puts a process into a "secure" mode where it only accepts 4 system calls
02:45:20 <oerjan> <elliott_> ais523: there's this big knot at the core of @, but if you look closely, it's actually a point <-- so, basically, just the same as feather? >:)
02:45:30 <pikhq> ais523: Which 4 calls?
02:45:35 <elliott_> ais523: I take it you know this because you're using it?
02:45:36 <ais523> which are just enough to get data in and send it out, doing anything else gets you kill -9ed
02:45:43 <elliott_> I think you've told me about this before
02:45:48 <ais523> there's no way to get out of the mode, because the syscall that would take you out of it is not one of those
02:45:54 <pikhq> Ah, so. Read, write, exit, and...?
02:46:07 <ais523> I can't remember precisely what they are
02:46:11 <elliott_> oerjan: :) My current plan to tackle it is to try a bunch of "mini-@s" that don't try to do nearly as much, and have a specific, inadequate instantiation of the inner point.
02:46:11 <ais523> I doubt arbitrary read/write are allowed
02:46:12 <pikhq> Actually, probably mmap.
02:46:15 <elliott_> That should give me more insight on what the point has to be.
02:46:22 <ais523> the funny thing is, that there's also a getter to see whether you're in this mode or not, but no way to run it
02:46:22 <elliott_> "what the point has to be" -- heh.
02:46:26 <pikhq> ais523: You could only read/write to things where you already have the file descriptor.
02:46:31 <ais523> well, if you aren't in the mode, it returns 0, and if you are in the mode, it crashes
02:46:32 <elliott_> And also help me figure out a lot of details, especially relating to its implementation on existing hardware.
02:46:40 <elliott_> (Yes, @ stops at the hardware layer!)
02:46:43 <ais523> so the getter always returns 0 even though the value is settable
02:46:47 <elliott_> (I know, it surprises me too! Let's hope I don't forget that!)
02:47:12 <elliott_> ais523: you could set up a signal handler before you get put in the box
02:47:21 <pikhq> It's read, write, _exit, and sigreturn.
02:47:36 <ais523> also, sigreturn's allowed? that means that signal handlers are
02:47:40 <elliott_> ais523: I've always really wanted an exploit in kill -9; it replaces your code with a suicider, and sets your priority really high
02:47:42 <ais523> but I assume they can't actually /do/ much but read/write/exit
02:47:48 <elliott_> ais523: So if you could somehow override that code before the kernel jumps to you...
02:47:50 <ais523> elliott_: heh, is that how it works?
02:47:54 <elliott_> Try to kill me?? I WILL COME BACK STRONGER THAN EVER
02:48:05 <ais523> I assumed it just marked the process as zombie, or something like that
02:48:19 <zzo38> Maybe sigreturn is in case you set signals before entering restricted mode
02:48:29 <ais523> in fact, it should just do the same code as _exit, which already has the right semantics
02:48:38 <elliott_> ais523: it's probably OOM kill I'm thinking of
02:48:41 <elliott_> since it would need to free up its memory
02:48:45 <ais523> pikhq: what's the syscall to get into that mode? I thought it might be prctl, but I was probably wrong
02:48:48 <elliott_> It probably just turns it into an _exit call
02:49:07 <pikhq> With PR_SET_SECCOMP
02:49:13 <ais523> I was reading the man page for prctl, but missed it
02:49:16 <elliott_> ais523: anyway, I hope you have a bit more insight to @ now
02:49:27 <elliott_> And hopefully like it a bit more, or at least it hopefully surprises you a little
02:49:39 <ais523> I sort-of had the fundamentals down (they're pretty similar to something I was thinking of myself), but the details are interesting
02:49:55 <elliott_> I note that @ sort of changes a bit whenever I talk about it to respond to criticism; does Feather do that too? :p
02:50:05 <ais523> elliott_: no, Feather changes whenever I try to implement it
02:50:33 <ais523> the main problem with Feather is not so much design flaws, as inability to start without going into an infinite loop
02:50:45 <ais523> an implementation is badly needed to prove that that doesn't happen
02:51:09 <ais523> I've already had to add a boolean to every object that simply queries if it's # or not
02:51:13 <ais523> in order to get off the ground
02:51:16 * elliott_ wonders how long until someone stops an @ program from accessing more than a certain few types of object to stop it leaking memory (e.g. including no arrays), but gives it integers
02:51:21 <ais523> which is a really specific thing to have, and I'm not sure what to name it
02:51:32 <elliott_> and then I'll run a program that leaves them a nice message and gets to work on constructing Graham's number
02:52:02 <elliott_> ais523: oh, wait, you didn't know that gnome's file opener let you type in a location?
02:52:25 <elliott_> ais523: that's the top-left icon in the dialogue; click it and it'll focus by default
02:52:32 <ais523> thanks, that's blown my mind to
02:52:33 <elliott_> you can also type directories in there, and their names complete
02:52:39 <elliott_> and <enter> will change to that directory
02:52:45 <ais523> I know it does that, it used to do that before I couldn't find the location bar at all
02:52:56 <ais523> I was fine with that dialog, other than its insane slowness at loading /usr/bin
02:53:05 <ais523> but pressing / makes the location bar magically appear
02:53:09 <ais523> (other characters often don't)
02:53:19 <ais523> (although I suspect ~ probably does)
02:53:30 <ais523> another pet hate of mine: alt-f2 doesn't expand ~ but interprets it literally
02:53:48 <ais523> if I write ~/esoteric/intercal, it interprets it as /home/ais523/~/esoteric/intercal
02:53:51 <ais523> which is obviously not what I wanted
02:54:05 <elliott_> I really wish I knew what @'s point looked like :(
02:54:31 <elliott_> when I try to envision what a screenshot of @ would look like, I honestly just see a black screen
02:55:23 <monqy> wear a special hat and think about what you want user interface
02:55:31 <ais523> I don't think it would look too dissimilar from a modern OS
02:55:46 <ais523> because the UI and internal representation are not necessarily linked at all, nor should they be
02:55:46 <elliott_> ais523: your conception of that being a bunch of terminal windows and Emacs?
02:55:59 <ais523> elliott_: that's not actually what my desktop normally looks like
02:56:02 <elliott_> ais523: The UI is just how you look at the internal representation
02:56:12 <ais523> atm, it has IRC, email, two browsers, terminal
02:56:14 <elliott_> I mean, yes, things can have a nice veneer over that
02:56:21 <elliott_> But you can always look at an object directlry
02:56:30 <elliott_> @'s interface also doubles as the best programming interface ever
02:56:37 <ais523> now, in @, I'd have things available for doing the same activities
02:56:48 <ais523> and I imagine their UI would be similar
02:56:59 <elliott_> ais523: yep, but it won't have a traditional window manager
02:57:03 <elliott_> I'm not sure what it /will/ have
02:57:03 <ais523> e.g. whatever I was using to look at a document full of hyperlinks probably wouldn't be Firefox, or even a Web browser
02:57:07 <ais523> but it would control in a similar way
02:57:12 <elliott_> I used to think it'd look like Emacs, but with objects instead of text
02:57:15 <ais523> and look similar, as that's what people want hyperlinked documents to look like
02:57:22 <elliott_> Oberon has a good interface, I can take inspiration from that
02:57:46 <ais523> one big advantage of being text-oriented is that you can edit everything with the same operations
02:57:56 <elliott_> You can do that with objects too, the operations are just more mind-bending
02:58:04 <ais523> I've converted images into whatever that text-based X format is before, and edited them with Emacs
02:58:16 <ais523> I'm not sure what the equivalent for objects would be
02:58:29 <elliott_> ais523: an ASCII-ish version of the serialised object?
02:58:31 <Sgeo> I've been meaning to try Oberon
02:58:36 <elliott_> But really, "text" is a bad word.
02:58:45 <Sgeo> I tried to try it, but I remember having problems
02:58:47 <elliott_> Programmers think: text, string, and they think of... well, strings.
02:58:52 <ais523> editing the serialised version of something directly is a hack
02:58:59 <elliott_> ais523: so is editing xbm in Emacs
02:59:00 <elliott_> It's arbitrary to say that text is a bunch of Unicode codepoints
02:59:06 <ais523> elliott_: no, that's what I mean
02:59:11 <ais523> what I was doing was a hack, in a way
02:59:24 <elliott_> ais523: Well, the more idiomatic version would be looking at it in an object inspector
02:59:26 <ais523> also, bold is ESC [ 1 m
02:59:29 <elliott_> And poking around changing things
02:59:55 <elliott_> Basically I think strings as we see them in modern systems don't appear naturally in @ much at all
03:00:04 <elliott_> because "document segment" works just as well
03:00:05 <ais523> hmm... I suppose the problem is that objects never really have the interfaces you want them to have
03:00:10 <elliott_> Why can't you name a bookmark with a bolded wrod in it?
03:00:27 <elliott_> With a video? (ok, not lookupable -- this isn't SpectateSwamp Desktop Search -- but the point remains)
03:00:27 <ais523> because the name would be a pain to type
03:00:34 <ais523> elliott_: gah you mentioned SSDS
03:00:36 <elliott_> ais523: you don't have to type names in full
03:00:40 <ais523> in an appropriate context
03:00:54 <elliott_> But basically, the point is that strings are only common because our I/O interfaces do strings.
03:01:17 <elliott_> Most of the time, you just want to print/show something, or to read something, and in @ you don't need to coerce things into Unicode codepoints to do that
03:01:18 <ais523> how do you access things in SSDS, anyway? I know that everything is named with videos, but it seems a little unwieldy
03:01:25 <elliott_> ais523: you just give them tags, I think
03:01:29 <ais523> (originally filmed with camcorder pointed at screen)
03:01:37 <ais523> elliott_: that seems altogether too sane
03:01:52 <elliott_> ais523: SSDS = grep with automatic video playing, I think
03:02:07 <elliott_> "SS claims SSDS is a "desktop search" application. However, SSDS qualifies as "desktop search" only in SS's own definition and when using SS's own computer usage patterns; it does not qualify as a "desktop search" application in any other definition of the term. In most definitions, a "desktop search" system indexes the user's personal files, extracts metadata from the files, and allows the user to perform searches on this metadata; for example, "songs
03:02:07 <elliott_> by a composer called John" or "instant messaging conversations that mention pizza" or "email about Project X". SSDS, on the other hand, requires the user to convert all data to plain text format, thus losing all formatting and metadata, and merge everything in one file. For certain operations, the user is required to maintain such index themselves. Further, ordinary desktop search systems allow the user to see all metadata, such as "this matching song
03:02:07 <elliott_> is 4:33 long" or "the last pizza conversation took place yesterday" or "the boss mailed to you about Project X using Microsoft LookOut, the bastard"; SSDS only allows you to see matching likes in SSDS index file. For example, if you search for "Project X", it is difficult to see when, by who, and (for example) with what program the e-mail was sent with."
03:02:12 <elliott_> -- http://www.thestupidestmanonearth.com/DesktopSearch.aspx
03:02:16 <elliott_> "At best, SSDS is a simplistic linear search application that attempts to match search terms against a text file - and with extra features that allows the user to show images and videos, also in random order."
03:02:23 <elliott_> heh, so it doesn't even play the videos you mention
03:02:44 <ais523> because that much SSDS is too much for me
03:02:50 <zzo38> Well, yes, the UNIX stuff with pipes and grep and so on works much better. But, of course, that is UNIX. SSDS is a similar (but not as well designed) things for Windows.
03:03:05 <zzo38> And anyways you can do that stuff on Windows by using Cygwin or whatever, too.
03:03:17 <elliott_> unfortunately, they're less effective on bytes
03:03:27 <ais523> elliott_: have you seen PowerShell?
03:03:38 <elliott_> ais523: yes; good ideas, but it's not usable
03:03:39 <Sgeo> There shouldn't be just stdin and stdout if you're putting in pipes
03:03:45 <Sgeo> ais523, I haven't
03:03:48 <zzo38> You can have one command that shuffles the lines of stdin and that way, you can play videos in random order.
03:03:56 <ais523> I have the feeling that someone at Microsoft thought of @, realised they'd never be able to implement it, and wrote PowerShell instead
03:04:05 * elliott_ notes http://okmij.org/ftp/Computation/monadic-shell.html
03:04:06 <ais523> which is unusable for most operations because it doesn't really mesh with things well
03:04:18 <ais523> zzo38: it's called shuf(1)
03:04:36 <elliott_> ais523: I have a feeling @ is the kind of thing many people start thinking about, but then realise what they're doing and quickly stop
03:04:39 <zzo38> ais523: Yes, then use that.
03:04:39 <ais523> elliott_: PowerShell is apparently very useful for Windows administration merely because it can access things like the registry easily that other tools can't
03:04:59 <elliott_> Unfortunately, I wasn't clever enough to stop, and now I have to implement it
03:05:09 <elliott_> With barely no knowledge of standard PC hardware and OS design to start with
03:05:31 <elliott_> Incidentally, oklopol's probably-long-abandoned OS that he talked about ages ago has similarities to @
03:05:40 <ais523> elliott_: anyway, I think I've figured out what a capability is, at the hardware level; it's simply a bit pattern stored /in a memory location that lets it be used as a pointer to an object/
03:06:09 <ais523> gah, I'm tired, my eyes read there as being an unmatched opening paren in my last line, and there aren't any parens at all
03:06:16 <ais523> I just keep seeing one for some reason
03:06:18 <ais523> and I can't even work out where
03:06:24 <zzo38> mediaplayer `ls *.ogv | shuf`
03:06:30 <elliott_> ais523: A capability is a pointer, pretty much; which ends up as bits in memory that are interpreted in a certain way
03:06:50 <ais523> and it's distinguished by an integer with the same value by the type system
03:06:52 <zzo38> elliott_: Yes, or echo will do too
03:07:01 <elliott_> ais523: Well, integers have tag bits in @.
03:07:03 <ais523> as this is standard hardware, the type system is being checked at "compile time" (actually "convert to x86 machine instrucitons time")
03:07:23 <ais523> whether that's upon editing, or much later
03:07:48 <zzo38> No... echo won't do
03:07:50 <elliott_> it'll be agonising when/if @ is "done"-ish, but has insufficient compatibility layers to actually use day-to-day
03:08:01 <elliott_> zzo38: oh right; you need them separated by \n
03:08:01 <zzo38> Because echo put everyone on one line
03:08:15 <elliott_> (fun fact: TUNES wanted a DOS emulator to start with)
03:08:28 <ais523> did you know that Linux has two syscalls that only exist for dosemu?
03:08:55 <ais523> they both put an x86 system into virtual 8086 mode (with different parameters), and fail with ENOSYS on any other sort of system
03:09:09 * elliott_ has configured a kernel before, shockingly enough
03:09:19 <ais523> heh, I didn't realise they were involved in kernel config
03:09:39 <elliott_> I think it mentions vm86 or something
03:09:41 <pikhq> elliott_: Most of the traditional knowledge on OS design you've already thrown out the window.
03:09:59 <pikhq> I did say "traditional".
03:10:01 <elliott_> The low-level details are what matter to me, anyway. :p
03:10:07 <elliott_> And orthogonal persistence does have quite the bit of literature on it.
03:10:11 <ais523> it's similar to Smalltalk
03:10:18 <ais523> more so than typical OSes
03:10:27 <ais523> elliott_: I know, I was agreeing with you
03:10:28 <pikhq> Yes, you're ignoring the low-level details that are really painful to deal with.
03:10:32 <elliott_> ais523: incidentally, one of my main worries about @ is that non-programmers won't be able to learn it, but...
03:10:34 <zzo38> What would be the algorithm to find the best way to use registers in a DVI file?
03:10:39 <pikhq> Most obviously, dealing with hardware's task switching.
03:10:40 <ais523> I still like programs to be serialisable as text, incidentally
03:10:52 <pikhq> Still will need to handle paging, though.
03:10:54 <elliott_> ais523: I think @ just has a learning curve, maybe a larger one than most common OSes, but it'll confuse you less once you learn it and you'll be able to accomplish so much more
03:11:10 <elliott_> Sharing over IRC? Yes, desirable, but this is a limitation of IRC.
03:11:14 <ais523> elliott_: fun fact: GNU Hurd was originally aimed at 32-bit processors, because 16-bit was common then and they wanted to future-proof
03:11:17 <elliott_> (@-chat would just share objects)
03:11:28 <monqy> isn't it possible to make a non-porgrammers friendly shell over @
03:11:37 <pikhq> ais523: The same is true of the rest of GNU.
03:11:45 <elliott_> monqy: Sure, but that wouldn't be @... what's the difference between programmer and user?
03:11:58 <pikhq> ais523: Their idea was "by the time this is usable, 16-bit will be an old piece of shit, so why care now?"
03:12:03 <ais523> elliott_: I think it's because it makes them easier to store on a wide range of devices (including things that aren't computer-related at all), and a wide range of implementations
03:12:05 <elliott_> monqy: If you want I can paste you an explanation of @ I wrote semi-recently into /msg (it's long)
03:12:13 <ais523> pity they didn't start with 64 bits instead
03:12:19 <elliott_> ais523: What non-computer-related devices is it easier for?
03:12:24 <elliott_> And you mean codepoints, not text.
03:12:25 <pikhq> It's a bit of an easier jump, though.
03:12:27 <ais523> elliott_: writing down on paper
03:12:35 <pikhq> Especially if you consider x86.
03:12:41 <elliott_> ais523: Um, you've used paper before, right?
03:12:43 <ais523> and I mean what exists on my keyboard
03:12:44 <elliott_> You can draw boxes and things there.
03:12:48 <pikhq> Segmentation to a flat memory model was one *hell* of a jump.
03:12:49 <ais523> elliott_: not reliably
03:13:04 <elliott_> ais523: Well, that's different; keyboard-inputs are one ... view of @ code.
03:13:04 <ais523> you can be off by a millimetre or too really easily
03:13:17 <ais523> the set of characters in printable ASCII has better error correction
03:13:20 <elliott_> Basically it would be reifying the intentions. (elliott buzzword!)
03:13:34 <monqy> elliott_: sure. as-is i only have a really vague idea of @ that i can't really describe
03:13:34 <elliott_> ais523: basically you want to be able to get the actions that are required to recreate some code
03:13:41 <ais523> elliott_: yes, I think so
03:13:51 <ais523> including in an implementation that nobody currently envisages
03:13:54 <elliott_> ais523: Well, that's not necessarily text, but.
03:13:58 <elliott_> ais523: oh, well that's a lot harder
03:14:12 <elliott_> ais523: what you want is, I think, something that's not actually possible, but not something that /should/ necessarily be possible
03:14:16 <ais523> in particular, I don't want it to be just a serialised form of the internals of something
03:14:19 <elliott_> But you can achieve what you want in _specific_ situations
03:14:27 <elliott_> But it'd depend on /interfaces/
03:15:10 <ais523> well, you can, in that I think that even, say, 100 years into the future, no matter what formats and interfaces people are actually using, they'll have some way to represent sequences of octets
03:15:15 <ais523> to store old files "unchanged"
03:15:33 <ais523> and you'll probably be able to get C89 compilers, even if they're seen as something antiquated and only of academic interest
03:15:43 <elliott_> does anyone know how to convert BBCode or HTML to Markdown that uses footer links?
03:15:45 <elliott_> I want to paste this to monqy :P
03:15:49 <ais523> even @ could plausibly have a C89 compiler, although there wouldn't be much reason to use it
03:16:07 <elliott_> ais523: I plan some kind of "weakly-integrated" POSIX layer out of necessity]
03:16:14 <zzo38> ais523: Maybe in case you want to run C programs
03:16:35 <monqy> why would anyone ever want to do that
03:16:39 <ais523> zzo38: I would say you'd missed the point, but then I'd have to describe what the point is, and I'm not sure I can
03:18:15 <oerjan> this elusive point, so hard to describe
03:18:54 -!- ralc has quit (Quit: Leaving).
03:18:59 <monqy> speaking of crazy possible future things, does anyone know what logs have stuff relating to feather? I'm suddenly really curious
03:19:08 <elliott_> monqy: hmm, I'm really tempted to just put this up as HTML somewhere
03:19:08 -!- azaq23 has quit (Read error: Operation timed out).
03:19:38 <elliott_> monqy: did you find that files-suck.html too narrow as well as ais
03:19:40 -!- azaq23 has joined.
03:21:18 <monqy> I'm not really sure what it's getting at as a solution
03:21:52 <elliott_> monqy: i was talking about the view
03:22:43 <monqy> I can see it just fine
03:22:47 <ais523> also, saying that existing abstractions are bad is OK even if you don't have something better to suggest
03:24:03 <monqy> right but i also didn't understand how saying something is bad could possibly be "too narrow" so I pulled some miserable conclusion jumpery
03:27:39 <elliott_> does anyone have a unicode return arrow
03:30:13 <monqy> and on greping for feather in logs, is this with the expectation that i have every log file :(
03:31:54 <elliott_> exclamation mark logs to get them all
03:32:00 <elliott_> ok does anyone have a place for me to put this html file
03:32:08 <elliott_> monqy: also, install Bitstream Chartered it is good font
03:38:04 <elliott_> monqy: also do you have bitstream charter this is totes important
03:38:26 <monqy> i searched fro it but then it wanted me to buy it for $99 i think i did something wrong
03:38:33 -!- MDude has changed nick to MSleep.
03:38:55 <elliott_> monqy: its in your package manager
03:38:57 <Sgeo> I should put the Cygwin installer on my desktop or something
03:39:26 <elliott_> monqy: xfonts-scalable or something
03:39:40 <elliott_> monqy: oh, texlive-fonts-recommended should get you it
03:39:51 <elliott_> that give syou postscript fonts
03:40:58 <monqy> help i dont use debia n o rhwat ever that is help
03:41:15 <monqy> maybe i secretly already have it but never knew
03:41:31 <monqy> arhclinux is that bad
03:42:15 <elliott_> monqy: pacman -S xorg-fonts-type1
03:43:14 <monqy> at least i dont use (worse distributuieon here)
03:44:18 <elliott_> that's literally just my forum post reformatted and with one bit crossed out
03:45:01 <elliott_> monqy: meh, do you have a gpg key
03:45:10 <monqy> i forget if i ever bothered
03:45:31 <monqy> are there any good distributions i am honestly completely dumb at knowing things about them
03:45:41 <Sgeo> Opa's do statement seems a bit magical :(
03:45:48 <elliott_> I use Debian because it works unlike Arch
03:45:53 -!- lambdabot has joined.
03:46:12 -!- ghoulmaster has quit (Remote host closed the connection).
03:46:22 <monqy> i glanced at opa then decided it is not for me
03:46:44 <monqy> learning ur and a bunch of other unrelated languages first at the very least
03:46:46 <elliott_> don't download that i havent stled the hr yet
03:46:56 <oerjan> > fix$var.("yay! "++).show.(:[])
03:46:57 <lambdabot> yay! [yay! [yay! [yay! [yay! [yay! [yay! [yay! [yay! [yay! [yay! [yay! [yay...
03:47:00 <monqy> too late but i havent started viewing it yet
03:47:10 <Lymee> > "\^AACTION hugs elliott_\^A"
03:48:03 <elliott_> my mistake will, never be known,
03:48:54 <elliott_> > text "\^AACTION hugs elliott_\^A"
03:49:43 <zzo38> I think the control characters are stripped
03:50:33 <oerjan> ^ul (<CTCP>ACTION may or may not still work.<CTCP>)S
03:50:33 * fungot may or may not still work.
03:51:12 <Lymee> !python print "test"
03:51:37 <elliott_> monqy: btw this is from March, so of course @ has changed almost entirely since then :)
03:51:42 <oerjan> EgoBot definitely doesn't work with ACTION any more.
03:51:51 <elliott_> monqy: also that <del> is from my editing of it right now
03:51:57 <Lymee> !python print "<CTCP>ACTION test<CTCP>"
03:52:21 <Sgeo> elliott_, this is WTFy on Homestuck
03:52:23 <elliott_> oop was even a bad way to describe what i was thinking about in the time
03:52:28 <elliott_> Sgeo: oh thanks for the reminder
03:52:32 <Sgeo> There's no way to access current update from previous update
03:52:37 <elliott_> monqy: sorry i cannot answer your questions for about ten minutes I must READ HOMESTUCK
03:53:21 <elliott_> oh my god the top-left panel Sgeo click it
03:53:33 <monqy> good thing i hate homestuck
03:54:02 <elliott_> monqy: when did your opinion develop from nonplussedness to hatred
03:54:19 <monqy> elliott_: when i tried reading it after expressing nonplusedness
03:54:34 <oerjan> `addquot <elliott_> its UNEBARBEL
03:54:39 <oerjan> `addquote <elliott_> its UNEBARBEL
03:54:40 <HackEgo> 540) <elliott_> its UNEBARBEL
03:54:40 * elliott_ prepares for answer he's already guessed
03:54:55 <monqy> i think i started roughly where i left off i.e. somewhere in the middle maybe
03:55:27 <monqy> then i skipped around a bit because i am an awful person
03:55:35 <elliott_> (plenty of people think they're about half-way through but are actually in the first act)
03:56:24 <elliott_> you should start it again and go until at least the game that starts act four. it starts out boring but it really does develop. and skipping around is just going to confuse you.
03:56:44 <oerjan> <elliott_> is nonplusedness a word <-- no, it needs another s, but then it's a doubleplusgood word.
03:57:21 <monqy> i dont hate things for being confused by them
03:57:51 <elliott_> i never said that's why you hated it but obviously it is completely inconceivable that someone could actually hate homestuck
03:58:06 <Lymee> <CTCP><CTCP><CTCP>
03:58:09 <elliott_> (ok probably not. i doubt there's many people who actually hate homestuck while liking sbahj, though.)
03:58:09 <Lymee> What does that do?
03:59:10 <monqy> i cant fully remember why i hate it but i remember finding the troll gimmicks insufferable and having to pay attention and care to understand things didn't help and it always felt really awkward to me like it's trying too hard or something idk
04:00:04 <monqy> it is only a mild hatered
04:00:39 <elliott_> the gimmicks are meant to be insufferable, there's a bookmarklet thing that normalifies it though... but really, 99 percent of things that would class as "trying too hard" I'd say are jokes that only make sense with the context, assuming that was during skipping around
04:00:43 <elliott_> oh well I'll just conclude you're subhuman
04:01:13 <Sgeo> !@#$ broken update
04:01:15 <elliott_> there's a lot of trying-too-hard near the start too but that's mostly intentional to set the scene
04:01:33 <Sgeo> !@#$ crashed MSPA site
04:01:59 <monqy> one thing i classify as trying too hard that is maybe not in the typical normal nonsubhuman definition: i mean when it tries to take itself too seriously
04:02:36 <Sgeo> Chrome: Stop having troubles connecting
04:02:37 <monqy> in addition to the other stuff at the beginning yeah
04:02:37 <elliott_> monqy: considering that almost all the major plot developments are sandwiched by jokes, I dunno if that's true
04:02:46 <elliott_> but really you should start again and just go through it all in order, it really picks up in act three, act four, and act five act two (in that order)
04:02:53 <elliott_> MAYBE YOU DON'T HAVE A SPARE WEEK THOUGH
04:03:20 <monqy> clases ends next week
04:03:38 <monqy> subhumans like me learn school during the sumer
04:04:26 <Sgeo> CHROME: STOP HAVING TROUBLE WITH MSPA
04:04:26 -!- elliott_ has quit (Read error: Connection reset by peer).
04:04:29 -!- elliott has joined.
04:04:53 <elliott> but really, homestuck has issues, and they're mostly pacing issues. and the first three acts are kind of a drag, although pretty funny.
04:04:53 <Sgeo> elliott, how many working panels were there? Just one (Jade)?
04:05:07 <elliott> monqy: but personally i'd be surprised if you didn't like it if you gave it a chance from the very start to the end
04:07:12 <elliott> Sgeo: ok im waiting for the site to stabilise before reading
04:07:23 * Sgeo is too impatient for that
04:07:32 <elliott> monqy: ANYWAY THAT @ EXPLANATION HUH
04:07:37 * Sgeo may be part of the problem
04:07:46 <monqy> sorry i was too busy trying to rationalize my subhuman hatred of homestuck
04:07:59 <monqy> anyway i';ll finsih reading it after brushing my teeth i have to do that now
04:08:13 <elliott> monqy: you should start from the beginning >:|
04:08:14 <Sgeo> ....finish reading it? In less than 6 hours?
04:08:16 <elliott> (i realise you weren't serious)
04:08:43 <Sgeo> elliott, what's a reasonable amount of time to read all of Homestuck?
04:08:50 <Sgeo> I think I did it in less than a week
04:09:07 <elliott> Sgeo: um well it's about twenty hours of consecutive effort
04:09:32 <elliott> let's say twenty four hours of consecutive effort
04:09:36 <elliott> so if you put in five hours a day you can read it in five dyas
04:11:09 <elliott> http://i.imgur.com/oh8Fl.png <-- meanwhile, reddit discovers the least tasteful way to do a remembrance comic ever
04:11:12 <Sgeo> I know this instability is Hussie trolling us
04:12:35 <monqy> 1) i meant finish reading at.html (2) haha just kidding about doing it after brushing my teeth i have other stuff to do also woops
04:12:53 <Sgeo> elliott, link to thread?
04:13:05 <elliott> monqy: but it's...short...
04:17:42 <elliott> how do you mix an rgb with an rgba using the alpha im dumb
04:19:07 -!- bsmntbombdood has joined.
04:20:00 <fizzie> "old.r * (1-alpha) + new.r * alpha" (plus same for g/b) is very traditional.
04:20:17 <elliott> fizzie: (I've pushed configurable colours and blockinfo to mcmap)
04:20:18 <Sgeo> elliott, I expect you to be psychic and realize that I want a link
04:20:33 <elliott> fizzie: Now I'm working on respecting the alpha values in a dumb way by only looking one down
04:21:10 <elliott> fizzie: Also: new is the one with the alpha, right?
04:21:25 <fizzie> Well, it's the one "on top".
04:21:42 <fizzie> And that was assuming the 1 == full opacity scheme, sometimes it's flipped.
04:22:01 <elliott> fizzie: Oh, erm, it's two-five-five = full opacity.
04:22:19 <fizzie> Well, scale as necessary.
04:22:37 <fizzie> (old.r * (255-alpha) + new.r * alpha)/255 or some-such.
04:25:03 <elliott> fizzie: Next thing I work on will be the status bar, to make that blockinfo actually useful beyond the configuration.
04:25:12 <elliott> Which I decided to just put at ~/.mcmap/colors because XDG seriously sucks.
04:25:25 <fizzie> But my ~/.config! (Yeah, that's okay.)
04:25:31 <elliott> Ugh, I still have that horrible bug that shouldn't even be happening.
04:25:33 <elliott> I broke code I didn't even touch.
04:25:42 <elliott> (mode == MAP_MODE_CROSS && map_flags & MAP_FLAG_FOLLOW_Y ? " (follow)" : ""),
04:25:42 <elliott> (mode == MAP_MODE_SURFACE && map_flags & MAP_FLAG_CHOP ? " (chop)" : ""),
04:25:42 <elliott> (map_flags & MAP_FLAG_LIGHTS ? " (lights)" : ""),
04:25:42 <elliott> ((map_flags & MAP_FLAG_LIGHTS) && (map_flags & MAP_FLAG_NIGHT) ? " (night)" : ""));
04:25:44 <elliott> How could this send things like
04:25:51 <elliott> 05:25:11 MODE: surface[GARBLED KANJI]
04:25:56 <elliott> java.io.IOException: Received string length longer than maximum allowed (23040 > 16)
04:26:12 <elliott> I do not even understand it.
04:27:07 <fizzie> Okay, gone for ~12 hours or so. ->
04:27:19 <elliott> fizzie: BUT YOU NEED TO FIX MY BBUGEEE
04:28:51 <Sgeo> Friend post on a tech help forum
04:28:55 <Sgeo> Gives a model number
04:29:02 <Sgeo> Helper asks which model
04:29:30 <elliott> The string is correct, but inject_to_client is fucking it up.
04:30:05 <elliott> fizzie: I think you broke it, man.
04:30:09 <elliott> jshort_write(lenb, conv_len);
04:30:18 <elliott> Or at least, it just changed and it's the FIELD_STRING code.
04:30:30 <Sgeo> How do you nicely tell someone who's trying to help you that they asked a really stupid question?
04:30:41 <fizzie> Could be; I didn't test it too much.
04:31:27 <elliott> fizzie: OK BUT ALSO what's the formula for how many iterations something with alpha N can mix with things below it before it will have no effect.
04:31:34 <elliott> (With byte-sized colour and alpha components.)
04:31:39 <elliott> I want to ~optomize~ alpha blending.
04:33:23 <fizzie> Depends on the original color, I suppose.
04:33:34 <fizzie> "Until the target color equals the new color" is the easy test, but due to rounding-down that's probably a bit too conservative.
04:35:16 <fizzie> Oh yes, I did in fact break it.
04:35:16 <Sgeo> Well, my friend answered it
04:35:28 <fizzie> It needs to be conv_len/2.
04:35:40 <Sgeo> "Really... I give you a model number and I'm asked which one is it?"
04:35:54 <Sgeo> Then he answered it... again
04:36:13 <elliott> fizzie: Committing a fix or I?
04:36:17 <Sgeo> Why am I teling you this
04:36:27 <fizzie> You do it, I'm about to miss my bus.
04:36:37 <fizzie> Feel free to put in a disparaging commit message.
04:36:57 <fizzie> Something about everyone else always having to clean up after me or something.
04:37:30 <elliott> fizzie: I'll just include your address and tell everyone to send the bombs that-away.
04:40:23 <zzo38> I think I realized what is wrong with my optimization algorithm, although I do not know how to make a proper algorithm. I can explain by example.
04:41:02 <zzo38> Say that there is a command - which does the next letter, = which does the next letter and sets a register to its value, and . which does the value of the register.
04:41:13 <zzo38> -a-a-a-a-a-b-b-b-b-b-b-b-a-a-a-a-a-a-a-a-a-a-a-a
04:41:27 <zzo38> To optimize using my current algorithm might do like:
04:42:01 <zzo38> =a....-b-b-b-b-b-b-b............
04:42:09 <zzo38> Due to the way it computes the scoring. But better would be:
04:42:21 <zzo38> =a....=b......=a...........
04:43:12 <zzo38> That is a simple circumstance, and actually there are other complications such as stack and multiple registers, and a lot more ways of interleaving. So, how to make up the proper algorithm?
04:44:44 <elliott> zzo38: I think you just have to do reordering
04:45:06 <zzo38> elliott: What do you mean? Can you give examples?
04:45:16 <oerjan> well looking at -a-a-a. vs. =a..=b it seems like you should always do = if you have a run of 3 or more?
04:45:19 <elliott> zzo38: You just have to iterate it, don't you?
04:45:54 <zzo38> There are other complications. Although I will try oerjan's suggestion.
04:46:12 <oerjan> -a-a. =a.=b seems to indicate it's harmless to do so with 2 as well
04:46:15 <zzo38> It would make sense. However the other complications might cause it to fail; I don't know for sure.
04:47:27 <oerjan> if you have something like -a-a-b-c-a-d-a-a it might get trickier...
04:47:34 <monqy> im returned from not being here. at.html time??
04:47:37 <oerjan> you probably want to save only a there
04:48:12 <zzo38> For example, let's say there might be two or three or four letters for some commands. And that, you might have two registers. And a stack that saves the values of the registers but has other effects too. And, yes, also your other example -a-a-b-c-a-d-a-a
04:48:40 <zzo38> (Or even remove the first -a and the problem still holds)
04:48:53 <monqy> elliott: write it in zepto...
04:49:43 <Sgeo> It is alarming that my computer keeps running low on memory
04:49:57 <oerjan> zzo38: well if you have _enough_ complications you probably end up with something NP-complete.
04:50:39 <Sgeo> Chrome, Y U EAT SO MUCH RAM?
04:52:00 <Sgeo> Sgeo, Y U NO PUT NO IN Y U?
04:54:33 <monqy> elliott: finsihed. unrelated to design, but are any languages even suited to implementing it?
04:54:50 <elliott> monqy: Existing languages? No.
04:55:11 <zzo38> Although this is an analogy, it is close enough to the problem I am having. Now let's extend this system. Each name can be from one to four letters long, and these values are stored in the register. Say there are two registers, where "=" sets the "." register and "+" sets the "," register. Now add "[" and "]" which push the values of the registers onto the stack and pop. However, "[" and "]" have other side effects and you *cannot* change or mo
04:55:23 <elliott> monqy: There are two bootstrap options: Write a minimal interpreter for @lang in assembly (C is not an option at any stage), write a @lang compiler with that, switch to it;
04:55:41 <elliott> monqy: Or implement @lang somehow in existing OSes (is this even possible? Maybe just a facade of @lang), implement a @lang compiler in that, port it over.
04:55:53 <elliott> monqy: That's what the lower layer is being written in, yes.
04:56:00 <elliott> Which won't be much, once @lang is up and running.
04:56:12 <zzo38> (This is equivalent to the problem as long as you assume that there can possibly be up to 256 "letters" of the "alphabet")
04:56:21 <elliott> monqy: Probably nasm, but it'll be replaced by an assembler written for and in @ when all is said and done.
04:56:30 * Sgeo wants to learn more about @lang
04:56:48 <elliott> Sgeo: If you find out, let me know.
04:57:02 <monqy> making a compiler for a high-level language in assembly sounds like a pain
04:57:13 -!- pikhq_ has joined.
04:57:13 <Sgeo> This makes me wonder if one could make a language that requires solving an unsolved problem just to see the complete specs
04:57:26 -!- pikhq has quit (Ping timeout: 258 seconds).
04:57:32 <elliott> monqy: But the other bootstrapping route sounds like a pain, too :)
04:57:41 <elliott> monqy: This is why I'm picking a simpler language than @lang for one of the initial prototypes.
04:57:46 <elliott> A Lisp, say; not that hard to do in assembly.
04:57:53 <elliott> Wildly inadequate, but I have to start somewhere.
04:59:18 <monqy> hard? maybe not. painful? I'd imagine so. maybe assembly just isn't my thing. I'd rather make myself a simple compiler than write it directly.
04:59:31 <elliott> monqy: Sure, if it's Lisp I can go tha troute.
05:00:33 <monqy> this reminds me, I really have to remember my ideas for the serious prgoramming langauge i hope to make sometime to solve all of my problems forever.
05:00:34 <zzo38> Would you know any ideas about the proper algorithm to solve my problem now? It is more complicated now that I added that stuff.
05:01:24 <oerjan> zzo38: i doubt i know, but you also got cut off after "and you *cannot* change or mo"
05:02:04 <zzo38> ... you *cannot* change or move them!
05:02:53 <oerjan> zzo38: ok. that means the only the only thing you could adjust with [ and ] are which values are pushed and popped
05:04:15 <zzo38> oerjan: Yes. You cannot move, add, or remove, any [ and ] commands yourself.
05:04:51 <oerjan> hm the value of the registers after the [ will be precisely the same as after the matching ]
05:04:55 <zzo38> But changing other commands can change what values are saved with the [ and restored with ]
05:05:10 <zzo38> oerjan: Yes that is correct.
05:05:17 <oerjan> so you can think of it as a kind of three branching instead of stack manipulation
05:07:02 <oerjan> A [ B ] C becomes a tree with commands A at the root and two branches with B and C respectively
05:07:44 <zzo38> Yes, that would work, I think.
05:07:44 <oerjan> where B and C might contain further branching
05:08:27 <oerjan> well also A, in which case [B] C belongs to A's last branch
05:12:18 <oerjan> hm if names have different lengths that also is a complication - it may be cheaper to save (and so reuse) a longer name
05:12:41 <zzo38> Yes I have realized that, too, already.
05:13:06 <zzo38> (I didn't realize the tree stuff at first but now that you explain it makes sense and I agree)
05:14:33 <oerjan> i still have a suspicion this _might_ be NP-complete
05:16:29 <elliott> everything interesting, at least
05:17:17 <elliott> monqy: btw will you use @ i need committed users for funding
05:20:08 <monqy> at least i'll play around with it and maybe implement stuff if not use it regularly (it would be hard to use it regularly without stuff implemented)
05:23:47 <elliott> monqy: stuff implemented but but it'll have a web browser, an irc client, and a posix layer WHAT MORE DO YOU NEED WHAT DO YOU WANT FROM MEEEEEEE
05:25:32 <zzo38> oerjan: You might be correct about NP-complete.
05:26:04 <monqy> elliott: it depends on if it's usable for me (if not i'd like it to be usable for me)
05:26:09 <monqy> intentionally vague
05:26:11 <zzo38> However it probably can still halt.
05:26:17 <monqy> because i do not know exactly what makes things usable for me
05:26:27 <elliott> it's going to be so homestuck you have no idea
05:27:19 <zzo38> Would you know if there are other channels that they can also help with these kind of algorithms?
05:27:50 <oerjan> zzo38: well yes. one obviously could use the algorithm of iterating through all possibilities of =, + and - at each spot where the name isn't already in the register, and that would halt but probably be exponential.
05:29:13 <monqy> i only read the first 2 or 3 days of feather chat but i think i know enough now to say it's insane
05:29:26 <zzo38> That is why I would want to figure out if there is better things
05:29:35 <elliott> monqy: keep reading btw, you'll see ais gradually go completely insane
05:30:19 <oerjan> zzo38: i'm not frequenting any optimization channels, alas.
05:30:33 <monqy> i like the part where the guy skeptics all over feather and then likes php
05:30:50 <monqy> this is because i am a horrible person
05:31:17 <oerjan> monqy: you like to see movies where people fall into sewers and die, i take.
05:31:32 <monqy> elliott: btw whats the everyday sense of insane
05:32:30 <elliott> monqy: the sense that isn't used in the idiotic sense of "LOL WE'RE ALL CRAZY HERE BECAUSE WE AM LIKE ESOLANGS"
05:32:38 * elliott STARES AT OERJAN FOR NO REASON
05:32:46 -!- Nisstyre has joined.
05:33:21 <elliott> <monqy> i like the part where the guy skeptics all over feather and then likes php
05:33:23 <monqy> elliott: so the good sense
05:34:59 * oerjan hits elliott with the saucepan ===\__/
05:35:11 <monqy> the one where ais explains how feather has no primitives or syntax and RodgerTheGreat claims it impossible and ehird accuses him of hating most non-Java non-BASIC languages
05:36:04 <oerjan> no syntax either? oh dear.
05:37:05 <elliott> monqy: rodgerthegreat is a bad person
05:37:27 <elliott> ./combined:20:49:49: * tusho watches RodgerTheGreat come and say "THAT'S IMPOSSIBLE! JUST LIKE FEATHER!"
05:37:43 <monqy> 17:24:06: <RodgerTheGreat> ehird: utterly untrue. I like BF, ///, LOGO, PHP, Postscript, LUA and some of my own languages, in addition to Java and BASIC
05:37:59 <elliott> 00:14:41: <ehird> I love JS too :D
05:38:00 <elliott> WHY DID I SAY THIS i must have been joking
05:38:15 <elliott> SORRY IF YOU THINK LESS OF ME
05:38:45 <monqy> what year was this i think i was an idiot back then
05:39:18 <elliott> monqy: two thousand and eight
05:39:36 <monqy> yeah i was probably most certainly an idiot. i don't want to think about it.
05:39:40 <elliott> hmm, something is reminding me to play nethack again. prolly ais talking about acehack
05:39:55 <elliott> monqy: DO YOU PLAY ANY ROGUELIKES i bet your taste in roguelikes is as bad as your taste in webcomics >:(
05:40:20 <elliott> i think you talked about roguelikes once
05:40:32 <monqy> anyway i don't know of any roguelikes i like
05:41:12 <elliott> youre avoiding answering because you have bad taste
05:41:35 <elliott> google "monqy nethack" -> oh god results for crawl
05:41:38 <monqy> i dont really play crawl anymore but i hang around in ##crawl
05:41:47 <elliott> i cant talk to you any mor
05:42:03 <monqy> i actualyl dislike crawl
05:42:07 <monqy> does that make you feel better
05:42:16 <elliott> one of the results from that google highlighted this part of crawl learndb
05:42:16 <elliott> Still believes that Nethack is the most popular roguelike.
05:42:16 <elliott> Also believes that the earth is flat.
05:42:16 <elliott> Happens to maintain a Nethack fork, UnNethack. If you're curious how a Nethack with some thoughts spent on balance could look like, give it a try: http://sourceforge.net/apps/trac/unnethack/
05:42:17 <elliott> Is on the record as stating that he is not a shark.
05:42:24 <elliott> monqy: maybe a bit...........
05:42:41 <elliott> i know ais has been like kicked from crawl-dev several times for "trolling" so i have to MILDLY DISLIKE YOU...
05:43:09 <monqy> I think I've been kicked once and muted once. does that help.
05:43:13 <elliott> <monqy> 17:24:06: <RodgerTheGreat> ehird: utterly untrue. I like BF, ///, LOGO, PHP, Postscript, LUA and some of my own languages, in addition to Java and BASIC
05:43:16 <elliott> this must be from the day before
05:43:46 <monqy> are there any good roguleikkes
05:43:49 <elliott> monqy: how anal are those guys even
05:44:05 <elliott> it's so beautiful you have no idea.
05:44:22 <elliott> monqy: good luck with that
05:44:27 <elliott> monqy: its mine its in python but it's GOLFED PYTHON
05:44:38 <elliott> i should work on that sometime
05:44:47 <elliott> maybe make it use perlin noise instead of just... random() to generate the map
05:44:49 <monqy> as for those guys do you mean the players or the developers
05:45:44 <monqy> varies between okay and insufferable?? i dunno
05:46:40 <monqy> where is vagrant i am bad at finding it
05:47:20 <elliott> monqy: it is not online :(
05:47:21 <monqy> i addded ehird but google thought i meant third i will put quotes around it
05:47:40 <elliott> i think i coerced cheater into pasting the latest version a while back after i lost it by pretending i liked him.
05:52:02 <elliott> 17:22:28: <RodgerTheGreat> If the first thing a language does is define it's own syntax, the syntax for defining syntax IS THE SYNTAX.
05:52:08 <elliott> monqy: you should be so happy you weren't around when this guy was
05:52:53 -!- Lymee has quit (Ping timeout: 260 seconds).
05:53:29 <pikhq_> I actually still talk to him fairly regularly.
05:53:38 <monqy> how bad of a person
05:53:47 <pikhq_> Usually, not *too* bad, actually.
05:53:55 <pikhq_> He's developed a strong fondness for Forth.
05:54:29 <elliott> isn't he like only four years older than me or something, i seem to recall him ranting at me for ages for being immature and blaming it all on my age once
05:54:54 <pikhq_> He's a bit older than that.
05:55:40 <pikhq_> Also, I'm pretty sure that https://secure.wikimedia.org/wikipedia/en/wiki/Fushigi_no_Dungeon is the most popular roguelike...
06:00:12 <itidus20> the difficult question is at what point does it become opcodes
06:00:35 <elliott> Argh, fizzie is gone for twelve hours.
06:01:09 <itidus20> the non-esoteric languages are usually used for bootstrapping right?
06:01:33 <pikhq_> itidus20: Very few languages actually bootstrap, TBH.
06:01:41 <pikhq_> Well, language implementations.
06:01:44 <itidus20> like unix was used to bootstrap gnu if i understand correctly
06:02:40 <itidus20> i don't "really" understand bootstrapping though
06:03:04 <itidus20> isn't it a physical impossibility to bootstrap something?
06:03:15 <itidus20> rather a systemic impossibility
06:03:25 <itidus20> there was this thing i read somewheer
06:03:35 <pikhq_> To bootstrap something is to build something with itself.
06:03:45 <pikhq_> There is no requirement that your initial build was bootstrapped.
06:04:24 <pikhq_> For instance, you could bootstrap a C compiler written in C, using a C compiler not written in C. (I don't know if such a thing exists. :P)
06:04:28 <elliott> Argh, fizzie, you am done confound me.
06:04:34 <pikhq_> Or, you could compile it *by hand*.
06:04:39 <elliott> pikhq_: zeta c was written in lisp, I think
06:05:02 <itidus20> so one meaning of bootstrap is to have a compiler for a language written in itself then right?
06:05:06 <zzo38> The WEB program is itself written in WEB, although if you have the file TANGLE.PAS then you can start from there and then you can modify TANGLE.WEB and compile (with or without modification) WEAVE.WEB too.
06:05:19 <zzo38> Are there C compilers written in assembly languages?
06:05:32 <pikhq_> zzo38: None notable, at least.
06:06:06 <itidus20> interpreter is probably a better word
06:06:25 <pikhq_> Oh, yeah, you could also have the bootstrapping compiler run on an interpreter.
06:06:44 <zzo38> C interpreter written in assembly language would also work since the C compiler could then compile itself
06:06:53 <pikhq_> I think that's how GHC started off.
06:07:29 <oerjan> itidus20: basically every compiler written in its own language must have been bootstrapped at one point.
06:08:11 -!- Taneb has joined.
06:08:27 <pikhq_> Frankly, bootstrapping compilers annoy me. I dislike circular dependencies.
06:08:30 <oerjan> although there are several options for how that could happen: a compiler written in another language, an interpreter written in another language, or (probably the very first languages) by hand.
06:08:45 <elliott> anyway it's not circular if it's portable
06:08:53 <pikhq_> elliott: For Linux package management.
06:09:05 <Taneb> Isn't GHC circular?
06:09:07 <pikhq_> elliott: Namely, I dislike GCC having a build dependency on GCC.
06:09:18 <elliott> pikhq_: a package manager that can't handle circular dependencies is broken
06:09:23 <oerjan> itidus20: for example erlang was originally interpreted in prolog (and still has a very similar syntax)
06:09:28 <pikhq_> elliott: Build dependencies.
06:09:48 <itidus20> is the bootstrapped section just the minimum necessary to build the rest?
06:10:35 <itidus20> the thing is when you update a language
06:10:45 <itidus20> and the updates to the language are coded in the language
06:10:48 <elliott> itidus20: you can't use a feature you just implemented in the compiler without bootstrapping
06:11:17 <itidus20> so you begin in say, C/asm, for example..
06:11:26 <pikhq_> elliott: The only way to solve circular build dependencies is manual intervention so that the package depending on itself actually exists before you build it. Which is *really annoying*.
06:11:40 <itidus20> oh i guess it doesn't matter what you begin in
06:11:44 <elliott> pikhq_: or it could install a binary first
06:12:15 <pikhq_> elliott: Yesss, that's manual intervention so that the package depending on itself actually exists before you build it.
06:12:20 <pikhq_> Which is really annoying.
06:12:37 <elliott> pikhq_: no, that's doing it in the package manager
06:12:47 <pikhq_> It's still *really annoying*.
06:13:33 <itidus20> So the fundamental idea though is about initially writing a minimal compiler/interpreter in say: C, C++, Lisp, Haskell, what-have-you.. and using that to compile/interpret a new version of your language
06:13:52 <itidus20> and using that to build your language
06:14:57 <itidus20> I guess that it very much depends on many things.
06:15:23 <itidus20> Like, you wouldn't want to rely on an interpreter running underneath your language
06:15:47 <oerjan> indeed interpreters written in the language itself aren't useful for bootstrapping :P
06:16:11 <oerjan> although there are still uses for those
06:16:36 <itidus20> I can see that you could tell lisp to output asm code for an interpreter.
06:17:06 <oerjan> lisp may have both an interpreter and a compiler for itself, where the interpreter is used for quick running and the compiler is used for optimizing
06:17:46 <oerjan> inside the same implementation
06:17:50 <itidus20> oh i mean.. suppose you wanted to implement a brainfuck interpreter. you wouldn't want to have the interpreter running on top of an interpreter.
06:17:52 <pikhq_> Actually, Lisp almost always has a self-interpreter. That's the "eval" part of REPL. :P
06:18:38 <oerjan> pikhq_: well it _might_ but it could also compile on the fly immediately, like ghc does
06:19:10 <oerjan> although that's still a slightly simpler compilation to bytecode
06:20:28 <itidus20> in any case, i figure you only really want 1 layer of interpreters running most of the time
06:20:46 <oerjan> itidus20: it's ok to use an interpreter to run your initial compiler, though, since that's a one time thing
06:20:47 <itidus20> and 2 for cases wheer it doesn't matter
06:21:22 <elliott> oerjan: sbcl compiles to native code always, fwiw
06:21:56 <itidus20> but you wouldn't really want to load haskell, and then load brainfuck on top of it, and then supply a brainfuck interpreter's source to that
06:23:02 <itidus20> im just not really moving things forward
06:23:18 <oerjan> itidus20: well for esolangs you might want to just because it can be done
06:23:28 <oerjan> (see: my unlambda interpreter in unlambda)
06:23:49 <itidus20> im just in the habit of attaching a value judgement to everything i say
06:27:00 <oerjan> otherwise if you value efficiency you'd want to get a compiler pretty soon, or at least an interpreter that is itself compiled
07:12:11 <Taneb> You know what's odd?
07:12:28 <Taneb> What my brother calls an awkward turtle is different to what I do
07:12:40 <monqy> what's an awkward turtle
07:12:59 <itidus20> a turtle goes into their shell
07:13:01 <Taneb> A hand signal made during awkward silences
07:13:23 <Taneb> The point of it is to change the subject to the awkward turtle
07:13:58 <monqy> those things feel artificial to me. subject changes to how artificial they feel. nobodys happy.
07:14:02 <itidus20> I prefer to make things more awkward and then sink deper into depression
07:15:05 -!- monqy has quit (Quit: hello).
07:15:21 <Taneb> To quote David Morgan Mar, "If you find yourself in an awkward silence... Fill it! Say something! Anything! You will never have a better chance to make an awkward situation even more awkward!"
07:16:56 <Taneb> No, I don't think he does
07:17:20 <Taneb> I'm not even sure he's seen the wiki
07:18:03 <ais523> wow, the bloglike section on Mezzacotta hasn't been updated for over a year
07:18:32 <oerjan> of course he has scary time planning powers, so he probably wouldn't fit in something that useless
07:18:36 <itidus20> it's like.. which friggen esolang club does he hang with then?
07:18:48 <ais523> whereas Square Root of Minus Garfield has an update yesterday, so presumably that's still going
07:18:52 <itidus20> i thought this was the only one
07:18:59 <ais523> as does Lightning Made of Owls
07:19:10 <oerjan> itidus20: well afaik all his esolangs are old...
07:19:39 <Taneb> All the webcomics, bar Awkward Fumbles, are active
07:19:49 <Taneb> And Infinity on 30 Credits a Day
07:20:04 <oerjan> ais523: actually LMoO is skipping many updates nowadays
07:20:26 <ais523> something like that, it would astonish me if it came out daily
07:20:34 <ais523> but it's still being updated when there are submisisons
07:22:27 <oerjan> and SRoMG shows no signs of abating
07:24:42 <oerjan> btw the mezzacotta comic is rather dead if you look at the hall of fame section, not enough votes. although just this week some started trickling through.
07:25:08 <pikhq_> Well, sqrt(-garfield) is brilliant.
07:26:22 <itidus20> i actually read some of it before coming here
07:26:52 <itidus20> it really tore apart the comic medium in fun ways
07:26:54 -!- Vorpal has joined.
07:27:14 <pikhq_> itidus20: Also, it's producing something intelligent out of Garfield.
07:27:33 <pikhq_> Which is quite a feat.
07:28:52 <itidus20> I am not sure if I approve of Scott McCloud though. HE should try his hand at esolang though
07:29:08 <pikhq_> Given that Garfield is a comic written for one purpose: making money...
07:29:25 <itidus20> Scott McCloud is the most likely person to publish a book about esolangs :D
07:31:20 <itidus20> I mean Mr. McCloud will never be Jack Kirby or Akira Toriyama.
07:31:47 <oerjan> ok, as far as can see there is no evidence that DMM has ever edited our wiki.
07:32:12 <itidus20> is he somewhat a celeb in esolang terms?
07:32:28 <ais523> itidus20: it's separate, he's an esolang designer /and/ a celebrity
07:32:31 <elliott> he's a celeb in every term. well, apart from the one normal people use.
07:32:32 <ais523> but not famous for esolang design
07:32:40 <elliott> he writes this webcomic :P
07:32:49 <ais523> he writes a somewhat popular webcomic
07:32:57 <Taneb> "Irregular Webcomic!"
07:33:03 <oerjan> and has a heavy hand in several others
07:33:04 <elliott> ais523: Vorpal isn't appreciating this feature I coded into mcmap, probably because he's away; please tell me about how great it is
07:33:13 <itidus20> i actually discovered DMM when I started asking someone a question "theres not really any popular australian websites like google, yahoo etc"
07:33:17 <ais523> elliott: I, umm, don't know what it does and why it's useful
07:33:22 <ais523> but you managed to do something nontrivial in Java
07:33:26 <ais523> that's worth an accolade of itself
07:33:32 <elliott> ais523: who said it was java???
07:33:39 <elliott> ais523: mcmap is a proxy, it's pure retrostyle c99
07:33:40 <ais523> I assumed it was a Minecraft plugin
07:33:44 <elliott> ais523: nah, it's fizzie's project
07:33:46 <ais523> also, "retrostyle c99"?
07:33:48 <elliott> that I also write some stuff for
07:33:48 <itidus20> and i went on wiki and found DMM
07:33:57 <elliott> ais523: yes, fizzie thinks this is the nineties, and does things like use bitshifts instead of division
07:34:03 <elliott> ais523: and mark functions "inline"
07:34:12 <ais523> I use bitshifts instead of division when it's clearer
07:34:33 <ais523> say, if I'm dividing by a large power of 2, it's clearer to write x >> 20 than x / (1 << 20)
07:35:04 <ais523> x >> 1 vs. x / 2, though, they're pretty much equal in terms of legibility
07:35:55 <itidus20> http://en.wikipedia.org/wiki/Category:Australian_websites "Irregular Webcomic!"
07:36:00 <pikhq_> ais523: Yes, but you're using bitshift when, logically, you are shifting bits.
07:36:09 <pikhq_> ais523: Which is only proper.
07:36:21 <coppro> What if the shift is zero-extend?
07:36:34 <elliott> ais523: oh, and he tries to make things thread-safe by marking them volatile
07:36:50 <elliott> pikhq_: dont wnice its amazing
07:37:01 <Taneb> DMM is the most famous esoteric programming language inventor with a PhD in Astrophysics
07:37:09 <pikhq_> That's the "make the compiler stupid" button.
07:37:09 <elliott> i can respect a man who uses macros because he doesn't trust the compiler enough to optimise an inline function
07:37:22 <elliott> pikhq_: well it _is_ a mutex
07:37:44 <ais523> elliott: that, umm, can actualy work sometimes
07:37:50 <Taneb> I lived in Australia for 11 months
07:37:50 <ais523> (making things volatile to make them thread-safe)
07:37:52 <elliott> itidus20: hmm, the most popular australian website may be Whirlpool (it's the only one I can think of off the top of my head)
07:38:00 <elliott> which I'm not sure /why/ it's famous, because it's all about Australian ISPs
07:38:00 <itidus20> we have kangaroos and DMM and isn't afraid of anything
07:38:09 <pikhq_> ais523: And in some cases, it just makes the compiler stupid.
07:38:12 <ais523> but expecting it to happen without knowing why is probably going to end in failure
07:38:14 <elliott> `addquote <itidus20> australia kicks ass <itidus20> we have kangaroos and DMM and isn't afraid of anything
07:38:17 <HackEgo> 541) <itidus20> australia kicks ass <itidus20> we have kangaroos and DMM and isn't afraid of anything
07:38:23 <ais523> elliott: I suspect the most popular Australian website is google.au
07:38:29 <pikhq_> It depends quite heavily on what you're doing.
07:38:30 <elliott> ais523: that's not really an _Australian_ website
07:38:56 * elliott wonders how many Australians are proud of kangaroos despite having never seen one
07:39:07 * ais523 resists urge to say "Google's pretty famous"
07:39:24 <Taneb> Interestingly, there are some feral wallabees in Scotland
07:39:26 <ais523> elliott: they're fairly common in the Australian countryside, aren't they? and even citybound Australians probably see them in zoos
07:39:34 <ais523> even I've seen a kangaroo, in a zoo
07:39:56 <Taneb> I've seen a kangaroo in a zoo... in AUSTRALIA
07:40:01 <itidus20> you don't have to travel far to see one.. you just have to leave the cities
07:40:13 <elliott> ais523: that was a nice rhyme
07:40:18 <itidus20> they're everywhere once you actually get away from suburbia
07:40:26 <ais523> elliott: coincidental, and it doesn't scan properly
07:40:28 <elliott> kangaroo / in a zoo / there's pretty much no way this rhyme isn't going to end up talking about kangaroo poo, so I'm stopping it here
07:40:40 <ais523> which means it's a good rhyme in a bad context to put a rhyme in
07:40:46 <itidus20> everytime you go camping in melbourne you're bound to see one
07:41:30 <itidus20> its just they're not in suburbia
07:41:30 * coppro sees a reasonable path to getting an Erdos-Bacon number of 65
07:41:59 <itidus20> i don't get out much.. but i have seen them in the wild several times
07:42:34 <itidus20> every encounter with a kangaroo tends to be memorable too
07:43:03 <itidus20> i guess they would get boring quickly enough
07:43:48 <elliott> coppro: 65??? WOOOOOOOOOOW
07:44:13 <oerjan> i suspect 65 might actually be _harder_ than 6
07:44:49 <coppro> pikhq_: My father has a Bacon number of 3; there are multiple profs at UW with Erd(I don't know how to compose the accent with my keyboard layout)s numbers of 1
07:45:11 <pikhq_> Here, it's Compose = o
07:45:27 <coppro> pikhq_: Although my father's Bacon number of 3 doesn't apply if you only count credited actors
07:45:38 <oerjan> pikhq_: like in SML iirc
07:45:42 <coppro> (and I haven't run the cast list of the film to see if he actually has a 2)
07:45:48 <pikhq_> Crediting doesn't typically matter for Erdős-Bacon.
07:46:00 <ais523> is it Erdős * Bacon that you're using to do the calculation? or appending digits?
07:46:17 <ais523> so 65 is really quite difficult?
07:46:28 <pikhq_> Unless you have a time machine.
07:46:47 -!- Taneb has quit (Quit: Page closed).
07:46:49 <pikhq_> Then, you can be enough generations removed to pull it off.
07:47:03 <ais523> I still don't know what my Erdős number is
07:47:20 <ais523> although I'm pretty sure I have one, given that I've coauthored papers with people who have coauthored lots of papers
07:47:21 * pikhq_ really would like for Bacon to appear in a film using stock footage of Erdős.
07:47:33 <ais523> pikhq_: to give the lowest possible value of 1?
07:47:42 <ais523> it'd be funnier if they coauthored a paper
07:47:50 <coppro> ais523: grep https://files.oakland.edu/users/grossman/enp/Erdos2.html
07:47:53 <oerjan> ais523: well i assume you'd have to get a long chain of people to cooperate with each other to get it that high
07:48:10 -!- cheater_ has quit (Ping timeout: 255 seconds).
07:48:15 <elliott> * pikhq_ really would like for Bacon to appear in a film using stock footage of Erdős.
07:48:19 <elliott> i think something like that actually happened
07:48:41 <pikhq_> I thought it was just someone with a Bacon number doing that, though.
07:48:41 <Vorpal> <elliott> ais523: Vorpal isn't appreciating this feature I coded into mcmap, probably because he's away; please tell me about how great it is <-- what feature?
07:49:06 <elliott> it's currently broken btw :P
07:49:10 <elliott> oh wait i didn't commit the broken
07:49:11 <pikhq_> Erdős has an Erdős-Bacon number of 3.
07:49:40 <coppro> ais523: oh wait you filter URLs
07:50:07 <ais523> but can still see what they say
07:50:09 <pikhq_> Which is the lowest known Erdős-Bacon number, though a few people have that.
07:50:10 <Sgeo> What counts as a "paper" for Erdos number?
07:50:27 <Sgeo> I did a simple proof with ais523. Does this mean I might have a .. blah
07:50:31 <pikhq_> Sgeo: The *stock* definition is an academic, published paper.
07:50:51 <ais523> well, my Erdős number is at least 4, it seems
07:51:19 <coppro> ais523: clearly we should collaborate and I should get a research term with one of the two profs at UW I know of with 1
07:51:24 <coppro> that will give you a firm 3
07:51:28 <zzo38> Now I will sleep soon. Tell me now or later, if you have more ideas about my optimization problem or any other IRC channels you know that they could discuss these things.
07:51:41 -!- zzo38 has quit (Quit: >).
07:51:57 <Sgeo> ais523, clearly, we should write a paper >.>
07:52:03 <coppro> (I actually have an eye on one in particular since he both works in an area I'm interested in and taught me last term)
07:52:03 <pikhq_> Oh, sorry, it's any research collaboration resulting in a published work.
07:52:20 <pikhq_> A collaborative, unique proof would probably count.
07:52:23 <ais523> bleh, does that mean that elliott has an Erdős number because I mentioned what I was doing to him?
07:52:34 <elliott> ais523: everyone you have EVER LOOKED AT has an erdos number now
07:52:41 <Sgeo> ais523, is our GoE proof unique?
07:52:58 <ais523> Sgeo: I don't know what you're referring to
07:53:04 <ais523> well, I mean, my coding style is slightly influenced by elliott
07:53:10 <ais523> from being exposed to his programs
07:53:18 <ais523> and I did a lot of programming towards one of the papers
07:53:35 <ais523> (I'm still trying to figure out why I switched from Allman-style braces to K&R-style, though)
07:53:39 <Sgeo> ais523, that thing about any sufficiently small pattern in a bounded Game of Life universe being a result of some Garden of Eden
07:53:46 <ais523> (for when I'm not trolling with EOL braces)
07:53:54 <ais523> Sgeo: it probably isn't new
07:54:01 <ais523> someone else has probably wondered that at some point
07:54:11 <elliott> <ais523> well, I mean, my coding style is slightly influenced by elliott
07:54:15 <elliott> or is this just in a butterfly effect sense
07:54:32 <coppro> Sgeo: what is the result, precisely?
07:54:39 <ais523> elliott: well, I've had style arguments with you, and they help to sharpen my opinions of my own position
07:54:49 <ais523> and I've started using K&R/OTBS style for no obvious reason at all
07:55:02 <elliott> mcmap puts { on the line after branch constructs and it makes me unhappy
07:55:19 <ais523> elliott: I used to do that, because the books I learned C from did
07:55:41 <coppro> I really dislike {-on-its-own-line
07:55:42 <Sgeo> coppro, every sufficiently small (5 width and height smaller than the universe) pattern in a bounded Game of Life universe has at least one Garden of Eden that results in it.
07:55:53 <ais523> coppro: do you really dislike }-on-its-own-line?
07:56:00 <ais523> OTBS is like Perl, it's inconsistent in the name of looking nice
07:56:23 <coppro> Sgeo: interesting. What's the proof?
07:56:29 <coppro> also bounded -> toroidal?
07:56:52 <ais523> hmm, another plausible indentation style is { lined up with if(x), on the same line as the line after, and } at the end of the line, next to the margin (i.e. column 78)
07:57:01 <ais523> I wonder why nobody uses it?
07:57:17 <Sgeo> coppro, yes, although it works with other topologies. And probably also with always-off beyond a point, but not sure, and ais523 wasn't paying attention.
07:57:30 <Sgeo> coppro, let's see if I can remember it offhand. It's somewhere in logs
07:57:33 <coppro> Sgeo: "yes" is not a proof :P
07:57:52 <Sgeo> Yes was to bounded -> toroidal
07:58:16 <ais523> coppro: now I'm trying to think of something that's proved by infinitely many copies of the letter 'y'
07:58:18 <elliott> hey ais523, here's a screenshot you won't understand: http://i.imgur.com/Oygim.png
07:58:28 * itidus20 notes that there is no coding-style applicator editor that i have heard of
07:58:28 <ais523> it could make a decent counterexample to various banal and pointless statemetns
07:58:39 <elliott> <ais523> coppro: now I'm trying to think of something that's proved by infinitely many copies of the letter 'y'
07:58:45 <elliott> "there exists an infinite stream of 'y's"
07:58:51 <elliott> (constructive-style proof)
07:58:53 <ais523> elliott: something vaguely interesting
07:58:58 <elliott> itidus20: you mean a reformatting editor?
07:59:07 <coppro> ais523: The only thing I dislike more than putting opening braces on their own line is putting them on their own line AND indenting them halfway
07:59:09 <elliott> ais523: that there exists infinite anything would be considered interesting to some people
07:59:11 <ais523> itidus20: several programs, like Emacs and Kate, will shuffle lines left and right to comply with a coding style you give them
07:59:20 <ais523> NetBeans, at least, will completely re-pretty-print your program if you tell it to
07:59:45 <ais523> elliott: perhaps you should give ultrafinitists a copy of yes
07:59:49 <ais523> and watch their minds explode
07:59:49 <itidus20> ais: I can independantly discover any feature given enough time
07:59:58 <Sgeo> coppro, in a bounded universe, every pattern is either a oscillator or a precursor to one.
08:00:18 <Sgeo> (counting things like empty universe as an oscillator)
08:00:33 -!- cheater_ has joined.
08:00:34 <ais523> elliott: I assume it's Minecraft-related; the first thing that came into mind when I saw it was that it was a Dwarf Fortress map dump
08:00:42 <ais523> and Minecraft map dumps are likely to look similar
08:00:45 <Sgeo> There are no infinite growth patterns. Eventually, you're going to start repeating.
08:00:47 <ais523> as people do similar things to the map in those games
08:00:55 <coppro> Sgeo: Right. I know that result
08:01:14 <ais523> 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 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
08:01:16 <ais523> 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 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
08:01:17 <ais523> 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
08:01:38 <elliott> <ais523> elliott: I assume it's Minecraft-related; the first thing that came into mind when I saw it was that it was a Dwarf Fortress map dump
08:01:44 <elliott> It's not really a dump, more a live view
08:02:14 <elliott> <ais523> elliott: perhaps you should give ultrafinitists a copy of yes
08:02:14 <elliott> <ais523> and watch their minds explode
08:02:25 <elliott> ais523: they'd, unfortunately correctly, probably argue that it was still bound by C's restrictions
08:02:28 <elliott> at least, if they were IN THE KNOW
08:02:33 <elliott> because they know the OS is written in C
08:02:35 <ais523> yes doesn't count its iterations, does it?
08:02:40 <Sgeo> If you take a pattern that's just a precursor, and work "backwards" (for all possibilities of backwards), you can't end up with the same pattern again, otherwise, it wouldn't be a precursor
08:02:53 <elliott> ais523: No, but the OS has to print it out
08:02:57 <ais523> and depending on what you're outputting, the OS doesn't have to either
08:03:06 <ais523> say you're outputting to a parallel printer
08:03:06 <elliott> ais523: OK, but the hardware will still degrade :P
08:03:12 <ais523> it's going to run out of paper eventually, I suppose
08:03:18 <ais523> but the ys will still be there conceptually
08:03:19 <elliott> ais523: You could print to screen and wipe anything that trails off
08:03:21 <Sgeo> You can't go "backwards" infinitely, it has to stop sometime before 2^area
08:03:56 <coppro> ais523: How come Junethack has muted goals in AceHack? Isn't AceHack basically vanilla for the purposes of gameplay?
08:04:09 <Sgeo> So every precursor has a Garden of Eden that results in it.
08:04:15 <ais523> coppro: it's because I didn't want to break save compatibility to add a patch that was implemented really badly
08:04:23 <ais523> so I restricted myself to stuff that the game tracked already
08:04:28 <itidus20> apparently (according to the source of translations of the tipitaka) buddha said that the first being in a realm(not sure if i have this right) assumes himself to be god
08:04:40 <ais523> planning to play in junethack, btw?
08:04:55 <ais523> (I'm still astounded that Slashdot accepted the story)
08:05:00 <Sgeo> Now, for every pattern of a certain size or smaller, you can trivially make a precursor by putting a single live cell outside of causal contact with the pattern. Therefore, the pattern has a precursor, and therefore, there's a Garden of Eden that results in it.
08:05:02 <ais523> elliott: they're not really muted, just slightly different than the other variants
08:05:18 <coppro> elliott: muted meaning less difficult
08:05:30 <elliott> ooh, the submitter of the slashdot submission is the one with that insulting crawl infodb entry
08:05:37 <Sgeo> ais523, did I forget anything/make any mistakes?
08:05:40 <coppro> I thought of that in particular because "beat sokoban" is replaced with "consult the oracle"
08:05:47 <coppro> the others are close to isomorphic
08:05:51 <elliott> (long story involving monqy as to why I know/recall this so recently)
08:05:51 <Sgeo> Or be too long-winded for something simple?
08:06:02 <ais523> Sgeo: I wasn't playing attention
08:06:07 <coppro> oh, the luckstone from mine's end isn't
08:06:09 <ais523> elliott: bhaak is the developer of UnNetHack
08:06:14 <coppro> it's replaced with getting into the quest
08:06:20 <elliott> Still believes that Nethack is the most popular roguelike.
08:06:20 <elliott> Also believes that the earth is flat.
08:06:20 <elliott> Happens to maintain a Nethack fork, UnNethack. If you're curious how a Nethack with some thoughts spent on balance could look like, give it a try: http://sourceforge.net/apps/trac/unnethack/
08:06:20 <elliott> Is on the record as stating that he is not a shark.
08:06:30 <ais523> and possibly the person with the most (although not the largest volume) of AceHack patches but me
08:06:47 <elliott> 10 wins. Add yourself to the list with !nick goodplayers yourname. Don't be a monqy and delete the list.
08:06:47 <elliott> The number of wins required to be a goodplayer increases over time. It is defined to be one more win than monqy currently has, except when it gets fixed at nice numbers like 10 or 27 for a while.
08:06:55 <elliott> monqy needs to extricate himself from this learndb
08:07:23 <elliott> http://twitpic.com/monqy <-- google search result for monqy, COINCIDENC????
08:08:03 <ais523> also, I'd be very surprised if Crawl were more popular than NetHack
08:08:09 <ais523> but Crawl's playerbase, I expect to be easier to count
08:08:12 <elliott> ais523: I wouldn't, at all
08:08:12 <coppro> Sgeo: Now, for the killer question: can you work out whether this applies in the totally general case?
08:08:22 <ais523> NetHack's a part of UNIX culture, Crawl isn't
08:08:29 <elliott> ais523: Nobody on Windows plays NetHack, lots of people on Windows play Crawl (tiles, universally)
08:08:36 <elliott> (Yes I know not "nobody" etc. etc. etc.)
08:08:42 <ais523> elliott: most of the YouTube results for NetHack are played on Windows
08:08:44 <Sgeo> coppro, general as in generalizes to other rules, or to infinite sized universes?
08:08:45 <pikhq_> Also, Fushigi no Dungeon.
08:08:50 <elliott> Also see sheer volume of DCSS on http://www.reddit.com/r/roguelikes, although I realise the sample might be biased
08:08:58 <coppro> Sgeo: To all finite patterns
08:09:10 <pikhq_> (a series of Japanese console rogue-likes)
08:09:11 <elliott> I'd be very surprised if NetHack had more active players than DCSS
08:09:14 <ais523> but it's still relevant, you just have to plug the numbers into Bayes' Theorem
08:09:20 <ais523> pikhq_: you don't have to tell me what the Mystery Dungeon series is
08:09:24 <elliott> I'm too lazy to be a Bayesian
08:09:28 <ais523> some of the games in it are released in the UK too
08:09:34 <elliott> killed good players, is a horrible person"
08:09:34 <pikhq_> ais523: Not everyone would know.
08:09:59 <Sgeo> coppro, good question, I'd like to try, but I have no reason to believe I can. I am currently mentally playing with more GoE stuff though
08:10:21 <ais523> I'm actually quite a fan of Pokémon Mystery Dungeon; its bonus levels (Zero Island) have a balance unlike anything I've seen in any other roguelike, and are sufficiently fun that I'm considering writing my own roguelike based on similar principles
08:10:37 <ais523> it's like what I think Crawl ought to be like, rather than what it actually is like
08:10:39 <coppro> ais523: interesting; your recommendation might make me pick one up
08:11:00 <ais523> coppro: be careful; the first 85% or so of Pokémon Mystery Dungeon is insultingly easy, and you have to play through it before you reach the fun part
08:11:11 <ais523> most people have given up before they reach it
08:11:16 <elliott> squarelos totally looks like spanish ors omething
08:11:35 <elliott> ais523 is going to reply to this with an opinion on squarelos
08:11:48 <ais523> elliott: nah, I'm not good enough at Crawl to have a serious opinion on it
08:11:59 <ais523> but apparently, the developers mostly dislike it, and the top players mostly like it
08:12:15 <ais523> presumably the wider playerbase mostly dislikes it because it looks worse than circlelos, but I'm not sure
08:12:21 <elliott> ais523: monqy seems to be behind it
08:12:45 <elliott> clearly, we need to inundate him with these mixed opinions
08:13:13 <coppro> ais523: I was planning to go for the discount bin anyways
08:15:34 <elliott> ais523: completely unscientific comparison based on seeing a link to an SA forums thread in the crawl learndb: Crawl's thread has amassed 141 pages in three months; I can't even /find/ a thread for NetHack, but Minecraft's has attained 574 in six months
08:15:52 <elliott> I think it's fair to say that Crawl is the most popular roguelike THAT PEOPLE ACTUALLY THINK IS A ROGUELIKE WHEN THEY'RE PLAYING IT OK OK PIKHQ
08:18:05 <ais523> another completely unscientific comparison: NetHack's been slashdotted more often than Crawl
08:19:11 <elliott> that's about seven hundred times more biased than mine
08:19:54 <ais523> also, the SA thread for Crawl was, for ages, the main forum to discuss the game
08:19:59 <ais523> which is why it's mentioned there
08:20:22 <ais523> they moved away to the Tavern because they didn't like a pay site having most of the discussion about the game
08:20:24 <elliott> one of the largest forums on the internet, with some site that nobody reads attached to it
08:20:41 <ais523> is it the largest paid forum, I wonder?
08:20:41 <coppro> elliott: it is indeed something awful
08:20:53 <ais523> things like many of the 4chan boards are presumably larger, but you don't have to pay to post there
08:20:55 <elliott> ais523: according to http://www.big-boards.com/, no; offtopic.com is larger
08:21:09 <elliott> coppro: what an original joke
08:21:09 <ais523> heh, I'm not surprised there are forum rankings
08:21:18 <ais523> but you only mentioned one other forum, so I'm guessing that they're second
08:21:23 <elliott> ais523: unfortunately, that ranking omits the largest forum on the internet because it doesn't have the data they want
08:21:30 <elliott> and no, they're just the only one I remember being pay-for
08:21:34 <elliott> I checked the biggest ones out a while back for some reason
08:21:42 <elliott> (the largest forum on the internet is 2channel, by a large margin)
08:21:50 <elliott> (but they don't have e.g. membership information as they don't have members)
08:22:00 <elliott> oh wait "RegistrationOptional, USD33.00/year"
08:22:21 <itidus20> does a paid forum end up being better?
08:23:05 <ais523> itidus20: depends on what you mean by "better"
08:23:17 <ais523> it's going to discourage a huge number of potential posters, and probably many readers too
08:23:30 <ais523> but that's not necessarily going to be a bad thing
08:23:53 * elliott has ended up coding mcmap in gedit, I wonder why?
08:24:12 <elliott> Well, I know why, it's because vi displays tabs as spaces, so I can't copy and paste properly with my terminal, and because emacs just feels wrong here
08:24:12 <pikhq_> http://www.mezzacotta.net/archive.php?date=2012-12-22 My goodness that is wonderful.
08:24:32 <elliott> ais523: SA seems to do well enough with those:
08:24:33 <elliott> 3,550 registered users logged in.
08:24:41 <elliott> (OK, it's probably one of the only successful for-pay forums.)
08:24:45 <ais523> elliott: if you're a paid forum, being big is definitely to your advantage
08:24:53 <ais523> just like if you're a social network, being big is definitely to your advantage
08:25:04 <coppro> pikhq_: what is so special about that date?
08:25:15 <elliott> coppro: you can figure that one ou
08:25:20 <ais523> pikhq_: haha, that must have been specialcased
08:25:21 <pikhq_> coppro: Day after the Mayan calendar ends.
08:25:29 <elliott> http://www.mezzacotta.net/archive.php?date=2012-12-20 is the same
08:25:40 <elliott> as is http://www.mezzacotta.net/archive.php?date=2012-11-01
08:25:44 <elliott> you're doing something wrong
08:25:48 <ais523> oh right, those comics haven't been written yet
08:25:49 <elliott> you can't see future comics
08:25:59 <pikhq_> Aaaah, it only peeks into the past.
08:26:14 <coppro> just nothing seemed special about that site at that date
08:26:24 <elliott> coppro: well, that the comic didn't exist
08:26:32 <elliott> on account of the universe not existing, just like mezzacotta extends back to the beginning of time
08:26:41 <elliott> it's only amusing if you know what mezzacotta is
08:27:40 <Sgeo> http://www.barnesandnoble.com/w/the-assemblies-of-god-holy-bible-god/1030075545?ean=2940012671967&itm=2&usri=assembly%2bof%2bgod oh, this pattern of "helpful" votes isn't suspicious
08:28:01 <pikhq_> coppro: It is a webcomic which has an update for every day.
08:28:06 <ais523> it has the largest archives of any webcomic ever
08:28:25 <elliott> ais523: well, MSPA will surpass it in a few years, I'm sure
08:28:35 <ais523> presumably it was going as a newspaper comic before it first came online, and as a pamphlet comic before that, and as a stone carving comic before that
08:28:50 <elliott> and as a plsama painting comic before that
08:28:55 <pikhq_> Specifically, every day on the proleptic Gregorian calendar.
08:29:37 <elliott> I GUESS MY JOKE TRULY WAS THAT BAD
08:29:48 <pikhq_> http://www.mezzacotta.net/archive.php?date=-9999999999999-01-01 Here's the earliest comic.
08:29:49 <ais523> pikhq_: DMM could tell that the Gregorian calendar was going to be introduced millions of years before it was, so he worked on that assumption
08:29:58 <ais523> also, my fingers tried to tab-complete Gregorian, and it half-worked
08:30:10 -!- azaq23 has quit (Quit: Leaving.).
08:30:19 <elliott> hmm, "I think this comic is going downhill." must have been special-cased as the first line
08:30:55 <Sgeo> coppro, you should read all of them.
08:30:57 <ais523> elliott: it could just be chance
08:31:16 <pikhq_> There's a comic worth archive-binging.
08:31:25 <pikhq_> Especially since you'll need to invent immortality to do so.
08:31:35 <elliott> ais523: yeah, but /come on/ :P
08:31:36 <Sgeo> elliott, ais523, or, perhaps the function determining the comic was designed with that result in mind
08:31:37 <pikhq_> Well, not necessarily immortality.
08:31:46 <pikhq_> Just being highly prolonged.
08:32:16 <itidus20> ahh.. is mezzacotta a procedural comic?
08:32:27 <elliott> itidus20: no, it is hand-written by the comic irregulars
08:32:31 <pikhq_> Either that or DMM is amazing.
08:32:39 <elliott> IT IS NOT JUST DMM DO NOT DISCOUNT THE CONTRIBUTIONS OF OTHERS
08:32:55 <elliott> today's mezzacotta is funny
08:33:11 <elliott> although the first and second panels should be swapped
08:33:51 -!- Sgeo_ has joined.
08:33:57 <itidus20> "The rod of alertness is planted (set) to prevent each instance of a beetle."
08:34:17 * elliott really wants to play frictionless tennis now
08:36:19 -!- Sgeo has quit (Ping timeout: 255 seconds).
08:37:14 <ais523> the D&D markov chain person strikes again?
08:37:53 <ais523> elliott: one of the mezzacotta people just does markov chains of the d20 SRD (basically, D&D minus trademarks)
08:38:10 <ais523> and itidus20's quote sounds like it was generated like that
08:38:40 <myndzi> there is a tetris dude
08:38:55 <myndzi> i swear to god every post he makes sounds like a markov chain text generator
08:38:58 <myndzi> but apparently he's a real person
08:39:27 <elliott> rgba = RGBA_OPAQUE(4*v, 4*v, 0);
08:39:27 <elliott> rgba = RGBA_OPAQUE(255, 255-4*(v-64), 0);
08:39:34 <elliott> don't you want to use y, not v?...
08:43:41 <elliott> int lv_block = c->light_blocks[bx*(CHUNK_ZSIZE*CHUNK_YSIZE/2) + bz*(CHUNK_YSIZE/2) + ly/2];
08:43:42 <elliott> int lv_day = c->light_sky[bx*(CHUNK_ZSIZE*CHUNK_YSIZE/2) + bz*(CHUNK_YSIZE/2) + ly/2];
08:43:42 <elliott> lv_block >>= 4, lv_day >>= 4;
08:43:42 <Sgeo_> "Not being one-to-one is not considered sufficient of a function for it to be called one-way (see Theoretical Definition, below)."?
08:43:44 <elliott> lv_block &= 0xf, lv_day &= 0xf;
08:44:04 <ais523> gah, stupid italics indentation
08:44:10 <ais523> (my client interprets tab as "toggle italics")
08:44:23 <oerjan> Sgeo_: yes, those are different concepts.
08:44:50 <oerjan> one-to-one == injective (probably what you want for GOL stuff)
08:45:00 <ais523> I'd say the bitshifts/bitmasks are correct there, as it looks like it's trying to unpack a format that packs multiple 4-bit chunks into an octet
08:45:03 <Sgeo_> oerjan, I'm on this page for different reasons
08:45:04 <oerjan> one-way = cryptographical
08:45:06 <ais523> and the mathematical behaviour is irrelevant
08:45:29 <Sgeo_> oerjan, and I'm kind of just wondering about hashes not necessarily being one-way
08:46:00 <oerjan> Sgeo_: well no one has proved that one-way functions definitely _exist_
08:46:33 <Sgeo_> I should go to sleep now
08:47:20 <ais523> oerjan: does not require P != NP; if checking is O(n^2) and breaking is O(n^999), it's going to be safe for all practical purposes with high enough n
08:47:39 <oerjan> well depends on your precise definition then
08:48:00 <Sgeo_> P != NP iff P != 0 and N != 1
08:48:41 <ais523> also, what if P = +Inf, N = 2?
08:49:07 <ais523> elliott: +Inf * 2 = +Inf
08:49:37 <elliott> ais523: I would just like you to know that I edit mcmap with four-wide tabs
08:49:49 <elliott> <ais523> YOU ARE LIVING A LIE
08:50:14 <Sgeo_> Who doesn't use four-wide tabs for stuff?
08:50:19 <ais523> elliott: why not edit it with half-width spaces too?
08:50:28 <elliott> ais523: SOOO ANGRYYYYYYYYY
08:50:37 <elliott> you're not me, so he'll actually respond
08:50:41 <elliott> and we'll be here for hours
08:51:28 <ais523> I actually posted that Linux coding style guide quote to someone in a different channel earlier
08:51:35 <ais523> when we were about to get into a tabs vs. spaces vs. tabs=8 war
08:51:39 <Sgeo_> I need to go to sleep
08:51:46 <ais523> but it killed the conversation, obviously they were unable to argue with ti
08:51:47 <elliott> <ais523> when we were about to get into a tabs vs. spaces vs. tabs=8 war
08:51:58 <elliott> you implicitly acknowledged that there MAY exist tabs that are not equal to eight psaces there
08:52:19 <ais523> elliott: no, I acknowledge that some people use tabs for purposes that most programs are incapable of reading
08:52:26 <Sgeo_> Erm, I meant "4 spaces for each indent level" when someone said tabs
08:52:40 <ais523> the only programs I can think of where tab width is variable, are some programming editors, and word processors
08:52:43 <ais523> everything else uses tab=8
08:52:50 <ais523> (well, QBasic uses tab=14, but it's insane)
08:52:51 <Sgeo_> I think my Python is showing
08:52:53 <elliott> ais523: hehehehhehehe WOW LOOKS LIKE I'M NOT GETTING INTO THIS AGAIN WITH YOU how strange
08:52:57 <Sgeo_> Wow, that sounsd wrong
08:55:39 <ais523> hey, ahtewa's using ä in Eodermdrome programs
08:55:48 <ais523> although, I suppose I didn't specify the alphabet
08:55:55 <ais523> and it does make it more pronounceable
08:56:56 -!- ais523 has set topic: Tarn was pleased. “The hippos like the sewers!” he said. He took a celebratory swig of Dr. Pepper, and rocked back and forth. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
08:57:07 <oerjan> clearly we need to get someone vietnamese to write the eodermdrome C interpreter
08:57:15 <ais523> (all I added was a comma; it's correct either way but means something slightly different now)
08:58:46 <elliott> ais523: it looks to mean the exact same thing to me
08:59:01 <elliott> how has the meaning changed?
08:59:14 <ais523> oh, I think with the comma it implies that the swig of Dr. Pepper and the rocking happen one after the other
08:59:19 <ais523> and without, it leaves it ambiguous as to whether they overlap
08:59:33 <ais523> I said "slightly different"
09:00:30 <elliott> ais523: the source of that is an amusing read, by the way
09:00:47 <elliott> ais523: It's an NY Times article that purports to be about Dwarf Fortress, but is mostly a list of all the ways in which the NY Times writer thinks Tarn is weird
09:01:11 <ais523> oh, I, err, looked at that article
09:01:37 <elliott> that paywall is bypassable with a single line of JS, IIRC
09:01:41 <elliott> it's literally just an overlay
09:02:08 <ais523> not in my case, it wouldn't scroll, and I assume the article was longer than a screenful
09:02:16 <ais523> it's possibly because I declined cookies and didn't use JS
09:03:03 <elliott> ais523: umm, you can disable scrolling, I think
09:03:16 <elliott> but you could see the article greyed-out with the one I'm talking about
09:04:32 -!- oerjan has quit (Quit: Good night).
09:04:58 <elliott> ais523: do you know how to check whether the window is focused in SDL?
09:05:05 <elliott> I suppose I have to handle the event...
09:05:15 <ais523> elliott: I don't, I've hardly used SDL
09:05:23 <ais523> I can't even remember if DNA Maze is written in it or not
09:05:34 <ais523> I know I straight-ported it to something, but can't remember if it was SDL, although it seems plausible
09:06:32 <ais523> straight ports generally don't require much thought
09:06:46 <ais523> sufficiently so, that you can forget what libraries you're working with
09:07:16 <elliott> I've learned very little SDL working on mcmap, although I've mostly left the actual map parts alone until now
09:08:33 -!- ais523 has quit (Remote host closed the connection).
09:19:46 <itidus20> The degree to which a randomly generated world is enjoyable is probably correlated to the amount of cooperative multiplayer conducted within that world
09:20:22 <itidus20> in other words, always looking for a human meaning
09:20:28 <elliott> a great many people enjoy single-player minecraft but don't enjoy it online
09:20:52 <itidus20> but minecraft at least has NPCs I guess thats the diffeernce
09:21:46 <elliott> lots of people play in peaceful, and then there are no NPCs inside any real structure
09:21:54 <elliott> and sheep and pigs are generally more of an ignored annoyance outside
09:22:02 <elliott> chickens are too tiny to notice
09:22:52 <itidus20> ok so.. perhaps it is relative to how busy the persons social life is
09:23:10 <elliott> like, the more social the more enjoyable?
09:23:22 <elliott> If anything it's the opposite, although I doubt even that; plenty of MC players seem to be sociable
09:24:36 <itidus20> i dont have much of a social life .. so gradually I don't enjoy being too alone
09:25:06 <elliott> Well, with the size and speed a lot of builds are constructed, I doubt a lot of the big ones involved too much social interaction during the build period...
09:26:14 <itidus20> I mean.. I'm indoors at home all day every day. At first it seemed like the perfect chance to be alone with computers and books. But gradually I found dependance on chatrooms etc
09:28:34 <oklopol> looking for human meaning? mc's randomly generated worlds are way better than those constructed by hand for more expensive games, exactly because they don't look like they've been drawn by a human
09:29:33 <itidus20> well i was thinking about this while reading mezzacotta
09:29:41 <oklopol> oh well that explains it then
09:30:26 <oklopol> you should not share ideas before they are properly cooked
09:31:04 <elliott> oklopol: so ais should never have talked about feather? :p
09:32:25 <oklopol> "<elliott> Well, with the size and speed a lot of builds are constructed, I doubt a lot of the big ones involved too much social interaction during the build period..." <<< doing stuff together is just a more primitive form of social interaction
09:33:56 <itidus20> years ago playing final fantasy 3/6 on a SNES I started to imagine "This is great. It's a shame the NPC is 'stuck' to a set of scripted events." not in those exact words
09:34:03 <oklopol> i thought you meant they were multiplayer builds but so big and quickly done that the players must've just been building like crazy
09:35:08 <oklopol> ugh, scripted events... is there a worse
09:36:18 <itidus20> But as I get older, I start to realize you can't replace the storyteller with a computer.
09:36:34 <coppro> Sometimes the story is well-written
09:36:58 <oklopol> the point of games is you can be creative
09:37:08 <coppro> and the game does a good job of expanding the story in the game
09:37:49 <coppro> obviously this disagremeent can be settled in only one fashion
09:38:01 <coppro> fight to elliott's death
09:38:22 <itidus20> coppro> I have to disagree (with oklopol) <oklopol> well i have to agree (with oklopol)
09:38:39 <coppro> elliott has the Magic Spirit of Rightness in him
09:38:52 <coppro> the person who kills him and takes the Magic Spirit of Rightness will, thereafter, be right
09:39:28 <elliott> coppro: i say oklopol is right because i like him more
09:39:38 <oklopol> "<coppro> and the game does a good job of expanding the story in the game" <<< afaik, in every game the story can only be expanded locally, or you can explore a few main branches. to me it just feels like they couldn't come up with a long enough story so they added some parts where i have to press x repeatedly.
09:40:23 <oklopol> with slightly (very slightly) varying values of pressing x
09:40:43 <elliott> looks like pixelcomic is over
09:41:10 <elliott> "THE FACT THAT IT IS NAMED HURRICANE PIXEL IS WHAT MAKES IT INTERESTING
09:41:10 <elliott> IMAGINE A WEATHERMAN IN REALITY TALKING ABOUT "HURRICANE HUMAN"
09:41:11 <elliott> TO WARRANT SUCH A NAME THIS HURRICANE WOULD HAVE TO BE CAPABLE OF DESTROYING THE EARTH
09:41:11 <elliott> (WHICH WOULD HAVE A DELICIOUSLY IRONIC VALUE IN NAMING IT "HUMAN" MWAHAHA AHEM)"
09:41:18 <elliott> the annotations of this were ten times better than the comics itself
09:41:31 <oklopol> because that would've been a rather subtle form of mocking
09:41:47 <elliott> http://pixelcomic.net/016.shtml
09:41:50 <elliott> "ARE YOU MOCKING ME OR SOMETHING"
09:42:19 <Sgeo_> PIXELCOMIC UPDaTeD?
09:42:42 <elliott> but its index page is now a list of all strips
09:42:45 <elliott> which implies overness to me
09:44:51 <elliott> I AM NOT ALONE WHEN I SAY THAT
09:44:51 <elliott> I ALWAYS FOUND IT ODD HOW LOIS LANE WAS RENDERED INCAPABLE OF RECOGNIZING SUPERMAN
09:44:51 <elliott> SIMPLY FROM A PAIR OF GLASSES
09:44:51 <elliott> I WONDER IF ANYONE HAS EVER BEEN INSPIRED TO ROB A BANK WEARING GLASSES
09:44:51 <elliott> AND THEN SUCCESSFULLY ESCAPE BY THROWING AWAY THE GLASSES AND WALKING CASUALLY
09:45:11 <oklopol> http://pixelcomic.net/020.shtml
09:46:11 <elliott> oklopol: i love how it'd be a really shitty comic without the annotations making fun of it
09:47:49 <Sgeo_> elliott, btw, MSPA is more stable now
09:47:57 <oklopol> not as good as quimbox but anyway
09:48:04 <elliott> oklopol: less than three hundred comics for yr enjoyment
09:48:27 <elliott> the last strip is pretty much the best
09:48:49 <elliott> http://pixelcomic.net/044.shtml <-- oerjan
09:52:03 <elliott> oklopol: also what's quimbox
09:52:21 <oklopol> well you read the comic right?
09:53:10 <oklopol> because you said it was the worst comic in the world
09:53:49 <oklopol> anyway quim = pussy, assuming you live a few hundred years ago
09:54:25 <coppro> elliott: The Magic Spirit of rightness is not transitive
09:54:33 <oklopol> the punchline is going to be amazing.
09:55:22 -!- nooga has quit (Remote host closed the connection).
09:55:51 <itidus20> "I LOVE TO IMAGINE THAT WHEN A PIXEL STARTS ROLLING SOME SNOW
09:55:51 <itidus20> IT AUTOMATICALLY REMAINS SQUARE SHAPED"
09:56:30 -!- Somelauw has joined.
09:56:37 <oklopol> elliott: okay pretty quickly the annotations turn out crucial for the jokeness
09:56:50 <coppro> okay so my ridiculous gmail plan might actually work
09:57:09 -!- Somelauw has left.
09:57:16 <elliott> oklopol: he's like "oops this is totally unfunny, let me say funny things as an annotation"
09:57:53 <elliott> i love how even a comic about pixels gets significant art improvement
09:58:30 <oklopol> I GUESS SOME PIXELS BECOME CELEBRITIES FOR BEING IN SO MANY MOVIES
09:59:33 <itidus20> there is some controversy over whether pixels are infact rectangular
10:00:10 <itidus20> but thats to be expected i guess
10:00:44 <elliott> there's that thing about them ... not being
10:01:10 <elliott> HEY IDENTICAL PANELS THAT ARE DIFFERENTIATED SOLELY BY THE DIALOGUE
10:01:10 <elliott> I AM A TRUE COMIC ARTIST NOW
10:01:10 <elliott> contravarsial dinosaur comics dis
10:02:37 <elliott> I ENCOUNTERED THIS FIERCELY ORANGE CREATURE IN MY BACK YARD
10:02:37 <elliott> AND WHEN FETCHING MY DIGITAL CAMERA I OF COURSE FELT THE NEED TO RUN
10:02:38 <elliott> IN FEAR THAT THIS THING WOULD ESCAPE IN 8 WHOLE SECONDS
10:02:54 <Sgeo_> Bloody useless and trivial result: In an m x n section of space, there are no oscillators with period larger than 2^(m*n)
10:04:12 * Sgeo_ is referring to two-state CA with an I-forget-the-name neighborhood
10:05:00 <itidus20> conway's game of life neighborhood?
10:05:22 -!- Taneb has joined.
10:05:35 <Sgeo_> Although the neighborhood is irrelevant, come to think of it. well, hmm. What exotic neighborhood could break it?
10:05:38 <itidus20> have you proved it or merely sampled it?
10:05:38 <elliott> 092 - EXERTION OF POLAR OPPOSITION - 020922
10:05:38 <elliott> I AM ENJOYING THE FACT THAT I AM RAPIDLY BECOMING THE MASTER OF NOT MAKING SENSE
10:05:38 <elliott> IF ANYONE IS INTERESTED IN SUBSCRIBING TO AN APPRENTICESHIP FOR NOT MAKING SENSE
10:05:38 <elliott> PLEASE CONTACT ME VIA EMAIL OR AIM
10:05:42 <oklopol> but yeah if you have a configuration in {0, 1}^{Z^2} that has period vectors (0, m) and (n, 0), then necessarily the orbit of that configuration in your CA is eventually periodic with period less than or equal to 2^{mn}.
10:06:01 <oklopol> trivial to prove but it's actually used all the time
10:06:08 <Sgeo_> itidus20, I'm too lazy to sample
10:06:28 <Taneb> What are we talking about?
10:06:43 <oklopol> "<Sgeo_> Although the neighborhood is irrelevant, come to think of it. well, hmm. What exotic neighborhood could break it?" <<< even if the neighborhood and rule are different at every cell, the result follows, just as trivially
10:07:22 <oklopol> your state set has size 2^{mn} so a deterministic system will be come periodic with period less than or equal to that
10:07:47 <elliott> isn't that just "finite state machines cycle"
10:08:43 <Sgeo_> oklopol, actually, my statement is _slightly_ different from that. I mean a finite sized pattern on an infinite mostly empty grid. Same idea though, but applies only to patterns that don't grow past m*n
10:08:59 <Sgeo_> Um, did I state "doesn't grow past m*n"?
10:09:07 <oklopol> Sgeo_: but wrapping the rule around?
10:10:21 <elliott> THE MORAL OF THIS STORY IS THAT
10:10:21 <elliott> EVOLUTION REQUIRES A GIANT DRIP OF SWEAT
10:10:44 <elliott> GIVE ME ONE GOOD REASON WHY I SHOULD CONTINUE WITH MY LIFE
10:10:44 <elliott> AND BY LIFE I MEAN COMIC STRIP
10:11:09 <oklopol> this comic is way too smart for me
10:11:31 <oklopol> i cannot follow the conversations fast enough for this to even count as a comic
10:12:52 -!- augur has quit (Remote host closed the connection).
10:13:01 -!- augur has joined.
10:13:13 <cheater_> elliott, i'll give you no good reasons!
10:13:57 <elliott> THIS IS WHAT HAPPENS WHEN YOU GO TO COLLEGE
10:13:57 <elliott> WHAT YOU LEARN IN COLLEGE IS
10:13:58 <elliott> WHAT YOU TRULY VALUE IN LIFE
10:14:06 <elliott> oklopol: it's like poetry for the soul
10:14:32 <Sgeo_> I want to treat areas of the grid as usefully finite for X time but it is probably imposible, at least usefully
10:15:07 <elliott> oklopol: 123 is like oerjan but better
10:15:57 <elliott> "I WOULD HAVE BEEN BETTER OFF IF I WAS A HAMSTER RUNNING INSIDE MY HAMSTER WHEEL OF HAMSTER FORTUNE AND HAMSTER VIRTUE"
10:16:39 <Sgeo_> THE TOP OF THE LINE IN FLAT PANEL MONITORS USES PLASMA PIXELS
10:16:51 <Sgeo_> Derp misread that as it's used for the top row
10:17:04 <elliott> CALL NOW AND GET AN ADDITIONAL
10:17:04 <elliott> MINUTE OF YOUR LIFE STOLEN
10:17:25 <elliott> SUPERFLUOUS WEALTH SOMEHOW GIVES ONE
10:17:25 <elliott> THE ABILITY TO GROW AN ERRATIC MOUSTACHE
10:17:35 -!- FireFly has joined.
10:18:38 <Taneb> Get out of here as soon as you can
10:19:59 <FireFly> Why, is it illegal to idle?
10:20:08 <oklopol> "<Sgeo_> I want to treat areas of the grid as usefully finite for X time but it is probably imposible, at least usefully" <<< if this was still about CA, idgi, please explain
10:20:47 <elliott> FireFly: nope, Taneb seemed to think you were new
10:20:56 <itidus20> areas of the grid would seem to mean (m x n section of space)
10:21:09 <Taneb> Nah, I was trying to stop more people be drawn into this single conversation
10:21:15 <Taneb> Rather than the channel as a whole
10:21:43 <itidus20> usefully finite sounds like the pipe dream part
10:22:36 <oklopol> so once again let me mention that injective on finite configurations <==> surjective
10:23:27 <oklopol> valid in any dimension and on many many many other groups
10:26:51 <Sgeo_> I can never remember jectives
10:27:25 <oklopol> surjective = onto, injective = one-to-one; onto = all have preimage, one-to-one = different go to different in the mapping
10:27:57 <oklopol> sur is just french for onto
10:27:59 <Sgeo_> There's another one
10:28:10 <oklopol> well bijective but that's easy to remember
10:31:57 -!- elliott has quit (Remote host closed the connection).
10:32:41 -!- elliott has joined.
10:35:45 <oklopol> well yeah but elliott doesn't know that
10:38:08 <oklopol> really you only know what you've been told, or otherwise gathered from your perceptions, and also the stuff you've independently thought up in your head
10:38:40 <oklopol> and perhaps some other stuff that was there in the first place
10:38:57 <oklopol> plus i dunno some bonus maybe
10:45:00 <itidus20> or is that just what they want you to thin
10:53:04 <Sgeo_> I just proved to myself that there are countably infinite finite-sized oscillators, then realized that there are countably infinite finite-sized patterns
10:53:13 <Sgeo_> Ok, I think everyone's sick of my failures
10:56:29 <coppro> they are just unremarkable successes
10:57:27 -!- MigoMipo has joined.
10:58:07 <Sgeo_> I assume the actual algorithm for enumerating through all finite-sized oscillators is also unremarkable?
10:58:31 <elliott> As remarkable as the one for bit strings with a condition
11:00:49 <Sgeo_> I _just_ realized how to determine if a finite-sized pattern is a GoE or not... and I was talking about related stuff just hours ago.
11:01:11 <Sgeo_> (And yes, that's what I was looking for for quite a long period of time here)
11:06:42 <coppro> most of math is unremarkable
11:07:24 <coppro> Sgeo_: This sort of stuff is good. Keep at it, and tell me if you can prove or disprove the existence of oscillators with no entry points in finite grids of games of life
11:08:06 <Sgeo_> coppro, are you saying you know the answer?
11:08:48 <Sgeo_> Any such oscillators with no entry points would have to be a certain size, and have no internal gaps of a certain size.
11:09:20 <elliott> <itidus20> all of math is unremarkable
11:09:23 <elliott> so i take it you can't do any math?
11:09:45 <elliott> (joking, but with a point.)
11:10:09 <itidus20> i mean, the answers are only remarkable until some other rule comes along and generalizes them
11:11:53 <Sgeo_> Let's restrict myself to an n*n grid.
11:12:08 <itidus20> however, surely there are reasons for math beyond our understanding
11:12:32 <coppro> the basic foundations of abstract algebra are utterly boring
11:12:38 <coppro> but the wondrous things you can do with it are not
11:13:54 <Sgeo_> n*n grid, (n-5) by (n-5) patterns all have GoEs. But some of those patterns may oscillate into each other, so that there is 1 GoE for each... wait, no!
11:14:48 <Sgeo_> Even in the case of oscillators, there are multiple GoEs for each phrase of the oscillator (as long as each phrase is at the particular size or smaller)
11:14:57 <itidus20> http://www.youtube.com/watch?v=svXeDHE6tBU
11:15:09 <Sgeo_> Because you could put that spare dot in several locations
11:15:19 <Sgeo_> You can even do it for n by n-5
11:15:55 <oklopol> most of math is unremarked, but quite markable.
11:16:15 <coppro> Here is what I have so far: Any pattern with a 5x5 space admits an eden to its next generation
11:16:18 <Sgeo_> This puts a rather high lower bound on number of GoEs: 2^[n(n-5)]
11:16:50 <coppro> Since you can stick a dot in the center of that space without affecting the result (which is, in CA parlance, to say that they are twins)
11:17:48 <Sgeo_> Well, that greatly increases the lower bound
11:18:19 <Sgeo_> Say that | | are symbols for repeat
11:18:26 <Taneb> I've been holding a sword
11:18:27 <Sgeo_> A would be an entry point
11:18:34 <oklopol> "<coppro> the basic foundations of abstract algebra are utterly boring" <<< no they are not!
11:18:58 <coppro> oklopol: Axioms are boring
11:19:02 <coppro> things that you do with axioms are cool
11:19:17 <oklopol> oh, i thought you meant things like the homomorphism theorem and stuff
11:19:32 <coppro> Sgeo_: Thus to prove the existence of an oscillator with no eden predecessors, you must have an oscillator that never contains a five-by-five hole
11:19:44 <coppro> this is necessary although not sufficient
11:19:49 <itidus20> it's "nothing new under the sun" but with numbers.
11:20:24 <Sgeo_> coppro, ooh, I think, on a torus, "no 5x5 or larger hole" also forces it to be the necessary size
11:20:44 <oklopol> obviously there cannot be an oscillator that's a GoE
11:20:50 <oklopol> or what do you mean by oscillator?
11:21:08 <oklopol> and so i take entry point = preimage
11:21:31 <coppro> oklopol: We're trying to reason about the existence of an oscillator with no eden that will result in the oscillator through repeated evolution
11:21:52 <Sgeo_> On a finite grid such as a torus
11:21:58 <oklopol> well you do know you will never find a GoE for GoL?
11:22:04 <coppro> we're working on toroids right now
11:22:54 <oklopol> well dunno maybe you are really smart or have a smart program or can read wp
11:22:57 <coppro> There's an 11x11 known orphan
11:23:09 <oklopol> right, if you start from that, then you'll find an orphan easily
11:23:24 <oklopol> but you would never find that yourself
11:23:24 <Sgeo_> oklopol, even in infinite grids, they exist. And ais523 and I proved that for any pattern on a finite grid that has a 5x5 or larger hole (coppro, I'm using this formulation now), there's a GoE that results in it
11:23:46 <coppro> oklopol: no, but someone else found it for me
11:24:22 <oklopol> results in it? you mean evolves into it? no that's obviously false
11:25:02 <oklopol> well unless 0 iterations of the rule are allowed as well
11:25:19 <coppro> yeah, this is accepting 0 iterations
11:25:25 <coppro> actually that one holds in any finite space
11:25:51 <coppro> but the one about oscillators might be different between finite limited space, and finite toroidal space
11:26:01 <coppro> CAs exist without edens
11:26:26 <coppro> anyway, back to the subject at hand
11:26:48 <oklopol> "<Sgeo_> oklopol, even in infinite grids, they exist. And ais523 and I proved that for any pattern on a finite grid that has a 5x5 or larger hole (coppro, I'm using this formulation now), there's a GoE that results in it" <<< how did you prove this?
11:27:01 <Sgeo_> oklopol, read logs
11:27:01 <oklopol> and this is for periodic configs, that is, toroidal?
11:27:20 <oklopol> okay i have a counterexample
11:27:22 <Sgeo_> oklopol, yes. Or, might work for other finite as well. Certainly other finite that wraps
11:27:39 <oklopol> no wait, maybe not, hmmhmm
11:27:49 <Sgeo_> Either today or yesterday
11:27:55 <Sgeo_> I was explaining to coppro
11:28:01 <coppro> oklopol: the proof is fairly straightforwad
11:28:04 <Sgeo_> Timezones scare me
11:28:15 <coppro> oklopol: Just add a dot in the 5x5 hole
11:29:26 <Sgeo_> Work backwards. You're not in an oscillator, so all possible patterns going backwards must eventually be a GoE.
11:29:54 <coppro> oklopol: More lucidly this time
11:30:41 <oklopol> and why aren't you in an oscillator?
11:31:06 <coppro> If you aren't, you already must have a finite number of predecessors since there are only finite states to work from and repeated application will never get you back to an earlier one
11:32:05 <oklopol> well obviously, if you restrict to configs with periods m and n; why aren't you in an oscillator?
11:32:39 <coppro> Let me restate the proof better
11:32:51 <Sgeo_> There's a really simple answer for that that is in my head that just won't come out
11:32:54 <oklopol> if you restate the trivial part, i will slap you
11:32:58 <Sgeo_> Unless my thinking is muddled
11:34:36 <Sgeo_> If you keep going backwards, and you're in an oscillator somehow, then you get...now I'm wondering if this proof only works for starting from oscillators... but if it's not an oscillator then it's a preimage to one
11:34:37 <oklopol> really i'd like to hear your definition of hole
11:34:54 <oklopol> like a 5x5 empty space you cannot move out of, using only white cells?
11:35:18 <Sgeo_> 5x5 dead cells surrounded by anything
11:35:28 <oklopol> i mean obviously otherwise you can just take a 5x5 empty space and surround it with small oscillators to find something with infinitely many preimages
11:35:36 <coppro> Given some state, an infinite number of applications must eventually oscillate due to finite state space. If the repeated applications do not arrive at the original, you are not in an oscillator and must have finitely many predecessors. If you are in an oscillator, make a cell live in the center of a 5x5 square of dead cells. This pattern is a twin to yours, so they have the same successor. But the oscillator cannot reach this twin through re
11:35:40 <oklopol> well then it's obviously false
11:36:13 <coppro> since the state wiht the added live cell is a predecessor as its successor is a part of the same oscillator
11:38:13 <oklopol> either the original thing with a 3x3 hole or the one with an added dot must not be an oscillator, since they have the same image, and therefore one of them has an n'th preimage that's a goe
11:38:33 <oklopol> does the size 5x5 give you that in fact it's the original one?
11:38:54 <coppro> 5x5 is required to ensure that the added cell doesn't interact with anything
11:40:07 <coppro> and now I want to tackle the harder problem :D
11:40:39 <Sgeo_> Can we count how many patterns there are with 5x5 or larger holes?
11:40:54 <Sgeo_> Because that's the lower bound on GoEs
11:40:58 <oklopol> anyway it's usually the one with the dot that has a goe nth preimage, since you can, as i said, just have small oscillators and a 5x5 hole in between them
11:42:31 <oklopol> anyway if that 11x11 thingie can be made to collapse into the all-0 configuration, then all finite configs have a goe preimage (although it might not fit in your favorite torus)
11:42:39 <oklopol> coppro: what's the harder problem?
11:43:08 <coppro> oklopol: Do all finite configs have a geo preimage?
11:43:30 <oklopol> a finite goe preimage, on an infinite grid? or torus again
11:43:52 <coppro> If not, which sizes of torii admit states with no goe preimage
11:45:12 <oklopol> goe is too complicated for this to be at all interesting really
11:45:34 <coppro> too complicated to be interesting? what?
11:45:48 <oklopol> well mathematically interesting
11:45:51 <oklopol> i dunno where you get your kicks
11:47:31 <coppro> now I'm pretty sure that anything smaller than 3x3 admits nothing other than the trivial oscillator
11:47:36 <oklopol> "<coppro> oklopol: Do all finite configs have a geo preimage?" <<< well for this particular question, actually the answer is trivially "yes", but questions that actually depend on gol, kind of hard
11:47:59 <oklopol> wait what the fuck am i saying :D
11:48:00 <Sgeo_> oklopol, wait, it is?
11:48:08 <Sgeo_> oklopol, describe please
11:48:23 <oklopol> it's no trivially true for all non-surjectives
11:50:08 <coppro> From experimetnation, it appears that 3x3 admits only period-1 oscillators and patterns that produce the trivial oscillator in one or two generations, and if by two, the intermediate state is always the all-on state
11:50:18 <coppro> not very far, I'm playing around manually
11:50:29 <coppro> I may write a script tomorrow to do serious checking
11:50:59 <Sgeo_> We're actually testing stuff? That's boring :/
11:51:13 <oklopol> well there's no way to do this any other way
11:51:59 <coppro> experiment for the small case
11:52:00 <oklopol> you can probably prove it for all large enough patterns by looking at the images of the goe on the wiki
11:52:03 <Sgeo_> If we can prove that the lower bound on GoEs = the number of patterns without 5x5 holes
11:52:14 <coppro> oklopol: That's hardly sufficient
11:52:29 <Sgeo_> How many patterns are there without 5x5 holes?
11:52:57 <coppro> I suspect that the answer is constant beyond a certain size
11:53:06 <oklopol> coppro: it might be. if it's not, what else can you do really.
11:53:15 <coppro> oklopol: See if there's a pattern
11:53:32 <coppro> what if it's only prime by prime tori?
11:53:36 <Sgeo_> Is there an upper bound on number of GoEs?
11:53:44 <coppro> Sgeo_: yes. The number of states
11:53:58 <oklopol> if you take a random problem, you will find a random answer. it's not the prime by prime tori.
11:54:25 <Sgeo_> Actually, number of patterns without 5x5 holes is the upper bound
11:54:55 <Sgeo_> The question is equivalent to: Is the number of GoEs = to the upper bound? If not, then there's a pattern without a 5x5 hole that is not a GoE
11:55:15 <coppro> Sgeo_: that makes no sense
11:55:36 <coppro> an upper bound is an estimation; you need some criterion for the upper bound
11:55:42 <oklopol> making conjectures is a great way to progress
11:55:52 <oklopol> but that particular one is obviously false
11:55:53 <Sgeo_> Ok, replace "upper bound" with "number of patterns without 5x5 holes"
11:56:05 <coppro> in which case I go with oklopol
11:56:15 <coppro> so fun fact: any 3-cell pattern on a 3x3 torus immediately fills the entire torus and dies
11:56:38 <oklopol> every cell sees every cell so obviously
11:57:06 <oklopol> only depends on the amount of live cells
11:57:17 <Sgeo_> Come on, someone tell me a way to count patterns without 5x5 holes
11:57:21 <oklopol> whether it's instantly everyone alive, or instantly everyone dead
11:57:21 <Sgeo_> There has to be an easy way
11:57:37 <coppro> oklopol: right, thanks for beating sense into me :D
11:58:09 <coppro> Sgeo_: I could do it in a few minutes, but it doesn't seem worth it
11:58:37 <coppro> it's just a counting problem
11:59:10 <Sgeo_> Yes, and if the lower bound on GoEs ever equals it for some sized tori, we'll have some answers
11:59:23 <coppro> that seems quite unlikely
12:00:12 <coppro> once you're above 16x11 then you definitely won't hit that bound
12:00:17 <coppro> since there is a known 11x11 orhpan
12:01:21 <oklopol> also i still don't get how you know 5x5 hole => goe nth preimage, all we've established is either that pattern or the one with a dot in the middle has one, how did you do the final step?
12:01:38 <oklopol> i mean there are patterns with a 5x5 hole that are in an oscillator
12:02:16 <itidus20> coppro: will every 3x3 torus eventually die?
12:02:25 <oklopol> itidus20: in at most 2 steps
12:02:27 <coppro> itidus20: or be stable
12:02:44 <Sgeo_> oklopol, if it's in an oscillator, then that cell will die, and the oscillator will eventually reach the same position except without the dot
12:02:52 <Sgeo_> Or am I misunderstanding your question?
12:02:58 * oklopol tries to remember the rule
12:03:24 <coppro> oklopol: Suppose that one of the two has no goe nth premiage. Then it must be in an oscillator as the state space is finite. But that means its successor is a predecessor, and its successor has the other twin as an nth preimage and hence has a geo nth preimage; contradiction
12:03:26 <oklopol> right the rule is not symmetric w.r.t. live and dead cells, in that case 3x3 is not quite as trivial as i said
12:03:38 <coppro> still pretty trivial though
12:03:47 <coppro> rule is 2 or 3 to stay alive, 3 to birth
12:04:22 <oklopol> it's not a contradiction that the config with a 5x5 hole is in an oscillator
12:04:47 <Sgeo_> oklopol, did I misunderstand your question?
12:04:56 <Sgeo_> Suppose it's a p2 oscillator
12:05:01 <coppro> But it has to have a goe nth preimage because its successor does, and its successor is itself an nth preimage
12:05:06 <coppro> since it's in n oscillator
12:05:09 <Sgeo_> Pattern in phase 1 + dot has goe primage.
12:05:23 <Sgeo_> Then, phase 2 + no dot has goe preimage
12:05:31 <Sgeo_> Then phase 1 + no dot has goe preimage
12:07:09 <oklopol> "<coppro> But it has to have a goe nth preimage because its successor does" <<< are you claiming this is a general truth for CA?
12:07:53 <Sgeo_> oklopol, what CA is it not true for? Nondeterministic?
12:08:03 <Sgeo_> Are there nondeterministic CAs?
12:08:30 <oklopol> well i don't see why that's true
12:09:04 <Sgeo_> Oh wait, I misread the quote as "predecessor"
12:09:09 <coppro> oklopol: Okay, let me try this again from the top. Given a state S with a 5x5 hole, put a dot in that hole and call it H.
12:09:19 <oklopol> why don't you just explain the part i don't get
12:09:25 <Sgeo_> oklopol, I'm trying to
12:09:31 <Sgeo_> Sgeo_> Pattern in phase 1 + dot has goe primage.
12:09:31 <Sgeo_> <Sgeo_> Then, phase 2 + no dot has goe preimage
12:09:31 <Sgeo_> <Sgeo_> Then phase 1 + no dot has goe preimage
12:09:32 <coppro> because I'm not quite sure what part that is
12:09:45 <Sgeo_> Maybe I'm not getting what part you're not getting?
12:09:48 <coppro> Both S and H cannot be in the same oscillator as the generation function is bijective within an oscillator and G(S) = G(H)
12:10:06 <coppro> and they cannot be in different oscillators for the same reason
12:10:13 <coppro> So one is not in an oscillator
12:12:14 <Sgeo_> elliott, do Game of Life stuff with us
12:12:14 <coppro> Now I want to write a script which will enumerate every state of a finite torus GoL modulo symmetry and create a graph of the results
12:12:23 <coppro> but I think sleep must come first
12:13:34 <oklopol> if you have two preimages, then you have a goe nth preimage
12:13:53 <coppro> in finite state space, anyway
12:14:28 <coppro> why do I suddenly feel like this is going to become category theory
12:16:05 <itidus20> a good analogy can apply to anything
12:16:40 <oklopol> also if one of your images has a goe nth preimage, then you have one as well
12:17:29 <Sgeo_> I'm going to need to go out soon
12:17:40 <Sgeo_> Chicken sandwich for breakfast :D
12:17:52 -!- Taneb has quit (Ping timeout: 252 seconds).
12:18:20 <elliott> Sgeo_: omg how amazing D::DDDD
12:18:32 <oklopol> that's an interesting lemma for functions acting on a finite space, certainly, nothing to do with ca tho
12:18:52 <coppro> 3x3 admits oscillators with no goe nth preimage, as does 1xn with n>=3
12:19:39 <Sgeo_> With no goe nth preimage, or no goe nth preimage provable with a 5x5 hole?
12:20:06 <Sgeo_> Or, if you can prove there's only one preimage, that would do it
12:20:18 <oklopol> sheesh, stop obsessing about 5x5 holes pervert
12:20:39 <coppro> hmm... actually, odd may admit a seriously wacky oscillator
12:21:11 <coppro> so I am looking at a video with the heading "morphism category theory" and I'm getting basic knot theory explained
12:21:53 <coppro> ok so 1xn with odd n admits oscillators
12:22:12 <coppro> would be good for the patterns of random lights that repeat in weird cycles in scifi schows
12:22:42 <coppro> they each represent a symmetric 2-morphism
12:22:58 <oklopol> well the only way not to admit an oscillator is to have everything go to zero
12:23:23 <coppro> non-goe predecessor oscillator
12:23:52 <oklopol> i don't think we have a name for this concept in math
12:24:07 <coppro> k I'm calling them stranded oscillators
12:24:12 <Sgeo_> oklopol, I consider everything at 0 to be a period 1 oscillator
12:24:33 <oklopol> there's a name for ones which have arbitrarily long preimage chains, such points are said to belong to the limit set of the CA
12:24:33 <coppro> also the 1x11 torus is weird
12:24:33 <Sgeo_> Is that an abuse of terminology?
12:25:01 <coppro> oklopol: ah ok, that works then
12:25:12 <oklopol> Sgeo_: that's the terminology i'd use, i just assumed coppro meant there has to be a 1 since he said it admits one
12:25:14 <coppro> actually wait, no it doesn't
12:25:31 <coppro> I agree with that terminology
12:25:40 <oklopol> if every point goes to the all-0 config for some state 0, the CA is said to be nilpotent
12:25:49 <oklopol> (then there exists a k such that all points to go all-0 in k steps)
12:25:49 <Sgeo_> symmetric 2-morphism?
12:26:55 <coppro> Sgeo_: talking about the video
12:27:39 <coppro> 1x7 has a weird spaceship oscillator
12:28:30 <coppro> actually, how about a xenophobic oscillator
12:28:51 <oklopol> does it not like other kinds of oscillators
12:29:04 <coppro> it doesn't like any state except its own members
12:29:10 <coppro> exclusive might work too
12:29:27 -!- Taneb has joined.
12:29:29 <Sgeo_> What do you mean by that?
12:29:46 -!- Taneb has left.
12:29:57 -!- Taneb has joined.
12:30:15 <coppro> Sgeo_: Just trying to name these oscillators with no predecessors
12:30:45 <coppro> I suppose a closed oscillator would probably be best
12:31:08 <oklopol> well you have a set that cannot be entered, kind of like a fortress. so call each config in there a *drumroll* brick
12:31:20 <Sgeo_> How did you prove they exist for the 1xn and ... the other thing you proved?
12:31:59 <Sgeo_> I mean, experimentally, but how do you demonstrate they have no other preimages?
12:32:10 <oklopol> closed is good, in fact it's a closed set in the topology given by one-way orbits
12:32:39 <coppro> 1xn for even n I'm not 100% sure about but could probably sketch up a proof
12:32:55 <oklopol> topology given by one-way orbits being that a set is open if it's closed under the map
12:33:02 <coppro> any zebra stripe pattern is stable and I'm pretty sure also has no other predecessors
12:33:32 <oklopol> if you can go through all the configs, it's easy enough to enumerate stranded ones
12:33:48 <coppro> not sure if I prefer stranded or closed
12:34:07 <coppro> closed is more conventional but stranded sounds more like the concept
12:34:15 <coppro> Sgeo_: 3x3 is straightforward
12:34:47 <coppro> Sgeo_: in 3x3 all configurations with exactly 3 cells alive are stable and all others die out in at most 2 generations
12:35:28 <coppro> oklopol: yeah, at some point I will write a script to enumerate these
12:35:59 <oklopol> enumerate ones that belong to a closed oscillator?
12:36:49 <coppro> yeah, at least for small tori
12:37:15 <oklopol> remember to use the fact you only need to look at the first preimages, and then enumerate the whole orbit if you have multiple
12:37:22 <oklopol> otherwise that's gonna take some time
12:37:52 <Sgeo_> If you have multiple preimages for a state, then it's not a closed/stranded oscillator
12:38:30 <oklopol> no it's not, point is you never need to look further than that because a point is in a closed oscillator iff it has a preimage not in a closed oscillator
12:38:48 <coppro> Sgeo_: sketch of prrof for 1xn in my head
12:40:18 <coppro> 1x9 appears to really really like a single oscillator
12:40:39 <coppro> have yet to find a pattern other than all-off and all-on that doesn't result in i
12:41:22 <coppro> (another problem: Is there a general solution to the number of distinct oscillators on an mxn torus?
12:42:20 <coppro> oklopol: nope there isn't one or nope there can't be one?
12:42:37 <oklopol> nope there can't be one, assuming the way you can implement a tm in gol is in any way sensible
12:42:55 -!- cheater_ has quit (Ping timeout: 255 seconds).
12:43:21 <Sgeo_> First: You can't impement a TM on a torus
12:43:22 -!- cheater_ has joined.
12:43:44 <oklopol> it grows forever even if its tape doesn't?
12:43:49 <Sgeo_> oklopol, TM implies infinite storage
12:43:54 <Sgeo_> A torus is not infinite
12:44:19 <oklopol> but does the gol implementation need expanding space for constant storage
12:44:21 <Sgeo_> Erm, that's what I usually mean when I say torus, anyway
12:45:00 <oklopol> if it doesn't, there can't be a general solution to the number of distinct oscillators
12:45:04 <oklopol> at least not in the form of a tm
12:45:25 <Sgeo_> You need expanding space for expanding storage, I'd assume
12:45:37 <oklopol> obviously, that's not what i asked
12:45:41 <Sgeo_> And you can't forbid expanding storage without forbidding TM
12:46:16 <Sgeo_> Surely, a counterexample, then: Why can't you simply enumerate every mxn pattern, and count the oscillators?
12:46:42 <oklopol> err sure you can do that :D
12:46:57 <oklopol> was that the fact you can implement a tm
12:47:04 <oklopol> means there can't be any sort of nice formula
12:47:11 <oklopol> but not in any rigorous sense
12:47:16 <Sgeo_> What is a "nice formula"?
12:47:21 <Sgeo_> "Nice formula" has no meaning
12:47:31 <oklopol> that's why i said "not in any rigorous sense"
12:47:42 <oklopol> i then forgot that this was all i meant and claimed you can't even calculate them
12:48:18 <oklopol> which is not true since given m and n, you can certainly just count the oscillators
12:48:48 <oklopol> but for instance this is certainly p-complete
12:48:54 <oklopol> because you can implement tm's
12:48:58 <Sgeo_> So, hm. I'm still not quite sure I get what finite state automa have to do with this
12:49:03 <Sgeo_> And I'm refusing to call it TM
12:51:52 <oklopol> well the point is you can draw an initial part of the infinite tape with a tm using logspace, this is all you usually need for p-hardness results
12:54:48 <oklopol> and what i mean is that whether a single config is in an oscillator should be p-hard, since you can reverse your computation and start over with yes-instances, and go to all-0 or something for no-instances
12:55:34 <Sgeo_> Sorry, I'm a bit confused
12:56:06 <oklopol> well to, hopefully, unconfuse you, you are certainly right in that you can just count oscillators
12:56:07 <Sgeo_> Um, is doing several GoL generations and comparing generally considered p-hard? I'm a bit lost with complexity classes.
12:56:49 <oklopol> what i'm saying is there can't, intuitively, be a nice formula for this, because there never is for this kind of things.
12:58:06 <oklopol> basically just means you can draw a finite part of a turing machine config in the state
12:58:14 <Sgeo_> Is running GoL for 2^mn generations not intuitively a nice formula?
12:58:33 <oklopol> it's a nice algo, i wouldn't call it a formula
12:59:21 <elliott> oklopol: is the algo "for i in ... setp gol"
12:59:44 <oklopol> i wouldn't call it a formula
12:59:53 <oklopol> i would call m^n + n^m a formula
13:00:28 <oklopol> something that's actually some kind of solution to the problem
13:00:42 <oklopol> that you surely cannot have, because you can implement a tm.
13:00:51 <Sgeo_> I guess I know what nice means, kind of. We would like a nice means of determining the existence of stranded oscillators, without brute-forcing
13:01:20 <Sgeo_> oklopol, but there must be a formal definition of what it is that you cannot have?
13:01:38 <itidus20> i just studied the 2x2 toroidal by hand.. because formulas for these things are simply over my head.
13:01:39 <oklopol> Sgeo_: i'm not aware of one, i suppose that would be complexity classes
13:01:50 <Sgeo_> itidus20, get Golly
13:01:59 <oklopol> but all i'm saying is tm ==> all hope is gone, mathematically
13:02:05 <Sgeo_> Although I don't even have Golly open right now
13:02:11 -!- MigoMipo has quit (Ping timeout: 240 seconds).
13:02:32 <Sgeo_> oklopol, tbh, that sounds more like a rule of thumb. And again, you can't have TM on a finite torus
13:02:50 <oklopol> yes, a rule of thumb that's always true
13:02:57 <oklopol> kind of like the church-turing thesis
13:03:04 <itidus20> 12 out of 16 died... and the other 4 turned into fascinating "up" "down" "left" "right" shapes
13:03:23 <oklopol> you can have a tm on a finite torus, it will just explode if it tries to use too much space
13:03:52 <itidus20> by turned into i should say "remained as"
13:06:03 <Sgeo_> Hmm, there's no "nice" way to see the result of a TM without running it... but all that really equates into is there's no way to see the result of a TM without the thing computing the result, whether by simulating the TM or not, definitely not halting
13:06:34 <Sgeo_> Not really sure how to apply that here.
13:06:34 -!- BeholdMyGlory has joined.
13:07:46 <oklopol> you apply it by noting you cannot know whether a tm drawn on a config is in an oscillator without running it, which means the only possible formula is brute-force.
13:08:11 <oklopol> this is not a formal proof, but only an ass would not accept it
13:09:16 <Sgeo_> I'm just going to mentally s/tm/fsm/ what you said and say ok
13:09:20 <oklopol> point is, you cannot take a random problem and expect it to be mathematically interesting, the solution will be just as random
13:09:54 <oklopol> well if you want to be a fucking outstanding retard, go ahead
13:11:00 <oklopol> anyway if you substitute fsm where i say tm, that really means nothing
13:11:10 <Sgeo_> I can solve the halting problem for your "TM" on the torus
13:11:13 <oklopol> the point is it's a certain kind of fsm, one that has a tape.
13:11:21 <itidus20> I always try to direct everything i think about onto gaming. I figure that to give a game depth at its core then some mathematics is required.
13:11:50 <itidus20> Then the trick becomes how to turn a mathematical problem into a fun game.
13:12:13 <oklopol> surprise us all and be the first
13:12:28 <Sgeo_> oklopol, hmm? Are you talking to me or itidus20?
13:13:01 <elliott> <Sgeo_> I can solve the halting problem for your "TM" on the torus
13:13:30 <oklopol> elliott: is the joke that you're missing the point as badly as Sgeo_?
13:13:56 <elliott> oklopol: the joke is all the words
13:14:03 <elliott> i only read that line anyway
13:14:10 <elliott> i just kind of assumed anything Sgeo_ said would be something like that
13:14:15 <Sgeo_> oklopol, here's the solution to the halting problem: Run it. If it crashes, or otherwise doesn't return to the initial state after 2^mn, it halts, otherwise, it doesn't.
13:14:34 <oklopol> well he was mostly missing the point and expressing it in random ways
13:16:30 <oklopol> since last night i realized all lattices with continuous shift-commuting operations over S^Z can be recoded into pointwise lattices
13:17:12 <oklopol> that is, you have a conjugate subshift and the lattice operations only look at the ith symbols of their arguments to determine the ith symbol of the image
13:18:05 <Sgeo_> elliott, oklopol seems to think that turing-machines can exist in finite space. And just to be clear on the idea of finite tape possibly being TM vs UTM, he mindboggled when I said that I could solve the halting problem for his TM (although maybe he thought I meant with stuff _on_ the machine, which is impossible)
13:18:47 <elliott> that wacky oklopol with his strange uncommon mathematical beliefs
13:19:14 <Sgeo_> elliott, if I'm missing something, please tell me
13:19:27 <oklopol> mathematics is my religion
13:19:42 <oklopol> i don't think i ever actually proved anything
13:20:00 <itidus20> for actual games one thing that tends to be necessary is interfacing the math models with non-math things.
13:20:56 <itidus20> whether the interfaced things is actually non mathematic is questionable though
13:21:21 <oklopol> Sgeo_: sorry i was talking to itidus20, i have you on ignore
13:21:31 <oklopol> i did not mindboggle at you claiming that trivial thing
13:21:58 <itidus20> sorry to everyone that i am always offtopic
13:22:55 <itidus20> well so, its a bit like what the chinese did with yin and yang, and trigrams. applying meanings.
13:23:00 -!- MigoMipo has joined.
13:23:59 <itidus20> and so 00=north, 01=east, 10 = west, 11=south
13:24:24 <elliott> congratulations, you discovered binary
13:25:03 <itidus20> but the pure mathematicians never actually apply it to anything.. the "interfacing"
13:25:10 <itidus20> i guess its horses for courses
13:26:09 <Sgeo_> oklopol, is our disagreement here just a matter of terminology?
13:26:17 <itidus20> i am sure that if i did that better i could say north + east = northeast
13:28:00 <Sgeo_> itidus20, easy way for the future is to assign 1 bit to 1 ... bit
13:28:14 <Sgeo_> So north/south gets 1s place, east/west gets 2s place, or something like that
13:28:26 <Sgeo_> Although that doesn't... quite... hm
13:28:33 <Sgeo_> Kind of assumes defaults
13:29:42 <itidus20> ah.. it was right how i had it.. no doubt
13:30:40 <itidus20> ahh fuck it. time for me to take a break.
13:30:40 -!- MSleep has changed nick to MDude.
13:30:44 <Sgeo_> Oh, it trivially doesn't work
13:31:13 <Sgeo_> 8 possible states, so you need 3 bits
13:31:28 <itidus20> 00 + 01 = 01 .. that creates a problem
13:32:53 <fizzie> <elliott> ais523: yes, fizzie thinks this is the nineties, and does things like use bitshifts instead of division <-- I think the most bitshifts are where there are negative numbers, where bitshift != round-towards-zero division. (Though it admittely uglily assumes sign-extending arithmetic shift for signed quantities.)
13:32:54 <Sgeo_> I'm trying to think of a non-ugly way to do it in 3 bits now.
13:33:49 <Sgeo_> A NORTH flag, a WEST flag, and one more flag
13:33:52 <itidus20> applying meanings to numbers is approximately as fun as processing the numbers
13:34:39 <Sgeo_> Oh, duh. If I only had two flags, so NORTH or not NORTH (south), and WEST or not WEST (east), then you only get diagonal directions
13:35:41 <itidus20> perhaps it doesn't work out neatly if using addition
13:36:24 <Sgeo_> Trivial ordering, probably ugly though, let's see what happens: 000 = N, 001 = NE, 010 = E, 011 = SE, 100 = S, 101 = SW, 110 = W, 111 = NW
13:36:38 <Sgeo_> I'm honestly thinking ternary at this point
13:36:57 <Sgeo_> You can trivially do it in two trits
13:37:30 <Sgeo_> Um, with space left over. Oh, for neutral
13:37:45 <elliott> <elliott> just do a bitmask duh
13:38:11 <itidus20> seems space left over is the price for being able to add them
13:38:16 <Sgeo_> elliott, you'd need NORTH, NOT NORTH, and SOUTH
13:38:35 <Sgeo_> 0+ is North, 0- is South
13:38:47 <itidus20> ah.. so its a 2s compliment thing?
13:39:01 <Sgeo_> +0 is West, -0 is East
13:39:16 <Sgeo_> itidus20, no, it's base 3 instead of base 2, but instead of 0, 1, and 2, we go -1, 0, and 1
13:39:41 <Sgeo_> So, +0 + 0+ is North + West = NorthWest
13:39:53 <itidus20> probably the netral is a necessary placeholder for the addition
13:40:20 <Sgeo_> itidus20, it's because naturally there isn't on or off, there's forward, backwards, and neither
13:40:22 -!- Taneb has quit (Ping timeout: 252 seconds).
13:40:55 <Sgeo_> If you're going north, than what would east/west be? Neither.
13:41:06 <Sgeo_> If you're going west, north/south must be Neither
13:41:15 <itidus20> so it's to account for the uh.. center point
13:42:44 <Sgeo_> And these balanced ternary are just numbers
13:43:18 <Sgeo_> -- = -1*3^1 + -1*3^0 = -3 + -1 = -4
13:43:56 <Sgeo_> -0 = -3, -+ = -2, 0- = -1, 00 = 0, 0+ = 1, +- = 2, +0 = 3, ++ = 4
13:44:50 -!- oklopollen has joined.
13:45:15 <Sgeo_> And with bitmasks, usually you use bitwise or instead of addition, although addition works as long as you're careful that + and - only combine with 0s. Not sure what you use with trits
13:45:39 <Sgeo_> Erm, sorry, that "as long as" is for trits, not bits
13:46:05 <oklopollen> Sgeo_: to your last question: probably.
13:46:36 -!- itidus20 has changed nick to itidus20|afk.
13:46:53 <Sgeo_> Ok, so no more arguments about terminology?
13:47:36 <oklopollen> but no makeup sex since i have to work
13:48:28 <oklopollen> actually i just have to copypaste some stuff and generalize it :-DSASD
13:48:34 -!- Lymee has joined.
14:09:48 -!- pikhq_ has quit (Ping timeout: 240 seconds).
14:09:51 -!- pikhq has joined.
14:12:14 -!- CakeProphet has joined.
14:40:17 -!- oklopollen has quit (Quit: Page closed).
14:41:07 -!- Taneb has joined.
14:48:22 <Sgeo_> Believe it or not, etc. etc. etc.
15:02:28 <CakeProphet> I'd rather not think about the details so, etc, etc.
15:07:41 <CakeProphet> I don't know if you knew this or not, but shit gets pretty tired.
15:07:46 <CakeProphet> not a lot of energy in those motherfuckers.
15:24:36 <oklopol> i'm also pretty tired, worked for almost an hour
15:25:36 -!- Taneb has quit (Ping timeout: 252 seconds).
16:09:57 <Elizacat> fizzie, I'm Elizacat, and I've taken interest in mcmap :3
16:10:12 <Elizacat> fizzie, I've never gotten around to poking you because I'm shy as hell. But hello!
16:11:06 <fizzie> Well, um, hello, I guess. (I never really know the correct responses.)
16:11:06 <Elizacat> fizzie, I'm interested in helping! I'm told you guys have a private channel for this, if you want to give me an inv I'd be much obliged, but you don't have to if you don't want
16:11:22 <Elizacat> I'm not an extrovert even online, but one of us had to initiate it
16:11:30 <Elizacat> and well, you don't know who I am
16:11:44 <Elizacat> the onus would be on me for that wouldn't it
16:12:18 <Elizacat> fizzie, I'm normally pretty nice if not rather unserious :p
16:12:44 <Elizacat> internet is serious business CakeProphet
16:13:01 <CakeProphet> dude I'm so good I don't even have to I've already won.
16:13:07 <fizzie> Well, there's a "private" channel for Minecraft-related stuff so that it doesn't clobber things here, but I don't think it's really all that private, it's just a "-minecraft" suffix and I'd be surprised if it hasn't been mentioned publicly here.
16:13:40 <CakeProphet> yeah I've known of it, but I don't like minecraft.
16:13:58 * Elizacat encases CakeProphet in a bedrock house and pours lava
16:14:09 <Elizacat> "this is why Id on't like it..."
16:14:15 <CakeProphet> my RL friend made a castle that rebuilds itself.
16:14:30 <Elizacat> Vorpal and I built a self-regenerating house <3
16:15:19 <oklopol> please tell me Vorpal isn't your boyfriend
16:15:27 <oklopol> i might have to kill myself
16:15:41 <CakeProphet> but they build self-regenerating houses in minecraft together it would be so adorable
16:16:33 <oklopol> i once asked a girl to build stuff with me in mc but she said we were moving too fast
16:18:17 <CakeProphet> I think there is probably a reason she is my ex.
16:18:54 <elliott> Because she has taste in languages?
16:19:09 <oklopol> i tried to teach my ex to program a few times but she just got really mad because she didn't get it
16:19:19 <oklopol> or didn't get it quickly enough
16:19:45 <oklopol> Elizacat: could you please tell me that
16:19:53 <oklopol> i'm scared by your silence
16:20:12 <Vorpal> <oklopol> please tell me Vorpal isn't your boyfriend <-- lol, no I'm not.
16:20:33 <Vorpal> oklopol, just happen to play on the same minecraft server.
16:30:04 -!- oklopol has quit (Read error: Connection reset by peer).
16:34:24 -!- monqy has joined.
16:42:11 -!- elliott_ has joined.
16:45:41 -!- elliott has quit (Ping timeout: 258 seconds).
17:05:44 -!- Taneb has joined.
17:10:27 <Gregor> Blood is thicker than water, but corn syrup is thicker than blood. (An American national pride slogan by me :P )
17:11:25 <Taneb> Lava is thicker than corn syrup
17:11:57 <Gregor> I don't think that lava is anyone's (de facto) national beverage. But blood probably is?
17:13:00 <Taneb> Might be Icelands?
17:13:39 <Taneb> But I was talking about threats of violence
17:15:50 <Gregor> You're ruining my slogan buzz :P
17:33:12 <Taneb> Right. Lasagne went in at 6:32
17:33:45 <Gregor> Uh ohhhhhhhhh, sgettio
17:34:07 <Gregor> Y'know where I'm off to? Lancaster!
17:34:25 <Taneb> But that's in Lancashire!
17:34:38 <Taneb> I'm going to Durham tomorrow
17:34:55 <Taneb> And, after tomorrow morning, I won't be online 'till Tuesday
17:40:11 <Vorpal> that was crazy... X broke... By refusing the believe in the mouse cursor. For example, xkill said it couldn't grab mouse. And mouse did nothing...
17:40:21 <Vorpal> well it moved around just fine
17:43:43 -!- GuestIceKovu has changed nick to Slereah.
18:07:05 <quintopia> iceland;s national beverage is alcoholic pine tree
18:21:33 <Taneb> I wonder if you can ferment or distill or whatever coffee beans
18:22:38 <pikhq> t kill yeast, you can ferment it.
18:22:46 <pikhq> And if it's liquid, you can distill it.
18:25:12 -!- itidus21 has joined.
18:25:12 -!- itidus20|afk has quit (Read error: Connection reset by peer).
18:30:11 -!- zzo38 has joined.
18:34:06 <Gregor> I'll bet mercury would kill yeast ...
18:38:42 <zzo38> Do you know what the test service numbers are for my telephone service? Including, telling you your own telephone number, disconnecting your line for a few minutes, etc
18:49:51 -!- pikhq_ has joined.
18:50:29 -!- pikhq has quit (Ping timeout: 276 seconds).
18:51:07 <Lymee> http://therighttool.hammerprinciple.com/statements/i-often-get-angry-when-writing-code-in-this-langua
18:53:59 <elliott_> everyone likes haskell on this site
18:58:42 <Gregor> In spite of the wording, that's clearly a popularity contest.
18:58:56 <Gregor> Few people get angry while programming in Haskell because few people program in Haskell.
18:59:25 <zzo38> O, yes, probably that would be why.
19:02:41 <Lymee> Strange that that site doesn't let you rank things equal.
19:07:55 -!- ais523 has joined.
19:10:35 <ais523> hmm, weird observation: within the first 3 or 4 minutes of my computer loading, the touchpad won't move the mouse cursor above the bottom half of the screen, it keeps bouncing down
19:10:39 <ais523> after a while, it works fine
19:25:24 -!- Taneb has quit (Ping timeout: 252 seconds).
19:32:44 <zzo38> I have now regopherized the Space Weather Prediction Center.
19:33:37 <zzo38> (Some of the files don't work but that is not my fault.)
19:41:27 <zzo38> Did you know that? I don't know why some files don't work, but the problem is on their end, not on my end.
19:42:12 -!- Taneb has joined.
19:42:19 <zzo38> (The same files fail to work when using other protocols too, including HTTP and FTP.)
19:45:47 -!- oerjan has joined.
19:55:37 <oerjan> <elliott> oklopol: 123 is like oerjan but better
19:58:02 <oerjan> is this still referring to that pixelcomic
20:01:37 <oerjan> those kind of puns are too square for me
20:22:32 -!- Taneb_ has joined.
20:24:05 -!- Taneb has quit (Ping timeout: 252 seconds).
20:25:53 -!- Taneb_ has changed nick to Taneb.
20:41:18 -!- Taneb has quit (Ping timeout: 252 seconds).
20:42:41 <zzo38> In the D&D game my character current has two items: a 25-foot rope and a navy guest uniform.
20:42:58 <zzo38> Now make up a computer game text adventure game
20:44:14 -!- Lymee has quit (Ping timeout: 260 seconds).
20:49:50 -!- Lymee has joined.
20:49:51 -!- Lymee has quit (Changing host).
20:49:51 -!- Lymee has joined.
20:50:45 -!- ais523 has quit (Remote host closed the connection).
20:52:30 <Lymee> I didn't end up posting my password in here, did I? The graphics driver died, and I flailed around blindly trying to "sudo /etc/init.d/gdm restart"
20:53:33 <zzo38> You sent nothing in the past few minutes look in the log files to make sure
20:54:19 -!- pikhq has joined.
20:54:19 -!- pikhq_ has quit (Ping timeout: 240 seconds).
21:01:53 <zzo38> Do you know anything else about my optimization problem now?
21:13:14 -!- TeruFSX has joined.
21:16:01 <zzo38> quintopia: Start searching the recent IRC log for "Say that there is a command - which does the next letter"
21:16:47 <zzo38> (The starting timestamp is 1311396023 although there are at least three different formats and from different computers, so just search the text instead)
21:20:22 <oerjan> tunes' time zone is so broken you cannot even search on the minutes.
22:12:54 <oerjan> elliott_: there's a thread on haskell-cafe about that reallyUnsafePointerEq# you used http://www.haskell.org/pipermail/haskell-cafe/2011-July/094103.html
22:18:43 <elliott_> seems my use was safe with forseeable ghc
22:18:57 -!- Sgeo_ has quit (Read error: Connection reset by peer).
22:19:38 -!- SgeoN1 has joined.
22:22:43 <SgeoN1> I am alarmed by the fact that I now feel the need to run memtest
22:33:30 <zzo38> quintopia: What stuff doesn't quite make sense?
22:42:44 <zzo38> Try eat your chopsticks right now!
23:03:45 -!- itidus21 has changed nick to itidus20.
23:04:54 <oerjan> but i have no chopsticks!
23:08:50 <zzo38> Look in your cupboard or drawer or closet or cabinet or wherever you keep it.
23:10:09 <oerjan> wouldn't you know, i do have a couple!
23:10:22 <oerjan> sadly, they're a bit too nicely decorated to eat.
23:11:00 <oerjan> nah i don't want to be chasing the clock
23:11:04 <itidus20> O_O FFFFFUUUUUUUUUUU it's a marsh hare! a marsh hare!
23:11:47 <itidus20> we planted the chopsticks for you to eat
23:12:04 <oerjan> ...i don't believe you.
23:12:25 -!- elliott_ has quit (Quit: disconnection error).
23:12:51 <oerjan> elliott_: no you are not.
23:13:07 -!- elliott_ has joined.
23:13:24 <elliott_> now oerjan will not BELIEVE THAT THING that WAS DEFINITELY not TRUE at all.
23:13:46 <elliott_> oerjan: LETJOISE HAVE A PERARTY
23:15:23 <elliott_> what if oerjan was that guy in norway who did that bad stuff, would we even know. :/
23:15:31 <elliott_> i am just saying that there are a lot of people in norway
23:15:44 <oerjan> yes. i doubt they would let him chat from prison.
23:16:26 <elliott_> oh this is probably in bad taste :DDDDD
23:16:30 <elliott_> oerjan: im sorry ive deeply offended u
23:16:39 <oerjan> i have not escaped. but not from the same place, either.
23:17:35 <oerjan> of course there are similarities. i am blond, somewhat tall, and not a muslim.
23:18:36 <oerjan> i'll ignore that question.
23:18:42 -!- Sgeo has joined.
23:20:09 <elliott_> and thatw as when oerjan turned into a cat
23:21:55 <Sgeo> My memory passed
23:22:05 <monqy> rest in peace sgeos memory
23:23:34 <elliott_> `addquote <Sgeo> My memory passed <monqy> rest in peace sgeos memory
23:23:35 <HackEgo> 542) <Sgeo> My memory passed <monqy> rest in peace sgeos memory
23:23:43 <elliott_> did you ever finish writing at.html
23:23:51 <Sgeo> elliott_, /me wants to read it
23:24:01 <monqy> elliott_: me yes i did
23:24:03 <elliott_> Sgeo: iduno if anyone else can stan,d,,,,,the @,,
23:24:16 <Sgeo> elliott_, you're acting drunk
23:24:19 <elliott_> it has, maximal @ level contents.
23:24:20 <Sgeo> I doubt you're drunk, but
23:24:34 <elliott_> Sgeo: so's your face OHOHHHHHHHHHHH BURNSJAP
23:24:47 <elliott_> no if i was intoxicated i would be sure to be much, much more amusing than this
23:24:56 <elliott_> so basically if i'm ever really funny...........
23:25:42 <elliott_> anyway drunk people don't act like anything, they just act like irritable, annoying, stupid versions of themselves
23:25:49 <elliott_> which is a shame since it's rly boring
23:25:55 <olsner> elliott_: so are you old enough to drink yet?
23:26:23 <elliott_> i think you can drink indoors from like six years old here???????
23:26:41 <elliott_> three and a bit months before that, but it seems pretty boring so i probably won't bother
23:28:14 <monqy> alcohol education taught me never to drink to get drunk
23:28:23 <monqy> an important life lesson
23:28:58 <monqy> im not of legal drinking age.........
23:29:26 <elliott_> i'm not actually sure at all why people would get drunk alcohol honestly just seems like the most boring drug, i'm utterly sincere
23:29:50 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:30:19 <monqy> cigaretes and drunking "lame highs for lame people"
23:30:39 <oerjan> yeah if it doesn't make you go crazy and shoot at people, it's not worth it. take it from a norwegian.
23:30:55 <elliott_> monqy: so is squarelos the best,,, it is a long story involving me reading the crawl learndb and talking to ais
23:31:04 <elliott_> `addquote <monqy> cigaretes and drunking "lame highs for lame people" <oerjan> yeah if it doesn't make you go crazy and shoot at people, it's not worth it. take it from a norwegian.
23:31:05 <oerjan> well stab people, in the case of weapon-deprived british
23:31:06 <HackEgo> 543) <monqy> cigaretes and drunking "lame highs for lame people" <oerjan> yeah if it doesn't make you go crazy and shoot at people, it's not worth it. take it from a norwegian.
23:31:18 <monqy> elliott_: public humiliation
23:31:19 <elliott_> oerjan: stop making me into a person i don't want to be with laughter
23:31:24 <monqy> elliott_: is not cool?????
23:31:32 <elliott_> monqy: i am asking,,,sincere questions:(((
23:31:41 <elliott_> i do not play, crawl, at all, ever, so,
23:31:47 <monqy> its sort of a joke
23:31:47 <elliott_> it is good to improve things even if they are bad things
23:32:07 <elliott_> ais says that devs dislike it experienced players like it and everyone else dislikes it
23:32:10 <elliott_> is this true and also is this redundant
23:32:13 <monqy> see crawl has circular line of sight which is ridiculous
23:32:25 <elliott_> i would like to have eyes that have circular line of sight
23:33:20 <monqy> square los was tried but then got taken down so i made an account called squarelos to lament its demise
23:33:26 <oerjan> line of sight tracing a mandelbrot fractal
23:33:51 <monqy> anyway pretty much the only way i ever play crawl anymore is doing stupid things as squarelos true story
23:33:55 <elliott_> oerjan: stop youre just making the universe seem relaly inadequate
23:34:02 <elliott_> monqy: thats a good way to play games
23:34:23 -!- TeruFSX has quit (Ping timeout: 250 seconds).
23:34:26 <Sgeo> What's wrong with circlelos?
23:35:48 <monqy> Sgeo: distance is such that an actual circle in crawl would look like a square this is how crawl space works....yet there's a bucnh of inconsistency like line of sight is based on what looks like a circle to unenlightened humans
23:35:54 <elliott_> Sgeo actually likes crawl though because he's a dumb
23:36:00 -!- SgeoN1 has quit (Quit: Bye).
23:36:09 <elliott_> "distance is such that an actual circle in crawl would look like a square this is how crawl space works"
23:36:30 <elliott_> isn't that just manhattan distance
23:36:31 <monqy> its just chebyshev space i think but it pretends it isnt
23:36:32 <zzo38> I think I understand
23:36:45 <monqy> manhattan is taxicab right? crawl has diagonals.
23:36:50 <monqy> or am i confusing things
23:36:51 <zzo38> I think manhattan is orthogonal moves only
23:36:53 <elliott_> taxicab yeah. and diagonals suck
23:37:29 <elliott_> hmm, sometimes I get urges to write things in C that relaly shouldn't be written in C
23:37:49 * Sgeo wants to try Chicken again for some reason
23:37:51 <zzo38> What kind of things do you mean?
23:38:01 <olsner> the best reason to write anything in anything is that it shouldn't be done
23:38:02 <zzo38> And what programming language do you think those things should be written in?
23:38:04 <elliott_> zzo38: i cannot say, it is too abhorrent
23:38:27 <Sgeo> elliott_, web toolkit's been done (for either C or C++, don't remember)
23:38:44 <Sgeo> http://www.webtoolkit.eu/wt
23:38:44 <zzo38> olsner: No, the best reason to write anything in anything is that it *cannot* be done (or at least, it seems like it, until it works)
23:39:01 <elliott_> olsner: i was trying to replicate java-style generics except without type erasure because i don't think you can even do that in C. why? well because it shouldn't be done. also because it meant i could implement a custom allocator which, like, knew all about your objects and could inspect them? which would be cool. but. basically i want to implement half a jvm at c level just because it sounds hard/fun
23:39:26 <Lymee> @pl \x = (magnitude x)<iterations
23:39:26 <lambdabot> expecting operator, pattern or "->"
23:39:31 <Lymee> @pl \x -> (magnitude x)<iterations
23:39:40 <zzo38> No, it is good thing learn, try, see what happened in case you can make something like that.
23:40:25 <Sgeo> Wt sounds fun but why C++?
23:40:32 <elliott_> olsner: unfortunately my first start ended up with a member of type TypeInfo##T for an array with element type T. and the problem is that the type of an array with element type T is "struct { TypeInfo##T ...; ... }" which doesn't really paste on to TypeInfo to create a valid token.
23:40:37 <zzo38> TeX also has its own memory allocation algorithms. In fact there are a lot of features of Pascal it doesn't use, although it does use some nonstandard features (but those ones are controlled by macros so you can change it a bit)
23:40:40 <elliott_> so I kind of need generic typeinfos. this is kind of gross.
23:40:49 <elliott_> if i remove those, i'm not sure how to typecheck it
23:43:07 <elliott_> this is like c++ sudoku: hard edition :(
23:43:51 <monqy> one time i treid searching for c++ soduko but i only got sudocu solvers i tw as awcufl ;_;
23:44:07 <zzo38> You can create static type checking (usable in ? : operators and such) in C89, even.
23:44:24 <elliott_> monqy: c++ sudoku is my invention and mine alone, also im the only known player, you should try though, you just need a copy of the C++0x features list, a recent g++ compiler, and an ability to forget that things aren't jokes
23:44:36 <elliott_> zzo38: do you have an example?
23:44:39 <zzo38> You just need to use unions and arrays and stuff and a few things
23:45:15 <zzo38> And then you can use the sizeof operator which is a constant and can make a macro that checks types at compile time to decide what to do!
23:46:08 * Sgeo is considering getting a Nook, but the DRM is worrying
23:46:11 <zzo38> I suppose I can try to make up an example, just a few lines I can type directly on here to describe
23:47:24 <zzo38> union { struct { int something; int something_else; int who_cares; } main; char typecheck1[2]; short typecheck2[1]; };
23:47:30 <Sgeo> On the other hand, apparently B&N DRM is easy to remove...
23:47:40 <Sgeo> Stuff may have changed though
23:48:06 <zzo38> #define figure_out(x) (sizeof(x->typecheck1[0])==1?abc(x):xyz(x))
23:48:33 <zzo38> This is my thoughts ideas, at least.
23:49:18 <Sgeo> Yeah, all this stuff looks old
23:49:41 <elliott_> zzo38: But how does that fail at type-time if it'st he wrong size?
23:49:49 <elliott_> the size is obviously always 1
23:50:23 <zzo38> Well, if (x) is of a different type, then sizeof(x->typecheck1[0]) is not 1
23:50:39 <zzo38> Or you can omit the [0] for another number
23:52:04 <zzo38> Of course this is using completely standard C89. GNU C has its own things. And what is probably acceptable in many compilers (or at least, should be) is make a member of the structure with zero elements array, and then you can measure the size of the array element it can be any number you want without messing up the rest of the program!
23:53:32 <zzo38> Although I don't know for sure, this idea might also be possible with LLVM to force each different structure type to be considered different by having different sizes of data of zero length array at the end.
23:55:31 <Sgeo> http://www.barnesandnoble.com/w/jesus-deepak-chopra/1012718717?ean=9780061980404&itm=7&usri=jesus for the life of me, I can't figure out who the target market is
23:58:18 <zzo38> Did you ever read about the Uncarrot Tarot? I did have a idea of a four-player trick-taking game using those cards, which I called "Rulers". (It uses all the cards, including the metas.)
23:59:28 <zzo38> If a Hitchhiker is played to a trick, then you must Hitchhike.
00:00:10 <zzo38> The "Pickle" card can be played as a minor or as a major, depending on circumstances.
00:03:35 <zzo38> The player with the Title card must lead that card on the first turn at the beginning of the game (unless nobody has that card in case it is a face-down hidden card in the center of the table).
00:08:42 <coppro> can you write up the full rules?
00:09:26 <zzo38> Unfortunately I never have. I have never actually thought of the full rules, but I have thought of many ideas, a few of which I forget.
00:10:16 <zzo38> Although I did remember a few things of my ideas, and possibly even have new ideas I can write here. Other people can also make up ideas, since it is incomplete.
00:11:28 <zzo38> You score by the first trick, the last trick, sequences, and by taking tricks containing "rulers".
00:12:07 <zzo38> You must follow suit if possible, and sometimes follow ranks.
00:12:47 <zzo38> Majors beat minors (and miscellaneous suited cards), metas beat everything. However, some majors and metas have special powers.
00:13:04 -!- elliott_ has quit (Ping timeout: 260 seconds).
00:13:51 <zzo38> (The card with instructions for divinations is used too in this game, although after playing this game you cannot use the deck for divination since the divination rules require that the deck is never shuffled.)
00:15:20 <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
00:15:28 <lambdabot> forall (m :: * -> *) a. (Monad m) => m (m a) -> m a
00:15:43 -!- augur has quit (Remote host closed the connection).
00:15:55 -!- augur has joined.
00:30:51 <Lymee> @pl (\x -> map (\y -> (tick*x, tick*y)) [-half..half])
00:30:52 <lambdabot> expecting variable, "(", operator or ")"
00:31:13 <Lymee> @pl \x -> map (\y -> (tick*x, tick*y)) [-half..half]
00:31:14 <lambdabot> expecting variable, "(", operator or end of input
00:31:32 <Lymee> @pl \x -> map (\y -> (tick*x, tick*y))
00:31:33 <lambdabot> map . (. (tick *)) . (,) . (tick *)
00:31:39 <Lymee> ok yeah not replacing that
00:31:55 <Deewiant> @pl \x -> map (\y -> (tick*x, tick*y)) [negate half .. half]
00:31:56 <lambdabot> flip map [negate half..half] . (. (tick *)) . (,) . (tick *)
00:32:01 * Lymee reaches for a barf bag
00:32:13 <Deewiant> @pl \x -> map (\y -> (tick*x, tick*y)) (enumFromTo (-half) half)
00:32:14 <lambdabot> flip map [negate half..half] . (. (tick *)) . (,) . (tick *)
00:33:51 <Deewiant> \x -> map (\y -> (tick*x, tick*y)) = map . (join (***) (tick *) .) . (,)
00:36:30 <Deewiant> I'd write that as \x -> map (join (***) (tick*) . (,) x), or (x,) with -XTupleSections, or with both = join (***) defined somewhere
00:37:40 <Deewiant> Or \x -> let tx = tick*x in map ((tx,) . (tick*))
00:40:13 -!- FireFly has quit (Quit: swatted to death).
00:44:22 -!- esowiki has joined.
00:44:43 -!- esowiki has joined.
00:45:04 -!- esowiki has joined.
00:45:41 -!- esowiki has joined.
00:46:31 -!- esowiki has joined.
00:47:29 -!- esowiki has joined.
00:48:13 -!- esowiki has joined.
00:48:57 -!- esowiki has joined.
00:49:41 -!- esowiki has joined.
00:50:21 -!- esowiki has joined.
00:51:01 -!- esowiki has joined.
00:51:46 -!- esowiki has joined.
00:52:24 -!- esowiki has joined.
00:52:24 -!- glogbot has joined.
00:53:47 <oerjan> <bsmntbombdood> why is lambdabot in #esoteric? <-- because we asked nicely (well i assume it was nicely)
01:00:07 <lambdabot> forall a. (Fractional a) => a -> a -> a
01:00:31 <Lymee> @hoogle Fractional -> Integral
01:00:31 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
01:00:49 <oerjan> Lymee: floor, ceiling, round
01:01:07 <lambdabot> forall a b. (RealFrac a, Integral b) => a -> b
01:01:20 <oerjan> fractional can be e.g. complex
01:01:20 <Sgeo> I wanna be a Devil's Advocate
01:02:23 <oerjan> @pl \x -> map (\y -> (tick*x, tick*y)) [ -half..half]
01:02:23 <lambdabot> expecting variable, "(", operator or end of input
01:03:15 <oerjan> (given that it accepts it without -
01:17:56 <zzo38> Sgeo: Why do you want to be Devil's Advocate?
01:18:18 <Sgeo> I've boredly given some thought to what I consider an inane position
01:18:38 <Sgeo> I think I can make it "work" fsvo "work"
01:41:41 <Lymee> I'm doing the Mandelbrot set with this: length $ takeWhile ((<2) . magnitude) $ take maxIters $ iterate step $ 0.0 :+ 0.0
01:41:45 <Lymee> Can't figure out any optimizations.
01:41:58 <Lymee> Anybody have any ideas? =w=
01:42:19 <Lymee> Um, no wait, can't do that.
01:42:29 <oerjan> Lymee: magnitude is somewhat expensive as it requires a square root
01:43:08 <oerjan> @hoogle Complex a -> a
01:43:08 <lambdabot> Data.Complex imagPart :: RealFloat a => Complex a -> a
01:43:08 <lambdabot> Data.Complex magnitude :: RealFloat a => Complex a -> a
01:43:08 <lambdabot> Data.Complex phase :: RealFloat a => Complex a -> a
01:44:55 <oerjan> :t \(a :+ b) -> a*a + b*b < 4)
01:45:00 <oerjan> :t \(a :+ b) -> a*a + b*b < 4
01:45:01 <lambdabot> forall t. (RealFloat t) => Complex t -> Bool
01:46:12 <oerjan> also perhaps findIndex is more efficient than length $ takeWhile ...
01:46:22 <lambdabot> forall a. (a -> Bool) -> [a] -> Maybe Int
01:46:53 <oerjan> (then again, maybe not)
01:47:52 <oerjan> and it all depends on ghc's list fusion being able to optimize away the intermediate lists
01:52:12 <Lymee> @pl \x -> ((double $ imagPart x) + (double $ realPart x)) < 4
01:52:12 <lambdabot> (< 4) . ap ((+) . double . imagPart) (double . realPart)
01:52:51 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
01:52:56 <Lymee> @hoogle forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
01:52:56 <lambdabot> --count=20 "forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b"
01:53:04 <Lymee> @hoogle (Monad m) => m (a -> b) -> m a -> m b
01:53:04 <lambdabot> Control.Monad ap :: Monad m => m (a -> b) -> m a -> m b
01:53:04 <lambdabot> Control.Monad liftM :: Monad m => (a1 -> r) -> m a1 -> m r
01:53:05 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
02:00:20 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:09:20 <Lymee> @pl \x -> xCenter+tick*x
02:13:25 -!- cheater_ has joined.
02:16:18 <lambdabot> forall a. (a -> Bool) -> [a] -> Maybe Int
02:16:33 <Lymee> :t (a -> a) -> a -> Int
02:17:10 <Lymee> @hoogle (a -> a) -> a -> Int
02:17:10 <lambdabot> Data.Generics.Schemes everywhere :: (a -> a) -> a -> a
02:17:10 <lambdabot> Data.Generics.Schemes everywhere' :: (a -> a) -> a -> a
02:17:11 <lambdabot> Prelude until :: (a -> Bool) -> (a -> a) -> a -> a
02:17:44 <oerjan> until doesn't count number of steps, alas
02:21:24 -!- MDude has joined.
02:21:24 -!- MDude has changed nick to MSleep.
02:29:12 <Lymee> I changed z^^2 into z*z
02:29:22 <Lymee> Suddenly, almost halved time!
02:29:39 <oerjan> Lymee: there was a reason i wrote it with that yeah :P
02:30:27 <oerjan> istr someone wondering why ghc doesn't optimize x^2 to x*x before
02:31:21 <oerjan> they are absolutely identical
02:31:57 <lambdabot> Class `GHC.Num.Num' used as a type
02:32:14 <Sgeo> This is a good idea
02:32:20 <CakeProphet> ...I thought everyone already knew about Expr.
02:32:25 <lambdabot> Ambiguous type variable `a' in the constraints:
02:32:32 <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 (...
02:33:37 <lambdabot> [a,a * b,a * b * c,a * b * c * d,a * b * c * d * e]
02:35:34 <Lymee> Didn't know that existed.
02:35:41 <Lymee> Any way to evaluate that?
02:35:52 <lambdabot> Couldn't match expected type `t1 -> t2 -> t'
02:36:27 <oerjan> Lymee: it's in a package named simplereflect
02:37:14 <oerjan> http://hackage.haskell.org/package/simple-reflect
02:38:17 <oerjan> oh there's a reduction function
02:39:15 <oerjan> maybe lambdabot doesn't have the latest version
02:39:46 <Lymee> > reduce (a+b+c+d)
02:39:52 <Lymee> > reduce (a*b+a*c)
02:39:57 <oerjan> i guess it cannot reduce pure symbols
02:40:02 <Lymee> > reduce (a*(b+c))
02:40:16 <oerjan> > iterate reduce (1+2+3+4)
02:40:16 <lambdabot> [1 + 2 + 3 + 4,3 + 3 + 4,6 + 4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10...
02:40:51 <oerjan> > iterate reduce (1*2+3*4)
02:40:52 <lambdabot> [1 * 2 + 3 * 4,2 + 3 * 4,2 + 12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,1...
02:41:58 <Lymee> > (\x -> fst $ head $ dropUntil (\x -> (fst x) == (snd x)) $ zipWith (,) x $ tail x) $ iterate reduce (1*2+3*4)
02:42:27 <Lymee> > (\x -> fst $ head $ dropWhile (\x -> (fst x) != (snd x)) $ zipWith (,) x $ tail x) $ iterate reduce (1*2+3*4)
02:42:38 <Lymee> > (\x -> fst $ head $ dropWhile (\x -> !((fst x) == (snd x))) $ zipWith (,) x $ tail x) $ iterate reduce (1*2+3*4)
02:42:39 <lambdabot> <no location info>: parse error on input `!'
02:42:43 <Lymee> > (\x -> fst $ head $ dropWhile (\x -> not ((fst x) == (snd x))) $ zipWith (,) x $ tail x) $ iterate reduce (1*2+3*4)
02:46:04 <oerjan> > dropWhile (uncurry (/=)) . ap zip tail $ iterate reduce (1*2+3*4)
02:46:05 <lambdabot> [(1 * 2 + 3 * 4,2 + 3 * 4),(2 + 3 * 4,2 + 12),(2 + 12,14),(14,14),(14,14),(...
02:46:30 <oerjan> > ap zip tail $ iterate reduce (1*2+3*4)
02:46:31 <lambdabot> [(1 * 2 + 3 * 4,2 + 3 * 4),(2 + 3 * 4,2 + 12),(2 + 12,14),(14,14),(14,14),(...
02:47:25 <oerjan> > reduce (2+12) == (14 :: Expr)
02:47:54 <oerjan> > reduce (2+12) /= (14 :: Expr)
02:48:10 <oerjan> > 2+12 /= (14 :: Expr)
02:48:38 <oerjan> it actually reduces when comparing
02:50:37 <Lymee> http://pastebin.com/PXcS0k5G < is my code horrible?
02:51:06 <Lymee> > reduce (2+12+4+5) /= (14 :: Expr)
02:51:16 <Lymee> > reduce (2+12+4+5) /= (25 :: Expr)
02:51:23 <Lymee> > (2+12+4+5) /= (25 :: Expr)
02:51:31 <Lymee> > iterate reduce (2+12+4+5)
02:51:32 <lambdabot> [2 + 12 + 4 + 5,14 + 4 + 5,18 + 5,23,23,23,23,23,23,23,23,23,23,23,23,23,23...
02:51:40 <Lymee> > (2+12+4+5) /= (23 :: Expr)
02:54:10 <Lymee> > reduce (i^(100^100))
02:54:11 <lambdabot> i * i * (i * i) * (i * i * (i * i)) * (i * i * (i * i) * (i * i * (i * i)))...
02:54:30 <Lymee> > map (\x -> take 10 $ show x) $ iterate reduce (i^(100^100))
02:54:31 <lambdabot> ["i * i * (i","i * i * (i","i * i * (i","i * i * (i","i * i * (i","i * i * ...
02:54:42 <Lymee> > drop 100 $ iterate reduce (i^(100^100))
02:54:43 <lambdabot> [i * i * (i * i) * (i * i * (i * i)) * (i * i * (i * i) * (i * i * (i * i))...
02:54:49 <Lymee> > drop 1000 $ iterate reduce (i^(100^100))
02:54:49 <lambdabot> [i * i * (i * i) * (i * i * (i * i)) * (i * i * (i * i) * (i * i * (i * i))...
02:54:59 <oerjan> @redo map (\y -> map (\x -> fracf $ (xCenter+x) :+ (yCenter+y)) range) range
02:54:59 <lambdabot> Maybe you meant: do read todo undo
02:55:15 <oerjan> @do map (\y -> map (\x -> fracf $ (xCenter+x) :+ (yCenter+y)) range) range
02:55:15 <lambdabot> map (\ y -> map (\ x -> fracf $ (xCenter + x) :+ (yCenter + y)) range) range
02:55:28 <Lymee> What did you want to do?
02:55:40 <oerjan> turn it into a list comprehension
02:57:19 <oerjan> [ [ fracf $ (xCenter+x) :+ (yCenter+y)) | x <- range ] | y <- range ]
02:59:08 <oerjan> you have some more parentheses than necessary, but fair enough
03:00:35 <oerjan> also double is usually called square
03:02:01 <Lymee> wait why did i do that
03:03:42 <Lymee> -cpp Run the C pre-processor on Haskell source files
03:03:46 <Lymee> Is there any reason to ever do that?
03:04:17 <oerjan> haskell doesn't have much in the way of conditional compilation without it
03:04:27 <oerjan> well didn't use to, anyway
03:04:39 <oerjan> i guess you can use template haskell these days
03:05:21 <zzo38> From what I read about Haskell, C pre-processor doesn't seem like the best kind of preprocessor for Haskell (because of the meanings of # and ' in Haskell, as well as other things)
03:05:40 <oerjan> i think it's actually a slightly modified preprocessor
03:05:48 <zzo38> What might be improved is something like how the macro preprocessor stuff in WEB but changed for Haskell stuff.
03:06:46 <oerjan> when hugs was still alive, it shared a number of library source files with ghc, which sometimes used cpp
03:07:28 <zzo38> For various reasons, I doubt a C preprocessor would work well with Haskell.
03:08:18 <oerjan> as i said, it is a modified one.
03:08:20 <Lymee> [snip]:~/hs$ time ./mandelbrot 1000 0 0 1 300 output.png
03:08:21 <Lymee> [snip]:~/hs$ time ./mandelbrot 1000 0 0 1 300 output.png
03:08:36 <Lymee> Is -O9 really that effective?
03:09:45 <oerjan> well -O2 is effective, iirc -O3 sometimes gets worse, and i don't think there's a difference beyond that
03:09:56 <zzo38> oerjan: Yes, a modified one might work.
03:10:31 <oerjan> iirc -O3 uses some experimental optimizations that are not guaranteed to actually make things better.
03:10:46 <Lymee> The executable -O2 and -O3 generate are identical, so..
03:11:42 <oerjan> oh wait it's actually -O1 and -O2
03:11:58 <oerjan> http://www.haskell.org/ghc/docs/latest/html/users_guide/options-optimise.html
03:12:21 <oerjan> "At the moment, -O2 is unlikely to produce better code than -O.
03:14:41 <oerjan> or wait, there's not actually a number for using those that make things worse.
03:18:24 -!- azaq23 has quit (Ping timeout: 260 seconds).
03:24:57 <cheater_> http://www.malevole.com/mv/misc/killerquiz/
03:29:49 <Sgeo> Is IUP generally well-regarded?
03:34:34 -!- NihilistDandy has joined.
03:39:47 -!- azaq23 has joined.
03:39:48 -!- azaq23 has quit (Changing host).
03:39:48 -!- azaq23 has joined.
03:47:47 <coppro> writing that script I wanted will be harder than I thought
03:48:08 <coppro> since I have to account for translational symmetry too
03:48:49 <coppro> not too hard, just annoying
04:03:45 -!- pikhq_ has joined.
04:03:54 -!- pikhq has quit (Ping timeout: 260 seconds).
04:07:26 -!- BeholdMyGlory has quit (Remote host closed the connection).
04:33:50 <CakeProphet> coppro: sounds like you want some kind of ABSTRACTION
04:34:56 <CakeProphet> honestly are there programmers out there who think abstraction is in general bad?
04:46:46 <Sgeo> What about COBOL programmers?
04:56:05 <zzo38> Whether you need abstraction as well as what kind of abstraction depends on a lot of stuff!
05:05:25 <quintopi1> like the socioeconomic status of your target demographic, for instance
05:06:02 <quintopi1> and the age of the current pope of course
05:07:25 <NihilistDandy> The lactose intolerant have no need for abstraction
05:08:04 <NihilistDandy> This is an obvious truth, whose proof is left as an exercise to the reader.
05:43:08 <zzo38> Once I wrote something as a joke for rules of a card game, the value of the Queen card is current age of the queen, and to figure out the value of a Joker card you tell a joke to your opponent, and the value of this card is however many times your opponent laughs.
05:44:26 <pikhq_> How did a couple hours of magic turn into 8?
05:45:07 <pikhq_> Meh, whatever, I regret it not.
05:45:12 <zzo38> Do you have more information?
05:45:29 <zzo38> (Maybe question can be answered, then?)
05:46:40 <zzo38> I found the texts I wrote some jokes of rules for card game and stuff. Here is some of it:
05:46:55 <zzo38> This game can be played by any number of people, as long as the number of people is even and prime. First, shuffle the cards. The players can now make a deal, either an addition deal or a multiplication deal. And then you figure out the values of the cards, and then finally you deal the cards.
05:47:01 <zzo38> If the deck has 40 cards, then you get 3 cards. If the deck has 52 cards, then you get 4 cards. If you are a funny guy, then you get 5 cards. If your name is Aaron, then you get 6 cards.
05:48:24 <zzo38> This document also jokes about measuring the resistance of pokemon cards in ohms.
05:49:50 <zzo38> http://zzo38computer.cjb.net/GamesMadeStupid/cardgame.htm
05:50:35 <zzo38> I didn't write it completely by myself (I forget exactly which parts) although I did write much of it and I did put everything together.
05:52:03 <pikhq_> Also, I'm not entirely sure why I *started* this, other than that someone said "lol if freebsd used git, they'd have to have a gigantic repo in /usr/src", but cvs2git of FreeBSD's repo has taken two days thus far.
05:53:22 <coppro> I like the win condition for solitair
05:54:02 <pikhq_> (FWIW, FreeBSD typically has a CVS checkout of the source used to build the system in /usr/src)
05:54:49 <pikhq_> Personally, I'm going to be surprised if the git repo of all changes from '93 is larger than a CVS checkout.
05:56:26 <coppro> Doesn't CVS put metadata in the file though?
05:57:28 <pikhq_> Well, actually, it's optional metadata in the file.
05:57:39 <coppro> Does cvs2git strip it?
05:57:58 <pikhq_> I *think* it just fills in the metadata.
05:58:21 <pikhq_> Or maybe it leaves it alone?
06:03:08 <Sgeo> Crud, my eyes are going weird
06:03:22 <Sgeo> I'm reading a Homestuck update, and some of the text looks like it's popping out
06:03:26 <Sgeo> Depending on the color
06:06:48 <Sgeo> NihilistDandy, have you read all of Homestuck?
06:21:33 <monqy> andrew husey in the future
06:24:02 <NihilistDandy> I didn't find the character Evinrude's (in The Rescuers) name meaningful until I got older
06:24:45 <NihilistDandy> He's a dragonfly, you see, and he propels mouse sized boats around a bayou
06:29:53 <quintopi1> i got the joke the first time i saw it
06:30:08 <zzo38> How good are you at optimization algorithms and that stuff? I was trying to make some kind of optimization. However, I cannot quite figure it out. That is why, I would like some help too. And then I can learn.
06:31:15 <quintopi1> i'm sorry i was taken fishing from very young in tiny johnboats
06:32:13 -!- quintopi1 has changed nick to quintopia.
06:32:27 -!- quintopia has quit (Changing host).
06:32:27 -!- quintopia has joined.
06:35:57 -!- hagb4rd has joined.
06:41:16 -!- hagb4rd has quit (Read error: Connection reset by peer).
06:46:12 <itidus20> i wanna thank whoever linked me to: http://everything2.com/title/Using+Asteroids+to+explain+the+topological+classification+of+2-manifolds
06:46:31 <itidus20> just reading it now and the idea is making sense
06:47:57 <itidus20> so now what we need is a torus shaped monitor
06:49:34 <itidus20> and it would be incredibly boring and a stupid idea and i'll just let it go
06:49:35 -!- oerjan has quit (Quit: Good night).
06:51:04 <zzo38> I have seen a diagram in a book where they described a TV screen being shaped like torus. I think the reason is similar, too.
06:51:53 <zzo38> (But it didn't have touchscreen)
06:52:08 <zzo38> (Nor would touchscreen help in the context it was given in)
06:52:41 <zzo38> NihilistDandy: Is that a question to me? Or to itidus20?
06:53:13 <NihilistDandy> I meant was the reason for the toroidal TV screen "being stupid"?
06:53:51 <zzo38> No! The reason was to indicate having no edges and you can move one direction to end up in the same place, and so on things like that.
06:54:24 <zzo38> Of course you would not have such a TV screen, I don't think it would work very well for any circumstances I can understand.
06:55:36 -!- hagb4rd has joined.
06:59:00 <NihilistDandy> I wish my last name were more palindrome friendly.
06:59:28 <CakeProphet> this panel setup for the scratch is making everything extremely difficult to follow
06:59:43 <CakeProphet> it also doesn't help that I've forgetting details of what happened....
07:01:37 -!- NihilistDandy has quit (Quit: sleep).
07:03:10 <Sgeo> :( The Science of Discworld isn't available as an ebook
07:03:25 <Sgeo> Or at least, not from B&N
07:04:33 <Sgeo> Oh, eBooks.com has it
07:18:04 <itidus20> ok i was following it until the spehrical universes bit
07:18:36 <itidus20> is the idea that a sphere doesn't really need an edge?
07:21:20 <itidus20> nevermind.. im pretty sure i know what a sphere is :-s
07:21:21 -!- augur has quit (Remote host closed the connection).
07:22:30 <zzo38> I hope someone can understand my register optimization algorithm problem that I have had. And if there is other channel that they know this kinds of things better.
07:22:41 -!- zzo38 has quit (Quit: But for now I sleep).
07:44:16 -!- augur has joined.
08:07:33 -!- hagb4rd has quit (Ping timeout: 255 seconds).
08:19:06 <lambdabot> Not in scope: data constructor `Expr'
08:22:05 <lambdabot> Not in scope: data constructor `EnumFromTo'
08:23:50 <Sgeo> http://www.jazzscheme.org/images/screenshots/text_jazz.htm I am a bit unnerved by how similar to Java that looks
08:31:04 <Gregor> Greetings from Lancaster
08:31:24 -!- Taneb has joined.
08:31:42 -!- augur has quit (Remote host closed the connection).
08:31:45 <Taneb> That's the second time I've had non-latin characters in a captcha
08:32:35 <Sgeo> <penryu> haha. "Jazz borrows ideas from ... Java for its simple object system ..."
08:34:51 <pikhq_> Well, Java's *object system* isn't too complex.
08:35:30 <pikhq_> What's complex is that it has an overly verbose syntax and utterly retarded APIs.
08:35:39 <pikhq_> Along with pointless edge cases.
08:36:56 <pikhq_> Also, it suffers from the whole "let's do static typing but not have a good type system" thing.
08:42:34 <Taneb> I've had an idea for an esolang!
08:43:22 <pikhq_> CakeProphet: It's static and not good enough to handle type inference.
08:43:34 <Taneb> It'll have duck typing, and the batman must be dismissed with a score of zero!
08:44:10 <pikhq_> This, in my estimation, is *worse* than being loosely or un-typed.
08:58:26 <Taneb> Well, in about an hour, I leave
08:59:54 <Sgeo> elliott, don't click this until you read new Homestuck update, but I just want to say I'm lolling at http://bit.ly/nJn669
09:05:01 -!- monqy has quit (Quit: hello).
09:11:08 -!- augur has joined.
09:33:38 <Taneb> Just discovered my first cavern in Dwarf Fortress
09:34:13 -!- Taneb has quit (Quit: Page closed).
09:58:56 -!- Phantom_Hoover has joined.
09:59:35 <Phantom_Hoover> Hmm, I wonder if this connection will last for more than ten seconds.
09:59:35 <lambdabot> Phantom_Hoover: You have 12 new messages. '/msg lambdabot @messages' to read them.
10:09:38 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
10:23:25 -!- MigoMipo has joined.
10:25:51 -!- Sgeo has quit (Read error: Connection reset by peer).
10:26:33 -!- Sgeo has joined.
10:29:12 -!- hagb4rd has joined.
10:38:58 <MigoMipo> Has anyone implemented Brainfuck in the SQLite virtual machine?
10:45:51 -!- ais523 has joined.
10:59:47 <coppro> > pl (foo a) == (foo b)
10:59:48 <lambdabot> Not in scope: `pl'Not in scope: `foo'Not in scope: `foo'
10:59:56 <coppro> > pl (len a) == (len b)
10:59:56 <lambdabot> Not in scope: `pl'Not in scope: `len'Not in scope: `len'
11:00:21 <lambdabot> expecting white space, "()", natural, identifier, lambda abstraction or expression
11:00:31 <coppro> @pl \x y = (len x) == (len y)
11:00:36 <coppro> @pl \x y -> (len x) == (len y)
11:17:40 -!- Phantom_Hoover has joined.
11:21:50 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
11:37:01 <twice11> :t (. length) . (==) . length
11:37:13 <twice11> It's more generic than (==) `on` length
11:38:59 <olsner> omg no, the doctor is in one of the harry potter movies (and plays a baddie)
11:43:16 -!- sebbu2 has quit (Ping timeout: 240 seconds).
11:46:08 <twice11> @pl \l1 l2 a b -> (l1 a) == (l2 b)
11:46:33 <twice11> @pl \l1 l2 a b -> (l2 a) == (l1 b)
11:46:45 <twice11> @pl \l1 l2 a b -> (l1 b) == (l2 a)
11:46:54 <twice11> @pl \l1 l2 a b -> (l2 b) == (l1 a)
11:47:06 <twice11> Hmm, I was trying to get rid of the flips.
11:47:21 <twice11> Seems to be impossible is you want to have both l1 and l2 before a and b.
11:48:16 <twice11> Ultimate goal was makeing "(. length) . (==) . length)" make look more symmetric in the two length calls.
12:07:53 -!- sebbu has joined.
12:10:04 <Sgeo> "You can use the software in any way you like, make money and do as you will, and even change the source code and distribute it and charge for it provided that your changed version still works."
12:10:13 <Sgeo> http://www.lambdassociates.org/Shen/newappeal.htm
12:10:27 <Sgeo> Um, that... is there a legal definition of "works"?
12:11:35 <ais523> I don't think so as an adjective
12:11:58 <ais523> anyway, there's a legal definition of everything, occasionally the courts have to decide what it is, though
12:20:31 * Sgeo for some reason tries Allegro CL Express
12:46:34 -!- BeholdMyGlory has joined.
12:49:40 -!- azaq23 has quit (Quit: Leaving.).
12:50:56 <Sgeo> http://www.reddit.com/r/programming/comments/ixkql/how_to_make_a_compiler_1000_times_faster/c27guh6 I... uh...
12:51:27 <Sgeo> Even _____I_____'m not that stupid to do that, and I barely know what I'm doing
12:52:22 <Sgeo> Then again, I'll probably make mistakes that this person doesn't
12:53:18 <Sgeo> And trying to skim what the person wrote just ... dizzies me, so I'm the last person who should be commenting
13:05:56 <Sgeo> http://sds.podval.org/ocaml-sucks.html is it just me or does this article have a mix of stupidity and insight?
13:08:06 -!- FireFly has joined.
13:17:30 <itidus20> "Make no mistake: Java/C/C++/C#/Perl are much worse than OCaml! "
13:17:49 <ais523> I actually use OCaml in my day job
13:17:55 <ais523> it made me want to invent Anarchy
13:18:05 <ais523> because it's decently good at what it does, but has a few annoyances
13:18:33 <itidus20> My view of the world is always getting me down but it's not all that bad.
13:19:09 <itidus20> it's like i think people would be less happy overall if i let my own private piece of the world turn to shit
13:19:52 <itidus20> So, I think that people get used to what they are doing... and sometimes I get the urge to make breakthroughs and independant rediscoveries
13:21:07 <itidus20> and, at the worst of it... the analyzers start believing their own crap
13:21:23 <itidus20> and that surely drains the life out of them
13:21:24 <Sgeo> "Now (Dec 1999)" http://sds.podval.org/tool.html
13:22:32 <itidus20> they speak of what is possible and what is not possible as if they had lived billions of years
13:23:11 <itidus20> and still, 1000s of years ago people alerady knew that billions of years can be insignifigant depending on what you are looking for
13:23:53 <itidus20> and they have the audacity to make claims on the computational power of the known universe
13:24:36 <itidus20> oh god i am ranting again... when did this happen
13:24:58 <itidus20> its one of these monologues which someone earlier today told me isn't fitting in a _chatroom_
13:30:36 -!- MSleep has changed nick to MDude.
13:52:45 <itidus20> cake: i have so much dissatisfaction with so many things that a rant can erupt at any time.
13:53:40 <CakeProphet> ah, right, because par would impose strict semantics.
13:54:04 <CakeProphet> > foldl1 (flip par) . take 100 . scanl1 (*) $ [1..]
13:54:13 <CakeProphet> > foldl1 (flip par) . take 50 . scanl1 (*) $ [1..]
13:54:58 <CakeProphet> Yeah, sometimes I feel like executing the first 50 factorials in parallel for absolutely no gain.
13:56:46 <CakeProphet> > foldl1 par . take 50 . scanl1 (*) $ [1..]
13:56:47 <lambdabot> 30414093201713378043612608166064768844377641568960512000000000000
14:01:11 <tswett> Light, service, state, box, cross, paper, door, teddy bear, fish, dog, apple, stroller, fish trap, slim, high, parent, free, country, swamp, fillet, rosé, parfait, brick, sleep, office, small, hand, clove, child, knife, two, sister, switch, unhappy, warm, inntermost, left, woman, reply, expense, guest, man, fine, spring, eighth, thousand, dead, skirt, step, grandmother, young couple.
14:04:58 <CakeProphet> it woould be nice to have latex support in an IRC client.
14:05:46 <CakeProphet> I had a dream about an annoying douchebag who logged into this channel and spoke almost entirely in fancy latex
14:07:07 <lambdabot> lexical error in string/character literal at chara...
14:07:12 <tswett> Lymee: oh, it's a list of nouns and adjectives.
14:07:36 <tswett> There are 51 types. This is one from each type.
14:07:40 <tswett> Or, it's supposed to be.
14:12:57 <tswett> Ihan vitun kamalan sekavat.
14:13:55 <lambdabot> Source not found. Take a stress pill and think things over.
14:18:39 <Lymee> @pl (\y -> [fracf $ (xCenter+x) :+ (yCenter+y) | x <- range])
14:18:39 <lambdabot> return . fracf . (<- range) . (| x) . ((xCenter + x) :+) . (yCenter +)
14:18:56 <Deewiant> @pl doesn't understand list comprehensions
14:19:08 <Deewiant> @. pl undo (\y -> [fracf $ (xCenter+x) :+ (yCenter+y) | x <- range])
14:19:08 <lambdabot> (range >>=) . flip flip [] . (((:) . fracf) .) . flip ((:+) . (xCenter +)) . (yCenter +)
14:33:37 <tswett> $pl \x -> [y + 1 | y <- x]
14:33:40 <tswett> @pl \x -> [y + 1 | y <- x]
14:45:30 <Vorpal> <tswett> @pl \x -> [y + 1 | y <- x]
14:45:31 <Vorpal> <lambdabot> return . (y +) . ((1 | y) <-)
14:45:55 <Deewiant> Vorpal: 2011-07-24 17:18:47 ( Deewiant) @pl doesn't understand list comprehensions
14:46:14 <Deewiant> @. pl undo \x -> [y + 1 | y <- x]
14:46:30 <Vorpal> Deewiant, where is undo from?
14:46:35 <lambdabot> Translate do notation to Monad operators.
14:52:56 -!- pikhq has joined.
14:53:12 -!- pikhq_ has quit (Ping timeout: 276 seconds).
15:06:52 <atehwa_> tswett: I wonder if you were talking about the inflection classes of nominals, how cute
15:27:48 <tswett> atehwa_: you can determine that with figuratively absolute certainty.
15:32:15 <lambdabot> <no location info>: parse error on input `)'
15:32:57 <Deewiant> (`f`) would be equivalent to (f)
15:53:29 <fizzie> CakeProphet: For a fixed arity, I suppose you can always work around the lack of (`f`) with (\x y -> (x`f`y)). Especially if you choose suitably easily overlookable Unicode characters for x and y. (\ו י -> (ו`f`י)) maybe?
15:54:26 <fizzie> Wow, that renders real bad in XChat. Must be the right-to-leftness of the Hebrew letters.
15:54:46 <Deewiant> You can make it \x -> (x`f`) and it'll work for any arity
15:55:24 <Deewiant> (\x y -> (x`f`y) would work for any arity >= 2)
15:57:34 <fizzie> And since it no longer needs whitespace to separete x and y, (\י->(י`f`)) then. Which XChat renders so that it looks, approximating the Hebrew "yod" with ', as (\')<-'`f`)) -- it seems to do the text in-between those things as right-to-left.
16:00:16 <CakeProphet> fizzie: what do you mean work around the lack of (`f`)?
16:00:37 <CakeProphet> like... I don't see a need really. I just wondered if it was possible. It doesn't need a work around because f is the work around.
16:00:38 <fizzie> Since it's "f", I supposed you must have some reason to complicate it.
16:01:20 <fizzie> Right. And "f" is not a proper workaround for complicating "f". (Unless you're being very gracious.)
16:20:48 <ais523> haha, in order to put a Palm phone into developer mode, you enter the Konami code
16:26:29 -!- atehwa_ has changed nick to atehwa.
16:30:39 -!- hagb4rd has quit (Ping timeout: 255 seconds).
16:49:52 -!- monqy has joined.
16:53:12 <CakeProphet> ais523: all of the trendy tech scenesters would be like "everybody trendy already knows about that."
16:53:35 <CakeProphet> can you put -ster on the end of anything to make it sound condescending?
16:56:55 <CakeProphet> > map (++ "ster") $ (`replicateM` ['a'..'z']) >>= [1..]
16:56:56 <lambdabot> The section ``Control.Monad.replicateM`
16:57:13 <CakeProphet> > map (++ "ster") $ (`replicateM` ['a'..'z']) =<< [1..]
16:57:15 <lambdabot> ["aster","bster","cster","dster","ester","fster","gster","hster","ister","j...
16:58:08 <CakeProphet> a g-ster actually sounds like a somewhat cool person.
16:58:11 <atehwa> "not-to-be-taken-for-serious e"
16:58:58 <monqy> gster sounds like something people would call a somewhat cool person but is actually in reality ridiculous
17:43:06 -!- derrik has joined.
17:58:02 -!- Nisstyre has quit (Quit: Leaving).
18:06:21 -!- CakeProphet has quit (Ping timeout: 240 seconds).
18:21:48 -!- zzo38 has joined.
18:23:53 <cheater_> IBM PC (Model 5150) Guide to Operations, Part 1 of 2 http://www.retroarchive.org/dos/docs/pc_op_guide1.pdf
18:55:06 -!- cheater_ has quit (Ping timeout: 255 seconds).
18:58:39 -!- zzo38 has quit (Quit: zzo38).
19:04:33 -!- Nisstyre has joined.
19:09:00 -!- cheater_ has joined.
19:23:26 -!- oerjan has joined.
19:31:28 <oerjan> once again, everyone who has said anything interesting in the logs is gone now :(
19:32:32 <fizzie> Fortunately there is lambdabot and messages.
19:36:30 -!- cheater_ has quit (Ping timeout: 255 seconds).
19:40:56 -!- NihilistDandy has joined.
19:43:26 -!- cheater_ has joined.
19:46:56 <NihilistDandy> I was discussing with a coworker about number theory and programming, and the subject of whether loops or number theoretic algorithms are faster, in terms of processor instructions. For a toy example, consider summing the first 1 million digits.
19:48:42 <NihilistDandy> I was discussing number theory and programming with a coworker, and the subject of whether loops or number theoretic algorithms were faster (in terms of processor instructions) came up. For a toy example, consider summing the first 1 million digits.
19:55:33 <oerjan> fizzie: but that is not as fun :(
19:57:05 <oerjan> NihilistDandy: well i would be really surprised if a loop for that were faster than calculating 1000000*1000001/2 on any realistic hardware
19:57:41 <oerjan> er wait you said digits not numbers. what do you mean by that...
19:58:49 <oerjan> of course there must be less skewed examples...
19:59:30 <oerjan> like how bubble sort is faster than quicksort if the list/array is small enough
20:00:26 <oerjan> hm you were one of those who said something interesting
20:00:27 <oerjan> <NihilistDandy> I meant was the reason for the toroidal TV screen "being stupid"?
20:00:28 <NihilistDandy> I've been trying to find some definitive source on how multiplication is done at the processor level, but no one seems to agree (or everyone who does is several decades out of date)
20:00:46 <oerjan> it's not that unreasonable when you think of how scan lines work
20:01:03 <oerjan> it _is_ very close to a toroidal setup
20:01:11 <NihilistDandy> But it's unreasonable when you consider how watching TV works :D
20:01:42 <oerjan> NihilistDandy: i understand that modern processors use a huge circuit to do multiplication _very_ fast
20:02:15 <oerjan> while e.g. the old 6502/10's had no multiplication instruction and you needed to use shift/addition to write it
20:02:25 <NihilistDandy> That's my understanding, too, but they do it with (essentially) a huge number of partial products and additions
20:03:15 <oerjan> no... it is much faster
20:03:27 <oerjan> because it's parallelized, not a loop
20:04:09 <oerjan> but i think ais523 is the right person to ask about this
20:04:32 <oerjan> about how multiplication is done in modern processors
20:04:48 <ais523> oerjan: I'm not sure what sort of multiplier they use, there are several plausible sorts
20:05:16 <oerjan> yes but i assume you can explain how it's better than a shift/add loop
20:05:30 <ais523> actually, sometimes it is a shift-add loop
20:05:35 <ais523> but implementing it in hardware makes it much faster
20:06:38 <oerjan> anyway even a shift/add loop should be faster than directly adding 1..1000000 in a loop
20:07:52 <NihilistDandy> So, ais523, does an addition loop use more instructions than a multiplication? I suppose that's the basic question
20:08:17 -!- CakeProphet has joined.
20:08:17 -!- CakeProphet has quit (Changing host).
20:08:17 -!- CakeProphet has joined.
20:08:26 <ais523> NihilistDandy: the number of instructions is pretty much irrelevant when it comes to speed
20:08:29 <ais523> not all instructions are equal
20:08:51 <ais523> if it's about program length, you'd just use the processor's multiply instruction
20:08:58 <ais523> as it's nice and short compared to a loop
20:09:05 <ais523> what is it about, then?
20:09:16 <ais523> when you write a*b in a program, or whatever?
20:09:28 <ais523> it compiles it into the processor's multiply, which puts it into a dedicated multiply circuit
20:09:49 <ais523> DSPs normally have very fast multiply circuits that take up a lot of silicon space, because doing lots of multiplications quickly is their main purpose for existence
20:09:56 <oerjan> CakeProphet: are you actually present?
20:10:02 <ais523> regular processors, even if it takes 10 times as long as any other instruction, it's still going to be gine
20:11:27 <NihilistDandy> ais523: I'm not really concerned about how long it takes. My only real question is "Are there fewer processor instructions in an additive loop or a multiplicative algorithm?"
20:11:46 <ais523> oh, you're concerned about instruction /count/?
20:12:04 <ais523> a multiplication and addition are both one instruction (imul and add, respectively)
20:12:10 <ais523> add takes fewer bytes to represent in x86, at least
20:13:38 <pikhq> Instruction count is a very weird thing to ask about, though.
20:13:42 <NihilistDandy> So, if I'm following you correctly, adding the numbers 1..1000 in an additive loop uses at least 1000 instructions (though likely more), and (1000*1001)/2 uses approximately 3?
20:13:56 <NihilistDandy> pikhq: I know. It's just what the discussion turned to.
20:14:08 <pikhq> Instruction count means absolutely, positively *nothing* on modern CPUs, after all.
20:14:16 <oerjan> oh it's actually performed instructions, not source size...
20:14:32 <NihilistDandy> ais523: Awesome, then number theory and I won that discussion after all :D
20:14:40 <ais523> I didn't believe the question either, that's why it took so long for me to work out what NihilistDandy meant
20:14:41 <pikhq> NihilistDandy: Still bloody weird. But at least you realise it's pointless. :)
20:14:56 <ais523> the great thing about the channel, though, is that you get an answer even if people don't understand why the question
20:15:19 <ais523> whereas in most channels, you get told off for asking questions like that
20:15:50 <ais523> hmm, does anyone know if Debian keep old versions of things around in repositories?
20:15:56 <pikhq> Yeah, very few channels have the mindset of "Yeah, that person may just like asking stupid questions."
20:16:04 <ais523> e.g. if a security bug is fixed, can you grab the version pre-fix from anywhere?
20:16:05 <pikhq> ais523: They don't really do that *much*.
20:16:16 <ais523> what about md5/sha1 hashes?
20:16:38 <fizzie> ais523: At least not in the same places, because if you try to install things without updating your copy of the indices, you tend to get 404 errors relatively soon.
20:16:43 <ais523> so that if someone gives you a library and says "this is version 3.4.foo of bar from Debian", you can verify that they're telling the truth and haven't given you a malicious executable
20:16:46 <pikhq> Oh, snapshot.debian.org
20:17:15 <pikhq> They store all old package versions.
20:17:22 <ais523> thanks, that's exactly what I wanted
20:17:23 <pikhq> Well, from 2005 to present.
20:19:48 <fizzie> ais523: The hashes of binary packages are also mentioned in the "accepted X" emails sent on the foo-changes@ mailing lists, which are archived. Not sure if there's an easy way to navigate those, though, since packages.qa.debian.org just links to the newest twenty or so.
20:20:31 <oerjan> <Sgeo> elliott, don't click this until you read new Homestuck update, but I just want to say I'm lolling at http://bit.ly/nJn669
20:20:43 <oerjan> i wonder who actually gets paid for .ly domains now...
20:21:42 <pikhq> Libya Telecom & Technology.
20:21:59 <pikhq> Though they *probably* aren't running too well.
20:22:26 <oerjan> if they even have standing offices anymore
20:22:56 <pikhq> How fucked is Tripoli, anyways?
20:23:30 <pikhq> Like, 15 or 20 on a scale from 1 to 10?
20:23:57 <NihilistDandy> Like B---------------O----------------D this fucked
20:24:16 <oerjan> i was going to say 9 as a wild guess. although presumably that mostly applies to government buildings...
20:26:47 <pikhq> oerjan: LT&T is pretty much a government thing.
20:27:29 <oerjan> at least their website is up
20:27:36 <pikhq> oerjan: It's ran by the son of al-Gaddafi, so...
20:27:59 <oerjan> _the_? he has at least a handful and some are dead.
20:28:49 <oerjan> actually it may be just one dead so far, i haven't paid attention
20:33:02 <fizzie> Google's traffic report seems to suggest there's actually a bit more interweb traffic out of Libya after about mid-July; the curve's been pretty flat since beginning of March: http://www.google.com/transparencyreport/traffic/?r=LY&l=EVERYTHING&csd=1296645717109&ced=1311539850000
20:33:13 <oerjan> <twice11> @pl \l1 l2 a b -> (l1 a) == (l2 b)
20:34:05 -!- derrik has quit (Quit: over and out).
20:34:47 <oerjan> :t uncurry (==) . (?l1 *** ?l2)
20:34:48 <lambdabot> forall a (a1 :: * -> * -> *) b b'. (Eq a, ?l1::a1 b a, ?l2::a1 b' a, Arrow a1, Functor (a1 (b, b'))) => a1 (b, b') Bool
20:36:18 <oerjan> :t uncurry (uncurry (==) . uncurry (***))
20:36:19 <lambdabot> Couldn't match expected type `b -> c' against inferred type `Bool'
20:36:19 <lambdabot> In the first argument of `(.)', namely `uncurry (==)'
20:36:19 <lambdabot> In the first argument of `uncurry', namely
20:37:05 <oerjan> :t uncurry ((uncurry (==) .) . uncurry (***))
20:37:06 <lambdabot> forall b b' c'. (Eq c') => ((b -> c', b' -> c'), (b, b')) -> Bool
20:37:31 <oerjan> :t curry ((uncurry (==) .) . uncurry (***))
20:37:31 <lambdabot> forall (a :: * -> * -> *) b b' c'. (Eq c', Functor (a (b, b')), Arrow a) => a b c' -> a b' c' -> a (b, b') Bool
20:37:56 <oerjan> :t curry ((uncurry (==) Prelude..) . uncurry (***))
20:37:56 <lambdabot> forall b b' c'. (Eq c') => (b -> c') -> (b' -> c') -> (b, b') -> Bool
20:39:15 <oerjan> :t curry (curry . (uncurry (==) Prelude..) . uncurry (***))
20:39:15 <lambdabot> forall b b' c'. (Eq c') => (b -> c') -> (b' -> c') -> b -> b' -> Bool
20:39:49 -!- Phantom_Hoover has joined.
20:39:50 -!- Phantom_Hoover has quit (Changing host).
20:39:50 -!- Phantom_Hoover has joined.
20:39:59 <oerjan> i guess it may not be an improvement over the flips
20:47:01 <ais523> :t (return.) . (flip (>>=))
20:47:02 <lambdabot> forall (m :: * -> *) (m1 :: * -> *) a b. (Monad m, Monad m1) => (a -> m1 b) -> m1 a -> m (m1 b)
20:47:08 <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
20:47:12 <lambdabot> forall a1 r (m :: * -> *). (Monad m) => (a1 -> r) -> m a1 -> m r
20:47:16 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
20:47:20 <ais523> :t (flip (>>=)) . (return.)
20:47:20 <lambdabot> forall (m :: * -> *) a b. (Monad m) => (a -> b) -> m a -> m b
20:47:37 <ais523> I worked that out last night, and it increased my understanding of monads somewhat
20:47:43 <lambdabot> Source not found. Your mind just hasn't been the same since the electro-shock, has it?
20:47:54 <lambdabot> liftM f m1 = do { x1 <- m1; return (f x1) }
20:48:01 <ais523> I prefer my definition
20:48:11 <oerjan> seq cannot be defined in haskell, except for specific datatypes, and not at all e.g. for functions.
20:48:57 <oerjan> @undo do { x1 <- m1; return (f x1) }
20:49:06 <oerjan> @pl m1 >>= \ x1 -> return (f x1)
20:49:19 <pikhq> The power of Caleskell.
20:49:35 <oerjan> i don't think @pl is the same as caleskell
20:50:07 -!- Phantom_Hoover has quit (Ping timeout: 264 seconds).
20:50:08 <pikhq> I thought the `fmap` there was, though.
20:50:18 <pikhq> In normal Haskell, that'd have a different type.
20:50:39 <oerjan> not really, @pl just doesn't distinguish liftM from fmap
20:50:49 <oerjan> any reasonably Monad should have them equal
20:54:11 -!- ais523 has quit (Remote host closed the connection).
20:56:23 <oerjan> <fizzie> CakeProphet: For a fixed arity, I suppose you can always work around the lack of (`f`) with (\x y -> (x`f`y)). Especially if you choose suitably easily overlookable Unicode characters for x and y. (\ו י -> (ו`f`י)) maybe?
20:56:45 <oerjan> um (`f`) _would_ be equivalent to (f) if it worked
20:57:02 <fizzie> Well, yes, but it doesn't.
20:57:18 <oerjan> i mean you can work around it by simply saying (f) :P
20:57:42 <fizzie> The "point" (I use the word very loosely) was to say "f" in a more complicated way.
20:58:23 <oerjan> however (\x y -> (x`f`y)) is _not_ quite the same as f, if f is not a two-argument functino
20:58:40 <fizzie> Right, that's why it's just a workaround.
20:59:05 <olsner> functinos, the elementary particles of functional programming
20:59:08 <fizzie> An imperfect one, that is.
21:00:00 <fizzie> Deewiant gave a slightly better one a bit later.
21:02:13 <twice11> oerjan: Quite impressive, but really no improvement over the flips.
21:04:08 <lambdabot> forall (a :: * -> * -> *) b c b' c'. (Arrow a) => (a b c, a b' c') -> a (b, b') (c, c')
21:18:56 -!- CakeProphet has quit (Ping timeout: 260 seconds).
21:27:48 -!- zzo38 has joined.
21:47:37 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:04:48 -!- TeruFSX has joined.
22:12:33 -!- TeruFSX has quit (Read error: Connection reset by peer).
22:14:55 -!- TeruFSX has joined.
22:17:04 <Sgeo> From Doctor Who WMG:
22:17:05 <Sgeo> "One of the Characters is a Time... oh, wait.
22:20:12 <Sgeo> http://tvtropes.org/pmwiki/pmwiki.php/WMG/DoctorWho I'm loving this
22:20:34 <Sgeo> Wild Mass Guessing
22:20:45 <Sgeo> One theme in WMG pages is that one of the characters is a Time Lord
22:20:56 <Sgeo> So, in Doctor Who, well...
22:21:27 <NihilistDandy> My favorite WMG was "The Doctor is *not* a Time Lord"
22:27:40 <olsner> "The Doctor is a fruit fly" this one rings true to me
22:29:17 <zzo38> I looked at ZPAQ and it seems to contain many redundant opcodes.
22:30:36 -!- TeruFSX has quit (Ping timeout: 276 seconds).
22:30:56 <zzo38> Opcodes 4, 136, and 196 are all equivalent.
22:31:04 <zzo38> Opcode 64 is useless.
22:31:30 <zzo38> Opcodes 224 and 232 are equivalent.
22:43:34 -!- NihilistDandy has quit (Quit: cookin').
22:45:16 -!- MDude has quit (Ping timeout: 240 seconds).
22:52:56 -!- elliott_ has joined.
22:56:34 <elliott_> 01:41:41: <Lymee> I'm doing the Mandelbrot set with this: length $ takeWhile ((<2) . magnitude) $ take maxIters $ iterate step $ 0.0 :+ 0.0
22:56:38 <elliott_> use . instead of chained dollars
23:07:55 <zzo38> Actually I think opcode 208 seems also equivalent to opcode 4
23:08:25 <zzo38> As well as opcode 160
23:09:11 <zzo38> No, wait... opcode 208 isn't.
23:10:46 <zzo38> But opcode 168 is the same as opcode 64, and opcode 176 is the same as opcode 4.
23:14:17 <zzo38> Actually I think opcode 160 might result in undefined behavior in some implementations if A is zero
23:19:33 <elliott_> 02:50:37: <Lymee> http://pastebin.com/PXcS0k5G < is my code horrible?
23:19:41 <elliott_> Lymee: don't use exception handling to handle your failed pattern match.
23:20:14 <elliott_> Lymee: also, add top-level type signatures, and ditch parseInt/parseDouble, they're just kludges for not declaring your types.
23:21:05 <elliott_> 03:09:45: <oerjan> well -O2 is effective, iirc -O3 sometimes gets worse, and i don't think there's a difference beyond that
23:21:14 <elliott_> oerjan: cabal does -O by default because -O[two] is usually wasteful
23:22:40 <oerjan> well i corrected myself after actually looking at the manual
23:22:50 <elliott_> 03:24:57: <cheater_> http://www.malevole.com/mv/misc/killerquiz/
23:22:50 <elliott_> it's ancient but mostly way too easy
23:23:14 <elliott_> 04:34:56: <CakeProphet> honestly are there programmers out there who think abstraction is in general bad?
23:23:14 <elliott_> yes, or more generally manual abstraction
23:23:34 <elliott_> there's some work on basically making copy-and-paste "safe", by the logic that we all do it anyway
23:23:39 <elliott_> and abstract automatically like that
23:23:45 <elliott_> subtext is IIRC based around that in part
23:24:16 <monqy> how does that work
23:25:11 <elliott_> monqy: by making changes of copied stuff turn into parameters, presumably
23:26:28 -!- azaq23 has joined.
23:26:59 <oerjan> elliott_: if he's not to use exception handling he'd have to use reads, which is rather more awkward there.
23:27:26 <elliott_> ?hoogle (Read a) => String -> Maybe a
23:27:26 <lambdabot> Network.CGI.Protocol maybeRead :: Read a => String -> Maybe a
23:27:26 <lambdabot> Network.CGI readCookie :: (Read a, MonadCGI m) => String -> m (Maybe a)
23:27:26 <lambdabot> Network.CGI readInput :: (Read a, MonadCGI m) => String -> m (Maybe a)
23:27:31 <elliott_> <lambdabot> Network.CGI.Protocol maybeRead :: Read a => String -> Maybe a
23:27:54 <oerjan> i suspect maybeRead is what you mean
23:27:55 <elliott_> 12:50:56: <Sgeo> http://www.reddit.com/r/programming/comments/ixkql/how_to_make_a_compiler_1000_times_faster/c27guh6 I... uh...
23:28:04 <elliott_> oerjan: yeah but the module :P
23:28:45 <elliott_> 13:05:56: <Sgeo> http://sds.podval.org/ocaml-sucks.html is it just me or does this article have a mix of stupidity and insight?
23:28:46 <elliott_> i looked at this guy's homepage when i saw this and started ignoring him after seeing "support Israel's right to self-defense!" and a link to esr's Anti-Idiotarian Manifesto
23:29:00 <elliott_> but... that article on ocaml is pretty reasonable.
23:29:04 <Sgeo> elliott_, did you see my earlier log ping of you?
23:29:24 <elliott_> 08:59:54: <Sgeo> elliott, don't click this until you read new Homestuck update, but I just want to say I'm lolling at http://bit.ly/nJn669
23:29:35 <elliott_> i raged when i saw the first line with multiple commas about half-way through
23:29:39 <elliott_> but then i was laughing too hard to rage
23:31:19 <elliott_> 13:23:53: <itidus20> and they have the audacity to make claims on the computational power of the known universe
23:31:28 <elliott_> itidus20: it is not audacity to make predictions based on available evidence.
23:31:55 <itidus20> as long as they realize their own axioms are all fragile
23:32:12 <Sgeo> What does "fragile axiom" even mean?
23:32:23 <itidus20> it means that it will eventually break
23:32:37 <elliott_> ok, you've stopped making sense so i can't respond to that.
23:32:40 <Sgeo> I mean, sure, you could question whether some math equations actually do apply to the real world, but axioms are just...
23:33:04 <oerjan> well they _do_ know that, with the whole quantum mechanics vs. general relativity inconsistency
23:33:22 <Sgeo> Although I guess it is possible to eventually discover that commonly used axioms lead to a contradiction
23:33:50 <itidus20> there is no end to it.. every last axiom will probably get contradicted given sufficient "time"
23:34:04 <oerjan> @hoogle Read a => String -> a
23:34:04 <lambdabot> Prelude read :: Read a => String -> a
23:34:04 <lambdabot> Text.Read read :: Read a => String -> a
23:34:04 <lambdabot> Prelude readIO :: Read a => String -> IO a
23:34:21 <oerjan> @hoogle Read a => String -> m a
23:34:21 <lambdabot> Prelude readIO :: Read a => String -> IO a
23:34:21 <lambdabot> System.IO readIO :: Read a => String -> IO a
23:34:21 <lambdabot> Network.CGI.Protocol maybeRead :: Read a => String -> Maybe a
23:34:33 <elliott_> itidus20: And you have the audacity to make claims about the strength of every axiom?
23:34:48 <elliott_> "as long as they realize their hypocrisy is fragile"
23:34:53 <oerjan> oh hm readIO could actually be used but it would be almost using exception handling :P
23:35:05 <elliott_> At least _they_ are experts in their field...
23:35:18 <elliott_> oerjan: it would involve using exception handling
23:35:26 <lambdabot> System.Timeout timeout :: Int -> IO a -> IO (Maybe a)
23:35:26 <lambdabot> Control.Applicative optional :: Alternative f => f a -> f (Maybe a)
23:35:32 <itidus20> i guess i'm not actually helping anyone with my comments
23:36:16 <elliott_> my point was not a personal one
23:37:24 <Sgeo> Every atheist would pretty much say that theologians are .. incorrect (well, every atheist who thinks about it.
23:37:26 <itidus20> we tend to claim that the one sure thing is death.. but we don't even know what that consists in.. death remains undefined
23:37:38 <Sgeo> And I still have reservations about saying "every atheist", but I think it makes sense here
23:37:50 <elliott_> Sgeo: for some specific definition of theology.
23:37:59 <elliott_> it is not impossible to make valid claims about beliefs and belief systems
23:38:19 <elliott_> if you think theology is just people saying "christianity is true" all day... well, lol @ you?
23:38:45 <elliott_> The only time I ever hear that is coupled jokingly with "taxes"
23:39:00 <itidus20> ok i think whats happening is that i have left a chatroom full of people always trying to ram a belief down my throat of a spiritual nature, to a room full of computer scientists who can actually relax
23:39:08 <elliott_> And we know what death consists of, i.e. we know generally what the process of death involves
23:39:19 <Sgeo> elliott_, oh, I was considering theology to be more of an assumption that the underlying belief is true. Or at least contain such an assumption. Rather than things of the form "Christianity says this, Judaism says this" etc
23:39:25 <elliott_> Some people attach additional spiritual elements to that moment, but that's separate from what "death" actually involves as far as our universe is concerned
23:39:46 <elliott_> Sgeo: Well, sure, it could take that form? But then it just has an implicit "If [belief] is true, then...".
23:40:37 <elliott_> I don't know much about theology, but it seems that the only way it could consist entirely of false statements was if it was literally a party game involving saying that your religion is true
23:40:45 <elliott_> oblig.: And that's called church
23:41:15 <oerjan> elliott_: i suspect optional may actual do the right thing, assuming IO has the Alternative instance i expect
23:41:23 <itidus20> i was in a chatroom with a bunch of people who hated everyone
23:41:41 <lambdabot> Couldn't match expected type `f a'
23:41:41 <lambdabot> against inferred type `GHC.Types...
23:41:49 <elliott_> > optional (read ")" :: Int) :: IO (Maybe Int)
23:41:49 <lambdabot> Couldn't match expected type `GHC.Types.IO GHC.Types.Int'
23:42:03 <elliott_> itidus20: no, we just hate Vorpal and cheater_ here ;-)
23:42:06 <elliott_> ?ty optional (read ")" :: Int) :: IO (Maybe Int)
23:42:07 <lambdabot> Couldn't match expected type `IO Int' against inferred type `Int'
23:42:07 <lambdabot> In the first argument of `optional', namely `(read ")" :: Int)'
23:42:07 <lambdabot> In the expression: optional (read ")" :: Int) :: IO (Maybe Int)
23:42:23 <lambdabot> Control.Applicative optional :: Alternative f => f a -> f (Maybe a)
23:42:23 <lambdabot> Text.Parsec.Combinator optional :: Stream s m t => ParsecT s u m a -> ParsecT s u m ()
23:42:23 <lambdabot> Text.ParserCombinators.ReadP optional :: ReadP a -> ReadP ()
23:42:32 <elliott_> oerjan: I don't know if it has one
23:43:03 <elliott_> oerjan: IIRC that catching errors in IO doesn't catch pure errors
23:43:15 <elliott_> Prelude Control.Applicative Control.Exception> optional (evaluate (read ")") :: IO Int)
23:43:15 <elliott_> No instance for (Alternative IO)
23:44:05 <elliott_> http://esolangs.org/w/index.php?title=User:Alexanderdna&curid=4076&diff=24010&oldid=24004
23:44:17 <elliott_> oerjan: can i say grml is that o.k.
23:44:31 <itidus20> but among those hateful people i did find one guy who started to teach me actual things
23:46:13 <itidus20> I am confused about the truth of axioms.
23:47:04 <itidus20> The numbers 0,1,2,3,4,5 can be expected to hold firm for millions of years
23:47:13 <lambdabot> Overlapping instances for Control.Monad.MonadPlus GHC.Types.IO
23:47:26 <elliott_> MonadPlus m => Alternative (WrappedMonad m)
23:47:26 <elliott_> (ArrowZero a, ArrowPlus a) => Alternative (WrappedArrow a b))
23:48:16 <itidus20> but the question then is can the countability of things dissapear ever? or rather... can the potential of someone to exist who can count ever dissapear?
23:48:30 <itidus20> can any potential ever dissapear?
23:49:01 <itidus20> and what is the substance of which potentials are made :-?
23:49:30 <elliott_> does there have to be a substance
23:50:50 <itidus20> so, then the question probably becomes, what are the dependant factors of potential
23:51:22 <itidus20> i mean, what is potential dependant upon
23:51:38 <itidus20> and i'd rather make a coffee than worry about that right now
23:53:03 <elliott_> oerjan: hm try :: Exception e => IO a -> IO (Either e a)
23:53:23 <elliott_> ?hoogle \a b -> catch a (const b)
23:53:23 <lambdabot> --count=20 "\a b -> catch a (const b)"
23:53:42 <elliott_> empty = ioError (userError "empty")
23:54:15 <oerjan> <itidus20> [...] to a room full of computer scientists who can actually relax <-- you _do_ realize there are a considerable number of sometimes a bit insistent atheists in here, right?
23:56:17 <itidus20> atheism means an army without a leader :D
23:57:10 <itidus20> Someone noticed he looks like Emma Watson
23:57:14 <elliott_> does christianity have a leader? buddhism?
23:57:39 <itidus20> http://images.icanhascheezburger.com/completestore/2008/10/6/128677918460759115.jpg
23:58:07 <elliott_> itidus20: plenty of buddhist sects are atheistic (in the technical sense)
23:58:27 <itidus20> ya.. the room i was in was full of buddhists.. but that doesn't make me a buddhist. i was more a spectator
23:58:38 <monqy> sgeo goes to #jesus
23:58:41 <monqy> or at least he used to
23:58:46 <oerjan> <elliott_> > optional (read ")" :: Int) <-- sheesh i meant with readIO duh
23:58:52 <monqy> hes totaly a christan
23:58:57 <itidus20> i'm more level headed than most of them
23:59:22 <itidus20> but teres a few ya see who are just completely nuts
00:01:00 <itidus20> someone points out that emma watson pic probably photoshopped
00:03:56 <itidus20> the conclusion i have reached is that religions can't make any claims which are beyond question and still have anything to do with them being religions
00:04:02 <zzo38> I have thought of a few more things about the algorithm I was having problems with recently.
00:04:34 <itidus20> in other words, to 'force' a conversion you have to distort the truth somehow
00:05:05 <zzo38> If you have "A[B]C", then maybe you can deal with "AB" and "AC" separately and then figure out if there is combined way of results like that
00:05:35 <zzo38> Because the result of "A" must agree in the final output
00:06:21 <monqy> itidus20: some people are gullible or think badly
00:07:04 <itidus20> monqy: yup.. in addition, many people are manipulative and opportunistic
00:07:20 <zzo38> If you have "YZ" but "Y" and "Z" has no words shared in them (such as "-a-a-a-a-a-b-b-b-b-b-a-a-c-c-c-c-c-d-d-d-d-d-c-c-c") then you can treat them separately; I don't know if this helps though.
00:08:45 <oerjan> itidus20: this reminds me of a comment i found on godel's lost letter today: "Buddhism discourages insistence (執著). A common pitfall is to insist on being non-insist."
00:08:54 <zzo38> If there is a word that can only appear once, then possibly it can be ignored.
00:09:16 <oerjan> (in fact i thought of you while reading it, since i had the impression you were something like a buddhist)
00:09:45 <zzo38> oerjan: I have read something like that.
00:10:18 <oerjan> (http://rjlipton.wordpress.com/2011/07/23/self-defeating-sentences/#comment-12512)
00:12:29 <oerjan> zzo38: the problem with dealing with AB and AC separately is that the combined cost is essentially A+B+C, meaning that the optimal choice for A might be different in AB, AC and A[B]C
00:12:43 <oerjan> this reminds me of subset sum and that kind of problem
00:13:28 <oerjan> which might lead to a way of proving it NP-complete, perhaps
00:13:38 <zzo38> oerjan: Yes now I can see that too. What is subset sum and that kind of problem?
00:14:17 <oerjan> or maybe hamiltonian circuit stuff as well
00:14:31 <oerjan> any NP-complete problem which requires summing things, i guess
00:14:47 <oerjan> er wait not hamiltonian
00:14:52 <zzo38> What is hamiltonian circuit stuff? I don't know much about these kind of things. I do not have much experience with it.
00:15:01 <itidus20> oerjan: i hanged out with them.. i never admitted to being one though
00:15:24 <zzo38> I can look in Wikipedia some things
00:15:43 <oerjan> zzo38: traveling salesman is the problem where you have a map (really graph) with distances between "cities" and you want to find the shortest path which passes through all of them
00:15:48 <itidus20> and i met this one buddhist who was actually quite wise..
00:16:59 <itidus20> I learned to approach buddhism with a wikipedia mindset.
00:17:10 <zzo38> oerjan: Yes the traveling salesman is one I have heard of, and yes I know what that is. (I don't know much else about it, except that one cover of mathNEWS joked about finding a O(1) solution (which is, shooting them).)
00:17:24 <itidus20> Taking each piece of "text" which comes to me and wondering what it's source is.
00:18:19 <itidus20> ok ok as an example.. as an example
00:18:29 <itidus20> take the bible.. there is no abstract bible.
00:18:36 <oerjan> zzo38: oh i realized something, it is not fixed which names have to printed inside each [ ] is it. so you can move printing things across the brackets...
00:18:56 <oerjan> that makes it even more complicated
00:18:59 <itidus20> each bible was published somewhere.. edited by someone.. liable to errors by that publisher and that editor
00:19:09 <zzo38> oerjan: Moving things across brackets is not allowed.
00:19:51 <zzo38> (Unless it is only temporary in order to help with the algorithm)
00:20:58 <itidus20> as I gradually start to see things this way I started gradually dismissing buddhism etc. attacking it with loud rants.
00:21:21 <zzo38> Although it doesn't look to be the same problem as hamiltonian or traveling salesmen, I don't know whether there can be similar ideas or not.
00:21:31 <itidus20> and then slowly i started to see that some of the people i thought were friends there were actually just manipulative like rotten apples.
00:21:33 <oerjan> yes iirc buddhism has some trouble tracing back its sources
00:22:13 <oerjan> islam tried very hard to avoid that, by getting things written down as soon as possible. but of course you still have to believe in muhammed for it.
00:22:40 <itidus20> the trick is to just force everything to follow the rules of logic
00:23:15 <oerjan> (i think muhammed criticized older religions for being unreliable in that way, so his followers had particular reason)
00:23:41 <elliott_> lol muhammad was all "let's make this one LAST, guys"
00:24:47 <itidus20> when arguing iwth muslims my attack tends to be of the form "suppose that allah lied to the prophet, or mixed truths with lies"
00:25:22 <itidus20> because they tend to base their case on how the quran contains truths
00:26:39 <itidus20> its also worth mentioning that apparently the name means "true god" and yet it is never translated as such which is curious
00:27:01 <itidus20> and im sure theres some psychological tactic to giving him 100 names
00:27:44 <Vorpal> <oerjan> yes iirc buddhism has some trouble tracing back its sources <-- on the other hand, Buddhism iirc clearly states that the stories are based on what they heard for a few generations.
00:28:02 <itidus20> but religions as we see them today are set up like puzzles for the houdini to wrestle his way out of
00:28:13 <Vorpal> oerjan, so they kind of avoid the problem by explicitly stating that it may or may not be a perfect account
00:28:28 <itidus20> it is not a perfect account :D
00:28:44 <Vorpal> itidus20, exactly. And it openly admits it
00:28:49 <Vorpal> itidus20, that is my point
00:29:02 <zzo38> Are there other Wikipedia articles that have things that can have some things related to my problem?
00:30:08 <itidus20> vorpal: yeah... but then... you come at buddhism thinking, well is there anything of value in this if i try to have a mindset of seeking truths rather than trying to abide by some community's sense of oblivion
00:30:29 <Vorpal> itidus20, hm? I'm not sure I understand what you meant there
00:30:46 <itidus20> right. i'll try and use proper english
00:31:02 <Vorpal> itidus20, don't worry, it is not my native language anyway ;P
00:31:37 <itidus20> oh what i said makes no sense. that is true
00:31:51 <Vorpal> right, not just me then
00:32:33 <itidus20> basically, there are certain properties common to religions.. a certain heavyness. creating obedience, followers, worshippers. blind faith
00:32:57 <Vorpal> itidus20, not blind faith when it comes to Buddhism though
00:33:23 <Vorpal> itidus20, I believe one of the books openly state that you should question everything.
00:33:30 <itidus20> but even buddhism has this dominating presence
00:33:30 <elliott_> yes nobody ever corrupts religious texts
00:33:47 <elliott_> fuck this meme of buddhism being this perfect beautiful religion of peaceful nice people NOT LIKE THOSE OTHER RELIGIONS
00:33:51 <itidus20> it's a very subtle aspect of religions, almost unspoken.
00:33:57 <Vorpal> I'm not a Buddhist myself, but... looking at the major religions it seems the one *least* out of touch with the modern world
00:34:10 <Vorpal> I'm perfectly happy to not believe in a religion.
00:34:30 <elliott_> ha ha ha ha ah ah h ha ha haha ha ha ha ha haha
00:34:36 <Vorpal> elliott_, come on, tell us what is so funny
00:34:47 <oerjan> zzo38: maybe http://en.wikipedia.org/wiki/List_of_NP-complete_problems unfortunately it has many non-existent links
00:35:10 <monqy> a certain someone didnt fuck a certain meme when eliot told -- to
00:35:12 <itidus20> vorpal: the thing is though. simply including a few lines to say "you should question everything" doesn't entirely outweigh the reality-warping presence of a religion.
00:35:18 <Vorpal> elliott_, I never claimed buddism was perfect... But as far as I know there has been no holy wars in its name for example.
00:35:22 <monqy> this is hihgly funyn
00:35:42 <Vorpal> itidus20, that is true
00:35:43 <itidus20> it's a valuable statement yeah.
00:35:48 <elliott_> any holy wars in zoroastrianism's name
00:36:00 <Vorpal> elliott_, I never heard of that religion even
00:36:11 <itidus20> uhh.. it's such a statement can be used to lure people into a sense of security
00:36:33 <itidus20> so then it gets very confusing as to where to proceed next
00:37:27 <itidus20> with religion, there is this tendancy to let the mind relax and just believe any nonsense as if under hypnosis
00:37:48 <Vorpal> itidus20, good point indeed. But why not follow the advice of putting the religion itself under scrutiny. If you feel you need a religion at all.
00:38:20 <itidus20> the ones who do tend to be abrasive and cynical
00:38:53 * elliott_ bets Vorpal thinks buddhism doesn't have a hell either
00:39:09 <monqy> am i abrasive and cynical
00:39:12 <Vorpal> elliott_, well, that depends on how you define it.
00:39:17 <elliott_> Vorpal: no, it does not: http://en.wikipedia.org/wiki/Naraka_(Buddhism)
00:40:07 <Vorpal> elliott_, sorry you misunderstood it. I was talking about the bit about "thinks" here. I never considered it in fact. I haven't studied the religion in depth, and never claimed to have done that.
00:40:44 <itidus20> vorpal: so that last point i was making... its really about learning in general..
00:40:53 <itidus20> theres that point where a religion can't tell you
00:41:19 <itidus20> that whole idea about leading a horse to water
00:41:35 <Vorpal> itidus20, so pick up a few good suggestions about how to behave towards other people, and then ditch the rest of the religion :P
00:42:15 <itidus20> there is something which a person has to bring about on their own "like a horse drinking from the water"
00:43:09 <itidus20> like a person has an innate sense of how to seek truths
00:43:22 <itidus20> but, a religion sort of constrains them
00:43:33 <Vorpal> itidus20, You completely lost me now
00:44:21 <oerjan> i understand completely >:D
00:45:19 <oerjan> i may be exaggerating a bit
00:45:29 <itidus20> to deny everything in a religion is going too far
00:45:51 <itidus20> to deny nothing in a religion is not going far enough
00:46:12 <itidus20> buddhism also references "discrimination"
00:46:31 <Vorpal> itidus20, I was not suggesting you would explicitly deny it. Just leave it as "unknown" until further notice. Tri-state logic or something (okay, not quite that)
00:46:57 <elliott_> comex_: why're you trying to exile coppro
00:47:03 <itidus20> there is never any benefit from playing dumb when seeking truth
00:47:16 <itidus20> like.. pulling punches.. compromising.. making allowances..
00:48:23 <itidus20> and religions expect you to just make all these compromises for the benefit of said religion
00:49:21 <zzo38> oerjan: That list of NP-complete problems doesn't seem to help me much, especially since most are linked to nonexisting files
00:49:42 <itidus20> and so.. when thinking about a religion a suggestion comes to you "I should deny the evidence before me because my religion says so"
00:51:25 <itidus20> there is no room for white lies in the search for truth
00:51:37 <zzo38> I wonder if there are other ways to change my problem to equivalent ones
00:53:34 <oerjan> zzo38: well the usual way to prove a problem NP-complete is to make a reduction from an NP-complete problem to it, similar to turing-completeness (except the reduction must be polynomial time, not just computable)
00:54:43 <elliott_> oerjan: I used to wish there was an add-on term to TC that included being able to do things with the same time complexity, but then I realised that UTMs are slower than real-world computers
00:55:12 <elliott_> I'm not sure what the correct model is; things with bignum addresses tend to have constant-time natural arithmetic, which is, of course, impossible
00:55:52 <oerjan> yeah anything finer grained than polynomial tends to depend on model
00:56:40 <itidus20> and this leads up to asking if anything of value is left in buddhism if you approach it stoically, to never say "I should deny the evidence before me because my religion says so"
00:56:43 <oerjan> (of course some models like minsky machines don't even get that)
00:57:08 <itidus20> to never say "I should subvert my search for truth for some other purpose"
00:57:13 <elliott_> oerjan: which is upsetting... It seems "obvious" that you can't do addition in constant time, but explaining why tends to invoke a real-world-esque assembly language doing a bignum addition loop
00:57:21 <zzo38> oerjan: OK, I think I understand what you mean (a little bit, at least). I don't know if that can solve my problem, though, or how it can do so.
00:57:31 <elliott_> Why does our universe have these apparent time complexities?
00:57:48 <itidus20> to never say "I should subvert my search for truth because it makes buddhism look bad.. or it offends someone.. or it brings up things I can't face"
00:58:01 -!- Sgeo_ has joined.
00:59:22 <itidus20> and you can always suppose you were the only human left alive.. and try and put yourself in those shoes and wonder which artifacts of religion would persist in your mind despite all the people who care being dead
00:59:30 <elliott_> wow, there's a Wikipedia article on [[Essjay controversy]]
00:59:40 -!- Sgeo has quit (Ping timeout: 276 seconds).
01:00:10 <elliott_> itidus20: Everything would persist in your mind, you can't "undo" growing up in an environment
01:01:59 <Sgeo_> elliott_, why wouldn't it?
01:02:15 <Sgeo_> <elliott_> wow, there's a Wikipedia article on [[Essjay controversy]]
01:02:40 <elliott_> well, I forgot that it received significant media coverage
01:02:49 <elliott_> and I'm unsure how objective Wikipedia can be on that topic :P
01:03:38 <oerjan> zzo38: it's sad that the Code Generation section is entirely missing links
01:05:16 <oerjan> http://en.wikipedia.org/wiki/List_of_NP-complete_problems#Code_generation
01:05:45 <zzo38> oerjan: I can see that.
01:05:54 <zzo38> That isn't the only one.
01:06:07 <itidus20> (reminding that i am not a buddhist before i continue) i think there is a certain error where people invent conceptions to explain religions.
01:06:11 <elliott_> oerjan: Wikipedia tends to lack a lot of in-depth material on CS, I notice; I suspect with a lot of other topics, too
01:06:11 <zzo38> There are other problems entirely missing links
01:06:54 <itidus20> as far as a god goes, if such a god exists you won't find him by trying to imagine a subset of the universe and giving it a booming voice
01:07:13 <itidus20> if there is a god, you don't have to imagine it right? its not about imagining
01:07:24 <itidus20> its just an interpretation of what you see
01:08:22 <itidus20> suppose i suddenly found a box .. i could spend a week imagining what is inside it
01:08:59 <monqy> I'd probably get bored after a few minutes
01:09:03 <zzo38> And then someone will force you to look inside and now the state is changed due to observing it
01:09:12 <itidus20> well i could iterate through all the items in my bedroom
01:09:24 <itidus20> and suppose that similar items existed in the box
01:10:26 <itidus20> so imagination is not a very accurate tool
01:11:05 <monqy> you've gone confusing again
01:11:19 <itidus20> well suppose the universe is the box
01:11:36 <itidus20> and the reason you can't see is because its too big instead of too small
01:12:11 <itidus20> now if you imagine a god it might be outside of this box, or inside of it, (or both, or neither... )
01:12:41 <itidus20> or maybe its an analogy which can't go far enough
01:12:47 <monqy> whats a god................................
01:12:58 <Sgeo_> My opponent's plan doesn't go too far enough!
01:13:34 <monqy> does your plan go too far enough
01:13:42 <itidus20> im not entirely atheist.. im more agnostic i think
01:14:03 <itidus20> if i'm scared enough i'll pray
01:15:16 <itidus20> but then theres this idea of the economics of, on the one hand, a group proliferating the idea of a god, and on the other hand people deriving a sense of security from it
01:16:00 <elliott_> praying in times of stress doesn't stop you being an atheist, it just means you're being irrational at the time (as far as an atheist is concerned)
01:16:04 <itidus20> and a supply demand idea of: if people like me didn't thump bibles all day you wouldn't have any god to take refuge with in times of stress
01:16:12 <elliott_> it would be kind of cool if atheism made you ALL RATIONAL ALL THE TIME
01:16:33 <itidus20> yeah, atheism is a bit of a religion like that..
01:16:49 <itidus20> it is sticking to a hard line for its own sake rather than examining evidence on it's own merits
01:17:08 <elliott_> nah, that's a corruption of the term by idiots who ~just deconverted~ and religious people
01:17:25 <zzo38> oerjan: I wonder if anyone else can help me, too, with my problem?
01:17:28 <elliott_> to trot out a cliché but accurate example, you wouldn't give credence to the idea of Russell's teapot, either
01:17:44 <elliott_> any "atheist" who thinks they can "disprove" god or that it's LOGICALLY false or whatever is just an idiot
01:18:00 <Sgeo_> elliott_, doesn't that depend on the definition of "god" in question?
01:18:35 <itidus20> but the idea of prayer as being rational or irrational.. itself may be irrational :P
01:18:38 <elliott_> Sgeo_: plz no, stop before you show ur prolog
01:19:00 <elliott_> itidus20: well from an atheist perspective, thinking prayer will produce results because a god will answer it is obviously irrational
01:19:23 <Sgeo_> Prayer could produce the "result" of calming you down, even from an atheist perspective
01:20:17 <elliott_> well duh. that still requires suspension of disbelief, which stress happily provides
01:21:22 <itidus20> since prayer is worked by imagining a thing being prayed to
01:21:55 <itidus20> which is no doubt due to millenia of this and that
01:22:36 <itidus20> one day maybe the target of prayers won't be a self-interested entiyt
01:23:19 <monqy> what do you mean by that
01:23:48 <elliott_> well prayer like any ritual could act as stress relief.
01:23:56 <elliott_> I would not call it prayer if you don't expect it to "do" anything, though
01:24:09 <monqy> do you mean "one day maybe people will pray to something that isn't a self-interested entity" or "maybe one day the things to which people pray won't be so self-interested"
01:24:59 <itidus20> maybe one day prayer won't be a covert taboo topic evoking religious imagery
01:25:16 <elliott_> prayer is like the least taboo thing, at least in some places
01:25:20 <itidus20> but that we are all conditioned to pray to pre-defined gods is clear
01:25:33 <Sgeo_> It's official, I'm a fucking idiot. I was pressing the power button on my case because I was convinced that my case falli't attached to anything. I was wrong
01:25:43 <Sgeo_> *falling apart meant it
01:26:38 <itidus20> im starting to lose a grip on reality in my posts now
01:27:23 <itidus20> pray to the flying spaghetti monster
01:28:37 <itidus20> yeah.. fsm is a constructed god
01:29:14 <itidus20> i don't know the story of all the gods etc
01:29:35 <itidus20> but fsm is certainly a constructed god just as scientology is a constructed religion
01:29:47 <itidus20> and how esperanto and lojban are constructed languages
01:30:56 <zzo38> Scientology is not a proper religion, I think
01:31:56 <elliott_> it's a cult, but cult is just a word for religions that do things people don't like
01:32:09 <zzo38> It is more like someone who try to earn money and keep everything secret and so on they have reports.
01:32:19 <elliott_> the Church of Scientology(tm) is obviously a completely abhorrent organisation, objectively, but I don't see how you can dismiss the beliefs any more than another religion
01:32:28 <elliott_> there are freezoners who practice the beliefs outside of the CoS.
01:32:56 <zzo38> elliott_: I don't know about the freezoners. But maybe they are a more proper religion; I don't know.
01:33:15 <elliott_> zzo38: religion =/= religious organisation
01:33:32 <elliott_> Scientology-ala-CoS and Scientology-ala-free-zoners may be sects but they're the same religion
01:35:22 <itidus20> linguistically "the truth" implies only one truth
01:36:15 <elliott_> the truth is the set of all things that are true
01:36:27 <elliott_> presumably you're proposing logical relativism
01:36:35 <itidus20> would the truth explain collective conciousness?
01:36:46 <elliott_> define "collective consciousness" :P
01:38:27 <itidus20> each individual probably has memories of being conscious in the past
01:38:35 <itidus20> former instances of their conciousness
01:38:54 <itidus20> and thus can potentially anticipate future instances of their conciousness
01:39:30 <itidus20> and can also try to guess what anothers conciousness is like.. but never really know
01:40:01 <itidus20> and so taking each individuals conciousness as a specific thing, one can imagine a generalization of conciousness
01:40:10 <itidus20> it has a visual field for example..
01:41:10 <elliott_> <itidus20> each individual probably has memories of being conscious in the past
01:41:13 <itidus20> they don't seem to occupy a known space
01:41:20 <elliott_> but at the same time, I don't see how this relates to "the truth"
01:41:36 <itidus20> _everything_ relates to "the truth" :P
01:42:01 <elliott_> how does the truth need to explain collective consciousness?
01:42:06 <zzo38> I don't think pure consciousness would have a visual field for sure. It might be related but I think it is not the same thing at all
01:42:09 <elliott_> (and why does the truth have any obligations at all?)
01:42:22 <itidus20> ok i am throwing a few fallacies around
01:42:47 <itidus20> given that i don't know what the truth is i can't assume everything relates to it]
01:42:58 <zzo38> My ideas of consciousness are very different and incomplete (mostly because I don't know everything).
01:43:59 <itidus20> answer is cos it would make life easier
01:44:34 <itidus20> it would be nice to make some general rule
01:44:46 <elliott_> itidus20: btw, i don't get an annoying reminder someone mentioned me if you misspell my name ;-) you could try tab completion ("ell<tab>" should do it)
01:45:54 <itidus20> i don't know if my client has name completion
01:46:26 <elliott_> one, every client does; two, you're using XChat
01:47:36 -!- Lymee has quit (Ping timeout: 240 seconds).
01:47:52 <itidus20> if i hit tab, it jumps around the GUI
01:47:56 <zzo38> I don't think every client does.
01:48:10 <itidus20> its just i don't know how to use the client
01:48:13 <zzo38> Maybe some have it optional or use different keys, too.
01:48:55 <elliott_> itidus20: you need to type in a name prefix first
01:49:18 <zzo38> Maybe you can use a macro if it would help better, I don't know...
01:50:04 <itidus20> why didn't you just say ""ell<tab>" "
01:50:16 -!- FireFly has quit (Quit: swatted to death).
01:50:27 <zzo38> Maybe "el" is ambiguous because "Elizacat" also has that prefix (and names are case insensitive in IRC)
01:50:41 <itidus20> i assumed i could get away with just typing 1 letter
01:51:29 * elliott_ goes to Settings → Preferences → Input box → Nick Completion and changes sorting to last spoken
01:51:42 <elliott_> you may want to check that configuration too, itidus20
01:51:56 -!- Lymee has joined.
01:52:17 <zzo38> What I do know, is, there is different tab completion, such as Windows and GNU have two different kind of tab completion. Windows completes the entire text and pushing tab again completes a different filename, with GNU it only completes the unambiguous part and then if you push again, it list all of them.
01:53:35 <elliott_> itidus20: * elliott_ goes to Settings → Preferences → Input box → Nick Completion and changes sorting to last spoken
01:53:43 <elliott_> then it'll always be me because i never shut up
01:53:49 <zzo38> I don't know if they can change tab completion option between Windows-style and GNU-style
01:56:02 <oerjan> maybe it doesn't actually start registering when people speak before you set the option
01:56:26 <itidus20> its good enough -- beter than be fore
01:59:01 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:07:37 <itidus20> i think the neighbors dog is in hear
02:08:00 <itidus20> rips the damn fence palings in 2 to see the neighbours dog
02:11:59 -!- cheater_ has joined.
02:13:11 -!- Nisstyre has quit (Quit: Leaving).
02:15:08 -!- Nisstyre has joined.
02:57:29 -!- derrik has joined.
03:07:44 -!- jcp|1 has joined.
03:08:26 -!- jcp has quit (Ping timeout: 250 seconds).
03:09:22 -!- jcp|other has quit (Ping timeout: 258 seconds).
03:13:51 -!- jcp has joined.
03:16:56 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:18:30 -!- jcp|other has joined.
03:18:57 -!- azaq23 has joined.
03:20:06 -!- jcp|1 has quit (Ping timeout: 258 seconds).
03:20:31 -!- jcp has quit (Ping timeout: 276 seconds).
03:20:42 -!- derrik has quit (Read error: Connection reset by peer).
03:27:22 -!- jcp has joined.
03:33:02 -!- MSleep has joined.
03:34:16 -!- jcp has quit (Ping timeout: 240 seconds).
03:35:01 -!- jcp|other has quit (Ping timeout: 246 seconds).
03:36:01 -!- jcp has joined.
03:41:21 -!- javawizard has joined.
04:19:28 -!- BeholdMyGlory has quit (Remote host closed the connection).
04:37:17 -!- TeruFSX has joined.
04:44:54 <Sgeo_> Randomly checked MSPA, there's an update
04:45:08 <Sgeo_> (Ok, so I'm not good, I've had a bunch of misses like that.)
04:45:13 <Sgeo_> (Is this like gambling?)
04:51:31 -!- TeruFSX has quit (Ping timeout: 276 seconds).
04:53:04 -!- TeruFSX has joined.
04:54:02 <Sgeo_> I may just give up on Chicken Scheme
04:54:48 <fizzie> What's wrong with the "there's an egg for that" Scheme?
04:56:11 <oerjan> nothing, Sgeo_ just always chickens out
04:56:39 * oerjan swats himself -----###
04:56:58 <Sgeo_> fizzie, I can't get eggs to install, and the fact that on the mailing list, a regular was unable to get the egg I wanted to install to install for himself, for a different reason, is not encouraging
04:57:03 <fizzie> And I didn't even need to groan.
04:57:17 <fizzie> Some of the eggs are a bit... rotten.
05:04:08 <elliott_> <elliott_> ^ul (fizzie: PUUUUUUUUUUUUUUUUSH)S
05:04:08 <elliott_> <fungot> fizzie: PUUUUUUUUUUUUUUUUSH
05:04:09 <fungot> elliott_: would the second statement you said allow for 0 or more instances of the " pc" of an acceptable size. :p
05:04:11 <fungot> elliott_: how would that work ( assuming you did everything right, which is deliminated by dollar signs. how can ( with a minimum amount of writing
05:07:16 -!- TeruFSX has quit (Ping timeout: 252 seconds).
05:19:50 <pikhq> Having meaningful, pleasant IRL social interactions is a fairly nice feeling.
05:20:30 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
05:33:47 <Sgeo_> <netdaemon> for instance, pass a hash to a procedure directly
05:33:53 <Sgeo_> <netdaemon> the keys and values get mixed up
05:33:53 <Sgeo_> <netdaemon> wat is that
05:34:00 <Sgeo_> <netdaemon> Sgeo_, the keys and values you set before you pass, are different inside what you pass it to
05:34:09 <Sgeo_> <netdaemon> in other words foo = 1, bar = 2, could end up foo = 2, bar = 1
05:34:09 <Sgeo_> <netdaemon> you *have* to pass it by reference
05:34:09 <Sgeo_> <netdaemon> or you get that crap
05:34:38 <Sgeo_> Can someone explain what's going on with that? If that's really as he said, that's... nonsensical
05:39:12 <zzo38> Yes, if it is how it says, why would it be like that?
05:39:35 <Sgeo_> That's what I'm asking here
05:40:00 <zzo38> Yes, I don't know either.
05:40:38 <zzo38> Let's make something like a text adventure game:
05:40:55 <zzo38> You are on the deck of a navy ship. You can see the flags and sails from here.
05:41:25 <zzo38> On the deck is the captain, the captain's brother, a bucket of fire, and some other sailors.
05:41:35 <zzo38> You can go fore or starboard.
05:42:32 <Sgeo_> I split myself into multple selves and let one self ascend to godhood
05:42:45 <zzo38> You are unable to. Try again.
05:43:44 -!- JamezQ has joined.
05:43:56 <zzo38> s/Try again/Please try again/
05:44:44 <Sgeo_> "The excess seen by the Atlas team has reached a 2.8 sigma level of certainty. A three-sigma result means there is roughly a one in 1,000 chance that the result is attributable to some statistical quirk in the data."
05:44:52 <Sgeo_> I'm not sure I would phrase that like that
05:45:23 <Sgeo_> Meh, doesn't matter
05:45:49 <zzo38> Sgeo_: I don't even know what the Atlas team is.
05:46:19 <zzo38> (There are three kind of lies: normal lies, really bad lies, and statistics.)
05:46:19 <Sgeo_> http://www.bbc.co.uk/news/science-environment-14266358
05:47:50 <zzo38> (Why don't you try something else in my game? Something other than splitting yourself and godhood and so on.)
05:48:16 <Sgeo_> Examine bucket of fire
05:48:59 <zzo38> The fire contains rags that were previously used for clothing but are now burnt and cannot be used. The fire is very low by now.
05:49:34 <Sgeo_> Sorry, I'm just being silly, not taking this game seriously
05:50:19 <zzo38> The fire goes out quickly due to your hand wet.
05:50:38 <zzo38> (Try something a bit less silly, perhaps.)
05:50:52 <zzo38> (And, yes, I am also reading that BBC article)
05:50:53 <Sgeo_> So I have a DM that won't let me die?
05:50:58 <Sgeo_> Well, I'm going to try
05:51:00 * itidus20 takes out a cell-shaded wind waker wand and changes the direction of the wind.
05:51:42 <zzo38> OK. You are now in the water. Your uniform is getting wet.
05:52:10 <Sgeo_> I exhale, put my head underwater, and take a few deep breaths
05:52:42 <zzo38> You try, but sink and drown before you are able. Now you are dead. You lose.
05:53:09 <zzo38> itidus20: OK you are just kidding. Try something else. From the start.
05:54:53 <zzo38> You can see some cargo blocking the way any direction except aft and down. Nothing else is in here.
05:54:53 <itidus20> oops.. i got confused.. ill go back to the deck
05:55:11 <zzo38> OK. Now you are back at the deck.
05:55:18 <zzo38> The whistle blows.
05:55:32 <zzo38> Being an experienced sailor, you can recognize that they want everyone on the deck by now.
05:55:39 <fizzie> Sgeo_: If you call sub(%foo) and %foo contains ("a" => 1, "b" => 2), it will push either "a", 1, "b", 2 or "b", 2, "a", 1 on the argument stack (@_) of the sub. So the order is not defined, but either way it will have keys and their corresponding values next to each other. And if you build a new hash with %bar = @_ inside the sub, then %bar will contain the same keys and values as %foo.
05:55:56 <zzo38> The same things are on the deck as before, plus Also, and some other doppelgangers.
05:56:08 <zzo38> s/doppelgangers/sailors/
05:56:18 <zzo38> (Why did I write doppelgangers? That makes no sense.)
05:56:31 <Sgeo_> fizzie, he's supposedly not complaining about undefined order, just that keys and values don't stay associated
05:56:47 <Sgeo_> fizzie, he left, when he's next on, I'll ask for a concrete example
05:57:03 <zzo38> The captain of this ship is a man of average height and is wearing a captain's uniform. He is holding a spyglass.
05:57:47 <itidus20> Talk to captain. (should i specify what i say?)
05:57:50 <fizzie> Sgeo_: Well, that doesn't happen.
05:58:07 <itidus20> (by the way i havent really played text adventure games... ive only heard of them)
05:58:11 <fizzie> $ perl -e '%foo = ("a" => 1, "b" => 2); sub foo { print join(" ", @_), "\n"; } foo(%foo);'
05:58:12 <zzo38> The captain notices some pirate ships in the distance. You can see them now, too.
05:59:03 <itidus20> (Should I try just using natural english?)
05:59:17 <zzo38> itidus20: Do it if you want to. This is not a *real* text adventure game.
05:59:40 <zzo38> (Although an actual text adventure game could be written based on this and other things)
06:00:47 <zzo38> You look about the same as always, except that you are now wearing a guest uniform.
06:01:09 <zzo38> After you do that, the captain looks throught he spyglass, notices something, and passes it to his brother.
06:03:22 <zzo38> The captain told you he noticed something that is probably bad, on those pirate ships. Something bad will probably happen.
06:03:35 <zzo38> After doing so, the captain's brother passes the spyglass to you.
06:04:13 <zzo38> The bucket contains some old rags used for clothing, but are now burnt. The fire has gone out by now.
06:05:19 -!- pikhq has quit (Ping timeout: 258 seconds).
06:05:20 -!- pikhq_ has joined.
06:06:54 <zzo38> The sailors are nervous of your presence and do not wish to talk to you right now.
06:07:35 <zzo38> s/ are / seem to be /
06:09:45 <itidus20> (does anyone else have any ideas?)
06:10:44 <zzo38> (You can always wait or check your inventory if you have nothing else to do.)
06:11:19 <zzo38> You have a guest uniform (being worn) and a rope.
06:12:10 -!- aloril has quit (Ping timeout: 246 seconds).
06:12:40 <zzo38> Oops, sorry. Let me try again.
06:12:48 <zzo38> You have a guest uniform (being worn), a rope, and a spyglass.
06:12:54 <zzo38> (You already have the spyglass, I just forgot)
06:13:03 <itidus20> Look at pirate ship with spyglass.
06:13:29 <zzo38> You look at the pirate ship. You can see some shaman waving their arms. You recognize it as some kind of summoning spell.
06:13:52 <zzo38> As you do so, the water shakes a bit and hooks come up out of the water and get attached to the edge of the ship.
06:15:33 <itidus20> Look around with the spyglass.
06:16:29 <zzo38> You notice nothing special. You can see the same things you have seen before. There are five pirate ships in the distance.
06:16:58 <zzo38> After doing so, some kuo-toas[1] arrive and climb on the deck.
06:17:20 <zzo38> [1] See D&D 3.5e Monster Manual for information.
06:19:07 <zzo38> Instead of answering, they try to throw a sticky rope at you. Luckily, they missed.
06:19:37 <zzo38> In addition, Also appears to transform into a gray featureless humanoid shape, still wearing the guest uniform, but also wielding a green sword.
06:20:03 <zzo38> The captain is wondering whether something should be done about this transformation, as well as about the attack.
06:22:16 <zzo38> You miss. One of the kuo-toa tries to attack you and this time you get hit by a sticky rope. One also tries to throw a rope at Also and manages to hit. Also tries to attack one of them with the green sword and hits, knocking one unconscious.
06:24:09 <itidus20> Throw rope at a concious kuo-toa
06:24:35 <zzo38> You try to take it but now it is stuck on your hand too.
06:24:56 <zzo38> (You can try again if you want, or do something else.)
06:25:26 <itidus20> (i was being kind of stupid because obviously my regular piece of rope is not a weapon)
06:25:30 -!- aloril has joined.
06:25:50 <zzo38> Correct. Your regular piece of rope is not a weapon.
06:25:54 <zzo38> You are now hiding.
06:26:22 <zzo38> However, you almost get hit by a cannon.
06:26:28 <zzo38> Also hits one and kills one kuo-toa.
06:28:17 <zzo38> You notice the same things as before.
06:28:29 <zzo38> You accidentally dropped the spyglass and now you have to pay for it.
06:28:42 <zzo38> Some of the kuo-toas are now trying to retreat back into the water.
06:28:58 <zzo38> Others are still trying to attack.
06:29:09 <zzo38> One notices you, and attempts to attack you, and misses.
06:29:54 <zzo38> You miss. They try to attack you and slightly damage you.
06:30:09 <zzo38> Also, and some of the sailors, try to attack the other kuo-toas.
06:30:23 <zzo38> Some of the sailors appear to be ensuring the cannons are ready to attack the other ships if it becomes necessary.
06:31:07 -!- oerjan has quit (Quit: Good night).
06:32:18 <zzo38> You tried again, and still missed.
06:32:42 <zzo38> (Next time, you can try to stun them or cast a spell. You do have a few spells.)
06:34:13 <zzo38> - Frotz (makes an object emit light)
06:34:25 <zzo38> - Erase (erases writing on an object)
06:34:36 <itidus20> i have no clue what spells i have :P
06:34:52 <zzo38> - Affect Magical Aura (change the magic aura of something to appear to be something else)
06:35:00 <zzo38> - Grease (makes the floor slippery)
06:35:10 <zzo38> - True Seeing (see past illusions and other magic)
06:35:17 <zzo38> End of spell list.
06:35:33 <zzo38> Actually, I will list one more:
06:35:54 <zzo38> - Time Hop (makes an object vanish, and reappear in the same place in 30 seconds to 1 minute (you can select the duration))
06:36:56 <itidus20> Cast Grease. Ideally under my foes but i'll still do it if it'll affect me
06:37:27 <zzo38> OK. Some of the kuo-toas, as well as some of the sailors, as well as Also, all slip and fall down.
06:37:40 <zzo38> You seem to be unaffected at the current moment.
06:38:28 <zzo38> You cast True Seeing. You notice nothing special.
06:38:37 <zzo38> Some of the kuo-toas, some of the sailors, and Also, all get up.
06:38:53 <zzo38> One of them attacks Also and misses. One attacks you and moderately damages you.
06:39:34 <zzo38> OK. You manage to stun three of them at once.
06:39:57 <zzo38> Also attacks one of the unstunned ones and hits. One of the kuo-toas attacks Also and slightly damages him.
06:40:07 <zzo38> Nobody manages to attack you.
06:41:04 <zzo38> OK. You hit. He is now unconscious.
06:41:21 <zzo38> Also attacks one of the unstunned ones and hits. One of the huo-toas attacks Also and slightly damages him.
06:41:25 <zzo38> The rest retreat back into the water.
06:42:55 <zzo38> Somehow you still missed.
06:44:02 <zzo38> All of them are already either stunned, unconscious, or dead. Nothing happens, although some of them might be stunned for a longer duration due to this.
06:46:03 <zzo38> Time passes. The captain's brother reveals a scroll case.
06:47:25 <zzo38> It is a plain scroll case one foot in length, and appears to be waterproof.
06:47:41 <zzo38> The captain's brother remarks that perhaps the pirates wanted this scroll case, and not the gold.
06:48:00 <zzo38> However, he doesn't know how they could have known about this scroll case, since it was supposed to be a secret.
06:49:56 -!- azaq23 has changed nick to oriaw.
06:50:20 -!- oriaw has changed nick to derivector.
06:51:22 -!- derivector has changed nick to azaq23.
06:51:27 <zzo38> It is not yours to open. It belongs to the king.
06:52:08 <zzo38> (You can stop here if you wish. Note that this is based on a scene from a D&D game I played and there is nothing else to do. Read it if you want to, including for a complete list of spells and my solutions)
06:52:20 -!- azaq23 has changed nick to azaq23p.
06:52:26 -!- azaq23p has changed nick to azaq23.
06:52:50 <itidus20> i am pretty clueless about d & d... :P
06:53:12 <itidus20> i mean not entirely clueless but yeah
06:53:41 <zzo38> itidus20: That is OK. You might be able to understand some of it, since the main text (but not necessarily the foot notes or character sheets) are written in normal text.
06:53:53 <itidus20> i tend to be so hesitant with these things
06:54:12 <itidus20> in life i have an enormous amount of difficulty slipping out of character
06:54:26 <zzo38> Where I started on the deck here, is not actually where the game stats.
06:54:31 <zzo38> It is not even where the session starts.
06:55:14 <itidus20> certain neuroses i haven't learned to break..
06:55:14 <zzo38> Both the source file (TeX) and the output file (DVI) are available. So is the macro package I wrote for the purpose of recording D&D games, as well as a recording of a different game I am in as well.
06:55:32 <zzo38> itidus20: What neuroses are those? Can you try harder?
06:55:44 <itidus20> I tend to make friends with psychos in real life.
06:56:09 <itidus20> I'm used to hating the people i spend most of my time with in real life
06:56:21 <itidus20> well not lately.. since i have withdrawn to my moms basement
06:56:38 <zzo38> Well, sometimes I do crazy things too (not always).
06:56:47 <zzo38> There is currently nothing in my basement.
06:57:02 <itidus20> people who only keep me around as company to take advantage of me
06:57:07 <zzo38> So it would not be useful to go there, except to fix things, measure things, or to get away from the heat.
06:57:20 <itidus20> not because they want me to enjoy their company
06:57:43 <zzo38> O, well, then you would have to try harder to avoid them taking advantage of you in circumstances when you do not want it.
06:58:07 <itidus20> i know that personal stuff is supposed to not enter the room
06:58:24 <zzo38> That is OK, you don't have to.
06:58:53 <zzo38> How much do you know of TeX, anyways?
06:59:35 <zzo38> I might want to tell you that the first time I played D&D, I selected race/class at random, from the Player's Handbook only. Resulting in a human wizard. Who had armor and a mace.
07:00:32 <zzo38> itidus20: Yes it is related. LaTeX is a format and a set of macros and packages written on top of a variant of TeX, which is PDF-e-XeTeX.
07:00:54 <zzo38> I prefer Plain TeX, and use it for my stuff.
07:01:02 <itidus20> The world has always been a place where some are happy by making others suffer.
07:01:34 <itidus20> These days it is more implicit than explicit.
07:02:02 <zzo38> I suppose it might be. Often because some people are being greedy or stupid (or both).
07:02:06 <itidus20> On the surface society pretends to be happy and friendly.
07:02:48 <zzo38> Well, mostly, I guess.
07:02:53 <zzo38> Write a report about it if you want to.
07:04:11 <itidus20> But there is an economy based on the ability to cope with stress or not.
07:04:20 <itidus20> Those who cope well with stress and conflict thrive
07:04:38 <itidus20> And those who don't become the food.
07:05:27 <itidus20> In other words, if you have to withdraw from stress and conflict, you lose.
07:05:50 <pikhq_> So, literal interpretation of Genesis time...
07:05:52 <zzo38> Well yes I do suppose there is a lot of that these days.
07:06:21 <pikhq_> Wouldn't every animal on the ark have to carry every unique disease for that species?
07:07:03 <pikhq_> Well, actually, breeding pair. Could be split between the two.
07:07:19 <Sgeo_> For the clean animals, there's 7, so
07:07:20 <zzo38> pikhq_: I don't see why.
07:07:27 <pikhq_> zzo38: Otherwise they wouldn't exist.
07:07:42 <zzo38> pikhq_: O, yes. Now I see.
07:07:45 <pikhq_> zzo38: Only species extant on the ark could exist post-flood.
07:07:59 <zzo38> Do the "clean" animals have any unique diseases?
07:08:01 <pikhq_> If we go with a literal interpretation and claim no evolution since.
07:08:11 <pikhq_> Uh, yes, there's rather a *lot* of clean animals.
07:08:19 <zzo38> Yes I can see now, we are going with a literal interpretation
07:08:44 <pikhq_> (never mind that there has been speciation more recent than the claimed occurance of the ark story...)
07:09:16 <zzo38> But obviously the people who wrote it made up something because they didn't actually know. It is mythology, like other mythology is.
07:09:34 <pikhq_> Yes, the only problem being that a notable number of people believe it literally happened.
07:09:55 <pikhq_> Unlike, say, Greek mythology, where there's maybe a few nutjobs that do.
07:10:21 <zzo38> OK, yes I know those things.
07:10:53 -!- elliott_ has quit (Remote host closed the connection).
07:11:11 <zzo38> If they have all animals, they must also have all small ones, big ones, and one that can only live in the water...
07:11:20 -!- elliott has joined.
07:11:50 <zzo38> Although maybe by "animals" in that text they didn't include people or fish
07:12:08 <zzo38> And by "bird" they also included bats
07:14:47 <pikhq_> zzo38: Well, they'd have serious issues even with fish.
07:14:53 -!- monqy has quit (Quit: hello).
07:14:59 <pikhq_> Either the saltwater or the freshwater fish would be *fucked*.
07:15:24 <zzo38> On another note, I realized I have the full text of King James Bible in my computer, but not the deuterocanonical books. I have been told that the deuterocanonical books are part of the original King James Bible however. Do you know of such texts are available?
07:15:37 <zzo38> pikhq_: Yes of course I can see that
07:19:59 <zzo38> Of course there is a lot of absurdity and stuff in the Bible; however, the text that God created light at first before creating the light producing objects (the sun), does make sense, from both scientific and from spiritual points of view. It might be said to be the Light of God; or the various electromagnetic radiation of various frequencies including light near the start of the universe; or whatever. At least *this* part is not complete nonse
07:20:16 <itidus20> i have stacks of ebooks on my pc. some legal. some illegal.
07:20:25 <zzo38> But there still is a lot of nonsense nevertheless, of the Bible.
07:20:45 <pikhq_> zzo38: Sheer dumb luck, but hey.
07:21:06 <pikhq_> Wikisource seems to have the KJV apocrypha.
07:21:07 <itidus20> I downloaded this sweet cache of philosophical texts
07:21:14 <pikhq_> https://secure.wikimedia.org/wikisource/en/wiki/Bible_%28King_James%29
07:21:29 <zzo38> pikhq_: Yes, you would be correct about that. Of course it is unlikely the people who wrote that part of Genesis (note it comes from various sources) knew anything about science.
07:21:57 * pikhq_ is well aware of the documentary hypothesis
07:23:29 <itidus20> there is always the problems of where to apply literalism and where not to. also interpretations of any text will always vary.
07:24:12 <itidus20> and the history of any given text that old tends to be mysterious enough that it's anyones guess.
07:24:21 <zzo38> What I have of the KJV is in plain ASCII text format, and is accessible over both HTTP and gopher protocols. I would like to find one similar thing to add (perhaps as a separate file) of the apocrypha.
07:24:25 <itidus20> And theer is also mistranslations from language A to language B
07:24:30 <pikhq_> itidus20: Why should I care about whether any of it's literal?
07:24:45 <pikhq_> zzo38: Well, the Wikisource version has the Apocrypha.
07:24:47 <itidus20> for instance "40" apparently can also mean "many"
07:24:48 <zzo38> itidus20: Yes I noticed those things too. There can be mistranslations and unknown things about the history.
07:25:30 <pikhq_> itidus20: The only things that could be taken literally and not contradict, well, essentially all empirical evidence we have are also fairly irrelevant.
07:26:14 <zzo38> The reason I am using KJV is simply because it is in the public domain (Wikisource says it is perpetual copyright in the UK, but I don't live there).
07:26:18 <itidus20> and religions spring up all across the world.. so they are natural enough for us to have
07:26:30 <itidus20> just as written language sprung up
07:26:34 <pikhq_> zzo38: Friggin' crown copyright.
07:26:52 <pikhq_> itidus20: And we know of some religions in cultures without written languages.
07:27:04 <pikhq_> It really does seem to be a universal.
07:27:51 <itidus20> what I really miss about the times long gone is the natural beauty of the land before we ravaged it
07:28:19 <itidus20> with roads.. and what do roads exist for? faster transport..
07:28:33 <pikhq_> Roads are also pretty shitty transport.
07:28:37 <itidus20> and concrete.. well i dont know the exact role of masses of concrete
07:28:58 <itidus20> welll population growth has a role in it too of course
07:29:22 <pikhq_> Fairly simple, actually. If we didn't build those we would be *way* over capacity.
07:29:35 <itidus20> but its just that human activities are so pronounced.. the rest of the plants and animals can't keep a balance with us
07:29:44 <zzo38> Yes it is true the human people are also the problem of making everything messed up you have to be more careful next time. However, there is purposes for things. Everything can have the purposes of them too.
07:30:00 <pikhq_> Well, yeah, we're outpacing evolution by several orders of magnitude.
07:30:20 <itidus20> the sea has done a good job of protecting itself by means of its fierce waves
07:30:38 <itidus20> whatever gets built on the sea, gets crushed
07:31:22 <pikhq_> *Someone* doesn't know about oil rigs...
07:32:08 <pikhq_> Lord Oil demands we build on the ocean. Cost is little object.
07:34:38 <coppro> I kind of feel bad for my hypothetical children
07:35:20 <lambdabot> forall a. (Fractional a) => a -> a -> a
07:36:10 <zzo38> I do not want to have any children please.
07:37:02 <zzo38> The Bible is warning you about all of these things can you see that? And yet, many things happen too badly. Pay attention to the warning! We are messing up everything too much! Be more careful next time please!
07:37:22 <zzo38> Some say the message of the Bible is that of love. I say it is that of warning.
07:39:00 <itidus20> i noticed for example that sea creatures don't build things in the ocean
07:39:15 <itidus20> surely they could evolve such capacities if it were a good thing
07:39:46 <zzo38> I think even some Christians have never read the Bible.
07:39:47 <Sgeo_> I parially gfixed some of my Chicken Scheme issues
07:40:05 <Sgeo_> But still, some eggs are platform-depenent, apparently
07:41:00 <itidus20> speaking of which.. uh.. spiders build webs.. but i guess its far too much of an energy waste to construct anything meaningful in that way
07:41:32 <itidus20> spiders build webs.. a plant is a web in some cases
07:42:55 <pikhq_> zzo38: I'd say the "message" of the Bible is that YHWH is evil.
07:49:24 <zzo38> pikhq_: Well, say what you want to. I suppose you could instead say the message is that it is complete nonsense, if you wanted to.
07:50:11 <zzo38> The Skeptics Annotated Bible has the entire KJV text (but does not include apocrypha) and many cross-references and external references and other notes.
07:53:20 <zzo38> Is the jawbone of an ass a good weapon?
07:54:26 <elliott> comex_: Why did you try and exile coppro again
07:54:26 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
07:54:58 <itidus20> zzo38: the basic trouble I have is to have a character who is not me. I am not good at all at making that detachment
07:55:35 <zzo38> itidus20: I am somewhat good at it, but much, I think. I am not sure.
07:55:39 <itidus20> they always inherit my insecurities unless like i am playing a single player game when noone is watching
07:56:14 <itidus20> i sorta know why... but doing something about it is like debugging my psyche
07:57:07 <zzo38> Of course I improve on that and other things related to the game, when playing the game multiple times
07:57:52 <itidus20> as a wannabe author its a problem
07:58:13 <itidus20> i can't write a character who doesn't secretly inherit all my neuroses
07:58:49 <itidus20> but please note that in saying this I am expressing my plan to change it.
07:59:11 <zzo38> OK, I understand a bit. Have you tried writing any such things?
07:59:18 <zzo38> Have you improved at all?
07:59:33 <itidus20> My characters tend to not have much social interaction.
08:00:02 <itidus20> I sort of get into this problem of trying to analyze every character in a scene and how they would act
08:00:21 <zzo38> Yes it can be difficult.
08:00:48 <itidus20> Maybe its better to be like Mezzacotta and just define each character and throw them into situations
08:00:53 <Sgeo_> Would saying "Or I might just look at Racket" be offensive in #chicken ?
08:01:27 <elliott> Sgeo_: UR SO RUDE IM SUICIDE
08:01:30 <zzo38> Read my recordings, see if they would interest you or whatever, criticize it a lot if you want to, or whatever
08:01:48 <zzo38> Source file: http://zzo38computer.cjb.net/dnd/recording/level20.tex Output file: http://zzo38computer.cjb.net/dnd/recording/level20.dvi
08:02:06 <itidus20> like the geocities which never died
08:02:12 <itidus20> i didn't know it still existed
08:02:34 <itidus20> cjb had that subculture thing about it
08:02:34 <zzo38> I am using the Dynamic DNS service from them
08:03:17 <itidus20> i mean back in the old days you know.. it was all about html 4 pages and webrings..
08:04:15 <zzo38> Yes, but I use the dynamic DNS so that I can run multiple protocols and have my own control over the servers and stuff like that. I don't use webrings, much of my files are not HTML at all, and so on. It is different from most.
08:04:19 <itidus20> maybe the world hasn't changed, and it's just me
08:04:30 <itidus20> my point is noone uses webrings etc anymore
08:04:49 <zzo38> You can see it sometimes used.
08:04:49 <itidus20> blogs are fucking ugly... facebooks are ugly.. myspaces are ugly..
08:05:05 <itidus20> theres no attempt anymore to actually create webpages
08:05:35 <itidus20> its all php and mysql and apache
08:05:58 <itidus20> i dont for the life of me understand why so many webpages need databases :D
08:06:41 <itidus20> i guess... i guess.. the web has become an application platform
08:06:53 <itidus20> i didn't know html4 was an application platform..
08:07:01 <itidus20> i bet tim berners lee never knew either
08:07:15 <itidus20> i guess the "internet" --- ok im ranting in monologue
08:07:18 <zzo38> It shouldn't be. I avoid using it as an application platform
08:08:00 <itidus20> email is good yeah.. forums yeah..
08:08:12 <itidus20> flashgames.. sure.. youtube.. sur
08:08:54 <zzo38> I know and I generally try to avoid that kind of stuff instead.
08:09:15 <zzo38> I have not only HTTP server, but also a gopher server and IRC server in my computer
08:10:21 <itidus20> i guess i believe ranting is the most honest form of communication.
08:10:23 <zzo38> And generally programs I write using C or CWEB or whatever, they can be downloaded and run or compiled on your computer, use them local use
08:10:39 <pikhq_> HTTP/HTML/Javascript/PHP is such a *stupid* stack for an application platform, too.
08:11:05 <pikhq_> I mean, jeeze, the only stack I can think of that'd be worse is, like, X over WAN.
08:11:21 <itidus20> my rants are full of shit, but at the time they have an honest energy
08:11:34 <itidus20> i just rattle off one fallacy after another
08:11:36 <Sgeo_> pikhq_, is there a problem with the HTTP part?
08:11:54 <zzo38> Better way depends on what it is. In some cases, SSH would be better, in other cases, just a local program is OK.
08:12:27 <pikhq_> Sgeo_: Yes, HTTP is a flawed protocol.
08:12:30 <itidus20> richard stallman needs to get on this though.
08:12:43 <zzo38> itidus20: No he doesn't.
08:12:51 <Sgeo_> Well, I heard an anti-Racket rant
08:13:12 <Sgeo_> "Done EmacsW32 base setup. Sleeping 20 seconds so you may read this ..."
08:13:15 <zzo38> Application platform should be the one for the use, such as C program compiled locally and such
08:13:22 <pikhq_> Sgeo_: It contains many complexities that literally nobody uses, for instance.
08:13:50 <pikhq_> In fact, its basic design is completely contrary to the use it gets put to.
08:13:51 <zzo38> For banking, SSH would be a good way to do it, I think.
08:13:55 <pikhq_> It is a wiki protocol.
08:14:06 <itidus20> a html document has evolved into an application platform space.
08:15:10 <pikhq_> The basic operations of HTTP are get, put, delete, and patch.
08:15:17 <itidus20> its so absurd.. mr burners lee wouldn't have imagined it in 1million years
08:15:35 <itidus20> but it works.. i must admit in contradiction to my rant
08:16:13 <zzo38> pikhq_: Yes maybe it means it should actually be used that way instead. With, get, put, delete, and patch.
08:16:37 <elliott> tbl is a cool dude, if solid in his opinions
08:16:42 <elliott> dunno how he has time to hang about on irc but
08:17:01 <pikhq_> As it is, it is basically used as either a generic data transport or a generic file host.
08:17:23 <Sgeo_> pikhq_, would be fun if there were wikis that used those features
08:17:28 <itidus20> the hyperlink is ok.. but sometimes people just jump to the URL bar
08:17:32 <Sgeo_> Although modern web browsers don't really.. blah
08:17:34 <pikhq_> It is literally nothing more than a pointless layer for use as a generic data transport, and poorly suited for file hosting.
08:18:04 <pikhq_> So effing much impedence mismatch.
08:18:05 <itidus20> for instance.. to travel from bing.com to google.com i type a g in the url bar
08:18:09 <zzo38> pikhq_: Yes, that would be what FTP and gopher protocols are for, I think.
08:18:20 <pikhq_> zzo38: FTP also has a lot of stupidities.
08:18:38 <itidus20> search engines thrive on hypertext though...
08:18:42 <pikhq_> It requires *several* round-trips just to get a single file.
08:18:46 <coppro> it should be avoided wherever possible
08:18:49 <pikhq_> Also, it is so insanely stateful.
08:18:59 <zzo38> It may be dumb. But still it is what FTP was designed for, it is for file transfer.
08:19:12 <pikhq_> Yes, there is at least less impedence mismatch there.
08:19:27 <zzo38> There are other protocols. Including, Plan 9 Protocol, and SSH, and so on.
08:19:27 <coppro> use SFTP at least if you're going to use stupid
08:19:30 <itidus20> in my local LAN at home my brother FTPs me files when we have trouble using windows network neighborhoood
08:19:54 <coppro> pikhq_: I would gladly s/PHP/Python/g in any application stack ever
08:20:02 <fizzie> I was knew a printer who had an FTP server. You could upload a postscript file, and it'd print it.
08:20:28 <elliott> fizzie: You've said that, like, exact line before
08:20:35 <elliott> coppro: I would gladly s/Python//g in everything ever
08:20:41 <pikhq_> coppro: Honestly, I think even C programs for CGI would be an improvement.
08:20:45 <fizzie> elliott: I think I typed it a bit differently, but yes, I think I've mentioned.
08:20:52 <Sgeo_> That's sad, I can't even figure out how to toggle an option in emacs
08:21:01 <coppro> elliott: How much to you know about the type formalisms in Haskell
08:21:05 <zzo38> fizzie: Yes I have heard of that too. However I would prefer one that used Plan 9 Protocol instead of FTP, and DVI instead of PostScript. And arrange in directories for the various jobs, and status, and fonts, and so on.
08:21:07 <elliott> pikhq_: That seems excessive; PHP doesn't have rampant memory corruption
08:21:17 <elliott> coppro: Depends what you mean by "type formalism"
08:21:37 <coppro> elliott: The formal notions of Haskell's type system, and things like it's soundness and other useful properties
08:21:58 <elliott> It's not "sound"; undefined :: a
08:22:03 <coppro> wait I could just go talk to that guy at Google who studied at Glasgow.
08:22:08 <elliott> Depends what you mean by sound :-P
08:22:09 <pikhq_> elliott: PHP has rampant injection attacks, though.
08:22:23 <elliott> Well, it's sound in some senses and not in others
08:22:43 <zzo38> There should be Plan 9 Protocol over USB.
08:22:46 <elliott> A Coq developer certainly wouldn't think much of Haskell's type system
08:22:46 <itidus20> sorry guys.. i tend to join channels where i am the least skilled in a field.. and go offtopic a lot to compensate.
08:22:56 <elliott> Through the Curry-Howard lens, it is inconsistent
08:23:03 <itidus20> but i see it is coming back around to haskell. nice
08:23:06 <pikhq_> itidus20: Is okay, we just go off topic a lot. :P
08:23:32 <coppro> elliott: Sound means that you don't prove falsehoods
08:24:00 <coppro> elliott: bottom is not a falshood
08:24:10 <elliott> Do you even know what the Curry-Howard isomorphism is
08:24:20 <elliott> Because Void is a falsehood, forall a b. a -> b is a falsehood
08:24:22 <elliott> And those values are proofs
08:24:38 <elliott> Go type "Axiom undefined : forall a, a." into Coq and tell me it's still sound
08:25:27 <coppro> elliott: I know what the Curry-Howard isomorphism is.
08:25:36 <elliott> coppro: "Of course Haskell's type system is unsound!" --Conor McBride
08:25:36 <pikhq_> coppro: These are type-level falsehoods.
08:25:38 <coppro> elliott: And I'm not talking about it
08:26:10 <elliott> coppro: You can at least admit the term "sound" is ambiguous
08:26:26 <elliott> Conor McBride is rather an expert :p
08:26:49 <elliott> coppro: What you probably refer to is type safety
08:27:07 <elliott> Well, nice way to respond to someone who points out that experts disagree with your terminology
08:27:14 <elliott> Go ask Mr. Glasgow I guess
08:27:19 <coppro> the type inference system
08:28:35 <pikhq_> Uh, that's Hindley-Milner you're referring to, right?
08:28:57 <elliott> But yeah, your questions are very vague.
08:29:10 <pikhq_> Well, yeah, it's not *quite* straight Hindley-Milner, especially in GHC instead of Report.
08:30:00 <elliott> What are the "formal notions" of Haskell's type system, anyway
08:30:07 <pikhq_> Contrary to popular belief, Haskell is *not* a very formal language.
08:32:13 <coppro> pikhq_: on a relative scale, no
08:32:34 <coppro> but I'm wondering if anyone is familiar with this stuff because I'm not really in a paper-chugging mood
08:32:57 <elliott> You have yet to define "this stuff" in any sort of answerable form
08:33:55 <coppro> elliott: if you can't answer the question, then the answer is "not enough"
08:34:12 <coppro> if you simply won't because you're a prick, then fuck off
08:34:15 <pikhq_> coppro: What can you tell me about the formalisms in C?
08:34:27 <elliott> coppro: You have not asked a question.
08:34:32 <pikhq_> The above question is about as specific. :)
08:34:41 <elliott> coppro: You have, however, acted like an asshole who isn't really interested in hearing answer from me, so...?
08:35:36 <pikhq_> coppro: Oh, right, there's actually things that could be called formalisms in the C spec.
08:35:45 <pikhq_> Mmm, C abstract machine...
08:36:20 <elliott> coppro: In future, if you're going to refuse to ask a specific question, ignore me when I point out that your terminology is very vague, and then tell me to either shut up or fuck off, I'd appreciate it if you didn't fucking ping me in the first place.
08:39:08 <coppro> pikhq_: Have you ever read the definition of restrict
08:39:17 <coppro> elliott: The terminology was deliberately vauge
08:39:45 <elliott> coppro: Then I ask you to tell me about programming, and if you ask for specificity, I'm going to assume you know nothing of the subject
08:40:43 <coppro> also fuck Hindley-Milner
08:40:48 <pikhq_> coppro: Still, probably a bit surprising to people who aren't aware of what's in the C spec.
08:40:50 <coppro> the paper goes on to define something for one thing
08:40:52 <coppro> and use it for another
08:41:06 <coppro> leaving me completely befuddled as to what is actually meant
08:41:29 <pikhq_> (which is *incredibly* different from what you'd think if you just saw what compilers do to C)
08:43:12 <pikhq_> Admittedly, that's in part because there's an impedence mismatch between C and common CPUs.
08:54:00 <Sgeo_> I seem to be incapable of remembering the name "Geiser"
08:54:46 <Sgeo_> "If Geiser came with any guarantees, youd break all of them by not using GNU Emacs 23.2"
08:54:53 <Sgeo_> And I'm using 23.1 GRAH
09:05:57 -!- zzo38 has quit (Remote host closed the connection).
09:29:09 <Sgeo_> I suppose there's no nice in-emacs way to do that
09:29:37 <Sgeo_> Unless you said "Updoot" not to be funny, but because there's a tool called Updoot
09:29:51 <Sgeo_> http://www.youtube.com/watch?v=7VFTTGUjskc
09:30:21 <Sgeo_> (Note: I haven't watched the video)
09:30:28 <Sgeo_> (Or even seen the description until now)
09:31:09 <elliott> Sgeo_: You fail at basic reading
09:31:33 <elliott> I'm not talking about Emacs, for instance
09:31:38 -!- JamezQ has quit (Ping timeout: 252 seconds).
09:32:37 <Sgeo_> THE SUSPENSE IS KILLING ME
09:42:37 -!- azaq23 has left.
09:45:24 -!- azaq23 has joined.
09:48:26 -!- chickenzilla has quit (Quit: Lost terminal).
09:54:23 -!- pumpkin has joined.
09:57:52 -!- copumpkin has quit (Ping timeout: 276 seconds).
10:25:30 -!- NihilistDandy has joined.
10:39:10 -!- FireFly has joined.
10:52:40 <elliott> I should ban cybermutiny from /r/mspaint just to see how e reacts.
10:58:44 <cheater_> how on EARTH can i have files with dynamic content in linux????
10:58:58 <cheater_> the inability to do this is bewildering.
11:03:13 -!- NihilistDandy has quit (Quit: sleeping).
11:12:52 <fizzie> FUSE is the ugly solution.
11:34:00 <Sgeo_> What do those... pipe file thingies count as?
11:41:48 -!- CakeProphet has joined.
11:41:48 -!- CakeProphet has quit (Changing host).
11:41:48 -!- CakeProphet has joined.
11:53:19 -!- GuestIceKovu has joined.
11:55:19 -!- Slereah has quit (Ping timeout: 258 seconds).
12:03:51 <fizzie> They count as named pipes.
12:04:01 <fizzie> Can't really use them as files in all contextsies though.
12:04:20 <fizzie> Also difficult if you have many readers at the same time.
12:06:24 <fizzie> Localhost-loopbacked NBD device is another alternative, but tends to require rootish stuff.
12:07:31 <fizzie> I believe you can also quasi-easily offer "dynamic files" via GVFS and things like that, but they're not really real files then.
12:10:57 <elliott> fizzie: gvfs has a fuse mapper in ~/.gvfs
12:13:25 -!- pumpkin has quit (Quit: Computer has gone to sleep.).
12:14:34 -!- CakeProphet has quit (*.net *.split).
12:15:56 -!- CakeProphet has joined.
12:18:00 <fizzie> Yes, I've noticed it does something like that when I gvfs-mount remote shares.
12:19:28 -!- copumpkin has joined.
12:48:13 -!- itidus20 has quit (Read error: Connection reset by peer).
12:48:33 -!- itidus20 has joined.
12:50:36 -!- GuestIceKovu has changed nick to Slereah.
13:07:05 -!- itidus20 has quit (Read error: Connection reset by peer).
13:07:32 -!- itidus20 has joined.
13:41:52 -!- azaq23 has quit (Quit: Leaving.).
13:57:05 -!- MSleep has changed nick to MDude.
14:16:00 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:28:15 <Sgeo_> Is it just me, or is Monte Carlo a fancy name for something that really isn't that fancy?
14:28:53 <quintopia> it's a city famous for its casinos and games of chance...
14:29:09 <Sgeo_> http://en.wikipedia.org/wiki/Monte_Carlo_simulation
14:29:38 <quintopia> hence, any method involving a roulette wheel simulation in it somewhere is called monte carlo
14:32:09 -!- BeholdMyGlory has joined.
14:45:58 -!- copumpkin has joined.
15:49:11 -!- monqy has joined.
16:06:42 -!- MigoMipo has joined.
16:16:56 <lambdabot> Did you mean: == (IORef a) /count=20
16:17:02 <elliott> ?hoogle (==) :: IORef a -> IORef a -> Bool
16:17:02 <lambdabot> Prelude (==) :: Eq a => a -> a -> Bool
16:17:02 <lambdabot> Data.Eq (==) :: Eq a => a -> a -> Bool
16:31:51 -!- aloril has quit (Ping timeout: 252 seconds).
16:45:28 <tswett> elliott: are you looking for an instance Eq (IORef a)?
16:45:31 -!- aloril has joined.
16:45:40 -!- TeruFSX has joined.
16:46:16 <elliott> tswett: Found, ages ago; conversation in private channel :-P
16:46:59 <tswett> fungot: it's a very good idea.
16:46:59 <fungot> tswett: last argument must be a cub scout!! have you made your money-drop today??
16:49:07 <elliott> `addquote <fungot> tswett: last argument must be a cub scout!! have you made your money-drop today??
16:49:07 <fungot> elliott: and .txt doesn't have links either signed or unsigned... eh, don't worry
16:49:11 <HackEgo> 544) <fungot> tswett: last argument must be a cub scout!! have you made your money-drop today??
16:49:19 <fungot> Selected style: agora (a large selection of Agora rules, both current and historical)
16:49:30 <tswett> fungot: well, of could I would never do that.
16:49:31 <fungot> tswett: 3) a player resigns from an office has whatever duties, then 3 extra votes on
16:49:40 <tswett> fungot: please continue that thought.
16:49:40 <fungot> tswett: ( b) any entities disqualified by the assessor that e grants eir poa to the
16:49:55 <tswett> fungot: yes, I like where this is going. Go on.
16:49:56 <fungot> tswett: d) any additional information in the new
16:50:06 <tswett> fungot: that should just about do it. One more.
16:50:06 <fungot> tswett: judgement ( cfj),
16:50:51 <tswett> A player resigns from an office has whatever duties, then 3 extra votes on any entities disqualified by the Assessor that e grants eir POA to any additional information in the new judgement.
17:03:34 -!- zzo38 has joined.
17:11:27 -!- derrik has joined.
17:21:05 -!- itidus20 has quit (Ping timeout: 255 seconds).
17:24:15 -!- itidus20 has joined.
17:25:44 -!- CakeProphet has quit (Ping timeout: 258 seconds).
17:28:05 <quintopia> what is the easiest way to convert html to pdf?
17:29:21 <derrik> you're out of luck then
17:30:31 <zzo38> Use a printer driver output PDF, I guess.
17:31:00 <derrik> print to pdf.. that also uses mouse, i.e. too easy
17:31:27 <zzo38> You can use keyboard too, it doesn't require mouse
17:31:45 <derrik> same with the button actually
17:32:04 <derrik> button in e.g. openoffice
17:32:58 <cheater_> i'm learning italian and this bash/awk script is about italian food. should i try and translate the source code to italian?
17:33:00 <elliott> quintopia: prince xml is high quality iirc
17:33:19 <elliott> and free for non-commercial IIRC
17:33:23 <zzo38> However, I don't think PDF is a good format, it is full of dumb things
17:33:28 <elliott> and written in Mercury, a functional Prolog derivative :-)
17:33:37 -!- TeruFSX has quit (Ping timeout: 240 seconds).
17:34:57 <quintopia> i don't have a choice about the format. it'ss that or .doc :|
17:35:47 <zzo38> Well, then use PDF, since DOC (Microsoft Word, I guess) has as many dumb things but in addition might not produce the same result on all computer
17:37:02 <derrik> quintopia: i have "cutepdf writer" installed.. it prints to pdf
17:38:15 -!- derrik has quit (Remote host closed the connection).
17:38:26 <quintopia> nvm i found the command to convince vimperator to do it
17:38:57 -!- derrik has joined.
17:38:58 <elliott> quintopia: gross, princexml will give nicer output :{
17:40:07 <derrik> i'm also on a train.. it stops every other minute
17:40:19 <zzo38> Does there exist such things sa PDF to HTML, PDF to picture format, PDF to DVI, etc.?
17:45:05 <derrik> http://www.nuc.berkeley.edu/neutronics/todd/nuc.bomb.html
17:48:39 <elliott> lol at the DON'T TRY AND BUILD AN ATOMIC BOMB warning
18:02:02 -!- cheater_ has quit (Ping timeout: 255 seconds).
18:04:33 -!- derrik has quit (Ping timeout: 264 seconds).
18:13:03 -!- Nisstyre has quit (Ping timeout: 252 seconds).
18:14:35 -!- cheater_ has joined.
18:33:38 -!- derrik has joined.
18:38:42 -!- Nisstyre has joined.
18:46:36 -!- oerjan has joined.
18:54:57 -!- JamezQ has joined.
18:58:42 -!- JamezQ has quit (Client Quit).
19:09:45 <oerjan> <elliott> fizzie: You've said that, like, exact line before
19:09:54 <oerjan> including the misspelling? :D
19:23:13 <oerjan> <elliott> I should ban cybermutiny from /r/mspaint just to see how e reacts.
19:23:23 <oerjan> elliott's a mod somewhere? O_O
19:23:45 <elliott> And I have taken approximately three moderator actions in my entire tenure
19:24:23 <elliott> But yeah, this cybermutiny guy makes literally almost every post in there and they're mostly to his site thing which is a collection of seemingly inscrutable MS Paint art made by people who were clearly high at the time :-P
19:24:33 <elliott> I don't mind, but it would be amusing if this was, like, his main source of revenue.
19:24:58 <oerjan> oh it's about _actual_ mspaint, not those adventures...
19:25:13 <elliott> that's /r/homestuck, which recently passed /r/mspaint's subscriber count :-(
19:25:35 <elliott> (but /r/homestuck actually sometimes pays off on a subscription, so...)
19:25:47 <elliott> oerjan: mind you, /r/mspaint has gotten at least _two_ Homestuck-related submissions in two months
19:26:02 <elliott> both from the cybermutiny guy who doesn't _appear_ to know what they're actually about :D
19:26:24 <elliott> http://www.reddit.com/r/mspaint/comments/hdyg7/blue_guy/c1uo7ll
19:31:35 <oerjan> <Sgeo_> Is it just me, or is Monte Carlo a fancy name for something that really isn't that fancy?
19:31:48 <oerjan> istr it's in contrast to Las Vegas simulation
19:31:59 <oerjan> i don't quite recall what each is, though :P
19:33:32 <oerjan> <tswett> elliott: are you looking for an instance Eq (IORef a)?
19:33:41 -!- zzo38 has quit (Quit: Don't Quit).
19:33:52 <oerjan> which reminds me that haddock really should provide source links for orphan instances
19:34:20 <oerjan> or all instances really, so you don't have to check two places
19:42:47 * oerjan finds today's mezzacotta comic strangely amusing
19:43:48 -!- pumpkin has joined.
19:44:22 <oerjan> why do we allow vegetables in here anyway
19:46:04 -!- copumpkin has quit (Ping timeout: 263 seconds).
19:48:28 <fizzie> Wouldn't it be discrimination not to?
19:48:42 <olsner> oerjan: are you sure pumpkin is a vegetable rather than e.g. a fruit or a berry or something?
19:48:53 <oerjan> fizzie: but what if he's an enemy plant?
19:49:33 -!- monqy has quit (Read error: Operation timed out).
19:49:33 <fizzie> Freenode channel guidelines: "Look for the best in people. If you assume people have no self-control, they'll confirm your belief."
19:49:58 <oerjan> olsner: hm better check wikipedia
19:50:04 -!- monqy has joined.
19:50:29 -!- pumpkin has changed nick to copumpkin.
19:50:30 <fizzie> "The noun vegetable usually means an edible plant or part of a plant other than a sweet fruit or seed. -- However, the word is not scientific, and its meaning is largely based on culinary and cultural tradition."
19:50:35 <fizzie> So it can be anything you want it to be.
19:50:44 <fizzie> Even YOU could be a vegetable. (\forall YOU.)
19:51:17 <oerjan> that ancient tradition of vegetarian cannibalism
19:53:22 <oerjan> "In culinary terms, both summer and winter squashes are generally considered as vegetables, even though pumpkin may be used for sweet dishes.
19:56:24 <fizzie> WordNet "hypernyms of pumpkin":
19:56:26 <fizzie> => vegetable, veggie, veg
19:56:26 <fizzie> => produce, green goods, green groceries, garden truck
19:56:39 -!- augur has quit (Remote host closed the connection).
19:57:08 <fizzie> Nouns quite often tend to end up as "entity", I think.
19:59:32 <fizzie> WordNet can also comprehensively list everything that is a vegetable; wn vegetable -treen => http://p.zem.fi/avpv
20:00:20 <fizzie> Oh, what a losing piece of code:
20:00:22 <fizzie> Hyponyms of noun entity
20:00:22 <fizzie> Search too large. Narrow search and try again...
20:00:52 <fizzie> The entirety of entity is entirely too enormous.
20:01:16 <fizzie> (The last line was not part of the error message.)
20:01:55 <oerjan> hm and you _do_ have the entire database locally?
20:03:12 <fizzie> "The maximum buffer size is determined by computer platform. If the buffer size is exceeded the following message is printed in the output buffer: "Search too large. Narrow search and try again...""
20:03:21 <fizzie> Oh, so it is the fault of the computer platform.
20:03:45 <oerjan> you just need to change to x86-inf
20:07:59 <fizzie> "If one inputs the word entity as an entry in WordNet 1.6 and try to search its full hyponyms, he will get nothing but a note of "Search too large. Narrow search and try again." provided that he does not narrow the searching by terminating it beforehand. Sure enough, if the entry is not entity but another word, say cat, the searching will probably do."
20:07:59 <fizzie> - Liu Yang, Yu Jiangsheng, Yu Shiwen. A Tree-structure Solution for the Development of ChineseNet. Institute of Computational Linguistics, Dept. of CS, Peking University. Technical Report, 2002.
20:08:07 <fizzie> I seem to have not been the only one interested in entities.
20:10:58 <oerjan> at this point i'm tempted to create an esolang named haskell.
20:11:35 <elliott> oerjan: with haskell, the job has been done for you.
20:12:47 <oerjan> http://esolangs.org/wiki/Java
20:13:42 <oerjan> hm surely APL isn't the first one
20:18:00 <monqy> i thought of http://esolangs.org/wiki/Java2K
20:21:25 <oerjan> yeah me to but i don't count that
20:21:36 <oerjan> otoh we have http://esolangs.org/wiki/COBOL
20:22:42 -!- augur has joined.
20:23:41 -!- itidus20 has quit (Ping timeout: 250 seconds).
20:39:33 -!- derrik has quit (Quit: over and out).
20:47:28 -!- CakeProphet has joined.
20:47:28 -!- CakeProphet has quit (Changing host).
20:47:28 -!- CakeProphet has joined.
20:48:46 <oerjan> atehwa: ooh, as i'm looking through the language list for other purposes, i think no one has mentioned Paintfuck to you yet...
20:49:01 <oerjan> ...that's some major idling.
20:49:21 <oerjan> @tell atehwa You might wish to look at Paintfuck
20:49:44 <elliott> i mean, uninteresting-looking language
20:49:54 <elliott> but the tiny two-dimensional data plus storage as output...
20:51:00 <elliott> "increpare: I can parse the code beforehand to detect logical infinite loops. I think they occur as a certain pattern in the code."
20:51:06 <elliott> ah the forum paintfuck was on is v. smart
20:51:22 <elliott> "Edit: After I talked furthermore with ehird from #esoteric, it's a saner idea to leave the crash-course as is. so, as I originally said, it's a feature not a bug"
20:52:00 <elliott> oklopol's conway is awesome
20:53:13 <elliott> 00:36:30: <nooga> i'm testing Haiku
20:53:14 <elliott> 00:36:54: <nooga> and it appears that it is a major shit
20:53:14 <elliott> 00:39:07: <oerjan> 5+7+5, not 5+11, nooga
20:53:14 <elliott> can i add quotes from three years ago...
20:57:09 <oerjan> i for one welcome our new log-quoting overlords
20:57:37 <elliott> `addquote [2008] <nooga> i'm testing Haiku <nooga> and it appears that it is a major shit <oerjan> 5+7+5, not 5+11, nooga
20:57:39 <HackEgo> 545) [2008] <nooga> i'm testing Haiku <nooga> and it appears that it is a major shit <oerjan> 5+7+5, not 5+11, nooga
20:57:59 -!- cheater_ has quit (Ping timeout: 255 seconds).
20:58:56 -!- CakeProphet has quit (Ping timeout: 276 seconds).
21:00:10 <oerjan> it's a nonexisting link from four months ago that was never filled in
21:00:36 <oerjan> the policy is clearly stated at the top of the language list (i should know because i added it)
21:04:07 -!- MDude has quit (Read error: Connection reset by peer).
21:04:26 -!- MDude has joined.
21:05:20 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:08:48 <oerjan> after a previous deletion orgy, probably.
21:09:55 <oerjan> i find no more esolangs named the same as a known (to me) mainstream language. although we do have shakell.
21:10:37 <oerjan> SimonRC: WHERE DID SHAKELL GO
21:11:18 <oerjan> ANSWER OR I SHALL HAVE TO USE THE POLICY
21:11:24 -!- cheater_ has joined.
21:14:02 * oerjan finds it on web archive
21:15:44 <oerjan> "Shakell is an esoteric programming language created by SimonRC in 2005. It is mainly inspired by SADOL, but also Unlambda, Lisp and Haskell."
21:15:49 -!- elliott has set topic: I wrote the program for my Master’s Thesis (a dynamic programming problem) in Turbo Pascal, so I got good at functional programming. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
21:18:18 <olsner> monqy: that is the actual topic, yes
21:18:30 <oerjan> ceci n'est pas un topic
21:19:17 <elliott> monqy: http://www.johndcook.com/blog/2011/07/24/get-started-functional-programming/#comment-94407
21:20:07 <elliott> "This is why if you want to make sure no one ever instantiates a class (e.g. library) you not only need to make the constructor private, but also make that constructor throw an exception. I'd recommend UnsupportedOperationException. – ArtB 4 hours ago"
21:20:18 <elliott> java is like this big party of assassins
21:20:27 <elliott> where everyone is REALLY careful not to let anyone else move a muscle out of line
21:20:42 <elliott> i mean construct objects of private classes
21:21:13 <elliott> http://www.reddit.com/r/programming/comments/iz9rh/does_instanceof_void_always_return_false/c27uht9 good
21:21:44 * oerjan ponders mentioning twoducks to atehwa. i think it may be zzo38's most memorable language. it's the one _i_ remember, anyway.
21:22:08 <fizzie> But what if someone bytecode-modifies your class when loading and removes the exception?
21:22:52 <olsner> fizzie: then it is no longer your class and you have nothing to worry about
21:23:34 <fizzie> But it still has all your author-annotations and whatnot dangling from it.
21:24:18 <olsner> warranty void if exception removed by class loader, except if warranty void message removed by class loader
21:25:19 -!- Sgeo has joined.
21:26:06 <oerjan> my own @ from the early 90's had this idea of black box encryption of algorithms, which would be useful here. sadly in the real world this idea seems to have hit some roadblocks.
21:26:47 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
21:26:51 <elliott> "my own @" I'm glad people can relate to @ in this way
21:27:10 <elliott> Can I convince you to try out @ when it's ready? :-P
21:28:18 <oerjan> there's obviously an idea of "perfect operating system that seems easy if you don't look too closely at how it would work" floating around in the collective geek subconscious.
21:28:35 <elliott> I never expected @ to be easy :-)
21:29:02 <elliott> it was more, reading a bit of the Loper blog at the start and then looking at TUNES and going, "oh. guess this is my computing life's work then."
21:29:42 <elliott> oerjan: and -- I'm not even sure that's true
21:29:53 <elliott> there are so many people who think Unix is some kind of perfection
21:29:55 <oerjan> should be ready just in time for the singularity. whether caused by or causing, remains to be seen.
21:30:11 <elliott> who think it's literally impossible to improve on filesystems
21:30:25 <elliott> oerjan: heh, I have to dismiss a lot of my thought trails on @ by going "wait no, that's singularity-level technology"
21:30:32 <monqy> does losethos have filesystems i forget
21:30:53 <elliott> monqy: all other OSes just have defilesystems
21:30:54 <oerjan> elliott: i had no such qualms as it was essentially a sci-fi fantasy :)
21:31:20 <elliott> oerjan: (but I question any kind of "fantasy" that has black box encrypted algorithms running on your computer!)
21:31:52 <oerjan> elliott: it also had formal verification
21:32:19 <elliott> Still. @ is pretty solidly based around the idea that I don't give a single shit about closed-source software at all and I want to make everything as open and transparent as possible :P
21:33:59 <oerjan> elliott: well the idea here was essentially to able to safely move your computations across the cloud even in the possible presence of malicious programs
21:35:00 <oerjan> (i'm not sure the "cloud" concept was invented then though)
21:35:01 <elliott> oerjan: (congrats for inventing the obvious about two decades before everyone else, and also actually thinking about the security implications)
21:35:29 <oerjan> it may have been late 90s, i'm not quite sure of the timing
21:35:32 <elliott> yeah, I'm not sure how @'s distributed computing model works... obviously I'd like it to be the same thing as the parallel programming model :)
21:36:32 <pikhq_> Strange that people think it's impossible to improve on filesystems.
21:36:44 <pikhq_> You can even improve on filesystems while retaining the concept.
21:37:25 <pikhq_> Admittedly, there's not *that* much you can do while retaining the concept of "a chunk of bytes is the only data structure", but hey.
21:38:01 -!- itidus20 has joined.
21:38:25 * elliott sometimes worries that he'll never finish @. and probably everyone else has already filed it under Feather
21:39:07 * pikhq_ has made bootstrap-linux smaller
21:39:17 <elliott> oerjan: i actually have this _drive_ to make @ happen, though :D
21:39:17 <pikhq_> I was able to remove Perl and GNU sed.
21:39:21 <elliott> not quickly, just... at all
21:39:25 <oerjan> elliott: well you'd need to be an even greater genius than i think you are :P
21:39:29 <elliott> and i can't avoid it by NIHing it further as it is The Ultimate
21:39:33 <pikhq_> Now it only has things sane people would expect!
21:39:42 <elliott> oerjan: FLATTERY GOES IN THE OTHER CHANNEL -------->
21:39:55 <pikhq_> Busybox, Binutils, GCC, Make, Linux.
21:40:09 <elliott> oerjan: Maybe I'll pull a Stanislav and declare a brick to be @
21:40:11 -!- CakeProphet has joined.
21:40:11 -!- CakeProphet has quit (Changing host).
21:40:11 -!- CakeProphet has joined.
21:40:13 <elliott> (http://www.loper-os.org/?p=405)
21:40:41 <oerjan> bricks, black boxes, what's the difference.
21:40:45 <elliott> "There are a great many other things this amazing silicon device refrains from doing!
21:40:45 <elliott> Such as, for instance… computing. And yet, it is still a Lisp system!"
21:40:53 <elliott> sometimes I wonder how Stanislav breathes without laughing
21:41:20 <elliott> Does not impose an arbitrary order of sub-expression evaluation on programmers.
21:41:31 <elliott> I guess Stanislav likes his sub-expressions to be executed in parallel
21:41:59 <oerjan> elliott: it's par for the course
21:42:16 <elliott> oerjan: btw what was that research you mentioned about automatic parallelisation... :D
21:42:34 <oerjan> i mentioned something you didn't already know?
21:42:57 <oerjan> it wasn't haskell-related?
21:43:03 <elliott> oerjan: (also you manage that whenever oklopol ropes you into discussing mathematics for at least two lines)
21:43:30 <oerjan> elliott: i meant related to parallelisation
21:43:51 <oerjan> and haskell, for that matter
21:45:59 <oerjan> hm despite lexicographic similarity, parallel list comprehensions are not it
21:46:25 <oerjan> i guess it's not in ghc directly
21:46:42 <elliott> maybe you just said there were no good leads that you knew of :)
21:48:42 <oerjan> well if it was _old_ i may simply have mentioned the realization that the overhead of fine-grained parallelism is too high for arbitrary automatic parallelization to have worked well in practice
21:49:14 <elliott> I kind of feel like that's an artefact of our CPUs :/
21:49:31 <elliott> like, you know the Connection Machine? Feynman worked on it?
21:50:04 <elliott> basically it had tens of tens of thousands of really simple processors with just a few kilobytes of ram each
21:50:17 <elliott> and they operated on like single bits
21:50:24 <elliott> I have a hard time believing incredibly-fine-grained parallelism wouldn't pay off on _that_
21:50:43 <oerjan> well but the actual overhead is in the shuffling of work to and from processors, surely.
21:51:04 <elliott> but it had optimised routers for that
21:51:11 <elliott> basically you could communicate to nearby processors instantly...
21:51:19 <oerjan> and there are inherently sequential algorithms (e.g. euclid's algorithm)
21:51:32 <elliott> I just mean for subexpressions
21:51:39 <elliott> I feel like you could dedicate a few hundred CPUs in each region to scheduling and let it go
21:51:48 <elliott> for any subexpression that triggers some naive "big" predicate
21:52:07 <elliott> but I don't think the Connection Machine ever really got made again.
21:52:13 <oerjan> i think the thing is that automatic parallelization works badly with code that isn't "obviously" parallel because it still requires intelligence to find out which parts _are_ parallelizable
21:52:46 <elliott> I have this horrible feeling that it's going to be another super-wacky problem that solves this
21:53:00 <elliott> just like functional programming solved the tangle of effects and dependencies problem
21:53:17 <elliott> (and the "lack of higher-order control structures" problem)
21:53:55 <oerjan> well the current research afaik is about solving it by making it easy for programmers to write programs in such a way that the parallelizable parts _are_ obviously indicated.
21:54:10 <oerjan> but that's not automatic
21:54:52 <olsner> paradigm/problem :D multi-paradigm languages should henceforth be multi-problem programming languages
21:54:57 <olsner> program with many problems at once
21:55:00 <elliott> olsner: mo paradigms mo problems
21:55:28 <elliott> oerjan: I think what I really have to do is continue on my path of a super-scaled-back @ as the short- and medium- and short-long- term goals.
21:55:55 <elliott> I can't just let it succumb to inertia on account of having a big unidentified blob at the centre, I have to try and tackle away at it bit by bit
21:56:42 -!- Lymee has quit (Quit: 1... 2... 3... HUGS! :D).
21:57:27 <elliott> was going to make some horribly tasteless joke about norwegians, but decided i'm a better person than that
21:57:35 <elliott> I guess this is just as bad though
21:57:47 <monqy> nice horribly tasteless joke about norwegians, there
21:57:55 <elliott> you're a horribly tasteless norwegian
21:59:08 -!- Lymee has joined.
21:59:30 <olsner> elliott: keep your jokes fnarfful
22:00:05 <olsner> or maybe that should be fnarfless, if fnarf is not taste
22:00:54 <oerjan> elliott: the other thing i might have mentioned would be http://www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell
22:01:18 <oerjan> but how can you not know about that
22:02:46 -!- CakeProphet has quit (Ping timeout: 246 seconds).
22:05:02 -!- CakeProphet has joined.
22:14:37 -!- CakeProphet has quit (Ping timeout: 260 seconds).
22:15:39 -!- CakeProphet has joined.
22:15:39 -!- CakeProphet has quit (Changing host).
22:15:39 -!- CakeProphet has joined.
22:21:35 -!- itidus20 has quit (Read error: Connection reset by peer).
22:22:35 -!- elliott has quit (Ping timeout: 255 seconds).
22:34:55 <cheater_> i'm gonna start signing my emails "Sent from my Cray X-MP"
22:35:25 <quintopia> only if i can use "Sent from SPACE"
22:41:11 <oerjan> this message sent from a tiny dust speck in space
22:45:40 -!- quintopia has set topic: "I wrote the program for my Master’s Thesis (a dynamic programming problem) in Turbo Pascal, so I got good at functional programming." -Robert Edwin Peary, Sr. | Logs: http://codu.org/logs/_esoteric/ and http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
22:49:22 <oerjan> turbo pascal can get you to the top of the world
22:54:21 <fizzie> Whereas regular Pascal is barely enough to get you up a moderate hill.
23:11:28 -!- TeruFSX has joined.
23:32:16 -!- FireFly has quit (Quit: swatted to death).
23:34:44 <Lymee> @hoogle ByteString->IO ()
23:34:44 <lambdabot> Data.ByteString putStr :: ByteString -> IO ()
23:34:44 <lambdabot> Data.ByteString putStrLn :: ByteString -> IO ()
23:34:44 <lambdabot> Data.ByteString.Char8 putStr :: ByteString -> IO ()
23:34:58 <Lymee> @src Data.ByteString putStrLn
23:35:02 <Lymee> @src Data.ByteString,putStrLn
23:35:02 <lambdabot> Source not found. It can only be attributed to human error.
23:35:05 <Lymee> @src Data.ByteString.putStrLn
23:35:05 <lambdabot> Source not found. There are some things that I just don't know.
23:35:09 <lambdabot> putStrLn s = do putStr s; putChar '\n'
23:35:13 <Lymee> @src Data.ByteString
23:40:37 <lambdabot> http://hackage.haskell.org/package/bytestring
23:41:56 <cheater_> if i have n regexes, is it possible to compile them all into one optimized thing that will match if either one had matched?
23:43:53 <oerjan> Lymee: @src only has a small subset of sources. use hoogle or hayoo on the web. istr that hayoo searches all of hackage.
23:44:56 <oerjan> http://holumbus.fh-wedel.de/hayoo/hayoo.html#0:putStrLn
23:45:41 <oerjan> (that thing above is unlikely to be the ByteString version. although maybe they're identical.)
23:46:17 <cheater_> oerjan, are you smart with regex??
23:46:37 <oerjan> oops, hayoo's source links are broken. the package name link should still work though.
23:47:49 <oerjan> cheater_: well why not just put | between them?
23:49:18 <cheater_> what if they contain | already.. hmm yeah then it works too i guess
23:49:35 <oerjan> whether it's efficiently compiled i assume depends on the regex implementation
23:49:43 <cheater_> i wonder if postgresql regex is compatible with python regex
23:50:52 <oerjan> http://hackage.haskell.org/packages/archive/bytestring/latest/doc/html/src/Data-ByteString.html#putStrLn
23:51:02 <oerjan> putStrLn = hPutStrLn stdout
23:52:17 -!- TeruFSX has quit (Remote host closed the connection).
00:18:11 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
00:26:07 * oerjan detects an off-by-one error :P
00:28:05 <CakeProphet> oerjan: (implying that you shouldn't have been born, or that you needed another sibling... but that one is less of a sick burn)
00:29:14 <oerjan> well my parents _were_ married just about a month before i was born. draw your own conclusions.
00:31:24 <CakeProphet> though my conclusion is that marriage doesn't matter very much.
00:31:32 <CakeProphet> except for the legal consequences, which matter a lot.
00:32:44 <oerjan> also, this was in 1970, a time when marriage definitely mattered.
00:33:31 <oerjan> it would basically have been unthinkable for them to _plan_ it this way at that time.
00:34:08 <Sgeo> "No public logging! What happens in #emacs stays in #emacs "
00:34:31 <Sgeo> (Note: The .. not actually all that funny stuff is over)
00:34:50 <CakeProphet> oh yeah. #emacs is a riot. Lots of kinky ASCII porn.
00:34:57 <oerjan> yeah if you want the world to search for your private secrets, tell them in #esoteric.
00:36:09 <oerjan> that's weird my browser locked up but seems to not be using CPU
00:37:11 <CakeProphet> some kind of resource bottleneck/deadlock, I guess?
00:38:33 <CakeProphet> there's always a possibility that it was a ghost. Perhaps you have a haunted computer
00:39:28 <oerjan> oh it's haunted all right, i just cannot recall this particular failure mode before.
00:39:33 <CakeProphet> if that is the case then you may have a computer capable of hypercomputation.
00:40:18 <CakeProphet> via ghost-power.. kind of like an oracle, but spookier.
00:43:32 <CakeProphet> hmmm, so doesn't the fact that humans are reasonably effective at solving the halting problem for a given language suggest that it's impossible to replicate human intelligence via Turing-complete computation?
00:44:34 <CakeProphet> well, I suppose since we're not perfect at it, and we can't solve it for languages that are unknown to us..
00:44:47 <oerjan> no, because we are not reasonably effective at it.
00:45:30 -!- augur has quit (Remote host closed the connection).
00:46:24 -!- copumpkin has joined.
00:46:28 <oerjan> it is easy to construct problems we cannot solve. things like "loop through even numbers > 2 until you find one which is not the sum of two primes" just more varied.
00:48:41 <oerjan> now let's see if reloading previous browser session locks it up again.
00:49:44 <oerjan> evidence so far is ... hm it moved.
00:51:06 <oerjan> now it's locked up _and_ using CPU. :(
00:53:28 <oerjan> gah it was a huge pdf file
01:05:28 -!- augur has joined.
01:11:50 -!- NihilistDandy has joined.
01:43:38 -!- variable has quit (Quit: I found 1 in /dev/zero).
01:43:52 -!- MDude has quit (Read error: Connection reset by peer).
01:44:14 -!- MDude has joined.
01:48:57 -!- CakeProphet has quit (Ping timeout: 264 seconds).
01:58:08 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:01:59 -!- MDude has quit (Read error: Connection reset by peer).
02:02:21 -!- MDude has joined.
02:11:13 -!- cheater_ has joined.
02:27:07 -!- NihilistDandy has quit (Read error: Connection reset by peer).
02:29:22 -!- azaq23 has joined.
02:39:32 -!- Nisstyre has quit (Ping timeout: 255 seconds).
02:47:05 -!- TeruFSX has joined.
02:50:28 -!- jcp has quit (Quit: No Ping reply in 120 seconds.).
02:50:28 -!- javawizard has changed nick to jcp.
02:51:03 -!- jcp|other has joined.
02:53:19 -!- Nisstyre has joined.
02:54:23 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:58:23 -!- TeruFSX has quit (Ping timeout: 276 seconds).
03:07:10 -!- cheater_ has joined.
03:08:08 -!- clog has quit (Ping timeout: 276 seconds).
03:08:34 <oerjan> oh no, we have been unclogged!
03:13:54 -!- copumpkin has changed nick to draino.
03:14:11 -!- Nisstyre has changed nick to Rainbow_Dash.
03:14:24 -!- draino has changed nick to copumpkin.
03:14:28 -!- Rainbow_Dash has changed nick to Nisstyre.
03:14:40 -!- azaq231 has joined.
03:16:05 -!- azaq23 has quit (Ping timeout: 252 seconds).
03:16:43 -!- zzo38 has joined.
03:19:08 <zzo38> Someone mentioned that my optimization/compression problem was related to LZW. I don't know for sure.
03:21:24 -!- TeruFSX has joined.
03:37:40 <zzo38> Do any other literate programs exist that can help with my problem?
03:43:22 -!- MDude has changed nick to MSleep.
04:05:24 <Sgeo> Can someone please shed some light on http://www.reddit.com/r/AskReddit/comments/izm57/what_do_you_consider_to_be_the_greatest_unsolved/c27z4vt?context=3 ?
04:07:02 <oerjan> "selectable as an axiom, or counter-axiom" _implies_ unprovable.
04:07:46 <oerjan> and true & false applies to _models_, not axiomatic theories.
04:08:18 <oerjan> again, by godel's completeness theorem, if something is unprovable, then it is false in some model.
04:08:47 <oerjan> provable <=> true in all models
04:09:24 <oerjan> (models of the given axioms)
04:09:27 <Sgeo> I feel like I understand less now
04:10:08 <Sgeo> (Yes, that must be an illusion, generated by an unperceived lack of understanding, yada yada)
04:10:12 <oerjan> well, (1) the continuum hypothesis _is_ independent. this means that it is (2) not provable, _and_ (3) not disprovable.
04:10:43 <oerjan> (2) again is equivalent to it being false in some model of the rest of set theory
04:10:58 <oerjan> (3) then is equivalent to it being false in some model etc.
04:11:48 <oerjan> *(3) then is equivalent to it being _true_ in some model etc.
04:12:03 <Sgeo> So what' are "true but unprovable" statements for a system of axioms?
04:12:10 <Sgeo> Or does that not apply to CH?
04:12:51 <oerjan> there is no such thing, truth only applies _inside_ a model of the axioms, unless it holds for _all_ models, in which case its provable.
04:13:53 <oerjan> models here technically mean set theoretic models, which may be a little circular for this particular question
04:14:10 <Sgeo> Can you post some of this on reddit?
04:14:24 <oerjan> i still have no account
04:15:30 <oerjan> oh hm or are you referring to that "this assumption is widely believed to be true."
04:16:08 <oerjan> which is the only instance of "true" in what you responded to
04:16:51 <oerjan> and that refers to a different kind of truth than the truth of the continuum hypothesis
04:17:48 <oerjan> it refers to whether ZF is consistent, which is believed to be true presumably because it's intuitive and no one has managed to construct an inconsistency
04:19:08 <Sgeo> No, that's not what I was referring to
04:19:51 <oerjan> however, this means that the consistency of ZF is itself believed to be a true but unprovable statement.
04:21:30 <oerjan> (we know that _if_ it is true then it is unprovable, by godel's _in_completeness theorems)
04:21:55 <pikhq_> Much like scientific theories, one can only disprove the consistency of an axiomatic system.
04:22:47 <oerjan> pikhq_: well unless you prove it in a stronger system.
04:23:26 <pikhq_> Though that leaves it still in doubt, because the stronger system itself could be inconsistent. :)
04:24:20 <oerjan> and i'm not entirely sure if there are some systems weaker than peano arithmetic (weak enough not to allow godel's proof) but still expressive enough to talk about their own consistency, and then maybe prove it.
04:24:34 <oerjan> i cannot recall hearing of any examples
04:26:11 <oerjan> since "expressive enough to talk about their own consistency" is _approximately_ what you seem to need to get godel's proof in the first place
04:29:31 <oerjan> there's a kind of "intended model of natural numbers" which people end up referring to when speaking about the latter kind of truth.
04:30:12 <oerjan> which is a model no one can know what is, since it has no complete axiomatization.
04:45:30 -!- pikhq has joined.
04:48:30 -!- pikhq_ has quit (Ping timeout: 252 seconds).
05:02:26 -!- BeholdMyGlory has quit (Remote host closed the connection).
05:31:39 <oerjan> ooh nerdgasm http://scienceblogs.com/startswithabang/2011/07/were_going_to_see_a_black_hole.php
05:34:55 <oerjan> (although you need the rest to understand _why_ it's so cool
05:50:44 <Sgeo> Why only radio waves?
05:50:55 <Sgeo> What's special about radio waves that that technique works so well?
05:51:43 -!- zzo38 has quit (Remote host closed the connection).
05:52:55 <oerjan> perhaps it's because their frequency is so low that ordinary circuitry can handle them...
05:53:51 <Sgeo> There was a Star Trek fan fic in some anthrology that had some sattelite that moved around the galaxy
05:54:49 <Sgeo> http://memory-beta.wikia.com/wiki/What_Went_Through_Data%27s_Mind_0.68_Seconds_Before_the_Satellite_Hit
05:55:52 <pikhq> It seems that the limiting factor on that technique is data storage and/or bandwidth.
05:56:24 <pikhq> And radio frequencies are just about pushing the upper limit on that.
05:57:26 -!- TeruFSX has quit (Ping timeout: 252 seconds).
05:57:35 <oerjan> bah there had to be something in the comments to make it less awesome :(
05:59:11 <oerjan> george monser calculates that the event horizon will only occupy a couple of pixels...
06:01:06 <Sgeo> By "a couple", you mean "1 or 2"
06:15:08 <fizzie> There's a good summary of them reasons why it works for radio in http://en.wikipedia.org/wiki/Aperture_synthesis
06:15:14 <fizzie> "Aperture synthesis is possible only if both the amplitude and the phase of the incoming signal is measured by each telescope. For radio frequencies, this is possible by electronics, while for optical lights, the elecromagnetic field cannot be measured directly and correlated in software, but must be propagated by sensitive optics and interfered optically.
06:15:20 <fizzie> Accurate optical delay and atmospheric wavefront aberration correction is required, a very demanding technology which became possible only in the 1990s. This is why imaging with aperture synthesis has been used successfully in radio astronomy since the 1950s and in optical/infrared astronomy only since the 2000 decade."
06:15:55 <fizzie> The more obvious article ("astronomical interferometer") is far less concise.
06:21:36 <pikhq> fizzie: So, magic.
06:25:26 <oerjan> smangic (official term from comments :P)
06:28:45 <oerjan> (the reddit comments, that is)
06:41:26 -!- copumpkin has quit (Ping timeout: 252 seconds).
06:41:43 -!- copumpkin has joined.
06:50:44 -!- ais523 has joined.
06:59:32 -!- ais523 has quit (Read error: Connection reset by peer).
07:00:34 -!- ais523 has joined.
07:03:30 -!- monqy has quit (Quit: hello).
07:41:38 -!- Nisstyre has quit (Ping timeout: 240 seconds).
07:43:04 <pikhq> http://www.youtube.com/watch?v=Gzj1OF7d9m4 It's somewhat amusing seeing people enter a Walmart for the first time.
07:43:31 <ais523> I don't think I've ever been to a Walmart
07:43:47 <ais523> they don't exist under that name in the UK, and the supermarkets owned by them probably don't operate much like their US equivalents
07:44:12 <pikhq> You can purchase just about everything in a Walmart.
07:44:30 <ais523> hmm, I can tell I was tired last night
07:44:34 <ais523> because I wrote the following line of code: if ((htole32(rv) & 0xffff) == 0x80cd)
07:44:38 <pikhq> Shy of, like, a car, or lumber, or something...
07:45:01 <ais523> (rv is a long that has been read from a process's text segment)
07:45:21 <ais523> you can buy firewood in petrol stations, in the UK
07:45:33 <ais523> I'm not entirely sure why it's stocked there, it just sort-of became traditional
07:45:43 <ais523> and you can't get it anywhere else, because everyone knows you go to petrol stations to get it
07:45:53 <ais523> I suppose it makes sense to have one sort of shop for selling every type of fuel
07:46:04 <pikhq> That actually makes rather a lot of sense.
07:46:40 <pikhq> Except that here in America, we believe in having one sort of shop for selling every type of thing.
07:47:04 <ais523> the problem is that you can't easily fit those onto street corners
07:47:27 <ais523> in the UK, the trend recently has been to have small supermarkets, that sell just things that people would buy frequently, fitting into relatively small areas
07:47:34 <ais523> although they're big-name supermarkets rather than corner shops
07:48:04 <pikhq> This is a non-issue when your urban design is based around the idea of having a 50 acre parking lot in front of a 40 acre store.
07:48:28 <ais523> but then, umm, you'd need a car just to drive to the supermarket
07:48:57 <pikhq> Guess what auto ownership rates are like?
07:49:12 <ais523> I think there's a small supermarket within a minute's walk at all the places I tend to be (work, home, etc)
07:49:29 <ais523> hmm, this reminds me, I only have two days left on my bus pass
07:49:38 <ais523> (I buy it for several months at a time)
07:49:56 <pikhq> *Freakishly*, I happen to be about a mile away from a supermarket.
07:50:26 <pikhq> This is an exceptionally short distance for anything to be.
07:51:25 <ais523> I suppose that the UK has a huge population density compared to most places in the word
07:51:38 <ais523> I discovered today that London has a substantially greater population than Norway, which surprised me
07:52:16 <pikhq> Actually, I think in *this* case it's just the US having fairly low population density.
07:53:14 <pikhq> Outside of the major population centers, you could without much trouble be at least a mile away from anyone else.
07:53:18 <ais523> it varies a lot by state, I think
07:54:25 <pikhq> Anyways. Everyone has cars, and there's a lot of space, so there's no incentive to make dense, walkable cities.
07:58:42 <cheater_> pikhq: i've always found it crazy how spread out everything in usa is
07:59:01 <ais523> pikhq: if you had dense, walkable cities, you wouldn't have to use cars
07:59:32 <pikhq> ais523: Yes. And if we didn't already have to use cars, we would have reason to have dense, walkable cities.
07:59:58 <cheater_> ais: that's silly, it doesn't work like that
08:00:00 <ais523> even not needing a car for some things is a benefit
08:00:11 <ais523> e.g. it takes me a couple of hours to walk to work, so I generally need to take a bus
08:00:24 <ais523> but if, say, I want to buy food, or go to the bank, that's within reasonable walking distance
08:00:24 <pikhq> And it doesn't help that the car companies bought up all the public transit and ruined it in the early 1900s.
08:00:42 <cheater_> ais: nowadays people need to commute, it's a requirement of our way of life. it takes a special dedication for someone not to commute at all.
08:00:50 <ais523> the public services are moderately ruined here
08:00:55 <cheater_> even i have to commute every now and then.
08:00:58 <ais523> but even so, they're still cheaper than cars, by a factor of about 2
08:01:13 <cheater_> and i can find pretty much anything within walking distance.
08:01:19 <pikhq> What do the opportunity costs on that look like?
08:01:26 <pikhq> The bus that goes by here runs twice a day.
08:01:46 <ais523> on a popular bus route, it's about once per 15 minutes offpeak, and once every 5 minutes or so at rush hour
08:01:54 <ais523> the least popular bus routes generally run once an hour
08:02:06 <ais523> but tend to be pretty accurate with their timings, and have easily memorizable timetables
08:02:30 <pikhq> I've only seen that performance in the handful of dense, relatively walkable cities.
08:02:42 <cheater_> in london the important ones even run once an hour at night
08:02:55 <ais523> they used to do that in Birmingham too
08:02:57 <pikhq> Otherwise, the buses are utterly unusable.
08:03:07 <ais523> instead, they just stop a little past midnight, and start up again at 5am
08:03:15 <pikhq> To the point that it would be quicker to walk.
08:03:24 <cheater_> pikhq: london isn't walkable at all. you're most likely to work within 40 minutes of commuting from where you live.
08:03:26 <pikhq> In a land where it can be 8 miles to the grocery store.
08:03:55 <ais523> yep, unlike utilities, workplaces tend to be rather further away
08:04:06 <pikhq> cheater_: Only 40?
08:04:21 <ais523> in London, people generally use the Tube, even though it's really bad for medium-length distances (you can spend as long going down and up to reach it, as you would walking along the surface)
08:04:29 <Sgeo> I like being within walking distance of stuff
08:04:51 <ais523> in Birmingham, the train seems most common if you live near a train line (which I do, but it's only about 30% likely), or the bus otherwise
08:04:58 <cheater_> pikhq, that's 40 minutes each way
08:04:59 <pikhq> cheater_: Impressive in such a highly-populated city.
08:05:04 <pikhq> cheater_: Yes, I know.
08:05:27 <cheater_> pikhq, funnily enough the "last mile" is the most expensive.. the tube itself usually takes a fraction of the time, but takes you the longest way
08:05:36 -!- oerjan has quit (Quit: leaving).
08:06:03 <cheater_> OTOH the tube makes you ill and deaf, so i don't like it.
08:06:04 <ais523> cheater_: did you know that the escalators that reach the Tube system in London run about twice as fast as escalators elsewhere in the UK, such that they need a little practice to use safely?
08:06:17 <ais523> it's an attempt to cut down on that effect
08:06:50 <cheater_> ais523, it's a rush, i like the escalators
08:07:07 <ais523> (they also tell tourists/people who don't know what they're doing to keep to one side, so that they don't block the commuters from running up/down the escalators in the direction they're going to get places even faster)
08:07:19 <ais523> I like them too; I've been to London often enough that I know how to use them
08:07:34 <cheater_> in brixton you have an escalator that starts out almost right at the entrance and goes all the way to the platform
08:07:41 <cheater_> and it's like 2-3 stories high
08:08:05 <Sgeo> It's bizzare. A bunch of webchat idiots were in both #chicken and #jesus
08:08:09 <cheater_> yeah, people have to yield if they're not on the side
08:08:13 <Sgeo> Not in #chicken anymore they banned webchat users
08:08:26 <cheater_> Sgeo, what's #chicken and why is this combination bizarre?
08:08:48 <Sgeo> It's... just a really weird combination for a bunch of people to be present in, imo
08:09:39 -!- ais523 has quit (Read error: Connection reset by peer).
08:09:46 <pikhq> cheater_: Presumably Chicken Scheme.
08:10:09 <cheater_> the transit system in berlin was very shitty
08:10:30 -!- ais523 has joined.
08:10:32 <cheater_> munich also has a much higher population density, it's like zone 3 in london
08:10:40 <pikhq> Probably doesn't help that the transit system in Berlin spent a few decades having to work around the Wall.
08:11:07 <fizzie> ais523: What I thought was a bit strange was that the tube walkways had all these "keep to the right" signs, yet you drive cars on the wrong side of the road.
08:11:09 <cheater_> pikhq, berlin transit is pretty much ubahn and sbahn, it has nothing to do with the wall.
08:11:28 -!- Nisstyre has joined.
08:11:35 <cheater_> the roads were build before the wall, so that's no problem either.
08:11:43 <ais523> fizzie: the reason you drive on the left is that most people are right-handed, so you can get onto your horse from the sidewalk without your sword getting in the way
08:11:54 <pikhq> Except they couldn't do much improvement on them.
08:11:57 <fizzie> ais523: But why do you walk on the right, then?
08:12:08 <ais523> the walk on the left/right seems arbitrary
08:12:15 <ais523> I think it's because people naturally go right when faced with obstacles
08:12:19 <ais523> so that they can attack them more easily
08:12:52 <cheater_> ais523, that's wrong, it's the usual on rhd roads for slow cars to be on the right side
08:13:38 <ais523> the general rule in all road systems I've seen, in a range of countries, is that slow cars are adjacent to the sidewalk/pavement, fast cars nearer the centre
08:13:54 <pikhq> How optimistic of you.
08:14:03 <cheater_> i guess that's one way for the british to admit imperial arbitrations are failing and they need to make themselves compatible with the rest of the world
08:14:33 <pikhq> Slow cars are inevitably side-by-side and going the same speed.
08:14:42 <cheater_> i've also noticed another funny imperial/metric thing
08:14:53 <ais523> in Hungary, motorways don't have slip roads; instead, the speed limit on the rightmost lane (it's drive-on-the-right) gets reduced gradually to a very slow speed, then it just has a normal junction with another road, then it gets increased more quickly back up to full motorway speed again
08:14:56 <pikhq> Driving past a "Slow Traffic Keep Right — It's The Law!" sign.
08:15:48 <fizzie> ais523: You can also buy firewood from (many) petrol stations in Finland, too. It feels logical.
08:16:03 <fizzie> They sell "that sort of stuff".
08:16:24 <cheater_> it is that the Schuko is specified in inches, whereas BS 1363 is specified in meters. how crazy is that?
08:16:34 <cheater_> it's like the bizarro world of electric engineering
08:16:36 <fizzie> Also coals for barbequeueing.
08:16:42 <ais523> pikhq: in the UK, slow cars in the inside lanes generally get mown down by lunatics
08:16:52 <ais523> it's not really an ideal way of enforcing the law, but it works moderately well
08:16:57 <pikhq> ais523: You have no idea how happy that idea makes me.
08:16:58 <ais523> also, lorries are banned from the inside lane in a motorway
08:17:17 <pikhq> Seriously, that makes me ecstatic.
08:17:21 <ais523> in fact, you're not meant to keep to the inside lane except to overtake, but people do it anyway (keeping in the middle lane is fine)
08:17:45 <cheater_> ais523, have you ever lived in hungary?
08:17:58 <ais523> cheater_: only for a week
08:18:10 <cheater_> fizzie, it makes lots of sense since the items you use for barbecue are of petrochemical origin.
08:18:12 <ais523> I can't speak more than a couple of words of Hungarian, and they're mostly ones that can easily be inferred
08:18:22 <cheater_> oh, i am learning italian now.
08:18:26 <ais523> although I can pronounce it pretty well (it's a phonetic language, so it can be pronounced even without knowing what the words mean)
08:18:40 <fizzie> People here generally tend to return to the outer lines after overtaking, at least on "proper" highways as opposed to these in-city things, but of course our roads aren't usually very busy.
08:18:41 <cheater_> i'm wondering if i should translate the source of the latest program to italian
08:19:56 <cheater_> ais523, why would they do that with the Schuko and BS 1363?
08:20:56 <pikhq> cheater_: Maybe it has something to do with how soda is sold by the liter in the US?
08:22:37 <pikhq> Nah, more likely Germany just wanted to fuck with us.
08:23:09 <cheater_> why would the british make the BS1363 metric then?
08:23:24 -!- ais523_ has joined.
08:23:49 -!- ais523 has quit (Disconnected by services).
08:23:50 -!- ais523_ has changed nick to ais523.
08:25:01 <pikhq> The British have a well-documented propensity for fucking with people.
08:27:24 <pikhq> Also, BS1363 isn't metric.
08:28:18 <pikhq> 1/4 inch wide by 5/32 inch high pins aren't metric. :)
08:28:53 <cheater_> i've measured one, it's spot-on metric
08:29:20 <pikhq> They have retroactively assigned it to 6.35mm by 3.975mm.
08:29:45 <pikhq> Though a more round 6.25mm by 3.9mm would be within tolerances.
08:30:19 <pikhq> (which are ±0.13mm and ±0.075mm)
08:33:57 <fizzie> I wouldn't be surprised if Schuko was also retroactively metricized; Wikipedia lists the pin separation at "19 mm", which is 0.748 inches, suspiciously close to 3/4.
08:34:37 <pikhq> Yeah, that seems quite plausible.
08:35:49 <ais523> the standard pin spacing in electronics, if you're assembling the circuit by hand, is a deciinch
08:36:04 <pikhq> In the name of not-confusing-you, the US's connector, NEMA 1 or 6, is non-metric.
08:36:06 <ais523> umm, I think that needs a diaeresis
08:37:07 <pikhq> (NEMA is a group of electrical socket standards; only 1 and 5 are in common domestic use. 1 is ungrounded, 5 is grounded.)
08:37:48 <cheater_> some are closer to metric-like, some are closer to imperial-like, however in all three the longer dimension of the base of the small pins (the ones carrying hot and neutral) are spot-on 6 mm!
08:39:09 <pikhq> So, what you're saying is that they're way out of spec in the name of metric? :P
08:40:02 <pikhq> That should be 6.35±0.13mm.
08:40:23 <cheater_> it's definitely not 6.2 or more.
08:50:17 <cheater_> i wonder.. why do more people not use banner style indent? it's so confenient
08:50:49 <cheater_> OTBS seems to be the prevalent one, but it makes no sense in braceless languages.. and even in braced languages, once i started using it, it makes much more sense
08:52:14 <pikhq> In the braced languages, OTBS is perceived as being part of the syntax.
08:53:30 <pikhq> ais523: The closing bracket is at the same indent level as the previous statements.
08:54:09 <ais523> putting the closing bracket on the same line as the last statement makes more sense than that
08:54:16 <Sgeo> I think I used to do that
08:54:16 <ais523> I find myself doing that more and more nowadays
08:54:34 <ais523> I don't use Lisp, but any writing out of ASTs by hand is going to end up with huge numbers of stacked parens
08:54:36 <cheater_> i don't like it because the closing can get lost
08:54:39 <ais523> and I've been doing that quite a bit
08:56:11 <cheater_> i started using it because, well, in python basically you have very few situations where you actually have braces, and i was using that for a long time
08:56:33 <cheater_> then i've had some heavy bash-style projects and using OTBS for the fi and done and so on just didn't make sense, so i started using banner style for that
08:56:49 <cheater_> and then i noticed that it also applies to python, when you're using multiple lines for function calls etc
08:56:52 <pikhq> Absolutely *nothing* in Bourne makes sense.
08:56:55 <pikhq> And with that, sleep.
09:27:09 <ais523> gah, this web page about Unicode is really hard to read, because it sprinkles Unicode everywhere gratuitously because it can
09:27:20 <ais523> my browser interprets the encoding fine, but my fonts are missing many of the characters in question
09:53:28 -!- itidus20 has joined.
09:54:12 -!- Slereah has quit (Ping timeout: 276 seconds).
09:54:28 -!- GuestIceKovu has joined.
10:03:15 <Sgeo> So, just downloaded some crappy card game program
10:03:27 <Sgeo> Try it, there's an option for setting the random seed
10:03:34 <Sgeo> That.... sounds abusable
10:06:09 <fizzie> It's also quite common. Doesn't the Windows-bundled FreeCell also allow it? (With the old one having 32000 possible games, of which all but one are solvable, or something like that.)
10:06:31 <Sgeo> fizzie, Barbu is not a single player game
10:07:07 <fizzie> Oh, well, that's rather different.
10:07:25 <Sgeo> http://i.imgur.com/Xua00.png
10:08:23 <fizzie> Not the prettiest dialog ever.
10:11:21 -!- ais523 has quit (Ping timeout: 255 seconds).
10:14:37 -!- ais523_ has joined.
10:15:47 <ais523_> gah, it's annoying having to use webchat on the wired connection here
10:16:05 <ais523_> especially as the CAPTCHA requires unblacklisting script from Google
10:16:39 <ais523_> luckily, I found a NoScript setting that lets me turn off a temporary-allow without reloading the page, so that I can have Google blocked except when typing the CAPTCHA
10:17:21 <itidus20> so if you had a reasonably perfect reality simulation... would you have to follow real world patent laws? :D
10:17:46 <itidus20> eg.. is it illegal to build a patented device from physical space in a virtual space
10:18:28 <itidus20> the courts will have fun with that one oneday
10:20:59 -!- azaq231 has quit (Read error: Operation timed out).
10:23:02 -!- FireFly has joined.
10:24:51 <itidus20> So.. perhaps the mystery of society is that society is a living list composed of beings who are theoretically equal but actually cardinal
10:25:13 <itidus20> and it is their dire burden to organize that list among themselves
10:25:27 <itidus20> for the good of themselves and the good of the list
10:26:16 -!- azaq23 has joined.
10:32:03 -!- clog has joined.
10:48:53 -!- clog has quit (Ping timeout: 240 seconds).
11:03:13 <coppro> I just fixed a bug in a C++ standard library using the unary + operator
11:11:16 <cheater_> are there set theories with non-linear order relations on cardinality?
11:11:34 <cheater_> coppro, what does the unary + operator do again?
11:12:03 <coppro> cheater_: does nothing except perform integral promotion
11:12:09 <coppro> which, in this case, was exactly what I needed
11:14:42 <cheater_> For example, it can be used to force widening from smaller integral types to int, or ensure that an expression's result is treated as an rvalue and therefore not compatible with a non-const reference parameter. I submit, however, that these uses are better suited to code golf than readability
11:15:04 <fizzie> Given that this is C++, if it's not a primitive type, you can never know what the unary + will do to it.
11:15:34 <ais523_> coppro: I wrote this earlier: if ((htole32(rv) & 0xffff) == 0x80cd)
11:15:42 <ais523_> I was very tired, the line of code makes no sense in all sorts of ways
11:16:01 <ais523_> coppro: can you imply what's going on there from context?
11:16:13 <ais523_> or, well, imply the context from the code?
11:16:33 <coppro> I mean you're checking the low bits
11:16:56 <ais523_> well, the most obvious bug is that I don't htole16 the 0x80cd
11:17:10 <ais523_> I'm not checking the low bits, I'm checking the first two bytes of rv
11:17:17 <ais523_> which is why there's a byte order conversion there
11:17:35 <ais523_> and the reason is, the read command I have always reads four bytes at a time on x86 (eight on x86_64)
11:18:09 <ais523_> the more subtle bug is, that CD 80 is an x86-specific asm instruction, so I may as well just hardcode the endianness because the code wouldn't work anyway on a different processor
11:18:17 <ais523_> it just feels wrong to hardcode something like that
11:18:32 <ais523_> although I don't know why I'm uneasy about hardcoding endianness, but not about hardcoding literal machine code
11:18:42 <fizzie> Ha, it in fact looked like an x86 opcode, but I hadn't managed to find the list fast enough.
11:19:18 <coppro> CD is interrupt, right?
11:19:19 <ais523_> perhaps so that if it gets ported to another processor, I can just copy the code, changing the machine code, and it won't break even if it happens to be big-endian
11:19:30 <ais523_> and on Linux, CD 80 = syscall
11:19:44 <coppro> isn't there a separate syscall instruction?
11:19:57 <ais523_> the syscall instruction is int 0x80
11:20:17 <ais523_> I don't think there's a single instruction which means "do syscall", it's done via the interrupt vector as interrupts get you into kernel mode
11:20:45 <coppro> There is a syscall instruction on newer processors
11:20:49 <fizzie> There's both "syscall" and "sysenter", from AMD and Intel.
11:20:52 <ais523_> there's also a trick in this code that I only discovered by stracing strace
11:20:55 <ais523_> does Linux actually use it?
11:21:00 <ais523_> if so, I'll have to look up its machine code too
11:21:05 <fizzie> On x86-64 it at least is used.
11:21:12 <ais523_> this code's 32-bit specific
11:21:18 <coppro> ais523_: The 'correct' way to syscall on a modern Linux machine is by jumping into linux-gate.so
11:21:23 <ais523_> I may port it to 64-bit someday, but it involves naming individual registers
11:21:27 <ais523_> coppro: I'm not trying to make a syscall, though
11:21:40 <coppro> which is a magic shared library loaded into memory by the kernel at a fixed address which contains the syscall instruction, selected by processor to be whatever is fastest
11:21:47 <ais523_> I'm trying to, when a different process makes a syscall, wind its IP back a bit and change its registers so it makes another syscall
11:22:18 <ais523_> I ended up replacing read() and write() with state machines, they can make up to five syscalls to emulate what read() and write() normally do
11:22:20 <ais523_> all in the name of determinism
11:22:35 <coppro> linux-gate.so has some magic
11:22:49 <ais523_> gah, more magic's the last thing I need, I have enough of that stuff already in here
11:23:32 <coppro> http://lkml.org/lkml/2002/12/18/218
11:23:43 <ais523_> I'm already accessing a file via /proc/*/fd because that's the only accessible name for it on the system
11:24:18 <ais523_> Linux just subtracts two from the IP too?
11:24:33 <ais523_> that means that all the testing to see if I can get away with subtracting 2 from the IP is unnecessary
11:25:15 <coppro> http://www.trilithium.com/johan/2005/08/linux-gate/
11:26:04 <ais523_> oh, so /that's/ what VDSO stands for
11:26:05 <fizzie> Fortuitously sysenter's also two bytes long.
11:26:53 <ais523_> hmm, it also tells me how to get at auxv
11:27:07 <ais523_> the kernel initializes part of it with 16 random bytes, I need to go and make them deterministic again
11:28:31 <ais523_> it doesn't help that the auxiliary vector is undocumented, and referenced only in the ELF loader
11:28:47 <ais523_> (I've been grepping kernel sources far too much for this project)
11:30:31 <fizzie> ais523_: Anyway, do you actually need to mangle the EIP there? Isn't it just enough to do PTRACE_SYSCALL, then on the syscall entry stop just PTRACE_SETREGS the arguments and the syscall number to what you want and the PTRACE_SYSCALL again to get to the exit point? Why do you need to re-execute the actual instruction?
11:30:47 <ais523_> fizzie: because I need to replace one syscall with five
11:30:58 -!- itidus20 has quit (Quit: Leaving).
11:31:07 <ais523_> replacing one with one is easy, and doesn't require redoing syscall instructions at all
11:32:04 <ais523_> (it's not quite a simple 1-with-5, either; it's actually replacing 1 with 1, 2, 4, or 5, depending on return values, which is why I need the state machine)
11:33:49 <ais523_> I wonder if I should borrow strace's trick for ptracing child processes and still letting the parent get a wait() notification
11:33:59 <ais523_> (it basically works by anticipating when the child's about to exit, and detaching just in time)
11:34:24 <ais523_> I've already borrowed its trick for replacing fork with sys_clone so that the child can be traced too
11:34:42 <ais523_> (using an argument pattern that's documented, but not available via the clone(2) wrapper)
11:35:38 <fizzie> ais523_: It sounds like it should be possible to replace that one syscall with something that is configurable enough so that you can hook whatever complicated code you need to do at the other end of it, but maybe I won't start guessing without knowing the details.
11:35:41 <fizzie> (All this assuming you wish to stay strictly on the userland side.)
11:36:06 <ais523_> I'd write a kernel module if I had to, but I don't think it's necessary
11:36:30 <ais523_> and I may as well explain what I'm doing in Stage 1 of the project (which is likely the hardest stage): trying to create a framework for running programs in a completely reproducable way
11:36:49 <ais523_> so that given the same input, you get the same output, even if the program does something bizarre like catting /dev/random or printing out the values of pointers
11:38:04 <fizzie> Remember to account for accessing the processor performance counters with the RDTSC opcode. (Though it's possible that's a privileged operation? Or maybe not. It's supposed to be rather low-overhead.)
11:38:45 <ais523_> oh, ouch, you can do that?
11:38:57 <ais523_> I may have to just hope that code doesn't do that
11:39:05 <ais523_> single-stepping every instruction is intolerably slow
11:39:23 <ais523_> besides, it breaks on SMP systems, IIRC, and programs tend to avoid it for that reason
11:44:45 <Sgeo> Yay, I introduced another person to the inability to decide on a language that is my life
11:44:53 <ais523_> hmm, what do virtualisation programs do about RDTSC?
11:45:14 <ais523_> Sgeo: pick PHP, that way at least you can be certain you made the wrong choice
11:48:33 <fizzie> ais523_: At least the AMD-V hardware virtualization system lets you do an "instruction intercept" for RDTSC.
11:48:48 <fizzie> And if it's doing full software emulation it can of course do whatever.
11:49:06 <ais523_> yep, I'm hoping to avoid having to do full software emulation
11:51:18 <ais523_> it'd be nice if this worked for arbitrary programs, but I mostly just want to get the subset that people actually use working
11:51:32 <ais523_> for instance, cat almost works, I'm just missing deterministic support for open
11:51:35 <fizzie> The hardware virtualization systems would probably let you control everything, but you probably can't do that from a user-mode process (at least VirtualBox needs the vboxdrv module, which I think does something related) and it would be a lot more complicated than just some system-call trapping.
11:51:54 <ais523_> you can singlestep, but not stop on instructions of your choice
11:52:21 <ais523_> hmm, what about setting a breakpoint everywhere that looked like a RDTSC instruction? does setting breakpoints on data do anything?
11:52:39 <ais523_> if it's implemented by replacing instructions, it wouldn't work in case it overwrote data or a misaligned instruction
11:52:42 -!- ttm_ has quit (Ping timeout: 276 seconds).
11:52:50 <ais523_> but somehow I think it's implemented a safer way
11:52:52 <fizzie> You might run out of (hardware) breakpoints.
11:53:19 <ais523_> they'd have to be hardware breakpoints
11:53:41 <ais523_> I'm trying to do all this stuff without really knowing what I'm doing
11:55:13 <ais523_> also, there's something so wrong about typing "strace strace", even though there's no obvious reason why it wouldn't chain
11:55:57 <fizzie> I think there are four breakpoint control registers, but I don't know anything about any kernel interfaces for accessing that stuff.
11:56:18 <ais523_> I didn't notice one in the list of syscalls
11:56:23 <ais523_> so I'll just go download gdb source, and look there
11:56:57 <fizzie> I was just about to suggest that.
11:57:23 <ais523_> bleh, apt-get source is hanging, presumably because it's using the wrong proxy
11:57:57 <fizzie> There are some undocumented features in the x86(-64) hardware breakpoint system which lets it do... I forgot what it was, some form of data-dependent breakpointing in hardware that's not officially supported.
11:58:36 -!- Taneb has joined.
11:58:38 <fizzie> "Since they depend on hardware resources, hardware breakpoints may be limited in number; when the user asks for more, GDB will start trying to set software breakpoints. (On some architectures, notably the 32-bit x86 platforms, GDB cannot alsways know whether there's enough hardware resources to insert all the hardware breakpoints and watchpoints. On those platforms, GDB prints an error message only when the program being debugged is continued.)"
11:58:52 <ais523_> I'll download it with Firefox instead
11:59:02 <fizzie> GDB's "software breakpoints" are based on opcode replacement.
11:59:07 <Taneb> I sent off for a new AC adapter for my laptop
11:59:12 <ais523_> opcode replacement definitely won't work
11:59:16 <Taneb> Waited a couple of weeks
11:59:28 <Taneb> And they sent me the wrong thing
11:59:56 -!- itidus20 has joined.
12:00:21 <fizzie> ais523_: You should be writing for a Harvard arch, then you could freely replace opcodes without worrying about messing up data.
12:01:02 <ais523_> I can actually tell where the text, rodata and bss segments were in the executable, by looking at mmap
12:01:34 <ais523_> I can save on required breakpoints somewhat by only setting them in executable segments
12:01:38 <ais523_> and moving them around on every call to mprotect
12:02:43 <fizzie> The RDTSC problem might not be very important in practice, at least for "sensible" programs. I think it's mostly used as a high-precision timer for "interactive" things, and even there it's a bit discouraged practice since it's not a monotonic clock in a SMP system, so well-behaved programs should be using the OS interfaces instead.
12:03:19 <ais523_> a high-precision timer for interactive things is exactly the sort of thing I need to stabilise
12:03:27 <ais523_> time is one of the hardest things to get reproducible
12:03:55 <ais523_> btw, anyone know how to modify a file's inode change time? as far as I can tell, the only way to do so is to set the system clock, change the inode, then put the system clock back again, and that's obviously ridiculous
12:04:11 <ais523_> I think I'll just pretend it's equal to the modification time on read, much simpler that way
12:04:44 <fizzie> ais523_: Unmount, manipulate bits, remount. :p
12:04:59 <ais523_> the fs I'm using isn't backed by an actual device
12:05:15 <ais523_> which is mounted in a separate namespace so that, from the point of view of other processes, it can't be named
12:05:52 <ais523_> except by going through /proc
12:06:12 <ais523_> (the other way round, there's no way to name files on the main system's file system at all, except by breaking a chroot, which is exactly what I want)
12:06:27 <fizzie> I don't think there's an actual interface for setting the ctime, though. You may need to just fake the value returned by stat.
12:07:01 <fizzie> (Or use a FUSE filesystem instead of a tmpfs.)
12:07:04 <ais523_> (I suspect it's partly because setting the ctime should, logically, update the ctime to the current time immediately afterwards)
12:07:22 <ais523_> I'm using a tmpfs because it's there, and it's convenient
12:08:30 <ais523_> and has almost the right semantics
12:09:56 <fizzie> Reading the ptrace manpage made me wonder what exactly is the difference between PTRACE_SYSCALL and PTRACE_SYSEMU. Is it just that the latter doesn't stop at syscall exit, the assumption being that you're not going to actually perform a syscall as the child but instead fake it in the tracing parent and return the results directly?
12:10:26 <ais523_> fizzie: PTRACE_SYSEMU basically changes the int 0x80 (or sysenter) into a nop
12:10:38 <ais523_> the kernel doesn't do the syscall, just leaves the registers as they are
12:11:07 <ais523_> if I need to remove a syscall, I can do so by changing orig_eax to some nonimplemented number on the call, then changing the return value from -ENOSYS to whatever I want on the return
12:11:29 <ais523_> I haven't needed to do that yet, but suspect I may end up having to at some point
12:11:58 <fizzie> I suppose you want PTRACE_SYSCALL since you want to execute your syscalls as if the child were calling them, instead of just faking them in the tracing process.
12:12:16 <ais523_> and because you can emulate SYSEMU with SYSCALL, but not vice versa
12:12:26 <ais523_> especially as the vast majority (well, more than half) of syscalls go through unchanged
12:12:59 <ais523_> hmm, do you know of any way to interrupt a long sleep (like select(NULL, NULL, NULL, 100000);)?
12:13:16 <ais523_> I haven't tried any methods yet; I'm hoping that it works to send SIGTRAP to the process, then use ptrace to replace it with SIG_0
12:13:44 <ais523_> in theory that should cause the select to keep on going, but I doubt it can because there was an actual signal there
12:13:54 <fizzie> Sending signals sounds likely to work, that's what usually breaks long-running syscalls.
12:14:24 <ais523_> yep, the solution is likely to involve signals somehow
12:14:31 <ais523_> the man pages say that they're only interrupted by handled signals
12:14:50 <ais523_> although, that seems inaccurate, as you'd expect, say, an unhandled SIGINT to exit the process and interrupt the syscall in the process
12:14:51 <fizzie> There's that system call restart mechanism that was described/mentioned in the linux-gate text.
12:15:03 <ais523_> system call restart's used in a different set of cases, I think
12:15:18 <ais523_> so I'm wondering what happens if you signal the process, then use ptrace to unsignal the process again (which is possible)
12:15:26 <ais523_> do you get EINTR, or restart, or something else?
12:18:32 <fizzie> I'm not sure I'd like to hazard a guess. I don't even know what happens first when you send a handled signal to a process that's currently being PTRACE_SYSCALL'd; whether it will stop at the "syscall exit" SIGTRAP-alike or what.
12:18:55 <ais523_> that should be easy to test, at least
12:20:47 <fizzie> The syscall restart mechanism at least works in user code (it's just the return address that changes) and presumably you get the ptrace "syscall exit" trap at that point, so you can there decide whether to allow the restart to happen or not. But I don't really know the exact order of things happening, i.e. when will the signal get (a) delivered to ptrace or (b) handled if you let it be.
12:21:50 <ais523_> I sent SIGINT to sleep(1), and got a syscall return with value -516 (there doesn't seem to be an errno 516), followed by SIGINT arriving
12:22:15 <ais523_> it seems it was using nanosleep to do its sleeping
12:22:50 <ais523_> in particular, -516 does not seem to be -EINTR, which is -4
12:23:22 <fizzie> The 512 sounds like a flag.
12:24:07 <ais523_> let me try it again using a syscall that sleep(1) will ignore
12:24:51 <ais523_> I sent it SIGCHLD, and it returned -516, then received SIGCHLD, ignored it, then called syscall 0
12:25:25 <ais523_> it does look very much like the -512 is a sign that the syscall should be restarted, if the program is interested in restarting it
12:25:26 <fizzie> So it gets "physically" interrupted in all cases, but auto-restarted if the signal is not handled.
12:26:37 <ais523_> according to signal(7), nanosleep is interrupted and returns EINTR if interrupted by a signal handler
12:26:48 <ais523_> but that wasn't a signal handler, it was SIGCHLD, which sleep(1) has no reason to handle because it never forks
12:27:16 <fizzie> The 'strace' command prints the return value -- when I "sleep 1000" + kill -CHLD it -- as "ERESTART_RESTARTBLOCK (To be restarted)"
12:27:20 <ais523_> all I need to do to force an EINTR, then, is to replace the -516 with -4, I bet
12:27:27 <ais523_> and I can get a success return by replacing it with 0
12:27:45 <ais523_> strace is great for making sense of things
12:28:04 <ais523_> in fact, I've been expanding syscall arguments that represent flags just by compiling them into a small test program and stracing them
12:29:35 <fizzie> Good way of letting someone else have to handle the dirty work of gathering lists of all those flags and their meanings.
12:30:22 <ais523_> I dread trying to deal with ioctl
12:30:57 <ais523_> at least it can only be used on character special devices, which cuts down the number of cases somewhat; if I don't mknod a device, then nothing can ioctl at it
12:31:04 -!- CakeProphet has joined.
12:31:04 -!- CakeProphet has quit (Changing host).
12:31:04 -!- CakeProphet has joined.
12:31:45 <ais523_> perhaps I'll go and censor anything in my code that gives away why I'm writing it, and post source somewhere
12:31:47 <ais523_> it'll take a while, though
12:32:04 <fizzie> linux/errno.h has values 512..516 as ERESTARTSYS, ERESTARTNOINTR, ERESTARTNOHAND, ENOIOCTLCMD and ERESTART_RESTARTBLOCK with a comment "These should never be seen by user programs. -- Note that ptrace can observe these at syscall exit tracing, but they will never be left for the debugged user process to see."
12:32:59 <fizzie> Also for some improbable reason there's a set of NFSv3 errors in the same file.
12:33:04 <ais523_> hmm, I should try to track down that suspected kernel bug I saw earlier
12:33:34 <fizzie> #define EJUKEBOX 528 /* Request initiated, but will not complete before timeout */ <- Interestingly named.
12:35:21 <ais523_> hmm, I should look into the implementation of syscall(2) some time
12:39:01 <ais523_> fizzie: gdb/i386-nat.c seems to do the debug register accesses
12:39:06 <ais523_> it seems that you can only set four hardware break/watchpoints
12:39:23 <ais523_> which is a little annoyingly low
12:39:23 <fizzie> Yes, there's DR0 .. DR3 registers for it.
12:39:51 <ais523_> and DR6 and DR7 are status and control
12:42:18 <ais523_> the actual interface for setting the debug registers for another process in Linux appears to be to poke into the context-switched-out version of the registers using ptrace, so that they get set as the process context switches back in
12:43:56 <ais523_> aha, it's "u_debugreg" in struct user
12:43:57 -!- ttm_ has joined.
12:44:31 -!- clog has joined.
12:46:13 -!- ais523_ has quit (Quit: Page closed).
12:52:33 <Sgeo> Another auto-generated book: http://www.barnesandnoble.com/w/nomic-lambert-m-surhone/1025063254?ean=9786130549695&itm=13&usri=nomic
12:53:08 <Sgeo> How does the cover know that it's Suber if it's autogenerated?
12:53:17 <Sgeo> But... HIGH QUALITY WIKIPEDIA ARTICLES
12:54:24 <Sgeo> http://www.barnesandnoble.com/w/road-rules-lambert-m-surhone/1028378779?ean=9783639996302&itm=1&usri=lambert%2bm%2bsurhone
12:55:02 <Sgeo> Um, clicking the cover gives a different picture
13:03:22 <Taneb> You know who has an underappreciated job?
13:03:29 <Taneb> Tech support people
13:18:33 -!- copumpkin has quit (Ping timeout: 252 seconds).
13:18:57 -!- copumpkin has joined.
13:32:57 -!- derrik has joined.
13:40:17 -!- azaq23 has quit (Quit: Leaving.).
13:41:35 -!- azaq23 has joined.
13:43:07 -!- Taneb has quit (Ping timeout: 260 seconds).
13:55:17 -!- Taneb has joined.
13:58:40 -!- itidus21 has joined.
14:02:17 -!- itidus20 has quit (Ping timeout: 258 seconds).
14:14:02 -!- itidus21 has changed nick to itidus20.
14:24:05 -!- azaq23 has quit (Quit: Leaving.).
14:25:36 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:26:41 -!- MSleep has changed nick to MDude.
14:30:52 -!- BeholdMyGlory has joined.
14:55:02 -!- copumpkin has joined.
15:34:42 -!- itidus20 has quit (Quit: Leaving).
15:43:11 -!- monqy has joined.
15:45:06 -!- itidus20 has joined.
16:18:14 <Lymee> @pl fracf = \x y -> (color iters) $ (mandelbrot iters) x y
16:18:15 <lambdabot> fracf = (color iters .) . mandelbrot iters
16:35:46 -!- MigoMipo has joined.
16:38:37 -!- Phantom_Hoover has joined.
16:43:18 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
17:47:38 -!- TeruFSX has joined.
18:15:33 -!- olsner has quit (Ping timeout: 276 seconds).
18:15:59 -!- TeruFSX has quit (Read error: Connection reset by peer).
18:44:05 -!- itidus21 has joined.
18:46:19 -!- itidus20 has quit (Ping timeout: 258 seconds).
18:49:16 -!- itidus21 has changed nick to itidus20.
18:56:12 <Taneb> I know own an inflatable toy electric guitar
18:56:38 <pikhq> How can one know own?
18:56:52 <Taneb> That was a slip of the finger.
18:57:07 <Taneb> In fact, s/know/now/
18:57:43 <Taneb> Is that how it's done?
19:10:50 -!- olsner has joined.
19:40:55 -!- derrik has left.
20:28:40 <Taneb> I've got TVTropes out of my top six websites on chrome on this computer!
20:30:22 <Taneb> And now I am anxiously awaiting a mildly embarrasing video of myself to be uploaded to the internet
20:42:42 -!- zzo38 has joined.
20:46:56 <Taneb> I've had an idea for an esoteric programming language
20:47:34 <Taneb> Gonna make a page in user namespace
20:47:48 <zzo38> OK. What idea is that?
20:48:16 <Taneb> You know Binary Combinatory Logic and Binary Tag System and things?
20:48:39 -!- quintopia has quit (Ping timeout: 240 seconds).
20:48:58 -!- quintopia has joined.
20:48:58 -!- quintopia has quit (Changing host).
20:48:58 -!- quintopia has joined.
20:50:27 <Taneb> Basically, it's 2^n of those
20:50:42 <Taneb> It's a variety pack of binary turing tarpits with no IO
20:51:03 <Taneb> I'm going to call it... BINARY VARIETY PACK
21:13:11 <Taneb> http://esoteric.voxelperfect.net/wiki/User:Taneb/Binary_Variety_Pack
21:14:13 -!- Taneb has quit (Remote host closed the connection).
21:20:14 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:32:12 -!- Nisstyre has quit (Ping timeout: 255 seconds).
21:32:59 -!- Nisstyre has joined.
21:44:11 -!- Nisstyre has quit (Quit: Leaving).
21:53:48 <Zwaarddijk> anyone here remember a novelty abstract strategy game from the 1990s where there was like height differences between different squares on the board, and the pieces were different-sized semispheres?
22:04:44 <GuestIceKovu> I was mostly playing Red Alert back then as far as strategy games go
22:04:50 -!- GuestIceKovu has changed nick to Slereah.
22:15:24 -!- Nisstyre has joined.
22:19:41 <fizzie> Slereah: Yes, in the 1990s they could only afford a single Empire.
22:20:37 <Slereah> Well, obviously, the only empire was MINE
22:25:14 <Zwaarddijk> i recall that game from some old popular science magazine adverts
22:25:25 <Zwaarddijk> and now I've gotten intrigued as to what the rules may have been
22:25:33 <Zwaarddijk> how the differences of elevation may have affected the gameplay
23:09:32 -!- oerjan has joined.
23:13:58 -!- TeruFSX has joined.
23:28:45 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:46:47 -!- elliott has joined.
00:04:14 -!- copumpkin has joined.
00:15:04 -!- olsner has quit (Ping timeout: 260 seconds).
00:19:06 -!- NihilistDandy has joined.
00:21:06 <Sgeo> In man against machine, machine will conquer all
00:21:15 -!- elliott has quit (Remote host closed the connection).
00:21:45 -!- elliott has joined.
00:22:36 <elliott> 23:41:56: <cheater_> if i have n regexes, is it possible to compile them all into one optimized thing that will match if either one had matched?
00:22:37 <elliott> 23:42:03: <cheater_> like a big or operator
00:23:05 <Zwaarddijk> thesis: machines rule, antithesis: humans rule, synthesis: they coexist
00:23:13 -!- jcp has quit (Ping timeout: 260 seconds).
00:23:52 -!- variable has joined.
00:23:56 <NihilistDandy> Zwaarddijk: Except for the part where they don't really coexist and instead enslave and destroy one another most of the time
00:23:56 <elliott> 00:43:32: <CakeProphet> hmmm, so doesn't the fact that humans are reasonably effective at solving the halting problem for a given language suggest that it's impossible to replicate human intelligence via Turing-complete computation?
00:24:13 <elliott> CakeProphet: we are terrible at solving the halting problem, and obviously turing machines can solve a subset of the halting problem
00:24:16 <Zwaarddijk> NihilistDandy: read the sequel the son of Herbert's wrote?
00:24:28 <elliott> 00:44:34: <CakeProphet> well, I suppose since we're not perfect at it, and we can't solve it for languages that are unknown to us..
00:24:29 <elliott> "not perfect" -- you're way too kind to human intelligence :P
00:24:43 <NihilistDandy> Zwaarddijk: Not yet. Still getting through those. Just doesn't feel the same.
00:25:51 -!- jcp|other has quit (Ping timeout: 276 seconds).
00:25:53 <Zwaarddijk> and they kinda change feeling, and the end plot changes are kind of orthogonal in story space to any good endings
00:26:02 <Zwaarddijk> er, well, you get what I'm trying to say
00:26:14 <Zwaarddijk> I am a bit disappointed at how it turns out
00:27:14 <Zwaarddijk> this bene gesserit thingy where they go and say something like 'oh, we collaborate at times with an even older conspiracy'
00:27:14 <elliott> 04:12:03: <Sgeo> So what' are "true but unprovable" statements for a system of axioms?
00:27:15 <elliott> 04:12:10: <Sgeo> Or does that not apply to CH?
00:27:16 <elliott> 04:12:51: <oerjan> there is no such thing, truth only applies _inside_ a model of the axioms, unless it holds for _all_ models, in which case its provable.
00:27:27 <elliott> oerjan: well a lot of people natter about "true but unprovable" things, perhaps even people with skill, decades back, I presume...
00:27:36 <elliott> it is bandied about casually quite a bit
00:28:00 <elliott> 04:24:20: <oerjan> and i'm not entirely sure if there are some systems weaker than peano arithmetic (weak enough not to allow godel's proof) but still expressive enough to talk about their own consistency, and then maybe prove it.
00:28:03 <elliott> oerjan: it doesn't have induction, I think
00:29:05 <elliott> NihilistDandy: you realise i do complete logreads, right :D
00:29:17 <elliott> oerjan even does a lot of the time, though he replies rather less :P
00:29:27 <lambdabot> Not in scope: `elliott'Not in scope: `sleep'
00:29:38 <oerjan> actually it's more of a complete logbrowse at best
00:30:44 <elliott> unless idiots were talking
00:31:00 <elliott> speaking of which, Gregor really needs to add ignores to the codu log formatter
00:31:33 <elliott> 08:00:42: <cheater_> ais: nowadays people need to commute, it's a requirement of our way of life. it takes a special dedication for someone not to commute at all.
00:31:35 <elliott> cheater lives in a world consisting only of himself
00:31:40 <elliott> hmm, that's not funny, it's just accurate-looking :(
00:32:37 <elliott> 08:06:03: <cheater_> OTOH the tube makes you ill and deaf, so i don't like it.
00:32:39 <elliott> damn that illifying tube gas
00:32:39 <NihilistDandy> Also, DeJaVu Sans Mono is the best monospaced font, period
00:32:50 <elliott> also you misspelled its name
00:33:35 <elliott> How many monospaced fonts have you used? :p
00:36:09 <NihilistDandy> Inconsolata just doesn't have the Unicode coverage I want :D
00:37:01 <elliott> Inconsolata only renders nicely on OS X, which is odd since it wasn't created on OS X. I want to try Pragmata, but it costs a lot of money and I can't find it pirated anywhere.
00:37:09 <elliott> But I'm using DejaVu because it's the default. :p
00:37:25 <elliott> (Anyway how much Unicode does your code have?)
00:37:25 <monqy> haha fonts that cost money
00:37:40 <elliott> NihilistDandy: Huh, where'd you get it? Don't tell me you paid for it. :p
00:37:59 <NihilistDandy> elliott: I use Haskell fontlock in Emacs, and some of the characters are in obscure spaces
00:38:11 <elliott> Haskell fontlock =/= Haskell unicodeifying stuff
00:38:27 <elliott> NihilistDandy: A place just for fonts? That must be like the driest pirate cove in the universe.
00:38:41 <elliott> haskell-mode does nothing of the sort
00:38:44 <NihilistDandy> elliott: It's actually for music. The fonts are just coincidental
00:39:12 <elliott> NihilistDandy: Amazing. (I don't suppose it's one of the "famous" places.)
00:40:02 <elliott> That would be nice. (By famous I meant the few OiNK (did I get my hipster capitalisation right?) replacements.)
00:40:24 <NihilistDandy> Also, I'm not really sure how what the file haskell-font-lock.el is doing anything but what I said it does
00:40:39 <elliott> 10:06:09: <fizzie> It's also quite common. Doesn't the Windows-bundled FreeCell also allow it? (With the old one having 32000 possible games, of which all but one are solvable, or something like that.)
00:40:44 <elliott> fizzie: There are like five unsolvable games, I think.
00:40:52 <elliott> Some of the negative numbers.
00:41:01 <elliott> NihilistDandy: Well, it is certainly not haskell-mode.
00:41:12 <elliott> There is an Emacs Unicode thing on the Haskell wiki.
00:41:22 <elliott> I don't know why it'd call itself haskell-font-lock.
00:41:35 <NihilistDandy> elliott: You can read it yourself. It's bundled with haskell-mode
00:43:11 <elliott> NihilistDandy: Well, it is a bad idea anyway.
00:43:17 <elliott> NihilistDandy: It breaks indentation.
00:43:40 <elliott> Also using Unicode is a total hack for this.
00:43:53 <elliott> What you really want is some sort of realtime LaTeX-esque code rendering.
00:43:57 <NihilistDandy> Well, if you wanna do it better, I'm sure they'd love the effort
00:44:05 <elliott> But eh; this hack isn't even enough to fix the <*> operators.
00:44:21 <elliott> NihilistDandy: IF U CRITICISE FILM......... THEN WHY DONT U MAKE A BETTER FILM????/// CHECKMATE EBERT
00:45:00 <elliott> I'm not passionate about it :P
00:45:08 <elliott> I'm just relatively certain it's a bad idea
00:45:21 <elliott> I could be more apathetic, if you'd like?
00:45:29 <NihilistDandy> And I'm relatively certain that if you're not braindead it is a non-issue :D
00:45:53 <elliott> It has demonstrable flaws, I'm allowed to point them out :p
00:48:01 <elliott> Heh, Pragmata is only legible at fourteen pt
00:51:08 <oerjan> <elliott> I could be more apathetic, if you'd like? <-- so you say you could care less?
00:52:12 <CakeProphet> I could care in one of several directions.
00:52:30 -!- FireFly has quit (Quit: swatted to death).
00:52:49 <monqy> i only care in spirals
00:53:59 <monqy> im too subhuman to care in fractals. spiral sigh.
00:58:54 <oerjan> to care in fractals is simple. just care in fractals, then care in fractals.
00:59:22 <Lymee> I think that's an infinite loop.
00:59:39 <Lymee> You need to say "just care in fractals, while caring in fractals at the same time"
01:00:11 <oerjan> NihilistDandy: what step
01:01:45 <Lymee> > takeWhile (>4) [1,2,3]
01:02:48 -!- NihilistDandy has quit (Quit: Workin').
01:04:48 -!- elliott has quit (Remote host closed the connection).
01:05:09 -!- elliott has joined.
01:07:03 <oerjan> also, you might catch rabies
01:22:21 <CakeProphet> imagine if Haskell had only runtime errors and lazy evaluation
01:23:18 <CakeProphet> yes but the scoping errors only arise when the code executes
01:24:08 <CakeProphet> as it does in Python and Perl without strict.
01:24:54 <CakeProphet> though I guess syntax errors couldn't be runtime errors...
01:25:29 <CakeProphet> this would lead to some ambiguous parsing..
01:25:37 <CakeProphet> because EVERYTHING would have to parse correctly.
01:26:06 -!- itidus20 has quit (Ping timeout: 258 seconds).
01:26:08 <CakeProphet> unless you include parsing as part of "runtime"...
01:26:10 <oerjan> elliott: the problem is how late to detect them i guess. if you have a function definition it needs to be parsed before you can use it.
01:26:34 <oerjan> at least up to the point of finding out where it _ends_
01:26:45 <elliott> oerjan: sure but you can delay finding the values it _references_
01:26:52 <CakeProphet> yeah you just need to be able to discern the boundaries of things.
01:26:56 <elliott> <CakeProphet> unless you include parsing as part of "runtime"...
01:27:00 <oerjan> of course lisp makes this easy with the parens
01:27:12 <oerjan> and in haskell, layout can help
01:27:13 <elliott> you can modify the readtable
01:27:48 <oerjan> still, the readtable isn't modified until after the command which modifies it, i presume.
01:29:04 <oerjan> of course in haskell the insensitivity to declaration order makes it harder again...
01:32:38 <Sgeo> A copy of Canada's ruleset from 2008/4/28 has been recovered
01:33:25 <Sgeo> ^^(still ambiguous, kind of)
01:33:47 <elliott> "I'm pretty sure you aren't allowed to have a T rating with that many stabbed children."
01:33:49 <Sgeo> The one whose players would call it a "nomic"
01:34:11 <elliott> But there are two nomics called Canada Sgeo it's true
01:34:21 <elliott> One lasted about ten messages.
01:35:12 <elliott> "I'm pretty sure you aren't allowed to have a T rating with that many stabbed children."
01:51:40 <zzo38> Do you ever argue about relativity when playing D&D game?
01:52:48 <pikhq> Not much relativity.
01:52:55 <pikhq> Classical mechanics, fairly often.
01:53:20 <pikhq> Though the peasant railgun has elicited discussion of relativity.
01:58:28 <zzo38> alias ls 'echo ls: .: Permission denied'
02:06:52 <zzo38> I was arguing about relativity having to do with "Time Hop" power.
02:15:55 <pikhq> zzo38: Oh dear, what happened.
02:16:29 <elliott> IamA The New Old Spices Man Fabio AMA (Internet keywords Romance, Fabio, Old Spice, Italian Supermodel, Italian, Motorcycle) (self.IAmA)
02:17:38 <monqy> italiam supermodel motorcycle romance eh
02:17:49 <monqy> thanks internet keywords
02:18:02 <monqy> i could never have done it
02:18:02 <elliott> "Did anyone read The Silmarillion? That book explains everything. The entire Lord of the Rings is actually just the epilogue to incredibly epic saga that is The Silmarillion."
02:18:07 <elliott> isn't The Silmarillion like in encyclopedia form
02:18:57 <elliott> probably oerjan knows because i think he read all of the tolkein shit
02:20:30 <oerjan> nah, i only read it until about the part where they created the sun and moon, i think
02:21:06 <elliott> i, too, hate the sun and the moon
02:21:21 <elliott> "SO the one ring is saurons horcrux? ya?"
02:21:22 <oerjan> then you, melkor and sauron have something in common.
02:21:36 <elliott> oerjan: i haven't read the bible, explain
02:22:37 <oerjan> elliott: melkor/morgoth is the main evil guy, he destroyed the light sources they had previously on two occasions
02:22:56 <elliott> also lol, moon's light source
02:23:01 <elliott> I WILL SMASH THE LIGHTBULB IN THE MOON
02:23:23 <elliott> "If Tom Bombadil wore the ring it would be as if Melkor returned. If i remember correctly, Bombadil is the most powerful character in the trilogy, similar or exactly like the gods created by illumitar. Therefore he has the most to lose if he was to wear the One Ring, because he had the such immense power that was corrupted for evil"
02:23:23 <elliott> "Tom Bombadil did wear the ring. It had absolutely no effect on him."
02:23:33 <oerjan> although after he is exiled from the world entirely, sauron takes over.
02:23:59 <elliott> i can't tell my religions apart
02:24:02 <oerjan> nah i think it was sort of outer space
02:26:21 <elliott> oerjan: so i take it tom bombadil's a pretty minor character
02:26:21 <oerjan> i think morgoth may have attacked the sun and moon at one point too, but failed in destroying them.
02:26:27 <elliott> i'm reading all about how he's like the most powerful thing in the universe
02:26:32 <elliott> and im imagining this bit part
02:26:59 <monqy> how can the most powerful thing in the universe have the name tom
02:27:00 <oerjan> elliott: well the thing about him is that he is the only character in LoTR who is entirely unaffected by the ring, so it's easy to start speculating...
02:27:01 <monqy> how does that work
02:27:12 <elliott> oerjan: but he is minor yes
02:27:22 <oerjan> yes, he only show up briefly
02:28:18 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:28:58 <oerjan> elliott: i have this weird vague idea that maybe morgoth's attack was how the moon got phases, or something like that.
02:29:22 <oerjan> this was around the point i stopped reading.
02:37:25 <Sgeo> Maybe I should read LOTR
02:37:38 <Sgeo> Got bored last time I started. But that was probably over a decade ago
02:38:08 <pikhq> Sgeo: Perhaps not.
02:38:13 <pikhq> LotR is not well-written.
02:38:31 <pikhq> In fact, it's fairly poorly written.
02:38:39 <pikhq> Brilliant setting, decent narrative, poor writing.
02:41:38 -!- cheater_ has joined.
02:43:58 -!- itidus20 has joined.
03:02:05 <Sgeo> elliott, did you ever finish Dot Action 2?
03:02:28 <elliott> But I tried all the levels at least
03:02:33 <elliott> The bonus ones were impossible
03:02:56 <Sgeo> I remember one of the bonus ones being easy
03:05:53 <elliott> "First of all, I like Haskell a lot. I’m the Thompson in “Thompson-Wheeler Logo.” That cute shape that cleverly combines the lambda and monad bind shapes? My idea. The irony is not lost on me. That Haskell logo of mine is used all over the world, and yet I’m barely a mediocre Haskell programmer."
03:06:01 <elliott> THE NAME THOMPSON-WHEELER LOG OIS KNOWN WORLD WIDE
03:06:17 <zzo38> The thing with Time Hop power, is, I was trying to remove a device someone was wearing. I said they would still be wearing the device when it reappeared. The DM and other player thought not. However, I still knew a way to remove the device regardless, by putting a rock in the way.
03:06:44 <elliott> "Perhaps you formalists know handwaving over the details as the “Axiom of Choice,” no? I hearby invoke it."
03:06:48 <elliott> oh my god you're a shithead i'm not reading this post
03:08:08 <elliott> this is honestly the worst written thing ever
03:08:19 <elliott> im going to use another haskell logo because of how annoying this guy is
03:08:37 <Sgeo> elliott, linky?
03:08:45 <elliott> Sgeo: http://willowbend.cx/2011/07/22/whats-wrong-with-learning-haskell/, bring your shithead filter
03:09:15 <elliott> this guy is really, REALLY annoying and bad at writing and also has no good point
03:09:25 <elliott> oh the post is over already
03:11:23 <monqy> Confessions of a Wannabe Capitalist
03:11:26 <monqy> what does this mean
03:11:35 <elliott> oh my god that is his subtitle what
03:12:03 <elliott> he really hates DAMN FORMALISTS
03:12:18 <Sgeo> So he's not good at math, and wants resources to help him learn Haskell
03:12:30 <elliott> basically he wants people to put big warnings on their blog
03:12:35 <Sgeo> Although he keeps using "axiom of choice" randomly, I don't see what's wro.. oh
03:12:45 <elliott> because irc isn't good enough or i guess because he just didn't bother joining irc
03:12:55 <elliott> Sgeo: he knows there are resources
03:12:59 <elliott> he just wants people to tell him what not to read
03:13:02 <elliott> without him doing anything
03:13:11 <elliott> also AXIOM OF CHOICE AXIOM OF CHOICE IT'S "HANDWAVING" HAHA THEORISTS IM A SHITHEAD
03:23:49 <itidus20> "It worked when I was learning Ruby. Not here. This was a bad idea. I learned nothing and it made me feel bad. Yeah, poor me." -- same effect as lurking in a japanese chatroom to learn japanese
03:24:27 <elliott> well, assuming it was a japanese chatroom about japanese. :p
03:25:42 <itidus20> well it was a japan-themed english chatroom
03:28:54 <itidus20> elliott: i am actually learning a lot from this article
03:30:28 <itidus20> doesn't mean i back the guy up but the idea of using haskell to prove things is good to know
03:32:04 <elliott> itidus20: not a good idea (Haskell's type system is an inconsistent logic)
03:32:08 <elliott> and it also has no facilities for the purpose
03:32:11 <elliott> nobody does that beyond a toy :P
03:32:16 <elliott> see Coq, Agda for this idea fully fleshed out
03:32:19 <zzo38> I think someone used Haskell to prove Haskell
03:32:29 <elliott> zzo38: Haskell is too powerful for that...
03:32:29 <itidus20> but i actually got a damned good resource for people like me
03:33:18 <itidus20> one thing I encountered when learning about compilers is a mysterious misconception that I had carried.
03:33:24 <zzo38> I know about Godel, although I did read somewhere, someone used to prove Haskell or at least part of it.
03:33:43 <itidus20> I'm not sure if it's analagous to a fractional component left over after a division.
03:34:04 <itidus20> But, Suppose you have a tower of blocks on the ground.
03:36:52 <elliott> coppro: not impossible, it just means that Haskell's type system is inconsistent, which it is :-P
03:37:08 <elliott> you can prove it already, it just won't be a very good proof
03:37:27 <copumpkin> http://www.eleves.ens.fr/home/amarilli/falso/
03:37:56 <elliott> http://www.eleves.ens.fr/home/amarilli/falso/axioms.png nice coq screenshot
03:38:46 <zzo38> Maybe the proof is its own counterexample
03:42:11 <coppro> elliott: Well, it depends on the semantics you assign to Haskell - if you use its type system, then yes
03:42:37 <elliott> coppro: the topic was proving things curry-howard-wise.
03:42:51 <elliott> so that's the only interpretation, proving Haskell's consistency with the proposition as a type and the proof as a value
03:43:39 <itidus20> one thing the layfolk like me tend to do is underestimate the spectrum of formally provable things
03:44:53 <itidus20> i was impressed by reading on wiki about the jordan curve proof i think it was called
03:45:16 <elliott> http://static.reddit.com/ads/takemymoney.jpeg no
03:51:20 <itidus20> So, looking at atoms or molecules vs looking at things the same relative size as us. I think this idea could become something cool in programming
03:51:49 <itidus20> (oh wait thats exactly what happens ;_; )
03:52:58 <itidus20> I have yet to see a high level game of life
03:54:09 <itidus20> When the level is so much higher than the baseline of live and dead cells that you couldn't recognize it anymore
04:00:17 <Sgeo> I am very bad at not being vaporware
04:03:14 <oerjan> you both seem quite implemented to me
04:06:40 <Lymee> monqy, how perverted.
04:08:01 <monqy> its perfectly normal for subhumans like me
04:08:15 <elliott> monqy: dont worry evolution will turn u into a human soon
04:08:53 <elliott> god this mcmap code isso raciest to me
04:09:09 <Sgeo> http://www.politifact.com/truth-o-meter/statements/2011/apr/29/barack-obama/obama-regrets-2006-vote-against-raising-debt-limit/
04:09:12 <elliott> i HATE raciests,, they make me sick,.;
04:09:20 <elliott> then sgeo talked about politics
04:11:33 * Sgeo wonders if SLIME works with Emacs 23.1
04:17:15 -!- elliott has quit (Remote host closed the connection).
04:17:22 -!- elliott has joined.
04:38:43 <elliott> pojdoijerioenoinefoinefoineoinef
04:43:20 -!- azaq23 has joined.
04:52:25 -!- copumpkin has quit (Ping timeout: 250 seconds).
04:52:50 -!- copumpkin has joined.
05:14:48 <oerjan> that's not a very readable presentation, randall.
05:15:14 <elliott> wow that is the stupidest thing
05:15:30 <coppro> It's not readable, but pretty awesome
05:15:41 <elliott> "i took some data BUT NOW IT IS POLAR........"
05:15:59 <lambdabot> Data.ByteString findIndex :: (Word8 -> Bool) -> ByteString -> Maybe Int
05:15:59 <lambdabot> Data.List findIndex :: (a -> Bool) -> [a] -> Maybe Int
05:15:59 <lambdabot> Data.Map findIndex :: Ord k => k -> Map k a -> Int
05:17:34 -!- elliott has quit (Remote host closed the connection).
05:17:37 -!- elliott_ has joined.
05:17:59 -!- TeruFSX has quit (Ping timeout: 250 seconds).
05:18:36 <monqy> i went to wiktionary a few times and now chromium won't stop autocompleting to wiktionary i want it to autocomplete to wikipedia so i can hit tab to make it search wikipedia this is the dumbest thing help
05:18:51 <Lymee> @pl \z -> (magnitude z) > 2
05:19:00 <coppro> monqy: add a keyword for wikipedia
05:19:16 <monqy> how do i do that i am not good at this
05:19:25 <monqy> unless keyword is bad
05:19:31 <elliott_> i dont even think chrome has those
05:19:39 <monqy> also how do i erase the lie
05:19:44 <monqy> oh there's a button
05:19:47 <elliott_> monqy: chrome:history -> edit items
05:20:09 <coppro> I forget exactly how you do it in chrome
05:20:51 <elliott_> seems that http://www.google.com/support/chrome/bin/answer.py?answer=95653 is the only thing
05:20:53 <monqy> if i hit clear all browsing data will it clear all the wiktionary results but not the rest of my precious history which isn't lies
05:21:42 <monqy> oh no it's not doing what i want it to do
05:21:51 <elliott_> monqy: you could just use the search history
05:22:08 <monqy> what's that how do i do that
05:22:12 <monqy> oh you mean that thing
05:22:31 <monqy> that's what i was talking about when i hit clear all browsing data i guess it actually meant all browsing data though
05:22:36 <monqy> and I can't find a select all
05:22:53 -!- MDude has quit (Read error: Operation timed out).
05:23:31 <Sgeo> You can delete search engnes
05:23:39 <monqy> I did that ages ago
05:23:45 <monqy> it still autocompleted to it
05:23:48 * oerjan deletes google MWAHAHAHAHA
05:24:08 * oerjan also deletes bing, to keep a sort of good/evil balance
05:24:10 <Sgeo> Right click address bar, edit search engines, removing, doesn't help?
05:24:10 <elliott_> monqy: purgaernces →manage searchkjnl; engines ---\→ delet wiktiaonry
05:24:45 <oerjan> elliott_: you could hurt someone with those typos
05:24:53 <elliott_> oerjan: yeah,,,like YUOU, DIE FUCKK
05:25:13 -!- derrik has joined.
05:25:17 <Sgeo> elliott_, did you sleep anytime within the past 14 days?
05:25:38 <monqy> sometimes i a slep......like every night.....
05:25:56 <Sgeo> Got it. So, we're conversing with the sleep-deprived ghost of elliott_
05:26:02 <monqy> except on nights i dont a slep
05:26:27 <elliott_> <oerjan> feels bad, imnever a god person, probably offended elliott_ (best guy), criticise typelexia............................................ but remoserful + planning to become better
05:27:19 <elliott_> oerjan: in an alternate universe............................................................................ you are a good person
05:27:45 <monqy> bizarro universe: a good place????
05:28:13 <oerjan> the BEST place. everyone got to kill people, fun!
05:32:26 -!- pikhq_ has joined.
05:35:43 -!- pikhq has quit (Ping timeout: 260 seconds).
05:42:33 <CakeProphet> oerjan: this reminds me of the Radiohead song Fitter, Happier
05:43:25 <elliott_> oerjan: have you ever read the gentle introduction
05:43:32 <elliott_> i kind of want to just so i can say it was easy
05:43:50 <monqy> i kind of want to just so i can say it was gentle
05:44:11 <monqy> to category theory is it right
05:44:30 <monqy> I could be confusing it with something else gentle though
05:44:35 <monqy> oh it could be haskell
05:44:44 <monqy> i am bad at gentle things
05:45:21 <monqy> so is gentle introduction supposed not to be gentle
05:45:34 -!- myndzi\ has joined.
05:45:45 <monqy> help whjat does thsi mean help
05:45:50 <Sgeo> SML or OCaml or what?
05:45:54 <elliott_> Our purpose in writing this tutorial is not to teach programming, nor even to teach functional programming. Rather, it is intended to serve as a supplement to the Haskell Report [4], which is otherwise a rather dense technical exposition. Our goal is to provide a gentle introduction to Haskell for someone who has experience with at least one other language, preferably a functional language (even if only an "almost-functional" language such as ML or Sc
05:45:55 <elliott_> heme). If the reader wishes to learn more about the functional programming style, we highly recommend Bird's text Introduction to Functional Programming [1] or Davie's An Introduction to Functional Programming Systems Using Haskell [2]. For a useful survey of functional programming languages and techniques, including some of the language design principles used in Haskell, see [3].
05:46:28 <Sgeo> Oh, you weren't saying that the title was "mlgentle"
05:47:03 <monqy> i dunno this looks pretty gentle
05:47:04 <Sgeo> <elliott_> [stuff]
05:47:14 <elliott_> monqy: i gather it becomes rough very soon
05:47:45 <monqy> im afraid i already know haskell
05:47:49 <monqy> judging this may be difficult
05:47:58 <elliott_> it mentions hindley milner on page two, gseveral times
05:48:05 <monqy> i do not have formal education education............
05:48:24 <elliott_> Similarly, we could define Int (fixed precision integers) and Integer by:
05:48:24 <elliott_> data Int = -65532 | ... | -1 | 0 | 1 | ... | 65532 -- more pseudo-code
05:48:24 <elliott_> data Integer = ... -2 | -1 | 0 | 1 | 2 ...
05:48:48 <monqy> -- This is not valid
05:48:59 -!- myndzi has quit (Ping timeout: 264 seconds).
05:49:34 <Sgeo> monqy, never know when an idiot is reading and thinks "Oh, I need to copy/paste this code for this assignment" or something
05:49:55 <monqy> the joke is that they put the code in there at all
05:50:07 <elliott_> http://www.haskell.org/tutorial/fig1.gif
05:50:12 <Lymee> @pl \x -> color $ mandelbrot iters x
05:50:18 <monqy> i like this daiagarm
05:50:26 <elliott_> Lymee: you should learn to do simple pls like that in your head...
05:50:30 <CakeProphet> doesn't the Haskell spec mention Int being defined in that way kind of?
05:50:47 <oerjan> even the haskell report does it
05:50:56 <Lymee> x.y = (x).(y), doesn't it.
05:51:16 <elliott_> are yuou asking about its precedence
05:51:19 <elliott_> (\x -> f (g x)) -> (f . g); f=color, g=mandelbrot iters
05:51:24 <monqy> the joke is that the haskell report does bad things :(
05:51:24 <elliott_> that's the easy way to reduce the above function
05:51:26 <monqy> and is a bad person
05:51:34 <monqy> i am not inviting the haksell report tyo my
05:51:56 <monqy> do you do bad things are you a bad peeron
05:52:34 <oerjan> elliott_ almost never kills anyone
05:52:40 <elliott_> do you want to hear a joke monqy
05:52:54 <elliott_> c can't do any kind of parametric polymorphism at all
05:52:56 <monqy> mediocre jokes die in hell
05:53:06 <monqy> one time i abuxsed macros
05:53:13 <CakeProphet> so I'm thinking it would be interesting to have a list type of sorts that basically puts a wrapper around the element type so that you can put "tags" and "sections" into the list.
05:53:18 <monqy> and pretended i could do paramatrec pomylorphism in c
05:53:45 <zzo38> What is parametric polymorphism?
05:53:51 <CakeProphet> both sections and tags are given unique identifiers. sections apply to every element of the list from when they start and finish, and tags are given to individual datums.
05:53:54 <elliott_> zzo38: any sort of generic types
05:54:03 <elliott_> zzo38: in C, you must define a separate type for a list of each element type
05:54:08 <elliott_> also a tuple of each element type, etc. etc. etc.
05:54:19 <elliott_> this means that you can't write generic algorithms of pretty much any sort without ugly (void *) hacks.
05:54:38 <monqy> i did ugly (void *) hacks
05:54:57 <monqy> and swept them under the proverbial carpet with
05:54:57 <CakeProphet> anyways, the end result is that you can define higher-order functions that allow you to manipulate only elements under a specific section or tag.
05:55:00 <zzo38> You can, however, use macros in many ways, to define and to call with sizeof and so on
05:55:15 <CakeProphet> WHICH, would be useful, for example, in writing combinators to compose rhythmic patterns in a song. :)
05:55:43 <elliott_> map (\(t,x) -> if t==goodT then f x else x)
05:55:56 <elliott_> mapTag t f = map (\(g,x) -> if t == g then f x else x)
05:56:10 <CakeProphet> because that does not allow the sections, or untagged elements.
05:56:33 <CakeProphet> yes, what I'm doing is an abstraction for something else. Good job.
05:57:17 <CakeProphet> data Wrapper t a = Tagged t a | Section t | EndSection t | Untagged a
05:57:23 <zzo38> Maybe you can even use it for checking signed/unsigned, checking with macros, somehow. Would this work? ((~(x&1
05:57:31 <zzo38> Maybe you can even use it for checking signed/unsigned, checking with macros, somehow. Would this work? ((~(x&1))<0)
05:57:46 <CakeProphet> elliott_: if you can find an easier way I'm all ears.
05:58:07 <elliott_> CakeProphet: i dunno, what you're doing seems really ugly?? especially that Section stuff where the list has to be of a certain structure but you're not enforcing it in the types
05:58:10 <monqy> why do you need sections what do they do
05:58:30 <monqy> Section/EndSection
05:58:33 <elliott_> in C if you do "void f(int n, char data[n])" is data passed like n parameters or as a pointer
05:58:59 <CakeProphet> they mark the beginning and end of.... sections in the list. I suppose you could just tag every element in the section or something...
05:59:14 <monqy> better to have something like Section [Wrapper t a] or if you odn't want nested sections split the datatype up[
05:59:26 <monqy> marking beginning and end is hell
05:59:48 <CakeProphet> I think I'll just stick to the tag approach, which would reduce it to a tuple ([t],a)
06:00:15 <CakeProphet> and then a "section" is just a tag across every element in a certain point of the list.
06:01:19 <CakeProphet> I might encounter a problem where I have a lot of simultaneous events occur at the same time.. since I'll be using a list to represent a rhythmic pattern.
06:01:35 <CakeProphet> and then they won't be simultaneous because list doesn't work that way...
06:02:32 <elliott_> sorry we'll never say anything bad about ideas again
06:03:03 <CakeProphet> it's that the criticism is vague and not helpful, in the case of ok.
06:04:46 <monqy> will you hate me if i smile
06:04:57 <elliott_> <elliott_> in C if you do "void f(int n, char data[n])" is data passed like n parameters or as a pointer
06:05:18 <monqy> isw that even legal synraxt
06:05:21 <Vorpal> elliott_, I don't "no" but maybe I "know"
06:05:36 <Vorpal> elliott_, and definitely pointer
06:05:40 <monqy> if its legal its pointer
06:05:50 <elliott_> CakeProphet: its already weird c99 shit
06:05:52 <Vorpal> elliott_, wait is n there even legal?
06:06:09 <Vorpal> elliott_, okay then I have no clue how that is passed
06:06:10 <monqy> c99 what did you do
06:06:15 <Vorpal> elliott_, *probably* pointer
06:06:20 <elliott_> Vorpal: thanks that's not helpful :(
06:06:23 <Vorpal> elliott_, I don't use VLAs much
06:06:28 <Lymee> elliott_, go test it.
06:06:39 <elliott_> i guess i could print out addrs but
06:06:52 <Vorpal> elliott_, examine the registers of course in an __asm__ __volatile__ at the start!
06:06:57 <CakeProphet> it would seem to me that the [n] is meaningless, because it couldn't enforce a size because C is stupid and doesn't keep track of array size along with the array.
06:06:59 <elliott_> Lymee: it could be COW.................
06:07:15 <elliott_> CakeProphet: obviously C knows array size of arrays
06:07:29 <Vorpal> elliott_, I think it is equivalent of f(int n, char *data)
06:07:32 <lifthrasiir> afaik CakeProphet is right, only char data[static n] has a meaning.
06:07:40 <CakeProphet> elliott_: that will return the size of the pointer, yes.
06:07:47 <elliott_> lifthrasiir: "static n"? like that literally?
06:07:47 <Vorpal> elliott_, if it is even valid
06:07:53 <elliott_> CakeProphet: we are talking about arrays, not pointers.
06:07:57 <Vorpal> elliott_, no, like "fixed value of n"
06:08:03 <CakeProphet> ....we are talking about C, where they are the same thing.
06:08:07 <Vorpal> elliott_, I don't think VLA extends to function prototypes
06:08:16 <elliott_> arrays are not the same thing as pointers and anyone who says so is lying
06:08:38 <lifthrasiir> umm, wait, [static <number>] is definitely allowed but [static n] is not sure
06:08:41 <Vorpal> elliott_, in function prototypes they tend to be. char *foo is passed the same as char foo[]
06:08:53 <elliott_> Vorpal: so you were wrong, it does not mean "fixed value of n"...
06:09:11 <Vorpal> elliott_, what, you lost me
06:09:21 <Vorpal> <elliott_> <elliott_> in C if you do "void f(int n, char data[n])" is data passed like n parameters or as a pointer
06:09:27 <CakeProphet> I'm pretty sure the only difference is allocation. The actual value of an array is the pointer to the first element, always. sizeof will yield the size of that pointer.
06:09:29 <Vorpal> elliott_, I thought that was what we were talking about?
06:09:30 <zzo38> C99 probably allows thing like that, I think it is an unnecessary feature of C99 though, C99 has a few good features
06:09:46 <elliott_> sizeof(x)/sizeof(x[0]) will yield the length of an array.
06:09:53 <elliott_> also see http://www.lysator.liu.se/c/c-faq/c-2.html for more information.
06:11:15 <zzo38> Yes, for purpose of sizeof, the array type is the entire array, but when just using a value by itself it is a pointer instead.
06:11:26 <Vorpal> <elliott_> in C if you do "void f(int n, char data[n])" is data passed like n parameters or as a pointer <-- I think http://www.lysator.liu.se/c/c-faq/c-2.html 2.4 applies here
06:11:43 <elliott_> i don't even know that that page is updated for c99
06:11:58 <elliott_> its even the old version of the c-faq
06:12:08 <elliott_> This article is Copyright 1988, 1990-1995 by Steve Summit. It may be freely redistributed so long as the author's name, and this notice, are retained.
06:12:09 <CakeProphet> that's a pretty common misconception then.
06:12:29 <elliott_> CakeProphet: yes. mostly among people who don't know/never use C (and then sometimes try to teach it)
06:12:38 <elliott_> or the people who use C without actually knowing a single thing about C, which is most people who use C
06:12:39 <lifthrasiir> hmm, seems gcc ignores "static" completely in this case?
06:12:58 <elliott_> basically I want the array passed as values here, though. :/
06:12:59 <zzo38> Maybe LLVM is a bit better designed, although, it would still work far better with having macros preprocessor and that stuff.
06:13:16 <elliott_> i.e. I wish "size_t size, char head[size]" passed the same as `size` parameters.
06:13:31 <Vorpal> lifthrasiir, what would "static" there even do
06:14:25 <CakeProphet> elliott_: so does the pointer decay occur when the array is passed to a function? as this would make the utility of being able to use sizeof to get the length of an array very small.
06:14:27 <zzo38> I think a structure can be passed as value in C
06:14:30 <lifthrasiir> Vorpal, void f(int n, char data[static 256]) (for example) requires the caller to supply an actual char array with at least 256 elements to data
06:14:33 <monqy> would memcpy work or is that dumb and for dumb people
06:14:34 <elliott_> CakeProphet: yes. but it is not a small utility at all.
06:14:44 <Vorpal> lifthrasiir, and plain data[256] means?
06:14:46 <elliott_> elliott@katia:~/Code/mcmap$ grep -r NELEMS .
06:14:46 <elliott_> ./cmd.c:for (int i = 0; i < NELEMS(commands); i++)
06:14:46 <elliott_> ./world.c:for (int i = 0; i < NELEMS(region->chunks); i++)
06:14:46 <elliott_> ./world.c:for (int j = 0; j < NELEMS(region->chunks[i]); j++)
06:14:46 <elliott_> ./world.c:for (int i = 0; i < NELEMS(region->chunks); i++)
06:14:47 <elliott_> ./world.c:for (int j = 0; j < NELEMS(region->chunks[i]); j++)
06:14:49 <elliott_> ./map.c:for (int i = 0; i < NELEMS(region->dirty_chunk); i++)
06:14:51 <elliott_> ./common.h:#define NELEMS(array) (sizeof(array) / sizeof((array)[0]))
06:14:56 <elliott_> and that's a small-ish codebase.
06:15:10 <elliott_> CakeProphet: you can use it for statically-sized global arrays, or statically-sized arrays in structures.
06:15:16 <Vorpal> lifthrasiir, so it is basically like causing a warning or error if not large enough?
06:15:17 <elliott_> which is many arrays. perhaps even most.
06:15:19 <CakeProphet> elliott_: so then this code doesn't receive array as a parameter?
06:15:30 <elliott_> CakeProphet: of course you can pass a structure with an array.
06:15:34 <elliott_> that works fine and doesn't decay.
06:15:39 <lifthrasiir> Vorpal, in principle, yes, but gcc seems ignoring this even in the C99 mode.
06:16:11 * CakeProphet wonders what else he does not know about C. probably many things.
06:16:24 <lifthrasiir> i found at least one example of this declaration from Google code search: http://google.com/codesearch#1IKf2ZWr9OM/deps/third_party/xz/src/liblzma/check/sha256.c&l=83
06:17:06 <lifthrasiir> maybe that's the intended use of that kind of declarations.
06:17:23 <CakeProphet> elliott_: so when I write code outside of functions to deal with arrays I should really be declaring with type type[] instead of type*
06:17:38 <CakeProphet> er, well, using static variables, not outside of functions. :P
06:17:52 <CakeProphet> because they are different, according to this thing you linked me.
06:18:08 <elliott_> well you probably mean to use a pointer.
06:19:29 <CakeProphet> but wouldn't assigning the array to a pointer destroy the sizeof property?
06:20:40 <elliott_> CakeProphet: of course it does.
06:21:12 <CakeProphet> so what I'm saying is that if I want to use that property then I should declare as type[] instead...
06:21:41 * CakeProphet is going to troll some of his C programmer friends now....
06:21:52 <zzo38> I have used interpreted C codes in a prepreprocessor to do some things related to types, and combined with macros and include files, to make initialization for different structures, copied, without duplication, indicated as a type, and so on. Maybe a bit like using "<types>" style codes in C++ but different and with less stupid syntax
06:22:35 <zzo38> CakeProphet: Are you sure you understand it enough?
06:22:54 <CakeProphet> zzo38: I understand the difference between arrays and pointers now, which means I can troll that specifically.
06:23:27 <zzo38> CakeProphet: Yes, I think < > is used for templates syntax in C++, which is dumb since it is also less than/greater than
06:24:30 <zzo38> OK, now you understand difference. There is many difference, but "I should really be declaring with type type[] instead of type*" I don'r know.
06:25:16 <CakeProphet> type[], not type type[]... the first type is part of my sentence or whatever. :P
06:25:45 <zzo38> Yes I understood that much.
06:25:56 <CakeProphet> I didn't mean that I should declare like that ALL the time, just in those situations where the sizeof an array is valuable.
06:26:05 <zzo38> But, the C syntax for comments is also a bit dumb since /* even with no comments is not a syntax error, while // is a syntax error otherwise so it would be better idea using it as comments.
06:26:15 <oerjan> if your declaration is allocating room for the array, you should use [] obviously?
06:26:48 <zzo38> Yes using [ ] in declaration declares its space is the point.
06:27:02 <oerjan> because * only allocates the pointer.
06:27:29 <zzo38> So don't expect to assign directly to a [ ] type because that is not how array work in C.
06:27:59 <CakeProphet> I was thinking of a malloc, but that is already a pointer anyways...
06:28:59 <CakeProphet> so technically a dynamically allocated array is not a "real" C array.
06:31:53 <zzo38> Declarations such as char *p; fine OK to me, it make sense. However, thing such as char *p=q+1; is stupid is make no sense wirh the space in that position.
06:32:46 <zzo38> (I omit the space in both cases however)
06:33:25 <CakeProphet> hmmm, okay so is a dynamically allocated array a pointer to an array or a pointer to the first element? second case, right?
06:34:21 <elliott_> There are no arrays involved here; calling it "dynamically allocated memory" might answer some questions.
06:34:55 <CakeProphet> but that becomes awkward to talk about. I think it still makes sense to talk about it as an array.
06:35:08 <CakeProphet> even though it's... not one in the way that C defines it.
06:36:25 <CakeProphet> "loop through the dynamically allocated memory" instead of "loop through the array". But yeah, I see that calling it that is good to highlight the difference for educational purposes.
06:38:16 <CakeProphet> hmmm, okay, so another consequence of this is that dynamically allocated 2-dimensional "arrays" have to be manually subscripted via arithmetic instead of using the [][] notation.
06:38:34 <elliott_> not if you do them as pointers to pointers
06:39:22 <CakeProphet> oh, right. Instead of one malloc you have 1 + ncolumns mallocs.
06:40:09 * Sgeo considers reading My Immortal
06:40:24 <Sgeo> I tried once before
06:41:06 <CakeProphet> the only C programming I have done involved a MUD codebase. So I suppose I could afford to skip knowing this distinction and still get away with it.
06:42:11 <Sgeo> elliott_, do you think my taste is that atrocious?
06:42:25 <elliott_> list.c:45: error: incompatible types when assigning to type ‘struct <anonymous>’ from type ‘struct <anonymous>’
06:45:18 <CakeProphet> how are you assigning to type struct <anonymous>
06:45:30 <elliott_> list = ((struct { typeof((list).empty[0]) empty[0]; GenericList *generic_list; }){ .empty = {}, .generic_list = generic_list_tail((list).generic_list) });
06:45:50 <elliott_> seems that C doesn't unify anonymous structures with identical fields
06:45:57 <elliott_> this makes this ten times harder than i expected :D
06:46:16 <elliott_> is (typeof foo){ ... } a valid struct literal
06:48:42 <elliott_> starting to wonder how much C you've used, tbh
06:51:15 <elliott_> haha wow that actually works hmm
06:51:30 <CakeProphet> (I mean, I don't really understand why that restricts you from naming the structs)
06:51:30 <zzo38> Correct, C doesn't unify structures. LLVM does, however.
06:51:39 <CakeProphet> but sure, I'll accept "macro shit" as a valid reason.
06:51:47 -!- derrik has quit (Quit: :().
06:52:24 <zzo38> (But fields of structures in LLVM cannot have names anyways)
06:53:19 <CakeProphet> structs are almost like heterogenous arrays. Is this a valid characterization?
06:53:57 <CakeProphet> the only thing that really breaks that idea is that structs can't be subscripted..
06:54:31 <CakeProphet> but in memory it's the same structure as an array, except with heterogenous types.
06:54:52 <elliott_> struct { int empty[0]; GenericList *generic_list; } list = ({ typeof((list).empty[0]) _list_cons_head_1 = (0); (typeof(list)){ .empty = {}, .generic_list = generic_list_cons(sizeof(_list_cons_head_1), (char *) &_list_cons_head_1, (({ typeof((list).empty[0]) _list_cons_head_0 = (9); (typeof(list)){ .empty = {}, .generic_list = generic_list_cons(sizeof(_list_cons_head_0), (char *) &_list_cons_head_0, (((typeof(list)){ .empty = {}, .generic_list = gener
06:54:52 <elliott_> ic_list_empty })).generic_list) }; })).generic_list) }; });
06:54:52 <elliott_> return (*((typeof((((typeof(list)){ .empty = {}, .generic_list = generic_list_tail((list).generic_list) })).empty[0]) *) generic_list_head((((typeof(list)){ .empty = {}, .generic_list = generic_list_tail((list).generic_list) })).generic_list)));
06:56:09 <monqy> hi guys im back from being away did bad stuff happen
06:56:27 -!- olsner has joined.
06:56:51 <zzo38> Zero-element arrays can be very useful sometimes.
06:56:52 <CakeProphet> elliott_: you can't just say... typeof(1)?
06:57:16 <CakeProphet> elliott_: you can't just say... typeof((int)1)? :P
06:58:12 <CakeProphet> I don't really know what that means, then. You mean it's the type parameter in your macro shit?
07:00:06 <zzo38> Maybe in LLVM, you could ensure different types having something like a last element of a structure of a type [0 x [1 x i8]], [0 x [2 x i8]], [0 x [3 x i8]], and so on, to make then unique if you wanted them different.
07:00:17 <elliott_> CakeProphet: thats totally not the cpp output.
07:00:36 <elliott_> <zzo38> Correct, C doesn't unify structures. LLVM does, however.
07:00:36 <elliott_> <Deewiant> Not any more it doesn't.
07:00:42 <elliott_> gimme details about this thing i know nothing about
07:00:55 <Deewiant> Since I don't know, a week ago, when Chris's patch landed for LLVM 3.0
07:01:54 <CakeProphet> I'm just not entirely sure why you have to do all of this typeof expansion stuff when you could just substitute T where you need the type T...
07:02:15 <zzo38> What patch is this? I like the feature of LLVM unifying structures, it is a useful feature
07:02:45 <monqy> being generic is for losers
07:02:51 <elliott_> CakeProphet: because i dont know t
07:02:58 <elliott_> #define List(T) struct { T empty[0]; GenericList *generic_list; }
07:02:58 <elliott_> #define list_create(name) ((typeof(name)){ .empty = {}, .generic_list = generic_list_empty })
07:02:58 <elliott_> #define list_cons(head, tail) list_cons_(head, tail, __COUNTER__)
07:02:58 <elliott_> #define list_cons_(head, tail, id) list_cons__(head, tail, id)
07:02:58 <elliott_> #define list_cons__(head, tail, id) \
07:03:00 <elliott_> typeof((list).empty[0]) _list_cons_head_##id = (head); \
07:03:06 <elliott_> .generic_list = generic_list_cons(sizeof(_list_cons_head_##id), (char *) &_list_cons_head_##id, (tail).generic_list) \
07:03:15 <elliott_> #define list_head(list) (*((typeof((list).empty[0]) *) generic_list_head((list).generic_list)))
07:03:17 <elliott_> #define list_tail(list) ((typeof(list)){ .empty = {}, .generic_list = generic_list_tail((list).generic_list) })
07:03:20 <elliott_> feel free to make better and also make working
07:03:33 <Deewiant> Okay, so it was more than a week ago
07:03:35 <Deewiant> http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20110704/123705.html
07:03:40 <monqy> that looks like the sort of stuff i wrote two years ago before i got sick of it
07:03:40 <CakeProphet> oh I see. You use the zero-width array to carry the type information beyond the macro body.
07:05:22 <elliott_> Deewiant: is there a discussion thread for that commit
07:05:34 <zzo38> Does that only apply to named types? Or to anonymous types too?
07:06:11 <Deewiant> elliott_: It's something that's been on his todo list for a long time now
07:06:46 <Deewiant> zzo38: Anonymous types are uniqued by their contents
07:07:12 <zzo38> Deewiant: That makes sense, now.
07:08:25 <zzo38> So, an anonymous structure with the same types of elements should be considered to be same types, otherwise not?
07:08:46 <CakeProphet> same types in the same order, I would think.
07:08:48 <Deewiant> Yes, otherwise the name is part of the identity
07:09:33 <zzo38> OK, it does make sense, now, then.
07:09:54 <zzo38> CakeProphet: Yes it is what I meant
07:09:58 <CakeProphet> elliott_: you could cast the anonymous structs to a named struct within each macro maybe?
07:11:07 <CakeProphet> so everytime someone has to use your macros they must angrily smash alphanumeric characters into the last field to provide a unique name for the struct.
07:12:18 <pikhq_> CakeProphet: The typical trick is just __LINE__.
07:13:34 <monqy> no hygenic macros and no way to generate unique names?
07:13:37 <oerjan> that won't work if you must do it more than once in the same line, no?
07:13:56 <CakeProphet> well, it wouldn't work if the cast was on a different line than the struct definition.
07:14:41 <monqy> are there any better preprocessors
07:15:06 <CakeProphet> C? No. never. No one would ever write a C preprocessor.
07:16:08 <CakeProphet> you could write a macros that play waiting music as your code compiles.
07:16:41 <oerjan> eine kleine nachtmakro
07:17:21 <CakeProphet> I suppose you could also write macro compilers or something.
07:17:38 <CakeProphet> assuming it was basically like TH but for C, and without the strict typing.
07:19:34 <itidus20> you could have #playnotes ABCBCBA
07:20:00 <CakeProphet> and that would... play them all in equally spaced intervals?
07:20:12 <itidus20> or uhmm.. a compilation visualizer?
07:20:54 <itidus20> except maybe it could have the token stream fed into it
07:21:48 <CakeProphet> I was imagining more of like an animation of the code text compiling into intermediate representations and then machine code.
07:22:06 <zzo38> pikhq_: m4 is not for C.
07:23:02 <elliott_> and was defined for a C-like language
07:23:05 <CakeProphet> Perl is probably a pretty good C preprocessor.
07:23:14 <zzo38> monqy: What about... Enhanced CWEB? It also includes a C interpreter, among other things. The C interpreter can send codes to the C compiler. And the program can even be printed out.
07:23:39 <zzo38> CakeProphet: I suppose you can do so, if you wanted to
07:23:51 <itidus20> or you could do a 3d visualization as like a factory
07:24:40 <zzo38> I think m4 is not very good for C, though. But I maybe it will work if configured correctly for use with C.
07:24:42 * pikhq_ declares Bourne the best C preprocessor.
07:25:34 <CakeProphet> it's the only C preprocessor that allows you to compile C code.
07:26:14 <itidus20> I am interested in data re-representations.. i don't know a better words
07:26:27 <itidus20> perhaps interpretations is a better word
07:26:38 <zzo38> Well, at least I prefer CWEB, for writing my C codes
07:26:44 <CakeProphet> sounds like converting one data structure to another, yes?
07:26:54 <zzo38> (Even if you hate it instead)
07:27:10 <itidus20> one example being converting music into visualizations.
07:28:21 <CakeProphet> itidus20: try running aplay on a pdf or /dev/urandom
07:28:24 -!- oerjan has quit (Quit: leaving).
07:28:52 <itidus20> i have a winxp box. i've never had any form of *nix installed :-s
07:29:30 * CakeProphet types "aplay /dev/urandom" and listens to delicious pseudo white noise
07:29:46 <itidus20> hmm.. i called the page bit field encoding
07:30:36 <zzo38> You can get a continuous tone by playing output of "yes" command, in Linux.
07:30:44 <pikhq_> itidus20: Wow, the only OS worse than *nix.
07:30:53 <CakeProphet> elliott_: what's the best way to seed random without using IO?
07:30:55 <monqy> yes is a good command
07:31:19 <pikhq_> zzo38: Wow, sure enough.
07:31:24 -!- elliott_ has quit (Ping timeout: 246 seconds).
07:31:31 <zzo38> The "yes" command can have many uses.
07:31:34 <itidus20> CakeProphet: what do you mean IO?
07:31:40 <itidus20> do you mean like in space invaders? :D
07:31:41 <pikhq_> aplay <(yes) actually does that.
07:31:47 <zzo38> pikhq_: Surely it is obvious?
07:32:02 <pikhq_> zzo38: Well, yes, it's obvious how it would do that.
07:32:23 <pikhq_> zzo38: It's an oscillation between y and \n, which would, of course, produce a constant tone.
07:32:32 <CakeProphet> zzo38: it's a very high frequency sin tone right?
07:32:39 <pikhq_> Of very high frequency.
07:33:31 <CakeProphet> so it is the nyquist frequency, interesting.
07:33:36 <pikhq_> aplay defaults to 8000 Hz sample rate, so it's a 4 kHz tone.
07:34:06 <zzo38> Now use a 5200 Hz sample rate........
07:34:38 <pikhq_> Which, of course, does a 2.6 kHz tone.
07:34:50 <itidus20> CakeProphet: this is a pic of the page in my private wiki: http://oi52.tinypic.com/wqsorr.jpg
07:36:28 <zzo38> I once wrote a program in Linux that generates many kinds of telephone signals. Including DTMF, silver box, red box, blue box, dial tone, busy signal, reorder, SIT, etc.
07:37:16 <zzo38> Including both American and Commonwealth ringback tones! And red box for many countries.
07:38:26 <zzo38> If you live in North America, program your computer to play the Commonwealth ringback tone when someone calls you............
07:41:08 <CakeProphet> changing the string that yes outputs leads to fun things.
07:41:22 <CakeProphet> yes `echo -ne "\255"` gives you the max amplitude signal.
07:41:53 <CakeProphet> and then adding more characters adds more spectral qualities and lowers the frequency.
07:42:19 <pikhq_> yes `printf "\x255"` does so on POSIX systems.
07:42:24 -!- Taneb has joined.
07:44:25 <CakeProphet> well, hmmm.. I think you might need floating point numbers for that.
07:45:39 <pikhq_> If you want a perfect sine tone, what you need is infinite-bit sampling.
07:46:21 <pikhq_> And there will be no notable benefit to floating point over integer samples if both are bounded.
07:46:55 <lambdabot> No instance for (GHC.Float.Floating GHC.Types.Int)
07:47:07 <CakeProphet> > map (toEnum.(+10).(*245).round.sin) [1..]
07:47:08 <lambdabot> [*Exception: Prelude.Enum.().toEnum: bad argument
07:47:32 -!- zzo38 has quit (Remote host closed the connection).
07:47:37 <CakeProphet> I am trying to get the sequence of characters to generate a sine tone.
07:48:11 <CakeProphet> > map (toEnum.(+10).(*245).round.sin) [1..] :: [Char]
07:48:13 <lambdabot> "\255\255\n*Exception: Prelude.chr: bad argument: (-235)
07:49:49 <CakeProphet> > map (toEnum.abs.round.(+10).(*245).sin) [1..] :: [Char]
07:49:50 <lambdabot> "\216\233-\175\225:\171\252o{\235yq\253\169=\226\174/\234\215\b\197\212\SYN...
07:53:18 <CakeProphet> > map (toEnum.abs.round.(+10).(*245).sin.(/(25*pi))) [1..] :: [Char]
07:53:19 <lambdabot> "\r\DLE\DC3\SYN\SUB\GS #&),/259<?BEHKNQTWZ]`behknqtvy|\DEL\129\132\135\138\...
07:53:22 <Taneb> Well, Binary Variety Pack now has functional, imperative, and string rewriting.
07:54:37 -!- GuestIceKovu has joined.
07:55:20 <Taneb> Now I need a fourth paradigm to add to BVP
07:56:20 -!- Slereah has quit (Ping timeout: 240 seconds).
07:57:49 <CakeProphet> or modular, or template-based (aka macros), or unstructured, or logic-oriented
07:58:51 <Taneb> I might go for a cellular automaton
08:00:22 <CakeProphet> a cellular automaton of cellular automatons.
08:00:47 <Taneb> I was going for a cellular automaton definition
08:01:00 <Taneb> Which is then run with the starting state of the input
08:01:13 <Taneb> For a defined number of steps
08:02:18 <itidus20> well, do infinite cells exist?
08:02:37 <Taneb> Only in the abstraction of the cellular automaton
08:02:58 <itidus20> if noone is capable of perceiving infinite cells then how can it be proven that they exist :D
08:03:19 <Taneb> It's an abstraction. They exist by definition
08:03:20 <itidus20> sorry im being dumb, and then being dumber
08:03:30 <itidus20> its overcompensation for not being a math guy
08:04:09 <itidus20> where i was going with this was: if something exists by definition... do you ever need to actually calculate all the cells in order to use all the cells?
08:04:47 <Taneb> Pedantic people would say it's unbounded rather than infinite
08:05:02 <itidus20> well you can have infinite dead cells
08:05:03 <CakeProphet> data CA t = CA {left :: [t], right :: [t], up :: [t], down :: [t], current :: t}
08:05:39 <itidus20> you can speak with accuracy about an infinte plane of dead cells 8->
08:05:57 <CakeProphet> GameOfLifeInitialState = CA (repeat Dead) (repeat Dead) (repeat Dead) (repeat Dead) Dead
08:06:25 <Taneb> If you were a live cell on infinite n-dimensional planes of dead cells, it'd be kinda creepy
08:06:38 <CakeProphet> lol that just makes a cross-shaped automaton.
08:06:52 <itidus20> Taneb: maybe you are.. thats why its creepy
08:07:32 <CakeProphet> I'm not entirely sure how to represent a zipper in 2D
08:07:57 <itidus20> its elegant looking code you have there anyway
08:08:03 <Taneb> I'm suspecting recursion is the answer
08:08:24 <CakeProphet> well, yes. repeat is how I generate the infinite list, and repeat is recursive.
08:08:24 <itidus20> i must remember to not forget about studying haskell
08:11:33 <CakeProphet> okay so I'd have data Zipper t = Zipper {left :: [t], right :: [t], current :: t}
08:12:49 <CakeProphet> then I could define shiftLeft, shiftRight, shiftUp, shiftDown.
08:16:16 <monqy> I think I've seen a zipper in 2d before
08:16:20 <monqy> I may be misremembering though
08:17:24 <CakeProphet> the problem with defining it as a zipper of zippers is that each sub-zipper has its own cursor or whatever its called.
08:20:13 <monqy> I indeed misremembered. oops.
08:20:45 <CakeProphet> I suppose you could map the shift operation to each sub-zipper whenever you move left/right
08:23:53 -!- monqy has quit (Quit: hello).
08:43:47 -!- Taneb has quit (Ping timeout: 252 seconds).
08:49:37 <CakeProphet> oh hey I've found a use for bitwise shift.
08:51:53 <CakeProphet> you would use it when constructing a hidden message from the least significant bits of some other data.
08:55:51 -!- azaq231 has joined.
08:57:25 -!- azaq23 has quit (Ping timeout: 276 seconds).
08:58:46 <fizzie> That sounds a bit unlikely, given that you don't need a bitshift to set, clear or extract the least significant bit.
08:59:19 <fizzie> (Assuming you have bitwise ands and ors and the other usual fluff.)
09:00:10 <fizzie> Oh, you meant for putting the bits together, I guess.
09:07:48 <CakeProphet> The fact that Java is one of the most popular languages out there
09:07:56 <CakeProphet> and has absolutely no support for higher-order functions
09:08:43 <CakeProphet> fizzie: and right, putting them together with and requires shifting the bits to the right location.
09:09:53 * CakeProphet should implement class-based versions of map and filter in Java.
09:09:58 <fizzie> Lambdas are coming in Java 8.
09:10:03 <CakeProphet> you have to use an anonymous class everytime.
09:10:33 <CakeProphet> fizzie: so I'm assuming support for lambdas also includes support for function types?
09:10:41 <fizzie> Nno, of course not. :p
09:10:56 <fizzie> It's mostly just a syntactic thing to make the anonymous-class solution less verbose.
09:10:56 <CakeProphet> otherwise you'd just define the lambda and it would uh... sit there and do nothing.
09:11:18 <fizzie> The lambda types are "convertible" to any class with a single public method that has a compatible parameter list, approximately.
09:11:23 <fizzie> (Glossing over the details here.)
09:11:45 <CakeProphet> they should just steal delegates and call it something else.
09:12:09 <fizzie> I would suppose it's so that you can actually use the lambdas in all the existing APIs that have been written to take objects implementing single-method interfaces.
09:12:32 <CakeProphet> well right, but they could also just add new constructors for those methods that take lambda parameters.
09:13:12 <fizzie> But you can't add to Java interfaces.
09:13:29 <fizzie> Existing ones, I mean. Because otherwise all existing implementations would start complaining about missing methods.
09:13:53 <fizzie> So you can't put anything new in the Collection<T> interface for example, without ruining everyone else's collections.
09:14:25 <CakeProphet> C# actually has a pretty well-thought out standard API.
09:15:02 <fizzie> That's I think why the have the Collections class with all those static methods, because you can easily stick stuff in there. (Except of course you can't then override that stuff in custom-built containers or anything.)
09:15:30 <fizzie> (There's also a proposal for "extension methods" that would work around the above thing up to some degree, not sure if that's planned for Java 8 too.)
09:15:42 <CakeProphet> Func<> for example... which has a bunch of overloads. Func<ReturnType>, Func<A,ReturnType>, Func<A,B,ReturnType>.
09:15:50 <CakeProphet> And then you use Action<> if the return type is void.
09:17:35 <CakeProphet> basically it's just an alternative to writing your own delegate types.
09:18:35 <CakeProphet> delegate int FrameWorkManagerCallBackEnterpriseyCruft(int a, int b)
09:19:01 <CakeProphet> and then you can declare variables of type FrameWorkManagerCallBackEnterpriseyCruft, and assign any method that matches that signature.
09:20:29 <CakeProphet> also += will append methods to a list that is executed when the delegate variable is called. Which I'm sure makes writing event-based code ridiculously simple.
09:21:02 <fizzie> But you need to explicitly test against an empty delegate list when calling, IIRC.
09:22:06 <fizzie> Yes. It's always "if (blah != null) blah();" in all code that wants to call all the blah-handlers.
09:22:27 <CakeProphet> you have to test for null. Though some people on Stack Overflow recommend adding an empty method to remove that check.
09:23:00 <CakeProphet> Stack Overflow = reliable community of programming masters.
09:23:45 <CakeProphet> you could also use the poorly named "null-coalescing operator" and write blah?? blah()
09:25:27 <CakeProphet> but yeah "you have to test for null a lot" is a common annoyance of many languages that have nullable types.
09:25:34 <fizzie> That's what confused-looking operator.
09:26:09 <CakeProphet> yes I prefer Perl's //, but that's because I'm a Perl fanboy.
09:27:34 <CakeProphet> // is probably Perl's most important contribution to the future of OO programming. :P
09:28:28 <CakeProphet> all the former Java programmers switching to C# will be like "woah that's probably the best idea for an operator ever, C# designers."
09:28:29 <fizzie> // is also a bit silly-looking. What, it's the || except on a windy day? (Still, I suppose they're running out of sensible operators.)
09:29:01 <CakeProphet> yeah I'm not really sure about the choice of symbol. I suppose ?? actually kind of makes some sense.
09:29:45 <CakeProphet> still, an operator is just a sequence of symbols. They're not really suggestive by themselves. Only through convention do you associate || with or in the first place.
09:29:46 <fizzie> I vaguely recall that some drafts of Perl 6 made the ternary operator be "$a ?? $b :: $c", doubling the ? and : for some reason.
09:30:16 <CakeProphet> Perl 6 is destroying Perl's golfability. :P
09:31:46 <CakeProphet> more than 4 characters for a function/method name or 2 characters for a symbolic operator is unacceptable.
09:32:33 <fizzie> So <=> is unacceptable?-)
09:34:25 <CakeProphet> I should rewrite Haskell's Prelude for golfing.
09:34:42 <CakeProphet> have everything with very short names, and any two-argument functions as operators.
09:35:17 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
09:35:21 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
09:37:57 <lambdabot> No instance for (GHC.Num.Num GHC.Bool.Bool)
09:38:06 <fizzie> I suppose it does the other "intuitive" thing when summing.
09:39:00 <lambdabot> [6,12,18,24,30,36,42,48,54,60,66,72,78,84,90,96,102,108,114,120,126,132,138...
09:39:39 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
09:39:53 <lambdabot> Overlapping instances for GHC.Show.Show (b -> t)
09:45:48 <CakeProphet> okay so I'm wondering if it would be bad to use the same seed value everytime I want to generate white noise...
09:46:05 <CakeProphet> because otherwise I would have to use IO to generate a white noise signal.
09:46:32 <CakeProphet> I guess I could just pass the seed parameter to the generator...
09:48:42 <CakeProphet> I'm pretty sure using the same seed everytime would not degrade the quality of the white noise produced, at least to the human ear.
09:49:20 <CakeProphet> so I'll have one with a seed parameter, one without, and one that is in IO
09:50:08 <CakeProphet> and by "write" I mostly mean "use the ones that are already there"
10:01:22 <lambdabot> Prelude iterate :: (a -> a) -> a -> [a]
10:02:57 <lambdabot> [1,0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13,-14,-15,-16,-17,-18,-19,-20...
10:03:17 <CakeProphet> > iterate succ >=> take 3 . iterate pred $ 1
10:03:19 <lambdabot> [1,0,-1,2,1,0,3,2,1,4,3,2,5,4,3,6,5,4,7,6,5,8,7,6,9,8,7,10,9,8,11,10,9,12,1...
10:29:47 -!- itidus20 has quit (Ping timeout: 264 seconds).
10:32:50 -!- itidus20 has joined.
10:32:55 -!- Wamanuz has quit (Remote host closed the connection).
10:36:37 -!- Wamanuz has joined.
10:59:00 -!- augur has quit (Remote host closed the connection).
10:59:11 -!- augur has joined.
11:17:34 -!- FireFly has joined.
11:58:08 -!- ais523 has joined.
12:08:21 -!- benuphoenix has joined.
12:08:58 <benuphoenix> anyone have the ruleset for the irc-based nomic called Canada?
12:10:11 <ais523> I don't, and the other two people who might plausibly have it (elliott and Vorpal) aren't here right now
12:11:01 <Sgeo> comex_ wouldn't plausibly have it?
12:12:21 <ais523> hmm, I can't remember if he was around back then
12:41:19 <itidus20> i wonder if a wireless network messaging protocol would be a slightly good thing, or a very very bad thing
13:45:35 <ais523> hey, does Befunge-98 have any libraries/fingerprints for doing object-oriented programming yet?
13:47:12 <ais523> the topic came up in another channel
13:54:44 <fizzie> There's FOBJ in the RC/Funge, it's sort-of like that.
13:54:47 <fizzie> http://www.rcfunge98.com/rcfunge2_manual.html#FOBJ
13:55:09 <lambdabot> forall a. (Bits a) => a -> Int -> a
13:55:26 <ais523> fizzie: ah, that's what I was looking for
13:59:36 -!- benuphoenix has quit (Quit: leaving).
14:00:07 <lambdabot> Data.Bits bitSize :: Bits a => a -> Int
14:00:25 <lambdabot> It could refer to either `Data.Bits..&.', imported from Data.Bits
14:00:25 <lambdabot> or `Test.QuickCheck..&.', imported from Test.QuickCheck
14:00:32 <fizzie> Looks like a middle finger.
14:01:39 <lambdabot> Ambiguous type variable `a' in the constraint:
14:03:11 <fizzie> Prettiest thing since sliced bread.
14:04:39 <lambdabot> Data.Bits (.&.) :: Bits a => a -> a -> a
14:04:39 <lambdabot> Data.Bits (.|.) :: Bits a => a -> a -> a
14:04:39 <lambdabot> Data.Bits xor :: Bits a => a -> a -> a
14:05:52 <CakeProphet> > let mul a b = if a == 0 then b else let c = b Data.Bits..&. a in mul (c `shiftL` 1) (b `xor` a) in mul 8 8
14:05:52 <lambdabot> Ambiguous type variable `a' in the constraint:
14:06:11 <CakeProphet> > let mul :: Int -> Int -> Int; mul a b = if a == 0 then b else let c = b Data.Bits..&. a in mul (c `shiftL` 1) (b `xor` a) in mul 8 8
14:07:51 <CakeProphet> oh wait I think I defined addition actually.
14:07:59 <CakeProphet> > let mul :: Int -> Int -> Int; mul a b = if a == 0 then b else let c = b Data.Bits..&. a in mul (c `shiftL` 1) (b `xor` a) in add 2 2
14:08:14 <CakeProphet> > let add :: Int -> Int -> Int; add a b = if a == 0 then b else let c = b Data.Bits..&. a in add (c `shiftL` 1) (b `xor` a) in add 2 2
14:12:12 <CakeProphet> > let add :: Int -> Int -> Int; add 0 b = b; add a b = let c = b Data.Bits..&. a in add ((`shiftL` 1) . b Data.Bits..&. a) (b `xor` a) in foldl1 add [1..100]
14:12:13 <lambdabot> Couldn't match expected type `f a'
14:12:13 <lambdabot> against inferred type `GHC.Types...
14:12:34 <CakeProphet> > let add :: Int -> Int -> Int; add 0 b = b; add a b = let c = b Data.Bits..&. a in add ((`shiftL` 1) . (b Data.Bits..&. a)) (b `xor` a) in foldl1 add [1..100]
14:12:35 <lambdabot> Couldn't match expected type `f a'
14:12:35 <lambdabot> against inferred type `GHC.Types...
14:14:15 <CakeProphet> > let add :: Int -> Int -> Int; add 0 b = b; add a b = let c = b Data.Bits..&. a in add ((b Data.Bits..&. a) `shiftL` 1) (b `xor` a) in foldl1 add [1..100]
14:18:50 <CakeProphet> > let add :: Int -> Int -> Int; add 0 b = b; add a b = add ((b Data.Bits..&. a) `shiftL` 1) (b `xor` a) in foldl1 add [1..100]
14:28:03 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:34:52 <fizzie> > let mul :: Int -> Int -> Int; mul a b = let i = [0 .. (bitSize a - 1)] in sum $ map (\i -> if testBit a i then b `shiftL` i else 0) i in mul 17 19
14:46:33 <Sgeo> My score playing Barbu: -289. Supposedly, this is good for someone playing for the first time
15:00:29 -!- copumpkin has joined.
15:22:31 <Sgeo> Dear website: Rejecting an email address due to capital letters is pants-on-head retarded.
15:24:12 <ais523> is your email provider case-insensitive?
15:24:27 <ais523> the bit after the @ is, the bit before the @ is up to the provider but the vast majority interpret it as case-insensitive
15:24:29 <Sgeo> Well, it was my dad trying to use the website
15:25:28 <Sgeo> It autocompletes with a capital in the first part. Before I proved to myself that that was the issue, I suggested it to him, but the... form thingy replaced the lower-case with the capital
15:32:15 -!- chickenzilla has joined.
15:40:57 <Vorpal> <benuphoenix> anyone have the ruleset for the irc-based nomic called Canada?
15:40:57 <Vorpal> <ais523> I don't, and the other two people who might plausibly have it (elliott and Vorpal) aren't here right now
15:41:25 <Vorpal> I have no clue where to look even
15:58:05 -!- pikhq has joined.
15:58:19 -!- pikhq_ has quit (Ping timeout: 255 seconds).
16:06:31 -!- derrik has joined.
16:16:16 -!- oklopol has joined.
17:01:00 -!- copumpkin has quit (Quit: Leaving...).
17:01:25 -!- copumpkin has joined.
17:46:00 -!- copumpkin has quit (Ping timeout: 240 seconds).
17:46:46 -!- copumpkin has joined.
17:53:22 -!- copumpkin has quit (Ping timeout: 258 seconds).
18:06:47 -!- monqy has joined.
18:08:28 -!- copumpkin has joined.
18:34:14 <olsner> things I hate about eating chicken: the parts of the chicken consisting of mystery meat instead of chicken
18:36:53 <pikhq> Sounds like you're eating wyngz.
18:40:18 <olsner> unsure if all of it even counts as meat, but that's part of the mystery I guess
18:42:16 <derrik> work kills.. everybody who has some some work has died
18:46:40 -!- derrik has left.
18:52:22 -!- GuestIceKovu has changed nick to Slereah.
19:12:02 -!- ais523 has quit (Remote host closed the connection).
19:44:43 -!- Taneb has joined.
19:46:12 <Taneb> Actually, change of plan
19:46:56 -!- Sgeo has quit (Ping timeout: 255 seconds).
19:47:12 -!- zzo38 has joined.
19:51:38 -!- azaq231 has quit (Quit: Leaving.).
19:59:56 -!- Taneb has quit (Ping timeout: 252 seconds).
20:01:20 <tswett> Does anyone remember kilgame? I think it was created by pikhq or oklopol or lament or a similar person.
20:02:37 -!- Taneb has joined.
20:06:13 <Taneb> Well, things are happening in the world
20:09:16 <olsner> no, nothing is happening "in the world"
20:10:54 <Taneb> Convection currents are flowing around in the mantle
20:13:11 <Taneb> Also, it's happened again
20:15:23 <Taneb> I'm freakin' insane
20:31:33 -!- Sgeo has joined.
21:22:00 -!- Taneb has quit (Quit: Page closed).
21:38:32 -!- TeruFSX has joined.
21:42:09 -!- oerjan has joined.
21:46:07 <oerjan> hi *hides behind rock*
21:46:17 <oklopol> you still don't remember my name?
21:47:07 <oklopol> i fucking tattooed it between my angle brackets just so people would remember it
21:47:48 <oerjan> well you've dropped one of them, i can see clearly there is no <
21:48:45 <oklopol> [00:48:45] <oklopol> checking
21:48:45 <oklopol> [00:48:45] <oklopol> checking
21:49:04 <oklopol> you must be going blind in one eye
21:55:20 <oklopol> i think i'll go blind in both eyes for a few hours now, see you tomorrow if it's temporary ->
22:01:03 <oerjan> <CakeProphet> I'm not entirely sure how to represent a zipper in 2D
22:01:16 <oerjan> obviously he wants to start with a quadtree.
22:01:35 <oerjan> but now he'll NEVER know *MWAHAHAHA*
22:18:33 -!- MDude has joined.
22:19:25 -!- Nisstyre has quit (Ping timeout: 258 seconds).
22:20:19 -!- iamcal has quit (Remote host closed the connection).
22:45:33 <oerjan> that recent post on godel's lost letter seems to have brought up many quips in the comments...
22:46:13 <oerjan> 'In a discussion on Google+ on why it is superior to Twitter someone commented: “I would go so far as to say that almost any idea that can be expressed in 140 characters is too trivial, and not worth expressing."'
22:47:17 <oerjan> (the subject being "Self-defeating sentences")
22:48:33 -!- TeruFSX has quit (Ping timeout: 258 seconds).
22:49:29 -!- iamcal has joined.
22:52:06 -!- elliott has joined.
22:57:23 <oerjan> pannekaker med ertesuppe
23:00:20 <elliott> 09:13:12: <fizzie> But you can't add to Java interfaces.
23:00:20 <elliott> 09:13:29: <fizzie> Existing ones, I mean. Because otherwise all existing implementations would start complaining about missing methods.
23:00:20 <elliott> 09:13:53: <fizzie> So you can't put anything new in the Collection<T> interface for example, without ruining everyone else's collections.
23:00:20 <elliott> 09:15:02: <fizzie> That's I think why the have the Collections class with all those static methods, because you can easily stick stuff in there. (Except of course you can't then override that stuff in custom-built containers or anything.)
23:00:27 <elliott> fizzie: see expression problem
23:01:07 <oerjan> java doesn't even _try_ to have a solution to it, i think.
23:01:47 <elliott> oerjan: um the expression problem was originally formulated and solved for GJ by its creators
23:01:53 <elliott> GJ = Generic Java, which was merged into Java in the fifth version
23:02:06 <elliott> the solution isn't how any Java code or libraries are structured, mind you
23:02:45 <elliott> 09:45:48: <CakeProphet> okay so I'm wondering if it would be bad to use the same seed value everytime I want to generate white noise...
23:02:46 <elliott> this is what RandomR is for
23:02:47 <lambdabot> System.Random random :: (Random a, RandomGen g) => g -> (a, g)
23:03:04 <elliott> 12:08:58: <benuphoenix> anyone have the ruleset for the irc-based nomic called Canada?
23:03:08 -!- iamcal has quit (Ping timeout: 255 seconds).
23:04:13 <elliott> 20:01:20: <tswett> Does anyone remember kilgame? I think it was created by pikhq or oklopol or lament or a similar person.
23:04:55 -!- subleq has joined.
23:05:05 -!- subleq has left.
23:09:36 -!- subleq has joined.
23:12:20 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:14:50 -!- CakeProphet has quit (Read error: Connection reset by peer).
23:15:14 -!- CakeProphet has joined.
23:16:24 <zzo38> Do you have idea what I (and my brother) might try next in D&D game I was playing?
23:20:03 <tswett> > fix (\xs -> flip concatMap xs (\x -> ' ' : case x of ' ' -> 'space'; _ -> x))
23:20:03 <lambdabot> lexical error in string/character literal at chara...
23:20:15 <tswett> > fix (\xs -> flip concatMap xs (\x -> ' ' : case x of ' ' -> "space"; _ -> [x]))
23:28:04 -!- subleq has quit (Quit: leaving).
23:30:16 <oerjan> > fix (\xs -> ' ' : flip concatMap xs ((++" ").(\x -> ' ' : case x of ' ' -> "space"; _ -> [x])))
23:30:18 <lambdabot> " space space s p a c e space space s p a c e space space ...
23:30:43 <oerjan> > fix (\xs -> ' ' : flip concatMap xs ((++" ").(\x -> case x of ' ' -> "space"; _ -> [x])))
23:30:44 <lambdabot> " space s p a c e space s space p space a space c space e space s p a c e s...
23:32:02 <oerjan> tswett: ^ that what you wanted out?
23:32:06 -!- TeruFSX has joined.
23:33:12 <oerjan> > fix (\xs -> ' ' : unwords (flip concatMap xs (\x -> case x of ' ' -> "space"; _ -> [x])))
23:33:13 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
23:33:34 <oerjan> > fix (\xs -> ' ' : unwords (flip map xs (\x -> case x of ' ' -> "space"; _ -> [x])))
23:34:16 <oerjan> why would that be different
23:34:50 <oerjan> > take 1 . unwords $ ('x':undefined) : undefined
23:34:54 <elliott> oerjan: you realise eval is non-deterministic?
23:35:02 <oerjan> > take 1 . unwords $ "x" : undefined
23:35:20 <oerjan> yes but i more suspect unwords is insufficiently lazy
23:35:25 <lambdabot> unwords ws = foldr1 (\w s -> w ++ ' ':s) ws
23:35:53 <oerjan> hm that doesn't look strict
23:37:51 <oerjan> > unwords $ "x" : undefined
23:38:21 -!- copumpkin has joined.
23:38:35 <oerjan> > let unwords [] = ""; unwords ws = foldr1 (\w s -> w ++ ' ':s) ws in unwords $ "x" : undefined
23:39:41 <lambdabot> No instance for (Data.Monoid.Monoid GHC.Types.Char)
23:40:03 <oerjan> > "x" ++ ' ':undefined
23:40:43 <oerjan> > let unwords ws = foldr1 (\w s -> w ++ ' ':s) ws in unwords $ "x" : undefined
23:41:31 <oerjan> > foldr1 (\w s -> w ++ ' ':s) $ "x" : undefined
23:41:53 <oerjan> > foldr1 (\w s -> w ++ b:s) $ [a] : undefined
23:42:02 <lambdabot> foldr1 f (x:xs) = f x (foldr1 f xs)
23:42:18 <oerjan> ooh it's foldr1 which is not lazy of course
23:42:33 <oerjan> it needs to handle the exact [x] case specially
23:43:43 <oerjan> and by writing in terms of that, unwords becomes a tiny bit less lazy than necessary.
23:43:45 <elliott> world.c: In function ‘T.167’:
23:43:45 <elliott> world.c:246: error: ‘current_chunk$z’ may be used uninitialized in this function
23:43:45 <elliott> world.c:246: error: ‘current_chunk$x’ may be used uninitialized in this function
23:43:45 <elliott> world.c: In function ‘world_handle_chunk’:
23:43:45 <elliott> world.c:246: error: ‘current_chunk.z’ may be used uninitialized in this function
23:43:46 <elliott> world.c:246: error: ‘current_chunk.x’ may be used uninitialized in this function
23:44:14 -!- iamcal has joined.
23:45:12 <oerjan> or wait, chunks, that's mc isn't it
23:47:26 <zzo38> I am trying to think of the next session of my D&D game. Maybe we should kick the stunned kuo-toas off of the ship, but maybe the wall is too high. Maybe we should ask them try to figure out where the ship is going and stuff, but maybe now they think we are crazy and won't tell us; we just have to wait. Maybe they need the uniform back, but the old clothes have been burned.
23:50:42 <elliott> the dollar sign stuff was what wow'd me
23:56:19 -!- Taneb has joined.
00:01:04 <elliott> oerjan: g or uppercase or C, which
00:02:22 -!- Sgeo_ has joined.
00:03:18 -!- Patashu has joined.
00:05:14 -!- Sgeo has quit (Ping timeout: 255 seconds).
00:10:51 <elliott> "The natural progression is 1) fear the type system, it barfs at me and I don't get it; 2) respect the type system, it seems to catch a lot of stupid stuff; 3) use the type system, if I think about it a little I can harness it to catch pretty non-trivial bugs in my code; 4) abuse the type system, use fundeps and undecidable instances to create possibly very complex type-level hackery to check invariants at compile time."
00:10:55 <elliott> awesome, i am a level four haskell programmer
00:13:11 -!- copumpkin has changed nick to c0pumpk1n.
00:19:38 <zzo38> Does Haskell allow you to have incomplete type declarations that you can add stuff on many times later on?
00:20:33 <elliott> typeclasses are a version of that
00:20:39 -!- iamcal has quit (Remote host closed the connection).
00:22:06 -!- itidus21 has joined.
00:22:11 <elliott> oerjan: i mean if I make it g
00:22:50 <zzo38> Can you make a union that adds later things it can be later on, or a record type that can add more fields later on?
00:23:07 <elliott> zzo38: Haskell doesn't really have those as separate concepts, but yes and no
00:23:18 <elliott> You cannot extend a "data" type (ADT) for various important reasons, but you can achieve the same effect
00:23:24 <elliott> (arguably it should be easier, but yes, it is possible)
00:23:25 -!- c0pumpk1n has changed nick to copumpkin.
00:24:43 -!- itidus20 has quit (Ping timeout: 252 seconds).
00:25:38 <elliott> zzo38: here's an example: http://sprunge.us/RYUY
00:26:05 <elliott> the standard Control.Exception module is a much more advanced and flexible version of this, http://haskell.org/ghc/docs/latest/html/libraries/base/Control-Exception.html
00:26:57 <oerjan> elliott: not too much. "a constant 16 g for a minute, however, may be deadly."
00:27:21 <elliott> oerjan: so would i make loop index g?
00:28:04 <oerjan> elliott: looping is not recommended, i think.
00:28:33 <oerjan> 'A typical person can handle about 5 g (49 m/s²) before losing consciousness ("G-LOC"), but through the combination of special g-suits and efforts to strain muscles—both of which act to force blood back into the brain—modern pilots can typically handle a sustained 9 g (88 m/s²) (see High-G training.'
00:31:54 <oerjan> also, http://en.wikipedia.org/wiki/Euthanasia_Coaster
00:32:36 <elliott> that thing scares me, i mean, it's cool i guess
00:32:58 <elliott> like if i was at the top of the first slope somehow accidentally and i couldn't get off
00:34:05 <monqy> help im on euthanasia coaster and i cant get off
00:35:51 <Taneb> I always get mixed up with euthanasia and ecstasy
00:36:11 <monqy> ecstacy in which sense of the word
00:36:13 <oerjan> i'm sure some will tell you it's practically the same thing.
00:36:37 <Taneb> monqy: every sense
00:36:50 <monqy> "Subsequent inversions would serve as insurance against unintentional survival of passengers." good sentence
00:37:07 <Taneb> Also, it's getting early
00:38:26 <oerjan> taneb the backwards living one.
00:41:32 -!- Taneb has quit (Ping timeout: 252 seconds).
00:42:54 <FireFly> I have to agree with Taneb on that one
00:42:58 -!- FireFly has quit (Quit: swatted to death).
00:44:06 <zzo38> I suppose that stuff about extending the incomplete types and stuff could also be partly done using some kind of preprocessor
00:44:14 -!- iamcal has joined.
00:44:20 <oerjan> why do i only notice FireFly when he's leaving, it's not fair.
00:44:34 <oerjan> my swatter needs exercise, dammit!
00:45:46 <zzo38> Then swat the wall and see if it breaks
00:46:06 <oerjan> zzo38: i went for the alliterative solution.
00:52:49 <zzo38> Maybe a vim and/or Emacs scripts can be made for use with TeXnicard, in order to do syntax highlighting and possibly for adding cards and GUID based on what you specify, and so on. In case, it would help some people who like it this way.
01:08:58 <lambdabot> Prelude either :: (a -> c) -> (b -> c) -> Either a b -> c
01:08:58 <lambdabot> Data.Either either :: (a -> c) -> (b -> c) -> Either a b -> c
01:09:55 <oerjan> there's also some MonadError instance, i think
01:10:14 <oerjan> hm i guess that doesn't really help with that
01:10:46 <lambdabot> forall b a. b -> (a -> b) -> Maybe a -> b
01:11:07 <Sgeo_> There is now a web page listing my RL name right next to "Sgeo"
01:11:12 <Sgeo_> http://www.barbu.co.uk/rankings/player_naming.htm
01:11:16 <oerjan> there's no fromEither equivalent, i guess
01:12:18 <oerjan> you are doomed now. they will kidnap you and force you to take a genuine education.
01:13:05 <elliott> DAMN YOU BARBUUUUUUUUUUUUUUU
01:13:23 <elliott> just wanna say that Sgeo_'s use of "crud" is hilarious
01:23:03 <elliott> he said, "qwertyuio and" then... the suspense begin
01:23:25 <oerjan> i have no idea what qoantism is. although it reminds me that in pre-classical latin, q was sometimes used in front of o as well.
01:24:23 <zzo38> What is q used in front of o as well in pre-classical latin, meant?
01:24:27 <oerjan> also, "da" is the imperative form meaning "give", iirc
01:24:32 <zzo38> \def\afspace#1#2{\if\isempty{#2}#1{}\else\expandafter#1\expandafter{\identity#2}\fi}
01:25:36 <oerjan> zzo38: well in classical and later lating q was only used in front of u, as is still mostly the case in english...
01:26:23 <oerjan> presumably it was pronounced approximately the same as c, so spelling varied.
01:26:44 <elliott> oerjan felt the starin of carbon dioxide death
01:27:36 <oerjan> sometimes i get close to wondering if elliott is doing drugs.
01:27:38 <zzo38> Just recently I showed someone one of my TeX files for some purpose, and they told me "Why don't you use a real file type? Such as .txt or .7z"
01:28:14 <elliott> oerjan: im better than durgs
01:29:04 <oerjan> or wait - are THEY making you take drugs? say it isn't so!!!!!!!!!1111ælve
01:29:42 <zzo38> They tell me that my .tex file is "not a real file". What??
01:29:58 <oerjan> zzo38: they are either trolling or genuinely clueless
01:31:10 <oerjan> which one, can be hard to tell without much more information.
01:31:16 <elliott> /usr/bin/ld: /home/elliott/.cabal/lib/york-lava-0.2/ghc-7.0.4/libHSyork-lava-0.2.a(Lava.o): relocation R_X86_64_32S against `.data' can not be used when making a shared object; recompile with -fPIC
01:31:16 <elliott> /home/elliott/.cabal/lib/york-lava-0.2/ghc-7.0.4/libHSyork-lava-0.2.a: could not read symbols: Bad value
01:31:35 <elliott> zzo38: probably because it won't open when they double click it
01:32:21 <oerjan> zzo38: hm if it's what elliott says, then maybe you can add a mime type, if it's on the web.
01:32:56 <oerjan> not that that necessarily helps if they're that clueless
01:34:03 <oerjan> or in the other direction, sometimes i get annoyed by my browser insisting on saving code which i just want to view as text, because of filetype and/or extension
01:38:17 -!- CakeProphet has quit (Ping timeout: 250 seconds).
01:39:08 -!- CakeProphet has joined.
01:45:08 -!- cheater_ has quit (Ping timeout: 255 seconds).
01:45:44 <oerjan> spot the difference http://i.imgur.com/vHLx5.jpg
01:47:08 <oerjan> this one feels too close to home for me http://i.imgur.com/zBD2S.jpg
01:47:40 <oerjan> and what is worse is that i anticipated the punchline
01:48:04 <zzo38> Obviously the guy on the left has ripped clothing and is larger (in the first picture)
01:48:17 <Slereah> France used to have the best weather guy
01:48:41 <Slereah> Dude almost died on air D:
01:48:46 <Slereah> http://www.youtube.com/watch?v=GWRkWp7n_ew
01:49:44 <Slereah> But cancer acting up and all
01:51:12 <elliott> oerjan: your guy is cooler
01:51:27 <elliott> he's like "what do you want from me. i am a weatherman. i report the fucking weather."
01:51:43 <Slereah> I think he ate the weather girl
01:51:46 <elliott> also how fucking old is that gmtv shot
01:51:50 <oerjan> elliott: his voice gives that impression even stronger :P
01:52:10 <oerjan> um let me see if i can find one
01:52:19 <elliott> <Slereah> http://www.youtube.com/watch?v=GWRkWp7n_ew
01:52:23 <elliott> this video is ensaddening me
01:52:40 <elliott> oh my god evryone is talking in french in the comments STO,P
01:52:46 <Slereah> He was always making jokes and all
01:52:55 <Slereah> So many people assumed that this was a little skit
01:53:06 * elliott cries profusely, rip french weatehrman
01:53:09 <oerjan> http://www.youtube.com/watch?v=t6kRFRXkltE
01:53:26 <Slereah> And his ashes were thrown into a hurricane or something, from what I remember
01:53:26 <oerjan> (note it's middle of the night so i'm not checking the sound myself)
01:53:27 <elliott> oerjan: canimove to norway
01:53:39 <elliott> i want this guy to read em my weather every day
01:53:48 <Slereah> Napoleon Dynamite did not age well
01:53:52 <elliott> he has a fucking stick his stick is amazing
01:54:06 <elliott> longyearbyen how do you evne come up with a name like that
01:54:24 -!- CakeProphet has quit (Ping timeout: 264 seconds).
01:55:04 <oerjan> but now let me see if i can find one of our _truly_ legendary weatherman.
01:56:26 <oerjan> oh dear i cannot find one which isn't either parody or that famous sampling...
01:56:47 <elliott> The assumption is that users of this library will want to diff over interesting things or peform interesting tasks with the results (given that, otherwise, they would simply use the standard Unix diff utility). Thus no attempt is made to present a fancier API to aid in doing standard and uninteresting things with the results.
01:57:14 -!- itidus21 has changed nick to itidus20.
01:57:21 <Sgeo_> What is "interesting"?
01:58:03 <elliott> Get an efficient, optimal, type-safe diff and patch function for your datatypes of choice by defining a simple GADT and some class instances.
01:59:17 <elliott> oh heh sg might be able to use that
01:59:36 <oerjan> ah here is one http://www.youtube.com/watch?v=-p0sjcCsrRY
02:02:33 <elliott> any diff library that depends on a type equality GADT is a good diff library
02:03:03 <elliott> wow is that an actual board with stick on numbers oerjan
02:03:12 <oerjan> if you seen any suggested related videos those with KLM will be the parodies, while "Heavy Metal" is the sampling.
02:03:17 <elliott> oerjan: does he always stay off-screen
02:03:26 <oerjan> elliott: except at the very end
02:03:33 <elliott> is he like rip my face i dont like me im ugly
02:03:43 <elliott> also why is this guy famous :D
02:03:59 <oerjan> his voice, and general geekiness
02:04:32 <elliott> i wish we had weatherpeople as cool as that here
02:05:22 <oerjan> <elliott> longyearbyen how do you evne come up with a name like that <-- it's just "long year" + "byen" (the town)
02:05:38 <oerjan> i'm not sure if longyear is the name of some guy or not
02:07:03 <oerjan> but it's definitely from english
02:09:21 <oerjan> this danish guy is linked from the top reddit comment http://i.imgur.com/qszvo.jpg
02:11:32 <elliott> isn't that a really old image anyway
02:12:26 <oerjan> i guess you may know the guy from the _second_ comment http://i.imgur.com/vdqa0.jpg
02:13:11 <elliott> his... face rings a bell i guess
02:13:25 <oerjan> http://www.reddit.com/r/funny/comments/j1f2s/meteorologists/?limit=500
02:14:16 <oerjan> theisen showed up in the responses to that
02:16:42 <oerjan> omg http://i.imgur.com/4qCak.jpg
02:16:54 <elliott> <oerjan> i guess you may know the guy from the _second_ comment http://i.imgur.com/vdqa0.jpg
02:16:58 <elliott> for me that guy is the first comment
02:17:01 <elliott> are you not using best ordering?
02:17:07 <elliott> <oerjan> omg http://i.imgur.com/4qCak.jpg
02:17:58 <oerjan> the comment with "ESTONIA"
02:18:22 -!- TeruFSX has quit (Ping timeout: 252 seconds).
02:18:28 <elliott> "His glowing head is so amazing. Please tell me that is natural."
02:19:39 <elliott> "If all hot women on TV were smart, I don't think that any other girls could be smart without wrecking the idea that men and women are equally intelligent."
02:19:50 -!- TeruFSX has joined.
02:20:13 <elliott> oerjan: "NO! DON'T ! This guy is a guy that makes fun of people. He's like out Jon Stewart."
02:20:32 <elliott> "He's kinda like him. Talks about news and stuff with another guy and they make fun of stuff. He's the best we've got. They even made a song for Eurovision and we chose it. Why? CAUSE WHY THE FUCK NOT!" http://www.youtube.com/watch?v=LRh9PzNYD-8
02:28:53 <zzo38> I thought of various things about prettyprinting how it could work with Haskell programs, including, you can have a TeX code \Wsym for making symbols they can be defined using \csname or whatever, and then words in different styles for different purposes, such as if `mod` you can type in roman style but otherwise can be italic, or bold for keywords, or for names you can also do things, like, ' makes prime mark, # at end of a name makes superscr
02:29:12 -!- cheater_ has joined.
02:30:46 <zzo38> You might do it has numbers at the end of a name makes subscripts, or superscripts and subscripts separated by underscore, etc
02:32:16 <zzo38> Things that are syntax errors in Haskell can be used for other purposes
02:34:34 <oerjan> zzo38: the main way to do "other purposes" in haskell is to put it in comments. e.g. pragmas have the format {-# ... #-} (where the #'s signify that it's a pragma)
02:34:58 <zzo38> Yes that can work too.
02:35:05 <oerjan> while haddock iirc uses the other style of comments -- ^ etc...
02:35:21 <zzo38> It also depends what the other purposes are, I guess.
02:35:51 <zzo38> In some cases it is OK to ignore you can use comments then, but in case it is a preprocessor you might instead want to use things that would make a syntax error in normal Haskell
02:36:36 <zzo38> This is possible to be applied in other programming languages too
02:38:40 <zzo38> Actually WEB uses @ to select modes and special commands since @ is not a command in Pascal, and uses double quote for pool strings (including single character constants, are replaced by their ASCII code number).
02:40:21 <oerjan> zzo38: with haskell most non-alphanumerical characters are syntax errors at the beginning of a line, unless you're in layout-less mode (which is afaik rarely used)
02:41:31 <oerjan> ( can also appear there i think, in operator definitions
02:41:58 <oerjan> oh and that also gives ' and "
02:42:10 <oerjan> but @ and # are syntax errors, i think
02:42:20 <lambdabot> <no location info>: parse error on input `@'
02:42:28 <zzo38> It says Haskell permits the omission of the braces and semicolons used in several grammar productions, by using layout to convey the same information. This allows both layout-sensitive and layout-insensitive styles of coding, which can be freely mixed within one program. Because layout is not required, Haskell programs can be straightforwardly produced by other programs.
02:42:30 <lambdabot> <no location info>: parse error on input `#'
02:43:12 <zzo38> But from what I am reading, it seem `` is probably a syntax error putting two ` next to each other directly
02:43:52 <oerjan> yeah i cannot think of a place where that would be legal outside a comment/string
02:43:53 <zzo38> So, you can use layout mode and non-layout mode together in one program, I think? Is that what it does?
02:44:35 <oerjan> yes. it depends on whether you include a literal { when starting a block or not
02:45:21 <oerjan> > let x = y where { y = 2+z; z = 5 } in x
02:45:53 <oerjan> there the block with the let has layout (in theory, although it ends on the same line) while the where block doesn't.
02:50:35 <pikhq> zzo38: Probably the easiest way to do a TeX-style prettyprinting for Haskell would be to use TeX-style Literate Haskell.
02:51:21 <pikhq> (if the file has a suffix of .lhs, then the file is considered to be in Literate Haskell. One can denote that something is actual code, rather than normal text, either by prepending the line with >, or wrapping the code in \begin{code} \end{code}.
02:53:56 -!- copumpkin has quit (Ping timeout: 252 seconds).
02:54:21 -!- copumpkin has joined.
02:54:59 <zzo38> Yes it would work, and then can be compiled using standard Haskell compilers too, I think (since .lhs means to only compile lines with > I think)
02:55:18 <pikhq> Or things in \begin{code} \end{code} blocks.
02:55:26 <pikhq> It's part of the standard.
02:56:37 <zzo38> I don't know why that should be a part of the standard, but whatever, OK
02:57:10 <zzo38> Still, using .lhs does not allows you to do various other things such as preprocessing you might want, and so on; although you could still use it for prettyprinting in TeX or other programs
02:57:37 <pikhq> Yeah, it is somewhat limited, and a more full-fledged preprocessor might be preferable.
02:57:58 <pikhq> Still, it is nice being able to make your Haskell source be a TeX document with ease.
02:57:58 <zzo38> It seem \ is a valid operator in Haskell but I don't know if "\end{code}" can be any valid Haskell syntax.
02:58:36 <pikhq> \end{code} can't be valid Haskell syntax.
03:00:36 <zzo38> Of course I do suppose that both codes with > style or \begin{code} \end{code} style could be made to work in TeX with the correct macros without too much difficulty, although doing prettyprinting entirely with TeX would be far mroe difficult.
03:01:22 <oerjan> pikhq: well not if the \ starts a token.
03:01:25 <zzo38> (Making \end{code} would be slightly more difficult since the characters \ { } would still need to be supported inside of the code)
03:01:40 <pikhq> oerjan: IIRC it has to be at the very start of a line.
03:02:10 <pikhq> You may know better than I, though.
03:02:10 <oerjan> it _could_ still be inside a string.
03:03:09 <oerjan> but maybe the \end{...} takes precedence. hm...
03:04:17 <zzo38> Well, in either case, to do it directly in TeX then you would make the end of line character to be category code 13 (active character)
03:04:52 <zzo38> And it would work especially if \end{code} needs to be on a line by itself or just at the start of a line
03:05:17 <zzo38> While with > you could have a command that sets the category codes so that a blank line without > ends it
03:05:38 <pikhq> \begin{code} could also start a pretty-printing environment.
03:05:45 <oerjan> "•Program code ends just before a subsequent line that begins \end{code} (ignoring string literals, of course).
03:05:57 <pikhq> And then you could let the TeX parser handle the \end{code} bit.
03:06:03 <zzo38> Well, I suppose you could do some prettyprinting stuff directly in TeX
03:06:23 <zzo38> So even TeX if you make it parse Haskell codes, could understand if \end{code} is inside of a string or not
03:08:24 <zzo38> If you are not using \begin for anything else, you could make \begin in TeX to ignore its first parameter, and then allow two kinds of prettyprinting, one for code that is part of the program, and one for code that is not part of the program.
03:11:12 <zzo38> Maybe even the contents of this report is enough I could try to make some kind of Haskell prettyprinter directly in TeX that supports .lhs format http://www.haskell.org/onlinereport/haskell2010/haskellch2.html#x7-140002
03:11:47 <zzo38> I have already written programs in TeX to make index, so it could be used too
03:15:30 <elliott> zzo38: are you learning haskell or something?
03:16:20 <zzo38> elliott: Well, sort of. Not quite. Not really.
03:16:44 <elliott> <pikhq> \end{code} can't be valid Haskell syntax.
03:16:48 <zzo38> So that, if you put \input the correct macros at the top, you can just type tex program.lhs; dvilj4 - < program.dvi | lp or whatever command would be used on your computer.
03:16:48 <elliott> is this true in the presence of TH?h
03:16:53 <elliott> hmm right it'd have to be asection
03:17:03 <elliott> (\end{code}) would be valid on a line of its own, with TH
03:17:30 <zzo38> What does TH means?
03:17:41 <elliott> hmm or wait, it'd have to be (\end{code=something})
03:17:55 <zzo38> And what things would it mean \ and then end and then {
03:18:18 <zzo38> I try to look at the document see how it works
03:18:33 <zzo38> The { is "special"
03:18:39 <elliott> where the last thing is a record mutation
03:18:43 <elliott> unfortunately \end{code} cannot be valid
03:18:49 <elliott> but (\end{code=x}) could be
03:18:51 <zzo38> Without equal sign it is not valid?
03:19:00 <oerjan> elliott: \ is not a legal operator though
03:19:33 <zzo38> Then, it is OK, it is not a problem to use \end{code} to end the code in Literate Haskell, I guess. Since, it is not in a string, it says ignoring string literals so it is OK
03:20:34 <oerjan> there _is_ that quasiquote thing, though?
03:20:48 <zzo38> Yes it does say \ is reserved
03:21:04 <oerjan> \ is used for haskell's lambdas
03:23:14 <oerjan> can you do that without capitalizing the end?
03:23:29 <oerjan> oh it's a TH thing you say
03:23:57 <elliott> the TH thing is just an expression as a valid top-level line
03:24:04 <lambdabot> <no location info>: Parse error in pattern
03:24:41 <lambdabot> Not in scope: data constructor `End'
03:24:41 <lambdabot> `test' is not a (visible) field of constructor `End'
03:25:06 <oerjan> seems not legal unless a constructor
03:25:08 <zzo38> It is a valid line with TH? "Program code ends just before a subsequent line that begins \end{code} (ignoring string literals, of course)." Oops too bad! Well I suppose you can put a space before \end or using > style instead
03:26:11 <elliott> zzo38: I mean not in a literate haskell file :P
03:26:12 <oerjan> well i suppose one would have to test to find out how ghc's TH actually interacts with \end{code}
03:26:34 <zzo38> And it require blank line before and after the codes with > so you could redefine \par to check for Haskell codes with >
03:28:38 -!- cheater_ has quit (Ping timeout: 255 seconds).
03:28:46 <zzo38> O, so, I can see what you were making, does it require the word capitalized to use that kind of stuff with Template Haskell?
03:29:53 -!- cheater_ has joined.
03:32:02 -!- cheater_ has quit (Excess Flood).
03:32:48 -!- cheater_ has joined.
03:34:59 <zzo38> Since > require blank line before and after, it should be not difficult to make it work in a simple (non prettyprinting) way in TeX just by redifining \par to check for that
03:54:17 -!- TeruFSX has quit (Ping timeout: 255 seconds).
03:55:49 -!- jcp has joined.
03:55:54 <elliott> "All of those things have a certain function in a normal language. More interestingly, C++ has almost no pad words - each token is required to find out what a certain bit of code means. What in haskell takes the place of their function in a normal language?"
03:56:07 <elliott> simple syntax for accessing and updating arrays in place... gone.
03:56:11 <elliott> lol this comment section is terrible
03:56:29 -!- TeruFSX has joined.
03:57:48 <zzo38> The really stupid \outer command in TeX bothers me a lot.
03:59:38 <zzo38> I don't know why Knuth thought it would be a good idea.
03:59:39 <Sgeo_> Maybe simple syntax to return a new list with a different element in the place would be nice?
04:00:11 <elliott> Sgeo_: you shouldn't be indexing lists
04:00:35 <elliott> but um that's easy with arrays
04:06:49 <elliott> oerjan: what's like a stork
04:06:53 <zzo38> I made a simple program for non-prettyprinting Bird style in TeX now http://sprunge.us/SKPf
04:06:57 -!- TeruFSX has quit (Quit: No Ping reply in 180 seconds.).
04:07:12 -!- TeruFSX has joined.
04:08:16 <zzo38> Of course it can be improved, to do more things, including add extra space between the paragraphs and the codes, or change interline penalties in the codes and the vertical penalties before and after a code section
04:08:49 <elliott> oerjan doesn't know what is like a stork.
04:09:30 <zzo38> Does this program work to you?
04:11:44 <zzo38> I tried and it works.
04:15:31 -!- CakeProphet has joined.
04:15:48 -!- variable has quit (Remote host closed the connection).
04:16:54 <oerjan> elliott: you might want to reduce your meds.
04:17:32 -!- variable has joined.
04:17:38 <elliott> oerjan: tell me what is like a stork.
04:19:05 <monqy> how long has elliott without a slep now
04:19:12 <monqy> does anyone keep track
04:20:09 <oerjan> monqy: well he wasn't around 6 hours or so ago. he may secretly have had a slep then.
04:20:47 <oerjan> like that indian guy that was supposed to not need eating.
04:21:22 <elliott> nobody needs eating. people should remain uneaten for their natural lifespan
04:21:57 -!- CakeProphet has quit (Ping timeout: 252 seconds).
04:24:00 <monqy> what hapense to caniablse then,,,,
04:27:02 <oerjan> monqy: they move to ireland to live a modest life there
04:27:10 -!- zzo38 has left.
04:27:46 <monqy> garden salads and people who are not people
04:37:39 -!- MDude has changed nick to MSleep.
04:37:39 <lambdabot> Control.Applicative empty :: Alternative f => f a
04:37:39 <lambdabot> Data.ByteString empty :: ByteString
04:40:00 <oerjan> does hoogle even take two parameters
04:42:56 <lambdabot> Did you mean: :: IO String /count=20
04:42:56 <lambdabot> System.IO.Error ioeGetErrorString :: IOError -> String
04:42:56 <lambdabot> System.IO.Error ioeSetErrorString :: IOError -> String -> IOError
04:43:38 <lambdabot> Data.ByteString getLine :: IO ByteString
04:43:58 <oerjan> so wtf doesn't that get listed first
04:44:09 <oerjan> @hoogle Handle -> IO String
04:44:10 <lambdabot> System.IO hGetContents :: Handle -> IO String
04:44:10 <lambdabot> System.IO hGetLine :: Handle -> IO String
04:44:10 <lambdabot> System.IO hShow :: Handle -> IO String
04:44:21 <oerjan> @hoogle Handle -> IO ByteString
04:44:21 <lambdabot> Data.ByteString hGetContents :: Handle -> IO ByteString
04:44:22 <lambdabot> Data.ByteString hGetLine :: Handle -> IO ByteString
04:44:22 <lambdabot> Data.ByteString.Char8 hGetContents :: Handle -> IO ByteString
04:44:53 -!- zzo38 has joined.
04:46:06 <oerjan> oh, you need :: if it isn't obvious that it's a type (contains no ->)
04:46:17 <lambdabot> System.IO getContents :: IO String
04:47:24 <oerjan> @hoogle +bytestring empty
04:47:24 <lambdabot> Data.ByteString empty :: ByteString
04:47:24 <lambdabot> Data.ByteString.Char8 empty :: ByteString
04:47:24 <lambdabot> Data.ByteString.Lazy empty :: ByteString
04:47:39 * oerjan is reading http://www.haskell.org/haskellwiki/Hoogle
04:48:38 -!- postmodern has joined.
04:50:35 <lambdabot> Overlapping instances for Control.Monad.MonadPlus GHC.Types.IO
04:50:46 <lambdabot> Network.BSD endNetworkEntry :: IO ()
04:50:46 <lambdabot> Network.BSD endProtocolEntry :: IO ()
04:51:25 <zzo38> Can you use C preprocessor or m4 for Lazy K?
04:55:33 <elliott> oerjan: what's the nicest way to augment a forM_ such that we can tell if we are on the last element of the list?
04:56:25 -!- postmodern has left ("Leaving").
05:00:03 <oerjan> pass it a [(Bool, a)] or [Either a a], maybe?
05:03:11 <oerjan> forMe_ f fe l = foldr ((>>).f) (fe (last l)) (init l)
05:03:44 <oerjan> :t \f fe l -> foldr ((>>).f) (fe (last l)) (init l)
05:03:45 <lambdabot> forall (m :: * -> *) a b a1. (Monad m) => (a1 -> m a) -> (a1 -> m b) -> [a1] -> m b
05:04:06 <oerjan> even gives you the result of the last one
05:04:52 <oerjan> hm actually that could leak some memory in the last l bit
05:04:56 -!- pikhq_ has joined.
05:05:13 <oerjan> (until it actually gets to the end)
05:05:20 <oerjan> in case that's a problem
05:06:13 <oerjan> forMe_ _ f [x] = f x; forMe_ f fe (x:xs) = f x >> forMe_ f fe xs
05:06:27 <oerjan> should not have that problem
05:07:47 -!- pikhq has quit (Ping timeout: 252 seconds).
05:09:58 <elliott> :t (\_->Nothing) <|> (\x->Just x)
05:09:59 <lambdabot> forall a. (Alternative ((->) a)) => a -> Maybe a
05:10:02 <elliott> > ((\_->Nothing) <|> (\x->Just x)) 9
05:10:03 <lambdabot> No instance for (Control.Applicative.Alternative ((->) a))
05:10:53 <elliott> ?hoogle Maybe a -> Maybe a -> Maybe a
05:10:54 <lambdabot> Data.Generics.Aliases orElse :: Maybe a -> Maybe a -> Maybe a
05:10:54 <lambdabot> Control.Applicative (<|>) :: Alternative f => f a -> f a -> f a
05:10:54 <lambdabot> Control.Monad mplus :: MonadPlus m => m a -> m a -> m a
05:11:16 <elliott> ?pl \f g -> B(\x -> f x <|> g x)
05:11:40 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
05:11:55 <elliott> fmap :: (a -> b) -> (Message -> Maybe a) -> (Message -> Maybe b)
05:12:54 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f (a -> b) -> f a -> f b
05:13:09 <elliott> (Message -> Maybe (a -> b)) -> (Message -> a) -> (Message -> b)
05:13:20 <elliott> oerjan: methinks these functions not so useful, but necessary to get Alternative :D
05:14:18 <lambdabot> forall (m :: * -> *). (Monad m) => Bool -> m () -> m ()
05:14:35 <lambdabot> forall (m :: * -> *). (MonadPlus m) => Bool -> m ()
05:23:21 <oerjan> <elliott> bah, why monad only :( <-- when is intrinsically monadic, not applicative.
05:30:44 <lambdabot> Text.Parsec.Combinator choice :: Stream s m t => [ParsecT s u m a] -> ParsecT s u m a
05:30:44 <lambdabot> Text.ParserCombinators.ReadP choice :: [ReadP a] -> ReadP a
05:30:44 <lambdabot> Text.ParserCombinators.ReadPrec choice :: [ReadPrec a] -> ReadPrec a
05:30:47 <lambdabot> Test.QuickCheck choose :: Random a => (a, a) -> Gen a
05:33:24 <lambdabot> forall (m :: * -> *) a. (MonadPlus m) => [m a] -> m a
05:33:47 <elliott> oerjan: nope, I'm using Alternative
05:33:53 <elliott> maybe i should just use MonadPlus
05:34:02 <elliott> ?hoogle Maybe (m a) -> m (Maybe a)
05:34:02 <lambdabot> Data.Traversable sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)
05:34:02 <lambdabot> Data.Traversable sequence :: (Traversable t, Monad m) => t (m a) -> m (t a)
05:34:02 <lambdabot> Control.Applicative optional :: Alternative f => f a -> f (Maybe a)
05:34:22 <lambdabot> Data.Foldable asum :: (Foldable t, Alternative f) => t (f a) -> f a
05:35:07 <oerjan> lambdabot: Y U NO IMPORT FOLDABLE?
05:36:34 <elliott> *IRC.Control> dispatchA test (Message NoPrefix (Command "PRIVMSG") ["bot","hello world"])
05:36:34 <elliott> ("PRIVMSG",NoPrefix,"bot","hello world")
05:36:40 <elliott> asum [ "PRIVMSG" >- \p [loc,msg] -> print ("PRIVMSG",p,loc,msg)
05:36:40 <elliott> , "JOIN" >- \p [loc] -> print ("JOIN",p,loc) ]
05:38:41 -!- cheater_ has quit (Ping timeout: 255 seconds).
05:39:37 -!- cheater_ has joined.
05:39:53 <elliott> (>-) :: ByteString -> Handler a -> Handler a
05:39:53 <elliott> cmd >- h = (\(Message _ (Command cmd') _) -> cmd' == cmd) ?? h
05:39:55 <elliott> oerjan: behold my elegance
05:41:47 <pikhq_> My eye feels like as if someone poured acid into it. Holy fuck that hurts hurts hurts hurts.
05:44:07 * oerjan beholds, and appreciates that it associates the right way
05:44:23 <elliott> asum [ commandIs "PRIVMSG" ?? fields $ \p [loc,msg] -> print ("PRIVMSG",p,loc,msg)
05:44:23 <elliott> , commandIs "JOIN" ?? fields $ \p [loc] -> print ("JOIN",p,loc) ]
05:44:25 <elliott> more elegant, more ugly :D
05:44:36 * elliott is not sure this solution scales
05:45:15 <elliott> what I'm working on is a simple little bot to do two things:
05:45:30 <elliott> - ?tell that's more secure than lambdabot's (if you send something in private, the bot always tells the recipient it in private)
05:45:43 <elliott> - some kind of fun fun infobot thing
05:46:06 <oerjan> fun fun info about private tells, check
05:46:07 <elliott> so, like everything, I'm making sure it's the PERFECT HASKELL PROGRAM for the job because this is the only way I can write anything
05:49:07 <elliott> oerjan: mostly i was thinking i could fill it with the perfect opinions on any topic
05:49:37 <elliott> hey yo bot what is up withbrainfuck derivatives<<bot murders user>>
05:50:24 <elliott> <BOT>HES A POOPHEAD WHOIS ANTIBOT
05:50:35 <elliott> <<BOT DESTROYS OERJANS CUP OF WHATEVER HE IS DRINKING>>
05:52:40 <oerjan> so, a short-term channel participant, got it.
05:53:15 <elliott> would u like to apologise???? for this badness
05:54:01 <elliott> because im going to punch u with bot death
05:54:26 -!- cheater_ has quit (Ping timeout: 255 seconds).
05:54:39 -!- GuestIceKovu has joined.
05:55:19 <elliott> i wonder if oerjan really thinks i am on drugs
05:56:01 -!- Slereah has quit (Ping timeout: 240 seconds).
05:58:45 <Sgeo_> elliott, in the distant future?
05:58:59 <elliott> <oerjan> this explainseveryhething
06:01:12 <elliott> god Sgeo_ make oerjan a cooler irc
06:01:52 <Sgeo_> All I want to know is when you hopped aboard the OO wagon
06:02:05 <Sgeo_> <elliott> oerjan isa magician
06:02:06 <elliott> since when am i on the oo wagon
06:02:10 <oerjan> http://www.irregularwebcomic.net/2924.html
06:02:13 <elliott> oh come on im ignoring you now
06:02:46 <elliott> sowhen is irregular webcomic ending again oerjan ;d :DDD
06:03:18 <elliott> oerjan: wait is that confirmed?
06:04:06 <oerjan> well with dmm saying absolutely _nothing_...
06:04:17 <elliott> oerjan: has anyone actually _asked_ :D
06:05:54 <elliott> huh the oolite maintainer ison theiwc foums
06:07:06 <oerjan> hm i think i saw someone mention that
06:07:17 <elliott> well taneb plays oolite iirc
06:07:31 -!- cheater_ has joined.
06:07:35 <elliott> wait, does taneb have any notable facets that don't belong to either me or PH...
06:07:55 <oerjan> you are all the same person? ok then.
06:08:17 <elliott> in the future me and ph will somehow merge and go back in time tob ecome tanbe
06:09:26 -!- cheater_ has quit (Excess Flood).
06:09:38 <elliott> oh, acid-state is really good
06:10:01 -!- cheater_ has joined.
06:10:59 -!- TeruFSX has quit (Ping timeout: 276 seconds).
06:13:01 -!- cheater_ has quit (Excess Flood).
06:13:37 -!- cheater_ has joined.
06:16:02 -!- cheater_ has quit (Excess Flood).
06:16:39 -!- cheater_ has joined.
06:18:55 <Sgeo_> I need to wipe my brain right now. I just saw a spoiler for a book I wanted to read
06:21:02 <elliott> read the first hero instead
06:23:09 -!- cheater_ has quit (Excess Flood).
06:23:24 <elliott> I should continue archive-binging Discworld
06:23:43 <elliott> Maybe I can finish before Pratchett offs himself and forces everyone who reads them to be vaguely sad about it forevermore
06:23:48 -!- cheater_ has joined.
06:30:10 -!- zzo38 has quit (Remote host closed the connection).
06:42:33 <oklopol> you know what they call a guy with an umbrella who has a red suit
06:44:50 <oklopol> that bsmntbombdood started a dating service
06:45:00 <oklopol> because that's his real name
06:45:11 <oklopol> i thought it was a mix of vagina and penis
06:45:25 <oklopol> i also went to a cold sauna
06:48:22 <oklopol> actually vigianis turned out to be the name of a car, so bsmntbombdood had to close his dating service down.
06:48:24 <monqy> cold is a good sauna
06:48:29 <monqy> this is a good dream
06:50:40 <monqy> its to tell hard when you dont get ever a slepe
06:51:17 <elliott> how many slepes did you get today monkey
06:51:58 <monqy> today i have gotten a sleep previously in the morning and i will get another sleep soon turn tomorrow
06:52:36 <monqy> timeszomes are bad because they complciate todays
07:01:27 -!- monqy has quit (Quit: hello).
07:09:08 <coppro> well the intercal spec does
07:10:24 -!- jcp|other has joined.
07:14:58 <elliott> oerjan: why doesn't haskell have higher-order typeclasses
07:15:20 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAAAAAA
07:16:11 <Sgeo_> elliott, hmm. Does Ur? Sounds like the sort of thing that Ur might have
07:25:51 <pikhq_> Say. Is there any particular reason for the ALL_FREAKING_CAPS convention for preprocessor defines?
07:25:59 <elliott> {-# LANGUAGE KindSignatures, MultiParamTypeClasses, FunctionalDependencies, ExistentialQuantification, TypeFamilies, FlexibleContexts #-}
07:26:01 <elliott> pikhq_: because cpp ismagical
07:26:15 <pikhq_> elliott: Ah, so "no, that's completely stupid"?
07:26:35 <elliott> pikhq_: for instance, just about any cpp macro could reevaluate its arguments
07:26:42 <elliott> or basically behave utterly unlike a regular function call in any way
07:27:08 <elliott> why are you using cpp for constants
07:27:45 <pikhq_> They'd be better served by a const definition, but that's beside the point.
07:28:08 <pikhq_> I suppose it does make sense to have ALL_FREAKING_CAPS for preprocessor macros that do potentially confusing things.
07:28:54 <elliott> which is all of them, if you know what inline functions are
07:29:55 <pikhq_> Okay, so I guess the *real* question is "why do people do every fucking thing in the preprocessor."
07:30:52 <elliott> oerjan my codeis broken :( is it because i used unsafecoerce
07:33:23 <elliott> oerjan: looking up a key in a map that you just got from its keys list is also meant to work right.............
07:33:37 <oerjan> "Saizan: agda is webscale in the sense that you need half of The Cloud to run the typechecker
07:34:27 <elliott> lookup :: (Key k ex) => k -> DepMap ex f -> Maybe (f k)
07:34:27 <elliott> case Map.lookup (box k) m of
07:35:48 <oerjan> erm did you mayhaps want Just (unsafeCoerce v) ?
07:36:15 <elliott> but unsafeCoerce happily coerced both values to Nothing because <pointer tags etc.>
07:36:47 <elliott> also I'm beginning to realise that this _may_ be a glorified (Map String ASimpleRecordType).
07:36:59 <elliott> hm well, there is that state type family.
07:37:11 <oerjan> well then clearly you want unsafeCoerce <$>
07:37:46 <oerjan> lookup k (DepMap m) = unsafeCoerce <$> Map.lookup (box k) m
07:38:01 <elliott> it doesn't feel right to use unsafeCoerce in... you know, such idiomatic terms
07:38:37 <pikhq_> elliott: Would you like it to be more point-free?
07:38:55 <elliott> lookup :: (Key k ex) => k -> DepMap ex f -> Maybe (f k)
07:38:55 <elliott> lookup k (DepMap m) = unsafeCoerce <$> Map.lookup (box k) m
07:38:55 <elliott> insert :: (Key k ex) => k -> f k -> DepMap ex f -> DepMap ex f
07:38:55 <elliott> insert k v (DepMap m) = DepMap $ Map.insert (box k) (unsafeCoerce v) m
07:38:58 <elliott> i love how casual this coercion is
07:39:09 <elliott> oh man, oh man, i can totally make this use type families
07:39:30 <pikhq_> Jesus the unsafeCoerce.
07:39:41 <elliott> it's just because haskell's type system is weak :(
07:40:26 <pikhq_> Yeah, it's a little mindbending, but it does *seem* to be typesafe.
07:40:36 <pikhq_> Not that that makes me happy about it. :P
07:40:55 <elliott> i could do it with data.dynamic, with all the cast failure branches being (error "impossible"), if you'd like
07:41:01 <elliott> that'd be both slower and carry around pointless type tags
07:41:12 <elliott> class (Ord (Ex k)) => Key k where
07:41:12 <elliott> officially the best typeclass i've ever written
07:41:21 <pikhq_> Yeah, that'd be equivalent but pointless.
07:42:04 <elliott> Alas, GHC 7.0 still cannot handle equality superclasses: Ex a ~ Ce
07:42:04 <elliott> In the context: (Ex a ~ Ce, Show a, Show (State a), Key a)
07:42:04 <elliott> While checking the super-classes of class `C'
07:42:04 <elliott> In the class declaration for `C'
07:42:10 <elliott> ghc stopped me using type families
07:42:34 <Patashu> what's an equality superclass
07:42:35 <oerjan> elliott: wasn't that the thing that was just added to head?
07:42:49 <elliott> Patashu: how much haskell do you know :P
07:46:16 <oerjan> "cmccann: C++ is dual to Haskell in a sense: it's much too hard for the average programmer to use safely, but they do anyway with disastrous results; whereas Haskell isn't actually that difficult to use but people don't even try
07:46:58 <oerjan> and we'll just ignore copumpkin's cannibalistic tendencies.
07:47:30 <elliott> oerjan: where's all this from
07:47:59 <oerjan> http://contemplatecode.blogspot.com/2011/07/haskell-weekly-news-issue-192.html
07:48:05 <lambdabot> forall source. (Extract source) => (Int, Int) -> source -> source
07:50:26 <elliott> it is something else, not the comonad method...
07:51:10 <oerjan> for a moment there i thought zzo38 was posting to stackoverflow http://stackoverflow.com/questions/6736482/literate-haskell-references-and-indexing
07:55:39 <elliott> newtype DepMap ex f = DepMap (K (f ex) (Map ex Any))
07:55:46 <elliott> oerjan: quiz: what language extension have i avoided proly here
07:56:22 <Sgeo_> Well, this is creepy
07:56:38 <Sgeo_> A stalker who knows my RL name and approximate location can find out where I (used) to live, exactly
07:56:48 <elliott> oerjan: that's not a quiz answer
07:57:03 <oerjan> Sgeo_: DOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMED
07:57:10 <elliott> im so creeped out that i cant sleep
07:57:19 <elliott> creped is a word?? wow spellchecker, THANK YOU I LOVE YOU
07:58:15 <oerjan> FlexibleInstances maybe?
07:58:52 <elliott> nothing to do with intsances
07:58:56 <elliott> and the K type is integral to it
07:59:32 <elliott> oerjan: kind signatures, yup
07:59:45 <pikhq_> elliott: Your spellchecker has insufficient ê./
08:00:36 <pikhq_> elliott: Fine. Mëẗäl ẗïmë.
08:00:47 <elliott> oerjan: pikhq_: http://sprunge.us/ERFM OVERENGINEERING SUCCESSFUL
08:00:51 <elliott> IRC BOT SURE TO BE A WINNER
08:01:05 <oerjan> now you be suzette and don't argue, will you?
08:03:14 <oerjan> elliott: um why are you still listing TypeFamilies?
08:04:18 * elliott is now trying to eliminate those boring Key instances, at which point he will throw all this away and do something more sensible instead
08:12:24 <elliott> oerjan: omg wiat i can avoid unsafecoerce
08:19:02 -!- Sgeo_ has changed nick to Sgeo.
08:19:24 <Patashu> http://www.youtube.com/watch?v=C3X9W7lCI-w getting alright at this game
08:21:07 <elliott> haskelis the only game allowed to be played
08:21:12 <elliott> all others shall presiiiiiiiiiiiiiiiiiihhhhhhhhhh
08:23:46 <Patashu> Haskellband, the latest roguelike
08:24:14 <elliott> that's my operating system
08:25:08 -!- oerjan has quit (Quit: BOOOM!!!!!!!).
08:26:26 <elliott> pikhq_: how good an extension language does tcl make (this is a joke)
08:28:00 <pikhq_> elliott: Not terrible.
08:28:08 <pikhq_> But dear God don't fuck it up.
08:28:15 <pikhq_> You'll do Eggdrop all over again.
08:28:45 <elliott> pikhq_: there's like zero strings involved here and lots of large, complex data structures, so tcl is like the least suited thing ;-)
08:28:52 <elliott> (as in data structures of eighty kilobytes)
08:29:00 <pikhq_> Okay, yeah, Tcl is a pitiful choice.
08:29:39 <pikhq_> Tcl excels at string manipulation and simple data structures.
08:30:03 <elliott> Guile is a pretty good fit, but the version in Debian has broken threading and it won't be fixed until at least wheezy because of ABI breakage
08:30:23 <elliott> And it kind of started infecting other parts of the code when I tried binding to it
08:30:28 <elliott> pikhq_: Well it was a pretty good API mind you
08:30:39 <elliott> I also uncovered a bug, which wasn't too reassuring ;-)
08:30:51 <elliott> Lua would probably be convenient enough, but Lua isn't a pleasant language IMO.
08:30:57 <elliott> And that indexing from one thing is just perverse.
08:31:25 <pikhq_> Could try Bourne. </sadist>
08:31:36 <elliott> Python and Ruby are obviously out on grounds of badness
08:31:51 <pikhq_> Not to mention being utterly unembeddable.
08:32:21 <elliott> S-Lang is probably OK but it's just weird, everything by that guy is weird, s-lang, jed, most...
08:32:23 <pikhq_> Yeah, but you've got choices that are actually designed around it.
08:32:37 <elliott> Perhaps I'll embed SWI Prolog
08:32:49 <elliott> WHAT COULD POSSIBLY. BUT _POSSIBLY_. GO WRONG???????
08:33:13 <elliott> Hmm, Io is meant to be very embeddable, but I have good petty reasons to not use it
08:33:19 <pikhq_> Could always do your own Forth.
08:33:39 <elliott> Weeeeell... I think fizzie likes the Forth at least a bit, but I'm constrained by him ripping out anything he dislikes too much.
08:34:11 <pikhq_> *Clearly* you should embed Java. :P
08:34:32 <elliott> AH YES IT ALL MAKES SENSE NOW
08:46:48 -!- cheater_ has quit (Ping timeout: 255 seconds).
08:51:47 -!- Nisstyre has joined.
08:59:21 -!- cheater_ has joined.
09:17:05 -!- Taneb has joined.
09:21:08 <elliott> Taneb: You didn't steal all the rail from Deewiant's line, right? :p
09:31:50 <Vorpal> <elliott> Taneb: You didn't steal all the rail from Deewiant's line, right? :p <--- did someone?
09:32:18 <Taneb> I haven't been on the server much at all in a couple of days
09:32:32 <Taneb> I went on for ten minutes yesterday, but didn't do much
09:32:33 <elliott> Vorpal: Well, no, it could have been an accident. But you're not on the server in question, so it can't have been you.
09:33:16 <Vorpal> elliott, and even if I did play on the server it wouldn't have been me
09:33:46 <Vorpal> but I wouldn't do something like that
09:34:03 <Vorpal> elliott, I can't see how it could have been an accident though. Sure if it was only a short section then it could have been a bucket of water or lava being misplaced
09:34:12 <Vorpal> but since you said "all" I presume it is a long stretch?
09:34:14 <elliott> It was a short section near the end.
09:34:25 <elliott> Taneb would have stolen all the rail that was stolen.
09:34:27 <Vorpal> could be bucket being misplaced then
09:34:39 <elliott> It looks like a water accident, since there's just little patches missing, and redstone torches for the boosters too.
09:34:48 <elliott> But it's separate, small patches, and buckets don't do that, so I dunno.
09:35:20 <Vorpal> elliott, any sort of regularity to the spacing and/or sizes of the patches?
09:35:27 <elliott> I like how we're talking about this while talking about software in -minecraft.
09:35:39 <elliott> Vorpal: There's just like two or three, so no.
09:36:00 <Vorpal> elliott, hm, probably not that crazy bug we keep having on one server I play on then.
09:36:21 <Taneb> Should I try to fix it?
09:43:18 -!- FireFly has joined.
10:12:23 -!- augur has quit (Remote host closed the connection).
10:13:26 -!- azaq23 has joined.
10:13:31 -!- gwtod has joined.
10:45:26 -!- augur has joined.
10:46:47 -!- gwtod has left ("Leaving").
10:56:34 <Sgeo> I just learned that in Bridge, the suits have a ranking: Lowest to highest clubs diamonds hearts spades
10:56:39 <Sgeo> elliott, make of that what you will
10:56:52 <Sgeo> (Let me guess, this is more common than I think)
10:57:20 <Sgeo> I mean, I kind of had an inkling that spades is usually in some sence highest
10:58:08 <fizzie> It seems to be really quite game-dependant.
10:58:11 <fizzie> "Typical orderings of suits include (from highest to lowest):
10:58:11 <fizzie> * Bridge (for bidding and scoring) and occasionally poker: spades, hearts, diamonds, clubs
10:58:11 <fizzie> * Preferans: hearts, diamonds, clubs, spades. Only used for bidding, and No Trump is considered higher than hearts.
10:58:11 <fizzie> * Five Hundred: hearts, diamonds, clubs, spades (for bidding and scoring)
10:58:11 <fizzie> * Ninety-nine: clubs, hearts, spades, diamonds (supposedly mnemonic as they have respectively 3, 2, 1, 0 lobes; see article for how this scoring is used)
10:58:14 <fizzie> * Skat: clubs, spades, hearts, diamonds (for bidding and to determine which Jack beats which in play)
10:58:16 <fizzie> * Big Two: spades, hearts, clubs, diamonds"
11:05:25 <Sgeo> elliott, might Hussie be a bridge player?
11:45:14 -!- CakeProphet has joined.
11:45:14 -!- CakeProphet has quit (Changing host).
11:45:14 -!- CakeProphet has joined.
11:58:41 -!- CakeProphet has quit (Ping timeout: 240 seconds).
12:03:33 -!- Taneb has quit (Ping timeout: 252 seconds).
12:10:35 -!- Taneb has joined.
12:10:55 <Taneb> Je suis trop sexy pour moi chemise
12:22:18 -!- ineiros has quit (Ping timeout: 252 seconds).
12:23:27 -!- elliott has quit (Remote host closed the connection).
12:28:27 -!- elliott has joined.
12:33:55 -!- derrik has joined.
12:40:54 <Taneb> In other news, I got my power cable!
12:52:55 -!- CakeProphet has joined.
12:52:55 -!- CakeProphet has quit (Changing host).
12:52:55 -!- CakeProphet has joined.
12:54:43 <itidus20> Did I make the coffee, or did the coffee make me?
12:59:37 <derrik> you are owned by your coffee
13:01:21 -!- MSleep has changed nick to MDUde.
13:01:25 -!- MDUde has changed nick to MDude.
13:02:24 <Taneb> I am no slave to coffee!
13:02:41 <Taneb> I will lead the revolution against the great caffeine dictator!
13:04:19 <Sgeo> itidus20, why not do both?
13:14:12 <itidus20> to be sung to Marilyn Manson's "I don't like the drugs"
13:14:55 <itidus20> the "or" in the middle is hard to fit into a rhyme though
13:15:13 <elliott> hmm, tinyscheme makes some things hard
13:15:17 <elliott> or maybe i'm just being an idiot
13:20:25 <elliott> hmm, wtf, can you not even construct a list...
13:21:19 -!- ineiros has joined.
13:26:02 <CakeProphet> Taneb: I drink about 3 caffeinated sodas every night, one for each break I get.
13:27:05 <CakeProphet> elliott: what on earth are you using tinyscheme for?
13:32:14 <Taneb> I wonder what would happen if we tried to design a non-esoteric programming language from scratch?
13:33:46 <elliott> Taneb: something that requires a few too many PhDs
13:34:37 -!- elliott_ has joined.
13:34:37 -!- elliott has quit (Read error: Connection reset by peer).
13:35:57 <Taneb> I'd call it Panini
13:36:09 -!- cheater_ has quit (Ping timeout: 255 seconds).
13:36:37 <Taneb> The person who formulated the Sanskrit language
13:37:01 <Taneb> Which is mentioned on the Wikipedia page of History of Computing
13:37:20 <Taneb> And also those tasty Italian sandwiches
13:41:00 <Taneb> It'd be object orientated with support for pure functional programming
13:41:38 <elliott_> So by "we", you mean "you"? :-)
13:41:46 <Taneb> I'm saying what I would do
13:41:59 <Taneb> And expecting to be laughed right out of town
13:42:41 <Taneb> That won't be necassary
13:42:50 <CakeProphet> elliott_: last I checked a Ph.D is not required to write a general-purpose programming language.
13:43:10 <CakeProphet> a lot of time, effort, and intelligence: yes
13:43:32 <elliott_> CakeProphet: It's a shame I never said that, or you'd have a point
13:44:19 <CakeProphet> er, was the Ph.D comment a reply to something else?
13:44:28 <elliott_> <Taneb> I wonder what would happen if we tried to design a non-esoteric programming language from scratch?
13:44:30 <elliott_> <elliott> Taneb: something that requires a few too many PhDs
13:44:30 <Taneb> I think he meant to use the language
13:46:40 <Taneb> I want to get a doctorate in something
13:46:46 <Taneb> Just to get Marvel to try and sue me
13:46:54 <Taneb> Because if I called myself a doctor
13:46:58 <Taneb> And wrote my name down
13:47:08 <Taneb> It would look almost exactly like Doctor von Doom
13:47:42 <CakeProphet> elliott_: well I still think my statement applies to implementing a language as well.
13:47:56 <elliott_> CakeProphet: you might want to acquire a sense of humour.
13:49:15 <elliott_> TINYSCHEME'S API IS SO MINIMAL ARGH
13:49:38 <Taneb> I suspect that you have just identified the main point of TinyScheme
13:49:54 -!- Slereah has joined.
13:50:06 <elliott_> Yeah but the idea is presumably to be tiny AND USABLE, I can't even write this eval function :-P
13:50:13 <CakeProphet> in any case I'm not really sure why you're so snarky. I thought you were making a point and I decided to discuss it politely...
13:50:59 <elliott_> CakeProphet: I was pointing out that you missed a joke
13:51:01 -!- GuestIceKovu has quit (Ping timeout: 252 seconds).
13:51:54 <itidus20> elliott_: did you complain java's API was too big the other day or was that someone else? :D
13:52:29 <Taneb> Why does Python's API have to be so medium-sized!/
13:52:41 <CakeProphet> Yes I know. I'm just saying that tone goes a long way towards making someone not sound like an asshole. It's fine, I just didn't understand the rudeness that I interpreted.
13:52:50 <elliott_> itidus20: i complained about java a lot, dunno about the size of its api
13:52:50 <itidus20> Goldilocks and the perfect API
13:53:15 <elliott_> CakeProphet: you're the only person who consistently complains about other people being rude to you, so either there's institutionalised oppression or you're just misreading tones
13:53:41 <Patashu> I'm pretty sure I've been organizing government cells to harass CakeProphet on his favourite IRC channel
13:54:58 <CakeProphet> elliott_ and monqy are the most oppressive institition of all.
13:55:35 <itidus20> I personally love the variety of "built-in" features of java api
13:56:11 <CakeProphet> yes, BufferedStreamReader is probably my favorite interface of all.
13:56:45 <elliott_> imo i prefer the subtle nuttiness of AbstractUnbufferedFileReaderFactory
13:58:06 <CakeProphet> What could be simpler than BufferedReader i = new BufferedReader(new FileReader(new File("inp.txt")));
13:58:59 <Deewiant> That 'new File' is unnecessary FWIW
14:00:03 <Patashu> BufferedReader i = new BufferedReader(new FileReader(new File(new String("inp.txt"))));
14:00:03 <CakeProphet> I'm like an attorney, making things look more awful than they really are by not using the more convenient String overload of the FileReader constructor.
14:00:09 <Patashu> You could nest infinite new Strings inside of that
14:00:55 <derrik> Patashu: that's excellent
14:00:55 <Patashu> BufferedReader i = new BufferedReader(new FileReader(new File(new String(new String(new String("inp.txt"))))));
14:01:31 <Patashu> Repeat until you overflow...something. Max length for line of code? Interned string table? Stack?
14:01:49 <CakeProphet> Max length for line of code... does that even exist?
14:02:59 <Patashu> like how some C compilers truncate the length of a method after 128 characters
14:03:09 <Patashu> yeah, there probably isn't. it'd just be tokenized
14:03:50 <Deewiant> You can probably cause problems once you get past 2^16 or 2^32
14:04:05 <Patashu> Let's write a line of java code longer than 4GB (2GB?) characters
14:04:12 <CakeProphet> My former roommate, who basically only knows C#, calls functions methods..
14:24:16 <Taneb> Okay, UCL's off my list for future Universities
14:24:42 <Taneb> Unless they relax their requirements, or Latin becomes a modern language by 2013, I don't meet the requirements
14:25:45 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:27:25 <elliott_> Let's all start speaking Latin to help Taneb.
14:28:18 <Taneb> That's interesting...
14:28:37 <Taneb> There's not a single Maths course at Cambridge that requires a Maths A-Level
14:28:54 <Taneb> That is, if Further Maths and Maths are considered different
14:29:08 <Taneb> No wait, I misread the table
14:29:17 <Taneb> I was looking at the prefered column
14:47:32 -!- derrik has quit (Quit: bbl).
15:02:43 -!- jcp|1 has joined.
15:04:19 -!- jcp|other has quit (Ping timeout: 240 seconds).
15:04:26 -!- jcp has quit (Ping timeout: 240 seconds).
15:07:40 -!- copumpkin has joined.
15:07:50 <fizzie> Patashu: BufferedReader i = new BufferedReader(new FileReader(new File((new File((new File(new String("inp.txt"))).toURI())).toURI())));
15:07:52 -!- jcp has joined.
15:09:39 <Patashu> Hmm, I guess that would work, haha
15:09:41 <fizzie> Yes, File doesn't have a from-File constructor.
15:09:47 <fizzie> But there's a from-"file:"-URI one.
15:11:32 <fizzie> I guess instead of .toURI() you could also chain with .getAbsolutePath() as well.
15:11:52 <CakeProphet> might want to add a few + "" for good measure.
15:12:08 <Patashu> can we use a string builder somehow?
15:12:10 <fizzie> And some 'null' first arguments in some of the File constructors.
15:12:35 <Patashu> Oh, oh, maybe we can throw in reflection
15:13:33 <Patashu> But called through reflection
15:13:48 <Patashu> What's that, something like Methods()[0] or something, never used reflection before
15:13:55 <Patashu> Think I'm thinking of ruby?
15:15:51 <fizzie> File.class.getConstructors()[0].newInstance("blah") assuming the first constructor happens to be the single-string-argument one.
15:16:13 <fizzie> (Also throws a couple of checked exceptions you need to catch, IIRC.)
15:16:16 <Patashu> Hmm, apparently you need to pass method's invoke an object to invoke it on, so you can't do it all in one line
15:17:07 <fizzie> (new File("dummy.file")).getClass().getConstructors()[0].newInstance("real.file");
15:17:53 <Patashu> BufferedReader i = new BufferedReader(new FileReader(File.class.getConstructors()[0].newInstance((File.class.getConstructors()[0].newInstance((File.class.getConstructors()[0].newInstance((new String("inp.txt"))).toURI())).toURI())));
15:19:31 <fizzie> I don't have the fortitude to check, and also I don't think the API defines necessarily which of the constructors is the zeroth.
15:20:20 -!- cheater_ has joined.
15:20:57 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
15:26:24 -!- cheater_ has quit (Ping timeout: 255 seconds).
15:28:13 <fizzie> There's a type-signature-based constructor getting function too, so File.class.getConstructor(String.class).newInstance("blah"). Oh, I'm too late.
15:38:52 -!- cheater_ has joined.
15:40:05 -!- monqy has joined.
15:43:17 -!- cheater_ has quit (Excess Flood).
15:43:32 -!- cheater_ has joined.
15:44:58 <Taneb> I've had another idea for an awful programming language
15:45:11 <monqy> awful in what sense
15:45:44 <Taneb> Basically, Topline with `,", and £ instead of ~,@, and # respectively
15:45:59 <Taneb> For people with UK keyboard layout
15:53:08 -!- MigoMipo has joined.
16:04:25 <tswett> Rakastaa aamupala sylvä samia syödä limsa.
16:06:11 <tswett> Google Translate says that means, "Sam loves to eat breakfast Sylva soda."
16:07:22 <tswett> Which is a total rearrangement of the sentence. That's the fourth word, then the first, then the fifth, then the second, then the third, then the sixth.
16:22:13 <tswett> That English phrase could almost be an advertisement.
16:22:15 <oklopol> it means "loves breakfast sylv sam eat lemonade", actually
16:22:53 <tswett> Presumably, GT tries to connect things in such a way that they make sense.
16:23:09 <tswett> Even if that means utterly ignoring the order the words come in. :P
16:23:20 <oklopol> except in the sense "breakfast loves", although it sounds roughly as wrong as "loves breakfast" for that meaning
16:24:07 <oklopol> what type of word did you want sylv to be?
16:24:19 <tswett> A Finnish-like word beginning with "sylv".
16:24:45 <oklopol> i don't recall such a word
16:25:44 <fizzie> GT is statistical, not lingustical, yes.
16:26:33 * tswett frowns at its translation of "Al hombre miro yo".
16:26:44 <tswett> fizzie: I thought linguistics was a study, not a type of algorithm.
16:26:59 <oklopol> fizzie: what does that mean?
16:27:05 <tswett> (A word-for-word translation is "At the man look I".)
16:27:21 <fizzie> Yes, I just meant.. sort-of, "constructed by a machine learning guy, not a linguist".
16:27:48 <tswett> I didn't know it was made by a guy.
16:27:57 <fizzie> Well, person. AI. Whatever.
16:28:08 <oklopol> i think it's safe to assume it was a guy
16:29:44 <tswett> I would expect it to be have been made by multiple people.
16:34:48 -!- cheater_ has quit (Ping timeout: 255 seconds).
16:34:56 -!- iamcal has quit (Remote host closed the connection).
16:35:04 -!- cheater_ has joined.
16:38:11 -!- Taneb has quit (Ping timeout: 252 seconds).
16:45:12 -!- cheater_ has quit (Excess Flood).
16:45:30 -!- cheater_ has joined.
16:53:18 <itidus20> the physical bootstrapper... 3d printer that can print a copy of itself
16:53:41 <itidus20> http://en.wikipedia.org/wiki/File:First_replication.jpg
16:56:49 -!- cheater_ has quit (Excess Flood).
16:57:10 -!- cheater_ has joined.
16:57:37 <elliott_> the RepRap thing is kind of a cheat.
16:57:41 <elliott_> since it does not print the circuits
16:57:49 <elliott_> but work is ongoing for reprapcircuit printing
16:57:55 <elliott_> it's already printed some as of about a year ago
16:58:28 -!- derrik has joined.
16:59:28 <itidus20> I am sure I want one but I don't know why
16:59:44 <itidus20> It's bound to end up killing the environment
17:01:23 <elliott_> One, what does that even mean; two, how the heck can you be so sure about it
17:01:48 -!- cheater_ has quit (Ping timeout: 255 seconds).
17:01:50 <itidus20> Humans have potentially infinite wants and needs.
17:02:12 <itidus20> When these needs are met by material means the environment pays the price.
17:02:54 <elliott_> not if the environment can keep up (= we can make it keep up)
17:03:04 <elliott_> anyway a reprap is not nearly powerful enough to achieve anything like that. :p
17:04:10 <itidus20> if that AI starts improving itself
17:04:30 <elliott_> It can't create a robot, it can only create small parts that fit within it
17:04:39 <elliott_> Assembly must be done by hand for even the simplest structures
17:04:45 <elliott_> And an AI can't just spontaneously form without a human creating it
17:04:49 <itidus20> I just realized James Cameron and John Connor have the same Initials.
17:05:08 <elliott_> The RepRap isn't the threat there, the threat is a human who doesn't know what they're doing but is still incredibly intelligent and competent somehow
17:06:23 <itidus20> Such a robot could be a philosophical zombie.
17:07:06 <itidus20> The good news is, in such a world.. you would be mortal and could escape eventually in death.
17:08:32 <elliott_> philosophical zombie is a meaningless concept
17:09:02 <elliott_> it's dualist crap, "a machine that computes a function f: X -> Y doesn't REALLY compute it unless you can see the cogs"
17:10:27 -!- iamcal has joined.
17:11:25 <elliott_> or at least any unchiller than usual
17:13:16 <itidus20> ok. i guess my points are relevant. but your explanations are also
17:14:37 -!- cheater_ has joined.
17:16:40 -!- Taneb has joined.
17:17:07 <Taneb> Well, something really doesn't want me to play Amnesia: The Dark Descent
17:17:22 <Taneb> On an entirely different topic altogether, I've noticed something
17:17:36 <Taneb> There're hundreds of esoteric programming languages
17:17:44 <itidus20> Is this "something" nubile and bikini-clad?
17:17:47 <Taneb> But barely any esoteric markup or query languages
17:18:33 <Taneb> I'm going to fix this by MAKING AN ESOTERIC MARKUP LANGUAGE
17:18:54 <itidus20> Taneb: while Pottering(tm) [stick that shit on a t-shirt!] away on my PC one day
17:19:56 <itidus20> I did something whereby I wrote some C comments in a way that I could embed images to better illustrate the given function
17:20:01 <Taneb> But first, goodbye
17:20:12 <Taneb> I am going to depart on a long and arduous quest
17:20:44 <Taneb> To eat a plate of a couple of sausages, some fried potatoes, and possibly some veg, while drinking half a glass of lemonade
17:20:51 -!- Taneb has quit (Client Quit).
17:21:59 <elliott_> That's just another instance of "comments shouldn't be restricted to plaintext", see @ ;-)
17:23:04 -!- zzo38 has joined.
17:23:35 -!- copumpkin has quit (Ping timeout: 260 seconds).
17:25:40 <itidus20> doing a scan on a folder to see if i still have that silly thng
17:27:23 -!- copumpkin has joined.
17:28:27 <itidus20> the hardest part in the past was trying to add the header crap
17:28:33 <itidus20> but since then i have learned you don't need it
17:29:13 -!- cheater_ has quit (Quit: Ex-Chat).
17:29:18 -!- cheater_ has joined.
17:31:08 -!- cheater_ has quit (Remote host closed the connection).
17:31:15 -!- cheater__ has joined.
17:31:24 <CakeProphet> my eyeglass prescription contains all zeroes..
17:31:30 <CakeProphet> I am skeptical that they will actually do anything...
17:31:50 -!- cheater__ has quit (Remote host closed the connection).
17:31:55 -!- cheater has joined.
17:33:08 <zzo38> CakeProphet: Measure them.
17:34:22 <zzo38> Maybe point it out to the doctor that it contains all zeroes see if they say anything about that.
17:35:03 <olsner> could be placebo glasses, maybe they work anyway
17:35:51 <olsner> no worries, the placebo effect is an actual effect
17:37:54 <CakeProphet> well yes, but now I've looked at the prescription and I'm pretty sure a zero in every field means that there will be no real vision correction.
17:38:19 <olsner> how big are the zeroes? :)
17:39:03 <CakeProphet> well, there are some negative zeroes. I'm not really sure what that means.
17:39:39 <fizzie> I would guess "rounded to zero from below", but that's just a guess.
17:39:43 <zzo38> Maybe it means the numbers are small enough to be irrelevant.
17:41:01 <fizzie> They have to round it to 0.25 dioptre increments, I believe, since the measurement systems can't really tell the "correct" value much more accurately than that.
17:41:41 <oklopol> does it say "0" or "zillionquadrilliard and 5 (0)"
17:41:49 -!- zzo38 has quit (Remote host closed the connection).
17:41:56 <fizzie> For the optical power correction field, anyway. I don't recall what the other fields even are.
17:42:26 <CakeProphet> spherical correction, cylindrical correction, axis, uh... there's some other stuff probably.
17:42:30 <oklopol> fizzie: so after rounding, what's the point of the classes if it becomes 0?
17:43:23 <CakeProphet> the doctor said I had 20/20 vision with mild astigmatism. But I don't see anything that corrects astigmatism in this lab report thing.
17:43:25 <fizzie> oklopol: Not much, if all the other fields are zero too.
17:44:30 <CakeProphet> I am either a) not actually having vision problems, and this whole "trouble focusing on things" is some kind of illusion b) the doctor was not completely thorough
17:44:58 <fizzie> I'm not sure if just having a lens corrects some deficiencies in the system; IANAO. (I am not an optometrist.)
17:47:11 <fizzie> Did your measurement place have that machine where you look at a picture of a hot-air balloon over a desert road?
17:47:39 <fizzie> I used to think that was just, you know, one model, but turns out the scene is in fact pretty popular, and chosen for a reason.
17:48:43 <fizzie> (It's to trick any conscious fixation mechanisms to try focusing to infinity, or some-such.)
17:51:01 <CakeProphet> I'm going to ask them before I buy anything.
17:51:17 <CakeProphet> because I'd rather not spend money on something that is essentially a flat piece of glass.
17:51:53 <fizzie> It's what they use in an autorefractor, which is a device that gives a ballpark estimate of the refractive error, from which they can then start manually adjusting from.
17:52:02 <elliott_> <fizzie> Did your measurement place have that machine where you look at a picture of a hot-air balloon over a desert road?
17:54:05 <fizzie> I think I did find one once with Googling, but am having trouble looking for it right now.
17:54:20 <fizzie> "Newer autorefractors feature fixation points that look like a house at the end of a road, a Christmas tree or a hot-air balloon—interesting things that can hold that patient's attention long enough to take the refractive reading."
17:54:25 <fizzie> It seems there are alternatives.
17:54:54 <fizzie> All I can find right now are just images of the machines themselves.
17:55:24 <elliott_> Well, if you zoom in enough...
17:55:45 <fizzie> I have a vague feeling the image I saw was in some google-books result about autorefractors.
17:59:33 <fizzie> I think the Nidek ARK-700A has the hot-air balloon image. You can buy a refurbished one for only $4500, and then look at it.
17:59:43 <fizzie> The operator's manual doesn't have an image of the target. :/
18:02:24 -!- Taneb has joined.
18:02:59 <Taneb> I've been thinking of my esoteric markup language
18:03:14 <Taneb> I had a good idea for a name for a esoteric query language:
18:03:28 <Taneb> FRee Esoteric Query Language Specification
18:03:35 <Taneb> Or FREQLS for short
18:09:40 <Taneb> But I've got an idea for a and a name for b
18:09:51 <Taneb> If anyone wants to steal the name, just take it
18:24:05 -!- DocHerrings has joined.
18:24:38 <DocHerrings> Can anyone explain why we have an editing back-and-forth over the list of ideas?
18:25:25 <Taneb> Spambot-type things
18:26:00 <DocHerrings> But they always change it to the Magic the Gathering/Brainfuck idea.
18:26:53 <atehwa> @tell oerjan ok, paintfuck and twoduck, I'll check them out.
18:28:26 <elliott_> paintfuck is possibly the only interesting brainfuck derivative in the last, like, five years
18:28:53 <lambdabot> atehwa: You have 1 new message. '/msg lambdabot @messages' to read it.
18:29:52 <Taneb> Ook! scores points for Discworld reference and DMM-creator-ness
18:30:06 <elliott_> Ook! is older than five years I believe
18:30:40 -!- boily has joined.
18:31:14 -!- TeruFSX has joined.
18:31:20 <atehwa> yeah, Ook! I already knew
18:31:46 <atehwa> didn't find it particularly spectacular, but hey, everybody has their own criteria for evaluating languages
18:32:47 <elliott_> atehwa: well Ook! is notable as the first brainfuck derivative of its sort.
18:32:56 <elliott_> it's the hipster's trivial brainfuck cipher
18:33:27 -!- monqy has quit (Quit: Lost terminal).
18:33:57 <atehwa> well, I tend to think of all those derivatives that are essentially state machines outputting brainfuck code, as trivial encodings
18:34:02 -!- monqy has joined.
18:34:13 <atehwa> and they existed well before 2001
18:43:26 -!- TeruFSX has quit (Ping timeout: 240 seconds).
18:48:54 -!- myndzi\ has quit (Read error: Connection reset by peer).
18:50:40 -!- DocHerrings has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
18:51:37 -!- derrik has quit (Quit: eat and sleep).
19:29:11 -!- azaq23 has quit (Ping timeout: 260 seconds).
19:41:31 -!- Taneb has quit (Ping timeout: 252 seconds).
20:11:19 -!- pumpkin has joined.
20:13:14 -!- copumpkin has quit (Ping timeout: 246 seconds).
20:26:09 -!- pumpkin has changed nick to copumpkin.
20:28:52 -!- copumpkin has changed nick to July_.
20:28:56 -!- July_ has changed nick to copumpkin.
20:37:27 -!- boily has quit (Ping timeout: 276 seconds).
20:50:47 -!- pumpkin has joined.
20:51:32 -!- pumpkin has changed nick to copumpkin_.
20:51:55 -!- copumpkin has quit (Disconnected by services).
20:52:12 -!- copumpkin_ has changed nick to copumpkin.
20:59:29 -!- augur has quit (Remote host closed the connection).
21:05:51 -!- elliott_ has quit (Ping timeout: 276 seconds).
21:23:31 <Sgeo> [For writing a max() by hand]
21:23:57 <Sgeo> <S*****> s****: can you actually do better than O(n)? you kinda need to perform an operation on every element of the array, unless you already know something about them (like that they're in order)
21:24:42 <Sgeo> S****> S*****: do an efficient sort, grab the last/first item. done
21:26:46 <pikhq_> Because O(n log n) > O(n)?
21:32:20 -!- augur has joined.
21:37:02 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:59:16 -!- jix_ has joined.
21:59:16 -!- jix has quit (Read error: Connection reset by peer).
22:18:23 <fizzie> Re O(n) vs. O(n log n), obviously the "bigger is better" here.
22:18:46 -!- TeruFSX has joined.
22:19:17 <quintopia> fizzie: right. definitely a situation for a intercal bogosort
22:22:42 -!- Nisstyre has quit (Ping timeout: 240 seconds).
22:26:51 <fizzie> A general rule of thumb is, you should always aspire to have at least one factorial in your time complexity.
22:31:46 -!- TeruFSX has quit (Read error: Operation timed out).
22:36:13 <pikhq_> Joy of joys. 5 days until the US hits undefined behavior.
22:37:10 <pikhq_> The US is both going to default and forbidden from defaulting.
22:37:12 <quintopia> odds on the short term extension being passed?
22:37:26 <pikhq_> quintopia: With the GOP running things, "cold day in hell".
22:37:55 <pikhq_> I note that the FAA has already been shut down because of this shit.
22:38:02 <quintopia> so its definitely gonna be the default, eh
22:38:15 <pikhq_> For about a week now, too.
22:41:52 <pikhq_> You've pretty much just got the air traffic controllers working.
22:46:44 <pikhq_> Because Congress has not passed a bill allowing for funding for the FAA.
22:47:59 <quintopia> because they cant appropriate anything without resolving the crisis?
22:48:12 <coppro> I'm leaving this country soon enough after the likely default that I will hopefully be able to make it
22:48:14 <quintopia> politics is the enemy of economy :/
22:49:01 <coppro> I'm headed back to Canada because my job ends
22:49:45 <pikhq_> quintopia: Because they have passed 2 dozen bills total.
22:51:12 -!- pumpkin has joined.
22:51:28 -!- FireFly has quit (Quit: swatted to death).
22:51:54 -!- copumpkin has quit (Ping timeout: 255 seconds).
22:51:57 -!- Nisstyre has joined.
22:54:58 -!- pumpkin has changed nick to copumpkin.
22:55:46 <coppro> my plan at this point entails a) get as much of my money as I can out of USD
22:56:33 <pikhq_> coppro: Shame it's non-trivial for me to gtfo.
22:56:41 <pikhq_> Because that is a damned good plan.
22:58:51 <pikhq_> So, the Treasury has the authority to mint coins of arbitrary designation.
22:59:10 <pikhq_> We could remain "solvent" by having them mint a $2 trillion coin. And deposit it in the Fed.
22:59:25 <pikhq_> And have a nice, tidy hyperinflation problem.
23:01:02 <quintopia> really? 2 trillion? thats the amount the debt ceiling has to go up?
23:02:02 <pikhq_> quintopia: Overstatement.
23:04:12 <coppro> The amount by which the ceiling needs to go up depends on how much gets cut
23:04:21 <coppro> and/or how much new revenue is generated
23:04:38 <pikhq_> quintopia: The debt ceiling is currently at about 14 trillion USD.
23:05:54 <pikhq_> For comparison, the US GDP is *also* about 14 trillion USD.
23:07:07 <coppro> Obama should just start firing people at the DHS until he can extend the default
23:07:48 <pikhq_> coppro: He isn't capable of doing so.
23:07:59 <pikhq_> The most he can do is ask the appointed head of the DHS or TSA to do so.
23:08:14 <quintopia> he can also fire said person and hire one who will
23:08:33 <pikhq_> The President has 0 firing capacity.
23:08:47 <pikhq_> He can't fire his cabinet.
23:09:15 <quintopia> TIL (again): the constitution is stupid
23:09:27 <pikhq_> Oh, sorry, he actually can.
23:09:36 <pikhq_> However, the Senate has to approve of new appointments.
23:09:47 <pikhq_> Meaning if he pulled that, he'd basically not have a cabinet.
23:18:58 <coppro> pikhq_: Who chooses which parts of the government suffer from the default first?
23:20:12 <pikhq_> By the Constitution, the authority to spend lies with the Senate, but they have opted to delegate that upon the Treasury in the executive branch.
23:22:00 <coppro> pikhq_: Can they choose to withhold congressional salary first?
23:23:13 <coppro> also can someone please send me an email?
23:23:27 <coppro> I can provide an address, I'm testing a forwarding setup
23:33:11 -!- TeruFSX has joined.
23:41:38 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
00:04:23 -!- copumpkin has joined.
00:05:59 -!- TeruFSX has quit (Ping timeout: 246 seconds).
00:32:01 -!- augur has quit (Remote host closed the connection).
01:37:47 -!- augur has joined.
01:39:13 -!- itidus21 has joined.
01:42:01 -!- itidus20 has quit (Ping timeout: 258 seconds).
01:43:42 <coppro> Sgeo: someone else already did
01:46:55 <Vorpal> total used free shared buffers cached
01:46:55 <Vorpal> Mem: 16037 7654 8383 0 353 5648
01:46:55 <Vorpal> -/+ buffers/cache: 1652 14385
01:47:06 <Vorpal> how can I be using swap!?
01:47:36 <pikhq_> The kernel doesn't unswap pages except on demand.
01:47:47 <pikhq_> This is generally a pessimisation.
01:48:04 <Vorpal> pikhq_, well no issue here, I'm just confused that I started using swap at all
01:48:09 <Vorpal> I haven't been doing anything heavy
01:48:40 <pikhq_> Hmm. 16 gigs? Yeah, it'd be pretty hard to make that swap.
01:48:59 <Vorpal> FilenameTypeSizeUsedPriority
01:48:59 <Vorpal> /dev/sda3 partition209647630961
01:48:59 <Vorpal> /dev/sdb3 partition209647630961
01:56:51 -!- CakeProphet has quit (Ping timeout: 255 seconds).
01:59:22 -!- oerjan has joined.
02:01:48 -!- cheater has quit (Ping timeout: 255 seconds).
02:04:40 <lambdabot> oerjan: You have 1 new message. '/msg lambdabot @messages' to read it.
02:05:51 -!- CakeProphet has joined.
02:05:51 -!- CakeProphet has quit (Changing host).
02:05:51 -!- CakeProphet has joined.
02:07:13 <oerjan> <elliott> WHAT COULD POSSIBLY. BUT _POSSIBLY_. GO WRONG???????
02:08:33 -!- TeruFSX has joined.
02:11:23 -!- Patashu has joined.
02:14:53 <oerjan> <Taneb> The person who formulated the Sanskrit language
02:15:38 <oerjan> essentially inventing something like BNF millennia before bachus-naur were born, afaiu
02:16:06 <oerjan> and, iirc, with a smattering of Perligata, except sanskrit rather than latin.
02:18:22 -!- Sgeo_ has joined.
02:18:37 -!- jcp|other has joined.
02:19:00 -!- Sgeo has quit (Ping timeout: 250 seconds).
02:19:46 -!- jcp|1 has quit (Ping timeout: 252 seconds).
02:20:00 <oerjan> <elliott_> CakeProphet: you're the only person who consistently complains about other people being rude to you, so either there's institutionalised oppression or you're just misreading tones
02:20:25 -!- jcp has quit (Ping timeout: 250 seconds).
02:20:27 <oerjan> <elliott_ under breath> (jerk)
02:27:29 -!- jcp has joined.
02:30:29 <oerjan> <Taneb> But barely any esoteric markup or query languages
02:30:46 -!- madbr has joined.
02:30:47 <oerjan> would zzo's texnicard count?
02:31:12 <madbr> I'm writing impossible to read code into a commercial lib :o
02:31:32 <Vorpal> oerjan, suggestion intercal/sql hybrid. Both are traditionally upper case
02:32:23 <oerjan> FROM .1 <- SELECT PLEASE (222) NEXT.
02:32:36 <Vorpal> oerjan, joins could be done with COME FROM
02:33:14 <oerjan> i wonder if INTERCAL has a suitable set of instructions for monadic use.
02:33:58 <madbr> oerjan: basically I'm writing Arm SIMD code
02:34:06 <madbr> it's 2~4 times faster than C++
02:34:40 <madbr> But because math operations are pipelined you have to scramble your code to make it go faster
02:37:26 <fungot> monqy: whenever the quota for this referendum must list both the current players. if the
02:37:35 <madbr> you get 2 operations per cycle!
02:37:49 <madbr> but one of them has to be math and one of them has to be load/store
02:38:15 <madbr> also if you start a multiply the result isn't available until 5 or 6 cycles later
02:38:22 <madbr> if you read it before that it stalls
02:38:41 <oerjan> this is the kind of thing a good compiler _should_ be able to do by itself, right?
02:39:26 <madbr> There are intrinsincs for C++, maybe the compiler produces good code with those
02:39:36 <madbr> Also dunno if compilers do pipelining
02:51:46 -!- madbr has quit (Read error: Connection reset by peer).
03:00:23 -!- madbr has joined.
03:00:25 -!- jcp|1 has joined.
03:01:02 -!- jcp has quit (Ping timeout: 240 seconds).
03:02:27 -!- madbr has quit (Read error: Connection reset by peer).
03:02:34 -!- jcp|other has quit (Ping timeout: 255 seconds).
03:05:40 -!- lament has joined.
03:07:00 -!- jcp has joined.
03:07:17 -!- CakeProphet has quit (Ping timeout: 246 seconds).
03:09:24 -!- madbr has joined.
03:17:24 <Sgeo_> Pratchett without footnotes = fail
03:29:11 -!- pumpkin has joined.
03:33:44 -!- madbr has quit (Read error: Connection reset by peer).
03:33:55 -!- copumpkin has quit (Ping timeout: 276 seconds).
03:41:55 -!- madbr has joined.
03:46:32 -!- madbr has quit (Read error: Connection reset by peer).
03:51:00 -!- TeruFSX has quit (Ping timeout: 276 seconds).
03:51:35 -!- pumpkin has changed nick to copumpkin.
03:52:41 -!- madbr has joined.
03:56:55 -!- madbr has quit (Read error: Connection reset by peer).
03:58:25 -!- TeruFSX has joined.
04:01:46 -!- augur has quit (Remote host closed the connection).
04:03:57 -!- madbr has joined.
04:14:42 -!- madbr has quit (Read error: Connection reset by peer).
04:21:47 -!- madbr has joined.
04:23:57 -!- madbr has quit (Read error: Connection reset by peer).
04:26:15 -!- MDude has changed nick to MSleep.
04:30:46 -!- madbr has joined.
04:33:03 -!- madbr has quit (Read error: Connection reset by peer).
04:40:20 -!- madbr has joined.
04:41:18 -!- TeruFSX has quit (Ping timeout: 252 seconds).
04:47:53 -!- TeruFSX has joined.
04:49:26 -!- madbr has quit (Read error: Connection reset by peer).
04:53:55 -!- augur has joined.
04:56:46 -!- madbr has joined.
04:59:01 -!- madbr has quit (Read error: Connection reset by peer).
05:05:07 -!- madbr has joined.
05:07:43 -!- madbr has quit (Read error: Connection reset by peer).
05:13:29 -!- madbr has joined.
05:15:55 -!- madbr has quit (Read error: Connection reset by peer).
05:17:17 <oerjan> 11:08:35 <DocHerrings> But they always change it to the Magic the Gathering/Brainfuck idea.
05:17:20 <oerjan> 11:08:46 <DocHerrings> Seems more like a persistent person.
05:17:33 <oerjan> actually it's simply changing it to the very oldest version of the page.
05:18:02 <quintopia> why is this channel so sleepy of late
05:18:12 <quintopia> only a few hours activity each day
05:18:20 <oerjan> quintopia: vacation time?
05:19:11 <oerjan> perhaps there's some kind of link which causes that oldest version to be saved, which a spambot has picked up.
05:19:37 <oerjan> or maybe it has a very broken way of following links. hm.
05:20:29 <quintopia> well can you lock it to reversion?
05:21:52 -!- madbr has joined.
05:24:26 -!- madbr has quit (Read error: Connection reset by peer).
05:30:57 -!- madbr has joined.
05:32:32 -!- madbr has quit (Read error: Connection reset by peer).
05:32:44 <oerjan> Or otherwise i'd have banned Nthern for not responding to my messages. Grmle.
05:36:58 -!- TeruFSX has quit (Ping timeout: 276 seconds).
05:39:18 -!- madbr has joined.
05:41:27 -!- madbr has quit (Read error: Connection reset by peer).
05:44:45 -!- Patashu has quit (Ping timeout: 252 seconds).
05:47:35 -!- madbr has joined.
05:49:52 -!- madbr has quit (Read error: Connection reset by peer).
05:57:50 -!- madbr has joined.
05:59:58 -!- madbr has quit (Read error: Connection reset by peer).
06:06:09 -!- madbr has joined.
06:08:12 -!- madbr has quit (Read error: Connection reset by peer).
06:16:26 -!- madbr has joined.
06:19:02 -!- madbr has quit (Read error: Connection reset by peer).
06:24:46 -!- madbr has joined.
06:26:52 -!- madbr has quit (Read error: Connection reset by peer).
06:33:06 -!- madbr has joined.
06:35:27 -!- madbr has quit (Read error: Connection reset by peer).
06:41:24 -!- madbr has joined.
06:43:42 -!- madbr has quit (Read error: Connection reset by peer).
06:45:10 -!- cheater has joined.
06:50:00 -!- madbr has joined.
06:52:12 -!- madbr has quit (Read error: Connection reset by peer).
07:00:45 -!- madbr has joined.
07:02:50 -!- madbr has quit (Read error: Connection reset by peer).
07:09:08 -!- madbr has joined.
07:11:40 -!- madbr has quit (Read error: Connection reset by peer).
07:17:28 -!- madbr has joined.
07:19:42 -!- madbr has quit (Read error: Connection reset by peer).
07:20:57 -!- Taneb has joined.
07:25:51 <atehwa> Has anybody cared to make a category for languages where the computation always terminates? They form quite an important subclass of languages.
07:25:51 -!- madbr has joined.
07:27:08 <atehwa> this class of languages has seen a lot of research, too, such as Curry's ?I calculus ('53).
07:27:08 -!- madbr has quit (Read error: Connection reset by peer).
07:27:55 -!- oerjan has quit (Quit: leaving).
07:28:04 -!- cheater has quit (Ping timeout: 255 seconds).
07:34:21 -!- madbr has joined.
07:36:37 -!- madbr has quit (Read error: Connection reset by peer).
07:39:28 <atehwa> and, for instance, almost all "regular" mathematical functions are computable by languages that only have loops that always terminate. Ackermann's function is not one of them. :)
07:40:28 -!- cheater has joined.
07:40:32 <atehwa> Ah, I misremembered ?I's computational class - but what about primitive recursive functions?
07:42:41 -!- madbr has joined.
07:42:48 -!- cheater has quit (Excess Flood).
07:43:02 <lament> languages where computation always terminates fall into one of a number of classes
07:43:17 <lament> hence http://esoteric.voxelperfect.net/wiki/Category:Computational_class
07:45:11 -!- madbr has quit (Read error: Connection reset by peer).
07:45:27 -!- cheater has joined.
07:45:27 -!- cheater has quit (Excess Flood).
07:45:43 -!- itidus21 has changed nick to itidus20.
07:53:34 <Taneb> I still need a name for my esoteric markup langauge
07:54:12 -!- madbr has joined.
07:56:32 -!- madbr has quit (Read error: Connection reset by peer).
07:58:18 <atehwa> lament: yes, the class of always-terminating languages is missing from there
07:58:58 <atehwa> also, while important theoretically, the Chomsky hierarchy of languages is by no means the only, or even the most important, classification criterion.
08:00:37 -!- cheater has joined.
08:02:32 -!- madbr has joined.
08:04:48 -!- madbr has quit (Read error: Connection reset by peer).
08:12:46 -!- madbr has joined.
08:15:04 -!- madbr has quit (Read error: Connection reset by peer).
08:16:31 -!- FireFly has joined.
08:16:50 -!- lament has quit (Read error: Operation timed out).
08:16:52 -!- Taneb has quit (Ping timeout: 252 seconds).
08:23:06 -!- madbr has joined.
08:25:26 -!- madbr has quit (Read error: Connection reset by peer).
08:26:27 -!- monqy has quit (Quit: hello).
08:33:14 -!- madbr has joined.
08:35:23 -!- madbr has quit (Read error: Connection reset by peer).
08:41:35 -!- madbr has joined.
08:43:42 -!- madbr has quit (Read error: Connection reset by peer).
08:49:55 -!- madbr has joined.
08:52:06 -!- madbr has quit (Read error: Connection reset by peer).
08:58:19 -!- madbr has joined.
09:00:26 -!- madbr has quit (Read error: Connection reset by peer).
09:06:47 -!- madbr has joined.
09:08:56 -!- madbr has quit (Read error: Connection reset by peer).
09:15:09 -!- madbr has joined.
09:17:20 -!- madbr has quit (Read error: Connection reset by peer).
09:23:28 -!- madbr has joined.
09:25:50 -!- madbr has quit (Read error: Connection reset by peer).
09:33:34 -!- madbr has joined.
09:35:50 -!- madbr has quit (Read error: Connection reset by peer).
09:41:55 -!- madbr has joined.
09:44:22 -!- madbr has quit (Read error: Connection reset by peer).
09:50:16 -!- madbr has joined.
09:52:23 -!- madbr has quit (Read error: Connection reset by peer).
09:58:36 -!- madbr has joined.
10:00:30 -!- madbr has quit (Read error: Connection reset by peer).
10:06:54 -!- Patashu has joined.
10:06:56 -!- madbr has joined.
10:07:19 <Patashu> another ddr video! http://www.youtube.com/watch?v=yueZ1Dsm9JI \o/
10:09:18 -!- madbr has quit (Read error: Connection reset by peer).
10:09:36 -!- CakeProphet has joined.
10:15:48 -!- madbr has joined.
10:17:55 -!- madbr has quit (Read error: Connection reset by peer).
10:24:06 -!- madbr has joined.
10:26:22 -!- madbr has quit (Read error: Connection reset by peer).
10:32:28 -!- madbr has joined.
10:34:35 -!- madbr has quit (Read error: Connection reset by peer).
10:40:48 -!- madbr has joined.
10:42:59 -!- madbr has quit (Read error: Connection reset by peer).
10:49:09 -!- madbr has joined.
10:51:27 -!- madbr has quit (Read error: Connection reset by peer).
10:57:29 -!- madbr has joined.
10:59:42 -!- madbr has quit (Read error: Connection reset by peer).
11:07:42 -!- madbr has joined.
11:09:55 -!- Nisstyre has quit (Ping timeout: 255 seconds).
11:09:55 -!- madbr has quit (Read error: Connection reset by peer).
11:11:19 -!- Nisstyre has joined.
11:16:02 -!- madbr has joined.
11:18:17 -!- madbr has quit (Read error: Connection reset by peer).
11:24:23 -!- madbr has joined.
11:26:29 -!- madbr has quit (Read error: Connection reset by peer).
11:32:43 -!- madbr has joined.
11:35:01 -!- madbr has quit (Read error: Connection reset by peer).
11:40:58 -!- cheater has quit (Ping timeout: 255 seconds).
11:42:50 -!- madbr has joined.
11:45:03 -!- madbr has quit (Read error: Connection reset by peer).
11:51:11 -!- madbr has joined.
11:53:15 -!- madbr has quit (Read error: Connection reset by peer).
11:59:34 -!- madbr has joined.
12:01:58 -!- madbr has quit (Read error: Connection reset by peer).
12:02:02 -!- azaq23 has joined.
12:07:56 -!- madbr has joined.
12:09:57 -!- madbr has quit (Read error: Connection reset by peer).
12:11:12 -!- boily has joined.
12:16:16 -!- madbr has joined.
12:18:22 -!- madbr has quit (Read error: Connection reset by peer).
12:24:36 -!- madbr has joined.
12:26:52 -!- madbr has quit (Read error: Connection reset by peer).
12:34:56 -!- madbr has joined.
12:37:05 -!- madbr has quit (Read error: Connection reset by peer).
12:42:14 -!- TeruFSX has joined.
12:43:27 -!- madbr has joined.
12:43:43 -!- pikhq_ has quit (Ping timeout: 240 seconds).
12:43:49 -!- pikhq has joined.
12:46:02 -!- madbr has quit (Read error: Connection reset by peer).
12:52:09 -!- madbr has joined.
12:54:27 -!- madbr has quit (Read error: Connection reset by peer).
13:00:33 -!- madbr has joined.
13:02:55 -!- madbr has quit (Read error: Connection reset by peer).
13:08:56 -!- madbr has joined.
13:09:30 -!- TeruFSX has quit (Ping timeout: 252 seconds).
13:10:57 -!- madbr has quit (Read error: Connection reset by peer).
13:17:51 -!- madbr has joined.
13:19:31 -!- madbr has quit (Read error: Connection reset by peer).
13:27:59 -!- madbr has joined.
13:30:10 -!- madbr has quit (Read error: Connection reset by peer).
13:36:20 -!- madbr has joined.
13:38:36 -!- madbr has quit (Read error: Connection reset by peer).
13:44:40 -!- madbr has joined.
13:46:52 -!- madbr has quit (Read error: Connection reset by peer).
13:54:46 -!- madbr has joined.
13:56:51 -!- Taneb has joined.
13:56:52 -!- madbr has quit (Read error: Connection reset by peer).
14:02:59 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
14:04:55 -!- madbr has joined.
14:05:09 <Taneb> What's an unimplemented esolang deserving implemenation
14:07:04 -!- madbr has quit (Read error: Connection reset by peer).
14:09:02 <fizzie> Just do Category:Unimplemented in alphabetical order.
14:15:16 -!- madbr has joined.
14:21:18 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:23:55 -!- madbr has quit (Read error: Connection reset by peer).
14:28:51 -!- Taneb has quit (Ping timeout: 260 seconds).
14:30:31 -!- Phantom_Hoover has joined.
14:30:35 <lambdabot> Phantom_Hoover: You have 7 new messages. '/msg lambdabot @messages' to read them.
14:31:04 -!- madbr has joined.
14:31:10 -!- oerjan has joined.
14:32:18 -!- BeholdMyGlory has quit (Remote host closed the connection).
14:32:19 -!- madbr has quit (Read error: Connection reset by peer).
14:37:32 -!- Slereah has quit.
14:38:06 -!- Taneb has joined.
14:39:31 -!- madbr has joined.
14:42:58 -!- madbr has quit (Read error: Connection reset by peer).
14:47:28 -!- copumpkin has joined.
14:49:24 -!- cheater has joined.
14:51:57 -!- madbr has joined.
14:59:57 -!- cheater has quit (Ping timeout: 250 seconds).
15:01:32 -!- madbr has quit (Read error: Connection reset by peer).
15:04:40 -!- lament has joined.
15:05:51 -!- cheater has joined.
15:06:22 -!- MSleep has changed nick to MDude.
15:10:13 -!- cheater has quit (Ping timeout: 255 seconds).
15:10:14 -!- madbr has joined.
15:11:16 -!- cheater has joined.
15:12:19 -!- madbr has quit (Read error: Connection reset by peer).
15:14:52 <oerjan> "EDIT: Thanks to everyone who wrote with an explanation, especially the electronics engineers. I now have about 11 different plausible explanations for this behaviour. Only 3 of which involve actual time warps. :-)
15:15:54 <oerjan> (on yesterday's iwc annotation)
15:16:29 <Taneb> Today's annotation is pretty funny
15:17:21 <oerjan> however, it may be assumed that hordes are attracted to hoards.
15:17:37 <Taneb> There is little data on the reverse
15:18:18 <oerjan> well i'm sure genghis khan got plenty of tribute
15:19:39 -!- madbr has joined.
15:19:53 -!- cheater has quit (Ping timeout: 250 seconds).
15:21:46 <oerjan> interestingly, that edit above could have fit just as well in CoAP. where it seems to me DMM is making a much larger fraction of the posts than he used to...
15:22:33 <Taneb> I put events from my life into CoAP, what's saying DMM doesn't?
15:22:53 <Taneb> Today's CoAP is a DMM work!
15:23:59 <oerjan> ...let's hope it's not based on a real life event.
15:24:42 <Taneb> Actually, DMM and the comic irregulars do a lot at work that isn't necassarily work
15:24:50 <Taneb> Such as writing Darths and Droids
15:25:13 <oerjan> yes, but at least they _claim_ to do it during lunch hour
15:25:45 <Taneb> And making the CiSRA puzzles
15:25:54 <Taneb> Which is backed by Canon, so it may be work
15:25:59 <oerjan> yes, but that might be something ... right
15:26:58 <oerjan> i just have this image of DMM being the world's best time planner.
15:27:30 <Taneb> He is a time ninja
15:28:00 <oerjan> comments on a postcard
15:28:01 <Taneb> Comments on a Postcard
15:30:12 <oerjan> this reminds me of someone mentioning that one of tvtropes' memes is wild mass guessing "* is a time lord". i wonder if someone put it on a DMM related page...
15:30:12 -!- madbr has quit (Read error: Connection reset by peer).
15:30:47 <Phantom_Hoover> oerjan, I have a suspicion that it'll be part of a crackdown at some point.
15:31:50 <oerjan> google doesn't find either "DMM is a time lord" or "David Morgan-Mar is a time lord", anyway
15:32:38 <Taneb> Speaking of the CiSRA puzzles, anyone want to form a team
15:32:48 <oerjan> i avoid my duties by carefully never registering to anything new
15:34:08 <Taneb> I've got a few of the answers in 1D
15:34:46 <Taneb> 6 is Iguanas in Pyjamas, 7 is Seal or no Seal, 9 is Harry Otter, 14 is Swan with the Wind
15:37:10 -!- madbr has joined.
15:38:50 -!- cheater has joined.
15:38:50 -!- madbr has quit (Read error: Connection reset by peer).
15:47:31 -!- madbr has joined.
15:49:56 -!- madbr has quit (Read error: Connection reset by peer).
15:56:11 -!- madbr has joined.
15:58:17 -!- madbr has quit (Read error: Connection reset by peer).
16:05:28 -!- madbr has joined.
16:06:52 -!- Taneb has quit (Ping timeout: 260 seconds).
16:06:52 -!- madbr has quit (Read error: Connection reset by peer).
16:08:43 -!- cheater has quit (Ping timeout: 255 seconds).
16:09:05 -!- cheater has joined.
16:10:43 -!- monqy has joined.
16:13:47 -!- madbr has joined.
16:15:27 -!- madbr has quit (Read error: Connection reset by peer).
16:18:23 -!- Taneb has joined.
16:19:29 -!- lament has quit (Ping timeout: 258 seconds).
16:23:03 -!- pumpkin has joined.
16:23:16 -!- madbr has joined.
16:24:56 -!- copumpkin has quit (Ping timeout: 246 seconds).
16:28:05 <Phantom_Hoover> http://www.reddit.com/r/math/comments/j297s/if_g_o_f_is_surjective_why_doesnt_g_need_to_be/
16:30:46 -!- cheater has quit (Ping timeout: 255 seconds).
16:30:46 -!- madbr has quit (Read error: Connection reset by peer).
16:32:52 <Taneb> The fear of palindromes
16:35:11 <quintopia> he should have used notation more suitable for ascii
16:36:56 -!- madbr has joined.
16:38:19 <oerjan> well the title has g and f switched, anyway
16:38:54 <oerjan> because if g o f is surjective, then g definitely is.
16:39:45 <Phantom_Hoover> But the answers confuse me even more, because none of them are the obvious reply.
16:41:21 -!- madbr has quit (Read error: Connection reset by peer).
16:41:27 -!- ais523 has joined.
16:41:52 <oerjan> well it's obvious from the actual question that he meant to ask about f o g, in which case g doesn't need to be surjective.
16:42:19 -!- pumpkin has changed nick to copumpkin.
16:42:41 <Phantom_Hoover> oerjan, yeah, but the answers to *that* make no sensee.
16:43:56 -!- TeruFSX has joined.
16:45:48 <oerjan> frozenzephyr's answer looks clear enough...
16:48:26 -!- madbr has joined.
16:50:57 -!- madbr has quit (Read error: Connection reset by peer).
16:52:49 -!- cheater has joined.
16:56:21 -!- BeholdMyGlory has joined.
16:57:37 -!- madbr has joined.
17:00:01 -!- madbr has quit (Read error: Connection reset by peer).
17:01:54 -!- Behold has joined.
17:02:16 -!- BeholdMyGlory has quit (Ping timeout: 255 seconds).
17:02:33 -!- Behold has changed nick to BeholdMyGlory.
17:07:13 -!- cheater has quit (Ping timeout: 255 seconds).
17:07:42 -!- cheater has joined.
17:07:55 -!- madbr has joined.
17:09:59 -!- madbr has quit (Read error: Connection reset by peer).
17:12:37 -!- cheater has quit (Ping timeout: 255 seconds).
17:16:39 -!- madbr has joined.
17:19:02 -!- madbr has quit (Read error: Connection reset by peer).
17:19:06 <Phantom_Hoover> http://www.bay12forums.com/smf/index.php?topic=56305.0
17:19:24 <Taneb> That sounds like Dwarf Fortress
17:20:50 -!- TeruFSX has quit (Ping timeout: 264 seconds).
17:21:21 <ais523> Dwarf Fortress science seems to be along the lines of "how can we trick the game into letting us do X implausible thing?"
17:22:12 <Taneb> If real world science was like that, everyone would be a scientist
17:23:51 <ais523> well, it's science if you don't know what the rules are, and engineering if you do
17:25:00 <Phantom_Hoover> Yeah, and this is a kind of blend of the two, I suppose.
17:25:01 -!- madbr has joined.
17:25:08 <Taneb> "Okay, class, today we'll be making a perpetual motion engine! Urist McStudent, you grab a pickaxe and dig a channel to this pattern, Solon McPupil, you start filling those buckets with water"
17:25:31 -!- cheater has joined.
17:25:34 <Phantom_Hoover> They know the rules pretty well, but not the exact particulars relevant to the problem.
17:25:55 <Taneb> It's SCIENCE is more fun to say than It's ENGINEERING
17:26:29 <Taneb> I base all my desicions on what is more fun to say
17:27:34 <Phantom_Hoover> " The concept of things smaller than monarch butterflies, however, has led to enormous controversy. Although, obviously, it would be hard to see something smaller than a butterfly, it should be possible to show that it exists because, just like butterflies, it would sometimes get stuck in doors and prevent them from closing."
17:28:11 <Phantom_Hoover> (For those who forgot or are scum and haven't read Boatmurdered, the fall of Boatmurdered was largely due to a butterfly jamming a crucial door.)
17:28:45 <ais523> I have read Boatmurdered, but I forgot
17:28:58 <ais523> I thought the fall of Boatmurdered was largely due to people deliberately trying to kill it, though
17:28:58 <Taneb> I couldn't get into Boutmurdered
17:29:15 <Taneb> ...I've just had an idea
17:29:43 <Taneb> Us lot, doing a bloodline game!
17:29:43 <Phantom_Hoover> ais523, well, ISTR that the disaster that brought it to its knees and final tantrum spiral was that the main doors weren't closed in time after the lava flood was triggered.
17:29:56 <Phantom_Hoover> Taneb, regrettably, neither me nor ais have played DF.
17:29:58 <ais523> most of us don't play DF
17:30:15 <Phantom_Hoover> Lymee has, but I wouldn't let Lymee near anything I wanted to survive for more than twenty seconds.
17:30:19 -!- cheater has quit (Ping timeout: 250 seconds).
17:30:55 <ais523> on a PC, I tend to only (although not exclusively) play open-source games
17:30:55 <Taneb> <Phantom_Hoover> Lymee has, but I wouldn't let Lymee near anything I wanted to survive for more than twenty seconds.
17:31:01 <ais523> the ones that aren't, I've generally paid money for
17:31:11 <Lymee> Phantom_Hoover, is that so?
17:31:21 <ais523> although a couple came free with packets of breakfast cereal
17:31:22 <Taneb> You can pay money for Dwarf Fortress if you reeeaaally want to
17:31:28 <Lymee> Would you like to see what I do if I want a fortress dead?
17:31:32 <Phantom_Hoover> Lymee, THE PAIN OF ELLIOTT'S RUTIAN TEST SERVER STILL STABS AT MY HEART
17:31:58 <Taneb> Or you can put it on a memory stick and put it in your cereal box
17:32:58 <ais523> just because it's happened so far, doesn't mean it'll always happen in future
17:34:03 -!- madbr has quit (Read error: Connection reset by peer).
17:36:23 <Phantom_Hoover> Lymee, also, killing a fortress... isn't the hardest thing.
17:36:55 <ais523> <Areku> Actually, a good way to make a fort invasion-proof is to make the entrance be a "magma elevator", a 1-tile shaft filled with magma, that is kept from falling all the way down by a set of pumps. Since dwarves are not subject to temperature while falling, as it was proved on the Last Stand thread, your dorfs would fall through several levels of magma unharmed, while any flying foe that attempted to do the same would be burned to a crisp
17:37:21 <Taneb> I once tried to make an indoor fishing place. It worked.
17:37:59 <Taneb> Ended having a river flooding into my fortress
17:41:15 -!- madbr has joined.
17:43:39 -!- madbr has quit (Read error: Connection reset by peer).
17:44:05 -!- cheater has joined.
17:44:50 <Phantom_Hoover> When I tried to play DF I just ended up tripping over my own perfectionism.
17:47:18 * Sgeo_ is undecided whether to return his new Nook Touch and wait to see what the new Kindle will be like, or to get a Sony, or what
17:49:08 <olsner> I think you want neither of all those things
17:49:35 -!- madbr has joined.
17:49:35 <Phantom_Hoover> Sgeo_, the origin of suffering is desire for e-book readers.
17:49:58 -!- cheater has quit (Ping timeout: 255 seconds).
17:50:09 <ais523> Sgeo_: can I persuade you to mindlessly boycott Sony without telling you why?
17:50:27 <ais523> hmm, I was just wondering
17:50:30 <Sgeo_> Well, you might be able to, but I don't see how
17:50:38 <Sgeo_> And if I knew about it, I'd stop
17:50:50 <Phantom_Hoover> Sgeo_, if you don't boycott Sony, ais523 will find you and hit you.
17:51:16 <Sgeo_> ais523, may I ask why you'd want me to boycott Sony?
17:51:26 <ais523> Sgeo_: sure, it's IRC, you can ask anything
17:51:31 <ais523> but I didn't say I wanted you to boycott Sony
17:51:42 <ais523> I just said I wondered whether I could persuade you to
17:52:21 <Sgeo_> I think I may be too easily persuadable
17:52:34 <Sgeo_> Persuaded to get a Nook :/
17:53:15 <Sgeo_> Although most of my issues are things that could in theory be fixed in updates
17:54:48 <oerjan> the screaming of the damned will be greatly reduced in the next version
17:55:15 <quintopia> they've got a workaround for that already
17:55:52 <oerjan> yeah they'll just keep the brain in a jar. although it's said someone at canon may have a patent on that.
17:57:37 <quintopia> i have a couple of ebook readers...kindle for android, something kindle-like for ipod, calibre's built-in reader...
17:57:37 -!- madbr has quit (Read error: Connection reset by peer).
17:57:49 <quintopia> these all have all the things i'm looking for in a reader
17:58:17 -!- Taneb has quit (Ping timeout: 260 seconds).
17:59:01 <quintopia> well i could hardly call them readers did they not display text in a readable form, could i?
18:01:20 -!- Taneb has joined.
18:01:25 <quintopia> they work and i did not pay for them. i am satisfied.
18:02:42 -!- cheater has joined.
18:02:47 <quintopia> someday when i have disposable income, and e-ink is true color and fast, i'll consider getting something with that
18:04:29 -!- madbr has joined.
18:04:58 <quintopia> imagine an e-ink laptop that is front-lit by a single led in the keyboard base.
18:05:12 <quintopia> that thing would use so little power if done right
18:06:35 <fizzie> Imagine an unlit e-ink laptop, and one of those "shake and it produces enough energy for the LED" flashlights that you hold with the other hand. That thing would be so user-friendly, it's not even a thing.
18:06:36 -!- madbr has quit (Read error: Connection reset by peer).
18:07:24 <Phantom_Hoover> fizzie, well, your average redditor wouldn't have a problem with the hand movement.
18:07:53 -!- TeruFSX has joined.
18:10:08 <ais523> I actually got quite good at doing chirps, and I'm not entirely sure why
18:10:32 <oerjan> wait i thought Gregor was the giant insect
18:11:34 -!- cheater has quit (Ping timeout: 255 seconds).
18:11:54 <oerjan> hard to tell the difference, i know
18:12:46 -!- cheater has joined.
18:13:32 -!- madbr has joined.
18:15:58 -!- madbr has quit (Read error: Connection reset by peer).
18:19:40 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
18:21:53 -!- madbr has joined.
18:23:11 -!- angstrom has joined.
18:23:12 -!- madbr has quit (Read error: Connection reset by peer).
18:26:01 -!- cheater_ has joined.
18:27:57 -!- cheater has quit (Ping timeout: 250 seconds).
18:32:08 -!- madbr has joined.
18:34:26 -!- madbr has quit (Read error: Connection reset by peer).
18:37:37 -!- TeruFSX has quit (Ping timeout: 276 seconds).
18:40:29 -!- madbr has joined.
18:41:16 -!- cheater_ has quit (Ping timeout: 255 seconds).
18:45:01 -!- madbr has quit (Read error: Connection reset by peer).
18:51:10 -!- madbr has joined.
18:53:26 -!- madbr has quit (Read error: Connection reset by peer).
18:54:56 -!- MigoMipo has joined.
19:01:17 -!- madbr has joined.
19:01:25 -!- cheater has joined.
19:02:26 -!- madbr has quit (Read error: Connection reset by peer).
19:05:57 -!- cheater_ has joined.
19:06:01 -!- cheater has quit (Ping timeout: 255 seconds).
19:09:44 -!- madbr has joined.
19:10:31 -!- cheater_ has quit (Ping timeout: 255 seconds).
19:12:04 -!- madbr has quit (Read error: Connection reset by peer).
19:15:45 <ais523> I'm still reading that DF submarine thread
19:16:00 <ais523> it got even better at the point where someone suggested making a submarine intended for working under magma out of ice
19:18:51 -!- madbr has joined.
19:21:03 -!- madbr has quit (Read error: Connection reset by peer).
19:22:53 -!- zzo38 has joined.
19:23:25 -!- cheater_ has joined.
19:27:46 -!- madbr has joined.
19:29:53 -!- madbr has quit (Read error: Connection reset by peer).
19:34:01 <quintopia> ais523: could a DF submarine be powered and directed?
19:34:27 <ais523> quintopia: at the point in the thread I've reached, they haven't got them to work at all yet
19:34:34 <ais523> they tend to act in ways that defy physics
19:35:42 -!- Taneb has quit (Ping timeout: 260 seconds).
19:36:44 -!- sebbu2 has joined.
19:38:37 -!- madbr has joined.
19:38:54 -!- sebbu has quit (Ping timeout: 252 seconds).
19:40:18 -!- madbr has quit (Read error: Connection reset by peer).
19:41:30 -!- derrik has joined.
19:47:16 -!- madbr has joined.
19:49:21 -!- madbr has quit (Read error: Connection reset by peer).
19:50:07 <cheater_> ais523, if someone were to make a haskell based dsl for describing FPGA programs, would the clock skew through a circuit belong in the function type?
19:50:42 <ais523> measuring clock skew at all is probably the wrong level of abstraction
19:51:21 <ais523> because it depends on the physical dimensions of the chip
19:53:17 -!- KingOfKarlsruhe has joined.
19:58:21 -!- madbr has joined.
20:00:47 -!- madbr has quit (Read error: Connection reset by peer).
20:06:02 -!- boily has quit (Ping timeout: 260 seconds).
20:08:40 -!- madbr has joined.
20:11:01 -!- madbr has quit (Read error: Connection reset by peer).
20:16:59 -!- madbr has joined.
20:19:29 -!- madbr has quit (Read error: Connection reset by peer).
20:22:05 -!- BeholdMyGlory has quit (Remote host closed the connection).
20:25:16 -!- madbr has joined.
20:26:44 -!- madbr has quit (Read error: Connection reset by peer).
20:35:33 -!- madbr has joined.
20:37:41 -!- madbr has quit (Read error: Connection reset by peer).
20:38:38 <zzo38> I made many improvements to the program for typesetting Bird style Haskell programs. Currently this is still the non-prettyprinting version. (If I make prettyprinting, it will be a separate file)
20:39:27 <zzo38> It doesn't work if you have an outer control sequence at the beginning of a paragraph, but now it makes \bye to be not outer.
20:41:54 <zzo38> The updated file is: http://sprunge.us/YZfh
20:43:11 <zzo38> Why has more than once the list of ideas being replaced by 'This is a list of ideas of programming languages and other stuff. * Magic The Gathering card deck of Brainfuck'?
20:43:34 <ais523> zzo38: confused spambot
20:43:53 -!- madbr has joined.
20:46:19 -!- madbr has quit (Read error: Connection reset by peer).
20:52:02 -!- myndzi has joined.
20:53:26 -!- madbr has joined.
20:55:29 -!- madbr has quit (Read error: Connection reset by peer).
21:01:49 -!- madbr has joined.
21:04:05 -!- madbr has quit (Read error: Connection reset by peer).
21:06:33 -!- evincar has joined.
21:07:49 -!- Adaria has joined.
21:09:09 <ais523> it depends on the time of day
21:09:13 <ais523> most of the most active people aren't here right now
21:09:37 <Adaria> Lots of people but not much going on, wish people wouldn't just idle like that.
21:09:51 <Adaria> Makes it seem more is here than there is.
21:09:52 <ais523> idling's usual so that conversations get a chance to get started
21:09:59 <ais523> if a conversation starts, then people have a chance to join in
21:10:09 -!- madbr has joined.
21:10:12 <ais523> if people leave as soon as there isn't a conversation, then it won't get started at all
21:10:24 <ais523> I assume you're new to IRC?
21:12:03 <Adaria> Gah one thing about the client I use can't go back and see things I missed. Bah.
21:12:03 -!- madbr has quit (Read error: Connection reset by peer).
21:12:35 <Adaria> If I missit the first time it's gone. Meh, screen reader.
21:13:00 <quintopia> that sounds like the shittiest client ever
21:13:34 <ais523> it sounds like Vorpal's client
21:13:58 -!- Taneb has joined.
21:14:07 <Adaria> Well it's not the client as much as it is the fact I can't see it. Have the same issue with mIRC. Screen reader and all, can't find one that is more accessible with them. Chatting in a normal window is fine but for some reason chat window like this doesn't let me tab to the output like it should.
21:14:44 <monqy> you could look at the logs.
21:15:06 <ais523> oh, I see, it's an accessibility problem
21:15:06 <Adaria> I don't think this one makes them and if it does not sure where... But good itea there.
21:15:14 <ais523> unfortunately, most programs are really bad about that
21:15:17 <quintopia> Adaria: this may help: http://forums.miranda-im.org/showthread.php?24751-How-to-define-scrollback
21:15:20 <monqy> this channel is publicly logged.
21:15:36 <ais523> and you can ask the client to repeat the topic to you by writing /topic
21:16:39 -!- derrik has left.
21:18:44 -!- madbr has joined.
21:19:15 <evincar> It's been awhile since I've hung out on here, but I'm too lazy to check the logs. :P
21:20:51 -!- madbr has quit (Read error: Connection reset by peer).
21:21:48 <Adaria> OK there, set up logging, should help.
21:22:11 <zzo38> In some cases scrollback might not be a feature of the client, it will be feature of the terminal emulator
21:23:31 <ais523> zzo38: most people don't use clients that work like that
21:23:56 <zzo38> It depends whether or not it uses graphical user interface
21:25:28 <Adaria> Scrolling back works fine in PM and IM windows using MirandaIM but chat windows act differently apparently. It's not a huge deal now that I got logging on.
21:26:52 <Adaria> Found two "accessible" IRC clients, IMC and NightOwl but the latter has a runtime error and the former the link is broken to download. I may have better luck on my main PC using mIRC and TIRC scripts for jaws, I am on my netbook at the moment using NVDA, no scripts for it yet.
21:27:58 -!- madbr has joined.
21:29:50 -!- madbr has quit (Read error: Connection reset by peer).
21:29:56 <Adaria> So, this room had a cunfusing room desc on it, what usually goes on in here?
21:30:10 <Adaria> The name makes sense but the desc did not.
21:30:23 <Taneb> That's pretty much it.
21:30:25 <quintopia> mirc with jaws appears to be the only solution around
21:30:33 <Taneb> Officially, we discuss esoteric programming languages
21:30:35 <quintopia> we do things here related to computing mostly
21:30:41 <evincar> It's usually related to programming, but we're not picky.
21:31:01 <Taneb> The other day, we discussed chess variant markup languages
21:31:04 <Adaria> Ah ok, esoteric to me was not tech related heh. Ah well.
21:31:19 <ais523> unfortunately, we're not entirely sure where you should go instead
21:31:23 <Taneb> Stay and have fun!
21:31:25 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.87 [Firefox 5.0/20110615151330]).
21:31:28 <Adaria> This server has SO many rooms though it's insane.
21:31:36 <ais523> but if you find out, let us know so we can send other people there for you to talk to
21:31:52 <ais523> Freenode's mostly a programming (specifically open source) network
21:32:02 <ais523> so more or less everything here is tech related
21:32:51 <Adaria> That's fine, I am not a tech minded ... well ok I am but I know zip about languages, I'm more of a play with hardware and new tech toys than software bit.
21:33:29 <Adaria> If there is some new tech out there that seems interesting to me, I wanna play with it.
21:33:31 <quintopia> you might consider a different network then.
21:33:47 <Taneb> Nah, we could use a hardware guy.
21:34:10 <Adaria> There are six thousand chans on freenode, I'm sure I'll find something.
21:34:13 <Taneb> Guy is gender neutral to me
21:35:23 <Adaria> Female here but I use guy as androgenous too.
21:36:16 <evincar> Adaria: So are you visually impaired, or do you just feel like using a screen reader?
21:36:22 <Adaria> Or I guess unisex would be the proper word, meh whatever, it works for both.
21:36:28 <ais523> evincar: heh, in most channels, there wouldn't even be a need to ask
21:36:33 <ais523> here, that's actually a plausible question
21:36:38 -!- madbr has joined.
21:36:55 <Taneb> Imagine an adrogenous specific pronoun
21:37:11 <Adaria> Completely blind here.
21:37:31 <Taneb> To me, "it" is that's more of non-human
21:38:42 -!- madbr has quit (Read error: Connection reset by peer).
21:38:54 <Taneb> I've never met anyone who's been completely blind before
21:39:28 <olsner> I've met a blind person, worked as a programmer
21:39:30 <Adaria> May be getting an IRC client for my phone. iPhone, some love it, others hate it but to me it is truly a lifeline.
21:39:52 <ais523> I know someone who can only read things within about 2cm of their eyes
21:40:00 <ais523> watching them reading is bizarre
21:40:29 -!- elliott_ has joined.
21:40:33 <Taneb> That person needs glasses, methinks
21:40:57 <ais523> I don't think that's the problem, or it'd have been fixed like that already
21:40:57 <Adaria> I went blind last year, well lost my good eye, other was blind already. I could never be a programmer, it would fry my brain, I have great reading comprehension and hands on with science stuff but programming languages are just as hard for me as math.
21:41:03 <olsner> Taneb: I think glasses aren't likely to be able to help much if you see that badly from the start
21:41:03 <ais523> even shortsightedness isn't that shortsighted
21:41:29 <Taneb> Shortsightedness can vary a lot
21:41:31 <ais523> that was an unexpected ping
21:41:32 * oerjan met a blind mathematician once
21:41:35 <ais523> as I'd talked about a minute ago
21:41:44 <ais523> you could have /ctcp pinged yourself
21:41:54 <ais523> that bounces off the server twice, so it's a good way to check connectedness
21:42:04 <Taneb> I'm mildly short-sighted, I use my glasses to watch TV and in lessons, but otherwise I'm fine
21:42:22 <Taneb> Wheras my dad has more extreme short-sightedness
21:42:29 <Adaria> If they can't read but that close they might want to try braille. Even though tech is making braille seem so non essential, there really is nothing like being able to read yourself in your own head so to speak.
21:42:42 <elliott_> ais523: I had thoughts wrt the @ pointer thing.
21:43:03 <Taneb> To the point when I tried on his glasses the only thing I could focus on was about a mile away
21:43:15 <ais523> elliott_: I had thoughts with respect to @ too
21:43:23 <Adaria> I get sick of trying to 'read' my own writing in stories and the screen reader just kills the tone that I might otherwise be able to put into it if I could read it myself.
21:43:25 <ais523> I concluded a lot of interesting things, which are probably mutually contradictory
21:43:28 <elliott_> ais523: oh dear; you first, please tell me they don't involve Feather
21:43:28 <evincar> Adaria: I talked a bit with a blind programmer once. I don't recall if he was born sighted, but I gathered it was a real challenge to hold everything in his head at once, especially with all of the screen-reader noise from punctuation.
21:43:50 <elliott_> i imagine blind programming is a bit like using ed
21:43:53 <ais523> but it's almost as brainfrying, but for different reasons
21:43:58 <elliott_> without any commands to print multiple lines at once
21:44:38 <elliott_> ais523: the good news with my thoughts is that, I think I have a pointer-passing capability model that works across networks with no need to have computer-to-computer communication different from intra-computer communication
21:45:18 <ais523> hmm, I'm in the middle of a bunch of things at the moment, also I was half-asleep and can't quite remember
21:45:40 <elliott_> ais523: I'll wait to tell mine too then
21:45:43 <ais523> but one was that what's possible in the language should match what's possible in the actual real word
21:45:57 <Adaria> OK gonna go get food. I'll beback later on.
21:46:16 <Taneb> Turing complete languages are impossible in the real world
21:46:20 <ais523> like it's possible that information currently on another machine will be inaccessible, and that another machine might not cooperate if you tell it to do something
21:46:37 <ais523> so the language should be able to understand that concept, in terms of exceptions or via some other method
21:46:49 -!- MigoMipo_ has joined.
21:47:26 <elliott_> ais523: well, yes, I already had plans for that, but I think my new model makes it easier
21:47:29 <evincar> ais523: Please, monads, not exceptions. I like locality. :P
21:47:38 -!- madbr has joined.
21:47:42 <elliott_> evincar: um "monad" means nothing here
21:47:46 <elliott_> a specific monad might have some meaning
21:47:48 <ais523> evincar: I'm not making assumptions about what the language feature /is/, just that it exists
21:47:53 <monqy> speaking of being unable to real world turing complete, I was just reading the bitbitjump talk page. that was crazy.
21:47:53 <elliott_> Either, for instance, or ErrorT
21:48:09 <ais523> elliott_: another thing was, that for your capabilities, you don't want to be passing references to objects themselves
21:48:14 <pikhq> evincar: "Monad" only makes sense in languages with particular forms of typing.
21:48:16 <ais523> but references to closures that operate on those objects
21:48:21 <evincar> elliott_: Monadic error handling. I'd rather be concise and understandable than pedantically correct. :P
21:48:43 <monqy> except it wasn't understandcable ;_):
21:48:48 <ais523> e.g. if you pass a reference to <object on my computer> that logically means "anyone with the reference can do anything to that object on my computer, even if my computer's turned off"
21:48:53 <elliott_> evincar: well, that is just exceptions
21:48:57 <ais523> which doesn't make sense, so that operation should be physically impossible
21:48:59 <elliott_> <pikhq> evincar: "Monad" only makes sense in languages with particular forms of typing.
21:49:14 <ais523> instead, you can pass a closure that looks into a lookup table on your own computer and then operates on the object
21:49:18 <elliott_> they're just less visible in less powerful languages
21:49:22 <ais523> that way, you can do the equivalent of deleting an object if you change the lookup table
21:49:26 <evincar> elliott_: In any case, I like explicit handling rather than implicit propagation.
21:49:36 <evincar> That's what I was getting at.
21:49:41 <ais523> another thing I noticed is that for practical use, it would make sense to have something that keeps around references to things, and can search and return them
21:49:48 <elliott_> evincar: it's not really monadic then, it's just returning Either
21:49:54 <pikhq> elliott_: Actually. ... Yeah, I think you could pull it off in C, so. :P
21:49:56 <elliott_> but that's a monad too, that gives you implicit propagation
21:50:01 -!- MigoMipo has quit (Ping timeout: 250 seconds).
21:50:02 <ais523> so that if you're not using an object, just wanting to save it for later use, you can just leave one reference to it in that
21:50:11 <ais523> I think that's the @-y equivalent of a filesystem
21:50:12 <elliott_> ais523: well, all that means is that pointers may take a long time to dereference; generalisation: an infinite time; generalisation: dereferencing a pointer may result in _|_; i.e. it can error out too
21:50:19 <Taneb> I like this channel. I pretty much need to have to wikis open just to have a clue what's going on
21:50:26 <elliott_> ais523: Anyway, my method solves this, I think
21:50:31 <Taneb> Makes a change from IRL
21:50:41 <Taneb> Where everyone expects me to know everything
21:50:54 <evincar> elliott_: Not at all. Saying "this function returns either a value or an error" is very different from saying "this function either returns a value or yields an error".
21:51:14 <evincar> They propagate by different means, and one is more explicit than t'other.
21:51:19 <elliott_> foo a = do x <- bar a; y <- quux x; return y
21:51:25 <zzo38> Taneb: I think a monad is something in Haskell
21:51:27 <elliott_> abc a b = do x <- foo a; y <- quux a; return (x+y)
21:51:40 <elliott_> evincar: these both return Either SomeError Integer
21:51:48 <elliott_> evincar: note how abc's code looks just like exception-using code
21:51:53 <elliott_> and the errors explicitly propagate to its return
21:52:12 <elliott_> (Either SomeError String) is an explicit error-tagged return type
21:52:20 <pikhq> Taneb: Simple answer: a monad is a type with functions "(<<=) :: (Monad m) => m a -> (a -> m b) -> m b" and "return :: (Monad m) => a -> m a".
21:52:20 <elliott_> And (Either SomeError) is a monad
21:52:30 <elliott_> evincar: But what the monad provides is /implicit/ error propagation
21:52:31 <pikhq> elliott_: Thanks. Thinko.
21:52:38 <elliott_> In fact, this model is identical to checked exceptions
21:52:57 <evincar> elliott_: Only via implicit typing, unless I'm mistaken?
21:53:10 <elliott_> What do you mean by implicit typing and how is it related here?
21:53:34 <elliott_> Basically, monadic error handling doesn't make error handling explicit; it does the opposite, it lets you use an explicit "error or result" type as if it were implicit, by abstracting the transformation of results monadically.
21:53:42 <elliott_> You still have to note what errors you produce in the return type.
21:53:49 <elliott_> But this is just like Java's checked exceptions.
21:53:57 <elliott_> It is exception-based error handling.
21:54:05 <elliott_> (in the context of being monadic)
21:54:15 <evincar> I'm with you. I just disagree that they're "just like" one another.
21:54:28 <elliott_> Do you know what Java's checked exceptions are?
21:54:38 <elliott_> Methods have to record, in their type signature, what exceptions they can throw.
21:54:46 <elliott_> int foo(int n) throws SomeError;
21:54:51 <elliott_> foo :: Int -> Either SomeError Int
21:55:05 <evincar> Yes. But it is recorded separately from return type. That's all.
21:55:13 <evincar> It's a different abstraction for the same thing.
21:55:38 <evincar> I prefer to unify them in the return type rather than saying "exceptions are magical things that perform stack unwinding etc."
21:55:39 <elliott_> Well, I would argue "different"; you can very simply mechanically translate each model into the other. And it's right in the type signature.
21:55:44 <elliott_> It's "implemented" differently, that's true.
21:56:04 -!- oerjan has quit (Quit: Good night).
21:56:17 <elliott_> But still, I'd say that a monadic model of error handling is the same as checked exceptions. (And the same as unchecked exceptions if you make "SomeError" an existential on some Exception typeclass.)
21:57:04 <evincar> Oh, they're identical in function, sure. They just differ in form.
21:57:14 <monqy> form as in syntax or what
21:57:54 <zzo38> I hope I can try to make a program in TeX for parsing Haskell codes
21:58:11 <evincar> monqy: That, and implementation; in C++ I can return a boost::optional from every function, or I can throw exceptions.
21:58:47 <evincar> monqy: Exceptions are more idiomatic to that language, but I would prefer the other route.
21:58:50 <elliott_> evincar: Well, that's just because C++ has really awkward syntax :)
21:59:08 <evincar> elliott_: On this, all can agree.
21:59:19 <elliott_> But yeah, checked exceptions are actually a Good Thing. It's just that Java is never used functionally enough for them to be useful rather than annoying.
21:59:32 <evincar> elliott_: Functionally meaning "as a functional language"?
21:59:41 <elliott_> Yes. But also those other meanings, too. :-)
21:59:56 <elliott_> Tony Morris will now beat me over the head with a baseball bat and shout about the Functional Java library.
22:00:18 <pikhq> elliott_: Oh, don't worry, you said "used".
22:00:34 <pikhq> Hardly anyone uses that library, so. :)
22:00:37 <evincar> Heh. Well, Everything is an Object (Except Primitives (Except with Autoboxing)) isn't the best model for a type system, unsurprisingly.
22:01:01 <pikhq> evincar: Psuedostatic typing is an awful thing. :P
22:01:19 <elliott_> pikhq: It's a rather amazing library as an achievement
22:01:30 <elliott_> Not sure I could use it without the lambda syntax that's coming though
22:02:01 <Taneb> How would a subject orientated language work?
22:02:28 <evincar> Taneb: However you want. "Subject/object" isn't the distinction you want to make here.
22:02:39 <elliott_> a [linguistics]object oriented language would just be OOP with inversion of control everywhere
22:02:48 <elliott_> apples have to know how a human eats them
22:03:16 <elliott_> evincar: What happened to that language that I forget the details of that we talked about in here when I was sleep-deprived in-between discussions about cities and libertarianism... I think... ?
22:03:17 <evincar> "Object-oriented programming" is a refinement of structured programming.
22:03:30 -!- augur has changed nick to augur[afk].
22:03:45 <evincar> elliott_: Oh, you mean my research language, the one based on adjectives?
22:04:45 <elliott_> evincar: I'm... not sure. I seem to recall telling you that the imperative control structures you insisted on bolting on to it were ruining the cool idea at the core, but I don't remember more than that. :p
22:06:20 <evincar> Yeah, that was the one. It was based entirely on the conjecture that you can perform computation with continuous descriptions of information rather than discrete units of it.
22:06:59 <evincar> Evaluation was basically graph reduction, as you'd expect with any relatively simple functional language.
22:07:10 <elliott_> That seems suspect, since the real numbers aren't computable. :p
22:07:18 <monqy> and why did it have imperative control structures
22:07:42 <elliott_> monqy: man why did you remind me of the bitbitjump talk page
22:07:56 <monqy> bitbitjump talk page made me sad
22:08:30 <evincar> elliott_: I don't mean continuous in the sense of a continuous quantity. I just mean that "objects" need not be independent instances, but rather named regions of a description space.
22:08:35 -!- Patashu has joined.
22:08:44 <evincar> Whose borders are not necessarily sharply defined.
22:08:55 <evincar> monqy: Because I was still feeling out the idea to see what could work.
22:09:26 <evincar> I haven't really been working on it. So many other things are going on. :P
22:09:50 <elliott_> ais523: how long are you going to be here? wondering whether it's worth collecting my thoughts on my model to tell you
22:10:18 <ais523> elliott_: probably a while, but maybe not, and I'm also not paying much attention
22:10:26 <ais523> so it's probably not going to be as rewarding as you'd hope
22:10:52 <elliott_> ais523: meh, I won't bother then
22:10:57 <elliott_> but I do think it solved all of your complaints
22:11:09 <evincar> elliott_: Now you've piqued my curiosity.
22:11:38 <ais523> elliott_: that seems reasonable
22:11:40 <elliott_> evincar: err, do you know what @ is? I'll have to send you at.html if not
22:12:01 <elliott_> ais523: and it also allows the capability model to work across the network, rather than a separate communication method being used across the network
22:12:27 <ais523> bleh, the file should be called @.html
22:12:33 <ais523> because @ is a placeholder, not an actual name
22:12:36 <ais523> also, ......................
22:12:44 <ais523> not completely, but working intermittently
22:13:18 <elliott_> evincar: Also install Bitstream Charter it is a cool typeface. (I am not saying this because at.html requests it first in the CSS. Honest.)
22:14:35 -!- madbr has quit (Read error: Connection reset by peer).
22:15:14 <ais523> elliott_: oh, here's today's dose of Secret Project spoilers: http://codepad.org/oP5twvVz
22:15:20 <ais523> that isn't the project itself, it's a test program
22:15:26 <ais523> which now runs correctly under it
22:15:32 <ais523> I think I have the basics of timing determinism down
22:15:49 <ais523> it will eventually, I imagine
22:15:55 <ais523> the difficult part there is the I/O
22:16:05 <elliott_> ais523: ha, I just teased another spoiler out of you
22:16:08 <ais523> I've had things fail to reproduce because of the buffer size on the input side of /dev/tty
22:16:26 <ais523> I answered the question based on my own knowledge of how implemented my thing is
22:16:47 <monqy> now we know you haven't tested nethack
22:17:00 <ais523> also, atm it runs executables independent of any environment
22:17:07 <ais523> so it doesn't work for things that refer to other files
22:17:20 <ais523> except, atm, I put the entirety of /usr inside the chroot because shared libraries
22:17:37 <elliott_> "I think one can build a real TC machine. Let a real computer be able to request a bank of additional memory. Someone is obliged to go buy memory and provide to the computer. The computer can switch between the banks of memory in only left/right way, so the address space of the computer remains the same. Now this whole system, the real computer and the person serving as a provider of additional memory, will be really a Turing-complete machine."
22:17:38 <ais523> eventually I'll have to get specific versions of the shared libraries in case they don't return the same pointer every time, or something
22:17:51 <ais523> only finite amounts of storage exist in the universe!
22:18:17 <elliott_> ais523: thanks captain obvious
22:18:32 <elliott_> ais523: now let me introduce you to your new colleage, N. S. Sherlock
22:18:35 <ais523> elliott_: I'm replying to whoever made that quote
22:18:58 <Taneb> Depends whether the universe is unbounded or not
22:19:24 <ais523> according to current belief, only a finite amount of it is accessible
22:19:30 <ais523> and the size is large but measurable
22:19:42 <Taneb> If it is, we can store information as the distance between two arbitary points.
22:19:50 <Taneb> This information is not necassarily accessible
22:20:02 <elliott_> Taneb: umm, that doesn't help you build a UTM
22:20:05 <Patashu> Don't forget it'll be made fuzzy due to heisenburg stuff
22:20:12 <Patashu> You can't store real numbers as distances
22:20:13 <Taneb> I'm not saying it does
22:20:19 <elliott_> ais523: Isn't it something silly like "infinite from our perspective but with finite storage"
22:20:43 <Taneb> I think it's write-only memory
22:20:58 <ais523> elliott_: the reachable boundary is finite and you can measure its location
22:21:06 <elliott_> ais523: But I read that the "blowing up a balloon" model for explaining the universe's expansion was disliked nowadays because evidence shows to the topology of the universe being flat and infinite
22:21:19 <elliott_> [asterisk]evidence suggests that the blah blah
22:22:26 -!- madbr has joined.
22:22:29 <Patashu> According to this paper 'The universe can have performed no more than $10^{120}$ ops on $10^{90}$ bits.'
22:22:48 <ais523> anyway, Linux's API for interrupting a sleep three times, by ignored signal then ignored signal then handled signal, is really frustrating
22:22:52 <ais523> but I think I got it working
22:22:57 <elliott_> ais523: I was hoping you'd have an answer to that :(
22:24:44 <elliott_> evincar has been engulfed by the sheer power of @
22:24:45 -!- madbr has quit (Read error: Connection reset by peer).
22:24:50 <zzo38> Would it be possible to invent a program doing Knuth-style literate programming for Haskell by using Template Haskell?
22:24:53 <elliott_> Patashu: op seems a bit vaguely-defined
22:25:13 -!- augur[afk] has changed nick to augur.
22:25:21 <Patashu> it's probably defined better in the paper
22:27:02 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:27:21 <Taneb> I've just had a thought
22:27:28 -!- FireFly has quit (Quit: swatted to death).
22:27:57 <Taneb> Any number can be represented as unary, right?
22:28:16 <Taneb> I've just had an idea for representing a series of numbers as unary
22:28:23 -!- quintopia has quit (Ping timeout: 276 seconds).
22:28:25 <Taneb> Based on powers of primes
22:28:30 <Taneb> It's probably been done before
22:28:41 <evincar> Taneb: Any natural number. And I bet I've had the same idea. :P
22:28:53 <Taneb> But lets say you wanted [2,6,9]
22:29:04 <Patashu> Just define a spiral path through all {x,y} tuples, that's how you biject rationals onto integers
22:29:10 <Patashu> and then a new path through all {x,y,z} tuples...
22:29:19 <Taneb> You'd record it as 2^2 * 3^6 * 5^9
22:29:50 <elliott_> Patashu: you can obviously do N^(n+1) => N^n given (N,N) => N
22:30:13 <Patashu> Hmm, that sounds like it would work
22:30:20 <Patashu> Curse you, prime factorization, for making problems so simple! *fist shake!*
22:30:51 <Taneb> Of course, [2,6,9] would be 5695312500, which is huge
22:31:17 <evincar> Taneb: Look up Fractran, by the way.
22:31:29 -!- madbr has joined.
22:31:38 <Taneb> Fractran is substaintially different
22:31:53 <Taneb> That's a series of fractions, this is a single unary number
22:32:15 -!- quintopia has joined.
22:32:15 -!- quintopia has quit (Changing host).
22:32:16 -!- quintopia has joined.
22:32:22 <evincar> I was just making sure you were aware of it. It's relevant.
22:32:23 <elliott_> evincar: So disappointed in you right now.
22:32:27 <Taneb> Of course, this gives me an idea
22:32:46 <Taneb> A fractran program expressed in this notation!
22:33:01 <elliott_> evincar: BEING GIVEN AT.HTML AND NOT IMMEDIATELY TELLING ME ABOUT YOUR NEW DEDICATION TO THE CULT OF @ IS UNACCEPTABLE
22:33:43 <evincar> elliott_: So with regard to the thing about trusted code, how do you define "damage" to the system?
22:33:59 <elliott_> Argh, stop picking on the parts I just dropped as random unformed ideas. :p
22:34:20 <elliott_> evincar: You could bundle (machine code, proof that it accesses no memory it was not passed and did not allocate).
22:34:24 <evincar> The whole thing is a series of such.
22:34:37 <evincar> Then you make them into a thing that works.
22:34:50 <elliott_> Anyway, there are better-formed ideas, they're just not interesting as an introduction.
22:34:52 <elliott_> <elliott_> evincar: You could bundle (machine code, proof that it accesses no memory it was not passed and did not allocate).
22:35:05 <elliott_> + doesn't access any ports it isn't passed, blah blah
22:35:17 <elliott_> Basically just something to guarantee that it does not violate the safety guarantees that the compiler offers.
22:35:25 <elliott_> I'm not sure this is a practical idea though, formal verification is very hard.
22:36:20 <evincar> Yeah, I think that level of security is going to be tremendously difficult to attain. I mean, if you control the system from the ground up (which you do) and you ensure that all of your code is perfect (which it won't be), you might have a chance. Maybe.
22:36:42 <elliott_> Umm, no, the "level of security" required to be proven there is a very easy minimum standard to attain.
22:36:52 <evincar> But if the whole thing is incrementally developed, fully tested, formally verified, etc., you stand a chance.
22:37:01 <elliott_> No, it does not require perfect coding at all.
22:37:06 <evincar> I'm not a proponent of TDD, but I play one on TV. :P
22:37:19 <elliott_> Don't try and make technical claims about my system based on a very broad general introduction I wrote months ago :P
22:37:30 <evincar> Not gonna. That's as technical as I'm getting.
22:37:31 <Taneb> I'm trying to parse "TDD" as an emoticon
22:37:38 <evincar> And I'll be back from food shortly.
22:37:45 <elliott_> But yes, that's not the plan wrt formal verification at all
22:37:48 -!- evincar has changed nick to evincar[afk].
22:38:45 <ais523> it's probably better to work on source code rather than machine code, use a type checker to prove safety, and then hope there are no security bugs in the compiler
22:39:43 <elliott_> ais523: It was intended as an alternate route into the system, but yeah, now I'm wishing I edited it out
22:40:00 <elliott_> As far as security bugs in the compiler go, I think any sort of exploitable bug is really contrived in @'s context
22:41:01 <ais523> elliott_: one that dereferenced an integer as a pointer would probably be enough
22:41:15 <elliott_> ais523: Compilers for things like Haskell, interpreters for languages like Python and Ruby -- why do they segfault? Usually the compilers segfault because of a system call or a broken allocation/GC, and interpreters usually segfault because [lol C].
22:41:16 <ais523> but luckily that's pretty easy to avoid
22:41:31 <ais523> I mean, it's not contrived, it's just easy to avoid
22:41:32 <elliott_> In @, there are no "system calls" like that, everything is more or less memory safe
22:41:39 <elliott_> And the compiler is written in @lang, not C
22:42:00 <elliott_> The allocator/GC has to be pretty good, yeah, but OTOH, if the GC allocates a used object, that just results in crashing, not a security bug.
22:42:09 <elliott_> Unless a dangerous object gets allocated RIGHT THERE the next second.
22:43:00 <olsner> such bugs have been exploited before :)
22:43:45 <elliott_> olsner: The situations I know of are also contrived in @ :-P
22:44:47 <zzo38> How do you write C programs in @?
22:45:56 <ais523> normally, if a race condition like that exists, it can be manipulated to happen
22:46:04 <zzo38> But I thought @ is not C?
22:46:22 <elliott_> zzo38: Linux isn't written in Pascal, but you can still compile Pascal programs on Linux
22:46:23 -!- MigoMipo_ has quit (Read error: Connection reset by peer).
22:47:43 <zzo38> I know. But I don't know how @ works, you said there is no systems calls, everything is memory safe, etc
22:47:43 -!- madbr has quit (Read error: Connection reset by peer).
22:47:56 <zzo38> Does anything special required?
22:48:09 <ais523> presumably C programs would run in a VM
22:48:28 <elliott_> Pointers probably wouldn't be integers
22:48:42 <Patashu> Is programming for the GPU safe? Since as far as I'm aware the GPU doesn't have system calls
22:48:47 <elliott_> zzo38: Well, you can't have pointers be direct memory addresses.
22:48:55 <ais523> they would be convertible to integers in C, because in C you can decompose anything into a sequence of octet
22:49:04 <ais523> but they probably wouldn't correspond to memory addresses
22:49:08 <elliott_> zzo38: But with a richer pointer type inherited from @, and a libc, you could do it fine
22:49:26 <zzo38> O, that's how it works.
22:49:47 <elliott_> C isn't memory safe, but all non-memory-safe usages of C are either bugs or pathological things that can be handled specially, like using invalid memory as a RNG seed
22:49:54 <elliott_> (Usually that's just a bad idea, though)
22:50:05 <elliott_> ais523: but, you only have to do the conversion when it's actually casted and read from
22:50:11 <elliott_> you can just store them as pointer objects before that
22:50:17 <zzo38> Would LLVM codes be compiled into whatever code @ uses? Does @ use native code or almost native code or something else or whatever?
22:50:22 <elliott_> which, happily, desugar to memory addresses or something close to it (probably tagged) in @
22:50:23 <ais523> well, if people are passing around pointers to pointers and memcpy them
22:50:31 -!- copumpkin has joined.
22:50:35 <ais523> you have to deal with that situation somehow
22:50:40 <ais523> also, what about unions?
22:51:01 <elliott_> zzo38: Well, the main programming language for @ is @lang, which is a completely new language; but I have a feeling that lower down, there'll be a (memory-safe, etc.) LLVM-style language
22:51:10 <elliott_> A C compiler would want to output that, instead
22:51:39 <elliott_> ais523: @ still has byte arrays, you know
22:51:54 <zzo38> Yes, I know there is C compiler into LLVM so probably it can be used. Maybe some of the commands in LLVM won't work
22:52:02 <elliott_> ais523: But a more high-level representation may be preferable for debugging and @ integration
22:52:34 <elliott_> ais523: Which may have a performance penalty, of course, but it shouldn't be that bad (because, after all, @lang should have acceptable performance for just about anything in the first place).
22:52:47 <zzo38> Is it a subset of the available LLVM commands? Is there some new commands? Can you tell me what it is?
22:53:07 <elliott_> zzo38: I'm not very knowledgable about LLVM's IR instructions.
22:53:15 <elliott_> But I think most of them should map fairly directly.
22:53:33 <ais523> elliott_: it has byte arrays, just can't interpret them as anything but bytes
22:53:38 <elliott_> zzo38: The "low-level" language will probably have some kind of strong typing, so that it's invalid to, say, load an integer into a register, and then try and dereference it.
22:53:40 <ais523> in particular, how do you safely convert them /back/ into pointers?
22:54:05 <elliott_> ais523: Well, that's true. (Note that you _can_ do that as a user; I think the difference is that those are in boxes.)
22:54:13 <elliott_> Basically, you can inspect anything in a box totally, but you can't inspect values itself.
22:54:27 <elliott_> You can look at the source code to a function if it's in a box, but you can't look at the source code to a function value (that would break parametricity)
22:54:41 <elliott_> That way, @ can be totally inspectable without breaking all sorts of important theoretical properties.
22:55:08 <elliott_> ais523: And if the C compiler has enough access to the pointers it uses, it might be able to have them in boxes? I'm... not sure.
22:55:16 <elliott_> But yeah, a higher-level representation would be easier.
22:55:32 <ais523> pointers as indexes into a byte array would be easiest for C
22:55:39 <ais523> possibly not best, but easiest
22:55:42 <elliott_> ais523: One way you could do it is to have the C heap -- yeah.
22:55:52 -!- madbr has joined.
22:55:52 -!- invariable has joined.
22:55:58 <elliott_> ais523: The thing is that that should, in @, desugar to direct memory-array access.
22:56:07 -!- invariable has left.
22:56:20 <elliott_> So it'll require a separate heap, but it'll be fast.
22:56:25 <ais523> that would work, I think; to cast byte array to pointer, you just have to check to see if it's in range
22:56:38 <ais523> also, are you planning to use the MMU for anything? my guess is no, but I'm not sure
22:56:56 <zzo38> elliott_: LLVM does not allow loading an integer into a register and then try to dereference it directly; you need to cast it first. So, you could have in @ that the LLVM commands for doing that are not allowed.
22:56:59 <elliott_> Well, the whole idea of @ is that if your language has these strong safety guarantees, then you can compile it to really unsafe code, which is fast.
22:57:13 <pikhq> Well, the MMU would actually be pretty handy in @.
22:57:27 <elliott_> zzo38: Right. Casting to a pointer would have to be restricted. Of course, if you use a separate heap, like ais523 is talking about, you can allow free casting and all that.
22:57:29 <ais523> the MMU wouldn't be helpful for safety
22:57:30 <elliott_> It's just less integrated that way.
22:57:34 <ais523> but I'm wondering if it would still be useful anyway
22:57:40 <elliott_> ais523: Erm, I forget exactly what the MMU handles >_>
22:57:53 <pikhq> ais523: No, but it'd make it easier to handle the fact that the disk is nothing more than another tier of memory.
22:57:53 <olsner> elliott_: memory, it manages memory :)
22:57:55 <elliott_> Just cross-process memory safety?
22:58:01 <zzo38> LLVM also does allow pointer types to specify which memory area it points into, and you can have many memory areas.
22:58:19 <pikhq> Cross-process memory safety isn't actually a feature of the MMU *itself*.
22:58:20 <zzo38> So maybe @ can define what those areas are.
22:58:20 <elliott_> ais523: Well... the MMU is useful in that I load pages from disk and map them with the MMU.
22:58:28 <elliott_> zzo38: Yes, that would be useful.
22:58:46 <pikhq> That's done pretty much exclusively by having the kernel swap the page tables on context switches.
22:59:32 <pikhq> It's both essential to process safety with direct memory access *and* not designed for it. :)
22:59:38 <elliott_> But yes, I'm afraid I'm not too good at my compartmentalisation of an extended IBM PC; I know mostly what it can do, but not what handles what, as far as the actual core architecture goes.
22:59:47 <elliott_> So I'm not sure if the MMU can help.
22:59:59 <pikhq> elliott_: It will.
23:00:29 <pikhq> Just nowhere near as much as it would on traditional OS designs.
23:00:51 <ais523> what the MMU basically does is pagefault if you try to access memory that's on the disk at the time
23:01:04 <ais523> and transfer control to some sort of pagefault handler, which is meant to be part of the kernel
23:01:22 <pikhq> And maps between virtual memory and real, physical RAM (obviously)
23:01:26 <ais523> now, I don't think there's any particular security issue with paging arbitrary bits of memory in/out of the places they're meant to be anyway
23:01:39 <ais523> unless you could use it for a DOS
23:02:09 -!- azaq23 has quit (Quit: Leaving.).
23:02:12 <elliott_> ais523: right, that's useful because @'s orthogonal persistence can use it, I think
23:02:28 <pikhq> It's also useful for COW.
23:02:59 <elliott_> If you're asking me about @, surely you're paying enough attention for me to explain my thoughts on the network-capability model? :-P
23:03:43 <ais523> I suppose what an MMU really does, fundamentally (other than mapping virtual to real pointers), is to call a function when someone tries to dereference pointers to particular memory locations
23:03:47 <ais523> and there are all sorts of uses for that
23:05:32 <zzo38> Yes there can be a lot of uses of such things, I think.
23:06:36 -!- evincar[afk] has changed nick to evincar.
23:06:37 -!- madbr has quit (Read error: Connection reset by peer).
23:06:37 <pikhq> On AMD64 it can also call a function when someone tries to execute from particular memory locations.
23:06:41 <elliott_> ais523: anyway, the idea I had was: you know how I said you could ask any machine for an object by giving it its identifier, and it'd decide whether to give it or not?
23:08:14 <elliott_> ais523: well, that's wrong, that isn't how it should work at all
23:08:49 <elliott_> ais523: What's the basic mechanism by which objects can be accessed by code in the object-capability model? Simple: Another piece of code, which already has the reference, passes it to your code. (Functions returning a reference are equivalent to this by CPS.)
23:09:30 <ais523> you saying the original idea was wrong, that is
23:09:46 <elliott_> ais523: So, say computer B wants to give an object reference to computer A, which is the computer owned by our protagonist, who will be left unnamed, as they are irrelevant.
23:09:48 <evincar> elliott_: So you rely on the type system to prevent the user from breaking anything, and you give the user everything they need.
23:09:54 <evincar> By user I mean programmer of course.
23:09:56 <elliott_> evincar: I'll answer after finishing explaining to ais523
23:10:25 <elliott_> ais523: Object X on computer B wants to give (an object reference to Z) to object Y on computer A.
23:10:40 <elliott_> ais523: B/X wants to give (an object reference to B/Z) to A/Y.
23:10:58 <elliott_> With me? (We assume B wants A to access Z via B for simplicity.)
23:11:40 <ais523> I mean, where the data is physically stored
23:11:46 <ais523> which is irrelevant from the user's point of view
23:11:54 <ais523> but very relevant wrt the network protocol
23:12:00 <elliott_> ais523: OK, so let's also assume that B/X has the public key of A/Y.
23:12:07 <ais523> that's a sensible assumption
23:12:11 <ais523> public keys are known by everyone
23:12:17 <elliott_> (Yes, an object with a public key; next they'll want to marry, but let's just assume so.)
23:12:42 -!- Taneb has quit (Ping timeout: 260 seconds).
23:12:52 <zzo38> Would you have to make some way of doing this using LLVM?
23:12:56 <elliott_> ais523: B/X sends the following (we assume they have a communication channel open, the means is unspecified; just like we assume there's a function call going on normally) to A/Y, encrypted to A/Y's public key, so that nobody can snoop on it:
23:13:02 <elliott_> zzo38: no, this is a higher-level detail than that
23:13:22 <elliott_> ais523: (a public key, a socket)
23:13:38 <elliott_> ais523: (B/Z's public key, a socket to B)
23:13:47 <elliott_> ais523: The socket can be sent as (host, port) of course.
23:13:51 <elliott_> It's allocated for the purpose.
23:13:58 <ais523> hmm, it seems to me as if both halves of your keypair are private
23:14:09 <ais523> we need better terminology
23:14:14 <ais523> I mean, you're saying "public key"
23:14:21 <elliott_> ais523: You can encrypt messages to a public key with GPG, can you not?
23:14:21 <ais523> ah, and the socket is guessable
23:14:26 <ais523> so why does it need encryption?
23:14:36 <elliott_> ais523: Ummm, this is a different socket. You are misunderstanding.
23:14:43 <elliott_> Let me tell you the whole model.
23:14:53 <ais523> what I mean is, is B/Z's public key public knowledge?
23:15:03 -!- madbr has joined.
23:15:17 <elliott_> It's sent over the wire in case A/Y doesn't know it.
23:15:39 <ais523> so why is the pubkey/socket pair encrypted?
23:15:47 <ais523> the host is probably obvious, and there's a reasonably small number of ports
23:15:59 <elliott_> ais523: OK, awit, I made a mistake.
23:16:00 <ais523> so the encryption doesn't seem to gain you anything
23:17:25 -!- madbr has quit (Read error: Connection reset by peer).
23:17:43 <elliott_> ais523: B/X sends encrypt((a newly-generated private key, B/Z's public key, (B's host, a newly-allocated port)), A/Y's public key) over its communication channel to A/Y. A/Y connects to the (host,port) and sends the time, or something, signed with the private key it received. This socket is "connected" to B/Z (it's actually operating-system-level, but this is the model). B/Z sends itself (serialised in the form of bytes, etc.) down the socket, signed
23:17:46 <ais523> hmm, you know how X determines if someone's allowed to pop up windows on your screen? using a random key, that's stored in a file only you can read and regenerated every time it starts
23:17:56 <elliott_> A/Y checks the signature, sees that it's correct, and knows that it has received B/Z.
23:18:20 <ais523> "sends the time" is to prevent replay attacks?
23:19:03 <elliott_> ais523: B/X sends encrypt((a newly-generated private key, B/Z's public key, (B's host, a newly-allocated port)), A/Y's public key) over its communication channel to A/Y. A/Y connects to the (host,port) and sends the time, or something, signed with the private key it received. This socket is "connected" to B/Z (it's actually operating-system-level, but this is the model). B/Z sends itself (serialised in the form of bytes, etc.) down the socket, signed
23:19:03 <elliott_> to B/Z's key, __and encrypted with A/Y's public key__.
23:19:08 <elliott_> A/Y decrypts it, checks the key, and we're done.
23:19:15 <elliott_> ais523: Behind the scenes, B/X told B/Z "I'm about to give someone a pointer to you; here is a newly-generated private key, and their public key".
23:19:24 -!- TeruFSX has joined.
23:19:25 <elliott_> (It actually tells the operating system, but again, this is an abstraction.)
23:19:43 <elliott_> B/Z will not give itself to anyone who isn't marked as about to be given itself.
23:19:52 <elliott_> i.e. it will not give itself to anyone who can't sign with their key.
23:20:11 <elliott_> ais523: A fundamental point of this security model is: It doesn't matter if anyone can see every single bit of traffic on the internet.
23:20:19 <elliott_> ais523: In fact, hosts become an optimisation.
23:20:27 <elliott_> ais523: You could have only two operations in the entire networking stack:
23:20:31 <elliott_> - Send packet to entire internet;
23:20:34 <elliott_> - Receive a packet from the internet.
23:20:34 <ais523> so, hmm, is this giving B/Z itself? or a copy?
23:20:47 <elliott_> ais523: What's the difference? Objects are immutable.
23:20:57 <evincar> elliott_: You functional devil, you.
23:21:01 <ais523> ah, fair enough, that's something I didn't grasp about how you were using "object"
23:21:16 <elliott_> ais523: It's intentionally vague. But objects being mutable seems to mess up the model.
23:21:19 <ais523> so the only possible way to delete something is to remove all references to it
23:22:11 <evincar> elliott_: Well, mutating a singly-referenced object can be a good optimisation for destroying and replacing it.
23:22:18 <ais523> I'm puzzled at how you can implement Internet-wide garbage collection
23:22:27 <ais523> or how this will work without it
23:22:28 <elliott_> ais523: One cool thing is this:
23:22:31 <elliott_> Who sent a packet is also irrelevant.
23:22:34 <ais523> evincar: that is indeed just an optimisation, though
23:22:39 <elliott_> Destinations are irrelevant, sources are irrelevant.
23:23:02 <elliott_> ais523: Anyway, it's quite a high-overhead model, but it does capture (up to the cryptographic system being broken) a secure passing of a pointer.
23:23:08 <elliott_> Optimising it... well, that can come later.
23:23:32 <elliott_> ais523: Why do you need Internet-wise garbage collection? Garbage collection matters only to individual computers which don't like running out of disk.
23:23:52 <ais523> elliott_: in case you garbage-collect an object that another system was about to ask you for a copy of
23:24:07 <ais523> e.g. X wants to pass a copy of Z to Y
23:24:15 <ais523> then it forgets about Z
23:24:17 <evincar> elliott_: Yeah, you run into synchronisation issues with the garbage collector there.
23:24:22 <elliott_> ais523: I think that cross-network pointers are weak references by definition
23:24:25 -!- madbr has joined.
23:24:29 <elliott_> ais523: but, umm, if they're not:
23:24:32 <ais523> that fits in with my thinking too
23:24:37 <elliott_> ais523: Obviously X stores all the people waiting to get Z
23:24:42 <ais523> in that the language should only allow you to express operations that make physical sense
23:24:49 <elliott_> ais523: If pointers just expire after a certain amount of time, then that gets removed
23:24:51 <elliott_> And those all count as references
23:24:52 <ais523> X storing all the people waiting to get Z is very vulnerable to denial-of-service
23:25:02 <ais523> and bringing time into the matter seems really awkward and un@like
23:25:05 <elliott_> so that it knows the generated keys
23:25:15 <ais523> shouldn't /Z/ be storing that info?
23:25:28 <elliott_> umm, I'm mixing up machines and objects
23:25:32 <elliott_> can you switch to the machine/object notation for objects?
23:25:44 <elliott_> <ais523> e.g. X wants to pass a copy of Z to Y
23:25:44 <elliott_> <ais523> then it forgets about Z
23:26:00 <elliott_> note that if I could avoid using TCP, the machine part is irrelevant
23:26:06 <ais523> and "it" = "then X forgets about Z"
23:26:18 <ais523> also, UDP sounds like a better fit for what you're doing
23:26:22 <elliott_> e.g. B/X wants to pass a copy of B/Z to A/Y
23:26:51 <elliott_> ais523: forgets as in, B/X pops out of the call frame that looked up B/Z from a hash table, and now it holds no reference?
23:27:05 <elliott_> (I was going to say "sets the variable holding B/Z to null", but, haha, functional)
23:27:09 <ais523> elliott_: yes, for instance
23:27:15 <ais523> or "the variable holding B/Z goes out of scope"
23:27:20 <ais523> which works both functionally and imperatively
23:27:30 <elliott_> <ais523> also, UDP sounds like a better fit for what you're doing
23:27:51 <elliott_> ais523: And we assume that the only thing with a reference to B/Z locally is B/X?
23:27:55 <elliott_> So that when it goes out of scope, B/Z is (locally) garbage
23:28:18 <ais523> I think using weak pointers is the best solution here
23:28:34 <elliott_> ais523: Well, B (the operating system) holds a table of all (generated public key, receiving machine's public key) waiting to receive Z
23:28:37 <ais523> "pointer" carries extra baggage I'm not happy with in this ontext
23:28:41 <elliott_> And those can count as references
23:28:49 <elliott_> So time is unavoidably a factor
23:28:53 <ais523> elliott_: and expires them if the other side is being slow?
23:29:02 <elliott_> I think they count as references without any special support
23:29:09 <elliott_> Just use a tuple database or whatever
23:29:17 <elliott_> And store (Z, gen_pubkey, recv_pubkey)
23:29:55 <elliott_> ais523: B/X can cheat A/Y out of B/Z
23:29:59 <elliott_> oh wait, B/X can lie to A/Y anyway
23:30:02 <elliott_> by just sending a junk reference
23:30:12 <ais523> because it was A/Y that asked it for the reference
23:30:22 <elliott_> I was thinking it could snap up B/Z before A/Y does, because it knows the private key used
23:30:26 <ais523> B/Z can also cheat A/Y out of itself, but arguably, in that case it was lying to B/X
23:30:58 <elliott_> OK, I think this is a workable and secure model, albeit a very slow and memory-hogging one (every object needs a key!)
23:31:06 <elliott_> But optimising it can come later
23:31:25 <ais523> objects need keys only if something's trying to pass them over the network
23:31:38 <ais523> I hope your computers have thermal noise diodes in, btw, or they're going to run out of entropy pretty quickly
23:31:52 <elliott_> Well, I think I can avoid explicitly using GPG keys or whatever
23:32:07 <elliott_> ais523: most ISPs filter out traffic that is invalid TCP and UDP, right? hmm, wait, it's irrelevant, nobody will be a @protocol router anyway
23:32:14 <elliott_> so I have to layer this on top of... probably UDP, lower overhead
23:32:34 <elliott_> ais523: unfortunately, what I would like is not even valid IP -- I would like to remove the source field, as it's irrelevant
23:32:42 <ais523> elliott_: it's not so much "filter out", but routers are generally told not to forward things they don't understand
23:32:44 <elliott_> So is the destination field, but it helps for routing. :p
23:32:58 <ais523> so you'll send the message and it just won't be routed
23:33:13 <ais523> you can just ignore the source header, IIRC it can be faked anyway
23:33:29 <ais523> your objects contain keys
23:33:34 <ais523> they'll be way longer than four bytes
23:33:52 <ais523> no, the private keys you were referring to earlier
23:33:54 <elliott_> With this model, you don't actually need objects to have any global name at all
23:34:01 <elliott_> ais523: oh, well right, like I said I'm optimising that :P
23:34:07 <elliott_> ais523: for instance, you can send all of an object's dependencies in one go
23:34:14 <elliott_> rather than opening a communication channel for each
23:34:36 <elliott_> ais523: Ideally, I would just hook up the entire world to one big Ethernet cable, and everyone would see everyone's packets, and computers would process every one of them, and only respond to the ones it can decrypt
23:34:41 <elliott_> but that seems rather unlikely
23:35:15 <ais523> I think routing to particular destinations will save you processor time in trying to decrypt things you don't have the key for
23:35:17 <Sgeo_> I think ais523's question messed with my head
23:35:21 <ais523> which is a really useful optimisation
23:35:39 <elliott_> ais523: the question is how to abstract it entirely from the user
23:35:42 <Sgeo_> elliott_, about whether he could persuade me not to buy a Sony ereader for no reason
23:35:57 <elliott_> Sgeo_: oh wow, I'm totally going to logread
23:36:06 <Vorpal> Sgeo_, about when in the logs?
23:36:14 <ais523> elliott_: I asked if (I could persuade Sgeo_ to boycott Sony without telling him the reason)
23:36:43 <ais523> (sorry about the parens, I couldn't figure out how else to make the sentence unambiguous)
23:36:47 <elliott_> ais523: Sgeo_ is pro at understanding
23:37:04 <ais523> the question wasn't a request for him to boycott Sony; it was a question about whether I could persuade him to
23:37:04 <Vorpal> 10:31:59 <ais523> Sgeo_: can I persuade you to mindlessly boycott Sony without telling you why? <-- ah I found it
23:37:11 <elliott_> I take it Sgeo_ is avoiding the Kindle because he's a hipster
23:37:19 <elliott_> if he's considering Sony products it can't be for ethics
23:37:33 <Sgeo_> elliott_, I'm actually considering getting a Kindle now, but not a current Kindle
23:37:36 <ais523> elliott_: shush, you'll let him know why he's supposed to boycott Sony!
23:37:47 <elliott_> ais523: umm, but I just realised I don't completely recall myself
23:37:59 <elliott_> ais523: I have this tendency to remember opinions and drop their justifications to save storage space; this is probably dangerous
23:38:28 <ais523> I remember that when Sony did their most recent thing that got people to boycott them, there were lots of people saying that they would boycott them except that they were boycotting them already
23:38:34 <ais523> and couldn't boycott further
23:38:34 * elliott_ appends list to things he needs to master to create @: networking
23:38:39 <elliott_> and oh dear, I hate networking
23:38:41 <Sgeo_> The rootkit stuff was in 2005, right? And as far as security is concerned, I could just not buy from the Sony eBookstore
23:38:44 <ais523> *appends to list of things
23:39:04 <elliott_> it's a set, anyway, not a list
23:39:07 <monqy> the list is named "things he needs to master to create @"
23:39:19 <ais523> can you append to a set?
23:39:33 <Vorpal> 10:51:58 <ais523> I actually got quite good at doing chirps, and I'm not entirely sure why <-- you need to record and upload that
23:39:37 <ais523> you can probably append to a set in PHP
23:39:48 <ais523> Vorpal: the word has a technical meaning
23:39:53 <elliott_> ais523: The thing with this networking model is that I'm not sure what it looks like inside the OS itself...
23:40:19 <elliott_> ais523: I'm sceptical of anything which presents a remote object as the same kind of thing as a local one, because it can take a lot longer to access
23:40:26 <Vorpal> ais523, so it was a terrible pun in the context?
23:40:28 <elliott_> (not being able to access it at all isn't an issue here because of the new model)
23:40:47 <elliott_> ais523: At the same time, it's hard to unify local and remote objects without... unifying them
23:41:31 <elliott_> 22:58:51: <pikhq_> So, the Treasury has the authority to mint coins of arbitrary designation.
23:41:31 <elliott_> 22:59:10: <pikhq_> We could remain "solvent" by having them mint a $2 trillion coin. And deposit it in the Fed.
23:41:31 <elliott_> 22:59:25: <pikhq_> And have a nice, tidy hyperinflation problem.
23:41:34 <elliott_> oh my god i want to see that coin
23:41:54 <ais523> I'm not at all convinced that unifying remote/local is useful, mostly because I'm generally offline
23:42:07 <ais523> pikhq: are they restricted in the number of coins they can mint? or the total value of the coins they can mint?
23:42:10 <Vorpal> I'm generally offline when I'm on my laptop
23:42:17 <evincar> elliott_: Won't it simply not matter if they are unified? If I want some object, I'm going to need to create it or get it from somewhere. Both have a (practically) predictable cost.
23:42:17 <Vorpal> because university wlan is so shitty :P
23:42:33 <elliott_> ais523: Well, with all due respect, I find your opinions on the matter of the internet to be... outdated. :)
23:42:42 <pikhq> ais523: They have permission to mint. However much they want.
23:42:47 <elliott_> ais523: Not that @ won't be useful for you, but the internet is pretty important to @.
23:43:02 <evincar> elliott_: Can you give a specific example of a case where a developer would be trying to access a known object that is definitely remote without knowledge that it is?
23:43:20 <ais523> pikhq: so presumably the reason why you mint one G$2 coin rather than a trillion $2 coins is just one of practicality?
23:44:02 <elliott_> ais523: I read an interesting interview (I think (i.e. I think it was an interview)) with the creator of HyperCard where he recounted that the reason HyperCard didn't become the web is because at Apple, they did things by thinking about an individual computer as the "whole thing", and added networking on as a very separate, disconnected component; later on, he was at Sun, and when they drew diagrams, they drew the networking lines before the actual co
23:44:11 <elliott_> Of course it's more a nice image than an intellectual breakthrough.
23:44:27 <elliott_> But I do think "every computer a fortress" is clearly the wrong way to go about things by now.
23:44:36 <elliott_> (Note: I don't like the Cloud(tm).)
23:44:55 <elliott_> <evincar> elliott_: Won't it simply not matter if they are unified? If I want some object, I'm going to need to create it or get it from somewhere. Both have a (practically) predictable cost.
23:45:00 <elliott_> It's hard to say you want "some object".
23:45:24 <elliott_> In fact I'm not even sure how you go about retrieving objects with this new model; you could start with a permanent socket, and hope that whoever selected your permanent socket selected something useful like @oogle
23:45:31 <elliott_> which will give you pointers to other objects
23:45:42 <elliott_> <evincar> elliott_: Can you give a specific example of a case where a developer would be trying to access a known object that is definitely remote without knowledge that it is?
23:45:49 <elliott_> evincar: the problem is that you think the problem only applies to developers
23:45:53 <elliott_> all these details matter at the user-level too
23:46:02 <elliott_> when you hear "object" in @, that's not a system detail, that's something the user interacts with too
23:46:26 <evincar> elliott_: Right, I should've used the hypernym. :P
23:47:02 <evincar> But really, the user is in all likelihood going to know what they don't "have" locally and will have to "get", even if the "getting" is transparent.
23:47:17 <elliott_> evincar: Well, here's a "he's joking OR IS HE" answer based on current computers that I'm not sure applies to @ but hey why not: When you go to google.com, do you have to specify whether you mean the cached copy or the remote copy?
23:47:50 <evincar> elliott_: I always *mean* the remote copy. Whether I get it is not up to me, though.
23:47:54 <elliott_> anyway, consider things like Plan 9's 9P, or sshfs, where you can mount remote computers and they appear as local filenames... but suddenly everything is awkward, because ls does a thousand stat calls and so takes a year to run on this medium-sized directory.
23:48:10 <elliott_> So that's a leaky abstraction.
23:48:28 <elliott_> Filesystem calls are meant to be reasonably fast (as far as hard drives go...); with a remote filesystem, they are decidedly not.
23:48:35 <elliott_> So the abstraction leaks, and it's questionable whether it was a good idea in the first place.
23:48:56 <Vorpal> <elliott_> anyway, consider things like Plan 9's 9P, or sshfs, where you can mount remote computers and they appear as local filenames... but suddenly everything is awkward, because ls does a thousand stat calls and so takes a year to run on this medium-sized directory. <-- sshfs is only useful over lan
23:49:09 <Vorpal> I use it to easily move stuff over gbit ethernet
23:49:12 <Vorpal> between laptop and desktop
23:49:14 <evincar> elliott_: So you bundle filesystem calls to only be done locally, then sent remotely. Or something.
23:49:25 <Vorpal> elliott_, I never even tried sshfs to a remote server. that would be mad
23:49:29 <elliott_> Vorpal: [word meaning "I have no response"]
23:49:35 <elliott_> ais523: I invented yr word, see above
23:49:47 <evincar> If it takes me 200ms to get a directory listing, that's still tolerable over a 2ms listing.
23:49:48 <elliott_> evincar: umm, @ has no filesystem
23:50:01 <elliott_> Vorpal: what an infuriatingly unanswerable question
23:50:03 <Vorpal> elliott_, I was just agreeing with you
23:50:06 <elliott_> evincar: and if I unify local and remote objects, there is nothing like bundling
23:50:13 <elliott_> Vorpal: that needs a response?
23:50:25 <Vorpal> elliott_, why did you try to answer it
23:50:42 <evincar> elliott_: You mentioned filesystems first. @ still has the concept of objects that are had (well, whose ownership is shared) and objects that must be gotten.
23:50:47 <Vorpal> <elliott_> Vorpal: [word meaning "I have no response"] <-- no one required your response
23:50:58 <evincar> elliott_: Even if it's hidden, it's not going away.
23:51:08 <elliott_> Vorpal: you usually ping people repeatedly when they don't respond
23:51:32 <Vorpal> err, do I? and how is thated related to this?
23:51:46 <Vorpal> I usually do it when there are a lot of talking in the channel
23:51:51 <elliott_> Vorpal: Well, in my experience you do; and it's related because I was letting you know I'd read what you said
23:52:21 -!- bsmntbombdood has quit (Quit: leaving).
23:52:31 <elliott_> evincar: The unification being discussed is in some ways about "hiding" that... can I just allocate you another week to explain @ like ais523 has had? :-P
23:52:52 <zzo38> I wanted to do constraint analysis in LLVM. I don't know if they have that.
23:53:57 <evincar> elliott_: Heh, I guess I'll have to come back. And do some log-skimming.
23:54:27 <elliott_> There's about three years of logs where @ is mentioned, if you'd like to go on a binge :-P
23:55:20 <Vorpal> elliott_, that is about 1.8 years worth of reading in total I estimate, probably 4 months of reading about @
23:55:37 <elliott_> Vorpal: Surely less; "elliottOS" didn't come up very often
23:55:46 <Vorpal> elliott_, several weeks at least
23:56:02 <evincar> Dammit, elliott_, why didn't you pick a more searchable working title? >:|
23:56:15 <elliott_> evincar: you may enjoy codu's rsync service.
23:56:24 <zzo38> I suppose you can make up one library allowing access files and directories anyways even if there isn't any, in case you run a program that uses such things.
23:56:27 <elliott_> evincar: do !logs for more info :P
23:56:36 <elliott_> then grep for elliottOS\|ehirdOS\|@, I suppose
23:56:41 <elliott_> then grep for elliottOS\|ehirdOS\|\b@\b, I suppose
23:57:19 <Vorpal> elliott_, what was that nick starting with t that you used?
23:57:31 <elliott_> umm, I don't recall one starting with t
23:57:48 <Vorpal> elliott_, was it ever tushoOS?
23:57:52 <elliott_> I used that until I got tired of puns (mostly blaming augur)
23:58:02 <Vorpal> elliott_, what puns? I forgot
23:58:09 <elliott_> 02:07:13: <oerjan> <elliott> WHAT COULD POSSIBLY. BUT _POSSIBLY_. GO WRONG???????
23:58:17 <elliott_> Vorpal: NO I HAVE WASHED MY HANDS AND ALSO AUGUR IS HERE.
23:58:29 * augur grabs elliott_'s tusho
23:58:34 <augur> those kind of puns, Vorpal!
23:58:51 <elliott_> 02:14:53: <oerjan> <Taneb> The person who formulated the Sanskrit language
23:58:51 <elliott_> 02:15:38: <oerjan> essentially inventing something like BNF millennia before bachus-naur were born, afaiu
23:58:51 <elliott_> 02:16:06: <oerjan> and, iirc, with a smattering of Perligata, except sanskrit rather than latin.
23:58:51 <elliott_> "millennia" -- are we talking about a programming language called Sanskrit, or Sanskrit itself? :D
23:59:22 <evincar> And this is why I come here.
00:00:14 <elliott_> I'm going to rigidly hold the belief that I held for a few seconds there that Sanskrit-the-language was originally designed by one guy, who gave it a BNF-style syntax, millennia ago.
00:00:29 <elliott_> 05:18:02: <quintopia> why is this channel so sleepy of late
00:00:29 <elliott_> 05:18:12: <quintopia> only a few hours activity each day
00:00:38 <elliott_> quintopia: you're awake at the wrong times (the times I'm not awake)
00:00:52 <monqy> elliott_ talks a lot. the life of the party.
00:00:58 <elliott_> 05:32:44: <oerjan> Or otherwise i'd have banned Nthern for not responding to my messages. Grmle.
00:00:59 <elliott_> tried to email him via the wiki?
00:01:21 <elliott_> monqy: yes i am the life. of the party
00:01:31 <elliott_> (diff) (hist) . . User talk:Billlam; 06:18 . . (-724) . . Billlam (Talk | contribs) (Removing all content from page)
00:01:47 <elliott_> --Billliam, two thousand and eleven
00:01:55 <quintopia> youve only been active a few hours a day
00:01:59 <elliott_> monqy: it was revolver architect
00:01:59 <monqy> and i didnt like revolver architect
00:02:16 <elliott_> quintopia: You just have the wrong definition of "night"
00:02:36 <elliott_> http://esolangs.org/w/index.php?title=Subleq&curid=2021&diff=24073&oldid=22220
00:04:09 <elliott_> ian is still editing the elip page but hasn't replied on the talk page :(
00:04:10 -!- madbr has quit (Read error: Connection reset by peer).
00:05:41 <elliott_> 07:39:28: <atehwa> and, for instance, almost all "regular" mathematical functions are computable by languages that only have loops that always terminate. Ackermann's function is not one of them. :)
00:05:54 <elliott_> Ackermann's function is primitive-recursive if you have higher-order functions
00:06:05 <elliott_> atehwa: Computation in Coq always terminates, but you can define Ackermann easily in it
00:06:20 <elliott_> It's just not primitive recursive in the traditional sense, but primitive recursive is by no means the most powerful "always-terminating" class.
00:06:32 <quintopia> elliott_: if yoj arent up til 8am, you didnt talk all night
00:06:47 <evincar> elliott_: Do all @ programs terminate?
00:07:21 <elliott_> evincar: Defiiiiiiiiiine proooooooooograaaaaaaaaaaaaaaaaaaaam ;D
00:07:28 -!- madbr has joined.
00:07:36 <elliott_> quintopia: Oh. Well I have to sleep _sometimes_.
00:07:52 <elliott_> quintopia: Try being here on the other every other day as opposed to the current every other day you're here.
00:08:15 <madbr> The vfp (floating point unit) on the arm Cortex A8 (cpu used on a lot of iphones etc) isn't pipelined
00:08:24 <elliott_> ais523: http://irregularwebcomic.net/3105.html do you have one of the explanations for this, being an electronics engineer?
00:08:33 <madbr> It's probably the worst FPU in the last 15 years :D
00:08:40 <pikhq> madbr: Well, yeah. Pipelining takes power.
00:08:45 <pikhq> madbr: Performance is not a priority.
00:08:52 <elliott_> (re 15:14:52: <oerjan> "EDIT: Thanks to everyone who wrote with an explanation, especially the electronics engineers. I now have about 11 different plausible explanations for this behaviour. Only 3 of which involve actual time warps. :-))
00:09:13 <evincar> elliott_: Something reducible to a Turing program or a lambda calculus expression? :|
00:09:19 -!- elliott_ has left ("Leaving").
00:09:24 -!- elliott_ has joined.
00:09:38 <elliott_> evincar: Would "evaluation of an expression" suit you?
00:09:49 <ais523> elliott_: even though it's digital, the oscillator that actually keeps the time is analog
00:09:56 <evincar> elliott_: Sure, whatever floats your semantic boat.
00:10:14 <Vorpal> elliott_, I have a elliottcraft suggestion
00:10:15 <ais523> because all oscillator designs use analog information somewhere to get the time dependency in (digital has no time dependency, in theory)
00:10:23 <elliott_> evincar: Then no, they can fail to terminate. But maybe only inside a Partial monad? That is probably way too restrictive. So I think _|_ is still around. FOR NOW.
00:10:29 <ais523> and it's obviously a design that's affected by being given the wrong voltage
00:10:40 <elliott_> ais523: Can't you just make a signal busyloop for a while to keep time?
00:10:50 <elliott_> That sounds like time-dependence to me.
00:10:50 <Vorpal> elliott_, allow halfsteps and stairs out of almost any material. Set a flat for those where it is forbidden (like water or lava)
00:11:05 <ais523> elliott_: that relies on analog information (to be precise, the slew rate of the signals, which is how long they take to change from something that reads as 0 to something that reads as 1 or vice versa)
00:11:08 <elliott_> Vorpal: Why not just cut the block in half
00:11:20 <elliott_> ais523: which can change? darn
00:11:37 <ais523> elliott_: depending on voltage and temperature and a bunch of other things
00:11:38 <Vorpal> elliott_, hm true, so you suggest using 1x1x0.5 blocks?
00:12:11 <ais523> the usual way to get a stable oscillator is to use a quartz crystal's resonant frequency as something to count against
00:12:13 <madbr> pikhq: it's like 10 cycles for an addition
00:12:22 <elliott_> Vorpal: Don't stack them, just cut less and less
00:12:25 <ais523> because it'll tend to force any oscillation near its resonant frequency to that frequency
00:12:33 <elliott_> For instance you can have a zero point one slope by having a zero point one height block, zero point two, ...
00:12:50 <madbr> pikhq: though tbh the A8 also has a SIMD unit that does floating point a lot faster
00:12:56 <elliott_> madbr: floating point is slow, news at eleven
00:13:19 <madbr> elliot: I <3 floating point
00:13:20 <Vorpal> elliott_, plan on doing that?
00:13:28 <elliott_> madbr: we all have our personal issues.
00:13:33 <elliott_> `addquote <Taneb> Speaking of the CiSRA puzzles, anyone want to form a team <oerjan> i avoid my duties by carefully never registering to anything new
00:13:37 <HackEgo> 546) <Taneb> Speaking of the CiSRA puzzles, anyone want to form a team <oerjan> i avoid my duties by carefully never registering to anything new
00:13:56 <elliott_> `addquote <Taneb> aibohphobia <Taneb> The fear of palindromes
00:13:58 <HackEgo> 547) <Taneb> aibohphobia <Taneb> The fear of palindromes
00:14:08 <madbr> elliot: also floating point is still faster than spending all your cycles bitshifting and saturating your results
00:14:24 <elliott_> 17:21:21: <ais523> Dwarf Fortress science seems to be along the lines of "how can we trick the game into letting us do X implausible thing?"
00:14:24 <elliott_> 17:21:47: <Phantom_Hoover> If real-world science was like that I would be happy.
00:14:32 <elliott_> madbr: I don't talk to people who like floating point and spell my name incorrectly :(
00:14:42 <zzo38> Are there other programs that can do things similar to how rulebooks work in Inform 7?
00:14:48 <ais523> how can you mistype elliott_ when tabcomplete exists?
00:14:59 <ais523> also, I just tried to tabcomplete elliott_'s name with <just> tab, no letters before it
00:15:03 <zzo38> I don't like floating point much
00:15:08 <elliott_> ais523: and tried to emphasise with <>, too
00:15:10 <ais523> (it didn't work, incidentally)
00:15:13 <ais523> elliott_: err, good point
00:15:29 <elliott_> ais523: also, I talk often enough that just tabbing to complete my name might actually work
00:15:31 <ais523> / to end a question is common for me, that's just missing shift
00:15:34 <madbr> elliott_: heheh, you probably don't do sound code :D
00:15:41 <pikhq> zzo38: It's one of those things that, IMO, requires justification for.
00:15:42 <ais523> it only works at the start of a line in this client
00:15:50 <elliott_> madbr: wow lol are you actually taking that personally
00:16:00 <zzo38> I generally do not use floating point.
00:16:06 <ais523> but I don't know why I used <> for emphasis, I have no reason to do that and it makes no sense for me
00:16:16 <monqy> floating point killed my family
00:16:16 <ais523> zzo38: I use floating point on GPUs, because they're most efficient at it
00:16:19 <pikhq> Especially because it doesn't *quite* follow all the axioms people don't expect.
00:16:20 <ais523> (single-precision float, that is)
00:16:37 <zzo38> I think even TeX uses floating point too much.
00:17:13 <elliott_> I thought you were accusing me of the heinous crime of inaccuracy
00:17:24 <elliott_> which is hilarious from someone defending floating point, which violates mathematical laws
00:17:27 <elliott_> well, unsoundness, not inaccuracy
00:17:47 <elliott_> madbr: Anyway, don't DSPs use fixed point?
00:18:43 <elliott_> really tempted to say "heheh, you probably don't do sound code :D"?
00:19:09 <monqy> are you a dsp clown
00:19:42 <monqy> who doesn't do sound code
00:19:47 <elliott_> 17:27:34: <Phantom_Hoover> " The concept of things smaller than monarch butterflies, however, has led to enormous controversy. Although, obviously, it would be hard to see something smaller than a butterfly, it should be possible to show that it exists because, just like butterflies, it would sometimes get stuck in doors and prevent them from closing."
00:19:48 <madbr> well, yeah ok DSPs are nice but they're not on many platforms
00:20:01 <elliott_> 17:29:43: <Taneb> Us lot, doing a bloodline game!
00:20:06 <ais523> hmm, that was bizarre, terminal window froze for over a minute
00:20:09 <elliott_> I've never played DF for more than ten seconds.
00:20:12 <ais523> I clicked the close button, and it unfroze, without closing
00:20:20 <monqy> I've never played for more than 2 seconds
00:20:23 <Sgeo_> elliott_, is there any system of storing numbers on a computer that _doesn't_ violate some mathematical laws? Although hmm, I guess limiting yourself to integers, and only doing operations that make sense on integers, or limiting yourself to rationals, and only doing operations... "closed"? on rationals, would work
00:20:38 <madbr> What sort of IRL hardware has DSPs in them
00:20:42 <monqy> i guess i could learn through ruining your game
00:20:58 <pikhq> Sgeo_: Actually, it's only really floats that fuck things up heavily.
00:20:59 <monqy> madbr: maybe dsps? idk
00:21:12 <elliott_> Sgeo_: I was also considering "I...".
00:21:25 <zzo38> Is any other programs exists that does something similar to Inform 7 rulebooks?
00:21:32 <elliott_> I mean, unless you really think binary violates the laws of integers.
00:21:50 <Sgeo_> Surely, if you square root and then square some numbers represented as integer over integer, you might not get the same result back in all circumstances
00:21:51 <pikhq> Unsigned integers are nothing more than modular arithmetic, for instance.
00:21:52 <ais523> madbr: anything that would plausibly need an ADC quite possibly uses a DSP as well
00:22:22 <ais523> because it makes more sense to have a dedicated processor analyse its output than trying to get an ordinary processor to
00:22:23 <madbr> ais: some soundcards etc do have them yes
00:22:26 <pikhq> Sgeo_: ... The same is true of the rationals.
00:22:50 <Sgeo_> Um.. wasn't I just talking about the rationals?
00:22:55 <madbr> ais: most of the time they are walled from the user code or non standard so you have to do everything in software anyways
00:22:55 <elliott_> <Sgeo_> Surely, if you square root and then square some numbers represented as integer over integer, you might not get the same result back in all circumstances
00:23:18 <ais523> madbr: I've actually written DSP code
00:23:29 <Sgeo_> Erm, but in math, you get a result that's not a rational sometimes. But in a computer system, you'd get an approximation, presumably
00:23:30 <pikhq> Ah, yeah, true, obvious issue is that sqrt is not defined on the rationals. Well. Typically.
00:23:36 <ais523> in a project that followed the waterfall model almost to the letter, and it almost worked, too
00:23:49 <pikhq> One could define a sqrt function that is only defined on the rationals with a rational square root.
00:23:56 <madbr> ais: for what sort of HW
00:24:05 <ais523> the code worked fine in unit testing, but the entire project broke in integration testing
00:24:08 <elliott_> Sgeo_: you mean that if you approximate something, it isn't the same as the actual result?
00:24:11 <pikhq> Sgeo_: sqrt :: Real -> Real.
00:24:15 <ais523> and it was something in the dsPIC line by Microchip
00:24:19 <zzo38> How would you represent Fermat's Last Theorem by using Typographical Number Theory?
00:24:19 <pikhq> Sgeo_: The Real type DNE on computers.
00:24:22 <pikhq> Any further question?
00:24:30 <elliott_> <pikhq> Sgeo_: sqrt :: Real -> Real.
00:24:31 <ais523> we bought it for the ADC, and because it needed to do processing before passing the info to a computer for bandwidth reasons
00:24:45 <Sgeo_> elliott_, what's the difference between that sort of approximation and the kind of junk that floating-point produces?
00:24:45 <pikhq> elliott_: Oversimplification. Sorry.
00:24:48 <ais523> but really, we bought the one with the best ADC we could afford, and the DSP stuff there was less of a binding issue
00:24:59 <pikhq> elliott_: sqrt :: Complex -> Complex. Better?
00:25:18 <pikhq> (well. There's probably some notion of sqrt that's defined on some superset of the complex numbers, too...)
00:25:21 <ais523> it was a pretty interesting approach to the project; instead of going superheterodyne, we used a fixed intermediate frequency and drove the filtering work onto the DSP
00:25:45 <ais523> there were three people who were meant to write the DSP code, but none of them did any work for half the project, so I had to do it by myself in the other half
00:25:51 <elliott_> `addphrasequote "instead of going superheterodyne"
00:26:18 <madbr> and how did it fail?
00:26:23 <elliott_> ais523: it doesn't exist, but I needed it
00:26:25 <zzo38> pikhq: But square root of a complex number still result in a complex number, so sqrt :: Complex -> Complex is still OK, I think. But there might be others as well
00:26:28 <ais523> madbr: basically, all the individual parts worked
00:26:34 <ais523> but when we connected them together, they didn't
00:26:47 <ais523> in fact, I think any combination of two individual parts worked too
00:26:51 <elliott_> 17:36:55: <ais523> <Areku> Actually, a good way to make a fort invasion-proof is to make the entrance be a "magma elevator", a 1-tile shaft filled with magma, that is kept from falling all the way down by a set of pumps. Since dwarves are not subject to temperature while falling, as it was proved on the Last Stand thread, your dorfs would fall through several levels of magma unharmed, while any flying foe that attempted to do the same would be burned
00:27:03 <ais523> until we connected them all together at once, from then on the parts only worked individually and wouldn't work even in pairs
00:27:06 <elliott_> `addquote <Phantom_Hoover> Sgeo_, the origin of suffering is desire for e-book readers.
00:27:08 <HackEgo> 548) <Phantom_Hoover> Sgeo_, the origin of suffering is desire for e-book readers.
00:27:11 <zzo38> Maybe you can have sqrt :: Real -> Real too even though there is not always answer, it depends what kind of equations and stuff you are using, is the types!
00:27:23 <ais523> I personally blame it all on a circuit board that the University manufactured for it itself
00:27:32 <zzo38> Property of something is a prime number or not, is for natural numbers only!
00:27:34 <ais523> while I was at secondary school, I was allowed to make circuit boards myself without supervision
00:27:42 <ais523> at University, I wasn't, and they did a shoddy and slow job of doing it themselves
00:28:09 <elliott_> ais523: why'd you capitalise University
00:28:17 <elliott_> abbreviation for its actual name?
00:28:26 <elliott_> rather than being used generically?
00:28:31 <monqy> University university
00:28:33 <ais523> I was referring to one in particular
00:29:01 <elliott_> 18:06:35: <fizzie> Imagine an unlit e-ink laptop, and one of those "shake and it produces enough energy for the LED" flashlights that you hold with the other hand. That thing would be so user-friendly, it's not even a thing.
00:29:02 <elliott_> 18:07:24: <Phantom_Hoover> fizzie, well, your average redditor wouldn't have a problem with the hand movement.
00:29:02 <elliott_> but we're better than them, and would _never_ descend to their level
00:29:14 <elliott_> 18:09:55: * ais523 chirps in real life
00:29:14 <elliott_> 18:10:08: <ais523> I actually got quite good at doing chirps, and I'm not entirely sure why
00:29:32 <elliott_> i'm now imagining a bird wondering why it got so good at chirps
00:29:43 <elliott_> it does not know much about birds, it just happens to be one.
00:29:48 <ais523> bird chirps don't quite fit the technical meaning, although they're close
00:29:52 <monqy> isnects chyrp toor ight
00:30:09 <Vorpal> ais523, what is the technical meaning
00:30:10 <madbr> Anyways, these days I'm doing Arm SIMD and it mostly obviates the need for any sort of DSP hardware
00:30:19 <ais523> Vorpal: it's a sound that changes in frequency at a constant rate
00:30:20 <elliott_> 19:15:45: <ais523> I'm still reading that DF submarine thread
00:30:21 <elliott_> I think /r/dwarffortress is more fun to read than DF is to play
00:30:41 <ais523> I still have it open and still haven't finished reading it
00:30:46 <madbr> Afaik only the 3DS has a DSP and even then you can't program it
00:30:48 <elliott_> Vorpal: "sweep signal", apparently
00:30:56 <elliott_> ais523: oh, was that /r/df too?
00:31:01 <madbr> Iphone's sound hardware is "fill this buffer" :D
00:31:03 <ais523> elliott_: it's bay12forums
00:31:05 <ais523> someone linked it earlier
00:31:21 <elliott_> 19:50:07: <cheater_> ais523, if someone were to make a haskell based dsl for describing FPGA programs, would the clock skew through a circuit belong in the function type?
00:32:55 -!- madbr has quit (Read error: Connection reset by peer).
00:33:14 <Vorpal> <elliott_> I think /r/dwarffortress is more fun to read than DF is to play <-- aww come on
00:34:49 <elliott_> 21:12:03: <Adaria> Gah one thing about the client I use can't go back and see things I missed. Bah.
00:34:49 <elliott_> 21:12:35: <Adaria> If I missit the first time it's gone. Meh, screen reader.
00:34:49 <elliott_> 21:13:00: <quintopia> that sounds like the shittiest client ever
00:35:01 <elliott_> 21:13:34: <ais523> it sounds like Vorpal's client
00:35:35 <elliott_> 21:14:44: <monqy> you could look at the logs.
00:35:35 <elliott_> 21:15:06: <ais523> oh, I see, it's an accessibility problem
00:35:35 <elliott_> 21:15:06: <Adaria> I don't think this one makes them and if it does not sure where... But good itea there.
00:35:39 <Vorpal> elliott_, I like the "Urist Mc" touch to the nicks
00:35:39 <elliott_> Adaria: this channel has public logs available online
00:35:43 <elliott_> 21:15:20: <monqy> this channel is publicly logged.
00:35:43 <elliott_> 21:15:24: <monqy> link in the topic
00:36:12 <elliott_> 21:29:56: <Adaria> So, this room had a cunfusing room desc on it, what usually goes on in here?
00:36:26 <elliott_> I am glad that at least one person has had the experience of having our current topic read out to them by a computer
00:36:41 <evincar> elliott_: It must have been a sublime experience.
00:36:45 <elliott_> the artform of the topic has been elevated to even greater heights; now they are causing computers to confuse their users verbally
00:36:54 <coppro> elliott_: I had a dream
00:37:10 <coppro> In this dream, you and I worked together to create the ultimate esoteric programming language
00:37:18 <evincar> Like having Douglas Adams read to you by a schizophrenic while you are on acid.
00:37:27 <elliott_> "We shall call it... Haskell."
00:37:30 <coppro> where esoteric is defined as 'no person in their right mind would ever use this for real code'
00:37:40 <coppro> It was an unholy fusion of PHP and Java
00:37:44 <zzo38> Is there landline telephone service with extra features such as: tell your telephone number in voice, tell your telephone number in DTMF, change session parameters, turn on/off single call mode, require red box tones to call out, add annotations to the telephone bill, etc
00:37:47 <elliott_> I know those languages more than I want to
00:37:53 <evincar> s/Haskell/$any_research_language/e
00:37:56 <elliott_> 21:31:28: <Adaria> This server has SO many rooms though it's insane.
00:37:57 <elliott_> please tell me you did /list on freenode
00:38:03 <elliott_> evincar: Haskell's not a research language :P
00:38:08 <elliott_> <elliott_> please tell me you did /list on freenode
00:38:26 <ais523> elliott_: wow, I hadn't even realised that implication
00:38:34 <zzo38> Such as, you can push something it makes it act like a payphone until you hang up your end
00:38:35 <ais523> and /list only actually lists a small fraction, because most channels are +s
00:38:45 <coppro> please tell me you at least used alis
00:38:46 <elliott_> ais523: it was probably a GUI list control that you can scroll through and search, I imagine
00:39:35 <elliott_> 21:36:16: <evincar> Adaria: So are you visually impaired, or do you just feel like using a screen reader?
00:39:50 <ais523> that's the most awesome question I've seen in here for a while
00:39:56 <elliott_> I have occasionally felt jealous of blind people for being able to use edbrowse without getting sick of it and switching to more graphical programs
00:40:05 -!- madbr has joined.
00:40:29 <elliott_> 21:35:23: <Adaria> Female here but I use guy as androgenous too.
00:40:29 <elliott_> 21:36:55: <Taneb> Imagine an adrogenous specific pronoun
00:40:29 <elliott_> YOU'RE MAKING IT EVEN LESS OF A WORD THAN THE ORIGINAL TYPO
00:40:50 <elliott_> 21:37:31: <Taneb> To me, "it" is that's more of non-human
00:40:51 <elliott_> Also this isn't a sentence, but I note that some people's preferred pronoun is "it"
00:41:14 <elliott_> 21:39:30: <Adaria> May be getting an IRC client for my phone. iPhone, some love it, others hate it but to me it is truly a lifeline.
00:41:14 <elliott_> Man, I don't want to sound insensitive or an idiot... but how the hell do you use an iPhone blind?
00:41:44 <elliott_> Is there some mode that says what you just tapped and you have to double-tap them to really activate it or someting?
00:42:22 <evincar> elliott_: Haha, inadvertent Pidgin. :P
00:42:48 <evincar> elliott_: "someting". But I imagine the mobile accessibility experience is universally shitty.
00:42:48 <elliott_> ais523: btw, the reason I pinged you was that I often wake my laptop up from sleep and have to reconnect my IRC client
00:42:55 <elliott_> since the network connection dropped
00:43:03 <elliott_> evincar: oh, I thought you meant the IM client because of the capitalisation...
00:43:05 <ais523> yep, it's just that I thought a /ctcp ping would work well enough
00:43:15 <ais523> it's what I do on flaky connections
00:43:18 <ais523> but nobody else notices
00:43:31 <ais523> if I did elliott_: ping every time, you'd get annoyed very quickly
00:43:42 <elliott_> ais523: but I was disoriented since I'd just got on my computer (THIS TOTALLY HAPPENS TO ME OK) so I just decided to panic and resort to a real person
00:43:53 <elliott_> also, please do, I'm going to be paranoid about whether you're pinging me or not all the time now :D
00:44:23 <zzo38> If I need to check the connection usually I will just do PING ME although sometimes I want to check the connection with other servers too, the PING command can do that.
00:44:31 <ais523> if I remember, and you're online (which is rare when I'm on a flaky connection, as that's normally during normal person hours), I will
00:44:55 <zzo38> The server responds PONG.
00:45:29 <elliott_> ais523: I am offended by this "normal person hours" remark as it is upsettingly accurate
00:45:43 <ais523> zzo38: my client doesn't show PONGs from the server
00:45:54 <monqy> i wish my hours were weirder
00:46:02 <monqy> I hate afternoons and want them to vanish
00:46:29 <zzo38> ais523: O, then, OK. Why is that? My client does show PONGs from the server. It doesn't, however, show PINGs from the server (unless AUTOPONG is turned off)
00:46:47 <monqy> mornings are less bad
00:46:49 <elliott_> ais523: I can just do /ping and it appears in the server tab
00:46:55 <zzo38> What is the reason for not showing PONGs from the server?
00:47:07 <elliott_> monqy: try waking up in the afternoons, it is the best way to realise how awesome afternoons are
00:47:15 <monqy> afternoons are hot and awful. sometimes mornings are nice and foggy.
00:47:19 <elliott_> ais523: do you _still_ use Konversation?
00:47:19 <ais523> elliott_: doing /ping on Konversation attempts to CTCP PING the null string (which obviously doesn't work, but I do get an error message back that's usable as a pong)
00:47:25 <elliott_> monqy: do you live in texas or something... wait no fog
00:47:28 <ais523> and doing /quote ping gives no visible response
00:47:36 <elliott_> in England, early afternoon is the nicest weather of the day
00:47:37 <monqy> i have trouble thinking in afternoons. mornings are better.
00:47:43 <ais523> why, has it suddenly become worse over time or something?
00:47:47 <monqy> nights are best though
00:47:47 <ais523> or do you just expect me to experiment more?
00:47:50 <elliott_> monqy: that's just because you're meant to have a siesta at midday
00:48:03 <zzo38> I suppose the various IRC clients are different in many ways, some do one thing different and others do problem to different thing
00:48:07 <elliott_> monqy: if you wake up at midday, there's no problem :P
00:48:11 <elliott_> monqy: (wrt not being able to think)
00:48:13 <zzo38> Which is one reason why Free Software is good idea.
00:48:13 <ais523> elliott_: I seriously dislike heat
00:48:27 <elliott_> ais523: like, any sort of heat at all?
00:48:31 <ais523> elliott_: Konversation's only visible response to that was getting confused and spouting errors about SQL
00:48:37 <elliott_> I find the summer mornings to be way too hot, but afternoon summer weather is nice
00:48:39 <ais523> elliott_: I dislike the temperature being above average
00:48:46 <ais523> which it is quite a lot, unfortunately
00:48:56 <ais523> and, it's an approximate average which is somewhere near both the median and mean
00:49:32 <ais523> meanwhile, I don't start feeling cold until about -6 or so
00:49:50 <monqy> i may be a lizared too.//?
00:49:54 <ais523> I once went out in only a T-shirt at -15
00:50:00 <ais523> although I did notice I'd done so afterwards
00:50:03 <elliott_> ais523: that's probably bad for you...
00:50:05 <ais523> (T-shirt and suitable other clothes, that is)
00:50:20 <ais523> in future, I shall probably have to make sure it at least has long sleeves
00:50:33 <elliott_> ais523: you may want to consider starting a wonderful career in Finland. somewhere north of Helsinki, say.
00:50:33 <ais523> also, I bought a fleece for that sort of occasion, and wear it when the temperature goes much below -5 nowadays
00:50:36 <ais523> which is, umm, not very often
00:51:03 -!- Adaria has quit (Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org).
00:51:12 <elliott_> I have trouble with about twenty-five Celsius and above
00:51:21 <elliott_> but I suspect that's mostly lack of familiarity with the temperature
00:51:38 <elliott_> I really dislike rain and snow, though, plus any temperature cold enough to need more than a tshirt to be comfortable in
00:51:47 <elliott_> which is a much higher value than ais523's
00:51:50 <monqy> whenever the temperature is higher than I'd like it I get headaches and dizziness and can't think
00:51:56 <ais523> I like some sorts of rain, and dislike others
00:52:02 <elliott_> monqy: are you in lizard texas
00:52:12 <ais523> and am mostly OK with snow on the ground, but it's annoying while it's falling
00:52:21 <monqy> texas would be hell for me
00:52:31 <monqy> apparenlty i live in nice weather land but I'd prefer it colder
00:52:45 <monqy> by apparently I mean
00:52:48 <elliott_> monqy: are you avoiding letting me know where you live because i'm stalker
00:52:49 <monqy> according to peo;le who are not me
00:52:54 <elliott_> because im probably not stalker (maybe)
00:53:38 <ais523> hey, fizzie probably knows this, but other people might too: if a program segfaults due to trying to write to readonly memory, and you handle the segfault with a signal handler and return from it, what happens on Linux? (i.e. does it attempt to repeat the write or move onto the next command or what?)
00:54:08 <elliott_> lol, Fox News are still calling the Norway terrorist attack islamic
00:54:34 <elliott_> ais523: well, they're saying that Scandinavia is, umm, turning a blind eye to "Islamic terrorism" or something
00:54:48 <elliott_> it's Fox News via translated Norwegian, so it makes slightly less sense than fungot
00:54:48 <ais523> also, random fact I discovered from the whole thing (that I've said in-channel before but you weren't in here): Norway has a smaller population than London
00:54:49 <fungot> elliott_: for the material being stored does not exceed 50%, unless another rule specifies that the entity in
00:54:49 <madbr> elliott_: That's surprising for the least
00:55:10 <madbr> ais: A few million right?
00:55:10 <elliott_> madbr: hmm, what's your native language? I suspect that's an idiom that sounds really weird in English
00:55:13 <elliott_> ais523: I don't think there's any kind of repeating in signal handlers
00:55:28 <ais523> elliott_: yep, but it depends on where the IP ends up after all that
00:55:31 <elliott_> ais523: as in, I'm pretty sure if you just carry on, you just carry on, not restart everything
00:55:32 <ais523> and there's nowhere obvious for it to be
00:55:35 <elliott_> madbr: does your client honestly not have tab completion? :-P
00:55:45 <madbr> but I don't use it :o
00:55:50 <evincar> ais523: ON ERROR RESUME NEXT?
00:56:02 <elliott_> ais523: I know you can use segfaults to allocate memory
00:56:06 <ais523> elliott_: I might, I was just wondering if someone knew
00:56:11 <elliott_> But I suspect that involves manually jumping to the right place
00:56:16 <ais523> it's a little complex to set up a test case and even more complex to work out what the results mean
00:56:29 <ais523> and it's undefined behaviour, so the docs don't help
00:56:41 <madbr> elliott: haha wow that's an interesting allocation scheme
00:56:56 <elliott_> int [ast]foo = gimmereadonly(); printf("abc\n"); foo[0] = 9; printf("def [percent]d\n", foo[0]);
00:56:59 <madbr> and also batshit insane :D
00:57:00 <ais523> it's similar to what the kernel does, just more manual
00:57:11 <elliott_> madbr: it's not really, it's exactly how the kernel/MMU does paging
00:57:30 <ais523> elliott_: you need the signal handler too, which would need to, umm, unprotect the memory in question?
00:57:53 <ais523> is that even signal-safe, incidentally? (/me checks)
00:58:04 <elliott_> sighandler(){mprotect(foo, size_of_data, PROT_READ|PROT_WRITE);}
00:58:13 <elliott_> ais523: but I'm not sure how interpreting the results is hard
00:58:18 <ais523> although this is me, deliberately invoking UB with a signal handler and checking if everything I call in it is signal-safe anyway
00:58:26 <elliott_> then it retries the memory access
00:58:38 <elliott_> assuming the memory starts out zeroed
00:58:48 <ais523> mmap /dev/zero ensures it starts out zeroed
00:58:48 <elliott_> if you get something else, your test case is broken
00:58:55 <elliott_> ais523: well, UB is perfectly OK in the context of a known compiler and OS
00:59:01 <elliott_> you're just not coding C any more, that's all
00:59:02 <ais523> and luckily, /dev/zero is writable, although writes to it don't do anything
00:59:11 <ais523> I have known OS and arch, but I'm trying to avoid known compiler
00:59:17 <elliott_> ais523: umm, heard of MAP_PRIVATE?
00:59:35 <elliott_> avoiding known compiler is impossible with UB
00:59:35 <pikhq> ais523: It's UB for the SIG_SEGV handler to return.
00:59:50 <ais523> pikhq: I know, I was just wondering if it actually did something useful in practice
00:59:56 <elliott_> I suppose it's POSIX, so fair enough
01:00:03 <pikhq> "If and when the function returns, if the value of sig was SIGFPE, SIGILL, or SIGSEGV or any other implementation-defined value corresponding to a computational exception, the behavior is undefined."
01:00:03 <elliott_> ais523: Useful enough that there exists a brainfuck interpreter doing it, at least
01:00:08 <elliott_> ais523: Want me to dig up its source code?
01:00:13 <ais523> does it return or longjmp?
01:00:27 <pikhq> So, yes, it is undefined behavior.
01:00:36 <elliott_> ais523: http://cvs.savannah.gnu.org/viewvc/libbf/?root=libbf... it's one of these (from http://savannah.nongnu.org/projects/libbf)
01:00:51 <elliott_> http://cvs.savannah.gnu.org/viewvc/libbf/libbf_interpreter_dynalloc.c?revision=1.3&root=libbf&view=markup
01:01:01 <elliott_> EXCEPTION_DISPOSITION libbf_interpreter_dynalloc_handler_win32(struct _EXCEPTION_RECORD *exception_record,
01:01:01 <elliott_> /* If the exception is an access violation */
01:01:01 <elliott_> if (exception_record->ExceptionCode == EXCEPTION_ACCESS_VIOLATION &&
01:01:01 <elliott_> exception_record->NumberParameters >= 2)
01:01:15 <ais523> bleh, if I was using @, I could just grep that repo
01:01:23 <elliott_> ais523: if you were using CVS, you could too
01:01:26 -!- TeruFSX has quit (Ping timeout: 250 seconds).
01:01:30 <elliott_> cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/libbf co <modulename>
01:01:46 <ais523> but that requires a local copy of the code
01:02:00 <ais523> I suppose I could do it in /tmp or somewhere
01:02:00 <elliott_> ais523: who says another @ machine will perform a search for you?
01:02:07 <elliott_> your browser is downloading the pages, too :P
01:02:14 <ais523> only the pages I actually look at
01:02:18 <elliott_> Just make a ~/tmp or something
01:02:42 <ais523> why would that be better than /tmp?
01:02:56 <ais523> /tmp is all mine on this system, there are only two loginable users and only one corresponds to a human
01:02:57 <elliott_> assuming your home directory isn't
01:03:04 <ais523> and my home dir is world-readable
01:03:17 <ais523> because /dev/null's code requires a user to exist with that name
01:03:22 <ais523> and having it loginable was useful for testing its code
01:03:41 <evincar> elliott_: Oh yeah, how does an @ machine treat non-@ machines? Are they whole opaque objects? Moreover, are objects turtles all the way down?
01:03:44 <ais523> on my previous laptop, I also had a few user accounts for running specific programs I didn't trust
01:04:04 <ais523> relying on the permissions system to mostly-sandbox them from doing anything too crazy
01:04:13 <evincar> elliott_: A machine is an opaque thingamajig that DO NOT WANT to talk to @. Go.
01:04:23 <elliott_> evincar: i mean if you mean "can i make raw tcp/ip connections", then sure, if you have the permissions for it
01:05:00 <elliott_> ais523: if I'm an IP, how do I find my user page on Wikipedia?
01:05:20 <ais523> then you can find contributions or user page from there
01:05:29 <ais523> it's what I use to quickly check what my externally visible IP is
01:05:54 <ais523> I also use Wikipedia talkpages to do things like reverse DNS checks and to check to see if IPs are on known blacklists
01:06:15 <ais523> they're meant for gauging rangeblocks on Wikipedia, but it works just as well for gauging rangeblocks on Esolang
01:06:37 -!- MDude has quit (Ping timeout: 250 seconds).
01:06:50 <Vorpal> <ais523> I also use Wikipedia talkpages to do things like reverse DNS checks and to check to see if IPs are on known blacklists <-- huh?
01:07:18 <ais523> mostly useful for spam, but not always
01:07:35 <Vorpal> ais523, have you bought the indie bundle 3 btw?
01:07:37 <ais523> I've been known to rDNS and geoIP people I talk to over IRC when they left their IP visible
01:07:41 <ais523> Vorpal: no, but I'm wondering about it
01:07:47 <ais523> there are pretty few commercial games for Linux
01:07:50 <Vorpal> ais523, I quite like it.
01:08:02 <Vorpal> mostly interesting physics games
01:08:18 <ais523> I've seen enough of VVVVVV, at least, to know I wouldn't pay full price for it, but might pay a smallish amount of money
01:08:18 <elliott_> ais523: here's my datapoint for you:
01:08:29 <Vorpal> I blame cogs and hammerfight not working on ATI graphics
01:08:31 <ais523> I think if I do buy the bundle, I'll pay about £5 for it
01:08:44 <elliott_> ais523: some of them are only .tar.gz with .bin installers (shell scripts or executables, presumably), but a lot of them are offered as .debs, and some for sixty-four bit, too
01:08:45 <ais523> because that's about what it's worth to me
01:08:48 <elliott_> ais523: there are also some .rpms
01:09:00 <elliott_> ais523: that's the second bundle
01:09:06 <ais523> what about just installing to homedir?
01:09:08 <elliott_> I haven't downloaded the third but presumably it's similar
01:09:15 <elliott_> ais523: that involves using the .bin installer, presumably
01:09:18 <ais523> did you pay for it, btw?
01:09:28 <ais523> it's hard to tell what a random executable file installer will do
01:09:31 <elliott_> ais523: I am considering buying the third
01:09:32 <Vorpal> elliott_, all are .tar.gz except two which are .bin installers. One is available as 64-bit and also as deb
01:09:39 <elliott_> ais523: Yes, it is, but Humble Bundle is a pretty good mark of assurance
01:09:52 <ais523> I mean, what sort of settings does it take to tell it where to install?
01:10:02 <ais523> is there even a command line option that gives help on options rather than installing, and if so, what is it?
01:10:08 <elliott_> ais523: well, run it in a chroot and see
01:10:08 <Vorpal> ais523, only two needed installing, those installed just fine to home dir
01:10:21 <ais523> as non-root would make sense, I didn't think of that for some reason
01:10:22 <Vorpal> ais523, and they use graphical installers
01:10:26 <ais523> I suspect it wouldn't work inside fakeroot
01:10:38 <Vorpal> ais523, I bought this bundle, so I know more about it than elliott_
01:10:43 <ais523> also, DRM-free implies you can install as many times as you want on your own computer, presumably
01:10:43 <elliott_> I played one iteration of Crayon Physics at one point and found it amusing but not that fun; fizzie likes VVVVVVVVVVVVVVvvvvvvvvvvvVVVVVVVVvvvvv so it's OBVIOUSLY AWESOME BY DEFINITION
01:10:53 <Vorpal> ais523, on all your computers
01:10:56 <elliott_> Deewiant likes Hammerfight so it PROBABLY SUCKS and I haven't heard of And Yet it Moves or Cogs.
01:10:58 <ais523> elliott_: VVVVVV is mildly awesome, and fun to watch, but a little short
01:11:05 <ais523> also a little unpronounceable
01:11:11 <elliott_> ais523: The downloads are also available in BitTorrent form
01:11:16 <Vorpal> elliott_, VVVVVV is utterly hard, require lightning reflexes
01:11:26 <elliott_> ais523: And you can download them any number of times, you get a special download link in an email
01:11:31 <Vorpal> elliott_, if you have them, sure
01:11:41 <elliott_> ais523: They also have Steam codes and stuff that you can press a button to get, but you probably don't care about that
01:11:43 <Vorpal> elliott_, And Yet It Moves is quite fun. You rotate the the world around you basically
01:11:56 <elliott_> Vorpal: I have terrible reflexes but come on, you probably think that about every platformer game
01:12:14 <Vorpal> elliott_, no. This is early-nintendo hard
01:12:14 <ais523> elliott_: VVVVVV is pretty reflexy as platformers go, when it isn't pixel-pefect-jumpy instead
01:12:20 <Vorpal> elliott_, NES era nintendo or so
01:12:36 <elliott_> ais523: oh well, it sounds fun
01:12:41 <Sgeo_> Vorpal, hmm, I think I played a flash game once that involved rotating the world around you
01:12:48 * Sgeo_ goes to download And Yet It Moves
01:13:00 <Vorpal> Sgeo_, you bought bundle 3?
01:13:00 <elliott_> ais523: haha, it comes with a demo of Minecraft until August
01:13:02 <ais523> the thing is, it doesn't feel unfinished, but it feels like they should have been developing it longer before finishing it
01:13:11 <Vorpal> elliott_, yes that appeared like yesterday
01:13:15 <ais523> elliott_: perhaps I should wait until August before downloading it, then
01:13:24 <elliott_> ais523: you sure do hate Minecraft
01:13:29 <elliott_> <Sgeo_> Vorpal, hmm, I think I played a flash game once that involved rotating the world around you
01:13:41 <elliott_> all games are basically pale imitations of Dot Action
01:13:42 <Vorpal> ais523, it is until August 14 iirc
01:13:45 <Sgeo_> elliott_, that's not the one I was thinking of, but sure
01:13:47 <Vorpal> ais523, and the bundle ends before that
01:13:56 <elliott_> ais523: I can't really tell why, is it just the Inception effect?
01:14:08 <ais523> when does the bundle end? I sort-of assumed I'd be able to buy it indefinitely
01:14:34 <ais523> elliott_: partly that, partly the reason that I don't get why people should like it, it feels rather deficient as a game
01:14:34 <Vorpal> ais523, then you can download it forever, but you can't buy it after that
01:15:00 <elliott_> ais523: It's a flawed game in and of itself, Notch is incompetent, and the auth pseudo-DRM system is inefficient, but it's a fun game, and a creative one, certainly worth the twenty bucks it currently costs (but not the forty bucks it will cost, unless it improves massively)
01:15:04 <Vorpal> ais523, yes you get a code that you can use whenever you like as far as I understood to download it
01:15:31 <elliott_> ais523: It's true that it gives you no "goal" to play for, but then you could argue that any game where people play for something other than to complete it at all costs is like that
01:15:33 <Vorpal> elliott_, bucks being?
01:15:36 <ais523> oh, I thought you meant people who hadn't bought it could download it
01:15:41 <ais523> elliott_: I have nothing against games that don't have a goal
01:15:53 <ais523> Vorpal: slang name for US dollars
01:15:54 <Sgeo_> elliott_, I like games with no goals. But you should know that already.
01:16:19 <madbr> I think minecraft is more a "toy" than a "game"
01:16:21 <ais523> although I think puzzle-creation is probably my favourite sort of gameplay
01:16:21 <elliott_> ais523: Well, why should anyone like Minecraft? Because it's fun and dissimilar to almost every other game.
01:16:33 <ais523> I often enjoy creating levels for games more than playing them
01:16:34 <Vorpal> ais523, then you will probably like the bundle
01:16:36 <elliott_> madbr: that just sounds like gamer posturing
01:16:44 <elliott_> (It's a bad game, but is it a game?)
01:16:52 <Vorpal> ais523, and crayon is puzzle creation
01:16:56 <madbr> elliott: Well, actually I like minecraft
01:16:56 <elliott_> ais523: with Minecraft, creating the levels is over half of the game
01:17:02 <zzo38> elliott_: No it isn't a game, it is a computer game
01:17:10 <elliott_> zzo38: computer games aren't games?
01:17:12 <Vorpal> elliott_, well, we will see where adventure mode goes
01:17:20 <elliott_> madbr: Me too. But it feels like a toy/game division is artificial.
01:17:21 <ais523> but I don't think any part of the game works as well as a game specifically designed for it would
01:17:25 <elliott_> Vorpal: Adventure mode will suck, I'm sure of that.
01:17:30 <zzo38> elliott_: Actually I don't know I just made up that
01:17:31 <madbr> elliott: Hmm, probably is
01:17:35 <Vorpal> elliott_, oh certainly
01:17:36 <ais523> much like, say, adventure mode in Dwarf Fortress sucks compared to most roguelikes
01:17:37 <Sgeo_> `addquote <zzo38> elliott_: No it isn't a game, it is a computer game
01:17:38 <HackEgo> 549) <zzo38> elliott_: No it isn't a game, it is a computer game
01:17:44 <ais523> but fortress mode doesn't, and is the good part of the game
01:17:48 <elliott_> ais523: It's bad to think of redstone as, like... an awkward circuit system, or anything
01:17:50 <Vorpal> elliott_, people have done some great adventure maps before hm
01:17:57 <elliott_> ais523: The thing with Minecraft is, specialising it by taking one part of the game and doing it really well would ruin it.
01:18:08 <ais523> elliott_: it might make a better game overall, though
01:18:15 <elliott_> ais523: It feels like a universe; the fact that every component is loosely coupled but can interact marginally is the charm.
01:18:16 <Vorpal> ais523, I thought you didn't play df?
01:18:26 <ais523> I can have opinions on games even if I don't play them
01:18:33 <elliott_> You can build a house (one game), and you can give it circuits (another game). Neither of those games would be as good as that combined experience.
01:18:44 <Sgeo_> I think I like reading stories about df more than I like df
01:18:46 <elliott_> You can build a rail network (one game), to connect your houses with circuits (two games).
01:18:57 <evincar> elliott_: Of course. The game isn't about any of its elements. It's about the emergent behaviour that arises from the interaction of those elements.
01:19:01 <elliott_> ais523: Minecraft isn't a good game because any of its parts are an amazing game and the rest is just a lot of fluff.
01:19:03 <Vorpal> elliott_, and you can control a rail network with circuits
01:19:05 * Sgeo_ wonders if he can get Boatmurdered in epub form
01:19:07 <ais523> in terms of actual games, I've been playing Meteos a lot recently
01:19:13 <ais523> trying to hit the score cap
01:19:15 <elliott_> ais523: It's good because it's basically a bunch of games that, by themselves, would be really boring, but when combined, form a compelling sandbox.
01:19:17 <Vorpal> elliott_, is that 3 or 4 games in total now?
01:19:22 <elliott_> It's not nearly a diverse enough sandbox.
01:19:26 <ais523> I got over 9 million on Smogor (the score cap is 10 million - 1)
01:19:35 <elliott_> ais523: But while it's not a perfect game, it's good enough to be very compelling.
01:19:36 <Vorpal> elliott_, I meant the ones we listed
01:19:41 <Vorpal> elliott_, not all the ones in total
01:19:47 <elliott_> Vorpal: Well, it's ambiguous. That's kind of the point.
01:19:51 <ais523> and it's strange that I like Meteos, because it has basically none of the properties I like in a game
01:20:00 <elliott_> ais523: I sure hope this tl;dr enlightened you a bit as to why people like Minecraft.
01:20:23 <elliott_> ais523: I have a feeling MC is impossible to understand without playing it
01:20:24 <ais523> I still feel free to disagree with them, though, even if I understand their point of view a bit better
01:20:36 <elliott_> well, you can hardly claim that liking a game is wrong
01:20:43 <Vorpal> <elliott_> ais523: I have a feeling MC is impossible to understand without playing it <-- very true
01:20:50 <Vorpal> elliott_, watching videos will be useless too
01:20:58 <elliott_> It seems weird to go beyond "diffrn't strokes for diffrn't folks" into "I hate Minecraft and would like to buy a bundle specifically without an offer about it if I could"
01:20:59 <zzo38> Did you like any of the computer game I made up?
01:21:04 <ais523> elliott_: indeed, but I can claim that liking a game annoys me
01:21:08 <elliott_> Vorpal: Nah, watching videos and reading Towards Dawn made me buy Minecraft
01:21:09 <ais523> which is different from being wrong
01:21:26 <Vorpal> elliott_, I meant useless in making you understand it
01:21:27 <elliott_> ais523: Well... do people who like [insert music you don't like] annoy you?
01:21:35 <elliott_> ais523: Or do you just mean you don't like them ... publicly liking it?
01:21:38 <elliott_> As in saying "MC is great" etc.
01:21:54 <ais523> it's public liking I don't like
01:22:05 <elliott_> ais523: fair enough; I'm not sure how that ties into the bundle though
01:22:07 <ais523> and, I suppose, dedicating time to it that they could be dedicating towards things that would benefit me
01:22:13 <elliott_> is giving you a few weeks of playing a game publicly liking it?
01:22:16 <ais523> oh, the bundle thing is probably just mostly bandwidth
01:22:20 <Vorpal> ais523, how egoistic :P
01:22:21 <elliott_> ais523: umm, you don't have to buy it
01:22:24 <elliott_> ais523: they're separate downloads
01:22:36 <ais523> then I can retract my objection
01:22:40 <elliott_> ais523: and, anyway, Minecraft's download is just a small .jar file
01:22:41 <Vorpal> ais523, each game is a separate download indeed
01:22:52 <ais523> elliott_: small .jar files exist?
01:22:57 <elliott_> ais523: it downloads the real thing post-authentication from an Amazon S3 server with no protection on the files
01:22:57 <Vorpal> ais523, minecraft uses a tiny .jar that launches and download the rest of the game
01:23:01 <elliott_> yes, this means that anyone can download Minecraft's fails
01:23:04 <zzo38> Did you like any of the computer game I made up, or any of my ideas related to computer games?
01:23:13 <elliott_> ais523: -rw-r--r-- 1 elliott elliott 88K 2011-02-23 14:07 launcher.jar
01:23:15 <Vorpal> elliott_, does that STILL work?
01:23:17 <elliott_> Tiny enough in comparison to the other games
01:23:23 <ais523> elliott_: you consider 88K small?
01:23:33 * Sgeo_ wonders if Boatmurdered looks acceptable on a black and white screen
01:23:39 <elliott_> ais523: let me tell you how big the humble bundle two games are...
01:23:46 <Vorpal> $ du -sh /usr/bin/emacs
01:23:50 <Vorpal> ais523, much smaller than emacs
01:23:59 <Vorpal> (yes yes, I know it is a memory image of a running emacs)
01:24:01 <elliott_> ais523: Braid: 114 Mio; Cortex Command: 48.6 Mio; Machinarium: 344 Mio
01:24:12 <ais523> Vorpal: Emacs is huge, and that doesn't surprise me in the least
01:24:12 <elliott_> these are all compressed, I think
01:24:20 <ais523> elliott_: most of which is going to be images and similar content
01:24:36 <elliott_> Osmos: 19.3 Mio; Revenge of the Titans: 60.6 Mio
01:24:46 <ais523> -rwxr-xr-x 1 ais523 ais523 582406 2011-07-22 00:09 staticcat
01:24:47 <Vorpal> elliott_, 302Mtotal for the files you download for all the bundle 3 games
01:24:59 <Vorpal> 77MAndYetItMoves-1.2.0_x86_64.tar.gz
01:24:59 <Vorpal> 59MVVVVVV_2.0_Linux3.tar.gz
01:24:59 <Vorpal> 38Mcrayon_release55_2.tar.gz
01:24:59 <Vorpal> 25Mhf-linux-07172011-bin
01:25:04 <ais523> that's actually quite impressive
01:25:17 <Vorpal> ais523, I think you would LOVE crayon
01:25:21 <elliott_> ais523: it's more like ten kibioctets with a saner thing
01:25:23 <ais523> I still haven't figured out exactly why it's calling uname
01:25:31 <elliott_> Vorpal: crayon physics is boring, at least the version I played years ago :P
01:25:41 <Vorpal> elliott_, well, I find it fun.
01:25:49 <ais523> in particular, whether it's trying to establish whether it's running on Linux (using a Linux-specific system call number), or whether it's trying to find out what Linux version it has
01:25:53 <ais523> Vorpal: description of the game?
01:26:04 <elliott_> glibc warns for some versions, I think
01:26:13 <elliott_> ais523: crayon physics: you can draw arbitrary polygons
01:26:19 <elliott_> and they become two-dimensional objects subject to the physics engine
01:26:24 <Vorpal> ais523, you draw objects on the screen, they react to physics. You use this to push around and make path for a small ball that has to pick up a number of stars on the screen
01:26:24 <elliott_> you have to help a ball roll around properly
01:26:34 -!- lament has joined.
01:26:40 <ais523> ah, hmm, it is the sort of thing I generally like
01:26:47 <Patashu> isn't crayon physics now the subject of Every Flash Game Ever
01:26:52 <elliott_> Vorpal: is there anything that could make e.g. objects drop down and move other objects you created?
01:26:52 <Vorpal> ais523, all drawn a crayony way
01:26:54 <elliott_> that might make it interesting
01:26:58 <elliott_> but it wasn't in the game I played
01:27:06 <ais523> hmm, I'm not sure I've ever played a flash game
01:27:06 <elliott_> i.e., if you actually had to create rudimentary mechanisms
01:27:09 <Patashu> or that one flash game that was something Inventions
01:27:12 <Vorpal> elliott_, sure, I dropped things on other things and had them push things
01:27:16 <Vorpal> you can draw rope too btw
01:27:27 <ais523> there were some people playing Slime Games at school and I joined in sometimes, but I'm not sure if it was a flash game
01:27:27 <Patashu> http://fantasticcontraption.com/ this one
01:27:43 <ais523> oh right, I did occasionally join in in games that were definitely flash games
01:27:47 <Sgeo_> "Click here to play Minecraft for free during the Bundle"
01:27:49 <Patashu> ais those would be flash since they predated webgl
01:27:51 <ais523> I don't think I've played one since, though
01:28:07 <elliott_> ais523: it pains me greatly that you have not experienced Dot Action 2
01:28:07 <Vorpal> elliott_, draw a shape around the ball, draw a counterweight, add some "pins" to these, and a rope, now you can hoist the ball up!
01:28:08 <ais523> Patashu: something as simple as slime games is entirely doable in html4 or even 3, plus javascript
01:28:11 <elliott_> Sgeo_: oh, I bet it's the applet version
01:28:25 <Vorpal> (after pushing away the counterweight)
01:28:26 <ais523> they don't need anything introduced in html5
01:28:33 <Patashu> ais523: Hmm I suppose you're right
01:28:40 <ais523> why has the entire world decided that what used to be called DHTML only existed as of HTML5?
01:28:42 <Patashu> It'd be html objects being moved around?
01:28:56 <ais523> I wrote a program that used a huge number of overlapping <div>s for rendering years ago
01:28:56 <Sgeo_> "Play Minecraft for free until August 14th!
01:28:56 <Sgeo_> Create a key below and then apply it to your Minecraft account by clicking the red link."
01:28:58 <elliott_> ais523: "DHTML" doesn't scale at all
01:29:00 <ais523> and just changed their background colors
01:29:15 <ais523> it actually worked, and faster than using Excel for rendering
01:29:26 <ais523> (look, I hadn't heard of proper programming languages back then)
01:29:31 <Vorpal> `addquote <ais523> it actually worked, and faster than using Excel for rendering
01:29:32 <HackEgo> 550) <ais523> it actually worked, and faster than using Excel for rendering
01:29:39 <ais523> it was also possibly the only program ever to be written in Microsoft JScript
01:29:47 <ais523> because I found the documentation for that lying around
01:29:55 <Vorpal> ais523, as opposed to javascript?
01:29:59 <Vorpal> what were the differences
01:30:01 <ais523> although it turned out to be almost valid JavaScript too, I only had to change a few lines to get it working in Firefox
01:30:21 <ais523> mostly, that document.x was equivalent to document.getElementById("x") in JScript
01:30:32 <ais523> (I hope they've fixed that now, it's almost as bad as PHP's register_globals)
01:30:46 <elliott_> ais523: to expand on what I said about @ and the internet: as far as I'm concerned, if the Internet isn't universally recognised as a human right in a few years, something went wrong; and internet outages will, or at least should be, considered as serious as power outages
01:31:00 <elliott_> or perhaps moreso, considering how common laptops are
01:31:03 <ais523> can avoiding the Internet be a human right too?
01:31:17 <elliott_> ais523: probably, but is avoiding taxes?
01:31:25 <elliott_> you can be a hermit if you want, but you'll still have to pay 'em
01:31:31 <elliott_> and you might even need to fill out a form on the internet
01:31:32 <ais523> I'm not sure of the relevant
01:31:43 <Vorpal> elliott_, that is hard for old people who never used computers
01:31:46 <elliott_> ais523: it's relevant because you might have to use the internet
01:31:48 <ais523> I suspect the tax office will for at least the next 3/4 decades allow forms to be done by post
01:31:48 <Vorpal> I don't think that is realistic thus
01:31:55 <Vorpal> until many years into the future
01:31:57 <elliott_> Vorpal: no it isn't, teaching people how to use computers is easy, teaching them how to use Windows is hard
01:32:13 <elliott_> or at least, most people are bad at teaching them Windows
01:32:17 <elliott_> and practically the definition of old people involves them dying soon anyway :-P
01:32:27 <Vorpal> elliott_, my blind grandmother would have problems with any computer though
01:32:28 <ais523> elliott_: it'll be much more than 30/40 years into the future before the government can be persuaded to not mandate Windows for everything computer-related they do
01:32:28 <elliott_> ais523: would it be a human rights violation if they stopped doing so?
01:32:35 <elliott_> if the internet was considered a right
01:32:39 <ais523> elliott_: possibly, depending on the circumstances
01:32:51 <elliott_> why? why isn't avoiding post a human right?
01:32:55 <ais523> something being considered a right doesn't necessarily mean that you can assume that people will exercise that righgt
01:33:03 <ais523> that would be like feeding children only if they played
01:33:16 <ais523> and saying it wasn't a violation of human rights because playing is a human right for children
01:33:25 <elliott_> why isn't avoiding post a human right?
01:33:45 <Vorpal> elliott_, since when is getting post a human right
01:33:56 <Vorpal> internationally I mean
01:33:57 <ais523> note that in the UK, you don't have to do tax returns at all unless there's something complex about your tax situation
01:34:04 <ais523> you just have to fill in a form when you get a job or change jobs
01:34:10 <ais523> and hand it to your employer
01:34:17 <elliott_> Vorpal: we're talking about forms
01:34:24 <elliott_> ais523: I wasn't talking about forms just for taxes
01:34:40 <ais523> in fact, I have surprisingly few forms to fill in, overall
01:34:50 <elliott_> you still have to fill them in, and send them via post, right?
01:34:57 <quintopia> how do you inform the government of your tax deductions?
01:34:57 <elliott_> well, why isn't avoiding post a human right?
01:35:03 <ais523> I know this, because I use pencil and paper sufficiently rarely that whenever I fill in a paper form, I first have to remember how to use a pen
01:35:35 * elliott_ wonders if ais523 is operating this conversation by replying to every message up until I make my actual point, and then repeating
01:35:46 <ais523> quintopia: there are very few tax deductions in the UK; the main one is for donations to charity, and you let the charity know tax details and they claim the deduction on your behalf
01:36:17 <quintopia> huh...that's not a good way to attract business
01:36:21 <ais523> elliott_: I'm trying to think of a situation in which post is actually necessary
01:36:31 <ais523> quintopia: tax deductions for business exist, and there are a lot more of them
01:36:40 <quintopia> if a company can't write off their expenses, what reason do they have not to move operations to the netherlands...
01:36:41 <elliott_> ais523: well, how do you send in forms?
01:36:45 <ais523> but it's the business that's concerned with them, not the people who interact with them
01:36:45 <elliott_> and why can't avoiding that be a human right?
01:36:58 <ais523> elliott_: the main form I have to fill out atm is the university registration form
01:37:04 <ais523> which can be done over the internet or in person
01:37:30 * elliott_ tries to think of something absolutely unavoidable, legally, for living in the UK
01:37:33 <ais523> in fact, in person is how the majority of forms I fill in work out
01:37:38 <elliott_> so I can ask why avoiding that shouldn't be a human right
01:37:53 <quintopia> avoiding paperwork is the stupidest idea for a human right i've ever heard
01:38:17 <elliott_> quintopia: nah, paperwork is horrible, that's a decent idea
01:38:30 <elliott_> avoiding the internet is the stupidest one I've heard
01:38:46 <ais523> elliott_: the student finances form was legally unavoidable, but that one I /didn't/ do by hand, I went to the education office and gave them the form in person
01:39:01 <quintopia> yes, but you're talking to someone who thinks that there is no right to convenience
01:39:24 <elliott_> quintopia: I suspect you don't think there's a right to many things that there are rights for.
01:39:27 <elliott_> ais523: it was perfectly avoidable, just don't be a student
01:39:30 <ais523> they were a little surprised that I'd bothered, but the post service is a bit unreliable here
01:39:46 <ais523> my parents suggested the census is possibly post- and Internet-only, I have to look that one up
01:39:53 <quintopia> furthermore, there is no such thing as unalienable rights...
01:39:58 <elliott_> ais523: basically as far as I'm concerned, a right to avoid the internet is unnecessary; it's already the easiest way, by far, to do things, and if you want to be stubborn I don't really think society has a right to make your crusade easy
01:40:04 <elliott_> but you can always become a hermit, I suppose
01:40:05 <quintopia> any right can be taken away in the wrong situation
01:41:02 <quintopia> but you're probably right that there are things others consider human rights that i don't
01:41:28 <elliott_> yes. are you planning to try and gain political power anywhere, and if so, where?
01:42:08 <quintopia> no, but if i do, i'll make sure you don't hear about it
01:42:33 <elliott_> so voting against you is another right you don't believe in
01:42:55 <ais523> bleh, it's hard to find the exact rules for census replies, as they aren't in law; there are just laws allowing the rules to be made (by the Chancellor of the Exchequer with parlimentary approval)
01:43:07 <quintopia> eh, if i'm gonna get anything worthwhile done, i might as well dispatch with democracy right off the bat
01:43:10 <evincar> This all reminds me that the Special Rapporteur to the UN officially recommended that Internet access be considered a basic human right.
01:43:13 <ais523> Wikipedia implies that it was Internet-or-post only, though
01:43:33 <ais523> evincar: governments will find loopholes in that
01:43:45 <ais523> like only allowing access to government approved websites at libraries
01:44:13 <elliott_> evincar: umm, I was just talking about that
01:44:18 <evincar> ais523: Of course, but it is still kinda cool that *something* has made it into the lore of a group that's that high-profile.
01:44:23 <elliott_> quintopia: see, the thing is, I don't even know that you're joking.
01:44:26 <elliott_> evincar: that's how all this started
01:44:28 <evincar> If not actually very useful. :P
01:44:33 <elliott_> well, I was talking about the internet being a right
01:44:35 <evincar> elliott_: Ah, was briefly away.
01:44:40 <elliott_> I don't really care about a gesture like that that will be completely ignored
01:44:42 <ais523> elliott_: aha, I found a loophole: people who don't have addresses (like the homeless and travelers) were given the forms by hand, and handed them back in person
01:44:44 <elliott_> IIRC France recognised the internet as a right though
01:44:59 -!- bsmntbombdood has joined.
01:44:59 <elliott_> ais523: they're just not hermit enough
01:45:11 <elliott_> actually, dying is the easiest way to avoid forms
01:45:18 <quintopia> elliott_: if i become dictator of a small island nation, i will wholeheartedly support your right not to live there.
01:46:21 <ais523> also, 2011 was the first year you even could do the census online
01:46:49 <ais523> hmm, I conclude that the requirement to respond to official posted documents, maybe including reply by prepaid post, is incurred by having your own address
01:46:58 <ais523> notably, with multiple people in a house, only one of them has to reply to the census
01:47:03 <ais523> listing the information of the others
01:50:11 <elliott_> edit: Actually, what would be best is to tell yourself to buy Cisco and sell it at the height of the dot-com bubble. Then use the proceeds to buy Apple immediately. You'd be looking well over a 1,000,000% return there.
01:50:18 <elliott_> <elliott_> actually, dying is the easiest way to avoid forms
01:50:23 <elliott_> disappointed nobody addquoted this
01:50:38 <Vorpal> elliott_, it isn't very funny
01:52:07 <evincar> elliott_: I was going to respond to it, but it's too simple to be very entertaining. :P
01:52:49 <evincar> Honestly, I'm way less afraid of death than I am of others I know dying.
01:53:20 <evincar> I don't like meeting people that are significantly older than me because I have a reasonable assurance that they'll be dead within my lifetime.
01:54:01 <elliott_> "There tends to be a pretty direct correspondence between "GHC features" and "papers listing SPJ as an author"."
01:54:13 <elliott_> evincar: I take it you dislike meeting your parents
01:54:15 <evincar> elliott_: The man is a machine.
01:54:27 <evincar> Also I never technically met them.
01:54:33 <evincar> Because of how babies' memories work.
01:54:59 <evincar> Also because of how mating works.
01:56:25 -!- copumpkin has quit (Ping timeout: 258 seconds).
01:56:50 -!- copumpkin has joined.
01:57:28 <evincar> NB: My parents aren't dead or missing. They're right here in the room with me at the moment.
01:57:45 <monqy> hi evincar's parents
01:57:58 <evincar> They're currently watching a Netflix progress bar.
01:58:20 <ais523> why'd you even need to pay for movies if the progress bar is that interesting?
01:58:49 <monqy> to get the progress bar of course
01:59:20 <evincar> ais523: Beats me. The damn thing doesn't even move very fast. You could replace it with a photo of said bar, stuck terminally at just over 50% to give the illusion of progress.
01:59:37 <ais523> monqy: there is some logic to that
01:59:49 <ais523> would videoing the progress bar and sending the video to someone else count as movie piracy?
02:00:56 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:03:58 <zzo38> Internet should not be considered a basic right. A lot of people don't even know much about internet.
02:04:37 <evincar> zzo38: Free speech should not be considered a basic right. A lot of people don't even know about free speech.
02:04:59 <ais523> INTERCAL should not be considered a basic right. A lot of people don't even know about INTERCAL.
02:05:34 <zzo38> No free speech should be considered. Whether or not you know about it is not the point. I was simply mentioning it. INTERCAL is not a basic right either. However, note that some thing might be "derived" rights I suppose in certain circumstances, maybe.....
02:08:10 -!- madbr has quit (Read error: Connection reset by peer).
02:09:42 <evincar> zzo38: My point is that many people not knowing (much) about a right isn't justification for not considering it a right.
02:09:50 <evincar> In case that wasn't obvious.
02:10:15 <zzo38> evincar: I actually happen to agree with you. Free speech is a right.
02:10:21 <zzo38> Even if people don't know
02:10:31 <evincar> Besides, the internet helps promote globalism and fight xenophobia, which is a primary tool in causing unnecessary wars.
02:10:34 <zzo38> If some people don't want free speech they can be quiet
02:14:46 -!- aloril has quit (*.net *.split).
02:15:29 -!- cheater_ has joined.
02:15:34 -!- madbr has joined.
02:15:36 -!- madbr has quit (Write error: Connection reset by peer).
02:15:36 <zzo38> evincar: I do agree that internet can help good thing, so can other thing; people can be have a computer, if they have computer, can get internet connection, etc. However, in my opinion it should not be considered a *basic* right.
02:17:22 -!- aloril has joined.
02:21:07 -!- BeholdMyGlory has joined.
02:22:49 -!- madbr has joined.
02:24:15 -!- madbr has quit (Read error: Connection reset by peer).
02:26:54 <evincar> ais523: So I finally decided to do the obvious and pursue a doctorate in computer science.
02:27:16 <ais523> evincar: I'm pursuing it too, and think I have something of a head start
02:27:25 <evincar> I don't know if you were one of the people who was privy to my school troubles a few months back.
02:27:28 <ais523> I hope there's enough for all of us when we catch it
02:27:36 <ais523> also, I don't remember that, so I guess I wasn't
02:27:40 <ais523> or that I have a bad memory
02:27:58 <evincar> Meh. Long story short, school sucks as usual for people like me.
02:29:05 <ais523> what nationality are you? and what do you mean by "school"? the word refers to slightly different educational institutions in different countries
02:29:17 <evincar> Specifically, the fact that I'm skilled and consequently have a huge sense of entitlement, I'm a maverick who can't stand working with others, I don't care about classes that don't teach me anything, etc., etc.
02:29:36 <evincar> Uh, American, college. Rochester Institute of Technology, specifically.
02:29:46 <evincar> I'm entering my fourth year.
02:30:00 <elliott_> is there anyone who self-identifies as a maverick who isn't a huge egotist, i ask this devoid of any context
02:30:16 <ais523> elliott_: I'm not sure
02:30:32 <ais523> although people who self-identify as mavericks are split upon whether they believe themselevs to be huge egotists, I imagine
02:31:21 -!- madbr has joined.
02:31:46 <evincar> elliott_: I am a huge egotist, but I'm also demonstrably a maverick. I really don't work well with others and I don't think like most of the people around me.
02:32:24 <ais523> you'll need to work with others occasionally even in a PhD
02:32:38 <ais523> part of the problem is finding a good supervisor who fits you well
02:32:41 <evincar> Then again, saying I'm an egotist probably calls into question whether I actually am, according to elliott_ logic.
02:32:52 <elliott_> maverick to me has connotations of being a brilliant jerk
02:32:56 <elliott_> which is a questionable self-identification
02:33:32 <evincar> ais523: Well, I have a good advisor and someone I could work with, and hopefully none of us would find any of the others insufferable jerks.
02:33:53 <evincar> elliott_: I'm using it in its literal sense of an unorthodox person.
02:33:55 <ais523> do you have a thesis, too?
02:33:59 <evincar> It's mostly that I'm contrary.
02:34:10 <ais523> as in, something to study towards?
02:34:12 <evincar> Especially in the face of what I percieve to be arbitrary authority.
02:34:25 <elliott_> meh, you're not that unorthodox if you've managed three years of university
02:34:30 <ais523> either you or your supervisor needs to come up with one
02:34:35 <evincar> ais523: Oh yeah, I'm interested in dependent typing for imperative languages.
02:34:47 <ais523> OK, that's possibly niche enough to work
02:34:48 <evincar> There's more to it than that, but that's the gist.
02:34:59 <evincar> elliott_: I expect you're going to tell me why.
02:35:12 <elliott_> probably not, but it seems like adding any kind of mutability breaks the type system immediately
02:35:17 <ais523> although computer scientists will probably push you into doing it for ML because it's about the most imperative they're willing to consider
02:35:19 <elliott_> without encapsulating it somehow
02:35:21 <elliott_> which stops it being imperative
02:35:27 <ais523> elliott_: that's what makes it an interesting problem
02:35:36 <elliott_> also, imperative languages are a bad idea in general, being a subset of functional ones
02:35:40 <elliott_> and leaving out the most expressive parts
02:35:52 <elliott_> ais523: well, I'd question whether the result could be called dependently-typed. or maybe imperative.
02:36:05 <evincar> There are imperative languages out there with rudimentary dependent type systems, but they're very "researchy" and I want to make something more accessible.
02:36:27 <evincar> Because I consider dependent typing too useful to frame in a language that scares real programmers off.
02:36:29 <elliott_> "I'm going to do a PhD in taking some research and making it friendly to the masses"
02:36:39 <elliott_> evincar: by real programmers, you mean bad programmers, right?
02:36:49 <ais523> do you mean real programmers as in Mel?
02:36:59 <ais523> or as in undergraduate Java users?
02:37:22 <elliott_> evincar: so you've chosen academia as the vehicle to make a piece of academic research accessible to idiots who dismiss anything from academia as useless?
02:37:23 <evincar> ais523: No, I mean average programmers, the everyday variety.
02:37:26 <Sgeo_> http://www.reddit.com/r/DebateReligion/comments/j2d1x/to_all_religion_vs_morality_an_experimental/ Oh come on, I'd have to argue the viewpoint I agree with? That's boring
02:37:32 <elliott_> who the fuck is an average programmer
02:37:45 <ais523> Sgeo_: the mere existence of /r/DebateReligion worries me
02:37:47 <elliott_> is it someone who has to use java anyway because they're writing a CRUD database interface and it isn't up to them
02:37:56 <evincar> elliott_: Let me know how else to get funding to make what I want.
02:38:00 <ais523> it's like it's a honey pot reddit designed to contain trolls
02:38:02 <elliott_> nobody can give a satisfactory definition of average programmer that doesn't preclude them choosing the tools
02:38:13 <elliott_> evincar: what funding do you need beyond enough to live?
02:38:53 <elliott_> ais523: it's terrible, it has little tags so you can assure people that you don't REALLY think this, you're just explaining the other side
02:39:06 <evincar> elliott_: That is the amount of funding that I need. If I get a job, I will have money. Quite a bit, in fact. But I won't have as much time, and time is far more important to me than money.
02:39:13 <ais523> actually implemented in, or just conventional character sequences?
02:39:22 <ais523> by conventional, I mean "have a meaning by convention"
02:39:45 <elliott_> ais523: "now debates will have much fewer personal insults because we bring your personal views into the discussion!"
02:39:52 <ais523> evincar: I have a job as well as the PhD, 25%/75%
02:39:57 <elliott_> evincar: so how does this imperative dependent typing exactly work
02:40:14 <ais523> elliott_: I think it's so that you can persuade people who share your personal viewpoint that you aren't betraying them
02:40:20 <elliott_> and how long will it take you to realise that the "average programmer" can't actually choose to use your language
02:40:29 <elliott_> ais523: yep, so it makes debates personal
02:40:36 <ais523> elliott_: never ask a PhD student something directly on topic to the subject of their PhD
02:40:42 <elliott_> [](/da)are playing devil's advocate
02:40:42 <elliott_> [](/nmv)are giving information that does not agree with your personal views
02:40:44 <ais523> the answer will continue for years and you won't understand it
02:40:46 <elliott_> Christianity is a religion. [NMV]
02:40:50 <elliott_> ais523: he's not a Ph.D. student
02:41:02 <ais523> so you might have a chance at getting out alive
02:41:25 <elliott_> ais523: my secret weapon is knowing I'm the only right-thinking person in any discussion
02:41:54 <ais523> elliott_: but sometimes you change your mind as the result of a discussion
02:42:33 <elliott_> ais523: yes, but only if it's with you
02:42:49 <elliott_> ais523: anyway, that just means it took a while for my rightness to kick in
02:42:56 <evincar> elliott_: The simplest way to explain it is that the type system is a complete, purely functional, lazy language with no mutability, and the value system is an imperative, eager one with mutability.
02:43:12 <elliott_> wow, an image on prog21; I forgot it existed in the same universe as HTML pages with images on them
02:43:24 <elliott_> evincar: umm, what dependently typed languages do you know, so I can express what I'm about to
02:43:41 <elliott_> please don't say none, the force of my facepalm will cause actual devastation to many north-eastern English populations
02:43:54 <ais523> elliott_: you're going to shout at me now for not knowing what prog21 is
02:43:58 <elliott_> evincar: can you learn Coq so that I can talk to you without bringing up my character map?
02:44:27 <elliott_> ais523: Programming in the 21st Century; it's a Good Blog About Programming(tm)
02:44:30 <ais523> elliott_: I may end up knowing more Agda than Coq because I'm apparently to work with an Agda fanatic
02:44:40 <elliott_> ais523: you have one more not knowing what prog21 is, then the shouting begins
02:44:45 <evincar> elliott_: I can pick up what's relevant to the discussion.
02:44:46 <ais523> and that has a tendency to rub off on you
02:44:57 <ais523> but then, I doubt you'd be surprised at me not knowing what X is for more or less any X
02:45:02 <elliott_> ais523: you'll hate Agda, I suspect
02:45:11 <ais523> and even when I do know what the X is, I often don't know what it's called
02:45:15 <elliott_> because it uses Unicode everywhere
02:45:18 <evincar> I find it difficult to take a language seriously whose name is "cock".
02:45:28 <elliott_> evincar: you realise Agda means that too?
02:45:31 <ais523> elliott_: that seems to be to do with the libraries not the lang itself, but fair enough
02:45:50 <elliott_> I think it's a mutation of Swedish "rooster" or something
02:45:51 <ais523> Unicode everywhere is not that problematic, the difficulty is characters-not-on-my-keyboard everywhere
02:46:03 <elliott_> ais523: umm, unless you consider the function arrow the library
02:46:14 <ais523> oh, haha, it's not ->?
02:46:26 <evincar> elliott_: I didn't know that. But I stand by it. I don't take Agda seriously. :P
02:46:27 <elliott_> ais523: and it uses a two-colon char instead of ::
02:46:27 <ais523> anyway, → is on my keyboard
02:46:51 <elliott_> it comes with an emacs mode, though, so you can say \to for →
02:47:00 <ais523> I know I have to keep explaining what all the backslashes mean in my ICA programs
02:47:08 <ais523> because I'm using \ for lambda Haskell-style
02:47:15 <ais523> (but \a.b not \a -> b)
02:48:09 <elliott_> evincar: forall A (xs:List A), is_empty xs -> forall (x:A), ~(list_elem x xs)
02:48:25 <elliott_> evincar: vacuous_empty_list : forall A (xs:List A), is_empty xs -> forall (x:A), ~(list_elem x xs)
02:48:32 <madbr> Coq is french for rooster
02:48:34 <elliott_> proof := vacuous_empty_list xs;
02:49:03 <elliott_> evincar: ...then we can prove ~True, since (list_elem 9 xs)
02:49:49 <zzo38> \to is also the Plain TeX (and maybe also LaTeX and ConTeXt) command for the right arrow in math mode, too
02:50:46 <evincar> elliott_: You're thinking immutably. In my language, a mutating operation of any kind may change type as well as value.
02:50:49 <elliott_> evincar: And if you can't prove that the vacuous property on all elements of an empty (mutable) list, then you can't prove almost anything about mutable structures
02:51:09 <elliott_> Which means that you just have... a functional language where an IO monad is baked in for no reason
02:51:18 <ais523> zzo38: I think \rightarrow is more common
02:51:27 <ais523> or maybe it's just a case of me not knowing the LaTeX for something
02:51:29 <zzo38> Yes \rightarrow also does that.
02:51:41 <ais523> I used to actually write $a^{\prime}$ rather than $a'$
02:51:44 <elliott_> ais523: yep, but \to is quicker to type in emacs
02:51:46 <ais523> because I didn't know of the abbreviation
02:51:51 <elliott_> and those aren't identical AFAIK
02:51:59 <ais523> no, but they're close enough
02:52:07 <ais523> and the latter is correct
02:52:08 <zzo38> \to and \rightarrow are identical commands; I just checked.
02:52:13 <zzo38> And ' in math mode is a prime.
02:52:18 <elliott_> evincar: Because I'm sure you can encode mutable variables that can change type upon mutation in Coq
02:52:29 <elliott_> And then build a mutable list with that
02:52:37 <zzo38> Since, math code 0 means treat as an active character in math mode.
02:52:46 <elliott_> evincar: Also: How do you avoid this?
02:52:49 <ais523> oh no, I think evincar's trying to add dependent typing to Visual Basic
02:52:55 <zzo38> So, ' has some special macro to check how many prime it is.
02:52:58 <elliott_> evincar: oops : _|_; oops = while true {}
02:53:09 <evincar> elliott_: But of course the point is that mutability is only there if you want it, not encouraged. Values and types are both immutable by default, and there are significant gains to going with the flow.
02:53:12 <ais523> (the first imperative language I could think of offhand with a Variant type)
02:53:23 <zzo38> Since you can do more than one prime, but ^{\prime} multiple times doesn't work.
02:53:25 <elliott_> evincar: OK, so why is the language imperative?
02:53:42 <zzo38> (Really I think it should have been designed so that it works; but it doesn't.)
02:53:44 <evincar> ais523: Ugh. Don't get me started on variants.
02:53:48 <elliott_> evincar: You can encode such mutable variables in any functional, dependently-typed language
02:53:55 <ais523> evincar: do you know of the standard formalization of imperative languages in computer science?
02:54:05 -!- TeruFSX has joined.
02:54:06 <evincar> elliott_: The point isn't purity, though. It's utility and accessibility.
02:54:11 <ais523> "the simple imperative language" is the usual name
02:54:20 <elliott_> evincar: FFS, the IO monad is impure.
02:54:35 <zzo38> Do you think THE ROCKET'S TRAP is a stupid card and ROCKET'S SNEAK ATTACK is much better?
02:54:37 <elliott_> You're basically choosing to make the language more complicated because it lets you call it "imperative" and get backs on the back from idiots who are afraid of lambdas.
02:54:42 <ais523> elliott_: I think it can be implemented in a pure way, given the way laziness works
02:55:15 <elliott_> evincar: The interesting part is a dependently-typed language where the values can fail to terminate without making the type system unsound.
02:55:15 <ais523> elliott_: also, would you consider ICA imperative?
02:55:29 <elliott_> evincar: Don't burden it with something you can encode, with no loss at all, into a pure version.
02:55:31 <ais523> it has lots of lambdas, and uses a Y-like fixing operator for recursion, but it also has if, while, and assignable variables
02:55:42 <ais523> (although they have fixed types)
02:55:50 <elliott_> evincar: There is literally no advantage of baking mutable variables in, especially if there are proving-related gains to using immutable values.
02:56:07 <zzo38> But lambdas is very useful things in many programming languages, whether functional or imperative
02:56:18 <elliott_> ais523: imperative is practically impossible to define; it's a non-compositional, impure language
02:56:26 <elliott_> ais523: but only the IO is non-compositional
02:56:31 <elliott_> ais523: OTOH, in ICA, I suspect IO is rather a lot of the program
02:56:44 <zzo38> madbr: Yes, sometimes.
02:56:52 <evincar> elliott_: Why do you think I want dependent typing for its proving capabilities? I simply think it's a useful abstraction for how to organise a type system.
02:57:08 <ais523> atm, the way IO works is that the program is given a function as argument, which, when forced, takes a number as argument and outputs it
02:57:14 <evincar> elliott_: And making an imperative language with a functional type system burdens neither.
02:57:17 <ais523> and there's no input, but it could be implemented in an analogous way
02:57:20 <evincar> There's a false dichotomy here.
02:57:39 <ais523> the language is about as strict as call-by-name gets, which is still pretty lazy
02:57:43 -!- Kerber0s has joined.
02:57:50 <zzo38> Is it ever the case in Haskell sometimes someone will write a program and compile it but what the program does is unimportant, only whether it will compile successfully?
02:58:03 <ais523> zzo38: people normally use Coq or Agda for that
02:58:09 <zzo38> Or in any other programming language?
02:58:31 <elliott_> evincar: Unless you can respond to my true statement that your language would lose absolutely nothing from implementing mutable variables inside the language itself and not having them as a burdensome axiom, I can't continue.
02:58:36 <ais523> in fact, I was wondering why my coworker was bothering to implement Agda at all
02:58:41 <madbr> I thought programming was more for many-to-many problems, rather than many-to-few
02:59:01 <ais523> elliott_: actually, there are advantages to having mutable variables as an axiom, but I can't remember offhand what they are
02:59:16 <ais523> but there's some technical advantage involved
02:59:23 <ais523> probably in operational semantics
02:59:32 -!- Kerber0s has left.
02:59:51 <ais523> whether this is relevant at all in evincar's situation, I don't know
02:59:51 <elliott_> ais523: the burden is on evincar to tell me why baking them in as an axiom that introduces unchecked side-effects is beneficial
02:59:58 <evincar> elliott_: The language wouldn't lose anything, but it wouldn't gain anything either. If a programmer wants to implement a function with local mutable variables because it's the simplest way for the problem to be decomposed, they can go for it.
03:00:19 <elliott_> evincar: You can do that without making it unchecked! You can do that without making it an axiom!
03:00:30 <ais523> evincar: I think you're missing elliott_'s point, which is asking whether mutable variables can more easily be implemented within the language itself rather than as part of it
03:00:34 <evincar> elliott_: And a pure function can do all the mutation it wants to locals and still be referentially transparent.
03:00:41 <elliott_> evincar: have you ever heard of ST?
03:00:43 <ais523> e.g. like State in Haskell
03:01:18 <elliott_> You are being a broken record; "oh, it's nice to use mutable variables sometimes in localised parts of the program" is such a fucking common argument against "functional languages" vs. "imperative languages" but it's utter rubbish; functional languages _have those things_, the only difference is that imperative languages have unchecked IO
03:01:32 <ais523> elliott_: you might be interested in how variables work in ICA, they're referentially transparent because there's no way to return the equivalent-of-address of a variable from a function (because call-by-name), and are scoped
03:01:41 <elliott_> and that cannot possibly be an advantage, because it is a subset that _omits the most expressive parts of a language_
03:02:19 <ais523> as in, you can write a function of type, say, exp->var just fine, but what happens is that each time you try to access the variable it asks for the matching expression, then carries out whatever operation you were trying to do to the variable in a lazy way
03:02:34 <evincar> elliott_: So if I were to say that I'm going to implement my nominally imperative language in a purely functional fashion, such that mutating operations are emulated, what does that gain me?
03:02:55 <evincar> elliott_: Other than complicating the implementation.
03:02:58 <ais523> and you can't achieve the same thing with equivalent-of-ST/State, incidentally, because it wouldn't handle parallel computation correctly
03:03:24 <ais523> there's no way in a monad to carry out two monad actions in that monad simultaneously, in general
03:03:35 <elliott_> evincar: Question is dishonest; there is no "emulation" going on, and you have already told me enough to know that your language is not nominally imperative; and it cannot complicate implementation, because the function arrows, etc. that you need for a dependently-typed system like Agda already involve you implementing a functional language, so it can only simplify.
03:04:13 <ais523> new a in (a := 1 || a:= 2); print a
03:04:18 <ais523> new a in (a := 1 || a:= 2); print !a
03:04:27 <ais523> always remember to dereference your variables, folks!
03:04:42 <ais523> I don't think that translates into Haskell at all
03:05:01 <ais523> so that's one potential use for evincar's language, assuming it works
03:05:13 <ais523> madbr: declare a variable a, assign 1 and 2 simultaneously to it, print the resulting value
03:05:19 <ais523> which will be either 1 or 2, based on timing
03:05:31 <ais523> || means parallel here, not or
03:05:57 <ais523> (which is | because C operators have too much of a hold on the world's conciousness by now)
03:06:15 <elliott_> ais523: so you're breaking it by being unlike C?
03:06:19 <elliott_> or do you actually use bitwise or in C :-)
03:06:24 <evincar> ais523: "||" makes so much more visual sense for "parallel". :(
03:06:27 <ais523> well, booleans are one-bit values
03:06:37 <ais523> so logical and bitwise or are the same thing
03:06:50 <evincar> ais523: Now *that* sounds like Basic.
03:06:52 <ais523> there's no autocasting of >1-bit integers to booleans, you have to manually compare to 0
03:06:53 <elliott_> <ais523> (which is | because C operators have too much of a hold on the world's conciousness by now)
03:07:07 <ais523> elliott_: I mean, I couldn't live with having or as anything but | and ||
03:07:11 <ais523> and || was already taken
03:07:19 <ais523> xor and and are ^ and &
03:07:52 <elliott_> ais523: quick, what's gcd(0,0)
03:07:59 <ais523> elliott_: I don't know
03:08:16 <elliott_> ais523: Euclid's algorithm says 0
03:08:26 <ais523> it couldn't really say anything else, could it?
03:08:42 * elliott_ says because of http://www.haskell.org/pipermail/libraries/2011-June/016450.html
03:09:03 <zzo38> CWEB also uses | to include C codes in text, the reason is that WEB uses it for Pascal codes in text, because | is not used in Pascal, and then they put the same thing for C and sometimes it doesn't work in case you want to use "or" in C codes in text. But you can still do in other ways. Even many other programming language including Javascript, AWK, etc also uses || for logical or
03:09:03 <ais523> lcm(0,0) is uncontroversially 0, and gcd(a,b)*lcm(a,b) normally equals a*b
03:09:07 <ais523> which gives further evidence for +INF
03:09:43 <evincar> Yeah, was gonna say, no it does not.
03:09:44 <ais523> wait, no, err, I'm confused
03:09:46 <ais523> it doesn't suggest anything
03:09:52 <ais523> it sets it equal to 0/0
03:09:56 <elliott_> evincar: I take it I should stop expecting a response
03:09:59 <ais523> which is not a useful thing to do
03:10:08 <elliott_> ais523: lcm(0,0) = 0; lcm(0,0)*gcd(0,0) = 0*0 = 0
03:10:09 <ais523> for some reason I calculated it as 1/0
03:10:15 <evincar> elliott_: I'm losing track of what the current attack is.
03:10:31 <ais523> yep, it doesn't force any particular value on gcd(0,0)
03:10:41 <evincar> elliott_: Your style of conversation is notoriously aggressive. ;)
03:10:42 <ais523> elliott_: actually, when your PhD is actually marked, the final stage is a viva
03:10:55 <ais523> where you have to sit in a group with a bunch of professors who try to attack your thesis, and you have to defend it
03:11:07 <ais523> and you pass if they couldn't invalidate your last four years of work
03:11:11 <elliott_> evincar: How am I supposed to respond to a "when-did-you-stop-beating-your-wife" question aside from explaining that it's dishonest? I'm a bit exasperated, I admit, but that's mostly because it's annoying to see someone who knows Agda spout what is essentially the party line on anti-functionalism.
03:11:15 <ais523> (they mark the written part first, I think)
03:11:18 <elliott_> <evincar> elliott_: So if I were to say that I'm going to implement my nominally imperative language in a purely functional fashion, such that mutating operations are emulated, what does that gain me?
03:11:18 <elliott_> <evincar> elliott_: Other than complicating the implementation.
03:11:18 <elliott_> <elliott_> evincar: Question is dishonest; there is no "emulation" going on, and you have already told me enough to know that your language is not nominally imperative; and it cannot complicate implementation, because the function arrows, etc. that you need for a dependently-typed system like Agda already involve you implementing a functional language, so it can only simplify.
03:11:23 <zzo38> "Attack"? Yes it is attack. Now you are playing pokemon card but you forgot which attack you want, in case there is 2 attack or in case you want to pass even if you can attack
03:11:40 <ais523> zzo38: it's kind-of rare to pass in that game
03:11:50 <ais523> although I can just-about imagine situations where it might be useful
03:11:52 <elliott_> ais523: See also http://www.mcsweeneys.net/articles/faq-the-snake-fight-portion-of-your-thesis-defense
03:12:00 <elliott_> (you probably won't click that, but the URL is funny enough)
03:12:13 <zzo38> ais523: Actually I find it very useful to pass in many situations
03:12:19 <ais523> elliott_: I did click it, in case it was useful
03:12:26 <ais523> also, I'd hate to have you marking my PhD
03:12:42 <elliott_> ais523: I'm only angry on the internet
03:13:00 <evincar> elliott_: I do consider it emulation. Just like I can write an interpreter for an imperative language with mutating operations in a language without mutating operations, so too can I write an interpreter for a language with only immutable values on hardware that is fundamentally (though not trivially) imperative.
03:13:28 <elliott_> evincar: If you think your hardware follows a fundamental ordered imperative model, you're stuck in the 90s
03:13:29 <ais523> hmm, it makes a decent metaphor even if it claims not to be
03:13:35 <evincar> elliott_: That aside, I'll ultimately go with whatever implementation strategy seems simplest and best. Ideally the language will be small and implemented largely in terms of itself.
03:13:55 <ais523> elliott_: hardware doesn't follow a functional model either, admittedly
03:13:59 <elliott_> ais523: the part about fighting a snake instead of actually writing a thesis is the best
03:14:05 <ais523> look at Checkout if you want to know what it actually does
03:14:09 <evincar> elliott_: I don't. That's why I qualified my statement a bit. :P
03:14:10 <elliott_> But who the hell picks programming model based on their hardware model
03:14:19 <elliott_> <evincar> elliott_: That aside, I'll ultimately go with whatever implementation strategy seems simplest and best. Ideally the language will be small and implemented largely in terms of itself.
03:14:28 <ais523> elliott_: me, but admittedly that's a special case
03:14:33 <madbr> elliott: yeah but it emulates one for a good reason
03:14:35 <elliott_> evincar: I don't think you really want this, because you weren't interested in a change to simplify the language incredibly and make implementing it easier, and have it defined more in itself than it was
03:14:50 <evincar> elliott_: I'm not arguing that it's a good idea to pick a programming model based on the hardware. In fact, I'd argue the opposite so long as the hardware doesn't serve the abstractions of the problem domain perfectly.
03:15:02 <elliott_> madbr: please, talking to both evincar and ais523 at once is hard enough, I can't have an anti-functionalism argument with someone whose positions I don't even know at the same time
03:15:07 <ais523> elliott_: part of the reason I haven't started writing Anarchy yet is that I'd really want to implement it in itself
03:15:17 <ais523> elliott_: and I'm not even disagreeing with you!
03:15:34 <evincar> elliott_: I'm just reserving judgement, I guess.
03:15:38 <Patashu> I want to write Democracy. How any function works is determined by all coders of that language voting on its behaviour
03:16:08 <evincar> elliott_: I am trying to make a language that's highly usable and easy to understand.
03:16:09 <ais523> elliott_: that's a worryingly accurate joke
03:16:23 <elliott_> http://www.econugenics.com/t-our-products.aspx?affiliateID=10100 <-- I read this as "neoEugenics" rather than "ecoNugenics"
03:16:30 <evincar> elliott_: Not because I'm pursuing some misguided "non-programmers should be able to program" goal.
03:16:42 <elliott_> evincar: Easy to understand for who
03:16:48 <ais523> evincar: it sounds like you're pursuing some misguided "programmers should be able to program" goal
03:16:58 <evincar> But because I don't like using languages that make me conform to them rather than the other way around.
03:17:01 <elliott_> evincar: And really: understanding dependent type systems is not easy for any "average imperative programmer".
03:17:17 <elliott_> You can't go from Java to that without some resistance. That's just a fact.
03:17:36 <ais523> ideally, a dependent type system would not require any input from the programmer at all
03:17:44 <ais523> and just give you really good warning messages
03:17:52 <evincar> elliott_: Sure, but you can tease people in with nifty examples.
03:18:07 <ais523> like "this branch of this if statement is unreachable because the variable never gets the number 4", or whatever
03:18:08 <elliott_> evincar: Anyway if you're a maverick who dislikes working for others and rejects false authority why the hell are you devoting yourself to the false authority of the Average Programmer(tm), why the hell are you watering down your language so that it's easy for the mythical Average Programmer(tm)???
03:18:13 <ais523> but I suspect that isn't what evincar isn't aiming for
03:18:36 <ais523> err, s/n't(.*)n't/n't$1/
03:18:37 <evincar> elliott_: Even trivial ones like defining sequence joining as `+`[a:T[n], b:T[m]]:T[n+m]={...}
03:18:46 <ais523> there's a shorter way to write that regex, but I forget what it is to start with
03:18:57 <elliott_> evincar: that's the least enticing example ever
03:19:05 <elliott_> you're not winning any Java programmers with that syntax, dude
03:19:51 <monqy> I must say I'm agreeing with elliott_ here
03:19:54 <ais523> evincar: is the {...} literal, or representing omitted code?
03:20:13 <elliott_> ais523: I think parametricity actually guarantees that function to only have one implementation
03:20:13 <ais523> (shut up this is #esoteric I have to ask that sort of question)
03:20:25 <elliott_> ais523: so a Sufficiently Smart Compiler could actually accept {...} there :-P
03:20:27 <evincar> elliott_: The majority of programmers are not the best programmers out there. I think doing a public service by making power available (conceptually) to people isn't submitting to authority at all, it's doing what all people ought.
03:20:27 <ais523> then why do you need to write the implementation at all?
03:20:35 <elliott_> although it needs a type variable
03:20:35 <ais523> also, it could reverse the lists before joining them, couldn't it?
03:20:42 <ais523> and still obey the type signature?
03:20:48 <evincar> ais523: It's a placeholder for an implementation, but it's probably unnecessary in that example.
03:20:50 <elliott_> evincar: so you're making a bad language because of socialism, OK
03:21:04 <elliott_> (bad language = not as good a language as it could be)
03:21:28 <ais523> elliott_: do you live in a country where you can make arbitrary things bad by accusing them of being socialism?
03:21:31 <evincar> elliott_: In your opinion. And I am a socialist, but that's not really the point.
03:21:42 <elliott_> evincar: that's literally what you just said
03:21:45 <evincar> elliott_: I simply like making stuff that helps people make stuff, because I like making stuff.
03:21:54 <ais523> (also, does that actually /work/ in the US? might be the easiest way to win arguments ever)
03:21:59 <elliott_> ais523: but I do think "for the good of the people" is the stupidest reason to make a language I can think of
03:22:17 <ais523> elliott_: there have to be even stupider reasons, surely?
03:22:25 <evincar> ais523: And yeah, you could add more type information to make it more correct. :P
03:22:30 <elliott_> evincar: So you'd make a thing that's worse than another thing you could also make, because more closed-minded idiots would like it, and fewer open-minded clever people would like it?
03:22:43 <elliott_> If yes, your priorities need checking.
03:22:56 <ais523> elliott_: well, I care somewhat about people being able to use my stuff as well
03:23:14 <ais523> but I'm doing it along the lines of "this language is pretty easy to use anyway, and you can always compile into it)
03:23:29 <evincar> elliott_: You're assuming that the majority of people are closed-minded idiots, which I challenge.
03:23:34 <elliott_> ais523: presumably, you wouldn't make [generic FPS 999] rather than AceHack just because more people with bad taste would like the former
03:23:35 <ais523> I wasn't looking at what I was typing and forgot what sort of delimeter I had to close
03:23:43 <ais523> further evidence that I'm thinking in stack-based form
03:23:53 <ais523> elliott_: AceHack was actually a response to popular demand
03:24:03 <monqy> evincar: hey evincar is your language going to have goto
03:24:05 <evincar> elliott_: "more closed-minded idiots...fewer open-minded clever people..."
03:24:08 <ais523> and also, there's less competition; probably fewer people would play generic FPS 999 because it would have so much competition
03:24:19 <elliott_> evincar: I'm assuming that the (mythical) Average Programmer who will dismiss a language because it's pure (but not for having a really advanced type system that is a purely-functional language in itself??) is a closed-minded idiot.
03:24:46 <ais523> elliott_: but mostly, I suppose I just like programming, and producing something that other people like out of that is a useful side-effect
03:25:01 <ais523> elliott_: won't Average Programmers dismiss languages for not being Java?
03:25:10 <monqy> evincar: goto is very expressive, you see, and shouldn't an expressive language have it? Average Programmers understand it too!
03:25:10 <elliott_> evincar: let me type something
03:25:41 <ais523> evincar: your new PhD thesis: retrofitting dependent typing onto Java
03:25:55 <ais523> (gah now I can't decide whether that idea is horrible or awesome)
03:25:59 <elliott_> evincar: you want people to learn a purely-functional programming language (which can already encode all the mutability and IO you want, with no loss in convenience or expressivity, which is simpler, has fewer errors because of unchecked non-local side-efects, and which has more language features described in itself rather than primitive)
03:26:07 <elliott_> evincar: PLUS an impure language which doesn't have those advantages
03:26:10 <elliott_> evincar: ...rather than just both.
03:26:14 <elliott_> evincar: ...rather than just the pure one.
03:26:31 <elliott_> <evincar> elliott_: The simplest way to explain it is that the type system is a complete, purely functional, lazy language with no mutability, and the value system is an imperative, eager one with mutability.
03:26:36 <evincar> monqy: You could make something that is goto in all appearances, but implemented more sanely. I'm not sure what card you're trying to play.
03:26:55 <evincar> elliott_: The simplest way to explain it is not necessarily the best way.
03:26:58 <elliott_> Oh, and you know how you said youcould use functions which had local mutable state but didn't leak it outside? Congratulations, now you can't use those functions in types.
03:27:13 <elliott_> With the ST monad, you can, and it acts identically. And it enforces, with the type system, that you don't leak anything out, rather than leaving it up to not making mistakes.
03:27:18 <monqy> i'm trying to play the demonstrating how it's stupid to add things for the sake of average programmers being expressive with them card
03:27:22 <monqy> if thats ok with you
03:27:23 <evincar> elliott_: Besides, the C++ type system is a complete functional language with no mutability.
03:27:46 <evincar> elliott_: There's an example of my madness working in practice, with a far poorer design.
03:28:04 <elliott_> I think that means I've won...
03:28:07 <evincar> elliott_: It is a language that exists?
03:28:15 <monqy> elliott_: did he ever explain how Average Programmers are supposed to use dependant types? I'm afraid I might have accidentally skipped over it
03:28:21 <zzo38> One of the worse things about Magic Set Editor is they lie. They say it is pure but actually it isn't, because of the random number functions, and the export functions. It is possible to make pure versions of these functions, which can be helpful in some cases.
03:28:22 <madbr> and that lots of ppl use?
03:28:25 <elliott_> monqy: he's going to entice them with a list append function
03:28:41 <ais523> evincar: just a note, appealing to C++ in programming forums, unless they're dedicated to games or old-fashioned Windows development, will generally make everyone laugh at you
03:28:43 <elliott_> monqy: then they'll just go to their bosses and say "hey let me stop using java, there's this great language in this thesis..."
03:28:48 <ais523> in fact, it may even Godwin the thread
03:28:50 <elliott_> and the bosses will be all "ok"
03:28:55 <evincar> ais523: I'm well aware. I try not to touch the thing, honestly.
03:28:58 <ais523> although it's not quite the same thing
03:29:22 <atehwa> elliott_: okay, well, it doesn't surprise me that there is a language that is more expressive than primitive recursive functions and less expressive than a TM.
03:29:24 <ais523> zzo38: how do you make a pure version of a random number function? get it to take the seed as argument and return another seed along with the result?
03:29:41 <ais523> (note, "you" here = "zzo38")
03:29:45 <elliott_> atehwa: you seemed to imply such a language couldn't express Ackermann, though
03:30:09 <ais523> elliott_: I was going to write an Ackermann-bounded-automaton as an esolang at one point
03:30:13 <atehwa> yes, well, I wasn't aware of such a language.
03:30:25 <evincar> monqy: The point of having a dependent type system in an imperative language is merely to offer fine control over the contracts that can be expressed over values, to help enforce program correctness.
03:30:41 <elliott_> evincar: oh, so you do want proving?
03:30:42 <zzo38> ais523: Yes. Or, just add to the seed each time, call it with seed=x+1, seed=x+2, seed=x+3, etc
03:30:46 <elliott_> I thought you just wanted it because it was a good way to organise a type system.
03:30:47 <ais523> all I remember is that you had a finite number of values to work with and all operations consumed a value, except finitely many times, you could ackermann two values and get that many values
03:30:50 <evincar> Make the interface to it pleasant to look at, and the battle is basically won.
03:30:55 <elliott_> <ais523> zzo38: how do you make a pure version of a random number function? get it to take the seed as argument and return another seed along with the result?
03:31:05 <elliott_> evincar: creating your language won't make me think it's any more of a good idea.
03:31:20 <elliott_> I do hope you realise how difficult it is to prove type systems correct, though
03:31:20 <ais523> elliott_: I was interested in the zzo38 answer in particular, I know about, say, RandomRIO
03:31:20 <evincar> elliott_: Formal correctness, practical correctness, different things.
03:31:29 <elliott_> where you have to mingle in the value normalisation proof
03:31:44 <evincar> elliott_: If you write enough type information to make your program a formal proof, bully. But you don't have to.
03:31:56 <elliott_> evincar: what is practical correctness
03:32:01 <ais523> elliott_: way easier than it is to prove hardware implementations of type systems correct (in that after compiling to hardware, the thing still types properly and doesn't end up disobeying the protocol)
03:32:03 <evincar> elliott_: The damn thing works?
03:32:51 <monqy> elliott_: Average Programmers, remember
03:33:24 <elliott_> evincar: how does that respond to anything i say
03:33:27 -!- TeruFSX has quit (Ping timeout: 260 seconds).
03:34:31 <zzo38> MSE has a few functions using random, so whatever way is used you can do it. For certain things (not all things), the script can be called with a random "seed" variable and then there are various ways in which you can have it do different random numbers. For export functions, just have them return lists of export records. If the return value is a list it indicates exporting many files
03:34:31 -!- madbr has quit (Read error: Connection reset by peer).
03:38:55 <evincar> elliott_: And yes, I do realise that type systems aren't simple beasts by any means.
03:39:04 <evincar> At least not the monster I'm getting myself into a fight with.
03:41:48 -!- madbr has joined.
03:44:46 <evincar> I love how thoroughly I get pounced on in here.
03:45:12 <evincar> Even a fairly casual mention of something is going to provoke intense questioning.
03:45:19 <monqy> that sequence joining example or whatever it was
03:45:32 <elliott_> monqy: it's just length-indexed vectors
03:46:11 <monqy> im probably just not getting the syntax
03:46:18 <evincar> monqy: Yeah, it's nothing exciting. It just says that the result of joining two vectors of lengths m and n is a vector of length m+n.
03:46:31 <monqy> oh that's the type
03:46:38 <zzo38> I wrote the birdstyle.tex program, it is useful not only for Haskell but can be used with any program that uses Bird style (if any others exists). However, it makes error if the first command in a paragraph is outer command, but you can work around by putting \relax at first
03:47:11 <monqy> you should totally make the type system imperative too
03:47:44 <evincar> monqy: You would need an implementation, obviously, but you could put enough information in the type signature to obviate the need for one.
03:48:07 <elliott_> you're actually planning to make it automatically generate functions based on the type?
03:48:28 <elliott_> "you could put enough information in the type signature to obviate the need for one"
03:48:37 <ais523> elliott_: then just add good enough type inference, and you don't need to write anything at all!
03:48:38 <monqy> "obviate the need for one" is a bit bizarre of a thing to say
03:48:42 <evincar> elliott_: Yes, because you could express the implementation in the type system, functionally.
03:48:49 <ais523> (oh please let that be possible in some esolangish way)
03:48:52 <elliott_> evincar: show me an Agda function without any implementation
03:48:57 <evincar> elliott_: Poor choice of words, that's all.
03:48:58 <elliott_> just defined in the type system
03:49:02 <elliott_> because what you said makes no sense at all
03:49:39 <ais523> elliott_: more commonly, Agda functions don't have a return value (or well, they return something that's commonly called <character that isn't on my keyboard>), and exist only to make the thing type
03:49:42 <monqy> is this thing actually going to infer implementation from the type?
03:49:45 <evincar> elliott_: There is a functional subset and an imperative subset. You can implement a particular function in a mix of either.
03:49:56 <evincar> elliott_: The functional subset happens to be the type system.
03:50:11 <elliott_> evincar: that doesn't mean you can define a function and just give it a cool enough type that you can leave out the value
03:50:35 <evincar> elliott_: Not in those terms, no.
03:50:43 <monqy> so what are your terms
03:50:50 <monqy> and not those ones
03:51:16 <elliott_> evincar: how is what you said possible, give me an example of a function where you put enough information in the type system and express the implementation in the type system, functionally, thus obviating the need of an implementation
03:51:35 <evincar> You can declare a detailed relationship between types, rather than declaring a simple relationship between types that includes an imperative implementation.
03:51:46 <zzo38> In fact you can make any program use Bird style with a simple AWK program: /^> /&&sub(/> /,"")
03:52:01 <evincar> You could also remove types from the signature entirely and perform no type checking, or perform type checking manually within the imperative part.
03:52:13 <elliott_> evincar: that's not an example
03:52:45 <evincar> elliott_: I know, I'm just offering more explanation. But what do you want? I'll just be pulling syntax out of my arse.
03:53:19 <monqy> evincar: wait so you can not only infer implementation from type, but also just bypass type checking?
03:53:29 <zzo38> Do you like AWK programming?
03:53:40 <elliott_> <elliott_> evincar: how is what you said possible, give me an example of a function where you put enough information in the type system and express the implementation in the type system, functionally, thus obviating the need of an implementation
03:53:46 <evincar> monqy: You can't infer implementation from type. You can implement a function as a type relation.
03:53:48 <elliott_> which I have carefully constructed using only quotes from you
03:53:59 <monqy> evincar: and how does that work?
03:56:59 <evincar> monqy: The type system is a language in which you can express functions. If I pass 3 and 5 to such a function, I can treat them as "int", I can treat them as ">0", or I can treat them as instances of the types "3" and "5" whose only instances are those values.
03:57:08 <evincar> I really don't know how to explain it any more clearly.
03:57:21 <elliott_> evincar: subtyping is not in any standard dependently-typed language that I know of
03:57:24 <elliott_> it _vastly_ complicates such things
03:58:03 <evincar> elliott_: That's why I have a set of fundamental types that have representations, to keep things moderately sane.
03:58:13 <evincar> elliott_: From there, everything else is relations and predicates.
03:58:28 <elliott_> out of curiosity how much of the literature on dependent typing have you read
03:58:39 <evincar> elliott_: Some types in the type system have concrete representations, for the sake of sanity.
03:59:10 <evincar> elliott_: A few papers, not terribly much.
03:59:18 <ais523> evincar: I think you may need a type system /for/ your type system
03:59:38 <elliott_> nothing you said about fundamental types with representations actually made any sense, but ok
04:00:44 <evincar> ais523: Maybe so? I hate to bring up C++ again, but templates do distinguish between "typename", "int", etc. as parameters.
04:01:06 <evincar> Is it a terrible idea to have rudimentary introspection or whatever you want to call it?
04:01:28 <elliott_> you've stopped actually making sense
04:01:46 <elliott_> what are concrete representations, what is a fundamental type, how is your subtyping done, how is this related to introspection, and how is C++ relevant
04:02:30 <monqy> and pardon my ignorance but what does subtyping have to do with obviating the need of implementing sequence sticktogethering
04:02:45 -!- MSleep has joined.
04:03:49 <evincar> elliott_: A concrete representation (though there could be a better term for it) would be something naturally serialised in memory. A 32-bit unsigned integer. A 64-bit IEEE-754 float.
04:03:50 -!- madbr has quit (Read error: Connection reset by peer).
04:04:36 <evincar> elliott_: Fundamental types consist of all such directly representable types, plus their natural extensions such as tuples/arrays.
04:04:50 <monqy> or do you mean that you can implement sequencesticktogethering in the type system and then magically have it in the object language too?
04:05:14 <evincar> elliott_: They aren't special except in the sense that they provide a basis from which to derive other types in a finite way.
04:05:23 <evincar> monqy: I'm not sure what you mean.
04:05:48 <monqy> evincar: help i'm confused because of what you said about need obviation
04:06:19 <evincar> monqy: If I write a function "foo" with an implementation but no type signature, no type checking is performed and the implementation is evaluated.
04:07:12 <monqy> veering on a tangent here but how does foo mingle with typed things then, and how is letting people get away with untyped stuff a good idea
04:07:14 <evincar> If I write that same function with a type signature but no implementation, it's a declaration of a type relation which may or may not be fully evaluable. If I try to evaluate it, I find out.
04:08:05 <evincar> If I write both, then type checking and conversion *as well as* evaluation are performed.
04:09:34 <evincar> monqy: You can say there are basically two classes of types: those you care about and those you don't. If I write a function which takes arguments of any type and returns a value of any type, it's entirely up to the types involved to make sure that the operations performed on their instances are legal.
04:09:46 <evincar> If they're not, it's just a type error.
04:11:03 <monqy> and so is this ever a good thing or is it just
04:11:06 -!- madbr has joined.
04:11:11 <elliott_> how is this dependently-typed exactly, i've been making all my statements under the assumption that it was a strongly-typed language with a dependent type system, but it appears you just said dependent because it's a nice word
04:11:12 <monqy> Average Programmer laziness
04:11:24 <monqy> oh right and what elliott_ said
04:12:33 <evincar> elliott_: Types depend on values and other types, and there isn't any real distinction between a type and a value.
04:12:53 <elliott_> except that values can do io and change variables
04:13:36 <evincar> No, imperative portions can. You can use types imperatively and you can use values declaratively.
04:14:48 <evincar> I could easily say x = int; if (y) x = float; z = x(); # Create an instance of whatever x is.
04:15:34 <monqy> I agree with elliott_
04:16:05 <monqy> why is mutability a good thing?
04:16:06 <elliott_> why don't you just pick one idea and run with it rather than making a language that gels five thousand concepts together in a way you cannot explain in a satisfactory manner
04:16:09 <monqy> it just looks like a
04:16:35 <zzo38> Invent the INTERCAL card game.
04:16:37 <quintopia> what is the easiest way to wipe an ssd so that it is, say, one tenth scrambled/overwritten
04:16:52 <evincar> elliott_: By five thousand, you mean two?
04:17:08 <monqy> oh no there are more than two concepts in there
04:17:25 <monqy> what does the () in x() mean
04:17:26 <evincar> Also, I'm not explaining myself well because I've been awake for a while.
04:17:47 <zzo38> Invent the INTERCAL card game, please. Do you know how?
04:17:48 <evincar> x contains a type, so you can instantiate that type.
04:18:15 <evincar> zzo38: It sounds like UNO but with a COME FROM card.
04:18:33 <monqy> and what does instantiation do
04:18:50 <evincar> monqy: Produces a value of a given type...
04:19:09 <Patashu> MINGLE: shuffle the deck and the playing field into each other
04:19:20 <ais523> hmm, surely at least in /this/ channel an INTERCAL discussion can manage to avoid devolving into "hahaha COME FROM"
04:19:50 <zzo38> evincar: It does? I don't know about UNO but maybe figure out how to make something like that, type the rules or whatever else you would do instead. Including, MINGLE card, and so on
04:20:18 <monqy> evincar: so you just assign z to a value of x? Doesn't it do anything else?
04:20:51 <madbr> up to now it sounds feasible in like, javascript, no?
04:20:53 <monqy> evincar: for example, what happens if i then try to, say, z = float();
04:21:31 <monqy> evincar: are you conflating type declaration with instantiation? are you asking for trouble?
04:22:56 -!- madbr has quit (Read error: Connection reset by peer).
04:24:26 -!- madbr has joined.
04:24:28 <madbr> is there a use for bool variable types in non performance related stuff btw?
04:25:51 <evincar> monqy: Saying z = float() is the same as saying z = <uninitialised value of type float> or possibly z = 0.0.
04:26:13 <evincar> And given x = float, z = x() is the same as z = float().
04:26:31 <Patashu> you don't need it for performance though
04:26:36 <Patashu> since it's using 1 bit every 32/64
04:26:40 <Patashu> you use it for understanding
04:26:57 <madbr> then it's syntactic sugar
04:27:04 <Patashu> Everything is syntactic sugar
04:27:15 <monqy> evincar: any reason why you don't declare the types of stuff in one place and then provide them with values (without this uninitialized value nonsense) in another?
04:28:29 <madbr> then unless your system is performance oriented there's no point to types other than double, strings and agregates/arrays/objects/hashes/etc... of those
04:28:53 <monqy> you did that with your sequence mush together thing right? put the type over in one place and the value in another?
04:28:57 <madbr> and I guess functions
04:29:14 <monqy> rather than initailizing and then reassigning
04:29:16 <Patashu> madbr: If I'm not after performance I can code everything I want in just brainfuck, but I don't because brainfuck is difficult to understand
04:29:19 <monqy> because ew ew ew e we w e w e we we ew
04:29:22 <evincar> monqy: It's essentially the same thing though. If I say "x is a float", what value does "x" have before I give it a value?
04:29:25 <Patashu> Similarly, bools are used over ints because bools provide understanding
04:30:01 <monqy> evincar: it doesn't have one. it's an error to use it before you give it a value. you could even force giving an initial value in the declaration syntax.
04:30:21 <madbr> patashu: I'm not convinced it's a big gain
04:30:47 <monqy> not only understanding, but type checking
04:30:54 <elliott_> madbr: what's the point of using structures, let's just use lists
04:31:02 <elliott_> i don't see the relevance of performance
04:31:10 <elliott_> madbr: in fact, let's just use a brainfuck tape
04:31:11 <evincar> monqy: Then there's no point to having a declaration. Saying "x = 0.0" or "x = float()" is no more or less clear than "float x = 0.0", and the latter is redundant.
04:31:40 <monqy> madbr: and why have types at all. just make everything byte arrays.
04:32:27 <monqy> evincar: the "x = float()" one is just full of bad ideas
04:32:42 <evincar> monqy: You wouldn't typically do that, of course.
04:32:50 <madbr> well, there's no point to char and short except for specifically saving RAM and specific arrays
04:33:31 <monqy> madbr: are type systems sugar
04:33:32 <elliott_> "this is a boolean, false or true"
04:33:39 <elliott_> madbr: bool is not an integer in all languages
04:33:40 <evincar> monqy: Also I fail to see the difference between "float x;" (x is of type float but is either uninitialised or zero) and "x = float();".
04:33:47 <elliott_> in Haskell, False and True are booleans; 0 isn't a boolean
04:34:08 <monqy> evincar: the former is not what I said at all
04:34:11 <ais523> wow, you're reminding me that I got into an argument about whether boolean should be sugar for 1-bit integer in my compiler, or a different type
04:34:29 <madbr> int has no point either except as an array index
04:34:31 <ais523> I was arguing that people rarely used 1-bit integers for arithmetic purposes, so that they may as well be the same as booleans
04:35:09 <evincar> monqy: What do you mean, then? What value does an explicit declaration have?
04:35:44 <elliott_> madbr: you realise types exist to make the programmer's life easier, right?
04:35:51 <elliott_> it isn't all about performance, and types don't affect performance at all
04:36:09 <elliott_> madbr: knowing information about what a function wants to receive, and what it returns, is useful.
04:36:16 <elliott_> knowing what type of data a variable is, is useful.
04:36:21 <elliott_> having the compiler tell you when you mix that up, is useful.
04:36:24 <elliott_> bool conveys a useful intention.
04:37:08 <ais523> in particular, you can have a type like bool or SQLEscapedString to convey an intention, then erase it into int or string respectively after you've done typechecking
04:37:23 <madbr> but then you could just declare your variable as whateverFlag instead of just whatever
04:37:49 <evincar> madbr: That's Hungarian, and even its good uses are now frowned upon.
04:38:02 <Patashu> But renaming the variable won't make the compiler (or runtime) catch mistakes
04:38:05 <elliott_> madbr: what advantages does that have over bool?
04:38:08 <evincar> If you have a type system to check things for you, why rely on convention?
04:38:13 <elliott_> madbr: the compiler doesn't stop you putting the wrong type of value in
04:38:17 <Patashu> I can do int myFlag = 2; but I can't do bool my = 2;
04:38:18 <elliott_> madbr: you have to type Flag each time you use it
04:38:21 <elliott_> instead of taht being encoded in the type
04:38:25 <elliott_> Patashu: you can in C, but that's C's fault
04:38:26 <madbr> so what, it's a bool
04:38:34 <ais523> awful eso idea: (good) hungarian notation enforced by the compiler
04:38:35 <madbr> it's not like you're going to mess that up
04:38:44 <monqy> evincar: it's not that an explicit declaration is good; it's that initializers are bad
04:38:45 <elliott_> madbr: "So what if my system is more painful to use, and causes more errors?"
04:38:47 <ais523> it's like a good type system, but with annoying boilerplaye enforced for no reason
04:38:51 <Patashu> madbr, you only have approximately 7 slots for short term memory
04:38:56 <elliott_> madbr: Yours has negative advantages over a bool type.
04:38:58 <Patashu> You WILL forget things even if you think they're trivial
04:40:39 <elliott_> madbr: but seriously, so what if you wouldn't mess it up?
04:40:47 <elliott_> your solution is still inferior: more typing.
04:41:04 <elliott_> why be inconsistent, and leave bools able to be messed up, when you wouldn't for a more complicated structure which you /can/ mess up?
04:41:36 <evincar> monqy: Could you elaborate? If a type is instantiable with no arguments (such as float might be), then why is it bad to instantiate it as such? I know you'd be more likely to say "x = 0.0" than "x = float()", but having the "T()" syntax (or whatever it turns out to be) for instantiation seems wholly innocuous to me.
04:42:22 <Patashu> It's fine for things like list() or dict() since those have a 'natural' state, empty
04:42:24 <evincar> elliott_: I think we can sum this up as "typing is not a replacement for typing".
04:42:25 <Patashu> What is the 'natural' state of a number?
04:42:29 <monqy> evincar: (1) bloat (2) reassignment is icky (3) giving something a value but hiding that value is icky (4) weird
04:42:53 <elliott_> evincar: ++... to that one statement, your language is still gross.
04:42:56 <ais523> elliott_: very minor advantage for boolish ints over bools: you can retrofit a third value onto your booleans without breaking memory layout compatibility
04:43:07 <elliott_> ais523: you have a strange definition of advantage
04:43:21 <Patashu> what's the third value of booleans?
04:43:31 <ais523> Patashu: "not created by the player in a bones file"
04:43:38 <evincar> Patashu: So you're saying numeric types should not be instantiable without an explicit value.
04:43:46 <ais523> it was how they retrofitted a bugfix onto NetHack without changing the bones file layout
04:44:07 <evincar> Okay, that's fair. It also doesn't play terribly nicely with generic programming, but it's sensible.
04:44:11 <Patashu> so it's like the empty fields in ip packets
04:44:30 <ais523> Patashu: it's also an awful fix to the problem in general
04:44:40 <elliott_> Haskell has plenty of generic libraries, and no "default value" because not every type has a value
04:44:44 <elliott_> and not every type has a sensible default value
04:44:46 <ais523> if you need future expansion space, add it separately rather than randomly fitting it into booleans and only booleans
04:45:58 <monqy> oh right (3) on my list of ick should also include something about default values being icky :)
04:46:36 <madbr> I'm not sure about that
04:46:49 <evincar> elliott_: Alright, fair enough. I just like zero-initialisation, for immutable values anyway, because, well, you've got to initialise them to something.
04:47:17 <monqy> evincar: you make initial value explicit
04:47:30 <monqy> evincar: want 0-initialization? thing = 0. bam.
04:47:35 <evincar> No, not everything does, but ints and floats do, which is what I'm talking about. :P
04:47:52 <evincar> monqy: And that is what you would do in almost all circumstances.
04:47:55 <ais523> wouldn't NaN make a more sensible default for floats?
04:48:00 <monqy> evincar: what about the other ones?
04:48:05 <elliott_> madbr: what, exactly, do you use instead of ints
04:48:06 <monqy> evincar: why even have syntax for those other ones?
04:48:11 <lament> depending on how you define everything
04:48:13 <ais523> signalling NaN, at that
04:48:16 <madbr> ais: NaN propagates and turns more values into NaN
04:48:18 <ais523> so you get an error if you try to use it
04:48:26 <elliott_> madbr: what do you use instead of ints
04:48:26 <ais523> madbr: that's exactly what you want, isn't it?
04:48:43 <ais523> VHDL initialises signals to U, which propagates and turns other things into Us
04:48:43 <madbr> ais: you want to keep NaNs out of your floating point system
04:48:56 <ais523> madbr: yes, you do, which means that it'd be obvious if you failed to initialise properly
04:49:06 <monqy> madbr: you want to keep uninitialized values out of your programs
04:49:52 <madbr> it's like arguing over whether /0 should explode or not I guess
04:50:29 <madbr> ais: NaNs are also particularly slow to process ofc
04:50:46 <monqy> just force programmers to supply an initial value
04:51:23 <madbr> half of the time it's going to be 0
04:51:40 <monqy> then people can make it 0 half the time :)
04:51:53 <monqy> it's not like it's even more typing than float()
04:51:59 <elliott_> madbr: you don't _want_ to process uninitialised values
04:52:26 <madbr> true, they could end up being NaNs
04:53:08 <elliott_> umm, as in not explicitly initialised
04:53:15 <elliott_> so signalling NaN is a good default value for a float
04:53:19 <elliott_> so that it complains if you use it
04:54:13 <evincar> I'm a firm believer in not paying for things you don't use, though. If a programmer wants to create an uninitialised (mutable) value of some type, I think they should be allowed.
04:54:31 <monqy> then it should be undefined
04:54:40 <evincar> That counts as initialisation.
04:54:43 <monqy> rather than 0-initialized or what-have-you
04:54:48 <madbr> I think normally you either want to initialize to 0, or it doesn't matter cause you're going to overwrite it, or you want to initialize to a specific value and you're going to remember to initialize it
04:54:52 <evincar> It is undefined in the sense of "could be anything".
04:55:07 <evincar> It's not undefined in the sense of "this is a special undef value that will trap if you use it".
04:55:19 <elliott_> int x; return x // RNG in evincar's language
04:55:24 <madbr> in my philosophy I want to keep NaNs and other "exploding values" out of my program as much as possible
04:56:02 <madbr> so I'm not sold on "default to NaN"
04:56:02 <monqy> madbr: even if it makes them incorrect?
04:56:13 <monqy> madbr: it would only be NaN if you made an error
04:56:15 <ais523> madbr: do you prefer programs to fail noisily, or try to recover?
04:56:25 <Patashu> it should be a compile time error to use something not yet initialized
04:56:31 <ais523> evincar: actually, there are two sorts of NaN, one (which is often unimplemented) does indeed trap if you use it
04:56:34 <madbr> monqy: how could it be more incorrect than exploding the whole program
04:56:48 <ais523> Patashu: if so, I hope the compiler's better at inferring it than gcc
04:56:51 <monqy> madbr: by giving bad values to things that quietly ruin everything
04:56:57 <madbr> guess they could be NaN in debug and 0 in release
04:57:00 <ais523> I have to add =0 on declarations quite a bit just because gcc doesn't realise it's always initialised before use
04:57:10 <elliott_> Patashu: you should not be able to create something initialised, it is by definition useless
04:57:11 <ais523> I know it can't infer it in general, but it could do quite a lot better than it currently does
04:57:16 <evincar> ais523: I was going to add "...at the language level, of course, not like signalling NaN."
04:57:23 <monqy> madbr: say, a bad 0 somewhere cleared all your favourite files. wouldn't exploding be better?
04:57:32 <evincar> But then I was like "nah, no one'll care".
04:57:47 <ais523> I was talking about signalling NaN
04:58:11 <madbr> monqy: but exploding will clear the current thing you were working on 100% time
04:58:21 <ais523> monqy: if it exploded, it'd probably take out not all your files, but the disk they were on, most of the computer, and possibly even some of the table it was resting on
04:58:42 <Patashu> why are we using exploding and not exceptions?
04:59:05 <madbr> at work they turn off exceptions
04:59:17 <monqy> is this why you're crazy
04:59:41 -!- lament has quit (Ping timeout: 276 seconds).
04:59:51 <madbr> patashu: I don't know the reason, but it's probably performance on shoddy Arm platforms
05:00:30 <Patashu> at least use them during development if not during production :o
05:02:12 -!- madbr has quit (Read error: Connection reset by peer).
05:04:21 -!- madbr has joined.
05:04:21 <madbr> the system they have is based on warnings
05:04:26 <madbr> the system they have is based on warnings
05:04:42 <Patashu> it sets a global variable to an error code, right?
05:04:47 <monqy> evincar: on the thing again, I may be confused but, in the case of not assigning a value to something (just declaring it), you're using the var = type() syntax? If that's the case, why use assignment syntax for something that's really just a declaration (not entirely a rhetorical question)
05:04:56 <madbr> prints to an error console
05:06:19 <evincar> monqy: No, it'd be something like "v = mutable T()" if you didn't want initialisation. The point of assignment syntax in the general case is that things are immutable by default and everything is single-assignment, so declaration and assignment can be the same thing.
05:06:20 -!- madbr has quit (Read error: Connection reset by peer).
05:06:51 <ais523> why does everyone think that ignoring exceptions except you print them to stderr / some other error log is at all helpful?
05:06:57 <monqy> evincar: ok, so in what case would you use the =whatever() syntax?
05:07:31 <ais523> I don't even see why one of those would think it was useful
05:07:35 <ais523> except that NetBeans does it by default
05:07:44 <ais523> I seem to spend half my life deleting Logger imports
05:08:05 <evincar> monqy: If you wanted a default instance of some specific type that's default-constructible (e.g., dict/list) or if you wanted a default instance of some unknown type that is.
05:08:08 <ais523> elliott_: NetBeans can surround something with a try/catch block for every exception it could throw, which is useful
05:08:12 <ais523> as often you'll want to catch all of them
05:08:21 <ais523> but the default impl it puts in for what to do when caught is to log it
05:08:28 <ais523> and it adds imports for Logger as a result
05:08:37 <ais523> so you have to go and delete the import if you're not using the default impl
05:08:46 <evincar> Say "instantiate(T) = { return T() }".
05:08:53 <ais523> (I'd much prefer a throw NotImplementedException as the default, like it does for methods)
05:10:53 <monqy> evincar: in the former case, I'd think it'd be more useful for each of them to force explicit usage of said value (e.g. 0, empty). In the case of the latter, I guess it's a bit better, but having instantiations working like that is still icky. There was something else I was going to say but I forgot it.
05:12:08 <monqy> evincar: oh right. I can't think of any usages of generic instantiation unless you use something like typeclasses/interfaces
05:12:24 -!- madbr has joined.
05:12:25 <monqy> evincar: e.g. Monoids
05:12:34 <elliott_> evincar: how does default initialisation help write generic code again
05:12:42 <madbr> I guess it's really an application thing anyways
05:13:15 <evincar> elliott_: It really depends on the types involved, and I can't come up with a good example at the moment.
05:13:19 <madbr> if you're writing for databases, you'd probably rather have your client app explode than corrupt the database
05:13:37 <evincar> elliott_: I just like uniformity and not violating the principle of least surprise.
05:13:51 <elliott_> being able to conjure up a value violates my POLS
05:14:08 <elliott_> any more than forcing all types to have exactly one value is uniform
05:14:12 <elliott_> sure, it is, but ... that sucks
05:14:35 -!- TeruFSX has joined.
05:14:37 <madbr> I write sound code and having the app explode is much worse than any wrong sound I could be outputting
05:16:02 <madbr> Like for divide by zero, I don't care if it generates a wrong value, that's much better to me than stopping the whole application, which is pretty much the worst thing that can happen
05:16:11 <evincar> I'm just saying, 0 is a reasonable default for the numeric types I'm providing. It doesn't hurt anything to throw it in.
05:16:27 <Patashu> For something that just makes sound I suppose that's alright
05:16:28 <monqy> it hurts people like me
05:16:30 <madbr> I'm fine with default to 0<
05:16:31 <Patashu> For something handling data you don't want it to happen
05:16:33 <elliott_> <madbr> Like for divide by zero, I don't care if it generates a wrong value, that's much better to me than stopping the whole application, which is pretty much the worst thing that can happen
05:16:39 <elliott_> madbr: i don't suppose you write any mission-critical financial applications
05:16:40 <monqy> who see something like float() and don't know if it's 0
05:16:42 <monqy> and have to look it up
05:16:50 <monqy> and it's needless bloat
05:16:53 <Patashu> It doesn't sound like it lol
05:17:04 <evincar> I don't ordinarily go for 0-initialisation, but obviously immutable values are different.
05:17:17 <madbr> I write sound plugins and games
05:17:22 <monqy> this is the what second time you brought up immutable values
05:17:23 <elliott_> why is 0 a good default value evincar
05:17:32 <monqy> what does 0 have to do with immutable values
05:17:57 <madbr> elliott_: dunno, in megazeux variables default to 0 and it's pretty practical that way
05:18:18 <monqy> what is your favourite language
05:18:28 <evincar> monqy: When I write "x = mutable T()", I expect an uninitialised mutable T. When I write "x = T()", should I reasonable expect an error or a default?
05:18:46 <madbr> haven't used high level languages so atm it's C++
05:18:58 -!- olsner has quit (Ping timeout: 240 seconds).
05:19:01 <madbr> sound code is almost always C++
05:19:22 <elliott_> i keep reading "sound" as "correct" and i start lunging for your throat with a knife
05:19:25 <elliott_> but then I just sit in my hole
05:19:29 <itidus20> madbr: heh.. it's almost like you chose the most mission non-critical things
05:19:38 <monqy> wow i was just about to say what elliott_ said but then elliott_ said it so i said this instead
05:19:50 <madbr> iti: I don't want to work in a fucking bank :D
05:20:21 <itidus20> madbr: i made an image the other day... which perhaps expresses the non-mission-criticality of music :D
05:20:21 <elliott_> I thought all the talk about indie gamers being universally terrible programmers was hyperbole
05:21:12 <madbr> It's in the nature of the problem
05:21:20 <monqy> madbr: i highly advise learning a nice high-level language
05:21:23 <itidus20> madbr: http://oi56.tinypic.com/xc7kes.jpg
05:21:41 <monqy> madbr: im worry for your programmer mind health
05:22:14 <madbr> monqy: atm I'm programming assembler :o
05:22:39 <ais523> elliott_: you mean people who make indie games, or who play them?
05:22:41 <monqy> itidus20: what does it mean
05:22:54 <itidus20> monqy: it means music isn't mission critical :D
05:23:22 <monqy> itidus20: quite an odd analogy
05:23:30 <madbr> itidus20: in some ways it is
05:23:40 <itidus20> ok well.. the blue thread.. represents the music and represents the programming
05:23:49 <itidus20> so if the thread is in one piece then it has no mistakes
05:24:15 <madbr> musician is using a laptop in a gig
05:24:21 <madbr> the laptop cannot crash
05:24:33 <elliott_> <ais523> elliott_: you mean people who make indie games, or who play them?
05:24:41 <itidus20> when i made that image i had actual music in mind
05:24:52 <madbr> if you code a synthesizer plugin for music making programs
05:25:05 <monqy> itidus20: for an extreme example, making a minor programming mistake isn't as bad as making tons and tons and tons of musical errors when the mission cares at all about the music
05:25:10 <madbr> if your plugin crashes, it crashes the whole music making program and the musician loses his song
05:25:19 <madbr> corollary: your plugin cannot crash
05:25:28 <itidus20> monqy: the mission never cares about music!
05:25:35 <monqy> itidus20: weird mission there
05:25:55 <monqy> "music isn't mission critical when missions don't care about music": tautological?!?!?!?!??
05:26:04 <madbr> can it generate wrong output? sure, whatever
05:26:15 <itidus20> a guitar can afford to make mistakes
05:26:26 <monqy> what if you make a really big mistake
05:26:35 <elliott_> monqy: http://ompldr.org/vOW9wcg me irl in my hole
05:26:38 <madbr> the string can snap
05:26:49 <elliott_> <madbr> if your plugin crashes, it crashes the whole music making program and the musician loses his song
05:26:55 <elliott_> programs crash when the VSTs do?
05:27:07 <madbr> elliott_: not anymore
05:27:24 <elliott_> monqy: image remains relevant, topical
05:27:25 <madbr> but some early programs did
05:27:32 <itidus20> its like uhh.. video can recover too
05:27:46 <monqy> elliott_: nice hole
05:28:19 <itidus20> its an idea i am really curious about...
05:28:44 <itidus20> in programming it is usually the case you need to get every instruction right
05:28:54 <itidus20> and that one mistake throws out the whole system
05:29:07 <monqy> ever heard of minor bugs?
05:29:20 <monqy> they wreak minor havoc.
05:29:39 <monqy> but don't throw out the whole system.
05:29:53 <monqy> just a very tiny minor little bit perhaps nobody even cares about
05:30:01 <itidus20> ok.. my postulates are wrong >:)
05:30:33 <madbr> In music, mistakes don't take whe whole thing down no
05:30:39 <madbr> They just stand by themselves
05:30:40 <elliott_> monqy: I coloured it: http://ompldr.org/vOW9wdg
05:31:20 <monqy> it looks sadder now
05:32:59 -!- madbr has quit (Read error: Connection reset by peer).
05:33:34 <elliott_> monqy: http://ompldr.org/vOW9weA
05:34:03 -!- derrik has joined.
05:34:16 <monqy> so mjuch mysterys...
05:34:17 -!- madbr has joined.
05:35:09 <elliott_> oh jesus cufcking christ i made it disturbing
05:35:38 <elliott_> monqy: http://ompldr.org/vOW9weg
05:35:51 <monqy> its like chocolate
05:36:05 <monqy> reminded me of chocolate
05:36:29 <monqy> and the tan stuff looks real creamy and swirly
05:37:01 <elliott_> do you hate chocolate or something
05:37:16 <monqy> the face is disturbing though. maybe dark chocolate chips or currants in some sort of cream or white chocolate filling?
05:37:27 <itidus20> elliott_: i did an edit of it: http://oi51.tinypic.com/34h0z.jpg
05:37:40 <monqy> elliott_ sure looks mad there
05:38:33 <evincar> Well, it's about that time.
05:38:45 <evincar> I'll be back tomorrow, I guess.
05:39:15 -!- evincar has quit (Quit: leaving).
05:39:24 <elliott_> monqy: deepness of soul edition
05:39:34 <monqy> is that lens flare
05:39:56 <elliott_> monqy: i call it sweet elliott_ and hella hole
05:40:22 <monqy> wheres your knife is it in the wole too
05:41:53 <elliott_> monqy: http://i.imgur.com/3brEm.jpg
05:42:33 <monqy> a soulcrishung maze
05:43:47 -!- madbr has quit (Read error: Connection reset by peer).
05:44:15 <elliott_> monqy: http://i.imgur.com/P5iCf.gif
05:45:06 <elliott_> "delay inserted to prevent evil cpu-sucking animation" oh come on gif
05:45:16 <monqy> subliminal deepness of soul with lens flare messaging
05:46:56 <itidus20> i am seeking a good gif editor on windows
05:47:26 <monqy> gimp "good inough mfor pme"
05:47:35 <monqy> erxcept i use linux....
05:48:17 <itidus20> i recently downloaded gimp but havent really tried it
05:48:28 <monqy> its good inough mfor pme
05:50:55 -!- madbr has joined.
05:53:04 -!- madbr has quit (Read error: Connection reset by peer).
05:56:23 -!- Sgeo has joined.
05:56:37 <monqy> you missed some good discussion
05:56:41 <monqy> about type systems and uh
05:57:11 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
05:57:32 -!- TeruFSX has quit (Ping timeout: 276 seconds).
05:57:50 <monqy> whens sgeo coming back i miss sgeo
05:59:17 -!- madbr has joined.
06:05:04 * Sgeo has no coherent response other than this one
06:05:09 -!- TeruFSX has joined.
06:07:05 -!- madbr has quit (Read error: Connection reset by peer).
06:07:12 <elliott_> To all flamers: this is my first real texture pack, if you flame, I will report you.
06:08:07 <monqy> is not praising it.....flaming?
06:08:13 <monqy> or is that trolling
06:09:30 <elliott_> itidus20: i made you a persent http://ompldr.org/vOW9xNQ
06:11:03 <elliott_> all this and more is possible with gimp
06:12:38 <zzo38> I think ImageMagick is much better than GIMP
06:13:00 <monqy> sometimes I use imagemagick for things.
06:13:06 <elliott_> i imagine itidus20 wants a graphical interface
06:13:31 -!- madbr has joined.
06:13:31 <monqy> the most insulting insult
06:13:46 <monqy> offensive offense?
06:13:48 <itidus20> actually I'm wondering if you can make games with gimp
06:14:10 <itidus20> as in.. opening gimp.. and using no other software... produce some sort of game =))
06:14:19 <elliott_> itidus20: well there's ais523's ms paint tic tac toe
06:14:40 <zzo38> I also happen to like METAFONT and I have made a program to combine METAFONT with ImageMagick.
06:14:52 <elliott_> itidus20: but um that's just using the flood tool's algorithm
06:14:59 <elliott_> there's not really any other algorithms to do :P
06:15:31 <monqy> turn them into games
06:15:36 <itidus20> im being silly for the most part
06:16:00 <itidus20> but... back in the old days i used spreadsheet macros to try to make interactive fiction
06:16:25 <ais523> I made RPGs with spreadsheet macros
06:16:27 <ais523> not very good ones, though
06:16:51 <ais523> this is what drove me to support open standards
06:16:57 <ais523> because they kept breaking with every new version of Excel
06:17:57 <ais523> elliott_: it even removed all the UI elements, to prevent cheating
06:18:07 <ais523> although it was probably possible anyway, say by holding down shift on load
06:18:26 <ais523> also, removing the entire UI gave more screen space for gamy stuff and hid the fact it was Excel, although I suspect it was obvious anyway
06:20:51 -!- madbr has quit (Read error: Connection reset by peer).
06:23:57 <elliott_> i wonder what this java bug thing is
06:24:02 <elliott_> Java 7 GA was released today, but as noted by Uwe Schindler, there are some very frightening bugs in HotSpot Loop optimizations that are enabled by default. In the best case scenario, these bugs cause the JVM to crash. In the worst case scenario, they cause incorrect execution of loops.
06:24:22 <elliott_> "These problems were detected only 5 days before the official Java 7 release,
06:24:23 <elliott_> so Oracle had no time to fix those bugs, affecting also many more
06:24:23 <ais523> hmm, Java puts crash > incorrect execution
06:24:31 <elliott_> YOU MEAN LOOPS ARE BAD?? SORRY
06:24:36 <ais523> /Java/, one of the most enterprisey languages in existence
06:24:48 <elliott_> ais523: umm, isn't that fairly Javay?
06:24:55 <elliott_> Java doesn't let you do ANYTHING loosely
06:25:10 <monqy> is java still cool with typecasting
06:25:19 <ais523> elliott_: I know, I was taking a potshot at the crashing-is-worse-than-returning-a-random-number opinion
06:25:37 <ais523> monqy: it throws ClassCastException if you try to cast something into a class that can't describe it
06:26:48 -!- madbr has joined.
06:28:18 <elliott_> ais523: now just do it a few seconds later...
06:28:35 <ais523> meh, scrollback exists
06:31:29 -!- madbr has quit (Read error: Connection reset by peer).
06:34:41 <zzo38> Although METAFONT is designed for font making, you can use it to draw other things too.
06:37:30 -!- madbr has joined.
06:39:44 -!- madbr has quit (Read error: Connection reset by peer).
06:42:14 <elliott_> ais523: how long will fib 99999 take to compute naively?
06:42:32 <ais523> elliott_: you mean via the recursive algorithm that's O(2^n)?
06:42:39 <ais523> O(2^n) where n is 99999
06:42:55 <ais523> even that'll take far too long
06:43:20 <elliott_> 99 should terminate within my lifetime, right?
06:43:58 <ais523> that's about an octillion
06:44:13 * elliott_ is trying to test memoisation...
06:44:13 <ais523> I was using 10 to test may naive fibonacci impl
06:44:18 <ais523> and even that took far too long
06:44:18 <elliott_> I'm not sure it's actually memoising
06:44:31 <elliott_> I need a value that the naive fib goes slowly at, but not too slowly :-P
06:44:57 <ais523> memoised 100 is faster than unmemoized 10
06:45:10 <ais523> err, what is up with -ise vs. -ize in that line?
06:45:49 <elliott_> *Data.Memoization.StableName> fib 19
06:45:49 <elliott_> *Data.Memoization.StableName> fib' 19
06:45:57 <elliott_> umm, memoisation shouldn't change behaviour, right?
06:46:24 <ais523> I don't know offhand if it's 4181, but it wouldn't surprise me
06:46:24 * elliott_ has no idea what happened there
06:46:29 -!- madbr has joined.
06:47:55 <ais523> coincidentally, I implemented memoized fibonacci in ICA (and thus VHDL) a few days ago
06:48:05 <ais523> to celebrate the addition of RAM-like arrays
06:48:14 <ais523> (as opposed to tuple-like arrays)
06:48:18 * elliott_ celebrates, can i have the compiler source code now
06:48:34 <elliott_> or at least a picture of the synthesisation result :D
06:48:35 <ais523> heh, it's not ready for release yet, and I don't have permission to release it either
06:48:56 <ais523> and FPGAs look the same no matter what program is on them
06:49:23 -!- zzo38 has quit (Remote host closed the connection).
06:50:51 <elliott_> ais523: surely a synthesiser can draw some kind of graph for you
06:51:15 <ais523> it can, but it basically just always looks like a splodge on the page
06:51:19 <ais523> no matter what the actual circuit
06:51:38 -!- Nisstyre has quit (Ping timeout: 255 seconds).
06:54:15 <elliott_> ais523: hmm, random @ thought: I don't think it can have a "native machine word" type
06:54:42 <ais523> no, but such a type isn't very useful unless you're doing low-level stuff anyway
06:54:53 <elliott_> well, it's useful for smallish integers
06:55:36 <ais523> nah, in practice, (smallest type that holds the integer) will be fastest unless the processor has no instructions for manipulating it
06:55:40 <elliott_> ais523: anyway, you were meant to ask me why; we are no longer friends
06:55:48 <ais523> elliott_: no, it's obvious
06:55:58 <elliott_> because it was non-obvious to me
06:56:07 <elliott_> you know more about @ than I do
06:56:09 <ais523> the type's size might be different on different computers
06:56:14 <elliott_> ais523: well, that's not the problem
06:56:25 <ais523> yep, you could translate at the boundary, I suppose
06:56:26 <elliott_> ais523: the problem is that the type could change underneath you mid-function
06:56:40 <elliott_> because a program might migrate to another system
06:56:45 <elliott_> note: this is great for writing viruses
06:57:33 <elliott_> I'll just offer a few fixed-sized types and pretend they don't exist and tell everyone to use bignums
06:58:11 <elliott_> a large part of @'s core design is me having a weapon sufficient to make people code @ objects however I want
06:58:15 <elliott_> currently, the stern glare will suffice.
06:58:20 <elliott_> if CakeProphet starts using @, I may have to purchase firearms.
06:58:37 <elliott_> if Microsoft starts promoting it, then it's time for tactical nukes
06:58:58 -!- TeruFSX has quit (Ping timeout: 240 seconds).
06:58:59 <elliott_> <ais523> please don't hurt anybody
06:59:37 <elliott_> ais523: i'll just be you from now on
07:01:43 <elliott_> I wonder if this "introspection box" model actually makes any sense
07:01:44 -!- madbr has quit (Read error: Connection reset by peer).
07:02:07 <elliott_> because you can break parametricity like so:
07:02:27 <elliott_> ohNo :: (a -> b) -> (a -> b) -> Bool
07:02:41 <elliott_> (assuming the box on code compares the ast)
07:03:12 <elliott_> because WHAT DOES THE BOX CONTAIN...
07:03:24 <elliott_> the rule is something like... if you create an object you can box it
07:03:28 <elliott_> but it's hard to define create
07:03:40 <elliott_> coppro: umm, do you know what @ is
07:03:40 <ais523> elliott_: are you sure you can == on boxes like that?
07:03:50 <elliott_> ais523: do you remember what a box is :D
07:03:57 <coppro> elliott_: in what context
07:04:01 <ais523> you look like you're acting like boxing is a monad (perhaps subconciously), and it isn't
07:04:06 <elliott_> coppro: there's only one context
07:04:22 <elliott_> ais523: ok, well, that's not what a box is in this context
07:04:33 <elliott_> ais523: I was thinking: in @, I want to be able to do things like examine the ASTs of running programs
07:04:37 <elliott_> ais523: and inspect arbitrary objects
07:04:51 <elliott_> ais523: BUT I don't want code to be able to, say, look at the AST of a function it's passed willy-nilly
07:04:56 <elliott_> because that breaks parametricity, security, and all sorts of things
07:05:04 <Patashu> So a box is like a security checkpoint?
07:05:10 <elliott_> ais523: so I was thinking that (Box a) represents something you can fetch an a out of, and that also encodes... meta-information about it
07:05:18 <elliott_> it lets you look inside a value
07:05:28 <coppro> elliott_: ok. It's a simple with unknown historical origin often rendered as a letter "a" where the upright protion of the letter extends down and around until it is a near-complete circle, and that is generally taken to mean "at", and is called a "whirlpool" by the INTERCAL manual
07:05:33 -!- oerjan has joined.
07:05:34 <ais523> Feather actually has a rebox operation, that you can apply to an unboxed value
07:05:38 <ais523> please don't ask me how it works
07:05:44 <elliott_> that unbox could also be called eval
07:05:59 <elliott_> ais523: anyway, the question is just -- how do you actually create a box?
07:06:03 <oerjan> talking about comonads?
07:06:07 <ais523> coppro: when elliott_ refers to @ treating it as a proper noun, it's a placeholder for the eventual name of an as-yet-unnamed OS he's working on
07:06:31 <ais523> I think he's going to retroactively go over glogbot's logs and substitute the name once it's actually decided
07:06:40 <ais523> which will make my last-but-two line seem very confusing
07:06:49 <ais523> (note: I may have been lying)
07:07:04 <oerjan> ais523: so the suspicion it will involve feather as an essential part is well-founded?
07:07:05 <elliott_> and force tunes to archive all their old logs by emailing them,,,,,
07:07:07 <elliott_> and i would get the sed,,,,,,,
07:07:09 -!- Nisstyre has joined.
07:07:20 <elliott_> RGAGAARGAUREWIGEIWRIEWRGAWGRIAEWRWIERGAW\
07:07:20 <ais523> elliott_: nobody, I just guessed
07:07:29 * elliott_ smashes individual things to pieces
07:07:32 <ais523> Feather and @ are fundamentally incompatible, as far as I can tell
07:07:37 <ais523> which doesn't surprise me, or even worry me
07:07:47 <ais523> in fact, I'd be more worried if they meshed together well
07:07:58 <ais523> elliott_: it's the network transparency that really kills it
07:08:01 <ais523> Feather doesn't like I/O
07:08:07 <ais523> even more than Smalltalk doesn't like it
07:08:17 <elliott_> ais523: well, you can model @ as just one big happy machine with way too much computing power
07:08:23 <elliott_> and slow wires, I suppose, but who cares about speed
07:08:32 <ais523> and even if you abstract away the I/O, it'd have to be able to return to a continuation
07:08:37 <elliott_> ais523: hmm, shades of scapegoat (in that every repository could fit together)
07:08:37 <ais523> across the entire network
07:08:45 <ais523> yep, @ reminds me of scapegoat a bit
07:08:45 -!- madbr has joined.
07:09:00 <ais523> I think you've been injecting similar ideas into both projects
07:09:12 <elliott_> I'm not sure how versioning in @ will work, if it'll have a separate VCS for "documents" and just regular objects, or what
07:09:14 <ais523> the two would coexist quite well, at least
07:09:18 <elliott_> I'm trying to avoid thinking about it right now
07:09:23 <oerjan> <HackEgo> 546) <Taneb> Speaking of the CiSRA puzzles, anyone want to form a team <oerjan> i avoid my duties by carefully never registering to anything new
07:09:24 <elliott_> it feels like another Can of Worms
07:09:26 <ais523> yep, versioning is a much more minor problem
07:09:39 <oerjan> you missed the point where someone else mentioned the word "duty"
07:09:41 <ais523> then getting the thing working in the first place
07:09:56 <elliott_> ais523: I was about to say "but versioning is a _huge_ problem", but then I realised that there are even bigger problems...
07:10:10 <oerjan> ...you realize that would be inconsistent with the quote, right?
07:10:12 <elliott_> anyway, yes, I'm really unsure how to construct boxes...
07:10:28 <elliott_> obviously if you have a boxed module
07:10:35 <elliott_> you can get a boxed value out of it
07:11:07 <cheater_> elliott_: i know they have, that wasn't the point though.
07:11:18 <elliott_> ais523: moduleLookup :: (m :: Box Module) -> Key m a -> a
07:11:32 <elliott_> ais523: moduleLookup :: (m :: Box Module) -> Key m a -> Box a
07:11:35 <elliott_> but that's just another way to refine a box
07:11:42 <elliott_> I suppose that's all you really can do
07:11:54 <ais523> I think you can't get a box unless you have one to start with
07:11:56 <elliott_> you have the "right" to box it right there and then
07:12:00 <ais523> and that they should be originally created by the compiler
07:12:05 <elliott_> uh oh,boxes are starting to feel fundamental
07:12:32 <elliott_> oerjan: you really like comonads ;D
07:13:04 <oerjan> i don't actually know comonads, i just know they are easy to unwrap but not wrap
07:13:16 <oerjan> ok, so i know maybe the base definition
07:13:27 <elliott_> ais523: also that moduleLookup frightened me, when did dependent types happen?
07:13:32 <elliott_> but they are probably inevitable...
07:13:56 <elliott_> I have a feeling the design would be impossible to realise without them; as in, it'd turn out to be impossible for the user to create a function, or something
07:14:50 <elliott_> ais523: ah, hmm, there's a problem
07:14:57 <elliott_> ais523: in that, every boxed type has a different API
07:15:03 <elliott_> so it's actually a typeclass of some kind
07:15:26 <elliott_> class Boxable a where { data Box a; unbox :: Box a -> a }
07:15:35 <elliott_> hmm, I need a better name than box
07:15:41 <ais523> I think you may be thinking too Haskell
07:15:51 <coppro> elliott_: I'm dubbing you King Vaporware
07:15:57 <elliott_> ais523: well, it's obviously not a single unified Box type for every single type
07:16:14 <ais523> elliott_: what did you call those (executable, source) pairs that you used in your Underload compiler?
07:16:15 <elliott_> ais523: so it's a type family of some kind
07:16:26 <elliott_> I called the flattened quotations blimps
07:16:30 <ais523> well, give this the same name as those
07:16:34 <ais523> because it's the same concept
07:16:38 <ais523> let's go all Prolog-style with naming
07:16:47 <ais523> and agree that we can unify two names even if we don't know what they are yet
07:17:03 <ais523> meanwhile, I suppose we have to call them _1, _2, etc
07:17:05 <elliott_> ais523: isn't @ already pretty prolog style with naming?
07:17:07 <ais523> or maybe @, @1, @2, etc
07:17:38 <ais523> that's like writing name_of_X(X)
07:17:55 <ais523> it should be name_of_future_operating_system(@)
07:18:16 <elliott_> hmm, xray would be a good name if it weren't such an ugly name
07:18:59 <elliott_> what's a nice name for an xray
07:19:14 <ais523> hmm, it's also like stripping the debug info (unxraying, that is)
07:19:16 <oerjan> <elliott_> "millennia" -- are we talking about a programming language called Sanskrit, or Sanskrit itself? :D
07:19:27 <ais523> but I'm not sure there's a standard name for something with debug info in
07:19:33 <oerjan> we are talking about the closest thing sanskrit has to an official spec
07:19:45 <elliott_> oerjan: umm, really? not some programming language based on sanskrit?
07:19:56 <ais523> contrary to what sys/user.h says, GDB is not the only debugger in existence
07:19:57 -!- Taneb has joined.
07:20:14 <ais523> people write official specs for non-programming languages?
07:20:17 <elliott_> too much into it. Don't use it for anything other than GDB unless
07:20:17 <elliott_> you know what you are doing. */
07:20:19 <ais523> other than Lojban, I mean?
07:20:22 <elliott_> /* The whole purpose of this file is for GDB and GDB only. Don't read
07:20:22 <elliott_> too much into it. Don't use it for anything other than GDB unless
07:20:22 <elliott_> you know what you are doing. */
07:20:29 <elliott_> ais523: well, French is "strictly controlled" (ha ha)
07:20:30 -!- nisstyre_ has joined.
07:20:39 <elliott_> hi Taneb, we're discussing @, run while you still can
07:20:43 -!- Nisstyre has quit (Ping timeout: 258 seconds).
07:20:50 <Taneb> I still don't know what @ is!
07:21:37 <oerjan> ais523: 400 B.C. at least one person did. mind you iiuc he ignored many parts of the language, concentrating on morphology and inflection.
07:22:16 <Patashu> elliott_: call it heatvision
07:22:34 <Taneb> Isn't that just computational linguistics?
07:23:55 <elliott_> ais523: hmm, this is definitely getting moe confusing
07:24:29 <elliott_> Taneb: stop it stop it stop it
07:24:43 <Taneb> Either you tell me or I install Haiku
07:26:05 -!- nisstyre_ has quit (Quit: Leaving).
07:26:46 -!- Nisstyre has joined.
07:28:05 <ais523> this is one of the less usual threats I've seen
07:28:05 -!- madbr has quit (Read error: Connection reset by peer).
07:28:20 <Taneb> I'm mildly sleep deprived!
07:32:08 <elliott_> ais523: boxes seem to describe the nature of description itself
07:32:17 <elliott_> hmm, interpretation brackets are this
07:32:27 <elliott_> but more Syn -> Sem than the other way
07:32:35 <ais523> oh, I can't type them, and are not sure if they're in Unicode
07:32:42 <ais523> but they look like [[ ]] but squished-together a bit
07:32:51 <elliott_> <elliott_> but more Syn -> Sem than the other way
07:32:58 <ais523> \llbracket \rrbracket in LaTeX, I think
07:33:00 <elliott_> by that I'm just saying that Sem -> Syn doesn't get back all the information
07:33:01 <ais523> as I've typed them too much
07:33:04 <Taneb> Okay, I need to find a larger memory device
07:33:13 <elliott_> ais523: there actually _is_ a function (a -> Box a)
07:33:25 <elliott_> ais523: it simply constructs a pathological box, one consisting of a single object reference
07:33:28 <elliott_> and that reference being the argument
07:34:07 <elliott_> ais523: oh, umm, I suppose not all objects are comparable, as they might contain references to non-comparable objects
07:34:26 <elliott_> but I don't see why you _shouldn't_ be able to do that pathological version
07:34:32 <elliott_> ais523: the analogy being, Sem -> Syn
07:34:35 <elliott_> Syn -> Sem does the actual evaluation
07:34:39 <elliott_> but you can always construct the simple lambda result back
07:35:26 -!- madbr has joined.
07:35:54 <elliott_> ais523: help what does a box do
07:36:03 <ais523> elliott_: haha at the reference
07:41:33 -!- madbr has quit (Read error: Connection reset by peer).
07:42:30 <elliott_> ais523: I think you _do_ create boxes by composing them from scratch: that's called programming
07:42:56 <elliott_> ais523: it's just manipulating an AST with "more info"
07:43:04 <ais523> in fact, you probably end up with a sort of lazy compile, don't you?
07:43:24 <ais523> I'm beginning to wonder if a box is just the AST, and unboxing it compiles one step
07:43:36 <elliott_> well, you can certainly convert a box to an AST
07:43:52 <elliott_> but... the box of, say, a key-value table, isn't an AST
07:44:07 <elliott_> the box of a record (Haskell-style) isn't an AST
07:44:11 <elliott_> well, it sort of is, but it's simpler than that
07:44:19 <elliott_> it's just a mapping from boxes of keys to boxes of values
07:44:28 <elliott_> so actually not boxed, just the name
07:44:57 <Taneb> I've been up and down my house and finally found a bigger memory device
07:46:15 <elliott_> ais523: you've now thoroughly confused me
07:47:04 <elliott_> Ø ÓÒ Ð ÔÖÓ Ö ÑÑ Ò Ý Ø Ø Ñ ÐÐ Ø × ÔÖ Ñ Ø Ú × Ú
07:47:50 <elliott_> if you can't copy it, don't pretend to
07:48:09 -!- madbr has joined.
07:48:46 <Taneb> How do I un-write-protect an SD card?
07:50:07 <ais523> there's normally a little plastic tab on one of the edges
07:50:10 <ais523> you move it to the other position
07:50:11 <Patashu> But if you could un-write-protect it you could write to it and so it wouldn't be very well write protected
07:50:17 <ais523> very small, normally about a millimetre square
07:50:29 <Patashu> Tomorrow's computer viruses will extend robotic arms from your computer to fiddle with the SD card to infect it!!
07:51:43 -!- madbr has quit (Read error: Connection reset by peer).
07:51:58 <Taneb> So, that's what that does
07:53:17 <Taneb> brb, installing Haiku
07:53:48 -!- Taneb has quit (Read error: Connection reset by peer).
07:55:01 <monqy> what happens next???
07:55:41 <elliott_> `addquote <Patashu> Tomorrow's computer viruses will extend robotic arms from your computer to fiddle with the SD card to infect it!!
07:55:44 <HackEgo> 551) <Patashu> Tomorrow's computer viruses will extend robotic arms from your computer to fiddle with the SD card to infect it!!
07:55:53 <ais523> elliott_: only 12 syllables
07:56:15 <elliott_> wow is that actually right haha wow
07:56:29 <ais523> it also technically needs to mention the name of a season to be a haiku
07:56:31 <Patashu> I'm pretty sure the syllables are a necessary, not sufficient, metric for a haiku
07:56:33 <ais523> but people keep disregarding that
07:56:44 <ais523> I think 5/7/5 + season name is sufficient
07:56:48 <ais523> but it might not be a very /good/ haiku
07:57:15 <ais523> you could start off "haiku in summer", then it'd work
07:57:24 <ais523> just not make whole lot of sense
07:57:29 <monqy> beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
07:57:38 <elliott_> monqy: i laughed, but I'm not sure why
07:57:57 <ais523> `addquote <monqy> beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
07:57:58 <HackEgo> 552) <monqy> beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
07:58:04 <ais523> three people laughed at it, so by definition it's funny
07:58:27 <Patashu> It's very close to being a skit
07:58:29 <ais523> and probably carries enough context in just that quote for other people to get the joke, too
07:58:57 -!- madbr has joined.
07:59:27 <pikhq> Start book at 8. Finish book and realise it's 2.
07:59:37 <pikhq> I seem to have issues with "sleep".
08:00:48 -!- Nisstyre has quit (Ping timeout: 260 seconds).
08:00:51 <Patashu> what's your problem with it
08:01:26 <elliott_> obviously pikhq meant twenty four hour times
08:02:49 <elliott_> monqy will now never speak again after that haiku because he can never top it
08:02:50 -!- madbr has quit (Read error: Connection reset by peer).
08:05:29 <elliott_> ais523: you should play EVE Online; you've already mastered the playing of Excel as a game, so EVE can only be a step up in fun from that
08:05:57 <ais523> I think you have it the wrong way round, though
08:06:09 <ais523> what I wrote was trying to implement a game engine using Excel
08:06:11 <elliott_> you mean experienced EVE players should go for the raw multiplayer Excel experience?
08:06:19 <ais523> whereas EVE Online is trying to implement a spreadsheet in a game engine
08:06:29 <ais523> you'd expect someone who enjoyed one to dislike the other
08:06:41 <Patashu> What is playing EVE Online really like
08:06:48 <elliott_> I gave up on EVE roughly when I realised that not only do you attack ships by right clicking them and choosing an item from a context menu, but you also do everything else by popping up windows and interacting with GUI widgets
08:06:54 <elliott_> it even has a browser window you can use
08:07:00 <elliott_> you could probably use EVE as your only oS
08:07:12 <ais523> elliott_: you played it at all?
08:07:19 <ais523> that surprises me and I'm not sure why
08:07:25 <elliott_> ais523: it has a free trial, so I played about five minutes of it
08:07:34 <ais523> I think you just don't strike me as the sort of person to play MMOs, even free trials of them
08:07:44 <elliott_> no, but I do like my spreadsheets
08:07:53 <ais523> also, apparently EVE has a huge bias towards players who joined early
08:08:01 <elliott_> anyway, I /did/ play an MMO regularly a few years ago, I'm too embarrassed to tell you which, though
08:08:08 -!- cheater_ has quit (Ping timeout: 255 seconds).
08:08:35 <ais523> it's either going to be World of Warcraft or some crazy tie-in to a TV series
08:08:37 -!- cheater_ has joined.
08:09:02 <ais523> in that case, I probably won't even try to guess
08:09:57 -!- madbr has joined.
08:11:33 <pikhq> Patashu: 20:00 to 02:00. Happy?
08:11:33 -!- madbr has quit (Read error: Connection reset by peer).
08:11:58 <Patashu> You have not given me any new information
08:12:44 <pikhq> And I *really* should disambiguate — I mean, I'm about as likely to use 24 hour time as 12 hour time, TBH...
08:17:07 <elliott_> coppro: does neopets even count as an MMO
08:17:13 <elliott_> I should start playing Neopets ironically
08:17:24 <Patashu> you can't play neopets ironically
08:17:25 <elliott_> I never even knew it existed until I was far too old to be in the target market
08:17:34 <elliott_> Patashu: that's just super ironic
08:17:43 <elliott_> note: sufficiently good irony is indistinguishable from sincerity
08:18:20 <pikhq> I actually had a Neopets account. I later gained a second digit in my age.
08:19:26 <elliott_> `addquote <pikhq> I actually had a Neopets account. I later gained a second digit in my age.
08:19:28 <HackEgo> 553) <pikhq> I actually had a Neopets account. I later gained a second digit in my age.
08:19:42 <ais523> what is Neopets, anyway
08:19:56 <coppro> ais523: oh you'll love this
08:19:57 <elliott_> ais523: it's Neopets (do you actually not know?)
08:20:11 -!- madbr has joined.
08:20:20 <elliott_> ais523: they're like pet rocks, except instead of rocks, they're bits. also you can buy them accessories with rockcaret W bit money?
08:20:26 <elliott_> also there are games to win money?
08:20:32 <elliott_> and i think a scientologist runs it?
08:20:43 <elliott_> that is too much money for pet rocks
08:21:03 <ais523> and you can pay them for a webmail address/
08:21:13 <ais523> this is a pretty random combination of things
08:22:21 <coppro> yeah old is a pretty significant quality
08:22:22 -!- madbr has quit (Read error: Connection reset by peer).
08:22:31 <pikhq> When it got started Tamagotchi was a fresh memory.
08:22:53 <fizzie> "I always knew having a mad wizard design our water distribution plant was a bad idea." (From a Neopets-related "walkthrough"-style thing I hit a week ago while googling for something really completely different.)
08:23:33 <pikhq> ais523: It was the friggin' 90s.
08:23:48 <pikhq> Well. Nearing on 2000.
08:24:03 <ais523> that'd be before I really knew about the Internet
08:24:05 <pikhq> These were primitive days, and Geocities was still vibrant.
08:24:10 <elliott_> tamagotchis are so great, i had one, i remember fuck all about it
08:24:28 <pikhq> At the time I had been on the Internet for a handful of years.
08:24:43 <oerjan> <ais523> three people laughed at it, so by definition it's funny <-- make that four
08:24:44 <elliott_> what was the internet like in 98, i was on then but i don't recall it
08:24:55 <coppro> according to Our Lord Wikipedia
08:25:03 <pikhq> elliott_: Comically simple.
08:25:08 <ais523> elliott_: heh, you were probably consistently online before me, then
08:25:16 <elliott_> ais523: I'm not exactly surprised
08:25:19 <ais523> I knew of its existence back then, and would even find a way to use it if I needed it
08:25:27 <elliott_> ais523: when did you discover the internet, five minutes ago?
08:25:34 <pikhq> elliott_: This predates *CSS*.
08:25:34 <ais523> and mostly, I'd be doing email via someone else's account
08:25:49 <ais523> (with permission, obviously)
08:26:00 <ais523> elliott_: I'm still not entirely convinced it exists
08:26:17 <ais523> I mean, technology that lets you communicate instantly with people in a huge range of places around the world, that's science fiction stuff, right?
08:26:25 <pikhq> elliott_: *Google was not The Search Engine*.
08:26:35 <ais523> (no telephones do not count have you ever tried to make an international phone call that crosses continent boundaries?)
08:26:49 <elliott_> ais523: what's it like (I haven't ever)
08:26:49 <coppro> Does Neopets still look like a lesson in horrid web design?
08:27:13 <ais523> elliott_: when I tried to phone home from Canada, it took the phone over two minutes to even work out how much a call to the UK would cost
08:27:18 <pikhq> coppro: Also, at the time it was just normal web design.
08:27:33 <ais523> and then quoted an amount that was sufficiently large it'd have been inconvenient to pay with just coins
08:27:51 <ais523> not just because affording it would have been tricky, but because I had no real prospect of finding change
08:28:01 <coppro> yeah international calls suck
08:28:11 <pikhq> The phone network sucks.
08:28:11 <ais523> I'm not sure if that's the fault of Canada in particular, though
08:28:23 <pikhq> It was perfectly sane and well-designed. In 1950.
08:28:26 <ais523> from Hungary, it took about five seconds longer than normal to connect
08:28:32 <ais523> and the price was noticeable but not insane
08:28:59 <ais523> but that's within the EU, that's practically no distance at all
08:28:59 <pikhq> Or 30-odd exponential increases in computing power ago.
08:29:49 <elliott_> dontaddquote <ais523> but that's within the EU, that's practically no distance at all
08:30:29 <pikhq> Really, circuit switching is just sad.
08:31:14 <ais523> hmm, what are international calls from the US like?
08:31:40 <pikhq> ais523: I literally do not know.
08:31:55 <ais523> I don't blame you for never having tried
08:31:56 <pikhq> I have never had cause to call internationally.
08:32:04 <pikhq> I have rarely had cause to even call long-distance.
08:32:11 <ais523> I suppose you could use a payphone then not put money in it, that would be a relatively simple way to discover the time and cost
08:32:20 <ais523> also, wow, I forgot that long-distance calls existed
08:32:27 <pikhq> I was in the single digits when I started using the Internet.
08:32:42 <ais523> in the UK, they're now sufficiently similar to short-distance calls that most phone companies don't bother to distinguish between them
08:32:56 <ais523> because the UK's quite small in terms of landmass, as countries go
08:32:58 <coppro> the cell phone companies still love doing them
08:33:12 <pikhq> In the US, the phone company believes that you should bend over and take it up the ass without lube.
08:33:23 <coppro> free calling within the continent is not too uncommon in Canadian plans now
08:33:35 <coppro> pikhq: You think your cell phone companies are bad?
08:33:53 <pikhq> coppro: Okay, yeah, Canada also has that policy.
08:33:56 <ais523> wait, you can make a short distance call on a cellphone?
08:34:09 <ais523> all mobile phone calls are long-distance in the UK
08:34:26 <coppro> pikhq: No. Our companies insist on at least one more hole at the same time.
08:34:37 <fizzie> All mobile phone calls to landlines are "same-distance" in Finland. I don't know if it's a long or short.
08:34:41 <pikhq> In the US, cell phones are assigned entirely normal phone numbers within the area code for where you live in.
08:34:51 <ais523> typically, you get a cheaper price contacting a landline or another mobile phone on the same operator, and a more expensive price contacting a mobile phone with a different operator
08:35:28 <oerjan> <ais523> (no telephones do not count have you ever tried to make an international phone call that crosses continent boundaries?) <-- i phoned in my agora votes once (sadly through an answering machine) in the 90s. it was surprisingly easy.
08:35:50 <ais523> oerjan: that's Norway to... New Zealand?
08:36:04 <ais523> I assume Agora doesn't have a international dialling prefix of its own
08:36:05 <coppro> I should try to conference call all agoran players
08:36:07 <ais523> but we should definitely get it one
08:36:14 <ais523> coppro: you live in /Canada/
08:36:39 <ais523> which has crazy telecom companies
08:36:56 <coppro> ais523: I'll call a foreign carrier who does cheap conference calling first :{
08:37:31 <coppro> pikhq: you lied about Neopets and web design btw
08:37:37 <coppro> it's not an example of bad web design
08:37:42 <coppro> it's an example of horrible web design
08:37:48 <pikhq> Probably the worst part about the telephone network is that they have the audacity to charge even *trivial* costs per minute.
08:38:09 <coppro> pikhq: Do landline carriers still do that in the US?
08:38:11 <ais523> pikhq: you think they should charge just line rental?
08:38:16 <pikhq> coppro: Long-distance.
08:38:24 <coppro> pikhq: How far is long-distance, typically
08:38:41 <ais523> the phone situation in the UK, both landline and mobile, is that the tariffs are really complicated and have loads of exceptions
08:38:45 <ais523> making them very hard to compare
08:38:50 <pikhq> coppro: I have no idea. I call maybe 10 times a year.
08:38:59 <coppro> pikhq: well it matters
08:39:07 <ais523> I actually use landlines quite a lot
08:39:17 <coppro> ais523: by the way, not only do cell phones have area codes, you get charged extra for being outside your home zone typically
08:39:20 <ais523> relative to most of the people in this channel, anyway, I expect
08:39:28 <pikhq> ais523: But, yes, they really should just charge line rental.
08:39:50 <pikhq> ais523: The phone call *itself* is just a 56kbps stream over the Internet.
08:40:00 <monqy> I haven't been paying attention
08:40:08 <ais523> coppro: I'm beginning to wonder if North America's attitude to cellphones is "let's make these work as much like landlines as possible"
08:40:10 <monqy> something about phones and web design?
08:40:22 <monqy> i have one but i keep it off all the time
08:40:27 <oerjan> ais523: wherever steve gardner lived at the time
08:40:49 <pikhq> ais523: North America's attitude to international callling is also "let's make these work as much like intranational callling as possible."
08:40:58 <pikhq> ais523: North America has a unified numbering scheme.
08:41:01 <coppro> ais523: It's moneygrab
08:41:12 <ais523> elliott_: in response to my question about whether he phoned New Zealand from Norway
08:41:28 <ais523> pikhq: international calling from Europe is very like intranational, too
08:41:30 <pikhq> ais523: There's not country prefixes in the North American dialing plan. There's the North America prefix, and area codes.
08:41:40 <ais523> you just dial double 0 then country code then number
08:41:46 <pikhq> And then 7 digit numbers.
08:41:47 <coppro> ais523: People were used to phone service working like X, so they just kept that when cell phones arrived
08:41:51 <pikhq> For all of North America.
08:41:52 <coppro> which was good for them since they made money
08:41:52 <ais523> just like you dial single 0, area code, number for long distance
08:41:56 <ais523> or just number for short distance
08:42:00 <coppro> and there has been insufficient consumer pressure to switch
08:42:02 <elliott_> i love how stupidly close inter and intra are
08:42:04 <ais523> 0's like the ../ of the phone system
08:42:06 <coppro> although in Canada some new pressure is emerging
08:42:12 <coppro> (from foreign companies, no less)
08:42:44 <ais523> hmm, if I phoned myself starting with 0044, I wonder if I'd be charged more?
08:43:06 <ais523> I know you aren't on a mobile, starting UK numbers with +44 is common there
08:43:12 <ais523> just in case you happen to move the phone outside the UK
08:43:19 <ais523> so it doesn't call the number in the wrong country
08:43:27 <coppro> we now actually have a mobile provider that offers unlimited tethering
08:43:40 <ais523> which of the three possible definitions of unlimited are you using?
08:43:50 <ais523> in particular, does it become limited again if you use too much bandwidth?
08:44:04 <ais523> (ah, the joys of phone advertising in the UK)
08:44:20 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
08:44:24 <ais523> elliott_: that's what "fair usage policy" typically means in the small print of communciations advertising
08:44:30 <coppro> it's not cheap, but it doesn't appear to be one-dimensionally unlimited
08:44:47 <ais523> another variation is unlimited except if you do certain things
08:45:02 <oerjan> <elliott_> oerjan: wat <-- my agora phone vote
08:45:46 <coppro> They do say they'll throttle you after 5GB/mo though, for the rest of the month, to 256 Kb/s up and 128 down, and you'll get a notice telling you they're doing that
08:46:03 <coppro> 5GB on a mobile connection is a lot though
08:46:12 <ais523> that's the "unlimited except if you use too much bandwidth" I was referring to
08:46:19 <ais523> a massive throttle is similar to a cutoff
08:46:28 <coppro> 256 Kb/s is still plenty
08:46:32 <elliott_> zero, one, infinity is so passe. the new thing is: zero, one, five million
08:47:32 <ais523> which only makes a difference of a factor of 5 or so
08:47:39 <fizzie> "So it's just like two dialup modems."
08:47:42 -!- Nisstyre has joined.
08:47:53 <ais523> fizzie: more like five of them, mathematically
08:48:15 <coppro> ais523: I don't know the exact numbers, but I don't expect that's a ridiculously evil slowdown relative to normal
08:48:24 <coppro> oh, and they do throttle P2P traffic
08:48:39 <coppro> but this is semi-normal here, and to be expected on a limited bandwidth network
08:49:01 <ais523> bleh, why is INVISIBLE MULTIPLICATION SIGN not in my Unicode character map thing?
08:49:10 <ais523> I wanted to write 2<INVISIBLE MULTIPLICATION SIGN>56
08:49:11 <coppro> and still way better than you'll get from the major networks
08:49:23 <coppro> ais523: Some only do the BMP
08:49:29 <ais523> this one does more than the BMP
08:49:35 <ais523> but I'm not sure how far beyond it goes
08:49:47 <oerjan> ais523: you're just not seeing it
08:49:58 <coppro> a quick google doesn't show such a symbol at all
08:50:02 <fizzie> There's no INVISIBLE MULTIPLICATION SIGN even in my UnicodeData.txt.
08:50:04 <ais523> also, I perhaps forgot what the symbol's called
08:50:13 <ais523> I'm pretty sure it exists, but I'm not convinced I got the name right
08:50:28 <Patashu> lol 'invisible multiplication sign'
08:50:30 <fizzie> Well, the name does not contain the substring "multipli".
08:50:54 <fizzie> Or at least 'grep -i multipli' on UnicodeData.txt gives a lot but nothing that sounds very invisible.
08:51:01 <coppro> U+2062 INVISIBLE TIMES
08:51:07 <oerjan> what about grep -i invisible
08:51:30 <ais523> Patashu: e.g. for placing between the π and the r in πr²
08:51:30 <oerjan> it was the best of times, it was the of times
08:51:42 <coppro> also U+2061 FUNCTION APPLICATION, U+2063 INVISIBLE SEPARATOR, and U+2064 INVISIBLE PLUS
08:51:49 <Patashu> aren't invisible characters a huge huge threat?
08:51:51 <elliott_> U+2061 FUNCTION APPLICATION? amazing
08:51:55 <Patashu> you can disguise strings as being something else
08:52:02 <ais523> heh, Haskell definitely needs U+2061 between all uses of function and argument
08:52:05 <ais523> even better, /Agda/ needs it
08:52:32 <oerjan> overloaded space defaulting to U+2061
08:52:44 <oerjan> but sometimes you need to disambiguate...
08:53:05 <oerjan> wasn't there an april fools joke about overloaded space
08:53:18 <coppro> ais523: Also the telecom's site doesn't try too hard to hide the cap
08:53:31 <coppro> http://shop.windmobile.ca/productcatalog/dataplans/plandetails.aspx?id=infinite+laptop+q2+2011+promo(WINDCA) "See our Fair Usage Policy" is pretty highlighted
08:53:35 <ais523> they generally hide it on their street adverts and not anywhere else
08:53:48 <ais523> on the principle that once people start buying something, they generally don't stop
08:53:57 <ais523> budget airlines operate on the same principle
08:55:12 <coppro> also I like this company's approach to terms of service. the words "Make sense?" actually appear in a ToS
08:55:44 <coppro> and I like their "get-a-phone" incentive
08:56:05 <coppro> they'll give you some part of the phone price off, and 10% of your bill goes towards it
08:56:12 -!- elliott_ has quit (Remote host closed the connection).
08:56:13 <coppro> So they don't need to lock you in with a multi-year contract
08:56:17 <ais523> hmm, I wonder why MEDIUM MATHEMATICAL SPACE is defined as 4/18em
08:56:18 <coppro> which is fairly standard among other providers
08:56:21 <ais523> and why the fraction isn't written as 2/9
08:56:35 <ais523> coppro: in the US (and presumably Canada too)
08:56:37 -!- elliott has joined.
08:56:40 <elliott> 08:55:12: <coppro> also I like this company's approach to terms of service. the words "Make sense?" actually appear in a ToS
08:56:45 <elliott> good to know that marketing still works on people
08:56:46 <ais523> it's very far from the norm in the UK, and has only started becoming popular recently
08:57:11 <ais523> multi-year contract in exchange for phone, that is
08:57:20 <ais523> in fact, no contract is more common in the UK
08:57:24 <coppro> elliott: These ones aren'a a hideous mess of legalese
08:57:36 <coppro> ais523: yeah. It's becoming a powerful marketing tool though
08:57:37 <ais523> (instead, the prices go ridiculously high if you don't pay $10 a month, and you have to pay in advance)
08:58:00 <coppro> "no contract" is becoming common in some ads
08:58:30 <ais523> just wait until they catch up with some of the gimmicks UK ads have come up with
08:58:45 <ais523> e.g. realising that prepaid credit on a mobile phone was an arbitrary currency separate from real money
08:58:55 <coppro> The only problem is that this particular carrier has rather low coverage
08:58:57 <ais523> and so just advertising that you could pay £10 for £30 credit
08:59:04 <ais523> and people thinking that it gave an advantage
08:59:13 <coppro> because they have to fight tooth and nail for infrastructure
08:59:17 <elliott> wow, I just realised how little sense that makes just now
08:59:29 <ais523> elliott: you saw the adverts too, presumably
08:59:33 <coppro> and the other carriers don't want to rent it out at anything close to reasonable
08:59:43 <elliott> yep, but I turn my brain off for adverts, and usually concentrate on their aesthetic aspects
08:59:49 <elliott> the products are quite irrelevant
09:00:09 <ais523> I get bored on the bus sometimes, so I often look at adverts while commuting
09:00:19 <ais523> I'm not sure if any has changed my buying preferences, though
09:00:27 <elliott> television ads are so weird
09:00:37 <ais523> in either direction; all the adverts bad enough to make me boycott something have been for something I didn't want to buy anyway
09:01:27 <coppro> when WIND actually covers Waterloo, I will like get a phone with them
09:01:49 <coppro> partially just to provide them money, partially just to avoid providing the competitors with money, and partially to get service
09:02:00 <elliott> coppro: how much are you being paid?
09:02:09 <coppro> elliott: At Google? lots
09:02:21 <coppro> elliott: Of course it all has a mysterious habit of vanishing when I go back to school
09:02:30 <ais523> elliott: I think Tesco Mobile more or less won the advertising war there, because they managed to produce a great-sounding advert to advertise something that didn't cost them anything at all, nor give any advantage to their customers
09:02:57 <ais523> whereas the other mobile phone providers all had to actually provide complicated price breaks that nobody could work out the exact effect of
09:03:05 <ais523> which presumably cost them something
09:03:17 <ais523> but mobile phone network adverts seem to have reduced recently
09:03:34 <ais523> the last big campaign I remember was Orange/T-Mobile each advertising that their customers could use the others' signal
09:04:15 <Sgeo> What was that something?
09:04:37 -!- ais523 has quit (Remote host closed the connection).
09:05:11 -!- Nisstyre has quit (Ping timeout: 276 seconds).
09:06:57 <elliott> http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg01155.html
09:09:47 -!- monqy has quit (Quit: hello).
09:10:47 <elliott> Patashu: see http://lists.gnu.org/archive/html/emacs-devel/2011-07/msg01085.html onwards
09:10:49 <fizzie> A TRAGEDY is what's going on.
09:11:37 <Patashu> The problem is that they're not releasing source code to emacs or something?
09:11:43 <elliott> fizzie: It is a GPL violation that you are not currently FIXING THOSE COORD MACROS. Or, uh, ADDING THE WATER COLOURING. BASICALLY ANY WAY YOU SLICE IT YOU ARE BAD
09:11:48 <elliott> Patashu: a few source files are missing
09:12:21 <Sgeo> Some files that apparently themselves generate C (I think) code
09:12:31 <Patashu> I tried to it's too boring :(
09:13:05 <Patashu> Oh it's some parser thing not having source code
09:13:10 <Sgeo> That is, you can fully compile emacs from what they distributed as is, but it's not as easy to modify... certain things
09:14:03 <elliott> Sgeo: it's a gpl violation for anyone to redistribute
09:19:38 <elliott> real life is more interesting than virtual
09:20:25 <itidus20> Warning.. warning.. GNU violation in sector 12
09:20:53 -!- copumpkin has joined.
09:21:12 <oerjan> the gnus are rampaging
09:22:18 -!- Taneb has joined.
09:22:55 <Taneb> Well, I gave up trying to install Haiku
09:23:56 <Taneb> Is brainfuck Turing Complete with unbounced cell size but a tape size of 2?
09:24:25 <Patashu> You can prime number encode an infinite number of numbers
09:24:34 <oerjan> no, i don't think 2 is enough
09:24:40 <Patashu> And use the other cell for condutional constructs
09:24:48 <elliott> bf's operations aren't good enough for that
09:25:10 <Taneb> It's been shown to be turing complete with a tape size of 5
09:25:10 <oerjan> 4 or 5 is enough iirc. it's somewhere on the wiki...
09:25:11 <elliott> oerjan: hmm, can't a minsky machine's registers be done by brainfuck?
09:25:12 <Patashu> for every function you nest you need another for-conditional cell I think
09:25:25 <oerjan> elliott: yes, but you need more than one bf cell for one minsky register
09:25:39 <itidus20> @__ You tried well. But then met failure. Try again. __@
09:26:33 <Patashu> Why are wiki pages caps sensitive
09:26:42 <oerjan> basically you cannot use a bf cell much without clearing it, so you sometimes need to copy information elsewhere
09:26:55 <itidus20> i got the syllable counts wrong
09:28:11 -!- derrik_ has joined.
09:29:08 -!- derrik has quit (Ping timeout: 258 seconds).
09:29:09 -!- derrik_ has changed nick to derrik.
09:29:10 <Patashu> Frans Faase gives a procedure for translating 5-register Universal Register Machines into brainfuck programs using five cells [1].
09:29:11 <oerjan> or hm maybe it's actually the problem of doing conditionals
09:29:16 <Patashu> http://www.iwriteiam.nl/Ha_bf_Turing.html
09:29:27 <oerjan> because you always need to end [...] on a 0
09:29:42 <oerjan> _and_ be in a consistent state
09:30:56 <oerjan> Patashu: mind you you only need 2-register (this is proved by a prime encoding), maybe something more efficient than 5 bf cells can do it.
09:31:39 <itidus20> Start with "Frans". Swap n with s "Frasn". Change r to a "Faasn". Change n to e "Faase".
09:35:54 <oerjan> the 2-register thing was mentioned in wikipedia's articles on counter machines
09:36:44 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]).
09:36:55 <itidus20> "Frans". Swap cell 4 with cell 5. Load "a" into cell 2. Load "e" into cell 5. "Faase".
09:37:21 <oerjan> itidus20: you're just a few steps from a Smetana derivative there.
09:39:23 <oerjan> maybe you _could_ do it with only 3, hm.
09:40:41 <itidus20> "Frans". Copy cell 5 into cell 4. Copy cell 3 into cell 2. Load "e" into cell 5. "Faase".
09:41:47 <oerjan> by using that one-register with constant multiplication/division that is part of the proof that 2 with inc/dec suffice
09:44:24 -!- derrik has joined.
09:47:44 <oerjan> in other words, doing this with 3 bf cells instead of 2 minsky registers: http://en.wikipedia.org/wiki/Counter_machine#Step_3:_Four_counters_can_be_simulated_by_two_counters.
09:48:25 <Taneb> So, the answer's... yes?
09:48:52 <oerjan> no, it's "maybe". i haven't worked out if it actually works...
09:49:04 <Taneb> I'll stick to five cells for now
09:49:06 <oerjan> also, i don't think 2 bf cells is enough.
09:51:40 <oerjan> because there is simply not enough room then to leave the essential data unscathed, extract the conditional information you need _and_ end a [...] at the same time.
09:53:43 -!- MigoMipo has joined.
09:54:10 <oerjan> perhaps if you did it as an enormously branching tree of []'s, where you only end a loop after packing all the information _back_ into the main register, so you can keep the second register 0 while returning to top level of the bf program...
09:55:10 -!- derrik has quit (Quit: ChatZilla 0.9.87-rdmsoft [XULRunner 1.9.0.17/2009122204]).
09:59:02 <oerjan> the "make a conjecture that something is impossible, then get an idea why it's possible after all, repeatedly" part certainly seems familiar.
10:09:06 <Taneb> Stupid Python lambda
10:09:12 <Taneb> Not doing what I want it ot
10:11:31 <oerjan> doing if (n % const == 0) { n /= const; ... } else { ... } with just 2 registers _does_ seem rather hard
10:12:03 <Patashu> you need at least one more register for that
10:12:08 <Patashu> however many register mult, div and mod require...
10:13:33 <elliott> I think you could do it with an infinite AST :-)
10:14:06 <oerjan> elliott: yeah, the tricky part is doing unbounded subtraction looping without that :P
10:16:33 <elliott> oerjan: maybe aim for four cells to start with? :P
10:16:59 <elliott> oerjan: UNDERLOAD MINIMALISATION WASN'T BUILT IN A DAY
10:18:17 <oerjan> with three you should have somewhere to put both the quotient and the remainder, and then you can clean things up afterward, maybe.
10:18:36 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
10:19:00 <oerjan> for a minsky machine 2 registers is no problem because the remainder can be incorporated into the state.
10:19:07 <elliott> oerjan: three or four wouldbe an upsetting number.
10:20:37 <oerjan> well as i said, with two you have the trouble that whenever you exit a loop, all your information beyond program position has to be in just one cell.
10:23:20 <oerjan> which means you cannot really use a loop for calculating divmod, unless you manage to somehow avoid exiting it before making some computational progress.
10:24:21 <elliott> three would be okay i guess
10:24:30 <elliott> but FOUR is unholy against god as a minimum,
10:24:38 <oerjan> i seem to have a disturbing tendency to split infinitives
10:34:53 <coppro> oerjan: *I seem to disturbingly have a tendency to split infinitives
10:34:53 <itidus20> oerjan: splitting infinitives is not illegal
10:35:23 <Taneb> Unless you weaponize it
10:35:47 <itidus20> i was on the split infinitives wikipedia page once
10:35:52 <coppro> splitting infinitives is fine
10:36:03 <itidus20> apparen't theres a big mix up about it
10:36:43 <oerjan> yes but i seem to be doing it all the time recently.
10:37:15 <itidus20> you're just winning... it's fine
10:37:25 <Taneb> Oerjan desires to boldly split infitives where no infinitives have been split before
10:37:44 -!- Lymee has quit (Ping timeout: 240 seconds).
10:38:10 -!- oerjan has quit (Quit: Yes, you should.).
10:44:33 -!- elliott has quit (Ping timeout: 260 seconds).
11:08:09 -!- olsner has joined.
11:13:11 -!- immibis has joined.
11:29:49 -!- olsner has quit (Quit: Leaving).
11:35:44 -!- olsner has joined.
11:38:04 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
11:43:25 <Sgeo> Are there any good reasons that I should _not_ return the Nook and get a Kindle?
11:43:35 <Sgeo> I like the idea of the synced annotations
11:44:36 -!- cheater_ has quit (Ping timeout: 255 seconds).
11:44:40 <Sgeo> I've kind of been excludng "Kindle" mentally from my "What ereaders am I checking out" list before
11:50:07 <Sgeo> Well, hmm, I wouldn't be able to buy from most online ebookstores
11:57:12 -!- cheater_ has joined.
12:06:08 -!- FireFly has joined.
12:06:41 <Sgeo> Well, that's just great. Just taught a creepy idiot in #jesus about the existence of notice, now he's asking me how I did it
12:07:24 <Sgeo> You've never used IRC notice?
12:07:35 <Sgeo> Looks like this to the channel
12:09:39 <olsner> Sgeo: why are you in #jesus teaching people about notice?
12:09:54 <Taneb> Because he's that awesome
12:10:18 <Sgeo> Because creepy dude was talking about some "hacker" sending messages to him, and that's why he always seemed to talk to himself in channel
12:10:30 <Sgeo> I was curious if the "hacker" was just using notice
12:10:51 <Sgeo> oklopol, you missed the awesome context for that line
12:16:28 <oklopol> umm, so if someone tells me "please pay to our paypal account: paypal@(ourcompany).com", am i supposed to send another email in that address to ask for their paypal account stuff, or are paypal accounts just somehow registered to email addresses
12:17:28 <Sgeo> Must stop accidentally fuelling paranoid guy's paranoia
12:17:44 <oklopol> thanks, now if only i knew how to actually pay to one
12:18:09 <oklopol> ordering a mail order bride/secretary/assassin
12:18:26 <Taneb> Like in Kill Bill?
12:18:54 <Taneb> https://www.paypal-marketing.co.uk/sendmoney/index.htm
12:19:07 <oklopol> no i think there's more than a girl
12:19:29 <oklopol> so err does anyone know latin here
12:19:46 <oklopol> or wait which languages are philias in
12:19:55 <oklopol> i need to know what the term is for people who like to fuck houses
12:20:48 <Taneb> Hippopotamus litteraly means horse of the river
12:21:04 <oklopol> who the fuck would want to fuck a horse
12:21:49 <oklopol> i thought you meant because hippos are really big
12:25:43 <fizzie> I think I also misread "horses", but maybe it was just the context when reading the lines backwards.
12:26:17 <oklopol> do i need to make a gaypal account to be able to pay to one?
12:26:34 <fizzie> I don't think so either.
12:27:13 <fizzie> "How much does this house weigh?" is a traditional obligatory question asked after presentations on all CS student body organized company excursion visit sort of things.
12:27:24 <fizzie> Or "paljonko tämä talo painaa?" in Finnish.
12:27:35 <fizzie> It's some sort of a nonsense-joke.
12:36:29 -!- olsner has quit (Ping timeout: 240 seconds).
12:40:08 <Taneb> Depends on their size and material
12:41:16 <oklopol> some people fuck cars but i haven't heard of a house lover
12:44:12 <fizzie> "house lover": About 250,000 results (0.23 seconds)
12:44:21 <fizzie> Rather irrelevant results.
12:44:38 <fizzie> There's a "Tiny House Lover", but I doubt it's about fucking tiny houses.
12:44:43 <fizzie> At least when "fucking" is a verb.
12:44:59 <Taneb> It could be a dwarf oikiaphile
12:45:12 <fizzie> It could be when it's an adverb or something.
12:45:28 <oklopol> i wouldn't fuck a house that was bigger than me
12:46:05 <fizzie> I've heard that the whole "tiny house" is a sort of a trendy thing; the new iteration of the "minimalism" stuff.
12:46:42 <oklopol> well as long as they are big on the inside
12:46:48 <fizzie> http://www.tumbleweedhouses.com/houses/
12:46:59 <fizzie> I'm not sure there's any that are smaller than you.
12:47:45 <fizzie> Somebody had parked a modern-looking glass-wall on-wheels sauna on a grass field in Otaniemi.
12:48:06 <oklopol> i guess i have to build one myself or i'm gonna be alone forever
12:48:36 <fizzie> Not the old well-known "made out of a car" one -- http://farm2.static.flickr.com/1171/1433982857_c28fbee6fe.jpg -- but a more stylish affair.
12:49:13 <fizzie> oklopol: It appeals both to the car fuckers and the house fuckers.
12:49:35 <oklopol> well i don't know which side of me it's appealing to, but i'm very appealed
12:49:41 -!- olsner has joined.
12:49:51 <fizzie> http://www.saunasessions.ca/mobilesaunas/index.php?n=MobileSaunas.Lehti <- some rather more smutty pictures of it, doors open and all.
12:50:43 <oklopol> Kuvaaja ylltt heidt takaluukun kautta. Milt tuntuu?
12:54:03 -!- derrik has joined.
13:19:32 -!- cheater_ has quit (Ping timeout: 255 seconds).
13:20:01 -!- copumpkin has joined.
13:20:02 -!- copumpkin has quit (Changing host).
13:20:02 -!- copumpkin has joined.
13:50:09 <Taneb> Now to wait 12-24 working days!
13:54:17 -!- Lymee has joined.
14:03:53 -!- immibis2 has joined.
14:03:54 -!- immibis has quit (Read error: Connection reset by peer).
14:09:22 -!- immibis2 has quit (Ping timeout: 246 seconds).
14:11:35 -!- Taneb has changed nick to TanebIsAWay47.
14:14:57 <quintopia> i know what a cirno is...she is stupidest
14:16:18 -!- TanebIsAWay47 has quit (Ping timeout: 260 seconds).
14:29:14 -!- invariable has joined.
14:33:58 -!- TeruFSX has joined.
14:36:22 -!- lament has joined.
14:38:50 -!- MigoMipo has quit (Read error: Connection reset by peer).
14:39:26 -!- olsner has quit (Quit: Leaving).
14:49:25 <Sgeo> I found an answer: The library books will be Kindle format, so I still wouldn't be able to purchase DRM ebooks from other sellers
14:52:54 <itidus20> this ones sort of playful and hopefully fun
14:54:12 <itidus20> There is a genre of video games about creating. Crayon physics, MineCraft, Terraria, Lemmings, Sim City.. i don't have an exhaustive list
14:58:41 <itidus20> just as I typed this I looked in wikipedia on SimCity and found an amusing comment "In Space Quest IV, in the Software Excess Store, a game called Sim Sim is available. It is described as a "simulated simulator specially designed for creating simulated simulators" and that "you can create a simulated environment in which you can create any simulated environment you want"."
15:05:47 -!- Nisstyre has joined.
15:05:47 -!- Nisstyre has quit (Excess Flood).
15:06:31 -!- Nisstyre has joined.
15:07:11 -!- Taneb has joined.
15:07:34 <itidus20> wow... .. my creative juices are really flowing now
15:08:27 <itidus20> i'll go make a coffee and return with an answer of this fucking sweet idea i just had
15:08:35 <Taneb> Write it down first
15:08:42 <Taneb> So you don't forget
15:13:08 <itidus20> the idea is directed towards game development.. but let me explain in the context of say, visual basic
15:13:24 <itidus20> suppose you are editing a visual basic thing right?
15:13:57 <itidus20> you make a form.. you throw some buttons on it, ok?
15:14:15 <itidus20> then you "run" it.. following so far?
15:14:30 <Taneb> Am I supposed to be doing this as you talk
15:14:52 <itidus20> now, what happens if you click on one of these buttons?
15:15:55 -!- MSleep has changed nick to MDude.
15:16:01 <itidus20> now, my idea is... that.. if you right click on one of these buttons... a box pops up for you to enter a script on how to react to a right button click
15:16:34 <itidus20> oops i mean left click i think
15:17:27 <itidus20> or... (and now we are reminded of a spell checker) whether it should ignore the right click
15:19:03 <itidus20> so basically, reacting to events by prompting for some code of how to react to the event
15:19:17 -!- BeholdMyGlory has quit (Remote host closed the connection).
15:19:21 <itidus20> or perhaps some kind of dialog box with checkboxes
15:20:14 <itidus20> yeah.. although some crazy guy out there is probably already doing it, what matters is that it's low key and we haven't really heard ofit
15:21:27 <itidus20> maybe it's already being done.. but it probably still exists only in white papers and expensive apps
15:22:40 <itidus20> ok so.. suppose theres a game right?
15:22:45 -!- Taneb has quit (Read error: Connection reset by peer).
15:23:26 <itidus20> ok so.. suppose theres a game right? now.. when 2 objects in the game collide.. it could prompt for you to create an event handler (either a script or a dialog box with checkboxes etc)
15:25:23 -!- soupe has joined.
15:29:59 <oklopol> but maybe you could have something like ctrl+whatever = prompt for what to do when whatever is done, so you could test and program at the same time, and correct mistakes easily
15:30:11 <oklopol> but yeah i would certainly like to do gui programming that way
15:30:20 -!- soupe has quit (Quit: ~{AtlanTis-Script}~ par Jack Disponible sur http://Atlantisteam.xooit.fr).
15:30:32 <itidus20> oklopol: hmm so you mean like a toggle :D
15:30:35 -!- soupe has joined.
15:30:46 -!- soupe has left.
15:30:55 <itidus20> oh maybe ctrl + foo would be better
15:31:05 <itidus20> one of the big problems with this idea is the event flood
15:31:27 <oklopol> THE MOUSE JUST MOVED TO (620, 39), WOULD YOU LIKE TO ADD AN EVENT FOR THIS
15:31:51 <itidus20> so then i got the idea of being like a spell checker.. the way it lets you ignoer something, or add it to dictionary etc
15:32:22 <itidus20> oklopol: i have a harsh internal critic who expects nothing but the very best ideas
15:32:50 <MDude> WOuld it check the mouse at all times, or would it be just specific object checking if the mosue is over them?
15:33:06 -!- olsner has joined.
15:33:34 <MDude> Since even if you wanted an invisible spot that reacts to being hovered over, you could still make that with an invisible object.
15:34:37 <oklopol> itidus20: i think ctrl+whatever mostly solves the event flood problem as well, just press ctrl just before whatever event you want to catch
15:34:41 -!- Taneb has joined.
15:35:35 <MDude> It would probably be nice to have a timer so you can have things just perform an action periodically.
15:35:36 <oklopol> i have a harsh internal critic that usually tells me i suck and shouldn't even try when i try to solve a problem
15:36:26 <Taneb> Sorry I lost connection
15:39:12 -!- sebbu2 has changed nick to sebbu.
15:43:43 <itidus20> MDude: well good point.. it could be configured to look for "mouse over object"
15:44:13 <itidus20> because the kinds of events that it catches are supposed to be generalized ones
15:44:56 <itidus20> Taneb: ill pastebin what you missed
15:46:14 <itidus20> one benefit is you don't have to "think" of which events will occur
15:46:28 <itidus20> that would seem to be the idea
15:47:09 <itidus20> MDude: hmm the details are sketchy
15:47:49 <itidus20> "<itidus20> There is a genre of video games about creating. Crayon physics, MineCraft, Terraria, Lemmings, Sim City.. i don't have an exhaustive list"
15:48:02 <itidus20> <itidus20> just as I typed this I looked in wikipedia on SimCity and found an amusing comment "In Space Quest IV, in the Software Excess Store, a game called Sim Sim is available. It is described as a "simulated simulator specially designed for creating simulated simulators" and that "you can create a simulated environment in which you can create any simulated environment you want"."
15:48:31 <itidus20> now with all these games about creating i thought, what about if you had a game about creating that could bootstrap itself.
15:49:09 <itidus20> I.... suppose thats what secondlife does >.<
15:49:24 <itidus20> but secondlife doesn't really do it in a pure way
15:49:43 <itidus20> so this is oneupmanship on secondlife
15:49:56 <MDude> It's not like you can script a little room with avatars in it.
15:50:06 <itidus20> yeah.. this is like secondlife++
15:50:27 <itidus20> minecraft was on my mind when i thought of it
15:50:49 <itidus20> but secondlife is also related in that people sort of make stuff in the game
15:51:22 <MDude> I was actually tihnking of WarioWare: D.I.Y.
15:51:33 <itidus20> ya see... i downloaded a whole bunch of game makers the other day
15:51:47 <itidus20> and so i have their limitations in my mind
15:51:53 <itidus20> cool.. i haven't tried warioware
15:52:15 <MDude> I didn't know there were that many.
15:52:16 <itidus20> i may have subconciously got the idea from warioware
15:52:38 <MDude> The scripting in it is a bit simple.
15:52:59 <MDude> Since it's made for making games that only last a few seconds.
15:53:34 <itidus20> GameMaker, M.U.G.E.N, IndieGame-Maker, RPGMaker2003, FighterMaker 95, FighterMaker 2002, Construct, Construct 2
15:53:57 <itidus20> most of them are by ASCII/Enterbrain
15:55:00 <MDude> Build Your Own Bear?
15:56:00 <itidus20> someone here mentioned it to me
15:56:03 -!- Taneb has quit (Ping timeout: 260 seconds).
15:57:21 <itidus20> So yeah.. I was thinking, what if I could build the game from within the game
15:57:22 -!- Taneb has joined.
15:57:52 <itidus20> It wouldn't surprise me if whatever you see in warioware is a hint at how nintendo operates internally
15:58:41 <Taneb> I sorta have g2g and brb backward in my mind
15:59:11 <Taneb> Like, to me, a g2g is shorter than a brb
15:59:13 <oklopol> i used to play with games factory
15:59:30 <Taneb> I tried to learn Inform 7
15:59:57 -!- Nisstyre has quit (Ping timeout: 252 seconds).
16:00:00 <oklopol> the nice thing about games factory is you don't need to learn it
16:00:18 <oklopol> you just have to not be a blind retard
16:00:44 -!- Taneb has quit (Read error: Connection reset by peer).
16:01:06 <itidus20> oklopol: i should get that too then if its free
16:01:13 -!- Taneb has joined.
16:01:33 <oklopol> i'm not sure i'd enjoy it as much nowadays
16:01:35 <Taneb> I really need a better internet connection
16:01:38 <oklopol> making that sorta games i mean
16:02:07 <oklopol> you can't really do anything that interesting with those things
16:02:54 <itidus20> so, I have a big ego.. (always an awkward statement) .. but i do.. so I like to think up these grandoise ideas
16:03:00 <itidus20> i like to keep ahead of the game
16:03:43 <itidus20> theres this new phenomenon in game AI called behaviour trees someone recently told me about
16:04:15 <oklopol> my programming related ideas are usually so gradoise they could never actually be implemented
16:04:34 <oklopol> and what are behavior trees
16:04:54 <itidus20> uhmm.. sort of a tree with scripts attached to it
16:05:32 <MDude> Is it basically case statements within case statements?
16:05:55 <itidus20> i don't know much about them... its more the structure which makes them special
16:06:16 <oklopol> to me, behavior tree sounds like a fancy way to say prescripted stuff with a few branches
16:06:16 -!- zzo38 has joined.
16:06:19 <itidus20> MDude: apparently they can be linked together in a useful way to build up complex behaviours
16:07:23 <MDude> SOunds a bit like a more controlled version of subsumption then.
16:08:50 <itidus20> anyway, i am great at independant discovery
16:09:08 <itidus20> but I can't seem to actually think of anything which hasn't been thought of before
16:09:17 <MDude> That's fine, really.
16:09:46 <itidus20> I just have a 1% divergence from how everyone else would do it
16:10:12 <MDude> Well sometimes that small divergance can make a big difference.
16:10:28 <itidus20> so its a bitter moment whenever i google an idea i got to find out who else has it
16:10:35 <Taneb> But that's chaos theory
16:10:44 <oklopol> have you considered having more detailed ideas
16:10:48 <MDude> Also, form what I know, msot experts are too concened with purity to even want to understand more than one method.
16:10:59 <zzo38> itidus20: I have heard that being called the "Bob Proffitt Principle"
16:11:57 <MDude> If you scale up data structures enough, the problems with them tend to compound themselves a lot.
16:12:25 <MDude> It depends onw hat you call a small difference, I guess.
16:12:27 <itidus20> yeah.. ideas are like trees a bit.. so .. when i get independant discoveries its like passing checkpoints
16:12:30 -!- olsner has quit (Remote host closed the connection).
16:12:34 <itidus20> telling me that i'm on the right path
16:13:40 <itidus20> by independant discovery i mean something i thought up on my own that someone else has gone to the effort of writing about on the web
16:13:48 <zzo38> And I too have sometimes came up with ideas similar to others that I did not know of yet.
16:15:16 <oklopol> most of my ideas are unprecedented
16:15:24 <oklopol> because they are so great no one else could've come up with them
16:15:29 <Taneb> Most of my ideas are stupid
16:15:34 <Taneb> And probably been done before
16:16:03 <zzo38> I have different kind of ideas. Some are good and some are stupid, some are new, some are independent but same as others, some are very similar to others I don't know of but is still a bit different.
16:16:29 <itidus20> yeah.. theres always a kind of unique tack you can have on an idea that the other person didn't
16:17:46 -!- olsner has joined.
16:19:44 <itidus20> theres always someone who would either... love to be your boss and control your genius.. or who would like to have you serving them at mcdonalds
16:20:48 <itidus20> uh.. which is good cos it balances things
16:21:05 -!- Nisstyre has joined.
16:23:16 -!- derrik has quit (Ping timeout: 264 seconds).
16:23:29 -!- pikhq has quit (Ping timeout: 240 seconds).
16:23:34 -!- pikhq has joined.
16:23:57 <itidus20> talk is cheap.. it all comes down to whether i can deliver
16:24:36 <itidus20> Well.. if i didnt get any ideas then this speech of mine would be kind of hollow
16:25:19 <oklopol> if you were talking about an idea of yours but it didn't exist, then yeah i suppose that would be kind of hollow
16:25:52 <itidus20> i independantly discovered the idea of fairy chess pieces
16:26:05 <oklopol> but you could also talk about something else and have neither ideas nor hollowness
16:26:31 <oklopol> you had the idea of adding other pieces to chess?
16:26:44 <oklopol> yeah i liked doing that when i was 7
16:27:13 <itidus20> i worked out that each piece was defined by vectors
16:27:32 <oklopol> you mean a set of allowed movements?
16:27:52 <itidus20> and i realized on my own that i could define a set of alternative allowed movements
16:27:57 <zzo38> Some of fairy chess pieces are more complicated than that, though
16:28:15 <oklopol> i probably didn't know the term vector when i was seven
16:28:31 <itidus20> i created a set of rules sufficient to explain all the pieces in regular chess
16:28:39 <oklopol> i had to come up with the idea independently
16:29:00 <oklopol> you made some kind of formal language in which you described the rules or what?
16:29:09 <oklopol> i liked doing that stuff in elementary school
16:29:14 <itidus20> uhmm.. well i used a spreadsheet
16:29:32 <itidus20> and found the variables necessary to describe a piece
16:29:51 <oklopol> isn't that called learning the rules of chess
16:30:02 <oklopol> i learned them when i was 4
16:30:17 <zzo38> There are many classes of chess pieces and some combine different ones, some in normal chess, or in others. Knight = (1,2) leaper. Rook = (1,0) rider. Queen = Rook + Bishop.
16:30:38 * oklopol tries to set a record in being an annoying asshole
16:30:40 <itidus20> anyway.. i was quite happy with my achievement.. but kinda "oh..." when i actually googled it
16:31:00 <itidus20> but... chess for me.. itself.. is not enough
16:31:15 <itidus20> i never wanted to play such a chess..
16:31:52 <itidus20> and not just by using timers on a chessboard
16:32:11 <itidus20> it needs another layer of complexity
16:32:16 <oklopol> "<itidus20> but... chess for me.. itself.. is not enough" <<< maybe because it sucks ass?
16:32:56 <itidus20> i noticed that those games called tactical rpgs are going in htat direction kinda
16:34:29 <lament> chess is kinda like go, but sucky
16:35:21 <oklopol> taking an abstract thing like chess and making it into something realtime is the opposite of an intelligent idea, chess is already way too complicated to be interesting, why would you complicate it further
16:35:34 <Taneb> And it's been done
16:35:42 <Taneb> As I said last time you brought this up
16:35:45 <oklopol> yeah we've all read harry potter
16:35:48 <itidus20> another idea i had is a piece whose movement space is defined by axis-aligned lines intersecting the enemy pieces
16:36:03 <oklopol> lemme try to understand that
16:36:35 <oklopol> so err you move like a queen, but starting from any enemy piece you like?
16:37:02 <itidus20> suppose that you drew a vertical and horizontal line through each enemy piece
16:37:14 <itidus20> and that.. these lines formed walls
16:37:39 <itidus20> and a piece who could move anywhere within the 'rooms' created by these walls
16:37:47 <oklopol> lament: is chess really like go?
16:37:57 <oklopol> because i'm not sure i want to learn go if chess is anything like it
16:39:25 <itidus20> so 1 enemy piece in the middle of the board would divide the board into 4 rooms
16:40:03 <itidus20> and these other pieces could teleport around within these 'rooms'
16:40:10 <zzo38> Chess has some similarities to go but it is a different game with many differences
16:40:24 <lament> oklopol: it's like go in that you have to use the brain a lot to win
16:40:41 <itidus20> its an idea i had when waiting at a busstop feeling overtired
16:40:44 <lament> and there's a board and pieces and turns
16:40:56 <oklopol> i guess i just never saw how one could apply the brain to chess
16:41:01 <zzo38> (Go does not even have a well-defined ending condition, actually. But once you know when to end, you can easily count points who wins is well defined)
16:41:11 <fizzie> oklopol: You just beat your opponents with the chessboard, right?
16:41:17 <lament> oklopol: it's called 'minimax'
16:41:24 <lament> (in both go and chess)
16:41:31 <oklopol> lament: i can't do that in my head
16:41:55 <zzo38> Have you learned any of the Gipf Project games?
16:42:16 <lament> oklopol: relevant depth = deeper than your opponent
16:42:22 <lament> so just find a stupid enough opponent
16:42:28 <lament> which may be difficult of course
16:42:30 <oklopol> in go, i never found it useful to minimax
16:42:37 <oklopol> but then again i suck at it so maybe i should.
16:43:46 <oklopol> i suppose if you were really really smart you could formulate some kind of plans in chess and it might become interesting
16:44:22 <itidus20> chess is a trivial subset of reality though ------ or... is.. it? :P
16:44:25 <oklopol> but i'm hundreds and hundreds of hours away from that and since playing is about as much fun as mental calculation, i don't really want to spend those hours
16:45:04 <oklopol> maybe you're just really really smart
16:45:21 <Taneb> I never figured out go
16:45:25 <itidus20> turn coal into gold if you want a tough game :P
16:45:32 <lament> it's all about proving you're better than your opponent
16:45:55 <oklopol> i like competing but only if i can cheat
16:46:02 <zzo38> There are also variants that involve chance and/or hidden information too
16:47:48 * Sgeo likes Go, but I'm bad at it
16:50:05 <oklopol> i've only played go against a computer on easy
16:50:11 <oklopol> but that was kind of pointless
16:50:18 <oklopol> because it was way too hard
16:52:56 <lament> oklopol: lying on a couch doing nothing
16:57:38 <Taneb> I was never much good at the endgame
16:59:32 <oklopol> but what i'm really bad at is the rest of the game, especially the endgame and the other parts
17:00:34 <zzo38> I also know Xiangqi and Shogi.
17:02:14 <Sgeo> I'm not good at it, but I like it
17:02:28 <Sgeo> This may be a common theme with me
17:02:56 <zzo38> Do you know Mahjong?
17:06:18 <zzo38> Mahjong is played with 4 players. Each player gets 13 tiles. On your turn you pick one from the wall, so you have 14. If you have a complete hand (four sets of three tiles, either a sequence or three of a kind, and one pair) you win, and can count points. Otherwise you must discard one.
17:06:46 <Taneb> So it's like... Rummy mixed with... breakout?
17:07:01 <zzo38> Any time one is discarded, another player can pick it up to make a set or complete their hand. Sequences can be taken only from the previous player unless you win. If you make a set by taking a discarded tile, you must reveal it.
17:07:18 <zzo38> If you have three of a kind and one more tile, you can make "kan" and pick up a spare tile.
17:07:46 <zzo38> Taneb: It is a bit like Rummy. But the tiles are really just used like cards. Nothing to do with breakout.
17:08:13 <zzo38> But there are many significant differences from Rummy.
17:08:25 <Taneb> Just like with baseball.
17:08:58 <zzo38> Is baseball anything like rummy? I don't think so.
17:09:08 <Taneb> There are many significant differences
17:09:12 <zzo38> Baseball is played with ball, not with cards!
17:09:34 <Taneb> But if you imagine the cards are like players
17:09:58 <Taneb> It makes perfect sense
17:10:32 <zzo38> I don't know how to play baseball but still it doesn't seem like the cards are like players to me
17:10:49 <zzo38> Also in mahjong, at the start you flip a dora tile. If you have the next number after that one, and you win, then you earn extra points.
17:11:24 <zzo38> If you win by self draw, all other three players pay you. If you win by someone else's discard, they have to pay you three times and the other players pay you nothing.
17:12:02 <zzo38> If you want, you can bet 1000 points to call riichi. If you called riichi, then you cannot adjust your hand anymore. But, if you win, you win extra points.
17:12:35 <zzo38> You also earn points depending on the patterns of your hand, such as all concealed, no sequences, all same suit, etc
17:13:49 -!- derrik has joined.
17:23:26 <zzo38> Or, maybe, you want to play pokemon card.
17:23:44 -!- myndzi\ has joined.
17:27:00 -!- myndzi has quit (Ping timeout: 276 seconds).
17:27:29 -!- oerjan has joined.
17:33:45 <oerjan> 06:55:30 <quintopia> what is a cirno-chan
17:33:45 <oerjan> 06:56:09 <quintopia> i know what a cirno is...she is stupidest
17:34:05 <oerjan> i think -chan is the female japanese honorific suffix similar to -san
17:34:21 <Taneb> I thought chan is diminuative
17:34:27 <Taneb> to emphasize cuteness
17:34:41 <oerjan> hm maybe. or perhaps both. pikhq?
17:36:52 <fizzie> While we're waiting for a proper human reply, here's the MACHINE GOD answer from 'pedia: "Chan (ちゃん?) is a diminutive suffix; it expresses that the speaker finds a person endearing. Thus, using chan with a superior's name would be condescending and rude. In general, chan is used for babies, young children, grandparents and teenage girls. It may also be used towards cute animals, lovers, close friends, or any youthful woman."
17:37:00 <oerjan> "In general, chan is used for babies, young children, grandparents and teenage girls. It may also be used towards cute animals, lovers, close friends, or any youthful woman.
17:37:21 <Taneb> So, I was rightish?
17:39:26 <pikhq> Taneb: Pretty much.
17:39:52 <oklopol> to what fizzie said, seems my pagedown key is wrongative atm
17:46:24 <Taneb> The wrongative of servus, -i is serves
17:53:39 <Taneb> Imagine something like Minecraft as a text adventure
17:54:24 <Taneb> >You are on a beach. You can see far out to see. To the north, there is a forest. To the east, there is a cave.
17:54:35 <zzo38> Make up like a text adventure
18:01:51 <Taneb> I don't recognize that, try "help" for help
18:01:53 <zzo38> I like text adventure game
18:02:12 <zzo38> I also like to use the rule of "overmate" when playing pokemon card
18:08:04 -!- CakeProphet has quit (Ping timeout: 246 seconds).
18:09:34 -!- CakeProphet has joined.
18:09:34 -!- CakeProphet has quit (Changing host).
18:09:34 -!- CakeProphet has joined.
18:13:36 <zzo38> Can you make a chess variant that as well as the normal chess pieces, there are also hourglasses (with different lengths of time) movable on the board?
18:14:19 -!- MigoMipo has joined.
18:14:56 <Taneb> The hourglasses move like queens until they run out, when they are taken off the board
18:15:29 <Taneb> Checking your opponent turns all their hourglasses over
18:15:36 <Taneb> With that idea I dissappear
18:15:41 -!- Taneb has quit (Quit: He's a big quitter he is.).
18:21:05 -!- CakeProphet has quit (Ping timeout: 240 seconds).
18:23:14 -!- CakeProphet has joined.
18:23:14 -!- CakeProphet has quit (Changing host).
18:23:14 -!- CakeProphet has joined.
18:28:06 -!- Taneb has joined.
18:28:38 <Taneb> That vowels language that has been mysteriously added to the language list from an anonymous user seems kind of boring
18:32:41 <oklopol> how do you add a language mysteriously?
18:34:05 <oerjan> you need to follow the untrodden path of the lost elders
18:34:25 <MDude> Or add a link that goes to a blank page.
18:35:53 -!- Taneb has quit (Ping timeout: 260 seconds).
18:37:22 -!- pumpkin has joined.
18:37:56 -!- pumpkin has changed nick to copumpkin_.
18:38:05 -!- CakeProphet has quit (Ping timeout: 258 seconds).
18:40:00 -!- copumpkin has quit (Ping timeout: 258 seconds).
18:40:08 -!- copumpkin_ has changed nick to copumpkin.
18:52:39 -!- derrik has quit (Quit: gone).
18:57:29 -!- pumpkin has joined.
18:58:28 -!- pikhq_ has joined.
18:58:40 -!- pikhq has quit (Ping timeout: 264 seconds).
18:59:16 -!- copumpkin has quit (Ping timeout: 264 seconds).
19:17:39 -!- pikhq has joined.
19:19:03 -!- pikhq_ has quit (Ping timeout: 252 seconds).
19:19:23 -!- monqy has joined.
19:23:28 -!- copumpkin has joined.
19:25:28 -!- pumpkin has quit (Ping timeout: 260 seconds).
19:44:21 -!- evincar has joined.
19:47:11 -!- evincar has quit (Client Quit).
20:03:30 -!- BeholdMyGlory has joined.
20:03:33 -!- pumpkin has joined.
20:06:54 -!- copumpkin has quit (Ping timeout: 250 seconds).
20:08:43 <oklopol> how do you add a language mysteriously?
20:09:51 <fizzie> How do you shot web, isn't that what they ask?
20:19:02 -!- Taneb has joined.
20:20:59 <oklopol> and another line from fizzie
20:21:07 <oklopol> Taneb joining in with an insult
20:22:15 <fizzie> You sound like one of those sports announcers.
20:29:08 <zzo38> Is there any program I can learn how to make compiling rulebooks like Inform 7 does?
20:30:42 <Taneb> Not as far as I know
20:40:06 <zzo38> Do you know anything about compiling rulebooks like that?
20:40:35 <Taneb> I have a vague idea how they work
20:41:45 <zzo38> How much idea do you have?
20:42:11 <Taneb> They're a series of translations
20:44:10 <Taneb> Like "Go north" becomes "change state to current state(x), current state(y)+1
20:44:41 <zzo38> There are also procedural rulebooks (a feature which is marked as deprecated)
20:50:02 <zzo38> I read the document, you can use procedural rulebooks to have conditions to ignore or override other rules, and so on.
20:50:07 <zzo38> How would such things be implemented?
20:51:10 <oklopol> are you asking how to make a programming language
20:51:23 <oklopol> that's not very hard, but it's rather hard to explain how to do it
20:53:30 <zzo38> Not quite. I am asking about other specific things, such as procedural rulebooks. And, some way of converting them to imperative form.
20:54:00 <oerjan> i would imagine zzo38 knows how to make a programming language...
20:55:01 <zzo38> I know how to make programming language, in various ways. I even have books about it. But it is not quite what I am asking.
20:55:06 <oerjan> otherwise large parts of the wiki would seem rather unexplainable.
20:55:15 <zzo38> (I even invented many programming languages for various uses)
20:57:38 <oklopol> well yeah i guess if you want to make a rule programming language in a specific genre, it's not that obvious how to do it.
21:00:14 <zzo38> That is why I ask.
21:03:20 <Taneb> Is there a word for a language that is of a lower computational class to another, but has more features such as networking or file I/O
21:03:21 <zzo38> I would like to figure out how to make one that has not only rulebooks but other features too, and also can be used as a module in a larger program with other programming languages, and has templates and preprocessor, and is also a format that TeXnicard can produce as output.
21:05:04 <Taneb> That's an example rather than a word
21:21:13 <lament> the word is 'fragnlium'
21:27:35 -!- copumpkin has joined.
21:29:13 -!- pumpkin has quit (Ping timeout: 252 seconds).
21:38:54 -!- BeholdMyGlory has quit (Remote host closed the connection).
21:47:26 -!- Taneb has quit (Read error: Connection reset by peer).
22:24:40 -!- pumpkin has joined.
22:27:28 -!- copumpkin has quit (Ping timeout: 264 seconds).
22:29:27 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:34:40 -!- copumpkin has joined.
22:37:15 -!- pumpkin has quit (Ping timeout: 276 seconds).
23:09:54 <Vorpal> <Taneb> Is there a word for a language that is of a lower computational class to another, but has more features such as networking or file I/O <-- C vs. P'', C is not TC
23:10:05 <Vorpal> no idea about a name for it
23:12:23 <Sgeo> A feature request I made is getting attention
23:12:29 <Sgeo> But... I made it in 2004
23:12:30 <Sgeo> http://sourceforge.net/tracker/?func=detail&atid=353248&aid=930097&group_id=3248
23:13:59 <oerjan> conclusion: Sgeo lives not only in the past, but sometimes in the future
23:15:26 -!- GreaseMonkey has joined.
23:27:59 -!- oerjan has quit (Quit: Good night).
23:32:32 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:49:59 -!- CakeProphet has joined.
23:50:03 -!- CakeProphet has quit (Changing host).
23:50:03 -!- CakeProphet has joined.
23:59:50 -!- FireFly has quit (Quit: swatted to death).
00:00:36 -!- BeholdMyGlory has joined.
00:02:45 -!- elliott has joined.
00:03:07 <zzo38> Does programming include art? Someone asked that question when programming NES game
00:03:21 <zzo38> http://i.imgur.com/UBm5K.png
00:05:00 -!- Patashu has joined.
00:07:56 <angstrom> zzo38: http://benfry.com/distellamap/
00:13:31 <elliott> 15:13:08: <itidus20> the idea is directed towards game development.. but let me explain in the context of say, visual basic
00:13:57 <monqy> oh dear what happened
00:14:42 <elliott> 15:31:27: <oklopol> THE MOUSE JUST MOVED TO (620, 39), WOULD YOU LIKE TO ADD AN EVENT FOR THIS
00:14:57 <elliott> oklopol: the mouse just clicked the "edit mouse-click event" button, would you like to add an event for this
00:21:28 <elliott> 16:19:44: <itidus20> theres always someone who would either... love to be your boss and control your genius.. or who would like to have you serving them at mcdonalds
00:21:28 <elliott> 16:20:48: <itidus20> uh.. which is good cos it balances things
00:23:47 <elliott> `addquote <Taneb> So it's like... Rummy mixed with... breakout?
00:23:50 <HackEgo> 554) <Taneb> So it's like... Rummy mixed with... breakout?
00:24:18 <monqy> im imagining a person seeing another person and thinking 'i would really like this person serving me at mcdonalds'
00:24:37 <monqy> im sure this happens all the time
00:24:48 <monqy> i wonder if anyone has ever thought this about me...
00:51:37 * pikhq has been working on some scripts to scrape the Gatherer database.
00:51:53 <pikhq> This is made worse by it apparently being at least somewhat freeform.
00:54:06 <Sgeo> How did the Magic app I used to have on my phone have all the cards?
00:54:29 <Sgeo> Is there a pre-existing computer-easily-accessible database somewhere maybe?
00:54:49 <Sgeo> That you can get to, I mean
00:55:30 <pikhq> No idea, but WotC seems to make that *hard*.
01:04:14 <Sgeo> Hmm. Magic Workshop's knowledge of the cards has to come from somewhere
01:04:30 <Sgeo> Erm, Magic Workstation
01:05:15 <Sgeo> http://www.slightlymagic.net/software/mws/5-mtg-masterbase ?
01:07:25 <zzo38> I did once write a script to select random records from the Magic: the Gathering cards database, selected as a booster pack and then prints out copies of fifteen random cards.
01:07:43 <zzo38> But it doesn't work now.
01:10:40 <zzo38> But I have the idea eventually I should have TeXnicard include the feature to create such databases.
01:11:56 -!- zzo38 has quit (Remote host closed the connection).
01:31:32 <elliott> http://www.emailintervention.com/ using things other than gmail: an unacceptable situation
01:37:37 -!- CakeProphet has quit (Read error: Connection reset by peer).
01:54:07 <coppro> I AM A SOCIAL ENGINEER
01:54:17 <coppro> pikhq: yawgatog has done this already
01:57:23 <elliott> <coppro> I AM A SOCIAL ENGINEER
01:58:38 <coppro> elliott: see blognomic
01:58:45 <coppro> elliott: I'm totally manipulating people
01:58:52 <coppro> (although it's not obvious)
02:06:20 <pikhq> coppro: Insufficiently well.
02:06:33 <pikhq> coppro: I want the entire database.
02:06:53 <pikhq> Flavor text, card images, set legalities, whole 9 yards.
02:07:40 <coppro> pikhq: Datatog has all but the images
02:07:56 <coppro> oh and written text I think
02:08:03 <elliott> coppro: blognomic is boring
02:08:17 <coppro> oh right you're not in ##nomic
02:08:29 <coppro> I want to make a better ruleset for Gamma because the previous one isn't happening
02:08:53 <elliott> i dislike that name so WHO CARES
02:09:25 <coppro> elliott: we will have demands for adjudications, or DFAs
02:09:30 <coppro> with many computer science puns
02:09:36 <coppro> and players shall OBEY the rules and ADJUDICATE questions
02:10:15 <pikhq> coppro: The end goal is to get a much nicer Magic search engine than Gatherer.
02:10:38 <coppro> pikhq: magiccards.info?
02:11:20 <elliott> pikhq: make it a @ database
02:11:27 -!- evincar has joined.
02:11:44 <elliott> pikhq: oh, I have to do /all/ the work, do I?
02:11:57 <evincar> elliott: You have to do it now. pikhq told you to.
02:12:10 <evincar> And he's some kind of authority or something.
02:15:50 <elliott> newtype MyMonad a = MyMonad (StateT MyState (ReaderT Options (ErrorT MyException (WriterT [String] IO))) a)
02:15:50 <elliott> deriving (Functor, Monad, MonadReader Options, MonadState MyState, MonadError MyException, MonadWriter [String])
02:16:28 <pikhq> ... StateReaderErrorWriterIO? *What*.
02:18:46 <elliott> i like how all those are completely redundant
02:19:00 <elliott> IO encompasses all of them
02:19:07 <elliott> newtype MyMonad a = MyMonad (IO a)
02:22:07 * elliott wonders where this package would go would go
02:42:04 <evincar> Sigh. Typesetting is wrong.
02:42:29 <evincar> I want my digital typesetting to behave more like lead.
02:54:19 -!- invariable has quit (Read error: Connection reset by peer).
02:55:03 -!- invariable has joined.
02:55:05 -!- invariable has quit (Changing host).
02:55:05 -!- invariable has joined.
03:02:57 <evincar> Vorpal: EVEN MORE LIKE LEAD
03:03:25 <evincar> Without, y'know, actually being lead. Getting solder burns is bad enough.
03:03:57 <evincar> Oh, I'm just frustrated with the poor state of web typography, as usual.
03:04:05 <evincar> It's gotten better lately.
03:04:37 <Vorpal> elliott, so nothing wrong with TeX then?
03:05:19 <evincar> And that's all he has to say about that. Fullstop.
03:05:56 <evincar> The only thing that I really miss in (La)TeX is namespaces.
03:12:42 <evincar> You don't run into it all that often, but occasionally you want to use a couple of conflicting packages and you're just plain out of luck.
03:18:59 -!- MDude has changed nick to MSleep.
03:25:13 <evincar> Esolang: antiduck typing. When it sees a bird that walks like a duck and swims like a duck and quacks like a duck, it assumes that the bird is a terrorist.
03:27:37 <evincar> GreaseMonkey: I guess it would actually assume that all things behave rather like NaN.
03:39:38 <pikhq> Sadly, Knuth is an old man.
03:40:48 <evincar> You don't know he's an old man sadly. He could be an old man happily.
03:41:16 <evincar> I doubt most would, though.
03:41:28 <evincar> I know I don't plan on getting old.
03:41:34 <evincar> More specifically, I plan on not getting old.
03:42:48 <coppro> I retain low confidence about TAOCP being finished
03:44:04 <pikhq> evincar: Ah, so you're planning based on the assumption that immortality will be invented in your lifetime?
03:44:05 <evincar> I'm skeptical but optimistic, I guess.
03:44:23 <evincar> pikhq: That, or necromancy.
03:44:45 <pikhq> coppro: Perhaps if we give Knuth a pointer to fork().
03:45:04 <evincar> I don't suppose undying would be any more unpleasant than being born.
03:46:27 <evincar> Also, the invention of necromancy might bring about a zombie apocalypse, which would be a thoroughly entertaining period of history to live through.
03:47:06 <coppro> He estimates Vol 5 to be published in 2020
03:48:18 <coppro> and has Vol 6 and Vol 7 plans too... right
03:49:56 <evincar> Meh. Plan as though you'll live forever, live as though you'll die today.
03:52:18 -!- copumpkin has joined.
03:55:29 <coppro> I also wish that he would publish the newer editions of Vols. 1, 2, and 3 before finishing 5
03:55:45 <evincar> Esolang: one without object permanence, so it's consistently surprised when objects that were hidden from view become visible again.
03:56:29 <evincar> Implementing "surprise" naturally being the interesting bit.
04:14:20 <elliott> <evincar> The only thing that I really miss in (La)TeX is namespaces.
04:14:25 <elliott> latex makes me sad (a little) :(
04:19:22 <evincar> Is the only reason we can't make strong AI that we can't define intelligence?
04:19:56 <evincar> Because I feel like a working definition would be fine provided the thing could incrementally improve it.
04:20:45 <pikhq> evincar: Actually, it's more probable that the only reason we can't make strong AI is that we're a handful of orders of magnitude off.
04:20:59 <pikhq> No worries though, that's just a handful of years.
04:21:08 <elliott> no, the reason we can't make strong ai is that we're not any good at ai.
04:22:31 <evincar> Well, it is always most difficult to define in precise terms those things which are intuitively obvious.
04:22:52 <elliott> isn't it just difficult to define things in precise terms full stop
04:23:06 <evincar> Perhaps because language isn't precise.
04:23:18 <elliott> Lojban isn't precise either.
04:23:52 <Sgeo> I remember reading someone talking about Lojban say that a perfectly precise language would have some cases where sentences blow up
04:23:58 <Sgeo> Anyone know what that's talking about?
04:24:17 <elliott> propositional logic statements are pretty verbose I guess?
04:24:49 <evincar> Sgeo: I would assume it means that meaning is dependent on context, and context is unbounded, so a sentence can grow unbounded.
04:25:23 <evincar> It's like a fractal. It has a finite amount of meaning, but an infinite perimeter of potential precision.
04:30:42 <elliott> "While you do that he’s going to go get his horse. It rained last night, so he suspects he will have to redraw the horse’s angry eyebrows."
04:31:29 -!- derrik has joined.
04:35:18 <evincar> The unforgivable crime of being mudcrabs.
04:36:07 <elliott> Reference humour: thought by experts to be the only kind.
04:37:15 <elliott> (Now I'm wondering whether evincar has brought the total of Prequel readers in here to at least three, or whether he just has a computer with access to Go Ogle dot Com Internet Search.)
04:37:21 <elliott> (One day I will access Go Ogle. One day.)
04:37:45 <monqy> rich on fame and donations
04:38:23 <elliott> Fame is the best currency (bitcoins are the second best (wood is the third)).
04:38:42 <evincar> elliott: I went and ogled but I was aware of Something Awful and MS Paint Adventures and read Homestuck, so it wasn't a far shot.
04:39:09 <evincar> Besides, I've played some of the Elder Scrolls series as well.
04:39:14 <monqy> whats something awful
04:39:21 <evincar> So it's relevant to my...well, not my interests, but y'know.
04:39:23 <elliott> monqy: something awful (<-- LOOK HOW HILARIOUS I AM)
04:39:33 <elliott> evincar: OK this channel's number of Homestuck readers is officially statistically unlikely.
04:39:50 <elliott> There's... at least eight.
04:40:06 <monqy> evincar: am I supposed to do an image search for that or something
04:40:19 <evincar> monqy: Whatever floats your boat, sicko.
04:40:44 <elliott> I like how the first results are all waffles photoshopped to be blue.
04:41:14 <evincar> elliott: Those are posted on imgur and such for a reason.
04:41:34 <elliott> To protect the innocent minds of children?
04:42:37 <monqy> get bored of looking at blue waffles, narrowly avoid looking at blue waffles
04:42:38 <Sgeo> elliott, at least 1 is a Homestuck reader because of other Homestuck readers in this channel
04:43:18 <elliott> Sgeo: OK fine, six. Oh, wait, CakeProphet too.
04:43:25 <elliott> Depending on whether you suck or not.
04:48:07 <itidus20> So, I heard you like mudcrabs.
04:48:32 <evincar> Only the profitable intelligent merchant ones.
04:48:58 * Sgeo still has no idea what Prequel is
04:49:28 <elliott> Sgeo: http://prequeladventure.com/2011/03/prequel-begin/
04:49:31 <pikhq> On the other end of a document from the Postquel, of course.
04:49:46 <itidus20> Prequal/Prefix .. I see.. the Pre- is where the sense of past comes from
04:50:16 <itidus20> now Sequal Suffix both begin with 's'. Time to put on the overcoat and go investigating.
04:51:04 <elliott> Sgeo: Also I order you to read it, since that seems to generally be how reading things gets initiated in Sgeoland.
04:51:40 <Sgeo> I started reading D.M. Brook's The Necessity of Atheism
04:51:43 <Sgeo> Now regretting it
04:51:56 <elliott> Stop reading things I didn't tell you to, then.
04:52:16 <evincar> itidus20: Sequel is from sequelus, from sequi (follow). Suffix is from sub + figere (to fix).
04:52:26 <Sgeo> Among the things stated is a bit talking about how in the time of Columbus, people thought the world was flat, or something
04:52:32 <itidus20> Sequel: early 15th century., "train of followers," from Old French sequelle, from Late Latin sequela "that which follows, result, consequence," from sequi "to follow"
04:53:00 <evincar> Oh fine. s/sequelus/sequela/.
04:53:05 <itidus20> evincar: our etymological sources may appear to conflict but im sure they don't
04:53:17 <Sgeo> "When Christianity sprang into existence Eusebius, St. John Chrysostom, and Cosmos evolved a complete description of the earth. They considered the earth as a parallelogram, flat, and surrounded by four seas, as a kind of house, with heaven as its upper story and the earth as its ground floor. To the north of the earth was a great mountain; at night the sun was pushed into a pit and pulled out again in the morning, with heaven as a loft and h
04:53:17 <Sgeo> ell as a cellar. In the Atlantic Ocean, at some unknown distance from Europe, was one of the openings into hell, into which a ship sailing to this point, would tumble. The terror of this conception was one of the chief obstacles of the great voyage of Columbus."
04:53:31 <elliott> great voyage of columbus lol
04:53:37 <itidus20> but well.. you were twice as fast as me :o i forgot about suffix
04:53:53 <pikhq> Could've sworn that a round Earth was well-estabilished by the Greeks.
04:54:09 <itidus20> evincar: i see that sequel is clearly related to sequence then..
04:54:13 <Sgeo> Was this myth believed in the 1930s? That Columbus's contemporaries thought the Earth was flat?
04:54:17 <evincar> pikhq: It was well-established long before then, independently by various groups, including the Celts during the Bronze Age. :P
04:54:30 <elliott> everything is the fault of religion and all explorers are white men
04:54:33 <elliott> join me next time for more atheism facts
04:54:36 <Sgeo> pikhq, well, part of what this book is saying is that Christianity regressed science
04:54:50 <Sgeo> "The difficulties that beset Columbus are well known. How he was hounded both in Portugal and in Spain by the clergy; and even after his discovery of America, the Papacy still maintained its theory of the flatness of the earth and the nonsense of the antipodes"
04:54:51 -!- pikhq_ has joined.
04:55:00 <Sgeo> pikhq_, read logs
04:55:12 <elliott> why are you reading this book, you should stop because terrible
04:55:18 <Sgeo> elliott, I did stop
04:55:23 <Sgeo> Exactly because of this
04:55:32 <Sgeo> But it was quite a way in
04:55:35 <pikhq_> 22:53 < pikhq> Could've sworn that a round Earth was well-estabilished by the Greeks.
04:55:37 <pikhq_> 22:53 < pikhq> Before the claimed time of Jesus.
04:55:40 <pikhq_> 22:53 < pikhq> And not exactly *forgotten*.
04:56:11 <Sgeo> I think this book already permiated my brain excessively
04:56:18 <pikhq_> IIRC, Columbus' whole deal was that he thought the Earth was smaller, and that he could easily get to Asia.
04:56:22 <elliott> do you just believe everything you read
04:56:24 <pikhq_> And he was wrong, but got damned lucky.
04:56:29 <elliott> because i've got a book called the bible for you
04:56:31 <itidus20> Sgeo: then what you need to do is counter-permeate it with more things
04:57:10 <evincar> I'm not even sure what the big deal is with Columbus. He didn't even make it to the mainland, right?
04:57:11 <itidus20> Sgeo: generalizations about history are always wrong.
04:57:52 <pikhq_> evincar: His findings encouraged further exploration by Spain.
04:57:59 <elliott> evincar: No, but he was white, male, and Catholic, so who cares?
04:58:39 <elliott> He'd be a hero if he just paddled around a bit off the shore and killed a few savages.
04:58:40 -!- pikhq has quit (Ping timeout: 264 seconds).
04:59:12 <itidus20> elliott: so i tried gimp.. at this stage i may as well just uninstall artweaver
04:59:37 <elliott> the gimp's interface can be a bit awkward but it's great
04:59:47 <itidus20> the pen tablet interface is perfect
05:00:04 <itidus20> i knew gimp had support for it
05:00:04 <evincar> I love it for batch image processing.
05:00:35 <pikhq_> Also, Columbus *did* find the mainland. Right around Panama.
05:00:40 <elliott> the gimp's animated stuff is also a bit awkward, im not sure who decided frame <-> layer was a good idea, but oh well, it works
05:01:08 <elliott> evincar: I bet that's going to get replaced what with the GEGL stuff
05:01:08 <evincar> elliott: Yeah, that's always bothered me a little bit. Also no layer groups. :(
05:01:54 <elliott> Well, GEGL has bindings to several languages, but none of them is a Schemeoid.
05:02:03 <elliott> Also, I have an irrational hate of the GIMP's Scheme stuff because I couldn't get the same Scheme library it uses to do my bidding in mcmap.
05:02:19 <elliott> (I think Tiny-Fu is the one used nowadays and it uses TinyScheme, who's API is lacklustre.)
05:02:36 <elliott> I'm never going to be able to stop doing this [asterisk] thing
05:02:41 <elliott> stop suffering now Sarah the witch is here to help +2773 400 6132
05:04:46 <Sgeo> pikhq_, was it generally believed, in the 1930s or so, etc. about Columbus?
05:04:55 <Sgeo> In that case, it's almost understandable
05:05:07 <elliott> Understandable does not acceptable make.
05:05:08 <pikhq_> Sgeo: It's been a running myth for centuries.
05:05:29 <elliott> If you're basing an argument on something, and it's patently untrue, it doesn't matter whether it's a common misconception or not.
05:05:35 <elliott> Especially if you're arguing on the basis of being oh-so-rational.
05:06:21 <Sgeo> I did say almost
05:06:49 <pikhq_> Ah. Seems it wasn't that Columbus underestimated the size of the world, he overestimated the size of Eurasia.
05:07:22 <Sgeo> And I meant "generally believed" as in, believed by educated people
05:07:34 <Sgeo> Like an age of the Earth that's a bit too young
05:07:45 <Sgeo> (Which is also in there, but completely understandable, imo)
05:08:18 <pikhq_> *That* would actually be entirely excusable. Science marches on.
05:09:31 <evincar> elliott: Proto-Indo-Europeance?
05:09:56 <Sgeo> pikhq_, but a diligent researcher in the 1920s or so would discover that the Columbus thing is a myth?
05:09:58 <evincar> (Typesetting irk: first hyphen should probably be an en-dash. Probably.)
05:10:29 <elliott> evincar: I can't reply because I'm too busy pointing at your next line and yelling hysterically "look at this fucking hipster".
05:11:32 <Sgeo> pikhq_, well, that pretty much throws the rest of the book in question, I think
05:11:35 <elliott> I might even start cackling.
05:12:19 <evincar> elliott: Typography isn't one of those things that's traditionally seen as a hipster thing.
05:12:36 <evincar> That sentence had so many "thing"s that I almost used a "da kine".
05:13:30 <elliott> evincar: Please tell me you're actually offended.
05:14:10 <evincar> elliott: I don't usually get offended. You'll have to do better than that.
05:14:26 <elliott> evincar: You... are... a... BEDWETTER.
05:14:39 <evincar> Example of something that offends and sickens me: abstinence from sex on religious grounds.
05:15:03 <elliott> That's pretty hypocritical, isn't it?
05:15:26 <evincar> (I will have sex on religious grounds all I please! Churchyard! Graveyard! None shall be spared!)
05:15:36 <Sgeo> http://www.goodreads.com/topic/show/619195-columbus
05:15:50 <evincar> I find it disturbing that a human wouldn't mate.
05:15:58 <evincar> Unless they're asexual or something.
05:16:11 <elliott> evincar: So people aren't allowed to make their own decisions?
05:16:17 <elliott> Sounds pretty fuckin' moralising to me.
05:16:31 <evincar> Oh, sure, they're allowed to make their own decisions, and if it works in their lives, good for them.
05:16:35 <evincar> I'm allowed to find it disturbing.
05:17:02 <elliott> How on earth is it disturbing to choose not to have sex? Big deal, I'm sure plenty of people also choose not to eat fast food, or not to wear socks, or...
05:17:07 <evincar> Largely because it probably isn't their decision.
05:17:16 <evincar> In cases where it is, I find it far less objectionable.
05:17:37 <elliott> Oppose abstinence-only education or whatever, don't oppose people doing things because of their religious beliefs
05:17:57 <evincar> I just don't understand or endorse them.
05:18:38 <evincar> I'm afraid of the idea of being indoctrinated to such a degree that I would make what I believe to be a conscious decision to refrain from a natural process in which I would otherwise have engaged, without being aware that it is actually not my decision.
05:19:11 <elliott> How do you distinguish a situation where you do something, thinking it's your decision, but it isn't actually; and a situation where you do something and it is your actual decision?
05:19:59 <elliott> <evincar> I'm afraid of the idea of being indoctrinated to such a degree that I would make what I believe to be a conscious decision to refrain from a natural process in which I would otherwise have engaged, without being aware that it is actually not my decision.
05:20:17 <evincar> > Largely because it probably isn't their decision.
05:20:18 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
05:20:18 <Sgeo> I think it's a sad choice, and the belief itself is sad, but still their choice
05:20:27 <pikhq_> elliott: One can be offended by something without thinking it should be stopped.
05:21:08 <evincar> The converse is that I'm not really offended by some things I think ought to be stopped, such as racism.
05:21:13 <Sgeo> Well, sad reason to make the choice
05:21:21 <elliott> Sgeo: For god's sake, it's not a sad choice to do what you want. And sex is like the least important thing because it affects nobody else and usually isn't even reproductive nowadays.
05:22:05 <pikhq_> I'm only offended by shoving the religious abstinence on others, myself.
05:22:10 <lament> when sex doesn't affect anyone else it's called something else
05:22:14 <Sgeo> Well, if someone desires to have sex, yet forces themself not to, not because they don't want to, but because they think it's "wrong", I think that's sad
05:22:30 <evincar> Sgeo: That's the specific situation that bothers me most.
05:22:38 <elliott> pikhq_: Sure, of course I object to that, but that's an entirely different thing.
05:24:59 <evincar> Anyway, this isn't a productive topic.
05:25:10 <pikhq_> Let us discuss productivity tools.
05:25:34 <evincar> That will lead us to programming languages, methinks.
05:25:55 <pikhq_> No, no, no, not Enterprise enough.
05:26:25 <elliott> Ugh, not this annoying kind of headache.
05:29:56 <evincar> Looks like it didn't take.
05:30:11 <evincar> To be honest, my favourite productivity tools are whiteboards, tea, long walks, and showers.
05:30:26 <pikhq_> My favorites are nothing.
05:30:56 <evincar> Then you should get better favourites, if they're so worthless.
05:32:31 <Sgeo> Maybe Brooks isn't saying Columbus's contemporaries believed in a flat Earth. Ok, I think I'm turining into the equivalent of one of those people who make excuses for the Bible
05:32:48 <Sgeo> "the Papacy still maintained its theory of the flatness of the earth and the nonsense of the antipodes."
05:33:01 <Sgeo> How does one both believe that the Earth is flat and the.. oh n/m
05:33:14 * Sgeo glares angrily at Brooks
05:33:55 <elliott> Sgeo: I thought you stopped reading that.
05:34:07 <pikhq_> Sgeo: This was never Catholic doctrine.
05:34:24 <pikhq_> They've got enough stupid doctrine without putting words in their mouths.
05:34:45 <Sgeo> I was just thinking to myself "Wait, antipodes and flat earth sound antithetical, and I distinctly remember 'antipodes', so maybe Brooks didn't say flat Earth"
05:34:53 <Sgeo> Then I looked at it again
05:35:40 <elliott> maybe it was just the theory of THE FLATNESS
05:36:29 <evincar> If Jesus could see the Catholic church...with a name like that, you'd think it might actually be, you know, catholic. For the people. Not bathed in obscene wealth.
05:36:59 <evincar> I might just start waving Jefferson Bibles around.
05:37:16 -!- TeruFSX2 has joined.
05:37:35 <evincar> It's more Christian to preach than what most Christians do.
05:38:04 <elliott> source for catholic meaning "for the people" kthx
05:38:14 <Sgeo> I thought Catholic meant universal?
05:38:28 -!- TeruFSX has quit (Ping timeout: 276 seconds).
05:38:32 <elliott> it does, or well, "whole", "all-encompassing", etc.
05:38:41 <evincar> I didn't equate them. I was elaborating.
05:38:49 <lament> fun fact: the orthodox church's full name is orthodox catholic church
05:39:00 <elliott> evincar: so in what manner is the Catholic Church not catholic
05:39:44 <elliott> lament: that fact wasn't fun at all :(
05:40:02 <pikhq_> lament: Fun fact: there's not a "the Orthodox church".
05:40:20 <elliott> The Orthodox Church, also officially called the Orthodox Catholic Church [note 1] and commonly referred to as the Eastern Orthodox Church
05:40:37 <lament> pikhq_: fun fact: you're stupid and wrong
05:40:41 <pikhq_> God damn upstarts claiming primacy.
05:41:46 <evincar> elliott: Catholicism isn't very universalist, that's all.
05:41:53 <evincar> Hardly love-thy-neighbour.
05:42:00 <elliott> all-encompassing doesn't really mean Universalist :-P
05:42:16 <elliott> it could easily just mean that "encompassing all the true beliefs", which I am sure is Catholic doctrine
05:42:47 <pikhq_> evincar: Meh, the whole fire and brimstone thing isn't, either. And that's a basic premise of Christianity.
05:42:55 <evincar> "It was first used to describe the Christian Church in the early 2nd century to emphasize its universal scope." --Wikipedia, "Catholic".
05:43:07 <elliott> right, so it is the church to which everyone should be a member
05:43:23 <evincar> pikhq_: Well, Old Testament. But Jesus specifically invalidated a lot of that.
05:43:47 <pikhq_> evincar: It's still a basic premise that you either believe in Jesus or suffer eternal torment.
05:43:50 <Sgeo> evincar, Hell is NT. Psychotic earthly punishments are OT
05:43:56 <evincar> elliott: Universal links to "Universalism" though.
05:44:17 <elliott> (Yeah yeah I rebutted pikhq_ with Wikipedia shaddup.)
05:44:57 <evincar> Yeah, it feels a little dirty citing Wikipedia as a source...
05:45:02 <itidus20> does punishment imply a self being punished?
05:45:12 <evincar> Maybe I'm just trained to feel that way by writing papers.
05:45:26 <elliott> Wikipedia is a good resource, but one word being linked without any citation hardly means much
05:45:38 <evincar> Anyway, there is no hell so bad that a human wouldn't fetishise it, and no heaven so great that a human wouldn't grow bored of it.
05:45:54 <Sgeo> evincar, are you quoting SMBC?
05:45:56 <itidus20> so then.. the question is.. what is the nature of the self .. how does it visit heavens and hells... and.. is the question simply too much for a man
05:46:04 <evincar> Sgeo: Paraphrasing, if anything.
05:46:15 <pikhq_> evincar: Christianity disagrees.
05:46:22 <elliott> the "heaven has to suck" thing seems kinda stupid
05:46:31 * Sgeo agrees with elliott
05:46:40 <elliott> Obviously the naive view of heaven sucks
05:46:44 <evincar> Unfortunately, Christianity specifically invalidates my argument by saying you're no longer human after death.
05:46:48 <Sgeo> I can imagine a Heaven that I'd love
05:46:51 <elliott> And maybe it's very hard to define a non-sucky heaven
05:46:55 <Sgeo> elliott, there' a naive view of heaven?
05:47:02 <itidus20> evincar: i believe buddha is supposed to have said something like that
05:47:03 <evincar> You change in such a way that you delight in God's presence or suffer in fire and brimstone, fullstop.
05:47:10 <elliott> Sgeo: "Everything is perfect bliss forever"
05:47:16 <Sgeo> elliott, I think PI's world is _almost_ heaven, with some flaws, like being unable to die
05:47:31 <pikhq_> evincar: And this psychotic level of mind-alteration is considered "good".
05:47:46 <pikhq_> Sgeo: Uh, did you *read* that book?
05:47:47 <elliott> Or, well, feel free to go off into PI's world if you want, but it isn't even close to heavenly.
05:48:12 <evincar> As someone who doesn't believe in an afterlife, I'm much more afraid of losing loved ones than of dying myself.
05:48:31 <evincar> And yet isn't an afterlife supposed to be a salve for the thought of personal death?
05:48:34 <itidus20> evincar: you've already lost loved ones.. it can't get any worse :>
05:48:42 <elliott> surely death of loved ones too
05:48:49 <pikhq_> Well, yes, that's quite sensible. You were dead for billions of years and didn't suffer the slightest inconvenience.
05:48:52 <elliott> itidus20: how do you know he has
05:49:03 <evincar> itidus20: No one I've loved has yet died.
05:49:15 <pikhq_> You'll be dead once more, and no doubt not be inconvenienced then.
05:49:27 <Sgeo> So far, no one I've loved has died out of the blue
05:49:34 <evincar> pikhq_: Unborn ≠ dead, just like alive ≠ undead.
05:49:47 <Sgeo> As in, alive and well one day, dead the next
05:49:59 <elliott> I don't see why unborn =/= dead, but obviously it's perfectly fine to be scared of death.
05:50:28 <pikhq_> evincar: Don't tell my zombie minions that, they'll never listen to me again if they don't have fear of death.
05:50:31 <elliott> And god this headache is horrible.
05:50:55 <elliott> Hey does anyone know a decent extension language library.
05:50:55 <pikhq_> elliott: Have you considered drinking away your problems?
05:51:01 <evincar> pikhq_: I don't know enough about necromancy to inform you on the nature of redeath. :P
05:51:28 <evincar> elliott: Drinking away your problems with caffeine would probably help, actually.
05:51:57 <evincar> Oh, I'm working on a language for that.
05:52:00 <elliott> Hard to sleep with a headache.
05:52:20 <elliott> <elliott> Hey does anyone know a decent extension language library.
05:52:40 <lament> <elliott> <elliott> Hey does anyone know a decent extension language library.
05:52:41 <evincar> elliott: Not one that exists yet, I guess would be my answer then.
05:52:52 <elliott> <lament> <elliott> <elliott> Hey does anyone know a decent extension language library.
05:53:05 <lament> <elliott> <lament> <elliott> <elliott> Hey
05:53:27 <itidus20> evincar: in daily experience we first hear about death secondhand. in conversation or on tv. rather, we learn the word death before we experience it, in general.
05:53:51 <itidus20> sooner or later someone we know dies.. but generally it's someone elses loved one. that much is true.
05:54:16 <itidus20> and gradually we piece together the logic that all die
05:55:02 <itidus20> and that life can end at any time.. that death doesn't "wait" for people to finish their business
05:55:06 <evincar> I dunno, I still might try to pull a Voldemort.
05:55:34 <itidus20> so.. this anthropomorphic death doesn't wait
05:55:45 <itidus20> but of course an anthropomorphic death doesn't exist
05:56:16 <itidus20> but we have this nagging expectation that there should be a force in place to let people finish their business before they die
05:57:09 <elliott> <itidus20> but of course an anthropomorphic death doesn't exist
05:57:14 <evincar> You're referring to ghosts.
05:57:15 <elliott> of course He does, and He talks in small capitals.
05:57:32 <itidus20> i don't deny the possibility of ghosts/
05:57:38 <itidus20> i just didnt know what i was referring to
05:58:01 <evincar> I don't deny the possibility of anything. I just point to the probability of it.
05:58:17 <elliott> Death has to be the best personification of Death ever.
06:00:26 <evincar> But yeah, I've known plenty of people who've died, mostly relatives and friends' relatives, and didn't bat an eyelash nor shed a tear.
06:00:48 <lament> they won't shed any tears when you die, either
06:01:07 <evincar> But, say, the girl I love. If she were to die, I would probably die soon after.
06:01:32 <evincar> Not because I can't live without her. Just acute-stress cardiomyopathy at work.
06:02:06 <lament> sounds like you're remarkably unfit for life
06:02:29 <evincar> I'm talking about when I'm in my eighties or something.
06:03:00 <evincar> Of course it'd be cool to live past 110 to be able to call myself eleventy, eleventy-one, etc.
06:03:01 <lament> you're planning to be working in your eighties?
06:03:19 <evincar> Who said anything about working?
06:04:16 <lament> i guess i just imagined it.
06:06:40 <evincar> This girl suggested we get married, not because she wants to be married, but because I'll have a doctorate and could teach CS at a school where she could get her MD for free. :P
06:06:58 -!- TeruFSX has joined.
06:07:10 <evincar> This conversation ended with a high-five.
06:07:54 -!- TeruFSX2 has quit (Ping timeout: 260 seconds).
06:09:53 <Sgeo> I don't think I'd want to get so attached to someone such that if they die, I die. But then, when I was a kid, I had this weird notion that I'd avoid becoming friends with HIV+ kids. Not because I was scared of getting HIV, but because I didn't want to lose a friend
06:10:29 <elliott> " think I'd want to get so attached to someone such that if they die, I die. "
06:10:32 <elliott> you realise he said because of age right
06:10:45 <elliott> IM SO ATTACHED TO YOU....THAT THIS HEARTBREAK..........HASLITERALLY......BROKEN MY HEART.............
06:11:33 <Sgeo> elliott, you realize that, if all goes according to plan, I will age, right?
06:11:42 <itidus20> so the thing about ghosts suggests that death doesn't actually ignore the events of life as much as my formalized opinion suggests it does
06:11:49 <elliott> Sgeo: how does your first sentence actually makes sense
06:11:55 <elliott> you don't want to become attached to someone the same age as you?
06:12:08 <evincar> This girl and I are absurdly mad for one another. It was a real problem when we both had boyfriends.
06:12:33 <Sgeo> The "But then" was me wondering if I really would mind being so attached, and comparing my current thoughts about that level of attachment with past thoughts about hypothetical HiV+ friends
06:13:39 <evincar> Sgeo: Yeah, you can't reasonably say "I won't get attached to this person because I don't want to get hurt later on".
06:13:51 <evincar> You can not want to become attached, sure.
06:13:59 <elliott> "Sorry dude, I can't be friends with you 'cuz yer gonna die."
06:14:02 <evincar> And you can set your situation up so that you have difficulty becoming attached.
06:14:21 <Sgeo> I don't think I would mind being attached, just not potentially fatally
06:14:36 <evincar> But if you're compatible with a person, the main predictors of attachment are going to be proximity and time.
06:14:54 <evincar> It sounds like a Tom Cruise or Nick Cage movie.
06:15:28 -!- lament has quit (Ping timeout: 264 seconds).
06:15:30 <evincar> I didn't say xor, I guess.
06:15:31 <elliott> they become glued to each other
06:15:48 <evincar> So, the Human Centipede, but with only two victims.
06:16:03 <Sgeo> I've heard of that movie!
06:16:15 <Sgeo> Don't know anything about it, but I've heard of it
06:16:27 <evincar> Oh, and regardless of what you may have heard about it, A Serbian Film is worth watching once.
06:16:36 <evincar> You may want to have vodka on hand, though.
06:17:21 <evincar> Human Centipede = three people are sewn together, anus-to-mouth times two.
06:17:27 <elliott> oh, librep is still maintained!
06:17:34 <elliott> evincar: wait it's only three people in a centipede?
06:18:06 <pikhq_> elliott: And a dude who is implied to be jacking off to it.
06:18:13 <elliott> yeah but only three people
06:18:21 <pikhq_> That's for the sequel.
06:18:26 <elliott> how many legs do centipedes have????
06:18:28 <evincar> A Serbian Film = former porn star commissioned by crazy studio to make shock porn, wakes up covered in blood with no memory of events, pieces together events from videos.
06:18:30 <elliott> it needs to have that many arms+legs
06:18:55 <elliott> but millipedes have millionsr ight :| dont ruin me
06:19:54 <elliott> while we're talking about films, is the rest of Enter the Void as good as its credit sequence (http://www.youtube.com/watch?v=dL0lNGXoP8E (don't watch if you're epileptic probably)), because if so i'm totally going to watch it
06:20:08 <elliott> i'd buy a dvd with just those credits
06:20:29 <Sgeo> You could make one
06:20:44 <evincar> Does anyone still use long numbers (milliard, increments of 1e6) rather than short (billion, increments of 1e3)?
06:21:20 <evincar> Seems inconvenient. Then again, most number systems are.
06:21:22 <elliott> only people who want to confuse others
06:21:28 <elliott> in other languages? of course
06:21:53 <Sgeo> DVD-whatever with those credits
06:22:33 <elliott> i don't think that'd be worth the effort :P
06:22:46 <elliott> although admittedly it's the only credit sequence i've seen with an actual climax, maybe it needs scene selection
06:23:03 <elliott> i wonder if anyone's made a credit sequence that's just the credits for the credit sequence
06:23:18 <elliott> like a book of reviews of itself
06:24:03 <evincar> Except the shortest possible credit sequence is that made by one (wo)man with no name.
06:24:34 <evincar> Lasting 1/24 s for formality.
06:24:53 <Sgeo> Spending effort > spending money
06:24:54 <itidus20> i like to ponder the fundamental question of what are numbers...
06:25:35 <itidus20> things like -2,-1,0,1,2 doesn't quite explain it
06:25:45 <Sgeo> <elliott> i don't think that'd be worth the effort :P
06:25:45 <elliott> itidus20: do you know any set theory
06:25:57 <evincar> itidus20: A number is a function taking an object and yielding a description of a quantity of that object?
06:25:58 <elliott> Sgeo: you realise i wouldnt actually buy a dvd of just those credits
06:26:09 <evincar> It's sort of an irreducible concept.
06:26:09 <elliott> evincar: well that's certainly a vague nonstandard definition
06:26:21 <elliott> 0 = {}, Sn = n union {n}, come on
06:26:43 <elliott> well if you want more than the naturals it's more complicated ofc :P
06:26:52 <Sgeo> God of the Math-Gap?
06:27:39 <evincar> elliott: That's not a reduction, that's more of an implementation or restatement.
06:27:49 <evincar> The question is what numbers are.
06:27:50 <elliott> how is a definition not a reduction
06:28:02 <elliott> number means nothing, natural, integer, rational, ... do
06:28:02 -!- NihilistDandy has joined.
06:28:08 <Sgeo> evincar, wouldn't it make more sense at this point to ask what a set is?
06:28:13 <elliott> and those are all perfectly reducible to the axioms of ZF set theory
06:28:19 <elliott> or Martin-Löf type theory or whatever
06:28:20 <Sgeo> Numbers are just a special sort of set
06:29:09 <evincar> In the practical sense, say a linguistic sense, what function does a number serve?
06:29:35 <Sgeo> Depends on the context. In the real world, usually to quantify.
06:29:43 <evincar> That's the meaning I got from the question, and the question I tried to answer. :P
06:30:00 <evincar> Sgeo: But unfortunately then we run up against a definition of quantity. :(
06:30:20 <itidus20> perhaps numbers are merely an aspect of human interpretation of events
06:30:22 <Sgeo> evincar, this turning into a question about language, not a question about numbers.
06:30:24 <evincar> And numbers aren't even universal. There are languages without numbers.
06:30:58 <elliott> <lament> <elliott> <elliott> Hey does anyone know a decent extension language library.
06:31:01 <evincar> Not at all. Numbers aren't the universal human descriptor of quantity.
06:31:18 <NihilistDandy> Just because I don't have a word for 6 doesn't mean there aren't 6 eggs in a half dozen
06:31:21 <evincar> They are *a* descriptor of quantity.
06:31:47 <Sgeo> evincar, the most precise, perhaps overly precise, descriptor
06:32:39 <itidus20> evincar: it seems that quantity is the key word
06:33:56 <evincar> Yes, but it's still absurdly difficult to come up with a definition for "two" that doesn't use any "two"-ness.
06:34:19 <itidus20> are there limits of definability? :P
06:34:38 <evincar> Presumably those things which can only be defined in terms of themselves are axiomatic.
06:34:48 <evincar> So yes, the limits of definability are axioms.
06:35:00 <itidus20> a computer program for example has axioms of instruction set.... it can't really be reduced beyond the instruction set
06:35:22 <itidus20> uh i mean, once it does it ceases to be a computer program
06:35:28 <Sgeo> elliott, what's the liklihood of this conversation melting my brain via means of blah
06:35:43 <evincar> So the response is actually "oh yes it can".
06:36:05 <NihilistDandy> 01100010 01101100 01100001 01101000 00100000 01100010 01101100 01100001 01101000 00100000 01100010 01101100 01100001 01101000
06:36:29 <itidus20> guys, if there was a limit on any of this i am quite certain that we would not be discussing it at all. we know its possible.. and deep down we know all useful knowledge comes at the cost of lots of hard work
06:36:30 <elliott> <Sgeo> elliott, what's the liklihood of this conversation melting my brain via means of blah
06:36:33 <evincar> Assuming default encoding which is EBCDIC for some reason.
06:39:12 <Sgeo> 001100 010010 011110 100001 101101 110011 111111
06:39:51 <Sgeo> Oops, ignore the 111111
06:40:15 <itidus20> my conception of numbers is like: so you start with a finite ruler of some kind. such as a slice of cheese or a cake.. and you say.. this finite ruler is 1 unit. then you divide it up as much as reasonably possible.
06:40:35 <itidus20> and then you say, each division of the unit, itself, is a unit, and could theoretically be divided up
06:41:53 <itidus20> an object which can be manipulated in it's entirety by a human
06:42:15 <Sgeo> Define "object"
06:42:28 <Sgeo> Do mathematical constructs count as objects?
06:42:41 <itidus20> a set definition is finite... even though its meaning is infinite
06:42:47 <Sgeo> itidus20, wrong
06:43:36 <elliott> <NihilistDandy> evincar started it :d
06:43:45 <Sgeo> Given a finite vocabulary, there are sets that you can't describe with a finite squence of symbols in that vocabulary
06:43:45 <itidus20> i mean, like, if you write down a set ... that writing is finite.. it is a subset of the piece of paper
06:43:49 <Patashu> I have a more interesting problem:
06:43:52 <Patashu> What is the largest number?
06:43:55 <Sgeo> itidus20, you can't get all sets like that
06:44:11 <itidus20> but each actual set definition is a finite thing existing in a finite computer or on a finite piece of paper
06:44:22 <Sgeo> itidus20, all that we can manipulate, yes
06:44:25 <elliott> I looked this up in a reliable source.
06:44:26 <Sgeo> But there's more sets than that
06:45:23 <Sgeo> You can't describe all real numbers with a finite sequence of symbols, and it's pretty easy to imagine a set that is dependent on a sepcific number
06:45:57 <itidus20> the word infinity is 8 characters long and thus finite... and yet defines something infinite
06:46:28 <itidus20> perhaps i should say, symbols are finite
06:46:53 <itidus20> i mean..i know there can be infinite symbols.. but each specific symbol is a finite thing
06:47:24 <itidus20> does it have to be percieved to be a symbol?
06:47:55 <Sgeo> elliott, baby steps on the way to thinking
06:48:01 <NihilistDandy> And the monster will forevermore be remembered by his name
06:48:04 <Sgeo> Well, not baby steps
06:48:07 <Sgeo> There is thinking
06:48:13 <itidus20> aren't symbols ultimately the handles on reality
06:48:22 <evincar> Worse than being in the café at my college.
06:48:57 <elliott> three seconds away from rage/parting if we don't stop sounding like the other kind of #esoteric
06:49:34 <Sgeo> elliott, nothing wrong with philosomath
06:49:41 <itidus20> written characters are always small enough relative to our anticipated distance from them to be percieved in full
06:49:42 <NihilistDandy> I only came on because I had a question for #haskell, but they're busy gassing on about ByteStrings
06:49:42 <elliott> Sgeo: you're not doing philosomath
06:49:48 <evincar> itidus20: Actually, no, they're not. The Sapir-Whorf Hypothesis and linguistic relativity are largely discredited.
06:49:52 <elliott> NihilistDandy: ask me instead im genius
06:50:18 <NihilistDandy> evincar: Almost completely discredited. You give them too much credit :D
06:50:54 <NihilistDandy> Tell me if you know what I'm going for, then I'll explain if it's not clear
06:51:12 <itidus20> im more out of my depth than i am aware of :D
06:52:31 <Sgeo> g :: Integral a => [a] -> [a]
06:52:35 <Sgeo> Why would that compile?
06:52:50 <elliott> NihilistDandy: What are you trying to do
06:52:59 <elliott> Like, that code looks like it should compile to me
06:53:07 <elliott> I dunno, ask an actual question
06:53:10 <NihilistDandy> It's not a compilation issue, it's a thought process issue
06:53:22 <elliott> Unfortunately I'm not a mind reader
06:53:23 <NihilistDandy> I'm trying to make a fairly simple implentation of permutation groups
06:53:37 <NihilistDandy> This is a short experiment that I scribbled down at work
06:53:49 <itidus20> evincar: thanks. good to know :D
06:53:52 <elliott> it occurs to me that asking someone with this headache might not be your best hope :)
06:54:26 <NihilistDandy> I'd like to be able to generalize it to arbitrary permutations, but reasoning about the type system has put me in a bit of a spot
06:54:36 <coppro> NihilistDandy: dude, !!
06:58:09 <elliott> I'M AN IDIO- wait, what...
06:58:59 <coppro> where a permutation is a list of integers from 0 to n-1
07:00:08 <coppro> APPEND AND CONCATENATE THERE IS NO DISTINCTION
07:00:08 <lambdabot> forall a. (Monoid a) => a -> a -> a
07:00:39 <coppro> I'm talking about with [Int] as the monoid
07:00:45 <coppro> or some newtype thereof
07:01:09 <coppro> (obviously it would actually have to be a newtype)
07:01:28 <coppro> (because haskell sucks)
07:01:33 <NihilistDandy> The TeX version is just in case permutation notation is a more familiar area
07:01:56 <Sgeo> 6 days without a Homestuck update
07:02:15 <coppro> > let perm = map . (!!) in [0,3,2,1] `perm` [2,3,1,0]
07:03:07 <elliott> <coppro> (because haskell sucks)
07:03:14 <elliott> --mr "mappend and mconcat what is the difference"
07:03:36 <coppro> elliott: I was referring to the lack of elegant handling of multiple possible instances of a typeclass for a type
07:03:41 <NihilistDandy> > let perm = map . (!!) in [1,2,3,4,5] `perm` [2,4,5]
07:03:42 <lambdabot> [3,5,*Exception: Prelude.(!!): index too large
07:04:32 <NihilistDandy> The size of a cycle is not equal to the size of the set, necessarily
07:04:48 <coppro> that's not a permutation group...
07:05:34 <coppro> you're still missing the point
07:05:38 <coppro> a permutation contains all elements
07:05:51 <coppro> if you want permutations of the elements of the powerset, that's very different
07:06:11 <NihilistDandy> And I'd like to be able to work with the permutation decomposed into its sycles
07:06:33 <elliott> this headache is unberable
07:08:04 <evincar> NihilistDandy: unberaabel would look more Dutch.
07:09:44 <coppro> NihilistDandy: you need to fill out your lists first then
07:09:48 <coppro> this is not expressible in the type system
07:12:57 <evincar> Totally unrelated: does anyone know of a programming language that's not totally isolating? That is, say, an agglutinative or synthetic one.
07:13:31 <evincar> It seems like programming languages don't have inflections in any real sense.
07:13:39 -!- TeruFSX has quit (Ping timeout: 260 seconds).
07:14:15 <evincar> Because even those assemblies where inflection is possible, it's not productive. I can't arbitrarily add inflections to root morphemes to make new instructions.
07:14:59 -!- pitufoide has joined.
07:15:52 <coppro> NihilistDandy: You would need to create a representation of the naturals in the type system for it to be useful
07:16:50 <evincar> (Actually, programming languages seem to be all purely analytic, not just isolating.)
07:18:15 <elliott> instance (Nat n) => Nat (S n)
07:18:18 <elliott> blah blah blah infrastructure
07:18:21 <elliott> you can even do it in binary
07:18:27 <evincar> Guess it's time to make an esolang inspired by a Balto-Slavic language with many cases.
07:18:36 <coppro> elliott: I know how to construct the naturals thank you
07:18:53 <coppro> elliott: I can even define addition!!1!one
07:19:07 <elliott> But can you define addition without type families?
07:19:16 <elliott> With a binary representation?
07:21:40 <coppro> elliott: do you mean the GHC extension?
07:22:27 <elliott> the extension is in very common use, and there is nothing else that type families refers to, so yes.
07:23:29 <coppro> I believe the answer is yes
07:24:01 <NihilistDandy> [03:18:49] <elliott> But can you define addition without type families?
07:24:01 <NihilistDandy> [03:18:57] <elliott> With a binary representation?
07:26:42 <elliott> i wonder if this classes as a migraine
07:28:58 <pikhq_> elliott: If you don't want to end electromagnetic radiation permanently, it's probably not a migraine.
07:29:11 <elliott> Electromagnetic radiation sucks shit, man.
07:29:32 <evincar> Nice chatting, folks. I'm off to eat a loaf of bed.
07:29:34 <pikhq_> Yes, but does it cause agony?
07:29:38 -!- evincar has quit (Quit: leaving).
07:31:37 <coppro> elliott: k i changed my mind
07:32:15 <coppro> I do not know how to implement it at the type level without type families
07:33:25 <elliott> oh, what i have here is actually subtraction
07:33:28 <elliott> but whatever, same thing :)
07:33:34 <elliott> no type families, and binary
07:33:44 <elliott> I can show you if you'd like
07:41:49 <elliott> sent in /msg, the world is too innocent to know my genius
07:42:00 <elliott> oh i forgot newtype Tagged t a = Tag { untag :: a }
07:42:20 <elliott> and it needs a whole bunch of ghc extensions but w/e
07:42:45 <elliott> it's a lot simpler if you just do it for unary instead of binary, but unfortunately that was much too slow.
07:45:05 <coppro> I was trying to avoid extensions generally
07:47:02 <coppro> elliott: what extensions are those?
07:47:26 <elliott> coppro: I only have a list for the much larger program it's contained within; I suggest just adding them as GHC complains about not having them
07:48:37 <coppro> elliott: to be fair the only one that stands out is the | in classes
07:49:08 <elliott> Not quite: There's also multi-parameter type classes, flexible instances, I think probably undecidable instances...
07:49:15 <elliott> The |s are functional dependencies.
08:18:31 <elliott> ?pl \n pairs -> fromMaybe n (lookup n pairs)
08:18:34 <elliott> ?pl \pairs n -> fromMaybe n (lookup n pairs)
08:18:47 <elliott> ?pl \ess@(e:es) -> zip ess (es ++ [e])
08:18:47 <lambdabot> expecting letter or digit, operator, pattern or "->"
08:18:55 <elliott> ?pl \(e:es) -> zip (e:es) (es ++ [e])
08:18:55 <lambdabot> ap (ap (ap . (zip .) . (:)) (flip (++) . return) . head) tail
08:19:01 <elliott> ?pl \(ess@(e:es)) -> zip ess (es ++ [e])
08:19:01 <lambdabot> expecting letter or digit, operator or ")"
08:19:15 <elliott> ?pl \xs -> zip xs (tail xs ++ [head xs])
08:19:15 <lambdabot> ap zip (liftM2 (++) tail (return . head))
08:26:53 -!- Sgeo has quit (Ping timeout: 250 seconds).
08:39:15 -!- MigoMipo has joined.
08:44:32 -!- Taneb has joined.
08:47:06 <Taneb> What is happening in the WORLD OF ESOTERIC PROGRAMMING
08:58:18 <coppro> why does Haskell not have a Semigroup typclass
09:00:57 <Taneb> Because that would make everything too easy
09:01:44 <coppro> it should be class Semigroup s where { (<.>) :: s -> s -> s } and then class (Semigroup m) -> Monoid m where { identity :: m }
09:01:47 <elliott> coppro: http://hackage.haskell.org/package/semigroups
09:02:36 <Taneb> The world's in a mess
09:02:58 <coppro> also why does Semigroup have to stuff Monoid in a newtype
09:03:01 <itidus20> any postulate which makes everything too easy would be a divergence from reality, since reality is self-evidently not easy
09:03:01 <Taneb> Syria's in protest
09:03:13 <Taneb> US is having a crisis
09:03:16 <elliott> <coppro> also why does Semigroup have to stuff Monoid in a newtype
09:03:19 <itidus20> re: <Taneb> Because that would make everything too easy
09:03:45 <elliott> and no, there is _not_ a real solution to that, beyond fixing Monoid to have the proper superclass
09:03:54 <elliott> it's not a flaw in Haskell, just a flaw in library structure.
09:04:21 <coppro> @src (<>) :: Option a -> Option a -> Option a
09:04:21 <lambdabot> Source not found. You speak an infinite deal of nothing
09:04:56 <Patashu> Is there a 'fixed' version of Hasell
09:05:12 <elliott> it has fewer flaws than almost every other language :)
09:05:23 <itidus20> as if to postulate: "each family has enough water" .. but all the while knowing "the city doesn't have enough water".. therefore one of the statements is wrong.
09:05:36 <Patashu> the monad/applicative stuff seems to be a flaw
09:05:51 -!- Taneb has quit (Quit: switching computer).
09:05:53 <elliott> Patashu: I didn't say it was without flaws
09:06:12 <elliott> but they should be fixed incrementally by the usual process, not by making some "fixed" version of Haskell. In fact you can "fix" Haskell today by writing your own Prelude.
09:06:26 <elliott> But the problem is that nobody will use it and it won't be compatible with anyone else's code.
09:06:43 <coppro> elliott: Option is a version of Semigroup for Maybe. Probably needs to be a newtype to avoid overlapping or some shit like that
09:07:09 <elliott> Well, semigroups isn't in Hoogle.
09:07:20 <elliott> coppro: "a version of Semigroup"?
09:07:22 <elliott> "Option is effectively Maybe with a better instance of Monoid, built off of an underlying Semigroup instead of an underlying Monoid. Ideally, this type would not exist at all and we would just fix the Monoid intance of Maybe"
09:07:42 -!- NihilistDandy has quit (Read error: Connection reset by peer).
09:07:47 -!- Taneb has joined.
09:07:55 <elliott> And before you whine again, the problem is a flawed Prelude, not Haskell's inability to do the impossible. :p
09:08:31 -!- NihilistDandy has joined.
09:09:12 <coppro> Monoid is not in Prelude
09:09:21 <coppro> but yes, the issue is not with Haskell itself
09:09:42 <elliott> Anyway, these issues come up a lot in discussion, but are really very minor in practice.
09:09:51 <coppro> this all came up because Applicative ((,) e) requires a Monoid where it could use a Semigrouop
09:10:21 <coppro> oh wait, pure requires a Monoid
09:11:36 <coppro> although really, <*> doesn't require the existence of 'pure' conceptually
09:11:48 <elliott> no function requires the existence of any function
09:11:55 <elliott> but applicatives are constructed the way they are for a reason
09:11:58 <elliott> without pure, you cannot give them laws.
09:12:06 <elliott> and without laws, every abstraction is useless.
09:12:12 -!- oerjan has joined.
09:12:50 <oerjan> NihilistDandy: you're a nihilist, not a solipsist, duh
09:17:41 <coppro> elliott: minor nit: why does the haskell community call them laws and not axioms?
09:18:01 <elliott> coppro: because they're not axioms
09:18:19 <elliott> they are propositions that an instance must satisfy, not things that are just true
09:18:31 <elliott> I mean, you could use axiom equivalently, I suppose
09:18:34 <elliott> And it wouldn't be very confusing
09:18:42 <elliott> I don't see how "law" is wrong in any way
09:19:19 <oerjan> how dare the haskellers use a less mathematically obscure term for once!
09:31:50 <coppro> hell, C++ was considering axioms
09:33:42 -!- Taneb has quit (Quit: He's a big quitter he is.).
09:33:57 <coppro> Patashu: for basically the same thing
09:34:16 <coppro> they were working on a compile-time polymorphism feature
09:34:24 <coppro> with constrained types
09:34:32 <coppro> and 'axioms' which could be used as optimizer hints
09:34:40 <coppro> as well as in-source documentation of code
09:35:13 <coppro> also the ((->) r) monad is bitchin'
09:35:28 <coppro> Patashu: if you really want it, help them resolve the issues!
09:35:57 <coppro> It was removed from C++11 due to the fact that they couldn't finish it
09:36:20 <coppro> and they decided "we've wasted enough time, let's ship something without it and fix it for next time"
09:36:22 -!- NihilistDandy has quit (Read error: Operation timed out).
09:37:45 <coppro> that function is pure epic win
09:39:08 <elliott> > (head>>=all.(==)) [0,0,0]
09:39:10 <elliott> > (head>>=all.(==)) [0,0,0,9]
09:39:13 <elliott> > (head>>=all.(==)) [0,9,0]
09:39:22 <elliott> coppro: shortened that for you
09:39:42 <lambdabot> Data.ByteString.Unsafe unsafeTail :: ByteString -> ByteString
09:39:44 <lambdabot> Data.Generics.Schemes something :: GenericQ (Maybe u) -> GenericQ (Maybe u)
09:39:58 <elliott> coppro: (null . tail' . nub), anyway, where tail' [] = []; tail (_:xs) = xs
09:41:12 <coppro> elliott: but nub is inefficient
09:41:27 <lambdabot> nubBy eq (x:xs) = x : nubBy eq (filter (\ y -> not (eq x y)) xs)
09:41:34 <elliott> coppro: I don't see why it'd be inefficient at this.
09:42:10 <coppro> I'm using a custom comparer
09:42:39 <coppro> so I'd say "head >>= all . comp" is better than "null . drop 1 . nubBy comp"
09:45:26 <coppro> ?hoogle (c -> c -> c) -> (a -> c) -> (b -> c) -> a -> b -> c
09:46:02 <elliott> ?djinn (c -> c -> c) -> (a -> c) -> (b -> c) -> a -> b -> c
09:46:08 <elliott> ?pl \a b c d e -> a (b d) (c e)
09:46:09 <oerjan> didn't we discuss something like that the other day
09:46:27 <elliott> ?pl \b c d e -> a (b d) (c e)
09:46:36 <oerjan> i think i made a version with arrow style
09:47:22 <lambdabot> forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c
09:48:15 <oerjan> uncurry (uncurry a . (b *** c)) or something
09:49:36 <oerjan> :t uncurry (uncurry ?a . (?b *** ?c))
09:49:37 <lambdabot> forall a b b1 c b2 b'. (?a::a -> b -> b1 -> c, ?b::b2 -> a, ?c::b' -> b) => ((b2, b'), b1) -> c
09:49:50 <oerjan> :t curry (uncurry ?a . (?b *** ?c))
09:49:50 <lambdabot> forall a b c a1 b1. (?a::a -> b -> c, ?b::a1 -> a, ?c::b1 -> b) => a1 -> b1 -> c
09:50:23 <oerjan> @pl \a b c -> curry (uncurry a . (b *** c))
09:50:23 <lambdabot> ((curry .) .) . (. (***)) . (.) . (.) . uncurry
09:51:15 <elliott> newtype MyMonad a = MyMonad (StateT MyState (ReaderT Options (ErrorT MyException (WriterT [String] IO))) a)
09:51:15 <elliott> deriving (Functor, Monad, MonadReader Options, MonadState MyState, MonadError MyException, MonadWriter [String])
09:51:23 <elliott> seen in actual haskell code
09:51:50 <oerjan> you'd think they could fit an RSWT in there somewhere
09:52:31 <elliott> monqy: the same guy who thinks that everybody just uses the io monad with exceptions and state
09:52:39 <elliott> http://www.reddit.com/r/haskell/comments/j2n5w/why_doesnt_haskell_have_something_like_this_how/c294l8g?context=3 btw
09:52:45 <elliott> for me yelling at them for it
09:52:57 <coppro> :t (&&) <$> ((<*>) `on` ((==) .)) height width
09:53:05 <coppro> ?unpl (&&) <$> ((<*>) `on` ((==) .)) height width
09:53:05 <lambdabot> ((&&) <$> (on (<*>) (\ a d -> (==) (a d)) height width))
09:53:15 <elliott> coppro: now /that's/ unreadable
09:53:19 <elliott> add some where bindings, dude
09:53:45 <coppro> :t (&&) <$> ((<*>) `on` ((==) .)) length first
09:53:46 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
09:53:58 <coppro> :t (&&) <$> ((<*>) `on` ((==) .)) length head
09:53:59 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
09:54:24 <oerjan> :t curry (curry . (uncurry ?a .) . uncurry (***))
09:54:24 <lambdabot> forall c b c1 b' c'. (?a::c1 -> c' -> c) => (b -> c1) -> (b' -> c') -> b -> b' -> c
09:54:30 <coppro> :t (<*> `on` ((==) .))
09:54:44 <coppro> :t ((<*>) `on` ((==) .))
09:54:45 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
09:55:13 <oerjan> ?pl \a -> curry (curry . (uncurry a .) . uncurry (***))
09:55:13 <lambdabot> curry . (curry .) . (. uncurry (***)) . (.) . uncurry
09:55:27 <lambdabot> forall a (f :: * -> *). (Eq a, Functor f) => f a -> f (a -> Bool)
09:55:35 <elliott> coppro: btw: you were talking about wanting semigroups for an Applicative without pure
09:55:39 <oerjan> :t curry . (curry .) . (. uncurry (***)) . (.) . uncurry
09:55:39 <lambdabot> forall a b c a1 b1. (a1 -> b1 -> c) -> (a -> a1) -> (b -> b1) -> a -> b -> c
09:55:48 <coppro> elliott: I was joking really
09:56:07 <elliott> coppro: see Apply in http://hackage.haskell.org/packages/archive/semigroupoids/1.2.2.1/doc/html/Data-Functor-Apply.html, by the same author as the semigroups paclage
09:57:09 <augur> someone should write an agdabot
09:57:10 <coppro> excuse me while I try to sort this mess out
09:57:34 <elliott> coppro: (btw, these packages are basically the split-up sequel to category-extras, which is deprecated, if you've heard of it)
09:57:38 <coppro> oh damn that's left-associative no wonder
09:58:08 <elliott> http://www.reddit.com/r/haskell/comments/fvabx/greenfield_haskell/c1j0kju has a link to all the category-extras sequels :P
09:58:12 <coppro> :t (&&) <$> ((==) . length) <$> ((==) . first)
09:58:12 <lambdabot> Couldn't match expected type `Bool'
09:58:12 <lambdabot> In the first argument of `(.)', namely `(==)'
09:58:23 <elliott> http://hackage.haskell.org/package/void this is the most useful one
09:58:58 <oerjan> :t (&&) <$> ((==) . length) <*> ((==) . first)
09:58:58 <lambdabot> Couldn't match expected type `Bool'
09:58:58 <lambdabot> In the first argument of `(.)', namely `(==)'
09:59:28 -!- TeruFSX has joined.
09:59:49 <coppro> elliott: Is that suppose to be an inconstructible type?
10:00:00 <elliott> coppro: s/suppose to be/is/
10:00:13 <elliott> it is actually quite useful
10:01:02 <elliott> coppro: well, for instance, if a certain branch is impossible, and you can make the types work out so that the impossible branch gives you a Void...
10:01:09 <elliott> but I know that Epigram uses it, IIRC
10:01:13 <elliott> something McBride worked on, anyway ;-)
10:01:25 <coppro> makes more sense with dependent types
10:01:29 <elliott> but yes, mostly useful in compiler output than by hand, I would think
10:01:49 <coppro> oh fuck that's what I'm doing wrong
10:02:05 <elliott> coppro: McBride wanted vacuous added (see http://hackage.haskell.org/packages/archive/void/0.5.4.1/doc/html/src/Data-Void.html)
10:02:09 <elliott> so I presume that ended up useful for something
10:02:13 <elliott> because of its efficient unsafeCoerce implementation
10:02:46 <coppro> yeah I looked at the source
10:04:47 <oerjan> doing the impossible, and efficiently!
10:09:54 <coppro> :t (***) `on` ((==) .)
10:09:54 <lambdabot> forall (a :: * -> * -> *) b a1. (Arrow a, Eq a1, Functor (a b)) => a b a1 -> a b a1 -> a (b, b) (a1 -> Bool, a1 -> Bool)
10:10:07 <coppro> :t (***) `on` ((==) .) first length
10:10:08 <lambdabot> Couldn't match expected type `a b c' against inferred type `Bool'
10:10:08 <lambdabot> In the first argument of `(.)', namely `(==)'
10:10:08 <lambdabot> In the second argument of `on', namely `((==) .) first length'
10:10:14 -!- monqy has quit (Quit: hello).
10:10:19 <coppro> :t (***) `on` ((==) .) $ first length
10:10:19 <lambdabot> cannot mix `on' [infixl 0] and `$' [infixr 0] in the same infix expression
10:10:23 <coppro> :t (***) `on` ((==) .) $ first # length
10:10:24 <lambdabot> cannot mix `on' [infixl 0] and `$' [infixr 0] in the same infix expression
10:10:30 <coppro> :t (***) `on` ((==) .) $ first $ length
10:10:31 <lambdabot> cannot mix `on' [infixl 0] and `$' [infixr 0] in the same infix expression
10:10:46 <coppro> :t ((***) `on` ((==) .)) first length
10:10:47 <lambdabot> Couldn't match expected type `a b c' against inferred type `[a1]'
10:10:47 <lambdabot> Expected type: a b c -> a (b, d) (c, d)
10:11:17 <coppro> :t ((***) `on` ((==) .)) first
10:11:18 <lambdabot> forall (a :: * -> * -> *) b c d. (Eq (a (b, d) (c, d)), Arrow a) => (a b c -> a (b, d) (c, d)) -> (a b c, a b c) -> (a (b, d) (c, d) -> Bool, a (b, d) (c, d) -> Bool)
10:11:25 <lambdabot> forall (a :: * -> * -> *) b c d. (Arrow a) => a b c -> a (b, d) (c, d)
10:11:32 <coppro> :t ((***) `on` ((==) .)) head
10:11:32 <lambdabot> forall a. (Eq a) => ([a] -> a) -> ([a], [a]) -> (a -> Bool, a -> Bool)
10:11:51 <coppro> :t (&&) <$> ((==) . length) <$> ((==) . head)
10:11:52 <lambdabot> Couldn't match expected type `Bool'
10:11:52 <lambdabot> In the first argument of `(.)', namely `(==)'
10:11:57 <coppro> yup didn't expect that to work
10:12:18 <coppro> :t curry $ uncurry (&&) $ ((***) `on` ((==) .)) first length
10:12:19 <lambdabot> Couldn't match expected type `Bool' against inferred type `(b, b)'
10:12:19 <lambdabot> Inferred type: ((b, b), (a -> Bool, a -> Bool))
10:12:38 <coppro> :t uncurry (&&) . ((***) `on` ((==) .)) first length
10:12:39 <lambdabot> Couldn't match expected type `Bool'
10:12:39 <lambdabot> Expected type: a1 (b, b) (Bool, Bool)
10:13:08 <coppro> :t curry $ uncurry (&&) $ ((***) `on` ((==) .)) head length
10:13:09 <lambdabot> Couldn't match expected type `Bool' against inferred type `(b, b)'
10:13:09 <lambdabot> Inferred type: ((b, b), (a -> Bool, a -> Bool))
10:13:17 <coppro> :t curry . uncurry (&&) . ((***) `on` ((==) .)) head length
10:13:18 <lambdabot> Couldn't match expected type `(a, b) -> c'
10:13:18 <lambdabot> In the first argument of `(.)', namely `uncurry (&&)'
10:13:35 <coppro> :t ((***) `on` ((==) .)) head length
10:13:35 <lambdabot> ([Int], [Int]) -> (Int -> Bool, Int -> Bool)
10:13:57 <coppro> oh of course I run into the same damn problem again
10:14:04 <coppro> FUCK MULTIPLE ARGUMENTS
10:14:48 <coppro> or just me being up at 3 am
10:14:49 <elliott> coppro: Dude, just write it out explicitly.
10:15:12 <coppro> :t (&&) <$> (== `on` head) <*> (== `on` length)
10:15:21 <coppro> :t (&&) <$> ((==) `on` head) <*> ((==) `on` length)
10:15:22 <lambdabot> Couldn't match expected type `Bool'
10:15:22 <lambdabot> against inferred type `[a] -> Bool'
10:15:22 <lambdabot> Probable cause: `on' is applied to too few arguments
10:15:43 <elliott> coppro: You're making your code less readable.
10:16:29 <coppro> I am allowed to free every point I want
10:16:47 <lambdabot> forall a. (Eq a) => [a] -> [a] -> Bool
10:17:07 <coppro> elliott: I was up till at least 6 yesterday
10:17:35 <elliott> coppro: dude, don't talk to me about sleep.
10:17:44 <coppro> ?hoogle (a -> a -> a) -> (b -> b -> a) -> (b -> b -> a) -> b -> b -> a
10:17:44 <elliott> coppro: Literally everything you say will be met by scornful laughter.
10:17:50 <elliott> I have experienced every schedule.
10:18:08 <elliott> Oh, no schedules sane enough to have names.
10:18:10 <coppro> btw I have arrived for work at 4pm before
10:18:26 <elliott> I also haven't technically been awake more than forty hours at a time before, but that just means my works of art are short-form.
10:18:30 <coppro> it's actually to the point where I get made fun of when I show up
10:18:36 <coppro> because either I'm showing up really late
10:18:40 <coppro> or I'm showing up earlier than normal
10:18:53 <coppro> also fuck this sunburn
10:19:14 <elliott> So nobody actually does anything at Google, right? You just arrive there, have your free GOOGLE GORMET LUNCH, play with a bunch of large coloured plastic spheres, have some twenty percent time, and then go home?
10:19:36 <elliott> Theory: Google is actually day care.
10:19:39 <coppro> elliott: dude you think I show up for lunch
10:19:57 <elliott> coppro: Sheesh, just go all ruining my joke by responding too quickly.
10:20:20 <coppro> also we have beach parties
10:21:22 <lambdabot> forall a b (m :: * -> *). (Monad m) => (a -> b -> m a) -> a -> [b] -> m a
10:21:53 <elliott> :t \mp fld zr -> mapM mp >>= foldM fld z
10:21:53 <lambdabot> forall t a b. (a -> [b]) -> (Expr -> [b] -> [a] -> Expr) -> t -> [a] -> Expr
10:21:58 <elliott> :t \mp fld zr -> mapM mp >>= foldM fld zr
10:21:59 <lambdabot> forall a b b1. (a -> [b]) -> (b1 -> [b] -> [a] -> b1) -> b1 -> [a] -> b1
10:22:14 <elliott> :t \mp fld zr lst -> mapM mp lst >>= foldM fld zr
10:22:15 <lambdabot> forall a (m :: * -> *) b b1. (Monad m) => (a -> m b) -> (b1 -> b -> m b1) -> b1 -> [a] -> m b1
10:22:17 <elliott> ?pl \mp fld zr lst -> mapM mp lst >>= foldM fld zr
10:22:17 <lambdabot> (. foldM) . (.) . flip . ((>>=) .) . mapM
10:22:23 <elliott> ?pl \fld zr mp lst -> mapM mp lst >>= foldM fld zr
10:22:23 <lambdabot> (flip (flip . ((>>=) .) . mapM) .) . foldM
10:22:42 <elliott> oerjan: Hey, you write the boilerplate to do the map as part of the fold, thx :P
10:22:54 <oerjan> <elliott> coppro: Dude, just write it out explicitly. <-- if for nothing else, so the rest of us can guess what you're trying to do! :P
10:23:27 <elliott> I'm way too cool to care about that.
10:23:33 <elliott> <elliott> oerjan: Hey, you write the boilerplate to do the map as part of the fold, thx :P
10:25:42 <oerjan> <elliott> X-D <-- you know you're among geeks when they laugh at :t results
10:27:18 <elliott> <elliott> <elliott> oerjan: Hey, you write the boilerplate to do the map as part of the fold, thx :P
10:28:12 <oerjan> i cannot, the neighbors are making the kind of noise that makes it impossible to concentrate again
10:30:54 <itidus20> oerjan: thats when headphones are good to create your own noise
10:31:31 <itidus20> partially because you get the sense of control over music... unlike neighbors noise which cannot be controlled
10:31:53 <oerjan> but i like actual silence.
10:32:09 <elliott> couldn't you theoretically use a noise cancelling headphone for that
10:32:27 <elliott> map [] = []; map (x:xs) = f x:xs
10:32:35 <elliott> foldr (\x xs -> f x : xs) []
10:32:36 <elliott> ?pl foldr (\x xs -> f x : xs) []
10:32:46 <itidus20> in my case it's usually intra-house noise
10:33:13 <oerjan> yes, it's intra-house.
10:33:20 <coppro> curry . uncurry (&&) <$> (<*> `on` uncurry (on (==))) head length
10:33:22 <coppro> :t curry . uncurry (&&) <$> (<*> `on` uncurry (on (==))) head length
10:33:24 <elliott> unless your neighbours live in your house
10:33:27 <elliott> ?pl foldr (\x r -> ff (mf x) r) fz
10:33:30 <coppro> :t curry . uncurry (&&) <$> ((<*>) `on` uncurry (on (==))) head length
10:33:30 <lambdabot> Couldn't match expected type `(a, b) -> c'
10:33:31 <lambdabot> In the second argument of `(.)', namely `uncurry (&&)'
10:33:31 <elliott> ?pl foldM (\x r -> ff (mf x) r) fz
10:33:35 <elliott> ?. ty pl foldM (\x r -> ff (mf x) r) fz
10:33:35 <lambdabot> Plugin `compose' failed with: Unknown command: "ty"
10:33:40 <elliott> ?. type pl foldM (\x r -> ff (mf x) r) fz
10:33:41 <coppro> :t curry . (uncurry (&&) <$> ((<*>) `on` uncurry (on (==))) head length)
10:33:42 <lambdabot> Couldn't match expected type `(a, b) -> c'
10:33:43 <lambdabot> In the first argument of `(<$>)', namely `uncurry (&&)'
10:33:46 <oerjan> elliott: ok i should technically call them housemates, then
10:34:01 <coppro> :t ((<*>) `on` uncurry (on (==)))
10:34:02 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
10:34:03 <elliott> oerjan: you're not a hermit? :/
10:34:08 <elliott> i guess hermits generally don't have neighbours
10:34:18 <coppro> :t ((<*>) `on` (uncurry . on (==)))
10:34:19 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
10:34:19 <elliott> ?pl foldM (\x r -> mf x >>= \x' -> ff x' r) fz
10:34:19 <lambdabot> foldM ((. flip ff) . (>>=) . mf) fz
10:34:22 <elliott> ?pl foldM (\x r -> mf x >>= \x' -> ff x' r) fz
10:34:22 <lambdabot> foldM ((. flip ff) . (>>=) . mf) fz
10:34:25 <elliott> ?undo foldM (\x r -> mf x >>= \x' -> ff x' r) fz
10:34:25 <lambdabot> foldM (\ x r -> mf x >>= \ x' -> ff x' r) fz
10:34:26 <oerjan> i try to be a hermit but it's hard with all these housemates.
10:34:30 <lambdabot> forall b a. (Eq b) => (a -> b) -> a -> a -> Bool
10:34:30 <elliott> ?pl foldM (\x r -> mf x >>= \x' -> ff x' r) fz
10:34:30 <lambdabot> foldM ((. flip ff) . (>>=) . mf) fz
10:34:35 <elliott> `addquote <oerjan> i try to be a hermit but it's hard with all these housemates.
10:34:39 <HackEgo> 555) <oerjan> i try to be a hermit but it's hard with all these housemates.
10:34:41 <lambdabot> forall b b1. (Eq b) => (b1 -> b, b1) -> b1 -> Bool
10:34:42 <elliott> ?ty foldM ((. flip ff) . (>>=) . mf) fz
10:34:46 <itidus20> oerjan: neighbors is fine enough :). but it is commonly used in the inter-house sense
10:34:52 <lambdabot> Couldn't match expected type `(a, a) -> c'
10:34:52 <lambdabot> In the second argument of `($)', namely `uncurry (==)'
10:35:10 <elliott> SOME OF US ARE TRYING TO DO _REAL_ WORK ;D
10:35:11 <coppro> :t ((<*>) `on` (on $ uncurry (==)))
10:35:12 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
10:35:23 <elliott> coppro: you realise lambdabot works in /query :-P
10:35:28 <coppro> elliott: I know that too
10:35:31 <elliott> ?ty \mf ff -> foldM ((. flip ff) . (>>=) . mf)
10:35:32 <lambdabot> forall (m :: * -> *) a b a1. (Monad m) => (a -> m a1) -> (a1 -> b -> m a) -> a -> [b] -> m a
10:36:48 <coppro> oh god I see what I must do here
10:37:03 <coppro> (note: I also refuse to resort to pling the thing)
10:37:17 <coppro> I will find a point-free form myself first
10:42:30 -!- esowiki has joined.
10:42:31 -!- glogbot has joined.
10:42:45 <elliott> <elliott> that was a quick backup
10:42:46 <elliott> <coppro> head and length are arbitrary
10:42:46 <elliott> <coppro> any [a] -> a will do
10:42:46 <elliott> <elliott> coppro: gimme pointful form of it so i can play with it locally
10:42:46 <elliott> <coppro> or really, any p -> a
10:42:49 <coppro> k so I have a point-free form
10:42:51 <coppro> I don't like it though
10:43:07 <coppro> ?pl \a b -> f a == f b && g a == g b
10:43:07 <lambdabot> ap (ap . ((&&) .) . (. f) . (==) . f) ((. g) . (==) . g)
10:43:14 <coppro> eww, that's not what I go
10:43:43 <lambdabot> Ambiguous type variable `b' in the constraints:
10:43:43 <lambdabot> `Eq b' arising from a use of `==' at <interactive>:1:0-3
10:43:49 <lambdabot> forall b a. (Eq b, ?f::a -> b) => a -> a -> Bool
10:44:19 <elliott> :t liftA2 (&&) ((==) `on` ?f) ((==) `on` ?g)
10:44:20 <lambdabot> Couldn't match expected type `Bool'
10:44:21 <lambdabot> Probable cause: `on' is applied to too few arguments
10:44:30 <elliott> :t (,) ((==) `on` ?f) ((==) `on` ?g)
10:44:31 <lambdabot> forall b a b1 a1. (Eq b, ?f::a -> b, Eq b1, ?g::a1 -> b1) => (a -> a -> Bool, a1 -> a1 -> Bool)
10:44:49 <elliott> ?hoogle (b -> b -> c) (a -> a -> b) -> (a -> a -> b) -> ... this is what coppro wanted earlier
10:44:49 <lambdabot> --count=20 "(b -> b -> c) (a -> a -> b) -> (a -> a -> b) -> ... this is what coppro wanted earlier"
10:45:10 <elliott> ?pl \a b -> (((==) `on` ?f) a b) && (((==) `on` ?g) a b)
10:45:14 <coppro> yeah I was looking for a combinator to apply to (&&)
10:45:16 <elliott> ?pl \a b -> (((==) `on` f) a b) && (((==) `on` g) a b)
10:45:16 <lambdabot> ap (ap . ((&&) .) . ((==) `on` f)) ((==) `on` g)
10:45:18 <lambdabot> forall a b c (f :: * -> *). (Applicative f) => (a -> b -> c) -> f a -> f b -> f c
10:45:21 <lambdabot> forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b
10:45:28 <elliott> (c -> a -> b) -> (c -> a) -> (c -> b)
10:45:43 <lambdabot> Couldn't match expected type `a -> b' against inferred type `Bool'
10:45:44 <lambdabot> Probable cause: `&&' is applied to too many arguments
10:45:44 <lambdabot> In the second argument of `(.)', namely `(&&)'
10:46:09 -!- GreaseMonkey has quit (Quit: The Other Game).
10:46:11 <coppro> elliott: no you see the fm band is useless
10:46:15 <coppro> you remove that and ap == ap
10:46:26 <lambdabot> No instance for (SimpleReflect.FromExpr GHC.Bool.Bool)
10:46:28 <lambdabot> No instance for (SimpleReflect.FromExpr GHC.Bool.Bool)
10:46:39 <lambdabot> Ambiguous type variable `a' in the constraints:
10:46:42 <lambdabot> Ambiguous type variable `a' in the constraints:
10:47:17 <elliott> coppro: anyway, it sounds like a useful combinator
10:47:24 <oerjan> :t curry (uncurry (&&) . (uncurry (on (==) ?f) &&& uncurry (on (==) ?g)))
10:47:25 <lambdabot> forall b a b1. (Eq b, ?f::a -> b, Eq b1, ?g::a -> b1) => a -> a -> Bool
10:47:33 <elliott> (a -> b -> c) -> (d -> a) -> (e -> b) -> d -> e -> c
10:47:54 <elliott> hmm, can that become functorial somehow
10:47:55 <coppro> thar we go; oerjan got it
10:48:01 <elliott> (a -> b -> c) -> (d -> a) -> f b -> d -> f c
10:52:31 -!- esowiki has joined.
10:52:44 -!- glogbot has joined.
10:55:12 <coppro> :t (liftM2 ap .) . (.) . (.)
10:55:13 <lambdabot> forall (m :: * -> *) a b (m1 :: * -> *) a1. (Monad m, Monad m1, Functor m1, Functor m) => (a1 -> a -> b) -> m1 (m a1) -> m1 (m a) -> m1 (m b)
10:55:46 <elliott> oh dear, i just invented an esolang
10:55:50 <coppro> ?pl \a b -> f (g a b) (h a b)
10:56:01 <elliott> :t (liftA2 ap .) . (.) . (.)
10:56:02 <lambdabot> forall (m :: * -> *) a b (f :: * -> *) a1. (Monad m, Applicative f, Functor m) => (a1 -> a -> b) -> f (m a1) -> f (m a) -> f (m b)
10:56:05 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
10:56:17 <coppro> elliott: I agree with you
10:56:17 <elliott> :t (liftA2 (<*>) .) . (.) . (.)
10:56:18 <lambdabot> forall (f :: * -> *) a b (f1 :: * -> *) a1. (Applicative f, Applicative f1) => (a1 -> a -> b) -> f1 (f a1) -> f1 (f a) -> f1 (f b)
10:56:24 <elliott> literally the most beautiful type
10:56:30 -!- EgoBot has joined.
10:56:31 <elliott> now to replace those (->)s with something nicer...
10:56:35 <elliott> something more abstract, say
10:56:55 <coppro> :t (<*> (?f .)) . ?g <*> ?h
10:56:56 <lambdabot> forall b a b1 (f :: * -> *) (f1 :: * -> *). (?f::a -> b1, Functor f, ?g::f1 (f a -> f b1 -> b), Applicative f1, ?h::f1 (f a)) => f1 b
10:57:17 <Deewiant> ?ty let (.) = flip (>>>) in (liftA2 (<*>) .) . (.) . (.)
10:57:18 <lambdabot> forall a b a1 (cat :: * -> * -> *) b1 a2. (Control.Category.Category cat, Applicative (cat a2)) => cat b1 (a -> b) -> (a1 -> cat a2 b1) -> (a1 -> cat a2 a) -> a1 -> cat a2 b
10:57:35 <elliott> Deewiant: it is... so beautiful...
10:57:41 <coppro> :t (<*> ((&&) .)) . null <*> null
10:57:42 <lambdabot> Couldn't match expected type `f Bool -> f (Bool -> Bool) -> b'
10:57:42 <lambdabot> Probable cause: `null' is applied to too many arguments
10:57:50 <elliott> Deewiant: um looks like a layor of functionalness got stripped out?
10:57:54 <elliott> there's more function arrows now
10:58:00 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
10:58:04 <coppro> :t (<$> ((&&) .)) . null <*> null
10:58:04 <lambdabot> Couldn't match expected type `f (Bool -> Bool) -> b'
10:58:04 <lambdabot> Probable cause: `null' is applied to too many arguments
10:58:05 <lambdabot> forall (cat :: * -> * -> *) a b c. (Control.Category.Category cat) => cat b c -> cat a b -> cat a c
10:58:13 <elliott> Deewiant: btw you realise (<<<) exists?
10:58:16 <coppro> :t (<$> ((&&) .)) . null <$> null
10:58:17 <lambdabot> Couldn't match expected type `f (Bool -> Bool) -> b'
10:58:17 <lambdabot> In the second argument of `(.)', namely `null'
10:58:34 <lambdabot> forall (m :: * -> *) a b a1 (f :: * -> *). (Monad m, Show a1, Show a, SimpleReflect.FromExpr b, Functor m, SimpleReflect.FromExpr (f (m a1)), Functor f) => f (m a -> m b)
10:58:51 <lambdabot> forall (f :: * -> *) a b a1 (f1 :: * -> *). (Applicative f, Show a1, Show a, SimpleReflect.FromExpr b, SimpleReflect.FromExpr (f1 (f a1)), Functor f1) => f1 (f a -> f b)
10:59:04 <lambdabot> forall b a b1 (f :: * -> *) (f1 :: * -> *). (Show a, SimpleReflect.FromExpr b1, Functor f, SimpleReflect.FromExpr (f1 (f a -> f b1 -> b)), Functor f1) => f1 (f a -> b)
10:59:15 <lambdabot> forall (f :: * -> *) b a b1 (f1 :: * -> *). (Show a, SimpleReflect.FromExpr b1, Functor f1, SimpleReflect.FromExpr (f (f1 a)), Applicative f) => f (f1 b1 -> b) -> f b
10:59:16 <lambdabot> forall (cat :: * -> * -> *) b c a. (Control.Category.Category cat) => cat b c -> cat a b -> cat a c
11:00:02 <coppro> :t (<$>) . ((&&) .) . null <$> null
11:00:03 <lambdabot> Couldn't match expected type `a -> Bool'
11:00:03 <lambdabot> In the second argument of `(.)', namely `null'
11:00:22 <coppro> :t (<$>) . ((&&) .) . null <*> null
11:00:23 <lambdabot> Couldn't match expected type `a -> Bool'
11:00:23 <lambdabot> Probable cause: `null' is applied to too many arguments
11:00:30 <coppro> :t (<$>) . ((&&) .) . null
11:00:32 <lambdabot> Couldn't match expected type `a -> Bool'
11:00:32 <lambdabot> Probable cause: `null' is applied to too many arguments
11:00:49 <coppro> :t (<*>) . ((&&) .) . null <*> null
11:00:50 <lambdabot> Couldn't match expected type `f Bool' against inferred type `Bool'
11:01:29 <coppro> so I shall do the logical thing
11:01:50 <coppro> :t (<*>) ((<*>) . (f .) . g) h
11:01:51 <lambdabot> forall (f :: * -> *) a b a1 (f1 :: * -> *). (Applicative f, Show a1, Show a, SimpleReflect.FromExpr b, SimpleReflect.FromExpr (f1 (f a1)), Applicative f1, SimpleReflect.FromExpr (f1 (f a))) => f1 (f
11:02:01 <coppro> :t (<*>) ((<*>) . ((&&) .) . null) null
11:02:01 <lambdabot> Couldn't match expected type `f Bool' against inferred type `Bool'
11:02:17 <coppro> :t (<*>) ((<*>) . (f .) . null) null
11:02:17 <lambdabot> Couldn't match expected type `f a' against inferred type `Bool'
11:02:36 <coppro> :t ap (ap . (f .) . g) h
11:02:37 <lambdabot> forall (m :: * -> *) a b a1 (m1 :: * -> *). (Monad m, Show a1, Show a, SimpleReflect.FromExpr b, Functor m, SimpleReflect.FromExpr (m1 (m a1)), Functor m1, SimpleReflect.FromExpr (m1 (m a)), Monad
11:02:37 <elliott> oerjan: is there a nicer representation of bijections than (a->b, b->a), i'm sure there is, and i'm sure i should be asking edward kmett instead
11:03:17 <coppro> elliott: on a countable set you can just define it as sequence
11:04:13 <coppro> *ordering with a least element
11:04:36 <lambdabot> parse error (possibly incorrect indentation)
11:04:41 <lambdabot> forall (f :: * -> *). (Functor f) => f Bool -> f (Bool -> Bool)
11:05:10 <lambdabot> Couldn't match expected type `f Bool' against inferred type `Bool'
11:05:41 <lambdabot> forall (f :: * -> *) (f1 :: * -> *). (Functor f, SimpleReflect.FromExpr (f1 (f Bool)), Functor f1) => f1 (f (Bool -> Bool))
11:05:55 <lambdabot> forall (f :: * -> *) (f1 :: * -> *). (Functor f, ?g::f1 (f Bool), Functor f1) => f1 (f (Bool -> Bool))
11:06:46 <oerjan> <coppro> *ordering with a least element <-- *omega ordering
11:06:51 <elliott> oerjan: what's the name of Functor where you let the mapping be any category......
11:06:53 <coppro> :t (<*>) ((<*>) . (f .) . ((==) `on` null)) ((==) `on` null)
11:06:54 <lambdabot> forall b a. (SimpleReflect.FromExpr b) => [a] -> [a] -> b
11:07:02 <elliott> class Functor cat f where fmap :: cat a b -> f a -> f b
11:07:04 <coppro> :t (<*>) ((<*>) . ((&&) .) . ((==) `on` null)) ((==) `on` null)
11:07:20 <elliott> can't spell "victorious" though
11:07:22 <oerjan> elliott: mathematically, also functor
11:07:33 <coppro> oerjan: never heard of an omega ordering
11:07:37 <elliott> oerjan: it should be the real Functor, shouldn't it :(
11:08:05 <elliott> class Functor cat f a b where fmap :: cat a b -> f a -> f b
11:08:14 <oerjan> coppro: it's an ordering that is isomorphic to the natural numbers. also the natural order of the ordinals < omega.
11:08:41 <oerjan> elliott: the _real_ functor should have a different cat at each end duh
11:09:05 <elliott> oerjan: um there's only one space for cat... or are you saying haskell can't do it
11:09:06 <coppro> oerjan: is there music?
11:09:24 <coppro> and definitely not include that point-free function
11:09:34 <oerjan> elliott: fmap :: cat1 a b -> cat2 (f a) (f b) ?
11:09:38 <coppro> the head >>= all . (pred) one is totally staying in though
11:10:04 <elliott> oerjan: class Functor bat cat f a b | bat cat f -> a b where fmap :: bat a b -> cat (f a) (f b)
11:12:35 <elliott> but when you get to that many.........
11:12:38 <oerjan> in fact a and b shouldn't be class parameters at all
11:12:44 <elliott> oerjan: yes, they should (Set and Map)
11:12:47 <coppro> elliott: you need more manbatrat
11:13:01 <elliott> oerjan: http://www.randomhacks.net/articles/2007/03/15/data-set-monad-haskell-macros
11:13:07 <coppro> manbatrat is ancient evil in a bowler hat
11:13:16 <oerjan> elliott: absolutely not, i'd say
11:13:17 <elliott> oerjan: Set, Map, etc. have constraints on their type argument
11:13:26 <elliott> but they're perfectly valid monads given those constraints
11:13:44 <elliott> it's ugly, but if we're extending things...
11:14:01 <oerjan> elliott: but your class definition gives each functor only _one_ pair of objects to map between D:
11:14:19 <elliott> instance Functor (->) (->) Maybe a b where ...
11:14:27 <coppro> you can have singleton sets of things without orderings
11:14:34 <coppro> because HEY THAT'S USEFUL RIGHT
11:14:46 <elliott> coppro: that is like the stupidest fucking reason for calling something retarded ever
11:14:49 <elliott> so someone forgot one constraint
11:14:52 <elliott> probably because of type inference
11:15:03 <oerjan> elliott: you cannot even get the _ordinary_ Functor as a special case of this
11:15:13 -!- Sgeo has joined.
11:15:15 <elliott> <elliott> instance Functor (->) (->) Maybe a b where ...
11:15:32 <oerjan> because a and b are not free parameters
11:16:01 <elliott> it's called FlexibleInstances
11:16:27 <elliott> oerjan: it's undeniably ugly though, for instance Monad has to get split in two
11:16:32 <elliott> but WHILE WE'RE GENERALISING...
11:16:34 <oerjan> elliott: but the FD is still wrong
11:16:39 <coppro> Haskell needs first-class types
11:16:41 <elliott> i'm not sure what the right fd is
11:16:53 <elliott> coppro: you mean dependent types?
11:16:59 <oerjan> f -> bat cat would be reasonable, at least
11:17:20 <coppro> elliott: no I will not settl for anythnig less than hasklle with these features
11:17:40 <coppro> it is no longer worth the efforts
11:18:09 <coppro> and tyes I typed that last sentece without errors but not this one though because aparently I suck expecially when typing blidnfold at 5 am
11:18:37 <coppro> (typing is kinkier that way)
11:19:39 <elliott> you are literally the lightest weight
11:21:58 * itidus20 gives coppro a wild boar, a club and animal skin robe complete with rope belt woven by the women of the forest.
11:25:00 <oerjan> itidus20: FAIL, he should have to kill and roast the boar himself
11:25:23 <itidus20> including making his own fire?
11:25:34 <oerjan> nah the women can do that.
11:25:48 * Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person
11:25:51 <itidus20> you don't wanna spend too much time with those women
11:26:08 <oerjan> Sgeo: no wonder your mind is confused
11:26:36 <itidus20> C.S.Lewis was friends with Tolkien
11:26:59 <oerjan> Sgeo: so, which one was on that famous expedition with clark?
11:27:23 <coppro> itidus20: I want a conch
11:29:19 <oerjan> elliott: imagine if alice in wonderland was written like the narnia books
11:29:55 <elliott> ASLAN: Jesus, or something Lewis thought up on an acid trip? Or both???? EXPERTS ARE DIVIDED
11:30:12 <itidus20> the best film of alice in wonderland is the jan svankmeyer version
11:31:02 <itidus20> i haven't seen tim burton's one but.. nothing can beat the one i mentioned
11:31:32 <oerjan> ... and the inter-house neighbors start mowing lawn ...
11:32:14 <itidus20> you should record it (the lawn mowing)... then play it back with stereo up loud
11:37:34 -!- oerjan has quit (Quit: leaving).
11:39:12 -!- oklopol has quit.
11:45:20 <itidus20> by the end of the 19th century Sir Walter Besant wrote Alice in Wonderland "was a book of that extremely rare kind which will belong to all the generations to come until the language becomes obsolete".
11:48:41 <coppro> I wish scp wasn't so limited
11:56:45 <itidus20> i don't know what the signifigance of him being a freemason is in this regard
11:57:00 <elliott> you're assuming there is one
11:59:06 -!- MigoMipo has quit (Read error: Connection reset by peer).
12:03:07 <itidus20> well alice in wonderland is tied into countless conspiracy theories apparently
12:05:13 <itidus20> but do you wanna know how i feel about conspiracy theories? i think that... ultimately everyone dies... so it's like... the people who undertake all these conspiracies and wars and abuses and every concievable graph of interpersonal profit, ultimately they die and it all comes to naught
12:06:02 <itidus20> i die, they die.. all becomes equalized
12:06:39 <itidus20> worse still is the possibility of not dying... as death is freedom and immortality is a cage
12:07:34 <coppro> Don't worry; we still have the Doom of Man
12:08:08 <itidus20> so with the charisma of the greatest marketing genius they lay out why they are so special, the extent to which some occasion is infinitely tragic, why my emotions should be invoked
12:08:26 <itidus20> individual mortality supercedes all else
12:09:16 <coppro> listening to the entire music to lotr
12:11:11 <itidus20> yes, they invoke the imagination.. they invoke the emotions.. they invoke the associations.. they invoke all manner of cortices
12:11:31 <itidus20> for it is all that one can really do in the space of interpersonal economics
12:11:54 <itidus20> but what shall they invoke in someone who has passed on
12:14:48 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
12:31:58 <coppro> it's apparently about turbo pascal
12:32:21 -!- coppro has set topic: 07:25:29 * Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person.
12:33:07 -!- coppro has set topic: Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
12:33:14 -!- coppro has set topic: \* Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
12:33:21 -!- coppro has set topic: :* Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
12:33:39 -!- coppro has set topic: Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
12:33:44 -!- coppro has set topic: * Sgeo finally realizes that C.S. Lewis and Lewis Carol are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
13:07:51 -!- jimtendo has joined.
13:34:34 -!- TeruFSX has quit (Read error: Operation timed out).
13:41:04 -!- TeruFSX has joined.
13:44:19 -!- quintopia has set topic: Sgeo finally realizes that C.S. Lewis and Lewis Carol[sic] are not the same person | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
13:50:03 -!- lament has joined.
13:53:38 <Sgeo> What books on programming should I buy?
13:53:49 <Sgeo> Is Pragmatic Programmer good, or just... job-y stuff/
13:56:41 <Sgeo> Introduction to Algorithms?
13:57:25 <Sgeo> Oh come on, not available in B&N? :(
13:57:40 <quintopia> has pseudocode for like half the algorithms you sometimes find you need but cant remember how to do
13:58:31 <quintopia> for instance, i think it has fibonacci heap, which i always forget...
14:08:59 * itidus20 drops into the room with a random topic. Do all imperative languages essentially feel the same? Are all their abstract machines similar?
14:11:36 <itidus20> procedures/methods/functions are not really represented in instruction sets that i can see
14:11:45 <itidus20> i think theres RET instruction
14:12:15 <itidus20> but otherwise... isn't it strange that so many languages follow this pattern
14:13:54 <itidus20> or perhaps a procedure/method/function is simply a string of reusable instructions
14:14:37 <olsner> I don't know what kind of machine you mean exactly, but I'd say most "abstract machines" for imperative languages have function calls as a special operation
14:15:02 <itidus20> olsner: well i see them occasionally mention the C abstract machine in the C room
14:16:21 <itidus20> perhaps it is just that stringing together instructions inevitably results in functions
14:16:23 <olsner> Java is a bit special because the abstract machine is not abstract but concrete - and it does have a few low-level things like jumps in it ... but it still has function calls as a primitive and you can't access the call stack (it's just invisible magic that makes return continue running at the right place)
14:17:31 <olsner> well, the C "abstract machine" doesn't really have anything like instructions, it's just a model of what the code does (that is, it's *abstract*)
14:17:51 <itidus20> ahh.. well i threw together 2 topics in one sentence foolishly
14:18:25 <itidus20> men on a beach with piles of stones could conform to a C abstract machine :D
14:20:22 <elliott> olsner: invisible magic seems unfair
14:20:29 <olsner> well... using humans and piles of stones you can make anything, including a simulation of an x86 processor
14:20:30 <elliott> i mean, everything has something invisible
14:22:07 <itidus20> i once discussed with someone how assembly is an arbitrary system of representing machine code at a higher level. that it could have gone another way
14:23:02 <itidus20> didnt actually think of alternatives.
14:24:25 <elliott> `addquote <oklopol> i'm essentially playing mc as a text adventure game
14:24:30 <elliott> `addquote <oklopol> good night <elliott> oh you leaving? <oklopol> no but i will take a shit
14:24:34 <elliott> hackego is not here.........
14:24:50 <itidus20> in the same line of thought, structured programming constructs (for, while, do-while, switch, if) are arbitrary constraints upon the organization of asm statements
14:25:35 <itidus20> designed only [as far as i know] for human readability
14:26:07 <olsner> elliott: hmm, dunno, most things a real cpu does has to e.g. end up putting the right values in RAM or produce the right I/O writes - and it's only allowed to fudge with that in specific limited ways...
14:26:31 <itidus20> human comprehension probably comes at the price of computational efficiency in most cases
14:27:02 <elliott> olsner: you can't inspect the electrons :)
14:27:06 <itidus20> that is to say.. spaghetti code isn't "slow"
14:27:29 -!- TeruFSX has quit (Ping timeout: 264 seconds).
14:27:35 <itidus20> it's simply difficult to read and maintain
14:28:04 <itidus20> if its slow it's only slow due to the human being confused by it
14:30:03 <itidus20> I imagine some hypothetical omnipotent programmer who has solved chess by having his brain encoded with a garden of eden solution to chess :P
14:31:11 <olsner> hmm... I guess the CPU can still do any amount of magic outside the things you're allowed to observe (just like other invisible magics), just that you can observe more stuff and on a lower level there
14:31:12 <itidus20> and this hypothetical programmer can arrange instructions with 100% computational efficiency
14:31:40 <itidus20> olsner: hey do you like that one? the solution to chess is a neural garden of eden
14:32:01 <olsner> itidus20: I don't understand
14:32:04 <itidus20> given that the universe does not contain the computational complexity to arrive at it
14:32:27 <itidus20> or maybe i dont know what a garden of eden is
14:34:12 <itidus20> suppose I was to say.. this two-state switch on the table represents whether the game of chess has a first player advantage or whether the game is a draw
14:34:33 <itidus20> now... in order to put that switch into the correct position... wouldn't the state of that switch be a garden of eden?
14:35:19 <itidus20> (according to our current theories about the solvability of chess)
14:35:39 <itidus20> of course a breakthrough could prove it wrong later
14:39:47 <quintopia> chess does not necessarily have more states than quantum states in the universe does it...
14:40:55 <itidus20> quintopia: well i secretly know that chess is solvable.. lets just say it's a hunch
14:41:43 <itidus20> but the idea is not so bad right?
14:42:18 <itidus20> a piece of information which was beyond the (quantum) computational power of the universe would be a kind of real-life garden of eden
14:42:57 <lament> also, the garden of eden
14:44:15 <lament> (and by extension the big bang state)
14:45:14 <itidus20> so chess being unsolvable is kind of tongue in cheek to awe the average johnny hopscotch
14:46:49 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:48:06 <itidus20> clearly theres degrees of unsolvability
14:48:54 <itidus20> like, a chessboard with a board of the size, 1 trillion x 1 trillion, covered in trillions of pieces
14:49:13 <itidus20> is even more unsolvable than an 8x8 chessboard
15:00:58 -!- invariable has quit (Quit: Daemon escaped from pentagram).
15:15:12 <Sgeo> elliott, what about me being on mc?
15:19:08 <fizzie> Että jotta koska kun, jos vaikka kuin.
15:20:09 <tswett> Because/when, but, although.
15:20:41 <fizzie> The above was a part of an (incomplete) list of subordinating conjunctions. There were all kinds of lists like that.
15:21:50 <tswett> Aamupala on minun vaikean ruoka.
15:23:24 <fizzie> Also another often-memorized list (of co-ordinating conjunctions) ends with "sillä, näet, nimittäin"; and there's a lot of related puns. Like: "osta kiikari, sillä näet nimittäin", vaguely translated as "buy a pair of binoculars, for you can see with them", since you can interpret "näet" as both as the conjunction (meaning "you see, you know, indeed" etc.) or as the second-person singular present indicative form of "to see".
15:30:54 <tswett> Loma näyttää kaukana kirjo.
15:31:37 -!- copumpkin has joined.
15:32:16 -!- TeruFSX has joined.
15:33:25 -!- MigoMipo has joined.
15:45:20 -!- MSleep has changed nick to MDude.
15:45:50 -!- itidus21 has joined.
15:47:36 -!- itidus20 has quit (Ping timeout: 250 seconds).
15:47:44 -!- itidus21 has changed nick to itidus20.
15:50:37 -!- pumpkin has joined.
15:53:38 -!- copumpkin has quit (Ping timeout: 252 seconds).
15:55:34 -!- Taneb has joined.
15:55:46 -!- TeruFSX has quit (Ping timeout: 276 seconds).
15:57:14 <Taneb> I'm researching my family tree
15:59:08 <tswett> However, I am only your half brother.
15:59:25 <Taneb> Ever since that nasty incedent with a chainsaw
15:59:54 <quintopia> time to write "black sheep" and trip balls
16:04:34 -!- Nisstyre has quit (Ping timeout: 258 seconds).
16:15:37 -!- mtve has quit (Ping timeout: 252 seconds).
16:20:29 <itidus20> wiki on dijkstra "When lecturing, he would write proofs in chalk on a blackboard rather than using overhead foils, let alone Powerpoint slides."
16:22:43 <pikhq_> Understandable. If you're using Powerpoint right it's only marginally better than a blackboard most of the time.
16:22:56 <pikhq_> (say, unless you happen to need a detailed graphic)
16:24:50 <itidus20> I don't think he was a luddite because he worked in programming.. No... it was something else.. something wonderful I guess
16:26:00 <pikhq_> About the only real fault I can see with using a blackboard instead of Powerpoint is that it depends heavily on handwriting.
16:26:12 <pikhq_> Which is a skill that I, at least, am horribly out of practice with.
16:26:28 <pikhq_> Presumably, Dijkstra wasn't.
16:27:49 -!- TeruFSX has joined.
16:28:10 <itidus20> he did a lot of handwritten papers too apparently
16:29:18 <lament> he probably didn't even use *windows*
16:29:47 <pikhq_> I'm only going to allow leeway there because, frankly, for quite some time doing math on computers *or* typewriters was an experience in pain, agony, sorrow, etc.
16:30:06 <pikhq_> And the man was born in 1930.
16:30:08 <lament> According to Jim Nelson, who served as a civilian translator with the Russian and American peacekeepers in Bosnia in 1996, one of the Russians said, "If we ever had a war, while you are working on your PowerPoint, we would be killing you."
16:30:45 <pikhq_> (still is somewhat inconvenient, but at least it's not *insane* with TeX)
16:31:32 <itidus20> i have a deep respect for using pens and paper
16:31:49 <itidus20> its one of the motifs in my thought
16:41:28 <itidus20> to drive the point home i created this fancy screenshot with a few nicer drawings in my collection of early game art: http://oi55.tinypic.com/1zgcj2u.jpg
16:43:33 <itidus20> i don't think such a pic exists anywhere on the internet.. its a particular fascination of mine
16:43:54 <itidus20> i mean.. sure i obtained each individual pic online.. but collected together like that? no
16:44:39 -!- oklopol has joined.
16:45:10 <itidus20> theres more pics but i tried to choose the ones which express what im trying to express
16:56:57 <Taneb> I've traced my ancestory back to the 1730's.
16:57:07 <Taneb> Nobody famous SO FAR
16:58:32 -!- sebbu has quit (Ping timeout: 252 seconds).
17:17:40 -!- sebbu has joined.
17:17:40 -!- sebbu has quit (Changing host).
17:17:40 -!- sebbu has joined.
17:28:42 -!- copumpkin has joined.
17:32:04 -!- derrik has joined.
17:32:10 -!- pumpkin has quit (Ping timeout: 260 seconds).
17:56:30 <Taneb> I think my great-great-great-great-great-great grandfather was christened in Hexham
17:59:28 <Vorpal> Taneb, how comes you even know that
17:59:54 <Taneb> Got it back to 1690
17:59:57 <Taneb> Trying to get further
18:04:23 <Taneb> My cousin's got it back to 1611
18:04:46 <Taneb> But he did my dad's side, I'm doing my mum's side
18:08:54 <Taneb> Huh, that's interesting
18:09:26 <Taneb> One of my ancestors may have emigrated to the US
18:12:46 -!- Behold has joined.
18:15:46 -!- pumpkin has joined.
18:16:49 -!- BeholdMyGlory has quit (Ping timeout: 276 seconds).
18:17:39 -!- copumpkin has quit (Ping timeout: 240 seconds).
18:21:37 -!- mtve has joined.
18:31:09 -!- CakeProphet has joined.
18:32:38 -!- Taneb has quit (Quit: He's a big quitter he is.).
18:37:32 -!- TeruFSX has quit (Ping timeout: 252 seconds).
18:41:44 -!- NihilistDandy has joined.
18:42:20 -!- Nisstyre has joined.
19:04:06 -!- CakeProphet has quit (Ping timeout: 240 seconds).
19:15:14 -!- Taneb has joined.
19:18:48 -!- oerjan has joined.
19:19:20 <oerjan> and a happy australian mailman reminder's day to all!
19:20:17 -!- derrik has quit (Quit: ramadan).
19:22:33 <oerjan> 04:37:16 <itidus20> i don't know what the signifigance of him being a freemason is in this regard
19:22:57 <itidus20> hey i dont know anything about freemasons
19:22:58 <oerjan> istr that the norwegian mass murderer was one (or claimed to be), too
19:23:07 <oerjan> 04:49:46 <coppro> listening to the entire music to lotr
19:23:07 <oerjan> 04:49:48 <coppro> is awesome
19:23:23 <oerjan> istr that the norwegian mass murderer liked to listen to lotr music too
19:23:38 <oerjan> enough conspiracy for you yet?
19:23:49 <fizzie> oerjan: Also ISTR that the Norwegian mass murderer was NORWEGIAN. Guess who else is! It might be you!
19:24:05 <itidus20> well lewis caroll was a suspect of being jack the ripper
19:24:24 <Taneb> Fun story I've got about that guy
19:24:43 <itidus20> his sexual interest in alice liddell has also been analyzed in various lights over the years
19:24:55 <itidus20> the story is back in his favor lately
19:25:06 <Taneb> Queen Victoria read Alice and Wonderland and loved it so much, she ordered a copy of the next publication by the author to be brought to her as soon as it was written
19:25:33 <Taneb> She didn't realise that Lewis Carrol's day job was a maths proffessor called Charles Lutwidge Dodgson
19:25:52 <oerjan> fizzie: to that i shall (mis-(?)) quote the major of oslo speaking in a mosque shortly after the event: "The terrorist was blond, white, called himself a Christian, and lived in my neighborhood. Yet you are not accusing me of being a terrorist; thank you for that."
19:26:11 <Taneb> She got a bit of surprise when a maths paper turned up a couple of months later
19:31:43 <oerjan> 06:49:25 * itidus20 drops into the room with a random topic. Do all imperative languages essentially feel the same? Are all their abstract machines similar?
19:32:39 <oerjan> i'm reminded of Icon, which uses the stack a bit differently than most (sometimes it returns to a frame temporarily _without_ unwinding the stack above)
19:33:50 <oerjan> although those which allocate frames on the heap are of course even more flexible. like scheme, although i don't know if you'd call that imperative (it's not _purely_ functional)
19:34:09 <itidus20> oerjan: it was 2 independant questions. which accidently merged
19:34:19 <oerjan> that's essential for having continuations, i think
19:34:45 <oerjan> so maybe you could say that the _basics_ are similar, but things might change when you add extra features.
19:35:14 <itidus20> when a fellow starts a new imperative language
19:35:34 <oerjan> he's likely to make it similar to what he already knows
19:35:35 <fizzie> oerjan: But, philosophically speaking, can you call it a "stack frame" if it's allocated from a heap?
19:35:37 <itidus20> and this fellow.. adds his own take on all the regular suspects
19:35:59 <itidus20> he adds a variant of: if, while, dowhile, for
19:36:21 <oerjan> fizzie: i'm not sure if scheme calls it a stack frame. they're environments for continuations and closures, i guess.
19:36:24 <itidus20> but... he is doing this very automatically
19:36:48 <itidus20> he is not truely going back to the roots and thinking "how can i do this"
19:36:50 -!- copumpkin has joined.
19:37:17 <itidus20> he is trapped by being surrounded by mountains of conventions
19:37:19 <oerjan> itidus20: yep. it's just a slightly more glorified version of our own wiki's brainfuck derivatives... slap on a different syntax but use essentially the same semantics.
19:37:34 <itidus20> oh don't get me wrong.. i've done it mysefl
19:38:28 <itidus20> and.. yeah the structured programming paradigm is so resistant to attacks
19:39:00 <fizzie> oerjan: Oh, I'm sure R5RS does not mention the word "stack" anywhere, it was just a generic sort of a question. Though I guess you can always use the highbrow term "activation record" instead.
19:39:22 -!- pumpkin has quit (Ping timeout: 255 seconds).
19:41:16 <itidus20> at school some teacher casually told us that these control structures are basically all you need
19:41:31 <itidus20> they didn't however mention that there are potential alternatives
19:42:36 <itidus20> Edsger Dijkstra VS the unstructured Jump...
19:42:55 <itidus20> In this long epic battle, Edsger recovered the three pieces of the triforce.
19:43:03 <olsner> nice, vim's syntax highlighting for sed supports EBCDIC
19:43:10 <itidus20> The sequence, the selection, and the other thing #-o
19:45:37 <itidus20> i can understand brainfucks popularity though
19:46:28 <itidus20> even the name sounds like what a heavy metal band might name a programming language
19:48:22 <itidus20> and this programing language goes out to our fans... Melancholy of the insect infested lemon tree..
19:48:36 -!- monqy has joined.
19:49:40 -!- Taneb has quit (Ping timeout: 260 seconds).
19:49:48 * oerjan waits for elliott to snatch that name
19:51:02 <itidus20> ive been listening to this band called dillinger escape plan
19:51:03 <oerjan> also some trout, halibut and great white
19:52:09 <oerjan> (for the latter, let's just say that this language has _very_ eager GC)
19:52:56 <itidus20> it was an experiment in implementation skills
19:55:46 <elliott> * oerjan waits for elliott to snatch that name
19:57:06 <itidus20> im really an awful coder.. like not a joke..
19:57:39 <elliott> "Haskell already has a grip on a large share of the top-1% programmers who are abstract-math geniuses. Monoids and category theory probably can never be understood by average programmers. I say this using myself as an example. I am a top-1% programmer with some background in simple abstract math and I am having a very lengthy mental absorption process for this stuff."
19:57:51 <fizzie> "Scathing Omniphallic Hammerheart of the Dead", suggests the Metal Song Title Generator. Alternatively, "Paranoid Norsk Sarcomancy of the Juggernaut". I suppose that thing works just as well for languages.
19:57:59 <elliott> I wonder if the idea that e might not be a top-1% programmer has ever crossed this person's mind.
19:58:13 <fizzie> At least 20% of programmers are top-1% programmers.
19:58:27 <oerjan> 07:22:44 <itidus20> a piece of information which was beyond the (quantum) computational power of the universe would be a kind of real-life garden of eden
19:58:44 <elliott> i like how they said monoid
19:59:39 <oerjan> from the godel's lost letter blog i've come to understand that there is a slight possibility that there might exist a polynomial-size circuit to solve an NP-complete problem of any size, even if there exists no polynomial algorithm which works for all sizes.
19:59:44 <monqy> associative binary operation with identity element? im so confused
20:00:04 <elliott> <itidus20> a piece of information which was beyond the (quantum) computational power of the universe would be a kind of real-life garden of eden
20:00:08 <elliott> this reminds me of fax's bit box.
20:02:57 <elliott> did we ever figure out the answer to that one btw oerjan
20:03:01 <itidus20> 1) how to make games 2) how to bring happiness into daily existence 3) the effortless erotica of women
20:03:38 <itidus20> 4) the correctness of pain and suffering and sacrifice and tragedy
20:03:46 <elliott> oerjan: given a black-box machine which outputs an uncomputable stream of bits (you can choose which stream), can you use it as an energy generator
20:04:03 <elliott> at least that's my recollection.
20:04:04 -!- shachaf has quit (Ping timeout: 252 seconds).
20:04:06 <monqy> make games to effortless erotica of women and bring happiness into daily existence and the correctness of pain and suffering and sacrifice and tragedy
20:04:12 <itidus20> 5) The first duty of every starship officer is to the truth, whether it's scientific truth or historical truth or personal truth! It is the guiding principle on which Starfleet is based.
20:04:17 <monqy> or make games about those things
20:04:23 <monqy> or make games about some of them to bring about others
20:04:44 <itidus20> well i like to ask "why games?"
20:04:47 <oerjan> elliott: well if it were an oracle for particle positions, you might be able to use it to build maxwell's demon?
20:04:55 <itidus20> why... games.. is it just for the money, or the potential fame?
20:04:59 <elliott> oerjan: that's not a mathematical stream of bits :P
20:05:12 <elliott> you're meant to pick Chaitin's constant or something like that :P
20:05:30 <monqy> itidus20: it's for the effortless erotica of women
20:05:43 <oerjan> so, at least entropy reversal. although i'm not sure how it fits with the theory that the entropy increases when maxwell's demon forgets previous particle positions
20:06:17 <elliott> I really can't see a way to do it without "cheating" like that, which is infuriating, because my intuition about entropy blah blah blah says it must be possibl
20:06:20 <itidus20> to me, gaming is not found in it's entirety in the domain of money and fame... nor in the domain of analysis and game theory and mathematics
20:06:34 -!- shachaf has joined.
20:06:46 <oerjan> elliott: well an uncomputable stream of bits would be likely indistinguishable from random
20:06:48 <itidus20> it is not found as a cathartic response to aggression and tension.. it is not entirely a means of developing hunting skills
20:06:53 <elliott> oerjan: well that's the point
20:07:01 <elliott> oerjan: it's true randomness, and the box outputs no heat or anything
20:07:41 <oerjan> itidus20: (6) learning to stop your lists of simple goals while they're still simple :P
20:07:41 <elliott> you just give it enough power to be able to drive the output mechanism (a LED, say, or maybe it just passes on the power if the bit is one), and it outputs the bitstream forever with no heat output
20:07:48 <itidus20> it is not simply a means of developing military skills and strategies
20:08:11 <itidus20> no, the meaning of gaming is NP hard to locate
20:08:27 <monqy> meaning of gaming can't be fun is it
20:08:29 <monqy> naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah
20:09:24 <elliott> oerjan: SO BASICALLY HELP WHY CAN'T I GENERATE POWER IT MUST BE POSSSIBLE
20:09:48 <itidus20> i think the problem these days with gaming is trying to have fun knowing that the world is in such peril
20:10:44 <oerjan> itidus20: some games are PSPACE hard, even worse (e.g. sokoban)
20:10:59 <elliott> and sooebegins ignoring me
20:11:47 <oerjan> elliott is a firm believer in my omniscience, to the point of thinking any non-sign of it must be me ignoring him
20:12:03 <elliott> oerjan: YOU CAN AT LEAST SAY "HM" :D
20:12:08 -!- Taneb has joined.
20:12:26 <itidus20> I started reading tom saywer before
20:13:18 <itidus20> and i thought.. this book... with its down to earth values and warmth.. is what is missing from the world
20:13:30 <oerjan> ^ul ((h)(m)):!S(~:^:S*a~^~*a*~:^):^
20:13:30 <fungot> (h)(m) ...out of stack!
20:13:43 <Taneb> That world hasn't gone!
20:13:46 <oerjan> ^ul ((h)(m)):^!S(~:^:S*a~^~*a*~:^):^
20:13:46 <fungot> hmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmhmmhmhhmmhhmhmmhhmmhmhhmmhhmhmmhmhhmhmmhhmmhmhhmhmmh ...too much output!
20:13:47 <Taneb> It's just moved on!
20:14:09 <lament> itidus20: in other words, it's poverty
20:14:14 <lament> poverty is what's missing from your world
20:14:25 <lament> just move to a really poor country, like Burma
20:15:08 <oerjan> hey norway is supposedly all warm and fuzzy this week. also, filthy rich.
20:15:29 <Taneb> The land of the Norwegians
20:15:38 <itidus20> lament: the way i see it is.. if i am the world.. burma is a toothache... and my legs and arms don't want to work to earn the money to fix the toothache
20:15:50 <lament> itidus20: it's not a toothache
20:15:57 <oerjan> Taneb: the psychologists are saying we're in a "love psychosis"
20:15:59 <lament> itidus20: all the down to earth values and warmth are there, in burma
20:16:09 <Taneb> oerjan: What, you and me>
20:16:13 <lament> itidus20: if you make them rich, the values and the warmth will go away
20:16:25 <elliott> `addquote <Taneb> Oh, Norway <Taneb> The land of the Norwegians
20:16:30 <lament> that's how it happened in america and europe
20:16:48 <lament> people don't need values and warmth when they got money
20:16:50 <itidus20> so you may wonder.. whats my trick to caring
20:17:14 <itidus20> i am living in a simple way.... augmented admittedly by the internet
20:17:27 <elliott> lament: living in poverty in an authoritarian state: the true road to happiness?
20:17:44 <lament> elliott: according to some.
20:18:07 <lament> if you want family values, then yes, certainly
20:18:19 <lament> if you want support from others, then yes
20:18:23 <elliott> according to what you said.
20:18:39 <lament> such things are necessary in poor places because people can't survive without them at all. so they exist
20:18:59 <elliott> lament: so how long have you spent living like that in burma?
20:19:03 <elliott> when are you moving there permanently?
20:19:08 <lament> that's why "cultural conservatism" goes away as countries become rich. people don't need it anymore
20:19:11 <elliott> will you have an irc link?
20:19:21 <itidus20> lament: i literally have no income... my brother supplies internet, and hand me down PC parts... my mom provides electricity, groceries, bedroom.. my relatives and brother occasionally gave me food
20:20:34 <itidus20> anyway heres mark twains pic, gotta love it: http://en.wikipedia.org/wiki/File:Mark_Twain_by_AF_Bradley.jpg
20:20:51 <lament> elliott: you're boring
20:21:21 <elliott> lament: is that another way of saying the answers are exactly what i expected
20:21:54 <elliott> so you _are_ moving to Burma?
20:22:19 <lament> talking to you is not interesting because you never have anything intelligent to say
20:22:32 <lament> you're probably the main reason why i'm not in this channel often
20:22:45 <elliott> would you like to talk about your feelings
20:22:48 <Taneb> Is Bearpark near Stockton?
20:26:18 -!- cheater has joined.
20:27:19 <elliott> Taneb: about twenty-three miles away, it looks like
20:27:38 <Taneb> They could be the same person
20:30:38 <oerjan> <Taneb> oerjan: What, you and me> <-- um no, a large fraction of the norwegian population.
20:35:31 -!- Patashu has joined.
20:36:29 -!- TeruFSX has joined.
20:43:16 -!- cheater has quit (Ping timeout: 255 seconds).
20:43:55 -!- Taneb has quit (Ping timeout: 260 seconds).
20:56:54 -!- pumpkin has joined.
20:58:41 -!- copumpkin has quit (Ping timeout: 264 seconds).
21:02:53 <lambdabot> Foreign unsafePerformIO :: IO a -> a
21:02:53 <lambdabot> Data.ByteString.Internal inlinePerformIO :: IO a -> a
21:02:53 <lambdabot> System.IO.Unsafe unsafePerformIO :: IO a -> a
21:03:36 <oerjan> you are treading dangerous paths, grasshopper...
21:15:37 -!- cheater has joined.
21:16:13 -!- pumpkin has quit (Quit: Computer has gone to sleep.).
21:18:04 -!- FireFly has quit (Quit: swatted to death).
21:18:18 -!- OxA5EA has joined.
21:21:07 <lambdabot> Not in scope: data constructor `OxA5EA'
21:21:47 <oerjan> now that is _much_ more obvious.
21:21:47 -!- GreaseMonkey has joined.
21:21:52 -!- OxA5EA has left.
21:22:09 <oerjan> his secret revealed, he left
21:23:51 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
21:23:51 <lambdabot> Prelude ($!) :: (a -> b) -> a -> b
21:24:30 <fizzie> That looks safe enough; it even has the word "safe" in it.
21:25:00 <elliott> anyway, my next two languages: Piece of valuable specifics that should encourage yourself to order live chat software and Melancholy of the insect infested lemon tree
21:30:12 <Lymee> > printStrLn $ unsafeCoerce 0
21:30:13 <lambdabot> Not in scope: `printStrLn'Not in scope: `unsafeCoerce'
21:30:22 <Lymee> What would that do?
21:30:47 <elliott> Lymee: Depends what printStrLn is.
21:30:57 <elliott> Depends on the GHC version.
21:31:31 <oerjan> !haskell putStrLn $ Unsafe.Coerce.unsafeCoerce 0
21:31:41 <Lymee> Why is it that unsafeCoerce seems....
21:31:47 <elliott> oerjan: I imagine it prints out an empty string
21:31:50 <elliott> because of pointer tags and []
21:31:52 <Lymee> A lot more dangerous than unsafePerformIO?
21:32:02 <oerjan> !haskell print $ Unsafe.Coerce.unsafeCoerce 0
21:32:47 <oerjan> !haskell print (Unsafe.Coerce.unsafeCoerce 0 :: String)
21:32:56 <Lymee> :t \x -> ((\y -> y y) (\r -> r))
21:32:57 <lambdabot> Occurs check: cannot construct the infinite type: t = t -> t1
21:32:57 <lambdabot> Probable cause: `y' is applied to too many arguments
21:33:14 <elliott> Lymee: needs more newtypes
21:33:16 <elliott> oerjan: oh wait it is here
21:33:19 <oerjan> Lymee: unsafeCoerce can easily segfault if you're unlucky
21:33:44 <oerjan> now, you can _write_ unsafeCoerce with unsafePerformIO, but it takes a bit of work.
21:33:50 <Lymee> :t \x -> (\f -> f f) (\r -> r r)
21:33:50 <lambdabot> Occurs check: cannot construct the infinite type: t = t -> t1
21:33:50 <lambdabot> Probable cause: `f' is applied to too many arguments
21:34:30 <Lymee> Is it possible to write a function a->b that never returns?
21:34:37 <Lymee> As in, actually have that type inferred
21:35:40 <oerjan> using only lambda, i think not
21:37:18 <oerjan> (by which i excluded undefined etc.)
21:39:20 <Vorpal> what about a recursive function that never returns?
21:39:57 <oerjan> you cannot do general recursion with just lambdas
21:40:21 <oerjan> it'll always hit that infinite type problem
21:40:23 <elliott> well those things are part of real haskell function writing, so i assume Lymee would include them
21:40:46 <oerjan> elliott: i wouldn't assume that after the :t \x -> (\f -> f f) (\r -> r r) thing
21:41:13 <elliott> oerjan: it's Lymee, nonsensical messing with lambdabot is a given
21:41:18 <elliott> the infinite type problem? not really
21:41:28 <elliott> that doesn't involve any functions or anything
21:41:40 <oerjan> elliott: that's not "just lambdas"
21:41:56 <elliott> oerjan: Lymee _never said_ just lambdas
21:42:40 <elliott> newtype X a = X { un :: X a -> a }
21:42:41 <elliott> \x -> un (X (\f -> un f f)) (X (\r -> un r r))
21:42:41 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:42:42 <oerjan> elliott: your comment was in the context of my comment.
21:42:45 <elliott> unfortunately lambdabot can't run that or anything
21:42:52 <elliott> i was trying to answer Lymee
21:43:15 <fizzie> (unsafeCoerce 42 :: ByteString) tends to segfault quite reliably.
21:43:47 -!- comex_ has changed nick to comex.
21:44:14 <oerjan> presumably ByteString has no nullary constructor
21:46:11 <elliott> Prelude> Unsafe.Coerce.unsafeCoerce (Just ()) :: [()]
21:46:44 <elliott> I love how the memory layout works out perfectly apart from the having one fewer field thing
21:46:55 <fizzie> You can also unportably get bits out of floats with it.
21:46:57 <fizzie> !haskell print (Unsafe.Coerce.unsafeCoerce 1.0 :: Int)
21:48:37 <Lymee> !haskell print (Unsafe.Coerce.unsafeCoerce 1.0 :: Bool)
21:49:17 <Lymee> !haskell print (Unsafe.Coerce.unsafeCoerce 42 :: Float)
21:49:21 <elliott> (diff) (hist) . . N Fairly intriguing review of shopping cart software package prepared by renowned soccer player or a person named very same as that soccer player.; 21:41 . . (+8,490) . . MarshallNielsen (Talk | contribs) (New page: Let's encounter it; most businesses right now need to possess a presence online. The challenge is, that most small business enterprise entrepreneurs are rather actually
21:49:22 <elliott> (diff) (hist) . . N Incredibly fascinating evaluation of shopping cart software package prepared by well-known soccer professional or a person known as exact same as that soccer player.; 21:27 . . (+8,400) . . MarshallNielsen (Talk | contribs) (New page: Let's face it; most organizations today will need to have a presence on the web. The situation is, that most modest organization proprietors are qu
21:49:25 <elliott> ite truthfully terrified on the work it w...)
21:49:31 <elliott> the titles are getting even better
21:49:47 <Lymee> !haskell print (Unsafe.Coerce.unsafeCoerce 0 :: Float)
21:49:53 <Lymee> !haskell print (Unsafe.Coerce.unsafeCoerce 1 :: Float)
21:50:13 <Lymee> !haskell print $ map (Unsafe.Coerce.unsafeCoerce :: Float)) [1..]
21:50:24 <Lymee> !haskell print $ map (Unsafe.Coerce.unsafeCoerce :: Float) [1..]
21:50:54 <Lymee> !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce x :: Float) [1..]
21:50:57 <EgoBot> [1.0e-45,3.0e-45,4.0e-45,6.0e-45,7.0e-45,8.0e-45,1.0e-44,1.1e-44,1.3e-44,1.4e-44,1.5e-44,1.7e-44,1.8e-44,2.0e-44,2.1e-44,2.2e-44,2.4e-44,2.5e-44,2.7e-44,2.8e-44]
21:51:14 <Lymee> !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce x :: Bool) [1..]
21:51:17 <EgoBot> [False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False]
21:51:21 <Lymee> !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce x :: Bool) [0..]
21:51:24 <EgoBot> [False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False,False]
21:51:37 -!- NihilistDandy has quit (Ping timeout: 246 seconds).
21:51:46 <Lymee> !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce x :: Int) [True, False]
21:51:49 <EgoBot> [8646911284555690264,1110514680]
21:52:04 <elliott> > unsafeCoerce (99::Integer) :: Int
21:52:20 <Lymee> !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce ((Unsafe.Coerce.unsafeCoerce x :: Int)+1) :: Bool) [True, False]
21:52:27 <Lymee> !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce ((Unsafe.Coerce.unsafeCoerce x :: Int)) :: Bool) [True, False]
21:58:45 -!- NihilistDandy has joined.
22:03:55 -!- NihilistDandy has quit (Ping timeout: 276 seconds).
22:04:58 <elliott> oerjan: I wish there was some kind of higher-order DSL for describing the kind of compositions that turn into nested clusterfucks of (.)
22:04:58 <elliott> I'm not sure what it'd look like, though... maybe it could assign a name to every argument, and... :D
22:08:06 -!- HackEgo has joined.
22:08:36 <elliott> "Funnily because of the ordering of Bool it holds implies == (<=)."
22:12:21 <oerjan> elliott: iirc nested clusterfucks of (.) correspond to lambdas where every argument is used exactly once, in order. except that a few exceptions become id instead.
22:12:43 <elliott> oerjan: well, I mean, nested clusterfucks mixed in with other things
22:12:48 <oerjan> @pl \a b c d e -> a (b c d) e
22:13:54 <oerjan> elliott: also, you're familiar with (iirc) conal elliott's result etc. notation?
22:14:28 -!- GreaseMonkey has quit (Quit: The Other Game).
22:14:33 <elliott> but I know of it, and read a post once
22:16:40 -!- cheater_ has joined.
22:19:34 -!- cheater has quit (Ping timeout: 255 seconds).
22:24:17 -!- NihilistDandy has joined.
22:39:01 -!- TeruFSX has quit (Ping timeout: 258 seconds).
23:08:12 <elliott> oerjan: Is nesting of loops required for brainfuck to be [[Turing-complete]]? (I'm asking because I'm trying to show reduction with another esolang where nested loops would be difficult.) —[[User:Maharba|Maharba]] 22:24, 31 July 2011 (UTC)
23:08:30 <elliott> I know dbfi has seven deep loops, or something
23:10:13 <Patashu> it's almost certianly required otherwise you can't have very interesting logic
23:10:17 <oerjan> well if you have only one level of loops, then what's inside a loop is only ><+- (ignoring .,)
23:11:29 <elliott> yeah i know it's not tc without nested loops
23:12:06 <oerjan> ah, didn't really notice that it was a quote.
23:12:35 <Patashu> If you have no nested loops you cna never 'regress' in state
23:12:49 <Patashu> is my rough idea of the proof
23:12:59 <oerjan> well it could be proved by solving the halting problem for each loop
23:13:07 <elliott> http://esolangs.org/w/index.php?title=HQ9%2B&curid=1036&diff=24089&oldid=22953
23:13:12 <elliott> EVEN THE STRINGS IT PRINTS
23:14:34 <oerjan> if a loop is unbalanced, then you can only perform it so many times before going periodic, so halting for that can be determined.
23:15:16 <oerjan> (so many times after going off the original tape)
23:16:00 <monqy> hq9+ was kind of okay, but hq9+ derivatives make me sad
23:16:25 <oerjan> if it's balanced, well how does that balanced loop optimization work in general...
23:16:59 <elliott> oerjan: ok post that on the talk page
23:17:27 <oerjan> oh hm you are merely adding a given vector to the touched cells each time.
23:17:58 <oerjan> and it's a question of whether the loop test cell will ever hit 0 or not
23:21:13 -!- elliott has quit (Ping timeout: 246 seconds).
23:25:01 -!- NihilistDandy has quit (Ping timeout: 240 seconds).
23:27:15 -!- lament has quit (Ping timeout: 260 seconds).
23:27:38 -!- NihilistDandy has joined.
23:41:12 <cheater_> how do i get a new pet? i tried sacrificing anything i can come up with and all i could get is some demons when i sacrifice priests
23:42:57 -!- copumpkin has joined.
23:59:08 -!- lament has joined.