←2011-06 2011-07 2011-08→ ↑2011 ↑all
2011-07-01
00:05:55 <elliott> the best kind of nough
00:07:44 <oerjan> "Nough (Persian: نوق) is a small village in Rafsanjan, south of Iran in the province of Kerman."
00:08:17 <elliott> forged in angel hellfire
00:35:58 <nooga> baahahahs
00:36:37 <elliott> nooga is weird
00:36:45 <oerjan> *drunk
00:37:06 <oerjan> assuming those 16 girls mentioned above actually exist
00:38:24 <elliott> now now, he's not cheater
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:04 <elliott> so, i think yes
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:03 <elliott> dun dun DUN
00:42:04 -!- zzo38 has joined.
00:42:17 <NihilistDandy> WAIT A MINUTE
00:42:22 <NihilistDandy> I've spotted a hole in this story
00:42:33 <oerjan> uh oh
00:42:46 <oerjan> nooga: BUSTED
00:42:46 <NihilistDandy> There are no women in Poland.~
00:42:55 <oerjan> nooga: SCRATCH THAT
00:43:02 <NihilistDandy> lol
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:43:13 <elliott> none whatsoever
00:43:34 <NihilistDandy> Those women could be from anywhere
00:43:42 <NihilistDandy> Most of them are just stock photos, anyway
00:43:44 <NihilistDandy> :P
00:44:19 <elliott> proven
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:47:51 <NihilistDandy> Esoteric, indeed
00:48:35 <elliott> This supposed ... ``nooga''
00:48:38 -!- tclifton has joined.
00:48:38 <elliott> --NihilistDandy
00:48:47 <elliott> oh tclifton looks new, should we lynch him now or later or...
00:49:01 <elliott> (also hi)
00:49:14 * quintopia pays down the rope
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:35 <zzo38> This part works
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:34 <elliott> rip tclifton
00:52:50 <elliott> <NihilistDandy> Are you decrementing me, commenting me, or attributing that to me? :D
00:52:51 <elliott> latter
00:52:57 <elliott> you totally said "* tclifton (~tclifton@212.101.233.220.static.exetel.com.au) has joined #esoteric"
00:53:22 <NihilistDandy> It's all my fault
00:58:56 <nooga> aaah
00:58:59 <nooga> screw you
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.
00:59:49 <monqy> bye tibuda
01:01:51 <elliott> NihilistDandy: you're a nolife
01:03:55 <NihilistDandy> I guess so
01:05:41 <nooga> hhhhh
01:07:16 <monqy> does it feel good
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:09:35 <NihilistDandy> Or something.
01:09:49 <monqy> nolife nolife
01:10:17 <NihilistDandy> Feels good, man
01:12:57 <zzo38> Do you know why setting the console map does that?
01:13:06 <zzo38> And how to prevent it?
01:13:52 <NihilistDandy> zzo38: You might find more input on #linux
01:13:53 <elliott> NihilistDandy:
01:13:53 <elliott> NihilistDandy:
01:13:54 <elliott> NihilistDandy:
01:13:54 <elliott> NihilistDandy:
01:13:56 <elliott> ur welcum
01:14:08 <NihilistDandy> I HAVE... THE POWER!
01:14:15 <monqy> nolife power
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:18:03 <elliott> carbon
01:23:14 <oerjan> that's not germanium to the discussion
01:26:29 <NihilistDandy> No need to get fermium with poor elliott
01:27:41 <oerjan> oh, sodium.
01:29:18 <oerjan> if he speaks like that he just has to sulphur the consequences.
01:30:33 <nooga> berp
01:31:09 <NihilistDandy> I suppose he'll just have to grin and barium
01:32:07 <nooga> polonium
01:32:28 <NihilistDandy> Don't be so niobium
01:32:47 <oerjan> this is not precisely fluoride prose
01:33:04 <oerjan> *fluorine
01:33:49 <nooga> unbibium
01:33:50 <NihilistDandy> Don't radon my parade
01:33:56 <CakeProphet> I like breathing oxygen.
01:34:57 <oerjan> CakeProphet: how boron
01:35:26 <nooga> carbon, hydrogen, oxygen
01:35:44 <nooga> i just had some
01:36:12 <oerjan> how iron-nickel
01:36:43 <nooga> goddamn oerjan is the master of puns
01:36:46 <nooga> really
01:36:56 -!- elliott has quit (Remote host closed the connection).
01:37:00 <oerjan> yeah they're all gold
01:37:21 -!- elliott has joined.
01:37:28 <nooga> elliott: seen that?
01:37:33 <NihilistDandy> A nobelium effort
01:38:02 <elliott> nooga: seen what
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:38:34 <elliott> heh
01:38:43 <monqy> pun war pun war
01:39:00 <oerjan> oh no, where will this lead
01:39:12 <nooga> thank god i understand this games
01:39:23 <nooga> at least that
01:39:54 <oerjan> it's always good to have a silver of understanding
01:41:19 <NihilistDandy> I'll have your head on a platinum
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:43:54 <NihilistDandy> Drop the actinium or hit the rhodium
01:43:55 <oerjan> no just francium
01:44:10 <NihilistDandy> nooga is a serial arsenic
01:44:40 <nooga> what an antimony...
01:44:42 <nooga> er
01:44:54 <nooga> iron
01:44:55 <nooga> y
01:45:36 <NihilistDandy> You don't know the hafnium
01:46:04 <nooga> go to californium
01:47:43 <nooga> how tin
01:47:45 <NihilistDandy> Silicon Valley?
01:47:58 * pikhq can has Google+
01:48:07 <nooga> i die
01:48:09 <coppro> pikhq: as in you do or you want?
01:48:27 <pikhq> coppro: I do.
01:48:30 * nooga can has bed
01:48:34 <nooga> right now
01:48:38 <nooga> good night
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:49:57 <NihilistDandy> Now the helium can begin
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:45 <NihilistDandy> coppro: Except that they're at capacity right now
01:50:53 <pikhq> Strange, I literally *just* got an invite.
01:50:58 <pikhq> And am on.
01:51:02 <NihilistDandy> Oh, wow
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:51:30 <coppro> or so I am told
01:51:36 <coppro> this is hearsay
01:51:45 <NihilistDandy> We should test it
01:51:49 <NihilistDandy> pikhq: Invite people
01:52:14 <elliott> pikhq: hey give me an invite i will add nobody
01:52:15 <elliott> because
01:52:16 <elliott> i have no friends
01:52:49 <NihilistDandy> T_T
01:53:00 <elliott> i will add you though because
01:53:01 <elliott> if you invite me
01:53:02 <elliott> you will be
01:53:03 <elliott> my first
01:53:05 <elliott> friend ;_______;
01:53:56 <NihilistDandy> ever
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:02:30 <elliott_> gee what a checkbox
02:02:58 <monqy> good checkbox
02:03:45 <NihilistDandy> At least it's there
02:03:49 <elliott_> MAKING MY FIRST COMMENT ZOMG I SPECIAL
02:03:58 <NihilistDandy> Keeping Facebook out of my business is a bitch
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:25 <monqy> year abc
02:07:35 <elliott_> the interface to this is ok
02:07:42 <elliott_> oh my god i can add agora-business
02:07:45 <elliott_> so...tempting...
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:17 <elliott_> am i in the same circle
02:11:24 <elliott_> oh sorry if you didn't want me to say his name i'm tired
02:11:32 <pikhq> No big.
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:21 <NihilistDandy> It sounds so... circular
02:12:34 <pikhq> I dunno.
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:14:45 <elliott_> contravarsial, google
02:14:53 <NihilistDandy> Very nice
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:12 <CakeProphet> :t (0:1:)
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:13 <lambdabot> namely `:' [infixr 5]
03:25:23 <CakeProphet> such a shame.
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:30 <CakeProphet> sections with associativity?
03:26:40 <elliott_> MultiOperatorSections
03:26:52 <CakeProphet> :t (+ 3 - 4)
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:26:53 <lambdabot> namely `-' [infixl 6]
03:26:55 <CakeProphet> ah. yes.
03:27:15 <elliott_> along with IdiomBrackets and MLModules :)
03:27:34 <CakeProphet> more like IdiotBrackets hurrrr
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:31:42 <elliott_> they're that, yes
03:31:47 <elliott_> she implements them
03:32:08 <elliott_> conor mcbride makes me want a twitter
03:32:10 <elliott_> just to get his tweets
03:32:23 <CakeProphet> so is it like a overloaded thing?
03:32:24 <monqy> is she any good then?
03:32:38 <elliott_> CakeProphet: uh. no.
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:32:49 <monqy> I forgot the rest
03:33:00 <elliott_> monqy: yes it's great, it also lifts data to constructorless datatypes, emulating datakinds
03:33:07 <monqy> mmmmmm
03:33:17 <elliott_> read
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:21 <elliott_> they'll make you happy
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:33:49 <CakeProphet> constructorless, you say?
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:36:05 <elliott_> (but that part is)
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:38:41 <elliott_> heh, i was right
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:44 <monqy> :(
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:36 <monqy> delicious
03:46:38 <pikhq> Deewiant: They lie.
03:46:47 <pikhq> Deewiant: Busybox would be much more comfortable.
03:46:55 <Deewiant> Why's that
03:47:11 <pikhq> Busybox is, surprisingly, a fairly full-featured userspace.
03:47:30 <elliott_> busybox sucks tho
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:49:35 <elliott_> hmm
03:49:36 <elliott_> or did i find one
03:49:37 <elliott_> i forget
03:50:02 <NihilistDandy> pikhq: So just do it with busybox?
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:49 <coppro> pikhq: oh dear
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:38 <NihilistDandy> Or any *NIX, for that matter
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:52:43 <NihilistDandy> O(n^2)?
03:53:20 * NihilistDandy didn't even read the question
03:53:34 <elliott_> pikhq: how did you invite me btw
03:53:36 <elliott_> NihilistDandy: gj
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:54:00 <elliott_> pikhq: nice
03:54:19 <NihilistDandy> pikhq: Message, please? :D
03:54:25 <NihilistDandy> elliott_: How far off was I?
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:04:56 <elliott_> misguided."
04:04:58 <elliott_> oh, linus is wrong
04:05:00 <elliott_> that's rare
04:07:06 <NihilistDandy> lol
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:13:33 <elliott_> scheduling etc.?
04:14:01 <pikhq> I'd need more information to say.
04:14:15 <elliott_> have i mentioned
04:14:29 <elliott_> @ @ @ is great
04:14:29 <elliott_> @ we all appreciate
04:14:32 <pikhq> Though the odds are good glibc is to blame.
04:15:23 <elliott_> @ has no libc
04:15:25 <elliott_> @ @ @
04:15:34 <CakeProphet> @_@
04:15:59 <elliott_> :)_:)
04:16:02 <elliott_> (:_(:
04:16:07 <elliott_> :)_(:
04:16:09 <elliott_> (:_:)
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:37 <CakeProphet> I am not finding anything..
04:16:41 <CakeProphet> http://graphcomp.com/pogl.cgi?v=0111s3B2
04:16:53 <CakeProphet> this site obviously has a bias towards Perl...
04:16:59 <elliott_> benchmarking languages
04:17:02 <elliott_> >youlose.jpg
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:19:59 <NihilistDandy> Awesome
04:20:06 <NihilistDandy> FSOV awesome
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:13 <pikhq> Personally.
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:49 <NihilistDandy> pikhq: Have you seen the "serious" Super PACs?
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:02 <NihilistDandy> Hang on, I'll find some links
04:21:07 <CakeProphet> elliott_: what?
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:09 <NihilistDandy> pikhq: http://www.youtube.com/watch?v=bv_WG0v_kO0
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:33 <coppro> *Perl 5
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:48 <elliott_> No.
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:26:34 <NihilistDandy> ^
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:41 <CakeProphet> ...k?
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:21 <CakeProphet> it's just something to be picky about..
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:04 <zzo38> Is it possible?
04:34:08 <CakeProphet> ..but you can't say "there is no Python language" as a result.
04:34:10 <zzo38> I think so.
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:34:52 <elliott_> nope, there's a program
04:34:54 <monqy> whats python
04:34:58 <elliott_> its called cpython
04:35:03 <monqy> oh thanks
04:35:03 <elliott_> theres some other programs that try to imitate it
04:35:05 <elliott_> there is no language
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:10 <monqy> bad bills?
04:36:25 <pikhq> No, utterly trivial bills.
04:36:28 <monqy> hehehe
04:36:29 <pikhq> 15 of them name buildings.
04:36:34 <monqy> wow what
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:36:51 <elliott_> coppro: name horses
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:32 <coppro> es
04:37:33 <monqy> murder is okay when it's manly
04:37:34 <coppro> *yes
04:37:38 <coppro> for some definition of crush
04:37:39 <elliott_> CakeProphet: haha
04:37:43 <elliott_> CakeProphet: i just had the tab open
04:37:46 <elliott_> thanks to crushing on him
04:37:49 <elliott_> and he linked to the new e-pig post
04:37:50 <elliott_> and
04:37:50 <elliott_> yeah
04:38:07 <monqy> do you dream about conor mcbride
04:38:30 <elliott_> yes
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:53 <monqy> all by yourself
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:39:53 <CakeProphet> *invalidates
04:40:02 <pikhq> We're travelling fast towards default.
04:40:06 <monqy> haha benchmarking
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:40:47 <elliott_> but there is no such language
04:41:05 <CakeProphet> okay, I will never say Python again.
04:41:11 <monqy> this depends on the definition of language doesnt it
04:41:12 <CakeProphet> because it does not exist.
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:20 <elliott_> you can say python
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:49 <elliott_> you know why?
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:50 <coppro> pikhq: I count 23
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:07 <zzo38> monqy: !!!!???
04:46:21 <monqy> oh wait perl doesn't exist either
04:46:21 <monqy> sorry
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:08 <monqy> deeply confused.
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:26 <monqy> ephemeral sucks
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:14 <NihilistDandy> monqy: Well, then you'd have Haskell~
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:32 <NihilistDandy> pikhq: ~ means sarcasm
04:49:39 <monqy> oh
04:49:42 <monqy> I thought it meant singing
04:49:46 <NihilistDandy> lol
04:49:48 * CakeProphet wrote a program in the C language yesterday.
04:49:52 <monqy> which C
04:49:55 <CakeProphet> C.
04:49:58 <monqy> what's C
04:50:03 <pikhq> There's two such languages.
04:50:04 <CakeProphet> I dunno, I was pretty confused myself.
04:50:06 <pikhq> Soon to be 3.
04:50:18 <monqy> was it C99
04:50:20 <pikhq> NihilistDandy: Strange, I thought it was a vaguely sing-songy type thing. だね〜?
04:50:33 <CakeProphet> I dunno, I couldn't find the spec.
04:50:34 <zzo38> And then there are variants of C and implementation specific features of C programs, in addition to others too.
04:50:55 <CakeProphet> I'm bad at googling.
04:51:02 <monqy> would you like me to find the spec~
04:51:19 <CakeProphet> Sure. Go find the spec for C.
04:51:23 <monqy> what
04:51:35 <monqy> which version
04:51:45 <monqy> which C
04:51:47 <monqy> , that is
04:51:47 <CakeProphet> I don't know. I thought I explained this...
04:51:52 <CakeProphet> we are going in circles now...
04:52:11 <zzo38> I happen to like a subset of the "GNU89" version of C
04:52:31 <CakeProphet> I like the subset of C that is quines.
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:52:48 <NihilistDandy> *songy
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:14 <pikhq> Have fun!
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:01 <CakeProphet> NihilistDandy: loldongs
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:36 * CakeProphet didn't know how wrong he was.
04:54:59 <monqy> C is a family of languages
04:55:10 <NihilistDandy> An incestuous family of languages
04:55:17 <monqy> gross
04:56:20 <CakeProphet> a happy family?
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:36 <CakeProphet> +say ... -_-
04:59:37 <monqy> if only python were formally specified
04:59:47 <CakeProphet> yes, then it could be one language, like C.
04:59:53 <monqy> what
05:00:05 <monqy> proper implementations of python _must not have_ tail call optimisation
05:00:13 <CakeProphet> haha. yes. it's required.
05:00:29 <CakeProphet> by the... er wait, by..
05:00:36 <CakeProphet> uh...
05:00:42 <monqy> by the cpython. by the guidos brain.
05:00:42 <CakeProphet> by the CPython source!
05:01:48 <CakeProphet> !perl $x = hello => $x;
05:01:59 <CakeProphet> !perl print $x = hello => $x;
05:02:00 <EgoBot> hellohello
05:02:12 <monqy> what just happened :(
05:02:22 <CakeProphet> dunno. Consult the Perl spec.
05:02:29 <CakeProphet> I think it's in /bin/perl
05:02:33 <monqy> gross
05:02:34 <monqy> !perl print $x = 5 => $x = 6;
05:02:35 <EgoBot> 66
05:02:39 <monqy> snazzy
05:03:14 <monqy> !perl print $x = 5 => $x = 6 => $x = $x;
05:03:15 <EgoBot> 666
05:03:20 <CakeProphet> I'm actually not sure what is happening now...
05:03:34 <CakeProphet> I would expect 566
05:03:53 <monqy> !perl print $x = $x => $x = 5 => $x = 6;
05:03:53 <EgoBot> 666
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:05:33 <EgoBot> 511
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:06:28 <EgoBot> 5111
05:06:35 <monqy> dang it perl
05:07:10 <monqy> !perl print $x => ($x = 5) => $x
05:07:11 <EgoBot> 555
05:07:20 <monqy> how did it figure that out
05:07:46 <CakeProphet> > (print 1) => (print 2)
05:07:47 <lambdabot> <no location info>: parse error on input `=>'
05:07:55 <CakeProphet> !perl (print 1) => (print 2)
05:07:56 <EgoBot> 12
05:08:01 <CakeProphet> good question. :P
05:08:10 <CakeProphet> Perl can see the future, obviously.
05:08:43 <elliott_> See reverse state monad.
05:08:47 <elliott_> god that monad is so hot.
05:08:50 <elliott_> I have a mancrush on it.
05:08:59 <elliott_> I crushed it with my minds.
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:38 <elliott_> lol
05:09:52 -!- fizzie has joined.
05:10:30 <CakeProphet> !perl print $x, ($x=5)
05:10:30 <EgoBot> 55
05:10:33 <CakeProphet> ...see, what.
05:10:49 <monqy> !perl print ($x=5), $x
05:10:49 <EgoBot> 5
05:10:54 <monqy> whoa!!
05:11:10 <monqy> !perl print ($x=5) => $x
05:11:10 <EgoBot> 5
05:11:16 <elliott_> => is just ,
05:11:19 <elliott_> so it's sequencing
05:11:25 <elliott_> <monqy> !perl print $x => ($x = 5) => $x
05:11:25 <elliott_> <EgoBot> 555
05:11:27 <monqy> but with one special thing so why not have another
05:11:33 <elliott_> print ($x, $x = 5, $x)
05:11:34 <elliott_> now
05:11:37 <elliott_> if you look at how this evaluates
05:11:38 <elliott_> it
05:11:38 <elliott_> uh
05:11:41 <monqy> it allows a bareword on the left right?
05:11:43 <elliott_> that makes no sense :(
05:11:47 <elliott_> maybe it evaluates assignments first
05:11:48 <elliott_> or something
05:11:50 <elliott_> monqy: yeah
05:11:57 <elliott_> oh
05:12:01 <monqy> but then what about ($x=5), $x
05:12:01 <elliott_> monqy: hm
05:12:01 <elliott_> monqy: maybe it turns into
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:12:15 <elliott_> hmm
05:12:17 <elliott_> oh well
05:12:23 <elliott_> ""
05:12:32 <CakeProphet> !perl @x = ($x, $x=5); print @x
05:12:33 <EgoBot> 55
05:12:36 <CakeProphet> ...or not.
05:12:45 <CakeProphet> so it's a list operator thing.
05:13:02 <monqy> perl is confusing
05:13:04 <monqy> im confused
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:12 <NihilistDandy> What's confusing about it?
05:14:29 <CakeProphet> the evaluation order was unexpected.
05:14:33 <elliott_> i always hate when people post about areas of my expertise because they'll be wrong
05:14:37 <NihilistDandy> Ah, that
05:15:23 <CakeProphet> !perl @z = (my ($x=$y, $y=2)); print @z;
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:30 <EgoBot> ab2
05:16:33 <CakeProphet> lol
05:16:50 <CakeProphet> !perl (@z = ($x=$y, $y=2)) = ('a','b'); print @z, ' ', $x, $y;
05:16:50 <EgoBot> ab 2
05:17:16 -!- zzo38 has joined.
05:17:56 <CakeProphet> !perl (@z = ($x=$y, $y=2)); print @z, ' ', $x, $y;
05:17:56 <EgoBot> 2 2
05:18:15 <CakeProphet> okay, these are expected...
05:18:42 <CakeProphet> but now I don't know what is expected and what is unexpected...
05:18:48 <CakeProphet> so maybe not.
05:18:53 <monqy> what if perl had a real spec
05:18:57 <monqy> would that help
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:03 <CakeProphet> to #perl!
05:20:07 <CakeProphet> the official spec of perl.
05:20:17 <monqy> im afraid
05:20:22 <monqy> is it a good place
05:22:03 <CakeProphet> not really. it's occasionally helpful.
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:27:43 <pikhq> Also, valid 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:54 <monqy> in perl it is
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:15 <CakeProphet> interesting...
05:33:18 <elliott_> "is wrong" -- oh noes ethical judgement
05:36:38 <NihilistDandy> They're not called perl monks for nothing
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:22 <CakeProphet> yes I am having similar difficulties.
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:39:18 <NihilistDandy> ~
05:39:44 <NihilistDandy> Sort of
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:03 <EgoBot> 322 24
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:41:44 <CakeProphet> so this makes sense.
05:41:53 * NihilistDandy nods
05:41:56 <CakeProphet> /especially/ languages that don't exist.
05:42:00 <NihilistDandy> Just don't drink the Wall-aid too hard
05:42:30 <CakeProphet> sounds dangerous.
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:43:52 <newsham> perl -Wall
05:43:58 <newsham> --pedantic
05:44:48 <NihilistDandy> lol
05:44:55 <CakeProphet> !perl sub test {$_[0] = 2} $x = 1; test($x); print $x;
05:44:55 <EgoBot> 2
05:45:14 <CakeProphet> im n ur code, reassigning ur lvalues.
05:45:27 <newsham> call by vile
05:45:43 <elliott_> heh
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:11 <CakeProphet> I think, let's test this.
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:48:55 <CakeProphet> but shift is not one of those.
05:52:57 <CakeProphet> !perl sub take : lvalue {$_[0]} sub test { &take = 3} $x = 0; test($x); print $x;
05:52:57 <EgoBot> 3
05:58:43 <elliott_> hi im
05:59:04 <CakeProphet> I actually enjoy Perl's depravity. This is what stands out to me.
05:59:16 <NihilistDandy> Pervert. :P
06:03:40 <CakeProphet> You could actually write programs in a style similar to Python.
06:03:44 <CakeProphet> but how boron would that be?
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:16:27 <elliott_> it's a list
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!
06:54:33 <elliott_> taupe
06:57:10 <monqy> toupe
06:58:48 <elliott_> targot
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:09:23 <pikhq> asfdjqieprtg
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:06:04 <elliott_> oh my god
08:06:07 <elliott_> the opengl haskell binding
08:06:09 <elliott_> actualyl uses Ptr
08:06:11 <elliott_> r u joking
08:06:20 <elliott_> not even Ptr Blah
08:06:21 <elliott_> Ptr a
08:06:21 <elliott_> yes
08:06:22 <elliott_> a
08:06:24 <elliott_> a pointer to fucking anything
08:06:26 <elliott_> clap
08:25:21 <Deewiant> What part of it?
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:49 <elliott_> or to (forall a. a)s
08:25:53 <elliott_> at least use a typeclass, jeez
08:26:01 -!- ais523 has quit (Remote host closed the connection).
08:26:05 <Deewiant> What should it be? :-P
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:08 <elliott_> You can always cast it
08:40:14 <Deewiant> I'm not sure it should be
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:39 <elliott_> Heh
08:43:50 <elliott_> Deewiant: That sounds like a terrible idea if you have e.g. Ptr (a -> b)
08:44:02 <elliott_> Or, any heap type
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 <elliott_> ?src Functor Either
10:21:16 <lambdabot> Source not found. My pet ferret can type better than you!
10:21:49 <Deewiant> ?src Either fmap
10:21:49 <lambdabot> fmap _ (Left x) = Left x
10:21:50 <lambdabot> fmap f (Right y) = Right (f y)
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:18 <elliott_> specifically
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:24:13 <Deewiant> And why doesn't that work
10:25:12 <elliott_> Deewiant:
10:25:14 <elliott_> /home/elliott/Code/outrageous-fortune/outrageous-fortune.hs:58:33:
10:25:15 <elliott_> Could not deduce (g ~ f)
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:19 <elliott_> the instance declaration
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:25 <elliott_> the instance declaration
10:25:27 <elliott_> at /home/elliott/Code/outrageous-fortune/outrageous-fortune.hs:3:20
10:25:30 <elliott_> Expected type: f s i
10:25:31 <elliott_> Actual type: g s i
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:25:39 <elliott_> Failed, modules loaded: none.
10:27:55 <elliott_> (This after I added kind signatures to :+:.0
10:27:55 <elliott_> )
10:31:47 <elliott_> OH
10:31:48 <elliott_> duh
10:37:19 -!- azaq23 has joined.
10:47:49 <elliott_> ?src (<*)
10:47:49 <lambdabot> (<*) = liftA2 const
10:47:54 <elliott_> ?. unpl src (<*)
10:47:54 <lambdabot> ()
10:47:57 <elliott_> o_O
10:48:09 <elliott_> ?src liftA2
10:48:10 <lambdabot> liftA2 f a b = f <$> a <*> b
10:48:13 <elliott_> right
10:48:19 <elliott_> \a b -> const <$> a <*> b
10:48:47 <Deewiant> ?unpl (<*) = liftA2 const
10:48:48 <lambdabot> (<*) = liftA2 (\ a _ -> a)
10:49:14 <elliott_> ?src (*>)
10:49:14 <lambdabot> (*>) = liftA2 (const id)
10:49:29 <elliott_> const id <$> a <*> b
10:49:30 <elliott_> hmm
10:49:34 <elliott_> no simpler way to write that, right
10:49:35 <elliott_> ?
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 <Deewiant> ?ty (*>)
10:50:01 <lambdabot> forall (f :: * -> *) a b. (Applicative f) => f a -> f b -> f b
10:50:03 <Deewiant> ?
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:01 <elliott_> outrageously slow
10:52:11 <Deewiant> Howso
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:24 <elliott_> and wait
10:52:25 <elliott_> .
10:52:27 <elliott_> he is not kidding
10:52:34 <Deewiant> :-D
10:52:37 <elliott_> im running it on /usr/share/dict words and my computer isnt showing what im typing any more oh
10:52:39 <elliott_> and
10:52:39 <elliott_> i think my memory
10:52:41 <elliott_> is
10:52:41 <elliott_> all
10:52:42 <elliott_> leaked
10:52:42 <elliott_> ow
10:52:43 <elliott_> fuck
10:52:47 <elliott_> switching to tv
10:53:34 <elliott_> Deewiant: oh my god
10:53:42 <elliott_> i just watched the oom killer kill chrome
10:53:46 <elliott_> for ghc's sins
10:54:11 <elliott_> oh and THEN he tells us how to do it fastly
10:54:14 <elliott_> fucker
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:21:46 <elliott_> heh
11:21:56 <Deewiant> Maybe you can't change it
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:23:20 <Deewiant> Yep
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:16 <Deewiant> I use openbox
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:50:16 <Vorpal> ah
11:50:51 <Deewiant> (including IceWM)
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:45:14 <elliott_>
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:47:12 <elliott_> Sgeo:
12:47:15 <elliott_> :P
12:47:23 <Sgeo> Hi
12:47:41 <elliott_> oh wait its on the cd
12:47:42 <elliott_> yayyy
12:48:17 <elliott_> hm or wait is it
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:09 <elliott_> ah
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:39 <elliott_> yes
12:50:47 <elliott_> Sgeo: can i have your \windows\system[thirtytwo]\dinput.dll file?
12:51:09 <Sgeo> Hold on
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:53:34 <elliott_> unless you already have one
12:54:07 <Sgeo> I don't
12:55:05 <elliott_> invited
12:55:17 <elliott_> thx for file
12:55:31 <Sgeo> yw
12:55:42 <elliott_> still doesn't work though :D
12:55:42 <elliott_> hmm
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:25 <elliott_> have to?
12:57:53 <Sgeo> The choices given were to link, or not to join Google+
12:58:07 <elliott_> WORKS NOW YAAAY
12:58:08 <elliott_> Sgeo: heh
12:58:20 <elliott_> "SITE RAYMAN2" <-- good english in menus
12:58:58 <elliott_> this is working A+ good
12:59:05 <elliott_> todo: get antialiasing enabled in it somehow, maybe dare to try widescreen, fullscreen
12:59:07 <elliott_> rayman yaay
12:59:12 <elliott_> sgeo you've played rayman right
12:59:14 <elliott_> two
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:28 <Sgeo> played
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:00 <elliott_> Deewiant: TOO LATE
13:00:06 <elliott_> You were just toooo slow.
13:00:12 <Deewiant> I didn't really want to help you anyway
13:00:20 <elliott_> Nobody ever does ;____;
13:00:26 <Sgeo> elliott_, does it have glowy sphere things called lums?
13:00:49 <elliott_> Sgeo: yes.
13:01:04 <Sgeo> Ok, yeah, I've watched my friend play it a long time ago
13:02:01 <elliott_> brb playing it
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:34:00 <elliott_> olsner: your dreams answered
15:35:40 <elliott_> wait i can do that better, unsafePerformIO could be id
15:35:48 <Sgeo> #?
15:35:51 <elliott_> Yes.
15:38:30 <Sgeo> Unboxed? I'm generally clueless about that. Why is #1 being used like a function?
15:39:05 <elliott_> It's not Haskell.
15:39:31 <Sgeo> o.O
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:26:36 <elliott> oerjan joers oerasn an
19:27:06 <elliott> hey oerjan unsafePerformIO $0 = $0;
19:27:33 -!- micahjohnston has left ("〆").
19:27:44 <Gregor> Joe R'Jan
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:34:52 <newsham> what is 〆 ?
19:35:17 <elliott> kanji of some kind, it seems
19:35:21 -!- elliott has left ("Leaving").
19:35:23 <Phantom_Hoover> For closing.
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:19 <elliott> Well
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:14 <Gregor> Yes, it does.
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:37 <elliott> Thank you.
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:45:55 <elliott> oerjan: yep
19:46:30 <oerjan> = $0; does not parse afaik
19:46:44 <elliott> oerjan: who said it was haskell
19:47:03 <oerjan> bonody
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:20 <elliott> Unit;
19:47:22 <elliott> [];
19:47:24 <elliott> (:) x xs;
19:47:26 <elliott> return $0 = $0;
19:47:28 <elliott> (>>=) $0 $1 = seq# $0 ($1 $0);
19:47:32 <elliott> (>>) = seq#;
19:47:34 <elliott> #foreign import "std" "putStrLn#"
19:47:36 <elliott> putStrLn = putStrLn#;
19:48:02 <oerjan> core?
19:50:23 <elliott> oerjan: nope
19:50:26 <elliott> well, yes and no.
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:02:37 <elliott> newsham: nope
20:02:42 <elliott> hand-written
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:16 <elliott> 99
20:05:16 <elliott> 0
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:23 <elliott> It's not memoisation
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:03 <newsham> memotato, memotahtoe
20:06:14 <elliott> newsham: it's more like memoisation is ak ind of thunk reduction.
20:06:19 <newsham> hoover: afaik its not.
20:06:27 <Phantom_Hoover> newsham, it is.
20:06:35 <newsham> my name is "tim"
20:06:36 <Phantom_Hoover> Well, your whois one, at least.
20:06:46 <newsham> the whois is that because i think CH is wikkit cool
20:07:16 <Phantom_Hoover> Pfft, it's not even dependently typed.
20:07:37 <newsham> what isnt? my example?
20:08:26 <Phantom_Hoover> Yes.
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:00 <elliott> oerjan: of course
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:38 <newsham> so why's the seq# needed?
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:51 <elliott> oerjan: hm really?
20:12:55 <elliott> oerjan: what's the explicit guarantee?
20:12:57 <elliott> anyway, this isn't GHC
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:30 <elliott> oerjan: right
20:13:39 <elliott> newsham: Anyway, it "happens" completely unsafely; whenever (putStrLn# s) gets reduced, it prints out the line.
20:13:44 <oerjan> @google pseq
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:46 <oerjan> er
20:13:49 <elliott> Of course it is totally unsafe and impure, but this is just the low-level, untyped implementation.
20:13:50 <oerjan> @hoogle pseq
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:17:13 <Phantom_Hoover> Gregor, fix glogbot's rsync already.
20:20:12 <elliott> pikhq_: http://www.reddit.com/r/programming/comments/ie7ze/lambdas_in_c/ post ur real lambdas
20:21:14 <oerjan> the lambada calculus
20:22:19 <Phantom_Hoover> # builtins:
20:22:24 <Phantom_Hoover> newsham, you're a bad person.
20:22:46 <monqy> who needs closures when you have c
20:22:58 <Phantom_Hoover> Closures?
20:22:59 <Phantom_Hoover> What?
20:23:03 <monqy> http://www.reddit.com/r/programming/comments/ie7ze/lambdas_in_c/
20:23:08 <monqy> rather
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:51 <Phantom_Hoover> Ah.
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:24:53 <Phantom_Hoover> newsham, that's a little more forgiveable.
20:25:04 <elliott> (\f -> f a b c d (... sixty four arguments ...))
20:25:04 <Phantom_Hoover> Also have I mentioned my lambda calculus IO monad.
20:25:07 <elliott> fast lambda numerics
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:50 <elliott> oops
20:27:51 <elliott> copumpkin:
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:07 <Gregor> Vanillain?
20:28:14 <pikhq_> elliott: Mine just return a struct with closed variables instead of a raw function pointer.
20:28:19 <Phantom_Hoover> Gregor, http://sprunge.us/WXgg
20:28:24 <newsham> would a villain help me do this? http://www.thenewsh.com/~newsham/x/obf2.py
20:28:42 <monqy> yes
20:28:53 <monqy> that looks like the work of a villain alright
20:28:57 <Phantom_Hoover> newsham, ow, my eyes.
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:29:54 <Phantom_Hoover> Gregor, I blame elliott.
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:21 <Gregor> oerjan: E_DONTCARE
20:30:46 <oerjan> E_GLOGBOTBANNEDFORSPAMMING
20:30:51 <newsham> perhaps I should translate it to SKI.
20:30:54 <newsham> that might be fun
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:22 <Phantom_Hoover> newsham, automated quite easily.
20:31:43 <Phantom_Hoover> See Lazy K's LC → Lazy K compiler, for instance.
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:19 <Gregor> Phantom_Hoover: There
20:33:22 <newsham> but yah..
20:33:24 <Gregor> (You incompetent morons >_< )
20:33:29 <newsham> oh and also write a small set of ski prims
20:33:49 <Phantom_Hoover> !glogbot_help
20:34:06 <Phantom_Hoover> !logs
20:34:19 <elliott> !die
20:34:23 <elliott> !carpal tunnel syndrmoe
20:35:56 <Gregor> elliott: Ohhey, you can type symbols above numbers (and presumably numbers, too)
20:36:06 <elliott> Gregor: i copied
20:36:15 <Gregor> ...
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:49 <Phantom_Hoover> This is why I just use Lazy K's.
20:38:57 <Phantom_Hoover> Also, your IO monad is a bit weird.
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:39:52 <Phantom_Hoover> elliott, yeah, basically.
20:40:16 <Phantom_Hoover> I can't remember the details; realworld is a triple of somethin.
20:40:20 <Phantom_Hoover> *something
20:41:25 <Phantom_Hoover> Wait, yeah, it's what you said.
20:41:41 <Phantom_Hoover> No idea what newsham's is, though.
20:42:55 <newsham> in mine I just used a state monad that passes around a dummy value to sequence my "io"
20:43:03 <coppro> elliott: stop that
20:43:11 <elliott> coppro: stop being named coppro
20:43:25 <Phantom_Hoover> newsham, does that actually work?
20:43:39 -!- foocraft has joined.
20:43:43 <Phantom_Hoover> As in, does it actually force sequencing?
20:43:51 <Phantom_Hoover> ISTR having a hell of a time getting mine to work.
20:44:40 <elliott> well his io model is probably different
20:44:50 <newsham> phantom: i've used it successfully :)
20:44:50 <Phantom_Hoover> I guess.
20:45:07 <Phantom_Hoover> Oh, of course, your ints and stuff are all built-in.
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:48 <elliott> sisc
20:48:59 <elliott> it's java, but it's rigidly rfivers-compliant.
20:49:03 <Phantom_Hoover> Not there.
20:49:06 <elliott> yes it is
20:49:08 <elliott> apt-get install sisc
20:49:23 <elliott> wtf, it's not in squeeze
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:10 <Phantom_Hoover> Do you even care?
20:57:19 <Phantom_Hoover> (Noöne else did. I was so sad.)
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:04 <elliott> stop
21:02:13 -!- quintopia has quit (Remote host closed the connection).
21:02:13 <elliott> dieeeeeeee
21:02:28 <Phantom_Hoover> Stop. This is too stupid.
21:02:30 <monqy> elliott did you see madk's pogo interpreter('s source code)
21:02:37 <elliott> :( link
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:09 <monqy> its good code
21:03:16 <elliott> oh is this
21:03:17 <elliott> blitzbasic
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:13 <elliott> blitzmax
21:04:23 <elliott> monqy: this is impressive code
21:04:37 <elliott> wheres the chuck norris
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:05:49 <NihilistDandy> Sgeo_: That's hilariously awful
21:05:55 <elliott> theory (cantor)
21:06:01 <elliott> this is great
21:06:01 <monqy> i like lines 294-302
21:06:09 <elliott> this is really great
21:06:23 <NihilistDandy> Ah, yes, A Euro B
21:06:31 <elliott> lmao
21:06:45 <elliott> Artist: Reel Big Fish
21:06:45 <elliott> Buy "Beer" on: iTunes
21:06:45 <elliott> Show more
21:06:50 <elliott> disproving that god exists to the song: Beer
21:07:07 <elliott> this is the perfect video
21:07:10 <elliott> can i get it on bluray
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:07:50 <Phantom_Hoover> Sgeo_, oi, fix diagonalfish.
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:24 <elliott> also best video
21:08:28 <Phantom_Hoover> Sgeo_, half the files don't work.
21:08:31 <elliott> "Location: Admiring them boobs"
21:08:32 <elliott> thats not a location
21:08:37 <Phantom_Hoover> Oh god please let the karaoke still be ther.
21:08:38 <Phantom_Hoover> *there
21:08:47 <Phantom_Hoover> THANK GOD
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:08:53 <elliott> lol
21:09:07 <Phantom_Hoover> Wait, I can't; Sgeo_ disproved him with Prolog.
21:09:24 <elliott> now we have no morals
21:09:48 <NihilistDandy> elliott: His mouse obeys the law of the excluded middle :/
21:09:48 <Phantom_Hoover> Sgeo_, also none of the subdirectories work.
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:00 <elliott> `quote
21:10:02 <HackEgo> 278) <elliott> mtve, now he's an expert idler. <nddrylliog> mtve: kitty kitty kitty
21:10:06 <elliott> `quote
21:10:06 <elliott> `quote
21:10:06 <elliott> `quote
21:10:07 <elliott> `quote
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:07 <elliott> `quote
21:10:08 <elliott> `quote
21:10:08 <elliott> `quote
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:17 <elliott> oh, the django sequence
21:10:21 <elliott> a good sequence, that one
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:36 <Phantom_Hoover> Sgeo_, all of them.
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:34 <Phantom_Hoover> Sgeo_, a tragedy indeed.
21:11:44 <elliott> Nisstyre: who's nissing my tyres
21:11:46 <NihilistDandy> Related Videos: "2x2=5? Good math trick!"
21:11:47 <elliott> and, also, can they stop
21:11:59 <Nisstyre> elliott: wat
21:12:00 <elliott> NihilistDandy: youtueb intelectual
21:12:07 <elliott> Nisstyre: i want my tyres unnissed
21:12:12 <NihilistDandy> This much is obvious
21:12:13 <elliott> nissing probably does bad things to my car
21:12:14 <Nisstyre> lol
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:12:45 <Phantom_Hoover> Poor, naïve elliott.
21:12:45 <elliott> yep
21:12:49 <elliott> also intercal, underload
21:12:52 <Phantom_Hoover> Nisstyre, ostensibly, yes.
21:12:54 <elliott> //
21:12:55 <elliott> erm
21:12:56 <elliott> ///
21:12:56 <elliott> etc.
21:13:01 <NihilistDandy> elliott: I got here through #haskell
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:15 <NihilistDandy> lol
21:13:15 <elliott> Phantom_Hoover: yikes
21:13:24 <Phantom_Hoover> NihilistDandy, you didn't come through during the Great Channelling, did you?
21:13:30 <NihilistDandy> I don't think so, so
21:13:32 <NihilistDandy> *no
21:13:46 <Phantom_Hoover> Truly, 'twas a day none who saw it could ever forget.
21:13:55 <NihilistDandy> I think elliott dropped into #haskell and said "hey, somebody come to #esoteric"
21:14:06 <Phantom_Hoover> NihilistDandy, ah, no, this was greater still.
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:23 * NihilistDandy sighs
21:15:31 <elliott> LMAO Aλγεβρα
21:15:38 <elliott> that's amazing
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:15:45 <monqy> amazing guy that
21:15:45 <newsham> ;-)
21:15:59 <NihilistDandy> Truth
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:53 <NihilistDandy> But python's not a language~
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:15 <NihilistDandy> Heavy drinking
21:17:19 <elliott> yes
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:38 <Nisstyre> oh ok
21:17:40 <elliott> newsham: better than those ruffians in #agda
21:17:40 <newsham> (or agda)
21:17:50 <elliott> NihilistDandy: [asterisk]trolling session
21:18:00 <NihilistDandy> heh
21:18:09 <newsham> #python has got to be the least useful channel on all of ircdom
21:18:26 <NihilistDandy> I mean, what do they even talk about? Ruby?
21:18:26 <Nisstyre> newsham: I kind of agree
21:18:32 <Nisstyre> it's too fascist about staying on topic
21:18:34 <elliott> yeah #python is like
21:18:37 <elliott> you ask a question
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:02 <NihilistDandy> #programming is the same way
21:19:12 <elliott> Nisstyre: my experience with #ubuntu is that it's so high-traffic you literally never get a response.
21:19:14 <monqy> is there really a
21:19:16 <monqy> #programming
21:19:17 <elliott> unless someone just pipes ubottu at you unjustifiably
21:19:18 <monqy> really???
21:19:26 <NihilistDandy> monqy: Yeah. It's depressingly awful.
21:19:32 <elliott> no but theres a ##programming
21:19:40 <Nisstyre> there's also a #linux
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:19:59 <NihilistDandy> How's #gentoo?
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:20:11 <NihilistDandy> lo
21:20:13 <NihilistDandy> *l
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:31 <NihilistDandy> We should do a study
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:00 <NihilistDandy> Nisstyre: I might cry a little
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:46 <Phantom_Hoover> elliott knows this because he was raised in the zoo.
21:22:50 <elliott> yes.
21:22:52 <Nisstyre> lol
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:22 <NihilistDandy> Or, wait, was that animals?
21:23:26 <NihilistDandy> I can't remember anymore.
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:23:44 <monqy> whats plover
21:23:45 <elliott> quintopia: whats it about
21:23:49 <quintopia> elliott: Plover
21:23:56 <elliott> whats plover
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:13 <quintopia> open-source stenographry software
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:43 <NihilistDandy> What a great phrase
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:02 <newsham> who would smoke a chain?
21:25:03 <NihilistDandy> pikhq_: People still use CVS?
21:25:08 <elliott> cvs is great, it's like c++
21:25:12 <elliott> just trying to like
21:25:13 <elliott> understand it
21:25:14 <Phantom_Hoover> newsham, heavy smokers.
21:25:15 <elliott> is a fun experience
21:25:16 <pikhq_> NihilistDandy: Yes.
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 <Phantom_Hoover> newsham, that's good too.
21:25:50 <elliott> newsham: reminds me of that eler strip...
21:26:06 * elliott tries to find it
21:26:18 <elliott> wtf it's fourohfoured
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:00 <elliott> dead dead dead
21:27:04 <newsham> i tried, i cant. :(
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:21 <elliott> newsham: ok. pretending.
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:24 <NihilistDandy> pikhq_: I like git and hg, mostly
21:27:28 <Phantom_Hoover> elliott, yeah, but remember the Prophecy?
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:34 <elliott> y
21:27:40 <elliott> pikhq_: git = hg
21:27:44 <elliott> same damn thing
21:27:46 <monqy> Its command set is an expansion of BrainFuck.
21:27:56 <pikhq_> elliott: The differences are slight, I agree.
21:27:59 <monqy> madk...
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:45 <Nisstyre> *might
21:28:48 <NihilistDandy> I thought the analogy was gunny, if nothing else
21:28:51 <NihilistDandy> *funny
21:28:52 <elliott> so like "version control system" more like "tree list system"
21:28:55 <Phantom_Hoover> <monqy> Its command set is an expansion of BrainFuck.
21:29:01 <elliott> Nisstyre: no. homelessness is better.
21:29:05 <elliott> take it from me.
21:29:08 <elliott> php. not even once.
21:29:11 <Phantom_Hoover> I fixed that because it's just too Far.
21:29:22 <elliott> BrAiNfUcK
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:29:52 <Nisstyre> lol
21:30:07 <elliott> haha lol Phantom_Hoover
21:30:09 <elliott> failed at the capitalisation
21:30:09 <elliott> himself
21:30:25 <Phantom_Hoover> elliott, please shut up about that.
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:06 <monqy> until now
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:31:41 <monqy> missed a spot
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:06 <monqy> two spots
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:06 <Nisstyre> *it's
21:33:12 <elliott> pikhq_: whats your excuse for not using darcs
21:33:21 <pikhq_> elliott: Meh.
21:33:24 <elliott> Nisstyre: you're not capitalising your statements, you're already outside the bounds of "standard" written english
21:33:28 <elliott> what's your excuse? :p
21:33:32 <pikhq_> elliott: Apathy.
21:33:33 <Nisstyre> *English
21:33:35 <Phantom_Hoover> You know what, there's no point in this discussion.
21:33:42 <elliott> Nisstyre: <Nisstyre> lol
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:57 <monqy> PHP
21:33:58 <monqy> 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:18 <elliott> Nisstyre: need i go on
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:35:06 <Nisstyre> I don't really know
21:36:29 <monqy> hello last night
21:36:39 <elliott> hi monqy
21:36:44 <elliott> im last night
21:37:05 <elliott> its great to be last nite cuz when youre last nite everythings so awesome
21:37:07 <elliott> ok
21:37:18 * elliott twiddles thumbs
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:20 <Sgeo_> So, :/
21:37:43 <monqy> its easier to disprove things when you throw omnipotence into the mix
21:37:46 <elliott> coppro: you look weird
21:38:02 <Nisstyre> Sgeo_: have you ever heard of theological noncognitivism?
21:38:14 <elliott> theology
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:38 <elliott> haha that's great
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:34 <Nisstyre> Sgeo_: exactly
21:39:50 <Nisstyre> you can't debate something where you have a completely different idea of what the subject is
21:40:00 <coppro> elliott: thanks
21:40:04 <elliott> coppro: yw
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:01 <Sgeo_> >.>
21:41:24 <elliott> god cant exist wnhere god=onkey: proof: if evoluations is true then why monkeys??
21:41:25 <NihilistDandy> All right, let's go from an abstract perspective
21:41:30 <elliott> qed
21:41:37 <NihilistDandy> What are the minimal axioms a God must satisfy?
21:41:53 <Nisstyre> there aren't any
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:17 <NihilistDandy> Sgeo_: Sure, why not?
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 <monqy> miracles???
21:43:40 <NihilistDandy> Sgeo_: First we have to define first principles, then we can decide what qualifies. :D
21:44:21 <NihilistDandy> Magnets
21:44:28 <NihilistDandy> Rainbows
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:12 <Sgeo_> *Abraham
21:45:16 <Nisstyre> Sgeo_: it is?
21:45:16 <nooga> amaals
21:45:22 <NihilistDandy> Nisstyre: People didn't know how groups worked until they tried. :/
21:45:27 <elliott> fucking miracles
21:45:28 <elliott> honk
21:45:33 <elliott> re <monqy> miracles???
21:45:35 <elliott> this is intellectual
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:27 <elliott> oerjan: Aλγεβρα
21:46:30 <NihilistDandy> oerjan: Exactly :/
21:46:35 <elliott> the most artistic of sciences
21:46:47 <monqy> no.1 axiom of gods: theres no axioms of gods
21:46:58 <monqy> /go wild/
21:47:07 <NihilistDandy> monqy: Fight Club is not a well-defined mathematical object.
21:47:35 <Phantom_Hoover> Oh god, theology.
21:47:42 <Phantom_Hoover> NihilistDandy, yes it is.
21:47:44 <monqy> hi phantom_hoover
21:47:44 <NihilistDandy> I see what you did there
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.
21:53:13 <Nisstyre> the word God is polymorphic
21:53:49 <Phantom_Hoover> The word Polly is godmorphic.
21:55:01 <NihilistDandy> The polymorph is god.
21:55:29 <elliott> fuck
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:03 <elliott> it was good
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 <lambdabot> Unknown command, try @list
22:04:21 <elliott> besides half of what we believe in science is an educated guess anyway
22:04:21 <elliott> ThePlatoon4 2 days ago
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:10:39 <elliott> lol
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:09 <HackEgo> No output.
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:13:11 <elliott> Mr.S: Now I know them too
22:13:13 <elliott> zzo and zzo
22:14:27 -!- eitan_ has joined.
22:14:46 -!- eitan_ has changed nick to variable.
22:14:54 <monqy> good dialogue
22:15:26 <elliott> oh erm what is this mail i have received
22:16:00 <monqy> cheap viagra
22:16:07 <monqy> for less
22:16:11 -!- variable has quit (Remote host closed the connection).
22:16:14 <monqy> male enhancement
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:17:08 <elliott> eat your bl
22:17:08 <elliott> bl
22:17:09 <elliott> come on
22:17:10 <elliott> :(
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:36 <elliott> everyone has one
22:18:47 <elliott> if its insufficiently awesome beat your head against a wall until it is
22:18:48 <elliott> or just use chrome
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:21:21 <elliott> im scacred
22:22:49 <elliott> omg gmail load
22:23:12 <monqy> did it die
22:23:24 <monqy> my gmail is fast...
22:24:16 <elliott> its fast now
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:12:51 <Phantom_Hoover> oerjan, quiet, you.
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:19:56 <quintopia> also you ran off five people
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:26:53 <pikhq_> Compiler, even.
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:34:49 <Phantom_Hoover> `quote underpants
23:34:50 <HackEgo> No output.
23:34:53 <Phantom_Hoover> :(
23:35:00 <Phantom_Hoover> `quote cliff
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:25 <Phantom_Hoover> `pastequotes Phantom_Hoover
23:35:26 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.19033
23:35:52 <Phantom_Hoover> I was sure that was addquoted. Ah, well.
23:36:11 <quintopia> could've been beleeted
23:36:28 <Phantom_Hoover> Nah, it wasn't in hindsight.
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:39:23 <Sgeo_> (6 hours ago)
23:39:24 <Sgeo_> What.
23:39:59 <Phantom_Hoover> Sgeo_, that AH's twitter or...?
23:40:10 <Sgeo_> Phantom_Hoover, someone on Reddit
23:40:16 <Phantom_Hoover> Ah, right.
23:40:22 <Sgeo_> http://www.reddit.com/r/homestuck/comments/ie7s5/hussie_is_not_working_on_the_eoa_but_hes_making/c231wtz
23:41:16 <Phantom_Hoover> Yesyesyes.
23:45:04 <Sgeo_> ...we JUST HAD 2 albums released
23:45:09 <nooga> what's EOA?
23:45:15 <Sgeo_> End of Act
23:45:28 <Sgeo_> End Of Act 5 is coming sometime soon, presumably
23:51:48 -!- nooga has quit (Ping timeout: 258 seconds).
2011-07-02
00:09:21 <Phantom_Hoover> Slurkle.
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 <Phantom_Hoover> Wait, it was just oko and cpressey. Oh well.
00:19:13 -!- copumpkin has joined.
00:19:13 -!- copumpkin has quit (Changing host).
00:19:13 -!- copumpkin has joined.
00:19:52 <oerjan> > fix("ok"++)
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:05 * oerjan whistles innocently
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:29:56 <oerjan> well duh.
00:30:03 <Phantom_Hoover> 'duh'?
00:30:08 <monqy> duh.
00:30:16 <oerjan> what do you _think_ i was referring to...
00:30:17 <Phantom_Hoover> Damn, I'm behind the times.
00:30:41 <Phantom_Hoover> (The internet: where a day ago is behind the times.)
00:31:43 <Phantom_Hoover> I guess I move in the wrong subreddits. Ah, well.
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:48:53 * Phantom_Hoover attempts to unwind the Epic Thread.
00:49:59 <Phantom_Hoover> Oh holy christ this is impossible.
00:50:12 <Phantom_Hoover> fizzie! I need your superpowers!
00:50:30 <Sgeo_> Epic Thread?
00:51:15 <zzo38> coppro: Yes.
00:51:43 <Phantom_Hoover> Sgeo_, it's a huge thread of replies that blossomed off some post.
00:51:48 <Phantom_Hoover> It has its own subreddit.
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:03 <Phantom_Hoover> It's lasted over two years.
00:54:16 -!- NihilistDandy has quit (Read error: Connection reset by peer).
00:54:24 <Sgeo_> Phantom_Hoover, the test post?
00:54:29 <Phantom_Hoover> Nope.
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:58:41 <Phantom_Hoover> Thank christ, I'm onto stuff from only a week ago.
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:01:45 <coppro> yes, of course :)
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:07:48 <coppro> hahaha
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:10:41 <lambdabot> 8.75
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:02 * Phantom_Hoover → sleep
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.").
01:58:31 <tswett> Vittu.
01:58:34 <tswett> -Inen.
01:58:39 <tswett> Vittuinen.
01:58:43 <tswett> Suomasta.
01:59:00 <olsner> voi vittu
01:59:28 <tswett> Perkelin sota limsa.
01:59:38 <tswett> Laskea irti.
02:00:01 <olsner> saattana perkele, ei saa peittää parasta ennen voi vittu
02:00:30 <tswett> Sotala satana peittää.
02:00:47 <tswett> Ei futi.
02:01:32 <quintopia> are you guys finnished?
02:01:53 <olsner> quintopia: Quite.
02:02:00 <tswett> Suomi ei laskea irti ketti.
02:02:12 <tswett> En ih.
02:02:32 <olsner> hurtti irtti ketti
02:02:45 <tswett> Kiitti.
02:03:00 <olsner> kiittii
02:03:02 <tswett> Hur ir ke. Hurirke.
02:03:03 <quintopia> guess not
02:03:16 <tswett> En ih.
02:03:26 <olsner> quintopia: finnished, yes, finished, no. it's just gibberish afaik
02:03:47 <tswett> Irkkipöistimödi.
02:04:02 <tswett> Peittää... midä.
02:04:07 <olsner> pöistimöidi
02:04:22 <tswett> Oletko?
02:05:05 <tswett> Etusivu.
02:05:07 <olsner> ölut!
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:36 <tswett> Pitää pää kylmänä.
02:06:52 <tswett> Kuuma. Anna minulle kuuma olut!
02:07:01 <oerjan> Ei saa peittaa!
02:07:13 <tswett> Saa saa saa.
02:07:19 <tswett> Saada.
02:07:50 <oerjan> sorry, *peittää!
02:07:51 <tswett> Saadada. Dadadada.
02:07:51 <olsner> miltä meno maistuu
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:19 <tswett> Se maistuu hyvältä.
02:09:32 <olsner> hyvvä
02:09:59 <tswett> Käytän Wikisanakirja ja oma pieni tuntemus Suomen kieli, paitsi tämä lause, joka tuotti Google Translate.
02:10:12 <tswett> Pieni.
02:10:14 <oerjan> i'm pretty sure tswett was trying to learn finnish earlier...
02:10:27 <tswett> Pieni ikuisesti.
02:11:19 <tswett> Moin moin.
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:11:50 <tswett> Jagrastin.
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:13:59 <tswett> Lojban too, I guess.
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 <monqy> computer swedish?
02:14:54 <tswett> What's computer-Swedish?
02:14:55 <olsner> but hopefully never
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:42 <monqy> me too
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:20:29 <oerjan> Downloada filen?
02:20:40 <tswett> Download a filin'?
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:01 <olsner> eller "Läs in igen"
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:03 * tswett meditates.
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:01 <oerjan> O KAY
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:06 <coppro> haha
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:34 <tswett> I think.
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:34:52 * tswett parks his laptop.
02:36:34 -!- Patashu has quit (Ping timeout: 264 seconds).
02:37:15 <Sgeo_> I haven't been outside since yesterday
02:37:19 <Sgeo_> I'm getting shaky
02:37:20 -!- Guest63077 has quit (Ping timeout: 240 seconds).
02:38:38 <Lymee> http://pastebin.com/Y75WrP9D
02:38:41 <Lymee> :3
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:06:55 <quintopia> how are ya, Lymee?
03:07:04 <Lymee> Hugs!
03:07:05 <Lymee> :3
03:07:07 * Lymee hugs quintopia <3
03:07:38 * quintopia hugs Lymee
03:07:46 <quintopia> what does that program do?
03:08:19 <Lymee> Somethings.
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:38:18 <quintopia> someone recommend me the best bnc
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:21 <pikhq> True, true.
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:02:44 <monqy> hi what
05:03:37 <WillMac> listen to the webradio
05:03:46 <WillMac> my 2 songs are about to be played next
05:03:48 <WillMac> im pretty excited
05:05:25 <WillMac> my songs are called
05:05:28 <WillMac> Walk Walk 3
05:05:36 <WillMac> and Maps remix - by donato
05:08:01 <pikhq> Inquiry: why do we care?
05:08:21 <WillMac> because its cool music
05:08:25 <WillMac> im being played now
05:08:26 -!- BeedaWeeda has quit (Ping timeout: 258 seconds).
05:08:27 <WillMac> http://www.streamvera.com/stream/15997
05:08:34 <WillMac> its club/house
05:08:39 <WillMac> if youre into that stuff
05:08:47 <monqy> nope
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:41 <pikhq> Not inherently.
05:40:57 <WillMac> i just cant seem to stop doing them
05:41:03 <WillMac> whether it be Ketamine
05:41:09 <WillMac> or dextromethorphan
05:41:18 <WillMac> they seem to fill a hole in my being
05:41:24 <WillMac> that nothing else can
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:10 <WillMac> and crowleyan magick
05:42:21 <WillMac> and the dissociation really helps out with rituals
05:42:23 <WillMac> and such
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:43:37 <pikhq> Some day.
05:44:03 <WillMac> so this isnt a channel for esotericism?
05:44:09 <pikhq> Nope.
05:44:15 * WillMac feels embarrased
05:44:15 <WillMac> :/
05:44:25 <pikhq> Channel for esoteric programming languages.
05:44:27 <WillMac> its hard to find places
05:44:41 <WillMac> well im sorry
05:44:44 <WillMac> <3
05:44:46 <pikhq> Yeaaah, if we knew where to refer you, we'd let you know. :P
05:44:47 <pikhq> No big.
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:39 <WillMac> lol
05:45:48 <WillMac> Well its hard to find places
05:45:52 <WillMac> that are accepting of it
05:46:05 <WillMac> "GET THE FUCK OUT HIPPY"
05:46:12 <WillMac> "YOURE SCHIZO"
05:46:23 <WillMac> "THERES NO SUCH THING AS THE DIVINE"
05:46:51 <WillMac> i require more drink
05:46:59 <WillMac> to dose this hallucinogen
05:47:04 <WillMac> <3 nice meeting you
05:47:10 <WillMac> and again i appologize
05:47:18 <pikhq> Seriously, no real issue.
05:48:41 <WillMac> <-- dissociated emotional bi-sexual
05:48:41 <WillMac> lol
05:48:45 <WillMac> its okay
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?
05:50:16 <pikhq> Alas.
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:27 <Phantom_Hoover> https://bugs.gentoo.org/show_bug.cgi?id=35890
08:33:40 <Phantom_Hoover> Perhaps the best bug ever?
08:33:57 -!- WillMac has left.
08:35:34 <coppro> funroll-loops.info
08:39:02 <coppro> oh hey, it's linked in the bug :D
08:39:09 <coppro> no wait
08:39:12 <coppro> wrong tld
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:28:34 <quintopia> is it zzo o'clock?
15:34:59 -!- monqy has joined.
15:35:02 <newsham> is that like ssz?
15:56:54 <zzo38> I don't know.
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:33:14 <quintopia> it's
16:33:16 <quintopia> weird
16:33:27 <quintopia> not a scale i've ever seen
16:34:18 <zzo38> Hint these are not numbers of semitones
16:37:12 <quintopia> are they multiples of a particular frequency?
16:37:36 <quintopia> no that's silly
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:08:12 <Sgeo__> ....what?
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:18:52 <zzo38> OK. Maybe.
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:02:40 <Phantom_Hoover> OK, so it hit me.
19:02:47 <Phantom_Hoover> Life is basically the knapsack problem.
19:16:25 -!- Balanced1 has joined.
19:24:47 <quintopia> a painter would say life is paintbrush
19:24:53 <quintopia> i agree
19:24:58 <quintopia> definitely 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:09 <cheater_> hello
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:36:34 <Phantom_Hoover> http://en.wikipedia.org/wiki/Theobromine
19:36:47 <Phantom_Hoover> I like the way it doesn't have bromine in it.
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:56:33 <Vorpal> (well IMO)
19:56:45 <Phantom_Hoover> Nonononononononono
19:56:51 <Phantom_Hoover> Its the knapsack problem.
19:57:06 <Vorpal> Phantom_Hoover, how so?
19:57:14 <Phantom_Hoover> Vorpal, you have things you can do.
19:57:26 <Vorpal> yes
19:57:27 <Phantom_Hoover> They all take a certain amount of time and effort.
19:57:33 <Vorpal> yep
19:57:35 <Phantom_Hoover> And they all yield a certain reward
19:57:40 <Phantom_Hoover> So basically.
19:57:42 <Vorpal> possibly
19:57:45 <Phantom_Hoover> Life is the knapsack problem.
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:06 <Vorpal> and so on
19:58:25 <Vorpal> interesting analogy however
19:58:43 <oerjan> 16 18 20 21 24 27 30 32
19:58:45 <oerjan> er
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:01 <lambdabot> arising from a use of `...
20:00:10 <oerjan> wtf
20:00:43 <quintopia> randomized napsack problem?
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:00:59 <oerjan> bah
20:01:08 <oerjan> no, zzo38's scale
20:01:59 <oerjan> > join(zipWith(-)) $ map ((/12).logBase 2) [16,18,20,21,24,27,30,32] :: [Float]
20:02:01 <lambdabot> [0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]
20:02:05 <oerjan> er
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:35 <lambdabot> `GHC.Real.Fractional a'
20:09:35 <lambdabot> ...
20:09:38 <oerjan> gah
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:17 <lambdabot> `Text.Printf.PrintfType ...
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:24 <elliott> sup
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:15:13 <oerjan> oh wait duh
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:32 <lambdabot> `Text.Printf.PrintfType ...
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:19:56 <oerjan> *into
20:20:52 <quintopia> so it's a rounded major scale?
20:21:32 <zzo38> Or you could say it is a 16-to-32 linear temperament based major scale.
20:21:46 <quintopia> sure
20:21:57 <quintopia> bet it sounds pretty funky
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 <newsham> > Just Tone
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:40 <newsham> > Just Interval
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:03 <newsham> oerjan: like jeebuz does.
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:25:28 <quintopia> yes
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:39 <quintopia> those were good
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:07 <monqy> im not we
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:28:18 <Phantom_Hoover> It appears not.
20:28:38 <Phantom_Hoover> (This still doesn't explain the xkcdecay, though.)
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:30:13 <Phantom_Hoover> 3 years or so?
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:34:06 <tswett> I see.
20:36:25 <cheater_> tswett, thank you
20:36:41 <cheater_> Deewiant, you too
20:36:49 <elliott> Phantom_Hoover: thank you
20:36:50 <elliott> oerjan: you too
20:36:51 <Phantom_Hoover> tswett, aren't you, on some level, fundamentally, platonically, Australian?
20:36:57 <tswett> Phantom_Hoover: yep.
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:06:59 <elliott> hmm
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:22 <elliott> ah, 0
21:07:39 <oerjan> @src show
21:07:40 <lambdabot> show x = shows x ""
21:07:45 <oerjan> @src shows
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:07:48 <elliott> I guess that should work
21:08:12 <elliott> oerjan:
21:08:12 <elliott> -- | equivalent to 'showsPrec' with a precedence of 0.
21:08:12 <elliott> shows :: (Show a) => a -> ShowS
21:08:12 <elliott> shows = showsPrec zeroInt
21:08:13 <oerjan> elliott: except that theoretically that would break for $
21:08:18 <elliott> oerjan: yes, indeed
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 <elliott> howso?
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:10:15 <elliott> ah
21:21:17 <elliott> grr, zzo
21:21:19 <elliott> we have a template for that
21:21:32 <oerjan> elliott: wat
21:21:35 <elliott> broken lists
21:21:36 <elliott> links
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:13 <elliott> indeed
21:22:24 <elliott> http://esoteric.voxelperfect.net/wiki/Special:Whatlinkshere/Template:Deadlink
21:22:26 <elliott> happily small numebr
21:22:33 <elliott> although obviously very incomplete
21:23:34 <elliott> who's 69.72.75.139?
21:23:56 <elliott> oerjan: http://esoteric.voxelperfect.net/wiki/Computational_class#Isomorphism
21:23:58 <monqy> madk i think
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:32:40 <oerjan> yay
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> oh man this is g
21:34:55 <elliott> 05:42:10: <WillMac> and crowleyan magick
21:34:58 <elliott> THIS IS PERFECT
21:35:00 <elliott> this is the best thing ever
21:35:02 <elliott> i love you willmac
21:35:06 <elliott> oerjan: he is the perfect stumbler
21:35:08 <elliott> perfect
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:21 <elliott> he was also perfect
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:34 <elliott> amazin
21:35:35 <elliott> g
21:35:58 <elliott> monqy: how long did hiphop guy take
21:36:03 <monqy> I forget
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:36:52 <elliott> im missing out
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:31 <elliott> long-time fan of this one
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:09 <oerjan> iirc
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:34 <monqy> I mean
21:38:37 <monqy> it was a slow almost a whole fucking hour
21:38:38 <monqy> sorry
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:38:56 <elliott> hahahahahaha oh wow
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> > bug are still broken.
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:42:50 <elliott> Howso
21:43:47 <Phantom_Hoover> elliott, experimental replication doesn't work.
21:43:55 <elliott> Howso?
21:44:40 <Phantom_Hoover> I built *exactly the same* device in three different places.
21:44:54 <Phantom_Hoover> Only one of them worked the way I wanted it to.
21:46:40 <elliott> X-D
21:46:42 <elliott> Which device?
21:47:44 <Phantom_Hoover> Piston door.
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 :: ShowS
21:59:28 <elliott> showSpace = {-showChar ' '-} \ xs -> ' ' : xs
21:59:30 <elliott> good optimisation
22:05:24 <oerjan> i wonder if (guess that?) ghc will inline showChar ' ' completely so it doesn't actually make a difference...
22:05:53 <oerjan> :t showChar
22:05:54 <lambdabot> Char -> String -> String
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:44:31 <zzo38> Sgeo: No output.
22:44:43 <Phantom_Hoover> If it doesn't have IO?
22:44:45 <Sgeo> Ok, true
22:45:00 <Sgeo> But I think it's more broad then that, I'm curious as to the exact limit
22:45:01 <Sgeo> limits
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:01 <Sgeo> hmm
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:00 <Phantom_Hoover> Like the wire-crossing problem?
22:48:11 <elliott> Yes.
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:26 <quintopia> i mean we resolved it
22:55:42 -!- Sgeo has joined.
22:56:32 <Phantom_Hoover> elliott, erm, TCness isn't well-defined?
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:57:34 <elliott> quintopia too.
22:57:45 <elliott> Also:
22:57:47 <quintopia> oh
22:57:52 <quintopia> yeah that crap
22:58:02 <quintopia> i don't think the field's ever gonna agree
22:58:03 <elliott> Grr, where is it.
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 <elliott> quintopia too.
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:00:49 <Phantom_Hoover> elliott, remind me what its deal is?
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:01:36 <elliott> (The proof, that is.)
23:01:47 <Phantom_Hoover> elliott, ah.
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:06:41 <quintopia> sure
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:07:43 <quintopia> it's like reverse-engineering
23:08:09 <elliott> itos :: Int# -> String -> String
23:08:09 <elliott> itos n# cs
23:08:09 <elliott> | n# <# 0# =
23:08:09 <elliott> let !(I# minInt#) = minInt in
23:08:09 <elliott> if n# ==# minInt#
23:08:10 <oerjan> *of strings
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:18 <elliott> | otherwise = itos' n# cs
23:08:20 <elliott> where
23:08:22 <elliott> itos' :: Int# -> String -> String
23:08:24 <elliott> itos' x# cs'
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> <interactive>:1:1:
23:12:35 <elliott> Couldn't match type `TBool' with `TNat'
23:12:38 <elliott> me am play gods
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:13:09 <oerjan> cowardly hurried
23:13:39 <Phantom_Hoover> Clearly it's a character from SuperTuring.
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:14:45 <Phantom_Hoover> oerjan, OF COURSE
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:44 <Phantom_Hoover> Sgeo, so that's three out of...?
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:15 <Phantom_Hoover> Ah.
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:07 <elliott> yes. now we can kill him.
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:17 <oerjan> yes afaiu
23:27:59 <oerjan> that's when the cloak will be added
23:28:16 <zzo38> Then probably it is synchronizing problem?
23:28:19 <oerjan> yeah
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:35:05 <oerjan> huh.
23:41:10 -!- augur has joined.
23:57:12 -!- augur has quit (Remote host closed the connection).
2011-07-03
00:11:36 -!- Sgeo_ has joined.
00:11:43 -!- Sgeo_ has quit (Client Quit).
00:12:03 <oerjan> @hoogle [a] -> [a]
00:12:04 <lambdabot> Prelude cycle :: [a] -> [a]
00:12:04 <lambdabot> Prelude init :: [a] -> [a]
00:12:04 <lambdabot> Prelude reverse :: [a] -> [a]
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:21 <oerjan> <elliott> it cannot.
00:14:27 <quintopia> one that keeps separate from the system
00:14:28 <oerjan> darn :P
00:14:48 <quintopia> :P
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:09 <quintopia> hmm. do an of us care?
00:15:28 <oerjan> elliott: dammit you almost owed me a keyboard there :P
00:16:08 <elliott> oerjan: :D
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:47 <quintopia> with lightning
00:17:48 <newsham> sgeo: incompleteness is about logic systems
00:17:50 <newsham> christianity is not
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:37 <newsham> sgeo: ... eventually.
00:18:40 <quintopia> newsham: smbc ripoff much?
00:18:42 <oerjan> Sgeo: presumably it doesn't say ho... right
00:18:55 <newsham> quintopia: quite.
00:19:16 <newsham> god kills everyone eventually
00:19:27 <quintopia> except me
00:19:28 <quintopia> bwahahaha
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:27 <Phantom_Hoover> newsham, except Enoch!
00:20:32 <oerjan> (i.e. lambda calculus has fixpoints, but (thus) no negation that can work on all functions)
00:20:36 <Phantom_Hoover> And Mary, if you believe anything the Pope says.
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:43 <oerjan> hagb4rd: wat?
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:01 <Phantom_Hoover> Why are we talking about Ian Bell all of a sudden?
00:24:14 <Phantom_Hoover> (It makes my eyes bleed.)
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:28:21 <quintopia> anyway
00:28:25 <quintopia> that's what that page says
00:28:32 <quintopia> supper time...
00:28:58 <oerjan> super soup supper
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:29:26 <newsham> very retro 1992
00:30:01 <newsham> 82Kbytes.. huge game
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:37:51 <Phantom_Hoover> newsham, I'm amazed they ported it that much, TbH.
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
00:59:31 <elliott> newsham: latter
00:59:43 * hagb4rd .Dispose()
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:01:01 <newsham> oolite is in objc. heh
01:01:17 <elliott> portable objc!
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:29 <newsham> elliott: koreas? taiwan?
01:12:41 <newsham> (I guess we can rule out germany)
01:12:51 <elliott> hyuk
01:13:59 <oerjan> cyprus?
01:14:16 <oerjan> gondwana?
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:06 <oerjan> plagiata
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:20 <Sgeo> What?
01:22:32 <Sgeo> Sorry, looking at logs right now will put me in a world of pain
01:24:15 <Sgeo> !bf .
01:24:21 <Sgeo> ...
01:26:20 <Sgeo> Ok, can afford to look at logs now
01:27:29 <Sgeo> WOAH
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:44:54 <Phantom_Hoover> <3 Text Elite.
01:48:48 <Sgeo> Phantom_Hoover, I assume these are not in any particular order?
01:49:11 <Phantom_Hoover> <newsham> http://calormen.com/l33t/jselite.htm
01:49:55 <Phantom_Hoover> OK I think it's starting to get light outside argh.
01:49:55 -!- Phantom_Hoover has left ("Leaving").
01:49:57 -!- Phantom_Hoover has quit (Quit: Leaving).
01:50:12 <elliott> no it isnt
01:50:40 <elliott> it takes another hour for that]
01:50:53 <hagb4rd> hehe
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:04:17 <hagb4rd> a
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:39 <CakeProphet> :t interleave
02:40:40 <lambdabot> forall (m :: * -> *) a. (MonadLogic m) => m a -> m a -> m a
02:41:53 <elliott> CALESKELL
02:41:59 <elliott> CakeProphet: s/m/[]/
02:44:45 <oerjan> wtf O_O
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:00 <CakeProphet> :t intersperse 'o' (repeat 'l')
02:45:01 <lambdabot> [Char]
02:45:05 <CakeProphet> > intersperse 'o' (repeat 'l')
02:45:05 <lambdabot> "lololololololololololololololololololololololololololololololololololololo...
02:45:24 <monqy> > fix ("no" ++)
02:45:26 <lambdabot> "nonononononononononononononononononononononononononononononononononononono...
02:45:26 <monqy> oops
02:45:28 <monqy> yes
02:46:14 <oerjan> > interleave "what" "now?"
02:46:15 <lambdabot> "wnhoawt?"
02:46:47 <elliott> <monqy> what about Logic, LogicT, all of the other bizarre MonadLogic instances
02:46:48 <elliott> those aren't standard
02:46:52 <elliott> intersperse is caleskell
02:47:04 <elliott> as in
02:47:05 <monqy> oh
02:47:08 <elliott> real intersperse is lists only
02:47:20 <CakeProphet> :t intercalate
02:47:21 <lambdabot> forall a. [a] -> [[a]] -> [a]
02:47:27 <oerjan> elliott: um that's interleave, not intersperse
02:47:31 -!- Behold has quit (Remote host closed the connection).
02:47:34 <oerjan> :t intersperse
02:47:35 <lambdabot> forall a. a -> [a] -> [a]
02:47:38 <elliott> yeah yeah
02:47:39 <elliott> same thing
02:47:45 <elliott> ?src Int (/)
02:47:45 <lambdabot> Source not found. Do you think like you type?
02:47:46 <elliott> ?src div
02:47:46 <lambdabot> Source not found. Your mind just hasn't been the same since the electro-shock, has it?
02:47:53 <elliott> ?hoogle div
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:04 <elliott> :t interleave
02:48:05 <lambdabot> forall (m :: * -> *) a. (MonadLogic m) => m a -> m a -> m a
02:48:10 <elliott> you know what i mean
02:48:17 <oerjan> :t intercalate
02:48:17 <lambdabot> forall a. [a] -> [[a]] -> [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:41 <elliott> ?hoogle interleave
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:43 <elliott> oh
02:48:47 <elliott> fair enough then
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:49:49 <lambdabot> "a b c ...
02:50:01 <monqy> > "hello" >>- return
02:50:02 <elliott> div x@(I8# x#) y@(I8# y#)
02:50:02 <elliott> | y == 0 = divZeroError
02:50:02 <elliott> | x == minBound && y == (-1) = overflowError
02:50:02 <elliott> | otherwise = I8# (narrow8Int# (x# `divInt#` y#))
02:50:02 <lambdabot> "hello"
02:50:03 <elliott> boring
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:23 <elliott> :t (>>-)
02:50:24 <lambdabot> forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b
02:51:06 <elliott> you know what i wish?
02:51:20 <elliott> i wish the fail method wasn't in the Monad class.
02:51:29 <monqy> i wish that too
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:07 <elliott> that would be Nice.
02:52:28 <elliott> myFailingThing :: (MonadFail String m) => Int -> m BlahBlah
02:52:34 <elliott> monqy: like what?
02:52:50 <monqy> elliott: off the top of my head, monadplus, alternative, and friends
02:52:58 <elliott> ah, right
02:53:00 <elliott> ?src MonadPlus
02:53:00 <lambdabot> Source not found. Are you on drugs?
02:53:03 <elliott> isn't MonadPlus just Monoid
02:53:09 <monqy> that too
02:53:12 <elliott> monqy: i also wish applicative was a superclass of monad.
02:53:18 <monqy> mmmm
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:31 <monqy> yes yes
02:53:32 <elliott> so that you would have
02:53:34 <elliott> class Monad m where
02:53:35 <elliott> ...
02:53:37 <elliott> fmap = liftM
02:53:43 <elliott> pure = return
02:53:43 <elliott> etc.
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:03 <monqy> woohoo
02:54:07 <elliott> monqy: lol
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:41 <elliott> by, like
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:12 <monqy> > once "hello"
02:55:13 <lambdabot> "h"
02:55:16 <oerjan> :t (>>-)
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:55:48 <oerjan> or something else
02:55:48 <monqy> yeah
02:55:50 <monqy> fair >>=
02:55:58 <oerjan> oh
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:56:53 <lambdabot> against ...
02:57:08 <elliott> ur a fagot
02:57:09 <elliott> :(
02:57:11 <elliott> hmm
02:57:20 <monqy> :t runLogic
02:57:21 <lambdabot> forall a r. Logic a -> (a -> r -> r) -> r -> r
02:57:21 <hagb4rd> *ovations*
02:57:21 <elliott> logict is cool
02:57:25 <elliott> its oleg
02:57:29 <elliott> olegs cool
02:57:36 <elliott> deep thoughts w/ ehird
02:57:50 <monqy> i have the paper but its in my reading pile
02:57:53 <monqy> not my brain
02:58:07 <elliott> monqy: the entirety of okmij.org should be in your reading pile and/or brain
02:58:09 <elliott> even the C++ bits
02:58:12 <elliott> even the Perl bits
02:58:20 <oerjan> @src MonadLogic
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:40 <hagb4rd> rofl
02:58:46 <hagb4rd> nice updates
02:58:47 <elliott> like in the "minor deity" sense of knowing
02:58:48 <monqy> i've heard the name
02:58:59 <oerjan> > "ab" >>- repeat
02:58:59 <monqy> the name;s everywhere
02:58:59 <lambdabot> "ababababababababababababababababababababababababababababababababababababab...
02:59:04 <oerjan> > "abc" >>- repeat
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?
02:59:59 <elliott> I think he might have
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:24 <lambdabot> against inferred type...
03:00:31 <monqy> uhh
03:00:33 <oerjan> elliott: um why can't it be the same as cycle "abc"?
03:00:34 <monqy> oh right
03:00:35 <elliott> you need Logic a
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:46 <monqy> oh wait
03:00:49 <elliott> as in
03:00:51 <elliott> not the same operation
03:00:54 <monqy> > ifte "hello" (fail . return) "nope"
03:00:55 <lambdabot> ""
03:00:59 <oerjan> > "abcd" >>- repeat
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:22 <monqy> too late
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:02:57 <elliott> oleg makes it cool
03:03:03 <monqy> now im curious
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:01 <elliott> and then
03:04:02 <elliott> HSXML: Typed SXML
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:51 <elliott> dammit oleg
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:38 <newsham> ?type (>>-)
03:08:39 <lambdabot> forall (m :: * -> *) a b. (MonadLogic m) => m a -> (a -> m b) -> m b
03:09:13 <newsham> ?src (>>-)
03:09:13 <lambdabot> Source not found.
03:09:18 <newsham> what is that?
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:10:38 <oerjan> aha
03:11:12 <oerjan> > msplit "abcd"
03:11:13 <lambdabot> [Just ('a',"bcd")]
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:28 <elliott> newsham: oleg
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:12 <elliott> maybe it is
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:16:51 <newsham> or something like that
03:16:58 <monqy> whats (:>:)
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:09 <elliott> hahahaha
03:18:10 <elliott> who gives a shit
03:18:12 <elliott> do they check
03:18:13 <monqy> what sort of school
03:18:14 <monqy> would do that
03:18:19 <Sgeo> To use wifi
03:18:21 <elliott> monqy: my baby's first college
03:18:22 <elliott> Sgeo: do they check
03:18:23 <Sgeo> At school, I mean
03:18:25 <elliott> Sgeo: do they check
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:18:58 <oerjan> er wait
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:19:53 <elliott> oerjan: no shit
03:19:56 <elliott> its not meant to be
03:20:01 <elliott> maybe you should read the docs :P
03:20:05 <oerjan> um
03:20:11 <oerjan> > (0$0 >>-)
03:20:12 <lambdabot> The operator `Control.Monad.Logic.Class.>>-' [infixl 9] of a section
03:20:12 <lambdabot> m...
03:20:29 <oerjan> elliott: that's a criminal lack of fixity consideration
03:20:36 <oerjan> also, what do you mean _read_?
03:20:45 <monqy> study
03:20:57 <quintopia> as the brits say, revise
03:21:04 <monqy> worship???
03:21:30 <elliott> (b :>: c) -> (a :>: b) -> (a :>: c)
03:21:31 <elliott> ugh how
03:22:37 <elliott> :t ?x
03:22:38 <lambdabot> forall t. (?x::t) => t
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:19 <elliott> but to test that
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:30 <elliott> oerjan: :D
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:28:17 <newsham> ?
03:28:26 <Sgeo> n/m they do
03:28:27 <newsham> and thats "interleave"?
03:29:01 <oerjan> > interleave "hello" "world"
03:29:01 <lambdabot> "hweolrllod"
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:29:45 <lambdabot> mueval-core: Time limit exceeded
03:29:51 <Lymee> Blasphemy.
03:30:18 <newsham> so you basically use "interleave" and ">>-" where you would have used "mplus" and ">>=" in the past?
03:30:23 <elliott> carpen dioxide
03:31:38 <monqy> once for pruning, ifte for soft-cut
03:31:42 <monqy> msplit for msplit
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:31:55 <oerjan> bah
03:32:13 <elliott> Deewiant: Did you ever benchmark list-tries against Data.Map?
03:32:36 <elliott> monqy: side-msplitting
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:34:59 <oerjan> :t (<**>)
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 <elliott> ?hoogle address
03:36:13 <lambdabot> Text.Html address :: Html -> Html
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 <lambdabot> No results found
03:36:17 <oerjan> monqy: to get the actions done in the reverse order of the application
03:36:20 <elliott> ?hoogle so unsafe baby
03:36:20 <lambdabot> No results found
03:36:24 <elliott> ?hoogle be unsafe w/ me
03:36:24 <lambdabot> Parse error:
03:36:24 <lambdabot> --count=20 "be unsafe w/ me"
03:36:25 <lambdabot> ^
03:36:29 <elliott> ?hoogle ass
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:37:11 <elliott> :D
03:37:14 <elliott> my best 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:17 <monqy> very stylish
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:06 <elliott> monqy: sometimes
03:40:13 <oerjan> @src (<**>)
03:40:13 <elliott> monqy: like whenever you're not talking to me ;D
03:40:14 <lambdabot> (<**>) = liftA2 (flip ($))
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:42:38 <oerjan> wtf not
03:43:00 <oerjan> > interleave "0110" "1001"
03:43:01 <lambdabot> "01101001"
03:43:34 <oerjan> oh wait
03:44:21 <newsham> > interleave "abcd" "ABCD"
03:44:21 <lambdabot> "aAbBcCdD"
03:44:49 <oerjan> oh hm
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:21 <oerjan> still not
03:45:27 <Lymee> What are you trying to get it to do?
03:46:12 <quintopia> > interleave "1001" "0110"
03:46:17 <quintopia> > interleave "1001" "0110"
03:46:18 <lambdabot> "10010110"
03:46:22 <oerjan> > fix (((0:).tail).(interleave<*>map(1-)))
03:46:24 <lambdabot> Terminated
03:46:31 <oerjan> wat
03:46:40 <quintopia> is there any other pair of four digit binary strings that has that property oerjan?
03:46:52 <oerjan> certainly :P
03:47:12 <quintopia> > interleave "1010" "0101"
03:47:13 <lambdabot> "10011001"
03:47:50 <oerjan> hm i guess only trivial ones
03:47:58 <oerjan> > interleave "0000" "0000"
03:47:59 <lambdabot> "00000000"
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:26 <quintopia> hmm
03:48:41 <oerjan> that works, but i'd hoped for something prettier :(
03:48:42 -!- Lymia has joined.
03:48:57 <oerjan> hm...
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:31 <elliott> monqy: it is
03:49:40 <oerjan> zzo38: yep
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:24 <lambdabot> forall a b. b -> a
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:27 <elliott> case Map.lookup a m of
03:52:27 <elliott> Nothing ->
03:52:27 <elliott> let interned = Interned a
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:30 <oerjan> > [1..] >>- id
03:53:31 <lambdabot> No instances for (GHC.Num.Num [b], GHC.Enum.Enum [b])
03:53:31 <lambdabot> arising from a use...
03:53:34 <elliott> oerjan: halp
03:53:35 <oerjan> erm
03:53:39 <oerjan> > [1..] >>- return
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:53:44 <oerjan> oops
03:54:22 -!- Lymia has changed nick to Lymee.
03:54:30 <elliott> no but srs
03:54:35 <elliott> why is copy :(
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:37 <elliott> oerjan: yes
03:58:40 <elliott> store <- emptyInternStore -- :: IO (InternStore Int)
03:58:40 <elliott> let foo = intern store 9
03:58:40 <elliott> print foo
03:58:40 <elliott> let bar = intern store 9
03:58:40 <elliott> print bar
03:58:44 <monqy> [1..] >>- show
03:58:46 <monqy> er
03:58:48 <monqy> > [1..] >>- show
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:37 <oerjan> hm...
03:59:38 <elliott> with Debug.Trace
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
03:59:56 <elliott> so ghc tends not to do it
04:00:03 <elliott> but yeah, there is some copying going on here
04:00:04 <oerjan> right
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:49 * elliott reads lists
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> 0
04:02:52 <elliott> Prelude GHC.Exts GHC.Prim> r
04:02:59 <elliott> 1
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:09 <elliott> 0
04:03:11 <elliott> Prelude GHC.Exts GHC.Prim> I# (r `seq` reallyUnsafePtrEquality# q r)
04:03:13 <elliott> 1
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:04:12 <quintopia> > interleave "1110" "1000"
04:04:13 <lambdabot> "11101000"
04:05:21 <quintopia> oerjan: that one works, but not commutatively
04:05:42 <quintopia> > interleave "0001" "0111"
04:05:43 <lambdabot> "00010111"
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:06:59 <lambdabot> "aebfcgdh"
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:49 <elliott> oerjan: with Data.Map
04:08:49 <elliott> ?
04:08:53 <oerjan> yeah
04:08:56 -!- derrik has joined.
04:09:06 <elliott> data V = V String String
04:09:08 <elliott> good data type dot jpg
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> <no location info>:
04:11:34 <lambdabot> lexical error in string/character literal at end o...
04:11:40 <oerjan> > interleave "0001" "0110"
04:11:41 <lambdabot> "00010110"
04:12:40 <monqy> data V = V String V -- use this
04:12:42 <monqy> also use deepseq
04:12:45 <elliott> monqy: lol
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:26 <lambdabot> mueval-core: Time limit exceeded
04:13:35 <elliott> so ideally, this will just be a really big optimisation :P
04:13:51 <oerjan> hash consing
04:14:18 <elliott> oerjan: what of it?
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:06 <elliott> [asterisk]...
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:17:22 <elliott> [chirps]
04:17:37 <monqy> is that #ghc
04:17:44 <monqy> heheheheheehe
04:18:09 <elliott> yep
04:20:51 <elliott> oerjan: maybe i should use some structure other than a map just to test
04:21:25 <oerjan> ye olde list
04:21:46 <elliott> sigh
04:21:48 <elliott> made it a list
04:21:50 <elliott> still gets copied
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:24 <monqy> Identity?
04:23:43 <elliott> monqy: that wouldn't work, I need an empty state
04:23:45 -!- Sgeo has joined.
04:23:49 <monqy> oh
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:26:17 <elliott> same results
04:26:39 <oerjan> huh
04:27:11 <elliott> someone in ghc seems to have taken the bait
04:27:17 <elliott> i am carefully watch............
04:27:20 <oerjan> yay
04:27:30 <monqy> good taken or bad taken
04:28:10 <elliott> i don't know
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:36 <elliott> or will you
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:07 <elliott> im sorry
04:33:13 <elliott> do you want me to fix it
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:33:41 <monqy> thats spooky
04:33:44 <monqy> im spooked
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:22 <oerjan> ah, a noble cause
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:01 <elliott> all of them?
04:37:09 <oerjan> hm perhaps
04:37:19 <elliott> well the prints are trying to make it strict, but ok
04:37:24 <elliott> wow
04:37:25 <elliott> now its true
04:37:27 <elliott> can i hug you
04:37:29 <oerjan> XD
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> test :: IO Bool
04:39:21 <elliott> test = do
04:39:21 <elliott> store <- emptyInternStore
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:39:26 <elliott> 0# -> return False
04:39:30 <elliott> 1# -> return True
04:39:32 <elliott> this has to work
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:51 <elliott> aha
04:40:52 <elliott> in case foo `seq` bar `seq` reallyUnsafePtrEquality# foo bar of
04:40:53 <elliott> makes it work
04:41:25 <elliott> and with Int, too
04:41:29 <elliott> ok now to try and bring back in Map
04:42:03 <elliott> yay, it's working
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:44:52 <elliott> oerjan: oh, like...
04:45:00 <elliott> intern store (internedValue (intern store 9))?
04:45:05 <oerjan> yeah
04:45:13 <elliott> oerjan: that's not a problem, I seq a first
04:45:15 <elliott> or do you mean like
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:32 <oerjan> yeah
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:05 <oerjan> heh
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:36 <oerjan> yikes
04:48:49 <elliott> so yeah, forcing is preferable
04:48:54 <elliott> oerjan: otoh compare might be _slow_...
04:49:02 <elliott> oerjan: e.g. String
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:03 <oerjan> mhm
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:07 <elliott> oerjan: behold my monster
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
04:59:42 <elliott> arrrrrrr
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:23:16 <CakeProphet> I think they are correlated in some way.
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:24:50 <CakeProphet> but... elliott
05:25:04 <CakeProphet> it ONLY works with IO, and ONLY with Maybe, and Only with Interned
05:25:07 <CakeProphet> that's not general enough!
05:25:12 <monqy> what
05:26:04 <CakeProphet> you need more typeclasses!
05:26:05 <elliott> the IO is unsafePerformIO'd away
05:26:10 <CakeProphet> use MonadIO instead!
05:26:11 <elliott> and Interned is the whole point :P
05:26:18 <elliott> no, these functions are not externally used
05:26:24 <elliott> it is just for
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:26 <elliott> r <- internStoreGet m a
05:26:26 <elliott> case r of
05:26:26 <elliott> Nothing -> do
05:26:29 <elliott> let interned = Interned a
05:26:31 <elliott> m' <- interned `seq` internStorePut m a interned
05:26:33 <elliott> return $! (m', interned)
05:26:35 <elliott> Just interned -> interned `seq` return $! (m, interned)
05:26:37 <elliott> so i can do
05:26:39 <elliott> instance (Eq a) => Eq (Interned a) where
05:26:41 <elliott> a == b =
05:26:43 <elliott> case a `seq` b `seq` reallyUnsafePtrEquality# a b of
05:26:45 <elliott> 0# -> False
05:26:47 <elliott> 1# -> True
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:24 <elliott> externally
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:27:47 <elliott> monqy: oh shaddap :P
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:31:48 <elliott> HAT
05:31:50 <elliott> FUCK
05:32:21 <elliott> OH MY GOD GHC
05:32:22 <elliott> THE VARIABLE
05:32:22 <elliott> IS NOT
05:32:23 <elliott> FUCKING
05:32:24 <elliott> AMBIGUOUS
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:00 <elliott> that was me
05:33:02 <elliott> just the last bit
05:33:06 <elliott> emptyInternStore :: (InternStoreMap store a) => IO (InternStore store)
05:33:06 <elliott> emptyInternStore = do
05:33:06 <elliott> mt <- internStoreEmpty :: IO store
05:33:06 <elliott> v <- newMVar mt
05:33:06 <elliott> return (InternStore v)
05:33:10 <elliott> A0 IS NOT AMBIGUOUS OMG
05:34:53 <oerjan> missing functional dep?
05:36:06 <oerjan> (store -> a)
05:36:10 <elliott> hmm, right
05:36:16 <elliott> nope
05:36:18 <elliott> i do need that fundep
05:36:21 <elliott> but that doesn't fix this :(
05:36:25 <oerjan> huh
05:36:43 <elliott> bleh but if i make it like
05:36:48 <elliott> emptyInternStore :: (InternStoreMap store a) => IO (InternStore store a)
05:36:49 <elliott> then it works
05:36:51 <elliott> that's redundant, dammit
05:37:06 <oerjan> um what's the class definition?
05:37:50 <elliott> ah,
05:37:51 <elliott> data InternStore store = forall a. (InternStoreMap store a) => InternStore (MVar store)
05:37:52 <elliott> works
05:38:00 <elliott> but why can't a newtype have an existential blah :/
05:38:00 <elliott> hmm
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:39:39 <elliott> good lines of code
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:16 <elliott> well
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:41:07 <monqy> hi
05:42:27 <elliott> hi
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:13 <CakeProphet> though it may be unecessary.
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> (line 1, column 24):
05:50:04 <lambdabot> unexpected "="
05:50:04 <lambdabot> expecting variable, "(", operator or end of input
05:50:16 <elliott> *Data.Intern> test
05:50:16 <elliott> Just "no"
05:50:17 <elliott> yesss
05:50:45 <oerjan> CakeProphet: most pattern matching cannot be @pl'ed
05:50:55 <CakeProphet> ah, that makes sense.
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:51:44 <oerjan> hm...
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:17 <lambdabot> (line 1, column 13):
05:52:17 <lambdabot> unexpected "("
05:52:17 <lambdabot> expecting operator or ")"
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:27 <oerjan> sadly no :(
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:43 <lambdabot> (line 1, column 13):
05:52:43 <lambdabot> unexpected "("
05:52:44 <lambdabot> expecting operator or ")"
05:52:50 <oerjan> @pl let f (x,y) = x ++ " does this work?" in f
05:52:50 <lambdabot> (++ " does this work?") . fst
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:52:59 <elliott> wizard. C is truth.
05:53:01 <elliott> oh my god
05:53:03 <elliott> choke on vomit
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:08 <elliott> "
05:53:10 <elliott> im reading your book
05:53:12 <elliott> while this is still true,
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:20 <elliott> "
05:53:22 <elliott> oh my god
05:53:24 <elliott> stop
05:53:26 <elliott> talking
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:37 <monqy> im too busy dying
05:53:38 <elliott> "
05:53:40 <elliott> OH MY GOD LITERALLY DIE
05:53:42 <monqy> from this unique experience
05:53:49 <elliott> thank god it ends here
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:36 <elliott> see microcode
05:56:41 <zzo38> It is not a terrible thing to know, unless you dislike computer programming anyways
05:56:49 <CakeProphet> elliott: I didn't say it represented it.
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 <elliott> i will get the address
05:57:28 <CakeProphet> no it didn't. But it taught me about memory addressing and pointers.
05:57:29 <elliott> i think
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:57:46 <CakeProphet> ...fine. whatever.
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:47 <CakeProphet> why would you learn C -> C is useless
05:58:51 <elliott> IO $ \s ->
05:58:51 <elliott> case newAlignedPinnedByteArray# size align s of { (# s', mbarr# #) ->
05:58:51 <elliott> (# s', ForeignPtr (byteArrayContents# (unsafeCoerce# mbarr#))
05:58:51 <elliott> (MallocPtr mbarr# r) #)
05:58:51 <elliott> }
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:00:19 <CakeProphet> *is
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:08 <monqy> nope
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:04:24 <monqy> too magical
06:04:32 <CakeProphet> too high.
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:57 <elliott> ?hoogle sizeOf
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:18 <elliott> monqy: evil
06:10:29 <elliott> wow = IO $ \s ->
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:11:13 <monqy> wow
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> Error in deriving:
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:13:33 <elliott> *Data.Intern> wow
06:13:33 <elliott> 0x00007fc06e2541f8
06:13:48 <monqy> is this for real
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> wow :: a -> IO (Ptr a)
06:15:44 <elliott> wow x = IO $ \s ->
06:15:44 <elliott> case newAlignedPinnedByteArray# size align s of
06:15:44 <elliott> (# s', mbarr# #) ->
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:15:53 <elliott> monqy: this is for real
06:15:59 <elliott> *Data.Intern> wow 9
06:15:59 <elliott> 0x00007fc06f50be58
06:16:01 <elliott> *Data.Intern> wow ()
06:16:03 <elliott> 0x00007fc06f4ca228
06:16:05 <elliott> *Data.Intern> wow "x"
06:16:07 <elliott> 0x00007fc06f50a278
06:16:09 <elliott> *Data.Intern> wow "hexagons"
06:16:11 <elliott> 0x00007fc06eed61e0
06:16:13 <elliott> *Data.Intern> wow "hexagons"
06:16:15 <elliott> 0x00007fc06ee83230
06:16:17 <elliott> this is the most beautiful thing ive ever seen
06:16:27 <Sgeo> There's an IO function?
06:16:31 <monqy> constructor
06:16:58 <elliott> yeah, constructor
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:49 <elliott> of course.
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:17 * CakeProphet whistles innocently.
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:06 <elliott> *Data.Intern> wow wow
06:19:06 <elliott> 0x00007fc06f71cca0
06:19:06 <elliott> *Data.Intern> wow wow
06:19:06 <elliott> 0x00007fc06f71c1a8
06:19:06 <elliott> *Data.Intern> wow wow
06:19:13 <elliott> monqy: ok something seems wrong
06:19:18 <elliott> oh wait hm
06:19:19 <monqy> try sharing on it
06:20:24 <CakeProphet> probably too much unsafe stuff.
06:20:25 <elliott> *Data.Intern> wow wow
06:20:25 <elliott> 0x00007fc06ee6d572
06:20:26 <elliott> *Data.Intern> wow wow
06:20:26 <elliott> 0x2e302e312e706d67
06:20:26 <elliott> *Data.Intern> wow wow
06:20:32 <elliott> 0x00000039312e312d
06:20:34 <elliott> gah
06:20:48 <CakeProphet> no referential transparency? shameful.
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:05 <elliott> oh i forgot about gc.
06:22:06 <elliott> :(
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:47 <Sgeo> night
06:23:50 <CakeProphet> and elliott wants to break Haskell into some sick monster in a plot to rule the world.
06:24:08 <monqy> elliotskell???
06:24:16 <monqy> maybe with another t
06:24:23 <monqy> haskelliott
06:25:02 <elliott> *Data.Intern> testc
06:25:02 <elliott> 21
06:25:02 <elliott> 21
06:25:02 <elliott> *Data.Intern> testc
06:25:02 <elliott> 23
06:25:09 <elliott> 21
06:25:15 <elliott> oh well, it's in IO, it can do that.
06:25:47 <monqy> so does it work
06:27:18 <elliott> yes
06:27:25 <monqy> woohoo
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:29:54 <elliott> its eternal
06:31:25 <CakeProphet> elliott: or Ruby
06:31:28 <monqy> which scheme is this r5rs
06:31:35 <CakeProphet> that would also be useful for Ruby symbols.
06:32:43 <elliott> monqy: yeah
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:27 <elliott> see also
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:51:28 <monqy> thanks hlint
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:00 <elliott> monqy: enjoy afraid
06:59:05 <elliott> utrecht is so scaary :(
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:17 <elliott> pr
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:03:39 <elliott> yuck
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:04:29 <CakeProphet> oh wow, thanks Wikipedia.
07:04:36 <CakeProphet> I didn't think that was possible.
07:06:09 <monqy> this uu parsing library thing is scary
07:06:36 <elliott> monqy: its utrecht
07:06:38 <elliott> run and fear :<
07:07:24 <CakeProphet> :t max
07:07:25 <lambdabot> forall a. (Ord a) => a -> a -> a
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:11 <CakeProphet> max s1 s2 = (\t -> max (s1 t) (s2 t))
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:20 <elliott> no, i just made it error
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:47 <elliott> good luck with that
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:05 <elliott> good luck with that
07:11:15 <CakeProphet> ...yes, as you can see, I mentioned it was a different type
07:11:19 <elliott> so?
07:11:19 <CakeProphet> which sort of implies that it will look different.
07:11:22 <CakeProphet> and not be the same function.
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:11:50 <elliott> then liftS2 (==)
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:12:22 <elliott> so...?
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:26 <elliott> what weird thing did i do
07:13:26 <elliott> ?
07:13:36 <CakeProphet> I wasn't sure, it was a question.
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:14:20 <elliott> ok
07:16:00 <elliott> ?pl \f x -> m' (\y -> m f y) x
07:16:00 <lambdabot> m' . m
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:17:50 <elliott> ?pl \x -> get (f (g x)) x
07:17:51 <lambdabot> get =<< f . g
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:18:54 <lambdabot> join . flip (modify . f . g)
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 <elliott> ?hoogle join
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:21:36 <elliott> hmm
07:21:36 <elliott> ok
07:22:04 <oerjan> @src -> >>=
07:22:05 <lambdabot> Source not found. Just try something else.
07:22:10 <elliott> wait
07:22:11 <oerjan> @src (->) (>>=)
07:22:12 <lambdabot> f >>= k = \ r -> k (f r) r
07:22:14 <elliott> you can't do that fmap
07:22:15 <elliott> can you?
07:22:19 <oerjan> monqy: ^
07:22:22 <elliott> oerjan
07:22:23 <elliott> i need help
07:22:25 <elliott> <elliott> (a -> b) -> Lens x a -> Lens x b
07:22:28 <elliott> where
07:22:29 <elliott> data Lens a b = Lens { get :: a -> b, modify :: (b -> b) -> a -> a }
07:22:31 <elliott> you can do it for get
07:22:36 <elliott> but its impossible to write modify ther
07:22:36 <elliott> e
07:22:37 <elliott> right?
07:22:42 <elliott> or is it
07:23:37 <elliott> well
07:23:40 <elliott> i have a monad instance...
07:23:41 <elliott> ?src liftM
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:55 <lambdabot> m1 >>= \ x1 -> 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:23:58 <oerjan> i don't think so
07:24:03 <elliott> monqy: parallel lists
07:24:19 <elliott> liftM f m1 = m1 >>= \ x1 -> return (f x1)
07:24:19 <elliott> so
07:24:22 <oerjan> it's not covariant
07:24:37 <elliott> liftM f (Lens g m) = Lens g m >>= \ x1 -> return (f x1)
07:24:38 <elliott> so let me unpack
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:07 <elliott> ?unpl get =<< f . g
07:25:07 <lambdabot> (\ c -> (f >>= get) (g c))
07:25:09 <elliott> ugh
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:23 <elliott> holy shit
07:25:33 <elliott> oerjan: ok either my monad instance is invalid or this _does_ work
07:25:35 <elliott> I'm not sure which
07:26:10 <elliott> *Main> modify (liftM fst id) succ (0,9)
07:26:10 <elliott> (0,9)
07:26:11 <oerjan> what's your >>=
07:26:12 <elliott> yep, it's broken
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:07 <elliott> oh well
07:27:18 <oerjan> elliott: heh you are not using m in your >>=
07:27:23 <elliott> oerjan: nice :D
07:28:03 <elliott> -- Laws:
07:28:03 <elliott> -- modify l id x = x
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:44 <oerjan> :t get
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:03 <oerjan> oh hm
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:13 <elliott> getnth _ _ = Nothing
07:38:19 <elliott> what a weird lens
07:38:49 <elliott> *Data.Lens.Prelude> get (maybeNthL 9) (modify (maybeNthL 9) (const (Just 9)) [0,9,9])
07:38:49 <elliott> Nothing
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:51 <pikhq> Aaaaah.
07:40:58 <oerjan> elliott: it would have to pad with undefineds, no?
07:42:10 <oerjan> to fulfil those laws
07:42:28 <oerjan> oh and that would break the first one
07:43:30 <elliott> oerjan: yeah :)
07:43:37 -!- monqy has quit (Quit: hello).
07:43:38 <elliott> <oerjan> you didn't give modnth
07:43:40 <elliott> is this a pun
07:44:17 <oerjan> no, you just did not
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:48:51 <elliott> good coding with elliott
07:49:13 <elliott> :t mapM
07:49:14 <lambdabot> forall a (m :: * -> *) b. (Monad m) => (a -> m b) -> [a] -> m [b]
07:49:18 <elliott> oh right
07:49:58 -!- derrik has joined.
07:50:21 <oerjan> [d| foo = 9 |] ?
07:50:56 <elliott> oerjan: yep
07:51:06 <oerjan> and n isn't used...
07:51:22 <elliott> of course
07:51:24 <elliott> this is just an initial test :P
07:51:32 -!- derrik has left.
07:51:37 <oerjan> MADNESS
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:02:57 <elliott> maybe I could write
08:03:01 <elliott> erm
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:24 <elliott> ??
08:03:28 -!- Lymia has changed nick to Lymee.
08:06:43 <oerjan> dunno
08:10:00 <elliott> tempted to djinn it :D
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:34 <lambdabot> Error: Undefined type Lens
08:10:36 <elliott> ok now to expand again
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:01 <lambdabot> f (a, b) (c, d) =
08:11:02 <lambdabot> (\ e ->
08:11:02 <lambdabot> case c (a e) of
08:11:02 <lambdabot> (f, _) -> f e,
08:11:02 <lambdabot> \ _ g -> b (\ _ -> d (\ h -> h) (a g)) g)
08:11:06 <elliott> oerjan: yes, yes i can.
08:11:18 <elliott> well maybe. those ignored variables are a bit worrying.
08:11:27 <oerjan> you don't say.
08:11:37 <elliott> oerjan: well one of them isn't, it looks like it is just ignoring get
08:11:39 <elliott> but the other moreso :P
08:15:52 <elliott> makeLenses :: Name -> Q [Dec]
08:15:52 <elliott> makeLenses t = do
08:15:52 <elliott> TyConI dec <- reify t
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:15:52 <elliott> let [RecC _ oks] = cons
08:15:54 <elliott> _f <- newName "f"
08:15:56 <elliott> _x <- newName "x"
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:05 <elliott> oerjan: IT WOOOORKS
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:17:57 <elliott> hmm
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:07 <elliott> oh, good
08:21:14 <elliott> although, hmm
08:21:16 <elliott> that actually violates the
08:21:20 <elliott> modify l id x = x
08:21:21 <elliott> law
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:57:50 <elliott> .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:30:49 <elliott> ?pl \f x -> s (f (g x)) x
09:30:50 <lambdabot> join . (s .) . (. g)
09:30:54 <elliott> ?pl \x -> s (f (g x)) x
09:30:54 <lambdabot> s =<< f . g
09:32:03 <elliott> ?hoogle \f x -> b (f (g x)))
09:32:03 <lambdabot> Parse error:
09:32:04 <lambdabot> --count=20 "\f x -> b (f (g x)))"
09:32:04 <lambdabot> ^
09:32:05 <elliott> ?hoogle \f x -> b (f (g x))
09:32:05 <lambdabot> Parse error:
09:32:05 <lambdabot> --count=20 "\f x -> b (f (g x))"
09:32:05 <lambdabot> ^
09:32:11 <elliott> ?pl \f x -> b (f (g x))
09:32:11 <lambdabot> (b .) . (. g)
09:32:14 <elliott> ?pl \x -> b (f (g x))
09:32:15 <lambdabot> b . f . g
09:33:17 <olsner> ?pl \b f g -> b . f . g
09:33:18 <lambdabot> (. (.)) . (.) . (.)
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:12:30 <CakeProphet> .. -_-
11:13:15 <CakeProphet> shenanigans
11:13:35 <olsner> also, (.).(.) = the boobies combinator = fmap fmap fmap
11:16:18 <CakeProphet> but... fmap = (.) for functions right?
11:16:24 <CakeProphet> THIS DOES NOT HELP.
11:16:50 <Phantom_Hoover> CakeProphet, wha?
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:10 <CakeProphet> > (\x -> x+1) . [1..]
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:19 <CakeProphet> > (\x -> x+1) <$> [1..]
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:21:06 <CakeProphet> if Control.Monad were in Prelude...
11:21:41 <CakeProphet> or, wherever Functor ((->) a) is
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:24:21 <Phantom_Hoover> You mean the function functor?
11:25:44 <olsner> yeah, or the Reader functor
11:33:41 <CakeProphet> :t fmap
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:34:11 <Phantom_Hoover> olsner, we both know they're the same thing.
11:40:31 <CakeProphet> :t runReader (Reader Reader)
11:40:32 <lambdabot> Not in scope: data constructor `Reader'
11:40:32 <lambdabot> Not in scope: data constructor `Reader'
11:41:34 <CakeProphet> > return 4 3
11:41:35 <lambdabot> 4
11:42:05 <CakeProphet> > (return 4 :: Reader Int Int) 3
11:42:06 <lambdabot> Couldn't match expected type `t1 -> t'
11:42:06 <lambdabot> against inferred type `Contr...
11:45:19 <Phantom_Hoover> `quote
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:46:11 <Phantom_Hoover> But that *is* their anthem.
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:57:39 <CakeProphet> @pl (\x -> fix (fix x))
11:57:39 <lambdabot> fix . fix
11:57:47 <CakeProphet> wow, pl is so smart.
11:57:57 <CakeProphet> @pl (\x -> x)
11:57:57 <lambdabot> id
11:58:02 <CakeProphet> woah.
11:58:14 <Phantom_Hoover> Come on, that's peanuts.
11:58:25 <CakeProphet> how does IT KNOW!!!!
11:58:28 <Phantom_Hoover> The reduction rules for that are trivial.
11:58:38 <CakeProphet> @pl (\f x y -> f y x)
11:58:38 <lambdabot> flip
11:59:19 <CakeProphet> @pl (\f x y -> f x y)
11:59:20 <lambdabot> id
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:22 <olsner> ($) *is* id :)
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:25 <lambdabot> [3 @more lines]
12:01:27 <lambdabot> optimization suspended, use @pl-resume to continue.
12:02:22 <CakeProphet> so clear and concise.
12:02:28 <CakeProphet> I wonder why they ever invented variables.
12:03:33 <CakeProphet> pl is like cheating for obfuscation contests.
12:05:25 <Lymee> So
12:05:32 <Lymee> Can we rename @pl to @obfuscate
12:08:14 <Deewiant> @pl \l 1 -> l + 1
12:08:15 <lambdabot> (+)
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:50 <lambdabot> [35 @more lines]
12:12:52 <lambdabot> optimization suspended, use @pl-resume to continue.
12:12:53 * Lymee runs
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:15 <lambdabot> Parse error at end of input
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:14:36 <lambdabot> Parse error at end of input
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:28 <lambdabot> ) . flip) .) . flip id
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:30 <lambdabot> [3 @more lines]
13:09:32 <lambdabot> optimization suspended, use @pl-resume to continue.
13:10:07 -!- derrik has left.
13:11:28 <Phantom_Hoover> Lymee, please, do it in a /query.
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:48 <Phantom_Hoover> `quote
17:01:49 <HackEgo> 180) <Gregor-W> You people. You people are so stupid. I'm making a SOCIOLOGICAL statement here.
17:02:25 <monqy> `quote stupid
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:26 <Phantom_Hoover> Seeing a high correlation with oko here.
17:04:33 <Phantom_Hoover> `pastequotes stupid
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:02:31 <quintopia> where is oerjan
18:02:42 <Phantom_Hoover> Norway.
18:02:51 <quintopia> okay
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:17 <quintopia> maybe later...
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:30 <Phantom_Hoover> *sigh*
18:50:58 <Phantom_Hoover> Not one of the answers addresses the fact that the question is terrible.
18:51:33 * Phantom_Hoover downvotes across the board.
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:28:30 <oerjan> non-covariant ones.
19:29:08 <oerjan> newtype HasNoFunctor a = HasNoFunctor (a -> Int)
19:32:13 <augur> Phantom_Hoover!
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:45 <Phantom_Hoover> Rating: -2690.
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:55:04 <quintopia> (even n only)
20:55:06 <oerjan> erm
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:04 <oerjan> hm so no odd ones?
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:06 <quintopia> erm
20:58:07 <quintopia> sorry
20:58:13 <oerjan> all 1 <= k <= n, i assume you mean
20:58:20 <quintopia> of course
20:58:53 <oerjan> 10, 1230
20:58:59 <oerjan> those are unique i think
20:59:14 <oerjan> last digit 0, obviously
20:59:19 <quintopia> yeah
20:59:27 <quintopia> you can drop the zero and jsut do n-1 digits if you like
20:59:33 <oerjan> oh wait
20:59:39 <oerjan> what about 3210
20:59:55 <quintopia> some of the numbers have multiple solutions
21:00:00 <oerjan> ah
21:00:36 <oerjan> > map (readInt 4 digitToInt) ["123", "321"]
21:00:37 <lambdabot> Couldn't match expected type `GHC.Bool.Bool'
21:00:37 <lambdabot> against inferred type ...
21:00:41 <oerjan> argh
21:00:43 <oerjan> :t readInt
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:00:59 <lambdabot> [[(27,"")],[(57,"")]]
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:20 <oerjan> ok hm
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:09:28 <quintopia> yep
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:19 <oerjan> which means it is 3
21:13:40 <quintopia> indeed. the middle digit is always n/2 iirc
21:13:45 <oerjan> .[24]3[24].0
21:13:46 <quintopia> at least for the ones i found
21:13:51 <oerjan> yeah
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:02 <oerjan> (in those two spots)
21:15:05 <quintopia> nonetheless, several numbers have multiple solutions (usually consisting of two digits you can swap)
21:15:13 <oerjan> right
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:01 <quintopia> mmhmm
21:17:06 <oerjan> is that related to it being twice a prime?
21:17:15 <quintopia> good question
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:17:49 <quintopia> hehe
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:18:34 <oerjan> afk
21:18:40 <quintopia> k
21:24:10 -!- zzo38 has joined.
21:33:49 -!- Vorpal has quit (Ping timeout: 260 seconds).
21:35:21 <oerjan> lessee
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:38:55 <oerjan> oh hm wait
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:09 <lambdabot> Not in scope: `base'
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:50:22 <lambdabot> []
21:50:25 <oerjan> wat
21:51:20 <oerjan> how can it not work when it compiled :D
21:51:32 <oerjan> hm
21:51:40 <oerjan> :t delete
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:52:44 <lambdabot> []
21:53:15 -!- Lymia__ has joined.
21:53:58 <oerjan> oh duh
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:12 <lambdabot> [[1,2,3],[3,2,1]]
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:33 <lambdabot> [[1,4,3,2,5],[5,4,3,2,1]]
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:54:56 <lambdabot> [[1,4,3,2,5],[5,4,3,2,1]]
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:21 <lambdabot> [[3,8,1,6,5,4,7,2,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:56:58 <lambdabot> []
21:57:01 <oerjan> wat
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:30 <lambdabot> []
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:22 <lambdabot> []
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:34 <lambdabot> []
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:58:45 <lambdabot> []
21:59:02 <oerjan> quintopia: there appear to be no solutions for 12, 16, 18 or 20
22:00:35 <quintopia> that is a good program there sir
22:00:46 <oerjan> why thank you
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:02:36 <lambdabot> []
22:02:49 <oerjan> quintopia: perhaps :P
22:03:08 <oerjan> hm now...
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:31 <lambdabot> mueval-core: Time limit exceeded
22:03:34 <oerjan> darn
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:03:54 <lambdabot> mueval-core: Time limit exceeded
22:04:05 <oerjan> we may never know :P
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:38 <oerjan> hm...
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:10:57 <lambdabot> mueval-core: Time limit exceeded
22:11:03 <oerjan> bah
22:11:09 <oerjan> oh wait
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:11:54 <lambdabot> mueval-core: Time limit exceeded
22:11:59 <oerjan> nah didn't help
22:17:09 <elliott> omg
22:17:15 <elliott> i'm getting my first month of prgmr free :D
22:17:17 <elliott> Gregor: NEE NAW NEE NAW
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:03 <oerjan> *d
22:19:58 <quintopia> oerjan: run 26 if your compy can handle it :P
22:21:06 <oerjan> seems to take a while
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:40 <quintopia> ha
22:22:42 -!- Lymia has joined.
22:22:45 <quintopia> i figured
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:14 <elliott_> what is this about, btw?
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:08 <elliott_> 9
22:29:09 <elliott_> yw
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:29:37 <oerjan> hm...
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:37 <elliott_> i merely... know
22:31:45 <elliott_> oerjan: ok so it is just
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:31:49 <elliott_> what numbers should i use
22:31:50 <elliott_> in the nsearch call
22:31:50 <lambdabot> mueval-core: Time limit exceeded
22:31:53 <oerjan> SOME PERFECT COMPUTER
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:26 <elliott_> oh, b
22:32:29 <oerjan> no to test any b
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:14 <elliott_> even remdigs?
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:04 <elliott_> grr
22:34:05 <elliott_> ?hoogle 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 <elliott_> what delete is it?
22:34:11 <oerjan> elliott_: oh, in Data.List
22:34:22 <elliott_> what is nsearch's return type?
22:34:24 <elliott_> [[Integer]]?
22:34:27 <oerjan> yeah
22:34:35 <elliott_> how long did twenty-six take, exactly? :D
22:34:46 <oerjan> a few minutes
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:35:24 <oerjan> elliott_: hm why not
22:35:38 <elliott_> you get on that :P
22:35:41 <oerjan> no.
22:35:47 <elliott_> elliott@katia:~$ ./nsearch
22:35:47 <elliott_> []
22:35:47 <elliott_> yw
22:36:02 <oerjan> that's for 28?
22:36:04 <elliott_> yep
22:36:47 <elliott_> oerjan: what next :P
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:37:27 <quintopia> based on NO EVIDENCE
22:37:56 <oerjan> hm...
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:09 <quintopia> wat
22:39:12 <elliott_> oerjan: BUT OF COURSE
22:39:17 <elliott_> what's the next predicted base?
22:39:19 <oerjan> quintopia: i'm joking :P
22:39:22 <elliott_> oh
22:39:22 <elliott_> :D
22:39:27 <elliott_> FUCK YOU :D
22:39:31 <elliott_> oerjan: erm wait that's a real sequence?
22:39:36 <elliott_> http://oeis.org/A160406
22:39:39 <elliott_> and it fits so far
22:39:54 <elliott_> so depending on the outcome of 30... :D
22:39:55 <quintopia> 18 fails
22:39:56 <oerjan> yes but next is 18, which is not in the one we investigate
22:39:58 <elliott_> oh, damn
22:40:08 <elliott_> oerjan: how big will the output be if it is a match?
22:40:20 <elliott_> $ time ./nsearch
22:40:20 <elliott_> []
22:40:20 <elliott_> real2m9.258s
22:40:22 <elliott_> ok thirty isn't it
22:40:28 <quintopia> oerjan: i searched for the sequence 1,2,2,2,1,0...
22:40:40 <quintopia> or w/e
22:41:08 <elliott_> oerjan: trying thirtytwo now
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:43:27 <elliott_> more like finite jewquences
22:44:05 <oerjan> OR THAT
22:44:23 <quintopia> yes. it does contain a handful. it contains the fermat primes iirc
22:44:53 <oerjan> hm
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:46:51 <lambdabot> [[3,8,1,6,5,4,7,2,9]]
22:47:50 <oerjan> that one has good hits, at least :P
22:47:59 <quintopia> ah
22:48:11 <oerjan> (in google)
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:34 <oerjan> elliott_: huh?
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:20 <oerjan> (well, almost none)
22:55:26 * elliott_ tries to find the module for you; it's basically just Data.List
22:55:28 <elliott_> but with P on the end
22:55:30 <elliott_> but I just want a list version
22:55:32 <elliott_> that uses combinators
22:55:35 <elliott_> I can port it to dph myself
22:55:54 <elliott_> oh, darn
22:55:59 <elliott_> there's no dph for GHC 7.0
22:56:01 <elliott_> I'll port it to repa instead
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:45 <elliott_> of nsearch, I mean
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:57:35 <elliott_> oerjan: eh?
22:57:53 <elliott_> I just mean
22:57:57 <elliott_> nsearch
22:57:57 <elliott_> :: Integer
22:57:57 <elliott_> -> Integer
22:57:57 <elliott_> -> Integer
22:57:57 <elliott_> -> R.Array R.DIM1 Integer
22:57:58 <elliott_> -> R.Array R.DIM1 [Integer]
22:58:02 <elliott_> is the last component right,
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:27 <elliott_> is just a list of digits?
22:58:31 <oerjan> yeah
22:58:37 <elliott_> so i could do
22:58:38 <elliott_> type Number = [Int]
22:58:46 <oerjan> well yes.
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:29 <elliott_> hmm
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:16 <elliott_> i.e. not fit into Int
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:01 <oerjan> yep
23:02:17 <elliott_> $ time ./nsearch
23:02:17 <elliott_> ^Y[]
23:02:17 <elliott_> real19m28.434s
23:02:18 <elliott_> for thirty-two
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> (line 1, column 1):
23:05:23 <lambdabot> unexpected "["
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:25 <elliott_> grr
23:05:30 <elliott_> i was hoping for a combinator version
23:05:35 <elliott_> concatMap, etc.
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:27 <elliott_> filter (\d -> ) remdigs
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:46 <elliott_> oh
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:50 <lambdabot> Parse error at "!d" (column 14)
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:06:58 <lambdabot> remdigs
23:07:01 <elliott_> yay
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:08:44 <elliott_> missing parens
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:10:48 <elliott_> I think this is right
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:11:42 * elliott_ tries thirty again
23:11:43 <elliott_> real2m9.258s
23:11:43 <elliott_> to beat
23:12:43 <monqy> an improvement
23:13:35 <elliott_> 3291 elliott 20 0 48740 3700 1256 R 179 0.1 0:13.84 nsearch.optim
23:13:36 <elliott_> promising
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:13:49 <elliott_> mind you
23:14:30 <monqy> wtf sort of questions are these
23:14:33 <monqy> who would ask them
23:14:36 <monqy> ever
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:25 <elliott_> nope, it was thirty
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:16:52 <elliott_> []
23:16:52 <elliott_> real2m47.566s
23:16:56 <elliott_> so it's a pessim for that
23:16:59 * elliott_ changes it a bit
23:17:06 <elliott_> oerjan: erm that is the same program :D
23:17:17 <oerjan> i just copied it
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:19:52 <oerjan> oh wait
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:16 <elliott_> oerjan: hm I'll give it a try
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:22 <lambdabot> Parse error at ";" (column 89)
23:22:24 <elliott_> asghj
23:22:45 <oerjan> i hope that tuple doesn't hurt too much
23:23:49 <elliott_> oh wait, thats two clause
23:23:50 <elliott_> s
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:25:38 <oerjan> yeah
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:00 <oerjan> probably
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:17 <elliott_> stupid \bot
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:27:41 <oerjan> *parallelize
23:28:15 <oerjan> elliott_: ok :P
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:28:42 <elliott_> wrong position, heh
23:29:16 <elliott_> oerjan: so, erm, would I want the outer or inner concatMap to be parallel?
23:29:24 <elliott_> or both
23:29:52 <oerjan> oh hm
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:07 <oerjan> heh
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:33:20 <elliott_> right
23:33:23 <elliott_> real1m31.738s
23:33:24 <elliott_> woot
23:33:36 <oerjan> it worked? :P
23:33:42 <elliott_> yep
23:33:52 <elliott_> ok, now for thirty-four
23:34:37 <Phantom_Hoover> http://www.irregularwebcomic.net/3080.html
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:11 <elliott_> "on English time" :D
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:31 <elliott_> indeed
23:36:33 <elliott_> it's running now
23:36:35 <elliott_> eating up all my cpu
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:13 <Phantom_Hoover> elliott_, *around* half 10.
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:37:46 <oerjan> oops
23:37:49 <elliott_> ?
23:37:53 <elliott_> don't tell me it has a bug :D
23:38:15 <oerjan> it's just a bit of time
23:38:20 <elliott_> oerjan: ?
23:38:23 <elliott_> what do you mean
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:17 <oerjan> oh
23:45:18 <elliott_> as in, you can have hundreds of thousands at any time
23:45:23 <elliott_> it's like
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:28 <elliott_> having almost 0 overhead
23:46:30 <oerjan> ok
23:46:53 <elliott_> anyway, all the smart people think it's great ;D
23:46:58 <oerjan> good, good
23:58:19 <elliott_> oerjan: still going
23:59:17 <oerjan> 25 minutes...
2011-07-04
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:01:35 <oerjan> probably?
00:02:27 <oerjan> dunno
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:04 <elliott_> oerjan: oh right :D
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:05:55 <elliott_> hehehe
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:01 <oerjan> mhm
00:08:22 <zzo38> Understanding probability can help to play at pokemon card!
00:09:01 <elliott_> oerjan: indeed
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:12:59 <coppro> zzo38: link?
00:13:00 <coppro> win 4
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:12 <ais523> yes
00:14:24 * coppro braces
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:14:59 <coppro> yup, there it was
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:19 <elliott_> zzo38: I'm trying to.
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_> newtype Cord a = Leaf ![a]
00:17:09 <elliott_> | Branch !Int !(Maybe (Cord l a)) !(Maybe (Cord l a))
00:17:11 <elliott_> kind of ugly, but oh well
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:18:44 <elliott_> oerjan: still running, btw
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:21:12 <oerjan> huh
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:43 <elliott_> this is stupid
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:38 <elliott_> oerjan: hm but wait
00:25:43 <elliott_> oerjan: finger trees have O(n) indexing, right?
00:25:50 <elliott_> oh, O(log(min(i,n-i))), weird
00:26:00 <elliott_> i guess because it tries from the end too
00:26:03 <elliott_> or something
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:32 <oerjan> yeah
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:04 <elliott_> good job for making it.
00:29:08 <oerjan> a* is here the word i keep forgetting
00:29:08 <elliott_> i am proud of you.
00:29:21 <zzo38> What is a Pokemon TAS?
00:29:24 <elliott_> oerjan: asymptomatically?
00:29:25 <elliott_> er oh er
00:29:29 <elliott_> a....stigma
00:29:33 <elliott_> apex
00:29:35 <elliott_> aperture
00:29:40 <oerjan> argh :P
00:30:47 <elliott_> i know what you mean :D
00:31:29 <oerjan> good, good
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:34:02 <oerjan> elliott_: one hour
00:34:06 <elliott_> oerjan: :D
00:37:08 <oerjan> and the numbers only apply to the part vertically below ignoring the tilting...
00:38:01 <elliott_> oerjan: I know
00:38:07 <elliott_> oerjan: I just mean, why would all the strings not be equally-sized?
00:38:10 <elliott_> (Or one off from that)
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:34 <elliott_> but I don't know what it is
00:47:43 <elliott_> well, shallow but still... foresty enough
00:50:54 <elliott_> oerjan: still giong
00:50:54 <elliott_> going
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:54:02 <elliott_> two hours
00:55:01 <oerjan> wat
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:08 <elliott_> oerjan: ?
00:55:41 * Phantom_Hoover → sleep
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:16 <lambdabot> "adabraabrac"
00:56:19 <elliott_> LinuxJournal: Is there a world outside of computers?
00:56:19 <elliott_> -- http://www.linuxjournal.com/article/5048
00:56:25 <elliott_> "No."
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:57:14 <oerjan> i think so
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
00:58:55 <elliott_> ;D ;D ;D
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 <elliott_> ?hoogle Int -> a -> [[a]]
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:46 <elliott_> ?hoogle Int -> [a] -> [[a]]
01:01:47 <lambdabot> Control.Monad replicateM :: Monad m => Int -> m a -> m [a]
01:01:47 <lambdabot> Prelude drop :: Int -> [a] -> [a]
01:01:47 <lambdabot> Prelude take :: Int -> [a] -> [a]
01:01:49 <elliott_> grr
01:01:52 <oerjan> does leak space
01:02:01 <oerjan> elliott_: how dare you paste in the middle of my broken line
01:02:03 <elliott_> oerjan: hmm, I don't think so
01:02:05 <elliott_> main is shared, after all
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:18 <elliott_> at
01:02:19 <elliott_> [asterisk]ah
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:35 <elliott_> :t chunks
01:03:36 <oerjan> elliott_: Data.Split, i think
01:03:36 <elliott_> :t chunk
01:03:36 <lambdabot> Not in scope: `chunks'
01:03:37 <lambdabot> Not in scope: `chunk'
01:03:40 <elliott_> oerjan: yeah :(
01:03:53 <oerjan> not in standard libraries
01:04:58 <oerjan> > takeWhile (not.null) . map(take 3) . iterate(drop 3) $ "abcdefgh"
01:04:59 <lambdabot> ["abc","def","gh"]
01:09:49 -!- Sgeo has quit (Ping timeout: 255 seconds).
01:10:33 -!- Sgeo has joined.
01:11:30 <elliott_> algorithms suck
01:13:58 <elliott_> ?pl \d -> f d . g
01:13:58 <lambdabot> (. g) . f
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:34 <elliott_> pikhq: yes
01:15:40 -!- Sgeo has quit (Ping timeout: 255 seconds).
01:15:49 <pikhq> Well, that was straightforward.
01:15:56 <elliott_> oerjan: still going, btw
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:04 <elliott_> oerjan: COUGH COUGH
01:33:07 <oerjan> eek
01:33:12 <oerjan> TWO HOURS
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:33:44 <oerjan> oh hm
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:08 <elliott_> oerjan: >:(
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:34:58 <oerjan> RANDOM, THAT'S IT!
01:35:11 <oerjan> gaussian, to be precise
01:35:21 <elliott_> oerjan: :D
01:35:25 <elliott_> you are joking right
01:35:40 <elliott_> defaultChunkSize :: Int
01:35:40 <elliott_> defaultChunkSize = 64
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:42 <elliott_> HMMMMMMMmmmmmmmmmmmmmmmmmm
01:35:47 <oerjan> _finally_ elliott_ is getting a clue
01:35:53 <elliott_> :(
01:36:31 <elliott_> -- | O(n) Convert a list of 'Word8' into a 'Rope'
01:36:32 <elliott_> pack::[Word8]->Rope
01:36:32 <elliott_> pack s=
01:36:32 <elliott_> if Prelude.length s<=leafSize then unsafePerformIO $ do
01:36:32 <elliott_> contents<-mallocForeignPtrArray leafSize
01:36:34 <elliott_> i0<-mallocForeignPtr
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:42 <elliott_> else
01:36:44 <elliott_> let (a,b)=Prelude.splitAt leafSize s in
01:36:46 <elliott_> append (pack a) (pack b)
01:36:48 <elliott_> where
01:36:50 <elliott_> fillPtr::Storable a=>Ptr a->[a]->IO ()
01:36:52 <elliott_> fillPtr _ []=return ()
01:36:54 <elliott_> fillPtr ptr (h:t)=do
01:36:56 <elliott_> poke ptr h
01:36:58 <elliott_> fillPtr (plusPtr ptr 1) t
01:37:00 <elliott_> cool
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:09 <elliott_> cool
01:37:11 <elliott_> ok its leaf size is 65,536
01:37:13 <elliott_> so the ideal chunk size is between 64 and 65536
01:37:15 <elliott_> :D
01:39:56 <oerjan> wait this is the kind of "you need no know cache" stuff, isn't it.
01:40:01 <oerjan> *to know
01:40:27 <elliott_> oerjan: i'm not sure :D
01:40:32 <elliott_> HEY VOOOOORPAAAAAAAAAL
01:40:35 <elliott_> HEY GREEEEEGOOOOOOOOOR
01:41:33 <Sgeo> Newspaper works as a mousepad!
01:41:41 <elliott_> Sgeo: Warren considers my ardent anti-historism beautiful.
01:43:31 <Sgeo> lol
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:51:43 <elliott_> im lazy
01:55:02 -!- Lymia has changed nick to Lymee.
01:56:19 <oerjan> :t Node
01:56:20 <lambdabot> forall a. a -> Forest a -> Tree a
01:57:11 <elliott_> oerjan: what of it
01:57:52 <oerjan> :t Leaf
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 = []}
01:58:27 <oerjan> aha
02:00:44 <oerjan> hm that's annoying
02:01:06 <elliott_> 234:22.89 i give up
02:01:14 <elliott_> $ time ./nsearch.optim +RTS -N
02:01:14 <elliott_> ^C
02:01:14 <elliott_> real146m53.288s
02:01:14 <elliott_> user208m42.860s
02:01:14 <elliott_> sys25m50.830s
02:01:15 <oerjan> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
02:01:23 <elliott_> two seconds later: OMG ITS FOUND
02:01:48 <oerjan> > undefined :: [Int]
02:01:49 <lambdabot> *Exception: Prelude.undefined
02:02:02 <oerjan> why doesn't it print the initial [, anyway
02:02:23 <elliott_> for undefined
02:02:29 <oerjan> yeah
02:02:29 <elliott_> [undefined] would produce [<exception>
02:02:43 <oerjan> well sure
02:02:51 <oerjan> > [undefined] :: [Int]
02:02:51 <lambdabot> [*Exception: Prelude.undefined
02:03:01 <oerjan> but even without the brackets
02:03:26 <oerjan> > undefined :: String
02:03:27 <lambdabot> "*Exception: Prelude.undefined
02:03:44 <elliott_> hm
02:03:57 <oerjan> that's the reason why fix show works
02:04:26 <monqy> > fix show
02:04:27 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\...
02:06:01 <oerjan> :t var
02:06:02 <lambdabot> forall a. String -> Sym a
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:10:43 <oerjan> hm
02:11:00 <oerjan> > Just (Just (Just True))
02:11:00 <lambdabot> 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:37 <elliott_> yes i tried thirty
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:20:45 <oerjan> was that for 30?
02:20:52 <elliott_> yes
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:44 <oerjan> er, *almost
02:21:54 <elliott_> its obviously massively exponential
02:21:55 <elliott_> or worse
02:22:03 <oerjan> perhaps factorial
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:22:44 <oerjan> *-t
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:06 <ais523> ah, I forgot about it
02:27:11 <ais523> let me look
02:27:45 <ais523> I don't understand your notation for energy
02:28:08 <ais523> does @ mean purple/psychic energy?
02:28:13 <ais523> and if so, what is %?
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:06 <zzo38> Yes.
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:37:50 <zzo38> I fixed it.
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:43 <coppro> ah ok
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:48:59 <coppro> ah ok
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:25 <coppro> right
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:16 <ais523> yep
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:16 <coppro> yeah
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:01:56 <coppro> yeah
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:27 <coppro> suppose
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:45:40 <elliott_> hi
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:30 <coppro> yeah
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:34:59 <monqy> no it isnt
04:35:12 <elliott_> isn't it
04:35:13 <monqy> doesn't that game have so much state
04:35:14 <monqy> it's crazy
04:35:20 <elliott_> well every game has state :P
04:35:24 <elliott_> but it's manipulated with pure functions
04:35:29 <elliott_> which are the things stored
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:07 <elliott_> i can't code all the things.
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:26 <elliott_> well
05:27:27 <elliott_> cygwin
05:27:29 <elliott_> well
05:27:30 <zzo38> ais523: Do you know how to make up another pokemon card puzzle, too? I would like to see.
05:27:30 <elliott_> not cygwin
05:27:31 <elliott_> but
05:27:31 <elliott_> uh
05:27:33 <monqy> is zepto good is zepto esolangs
05:27:33 <elliott_> point is it works with newlib
05:27:37 <monqy> is zepto interpreter
05:27:39 <elliott_> monqy: zepto is so fucking good, you have no idea.
05:27:45 <elliott_> it's the most gooderest.
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:09 <zzo38> zepto?
05:28:12 <monqy> ill never be as good as zepto
05:28:15 <elliott_> zzo38: zepto
05:28:17 <elliott_> monqy: kill yourself
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:28:45 <elliott_> this is a good site
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:18 <elliott_> zzo38: yes
05:30:23 <elliott_> zzo38: it's also an adjective, and also an adverb
05:30:25 <elliott_> example,
05:30:32 <elliott_> oh it is also a verb and a noun
05:30:33 <elliott_> so
05:30:43 <elliott_> i zepto zepto with my zepto zepto. it was zepto.
05:30:50 <monqy> 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:09 <monqy> zepto
05:31:12 <elliott_> this makes thinking easier.
05:31:41 <oerjan> there is no true or false. there is only zepto
05:31:49 <elliott_> exactly.
05:31:55 <elliott_> the boolean type in zepto has one value
05:31:56 <elliott_> zepto
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:34 <elliott_> hmm
05:33:37 <elliott_> now i gotsa implement zepto
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 <elliott_> we cannot achieve true zepto.
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:20 <pikhq> AAAAGH
05:36:26 <pikhq> GHC's autoconf.
05:36:30 <pikhq> BEAT BEAT BEAT
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:38:47 <elliott_> zzo38: No; zepto is zepto.
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:05 <elliott_> zzo38: As to what?
05:41:40 <zzo38> elliott_: As to zepto.
05:41:42 <pikhq> "--with-gcc"
05:41:43 <pikhq> MURDER
05:41:53 <pikhq> MURDER SAYS I
05:42:19 <coppro> pikhq: wtf
05:42:26 -!- Sgeo_ has joined.
05:42:46 <elliott_> zzo38: As zepto to.
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:42:57 <zzo38> elliott_: .
05:43:04 <elliott_> zzo38: To what zepto is?
05:43:10 <zzo38> elliott_: ..
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:08 <monqy> is it zepto
05:46:15 <monqy> i like zpto
05:46:17 <monqy> e
05:46:19 <elliott> monqy: yes
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:51 <elliott> YES
05:46:53 <elliott> YOU
05:46:54 <pikhq> Aside from PCC, that is.
05:46:57 <elliott> YOU ARE _SO_ _LUCKY_
05:47:31 <monqy> zeptoskeleton
05:47:37 <elliott> yes.
05:47:40 <oerjan> zeptoplasma
05:47:40 <monqy> whats my part
05:47:50 <elliott> monqy: moral support. also, implementation details.
05:47:55 <elliott> also, design.
05:47:58 <elliott> also, zepto.
05:47:59 <elliott> zepto.
05:48:02 <monqy> sounds zepto
05:48:18 <oerjan> you may also have to provide a few inessential vital organs.
05:48:22 <pikhq> Meeeh, fuck GHC.
05:48:26 <elliott> pikhq: try jhc
05:48:29 <elliott> it will be teh hots
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:00 <elliott> and make it
05:49:01 <elliott> not have bignums
05:49:11 <elliott> yes, that means that + would fail for no reason and you would have to be all oh :(
05:49:12 <elliott> and fix it and oh
05:49:13 <elliott> and
05:49:14 <elliott> yeah
05:49:19 <monqy> whats bignums whats algorithms
05:49:24 <elliott> zepto
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:17 <elliott> prim
05:50:17 <elliott> cons
05:50:18 <elliott> intg
05:50:18 <elliott> symb
05:50:21 <elliott> what other types do we need monqy
05:50:33 <pikhq> Hmm, it actually doesn't have readline.
05:50:43 <oerjan> elliott: padic
05:50:49 <monqy> padic is not four letters
05:50:56 <oerjan> darn
05:50:57 <elliott> oerjan: whats padic
05:51:04 <oerjan> p-adic numbers
05:51:31 <elliott> p-adic numbers are nice they make me smile
05:51:34 <elliott> i want to hug them
05:51:41 <elliott> //hugs p-adic numbers//
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:13 <elliott> hmm
05:57:40 <elliott> pikhq: oh right jhc requires a haskell compiler
05:57:42 <elliott> pikhq: try hugs :P
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:26 <pikhq> Tcl.
05:59:37 <coppro> :(
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:00:30 <elliott> pikhq: tried hugs yet
06:00:35 <pikhq> elliott: Not yet.
06:01:01 <monqy> are any languages sufficiently sane
06:01:06 <pikhq> monqy: Not really.
06:01:31 <elliott> petzo
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:01:57 * Lymee hugs elliott
06:02:02 * Lymee hugs pikhq too
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:33 <elliott> i.e.
06:03:35 <monqy> mm vau
06:03:44 <pikhq> *siiiigh*
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:02 <elliott> so I guess,
06:04:06 <oerjan> or wait
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:05 <elliott> oh hm wait
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:05:46 <elliott> meh,
06:05:50 <elliott> so hmm
06:06:07 <elliott> (vau e x (eval e x)) ==> (<environment> e x (eval e x))
06:06:16 <elliott> right
06:06:17 <elliott> I think
06:06:19 <elliott> dflgjdfgk
06:06:23 <elliott> monqy: this is becoming unzepto :(
06:06:28 <monqy> :(
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:08:45 <monqy> at all
06:09:34 <elliott> monqy: its great exclamation marks
06:09:41 <elliott> here's a schemeish example
06:09:42 <elliott> (define x 9)
06:09:46 <elliott> (define (f) x)
06:09:52 <elliott> (define (g) (let ((x 0)) (f)))
06:09:54 <elliott> (g) ==> 9
06:09:58 <elliott> erm
06:09:59 <elliott> (g) ==> 0
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:11:50 <newsham> wikipedia
06:12:09 <monqy> is php dynamically scoped or did they fix that or was I dreadfully misinformed
06:12:21 <monqy> hehe php
06:12:24 <coppro> lolphp
06:12:49 <elliott> php is a good joke
06:12:51 <newsham> ph urine
06:13:41 <elliott> oh i turned into a goat
06:13:44 <elliott> THIS HAPPENS OFTEN
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:11 <oerjan> darn
06:22:14 <oerjan> hm
06:22:19 <oerjan> :t let ?x = 9; f = x; g = let ?x=0 in f in g
06:22:20 <lambdabot> parse error on input `f'
06:22:30 <elliott> monqy: oh cool my environments are immutable :slowpoke:
06:22:47 <monqy> what did you do
06:22:58 <monqy> emphasis on do
06:23:04 <elliott> monqy: i failed to make them mutable, this is haskell
06:23:04 <elliott> hmm
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:00 <oerjan> hm
06:24:13 <monqy> there would still be a way to define cyclic things right
06:24:22 <elliott> monqy: nope
06:24:24 <oerjan> > let ?x = 9 in x
06:24:24 <lambdabot> x
06:24:33 <monqy> :'(
06:24:36 <oerjan> er
06:24:39 <monqy> a tough choice
06:24:42 <oerjan> ah
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:06 <oerjan> > let ?x = 9 in ?x
06:25:07 <lambdabot> 9
06:25:08 <monqy> im torn
06:25:34 <oerjan> > let {?x = 9; f = ?x} in f
06:25:35 <lambdabot> <no location info>: parse error on input `f'
06:25:48 <oerjan> wtf is that an error
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:26:59 <lambdabot> 0
06:27:05 <oerjan> whew
06:27:41 <monqy> :(
06:28:05 <oerjan> > let ?x = 9; ?y = 2 in let f = ?x; g = (let ?x = 0 in f) in g + ?y
06:28:06 <lambdabot> 2
06:28:29 <oerjan> hm is it forbidden to let both ? variables and others in the same block?
06:31:17 <elliott> :t liftM
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:31:41 <elliott> meh
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:24 <oerjan> wat
06:33:30 <oerjan> oh hm
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:06 <oerjan> elliott: ^
06:35:29 <elliott> duh. i know that.
06:35:31 <elliott> but uh thanks :P
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:27 <Deewiant> They might
06:36:29 <oerjan> ouch
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:44 <lambdabot> (mb >>=) . f =<< ma
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:27 <elliott> "Potentially"
06:37:28 <Deewiant> Meh
06:37:37 <Deewiant> -funroll-loops
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:23 <Deewiant> shrug
06:38:46 <elliott> ?src ap
06:38:46 <lambdabot> ap = liftM2 id
06:38:55 <elliott> ?unpl liftM2 id
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 <Deewiant> ?src Applicative
06:39:57 <lambdabot> class Functor f => Applicative f where
06:39:57 <lambdabot> pure :: a -> f a
06:39:57 <lambdabot> (<*>) :: f (a -> b) -> f a -> f b
06:40:17 <elliott> instance Applicative M where
06:40:17 <elliott> pure = return
06:40:17 <elliott> f <*> x = do f' <- f; x' <- x; return (f' x')
06:40:20 <elliott> relatively unugly
06:40:32 <elliott> Deewiant: What I'm saying is: Woo, GHC extensions that don't yet actually exist
06:40:52 <Deewiant> elliott: Woo
06:40:56 <Deewiant> t
06:41:11 <elliott> Deewiant: You were meant to ask what it is, but fine, ruin my flow like that
06:41:41 <Deewiant> w00t
06:42:03 <elliott> MY FLOW IS STILL RUINED
06:42:07 <elliott> I MIGHT KILL MYSELF
06:42:46 <monqy> wait why not (<*>) = ap
06:42:48 <monqy> im confused
06:42:53 <elliott> monqy: omg optimised
06:43:02 <monqy> daaaagn
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:43:50 <elliott> sadfghjkl;'[
06:43:55 * elliott hyperventilates.
06:44:00 * elliott foams at the mouth a bit.
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:01 <coppro> monqy: funroll-loops?
06:45:04 <monqy> yes
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:45:58 <elliott> Hmm
06:46:02 <elliott> I swear I've linked it a lot more than that
06:46:04 <coppro> oh
06:46:05 <coppro> ok
06:46:06 <elliott> Oh well: yes, I know
06:46:06 <elliott> :P
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:38 <coppro> good question
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:05 <elliott> Oh, "ehiird"
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:22 <Deewiant> And the latest
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:48:42 <Deewiant> Yeah, I figured
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:51:24 <coppro> bottom
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:20 <oerjan> darn
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:52:36 <Deewiant> Except not with lambdabot
06:53:21 <oerjan> > let _I_ = undefined in _I_
06:53:22 <lambdabot> *Exception: Prelude.undefined
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:40 <elliott> coppro: untrue
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:55:10 <elliott> [asterisk]i.e. ()
06:56:22 <elliott> monqy: (eof? getc putc close) -- List of functions: BEST INTERFACE?
06:56:30 <elliott> It's, like, objects, man.
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:33 <monqy> oh that's nifty
06:58:57 <coppro> elliott: I actually really like that model
06:59:02 <monqy> me too
06:59:03 <monqy> it's nifty
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:04 <elliott> HEYY WAIT OH MY GOD
07:01:07 <elliott> I could use an ENVIRONMENT
07:01:12 <elliott> Oh my god
07:01:14 <elliott> That is so perfect
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:28 <elliott> monqy: Yes
07:01:30 <coppro> elliott: OR EVEN BETTER, YOU COULD CREATE A POLYMORPHIC... WAIT NO THAT'S OBJECT-ORIENTED
07:01:31 <monqy> mmm
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:08 <coppro> elliott: perl?
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 <pikhq> :)
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:05 <coppro> elliott: ohgod
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:05 <elliott> This is genius.
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:07:40 <elliott> I CAN SEE IT NOW
07:08:12 <monqy> turn it into a paradigm
07:08:18 <monqy> sell books
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:45 <elliott> FEAR ME
07:08:47 <oerjan> get crushed when oleg points out it's just simple syntactic sugar over delimited continuations
07:08:52 <elliott> :D
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:10:50 <coppro> :D
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:01 <elliott> coppro: wat :D
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:14:37 <monqy> two books
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> *Main> env <- defaultEnv
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> *Main> eval env code
07:18:46 <elliott> *** Exception: AnteException <AnteValue>
07:18:48 <elliott> monqy: im pro
07:19:48 <monqy> what just happened
07:19:54 <elliott> monqy: something went wrong in the evaluation
07:20:03 <monqy> but what
07:20:11 <oerjan> something unAnteCipated
07:20:15 <elliott> monqy: dunno, I can't display values yet
07:20:22 <monqy> :(
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:25 <monqy> what then
07:23:36 <coppro> then the loop terminates
07:26:19 <elliott> *Main> test
07:26:19 <elliott> Error: (bad-function eval)
07:26:21 <elliott> swoot
07:26:40 <elliott> *Main> test
07:26:41 <elliott> Error: (bad-function #<environment>)
07:26:41 <elliott> swiit
07:26:56 <elliott> ...wait what
07:27:54 <elliott> monqy: what if i removed cons pairs
07:27:57 <elliott> what if i replaced cons pairs
07:27:59 <elliott> with environments
07:28:03 <elliott> just containing the keys "car" and "cdr"
07:28:04 <elliott> what then
07:28:06 <monqy> zepto
07:28:25 <elliott> coppro: WHAT THEN
07:28:38 <elliott> Set! the Ultimate
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:22 <monqy> instance
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:18 <elliott> we will see
07:32:22 <elliott> although
07:32:33 <elliott> it is tempting to make applying an environment to an argument look that argument up in the environment
07:34:01 <coppro> yes
07:34:04 <coppro> doit
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:27 <elliott> for instance
07:35:30 <elliott> it could be called greenparty-zepto
07:35:34 <elliott> all lowercase
07:35:35 <coppro> ok
07:35:35 <monqy> zeptoparty
07:35:37 <elliott> exactly as printed
07:35:42 <coppro> or greenzepto
07:35:54 <elliott> no, finding the zepto languages must be a painless (zepto) process for the programmer
07:36:00 <coppro> ah ok
07:36:04 <coppro> I apologize
07:36:07 <elliott> so it must always be clearly delineated from the other name
07:36:09 <coppro> I zeptofailed
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:28 <coppro> side not
07:36:31 <coppro> *side note
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:51 <elliott> its kind of gross though
07:36:52 <elliott> why do you want to?
07:36:54 <coppro> elliott: not into
07:36:55 <coppro> onto
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:57 <elliott> but
07:38:59 <elliott> im not writing in zepto
07:38:59 <monqy> whats wrong with ap;plication
07:39:00 <elliott> im writing in haskell
07:39:04 <elliott> and that requires an unzepto frame of mind
07:39:07 <elliott> monqy: i dunno you tell me
07:39:11 <elliott> punque
07:39:19 <elliott> oh
07:39:19 <elliott> OH
07:39:20 <elliott> im dum
07:39:23 <elliott> dum as an shits
07:39:25 <elliott> :/
07:41:47 <elliott> *Main> test
07:41:47 <elliott> #<primitive>
07:41:48 <elliott> monqy: O YA
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:11 <elliott> there's IORefs
07:43:13 <monqy> oh
07:43:18 <monqy> iorefs are scary
07:43:28 <elliott> monqy: im thinking about making zepto stm
07:43:30 <elliott> and using TVars
07:43:32 <elliott> but
07:43:33 <elliott> yeah
07:43:54 <elliott> monqy: http://sprunge.us/HWMi
07:43:55 <elliott> enjoy
07:44:03 <elliott> this is ante-zepto initial
07:45:33 <oerjan> an ante-paste
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:04 <elliott> Deewiant: i
07:46:06 <elliott> Deewiant: dont like you
07:46:09 <elliott> Deewiant: please...stop existing...
07:46:13 <elliott> :(
07:46:19 <elliott> im really not happy that you exist
07:46:20 <Deewiant> I forgot to add the ")" at the end
07:46:28 <elliott> thats not the bad part
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:29 <elliott> thats expert
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:16 <monqy> yeah those
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:49 <elliott> MonadIO, MonadState etc.
07:53:57 <monqy> I guess those help yes
07:53:57 <oerjan> more like monad stuck
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:10 * elliott claps
07:54:19 <elliott> im happy for them
07:54:29 <monqy> woo colours
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:55:45 * oerjan swats olsner -----###
07:56:07 <elliott> monqy: yes its great
07:56:24 <elliott> monqy: i suggest zooming in by the way, zooming in is nice because everything gets bigger
07:56:26 <elliott> so its easier to see
07:56:43 <monqy> less room for my eyes to skip
07:58:22 <elliott> 1
07:58:22 <elliott> By x
07:58:23 <elliott> n
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:19 <elliott> oh my god
07:59:22 <elliott> i want to voice act it now
08:00:58 <elliott> "CODY (getting excited)"
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:04:46 <elliott> CODY Gosh
08:04:57 <elliott> [exclamation mark]
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:35 <monqy> ungetc is what
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 <elliott> :(
08:07:03 <monqy> i meant what in the sense that
08:07:06 <elliott> and its built in to stdio
08:07:07 <elliott> oh
08:07:08 <elliott> right
08:07:09 <elliott> yeah
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:51 <elliott> -- is-eof? (read)
08:07:51 <elliott> -- get-char (read)
08:07:51 <elliott> -- put-char (write)
08:07:51 <elliott> -- close
08:07:53 <elliott> DO I NEED ANYTHING ELSE PIKHQ
08:07:57 <elliott> also, usually implemented: char keep;
08:07:59 <elliott> i think
08:07:59 <elliott> well
08:08:01 <elliott> int 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> ACT III
08:08:46 <elliott> SCENE I. INFINITE REGULAR EXPRESSIONS
08:08:48 <elliott> oh yes
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:09:16 <elliott> theo thats not nice
08:09:18 <elliott> we're all friends here
08:11:29 <elliott> THEO Ok, fine (tired of the practitioners’ conversation).
08:11:30 <elliott> theo
08:11:33 <elliott> you're being very nasty
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:08 <elliott> SEMANTIC BRACKETS
08:13:09 <elliott> GREEK LETTERS
08:13:11 <elliott> LANGUAGES AS SETS
08:13:12 <elliott> ETC.
08:13:18 <monqy> brilliant
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:00 <elliott> CODY God I hate you.
08:14:10 <elliott> thats my fanfiction
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:14:29 <monqy> faces!
08:15:12 <elliott> type ReadTable = Map Char AnteValue -- function from handle -> object
08:15:13 <elliott> monqy
08:15:15 <elliott> monqy oh my god
08:15:16 <elliott> its a map
08:15:16 <elliott> that means
08:15:18 <elliott> its an environment
08:15:23 <elliott> I just need to let environments have arbitrary objects as keys
08:15:30 <elliott> rather than just symbols
08:15:55 <monqy> are environments good keys
08:17:17 <oerjan> WHO'S A GOOD KEY?
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:35 <monqy> good job usa
08:20:39 <elliott> <monqy> the . is a little bizarre there does it mean the same thing as it does in scheme
08:20:40 <elliott> yes
08:20:47 <elliott> pico does it because it means quote is faster, its just cdr rather than cadr :P
08:21:00 <elliott> but since like
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:17 <elliott> clean?
08:21:19 <elliott> but then
08:21:22 <elliott> no other form acts like that
08:21:22 <elliott> so
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:22:56 <monqy> 2
08:23:02 <monqy> use wisely
08:23:06 <elliott> im unwise
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:23:43 <elliott> nice
08:23:47 <elliott> very zepto
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:25:39 <oerjan> *MWAHAHAHA*
08:26:03 <monqy> dying from spook
08:30:39 <elliott> oerjan: thats not nice
08:30:42 <elliott> zzo38: yes
08:31:18 <elliott> monqy: oh this is going to be hard are
08:31:24 <elliott> do IORefs implement Eq
08:31:27 <elliott> or
08:31:28 <elliott> Ord
08:31:59 <monqy> instance Eq (IORef a) -- Defined in GHC.IORef
08:32:10 <elliott> oh im good
08:32:34 <elliott> monqy: but Ord??
08:32:54 <zzo38> Please join my TeXnicard project so that we can make something TeXnicard.
08:32:59 <elliott> no
08:33:09 <monqy> maybe in caleskell
08:33:13 <monqy> ?info IORef
08:33:14 <lambdabot> IORef
08:33:20 <monqy> how do you do the info thing
08:33:23 <elliott> ask oerjan
08:33:23 <zzo38> elliott: I don't mean you.
08:33:27 <oerjan> you don't
08:33:29 <elliott> zzo38: then who
08:33:40 <monqy> when I did :i in ghci it only gave Eq
08:33:44 <zzo38> Someone else.
08:34:01 <elliott> monqy: yeah ditto
08:34:03 <elliott> thatk ind of
08:34:04 <zzo38> Someone else who doesn't mean "no".
08:34:04 <elliott> sucks though
08:34:05 <oerjan> :t newIORef "Boo!"
08:34:06 <lambdabot> Not in scope: `newIORef'
08:34:11 <elliott> im surprised its even Eq
08:34:12 <elliott> why is it Eq
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 <elliott> ?src IORef
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 <elliott> ?src STRef
08:36:11 <monqy> yeah
08:36:11 <lambdabot> data STRef s a = STRef (MutVar# s a)
08:36:14 <elliott> nooo
08:36:16 <elliott> hashes already
08:36:20 <elliott> ?src MutVar#
08:36:20 <lambdabot> Source not found.
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:21 <elliott> it's magic, after all
08:37:36 <oerjan> i'm not sure of that...
08:37:39 <elliott> oerjan: remember, different kind
08:37:42 <elliott> Foo# :: #
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:30 <Deewiant> ptrEq :: a -> a -> IO Bool
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:36 <oerjan> oops
08:40:42 <oerjan> !haskell {-# LANGUAGE MagicHash #-} data Foo# = Foo# Int deriving Show; main = print $ Foo# 0
08:40:47 <EgoBot> Foo# 0
08:40:57 <oerjan> elliott: works perfectly
08:41:25 <elliott> hm, fair enough then
08:41:34 <oerjan> it's just for things they don't want people to muck about with needlessly
08:41:38 <oerjan> imo
08:42:14 <elliott> oerjan: i think it's because it's non-standard, dude :P
08:42:42 <oerjan> well yeah
08:42:50 <olsner> also, for translating shootout benchmarks from C to Haskell
08:42:59 <oerjan> :P
08:43:41 -!- yorick has quit (*.net *.split).
08:47:48 -!- cheater_ has joined.
08:52:58 <elliott> oh for _crying out loud_
08:53:15 <elliott> oerjan: i would like to mark down on the record how much IORefs in ADTs sucks in haskell
08:53:33 <oerjan> O KAY
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:49 <elliott> yay it all works now
09:04:57 <elliott> Deewiant: um such an Ord instance won't work for Map will it?
09:04:58 <elliott> I ended up doing
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:21 <Deewiant> elliott: Why not?
09:05:43 <elliott> Deewiant: good point :P
09:05:43 <Deewiant> Also, globall unsafePerformIO'd ioref: and you don't like my code...
09:05:49 <Deewiant> -l
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:31 <oerjan> er *elliott:
09:09:39 <elliott> oh right
09:09:41 <elliott> yes that was bad
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:57 <monqy> have fun
09:09:59 <elliott> monqy: unsafeperformio for showing ioref
09:10:07 <monqy> mm :(
09:10:07 <elliott> monqy: ok i will ill try and hallcuating
09:10:12 <elliott> tomorrow: ante-zepto
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:17:18 <oerjan> MAYBE
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:38:35 <Phantom_Hoover> fizzie, no, Bond likes his drinks unstable.
09:38:42 <Phantom_Hoover> He lives on the edge.
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:17:19 <quintopia> hello
16:17:29 <quintopia> that ks a lot of coming and going
16:17:41 <quintopia> are you alive?
16:21:51 <pikhq> Nope.
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:40:54 <pikhq> Also, birds.
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:30:48 <quintopia> >go building
17:33:23 -!- copumpkin has joined.
17:33:23 -!- copumpkin has quit (Changing host).
17:33:23 -!- copumpkin has joined.
17:38:31 <Phantom_Hoover> ineiros!
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:32 <Phantom_Hoover> Oh god.
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:24:37 <Phantom_Hoover> tswett_, you Australians are cool.
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:30:15 * tswett_ bows.
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:23 <oerjan> eek a picture
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:04 <Phantom_Hoover> I prefer calling it just... the Question.
19:51:15 <Zwaarddijk> I like the idea of the question
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:16 <elliott> lol what
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:48 <elliott> no
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:24:51 <Phantom_Hoover> God, how stupid are they.
20:25:11 <Phantom_Hoover> That's a list of lists of atheists.
20:25:35 <olsner> probably more like FixF [] Atheist
20:25:59 <Phantom_Hoover> :t FixF
20:26:00 <lambdabot> Not in scope: data constructor `FixF'
20:26:04 <Phantom_Hoover> -_-
20:26:18 <elliott> data FixF f a = Foo a | Bar (f (FixF f a)), presumably
20:26:47 <Phantom_Hoover> Nope.
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:32 <elliott> monqy: i have sad news
20:29:40 <monqy> is it about zepto
20:29:58 <monqy> antezepto specifically?
20:30:00 <elliott> monqy: yes
20:30:09 <monqy> weeping
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:39 <monqy> :(
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:47 <elliott> so as it stands
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 <elliott> which
20:31:43 <elliott> yeah
20:31:43 <monqy> aaaaaaaaaaaaaaaaaaa
20:31:45 <elliott> i dunno of one
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 <elliott> it's being split up
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:36:38 <olsner> makes sense, I guess
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:44 <elliott> Deewiant: Heh :P
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:21 <elliott> (answer: the latter)
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:40:12 <monqy> yep
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:50:41 <elliott> monqy: Maybe
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:20 <tswett_> `quote 479
22:11:21 <HackEgo> 479) Nobody actually said this; this is just a demonstration.
22:11:27 <elliott> monqy: ugh this is ugly
22:11:27 <tswett_> Now, how do I get rid of it?
22:11:32 <elliott> tswett_: `delquot
22:11:32 <elliott> e
22:11:39 <tswett_> `delquote 479
22:11:41 <HackEgo> ​*poof*
22:11:54 <tswett_> It has now been delled, I guess.
22:12:01 <oerjan> `quote 479
22:12:02 <HackEgo> No output.
22:12:09 <oerjan> SO IT WOULD APPEAR
22:14:07 <monqy> elliott: ughly?
22:14:46 -!- myndzi has quit (Ping timeout: 258 seconds).
22:15:07 <elliott> monqy: yes
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:10 <elliott> BUT STILL
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:34:21 <oerjan> parallel coding ftw
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:48 <oerjan> aha
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:38:15 <oerjan> gramma bogons
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:04 <elliott> Yes.
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:52:14 <Phantom_Hoover> oerjan, suggest we begin as soon as he reënters.
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:28 <elliott> HAHAHAHA OH WOW
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:18:59 <monqy> Start off dumb.
23:19:06 <monqy> (this is dumb)
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:25:13 <newsham> its just a little verbose
23:26:17 <Phantom_Hoover> elliott, link to comment?
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:09 <newsham> not there yet
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:47 <Phantom_Hoover> newsham, are the Xes for X-rated?
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:01 <elliott> i.e. simply an interface
23:31:04 <elliott> Monad<T>
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:27 <elliott> newsham: ok then, HLists
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:45 <elliott> three = append(two);
23:33:47 <elliott>
23:33:49 <elliott> god bless functionaljava
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:20 <newsham> i dont believe you
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:37 <elliott> oerjan: yet
23:34:41 <newsham> oerjan: perhaps you have and you didnt realize it
23:34:47 <oerjan> ooh
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:35:47 <newsham> leggo my ego
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:02 <Phantom_Hoover> newsham, the 4th ended 40 minutes ago.
23:38:10 <newsham> Mon Jul 4 13:34:50 HST 2011
23:38:15 <Phantom_Hoover> At least in civilised timezones.
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:39:55 <oerjan> oh hawaii
23:40:04 <monqy> fourth makes me mad
23:40:12 <newsham> fourth makes me drunk
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:11 <elliott> yes
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:02 <elliott> oerjan: caret
23:43:04 <elliott> from yesterday
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:45:20 <Phantom_Hoover> newsham, I thought that was a drink.
23:45:43 <elliott> dst is unzepto
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:46:58 <newsham> this much is true
23:47:05 <oerjan> ah.
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:11 <newsham> (not my site, btw)
23:48:20 <newsham> but you might chuckle anyway
23:48:25 <Phantom_Hoover> Very good.
23:48:40 <oerjan> Moses Neuesschinkel
23:48:49 <newsham> apparently lots of pig farming in the newsham line
23:48:51 <Phantom_Hoover> Is that German?
23:49:30 <elliott> newsham: that isn't real is it?
23:49:36 <newsham> it is
23:49:44 <newsham> pig genetics
23:49:44 <elliott> huh
23:49:47 <elliott> SuperMom™ Maternal Line
23:49:47 <elliott> Your choice for performance and longevity. A proven maternal leader.
23:49:48 <elliott> SuperMom™ 37
23:49:52 <elliott> i want a SuperMom™
23:50:19 <newsham> some of the newsham/newsome coat of arms have pigs on em, too
23:51:22 <Phantom_Hoover> Stop flaunting your fancy family coat of arms.
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:55:22 <elliott> mine is just boring
23:57:02 <oerjan> our family was so poor their coat had no arms
23:57:04 <Phantom_Hoover> newsham, yeah, but I mean actual Googleable people.
23:57:18 * Phantom_Hoover swatpans oerjan --==\#/
23:57:29 <newsham> google, the foundation of all credibility!
23:57:37 <newsham> no google, never happened.
23:59:05 <Phantom_Hoover> Indeed.
2011-07-05
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:01:40 <elliott> newsham: omg me too
00:01:42 <elliott> (i have no facebook)
00:01:51 <monqy> whats facebook
00:01:56 <elliott> un-zepto
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:02:23 <monqy> spiffy
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:08:01 <newsham> my claim to fame
00:09:05 <elliott> <newsham> "'I'm not on facebook' is the new 'I don't have a TV'"
00:09:08 <elliott> meh, I don't bring it up
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:09:56 <newsham> i
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:28 <monqy> whats tv
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:32 <Phantom_Hoover> WHO KNOWS
00:11:34 <elliott> that made no sense, but.
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:11:57 <newsham> the original
00:11:59 <newsham> no colon!
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:12 <elliott> newsham: and? :P
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:30 <newsham> this is the real thing!@#
00:13:41 -!- CakeProphet has quit (Ping timeout: 240 seconds).
00:13:44 <Phantom_Hoover> oerjan, I once... um... dammit.
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:06 <newsham> lord byron was pissed
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:01 <newsham> rec.arts.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:29 <monqy> oh
00:21:30 <elliott> Well yeah.
00:21:34 <elliott> That was obvious.
00:21:41 <monqy> stay away forever
00:21:53 <elliott> I suggest joining a circus (note: I do not really suggest this)
00:22:25 <Phantom_Hoover> Sgeo, *which* country.
00:22:54 <monqy> another one
00:22:55 <Sgeo> Phantom_Hoover, a choice, I think. Between England, Israel, and Australia
00:22:56 <elliott> Zimbabwe.
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:52 <newsham> and better whiskey
00:23:55 <elliott> What an endorsement.
00:23:56 <monqy> is australian weather good this time of year
00:23:57 <Phantom_Hoover> So you can get over your eating problems!
00:24:01 <monqy> is english weather good this time of year
00:24:01 <elliott> newsham: whisky.
00:24:08 * oerjan swats that e off newsham -----###
00:24:10 <newsham> whisk{ey,y}
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:29 <elliott> oerjan: no
00:25:32 <elliott> oerjan: I couldn't think what to say
00:25:56 <monqy> what is this nonsens
00:25:56 <monqy> e
00:27:06 <oerjan> monqy: which nonsense?
00:27:14 <monqy> that nonsense
00:27:18 <monqy> is there more than one
00:27:23 <oerjan> always
00:32:23 -!- CakeProphet has joined.
00:32:23 -!- CakeProphet has quit (Changing host).
00:32:23 -!- CakeProphet has joined.
00:34:04 <elliott> you know what sucks
00:34:13 <oerjan> vacuum!
00:34:15 <elliott> data AnteValue ref = AnteNil
00:34:15 <elliott> | AnteSymbol !String
00:34:16 <elliott> | AnteInt !Integer
00:34:16 <elliott> | AntePrim !Prim
00:34:16 <elliott> | AntePair !(ref (AnteValue ref)) !(ref (AnteValue ref))
00:34:16 <elliott> | AnteEnv !(Env ref)
00:34:18 <elliott> I can't write
00:34:30 <elliott> copy :: (Ref a, Ref b) => AnteValue a -> IO (AnteValue b)
00:34:31 <elliott> copy (AntePair car cdr) = ...
00:34:31 <coppro> obviously
00:34:34 <elliott> copy (AnteEnv e) = ...
00:34:36 <elliott> copy x = return x
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:46 <elliott> :t Map.foldWithKey
00:35:46 <lambdabot> Couldn't find qualified module.
00:35:48 <elliott> :t Data.Map.foldWithKey
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:04 <lambdabot> Couldn't find qualified module.
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:08 <lambdabot> Not in scope: `copy'
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:31 <elliott> oh wait
00:36:31 <elliott> duh
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:49 <lambdabot> 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:23 <lambdabot> Not in scope: `copy'
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:43 <lambdabot> (line 1, column 38):
00:39:43 <lambdabot> unexpected "?"
00:39:43 <lambdabot> expecting space or simple term
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:40:39 <elliott> oercut? ...orkut?
00:41:03 <oerjan> oercut, my cutting edge site
00:41:13 <newsham> sharp
00:41:48 <elliott> :t sequence
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:18 <newsham> how is that gonna work
00:43:23 <Phantom_Hoover> It's an initial legal thing.
00:43:27 <elliott> :t Data.Map.foldlWithKey
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:16 <monqy> longer too
00:45:35 <monqy> does it work
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:52 <elliott> and yes, it does
00:45:57 <elliott> now I can write the reader
00:50:18 <elliott> *Main> freeze code
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:19 <elliott> good
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)))))
00:50:43 <elliott> better
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:22:28 <monqy> or lists?????????
01:30:57 <Sgeo> symbols, lists, and numbers
01:31:08 <elliott> what
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> *Main> test
01:55:03 <elliott> x
01:55:03 <elliott> *** Exception: AnteException (AntePair (ID (AnteSymbol "unbound-name")) (ID (AntePair (ID (AnteInt 120)) (ID AnteNil))))
01:55:05 <elliott> monqy: excellent
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:57:00 <monqy> what's that 120
01:58:20 <elliott> monqy: ascii 'x'
01:58:25 <elliott> well unicode 'x'
01:58:48 <monqy> oh it's not a symbol?
01:58:58 <elliott> yeah
01:59:06 <monqy> and what's with it being in a pair with nil
01:59:28 <monqy> or is that a list
02:01:13 <elliott> monqy: list, yeah
02:01:21 <elliott> it's (unbound-name 120)
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:11:50 <elliott> monqy: readtables, man
02:11:59 <elliott> monqy: EXTENSIBLE SYNTAX
02:12:00 <elliott> it's zepto
02:12:08 <monqy> oh
02:12:12 <monqy> zepto
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:05 <elliott> oerjan: it's not
02:31:23 <oerjan> why not
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:25 <elliott> "fuck"
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:28 <elliott> hm wait...
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:52 <elliott> ok it is zero lookahead
02:33:53 <elliott> I think
02:33:57 <Sgeo> elliott, did we ever play the Birds map?
02:33:59 <Sgeo> I think we did
02:34:01 <elliott> Sgeo: whuh?
02:34:26 <Sgeo> elliott, the hard map for Tube Trap
02:35:54 <elliott> oh
02:35:57 <elliott> we played the hardest one, yes
02:35:58 <elliott> yeah that one
02:36:38 -!- elliott has quit (Read error: Connection reset by peer).
02:36:42 -!- elliott_ has joined.
02:36:48 * elliott_ is up for a W:A game, btw
02:36:52 <elliott_> just remembered it existed :D
02:37:12 <Sgeo> Um, does my mentioning its existence count as "just"?
02:37:21 <elliott_> what?
02:37:36 <Sgeo> You said you just remembered it existed right after I reminded you
02:37:45 <elliott_> yeah
02:37:47 <elliott_> that reminded me
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:14 <elliott_> what video player
02:45:15 <elliott_> and link
02:45:21 <Sgeo> http://techdows.com/2010/12/disable-building-font-cache.html
02:45:22 <Sgeo> VLC
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:46:42 <elliott_> Sgeo: stereotyping what
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:07 <elliott_> a day in #haskell
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
02:55:02 <elliott> :D
02:55:03 <elliott> you don't say
02:57:30 <oerjan> eek spam
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:31 <oerjan> no.
03:17:45 <elliott> oh
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:53 <elliott> oh right
03:18:55 <oerjan> this is sort of why why ShowS exists.
03:18:57 <oerjan> *-why
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:39:22 <elliott> link
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:35 <monqy> promising url
04:40:41 <monqy> quality site design
04:40:45 <monqy> looks legitimate
04:41:22 <monqy> wow this video
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:44:50 <elliott> lol
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:19:36 <oerjan> genuine maldon.
05:20:11 -!- aloril has quit (Ping timeout: 258 seconds).
05:20:18 <elliott> i love slat, it is the best
05:20:19 <elliott> salt
05:20:37 <oerjan> how ionic
05:20:50 <monqy> too much salt makes things yucky
05:20:56 <monqy> real 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:22:09 <elliott> so... wacky
05:23:31 <monqy> this wacky american tv show is so wacky
05:24:19 <monqy> wow im dying
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:29:10 <monqy> missy puffinstuff
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:11 <elliott> with soy sauce
05:33:16 <elliott> makes
05:33:18 <elliott> nt means
05:33:21 <monqy> oh god
05:33:26 <elliott> it looks delicious
05:33:28 <elliott> trust me
05:33:29 <elliott> :<
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:37:02 <monqy> edible bling
05:39:08 <monqy> wow did he grow another arm
05:39:13 <elliott> what
05:39:28 <elliott> god this caramel looks so lovely in the pan
05:39:30 <elliott> i want to lick it
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:39:56 <elliott> caramel plasma
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:41:56 <monqy> edible
05:41:56 <elliott> [asterisk]he
05:41:57 <monqy> bling
05:42:09 <monqy> sugar that bacon
05:43:00 <elliott> smoked sea salt mmmm
05:43:46 <elliott> lol at three and a half hours
05:43:49 <elliott> for the edible bling
05:44:15 <elliott> monqy: yes i can confirm he grew another arm
05:44:29 <elliott> god these look delicious
05:46:22 <elliott> what do americans consider thick cut bacon
05:46:26 <elliott> it looks not very thick
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:01 <elliott> :(
05:48:04 <elliott> food shows are bad
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:10 <elliott_> hehehe
06:05:14 <elliott_> random blog comments are great
06:05:18 <elliott_> why do i even have this tab open
06:05:22 <elliott_> dunno where it came from
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:29 <monqy> wowee
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:17 <elliott_>
06:20:17 <elliott_> get a salt shaker
06:20:30 <BeedaWeeda> i can prove that aliens exist
06:20:39 <elliott_> AUSTRALIAS LEADING EROTIC POET COLIN LESLIE DEAN
06:20:44 <monqy>
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:46 <elliott_> BeedaWeeda: orly
06:20:49 <monqy> wtf kind of view is this
06:20:55 <BeedaWeeda> yes
06:21:00 <elliott_> monqy: an self-contradictory one
06:21:01 <elliott_> OH THE IRONY
06:21:03 <elliott_> BeedaWeeda: go on
06:21:04 <monqy> ohohoho
06:21:06 <BeedaWeeda> hold on
06:21:08 <elliott_> ok
06:21:10 <elliott_> im holding
06:21:11 <BeedaWeeda> im getting the picture
06:21:12 <monqy> what if its just absurd
06:21:19 <monqy> or meaningless
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:02 * BeedaWeeda internet is really slow
06:22:15 <pikhq_> monqy: Reality has paradoxes, so reality ends in meaninglessness.
06:22:18 <pikhq_> >:D
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:54 <monqy> )
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:22:59 <monqy> 1+1=1
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:07 <monqy> whoa calm down
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:23 <monqy> it got bigger
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:43 <monqy> so uh
06:23:47 <monqy> is this paper thing
06:23:50 <monqy> a joke i hope
06:23:54 <pikhq_> elliott_: If the universe is finite, then there's a chance there exists no alien life.
06:23:55 <elliott_> i dont think so
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:08 <elliott_> BeedaWeeda: ok, go on
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:35 <BeedaWeeda> there
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:24:58 <monqy> cant you see it
06:24:59 <BeedaWeeda> you will need to use your logic
06:25:13 <BeedaWeeda> can you grasp that photograph
06:25:30 <BeedaWeeda> that is over 1,000 galaxies
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:54 <BeedaWeeda> yes
06:25:55 <BeedaWeeda> absolutely
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:20 <BeedaWeeda> yes
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:14 <BeedaWeeda> because
06:27:17 <BeedaWeeda> science is primitive
06:27:34 <elliott_> I'm not sure I understand; I'm interested to know what you mean.
06:27:36 <BeedaWeeda> we dont really know
06:27:43 <BeedaWeeda> well think about it
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:14 <BeedaWeeda> yes
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:28:58 <monqy> what
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:25 <BeedaWeeda> i think science has a lot of dogma
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:29:48 <BeedaWeeda> no
06:29:54 <BeedaWeeda> just too fast for me to keep up
06:29:54 <elliott_> OK.
06:30:01 <elliott_> Sorry then.
06:30:03 <monqy> in what way does science "have" dogma
06:30:27 <BeedaWeeda> science is dogma in a lot of ways
06:30:34 <monqy> ok
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:21 <elliott_> heh
06:31:25 <BeedaWeeda> it is clearly
06:31:30 <BeedaWeeda> a huge sort of, open secret
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:31:48 <BeedaWeeda> like what?
06:32:01 <BeedaWeeda> humans are probably flying them too
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:01 <BeedaWeeda> no
06:33:08 <elliott_> BeedaWeeda: programming
06:33:12 <BeedaWeeda> lol
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:33:47 <BeedaWeeda> =(
06:34:01 <BeedaWeeda> did you know
06:34:10 <elliott_> did i nkow what?
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:19 <BeedaWeeda> they find tool marks
06:34:27 <BeedaWeeda> making perfect incisions
06:34:33 <BeedaWeeda> and drilled holes
06:34:34 <elliott_> did the airforce say that
06:34:39 <BeedaWeeda> in megalithic structures
06:34:40 <elliott_> so um
06:34:46 <BeedaWeeda> that are like 10,000 years old
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:35:30 <elliott_> mind lasers
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:36 <elliott_> so?
06:36:39 <elliott_> old people had brains, too.
06:36:44 <monqy> you don't say
06:36:53 <BeedaWeeda> some of them way up to 1,000 tons
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:07 <BeedaWeeda> with freakin logs and ropes
06:37:08 <elliott_> pulley type things
06:37:14 <elliott_> its called slave labour
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:32 <elliott_> BeedaWeeda: yeah but
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:49 <pikhq_> And zombie Jews.
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:28 <BeedaWeeda> you clearly
06:41:31 <BeedaWeeda> havent researched the field
06:41:34 <BeedaWeeda> elliott
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:23 <elliott_> and you are boring too :(
06:42:24 -!- aloril has quit (Read error: Operation timed out).
06:42:29 <monqy> :(
06:42:55 <BeedaWeeda> do you believe in the bible elliott?
06:43:01 <elliott_> haha. no.
06:43:37 <BeedaWeeda> oh, so you have activated some of your logic, is that what your telling me?
06:43:43 <monqy> what
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:09 <BeedaWeeda> look at the pictures yourself
06:44:32 <monqy> those pictures just dont say "mind lasers" to me
06:44:33 <elliott_> anyway, this is off-topic
06:44:39 <pikhq_> elliott_: We always are. :P
06:44:45 <elliott_> pikhq_: SSHHHHH
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:23 <BeedaWeeda> clearly you havent
06:50:28 <BeedaWeeda> you probably believe everything the media tells you
06:50:29 <BeedaWeeda> eat your dogma
06:50:30 <BeedaWeeda> good boy
06:50:31 <monqy> what
06:50:32 <monqy> i
06:50:32 <elliott_> lol
06:50:38 <monqy> laughing
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:51 <BeedaWeeda> you probably do
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:06 <elliott_> or a sheep
06:51:08 <elliott_> which is great
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:40 <BeedaWeeda> thanks
06:52:45 <pikhq_> BeedaWeeda: Evidence. Do you have it?
06:52:49 <BeedaWeeda> eliott has CLEARLY demonstrated that
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:07 <elliott_> You threw the first stone.
06:53:17 -!- BeedaWeeda has left.
06:53:18 <elliott_> civil with you
06:53:20 <monqy> bye
06:53:20 <elliott_> ah good
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:21 <oerjan> wat
06:54:31 <elliott_> oerjan: im trying to antagonise em in /msg
06:54:39 <monqy> elliott_........
06:54:45 <elliott_> what
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:01 <elliott_> monqy: thats not harassment
06:55:03 <monqy> oh ok
06:55:05 <elliott_> thats niceness :(
06:55:08 <monqy> :(
06:55:19 <elliott_> im going to code more ante-zepto now its good and nice
06:56:00 <elliott_> monqy: oh hey i could hmm
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:04 <elliott_> oerjan............
06:59:07 <elliott_> we were keeping that topic............
06:59:10 <elliott_> zzo set it and it was amazing.....
06:59:13 <elliott_> we've had it for weeks....
06:59:50 <oerjan> sorry, i needed to include an important safety message
07:01:02 <oerjan> ALSO NO ONE TOLD ME
07:01:11 <elliott_> oerjan give me some bacon
07:01:28 * oerjan gives elliott_ some bacon ===\__/
07:01:30 <oerjan> whoops
07:01:32 <elliott_> thx
07:01:35 <elliott_> straight from the pan
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:03:52 <elliott_> they had mind lasers
07:05:43 <elliott_> oerjan: do you think i upset beedaweeda
07:05:48 <elliott_> :(
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:10:51 <oerjan> ic
07:11:00 <elliott_> oerjan: no, they upset themselves :D
07:11:18 <oerjan> it takes two to tango
07:11:20 -!- CakeProphet has quit (Ping timeout: 252 seconds).
07:11:32 <elliott_> yeah well
07:11:35 <elliott_> hes a poopy head
07:11:36 <elliott_> qed
07:18:58 <elliott_> monqy: ante-zepto is almost three hundred lines : O
07:19:09 <monqy> are they good lines
07:19:58 <elliott_> yes.
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:20:18 <monqy> what is that shit
07:21:14 <pikhq_> Funny, I thought understanding Monads was a trivial exercise. :P
07:22:35 <elliott_> /home/elliott/Code/ante:
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:40 <elliott_> i have good filenames
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:27:03 <elliott_> its not read
07:27:03 <elliott_> y
07:27:05 <elliott_> not right
07:27:07 <monqy> :(
07:27:17 <elliott_> i must complete the reader
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:39:37 <elliott_> no
07:39:39 <elliott_> :(
07:39:41 <monqy> :(
07:41:11 <elliott_> going to cry ->
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:51 <monqy> dont choke on it
07:44:59 <monqy> that might be bad????
07:45:24 <elliott_> ok
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:07 <falso___> Hi sirs!
10:20:24 <falso___> just to tell that i have released a IDE form Brainfuck for OSX
10:20:27 <falso___> for
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:21 <falso___> its also open sores
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:25:21 <coppro> we need a befunge IDE
10:25:28 <Deewiant> They exist
10:25:29 <Deewiant> They suck
10:27:10 <falso___> lol
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:31 <falso___> still
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:15 <falso___> it works
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:40 <falso___> nah, its possible
10:28:46 <falso___> i fixed that Hello World in wikipedia
10:28:52 <falso___> to the correct capitalisation
10:28:52 <falso___> :-P
10:30:03 <falso___> for the bruteforce theres this application: http://www.cs.uit.no/~johnm/code/hacks/
10:30:11 <falso___> uses a genetic algorithm
10:30:16 <coppro> ais523: My first idea is a control flow graph
10:30:40 <coppro> overlaid on the source
10:31:03 <falso___> if you guys are interested
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:06 <falso___> with CYCLES
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:03:10 <Vorpal> hm
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:27:59 <coppro> link?
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:28:51 <ais523> globally
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:06 <Phantom_Hoover> oerjan, this is a holdup; comment!
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:02 * Phantom_Hoover hugs oerjan while still pointing the gun at him.
13:26:28 <CakeProphet> > let { infixr 6 >=; x >= f = f x } in 10 >= 11 >= (+)
13:26:28 <lambdabot> 21
13:26:56 <CakeProphet> > let { infixr 6 >=; (>=) = flip ($) } in 10 >= 11 >= (+)
13:26:59 <lambdabot> 21
13:27:05 <CakeProphet> I decided Haskell needed more RPN...
13:27:18 <Phantom_Hoover> You could've used a new operator for it.
13:27:35 <oerjan> istr F# uses |>
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:05 <CakeProphet> it's all about RPN these days.
13:28:19 <Phantom_Hoover> Oh, right.
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:29:52 <Phantom_Hoover> Infemtobarns.
13:30:03 <oerjan> ingrams
13:30:03 <coppro> since dimensions do not uniquely identify the physical properties of a unit
13:30:06 <CakeProphet> that's how adjectives work, anyways...
13:30:17 <CakeProphet> most of them, that is.
13:30:36 <CakeProphet> some are un-, some allow both. English is weird.
13:30:46 <Phantom_Hoover> Unfemtobarns.
13:30:59 <CakeProphet> I'd prefer in- over un- though, for units
13:31:03 <coppro> dammit I need a snuggy
13:31:20 <CakeProphet> also, what the hell is a femtobarn.
13:31:29 <CakeProphet> is it a really small barn?
13:31:34 <Phantom_Hoover> CakeProphet, a barn is a unit of area.
13:31:36 <CakeProphet> like, the kind you keep animals in?
13:31:37 <CakeProphet> oh.
13:31:41 <CakeProphet> it is the size of a barn?
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:19 <CakeProphet> *you're
13:32:22 <Phantom_Hoover> So wait, speed would be measured in metre-inseconds?
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:33:16 <Phantom_Hoover> oerjan, seems like an odd unit to use.
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:22 <CakeProphet> 1 barn = 1.0 × 10-28 meters squared
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:49 <CakeProphet> I guess this would explain the choice?
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:00 <CakeProphet> and still be technically correct.
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:19 <coppro> s/fin/in/
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:38:07 <CakeProphet> *inverse
13:40:03 <CakeProphet> or I guess it would be (inverse beardseconds squared)-seconds
13:40:25 <CakeProphet> makes everything completely different...
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:44:29 <CakeProphet> 1 barn = 4.0 × 10-12 beard second squared
13:44:39 <CakeProphet> that's 10^(-12)
13:45:01 * Sgeo must not be allowed to fall asleep
13:47:25 * oerjan gently pushes Sgeo into a vat of chloroform
13:48:10 <CakeProphet> oerjan is such a gentleman
13:50:18 <CakeProphet> > 5 * 31556926
13:50:19 <lambdabot> 157784630
13:50:24 <CakeProphet> a beardyear in nanometers.
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.
13:58:00 <Phantom_Hoover> * oerjan gently pushes Sgeo into a vat of chloroform
13:58:06 <Phantom_Hoover> Should've included benzene.
13:59:16 <Sgeo> Bye all
14:01:25 <oerjan> "Is benzene and chloroform mixture a good eluent?
14:01:35 <oerjan> "
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:09 <Phantom_Hoover> oerjan, it's a long story.
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:23 <oerjan> aha.
14:07:51 <ais523> oerjan: it is also not a particularly good story
14:08:19 <oerjan> oh.
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:12:53 <Phantom_Hoover> ais523, the BORING side of the argument.
14:13:26 <ais523> OK, so I was on the boring (and yet legal) side of the argument
14:13:40 <Phantom_Hoover> Was it really, truly illegal?
14:13:45 <ais523> I still think it was a better side than yours
14:13:46 <Phantom_Hoover> Or simply forbidden by unjust laws?
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:06 <CakeProphet> or yes, illegal and unethical.
14:16:14 <Phantom_Hoover> It was a victimless crime!
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:16:51 <Phantom_Hoover> oerjan, I wouldn't go that far.
14:16:58 <Phantom_Hoover> If anything there'd be slightly more of the victim.
14:17:05 <oerjan> ah.
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:18:11 <Phantom_Hoover> Sgeo was damnably weak-willed, yes.
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:37:45 <CakeProphet> my laptop speakers aren't cutting it...
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:39:33 <falso___> buy some sennheisers
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:41:04 <CakeProphet> *remembering
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:37:49 <quintopia> those new lithium ones
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:15:52 <newsham> double float is 64bits.
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:39 <Phantom_Hoover> Scroll down to the later replies; facepalm.
19:24:40 -!- pikhq has quit (Ping timeout: 252 seconds).
19:27:23 <Phantom_Hoover> "Here's your evidence: common fucking sense.
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:14 <quintopia> wtf
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:52:29 <Sgeo> Hmm?
20:53:56 <pikhq_> quintopia: Beh.
20:54:52 <Phantom_Hoover> "Sorry, cows, your skin is really nice-looking when it gets made into shoes and jackets."
20:55:03 <Phantom_Hoover> Are cows ever actually killed for leather?
20:55:20 <Phantom_Hoover> I'd've thought that food cows would yield enough.
20:56:27 <quintopia> old milchcows :P
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:00:03 <Phantom_Hoover> Casey from Casey and Andy.
21:00:56 <Phantom_Hoover> He knows him through six degrees of parallax.
21:02:37 <quintopia> lul
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:00 <Phantom__Hoover> O...K...
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:13:48 <Phantom__Hoover> Gregor, http://wheelof.com/whitney/
22:13:54 <Phantom__Hoover> You have been ousted as a composer.
22:14:03 <quintopia> oh dear
22:14:26 <quintopia> oh
22:14:28 <quintopia> that thing
22:14:30 <quintopia> old
22:14:53 <Phantom__Hoover> Oh. Well then, Gregor has always been ousted.
22:15:04 <quintopia> this is true
22:15:37 <quintopia> he was never even outed
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:03 <quintopia> if its a pic
22:19:04 <Gregor> http://codu.org/tmp/futuretie.jpg
22:19:23 <quintopia> you can just right click->copy image location
22:19:31 <quintopia> never had that not work
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:21:45 <quintopia> HOW SHOULD I KNOW
22:21:50 <quintopia> what did?
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:13 <Phantom__Hoover> Up-and-over?
22:23:21 <Phantom__Hoover> I am not familiar with this knot.
22:23:29 <Phantom__Hoover> Admittedly I only know one tie knot, but still.
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:25:46 <quintopia> the difference is subtle
22:25:56 <quintopia> so i dont know which it is
22:26:01 <Phantom__Hoover> quintopia, the difference is huge.
22:26:13 <quintopia> i have a photo
22:26:16 <quintopia> of all the ties
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:26:43 <quintopia> i can look at that and decide
22:27:53 <Phantom__Hoover> OK, but it might take a while to get there.
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:28:36 <Phantom__Hoover> Yes.
22:31:47 <quintopia> i think
22:31:50 <quintopia> you can do better
22:31:57 <quintopia> QUADTIE
22:32:02 <Phantom__Hoover> http://stackoverflow.com/questions/4272067/what-does-mean-in-mathematica
22:32:17 <Phantom__Hoover> "The & "pumps in" the variable into the # sign."
22:32:29 <Phantom__Hoover> Perhaps the worst way to describe anonymous functions?
22:36:27 <Gregor> quintopia: I would need a pretty impressive collar for that :P
22:45:40 <quintopia> and a more impressive know!
22:45:44 <quintopia> *knot
23:02:03 -!- Sgeo has quit (Ping timeout: 255 seconds).
23:25:52 <elliott_> a
23:28:22 <elliott_> 12:28:47: <ais523> the fix they used was to blacklist the kernel driver for the PC speaker
23:28:22 <elliott_> 12:28:51: <ais523> globally
23:28:26 <elliott_> so they solved two problems
23:31:13 <elliott_> 13:23:04: <coppro> Phantom_Hoover: and yet mathematicians strive for perfection
23:31:13 <elliott_> lol
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:17 <Phantom__Hoover> Ssh, it's oerjan and he's agreeing with us.
23:33:23 <Phantom__Hoover> You don't question that, you just accept it.
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:34:13 <elliott_> (It will be 4.)
23:35:11 <elliott_> 13:47:25: * oerjan gently pushes Sgeo into a vat of chloroform
23:35:11 <elliott_> Oh, my.
23:35:21 -!- cheater_ has quit (Ping timeout: 255 seconds).
23:37:23 <Phantom__Hoover> Ah, you're secretly George Takei.
23:37:28 <Phantom__Hoover> You're getting off on this, I bet.
23:37:40 <quintopia> btw
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:37:53 <newsham> thats a lot of pressure
23:38:18 <quintopia> 45000 atmospheres
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).
23:56:51 <elliott_> qweuiop
2011-07-06
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:18 * Phantom__Hoover → sleep
00:26:19 -!- Phantom__Hoover has quit (Quit: Leaving).
00:30:31 <elliott> wertyuio
00:30:34 <elliott> oiu
00:30:37 <elliott> qwant
00:30:39 <elliott> taupe
00:30:43 <elliott> pestilence
00:30:45 <elliott> the nine sins
00:31:02 <newsham> hft?
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:35:01 <elliott> - wertyuio
00:35:05 <elliott> - oiu
00:35:05 <elliott> - qwant
00:35:06 <elliott> - taupe
00:35:08 <elliott> - pestilence
00:35:10 <elliott> those are the nine sins
00:35:24 <monqy> shoo demon
00:35:57 <elliott> im a shoe demon
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:36:29 <newsham> ;-)
00:36:37 <BeedaWeeda> casey anthony beat the murder case
00:37:13 <elliott> oh god
00:37:16 <elliott> he came back?
00:37:27 <elliott> its like christmas
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:28 <newsham> why does he wear ties?
00:40:32 <newsham> to offend?
00:40:55 <oerjan> i assume for the same reason he wears hats
00:41:05 <newsham> that goes without saying
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:24 <BeedaWeeda> would anyone here fuck casey anthony?
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 <BeedaWeeda> isnt that he moms name?
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:22 <BeedaWeeda> casey anthony is the mom
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:47 <BeedaWeeda> id fuck casey anthony
00:43:48 <BeedaWeeda> in the ass
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:11 <augur> o.o
00:44:12 <oerjan> *by the
00:44:23 <elliott> so no caylee is the kid
00:44:35 <elliott> oh wait
00:44:37 <elliott> casey is the mother right
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:45:53 <elliott> concurring with this btw
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:48:05 <oerjan> <quintopia> QUADTIE
00:48:08 <oerjan> octotie
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:02 <elliott> Gregor that is, nice tie
00:51:08 <Gregor> *sobblecopter*
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
00:55:31 <oerjan> ah.
01:18:10 <Gregor> http://codu.org/tmp/doubletie2.jpg Doubleties are seriously the greatest.
01:18:57 <oerjan> niceties and doubleties
01:19:43 <elliott> Gregor: tripletie
01:19:45 <elliott> the challenge is set
01:20:01 <Gregor> elliott: One tie at a time :P
01:20:02 <oerjan> octotie, we said
01:20:11 <Gregor> If I had a long skinnytie, tripletie would be easy.
01:20:56 <oerjan> tie mummification
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:20 <oerjan> Gregor the gordian
01:36:58 -!- Sgeo has joined.
01:38:04 <augur> Gregor: it looks like something youd wear
01:38:29 <Gregor> Well, that's good :P
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:39:54 <elliott> wear that
01:40:11 <Gregor> Umm ... I doubt that you can :P
01:41:27 <elliott> Gregor: why not
01:41:35 <elliott> that would fucking rock i would wear that all day holy shit
01:41:36 <elliott> i have to make one
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:07 <Gregor> Have fun with that :P
01:43:29 <elliott> Gregor: IT WILL BE SO COOL DO YOU EVEN HAVE ANY IDEA.
01:43:36 <elliott> Instant rockstar.
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:47:57 <elliott> so it looked like a hole
01:47:57 <elliott> best tie
01:48:02 <oerjan> the actual pulling at the knot part might get ugly, there
01:48:22 <elliott> wait
01:48:25 <elliott> whatif you had a whole shirt like that
01:48:27 <elliott> omfg..........
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:49 <Gregor> Errrg
01:48:54 <Gregor> elliott: Who is Elizacat? :P
01:49:02 <elliott> Gregor: Somebody who came in here to ping Vorpal.
01:49:59 <elliott> <elliott> wait
01:50:00 <elliott> <elliott> whatif you had a whole shirt like that
01:50:00 <elliott> <elliott> omfg..........
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:05 <Elizacat> sup
01:51:06 <Elizacat> hi
01:51:16 <Elizacat> Gregor, I'm a friend of Vorpal
01:51:22 <Elizacat> Gregor, we go way back
01:51:24 <elliott> Elizacat: u r squatting on my nick letter plz rename urself
01:51:32 <Elizacat> sod off
01:51:36 <elliott> Elizacat: im sue you
01:51:43 <Gregor> lul
01:51:46 <Elizacat> what jurisdiction
01:51:48 <elliott> Elizacat: irc
01:51:54 <Elizacat> I'll win
01:51:56 <Elizacat> I have a better lawyer
01:51:59 <elliott> im judge
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:32 <Elizacat> I don't have a back
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:56:54 <elliott> do they exist
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
01:58:46 <elliott> Gregor: get the jquerys
01:58:51 <elliott> or wait
01:58:52 <elliott> was that ninja
01:58:53 <elliott> i forget
01:59:36 <monqy> mirror shoes
01:59:46 <monqy> mirror glasses
01:59:48 <monqy> mirror scarf
01:59:52 <monqy> mirror cape
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:25:06 <coppro> I do ont
02:25:07 <coppro> *not
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:27:42 <elliott> --js/src/jscompartment.h
02:27:46 <elliott> good coding dot jpg
02:28:29 <Patashu> lol what
02:29:38 <Patashu> why
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:34:14 <Patashu> [1]
02:34:17 <Patashu> 1. common sense
02:34:23 <Patashu> *'s edit is reverted :(*
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:02 <oerjan> board of porpoises
02:39:37 <elliott> im an artist... of death
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:51 <elliott> oh thats
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:41:57 <elliott> is crime bannable?
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:43:53 <elliott> oh, i got in
02:43:58 <elliott> :) )))
02:45:02 <oerjan> also, i still wish i knew what i meant by that mime type comment
02:46:22 <elliott> alas.
02:47:29 <elliott> oerjan: i figured it out
02:47:30 <elliott> oerjan: it's a pun
02:47:46 <oerjan> >_<
02:48:16 <elliott> got it yet? :D
02:48:25 <oerjan> yeah yeah
02:48:33 <elliott> oerjan: oh did you know all along...
02:48:37 <oerjan> no
02:48:57 <oerjan> i simply didn't consider that i could possibly have meant to make a pun. the idea!
02:49:55 <elliott> :D
02:52:38 <elliott> monqy: soon...zepto...blood...
02:52:51 <monqy> whose blood
02:53:49 <elliott> monqy: nonbelievers
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:25 <oerjan> oops
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:32 <lambdabot> []
02:57:41 <elliott> _more_ ncheck? :D
02:57:43 <elliott> oh this looks optimised
02:57:49 <elliott> is it optimised
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:57:59 <lambdabot> [2,3,4,6,7]
02:58:05 <oerjan> i'm just checking a special case
02:58:10 <oerjan> oops
02:58:12 <elliott> boring :(
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:17 <lambdabot> []
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:45 <oerjan> (sorry, failed :P)
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:58:54 <lambdabot> []
02:58:54 <elliott> failed what
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:01 <lambdabot> [5]
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:07 <lambdabot> [5,9,11]
02:59:13 <oerjan> hmph
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:18 <lambdabot> [5,10,11,15,16,17,19,22,23,25]
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:08 <elliott> thats a big numbro
03:00:08 <oerjan> :(
03:00:14 <elliott> oh are we sad :(
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:00:39 <oerjan> bah
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:01:19 <oerjan> but nah
03:02:29 <oerjan> oh only one tab actually crashed
03:02:38 <elliott> you still use IE right :)
03:02:59 <monqy> sometimes i forget IE is a thing
03:03:29 <oerjan> yeah :P
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:00 <CakeProphet> > flip replicateM ['a'..'c'] =<< [1..]
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:22 <elliott> > [1..] >>= ['a'..'c']
03:05:23 <lambdabot> Couldn't match expected type `t -> [b]' against inferred type `[a]'
03:05:25 <elliott> > [1..] >> ['a'..'c']
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:05:34 <lambdabot> against inferred type ...
03:05:37 <elliott> hmm, what was it...
03:05:44 <CakeProphet> replicateM
03:06:28 <CakeProphet> > replicateM 3 ['a'..'c']
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:06:58 <oerjan> :t newArray
03:06:59 <lambdabot> Not in scope: `newArray'
03:07:04 <monqy> oh right oops
03:07:05 <oerjan> :t arrayFromList
03:07:06 <lambdabot> Not in scope: `arrayFromList'
03:07:07 <monqy> im a bad person
03:07:10 <oerjan> argh
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:28 <elliott> argh
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:51 <CakeProphet> is flip replicateM ['a'..'c'] =<< [1..]
03:07:55 <elliott> CakeProphet: SHADDAP
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:07 <monqy> hehehehe
03:08:08 <elliott> ?hoogle LogicT
03:08:09 <lambdabot> No results found
03:08:10 <elliott> ?hoogle Logic
03:08:10 <lambdabot> No results found
03:08:12 <elliott> oh come on
03:08:16 <elliott> there has to be an equivalent >:(
03:08:26 <CakeProphet> @src replicateM
03:08:26 <lambdabot> replicateM n x = sequence (replicate n x)
03:08:33 <CakeProphet> @src replicate
03:08:34 <lambdabot> replicate n x = take n (repeat x)
03:08:47 <CakeProphet> when in doubt, expand some functions.
03:08:48 <oerjan> elliott: what is it you _want_ :P
03:09:15 <CakeProphet> :t combinations
03:09:16 <lambdabot> Not in scope: `combinations'
03:09:22 <CakeProphet> hmm.
03:09:44 <CakeProphet> that wouldn't help
03:09:56 <CakeProphet> @src sequence
03:09:56 <lambdabot> sequence [] = return []
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:30 <elliott> so that he feels bad.
03:10:37 <CakeProphet> lol
03:10:39 <oerjan> oh
03:10:45 <elliott> > sequence "abc"
03:10:46 <lambdabot> Couldn't match expected type `m a'
03:10:46 <lambdabot> against inferred type `GHC.Types...
03:10:49 <elliott> WHY NOT
03:10:53 <CakeProphet> yeah because that code is so ugly, with its flip and stuff.
03:10:54 <elliott> Char is totally a monad.
03:11:00 <elliott> CakeProphet: yes it is. you're a terrible person.
03:11:07 <elliott> > [0..] >=> "pop"
03:11:08 <lambdabot> Couldn't match expected type `a -> m b'
03:11:08 <lambdabot> against inferred type `[a1]'
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:12 <elliott> :t (>=>)
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:11:43 <monqy> :t duplicate
03:11:44 <lambdabot> Not in scope: `duplicate'
03:11:46 <monqy> er
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:15 <elliott> > duplicate "x"
03:12:16 <lambdabot> Not in scope: `duplicate'
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:24 <monqy> I mean
03:12:28 <monqy> not what I wanted
03:12:29 <monqy> but
03:12:32 <monqy> what I was trying to spell
03:12:35 <elliott> CakeProphet: no its ugly and youre terrible
03:12:37 <elliott> :(
03:12:38 <monqy> (i didn';t misspell duplicate)
03:13:17 <CakeProphet> @src
03:13:17 <lambdabot> src <id>. Display the implementation of a standard function
03:13:20 <elliott> isnt duplicate the comonad thing
03:13:20 <oerjan> oh hm
03:13:24 <monqy> yes
03:13:27 <CakeProphet> @src sequence
03:13:27 <lambdabot> sequence [] = return []
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:13:49 <elliott> it seems
03:13:51 <elliott> > tails "abcd"
03:13:52 <lambdabot> ["abcd","bcd","cd","d",""]
03:14:02 <elliott> ah
03:14:05 <elliott> > reverse (tails "abcd")
03:14:05 <lambdabot> ["","d","cd","bcd","abcd"]
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:36 <elliott> hmm, that's not right
03:14:38 <elliott> duh
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:14:57 <elliott> CakeProphet: yep
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 <elliott> ?src inits
03:15:23 <lambdabot> inits [] = [[]]
03:15:23 <lambdabot> inits (x:xs) = [[]] ++ map (x:) (inits xs)
03:15:25 <oerjan> bah
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:39 <monqy> oh oops
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:15:56 <elliott> OH SNAP MOST ELEGANT
03:16:07 <monqy> uhh im backwards
03:16:21 <CakeProphet> elliott: no the empty string is there, you just have to get to the end of the list.
03:16:24 <CakeProphet> :)
03:16:28 <elliott> CakeProphet: how inelegant.
03:16:29 <elliott> > (inits >=> permutations) "01"
03:16:30 <lambdabot> ["","0","01","10"]
03:16:36 <elliott> hm wait
03:16:38 <CakeProphet> :t >=>
03:16:38 <lambdabot> parse error on input `>=>'
03:16:43 <CakeProphet> :t (>=>)
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:16:50 <elliott> oh
03:16:56 <CakeProphet> some sort of bind composition?
03:17:01 <elliott> > inits "abcd"
03:17:01 <lambdabot> ["","a","ab","abc","abcd"]
03:17:06 <monqy> (>>>) is cool too
03:17:10 <elliott> > inits (cycle "abcd")
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:17:28 <elliott> dammit, misses 11
03:18:09 <CakeProphet> I would say that is equally elegant to using replicateM and bind...
03:18:16 <elliott> it doesn't work
03:18:18 <elliott> so it's irrelevant
03:18:37 <oerjan> elliott: i have a hunch you are never actually producing the string "b"
03:18:48 <elliott> > (inits . cycle) "01"
03:18:50 <lambdabot> ["","0","01","010","0101","01010","010101","0101010","01010101","010101010"...
03:18:58 <elliott> > (cycle) "01"
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:15 <elliott> :D
03:19:19 <Lymee> :t flatten
03:19:19 <lambdabot> forall a. Tree a -> [a]
03:19:28 <CakeProphet> > (`replicateM` ['a'..'z']) =<< [0..]
03:19:29 <lambdabot> ["","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r"...
03:19:31 <CakeProphet> :3
03:20:31 <elliott> im going to rip your soul from its seams
03:20:33 <elliott> hmm
03:20:37 <elliott> lets expand that
03:20:44 <elliott> concatMap (`replicateM` ['a'..'z']) [0..]
03:20:53 <elliott> concatMap (\n -> replicateM n ['a'..'z']) [0..]
03:20:55 <elliott> ?src replicateM
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:39 <elliott> > sequence ["abc","def"]
03:21:40 <lambdabot> ["ad","ae","af","bd","be","bf","cd","ce","cf"]
03:21:42 <elliott> ugh
03:21:48 <elliott> > zip ["abc","def"]
03:21:49 <lambdabot> Overlapping instances for GHC.Show.Show
03:21:49 <lambdabot> ([b] -...
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:15 <lambdabot> ["ad","be","cf"]
03:22:17 <CakeProphet> eyah working backwards is probably not the best way.
03:23:48 <CakeProphet> > return . length . (`replicateM` "abc") =<< [0..]
03:23:52 <lambdabot> mueval-core: Time limit exceeded
03:24:03 <CakeProphet> > (return . length . (`replicateM` "abc")) =<< [0..]
03:24:07 <lambdabot> mueval-core: Time limit exceeded
03:24:14 <CakeProphet> well, nevermind I guess.
03:24:25 <CakeProphet> > (return . length . (`replicateM` "abc")) =<< [0..5]
03:24:27 <lambdabot> [1,3,9,27,81,243]
03:25:28 <CakeProphet> > (length . (`replicateM` "abc")) <$> [0..]
03:25:33 <lambdabot> mueval-core: Time limit exceeded
03:25:42 <CakeProphet> ...see, not sure why it times out.
03:27:50 -!- augur has quit (Read error: Connection reset by peer).
03:28:09 -!- augur has joined.
03:29:05 <CakeProphet> Haskell sure is awesome.
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:31:47 <CakeProphet> oh my.
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:32:50 <CakeProphet> like... replicateM
03:32:52 <CakeProphet> :P
03:32:54 <monqy> no never
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:17 <lambdabot> mueval-core: Time limit exceeded
03:35:19 <CakeProphet> lol
03:35:26 <CakeProphet> > dropWhile ((<26).length) $ ['a' ..] >>= permutations . enumFromTo 'a'
03:35:29 <lambdabot> mueval-core: Time limit exceeded
03:35:32 <CakeProphet> awww.
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:05 <elliott> CakeProphet: um
03:36:10 <elliott> CakeProphet: length fails on infinite lists, if that matters
03:36:19 <CakeProphet> it doesn't in this case.
03:36:22 <elliott> > dropWhile ((<26).length) $ (['a' ..] >>= permutations . enumFromTo 'a')
03:36:26 <lambdabot> mueval-core: Time limit exceeded
03:36:42 <CakeProphet> ....whut?
03:36:49 <CakeProphet> :t dropWhile
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:39:52 <lambdabot> mueval-core: Time limit exceeded
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:05 <CakeProphet> yeah...
03:41:10 <oerjan> > scanl (*3) 1
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:20 <oerjan> > iterate (*3) 1
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:41:56 <CakeProphet> indeed.
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:21 <lambdabot> mueval-core: Time limit exceeded
03:43:35 <oerjan> > iterate (\x -> if x > 200 then let y = y in y else x+1) 1
03:43:38 <CakeProphet> whut?
03:43:39 <lambdabot> mueval-core: Time limit exceeded
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:04 <lambdabot> mueval-core: Time limit exceeded
03:44:09 <oerjan> > iterate (\x -> if x > 275 then let y = y in y else x+1) 1
03:44:11 <oerjan> er
03:44:12 <CakeProphet> that's... odd
03:44:13 <lambdabot> mueval-core: Time limit exceeded
03:44:22 <oerjan> > iterate (\x -> if x > 225 then let y = y in y else x+1) 1
03:44:26 <lambdabot> mueval-core: Time limit exceeded
03:44:33 <oerjan> > iterate (\x -> if x > 215 then let y = y in y else x+1) 1
03:44:33 <CakeProphet> is let time consuming or something?
03:44:36 <lambdabot> mueval-core: Time limit exceeded
03:44:45 <oerjan> CakeProphet: um that let is an infinite loop
03:44:54 <CakeProphet> ...oh, right.
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:06 <lambdabot> mueval-core: Time limit exceeded
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:45:56 <lambdabot> mueval-core: Time limit exceeded
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:16 <lambdabot> mueval-core: Time limit exceeded
03:46:28 <oerjan> > length $ show [1..281]
03:46:29 <lambdabot> 1017
03:46:33 <oerjan> > length $ show [1..280]
03:46:34 <lambdabot> 1013
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:47:47 <lambdabot> 1021
03:48:13 <elliott> the value of let y = y in y is <<loop>>
03:48:13 <elliott> duh
03:48:19 <elliott> (ghc pun, the best kind of pun)
03:48:23 <elliott> wait its not even a pun
03:48:25 <elliott> its just a ghc... joke
03:48:29 <oerjan> well lambdabot doesn't use blackholing
03:50:55 <oerjan> > drop 1000 . take 1013 . show . iterate (*3) $ 1
03:50:57 <lambdabot> "2042447694583"
03:51:01 <oerjan> oops
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:57:06 <monqy> victory
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:33 <monqy> no victory :(
03:59:36 <CakeProphet> oerjan: the character set grows with length.
03:59:52 <oerjan> hm
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:04 <CakeProphet> not sure what this >>- thing is.
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:30 <CakeProphet> oerjan: not really sure I understand...
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:02:47 <CakeProphet> ah
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:13 <CakeProphet> ah yeah I see that.
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:03 <lambdabot> No instance for (GHC.Show.Show
04:06:03 <lambdabot> (Control.Monad.Logic.Log...
04:06:06 <oerjan> darn
04:06:22 <oerjan> :t return "a" <|> return "b" :: Logic String
04:06:22 <lambdabot> Logic String
04:06:37 <monqy> :t runLogic
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:06:51 <oerjan> hm how does that work
04:07:25 <oerjan> oh right
04:07:54 <CakeProphet> elliott: I win at finding an alternative to my own already very elegant code. OH YEAAAH.
04:08:06 <CakeProphet> but the alternative is less elegant.
04:08:07 <oerjan> > (return "a" <|> return "b" :: Logic String) ((.).(:)) ""
04:08:08 <lambdabot> Couldn't match expected type `t1 -> t2 -> t'
04:08:08 <lambdabot> against inferred type ...
04:08:09 <oerjan> er
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:14 <lambdabot> against inferred t...
04:08:16 <CakeProphet> but it implements a degree of common sense that the other lacks.
04:08:17 <oerjan> darn
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:24 <lambdabot> against inferred ty...
04:08:34 <oerjan> oh
04:08:41 <oerjan> > runLogic (return "a" <|> return "b" :: Logic String) ((:)) []
04:08:42 <lambdabot> ["a","b"]
04:09:03 <CakeProphet> oh my.
04:09:27 <oerjan> CakeProphet: on the plus side, it was obvious from the type of runLogic :P
04:09:35 <CakeProphet> indeed.
04:10:21 <CakeProphet> looks like <|> constructs a fold over the function supplied by runLogic
04:10:32 <CakeProphet> ?
04:10:37 <monqy> > runLogic (return "a" `interleave` return "b" `interleave` return "c" :: Logic String) ((:)) []
04:10:37 <lambdabot> ["a","c","b"]
04:10:54 <monqy> (<|>) is from Alternative
04:10:57 <monqy> :t (<|>)
04:10:58 <lambdabot> forall (f :: * -> *) a. (Alternative f) => f a -> f a -> f a
04:11:17 <monqy> > "abc" <|> "def"
04:11:17 <lambdabot> "abcdef"
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:39 <lambdabot> "selbmarc"
04:15:53 <oerjan> > foldr interleave "" $ map return "scramble"
04:15:54 <lambdabot> "scramble"
04:16:02 <oerjan> disappointing :P
04:16:41 <Lymee> > printStrLn ":D"
04:16:42 <lambdabot> Not in scope: `printStrLn'
04:16:48 <Lymee> > putStrLn ":D"
04:16:49 <lambdabot> <IO ()>
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:13 <Lymee> Heh.
04:17:15 <oerjan> Lymee: try EgoBot
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:18:53 <Lymee> I wonder.
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:19:16 <oerjan> define "pure" :P
04:21:02 <Lymee> Heh.
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:00 <elliott> Lymee: it's not that easy
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:26 <elliott> no.
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:32 <Lymee> So...
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:36:52 <oerjan> yes.
04:37:17 <oerjan> also i just thought i'd write down that word while i remembered it.
04:37:19 <elliott> oerjan: WHICH
04:37:23 <elliott> :D
04:41:16 <elliott> ?hoogle showAtBase
04:41:17 <lambdabot> No results found
04:41:22 <elliott> ?hoogle base
04:41:23 <lambdabot> package base
04:41:23 <lambdabot> Text.Html base :: String -> HtmlAttr
04:41:23 <lambdabot> Text.XHtml.Frameset base :: String -> HtmlAttr
04:41:24 <elliott> ?hoogle showBase
04:41:24 <lambdabot> No results found
04:41:25 <oerjan> :t showIntAtBase
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:42:24 <lambdabot> "11111111"
04:42:32 <elliott> oh
04:42:33 <elliott> right
04:42:36 <elliott> :D
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:29 <elliott> indeed
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:14 <quintopia> ^
04:50:16 <elliott> [injoke rimshot]
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:19:55 <lambdabot> against inferred type...
05:20:02 <oerjan> :t many . map pure $ "abc"
05:20:03 <lambdabot> forall (f :: * -> *). (Applicative f) => [[f Char]]
05:20:21 <oerjan> oh wait
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:13 <oerjan> hm?
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:26 <elliott> no
05:27:35 <elliott> well
05:27:37 <elliott> that's not a good type to use
05:27:41 <elliott> because i got it wrong :)
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:02 <elliott> not (Foo a) for some a
05:28:05 <elliott> oerjan: nope
05:28:20 <oerjan> er oops
05:28:24 <oerjan> *of type Foo
05:28:26 -!- derrik has quit (Quit: left).
05:28:27 <elliott> coppro:
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:28:35 <elliott> *Main> :t Foo 9
05:28:35 <elliott> Foo 9 :: Foo
05:28:35 <elliott> *Main> :t Foo
05:28:37 <elliott> Foo :: Num a => a -> Foo
05:28:41 <elliott> hth :P
05:29:26 <oerjan> coppro: it is essentially defining an existential _type_ by writing down the _universal_ type of its constructor
05:29:32 <coppro> oerjan: Oh ok
05:29:43 <coppro> thanks
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:37 <elliott> yeah
05:30:39 <elliott> data Foo where
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:30:57 <elliott> above
05:32:57 <coppro> yeah I really like GADT
05:43:42 -!- oklopol has joined.
05:43:49 * oklopol feeds elliott
05:43:55 <elliott> sup
05:43:56 <oerjan> NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
05:44:07 <oklopol> sup U
05:44:09 * oerjan prepares the gremling catcher
05:44:10 <elliott> finally a straight non-nerd in the channel!!!!!!!!!!
05:44:13 <oerjan> *-g
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:13 <elliott> 'fraid not
05:45:15 <oklopol> good
05:45:31 <oklopol> because i'm here now
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:37 <oklopol> back on #eso
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:36 <monqy> esoteric
05:47:48 <oerjan> yes, you said that, but what _is_ it
05:48:28 <elliott> :D
05:48:39 <oklopol> i love irc
05:49:57 <oerjan> very ircsome
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:
05:50:20 <elliott> oklopol> elliott: would you have been available this week out of q
05:50:20 <elliott> <elliott> 'fraid not
05:50:21 <elliott> <oklopol> good
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:50:53 <oklopol> ah
05:51:13 <oklopol> yeah well it's not like i actually wanted to meet you you piece of nigger
05:51:30 <elliott> racism is illegal oklopol
05:52:00 <oklopol> who's being raciist
05:52:02 <oklopol> *racist
05:52:17 <oklopol> no one
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:47 <oklopol> wow there's an oxymoron
05:53:59 <elliott> (should be deprived of)oxy(gen )moron
05:53:59 <monqy> girlzngames hasnt updated for a month :(
05:54:00 <oerjan> what oxymoron?
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:17 <oerjan> ah.
05:55:29 <oklopol> you norwegian fisher homo
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:55:49 <elliott> oh
05:55:51 <elliott> wow
05:55:56 <monqy> yes
05:55:56 <elliott> that's impressive
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:48 <elliott> and they like
05:56:53 <elliott> fuck up nuclear power plants
05:56:55 <elliott> and free entire zoos
05:56:57 <monqy> sounds amazing
05:56:58 <elliott> and have guns
05:56:59 <elliott> and jesus
05:57:03 <elliott> its just so disturbing
05:57:17 <elliott> http://stephaniemcmillan.org/
05:57:19 <elliott> guh where is it
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:41 <coppro> d/win 4
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:18 <elliott> jesus
05:58:22 <elliott> oh god
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:25 <elliott> that's the best character
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:24 <monqy> either way what
06:00:33 <monqy> either way/regardless
06:01:09 <elliott> monqy: anarcho-primitivist remember
06:01:11 <elliott> so yes, no morals
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:07:55 <elliott> is this real
06:07:56 <elliott> was this published
06:11:39 <elliott> ?unmtl StateT s m a
06:11:39 <lambdabot> s -> m (a, s)
06:12:39 <oklopol> ?unmtl giytvfrde
06:12:39 <lambdabot> giytvfrde
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:13:38 <elliott> or the day before today
06:13:48 <oklopol> i did a lot yesterday
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 <oerjan> ?src IO >>=
06:17:53 <lambdabot> Source not found. I feel much better now.
06:18:00 <oerjan> ?src IO (>>=)
06:18:00 <lambdabot> m >>= k = bindIO m k
06:18:09 <oerjan> ?src bindIO
06:18:09 <lambdabot> Source not found. I've seen penguins that can type better than that.
06:18:22 <elliott> i meant in ghc :P
06:18:23 * elliott grep
06:18:24 <elliott> s
06:18:24 <oklopol> penguins don't have fingers
06:18:49 <elliott> ah, GHC/Base
06:18:51 <elliott> .lhs
06:18:54 <pikhq> Penguins *do* have phalanges, however.
06:18:54 <elliott> for bindIO
06:18:58 <elliott> and the instance
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:09 <oklopol> pikhq: well who doesn't
06:20:23 <pikhq> oklopol: Non-vertebrates.
06:20:40 <pikhq> And a very small handful of vertebrates.
06:21:09 <monqy> this is bizarre
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:24:08 <oklopol> *taxonomies
06:26:43 * pikhq dislikes classification that is devoid of meaning
06:26:47 <oerjan> ?unmtl RWST a b ST a
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 <oerjan> ?unmtl RWST a b m a
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:33 <oerjan> ?unmtl RWST a b m a x
06:27:34 <lambdabot> a -> m -> a (x, 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:27:51 <oklopol> do you get what i mean
06:28:07 <oerjan> ?unmtl RWS a b m x
06:28:07 <lambdabot> a -> m -> (x, m, b)
06:28:19 <oerjan> oh hm
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:30:51 <oklopol> i guess
06:30:54 <oklopol> also
06:31:22 <oerjan> elliott: SMTT. fnord.
06:31:26 <oklopol> that it's not a transitive relation
06:31:29 <oerjan> er
06:31:35 <oerjan> *elliott: STMT. fnord.
06:31:41 <elliott> nice :D
06:31:43 <elliott> oerjan: i've written STT, mind you
06:31:50 <elliott> oh maybe i should just reuse it?
06:31:53 <elliott> it's kind of lame though
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:08 <elliott> well sort of
06:32:09 <elliott> but anyway
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:05 <oerjan> ?src IO
06:33:05 <lambdabot> Source not found. :(
06:33:12 <oerjan> NO FUN
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:37:57 <oerjan> oh wait
06:38:00 <pikhq> oklopol: Though only works with species that are capable of breeding. :)
06:38:04 <oklopol> pikhq: yep
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:33 <oklopol> hmm
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:23 <quintopia> alrighty
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:31 <oklopol> erm
06:43:35 <oklopol> are they called races............
06:43:43 <pikhq> Subspecies.
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:46 <quintopia> so how are subspecies defined?
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:44:56 <oklopol> oh wait
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:54 <oklopol> it is?
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:47:59 <oklopol> or other weirdos
06:48:25 <pikhq> Ah, see, the problem is there's many species *called* "dog", even though they can't interbreed with yours.
06:48:25 <oklopol> dingos are not dogs
06:48:34 <pikhq> Dingos are dogs.
06:48:50 <oklopol> your mother is a dog
06:48:56 <olsner> oklopol is a dog
06:48:56 <pikhq> Anyways.
06:49:13 <oklopol> what are called dogs without being able to interpreed with mien?
06:49:15 <oklopol> *mine
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:08 <pikhq> It wasn't.
06:50:09 <oklopol> :D
06:50:24 <quintopia> your dog can't breed with a prairie dog
06:50:29 <quintopia> although i'd like to see it try
06:50:33 <oklopol> ;D
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:51:44 <quintopia> eh
06:51:49 <quintopia> good enough for computer science
06:52:07 <oklopol> just give every creature an ip
06:52:16 <quintopia> *v6
06:52:23 <oklopol> well obv
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:52:55 <oklopol> quintopia: forevery many
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:30 <quintopia> hf
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:09 <elliott> so does everyone good
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:04 <quintopia> INDEED
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 <elliott> ?hoogle permutations
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:15 <oklopol> argh
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:36 <quintopia> yes
06:59:43 <quintopia> the relation is not reflexive
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:39 <quintopia> so
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:00:49 <quintopia> good point
07:01:05 <quintopia> it is an equivalence class that mammals don't satisfy
07:01:08 <quintopia> and birds too
07:01:10 <oklopol> quintopia: the relation R is not an equivalence relation, no, S is.
07:01:22 <quintopia> yes
07:01:37 <quintopia> but R cannot be applied meaningfully to birds and mammals
07:01:41 <quintopia> and most other things
07:01:46 <oklopol> why not?
07:01:55 <elliott> ur a mamal
07:02:01 <oklopol> oh because everyone is their own species?
07:02:13 <quintopia> at least not as an equivalence relation
07:02:22 <quintopia> it is some other kind of relation
07:02:26 <oklopol> well right
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:32 <quintopia> i dunno
07:03:35 <quintopia> worms are p cool
07:03:41 <quintopia> especially the ones that do penis jousting
07:03:55 <oklopol> umm, worms are basically dicks
07:04:15 <quintopia> dicks...with dicks!
07:04:19 <oklopol> :O
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:01 <oklopol> lol still not depleted?
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:16 <oklopol> oh right ->
07:05:20 <quintopia> bai
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:45 <elliott> :t callCC
07:07:48 <lambdabot> forall a (m :: * -> *) b. (MonadCont m) => ((a -> m b) -> m a) -> m a
07:08:02 <elliott> ?src MonadCon
07:08:02 <lambdabot> Source not found. Do you think like you type?
07:08:03 <elliott> ?src MonadCont
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:35 <pikhq> Erm, s/quite/
07:09:37 <pikhq> Erm, s/quite//
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:21 <elliott> ugh
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:21 <oerjan> huh
07:19:29 <elliott> runIOT run (IOT f) =
07:19:29 <elliott> IO $ \s ->
07:19:29 <elliott> case run (f (RW s)) of
07:19:29 <elliott> ((RW new_s, a), r) -> (# new_s, (a, r) #)
07:19:29 <elliott> :D
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:08 <cheater_> that's not the original one
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:40 <cheater_> nah, it's a rewrite
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:28 <elliott> you cant ive tried iirc
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:07 <cheater_> nah it's available
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:27:49 <cheater_> not bad
07:27:57 <elliott> didnt compile for me
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:11 <elliott> but that's Ugly
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:08:28 <elliott> ?pl \f x -> (x, f x)
08:08:28 <lambdabot> ap (,)
08:10:22 <Deewiant> ?ty second >>> (. join (,))
08:10:22 <lambdabot> forall c a. (a -> c) -> a -> (a, c)
08:10:27 <elliott> :t truncate
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> (1.0,1.0)
08:19:27 <elliott> *Main> last (sampleSecond id 0 44000)
08:19:27 <elliott> (0.99997723,0.99997723)
08:19:27 <elliott> yikes
08:24:27 <falso___> good morning
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:38 <fizzie> sbrk! (Probably not.)
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> | n > nsamp = []
08:31:44 <elliott> | otherwise = ap (,) f (start + n*dt) : sample' (n+1) f start dt nsamp
08:31:45 <elliott> good
08:31:47 <elliott> Vorpal: gc
08:34:09 <elliott> oh wait not good, that's bad for some reason
08:36:05 <elliott> oh wait it's good
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:31 <pikhq> Erm.
08:38:32 <pikhq> sbrk.
08:38:33 <pikhq> Not malloc.
08:38:35 <Vorpal> pikhq, hm
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:38:42 <Vorpal> elliott, of course
08:38:50 <elliott> so yeah, see above :P
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:16 <Vorpal> right
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:39:52 <elliott> no mmap on windows
08:40:10 <pikhq> elliott: There's a drop-in replacement, though.
08:40:14 <elliott> ret = osGetMBlocks(n);
08:40:33 <elliott> in posix/OSMem.c...
08:40:38 <elliott> / A wrapper around mmap(), to abstract away from OS differences in
08:40:38 <elliott> / the mmap() interface.
08:40:46 <elliott> Vorpal: mmap on POSIX
08:41:06 <elliott> VirtualAlloc on Windows
08:41:19 <Vorpal> right
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:42:22 <pikhq> (unlike fork())
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:52:50 <coppro> pikhq: what
08:54:23 <pikhq> coppro: What, I was ordering parts for my Turing machine, and that came in today.
08:55:23 <coppro> ah
08:55:48 <Vorpal> pikhq, given the size of it, I guess the postage must have been prohibitive?
08:56:25 <elliott> Vorpal: no no no
08:56:35 <elliott> you see, it gets thinner as it goes along
08:56:40 <Vorpal> elliott, ah.
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:13 <Vorpal> right
08:57:18 <elliott> (including thickness :D)
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:29 <Vorpal> pikhq, I can imagine
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:25 <Vorpal> ah
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:27 <elliott> science facts
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 <Vorpal> ah
09:02:46 <elliott> so there's little worry about that
09:02:51 <Vorpal> nifty
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:31 <elliott> indeed
09:03:40 <elliott> have to generate light of ever more ridiculous wavelengths to shine to read
09:03:47 <pikhq> Precisely.
09:03:52 <coppro> this conversation is awesome
09:04:02 <Vorpal> what about seek time
09:04:08 <pikhq> Irrelevant.
09:04:12 <Vorpal> ah yes
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:34 <Vorpal> elliott, ah
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:18 <Vorpal> elliott, oh, why?
09:05:30 <elliott> Vorpal: PHYSICS HAS YET TO EXPLAIN.
09:05:34 <Vorpal> ah
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:36 <Vorpal> oh nice
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:46 <Vorpal> of course, of course
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:21 <Vorpal> ah
09:08:40 <Patashu> What about wear and tear
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:00 <oklopol> *inevitably
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:26 <elliott> QED
09:10:32 <Vorpal> elliott, a bit like those self-repairing mc structures? using pistons and so on?
09:10:38 <Patashu> lol
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:10:59 <elliott> Patashu: Incorrect.
09:11:02 <Vorpal> elliott, ah yes
09:11:04 <Patashu> it represents one
09:11:06 <Patashu> it just doesn't implement it
09:11:09 <elliott> Heh.
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:20 <Patashu> yes I have
09:12:21 <elliott> Yeah, but they're reachable ones.
09:12:22 <Patashu> I am thinking of them atm
09:12:22 <Vorpal> Patashu, http://www.minecraftwiki.net/wiki/Far_Lands
09:12:23 <Vorpal> yeah
09:12:36 <elliott> Notch used to say that the bugs were way too far out to ever be relevant.
09:12:38 <elliott> But... they're not.
09:12:38 <Patashu> if minecraft's floats and doubles were swapped for e.g. bigdecimal
09:12:40 <Patashu> far lands not happen
09:12:53 <elliott> Patashu: that would be a terrible idea
09:12:57 <elliott> as far as performance goes
09:12:59 <Patashu> it would indeed
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:37 <elliott> (Binary?)
09:13:54 <Vorpal> elliott, s/uses/will use/
09:13:57 <elliott> Yeah yeah.
09:14:16 <elliott> 1,073,741.82 kilometres in every direction ain't bad.
09:14:20 <elliott> (Including vertically.)
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:12 <elliott> I did
09:16:30 <elliott> 1.1529215 × 10 to the power of 15 kilometres
09:16:33 <elliott> Noice
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:17:16 <oklopol> hahahahahaha
09:19:35 <elliott> Patashu: I'm not sure what you mean, anyway
09:19:57 <Patashu> by?
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:46 <Patashu> aah
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:11 <elliott> Whaat, no :)
09:22:15 <Patashu> well it would work right?
09:22:26 <elliott> That would require, like, rewriting every single chunk file, I think.
09:23:19 <Patashu> I'm not seeing why
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:45 <Patashu> or something
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:22 <Patashu> That's not fun :(
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:26:26 <elliott> Fuck the height limit.
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:17 <elliott> And n is sixty-four or so
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:42 <Patashu> what's an octtree?
09:28:56 <Vorpal> sorry, octree*
09:28:58 <elliott> Do octtrees even work for infinite spaces
09:29:00 <Vorpal> http://en.wikipedia.org/wiki/Octree
09:29:05 <Vorpal> elliott, hm, not sure
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:41 <Vorpal> but that is cheap
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:29 <Vorpal> even so
09:30:30 <elliott> Vorpal: It's not a hash table
09:30:33 <elliott> Not really
09:30:35 <elliott> It's a B-tree
09:30:37 <Vorpal> you said it was, okay
09:30:39 <elliott> Because it's your filesystem :P
09:30:41 <Patashu> lol
09:30:42 <elliott> Yes, that was an explanatory tool.
09:30:43 <Patashu> haha
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:14 <elliott> Well.
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:28 <Vorpal> elliott, they vary
09:32:29 <Patashu> pretty compact I'd think
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:09 <elliott> Patashu: Probably.
09:33:14 <elliott> Patashu: But with biomes.
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:53 <Vorpal> or what
09:35:57 <elliott> Serialisation is obviously overridable
09:36:01 <Vorpal> ah
09:36:12 <Vorpal> elliott, it didn't sound like that before
09:36:14 <Vorpal> but sure
09:36:16 <Vorpal> makes sense
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:15 <Vorpal> err
09:37:19 <Vorpal> compression is not*
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:54 <Vorpal> hm
09:37:55 <elliott> (Apart from things not exposed publicly)
09:38:10 <Vorpal> elliott, metadata and such?
09:38:15 <cheater_> yeah let's just abandon state
09:38:17 <elliott> Just internal fields
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:27 <cheater_> what a great idea!
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:39:54 <Vorpal> right
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:35 <Vorpal> for about an hour
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:18 <elliott> Just use a laptop :P
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:41:44 <elliott> But why bother
09:41:47 <elliott> Vorpal: Why's it fail
09:42:03 <Patashu> I suspect latency
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:12 <elliott> THUNDERBOOOOOOLT
09:42:15 <elliott> Sorry
09:42:19 <elliott> An Intel marketroid just took my laptop
09:42:20 <elliott> Very rude
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:48 <Vorpal> very droll
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:44:56 <Vorpal> hah
09:45:10 <Vorpal> elliott, yeah but it doesn't work for everything.
09:45:18 <elliott> Just make symphonies of buzz
09:45:22 <elliott> It's called eight-bit
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:28 <elliott> PRECISELY
09:47:37 <elliott> <Vorpal> AND THAT'S WHY I MUST NOT YIELD TO SAID TEMPTATION
09:47:46 <Vorpal> elliott, touche
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:12 <elliott> Vorpal: 9
09:48:14 <elliott> :P
09:48:17 <Vorpal> elliott, ouch
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:48:58 <elliott> LOGIC N JUSTIFICATION
09:49:02 <elliott> Vorpal: The shitty one?
09:49:04 <Vorpal> elliott, yes
09:49:08 <elliott> I don't think it even HAS a brand.
09:49:13 <Vorpal> aaaah....
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:49:28 <elliott> quite a... thing
09:49:37 <Vorpal> heh
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:33 <elliott> GPT
09:51:52 <elliott> huh, partition four sounds the same at the start
09:52:07 <elliott> oh, i have no swap, heh
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:28 <Vorpal> elliott, err no
09:52:31 <Vorpal> not safe at all
09:52:36 <elliott> Vorpal: Note joke :P
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:16 <Vorpal> yes
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:24 <Vorpal> any more
09:53:24 <elliott> What is it with zeroes
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:10 <Patashu> the music of linux
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:34 <elliott> It's more uh
09:54:38 <elliott> Textural than toneful though
09:54:43 <Vorpal> whoa /dev/sda2 (root iirc) sounds nice
09:54:44 <elliott> [asterisk]tuneful
09:54:47 <Vorpal> nice beat to it
09:54:49 <Vorpal> 3/4 I think
09:54:54 <elliott> Hahaha seriously?
09:55:04 <elliott> Oh man /dev/sda3
09:55:09 <elliott> ext4 starts off brutal
09:55:10 <Vorpal> elliott, no, it is only vagually like it, for a bit
09:55:17 <elliott> tick tick tick tick
09:55:22 <Vorpal> my /dev/sda3....
09:55:22 <Vorpal> whoa
09:55:24 <Vorpal> whoa
09:55:26 <elliott> What
09:55:27 <Vorpal> WHOA
09:55:30 <Vorpal> elliott, it is swap
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:55:57 <Vorpal> and what not
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:18 <elliott> Deewiant: /bin/ls is fun
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:54 <elliott> Segmentation fault
09:56:58 <elliott> There were like five thousand of those errors
09:56:59 <elliott> herp derp
09:56:59 <Vorpal> elliott, /dev/sdb3 is similar, but different
09:57:06 <Vorpal> sda3 sounds better
09:57:08 <Vorpal> definitely
09:57:31 <elliott> Playing raw data '/usr/bin/emacs' : Unsigned 8 bit, Rate 8000 Hz, Mono
09:57:33 <elliott> Sounds like bloat
09:57:39 <Patashu> are you guys going to make an album of this stuff
09:57:46 <Vorpal> Patashu, haha
09:57:53 <elliott> Patashu: Don't tempt me.
09:57:55 <Patashu> send the proceeds to charity
09:58:00 <fALSO> lol
09:58:01 <Vorpal> I hit ext4 on my lvm listening
09:58:02 <elliott> Send the proceeds to GNU :P
09:58:05 <Patashu> or that
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:58:46 <elliott> Padding or whatnot
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:33 <Vorpal> mostly the start
09:59:38 <Vorpal> then it is just noise
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
09:59:57 <Vorpal> oh, shell script
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:32 <Vorpal> that is how
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:00:57 <Patashu> aha
10:01:04 <elliott> -rwxr-xr-x 1 root root 63 2011-01-29 05:39 /usr/lib/openoffice/program/swriter
10:01:05 <elliott> ><_
10:01:06 <Patashu> so you could play the same file a large number of ways
10:01:06 <elliott> >_<
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:49 <Vorpal> hm
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:51 <elliott> Argh
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:25 <elliott> Good enough
10:02:34 <elliott> Vorpal: You realise it's literally identical to go.oo
10:02:37 <elliott> And the answer is Ubuntu
10:02:43 <Vorpal> elliott, ah
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:03 <elliott> ELF, though
10:04:11 <Vorpal> hm
10:04:26 <Vorpal> elliott, eh, you mean /usr/bin/gs ?
10:04:32 <elliott> Nope, I mean what I say
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:11 <elliott> Just a link, it seems.
10:05:15 <elliott> fizzie: Yes definitely.
10:05:38 <Vorpal> 10M/usr/bin/gs
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:05:55 <Vorpal> huh
10:06:01 <Vorpal> weird
10:06:15 <elliott> Oh busybox is nice
10:06:23 <Vorpal> elliott, static?
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:07:28 <Vorpal> elliott, not for me
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:10:43 <elliott> why is this aif silent :(
10:10:49 <elliott> Deewiant: im scared
10:11:23 <Deewiant> If the music gets worse, that's probably not a good sign
10:11:32 <elliott> Eh? :P
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:10 <Deewiant> How... unexpected
10:14:26 <elliott> It's positively shocking.
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:18:32 <elliott> OH it started a beat.
10:18:50 <elliott> dootdoot doot doot doot
10:19:40 <elliott> OK are you going to do anything with that beat.
10:21:31 <Vorpal> elliott, nsearch.optim ?
10:21:36 <elliott> yes
10:21:42 <Vorpal> elliott, what is that
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:43 <Deewiant> Try a .hi
10:22:44 <Vorpal> elliott, searching for what? files? prime numbers?
10:22:50 <elliott> Deewiant: What's it sound like
10:22:54 <Deewiant> I don't know
10:22:54 <elliott> Vorpal: Bases
10:22:58 <Vorpal> ah
10:23:07 <elliott> I don't have any big his here
10:23:23 <elliott> Yes I do
10:23:29 <elliott> Don't really wanna pause Debian though
10:23:31 -!- cheater_ has joined.
10:24:42 <elliott> Deewiant: Oh man.
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:25 <Vorpal> bbl
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:45 <elliott> X-D
10:37:49 <elliott> After; GHC stores everything ROT encoded.
10:37:53 <Vorpal> elliott, aha
10:37:53 <elliott> Saves bits.
10:37:56 <Patashu> LOL
10:37:56 <elliott> Totally.
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:38:44 <Vorpal> forgot that
10:39:14 <Vorpal> elliott, GPT or MBR, which one do you recommend?
10:45:39 <elliott> back
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:43 <Vorpal> right
10:46:46 -!- cheater_ has quit (Ping timeout: 255 seconds).
10:46:47 <elliott> Vorpal: Plus:
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:02 <elliott> Vorpal: Big whoop :P
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:42 <Vorpal> hah
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:19 <elliott> Or maybe the HD
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:24 <elliott> EVEN OS X
10:52:42 <Vorpal> elliott, I don't remember the model code off-hand.
10:52:43 <Vorpal> bbl
10:52:48 <elliott> Vorpal: i7?
10:59:33 -!- cheater_ has joined.
11:07:24 -!- elliott has left ("Leaving").
11:07:28 -!- elliott has joined.
11:37:32 * elliott reverts TehZ.
11:39:32 -!- elliott has quit (Remote host closed the connection).
11:40:00 -!- elliott has joined.
11:40:14 <Phantom_Hoover> * elliott reverts TehZ.
11:40:14 <lambdabot> Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them.
11:40:20 <Phantom_Hoover> He... doesn't seem to have said anything.
11:40:35 <elliott> You could, y'know, look at recent changes.
11:42:58 -!- ais523 has joined.
11:43:02 <elliott> hi ais523; Feather
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:45 <Phantom_Hoover> elliott, erm, ctrl-F Teh shows nothing.
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> elliott: aha
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:44:40 <Phantom_Hoover> elliott, hmm, it seems a little ambiguous.
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:46:42 <Phantom_Hoover> It could be misunderstood for either, really.
11:46:55 <Phantom_Hoover> ais523, ah, but the meta-deja vu applies to Feather.
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:27 <ais523> find / | xargs shred?
11:48:29 <elliott_> ais523: then you could get Feather over with nice and quickly
11:48:32 <ais523> that's pretty easily
11:48:33 <elliott_> also, no, <power button> <enter>
11:48:39 <elliott_> I was trying to hit backspace
11:48:43 <elliott_> but it shut down my computer instead
11:48:44 <ais523> ah
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:04 <elliott_> tl;dr fuck computers
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:29 <ais523> in a recovery file
11:49:30 <elliott_> they exist, you know
11:49:36 <ais523> ah, yes
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:49:58 <elliott_> and enter will accept that
11:50:06 <Phantom_Hoover> <ais523> find / | xargs shred?
11:50:13 <Phantom_Hoover> And then ais realised he was in a terminal window.
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:07 <ais523> elliott_: nah
11:51:07 <elliott_> best name ever
11:51:11 <Phantom_Hoover> ais523, you have a symlink to shred called shredd in the current directory.
11:51:18 <Phantom_Hoover> Wait, that wouldn't work.
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:43 <ais523> umm, from the path
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:23 <elliott_> ais523: >:(
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:52 <elliott_> that is _so_ cheating
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:47 <elliott_> :t Data.Map.lookupWithDefault
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:07 <elliott_> :t Data.Map.findWithDefault
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:31 <lambdabot> flip (join findWithDefault) m
11:57:34 <ais523> I suppose MiniMAX is relatively different, although I'm not so certain it's imperative
11:58:10 <Phantom_Hoover> Malbolge.
11:58:23 <ais523> Malbolge isn't a tarpit
11:58:33 <Phantom_Hoover> Well yeah, it isn't TC.
11:58:47 <Patashu> it isn't?
11:59:06 <Phantom_Hoover> Patashu, finite memory space.
11:59:14 <Phantom_Hoover> What about oerjan's attempt at making it TC?
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:07 <ais523> hmm, yes
12:01:14 <ais523> I suppose that explains why MiniMAX is different, because it's an OISC
12:01:17 <Vorpal> ah
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:05:34 <Vorpal> and of course _
12:05:39 <Vorpal> (and | by extension)
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:09 <Patashu> mod 4?
12:07:13 <Vorpal> ais523, that is true
12:07:15 <Patashu> or two integers?
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:07:46 <Patashu> aah
12:07:49 <Patashu> okay, that's useful
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:42 <elliott_> :t Text.Parsec.sepBy
12:08:43 <lambdabot> Couldn't find qualified module.
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:54 <elliott_> holy shit :D
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:04 <Vorpal> ais523, yes
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:10 <Vorpal> !befunge98 11-1-.a,@
12:20:13 <EgoBot> ​-1
12:20:27 <Vorpal> !befunge98 11-11-1--.a,@
12:20:28 <EgoBot> 1
12:20:33 <elliott_> VARIABLES ARE p /p*/, p /q*/.
12:20:33 <elliott_> dynast(3) <->
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:40 <elliott_> pretty
12:20:51 <Vorpal> !befunge98 11-11-1-11-1---.a,@
12:20:52 <EgoBot> 0
12:20:54 <Vorpal> err
12:20:56 <Vorpal> !befunge98 11-11-1-11-1--.a,@
12:20:56 <EgoBot> 0
12:21:00 <Vorpal> !befunge98 11-11-1-11-1-.a,@
12:21:00 <EgoBot> ​-1
12:21:20 <Vorpal> !befunge98 11-11-1-1--.a,@
12:21:21 <EgoBot> 2
12:21:26 <Vorpal> :)
12:22:14 <Vorpal> !befunge98 211p11g11g..a,@
12:22:14 <EgoBot> 2 2
12:22:31 <Deewiant> !befunge98 3y.4y.a,@
12:22:32 <EgoBot> 1128682830 90
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:35:06 <Vorpal> mhm
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:12 <elliott_> Delightful!
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:46 <elliott_> [...migrating conversation]
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:09 <elliott_> So there's a mismatch.
12:40:12 * ais523 reads
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:33 <elliott_> foo(A,B,C) => D,E,F
12:45:33 <elliott_> begin
12:45:34 <elliott_> A nor B nor ~C => D
12:45:34 <elliott_> A nor ~C => E
12:45:34 <elliott_> A => F
12:45:34 <elliott_> end
12:45:36 <Vorpal> ais523, heh
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:04 <elliott_> ais523: Yes, apparently :P
12:46:07 <Phantom_Hoover> elliott_, not if it's a tree?
12:46:09 <elliott_> ais523: Inputs are ABC, outputs are DEF.
12:46:14 <elliott_> Phantom_Hoover:
12:46:16 <elliott_> foo(A,B,C) => D,E,F
12:46:16 <elliott_> begin
12:46:16 <elliott_> A nor B nor ~C => D
12:46:16 <elliott_> A nor ~C => E
12:46:16 <elliott_> A => F
12:46:17 <elliott_> end
12:46:17 <ais523> well, that's combinational
12:46:20 <Vorpal> yeah
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:32 <ais523> aha
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:46 <Phantom_Hoover> elliott_, I'm not sure if that counts as a tree...
12:46:51 <elliott_> Phantom_Hoover: "A nor B nor ~C" is a tree.
12:47:00 <Vorpal> ais523, DDR FPGA! ;)
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:47 <elliott_> Ah, hmm
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:48:59 <elliott_> Grumble grumble grumble.
12:49:03 <elliott_> ais523: Right.
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:10 <Phantom_Hoover> elliott_, what sixteen block limit?
12:49:17 <Phantom_Hoover> You mean for wires?
12:49:18 <Phantom_Hoover> Yes.
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:31 <ais523> Vorpal: I am aware
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:41 <Phantom_Hoover> Patashu, it gets even worse with pistons.
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:47 <Patashu> so I can imagine
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:17 <elliott_> Yay, genetic
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:56 <Vorpal> ais523, huh
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:35 <Vorpal> seems like it
12:52:37 <Patashu> oh, you're making a song creator
12:52:40 <elliott_> Patashu: No
12:52:49 <ais523> elliott_: look up the "master/slave J/K flip-flop" somewhere
12:52:53 <Phantom_Hoover> Patashu, VHDL-oid → redstone compiler.
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:09 <Vorpal> *googles*
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:27 <Vorpal> or your own?
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:29 <elliott_> Patashu: Way easier
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:21 <Vorpal> indeed
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:38 <elliott_> Yes, LOGICS plural.
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:14 <Patashu> ais: complex
12:59:16 <elliott_> Repeaters also have a delay setting
12:59:19 <elliott_> From zero to eight or so
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
12:59:42 <Phantom_Hoover> Erm, no.
12:59:53 <Phantom_Hoover> Wires, and a 3-input NOR gate.
13:00:02 <elliott_> Well, right, same thing. :p
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:12 <Phantom_Hoover> Vorpal, non-transparent and non-redstone or repeater.
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:18 <Patashu> CUBE?
13:02:20 <elliott_> So what's the VHDL for
13:02:20 <elliott_> foo(A,B,C) => D,E,F
13:02:20 <elliott_> begin
13:02:21 <elliott_> A nor B nor ~C => D
13:02:21 <elliott_> A nor ~C => E
13:02:21 <elliott_> A => F
13:02:21 <Phantom_Hoover> Vorpal, a lot of the edge cases are frankly nondeterministic.
13:02:23 <elliott_> end
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:25 <elliott_> Including the declaration
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:17 <Phantom_Hoover> Vorpal, sure, but consider the 2x2 piston door.
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:03:52 <Phantom_Hoover> Vorpal, sceptical of that.
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:00 <Vorpal> followed by
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:05:56 <ais523> elliott_: fair enough
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:04 <Phantom_Hoover> (Except the block they're placed on.)
13:07:11 <elliott_> ais523: I don't.
13:07:17 <Phantom_Hoover> If the block they're placed on is powered, the torch is deactivated.
13:07:19 <ais523> elliott_: heh
13:07:25 <Vorpal> Phantom_Hoover, is that ground-torch or wall torch?
13:07:29 <Phantom_Hoover> Vorpal, either.,
13:07:32 <Vorpal> ah right
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:43 <Phantom_Hoover> Yes.
13:07:46 <Vorpal> heh
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 <Vorpal> in vhdl I mean
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:32 <ais523> Vorpal: so was I
13:09:35 <Vorpal> ah
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:09:56 <Vorpal> elliott_, hm
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:10:44 <Vorpal> true
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:11:54 <elliott_> no shit sherlock
13:12:03 <elliott_> XOR is the NOT EQV
13:12:04 <Vorpal> hm, I just think it is
13:12:06 <Patashu> ooold
13:12:07 <Vorpal> elliott_, I know
13:12:08 <elliott_> s/the //
13:12:09 <Patashu> it is cool though
13:13:18 <elliott_> Hmm, is "Q" usually used as the variable name for the final output of a logical operation?
13:13:24 <ais523> yes
13:13:24 <Patashu> yep
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:46 <Vorpal> hm
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:46 <elliott_> <ais523> yes
13:14:46 <Patashu> aah
13:14:47 <elliott_> in answer to that?
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:05 <elliott_> right
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_> A xnor B => Q;
13:18:34 <elliott_> N := A nor B;
13:18:34 <elliott_> Q <= (A nor N) nor (B nor N);
13:18:34 <elliott_> end;
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:50 <Patashu> yeah
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:39 <Patashu> you can just hot swap it
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:10 <Patashu> exactly
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:04 <elliott_> hey Gregor
18:22:08 <elliott_> IM GETTING MY FIRST MONTH OF PRGMR FREE
18:22:10 <elliott_> BECAUSE THEY LOVE ME
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:39 <Phantom_Hoover> Inasmuch as a hamster *has* higher brain functions.
18:23:43 <elliott_> Vorpal: yes :D
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:07 <elliott_> Gregor just has bad luck
18:24:17 <Vorpal> elliott_, and you too
18:24:27 <elliott_> no i have all the luck
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:25:57 <Phantom_Hoover> oklopol, says the large logical gate.
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:34 <Gregor> Hamsters iterate.
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:26:59 <oklopol> well
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:28:53 <oklopol> althouhg humans
18:28:54 <oklopol> argh
18:29:01 <Phantom_Hoover> oklopol, really, cats are even worse.
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:29 <oklopol> i'm aware
18:29:37 <oklopol> but cats are cute
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:30:52 <monqy> cute stuff
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:36:57 <elliott_> ahahaha
18:37:13 <elliott_> `delquote 483
18:37:14 <HackEgo> ​*poof*
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:26 <Gregor> Yeesh :P
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:37:58 <oklopol> *on
18:38:17 <Phantom_Hoover> Hey, what'd I say?
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:47 <oklopol> ohhhhh
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:24 <oklopol> i mean
18:39:32 <oklopol> humor. humor is kinda old after this many years.
18:39:41 <monqy> whats humor
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:46 <oklopol> what R^4? :D
18:41:51 <oklopol> oh is it a physics thing
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:35 <Gregor> Exactly!
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:18 <Phantom_Hoover> pikhq, then let the matter end here.
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:33 <pikhq> Mmkay.
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:05 <pikhq> Actually, yes..
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:47:38 <pikhq> :)
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:48:17 <monqy> i cant wait
18:49:04 <Gregor> On a scale from one to ten, my doubletie style is far, far better than that :P
18:49:17 <pikhq> No argument.
18:49:25 <Vorpal> <Gregor> pikhq: Related: http://codu.org/tmp/doubletie2.jpg <-- Is that two different ties in one?
18:50:01 <Gregor> Vorpal: Yup
18:50:15 <pikhq> God. 2015 is 4 years from now. Where's my flying Delorean?
18:50:16 <Vorpal> Gregor, try three now
18:50:36 <Phantom_Hoover> pikhq, living in the future sucks.
18:51:03 <Gregor> Vorpal: *shakes fist*
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:49 <Phantom_Hoover> Dammit, I mixed the tenses.
18:51:56 <Phantom_Hoover> I don't want that going down for posterity!
18:51:57 <Gregor> Vorpal: Yeah, but to get them that way I have to wrap them 'round my neck somehow.
18:52:01 <Phantom_Hoover> `delquote 484
18:52:03 <Gregor> Vorpal: And the way I do that is one in each direction.
18:52:03 <HackEgo> ​*poof*
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:21 <Gregor> ... wow :P
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:25 <Gregor> ... wow X-P
18:56:35 <Vorpal> I mean, it would likely be bulky otherwise
18:56:53 <Vorpal> Gregor, no?
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:19 <Vorpal> side by side I mean
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:21 <oklopol> Gregor: sures
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:11 <Gregor> Vorpal: ~1.8m
19:01:21 <Vorpal> Gregor, 1.8? that is short :P
19:01:27 <Gregor> Friggin' nords.
19:01:28 <Vorpal> I'm 1.89 meters
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:01 <elliott_> wow shut up
19:02:06 <Vorpal> elliott_, what?
19:02:08 <oklopol> well
19:02:08 <Gregor> Friggin' nords.
19:02:09 <oklopol> in finland
19:02:14 <oklopol> in europe, everyone's just tiny
19:02:17 <Gregor> Need I say it again:
19:02:19 <Gregor> FRIGGIN'
19:02:19 <Gregor> NORDS
19:02:22 <Vorpal> what!?
19:02:27 <Gregor> Nordic peoples :P
19:02:46 <olsner> fNORDS
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:08 <oklopol> it's correct
19:04:14 <Vorpal> yay
19:04:16 <Gregor> It's not correct :P
19:04:19 <oklopol> sure is
19:04:19 <Vorpal> ah...
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:00 <oklopol> oh that's how he used it
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 <Gregor> elliott_ is 0.65m
19:05:38 <Vorpal> elliott_, I know you are short, forgot how short.
19:05:42 <elliott_> about 1.5m
19:05:44 <Vorpal> ah
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:20 <Vorpal> oklopol, ah
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:49 <oklopol> Gregor: sure
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:00 <oklopol> at is better
19:09:56 <Gregor> Long story short: oklopol lies, trust those who natively speak English and its over-the-pond derivative.
19:10:01 <Gregor> :P
19:10:26 <olsner> trust... americans?
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:41 <Vorpal> Gregor, ^
19:10:46 <elliott_> <Vorpal> elliott_, you aren't fully grown yet though. The person who I mentioned above is.
19:10:49 <Gregor> Vorpal: FRIGGIN'
19:10:51 <Gregor> Vorpal: NORDS
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:25 <Vorpal> Gregor, yeah
19:11:32 <Vorpal> elliott_, ouch
19:11:42 <monqy> short mother
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:18 <Phantom_Hoover> I've never heard 'in' used that way.
19:12:22 <monqy> neither have I
19:12:24 <Gregor> Vorpal: SLIGHTLY TALL >_<
19:12:28 <Gregor> Friggin' nords.
19:12:29 <Vorpal> Phantom_Hoover, it was a language mixup indeed
19:12:30 <Phantom_Hoover> It's always 'at'.
19:12:39 <Gregor> Phantom_Hoover: I've given up :P
19:12:40 <elliott_> <monqy> short mother
19:12:41 <elliott_> shother
19:12:46 <monqy> shortest
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:13:42 <oklopol> Gregor: true
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:15:02 <oklopol> ah yeah
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:49 <oklopol> no it's not
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:24 <oklopol> sweden obviously
19:17:29 <oklopol> because they're swedes
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:18:59 <oklopol> Gregor: NO
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:12 <Vorpal> XD
19:20:18 <Vorpal> "Assuming a list | Use multiplication instead"
19:21:22 <oklopol> Gregor: usually it's like a bike wheel
19:21:36 <oklopol> so easy
19:21:43 <Gregor> Well, that's better than a hula-hoop ...
19:21:43 <oklopol> i mean without the actual tire
19:21:46 <Gregor> AH
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:05 <oklopol> :D
19:28:07 <elliott_> he just looked at him
19:28:09 <elliott_> staring
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:19 <Gregor> *legit
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:04 <oklopol> nope
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:34:27 <Vorpal> have*
19:34:28 <Vorpal> gah
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:35:17 <Vorpal> hm
19:35:35 <monqy> bad sentence
19:35:36 <monqy> go away
19:35:36 <oklopol> no natives though :D
19:35:47 <oklopol> hopefully
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:40:27 <oklopol> done?
19:40:28 <oklopol> okay
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:25 <Vorpal> XD
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:41:53 <oklopol> tell them
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:42:39 <oklopol> i wanna be hurd
19:42:48 <oklopol> whoops
19:42:49 <oklopol> freudian slip
19:43:03 <oklopol> thank god i was ignored because i certainly didn't want anyone in on *that*
19:43:39 <oklopol> `say sadjkf
19:43:41 <HackEgo> No output.
19:43:43 <oklopol> argh
19:43:54 <oklopol> `tell sadjkf
19:43:56 <HackEgo> No output.
19:43:59 <oklopol> :(
19:44:03 <oklopol> my life is ruined
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:06 <elliott_> gee thanks :D
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:22 <HackEgo> It's echo, genius :P
19:44:27 <oklopol> Gregor: thanks
19:44:37 <Vorpal> <oklopol> i wanna be hurd <-- gnu hurd?
19:44:40 <Vorpal> yeaaaah right
19:44:41 <oklopol> `echo please unignore me now okay, says oklopol
19:44:42 <HackEgo> please unignore me now okay, says oklopol
19:44:49 <oklopol> erm
19:44:53 <oklopol> whoops typo
19:44:54 <oklopol> *hird
19:44:58 <Vorpal> oklopol, ah
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:45:55 <Gregor> `which echo
19:45:57 <HackEgo> ​/bin/echo
19:46:02 <Gregor> `which which
19:46:03 <HackEgo> ​/usr/bin/which
19:46:05 <olsner> who's ignoring the oklo?
19:46:07 <Gregor> (Debian in fact)
19:46:11 <oklopol> Gregor: i know it's unix
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:30 <oklopol> because i asked
19:46:33 <Gregor> elliott_: No, more like geek (subsetof) socially retarded :P
19:46:38 <olsner> oklopol: I didn't
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 <olsner> I guess so
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:47:39 <monqy> that is
19:48:01 <monqy> i did not heed his command
19:48:11 <monqy> that is
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:16 <HackEgo> No output.
19:48:22 <Gregor> `say lulstupidcommands
19:48:23 <HackEgo> 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:01 <oklopol> i'm not in a cave
19:49:11 <monqy> really?
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:50:47 <oklopol> :D
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:02 <elliott_> yawn
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:52 <monqy> easily intrigued?
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:57:39 <olsner> ooh, mathematician
19:58:10 <oklopol> people have very different reactions really
19:58:10 <Gregor> I say I'm an informatician.
19:58:17 <oklopol> informatician :D
19:58:48 <oklopol> something for everyone
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:41 <oklopol> numerology
19:59:44 <oklopol> maybe
19:59:51 <monqy> hehehehehe
19:59:53 <oklopol> i actually told this norwegian woman i do math
19:59:55 <oklopol> and she says
19:59:58 <oklopol> with a straight face
20:00:05 <oklopol> oh that's cool, i'm reading a book on numerology
20:00:16 <oklopol> and i'm like
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:05:09 <monqy> wow what
20:05:16 <olsner> haha
20:06:18 <oklopol> what can i say to that
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:09:37 <oklopol> hey
20:10:01 <oklopol> what if i started saying i study symbolic dynamics
20:10:01 <oklopol> :D
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:10 <oklopol> *-you
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:38 <oklopol> *anything
20:16:41 <oklopol> *like
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:18:44 <oklopol> Vorpal: i didn't guess it
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:19:53 <Phantom_Hoover> It echos what you put on its command line?
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:20:24 <oklopol> such a famous bisexual
20:21:30 <Phantom_Hoover> Yeah, like Marlon Brando.
20:21:40 <Phantom_Hoover> And Caligula.
20:22:07 <oklopol> uhhuh
20:22:21 <oklopol> those were the days
20:22:25 <olsner> and cthulhu
20:26:21 <Phantom_Hoover> And... Keeley Hawes?
20:26:34 <Phantom_Hoover> I feel cheated by Ashes to Ashes now.
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:00 <oklopol> see you later
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:23:21 <elliott_> Vorpal: IMPORTANT QUESTIONS
22:29:17 <Phantom_Hoover> elliott_, feedback loop, burnout.
22:29:57 -!- Lymee has quit (Read error: Connection reset by peer).
22:30:11 <elliott_> Phantom_Hoover: I mean IRL.
22:30:17 <elliott_> Or was that your answer.
22:30:27 <Phantom_Hoover> I guess that would be a clock of some kind?
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:52:55 <pikhq_> Uh.
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:09:38 <Phantom_Hoover> pikhq_, faked email?
23:09:44 <Phantom_Hoover> Elaborate practical joke?
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:34:21 <Phantom_Hoover> Conclusion: myndzi = elliott = Lymia.
23:36:49 * Phantom_Hoover → sleep
23:36:50 -!- Phantom_Hoover has left ("Leaving").
23:36:54 -!- Phantom_Hoover has quit (Quit: Leaving).
23:47:04 -!- Lymee has joined.
2011-07-07
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:18:08 <lambdabot> (y,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:23:59 <pikhq_> :)
02:25:53 <Sgeo_> Why does the e-reader I want cost $330?
02:36:27 <Sgeo_> Wikipedia now automatically uses WOT
02:36:39 <Sgeo_> No, n/m
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:19 <oerjan> ah yes
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:58:46 <oklopol> yep
04:59:08 <oklopol> what do you mean "just"
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:23 <oklopol> oh
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:41 <oklopol> what?
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:24 <oklopol> = their products are
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:02:10 <oklopol> yeah
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:04:28 <oklopol> became kind of... obscure
05:04:38 <oklopol> erm
05:04:41 <oklopol> *a_i^2 = a_i
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:08 <oklopol> anyway a oneliner
05:07:09 <Sgeo_> `quote turing
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:54 <monqy> `quote meta
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:42 <oklopol> two iterations
05:12:55 <oklopol> a^2(x) = a(a(x))
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:08 <Sgeo_> ?
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:01 <oklopol> and entropy almost never
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:00 <oerjan> not that i recall
05:16:03 <oklopol> erm
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:49 <oklopol> ermerm
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:20:29 <oklopol> let me tell you
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:22:57 <oklopol> obviously
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.
06:55:54 <monqy> artrocities???
06:56:37 <pikhq_> Sometimes.
07:04:36 <olsner> arthrocities
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:11:11 <oklofok> ;:DS
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:17:57 <olsner> what's a solipsist?
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:18:47 <pikhq_> Even better.
07:18:47 <pikhq_> :)
07:19:50 <oerjan> obvious is better?
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
08:59:09 <coppro> but similar enough
08:59:11 <oklofok> really?
08:59:16 <oklofok> wanna share :D
08:59:35 <coppro> in private maybe
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:21:46 <Phantom_Hoover> How difficult is 'cephalopod' to pronounce?
10:26:53 <Phantom_Hoover> "Some cephalopods are able to fly distances up to 50 m."
10:27:01 <Phantom_Hoover> Minecraft: more realistic than you thought.
10:28:52 -!- FireyFly has joined.
10:41:41 <Lymee> Phantom_Hoover, TNT assisted flight?
10:41:56 <Phantom_Hoover> Lymee, remember the flying squid bug?
10:42:04 <Lymee> いいえ
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:49:42 <Phantom_Hoover> FSVO 'fun'
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:51:50 <Phantom_Hoover> And DF, apparently.
10:52:06 <Phantom_Hoover> Reading Boatmurdered, I can see the attraction.
10:52:16 <Phantom_Hoover> Just watching everything unravel is entertaining.
10:52:37 <Phantom_Hoover> (Headshoots is even more fun to read, although for the exact opposite reason.)
10:52:51 <Lymee> Dunno.
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:53:54 <Lymee> mistake*
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:49 <Phantom_Hoover> Yes.
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:17 <Deewiant> I'd pay for it
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:41 <fALSO> nah
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:55:59 <fALSO> before buying
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:15:06 <Phantom_Hoover> Um....
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:23:42 <Patashu> hm, not even
11:24:27 <Phantom_Hoover> The B series is the same, it just has a different starting point.
11:25:17 <Phantom_Hoover> Same with the C series.
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:25:35 <Patashu> knowledge++;
11:26:13 <Phantom_Hoover> Deewiant, well, OK, I guess that makes sense.
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:05 <Phantom_Hoover> I guess you could say there is, yeah.
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:27:58 <Phantom_Hoover> No, it's precisely a square metre.
11:28:18 <Patashu> it WAS a square meter
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:28:48 <Patashu> 841*1189
11:28:48 <Patashu> 999949
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:30:58 <Phantom_Hoover> Sorry, through the long side.
11:31:36 <Lymee> Ah.
11:31:38 <Lymee> So.
11:31:44 <Lymee> A1 is half A0 or something?
11:31:48 <Phantom_Hoover> Yes.
11:31:53 <Lymee> Clever.
11:31:53 <Patashu> Lymee, http://en.wikipedia.org/wiki/ISO_216
11:31:54 <Patashu> Educate yourself
11:31:56 <Patashu> It is quite neat
11:32:16 <Phantom_Hoover> Patashu, don't be hard on her, she comes from the standardless wasteland of America.
11:32:23 <Patashu> *gasp*
11:32:31 <Patashu> O
11:32:35 <Patashu> That's why everyone here is from sweden
11:32:38 <Patashu> (literally, everyone)
11:32:58 <Phantom_Hoover> Heh, there are series from A to H.
11:33:02 <Phantom_Hoover> And further, I suppose.
11:33:09 <Patashu> there are/
11:33:16 <Patashu> how do you define D0 - D10?
11:33:33 <Phantom_Hoover> Geometric means of Bn and An-1.
11:33:38 <Patashu> hmmm
11:33:50 <Phantom_Hoover> B is the geometric mean of An and An-1.
11:34:26 <fizzie> Cn is often used for envelopes holding An papers.
11:34:29 <Patashu> Cn is Bn and An
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:01:17 <Phantom_Hoover> FFS, Alpha.
12:02:42 <Phantom_Hoover> Oh, it doesn't recognise G as the gravitational constant.
12:02:47 <Phantom_Hoover> Way to go, Wolfram.
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:04:47 <Phantom_Hoover> No, I mean rotational kinetic energy.
12:04:58 <Patashu> Ah, it is a term
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:05:54 <Phantom_Hoover> Energy is not invariant, no.
12:06:15 <Patashu> Interesting
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:06 <Phantom_Hoover> Dammit, why does America get so much pretty scenery.
12:20:39 -!- FireyFly has changed nick to FireFly.
12:35:30 <CakeProphet> kind of surprised mplus isn't ++
12:36:03 -!- wth has joined.
12:36:06 <CakeProphet> or, at least, I'm surprised ++ isn't a method.
12:36:16 <CakeProphet> of any typeclass.
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:11:45 <Patashu> @.@
13:11:46 <lambdabot> Maybe you meant: . @
13:11:55 <Patashu> @ . @
13:12:02 <Phantom_Hoover> @. @
13:12:02 <lambdabot> Not enough arguments to @.
13:12:10 <Phantom_Hoover> @help .
13:12:10 <lambdabot> . <cmd1> <cmd2> [args].
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 <Phantom_Hoover> @. pl t \x -> x
13:12:55 <lambdabot> Plugin `compose' failed with: Unknown command: "t"
13:12:58 <Phantom_Hoover> Dammit.
13:13:02 <Phantom_Hoover> @type id
13:13:03 <lambdabot> forall a. a -> a
13:13:07 <Phantom_Hoover> @. pl type \x -> x
13:13:08 <lambdabot> (line 1, column 13):
13:13:08 <lambdabot> unexpected ">" or "-"
13:13:08 <lambdabot> expecting variable, "(", ".", "`", "!!", operator or end of input
13:13:16 <Phantom_Hoover> @pl \x -> x
13:13:16 <lambdabot> id
13:13:37 <Phantom_Hoover> Oh wait it does g first.
13:13:42 <Phantom_Hoover> @. type pl \x -> x
13:13:43 <lambdabot> forall a. a -> a
13:13:54 <Patashu> so what is @.
13:14:21 <Phantom_Hoover> It composes two lambdabot commands.
13:16:04 <Patashu> huh...
13:16:07 <Patashu> when would you need that
13:22:25 <Phantom_Hoover> Patashu, what was that video?
13:23:32 <Phantom_Hoover> That you linked to?
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:09:36 <lifthrasiir> ...oh wait, he did not pass.
15:09:39 <lifthrasiir> yes
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:09 <Patashu> for academic interest
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:17:18 <Patashu> lol, safe mode?
15:17:49 <lifthrasiir> (i have no youtube account)
15:18:07 <Patashu> wait, the video I linked you to is considered mature?
15:19:06 <lifthrasiir> looks like so.
15:19:12 <fizzie> It didn't ask me anything, and I'm not logged in to the tube.
15:19:22 <lifthrasiir> huh,
15:19:24 <Patashu> there's 'fucking' in the description
15:19:25 <Patashu> would that do it?
15:19:31 <Patashu> http://www.youtube.com/user/geniusleonid#p/a/u/1/zDppGonwmb4 maybe try this link
15:19:32 <lifthrasiir> possibly.
15:19:58 <lifthrasiir> still blocked.
15:20:12 <Patashu> Hmmmm
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:40 <Lymee> ...
16:36:43 <Lymee> The game's threatening me
16:39:02 <quintopia> you're about to drown?
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:51:52 <coppro> true
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:23:15 <oklofok> well i just came
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:46:37 <oklofok> elliott_: party!
18:47:19 <quintopia> oklofok just came
18:48:40 <elliott_> taupe
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:00:03 <elliott_> oh, he's gone
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:24 <elliott_> ?hoogle Foldable
19:02:25 <lambdabot> module Data.Foldable
19:02:25 <lambdabot> Data.Foldable class Foldable t
19:02:28 <elliott_> ?hoogle fold
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:04:16 <Gregor> Blargh.
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:00 <elliott_> Gregor: ?
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:49 <elliott_> oerjan: oh it was??
19:07:53 <elliott_> what did ninetyeight add again
19:07:55 <elliott_> and can we go back
19:08:30 <elliott_> class Eval a where
19:08:30 <elliott_> seq :: a -> b -> b
19:08:30 <elliott_> strict :: (a -> b) -> a -> b
19:08:30 <elliott_> strict f x = x `seq` f x
19:08:35 <elliott_> wowv
19:08:36 <elliott_> wow!
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:16 <elliott_> Gregor: Hmm
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:12:57 <Gregor> Neither do I.
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:54 <elliott_> I am deadly serious.
19:14:56 -!- Lymee has joined.
19:14:59 <elliott_> It just power cycled.
19:15:04 <Gregor> ... lul
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:48 <elliott_> haha
19:16:49 <oerjan> (of course some may think monads still are)
19:16:59 <elliott_> oerjan: erm, wait, why?
19:17:02 <elliott_> if the type is not a variable
19:17:04 <elliott_> and there's an instance
19:17:07 <elliott_> you should not have to name (Seq T) =>
19:17:15 <oerjan> well true
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_> but yeah okay
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:28 <Phantom_Hoover> Hamsters are clearly not TC.
19:29:30 <Phantom_Hoover> Also GTG.
19:29:44 -!- oerjan has quit (Quit: Good night).
19:30:08 <elliott> http://en.wikipedia.org/wiki/File:NorAdder.svg
19:30:11 <elliott> well this is clear as mud
19:34:31 <elliott> fulladd a b cin (s,cout) = do
19:34:31 <elliott> [n] <- vars ["N"]
19:34:31 <elliott> n <== a `xor` b
19:34:31 <elliott> s <== n `xor` cin
19:34:31 <elliott> cout <== (a `and` b) `or` (n `and` cin)
19:34:32 <elliott> oh well, there's this
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:28 <elliott> that's not helpful :P
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:19 <elliott> erm
20:01:20 <elliott> i mean
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:24 <elliott> as in
20:01:28 <elliott> multiple-bit adders
20:01:31 <elliott> ripple carry or whatever
20:01:34 <monqy> oh
20:01:38 <monqy> if you want them to????
20:02:25 <elliott> NOT HELPFUL >:(
20:03:36 <elliott> lmao i am reinventing half of York Lava
20:03:40 <elliott> gj elliott gj
20:06:36 <elliott> I should rename Var to Bit just to reinforce how much I'm ripping it off
20:06:39 <elliott> (unintentionally)
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:23 <monqy> how unhelpful
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:22 <Vorpal> elliott, slightly
20:10:26 <elliott> yeah
20:10:27 <monqy> elliott: and then, a few hundred lines down, values for each of them
20:10:28 <elliott> but this is minecraft
20:10:31 <elliott> everything has to be tiny
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:30 <elliott> dude
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:36 <Vorpal> elliott, okay 32 bit
20:11:37 <Vorpal> still
20:11:40 <elliott> why would you need that many
20:11:41 <Vorpal> going to take ages
20:11:46 <elliott> why would you need that many
20:11:48 <Vorpal> elliott, IPv6 router!
20:11:53 <Vorpal> (no I don't know)
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:10 <Vorpal> read up on it
20:12:23 <elliott> bigger circuit dude
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:22 <Vorpal> elliott, yes
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:07:55 <Vorpal> :P
21:08:02 <Vorpal> elliott, do path analysis or something
21:08:09 <elliott> Vorpal: >_<
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:11:52 <Vorpal> elliott, 256
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:05 <elliott> this is hard
21:12:52 <Vorpal> elliott, then you need to do CSE between adders and so on
21:12:58 <elliott> Vorpal: no
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:13:55 <Vorpal> so you can do tricks
21:13:59 <elliott> what does that mean
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:12 <elliott> lame :(
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:15:56 <elliott> I already have those
21:16:00 <elliott> Primitives, I mean
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:13 <elliott> smushed into one block
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:07 <elliott> Vorpal: augh
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:18:35 <elliott> draw your own conclusions
21:19:16 <Vorpal> elliott, ...
21:23:09 <elliott> Vorpal: what
21:23:16 <elliott> hmm i should expand my thing to support simulation
21:23:17 <Vorpal> :P
21:23:24 <elliott> its just that itll be a pain
21:23:25 <Vorpal> elliott, that is probably easier
21:23:30 <Vorpal> than synth
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:23:50 <elliott> hmmm unless... hmm
21:23:59 <Phantom_Hoover> elliott: are you saying i'm Phantom_Hoover ?
21:24:03 <Vorpal> elliott, wait imperative?
21:24:04 <Phantom_Hoover> Wait.
21:24:06 <Phantom_Hoover> Crap.
21:24:08 <Vorpal> Phantom_Hoover, XD
21:24:09 <Phantom_Hoover> Wrong window.
21:24:11 <elliott> Phantom_Hoover: :D
21:24:17 <Vorpal> :D
21:24:20 <oklopol> :D
21:24:24 <Phantom_Hoover> :D
21:24:24 <elliott> Vorpal: york lava taught me that cycle-accurate simulation is easy!
21:24:25 <elliott> :P
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:33 <elliott> well
21:24:35 <Vorpal> elliott, with an imperativish syntax
21:24:36 <elliott> VHDL-style imperative
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:00 <Vorpal> possibly
21:25:08 <elliott> i.e.
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:18 <elliott> where
21:25:18 <elliott> sum = a <#> b
21:25:18 <elliott> carry = a <&> b
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:35 <elliott> Lava> is prompt
21:25:40 <elliott> lines after that are regular .hs haskell code
21:25:52 <elliott> that is
21:25:53 <elliott> --ghci--
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:54 <elliott> --
21:25:58 <elliott> --haskell file--
21:25:59 <elliott> <elliott> halfAdd :: Bit -> Bit -> (Bit, Bit)
21:25:59 <elliott> <elliott> halfAdd a b = (sum, carry)
21:25:59 <elliott> <elliott> where
21:26:01 <elliott> <elliott> sum = a <#> b
21:26:03 <elliott> <elliott> carry = a <&> b
21:26:05 <elliott> --
21:26:06 <Phantom_Hoover> elliott, I'd say VHDL is more functional, TBh.
21:26:19 <elliott> Phantom_Hoover: Umm... no?
21:26:19 <Phantom_Hoover> You're just specifying multiple functions in one.
21:26:26 <Phantom_Hoover> Huh?
21:26:31 <Vorpal> elliott, ah
21:26:40 <elliott> Vorpal: Anyway, Lava does simulation like this:
21:26:40 <elliott> -- | Logic '0'.
21:26:41 <elliott> low :: Bit
21:26:41 <elliott> low = makeComponent "low"
21:26:41 <elliott> {- Inputs: -} []
21:26:41 <elliott> {- Outputs: -} 1
21:26:43 <elliott> {- Simulate: -} (\[] -> [repeat False])
21:26:45 <elliott> {- Params: -} []
21:26:47 <elliott> {- Continue: -} (\[o] -> o)
21:26:49 <elliott> and
21:26:51 <elliott> -- | Inverter.
21:26:53 <elliott> inv :: Bit -> Bit
21:26:55 <elliott> inv a = makeComponent "inv"
21:26:57 <elliott> {- Inputs: -} [a]
21:26:59 <elliott> {- Outputs: -} 1
21:27:01 <elliott> {- Simulate: -} (\[a] -> [map not a])
21:27:03 <elliott> {- Params: -} []
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:07 <elliott> for each cycle
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:28:53 <elliott> compare to
21:28:55 <elliott> (pseudoVHDL)
21:29:01 <elliott> halfAdd(a,b,s,c)
21:29:03 <elliott> begin
21:29:12 <elliott> s <= a and b;
21:29:14 <elliott> erm
21:29:15 <elliott> xor
21:29:18 <elliott> c <== a and b;
21:29:19 <elliott> end
21:29:24 -!- Sgeo has quit (Ping timeout: 255 seconds).
21:29:25 <elliott> you get the idea
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:29:50 <elliott> It's not /compositional/
21:30:13 <quintopia> elliott: havenworks.com Not Available :(((((
21:30:20 <elliott> quintopia: been like that for months
21:30:36 <quintopia> i didn't know til now
21:30:40 <quintopia> sad day
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:07 <elliott> ask Gregor :P
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:34:54 <Phantom_Hoover> OK, my fonts are all messed up.
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:38 <Phantom_Hoover> *sigh*
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:41:35 <Vorpal> Phantom_Hoover, NotW?
21:41:45 <Phantom_Hoover> Vorpal, News of the World.
21:41:47 <Vorpal> ah
21:41:50 <Vorpal> heard about that
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:25 <quintopia> i see nothing good about the move
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:12 <Phantom_Hoover> Except no.
21:44:13 -!- Lymee has quit (Ping timeout: 252 seconds).
21:44:27 <Phantom_Hoover> They're making the Sun come out 7 days instead of 6.
21:44:37 <coppro> they actually had no real choice
21:44:38 <Phantom_Hoover> i.e. they're renaming NotW to the Sunday Sun.
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:45:32 <Phantom_Hoover> elliott, ahahahahahahahahaha
21:45:48 <Phantom_Hoover> (OK that was a joke I know.)
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:49 <Phantom_Hoover> elliott, that... doesn't even make sense.
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:54 <coppro> elliott: obviously
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:16 <elliott> hnnnnng
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:28 <Phantom_Hoover> Why, how does yours work.
21:50:47 <coppro> nobody cares about scandals like that
21:51:22 <Phantom_Hoover> ...tampering with evidence in a murder case?
21:51:30 <Phantom_Hoover> I'd've though that's a major scandal anywhere.
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
21:59:18 <coppro> Phantom_Hoover: so?
22:15:34 -!- Lymee has quit (Ping timeout: 260 seconds).
22:15:56 <Phantom_Hoover> `quote wtf
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:36 <elliott> this is a shitty post
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:07:56 <elliott> SO USELESS
23:10:29 <Phantom_Hoover> I'm not allowed to talk about antiïntellectualism, am I?
23:10:36 <coppro> NEVER
23:19:11 <BeedaWeeda> that guy Elliott Hird is a sex offender, i found him on englands sex offender registry
23:19:16 <BeedaWeeda> rape by force
23:19:19 <BeedaWeeda> on a minor
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:31 * Phantom_Hoover → sleep.
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:01 * BeedaWeeda laughs
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:36:26 <BeedaWeeda> how pathetic
23:36:56 <quintopia> *sigh*
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:00 <BeedaWeeda> lol
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:03 <quintopia> yeah
23:43:06 <quintopia> like the author of the article
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:19 <pikhq> </fin>
23:45:32 <quintopia> if you're gonna troll, make me laugh. geez.
23:45:37 <BeedaWeeda> lol
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:29 <BeedaWeeda> look at that anger
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:46:54 <elliott> monqy: off a short pier?
23:46:57 <monqy> sure
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:16 <quintopia> ^
23:48:22 <BeedaWeeda> =D
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:00 <BeedaWeeda> =/
23:49:09 <elliott> HAHA LOOK AT THAT ANGER
23:49:13 <BeedaWeeda> your just trying to spin around what i used on you originally
23:49:17 <BeedaWeeda> lame
23:49:29 <monqy> surely to hide your fury no less
23:49:33 <BeedaWeeda> LAME
23:49:34 <BeedaWeeda> BORING!
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:54:47 <quintopia> s/ol/ntemptible/
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:57:10 <BeedaWeeda> absolutely
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:40 <elliott> hahaha
23:59:42 <elliott> I use caps all the time
23:59:51 <elliott> no bold on IRC, well there is, but +c is on so I can't use it
2011-07-08
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:05 <BeedaWeeda> lol
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:14:50 <elliott> yeah
00:14:52 <elliott> lol
00:15:19 <BeedaWeeda> so...
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:16:32 <monqy> fancy that
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:39 <elliott> i.e. Word 9 being bit[9]
01:26:45 <elliott> i forget the long VHDL name :P
01:26:48 <elliott> for bit, I mean
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:37 * Sgeo_ mindboggles
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:01 <Vorpal> kind of
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:41 <Sgeo_> Not notable...
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:12 <elliott> why :(
01:37:17 <elliott> it's basically a word
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:44:32 <Vorpal> elliott, yes
01:44:43 <elliott> Patashu: what does?
01:44:47 <elliott> Vorpal: :<
01:45:01 <Vorpal> elliott, unless you use it to implement a vector CPU, in which case it will be confusing
01:45:02 <Vorpal> ;)
01:45:39 <elliott> Har har :P
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:11 <Vorpal> vhdl? simple?
01:47:21 <Vorpal> elliott, I don't quite understand what you are talking about
01:47:32 <elliott> simpler than redstone :D
01:47:33 <Vorpal> elliott, vhdl is simpler than wiring up by hand...
01:47:35 <Vorpal> that is about it
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:03 <Patashu> again
01:48:10 <Vorpal> elliott, add another 20 lines of boilerplate to that
01:48:20 <elliott> poly :: Poly -> Recipe
01:48:21 <elliott> poly s =
01:48:21 <elliott> let instr = s!code!top in
01:48:21 <elliott> Seq [ Tick
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:25 <elliott> , isREV instr |>
01:48:27 <elliott> Seq [ s!rtop <== s!stack!top
01:48:29 <elliott> , s!stack!pop
01:48:32 <elliott> , s!stack!push (s!rtop!val)
01:48:34 <elliott> ]
01:48:38 <elliott> , isADD instr |>
01:48:39 <elliott> Seq [ s!rtop <== s!rtop!val + s!stack!top
01:48:42 <elliott> , s!stack!pop
01:48:44 <elliott> ]
01:48:45 <elliott> , isMUL instr |>
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:48:52 <elliott> , s!stack!pop
01:48:53 <elliott> ]
01:48:55 <elliott> , s!code!pop
01:48:57 <elliott> , Tick
01:49:00 <elliott> ]
01:49:01 <elliott> ]
01:49:03 <elliott> see, easy
01:49:07 <elliott> also long, whoops
01:49:16 <BeedaWeeda> spammer
01:49:23 <elliott> child molester _and_ a spammer?
01:49:26 <elliott> these accusations.
01:49:30 <BeedaWeeda> reporting to server ops
01:49:35 <BeedaWeeda> ban
01:49:49 <elliott> im sure
01:50:41 <CakeProphet> > fmap (const 4) ((,) 3)
01:50:42 <lambdabot> Overlapping instances for GHC.Show.Show (b -> t)
01:50:42 <lambdabot> arising from a use of `...
01:51:08 <CakeProphet> :t fmap
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:11 <elliott> whcih is SOOO BORING
01:51:15 <elliott> well
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:51:43 <CakeProphet> fmap fst (1,2)
01:51:53 <CakeProphet> > fmap (+1) (1,2)
01:51:54 <Patashu> > fmap fst (1,2)
01:51:54 <lambdabot> (1,3)
01:51:55 <lambdabot> (1,2)
01:52:01 <elliott> wtf
01:52:02 <elliott> :t fmap fst
01:52:03 <lambdabot> forall a b (f :: * -> *). (Functor f) => f (a, b) -> f a
01:52:04 <Patashu> lol
01:52:13 <elliott> :t fmap fst (?x,?y)
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 <Vorpal> probably only SRAM
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:28 <lambdabot> (0,9)
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:36 <lambdabot> against inferred type ...
01:52:38 <Vorpal> at least not on usual FPGAs
01:52:39 <elliott> grr
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:52:56 <CakeProphet> > fmap show (1,2)
01:52:57 <lambdabot> (1,"2")
01:53:03 <Vorpal> not proper SRAM
01:53:07 <elliott> Vorpal: well sure registers are the same thing as ram
01:53:08 <elliott> obviously
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:46 <elliott> yes but this is minecraft
01:54:52 <elliott> register style ram is all you can do
01:54:53 <elliott> :P
01:55:00 <Vorpal> pikhq, oh right
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:31 <elliott> pikhq made that
01:55:34 <elliott> apparently his is actually usable though
01:55:39 <elliott> rather than the one on the wiki
01:55:41 <Vorpal> heh
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:55:53 <pikhq> It's clocked!
01:56:00 <Vorpal> pikhq, how?
01:56:53 <pikhq> Signals coming into the delay line are anded with a clock. :P
01:57:01 <CakeProphet> is minecraft a hamster?
01:57:32 <Patashu> what is a 'delay line'? time multiplexing?
01:57:46 <CakeProphet> it is a line that is delayed...
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:29 <elliott> LOOK AT MY URL POWER
02:00:30 <pikhq> (reading = easy, writing = motherfucking PAIN)
02:00:35 <elliott> pikhq: An infinite tape? :P
02:00:38 <Patashu> lol OH NO
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:07 <Patashu> if it's in multiplayer
02:04:11 <Patashu> you can have more people load in every chunk
02:10:34 <elliott> More spam time:
02:10:35 <elliott> add4
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:10:58 <elliott> (t3, t7, t10, t14)
02:11:00 <elliott> -> (t4, t8, t11, t15)
02:11:02 <elliott> -> t5
02:11:04 <elliott> -> ((t, Bit, Bit, Bit), t12)
02:11:09 <elliott> -> Gen ()
02:11:11 <elliott> good type for an adder
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:12:23 <elliott> as in
02:12:24 <elliott> umm
02:12:25 <elliott> generalisations
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:13:44 <elliott> Which exists, heh.
02:32:13 <elliott> :t showIntAtBase
02:32:13 <lambdabot> forall a. (Integral a) => a -> (Int -> Char) -> a -> String -> String
02:32:36 <elliott> > showIntAtBase 2 ("OI"!!) 99 ""
02:32:37 <lambdabot> "IIOOOII"
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:32:55 <lambdabot> against inferred ty...
02:33:10 <elliott> > foldr (\x r -> x : " (" ++ r ++ ")") "" (showIntAtBase 2 ("OI"!!) 99 "")
02:33:12 <lambdabot> "I (I (O (O (O (I (I ()))))))"
02:33:16 <elliott> > foldr (\x r -> x : " (" ++ r ++ ")") "Z" (showIntAtBase 2 ("OI"!!) 99 "")
02:33:18 <lambdabot> "I (I (O (O (O (I (I (Z)))))))"
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:33:51 <CakeProphet> elliott: line noise.
02:33:52 <CakeProphet> :P
02:33:59 <elliott> what part of it?
02:34:01 <elliott> that whole function is trivial to read
02:34:11 <CakeProphet> oh it's trivial to read.
02:34:21 <CakeProphet> I'm just saying it looks like line noise.
02:34:34 <elliott> no it doesn't :)
02:35:13 <CakeProphet> line noise with some words thrown in. 4 of them to be exact.
02:35:20 <CakeProphet> er, 5...
02:35:40 <elliott> let, type, show, fold(right), int, at, base
02:35:50 <elliott> that's six to eight words
02:36:00 <CakeProphet> I was counting showIntAtBase as one.
02:36:07 <elliott> cheater :)
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:43 <CakeProphet> elliott: oh hey, I forgot in
02:38:49 <elliott> *Redsynth.Vec Data.List Numeric> n128
02:38:49 <elliott> N1
02:38:49 <elliott> no...
02:39:17 <elliott> huh, it is broken
02:39:17 <CakeProphet> that is 6 words by the CakeProphetian anti-line-noise quantification metric.
02:39:33 <elliott> what the fuck...
02:39:42 <CakeProphet> are you writing a synthesizer?
02:39:48 <pikhq> We've already estabilished that the CakeProphetian metrics have negative value.
02:40:05 <elliott> CakeProphet: Yes.
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:45 <CakeProphet> filters = good synthesis.
02:40:49 <elliott> CakeProphet: Why would I use a filter for synthesising?
02:41:01 <CakeProphet> because they produce rich timbres.
02:41:20 <CakeProphet> whereas additive synthesis is tedious, time-consuming trial-and-erorr
02:41:26 <CakeProphet> lol *error
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:41:52 <elliott> Do you know a better way?
02:42:44 <elliott> CakeProphet: ?
02:44:09 <CakeProphet> nope. but filters are good. That is all.
02:44:24 <CakeProphet> but I will eat my newly acquired Cap'n Crunch and ponder this.
02:44:41 <elliott> CakeProphet: Ponder what?
02:45:04 <CakeProphet> different synthesis techniques.
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:14 <elliott> Oh, redstone. Why?
02:46:27 <CakeProphet> ...wat
02:46:38 <elliott> I don't believe I said anything about /sound/ synthesis.
02:46:47 <CakeProphet> ... -_-
02:46:49 <Patashu> LOL
02:46:54 * Patashu rimshot
02:47:20 <CakeProphet> assholes.
02:48:13 <elliott> that was great
02:49:07 <CakeProphet> elliott: nope, I will never teach you how to filter good-sounding redstone.
02:49:24 <elliott> OH NOES
02:49:44 <CakeProphet> you will be left in the dark forever, as I am the only source of information on this subject.
02:50:49 <elliott> :D
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:40 <elliott> Not savings account.
02:52:42 <elliott> What is it called.
02:52:43 <elliott> Argh.
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 <CakeProphet> ...oh god, that was horrible.
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:54:00 <BeedaWeeda> which he ordered to his moms house
02:55:21 * BeedaWeeda chuckles
02:55:25 <elliott> begin
02:55:26 <elliott> w1_0 <= '1';
02:55:26 <elliott> w3_0 <= '0';
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:26 <elliott> x <= w0_0;
02:55:28 <elliott> end structural;
02:55:30 <elliott> 23,1 Bot
02:55:32 <elliott> Vorpal: What does this even mean.
02:55:42 <CakeProphet> what language is that
02:55:46 <Vorpal> elliott, that looks generated
02:55:55 <elliott> Vorpal: Yes, it is.
02:55:56 <elliott> CakeProphet: VHDL.
02:56:02 <elliott> Vorpal: I did
02:56:02 <elliott> Prelude Lava> writeVHDL "Yeah" (let x = delayBit high (delayBit low x) in x) (name "x")
02:56:05 <elliott> not expecting it to work.
02:56:12 <BeedaWeeda> UFO's have feelings too y'know
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:56:59 <Vorpal> elliott, okay...
02:57:01 <elliott> CakeProphet: Durr
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:17 <CakeProphet> this is all new to me.
02:57:19 <elliott> [[
02:57:20 <elliott> entity Yeah is port (
02:57:20 <elliott> x : out std_logic;
02:57:20 <elliott> clock : in std_logic
02:57:20 <elliott> );
02:57:20 <elliott> end entity Yeah;
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:24 <elliott> signal w1_0,
02:57:25 <elliott> w3_0,
02:57:27 <elliott> w2_0,
02:57:29 <elliott> w0_0 : std_logic;
02:57:31 <elliott> attribute INIT: string;
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:39 <elliott> ]]
02:57:40 <Vorpal> from some vendor specific library iirc
02:57:41 <elliott> Spam, but eh
02:57:43 <elliott> That's what's above that
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:49 <elliott> Vorpal: Xilinx, yeah
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:07 <Vorpal> but nothing else
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
02:59:56 <Vorpal> hm
03:00:02 <Vorpal> oh yeah I had a savings account
03:00:03 <Vorpal> right
03:00:13 <elliott> Well you can't get bank accounts when you're ten here or presumably in the US
03:00:17 <elliott> I don't think
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:03:12 <CakeProphet> yes, it's pretty much negligible.
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:14 <elliott> (True bits, as always.)
03:14:18 <elliott> (As in: not std_logic.)
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:14:45 <Vorpal> for your application
03:14:49 <Vorpal> now, night →
03:15:18 <elliott> Vorpal: >:(
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:02 <elliott> Vorpal: Why >:(
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:23 <Vorpal> not low works too
03:16:45 <elliott> Vorpal: Blargh, fine :P
03:16:48 <Vorpal> elliott, but representing high as 1 is common
03:16:49 <elliott> What about "zero" and "one"?
03:16:53 <elliott> Are those ok?
03:16:57 <Vorpal> elliott, look at an std_logic array in vhdl
03:17:06 <quintopia> elliott: use -0.5 and 0.5
03:17:10 <Vorpal> "10001" as std_logic
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:39 <elliott> Yes, I understand.
03:17:58 <Vorpal>
03:17:58 <elliott> Vorpal: Ha, but wait, my simulation returns [Bool] :P
03:18:00 <elliott> And so does Lava's.
03:18:20 <elliott> instance Show Bit where
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:04 <CakeProphet> elliott: oh really?
03:51:20 <CakeProphet> I will remember that?
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:52:56 <elliott> For instance.
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:02:57 <elliott> :)
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:13 <DocHerrings> I am - everything is in terms of 8 bits.
04:05:27 <elliott> Right
04:05:28 <elliott> .
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:11 <DocHerrings> Blah. I need to rethink this.
04:08:44 <DocHerrings> Just desperately trying to avoid something resembling BF, as usual.
04:09:42 <monqy> a noble goal
04:12:34 <elliott> hmm, this is a pain
04:12:37 <elliott> deep thoughts w/ elliott
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:05 <elliott> DocHerrings: p = bit?
04:15:23 <DocHerrings> elliott: Oh lord I need to sleep.
04:15:38 <elliott> :)
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:15:52 <elliott> i blame you
04:16:24 <monqy> sometimes im tired but then i sleep and everything is better
04:16:31 <DocHerrings> I plead the 5th.
04:18:04 <elliott> monqy: its hard to sleep
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:16 <elliott> :(
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:12 <elliott> oh tell us tell us
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:48 <DocHerrings> It was beautiful
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:25 <elliott> and cry
04:21:51 <monqy> no i actually remembered that dream
04:21:53 <monqy> it was a wonderful dream
04:21:57 <elliott> what was it
04:22:00 <elliott> was it about death
04:22:02 <monqy> yes
04:22:07 <monqy> i died in it
04:22:07 <elliott> all the good dreams are
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:31:30 <elliott> theses are questions
04:32:30 <CakeProphet> an umber
04:33:13 -!- Slereah has joined.
04:40:46 <elliott> ?hoogle index
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:49 <elliott> ?hoogle indexOf
04:40:49 <lambdabot> No results found
04:40:54 <elliott> ?hoogle [a] -> a -> Int
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:42 <elliott> low
04:57:44 <elliott> HAHA VORPAL
04:57:45 <elliott> IT DOES IT
04:57:46 <elliott> IT DOES
04:57:48 <elliott> HAAHAHAHAHAHAHAHAHAH
04:57:49 <elliott> WELL SORT OF
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:06:48 <elliott> oh no my REp;TUATION
05:14:04 -!- Lymia has changed nick to Lymee.
05:34:08 <CakeProphet> so I wonder what >λ= does.
05:35:01 <quintopia> лол
05:35:02 <monqy> what does >λ= do?
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 <CakeProphet> :t (/)
05:52:08 <lambdabot> forall a. (Fractional a) => a -> a -> a
05:52:57 <CakeProphet> (Fractional a, Num b) => b -> b -> a
05:53:00 <CakeProphet> would be swanky.
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:06 <CakeProphet> right,
05:54:12 <CakeProphet> > 3 / 3
05:54:13 <lambdabot> 1.0
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:19:50 <elliott> livin' the stupid life
06:20:21 <CakeProphet> > > > > > > > > > >
06:20:22 <lambdabot> <no location info>: parse error on input `>'
06:20:53 <CakeProphet> > 3 > 4 < 4 > 3
06:20:54 <lambdabot> Precedence parsing error
06:20:54 <lambdabot> cannot mix `GHC.Classes.>' [infix 4] and `GHC...
06:20:55 <elliott> wait, what...................
06:21:37 <elliott> argh, this is a stoopid
06:22:41 <CakeProphet> no u.
06:22:48 <CakeProphet> u stoopuid
06:27:46 <elliott> CakeProphet: ur terible
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:30 <quintopia> i wouldn't recommend that elliott
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:37:49 <Sgeo_> Oh, huh
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:40 <oerjan> fizzie:
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:53 <elliott> Yeah.
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:29 <elliott> (FSVO great)
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:49:56 <oerjan> wait what
06:49:59 <coppro> elliott: yes
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:07 <quintopia> but Deewiant!
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:25 <monqy> :'(
06:51:27 <quintopia> how depressing!
06:51:30 <monqy> i'd cry
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:01 <pikhq> Too.
06:52:13 <elliott> i can set up justinbieber.domainname.com
06:52:15 <Deewiant> #esoteric-voxelperfect
06:52:15 <elliott> doesnt mean im justin bieber
06:52:16 <elliott> (yes it does)
06:52:23 <quintopia> and it is called esoteric wiki
06:52:28 <elliott> no, it's called Esolang
06:52:38 <quintopia> well you know what
06:52:47 <quintopia> i'd be okay with #esolang
06:52:55 * quintopia shrugs
06:53:14 <olsner> #esolang? that's ugly
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:24 <elliott> pic for freenode.
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:54:58 <elliott> That's pretty generic :P
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:28 <Sgeo_> ..?
07:00:36 <monqy> Creation Science Evangelism
07:00:45 <Patashu> # has 32 people in it
07:00:45 <pikhq> *wince*
07:00:48 <elliott> common subexpression elimination
07:01:01 <Sgeo_> 33
07:01:09 <elliott> what
07:01:10 <Patashu> ### unable to join channel (invite only)
07:01:11 <Patashu> NOOOOOOO
07:01:14 <monqy> :'(
07:01:15 <elliott> heh
07:01:35 <elliott> OH GODDAMMIT YORK LAVA ILL EAT YOUR SOUL AND TEAR OUT YOUR ENTRAIL
07:01:37 <elliott> s
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> {-# NOINLINE ref #-}
07:05:25 <elliott> ref = newRef outSigs Nothing
07:05:29 <elliott> NO YORK LAVA WHY
07:05:33 <elliott> -- Use of unsafePerformIO to implement Observable Sharing
07:05:33 <elliott> {-# NOINLINE newRef #-}
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:05:40 <elliott> I HATE YOU
07:06:15 <pikhq> ... What the *fuck*.
07:06:23 <elliott> what
07:06:40 <pikhq> unsafePerformIO . newIORef
07:06:43 <pikhq> The fuck.
07:06:46 <elliott> uhh
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> where sum' = a <#> b
07:12:24 <elliott> sum = xorcy (sum', cin)
07:12:24 <elliott> cout = muxcy sum' (a, cin)
07:12:29 <elliott> noooooooooooOOOOOooooooooOOooooOOooooooooooOOoooooooooOOOOOoooooooOOOOOOOOooooooooOOOOOOOOOOooooooooOOOOOOOOOoooooOOOOOOOOOooooOOOOOoooOOO
07:12:40 <monqy> who what
07:12:44 <Patashu> what am I looking at
07:13:38 <elliott> nooo its using
07:13:39 <elliott> sharing
07:13:40 <elliott> thing
07:13:40 <elliott> so
07:13:43 <elliott> its
07:13:44 <elliott> like
07:13:48 <elliott> if ghc inlines sum'
07:13:50 <elliott> it will break i think
07:13:51 <elliott> :(
07:13:52 <elliott> i mean
07:13:57 <elliott> yeah i could like
07:13:59 <elliott> cse mylesf
07:13:59 <elliott> but like
07:14:00 <elliott> ffffff
07:14:03 <elliott> why internet is like wtf
07:14:08 <Patashu> calm down
07:14:12 <monqy> haha cse
07:14:22 <elliott> Patashu: why hdl is like wtf :(
07:15:05 <oerjan> `wtf hdl
07:15:07 <HackEgo> why hdl is like wtf
07:15:19 <pikhq> ... Waitwaitwait, it's relying on GHC's *precise* inlining semantics to work right?
07:15:26 <pikhq> :(
07:15:40 <elliott> well hmm...............................................
07:15:46 <elliott> oerjan: yes good
07:15:55 <elliott> `quote like wtf
07:15:57 <HackEgo> 131) <fungot> alise: why internet is like wtf
07:15:59 <elliott> still best thing ever said
07:16:41 <pikhq> ♥ fungot
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:43 <elliott> synchronicity
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:18:25 <elliott> no that was after
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:26:12 <oerjan> astrowaiting
07:27:55 <olsner> oerjan: why is åke sick? http://www.youtube.com/watch?v=xltu4RW8Whw
07:28:03 <elliott> IM CARBON DIOXIDE MASTER
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:33 <Patashu> check task manager then
07:30:43 <elliott> carbon bioxide
07:30:48 <elliott> oerjan: lol who uses avg
07:30:59 <oerjan> elliott: it came with the laptop
07:31:04 <elliott> lol who uses laptops
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:27 <Phantom_Hoover> And c) it's clearly false?
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:12 <Phantom_Hoover> elliott, sure, but it's easy to refute.
07:32:42 <quintopia> indeed
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:44:23 <oerjan> argh
07:44:27 <elliott> xD
07:44:30 <elliott> A+ opping
07:45:08 -!- oerjan has set channel mode: -b *!unaffiliat@*.
07:45:12 <oerjan> wtf
07:45:34 <oerjan> hm something wrong
07:45:37 <olsner> haha, wtf
07:45:46 <Deewiant> /mode #esoteric +b foo!bar@baz
07:45:49 <oerjan> ah
07:46:04 -!- oerjan has set channel mode: +b *!*@unaffiliated/beedaweeda.
07:46:13 <oerjan> STUPEED SYNTACS
07:46:37 <CakeProphet> lol
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:46:59 <elliott> EVER
07:47:49 -!- oerjan has set channel mode: +b BeedaWeeda!~port72.c@50.8.174.*.
07:48:02 <oerjan> something like that
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:18 <oerjan> hm...
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:09 <Patashu> we have ops here?
07:52:16 <elliott> :D
07:52:18 <elliott> you wouldn't know it
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:52:57 <elliott> [asterisk]that prefix
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:53:56 <oerjan> dammit
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:01 <pikhq> :)
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:35 <elliott> Yeah yeah, shut up
07:56:39 <elliott> Host Name:50-8-174-68.sfo.clearwire-wmx.net
07:56:39 <elliott> IP Address:50.8.174.68
07:56:39 <elliott> Country:
07:56:45 <elliott> Hmm, why's GeoIP failing
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> $ geoiplookup 50.8.174.68
07:57:26 <Deewiant> GeoIP Country Edition: US, United States
07:57:28 <elliott> pikhq: hi prescriptivist
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:17 <oerjan> *as an
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:22 <coppro> pikhq: damn
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:28 <CakeProphet> oerjan: no reason
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:32 <coppro> pikhq: hrm
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:34 <Phantom_Hoover> <elliott> Hmm, why's GeoIP failing
08:04:35 <Sgeo_> pikhq, while you're at it, run rm -rf / on the universe. Seems gentler than coppro's solution
08:04:43 <Phantom_Hoover> BeedaWeeda is on a UFO.
08:04:50 <pikhq> Sgeo_: Meh.
08:05:22 <elliott> Phantom_Hoover: :D
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:36 <elliott> see "tee"
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:08 <pikhq> Yes.
08:08:11 <elliott> oh hey
08:08:13 <elliott> netlists are blimps
08:08:13 <elliott> :D
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:40 <Patashu> Aaah
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:20 <elliott> Well
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:14:47 <elliott> accent-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:49 <elliott> THERE ARE: ENOUGH
08:15:50 <coppro> actors can just redo the take
08:15:57 <elliott> coppro: just redo ur life
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:14 <elliott> coppro: lol yes and no
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:38 <coppro> ... ah
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:05 <elliott> ITS NOT EVEN A FORK
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:18:36 <elliott> can i plz
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:20:44 <Deewiant> .... fine
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:48 <elliott> um its dataflow isnt it
08:27:56 <elliott> http://upload.wikimedia.org/wikipedia/en/3/3c/Yahoo_Pipes_screenshot.png
08:27:56 <elliott> yeah
08:27:58 <elliott> so not imperative
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> class MuRef a where
08:29:47 <elliott> type DeRef a :: * -> *
08:29:47 <elliott> mapDeRef :: (Applicative f)
08:29:49 <elliott> => (forall b .
08:29:51 <elliott> ( MuRef b
08:29:53 <elliott> , Typeable b
08:29:55 <elliott> , DeRef a ~ DeRef b
08:29:57 <elliott> ) => b -> f u)
08:29:59 <elliott> -> a
08:30:01 <elliott> -> f (DeRef a u
08:30:03 <elliott> )
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:30:47 <pikhq> >:D
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:14 <oerjan> "painfully."
08:35:25 <Patashu> I suspect so
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:35:54 <Patashu> So 30 seconds per tick?
08:35:55 <Patashu> Sounds good to me
08:36:00 <elliott> <pikhq> elliott: You should call this Minecraft Lava.
08:36:01 <elliott> :D
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:06 <elliott> Don't repeaters work?
08:36:12 <elliott> Yeah
08:36:19 <elliott> Well, I just have to account for that during synthesis
08:36:21 <Patashu> yeah but
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:25 <elliott> Heh.
08:38:27 <elliott> I dunno.
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:38:59 <elliott> \ x -> (1,[1..x])
08:39:01 <elliott> gives the same result as
08:39:03 <elliott> \ x -> (1,x)
08:39:07 <elliott> when x is bound to an exception-raising thunk.
08:39:09 <elliott> haha WOW
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> MuRef b, Typeable b,
08:40:21 <elliott> DeRef a ~ DeRef (a -> b),
08:40:21 <elliott> DeRef b ~ DeRef (a -> b) )
08:40:21 <elliott> => MuRef (a -> b) where
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:42:34 <Patashu> aaah
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:11 <Patashu> Mmm, abstraction
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:35 <elliott> hi ais523
09:30:47 <ais523> hi elliott
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:12 <ais523> consistently
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:17 <elliott> thx
09:31:30 <ais523> elliott: heh
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> class MuRef a where
09:32:23 <elliott> mapDeRef ::
09:32:23 <elliott> Applicative f =>
09:32:23 <elliott> (forall b. (MuRef b, DeRef a ~ DeRef b) => b -> f u)
09:32:23 <elliott> -> a
09:32:24 <elliott> -> f (DeRef a u)
09:32:27 <elliott> seriously. that signature.
09:33:45 <elliott> anyway,
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:33:48 <elliott> (ob,cb) = fulladd b f ca
09:33:48 <elliott> (oc,cc) = fulladd c g cb
09:33:48 <elliott> (od,cd) = fulladd d h cc
09:33:51 <elliott> woop woop
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:34:54 <ais523> heh
09:35:00 <ais523> what are you going to call it?
09:35:09 <elliott> hexham lava
09:35:21 <ais523> :)
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:09 <elliott> i shouldn't have been
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:35 <ais523> ah, OK
09:36:38 <elliott> and I'm putting you down in my book as an exceptionally bad stalker
09:36:42 <ais523> heh
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:18 * elliott EYES SUSPICIOUSLY......
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:37:52 <elliott> yeah
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:07 <elliott> where n = a `xor` b
09:38:09 <elliott> from
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:38:47 <ais523> well done
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:34 <ais523> I suppose so
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:05 <elliott> nobody likes IO
09:40:17 <elliott> it is literally State RealWorld :P
09:40:25 <elliott> it's a big ol' heap
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:46:39 <Deewiant> Don't do that.
09:46:41 <elliott> TO BE PRECISE.
09:47:03 <elliott> Deewiant: Have you got any other prescriptivist-pedant requests to make? (would you like fries with that?)
09:47:38 <Deewiant> Not right now.
09:47:46 <elliott> Duly noted.
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:51:59 <elliott> :p
09:52:09 <elliott> York Lava: literally god?
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:19 <ais523> aha
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:12 <elliott> How's it inefficient
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 <ais523> *than 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:20 <elliott> Heh
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:01:51 <elliott> 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:12:01 <elliott> badly?
10:12:12 <Deewiant> 0 < 1
10:14:05 <elliott> Deewiant: no that s wrong
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:16:24 <elliott> you are an scholars...
10:17:30 <elliott> god dammit ghc
10:17:34 <elliott> i turned on scoped type variables
10:17:36 <elliott> scope'em
10:17:52 <Deewiant> Your question provided no context to assume rhetoricalness so I answered it
10:18:42 <elliott> it wasnt rhetorical
10:18:47 <elliott> that was sincere thanks, i cant handle binary right now
10:18:49 <elliott> too many numbers
10:19:12 <Deewiant> heh
10:31:26 <elliott> ?ty foldl
10:31:27 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> a
10:31:30 <elliott> good
10:33:26 <cheater_> why don't you want to work with squid 2, google instant?
10:33:37 <cheater_> why?
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:17 <Patashu> hah
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:10:21 <Patashu> column noise :D
11:27:07 <elliott> qwer
11:31:18 <oklopol> xD
11:31:49 <elliott> oklopol how does a flower
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> Tim Bednar 8 years ago
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:14 <elliott> PREDICTOR
12:40:14 <elliott> Joe Keane
12:40:14 <elliott> CHALLENGER
12:40:14 <elliott> Nick Damiano
12:40:14 <elliott> STAKES $1,000
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:16 <Deewiant> heh
12:41:28 <Deewiant> At least they're thorough
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:07 <elliott> ais523: :slowpoke:
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:46:54 <elliott> I can slowpoke ANYONE.
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:23 <elliott> no
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:30:25 <elliott> oh right
13:30:27 <elliott> its little-endian
13:31:12 <Deewiant> Gross
13:34:54 <elliott> Deewiant: what
13:35:02 <elliott> Deewiant: little endian is the best
13:35:33 <Deewiant> Why
13:35:56 <elliott> Deewiant: downcasting is nop
13:36:14 <elliott> also, it's the obvious ADT expression of binary :)
13:36:56 <Deewiant> Fair enough
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:16 <elliott> It's not "I/O" :P
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:33 <elliott> (ob,cb) = fulladd b f ca
13:38:33 <elliott> (oc,cc) = fulladd c g cb
13:38:33 <elliott> (od,cd) = fulladd d h cc
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:35 <Deewiant> Or Int -> if you prefer
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:29 <Deewiant> You found a Vec library? :-P
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:30 <Deewiant> Ugly compiler flags?
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:23 <elliott> Or whatever it was
13:44:34 <Deewiant> Ah, heh
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:16 <elliott> Vorpal: Nice :P
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:46:57 <elliott> SOC?
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:00 <Deewiant> Hence only fish
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?
13:52:57 <Deewiant> Perch
13:53:08 <Deewiant> (fi:ahven)
13:53:27 <Vorpal> oh sv:abborre
13:53:32 <Vorpal> right
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:25:59 <ais523> I know I don't
14:26:09 <ais523> I wouldn't be able to tell one from another random species of fish I didn't know
14:26:47 <elliott> GOD DAMMIT HASKELL
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:08 <elliott> IN EVERY
14:27:09 <elliott> SINGLE
14:27:10 <elliott> FUCKING
14:27:11 <elliott> FUNCTION
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:16 <ais523> it's, umm, an esolang
14:34:23 <ais523> intended for writing compilers
14:34:38 <elliott> <ais523> it's, umm, an esolang
14:34:40 <elliott> never a good line to hear
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:03 <elliott> :D
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:35:56 <ais523> heh
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:10 <elliott> heh
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:25 <elliott> that's all your languages
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:12 <ais523> yep
14:39:14 <ais523> it had goto
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:31 <ais523> yep
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:29 <elliott> s/"-/" -/
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:51 <elliott> ais523: No :P
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:42:45 <elliott> see, I fixed it
14:42:56 <ais523> yes, that's worse
14:43:05 <elliott> you misspelled better
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:43 <elliott> ais523: that exact name?
14:46:54 <ais523> err, I didn't actually name them that
14:47:01 <elliott> GO RECTIFY 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:20 <elliott> Which seems Wrong
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:38 <elliott> heh
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:25 <ais523> ripple carry? so slow
14:50:31 <ais523> although at least it's easy
14:50:33 <elliott> ais523: So small
14:50:53 <elliott> ais523: Remember, my electronics have very limited size :P
14:50:57 <ais523> yep
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
14:58:50 * ais523 runs
15:07:05 <elliott> ais523: :D
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:26 <ais523> lsb is 0
15:09:35 <elliott> ais523: so little
15:09:40 <elliott> orw ait no
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:18 <ais523> yep
15:10:21 <elliott> wait
15:10:22 <elliott> srsly?
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:11:13 <elliott> where else would they fit
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:31 <elliott> good idea y/n
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:12:53 <elliott> yes but i'm not vhdl :)
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:13 <elliott> hahaha no
15:13:23 <elliott> floats in minecraft LMAO i want to make an fpu now
15:13:25 <elliott> the most useless fpu.
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:48 <elliott> ais523: but seriously
15:20:57 <elliott> LITTLE OR BIG ENDIAN i need to know what opinion you have so i can correct it
15:21:05 <ais523> heh
15:21:06 <Deewiant> Middle endian
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:27 <elliott> big endian = not that
15:21:31 <elliott> xeightsix is little
15:21:34 <elliott> sparc is big
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:46 <elliott> wait, sparc is bi-endian
15:21:47 <elliott> lol
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:27:06 <Deewiant> Yes
15:27:09 <elliott> Thank god
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:25 <elliott> Gregor: Heh
15:30:26 <elliott> ...
15:30:27 <elliott> ais523: Heh
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:33:37 <lifthrasiir> s/f$//
15:34:56 <elliott> as in "one hundred" => ...?
15:35:12 <Deewiant> Yep
15:35:39 <lifthrasiir> yes
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:05 <Gregor> <-- winner
16:04:37 <monqy> how did that happen
16:09:53 <elliott> <monqy> when a boy type loves a girl type very much
16:09:54 <elliott> but my types arent class
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:52:50 <elliott> s
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:28 <elliott> well the cool part
17:55:32 <elliott> is the NatCase thing
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 (x :+> _) Z = x
17:55:52 <elliott> vat (_ :+> xs) (S n) = xs `vat` n
17:55:53 <elliott> -->
17:55:58 <elliott> Redsynth/Vec.hs:39:27:
17:55:58 <elliott> Could not deduce (LT n2 n1) arising from a use of `vat'
17:55:58 <elliott> from the context (LT i n)
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:03 <elliott> blah blah blah
17:56:20 <copumpkin> http://hpaste.org/41453/foldl_on_vec?pid=41453&lang_41453=haskell
17:56:28 <elliott> > class Nat n where
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:30 <elliott> coq flashback
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 :)
17:59:35 <elliott> copumpkin:
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:36 <copumpkin> spit out? nope :/
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:01:42 <copumpkin> oh, sure
18:02:13 <elliott> data NatCase where IsZero :: Z -> NatCase; IsSucc :: (n ~ S p, Nat p) => n -> p -> NatCase
18:02:14 <elliott> Or something
18:02:18 <elliott> Hmm
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:02:39 <copumpkin> :P
18:02:51 <copumpkin> then use induction
18:03:03 <elliott> coppro: Yeah yeah, but that's just the GADT solution all over again
18:03:09 <elliott> Although I suppose
18:03:10 <elliott> data NatCase n where
18:03:10 <elliott> IsZ :: (n ~ Z) => NatCase n
18:03:10 <elliott> IsS :: (n ~ S p, Nat p) => p -> NatCase n
18:03:12 <elliott> is too, just in disguise
18:03:16 <elliott> Although it's not
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:04:11 <elliott> value n =
18:04:11 <elliott> case natCase n of
18:04:11 <elliott> IsZ -> 0
18:04:11 <elliott> IsS n -> value n + 1
18:04:46 <Phantom_Hoover> <elliott> IsZ :: (n ~ Z) => NatCase n
18:04:58 <Phantom_Hoover> Onto another project already?
18:05:04 <elliott> What?
18:05:30 <Phantom_Hoover> Is that for the synthesiser or...?
18:05:44 <elliott> Yes.
18:06:26 <copumpkin> elliott: now you need finite sets
18:06:35 <elliott> copumpkin: Why?
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:44 <elliott> If it works
18:07:58 <copumpkin> LT on type nats is a horrible hack that relies on weird behavior
18:08:10 <elliott> It's... just a typeclass
18:08:16 <copumpkin> you have it?
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:08:54 <copumpkin> how do you write 0 < 5 with that?
18:09:14 <Deewiant> Z `LT` S$S$S$S$S Z
18:09:22 <elliott> Thanks Deewi
18:09:22 <copumpkin> I mean, prove
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:37 <copumpkin> instances are proofs
18:09:38 <copumpkin> my point
18:09:44 <copumpkin> is that those instances don't cover 0 < 5
18:09:58 <elliott> Yes... yes it does.
18:10:02 <elliott> <elliott> instance (N n) => Z `LT` S n
18:10:09 <copumpkin> oh, okay
18:10:21 <copumpkin> fair enough then :)
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:27 <Phantom_Hoover> elliott, so wait, how did you end up down this route?
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:05 <Phantom_Hoover> How do you define N?
18:12:26 <elliott> ...
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:12:39 <Phantom_Hoover> That'd be nice.
18:12:50 <Phantom_Hoover> None of it at all?
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:23 <elliott> copumpkin: Yeah yeah :)
18:13:34 <copumpkin> I warn you
18:13:36 <elliott> copumpkin: I just feel this little twinge in my heart every time I deviate from York Lava
18:13:39 <copumpkin> this way lie many proofs
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:01 <elliott> O'course
18:15:06 <elliott> And all I'm tryina' do is generalise tuples :(
18:15:10 <copumpkin> aw
18:15:12 <elliott> Doubt GHC likes thirty-two element tuples
18:15:26 <copumpkin> oh, homogeneous?
18:15:46 <copumpkin> otherwise you can bury yourself deeper and go for heterogeneous vector-like things
18:15:52 <copumpkin> indexing into those is fun
18:16:11 <elliott> Homogeneous, yes
18:16:16 <elliott> I'm writing an HDL
18:16:22 <copumpkin> HDL?
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:18:58 <copumpkin> ah
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:20:44 <copumpkin> :O
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:02 <elliott> That does not count
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:33 <elliott> copumpkin: proofs.jpg
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> foo Z z _ = z
18:24:40 <elliott> foo (S n) _ f = f n
18:24:40 <elliott> noxs :: (N n) => Nat n -> (forall p. (p ~ S n, N p) => Nat p -> r) -> r
18:24:40 <elliott> noxs n f = f (S n)
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:19 <copumpkin> :)
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:25:44 <elliott> Woot
18:25:46 <elliott> Nooot
18:25:54 <copumpkin> that isn't the same though
18:26:18 <copumpkin> oh, you're reusing variables
18:27:19 <elliott> no im just expanding their names with more os
18:27:34 <elliott> *Redsynth.Nat> :t nooot
18:27:34 <elliott> nooot :: N n => Nat n -> Nat n
18:27:35 <elliott> heh oops
18:27:37 <elliott> copumpkin: ur rite
18:28:08 <elliott> nooot :: Nat n -> (forall p. (p ~ n, N p) => Nat p)
18:28:09 <elliott> there
18:28:17 <elliott> ugh what
18:28:22 <elliott> it got turned into
18:28:24 <elliott> nooot :: N n => Nat n -> Nat n
18:28:25 <elliott> again
18:28:37 <elliott> monomorphism restrction??
18:28:46 <elliott> nope
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:34:38 <copumpkin> ah
18:34:43 <copumpkin> just use a real language
18:34:45 <copumpkin> like agda!
18:35:18 <elliott> copumpkin: yes definitely
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:35:57 <copumpkin> boo
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:17 <elliott> I'm not a bad person!
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:38:15 <elliott> Yes.
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:05 <copumpkin> not really
18:45:12 <elliott> What type would f9 have then
18:45:15 <copumpkin> zero :: Fin (S n)
18:45:19 <elliott> Oh, Fin (S (S (S (S (S (S (S N)))))))))))))))))))000000000000000
18:45:20 <copumpkin> one :: Fin (S (S n))
18:45:20 <elliott> right
18:45:24 <copumpkin> :)
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:53 <oerjan> > 2 `2` 2
18:52:54 <lambdabot> <no location info>: parse error on input `2'
18:53:02 <ais523> boring
18:53:13 <ais523> > 2 `(+)` 2
18:53:14 <lambdabot> <no location info>: parse error on input `('
18:53:15 <ais523> also boring
18:53:21 <oerjan> oh wait that wasn't what elliott meant with binary literals
18:53:31 <elliott> oerjan: ?
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:38 <copumpkin> elliott: oh sorry, doing work
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:04 <cheater_> and define code with it
18:57:11 <elliott> could you make a horse that's the sky
18:57:17 <cheater_> and embed something in C++
18:57:33 <cheater_> elliott, yes
19:04:04 <quintopia> elliott: pancreas
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:54:11 <Sgeo_> <3 "Frost"
22:59:51 <Phantom_Hoover> The Homestuck track?
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:01:36 <Phantom_Hoover> Yaaaaaaay.
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:13:57 <Phantom_Hoover> You should probably do something about that.
23:14:18 <Sgeo_> I think it
23:14:23 <Sgeo_> 's fine
23:14:55 <olsner> hmm, I wonder what this bag from burger king is doing on my desk and what it might contain
23:16:45 <olsner> should I ... open it?
23:17:07 <zzo38> Yes open it carefully in case it smell too bad or something
23:17:41 <Sgeo_> itchy tickly
23:18:21 <olsner> itckly tichy
23:19:41 <Phantom_Hoover> Sgeo_ is going mad from an ear infection which spread.
23:19:46 <Phantom_Hoover> Soon he will die.
23:20:36 <Sgeo_> It's just H2O2
23:21:08 <Phantom_Hoover> Sgeo_
23:21:15 <cheater_> Sgeo_, do you have a perforated ear drum
23:21:16 <Phantom_Hoover> Why are you pouring peroxide in your ear
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:22 <Sgeo_> ...
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:00 <cheater_> try with the other ear
23:26:02 <cheater_> for comparison
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:27:44 <cheater_> ais523, what?
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:00 <Sgeo_> Yes
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:35 <ais523> yep
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:14 <olsner> pikhq: omg!!
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:33 <pikhq> WHY
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:15 <olsner> pikhq: orly?
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:40:28 <pikhq> Have fun. :)
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:37 <ais523> pikhq: indeed
23:43:49 <ais523> because I found it in the library
23:50:18 -!- cheater_ has joined.
23:53:31 * Phantom_Hoover → sleep
23:53:33 -!- Phantom_Hoover has quit (Quit: Leaving).
2011-07-09
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:09 <Gregor> ARRRRRRRRRRRRRGH
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:04 <Gregor> NOOOOOOOOOOOO
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:39:10 <EgoBot> b1def4
03:40:42 <ais523> !c printf("%p", malloc(4));
03:40:44 <EgoBot> 0x7fe8070ae010
03:40:51 <ais523> heh, 64-bit
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:53:50 <EgoBot> 8
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:01 <coppro> how?
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:57:54 <coppro> ah
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:08 <ais523> no, it's a guess
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:25 <ais523> fair enough
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:40 <pikhq> Gregor: Yeah.
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:13 <ais523> fair enough
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:03 <ais523> nor afterwards
04:22:11 <ais523> I get into VCS flamewars on occasion
04:22:23 <oerjan> ooooh
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:25:48 <zzo38> Yes!
04:25:49 <zzo38> No!
04:25:59 <oerjan> how indecisive
04:27:01 <zzo38> DO YOU WANT TO PLAY AGAIN? (PLEASE TYPE 'YES SIR!' OR 'NO SIR!')
04:27:37 <oerjan> 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:52:50 <oerjan> ok
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:05:46 <ais523> possibly with CAs
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:10:28 <fizzie> s/€/$/
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:00 <oerjan> `factor 209
05:17:03 <HackEgo> 209: 11 19
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:12:25 <fizzie> (Since 80386.)
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:24 <ais523> "contiguous"? boring
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:40 <fizzie> Seems to, yes.
06:32:59 <zzo38> So any CPU have a command to do Muxcomp (see the article in esolang wiki)?
06:33:04 <zzo38> s/So/Do/
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:42 <coppro> It does
07:58:46 <coppro> it might not be written yet, though
07:59:52 <quintopia> keyfuzz with kernel patch
07:59:57 <quintopia> :P
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:28:47 <coppro> pikhq: wha?
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>.
12:30:50 <cheater_> wat
12:36:58 <CakeProphet> I love that song.
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:33:07 <oklopol> no!
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:35:58 <oklopol> i was just thinking that
16:39:55 -!- Madk has joined.
16:40:16 <Madk> hello
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:09 <zzo38> What conjecture?
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:47:35 <oklopol> (for 1d ca)
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:53:37 <oklopol> SOUND GOOD?
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:55:09 <oklopol> sure i was jk
16:56:03 <oklopol> i mean the idea should work but i was jk with the sound good htings
16:56:04 <oklopol> *things
16:56:05 <oklopol> *thing
16:57:06 <zzo38> Are you good at pokemon card while blindfolded?
16:57:11 <oklopol> :P
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:22 <oklopol> yes
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:03:00 <Lymee> Even harder~
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:36 <Lymee> Meh.
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:17 <monqy> well are you
17:37:19 <oklopol> :o
17:37:23 <oklopol> what is it?!?
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:40:29 <zzo38> What is gtk2hs?
17:40:48 <cheater_> try guessing from the name
17:41:21 <cheater_> it's not that difficult
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:42:52 <oklopol> what does bery mean
17:43:01 <oklopol> is it 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:54:48 <cheater_> haha loser.
17:54:53 * cheater_ points and laughs
17:58:13 -!- aloril has quit (Ping timeout: 252 seconds).
17:59:11 <oklopol> BUT I WILL GET THERE
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:18:31 <cheater_> yup
18:21:17 -!- asiekierka has joined.
18:21:18 <asiekierka> hey
18:21:30 <asiekierka> i rescued 3 RTL8139D's from trashed school PCs a few months ago
18:21:32 <asiekierka> i have one of them
18:21:34 <asiekierka> what can i do with it
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:23:44 <asiekierka> read: trashing my PC with buggy code
18:24:12 <fizzie> It's popular => widely supported, yes.
18:26:06 <asiekierka> that's why i rescued them
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:34:53 <oklopol> :(
18:35:02 <oklopol> i totally rock hard
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:41:51 <oerjan> horrible"
18:41:52 <oerjan> *!
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:43:52 <oklopol> or his drinking buddies
18:57:07 <Gregor> I'm betting ... no.
18:59:24 <oklopol> and what exactly have you informaticians come up with that's cool
18:59:28 <oklopol> nothing
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:03:37 <oerjan> ic
19:04:02 <oklopol> oh shit oerjan was around at that time, my lie is ruined
19:04:20 <oklopol> i was so close :\
19:07:57 * Sgeo looks at Wikipedia
19:08:02 <Sgeo> Information is energy?
19:08:05 * Sgeo is confused
19:08:19 <oklopol> who isn't
19:08:36 <Sgeo> Oh, information is interchangable
19:09:34 <oklopol> what does that mean?
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:28:00 <cheater_> which is pretty much nothing
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:11 <cheater_> who knows
19:30:11 <cheater_> i'm just a layman
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:37 <cheater_> i'd think so
19:32:45 <pikhq_> But maybe there's something else going on. *shrug*
19:32:54 <cheater_> yeah i know
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:26 <zzo38> Is that correct?
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:36:09 <cheater_> 1200 is used
19:36:14 <cheater_> so is 2400 even
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:26 <cheater_> what is google?
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:31:59 <Sgeo> Um, oops
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:16:35 <oklofok> hay elly
22:17:17 <oklofok> how's it flapping
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:14 <oklofok> i like the basic concept
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:19 <elliott> Yes.
22:19:21 <elliott> Don't make any.
22:19:43 <zzo38> Then please stop.
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:01 <elliott> EVERYONE must stop.
22:21:03 <elliott> Spread the word.
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:28 <cheater_> [Laugh at [Joke]]
22:24:49 <elliott> [Joke]
22:24:58 <zzo38> [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Laugh at [Joke]]]]]]]]]]
22:25:04 <monqy> [No]
22:25:39 <elliott> s
22:28:35 <Sgeo> hi
22:28:41 -!- azaq23 has joined.
22:29:26 <zzo38> low
22:30:09 <monqy> hi sgeo
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:03 <oklofok> :---------D
22:38:10 <oklofok> hi Gregor how u doing
22:38:25 <olsner> maybe he meant to say "deaf"
22:38:26 <Gregor> oklofok: I'm cookin' a corned beef brisket.
22:38:28 <Gregor> Therefore awesome.
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:05 <oklofok> Gregor: wow can i taste
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:03 <Phantom_Hoover> You could probably spin an article out of this.
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:57 <monqy> special toilet?
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:44 <monqy> wastes water
22:57:46 <monqy> not good
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:58:05 <elliott> XKCDEMONS sure are witty
22:58:47 <CakeProphet> what is this?
22:59:18 <elliott> Sgeo google+
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:05:55 <elliott> lol
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:06:19 <elliott> not the same thing though
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:25:37 <Sgeo> Modern GCC.
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:29 <pikhq> No, fuck no.
23:54:39 <monqy> hehehehehehe
23:54:55 <pikhq> Slackware, TBH, is tempting.
23:55:31 <elliott> slackware, enjoy that
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:41 <elliott> uh
23:55:46 <elliott> what does this even mean
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:09 <elliott> pikhq: so what
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:56:45 <elliott> IM LEAVING FOREVER
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:17 <CakeProphet> pikhq: switch to redhat!
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:58:49 <CakeProphet> FreeBSD?
23:59:13 <pikhq> Less broken, at least.
2011-07-10
00:02:08 <CakeProphet> Igelle is the newest distro on this timeline
00:02:10 <CakeProphet> get that one.
00:02:42 <Gregor> ...
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:04:33 <CakeProphet> ah wait, 4m is the newest root distro. :)
00:04:45 <Gregor> ...?
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:08:21 <CakeProphet> *Knoppix subtree
00:11:18 <Gregor> Yowsa
00:11:31 <Gregor> I remember SLS :)
00:12:37 <CakeProphet> Gentoo looks interesting, actually.
00:13:05 <pikhq> I still have some fondness for it.
00:13:20 <CakeProphet> any huge problems with Gentoo?
00:13:26 <Gregor> Pffff
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:38 <Gregor> Debian is right.
00:13:40 <Gregor> It is always right.
00:13:46 <Gregor> Debian is legion.
00:13:47 <Gregor> Nowait.
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:07 <CakeProphet> pikhq: use slackware. :D
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:00 <CakeProphet> pikhq: see: slackware
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:40 <CakeProphet> problem solved. :)
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:25:50 <Gregor> With Gentoo Prefix :P
00:30:50 <elliott> i want to punch zuu hes an idiot
00:30:52 * elliott is reading logs
00:31:08 <elliott> 20:11:11: <Zuu> well, when i say turing complete i really mean LBA (ofcource)
00:31:09 <elliott> [...]
00:31:09 <elliott> 20:12:54: <Zuu> you dont seem to understand what turing complete means then
00:31:39 <CakeProphet> pikhq: openVMS
00:31:48 <Sgeo> LBA?
00:31:55 -!- augur has quit (Remote host closed the connection).
00:32:27 <elliott> Sgeo: google it
00:32:49 <Sgeo> Logical Block Addressing?
00:32:50 <CakeProphet> "Google?" "google it"
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:34:22 <CakeProphet> >:)
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:39 <CakeProphet> "LBA?"
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:00 <CakeProphet> *complicating
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:50 <elliott> WOW
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:46:53 <elliott> WOW
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:51:50 <CakeProphet> why would that be?
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:28 <CakeProphet> seriously why can't C have tagged unions.
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:26 <CakeProphet> but this is lame.
00:55:39 <oklofok> tagged union is mean what again?
00:55:48 <oklofok> not remember :\
00:55:52 <CakeProphet> like Haskell union types.
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:36 <oklofok> ohhh
00:57:45 <oklofok> that's what tagging 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:26 <oklofok> no offense mister fanboy
00:58:27 * Sgeo wonders how Rust is coming along
00:58:28 <oklofok> of c
00:58:31 <oklofok> the language of a suck
00:58:34 -!- augur has joined.
00:58:40 <oklofok> augur: it sucks ass right
00:58:43 <CakeProphet> data [a] = (:) a [a] | []
00:58:46 <CakeProphet> tagged union
00:59:11 <CakeProphet> (more or less)
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:30 <elliott> oklofok: <three
01:02:42 <oklofok> (or nonemptiness whatever, emptiness is obviously not even RE)
01:02:42 <CakeProphet> Sgeo: you mean Haskell bind or?
01:02:45 <elliott> yeah union is
01:02:46 <elliott> stupid
01:02:48 <zzo38> Possibly just with type casting.
01:02:51 <elliott> untagged that is
01:02:52 <Sgeo> CakeProphet, Rust's bind
01:02:57 <CakeProphet> oh, nevermind.
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:03:39 <zzo38> Not C.
01:03:47 <elliott> haskell
01:04:23 <CakeProphet> yes, I'm glad I could set that up.
01:04:55 <CakeProphet> but, seriously, a C-like language with some of the stupid things changed would be good.
01:05:07 <elliott> see BitC
01:05:12 <elliott> http://www.bitc-lang.org/
01:05:50 <CakeProphet> oh look, it already exists.
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 * oklofok maths it up
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:11:03 <oklofok> i love tv shows
01:11:13 <oklofok> how come they are so good
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:14:50 <elliott> kdflhjfghlkghgkjhfdghjfdg
01:14:52 <elliott> i hate people
01:14:55 <elliott> especially stupid people
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:02 <elliott> kill
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:44 <elliott> oklofok: i need a hug :(
01:15:54 <oklofok> elliott: solve the problem and you'll get one
01:16:08 <elliott> solved
01:16:09 <elliott> gimme hug
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:31 <oklofok> things are just so easy
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:52 <elliott> 20:30:01: <Zuu> *guys
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:14 <elliott> Sgeo: and?
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:36 <elliott> yes
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:01: <Zuu> *posix
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:54 <elliott> the air represents zuu
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:24:18 <elliott> oh
01:24:20 <elliott> should i tel lhim
01:24:57 <oklofok> is he here
01:25:01 <oklofok> he's here
01:25:02 <oklofok> wow
01:25:05 <oklofok> after all that
01:25:09 <oklofok> he's still here
01:25:12 <oklofok> 8|
01:25:14 <oklofok> WHAT THE FUCK
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:26:36 <oklofok> *by
01:26:41 <oklofok> i'm making no sense
01:27:50 <oklofok> how unusual
01:27:56 <oklofok> wow it's time :\
01:28:01 <oklofok> 4:30
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:43 <elliott> this can only go well
01:28:52 <oklofok> man
01:28:54 <elliott> but i mean
01:28:55 <oklofok> what the fuck are you doing
01:28:57 <elliott> if you use another timezone
01:28:59 <elliott> C works perfectly
01:29:04 <elliott> oklofok: playing w/ devil
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:30:42 <oklofok> how unusual
01:30:45 <oklofok> this is a weird night
01:38:01 <elliott> lol
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:52:33 <augur> oklofok: wat
01:52:51 <oklofok> augur: c
01:52:57 <augur> oklofok: what
01:53:01 <oklofok> the language
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:54:26 <oklofok> that it sucks right
01:54:40 <oklofok> ass
01:55:02 <augur> oklofok: when did i say that
01:55:11 <oklofok> err never
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:56:31 <oklofok> i really nede to slk
01:56:38 <oklofok> eep
01:56:49 <augur> skleep
01:56:50 <quintopia> do it
01:56:51 <augur> slkeep
01:57:03 <oklofok> quintopia: don't rush me
01:57:10 <oklofok> maybe i will maybe i won't
01:57:21 <oklofok> but you're right i should
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:16 <quintopia> yes
01:58:18 <quintopia> go for it
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
01:59:49 <quintopia> oh
02:02:49 <elliott> Gregor: Buy ALL THE PAGES
02:03:04 <Gregor> elliott: Yesssssssssssssss
02:03:06 <oklofok> that would be many pages
02:03:32 <elliott> remember that huge book of all the featured articles
02:03:34 <elliott> that was like feet high
02:07:05 <Gregor> Not only do I not remember that, I'm fairly certain I never heard about it.
02:07:31 <quintopia> i own that book
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:05 <Gregor> lul, found it.
02:08:06 <Gregor> Wow.
02:08:17 <quintopia> i think i linked it here once
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:16:01 <elliott> (partial)
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:22:33 <elliott> what
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:42:31 <oklofok> ->
02:43:15 <elliott> good movie
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:33:44 <elliott> coppro: help
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).
03:59:38 <oklofok> how sleep? :\
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:06 <elliott> oklofok: never sleep
04:01:10 <elliott> what markers btw
04:01:25 <oklofok> to prove my conjecture
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:08:10 <elliott> oklofok: im a carp
04:10:04 <elliott> Sir..
04:10:04 <elliott> Good Day!
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:04 <elliott> Thank you sir..
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:16:59 <elliott> and that -
04:17:02 <elliott> will be me punching him
04:17:03 <elliott> monqy: hes online
04:17:10 <elliott> he didnt reply though :(
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:20:14 <oklofok> ^
04:20:15 <elliott> yes
04:21:28 <elliott> http://blog.longnow.org/2011/06/17/major-update-on-the-10000-year-clock-project/ so cool
04:21:47 <monqy> excavations
04:21:49 <oklofok> you're cool.
04:21:54 <elliott> monqy: yep
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:37 <oklofok> :---D
04:23:39 <Sgeo> elliott, is that olduse thing a Zuu thing, or something actually possibly decent?
04:24:22 <elliott> what
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:50 <elliott> seeable
04:27:55 <oklofok> also i don't recall ever see
04:27:56 <oklofok> yeah
04:28:03 <elliott> http://en.wikipedia.org/wiki/Clock_of_the_Long_Now btw
04:28:07 <elliott> good reading
04:28:24 <oklofok> i will re
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:28:52 <elliott> this stuff is intersting
04:28:54 <elliott> like that radiation field
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:33:48 <elliott> lol
04:33:51 <elliott> support
04:34:00 <oklofok> and they would have the hugest beards.
04:34:59 <oklofok> ticks once a year huh
04:35:05 <oklofok> how wonderfully boring
04:35:10 <elliott> lol
04:35:15 <elliott> it ticks more than that
04:35:18 <elliott> it just chimes once a year
04:35:19 <oklofok> :(
04:35:29 <elliott> wait no
04:35:32 <elliott> it ticks once a year
04:35:33 <oklofok> that's just gay
04:35:34 <oklofok> okay
04:35:35 <elliott> and chimes every thousand
04:35:35 <oklofok> cool
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:10 <elliott> oh
04:36:26 <pikhq> Though at least I was able to beat Perl into being reasonable.
04:36:36 <monqy> perl? 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:17 <monqy> me too
04:37:24 <oklofok> :o
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:29 <quintopia> nah
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.
05:45:42 <elliott> so cool
06:10:14 <pikhq> Gotta love Long Now.
06:12:03 <coppro> yeah
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:16:43 <elliott> experts disagree
06:20:27 <coppro> elliott: wha
06:20:31 <elliott> coppro: wha?
06:20:36 <elliott> t are you responding to
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:21:53 <elliott> coppro: question mark
06:22:19 <coppro> elliott: your comment about misanthropy
06:22:21 <elliott> is 3.0 still not out yet
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:37 <elliott> pikhq: linux
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:57 <pikhq> UNAMERICAN
06:23:58 <elliott> Length: 76737255 (73M) [application/x-bzip2]
06:23:58 <elliott> ugh why is it so big
06:24:12 <pikhq> Linux has a fuckton of shit in it.
06:25:04 <pikhq> 2.6.0 was 32M...
06:25:06 -!- CakeProphet has joined.
06:25:19 -!- CakeProphet has quit (Changing host).
06:25:19 -!- CakeProphet has joined.
06:26:27 <coppro> it's all drivers
06:28:46 <elliott> pikhq: im going to make smaller system
06:28:50 <elliott> feel my power
06:29:04 <pikhq> elliott: Good luck.
06:29:39 <elliott> swap? who needs it
06:29:58 -!- CakeProphet has quit (Ping timeout: 276 seconds).
06:30:03 <coppro> elliott: that's not zepto enough
06:30:24 <elliott> what isnt
06:30:24 <elliott> swap
06:30:26 <elliott> or not having swap
06:31:24 <elliott> block layer?? no way
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:38:36 <elliott> pikhq:
06:38:47 <pikhq> elliott: Meh.
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:36 <elliott> System is 452 kB
06:39:36 <elliott> with monitor support
06:39:46 <pikhq> elliott: I'm trying to make a bootstrapping system.
06:39:50 <elliott> pikhq: so am I
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:40:38 <elliott> fix linux
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:46:38 <CakeProphet> it means that everything is working fine.
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:32:48 <Sgeo> (I think)
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:41 <pikhq> Erm, wait.
07:35:42 <pikhq> No.
07:35:45 <pikhq> Sorry, misread you.
07:35:48 <pikhq> That's not true.
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:09 <pikhq> See? Valid.
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:24 <coppro> ah
07:52:31 <coppro> yes, you're correct
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:35:52 <quintopia> wat
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:13 <oerjan> *one-way function
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:40:14 <quintopia> err, automorphisms?
08:40:20 <quintopia> is that the word?
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:43:23 <quintopia> *text
08:45:57 <elliott> haha guys
08:45:59 <elliott> you realise that
08:46:00 <elliott> when i quote osmething
08:46:02 <elliott> its because its stupid
08:46:03 <elliott> stop talking
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:02 <Phantom_Hoover> <elliott> when i quote osmething
08:47:10 <Phantom_Hoover> An osmething is a thing made of osmium.
08:47:17 <elliott> youre an osmefuckwit :(
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:31 <elliott> it's hardly well-defined
08:54:44 <elliott> it's a value judgement
08:54:57 <pikhq> oerjan: Define "one-way".
08:55:07 <pikhq> Function for which there is not an inverse?
08:55:10 <pikhq> \x.1
08:55:13 <elliott> -_-
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:17:43 <CakeProphet> where c is an arbitrary constructor.
12:18:10 <CakeProphet> (I mean, other than it being unsupported in Haskell. I'm talking about a possible extension)
12:21:00 <CakeProphet> ah, I see a problem.
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:23:00 <CakeProphet> which are not known at compile time.
12:34:00 <azaq231> CakeProphet: This does in fact type check http://hpaste.org/new
12:34:13 <azaq231> @unpl (c $) . ($ x) $ y
12:34:14 <lambdabot> (c (y x))
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:48:44 <CakeProphet> er [(c,a)]
12:49:40 <CakeProphet> actually no it would be (a, b) -> [a -> c] -> (c, b)
12:49:47 <CakeProphet> again, [(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:56:55 <quintopia> alright
17:57:00 <quintopia> delete away
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:04:31 <quintopia> hmmm
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:09:44 <oerjan> (for abstraction)
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:42 <Madk> Fuck yes
18:16:44 <Madk>
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:17:39 <Madk> %''7RTTd
18:17:57 <monqy> hi
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:09 <Madk> #%%:]__t#
18:19:26 <Madk> do you see that
18:19:34 <Madk> that is great progress taking place
18:19:47 <quintopia> trololo
18:19:57 <Madk> .QSSii#
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:26 <quintopia> i think your GA is too slow
18:22:47 <Madk> it goes through quite fast
18:22:54 <Madk> ~100 generations/minute
18:23:08 <quintopia> population?
18:23:09 <Madk> thing is the complexity involved
18:23:13 <Madk> a pool of 128
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:26 <Madk> probably
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:08 <quintopia> random strings?
18:30:16 <Madk> the esolang is 2d
18:30:22 <Madk> so not really strings, but arrays
18:31:24 <quintopia> pfffft
18:31:35 <quintopia> same thing
18:31:50 <Madk> the length isn't variable, so there's that difference
18:32:10 <quintopia> i was assuming they weren't
18:32:18 <Madk> ok
18:33:27 <Madk> hm
18:33:28 <Madk> shoot
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:05 <quintopia> mutation rate?
18:35:28 <Madk> right now each character in an offspring is a 1 in 32 chance of being randomly chose
18:35:46 <quintopia> how long is an offspring?
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:25 <Madk> oh, I see now
18:38:25 <Madk> no
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:38 <monqy> oh
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:39:06 <Madk> indeed
18:40:41 <quintopia> exactly
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:42:58 <monqy> oerjan: hm
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:43:51 <monqy> What was it?
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:46:47 <monqy> linear?
18:46:49 <Madk> 1d
18:46:57 <Madk> sorry
18:47:07 <monqy> I still stand that that has little to do with it
18:47:13 <Madk> ok
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:21 <Madk> indeed
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:50:47 <Madk> it does
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:54:56 <Phantom_Hoover> What are the haps my friends.
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:42 <Phantom_Hoover> Madk?
18:55:46 <Madk> me
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:04 <Madk> D: ?
18:56:26 <Phantom_Hoover> (Yes I am tactless.)
18:56:32 <Madk> pfft
18:56:45 <monqy> for more information see http://esolangs.org/wiki/User:Phantom_Hoover
18:56:52 <Phantom_Hoover> monqy beat me to it.
18:57:06 <Madk> oh
18:57:12 <Madk> most of my languages aren't
18:57:15 <Madk> I think
18:57:39 <Madk> only 3 of them are really that similar to brainfuck
18:57:44 <Madk> 1 other is kinda close
18:57:56 <Madk> 4 aren't
18:58:04 <Phantom_Hoover> Even one brainfuck derivative is too many.
18:58:12 <Madk> w/e
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:09 <Madk> is 128 good?
18:59:26 <Madk> this is essentailly the one thing I can't go and change without scrapping everything
18:59:28 * Phantom_Hoover swatpans oerjan --===\#/
18:59:48 <Phantom_Hoover> Madk, how hard can pool size be to configure?
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:30 <Phantom_Hoover> Sorry, which language is this?
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:00:58 <Phantom_Hoover> No, I mean the target language.
19:01:01 <Madk> oh
19:01:02 <Madk> surface
19:01:02 <Phantom_Hoover> The one you want HW for.
19:01:07 <Phantom_Hoover> Um...
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:12 <Madk> and that
19:02:17 * oerjan whistles innocently
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:36 <monqy> `quote unbounded
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:05 <Phantom_Hoover> monqy, it's the Orwellian definition of 'unbounded'.
19:03:19 <Madk> that it's a limitation of the machine, not the language
19:03:28 <Madk> sort of
19:03:28 <Phantom_Hoover> It's unbounded... provided you don't go over the bounds.
19:03:31 <Madk> yeah
19:04:14 <oerjan> you have complete freedom to follow big brother
19:04:23 <Madk> yes
19:04:38 <Madk> well anyway
19:04:44 <Madk> I'm going on with me pool of 128
19:08:46 <Madk> awesome
19:08:51 <monqy> did it work?
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:10:51 <Madk> <CTCP> ##99GG
19:11:15 <iconmaster> whoops
19:11:24 <Madk> iconmaster
19:11:31 <Madk> I did the unthinkable
19:11:38 <iconmaster> ?
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:11:47 <iconmaster> I saw, lol.
19:11:50 <Madk> :P
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:03 <iconmaster> My first esolang, to be percise.
19:13:06 <Madk> only crappy programmers
19:13:07 <Madk> I mean
19:13:22 <iconmaster> ...Thanks Madk?
19:13:22 <Madk> *whistles*
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:50 <HackEgo> No output.
19:14:56 <monqy> FURScript is pretty crappy. Snack too.
19:14:58 <Madk> ##66YYll
19:15:12 <Madk> yes
19:15:15 <Madk> that was great progress
19:15:16 <iconmaster> Oops again...
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:15:50 <Madk> `
19:15:51 <HackEgo> No output.
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:41 <iconmaster> say `addquote "quote here"
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:56 <iconmaster> woah
19:16:58 <oerjan> `quote Madk
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:03 <Madk> oh
19:17:03 <Madk> cool
19:17:43 <Phantom_Hoover> <Madk> there are no crappy languages
19:17:52 <Phantom_Hoover> You should know what I'm going to say to that.
19:17:56 <Madk> lifthrasiir: that looks awesome
19:18:04 <Madk> what about the other way around
19:18:08 <iconmaster> `quote iconmaster
19:18:10 <HackEgo> No output.
19:18:13 <iconmaster> Didnt think so.
19:18:26 <Madk> ` quote Phantom_Hoover
19:18:27 <HackEgo> No output.
19:18:28 <lifthrasiir> Madk: 100 to "a hundred", for example?
19:18:34 <Phantom_Hoover> Madk, no space.
19:18:37 <Madk> yeah
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:34 <oerjan> `quote 155
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:29 <Phantom_Hoover> `quote Sgeo's karaoke
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:21:42 <Phantom_Hoover> Huh, I thought there were more than that.
19:21:59 <Madk> `quote 477
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:04 <oerjan> `quote 402
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:15 <iconmaster> `quote 413
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:23 <Madk> `quote 1
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:45 <Madk> `quote 42
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:14 <Madk> `quote 256
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:23:43 <Madk> YES
19:23:46 <Madk> WE HAVE A !
19:23:47 <Madk> ##66YYll!
19:23:55 <oerjan> wat
19:23:56 <monqy> !
19:24:00 <iconmaster> !
19:24:04 <Madk> !
19:24:11 <Phantom_Hoover>
19:24:17 <quintopia> s/A !/NO BANANAS!/
19:24:17 <iconmaster> Now for the "hello World" part.
19:24:20 <oerjan> !hello
19:24:25 <EgoBot> Unknown command () encountered
19:24:32 <Madk> this one has a ! and an l in the right places
19:24:32 <Madk> ##66YYll!
19:24:35 <oerjan> wat
19:24:42 <oerjan> !show hello
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:02 <oerjan> oh
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> Local stop%=0
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:25:35 <Madk> Next
19:25:35 <Madk> Return score
19:26:05 <Madk> hmm
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:29 <quintopia> yeah
19:26:32 <quintopia> sounds bad
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:09 <iconmaster> what language is that Madk?
19:27:19 <quintopia> blitzmax
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:09 <Madk> yeah
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:21 <Madk> no
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:40 <Madk> yes
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:40 <Madk> sort of
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:29 <Madk> Next
19:39:29 <Madk> Return score
19:39:44 <Madk> again, the lower the score the more accurate the output
19:46:13 <quintopia> so
19:46:31 <quintopia> a parabolic curve towards the desired character/~?
19:49:42 -!- cheater__ has joined.
19:50:51 <Madk> pretty much
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:47 <Sgeo> ..?
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:21 <oklofok> i just saw a bug
22:17:36 <Phantom_Hoover> "LC is a really nice language. I wasn't able to find a modern, untyped, lazy language."
22:17:42 <Phantom_Hoover> LC means exactly what you think it meas.
22:17:45 <oklofok> i was like o_O and it was like O_o
22:17:54 <Phantom_Hoover> *means
22:20:36 <coppro> Phantom_Hoover: locale?
22:20:53 <Phantom_Hoover> coppro, -_-
22:21:10 <oklofok> :-D
22:21:38 <Sgeo> Lambda Calculus?
22:21:56 <oklofok> aaaand we have a winner
22:23:53 <Phantom_Hoover> The prize is a phial of catalase in the ear!
22:31:02 -!- DocHerrings has joined.
22:37:08 <Phantom_Hoover> DocHerrings!
22:37:20 <DocHerrings> Phantom_Hoover!
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:37:41 <oklofok> i implemented that once
22:37:45 <oklofok> lol
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:08 <oklofok> i think
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:18 <pikhq_> oklofok: Smartass.
22:40:25 <oklofok> DDDDDDDddddddd:
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:16 <pikhq_> I was.
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:42:31 <Phantom_Hoover> i.e. Eodermdrome match subgraphs.
22:42:32 <oklofok> hurr durr obviously
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:21 <Phantom_Hoover> My general inclination was "gensym all the tags".
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:47:18 <Phantom_Hoover> oklofok, don't polynomials have integral powers?
22:47:32 <oklofok> what do you mean?
22:47:38 <Phantom_Hoover> Indeed, according to WP, positive integral powers.
22:47:38 <oklofok> oh
22:47:48 <oklofok> lol
22:47:53 <oklofok> are you joking
22:48:10 <DocHerrings> Phantom_Hoover: Seems to me that we have just agreed that the tag system is arbitrary. :)
22:48:16 <elliott> f
22:48:17 <lambdabot> elliott: You have 3 new messages. '/msg lambdabot @messages' to read them.
22:48:19 <Phantom_Hoover> DocHerrings, yeah, hence gensyms.
22:48:28 <oklofok> so you'd call O(n) and O(n^2) polynomial time but O(n^1.5) not?
22:49:00 <oklofok> i suppose you were joking
22:49:11 <Phantom_Hoover> Slight misunderstanding, I suppose.
22:49:20 <oklofok> perhapses
22:49:25 <oklofok> n is usually the changing thing
22:49:35 <oklofok> but not in what i just said
22:49:40 <oklofok> so umm
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:50:34 <Phantom_Hoover> Somehow.
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:51:54 <oklofok> but n^3/2
22:52:00 <oklofok> is common enough i think
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:52:50 <oklofok> as you said
22:53:36 <oklofok> (might happen and often happens, just means you are linear w.r.t. height)
22:53:39 <oklofok> or width
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:06 <oklofok> no it's O(n)
22:55:11 <Phantom_Hoover> Hmm.
22:55:13 <oklofok> you have to go through the integers
22:55:15 <oklofok> :P
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:21 <oklofok> as you said
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:15 <Phantom_Hoover> And then summing the side is just another O(sqrt(n)).
22:57:18 <oklofok> how do you work out sqrt(n)?
22:57:32 <oklofok> are you also given n in binary?
22:57:32 <Phantom_Hoover> I thought that didn't count.
22:58:27 <Phantom_Hoover> Assuming n has an upper bound, it doesn't matter.
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:00:55 <oklofok> and same for time
23:01:06 <Phantom_Hoover> oklofok i do not know all these fancy computer things
23:01:10 <Phantom_Hoover> i am but a foolish youth
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:01:59 <oklofok> even foolish youths
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:02:57 <oklofok> HOW UNUSUAL
23:03:05 <oklofok> my little toe has lost feeling again
23:03:11 <oklofok> numb most of the day :(
23:03:22 <oklofok> i think i'm dying maybe?
23:03:23 <Phantom_Hoover> Freeze it into submission.
23:03:39 <oklofok> mwahahaah
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:03:57 <oklofok> :o
23:04:07 <Phantom_Hoover> MARITIME CLIMATE BITCHES
23:04:10 <oklofok> it is actually reeeeeeeally hot i wish i had a fan
23:04:39 <Phantom_Hoover> England is stupidly warm as far as I can tell.
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:05:24 <Phantom_Hoover> Yes
23:05:25 <Phantom_Hoover> But
23:05:30 <Phantom_Hoover> I never take off my jumper
23:05:41 <Phantom_Hoover> Unless there is a real risk of death.
23:07:20 <Phantom_Hoover> Also there are no hills; how do you not go insane it is a mystery to me.
23:07:33 <oklofok> :-----D
23:07:56 <oklofok> we have upside down hills but they're full of water :(
23:08:17 <Phantom_Hoover> Ah, but they are still hills.
23:08:25 <oklofok> certainly
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:10:56 <Phantom_Hoover> Mystery solved.
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:08 <oklofok> good point
23:13:11 <oklofok> i want a theremin :(
23:13:40 <Phantom_Hoover> elliott has a theremin IIRC.
23:13:48 <olsner> oklofok: how can you want a theremin and complain about other people's sanity at the same time?
23:13:59 <Phantom_Hoover> olsner, he does not have enough hills.
23:14:04 <oklofok> have i sain i'm sane
23:14:16 <oklofok> i tell you what: i ain
23:14:17 <oklofok> '
23:14:23 <oklofok> but umm
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:18:25 <oklofok> yes!
23:18:34 <oklofok> what a lovely idea
23:19:14 <cheater__> sounds like a degenerated cocktagon
23:19:19 <Phantom_Hoover> It is like having a cat.
23:20:12 <oklofok> ^
23:22:17 <Phantom_Hoover> Relevant: http://www.youtube.com/watch?v=U_tk-XrXFHo
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:07 <Phantom_Hoover> They would invent the wheel and then eat it.
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:16 <oklofok> cat massage
23:24:25 <oklofok> major whisker watch alert
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:35 <Phantom_Hoover> olsner, oh OK.
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:51 <oklofok> oh wait
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:26:26 <oklofok> oh yeah
23:26:54 <oklofok> cats and a theremin :D
23:26:58 <oklofok> i'm gonna watch that!
23:27:18 <elliott> whoa
23:27:19 <Phantom_Hoover> Perhaps the classification of these graphs could provide crucial insights into it.
23:27:19 <elliott> guys
23:27:22 <elliott> what if cDonald's theorem
23:27:24 <elliott> was a graph
23:27:28 <elliott> with only one node
23:27:39 <Phantom_Hoover> MY GOD
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:08 <elliott> a circale.
23:28:57 -!- oerjan has quit (Quit: Good night).
23:29:13 <oklofok> awwwwwwwwwwwwwwwwww
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:57 <Phantom_Hoover> oklofok, http://www.youtube.com/watch?v=Pj2NOTanzWI
23:29:58 <oklofok> but i can check if i understand it
23:30:04 <Phantom_Hoover> Familiarise yourself with this material.
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:11 <oklofok> classic
23:33:19 <Phantom_Hoover> This is only the beginning.
23:33:26 <oklofok> oh and the ?
23:33:37 <olsner> oklofok: not proven to exist and be a number yet, obviously
23:37:02 * Phantom_Hoover → sleep
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:41:49 <oklofok> cats are so cute :DSDSDDS
23:44:19 -!- cheater__ has joined.
23:45:47 <oklofok> cheater__: aren't cats cute?
23:45:57 <oklofok> i think cats are cute :D
23:46:15 <cheater__> kill all cats
23:46:46 <cheater__> JUST KIDDING!! kitties are cute.
23:47:32 <CakeProphet> !sh killall cat
23:47:33 <EgoBot> cat: no process found
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:48:52 <oklofok> and the can is frozen
23:49:15 <oklofok> and i opened it just enough for stuff to slowly spill out through the invisible hole
23:49:26 <oklofok> genious really
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:08 <cheater__> what for
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:50:54 <elliott> this is a syb type thing
23:50:57 <cheater__> multiple drinks in one.
23:51:05 <cheater__> alternatively use fluids that don't mix
23:51:10 <cheater__> like say... oil and water
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:46: <Madk> me
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:54:56 <elliott> <PH> GO AWAY
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:53 <elliott> "but _I_ would"
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:05 <oklofok> *-drink
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:57:54 <elliott> this is still great :D
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:10 <elliott> oklofok's next project
23:58:14 <elliott> the shitting museum
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,
23:59:42 <elliott> best two part quote
2011-07-11
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:41 <monqy> unthinkable
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:00 <elliott> congraultionas
00:01:11 <elliott> `delquote 493
00:01:12 <HackEgo> ​*poof*
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:46 <elliott> `quote iconmaster
00:01:47 <HackEgo> 493) iconmaster <iconmaster> `quote iconmaster <HackEgo> No output. <iconmaster> Didnt think so.
00:01:52 <elliott> `delquote 493
00:01:53 <HackEgo> ​*poof*
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:04:14 <olsner> lowercase?
00:04:19 <elliott> lambda
00:04:24 <oklofok> no, lesbian cocks
00:04:32 <monqy> mysterious
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:10:25 <lambdabot> Consider it noted.
00:10:26 <cheater__> someone's insecure, huh?
00:11:58 <oklofok> energy drink so good but im gon be up all night :((
00:12:16 <cheater__> you think you're doing bad?
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:12:45 <oklofok> i have work tomorroy
00:12:47 <oklofok> *tomorrow
00:12:49 <cheater__> so do i
00:13:04 <oklofok> well it's 3 am and i need about 12 hours of sleep
00:13:14 <oklofok> try to beat that
00:13:15 <cheater__> why do you
00:13:25 <cheater__> are you recovering from serious trauma
00:13:28 <oklofok> because i have a very, very large brain.
00:13:33 <cheater__> or are you a toddler
00:13:36 <oklofok> which works so really really hard.
00:13:49 <cheater__> you have a hard brain?
00:14:02 <oklofok> ...
00:14:08 <oklofok> don't be a stupid
00:14:17 * cheater__ cracks a walnut with oklofok's cranium
00:14:22 <cheater__> practical!
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:16 <cheater__> ^_^
00:15:16 <monqy> no brain no
00:15:25 * oklofok enters loop
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:16 <Gregor> Foo :(
00:16:49 <zzo38> Won't fit.
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:08 <cheater__> possible future cocktagon
00:17:09 <Gregor> *that
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:17 <oklofok> zzo38: are there?
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:20:01 <oklofok> bleh
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:09 <oklopol> hey
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:06:40 <elliott_> monqy: oh my god
01:07:22 <monqy> is synchronicity the right word for here and now
01:07:27 <elliott_> yes
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:10:39 <elliott_> why won't this work
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
01:57:52 <elliott_> wat
01:58:04 <monqy> squee?
01:58:15 <elliott_> squee
01:58:21 <Sgeo> <3 IRTC
01:58:32 <elliott_> <3 God
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:00:32 <elliott_> no
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:05 <pikhq> For anything?
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:28:23 <elliott_> wow my brain is broken
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:45:02 <monqy> what
02:45:45 <elliott_> Sgeo: haha who
02:45:50 <elliott_> link/paste quote
02:46:03 <elliott_> Sgeo: dont tell em about DDC
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:40 <elliott_> Sgeo: paste quos
02:46:41 <elliott_> quotes
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:47:53 <elliott_> IASON is my bro
02:48:02 <elliott_> oh my god what is #jesus
02:48:06 <elliott_> and why are you in there
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:14 <elliott_> why
02:48:15 <elliott_> arey ou in there
02:48:22 <elliott_> are you trying to deconvert them all please say no
02:48:57 <elliott_> Sgeo: why
02:49:14 <Sgeo> Just like to watch and discuss sometimes
02:49:23 <elliott_> yeah right
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_> @MeredithGould
02:51:09 <elliott_> MeredithGould
02:51:09 <elliott_> Put my frozen GF mini-Jesus into my pyx & going to mass at St Iggy. Alert the media!
02:51:09 <elliott_>
02:51:09 <lambdabot> Unknown command, try @list
02:51:10 <elliott_> @michaelsbradley
02:51:11 <lambdabot> Unknown command, try @list
02:51:11 <elliott_> Michael Bradley, Jr.
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:13 <lambdabot> Unknown command, try @list
02:51:16 <elliott_> @MeredithGould
02:51:16 <lambdabot> Unknown command, try @list
02:51:18 <elliott_> MeredithGould
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:41 <Gregor> ...
02:51:44 <Gregor> Wow.
02:51:49 <monqy> im wowing silently
02:51:59 <monqy> actually laughing
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:10 <elliott_> this guy is coherent :-|
02:54:48 <elliott_> oh hes a node.js user
02:54:51 <elliott_> that explains everything
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:02 <elliott_> no i wrote that with my arms
02:56:11 <monqy> or is this god jesus not man jesus
02:56:15 <monqy> this is confusing
02:56:23 <elliott_> how do i eat the holy ghost
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:15:33 <monqy> drama time
03:18:47 <elliott_> Sgeo: ages ago yes
03:18:49 <elliott_> Sgeo: paste
03:18:55 <elliott_> paste what lead you to that information
03:18:56 <elliott_> that is
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:19:36 <monqy> <3
03:20:06 <Sgeo> elliott_, your nastiness to someone is ... well, mean. I can't support it.
03:20:17 <monqy> im not nasty
03:20:26 <monqy> i just laugh behind backs
03:20:30 <monqy> nobodys hurt
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:31 <elliott_> monqy: yeah hooray someone
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:30:49 <augur> ;o
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:36:08 <elliott_> :(
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:01 <elliott_> Sgeo: caret
03:43:07 <Sgeo> ^
03:43:27 <elliott_> Sgeo: i meant i was pointing you to that link
03:43:38 <Sgeo> I clicked
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:18 <elliott_> i'm waiting for the new os x
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:45:39 <monqy> backup party
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:48:55 <monqy> how reasonable
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:46 <zzo38> Maybe.
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:00:55 <elliott_> is this the same guy
04:01:04 <Sgeo> Yes
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:05:26 <pikhq> :)
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:08:01 <elliott_> ask him if he trusts god
04:09:22 <monqy> iason.....
04:09:43 <monqy> #jesus.....
04:09:52 <pikhq> Because Sun is more trustworthy than Intel?
04:10:17 <elliott_> pikhq: some sparcs are open source.
04:10:21 <elliott_> (verilog)
04:10:35 <Sgeo> Oh, huh.
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:10:38 <monqy> - a cool dude
05:11:20 * elliott_ waits for pikhq to see that (there is a specific reason)
05:14:18 <pikhq> ... *wince*
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:12 <elliott_> pikhq: bobthj
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:36 <pikhq> elliott_: ...
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:17:45 <elliott_> ALLOW ME TO QUOTE
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:38 <elliott_> no wait
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:18:50 <elliott_> zzo38: about what
05:18:53 <elliott_> in particular?
05:19:06 * elliott_ is curious to what you refer
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:19:59 <elliott_> i'm _curious_
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:47 <pikhq> Okay.
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:27 <oklopol> well first draft anyway
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:58 <oklopol> interesting right
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:15 <elliott_> OR IS THERE
05:33:24 <elliott_> i have observed this, like, THREE times, so it must be true.
05:33:31 <elliott_> i am the best at theories.
05:34:02 <Sgeo> Am I a bored mechanical timewaster?
05:34:25 <monqy> you're special
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:49 <monqy> answer: sgeo
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:34:55 <elliott_> it's self-fulfilling
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:25 <elliott_> Sgeo: oh hm did that guy
05:35:30 <elliott_> Sgeo: make a big deal out of me messaging him
05:35:32 <elliott_> i would like to see
05:35:44 <Sgeo> No, he didn't.
05:35:51 -!- elliott_ has changed nick to botanq.
05:35:59 <botanq> gotta change hostname
05:36:03 <monqy> I don't want to know
05:36:13 <botanq> i made it up on the spot
05:36:16 <botanq> its my disguise
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:34 <elliott_> oh
05:36:36 <elliott_> fucking cloak
05:36:42 <elliott> um
05:36:44 -!- elliott has changed nick to botanq.
05:36:50 <elliott_> oh come on
05:36:51 <Sgeo> elliott_, whatever you're about to do sounds mean
05:36:55 <elliott_> im just going to observe
05:36:57 <elliott_> i just dont want to be seen
05:37:03 <Sgeo> Ok
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:25 <monqy> hehehehehehe
05:37:30 <elliott> HOW DO I DECLOAK BOTANQ
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:30 <elliott> like
05:40:30 <elliott> just
05:40:32 <elliott> "catholicism"?
05:40:40 <Sgeo> Hold on, going to pasta a log
05:40:55 <Sgeo> http://pastebin.com/SA0GALzf
05:40:56 <monqy> pasta the verb
05:41:15 <oklopol> "<elliott> oklopol: anything interesting so far????? this is like sports" <<< ?
05:41:28 <elliott> oklopol: kristians
05:41:30 <oklopol> on #jesus?
05:41:31 <elliott> yes
05:41:32 <oklopol> erm
05:41:35 <oklopol> i'm not really listening
05:41:37 <elliott> :(
05:41:38 <oklopol> i can look
05:41:49 <elliott> who is luke-jr
05:41:51 <elliott> he seems crazy
05:42:03 <elliott> oh everyone is crazy
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 <elliott> wow
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:18 <elliott> wow
05:42:20 <elliott> would it be
05:42:21 <oklopol> they're just kidding around.
05:42:21 <elliott> controversial
05:42:24 <elliott> if i decried book burning
05:42:33 <elliott> Sgeo: ??
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:28 <elliott> practically everyone does
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:44 <elliott> oh really??
05:43:46 <elliott> so you know him then?
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:05 <elliott> ok dudes
05:47:10 <elliott> there has to be a bible verse
05:47:14 <elliott> saying that all people are fallible
05:47:15 <elliott> surely
05:47:29 <pikhq> "For all have sinned and fallen short of the glory of God" is close, at least.
05:47:54 <elliott> hmm
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:34 <elliott> and imperfect
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:21 <oklopol> pikhq: jesus did not sin?
05:51:34 <pikhq> oklopol: That's nearly universally held doctrine.
05:51:43 <oklopol> huh
05:51:53 <elliott> <Sgeo> There's the one where he says why do you call me Good, only God is good
05:51:54 <elliott> oh this is good
05:51:56 <elliott> but do i stick with kjv
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:14 <elliott> oh noooooooo
05:52:16 <elliott> they have fancy definitoins
05:52:17 <elliott> of infallible
05:52:19 <elliott> and impeccable
05:52:22 <elliott> lhe;[p
05:52:25 <elliott> i cant deal
05:52:25 <Sgeo> "And Jesus said unto him, Why callest thou me good? there is none good but one, that is, God."
05:52:39 <elliott> oh theyre the same
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:13 <elliott> no surprisingly
05:53:15 <elliott> i dont think
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:55:38 <elliott> i love my life choices
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:56:59 <oklopol> g
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:25 <elliott> but
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:05 <Sgeo> elliott, no
05:58:07 <elliott> oh
05:58:11 <elliott> he seems pretty loony
05:58:13 <elliott> is he non-catholic
05:58:15 <elliott> or just
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:21 <monqy> loony heretic
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:01:50 <pikhq> Yeah, I suppose.
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:17 <elliott> this is amazing
06:02:22 <elliott> i wanna have him as a pet :{
06:02:39 <monqy> cute or annoying
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:03:20 <monqy> dying
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:32 <Sgeo> elliott, yep
06:04:34 <elliott> or at least non-christian
06:04:41 <pikhq> elliott: I actually know that for a fact.
06:04:42 <Sgeo> (I think)
06:04:49 <elliott> pikhq: know what
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:04 <elliott> do you know em
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:06:31 <elliott> 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:37 <elliott> Sgeo: do tell :-D
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:11:38 <elliott> crying and laughing
06:11:49 <elliott> "believes"
06:11:55 <elliott> god
06:12:10 <elliott> ASJFOISDHIOHSDOIFHSDOF WHAT
06:12:11 <elliott> "This user values
06:12:11 <pikhq> I sure as hell *hope* he's not a programmer.
06:12:11 <elliott> reason over faith"
06:12:17 <monqy> what i
06:12:19 <monqy> i
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:31 <elliott> BUT
06:12:33 <elliott> NOT YOURS???
06:12:42 <elliott> YOU CANT CALL IT REASON ITS PURE FAITH
06:12:43 <elliott> sdfk
06:12:45 <pikhq> elliott: Satanism, oddly enough, doesn't require much work for that.
06:12:46 <elliott> oh god he watches anime
06:12:57 <monqy> how is inherently insubstantiated belief ever reasonable
06:13:08 <monqy> unless it's like
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:32 <oklopol> erm
06:13:42 <elliott> he sure is an
06:13:44 <elliott> interesting person
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:14:40 <pikhq> Who are?
06:14:41 <elliott> also foreigners
06:14:43 <elliott> pikhq: ALL JAPANESE
06:14:45 <pikhq> Ah.
06:15:19 <pikhq> "This user believes in freedom of all types of information for all.
06:15:20 <pikhq> "
06:15:28 <pikhq> But doesn't believe in seperation of church and state...
06:15:31 <pikhq> How?
06:15:41 <elliott> pikhq: and supports book-burning??
06:15:44 <elliott> this is great
06:15:49 <elliott> truly beautiful
06:15:59 <monqy> im dead
06:16:12 <pikhq> And prefers neither SI nor US contemporary units.
06:16:19 <pikhq> Erm, customary.
06:16:21 <pikhq> What others are there?
06:17:06 <elliott> ENGLISH UNITS
06:17:09 <elliott> presumably
06:17:13 <elliott> he seems like a ~traditionalist~
06:17:15 <pikhq> He's American.
06:17:19 <elliott> and said he supports English English
06:17:20 <elliott> so um
06:17:23 <elliott> imperial units
06:17:35 <pikhq> He claims to be a native citizen of the US.
06:17:40 <elliott> ...and???
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:00 <elliott> meh, hes not even trying
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> see topic
06:26:16 <elliott> <IASON> or else i will have to ping matiu
06:26:36 <monqy> oh no
06:27:00 <elliott> <Free-man> jason be quiet, adults are talking.
06:27:00 <elliott> <Free-man> a-dults
06:27:03 <elliott> "...but not me."
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:39 <oklopol> i hope someone bans him
06:27:41 <oklopol> soon
06:27:42 <Sgeo> Atheists are allowed.
06:27:44 <oklopol> so soon
06:27:50 <oklopol> Sgeo: are retards allowed?
06:27:50 <elliott> Sgeo: even trolls?
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 <pikhq> Man, Finns suck.
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:15 <elliott> who's in
06:29:20 <Sgeo> Ricco is permanently banned. This is a good thing.
06:29:23 <elliott> who is ricco
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:29 <elliott> FUCK YOU BITCH
06:29:30 <elliott> :(
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:29:55 <Sgeo> Not much else
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:15 <elliott> erm
06:32:17 <elliott> s/religious-/
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:32:59 <elliott> is bisexuality ok
06:33:01 <elliott> famous bisexuality
06:33:06 <pikhq> elliott: I'm afraid not.
06:33:17 <monqy> asexuality?
06:33:28 <pikhq> Actually, even worse if you exercise it; fornication and all.
06:33:31 <pikhq> monqy: No issues.
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 <elliott> Sgeo: :D
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:25 <monqy> being one and all
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:05 <elliott> are those lyrics
06:35:12 <pikhq> I wouldn't know.
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:02 <elliott> it was a joke
06:36:03 <elliott> though
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:56:25 <elliott> zzo38: don't
07:57:29 <zzo38> I do type and speak English.
07:59:21 <cheater__> unbelievable
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> NOT so amoung yu
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:12:58 <elliott> wow
08:13:00 <elliott> Sgeo: does he ever stop
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:39 <pikhq> elliott: ... Wut.
08:27:52 <pikhq> Is he KJV-only, or anything-but-KJV-only?
08:27:54 <pikhq> I can't tell.
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:10 <CakeProphet> aha.
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:24 <CakeProphet> er...
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:01:49 <CakeProphet> ...had two different t's there.
09:03:34 <quintopia> zzo38:
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:11:20 <CakeProphet> or maybe I need fundeps? dunno.
09:12:11 <zzo38> quintopia: OK, what did you want, please?
09:13:29 <quintopia> to talk to you
09:14:28 <zzo38> About what?
09:16:24 <quintopia> you
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:28:44 <quintopia> oh alright
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:37:48 <pikhq> Hrm?
09:40:01 <CakeProphet> > fix (\x -> cycle (1:x))
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:42:42 <pikhq> Hmm.
09:43:05 <quintopia> ah
09:43:36 <quintopia> how does that affect your life?
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:03:14 <zzo38> I don't know.
10:07:12 <quintopia> huh
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:23:40 <quintopia> pictured: ph is very popular
10:25:03 <Phantom_Hoover> How is that pictured.
10:25:08 <Phantom_Hoover> Am I standing at a party.
10:25:13 <Phantom_Hoover> With some kind of suit on.
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:34:14 <Phantom_Hoover> Send them on a hillwalking trip.
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:45:49 <oklopol> or programming
10:45:51 <oklopol> let's hear it
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:46:49 <Phantom_Hoover> Pool for one: perhaps the best game?
10:47:33 <oklopol> i don't really like two-player games, hard to measure progress
10:48:06 <oklopol> math <3
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:54 <oklopol> makes sense
10:58:56 <zzo38> And a visitor to my school once asked me to try to prove the twin prime conjecture.
10:59:03 <oklopol> lol
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:27 <oklopol> ?
11:00:33 <zzo38> Yes
11:00:37 <oklopol> right
11:00:49 <oklopol> there's absolutely no way you could get anywhere with that from scratch
11:01:05 <oklopol> don't touch it
11:01:13 <oklopol> well
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:27 <Phantom_Hoover> 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:39 <Phantom_Hoover> Isn't zzo part of the dastardly legion of teenagers?
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:08:26 <oklopol> oh right
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:19:28 <zzo38> What is w/e's?
11:19:36 <oklopol> w/e means whatever
11:19:44 <zzo38> OK
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:02 <oklopol> nopes
11:21:16 <oklopol> icosahedron is like 20?
11:21:35 <Phantom_Hoover> C'mon, oklopol, you should know that.
11:21:36 <zzo38> Icosahedron is a solid of 20 sides.
11:21:40 <Phantom_Hoover> It's practically graph theory.
11:21:49 <zzo38> But that is irrelevant in this case.
11:22:13 <oerjan> eek no clog
11:22:27 <Phantom_Hoover> oerjan, the connection's been clogged.
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:15 <oklopol> we got the time lol
11:23:36 <oklopol> zzo38: so what about the relevant part?
11:23:49 <Phantom_Hoover> oklopol, also your ban in #jesus has expired.
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:04 <zzo38> OK.
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:52 <Phantom_Hoover> Yeah, it's not like there's any kind of game theory.
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:28 <oklopol> what i meant was
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:27:51 <Phantom_Hoover> oklopol, what if you made Eodermdrome: the game.
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:28:57 <oklopol> ..."mind"
11:28:58 <oklopol> yeah mind.
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:00 <oklopol> that's all math is
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:33:29 <oklopol> mwahaha
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:35:45 <oklopol> slightly sceptical
11:35:54 <zzo38> It is OK.
11:36:04 <oklopol> yes
11:36:08 <Phantom_Hoover> 06:16:21: <pikhq> What others are there?
11:36:09 <Phantom_Hoover> CGS
11:36:15 <Phantom_Hoover> ONE TRUE UNIT SYSTEM
11:37:24 <Phantom_Hoover> Also is it just me or has zzo invented fields by accident with his mana system?
11:38:00 <zzo38> Let me see.
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:40:22 <oklopol> *ones
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:52:01 <oklopol> darn
11:52:35 <zzo38> What darn?
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:03:19 <oklopol> me me me me
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:28 <oklopol> they are EYES
12:34:29 <oklopol> ...
12:34:42 <oklopol> (
12:34:45 <oklopol> :(
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:38:42 <oerjan> zzo38: 15/20 m/70 Mg
12:43:24 <zzo38> oerjan: What units for the first number? Years?
12:43:33 <oerjan> yes
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:01 <oerjan> some kind of giant?
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:08 <oerjan> ok a little more
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:45:46 <oerjan> bah
12:46:41 -!- iconmaster has joined.
12:46:41 <oerjan> `google is this working still?
12:46:42 <HackEgo> No output.
12:47:06 <oerjan> seems not. but then google changes their APIs like others change shirts, iiuc
12:47:16 <oerjan> hm wait
12:47:20 <oerjan> `sh which google
12:47:22 <HackEgo> No output.
12:47:32 <oerjan> that might not help
12:47:41 <oerjan> `sh ls bin/go*
12:47:42 <HackEgo> No output.
12:47:55 <oerjan> `sh ls bin/ca*
12:47:57 <HackEgo> No output.
12:48:00 <oerjan> wat
12:48:06 <oerjan> `sh ls bin/
12:48:07 <HackEgo> No output.
12:48:12 <oerjan> ...
12:48:21 <zzo38> `sh ls
12:48:23 <HackEgo> No output.
12:48:24 <oerjan> `run which google
12:48:25 <HackEgo> ​/tmp/hackenv.3400/bin/google
12:48:56 <oerjan> `run which calc
12:48:58 <HackEgo> ​/tmp/hackenv.3492/bin/calc
12:49:11 <oerjan> `calc 20 m in feet
12:49:13 <HackEgo> No output.
12:49:16 <oerjan> :(
12:50:31 -!- Taneb has joined.
12:50:45 <Taneb> Hello!
12:51:26 <oerjan> hi Taneb!
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:10 <Phantom_Hoover> O.o
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:03:45 <Taneb> @oerjan yeah
13:03:45 <lambdabot> Unknown command, try @list
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:43 <Phantom_Hoover> @tell me about it.
13:04:44 <lambdabot> Consider it noted.
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:43 <oerjan> probably
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:08:10 <lambdabot> Consider it noted.
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:05 <Phantom_Hoover> oerjan, density, not volume.
13:11:06 <lambdabot> Phantom_Hoover: You have 1 new message. '/msg lambdabot @messages' to read it.
13:11:19 <Phantom_Hoover> @messages
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:11:27 <Phantom_Hoover> @tell Gregor It is the best way to talk.
13:11:28 <lambdabot> Consider it noted.
13:11:41 <Phantom_Hoover> oerjan, density inside the Schwartzchild radius.
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 <Gregor> @messages
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> iiuc
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:32 <Gregor> Holy eff X-D
13:12:32 <lambdabot> problem when nesting...
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:35 <Gregor> Sorry guys :P
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:39 <oerjan> Gregor: wat
13:12:40 <lambdabot> Plugin `tell' failed with: thread killed
13:12:45 <Gregor> ... lul
13:12:50 <Phantom_Hoover> 5 moths ago.
13:13:01 <Phantom_Hoover> Also, love that bug with @messages.
13:13:10 <oerjan> hm _is_ it a bug?
13:13:13 <oerjan> @messages
13:13:13 <lambdabot> You don't have any new messages.
13:13:16 <oerjan> darn
13:13:21 <oerjan> seems so
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:13:33 <Phantom_Hoover> Gregor, 64-stack of gold blocks.
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:14:51 <Phantom_Hoover> Gregor, no, it's an 8x8x8m block of gold.
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:02 <Phantom_Hoover> Gregor, yes.
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:51 <coppro> yep, that's the bit
13:18:56 <coppro> best part of the theme in my opinion
13:19:30 <Phantom_Hoover> Indeed.
13:19:33 <Taneb> I think I've got everything for the Boolfuck to Noryshorts conversion exceppt input
13:20:49 <Phantom_Hoover> Nobody cares about input anyway.
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:07 <Phantom_Hoover> XD
13:21:09 <Taneb> I want to do input for completion's sake
13:21:13 <Phantom_Hoover> Or wait, was it meant to do that?
13:22:03 <oerjan> !underload ((_Could be..._)!a(:^)*S):^
13:22:04 <EgoBot> ​((_Could be..._)!a(:^)*S):^
13:22:26 <Phantom_Hoover> !underload (((((((
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:23:46 <oerjan> yep
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:35 <Taneb> Invented by me
13:38:43 <Phantom_Hoover> Well, you seem moderately nice, so I won't brickbrain you.
13:39:03 <Taneb> Thanks?
13:39:10 <oerjan> XD
13:39:35 <Phantom_Hoover> See User:Phantom_Hoover on the wiki for more information.
13:41:43 <Taneb> Oh, ooh dear
13:42:13 <fizzie> Graa, I seriously need to fix fungot.
13:42:16 <Phantom_Hoover> Don't worry, I'm not counting it as a derivative.
13:42:24 <Phantom_Hoover> fizzie, just ignore the idiot who complained?
13:42:31 <Phantom_Hoover> They've left by now, surely?
13:43:04 <oerjan> fizzie: YAY
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:44:37 <Phantom_Hoover> Hmm, that's a bit of an odd statement.
13:44:51 <oerjan> wioll haven been
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:08 <Taneb> Go ahead...
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:52:53 <Taneb> There
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 <oerjan> ^source
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:49 <fizzie> (So far.)
13:53:50 <oerjan> well there _have_ been others.
13:53:57 <oerjan> thutubot, at least.
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:39 <oerjan> indeed
13:54:52 <fizzie> ^style
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:29 <Phantom_Hoover> fungot!
13:56:30 <fungot> Phantom_Hoover: ( which doesn't work... the mere *concept* of language is ineligible.'
13:56:34 <Phantom_Hoover> HOW I HAVE MISSED YOU
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:58:37 <Phantom_Hoover> oerjan, do you know who it was?
13:58:54 <Phantom_Hoover> Taneb, the only forgiveable one is Ook!
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:00:00 <Phantom_Hoover> We all love DMM.
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:06:16 <oerjan> heh
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:10:47 <Phantom_Hoover> Waitwaitwait.
14:11:03 <Phantom_Hoover> I thought China was the one that *credited* money.
14:11:10 <Phantom_Hoover> How can everyone be in debt.
14:11:13 <Phantom_Hoover> It makes no sense.
14:11:25 -!- BeholdMyGlory has quit (Ping timeout: 240 seconds).
14:12:53 <Zwaarddijk> Phantom_Hoover: I agree.
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:14:09 <Zwaarddijk> which explains it to some extent
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:36:53 <CakeProphet> I am too hip to be a hipster.
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:16:47 <Taneb> Hello IRC!
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:23 <Taneb> Hmm, yeah
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:48 <ais523> SgeoN1: close
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:43 <SgeoN1> :/
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:23 <ais523> hmm
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:14 <Taneb> Or something
15:29:35 <SgeoN1> Well, that's interesting. Sound does not seem to be correlated with HDD light
15:33:19 <SgeoN1> No sound for a while
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:38:45 <Taneb> It's going up
15:39:17 <SgeoN1> Um, no
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:32:44 <Taneb> Hello
16:36:33 <quintopia> taneb: why world is like wtf
16:37:17 <Taneb> Um... what?
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:08 <Taneb> zzo38: no
16:43:28 <quintopia> do you have ideas on how to brainwash yourself?
16:44:26 <zzo38> I don't think so.
16:44:57 <Phantom_Hoover> `quote wtf
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:17 <Phantom_Hoover> Gregor, *reasons/raisins.
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:47:30 <Taneb> Hello again
17:48:07 <fizzie> (That was NT4.)
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:19:51 <Taneb> Hello
18:19:56 <Sgeo> Hi
18:22:17 <Taneb> What's up?
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:23:27 <Sgeo> o.O such as?
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:03 <ais523> and across the world
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:18 <ais523> yep
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:16 <Phantom_Hoover> How can you say such a thing, fizzie.
18:46:19 <fizzie> And it was a Windows program; I ran it in Wine a few weeks "back then".
18:46:33 <Phantom_Hoover> Do you know how Wine really works, fizzie.
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:50:04 <Phantom_Hoover> Dammit, ais, don't just quit like that.
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:16 <elliott> hello oerjan, Taneb
19:32:24 <Taneb> Hello
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:19 <elliott> heh
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:43 * elliott eyes Treyno suspiciously.
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:20 <Gregor> ... ladies
19:47:24 <olsner> maybe he hasn't realized that real hair is completely normal and quite common
19:47:32 <elliott> It is?????
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:35 <elliott> He got banned?
19:50:36 <elliott> oklopol: EXPLAIN
19:50:45 <Phantom_Hoover> It autobans you if you say 'fuck'.
19:50:52 <olsner> more importantly, he was in #jesus?
19:50:52 <elliott> hahahahaha
19:50:57 <elliott> olsner: yes we all were.
19:51:00 <elliott> it was a beautiful day.
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:33 <elliott> quoted without comment
19:52:53 <elliott> `delquote 496
19:52:55 <HackEgo> ​*poof*
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:43 <elliott> olsner: yes.
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:34 <elliott> doesn't api iirc
19:54:36 <elliott> `url bin/google
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:40 <elliott> yes.
19:55:46 <elliott> 13:10:17: <coppro> elliott: http://www.youtube.com/user/dWhoFan9#p/c/C6995500E1B2A0ED/10/XNplESJ8gss
19:55:47 <elliott> this is good
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:06 <elliott> How.
19:56:21 <Phantom_Hoover> elliott, they can hold a crapton of gold.
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:34 <elliott> wat
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:55 <Gregor> pikhq_: I LIE
19:56:56 <pikhq_> They charge, which is t3h lame.
19:56:58 <elliott> Phantom_Hoover: ur mom is shit
19:57:01 <pikhq_> But they have an API.
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:35 <elliott> Oh I see.
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:12 <elliott> pikhq_: volume
19:58:18 <pikhq_> elliott: *Google*.
19:58:28 <elliott> yep
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:36 <elliott> see scroogle
19:59:50 <Gregor> pikhq_: They do what they can :P
20:00:04 * oerjan hugs fungot
20:00:04 <fungot> oerjan: fnord/ fnord/ fnord is fnord is a mnemonic for doing exactly that. http://srfi.schemers.org/ srfi-8/?
20:00:20 <oerjan> very good mnemonic
20:03:00 <elliott> fungot: omg i love you
20:03:00 <fungot> elliott: oh yeah, been wanting to do
20:03:05 <elliott> ^style
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:05:47 <Gregor> ^style irc*
20:05:47 <fungot> Not found.
20:05:51 <Gregor> ...
20:06:00 <elliott> That denotes the selected style.
20:06:04 <Gregor> Ohh, * means selected
20:06:06 <Gregor> Durp
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:06:54 <elliott> :D
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:43 <asiekierkaDS> hey
20:10:55 <oerjan> hello
20:10:57 <elliott> oh
20:10:58 <fizzie> (Though there are often people who seem to be actually trying to play the game.)
20:11:13 <asiekierkaDS> i wasnt here for a long time
20:11:24 <elliott> indeed.
20:11:26 <asiekierkaDS> fungot still exists? yay
20:11:26 <fungot> asiekierkaDS: it would be
20:11:28 <oerjan> clearly today is return of old friends day
20:11:31 <elliott> fizzie: great timing >:(
20:11:37 <asiekierkaDS> who else returned?
20:11:42 <monqy> fungot
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:47 <elliott> fungot
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:50 <asiekierkaDS> haha
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:13:51 <asiekierkaDS> ='help
20:13:54 <asiekierkaDS> 'help
20:14:00 <olsner> `help
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:41 <elliott> Yar.
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:23 <asiekierkaDS> 'run whoami
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:16:48 <olsner> you need the backtick
20:16:52 <asiekierkaDS> `run whoami
20:16:54 <HackEgo> No output.
20:17:05 <olsner> `run id
20:17:07 <HackEgo> uid=1050370 gid=1050370
20:17:20 <Deewiant> monqy: fnord is used for words that occur few times (at most once?) in the corpus
20:17:23 <asiekierkaDS> the numbers, what do they mean
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:18:13 <oerjan> argh
20:20:08 <oerjan> asiekierkaDS: HackEgo creates a random user to run each command under
20:20:18 <olsner> `run id
20:20:20 <HackEgo> uid=1471836 gid=1471836
20:20:25 <asiekierkaDS> what are the priveliges
20:20:29 <olsner> ooh, indeed it does
20:21:16 <oerjan> asiekierkaDS: it's also sandboxed in a couple of other ways, so not very high :P
20:21:33 <asiekierkaDS> so no rm -rf $PWD?
20:22:13 <oerjan> asiekierkaDS: it doesn't have root, no. i assume.
20:22:26 <asiekierkaDS> can i check
20:22:35 <oerjan> sure.
20:22:45 <asiekierkaDS> `run rm -rf $PWD
20:22:46 <HackEgo> No output.
20:22:51 <asiekierkaDS> `run ls
20:22:51 <oerjan> `ls
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:22:57 <asiekierkaDS> huh.
20:23:01 <oerjan> hm ah.
20:23:06 <asiekierkaDS> `run rm -rf .
20:23:08 <HackEgo> No output.
20:23:10 <asiekierkaDS> `ls
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:16 <asiekierkaDS> Huh.
20:23:19 <elliott> you can't rm .
20:23:23 <elliott> see posix
20:23:26 <oerjan> `run rm -rf $PWD 2&>1
20:23:28 <HackEgo> No output.
20:23:30 <asiekierkaDS> `run rm -rf *
20:23:31 <HackEgo> No output.
20:23:33 <asiekierkaDS> `ls
20:23:34 <oerjan> `run rm -rf $PWD 2>&1
20:23:35 <HackEgo> babies \ bin \ paste \ tmpdir.2289
20:23:37 <elliott> `help
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:44 <asiekierkaDS> `ls
20:23:46 <HackEgo> babies \ bin \ paste \ tmpdir.2467
20:23:46 <elliott> `revert 526
20:23:48 <HackEgo> Done.
20:23:49 <elliott> `ls
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:57 <asiekierkaDS> `run uname -a
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:24:04 <asiekierkaDS> old kernel
20:24:19 <pikhq_> It's Debian stable.
20:24:30 <asiekierkaDS> but it's like, 7 versions behind
20:24:39 <pikhq_> So?
20:25:21 <elliott> oh noes old kernels
20:25:36 <asiekierkaDS> the bugs!
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:25:51 <asiekierkaDS> yes but
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:29:20 <elliott> heh
20:29:31 <pikhq_> (because Stallman)
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:30:59 <elliott> i.e. --system
20:31:06 <elliott> Just gives it a different UID?
20:31:17 <elliott> Yeah, seems so
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:33:13 <elliott> Oh, -H works
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:40:19 <elliott> amigo something.
20:40:23 <monqy> japan
20:40:24 <Sgeo_> No
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:09 <Phantom_Hoover> Sgeo_, was Krynn the annoying atheist?
20:46:14 <Sgeo_> Yes
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:48:11 <Sgeo_> 18/5 still
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).
23:56:00 <oklofok> o
23:58:31 <oerjan> oko
2011-07-12
00:10:30 <oklofok> wait what
00:10:32 <quintopia> elliott: you may be right. i genuinely wanted to learn, but i apologize if that was insensitive, etc.
00:10:37 <oklofok> i said o? :D
00:10:47 <oerjan> yes you did
00:10:47 <oklofok> i have no idea when i did that
00:11:13 <elliott> hey oklofok
00:11:16 <elliott> quintopia: yeah, ok
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:32 <Phantom_Hoover> Eps of what?
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:07 <Phantom_Hoover> The British show about conmen?
00:13:08 <elliott> oklofok: but we need TESTERS.
00:13:11 <oklofok> yes
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:22 <oklofok> perhaps i never will
00:14:41 <Phantom_Hoover> You would have to consult arcane texts on the matter.
00:14:42 <elliott> it's a virus.
00:14:47 <Phantom_Hoover> Such as Homestuck.
00:14:48 <elliott> but with points
00:14:50 <elliott> its kind of like an rpg
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:22 <oklofok> xD
00:16:44 <oklofok> wow.
00:16:46 <oklofok> *now
00:16:46 <oerjan> YOU SUBCONSCIOUS MAY DISAGREE
00:16:56 <oklofok> well i convinced one guy already
00:17:05 <oerjan> poor deluded fool
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:18:04 <elliott> was the guy a hobo
00:18:11 <oklofok> he was mister x
00:21:03 -!- oklopol has joined.
00:21:50 <oklopol> *i* am the office hobo
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:25:05 <oklopol> seen that
00:25:11 <oklopol> summa that at least
00:26:56 * oerjan considers archive binging it
00:30:13 -!- pikhq has quit (Remote host closed the connection).
00:30:54 <oklopol> ?
00:31:03 <oklopol> oh
00:31:15 <oklopol> missed the word archive
00:31:42 <Gregor> Yup, definitely bricked my router.
00:31:44 <Gregor> Great.
00:32:20 <oklopol> do you mean you took it in the ass from a truck driver
00:32:50 <oklopol> or was it a euphemism?
00:34:20 <Gregor> Sounds about right.
00:34:22 <elliott> Gregor: How
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:36:47 <elliott> Gregor: Noice :P
00:38:38 * Phantom_Hoover → sleep
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:41:50 <monqy> nope its a brick
00:42:46 -!- Maharba has joined.
00:43:46 <elliott> hi Maharba
00:43:59 -!- Maharba has left.
00:44:04 <monqy> bye maharba
00:44:09 <elliott> bye maharba
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:32 <monqy> its too late
00:44:35 <monqy> their gone
00:44:36 <elliott> they parted, not /quit :P
00:44:47 <monqy> whois says otherwise
00:44:53 <elliott> darn
00:45:27 * oerjan checks what the previous topic was
00:45:43 <oerjan> jesus has coeliac disease?
00:46:45 <elliott> long story :D
00:50:42 <oerjan> ic
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:09:09 <CakeProphet> and without having to use Either.
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:05 <CakeProphet> better typechecking?
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:32 <elliott> For a second, ????
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:49 <CakeProphet> it is pretty much always an Integral...
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:03 <CakeProphet> ah wait, yeah nevermind. :P
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:42:58 <CakeProphet> mmk.
01:43:05 <elliott> cd ..
01:43:09 <elliott> But like I said,
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:43 <elliott> Eh?
01:44:45 <CakeProphet> via pattern matching
01:44:59 <elliott> OK, so you actually have two functions.
01:45:12 <CakeProphet> when needed, yes.
01:45:12 <elliott> sample and convertSampleRate.
01:45:21 <elliott> convertSampleRate :: (Signal t) => SampleRate -> t -> DSignal a
01:45:23 <elliott> Tada
01:45:30 <elliott> erm
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:47:18 <elliott> Conflating them is a bug
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:50:36 <elliott> WorldEdit, in Minecraft.
04:53:08 -!- cheater_ has joined.
04:57:53 <Sgeo_> elliott is capable of making infinity be less than 15*4
04:59:01 <elliott> Sgeo_: You have dirt now.
04:59:08 <elliott> Infinite dirt.
04:59:12 <Sgeo_> I need to not drown right now
04:59:20 <elliott> You are above water?
04:59:32 <Sgeo_> I am? I can't tell, I'm lagging that badly
04:59:37 <elliott> Reconnect
04:59:38 <elliott> The lag is gone now
05:00:48 <elliott> Sgeo_: No luck?
05:01:12 <Sgeo_> Sorry, was afk
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:12 <cheater_> i just say usarian
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:12 <coppro> "uss-asian"
06:11:18 <coppro> "usasian"
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 <Phantom_Hoover> Paranoid people, yes.
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:23:19 <asiekierka> hi can you hear me
09:24:00 -!- asiekierka has quit (Client Quit).
09:24:56 -!- augur has joined.
09:30:53 <elliott> no
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:15:24 <elliott_> pro coding
10:15:38 <lifthrasiir> oh well.
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:19 <fizzie> It's like He-Man.
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:37 <Deewiant> heh
10:18:41 <elliott_> (That's just a ripoff of the actual site, btw)
10:18:47 <elliott_> (Which is a .com)
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:24:21 <elliott_> It's open-source, IIRC
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:19:15 <elliott> Ugly? Yes.
11:19:18 <elliott> Useful? Yes.
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 <fizzie> Yes.
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:01 <elliott> SIGH FINE >:(
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:45 <Deewiant> No they're not
12:16:51 <elliott> Err, well
12:16:56 <elliott> Modulo alpha renaming
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:07 <fizzie> Hence "try to".
12:19:10 <ais523> yep
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 <elliott> heh
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:21:56 <elliott> )
12:22:14 <elliott> oh, wait, I have wc
12:22:17 <elliott> also, sloccount
12:22:27 <Deewiant> ohcount
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:01 <elliott> it feels like more
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:46 <elliott> hmm, oh dear...
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:25:53 <fizzie> s/for/against/
12:26:06 <ais523> fizzie: the first version was funnier
12:26:08 <ais523> in fact,
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:15 <elliott> ais523: Indeed
12:27:16 <ais523> even Emacs does that
12:27:22 <ais523> if set up correctly
12:27:23 <elliott> well, it's always a pain with Emacs
12:27:25 <elliott> IME
12:27:32 <elliott> flymake tends to be flaky
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:30:52 * elliott weeps
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:33:37 <elliott> ah, a perfect kill.
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:35:41 <elliott> oops wrong channel
12:38:41 <oerjan> Phantom_Hoover: gesundheit
12:38:56 <Phantom_Hoover> oerjan, it was LITERARY
12:39:12 <oerjan> i know, i googled
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:42:56 <Phantom_Hoover> I remember back when Firefox 3 was A Big New Thing.
12:43:02 <Deewiant> One major version every 3 months, IIRC
12:43:03 <Phantom_Hoover> You know, two years ago.
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 <ais523> yep
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:33 <elliott> Finnegans
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:51:41 <fizzie> 5 came out in June.
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:28 <oerjan> O KAY
12:53:36 <ais523> I don't get why they'd be overrun by Ubuntu lawyers, is it a pun I'm missing?
12:53:41 <elliott> Ubuntu Busy Beaver
12:53:46 <ais523> ah, aha
12:53:47 <elliott> Ubuntu MM.NN Busy Beaver
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:05:07 <elliott> six weeks? X-D
13:05:14 <elliott> sturmeh:
13:05:15 <elliott> cool: false
13:05:15 <elliott> eats:
13:05:15 <elliott> babies: true
13:05:15 <elliott> good yaml example
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:09:50 <elliott> great
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:10:45 <elliott> oerjan: :D
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:39 <elliott> thats the joke dot jpg
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:01 <elliott> december 2012?
13:13:16 <ais523> meh, that's a sufficiently busted reference that I tend to ignore it
13:13:29 <Vorpal> elliott, Maya?
13:13:39 <elliott> ais523: it's called a _joke_
13:13:42 <elliott> you may have heard of it.
13:13:58 <ais523> but it isn't particularly funny
13:14:08 <elliott> oerjan: outrageous
13:14:23 <oerjan> elliott: i'll just have to take the audience i get
13:15:41 -!- asiekierka has joined.
13:15:52 <asiekierka> is anyone here?
13:15:56 <oerjan> nope
13:15:59 <oerjan> oh darn
13:16:07 <asiekierka> i'm forced to type from netcat so i was seriousthere
13:16:27 <oerjan> fancy
13:16:45 * ais523 sends a ctcp version and waits a minute or so for asiekierka to type the reply
13:16:46 <oerjan> also some dedication
13:16:54 <oerjan> ais523: :D
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:22 <oerjan> O_o
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:37 <asiekierka> no binaries for other IRC clients
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:26 <asiekierka> it drops bears
13:18:31 <asiekierka> oerjan link
13:18:40 <oerjan> asiekierka: *WHOOSH*
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:14 <ais523> automatically
13:19:20 <asiekierka> didn't
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:07 <asiekierka> :D
13:20:10 <ais523> most servers aren't so forgiving
13:20:15 <elliott> oh, asie.
13:20:17 <elliott> is back again
13:20:19 <fizzie> The perfect PONG. Long thought to be just a myth.
13:20:23 <asiekierka> yes
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:34 <elliott> why not?
13:20:44 <elliott> also, what did you do, pikhq_ :(
13:21:02 <asiekierka> pikhq did awesome
13:21:06 <asiekierka> why?
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:21:40 <asiekierka> derp
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:31 <asiekierka> i am serious D:<
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:05 <asiekierka> no, not yet
13:23:14 <elliott> zzo's is in php
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:51 <asiekierka> i'll try fixing ircii
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:11 <asiekierka> openssl?
13:24:11 <ais523> under a)
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:35:57 <elliott> and in classes
13:36:34 * elliott feels bad ::::: ((((
13:36:45 -!- asiekierka has joined.
13:36:45 <ais523> "type on the LHS"?
13:36:47 <asiekierka> yes!
13:36:52 <asiekierka> yes
13:36:58 <asiekierka> i finally compiled a sane IRC client
13:36:58 <oerjan> maybe!
13:37:09 <fizzie> No!
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:37:36 <elliott> ais523: i.e.
13:37:40 <elliott> HashSet<T> x = ...
13:37:41 <elliott> rather than
13:37:44 <elliott> Set<T> x = ...
13:38:06 <ais523> elliott: aha
13:38:06 <ais523> well, it depends on if you're doing anything with it that would require a HashSet in particular
13:40:31 <elliott> nope
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:28 <elliott> public void load()
13:41:31 <elliott> Loads the configuration file. All errors are thrown away.
13:41:31 <elliott> save
13:41:31 <elliott> public boolean save()
13:41:31 <elliott> Saves the configuration to disk. All errors are clobbered.
13:41:31 <elliott> sounds safe
13:41:53 <fizzie> What does save() return?
13:42:27 <ais523> a boolean
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:14 <asiekierka> hep
13:43:19 <asiekierka> whoops, testing out ircii
13:43:19 <Deewiant> Presumably success
13:43:25 <asiekierka> it's hrrible but not as bad as netcat
13:43:31 <fizzie> Deewiant: But it "clobbers" all the errors.
13:43:53 <elliott> fizzie: Who knows?
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:44 <fizzie> Yes; a bloody mess.
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:11 <ais523> I care more about x32
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:01:57 <elliott> ais523: yes
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:06 <elliott> HOLE IN ONE
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:04 <Vorpal> huh
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:22 <Vorpal> aaaah
15:04:24 <ais523> (PID 1 is fakeinit)
15:04:25 <Vorpal> ais523, why would it error out if you don't get PID2
15:04:27 <Vorpal> I mean...
15:04:29 <Vorpal> why
15:04:34 <ais523> because it means something's gone wrong with the reproducibility
15:04:35 <Vorpal> PID 2*
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:18 <Vorpal> wtf is cryopid?
15:05:20 <elliott> amazing
15:05:28 <Vorpal> anyway I don't even HAVE a /dev/kmem
15:05:33 <elliott> Vorpal: jfgi
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:05:47 <Vorpal> ah
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:06:29 <ais523> (not to mention kill)
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:38 <Vorpal> hm
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:56 <ais523> and PID 1 is init
15:10:58 <Vorpal> Lymee, no that is PID 1
15:11:01 <ais523> or fakeinit, in my case
15:11:01 <Lymee> Ah.
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:26 <Vorpal> yes, whatever that is
15:11:28 <ais523> according to that man page, yes
15:11:36 <Lymee> WTF is that?
15:11:42 <Lymee> Something pre-init?
15:11:54 <Phantom_Hoover> Yes.
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:04 <oklopol> who's a linux?
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:14:51 <ais523> yep, apparently so
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:13 <Vorpal> elliott, hehe.
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:15:45 <elliott> oklopol: right
15:15:59 <ais523> T t = getT();
15:16:00 <oklopol> which is why i've been thinking about having that in a lang
15:16:04 <oklopol> for longs of times
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:16:45 <Phantom_Hoover> Or alternately abuse scoping rules.
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:05 <Taneb> Hello!
15:17:15 <Phantom_Hoover> Hello.
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:16 <elliott> hi
15:17:25 <elliott> oklopol: :D
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:17:49 <oklopol> ^
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:31 <elliott> <vorpal> whats an (N,N)
15:18:38 <ais523> Vorpal: one-hot!
15:18:45 <Vorpal> ais523, oh true.
15:18:50 <ais523> although that's a unary variant
15:18:52 <Vorpal> yeah
15:18:53 <Vorpal> hm
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 <Vorpal> ais523, ah
15:19:27 <Taneb> Signed integers can also have Base -2 inegers
15:19:31 <Taneb> *integers
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:19:47 <Vorpal> oh right
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:12 <elliott> lol
15:22:15 <Taneb> I don't get that XKCD
15:22:24 <Taneb> Strunk and White?
15:22:29 <elliott> Taneb: o_O
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:22:55 <elliott> ais523: you do
15:22:59 <Taneb> I'm British
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:05 <elliott> Taneb: so am I
15:23:10 <ais523> it's because the comic itself makes them out to be sticklers
15:23:17 <elliott> hmm, true
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:54 * elliott boggles mildly at ais523.
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:02 <Taneb> is
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:32 <elliott> hope this helps
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:24:54 <ais523> yep
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:43 <oklopol> in a comic
15:27:46 <oklopol> therefore it is funny
15:27:51 <elliott> "cast (x as T y) { ... } else { ... }", say
15:28:03 <oklopol> Taneb: well penis enough.
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:04 <Vorpal> Gregor, true.
15:29:07 <elliott> Man, why am I even coding Java.
15:29:09 <elliott> Vorpal: Statically.
15:29:11 <fizzie> elliott: "try { T y = (T) x; ...; } catch (ClassCastException) { ... }" :p
15:29:16 <elliott> fizzie: Yeeeeeeeeeeees.
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:43 <elliott> ais523: LMAO
15:29:48 <elliott> fizzie: Perfect.
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:31:59 <Taneb> I invoke Godwin's
15:32:01 <elliott> How is this still less than three hundred lines :-/
15:32:04 <Taneb> And Poe's
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:16 <ais523> ah, aha
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:07 <oklopol> erm
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:08 <ais523> I don't think so
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:56 <elliott> i dunno, I'm laughing
15:36:59 <elliott> although i'm not sure why...
15:37:02 <ais523> elliott: ditto
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:04 <oklopol> i mean worked
15:38:12 <oklopol> argh
15:38:19 <oklopol> i failed at sentence.
15:38:21 <Taneb> Huh
15:38:22 <oklopol> let me retry
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:39 <oklopol> *add
15:38:46 <Taneb> Turned out he got recursion, he just didn't get the return statement
15:39:19 <oklopol> wanna see me recurse?
15:39:21 <oklopol> fuck
15:39:21 <oklopol> fuck
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:39:41 <Taneb> Not professionaly
15:39:44 <oklopol> that was my first joke
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:07 <elliott> this is too ridiculous
15:40:17 <ais523> second line, that is, not second joke
15:40:34 <oklopol> ais523: ?
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:32 * oklopol explains just in case
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:06 <elliott> gotta curate
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:28 <oklopol> i'm on fire :O
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:15 <oklopol> ais523: i did?
15:44:27 <ais523> err, no you didn't
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:23 <Taneb> Statement, then
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:40 <ais523> or asm, I suppose
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:01 <ais523> fizzie: good point
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:57:36 <elliott> how unfair
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:00:27 <elliott> :D
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:18:41 <oklopol> ben ate taneb
16:18:52 <Taneb> He did?
16:19:22 <oklopol> i saw: boob was i :(
16:23:29 <oklopol> EU? EU queue!
16:24:03 <oklopol> i apologize the cheating but that was just too good to pass
16:24:06 <oklopol> *for
16:24:07 <ais523> oklopol: that last one is execllent
16:24:12 <ais523> *excellent
16:24:22 <oklopol> yeah
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:40 <oklopol> yay!
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:27:15 <elliott> :(
16:28:41 <oklopol> so, ol' git felt a rat left igloos
16:28:45 <Taneb> Lion oil!
16:29:11 <oklopol> also english has way too much of that gh and sh stuff
16:29:19 <Phantom_Hoover> Taneb, the oil of champions!
16:29:31 <oklopol> i mean "the" is probably just there to annoy palindromists
16:29:54 <oklopol> oops, i eh: "the" is poo.
16:30:08 <oklopol> luckily everything is a verb in english
16:30:26 <Phantom_Hoover> Everything everythings 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:17 <oklopol> argh
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:32:41 <Taneb> Bye
16:32:44 <oklopol> this language is too hard
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:36:46 <Taneb> Hello
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:50 <oklopol> !
16:37:57 <Taneb> I'm no good at palindromes
16:38:09 <oklopol> me neither, as recently proven
16:38:15 <Taneb> Better than me
16:38:32 <oklopol> eh, "seven a mom"
16:38:38 <oklopol> you would never say "seven a mom"
16:38:56 <Taneb> Not personally.
16:39:04 <oklopol> well there you go
16:39:05 <Taneb> I would say "seven a mum"
16:39:08 <Taneb> British
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:40:34 <Taneb> No?
16:40:43 <oklopol> ok nm then
16:40:54 <Taneb> "mu, emphasis"?
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:50 <Taneb> Oh dear; read ho!
16:42:57 <oklopol> also i'm not really following the story :D
16:43:05 <oklopol> Taneb: you are a natural
16:43:27 <oklopol> "lion oil" was just awesome
16:44:07 <Taneb> E, esoteric, ire to see.
16:44:19 <oklopol> :D
16:44:33 <Taneb> So, is there an annoying esoteric programming language called "E"?
16:44:35 <oklopol> ^ also a palindrome
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:47:50 <oklopol> yay
16:47:51 <elliott> wouter has an e i think
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:49:06 <oklopol> dim u, he be humid!
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:51:39 <oklopol> :D
16:52:13 <oklopol> what's eg tho
16:52:25 <Taneb> eg. means for example
16:53:15 <oklopol> right
16:53:18 <fizzie> Isn't that "e.g." CONVENTIONALLY?
16:53:21 <oklopol> yeah
16:53:28 <Taneb> Probably
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:54:29 <oklopol> so like
16:55:32 <oklopol> i suppose "flow ebb" is like you telling malbolge to be easier to write?
16:55:47 <Taneb> Yep.
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:30 <Taneb> r
16:56:34 <oklopol> :D
16:56:39 <oklopol> okay
16:56:40 <Taneb> Sheep is the same in the plural
16:56:42 <oklopol> you are a fucking genius
16:57:00 <Taneb> So I'm told
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:14 <Taneb> That works too
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:01:46 <Phantom_Hoover> And 1 clown.
17:02:10 <Zwaarddijk> poor clown
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:34 <Taneb> Bye
17:03:52 <oklopol> i'm not giving you another one
17:04:28 <Gregor> Phantom_Hoover: The clown was gay.
17:04:47 <Phantom_Hoover> Gregor, also a gypsy Jehova's witness?
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:08:51 <oklopol> so this was fun
17:08:53 <oklopol> what's next?
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:10:48 <Gregor> Ahh
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:12:55 <olsner> was that a pun?
17:13:29 <oklopol> yes
17:13:35 <oklopol> a horrible horrible pun
17:13:36 <olsner> ok
17:13:45 <oklopol> it's the theme of the day
17:13:53 <oklopol> how unusual
17:14:49 -!- cheater_ has joined.
17:20:34 -!- cheater__ has joined.
17:21:53 <oklopol> wow i really need to sleep
17:21:54 <oklopol> ->
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.
17:40:35 <Taneb> Hello!
18:00:16 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
18:00:51 <Taneb> Hello?
18:02:06 <elliott> hello
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:48:23 <boily> hello.
18:48:30 <elliott> hello
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:17:49 <elliott> cartoonISH
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:45 <monqy> `quote 501
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:13 <monqy> sgeo confuses me
19:19:31 <olsner> `quote 500
19:19:33 <HackEgo> 500) <Taneb> Turned out he got recursion, he just didn't get the return statement
19:19:37 <olsner> `quote 499
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:47 <olsner> `quote 498
19:19:49 <HackEgo> 498) <fizzie> elliott: You have become the very thing you fought for!
19:19:54 <olsner> `quote 497
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:20:52 <elliott> :D
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:42:22 <oerjan> law.
19:42:43 <olsner> oh, that
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:30 <elliott> Eh?
19:45:38 <elliott> Oh :P
19:45:54 <elliott> How do you state an actual negative with these towers
19:45:54 <oerjan> NOTHING, ABSOLUTELY NOTHING
19:46:01 <oerjan> towers?
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:31:51 <asiekierkaDS> hi
20:33:05 <olsner> Hi! Welcome!
20:33:20 <oerjan> Auf Wiedersehen! Goodbye!
20:33:27 <asiekierkaDS> D:
20:33:42 <olsner> bye bye, oerjan!
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:03:41 <Taneb> Hello!
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:12 <oerjan> hm...
21:10:29 <oerjan> `translatefromto en pl Hi
21:10:31 <HackEgo> No output.
21:10:34 <oerjan> `translatefromto en pl Hello
21:10:36 <HackEgo> No output.
21:10:48 <oerjan> `translatefromto en no Does this work at all any more?
21:10:50 <HackEgo> No output.
21:10:57 <oerjan> apparently not.
21:12:24 <oerjan> `translate Fru Ibsens ripsbusker og andre buskvekster
21:12:26 <HackEgo> No output.
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:48 <zzo38> What is a laxask?
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:56 <zzo38> That is correct.
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:19 <elliott> whats the laymans
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:29:31 <Phantom_Hoover> elliott, a drawing of y=f(x).
21:29:59 <elliott> oh
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> BILLING SUMMARY
21:44:20 <elliott> ---------------
21:44:20 <elliott> PRIOR BALANCE: $0.00
21:44:20 <elliott> [2011-06-25] $-10.67 = Prorated refund for rutian - 256 slice
21:44:20 <elliott> ---------------
21:44:21 <elliott> NEW BALANCE: $-10.67
21:44:27 <elliott> rip
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:09 <Phantom_Hoover> http://www.maa.org/devlin/devlin_06_04.html
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:06:40 <Phantom_Hoover> (Nautilus shells are logarithmic, but not golden.)
22:07:35 <oerjan> a missed golden opportunity
22:08:28 <Taneb> Hello
22:08:54 <Phantom_Hoover> Hello.
22:12:47 <Taneb> I've just had an awful idea for an esoteric programming language
22:13:01 <elliott> not uncommon
22:13:37 <zzo38> Taneb: What idea?
22:14:14 <Taneb> The program is a lambda calculus thing
22:14:20 <Taneb> Just one.
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:15:27 <elliott> Taneb: see lazy k
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:18:03 <oerjan> O_O
22:18:07 <oerjan> shocking!
22:18:14 <monqy> im shocked
22:19:49 <elliott> Taneb: just predefined combinators:
22:19:57 <elliott> S = \x.\y.\z.(xz)(yz)
22:19:59 <elliott> K = \x.\y.x
22:20:02 <elliott> I = \x.x
22:20:04 <elliott> where \ is lambda
22:20:09 <elliott> and you just compose your programs out of those + application
22:20:13 <elliott> no lambda abstractions
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:13 <monqy> javascript?
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:32 <elliott> as {a:b,c:d}
22:24:35 <elliott> I _think_.
22:24:53 <elliott> Gregor: a la python's TWO ASTERISKS kwargs
22:24:59 <monqy> **
22:25:10 <elliott> tasterisks
22:25:12 <elliott> disasterisks
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:25:43 <oerjan> eek
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:43 <monqy> a good answer
22:26:45 <oerjan> oh hm
22:26:50 <oerjan> !unlambda `` ```sii ```sii ``s``s`ks``s`kkii .* i
22:26:51 <EgoBot> ​****************************************************************************************************************************************************************************************************************************************************************
22:27:27 -!- GuestIceKovu has joined.
22:27:41 <monqy> hi guesticekovu
22:29:17 <oerjan> Taneb: unlambda is the first and most famous SKI esolang
22:29:52 <Taneb> Okay
22:29:59 <elliott> but the worst :(
22:30:06 <oerjan> it's not lazy though. in fact it has continuations and callcc
22:30:09 <elliott> it's ok i forgive madore
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:34:43 <elliott> wat
22:34:55 <Phantom_Hoover> *erotic gay elf fanfiction
22:35:00 <Phantom_Hoover> Erm, you were the one who found it.
22:35:14 <elliott> no i wasn't?
22:35:22 <oerjan> XD
22:35:33 <Phantom_Hoover> DON'T DENY IT
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:44 <Phantom_Hoover> It is actually the reason you got into esolangs.
22:35:52 <elliott> Yes totally.
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:16 <Phantom_Hoover> MYSTERY SOLVED
22:36:23 <elliott> `quote gay vampire
22:36:24 <HackEgo> 401) [on Sgeo's karaoke] <Phantom_Hoover> That is the thing that made me into a gay vampire.
22:36:26 <elliott> I rest my case.
22:38:01 <oerjan> well madore is a creep anyway, never answered any of my emails.
22:39:00 <elliott> :D
22:42:42 <oklopol> morning
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:24:18 <oerjan> O_o
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:19 * Phantom_Hoover → sleep
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 :(
2011-07-13
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:01:35 <oklopol> *genius
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:00 <monqy> double genius
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:01 <oklopol> :D
00:17:04 <oerjan> oklopol: um what about ripsbusker
00:18:10 <oklopol> no way to fail at that
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:07 <oerjan> *silent letter
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:29 <oerjan> busk = bush, shrub
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:30:40 <oklopol> given swedish "grow"
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:35:41 <oerjan> SYNCHRONICITY
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:37:33 <oklopol> not very good
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:25 <oklopol> erm
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:45:10 <oklopol> so very synch
00:52:30 <oerjan> mhm
00:52:53 * oerjan learned it from wikipedia's front page, btw
00:53:06 <oklopol> the episode is very very old
00:53:20 <oerjan> ah
00:53:22 <oklopol> so there can really be no connection
00:54:06 <oklopol> SPOOKY
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:10 <oklopol> what's that?
00:57:17 <oerjan> DEAD
00:57:33 <oklopol> idgi
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:21 <oerjan> memes are so egoistic
00:59:36 <oklopol> they are?
00:59:44 <oerjan> yes, they contain "me" twice
00:59:52 <oklopol> :DS
00:59:56 * oklopol slows
01:02:21 <oerjan> hm apparently the english insist on spelling that meaning as "egotistic", for some reason.
01:02:44 <oklopol> yeah
01:02:50 <oklopol> i always found that compuddling
01:04:41 <oerjan> how cromulent
01:04:55 <oklopol> rather the elapsidance.
01:14:31 <oerjan> ah found it: http://www.smbc-comics.com/index.php?db=comics&id=2295#comic
01:15:46 <oklopol> sticktothativeness
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:23:38 <oklopol> or was it xkcd
01:23:40 <oklopol> that pi thing
01:26:52 <oklopol> http://www.smbc-comics.com/?db=comics&id=1913#comic :DSDSDAFADSFASDFDSA
01:30:41 -!- myndzi has joined.
01:37:15 <cheater__> smbc cynicism is weary
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:35 <oklopol> maybe
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:53:49 <oklopol> or just the last one
01:54:05 <oklopol> so what's CTAN
01:54:18 <zzo38> CTAN = Comprehensive TeX Archive Network
01:55:22 <zzo38> Do you want these programs?
01:55:33 <oklopol> no!
01:55:39 <oklopol> i have all i need
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:12 <oklopol> i use latex
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:02:09 <oklopol> rather freeform
02:08:39 -!- oerjan has quit (Quit: Good night).
02:09:05 <cheater__> oklopol, no, just the last square
02:09:10 <cheater__> and interestingly enough the comic book is ALWAYS better than the original
02:13:43 <oklopol> weird
02:16:39 <tswett_> Vittu nostaa.
02:16:59 <tswett_> Ino aminen läksi.
02:19:11 <oklopol> samat sanat
02:20:09 <tswett_> Sana sanat sanat sana.
02:22:03 <tswett_> Perkelin vittu, I can't access Wiktionary.
02:22:28 <oklopol> perkeleen
02:22:34 <tswett_> Really?
02:22:50 <oklopol> if you mean the genitive of perkele
02:23:03 <tswett_> I do.
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:23:35 <tswett_> But no matter.
02:24:18 <oklopol> perkele is originally the finnish god of thunder afaik, nowadays mostly means satan
02:24:46 <tswett_> Huh.
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:32 * tswett_ nods.
02:26:49 <tswett_> I should perhaps figure out how to say some useful stuff.
02:26:53 <tswett_> Kuva.
02:27:22 <oklopol> kuva puree lammasta
02:27:33 <tswett_> Suomen kuva lasti köri. I think that stopped being Finnish pretty quickly on.
02:27:46 <tswett_> Yes, what is what?
02:28:06 <oklopol> kri isn't finnish afaik
02:28:19 <tswett_> Is lasti?
02:28:22 <oklopol> except kri kri is something a silly car might say
02:28:36 <oklopol> krtellessn.
02:28:53 <oklopol> lasti means like a truckload
02:29:01 <oklopol> or an ejaculation
02:29:04 <tswett_> I see.
02:29:46 <tswett_> Lammasta heimo syödä.
02:30:15 <tswett_> Koira syödää lammasta.
02:31:05 <oklopol> syd is not finnish
02:31:07 <tswett_> Sota.
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:03 <tswett_> I see.
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:33 <tswett_> No, the nominative.
02:32:34 <oklopol> essentially
02:32:46 <oklopol> third-person singular present = sy
02:32:53 <tswett_> I see.
02:32:58 <tswett_> Laskea irti.
02:33:15 <oklopol> to let go
02:33:38 <tswett_> Hövemäpästi.
02:33:47 <oklopol> that's nothing
02:34:05 <tswett_> I'm good at Finnish. :D
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:38:41 <oklopol> *contexts
02:39:49 * oklopol checks that heimo is actually a finnish word
03:02:36 <pikhq> Jeeze. Google+ is at 10 million users.
03:02:39 <pikhq> It's been a week.
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:03 <oklopol> oh that thing
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:24 <quintopia> dvi or ps is fine too i think
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:46 <quintopia> it failed to download
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:17:49 <zzo38> Or the name
06:18:00 <zzo38> Or ability scores
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:25:43 <coppro> s/second/first/
06:26:11 <quintopia> i agree with coppro
06:26:25 <quintopia> Iucklwiv is somewhat pronounceable
06:26:54 <quintopia> i'd change Kjugobe to Djugobe, since Kj is tricky
06:27:03 <coppro> nah
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:45 <quintopia> but that's inconsistent
06:27:55 <coppro> inconsistent how?
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:23 <quintopia> in that case i'd spell it Kiugobe
06:28:34 <quintopia> or Jucklwiv
06:28:46 <quintopia> is it english?
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:07 <coppro> exactly
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:38 <quintopia> this is for roleplaying isnt it?
06:31:43 <coppro> quintopia: No reason a character's name would necessarily be unilingual
06:31:58 <quintopia> i can think of one
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:35:07 <quintopia> ah
06:37:21 <zzo38> I do have a random "Character Lifepath" script
06:37:28 <quintopia> haha
06:37:55 <zzo38> In many cases some (or all) of the results of that script cannot be used, though
06:38:36 <quintopia> then it needs improvement
06:38:47 <quintopia> have it pick a trope from tvtropes :P
06:39:04 <coppro> :D
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:41:47 <quintopia> randomly
06:42:03 <coppro> really? awesome
06:42:39 <coppro> ah, yes
06:42:44 <coppro> cool
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:47:11 <quintopia> did you write this?
06:48:01 <zzo38> I did write the script however most of the information contained in the script is from other sources.
06:48:19 <quintopia> it looks very useful
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:00:57 <quintopia> what is TIM? timidity?
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:02:05 <quintopia> ah
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:03:59 <quintopia> ok
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:07:55 <quintopia> but with random chance
07:08:08 <quintopia> like .zip
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:20 <quintopia> you should document it
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:11:28 <quintopia> on esolang wiki
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:27:41 * pikhq_ sucks at sleeping.
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:41 <oerjan> oops
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:53:05 <oerjan> NO IT IS NOT
11:54:44 <fizzie> Do you think it is kjuut instead of tricky?
11:54:57 <oerjan> er?
11:55:25 <oerjan> Kj er kjempelett
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:56:06 <oerjan> indeed
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:25 <oerjan> i don't know
12:00:39 <oerjan> english doesn't, but french, german, and norwegian do, iirc
12:01:01 <CakeProphet> Spanish and Italian as well.
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:15 <CakeProphet> haha, nice.
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:06:59 <CakeProphet> ....
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:13 * CakeProphet kind of wants to read The Blah Story
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:03 <CakeProphet> ...this sounds like such a good read.
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:06 <oerjan> speaking of fungot...
12:16:31 <oerjan> brave sir fungot ran away
12:16:38 -!- fungot has joined.
12:16:42 <CakeProphet> fnord
12:16:53 <CakeProphet> the best English word.
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:02 <oerjan> ^style
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 <CakeProphet> ^style speeches
12:17:28 <fungot> Selected style: speeches (misc. speeches from Project Gutenberg)
12:17:37 <CakeProphet> fungot: Hello
12:17:38 <fungot> CakeProphet: the nebraska bill finds an early occasion to make a few words upon the general position.
12:17:41 <oerjan> fizzie: yw
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:23 <CakeProphet> oerjan: do you know what Nebraska is?
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:19:43 <CakeProphet> ...this blows my mind.
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:04 <oerjan> doubtful
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:22:15 <CakeProphet> Wyoming
12:22:43 <CakeProphet> is an interesting word.
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:24:39 <CakeProphet> oh, from that Munsee word.
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:25:32 <CakeProphet> more than half.
12:26:11 <oerjan> west virginia, virginia, maryland,
12:26:22 <CakeProphet> ...I was about to type that exact same sequence....
12:26:30 <CakeProphet> that is a bit weird.
12:26:35 <oerjan> heh :P
12:26:38 <fizzie> I was about to add Maryland first.
12:26:55 <oerjan> washington dc (not a state)
12:27:45 <oerjan> utah
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:00 <oerjan> i _did_ say idaho :P
12:28:05 <CakeProphet> oh, my bad. :P
12:28:06 <fizzie> And Washington.
12:28:16 * CakeProphet can read.
12:28:29 <CakeProphet> I may actually needed to get glasses soon.
12:28:32 <CakeProphet> *need
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:31:50 <CakeProphet> :)
12:32:06 <CakeProphet> ^style
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:19 <CakeProphet> %style youtube
12:32:24 <CakeProphet> ^style 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:34:46 <CakeProphet> okay, I give up on this. :P
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:40:49 <CakeProphet> *and references
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:35 <CakeProphet> so I might try to learn ML soon.
12:42:46 <CakeProphet> but it looks pretty tedious compared to Haskell, so I don't know if I will.
12:43:49 <oerjan> xkcd :D
12:44:12 <CakeProphet> Millilitre
12:44:16 <CakeProphet> oerjan: what?
12:44:29 <oerjan> today's xkcd
12:44:44 <oerjan> http://xkcd.com/
12:44:47 <CakeProphet> oh, hey, it's kind of clever.
12:44:50 -!- Lymee has quit (Read error: Connection reset by peer).
12:44:54 <CakeProphet> this is an improvement. :)
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:58:42 <Taneb> Hello!
12:59:18 -!- derrik has left.
12:59:57 <Taneb> Hello?
13:03:30 <CakeProphet> hello.
13:09:21 <Taneb> What's up?
13:10:03 <CakeProphet> dunno, should probably ask fungot.
13:10:03 <fungot> CakeProphet: great video. woop.
13:10:43 <CakeProphet> fungot: how do you feel about that video?
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:02 <CakeProphet> woop.
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:04:30 <CakeProphet> oh...
14:04:46 <CakeProphet> > ap(++)show$"ap(++)show$"
14:04:48 <lambdabot> "ap(++)show$\"ap(++)show$\""
14:04:50 <CakeProphet> how about this instead. :P
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:12 <CakeProphet> oh nice.
14:05:16 -!- EgoBot has joined.
14:05:18 <oerjan> !haskell putStr.Monad.ap(++)show$"putStr.Monad.ap(++)show$"
14:05:26 <oerjan> oh wait
14:05:29 <CakeProphet> Control.Monad right?
14:05:32 <CakeProphet> with spaces
14:05:36 <CakeProphet> to disambiguate from (.)
14:06:00 <oerjan> no, the syntax is fine, but the -> Monad instance is an orphan one
14:06:17 <CakeProphet> ah, so you need the import.
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:07:16 <CakeProphet> so ap(++)show s = s ++ show s right?
14:07:30 <oerjan> hm yes
14:07:58 <CakeProphet> ...one day I will understand the -> Monad
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:03 <CakeProphet> @src ap
14:09:03 <lambdabot> ap = liftM2 id
14:09:13 <CakeProphet> ah right
14:09:19 <oerjan> basically the -> monad provides an extra argument to everything
14:09:29 <CakeProphet> @src liftM2
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:11 <CakeProphet> ah.
14:10:30 <CakeProphet> okay, so ap is where -> Monad is most useful?
14:10:44 <CakeProphet> not directly with >>=?
14:10:57 <oerjan> oh >>= is useful too
14:11:18 <oerjan> as is join
14:11:43 <CakeProphet> :t join
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:08 <oerjan> > join (++) "a"
14:12:10 <lambdabot> "aa"
14:12:26 <CakeProphet> ah okay
14:12:54 -!- ais523 has joined.
14:12:58 <oerjan> @pl does some of this automatically
14:13:03 <CakeProphet> m (m a) = (->) ((->) a)?
14:13:08 <oerjan> @pl \x -> f x (g x)
14:13:08 <lambdabot> ap f g
14:13:10 <ais523> bleh, the wireless here was getting so shaky that I was given a wired connection instead
14:13:13 <CakeProphet> not really sure how to read that... '
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:19 <CakeProphet> e -> e -> a?
14:14:23 <CakeProphet> is m (m a) here?
14:14:26 <ais523> or should I just search on the error message?
14:14:38 <oerjan> CakeProphet: yep
14:14:43 <CakeProphet> ah okay, that makes more sense.
14:15:13 <oerjan> there's a trick you can sometimes use to get the -> instance type for things
14:15:18 <oerjan> :t join.($)
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:38 <CakeProphet> ah okay.
14:16:41 <oerjan> :t (>>=).($)
14:16:42 <lambdabot> forall a b a1. (a1 -> a) -> (a -> a1 -> b) -> a1 -> b
14:17:05 <CakeProphet> huh, that's... interesting.
14:17:37 <oerjan> @pl \x -> f (g x) x
14:17:37 <lambdabot> f =<< g
14:17:49 <CakeProphet> (>>=)f g a = g (f a) a --??
14:17:53 <CakeProphet> ah
14:17:54 <CakeProphet> yes
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:17 <oerjan> :t ask
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:21:10 <oerjan> yeah
14:22:17 <CakeProphet> what does "the commonly passed argument" even mean?
14:22:36 <CakeProphet> like, an identity argument?
14:23:15 <CakeProphet> > ask :: [Char]
14:23:15 <lambdabot> No instance for (Control.Monad.Reader.Class.MonadReader
14:23:16 <lambdabot> ...
14:23:24 <CakeProphet> :)
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:33 <lambdabot> arising from a use of `GHC...
14:25:34 -!- ais523 has quit (Ping timeout: 252 seconds).
14:25:35 <oerjan> argh
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:09 <ais523_> indeed
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:29:59 <CakeProphet> is this possible?
14:30:09 <CakeProphet> module Foo ( module Foo)
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:17 <lambdabot> 6
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:32 <lambdabot> (*Exception: Prelude.undefined
14:31:44 <Taneb> And a bit of Malbolge for extra measure
14:31:48 <oerjan> CakeProphet: see the difference?
14:32:09 <CakeProphet> I see that State is not as lazy.
14:32:18 <oerjan> the result of the ask is well defined because the state cannot change, but get isn't
14:32:38 <CakeProphet> can you fix get?
14:32:45 <oerjan> sure
14:32:54 <CakeProphet> oh, right.. -_-
14:32:55 <oerjan> > runState (do x <- undefined; put (10); y <- get; return (y+1)) 5
14:32:56 <lambdabot> (11,10)
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:33:52 <CakeProphet> oerjan: right.
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:40 <CakeProphet> ....
14:36:52 <CakeProphet> > fix fix
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:37:25 <oerjan> :t fix
14:37:26 <lambdabot> forall a. (a -> a) -> a
14:38:31 <CakeProphet> something wrong with an infinite -> tree?
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:40:04 <CakeProphet> think of the possibilities...
14:40:09 <CakeProphet> I sure can't.
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:18 <CakeProphet> NOT THE SAME.
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:01 <oerjan> argh
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:33 <oerjan> indeed i am
14:44:45 <ais523_> also, the type of fix is basicaly ((a->b)->(a->b))->(a->b)
14:44:50 <ais523_> *basically
14:44:50 <CakeProphet> okay, well that's kind of cool.
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:23 <CakeProphet> ????
14:45:32 <CakeProphet> > fix (2:)
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:39 <CakeProphet> ais523_: what are you talking about? :P
14:45:46 <ais523_> oerjan: ('a':) is a function
14:45:49 <ais523_> :t ('a':)
14:45:50 <lambdabot> [Char] -> [Char]
14:45:53 <CakeProphet> (a -> a) is a function
14:45:55 <ais523_> see?
14:45:57 <CakeProphet> in (a -> a) -> a
14:46:04 <CakeProphet> .....?
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:11 <ais523_> ah, I see
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:51 <oerjan> huh
14:46:56 <CakeProphet> > fix (a+)
14:46:57 <lambdabot> a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (a + (...
14:47:10 <ais523_> > a + a
14:47:11 <lambdabot> a + a
14:47:21 <CakeProphet> > fix f
14:47:22 <ais523_> is it doing symbolic arithmetic there?
14:47:22 <lambdabot> Ambiguous type variable `a' in the constraints:
14:47:22 <lambdabot> `GHC.Show.Show a'
14:47:22 <lambdabot> a...
14:47:27 <ais523_> :t a
14:47:28 <lambdabot> Expr
14:47:29 <CakeProphet> > fix f :: Expr
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:48 <CakeProphet> ais523_: sort of.
14:47:53 <CakeProphet> it's just an instance of Num
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:51:14 <lambdabot> 3628800
14:52:09 <oerjan> <ais523_> I implemented one recently <-- wait in what language
14:52:47 <ais523_> ICA
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:37 <CakeProphet> oerjan: nifty.
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:57:17 <lambdabot> [55,34,21,13,8,5,3,2,1,1]
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?
14:59:56 <CakeProphet> fix f = f (fix f)
15:00:04 <ais523_> heh, that actually works in Haskell
15:00:19 <CakeProphet> @pl fix f = f (fix f)
15:00:19 <lambdabot> fix = fix (ap id)
15:00:33 <CakeProphet> for elliott.. :P
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:01:52 <ais523_> but I'm used to the dot
15:02:11 <CakeProphet> I don't think that defintion would work.
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:02:41 <lambdabot> t = (((((a -> b) -> a)...
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:39 <lambdabot> a = (((a1 -> b) -> a1)...
15:03:43 <ais523_> hmm
15:03:44 <CakeProphet> oh right, it's even more magical.
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:40 <oerjan> :t fix (ap id)
15:05:40 <lambdabot> forall b. (b -> b) -> b
15:05:48 <oerjan> :t ap id
15:05:48 <lambdabot> forall a b. ((a -> b) -> a) -> (a -> b) -> b
15:06:01 <oerjan> @unpl ap id
15:06:01 <lambdabot> (\ f -> (\ a -> a) >>= \ c -> f >>= \ b -> return (c b))
15:06:06 <oerjan> argh
15:06:26 <CakeProphet> @unpl fix (2:)
15:06:27 <lambdabot> fix (\ a -> 2 : a)
15:07:05 <CakeProphet> how, arbitrary...
15:07:35 <oerjan> :t \f -> f (ap id)
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:08:57 <oerjan> CakeProphet: um no
15:09:18 -!- monqy has joined.
15:09:27 <CakeProphet> oerjan: ah, indeed not. :P
15:09:28 <oerjan> it's ((...) (ap id)) (ap id) i think
15:09:54 <oerjan> :t fix (\f -> ap id f)
15:09:55 <lambdabot> forall b. (b -> b) -> b
15:10:12 <oerjan> ais523_: you switched the argument order, i think
15:10:28 <ais523_> oerjan: perhaps
15:10:41 <oerjan> :t ap id ?f
15:10:42 <lambdabot> forall a b. (?f::(a -> b) -> a) => (a -> b) -> b
15:10:43 <ais523_> @pl fix
15:10:43 <lambdabot> fix
15:11:06 <ais523_> @pl fix f = let x = f x in x
15:11:06 <lambdabot> fix = fix id
15:11:15 <ais523_> heh, that's a nice definition
15:11:22 <ais523_> I wonder if it actually works?
15:11:33 <oerjan> eek
15:11:35 <ais523_> @pl fixnew f = let x = f x in x
15:11:36 <lambdabot> fixnew = fix
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:15 <ais523_> apparently not
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:09 <ais523_> :t fix fix
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:15 <ais523_> @pl fix fix
15:13:15 <lambdabot> fix fix
15:13:27 <ais523_> I see what you mean
15:13:50 <ais523_> :t \f -> f 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:00 <ais523_> indeed
15:14:06 <ais523_> but it's a quick way to verify that it isn't typechecking
15:14:33 <monqy> @unpl fix fix
15:14:33 <lambdabot> fix fix
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 <quintopia> ^style jargon
16:24:01 <fungot> Selected style: jargon (UNIX-HATERS mailing list archive)
16:24:34 <quintopia> fungot: why?
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:01 <quintopia> ugh comcast
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:06 <Gregor> wtfbbq
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:12 <Gregor> AMAZING.
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:36 <Gregor> Vorpal: Nope.
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:03 <Vorpal> I forgot
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:41 <Vorpal> wha
16:54:51 <Vorpal> huh
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:45 <Vorpal> ah
16:55:58 <fizzie> I had one box where the frequency switch was controlled by a small executable that toggled it.
16:56:19 <Vorpal> heh
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:56:47 <Vorpal> heh
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:18 <ais523> err, whoops
16:59:21 <ais523> mispaste
16:59:23 <Vorpal> ah
16:59:42 <ais523> I don't type URLs like that by hand
16:59:52 <Vorpal> of course not
16:59:55 <ais523> (spambots have been known to create pages at such URLs, incidentally)
17:00:01 <Vorpal> yes
17:00:08 <Gregor> Considering that that's the only thing it's done, why don't we just wait it out :P
17:00:45 <ais523> indeed, I plan to
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:28:33 <Gregor> Yessss, new signals!
17:28:35 <Gregor> YUMMMMM
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:03:41 <Vorpal> Gregor, works now?
18:05:14 -!- cheater_ has quit (Ping timeout: 255 seconds).
18:06:42 <Gregor> Seems to work.
18:06:44 <Gregor> I'm online :P
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:46:45 <augur> ahahaha
19:46:48 <augur> im such an ass
19:48:17 -!- cheater_ has joined.
19:48:21 <augur> epifunge :X
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:32 <augur> wat
19:55:48 <augur> obviously TVTropes artistic licenses page titling.
19:57:33 <Phantom_Hoover> Yep, it's for exactly the reason you think it is.
19:57:42 <Phantom_Hoover> It's too harsh on the poor little writers.
19:58:00 <monqy> wow what
19:58:02 <augur> -_-
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:39 <Phantom_Hoover> Yes.
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:04 <monqy> awful, regardless
20:05:47 <olsner> the fail is fail. fail!
20:06:23 <Sgeo> Going to attempt to watch Ghostbusters
20:06:33 <olsner> why?
20:06:42 <Sgeo> ....?
20:07:00 <olsner> ......?
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:32 <oerjan> aha
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:19 <Phantom_Hoover> Like with whatsitsname?
20:18:20 <Sgeo> Taneb, you're going to re-create BancSTAR?
20:18:24 <Phantom_Hoover> The one Conway made.
20:18:30 <Phantom_Hoover> FRACTRAN.
20:18:38 <Taneb> Closer to FRACTRAN
20:18:38 <olsner> Sgeo: speaking of which, any response from FIS?
20:18:47 <Sgeo> olsner, nope
20:18:49 <Sgeo> :(
20:18:52 <olsner> bastards
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:09 <olsner> (I think)
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:21:53 <Phantom_Hoover> 'Terminating decimal'?
20:22:01 <Taneb> Like, not recurring
20:22:03 <oerjan> you mean like 143.598632026?
20:22:07 <Taneb> Yeah
20:22:08 <Phantom_Hoover> Ah, right.
20:22:18 <monqy> somehow fold all digits together then take the result modulo 4 then add one
20:22:32 <Phantom_Hoover> Taneb, take the hash, and find its value modulo 4.
20:22:48 <monqy> hashes work
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:23:22 <Phantom_Hoover> That's good too.
20:24:09 <Phantom_Hoover> http://tvtropes.org/pmwiki/pmwiki.php/Main/BFS
20:24:23 <Taneb> What do swords have to do with anything?
20:24:23 <Phantom_Hoover> Note how 'Frikkin'' links to Precision F Strike.
20:24:32 <Phantom_Hoover> That's not how it works, you idiots.
20:24:51 <monqy> haha tvtropes
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:00 <lambdabot> arising from a use...
20:26:08 <oerjan> argh
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:26:32 <oerjan> oops
20:26:41 <oerjan> oh hm
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:45 <oerjan> > exp 1
20:34:46 <lambdabot> 2.718281828459045
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:22:59 <oklopol> and or's
21:23:03 <oklopol> *and's
21:23:15 <oklopol> or maybe you meant that actual proof
21:23:21 <oerjan> yes.
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:26:50 <oklopol> :D
21:26:52 <oklopol> okay sorry
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:57 <Phantom_Hoover> fungot!
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:00 <Phantom_Hoover> 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:42:53 <Taneb> *may
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:26 <Taneb> It probably can.
21:45:31 <Taneb> It has a GOTO command
21:46:15 <Phantom_Hoover> Which decimal → 1..4 thing did you use?
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:00 <Taneb> No
21:47:16 <Phantom_Hoover> We'll just sweep it under the rug.
21:47:31 <Phantom_Hoover> Move it to Numberwang (crappy BF derivative)
21:47:44 <Phantom_Hoover> oerjan, motion that the wiki has a Brainfuck: namespace.
21:48:28 <Phantom_Hoover> *have
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:49:37 <monqy> no spec?
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:24 <Taneb> b) uncategorized
21:53:39 <Taneb> c) a brainfuck derivative
21:53:55 <Phantom_Hoover> Do it and see if anyone bothers to undo it.
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:16 <Phantom_Hoover> External links.
21:59:23 <Phantom_Hoover> We don't have fancy interwiki stuff.
21:59:25 <Taneb> Thanks
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:12 <oerjan> er *]]
22:04:53 <oerjan> but it may not be a good idea since it makes the link look internal
22:05:01 <oerjan> (also afair)
22:06:44 <Taneb> What do you call it, when you've got the list, the text between the items?
22:07:02 <oerjan> what
22:07:34 <oerjan> clarify please
22:08:12 <Taneb> Like, if I wanted to have Numberwang programs as 13! 42! 2! 7! 9!, it would be "!"
22:08:19 <oerjan> delimiter
22:08:21 <Taneb> Thanks
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:42 <coppro> misewell be
22:09:54 <coppro> oerjan: indeed, but in programming we have the modulo operator
22:10:11 <oerjan> or (mod 4) in symbols
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:10 <oerjan> (ideally)
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:22:32 <oklopol> i'm offended by the name
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:30:01 <Phantom_Hoover> Although my idea was way cooler.
22:30:09 <Phantom_Hoover> I wish I was actually able to make it work.
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:38:42 <Phantom_Hoover> *)
22:39:08 <Phantom_Hoover> It's more like a gentlemen's club.
22:39:55 <Phantom_Hoover> Oh god, that term has been appropriated for strip clubs.
22:40:03 <Phantom_Hoover> WHY DO YOU HAVE TO RUIN EVERYTHING, AMERICANS
22:40:04 <Phantom_Hoover> WHY
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:40:58 <Phantom_Hoover> Well, there you have it.
22:41:13 <monqy> no were a strip club
22:41:17 <Phantom_Hoover> Who wants a game of bridge, then?
22:41:25 <Taneb> Don't know how to play
22:41:27 <Phantom_Hoover> monqy, who's stripping?
22:41:35 <Phantom_Hoover> Nor I!
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:07 <Taneb> On a bridge?
22:43:21 <Phantom_Hoover> Taneb, yes.
22:43:32 <Phantom_Hoover> oklopol, sure, but other than augur, who was watching it?
22:43:53 <augur> oklopol: WAT
22:44:03 <Phantom_Hoover> We haven't had a female member in forever.
22:44:09 <augur> WHERE ARE THESE NAKED OKLOPOLS
22:44:14 <Taneb> You don't know what gender I am
22:44:20 <Phantom_Hoover> (Lymee is almost certainly a 40-year-old man.)
22:44:33 <Taneb> But yeah, I'm male
22:44:39 <augur> how did i miss naked oklopol :(
22:44:40 <augur> T_T
22:44:43 <oklopol> augur: i played something on the piano
22:44:50 <augur> hot
22:44:54 <oklopol> nekkid
22:44:59 <Taneb> Isn't it rich?
22:45:00 <Phantom_Hoover> augur, you'll have to comb the logs.
22:45:02 <Taneb> Aren't we a pair?
22:45:07 <Taneb> Me finally here on the ground,
22:45:11 <Taneb> You in mid-air
22:45:13 <oklopol> actually the vids have been moved to a better place.
22:45:16 <Phantom_Hoover> Taneb, ah, but are you 40 years old?
22:45:19 <augur> oklopol: gimme :D
22:45:24 <Phantom_Hoover> WAIT
22:45:25 <Phantom_Hoover> CPRESSEY
22:45:28 <Phantom_Hoover> IS LIKE 40
22:45:34 <Phantom_Hoover> AND HE HASN'T BEEN HERE LATELY
22:45:40 <oklopol> augur: you can't actually see anything :D
22:45:46 <Phantom_Hoover> IT ALL MAKES SENSE
22:45:49 <augur> oklopol: well what CAN i see
22:45:57 <oklopol> i mean on the vid
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:19 <Taneb> 24 years
22:46:26 <oklopol> and maybe, MAYBE, part of my penis
22:46:32 <oklopol> but nothing else
22:46:46 <augur> oklopol: :O
22:46:49 <augur> i'd watch that
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:44 <monqy> ;_;
22:47:51 <Taneb> It's too...
22:47:58 <Phantom_Hoover> Taneb, gay?
22:47:59 <Taneb> Wrong-gentlemen's-club-y
22:48:01 <Phantom_Hoover> HOMOPHOBE
22:48:12 <Taneb> Nah, too sexual
22:48:18 <Phantom_Hoover> SEXOPHOBE
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:48:55 <Phantom_Hoover> I'b sorry, I can't play the sexophobe right now.
22:49:01 <Phantom_Hoover> I hab a cold.
22:49:04 <augur> oklopol: ;D
22:49:13 <oklopol> i tried to meet elliott
22:49:14 <oklopol> and he's like
22:49:15 <augur> oklopol: depends on what you were looking to be agreed with about
22:49:17 <oklopol> sorry i'm busy
22:49:20 <augur> lol
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:50 <oklopol> "sure seems that way"
22:49:51 <Phantom_Hoover> oklopol, TbH, the part of England elliott lives in is so boring it'd be a waste.
22:49:56 <Taneb> Which part?
22:50:12 <Phantom_Hoover> Taneb, well, that'd be telling.
22:50:21 <oerjan> <Phantom_Hoover> (Lymee is almost certainly a 40-year-old man.) <-- oh, ok.
22:50:29 <Phantom_Hoover> oerjan, wait, who's the other?
22:50:30 <Phantom_Hoover> aloril?
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:52 <Phantom_Hoover> Oh, right.
22:53:54 <Phantom_Hoover> Duh.
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:54:56 <augur> :)
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:55:07 <oklopol> *compilers
22:55:45 <augur> oklopol: oh myyyy
22:56:24 <oklopol> :F
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:24 <Rugxulo> agda?
22:58:27 <augur> agda!
22:58:34 <Taneb> agda.
22:58:36 <oklopol> Taneb: why?
22:58:38 <augur> its like epigram except it gets released xP
22:58:39 <Phantom_Hoover> So is #agda now full of dependently-typed gay sex?
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:13 <oklopol> you are? cool
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
22:59:34 <Phantom_Hoover> augur, why, is he an expert on gay sex?
22:59:43 <oklopol> oh
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:12 <Phantom_Hoover> I wanted to go into the past and slap him.
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:00:48 <oklopol> xD
23:00:50 <monqy> icky gross yuck
23:01:45 <coppro> Taneb: you have been in relationships, yes?
23:01:49 <Taneb> No.
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:40 <oklopol> spewing everywhere
23:02:44 <augur> Taneb: uh, i dont know about you but when i make love it requires milk, flour, eggs, sugar..
23:02:47 <augur> and semen
23:03:02 <Taneb> Oh, look, it's tomorrow
23:03:05 <Taneb> I better go now
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:24 <oklopol> have fun
23:03:25 <Taneb> Bye
23:03:36 <Taneb> Goodnight.
23:03:40 -!- Taneb has left.
23:04:03 <augur> mwahahaha
23:04:32 <oklopol> 1-0 for the sexual people
23:05:49 -!- elliott has joined.
23:06:01 <oklopol> hi elly
23:06:25 <Phantom_Hoover> Three minutes too late.
23:06:49 <augur> elliott!
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:40 <oklopol> eh, scandinavians?
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:11 <Phantom_Hoover> Just as cpressey is Lymee.
23:12:18 <oklopol> i'm a pretty stereotypical finn in many ways
23:12:30 <elliott> oerjan: wat
23:12:49 <oerjan> oklopol: so you are precisely like that finnish guy on satw, right?
23:12:56 <oerjan> just checking
23:13:04 <oklopol> i don't know that much about him
23:13:06 <oklopol> what's he like
23:13:13 <monqy> apparently you
23:13:16 <oklopol> huh
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:26 <oklopol> and broke my heart
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:11 <augur> horrible
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:09 <augur> :\
23:22:25 <oklopol> i was fine with an open relationship ofc but i'm not really a polyamorist
23:22:37 <oklopol> i mean a hole is a hole
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:23:36 <oklopol> oh you
23:25:33 <elliott> Hi,
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> your email address.
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:26:15 <augur> ...
23:27:44 <oerjan> spamic
23:29:00 <elliott> my lines or the email
23:29:19 <oklopol> 7 lines is not very spamic here
23:29:32 <oklopol> 7 screenfuls maybe
23:29:59 <quintopia> i'm proud to be a spamerican
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:31 <oerjan> eviluator
23:30:37 <elliott> oerjan: 07:26:45: -!- BeedaWeeda has joined #esoteric.
23:31:06 <oerjan> hm, i didn't notice
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:31:35 <oerjan> ic
23:31:56 <oklopol> augur: exactly
23:32:00 <oklopol> or debugging
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:23 <elliott> oh wow
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:32:58 <monqy> what
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:22 <monqy> i
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:33:38 <elliott> literally amazing
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:22 <augur> oklopol: e_e
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:14 <monqy> art
23:35:17 <elliott> or arey ou objecting to the english part :D
23:35:20 <oerjan> yeah
23:35:31 <elliott> i want to own everyvolume
23:35:59 <oklopol> "<monqy> is that an actual quotation from an actual volume of that actual story" <<< someone answer plz
23:37:37 <elliott> i believe so
23:37:45 <oklopol> i want to read that shit
23:38:01 <elliott> http://theblahstory.wordpress.com/
23:38:02 <elliott> you're welcome
23:38:05 <elliott> twenty-three volumes
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 me. Blame you.
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:41 <elliott> Blah blah. Blah blah.
23:38:43 <elliott> Blah blah, a blah,
23:38:45 <elliott> Blah in 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:17 <oerjan> *'tis
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:49:54 <elliott> int is a recursive type
23:49:57 <elliott> (bad terminology...)
23:51:18 <oerjan> only if unbounded...
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:52:30 <oerjan> *ocaml with -t
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:01 <elliott> wrong
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:53:39 <oerjan> um i did?
23:53:46 <elliott> oh you did
23:53:48 <elliott> thnx
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:54:43 <elliott> wat
23:55:22 <elliott> 16:24:01: <fungot> Selected style: jargon (UNIX-HATERS mailing list archive)
23:55:22 <elliott> still love this
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:26 <oerjan> @pl fix f = fix f
23:56:26 <lambdabot> fix = fix id
23:56:44 <elliott> ?pl alakazam f = let x = f x in x
23:56:44 <lambdabot> alakazam = fix
23:56:46 <elliott> heh
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".
23:57:51 <elliott> wow.
23:57:52 <oerjan> @pl ap = liftM2 id
23:57:52 <lambdabot> ap = ap
23:57:57 <oerjan> bah
23:57:59 <elliott> just wow.
23:58:18 <Phantom_Hoover> And it's for the exact reason you fear it is.
2011-07-14
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:54 <elliott> NEVER
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:15 <Phantom_Hoover> Oh, you're just before the gay stuff.
00:03:19 <Phantom_Hoover> Poor Taneb.
00:03:25 <elliott> My cringing is ready.
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:15 <elliott> FOLLOW THE FUCKING RULES
00:11:19 <elliott> `delquote 503
00:11:21 <HackEgo> ​*poof*
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:16 <augur> oic
00:12:17 <monqy> I can't see because it breaks the line and I'm too lazy to adjust my terminal
00:13:13 <elliott> yes
00:15:28 <oerjan> elliott: wait what
00:15:36 <elliott> oerjan: ?
00:15:38 <elliott> the two spacing rule
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:16:39 <elliott> oh was it
00:16:45 <elliott> hm
00:16:46 <elliott> logs stripped it
00:16:46 <elliott> heh
00:16:56 <monqy> bad logs
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
00:19:30 <elliott> itt: userspace
01:08:04 <Phantom_Hoover> O...K...
01:08:09 <Phantom_Hoover> I hear seagulls outside.
01:08:18 <Phantom_Hoover> This suggests that it is uncomfortably close to morning.
01:08:24 * Phantom_Hoover → sleep
01:08:26 -!- Phantom_Hoover has quit (Quit: Leaving).
01:08:34 <elliott> It's two am, you idiot.
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:37:36 <elliott> pobia
01:38:05 <Sgeo_> No, but I've never feared dying from pillow before
01:38:18 <elliott> and now you do
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:54:57 <oklopol> that doesn't work.
01:55:13 <quintopia> a pillow fight gets violent
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:55:37 <quintopia> it works with pillows too
01:55:44 <oklopol> ah
01:56:04 <elliott> im a porks
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:37:15 <CakeProphet> ...wait
03:37:22 <CakeProphet> what?
03:40:50 <elliott> ?
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:40 <elliott> What?
03:48:59 <pikhq_> That's the first line of boilerplate in pretty much every debian/rules file.
03:49:07 <elliott> ...so?
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.
03:55:06 <elliott> Gregor: OI
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:31 <coppro> DFSG is pretty good
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> INSTALLATION INSTRUCTIONS
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:04:38 <pikhq_> s/Most t/T/
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:26 <CakeProphet> elliott: try Groovy
04:07:31 <elliott> That's a language.
04:07:32 -!- oklopol has quit (Ping timeout: 252 seconds).
04:07:41 <CakeProphet> (in relation to your Java suffering)
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:26 <CakeProphet> groovy is one such language.
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:08:44 <CakeProphet> and Clojure
04:08:53 <monqy> elliott: ah
04:09:00 <elliott> Scala is a mess. Clojure is also a mess.
04:09:08 <CakeProphet> Jython!
04:09:14 <elliott> Python is... Python.
04:09:14 <monqy> python is a mess
04:09:32 <monqy> is there a perl for jvm
04:09:39 <CakeProphet> doubt it
04:09:43 <CakeProphet> there's only one perl. :)
04:09:46 <elliott> jerl
04:09:51 <pikhq_> Jacl.
04:09:56 <CakeProphet> jaskell
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:16 <monqy> right parrot
04:10:19 <elliott> rather dead now, I think
04:10:43 <monqy> what other languages exist
04:10:46 <pikhq_> elliott: http://jtcl.kenai.com/
04:10:48 <elliott> bancstar
04:10:52 <elliott> pikhq_: "lol"
04:11:01 <CakeProphet> elliott: why not just code in JVM.
04:11:08 -!- oklopol has joined.
04:11:10 <CakeProphet> like a real programer.
04:11:16 <CakeProphet> ...yes, with one m
04:11:21 <pikhq_> Or, more realistically, write your own Forth for JVM.
04:11:22 <monqy> zepto for jvm
04:11:26 <monqy> j zepto
04:11:31 <pikhq_> Jepto.
04:11:36 <elliott> WARNING: You are launching IDE using OpenJDK Java runtime
04:11:37 <monqy> no that ruins it
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:06 <elliott> also, ugly javaish ui
04:12:12 <elliott> pikhq_: there is
04:12:19 <pikhq_> elliott: Like?
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:08 <CakeProphet> Pizza is a superset of Java.
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:14:53 <elliott> big names
04:14:54 <oklopol> pizza tastes good
04:16:32 <Sgeo_> GJ?
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:17 <CakeProphet> Larry Wall = God of teh computers
04:19:17 <monqy> sounds decent
04:19:22 <monqy> impressive
04:19:23 <elliott> CakeProphet: r u srs
04:19:31 <monqy> teh is a serious word
04:19:36 <CakeProphet> ya srsly
04:19:58 <elliott> bleh, IDEA is complex
04:20:06 <monqy> I dislike IDEs
04:20:08 <CakeProphet> what does it stand for?
04:20:16 <elliott> IDEA, I think
04:20:23 <elliott> monqy: yeah but with Java it's not an IDE so much as...
04:20:26 <elliott> monqy: the real language
04:20:36 <monqy> what
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:34 <elliott> that's a joke right
04:21:36 <monqy> yes
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:54 <elliott> ok
04:21:57 <elliott> monqy: go on
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:01 <monqy> I can't
04:22:02 <monqy> it's dead
04:22:04 <monqy> gone
04:22:08 <elliott> :<
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:23:01 <elliott> A: Yes, you are.
04:23:15 <CakeProphet> these answers are so helpful.
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:25:56 <elliott> asterisk HOtMEfSPRIbNG
04:26:02 <monqy> I can't bother to remember that
04:26:23 <CakeProphet> elliott can always be bothered.
04:26:44 <CakeProphet> This is his youthful superpower
04:26:51 <monqy> apparently jaskell is a thing but instead of being like haskell it's weird
04:26:55 <CakeProphet> young whipper-snapper
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:27:50 <elliott> oh god yeah jaskell
04:27:52 <elliott> we found that before
04:27:53 <elliott> it's amazing
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:28:07 <elliott> literally
04:28:10 <monqy> literally
04:28:38 <CakeProphet> There's OCaml-Java
04:29:20 <CakeProphet> Erjang, and Micro Focus JVM Visual COBOL
04:29:29 <elliott> IDEA is upsetting me
04:29:29 <CakeProphet> these are your best choices.
04:29:31 <oklopol> JOBOL
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:46 <elliott> or pascal
04:29:50 <monqy> cobol
04:29:50 <monqy> twice
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 <CakeProphet> there's a C to JVM compiler...
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:30:27 <elliott> IDEA reminds me of J
04:31:00 <monqy> I've never bothered to understand J
04:31:14 <elliott> no the other J
04:31:17 <monqy> oh
04:31:21 <CakeProphet> Alef++, a programming language inspired by Perl and Lisp.
04:31:24 <CakeProphet> Sounds good to me.
04:31:24 <elliott> J the language is awesome you sohuld understand it.
04:31:29 <monqy> CakeProphet: ahahahaha what
04:31:36 <Sgeo_> There are two Js?
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:51 <CakeProphet> under "New JVM languages"
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:14 <monqy> that's obscene
04:32:40 <elliott> oh, IDEA is kind of slow when i type, prolly cause of openjdk
04:32:41 <elliott> i think
04:32:42 <elliott> that i
04:32:44 <elliott> am going to try netbeans
04:33:09 <CakeProphet> I use Eclipse for Java IDEs..
04:33:16 <elliott> me too, it sucks
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:02 <elliott> monqy: J, that is
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:29 <elliott> wrong
04:35:31 <elliott> that's bullshit
04:35:34 <monqy> oh
04:35:36 <elliott> Sgeo_: they are.
04:35:43 <Sgeo_> Hmm, maybe I should make an Ahnk deck thing
04:35:55 <elliott> monqy: so sum is +/%# = +/ % #
04:35:58 <elliott> % is division
04:36:02 <elliott> # is length
04:36:05 <elliott> erm
04:36:08 <elliott> monqy: mean
04:36:08 <elliott> not sum
04:36:13 <elliott> / is over (fold)
04:36:17 <monqy> mm
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:23 <oklopol> *or
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:36:50 <elliott> (and fixed-size)
04:37:02 <oklopol> yes, they always have 7 elements
04:37:04 <elliott> :D
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 <CakeProphet> and fold..
04:37:37 <elliott> monqy: busy is a bad thing to do.
04:37:42 <CakeProphet> and zip
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> Why "Alef++"?
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:05 * elliott barf all over netbeans
04:41:35 <elliott> eclipse it is
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:03 <CakeProphet> I demand a J/Perl hybrid.
04:42:10 <CakeProphet> actually I demand that there be Perl hybrids of every language.
04:42:20 <monqy> perl/lisp oh wait
04:42:24 <elliott> perl/per
04:42:25 <elliott> l
04:42:35 <monqy> actually alef++ doesn't seem anything like lisp to me
04:42:37 <monqy> what am I missing
04:42:39 <Sgeo_> FOR THE LOVE OF ALL THAT IS HOLY WHY WOULD ANYONE WANT BASH INSPIRED SYNTAX
04:42:44 <monqy> hi sgeo
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:25 <elliott> logic
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:43:55 <CakeProphet> lolwhat
04:44:00 <monqy> alef++
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:47:42 <elliott> what
04:47:50 <CakeProphet> elliott: oh hey Pluvo looks pretty cool.
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:08 <monqy> a good idea
04:49:09 <CakeProphet> but I suspect this is superficial.
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:56:38 <elliott> t
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:13 <coppro> elliott: awesome
05:00:35 <coppro> CakeProphet: Because a ***<>* b makes code so clear
05:00:55 <CakeProphet> ha, no, not quite.
05:01:06 <CakeProphet> I mostly prefer things to be convenient. This is why I don't like Java.
05:01:07 <elliott> coppro: "awesome"?
05:01:12 <coppro> elliott: yes
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:11 <elliott> this is java
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:38 <monqy> I've used ***
05:03:38 <coppro> they're just symbols
05:03:40 <monqy> not ||| yet
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:35 <coppro> elliott: This is true
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:04:49 <coppro> elliott:
05:05:12 <elliott> Programming languages are... well, languages; they should optimise for concision for powerful/general/useful/common operators.
05:05:40 <CakeProphet> see: Perl. :D
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:14 <CakeProphet> *sucks
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:07:33 <CakeProphet> I agree with these statements, elliott..
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:24 <coppro> hahahaha
05:10:24 <CakeProphet> yeah, no one uses [] or Maybe...
05:10:44 <CakeProphet> or ->
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:29 <elliott> [asterisk]code.
05:11:37 <CakeProphet> f >>= g a = g (f a) a
05:11:41 <elliott> coppro: <*> is a lot nicer when you see it as "star in a circle".
05:11:43 <CakeProphet> return = const
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:13:59 <CakeProphet> *proper use of infix operators
05:14:06 <coppro> elliott: ok
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:14:55 <monqy> a: no
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:33 <CakeProphet> > ap(++)show$"ap(++)show"
05:15:35 <lambdabot> "ap(++)show\"ap(++)show\""
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:15:55 <monqy> and return is K
05:16:03 <elliott> There's only a handful of main abstractions from category theory to understand, I would say.
05:16:03 <CakeProphet> right.
05:16:05 <elliott> Maybe two handfuls.
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:34 <elliott> Tab characters, that is.
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:17 <CakeProphet> monqy: correct.
05:17:22 <elliott> :t fmap.($)
05:17:23 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
05:17:31 <elliott> ugh
05:17:37 <elliott> :t flip (flip fmap.($))
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:36 <CakeProphet> monqy: oh, so it's identical.
05:18:48 <monqy> but <*> looks a lot nicer than `ap`
05:18:51 <CakeProphet> right.
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:19:44 <CakeProphet> I have done no alluding to Perl....
05:20:00 <CakeProphet> or?
05:20:03 <CakeProphet> what are you talking about?
05:20:18 <monqy> I was asking if you were in the process of alluding to perl
05:20:22 <CakeProphet> oh, no.
05:20:22 <monqy> apparently not
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:20 <elliott> eclipse, u r being bad.
05:21:24 <monqy> meaning of good depending on who is serious
05:21:40 <monqy> hehe ant
05:22:05 <monqy> all I know about it is it uses xml
05:22:13 <elliott> it sucks
05:22:17 <CakeProphet> if you had dynamic typing like Perl, then typeclass hierarchies wouldn't even be an issue!
05:22:31 <CakeProphet> monqy: how was that?
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:36 <coppro> agreed on that point
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> empty :: f a
05:24:41 <elliott> (<|>) :: f a -> f a -> f a
05:24:41 <elliott> some :: f a -> f [a]
05:24:41 <elliott> many :: 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:48 <elliott> CakeProphet: uhhhh, yeah.
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:18 <monqy> @src ArrowPlus
05:28:19 <lambdabot> Source not found. Are you on drugs?
05:28:27 <monqy> :(
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 <CakeProphet> fungot: why is lambdabot so mean?
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:28:55 <monqy> snazzy
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:20 <coppro> elliott: ok fine
05:30:30 <coppro> elliott: monoid it is
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:41 <elliott> presumably.c
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:02 <coppro> (for instance)
05:33:09 <elliott> instances need documentation?
05:33:19 <CakeProphet> elliott: I think so, yes.
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:05 <CakeProphet> > Just 2 `mappend` Just 3
05:34:06 <lambdabot> Ambiguous type variable `t' in the constraints:
05:34:06 <lambdabot> `Data.Monoid.Monoid t'
05:34:06 <lambdabot> ...
05:34:13 <monqy> use +++
05:34:14 <monqy> I mean
05:34:15 <monqy> ++
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:17 <monqy> bleugh
05:34:19 <monqy> :t (++)
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:16 <monqy> :t (.)
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:07 <coppro> elliott: This is true
05:36:14 <elliott> CakeProphet: tbh, I find sourcediving the quickest way to answer such wishes
05:36:21 <CakeProphet> yes, that's normally what I do.
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:38:39 <coppro> elliott: true
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:43 <CakeProphet> see: Perl programmers
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:13 <pikhq_> monqy: Nothing.
05:40:13 <coppro> elliott: ok
05:40:15 <CakeProphet> php programmers don't think anything....
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:40:54 <CakeProphet> or who are paid to be PHP programmers.
05:41:04 <monqy> who pays someone to program in php
05:41:08 <CakeProphet> lots of people...
05:41:12 <CakeProphet> see: the internet
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:34 <CakeProphet> like I said, money.
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:29 <CakeProphet> newtype newtype newtype!
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:23 <elliott> Yeah.
05:44:31 <monqy> newtype is a pain :'(
05:44:57 <CakeProphet> Just have Monoid1, Monoid2, Monoid3, ... :)
05:45:02 <CakeProphet> what could be simpler.
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:46:54 <elliott> "ala Sum"
05:47:29 <coppro> elliott: nice, didn't know about that
05:47:32 <elliott> Conor McBride: always the best?
05:47:33 <elliott> (Yes.)
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:21 <elliott> `quote have become
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:42 <elliott> this thing is 9 pages lol
05:48:43 <coppro> elliott: perhaps I should write a paper on it, or do those exist?
05:48:55 <elliott> coppro: Probably :-P
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:49:57 <coppro> thanks
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:14 <coppro> elliott: sure
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:50 <coppro> ok, fine then
05:51:51 <coppro> I disagree
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:20 <elliott> coppro: I 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:53:11 <elliott> Some of ezyang's oto.
05:53:13 <elliott> too.
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:36 <monqy> :t foldMap
05:57:37 <lambdabot> Not in scope: `foldMap'
05:57:57 <monqy> @hoogle foldMap
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:05 <elliott> It's really vague :P
06:06:08 <elliott> Maybe something like
06:06:10 <coppro> nah
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:31 <elliott> :t mconcat [1..10]
06:06:32 <lambdabot> forall t. (Num t, Enum t, Monoid t) => t
06:06:35 <elliott> It is.
06:06:40 <elliott> > mconcat [1..10]
06:06:41 <lambdabot> Ambiguous type variable `a' in the constraints:
06:06:41 <lambdabot> `Data.Monoid.Monoid a'
06:06:41 <lambdabot> ...
06:06:46 <elliott> > mconcat [1..10] :: [Integer]
06:06:47 <lambdabot> No instance for (GHC.Enum.Enum [GHC.Integer.Type.Integer])
06:06:47 <lambdabot> arising from ...
06:06:52 <elliott> Meh, you can make an instance
06:07:10 <coppro> well sure you can.
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:36 <elliott> :)
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:16:22 <CakeProphet> I want Perl contexts in Haskell. :)
06:16:31 <CakeProphet> except you can define your own contexts.
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:30 <coppro> ah
06:18:37 <elliott> there's also IsString with recent ghc and -XOverloadedStrings
06:18:40 <elliott> from Data.String
06:18:44 <elliott> that lets you overload string literals too
06:18:56 <coppro> ah ok
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:16 <coppro> hmm
06:19:25 <CakeProphet> :t fromString
06:19:25 <lambdabot> Not in scope: `fromString'
06:19:33 <CakeProphet> :t Data.String.fromString
06:19:34 <lambdabot> forall a. (Data.String.IsString a) => String -> a
06:19:57 <CakeProphet> this is a beautiful thing.
06:20:29 <CakeProphet> as that is pretty much the same thing as read.
06:20:36 <elliott> Uhh.
06:20:40 <elliott> No, no it is not.
06:20:47 <CakeProphet> :t read
06:20:48 <lambdabot> forall a. (Read a) => String -> a
06:20:51 <coppro> hmm
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:04 <elliott> code.
06:21:16 <CakeProphet> right, this is even better.
06:21:26 <elliott> It's...
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:54 <lambdabot> Not in scope: `fromString'
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:03 <monqy> oops
06:22:04 <CakeProphet> elliott: k.
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:24:50 <elliott> #haskell is on the case
06:25:30 <monqy> incidentally he also likes perl
06:25:33 <elliott> <c_wraith> "go write perl" seems like an appropriate dismissal
06:25:35 <elliott> CakeProphet: craet
06:25:43 <elliott> caret.
06:25:49 <monqy> ^
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:21 <elliott> Or, well, subtyping.
06:28:25 <elliott> I don't think you are using "supertype" correctly.
06:28:26 <coppro> Not explicitly
06:28:34 <elliott> You mean: data type with one type argument.
06:28:37 <coppro> No
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:03 <coppro> Sure it does
06:29:04 <elliott> No.
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:40 <coppro> err sorry
06:29:49 <coppro> 0
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:21 <CakeProphet> *appreciation
06:30:36 <monqy> dying
06:30:43 <elliott> coppro:
06:30:43 <elliott> :t 0
06:30:44 <lambdabot> forall t. (Num t) => t
06:30:45 <CakeProphet> you haven't lived until you've died.
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:02 <monqy> woah
06:31:05 <elliott> :t (fromInteger (0::Integer) +)
06:31:06 <lambdabot> forall a. (Num a) => a -> a
06:31:07 <elliott> coppro: is that.
06:31:14 <elliott> coppro: not subtyping at all, just syntactic sugar.
06:31:16 <elliott> if you define
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:28 <elliott> data Nat = Z | S Nat
06:31:29 <elliott> then
06:31:35 <elliott> 0 === fromInteger Zero
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:02 <monqy> to me
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:07 <elliott> rephrase thx
06:34:11 <elliott> (pedantic? yup, but so is this discussion :P)
06:34:17 <coppro> elliott: *value
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:41 <monqy> 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:06 <monqy> dead
06:35:08 <elliott> i really want to ban CakeProphet from using haskell
06:35:34 <copumpkin> send him to #agda
06:35:34 <CakeProphet> monqy: and yes I know about it.
06:35:48 <Vorpal> what did he do
06:35:49 <monqy> do you know about quasiquotation specifically
06:36:02 <elliott> Vorpal: bad things.
06:36:03 <CakeProphet> if anything, the intent is a completely meaningless assertion. Call me a language anarchist, I guess. :P
06:36:09 <Vorpal> elliott, such as?
06:36:13 <monqy> perlist
06:36:26 <monqy> CakeProphet: wow are you serious
06:36:28 <CakeProphet> this has nothing to do with Perl...
06:36:38 <elliott> Vorpal: bad
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:13 <CakeProphet> *features
06:37:15 <elliott> you're a bad person
06:37:18 <monqy> guido is crying too
06:37:20 <CakeProphet> nonsense.
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:57 <Vorpal> elliott, whoa
06:37:58 <pikhq_> CakeProphet: "Apathetic to design", more like.
06:38:03 <elliott> main = "print ()"
06:38:07 <Vorpal> elliott, what does -XOverloadedStrings do now again?
06:38:12 <elliott> Vorpal:
06:38:15 <elliott> ?src IsString
06:38:15 <lambdabot> Source not found. This mission is too important for me to allow you to jeopardize it.
06:38:16 <elliott> ugh
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:33 <Vorpal> elliott, eeeer whoa
06:38:36 <elliott> Vorpal: just like integer literals are overloaded
06:38:39 <elliott> Vorpal: it's for ByteString + Text
06:38:39 <Vorpal> errrrr*
06:38:43 <elliott> + other similar packages
06:38:44 <elliott> nothing wrong with it
06:38:46 <Vorpal> elliott, nice
06:38:47 <elliott> unless you let CakeProphet near it
06:38:51 <Vorpal> elliott, I see
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:04 <monqy> it was a mess
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:25 <CakeProphet> pikhq_: no, that's different.
06:39:37 <elliott> pikhq_: the difference is that the language spec forbids that :P
06:39:58 <CakeProphet> that has actual negative consequences.
06:40:14 <elliott> being clubbed in the head is an actual negative consequence.
06:40:15 <elliott> please remember this.
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:46 <elliott> they are (it's me)
06:40:48 <CakeProphet> why would anyone maintain my code?
06:40:50 <CakeProphet> this is silly.
06:40:55 <elliott> so i can club you
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:33 <elliott> Vorpal: loss of soul
06:41:36 <Vorpal> elliott, ah
06:41:39 <elliott> coppro: hartnellant
06:41:42 <elliott> coppro: an abomination against nature.
06:41:45 <Vorpal> elliott, who's soul?
06:41:46 <CakeProphet> elliott: if anything, you should club whoever designed OverloadedStrings
06:41:47 <elliott> Vorpal: mine.
06:41:51 <Vorpal> elliott, aaah
06:41:51 <elliott> CakeProphet: no, they were trusting.
06:41:59 <CakeProphet> why would they ever do that?
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:12 <elliott> it's a strong AI problem
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:14 <elliott> go for tennant
06:44:35 <coppro> k
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:33 <Vorpal> pikhq_, how so
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:06 <monqy> what
06:47:13 <monqy> but it does
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:08 <elliott> why
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:06 <monqy> no
06:50:14 <CakeProphet> because you could use it safely for other purposes.
06:50:16 <elliott> HA;LPERGKJ
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:23 <Vorpal> elliott, try google?
06:51:45 <elliott> Vorpal: docs don't answer nebulous questions of life
06:51:51 <elliott> coppro: oh is smith retirin'
06:51:51 <monqy> I mean
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:01 <elliott> Vorpal: no i tried
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:32 <CakeProphet> monqy: well, not safe in that sense, no.
06:52:40 <CakeProphet> safe in the sense that it's a reasonable use...
06:52:43 <monqy> no
06:52:45 <monqy> it isn't
06:52:52 <monqy> what does reasonable mean
06:53:16 <Sgeo_> Well, hmm, maybe a (Read a) => String -> IO a?
06:53:18 <CakeProphet> sane, useful, not buggy. I don't know.
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:18 <elliott> [f|uck|]
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:32 <monqy> a good thing
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:11 <elliott> it isn't working
06:58:23 <elliott> Vorpal: help
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:18 <elliott> yes
06:59:27 <elliott> monqy: i dont .'t;,mk know
06:59:31 <elliott> im look at eclipse documentation
06:59:41 <elliott> im also cry
07:00:11 <Sgeo_> Why even use that instead of (read "Whatever")?
07:00:24 <Sgeo_> Or, um
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:00 <CakeProphet> and not use overloaded strings.
07:02:08 <elliott> [rhythm|dumf ook dumf dumf ook|]
07:02:11 <elliott> "TOO LONG"
07:02:14 <elliott> [r|dumf ook|]
07:02:26 <monqy> too long
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:51 <elliott> STOPS
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:41 <elliott> i was like wow
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:04 <monqy> im confused
07:10:07 <monqy> :-;
07:10:13 <elliott> what is :-;
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:18 <monqy> ;_;
07:10:31 <monqy> also ;-;
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:11:52 * elliott CRYS; EXTENSIVELY;
07:11:56 * CakeProphet is always serious.
07:12:06 * CakeProphet opens Eclipse.
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:20 <elliott> im doint like you
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:32 <elliott> OR?//////////
07:12:42 <CakeProphet> yes.
07:12:42 <elliott> IM MAKE A BUNCH OF BUKKIT PLUGINS DO I WANT ONE WORKSPACE PER PLUGIN
07:12:47 <CakeProphet> workspace = project
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:15 <CakeProphet> er, not what I meant.
07:13:22 <elliott> but it feels like
07:13:23 <elliott> eclipse
07:13:27 <elliott> wants you to just use one workspace
07:13:31 <elliott> like the default is ~/workspace
07:13:37 <monqy> whats a prbleject
07:13:37 <CakeProphet> oh, right.
07:13:38 <elliott> and switching workspaces is kind of a pain???
07:13:40 <elliott> but
07:13:43 <elliott> at the ame time
07:13:46 <CakeProphet> yeah you normally only use one workspace.
07:13:49 <elliott> monqy: aksjdg
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:09 <elliott> it actually renames them
07:14:13 <elliott> to have (number) after
07:14:15 <elliott> since it considers itt a conflict
07:14:16 <elliott> and im like
07:14:19 <elliott> these are completely separate
07:14:20 <elliott> why are you doing that
07:14:21 <elliott> and like
07:14:23 <elliott> if the build fails in one
07:14:28 <elliott> it bothers you whenver you make a change to another plugin
07:14:29 <elliott> and im like
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:15:38 <coppro> SEGWAYS
07:16:02 <elliott> CakeProphet: no
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:38 <elliott> how does java
07:16:44 * elliott weep
07:16:54 <Sgeo_> elliott, why do you need an IDE again?
07:17:00 <elliott> because java
07:17:02 <elliott> sucks
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:20:59 <elliott> ffff
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:20 <monqy> ides are hell
07:22:22 <elliott> CakeProphet: I WANT TO SPLIT A WORKSPACE
07:22:25 <elliott> god's sake
07:22:27 <elliott> that is not hard to understand
07:22:34 <CakeProphet> elliott: man mv
07:22:39 <elliott> ffs
07:22:44 <elliott> it has metadata files with references to projects
07:22:49 <monqy> haha ides
07:22:50 <monqy> haha
07:23:00 <fizzie> elliott: "cp -a workspace anotherWorkspace"; then delete half of one, switch to the other, delete the other half?
07:23:06 <elliott> fizzie: gross, but fine
07:23:20 <monqy> then clean up the metadata?
07:23:35 <CakeProphet> find would probably be good for that.
07:23:48 <CakeProphet> deleting things, that is.
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:15 <elliott> Lymee: WHAT IDE DO YOU US
07:25:16 <elliott> E
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:27:50 <CakeProphet> well, right.
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:15 <CakeProphet> *just saying
07:28:22 <Taneb> Hello
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:34 <elliott> hi
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:34 <elliott> Hmm...
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:02 <CakeProphet> sometimes programming is like surgery.
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:15 <CakeProphet> yes.
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:31:57 <CakeProphet> :t if'
07:31:57 <lambdabot> Not in scope: `if''
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:29 <CakeProphet> @pl (\c a b -> if c then a else b)
07:32:30 <lambdabot> if'
07:32:34 <elliott> fizzie: Right; that seems like it'd have a lot of duplicated code with Ant though
07:32:36 <elliott> i.e. one per project.
07:33:07 <CakeProphet> ah, so it's not standard, pl is just telling you to define that function.
07:33:21 <elliott> ?hoogle if'
07:33:21 <lambdabot> No results found
07:33:24 <elliott> Meh
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:28 <elliott> God I hate java.
07:34:47 <Sgeo_> 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:27 <elliott> Ugh this is all so gross.
07:37:32 <fizzie> ISTR that running Ant's awfully slow (more than one second) anyway.
07:38:13 <CakeProphet> @pl (\f a b -> g (f a b) a b)
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 <CakeProphet> @hoogle Bool -> a
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:09 <elliott> ugh
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:37 <elliott> :D
07:43:42 <elliott> that's actually brilliant
07:43:47 <elliott> meta-turing-complete, too!
07:43:58 <Vorpal> elliott, wait what?
07:44:04 <Vorpal> meta-turing-complete?
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:32 <elliott> whoosh
07:44:45 <elliott> http://esolangs.org/wiki/Talk:Meta_Turing-complete
07:45:09 <Vorpal> oh tehz
07:45:10 <Vorpal> right
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:45:53 <CakeProphet> ...yes.
07:45:56 <CakeProphet> *supersets
07:46:07 <CakeProphet> but also subsets, I guess.
07:46:23 <Vorpal> elliott, was "<elliott> that's actually brilliant" a joke too? I presume so
07:46:36 <elliott> no
07:46:38 <elliott> its hilarious
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:17 <elliott> MINOR INSPIRATION
07:47:19 <elliott> (REALLY MINOR)
07:47:22 <elliott> ((LIKE, HE SNEEZED))
07:47:24 <Vorpal> wait
07:47:24 <elliott> (((AT THE TIME)))
07:47:31 <Vorpal> elliott, I'll define it more
07:47:35 <Vorpal> elliott, file format:
07:47:36 <elliott> /ignore Vorpal
07:47:42 <elliott> CANT FUCKING HEAR YOU
07:47:46 <elliott> fizzie: how does maven work thx
07:47:51 <Vorpal> <bf command><space><string to be used for it>
07:47:53 <Vorpal> elliott, ^
07:48:09 <Vorpal> followed by newline
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:33 <CakeProphet> "you should define it like this...
07:48:35 <Taneb> So, it's a brainfuck equivalent creation tool?
07:48:55 <Vorpal> Taneb, basically yes
07:48:57 <Vorpal> Taneb, :D
07:49:07 <CakeProphet> ("string to be used" -> "bf code")*
07:49:16 <CakeProphet> followed by a newline, or.. not
07:49:18 <Vorpal> CakeProphet, why that format?
07:49:19 <CakeProphet> this is the best syntax for it
07:49:23 <CakeProphet> because it is the best.
07:49:26 <Vorpal> why
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:49:55 <CakeProphet> it is the best 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:24 <Vorpal> of*
07:50:37 <elliott> it should be
07:50:42 <elliott> /string/bf code/
07:50:45 <elliott> because then it's a subset of ///
07:50:49 <Vorpal> elliott, :D
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:52 <elliott> pikhq: yeah but
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:51:57 <elliott> so
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:56:51 <elliott> I blame Lymee.
07:57:15 <Vorpal> elliott, why
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:27 <CakeProphet> okay so I have encountered a problem...
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:05 <CakeProphet> which is bad.
07:59:42 <Taneb> Add some sort of multiplication thing
07:59:55 <CakeProphet> well that is kind of what * is.
08:00:11 <Taneb> Oh, okay
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:04:03 <CakeProphet> have a -> and a ->*
08:04:26 <CakeProphet> with ->* not being defined in terms of ->
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:06:48 <elliott> no
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:06 <Taneb> Maybe
08:09:12 <CakeProphet> ..
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:11:52 <CakeProphet> that's a possibility.
08:12:02 <elliott> that's the obvious possibility.
08:12:04 <elliott> :p
08:12:14 <CakeProphet> but couldn't I create some hackish semantic model?
08:12:15 <CakeProphet> lol
08:12:32 <CakeProphet> implicit shenanigans.
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:21 <CakeProphet> the a => b := (a = (a ~> b))
08:17:24 <CakeProphet> *then
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:36 <CakeProphet> ...what the hell is this.
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:21:12 <CakeProphet> these laugh track things are unnerving.
08:22:20 <CakeProphet> philosopher and magician Bertrand Russell...
08:27:31 <Taneb> Graaah! I need a numberwang debugger
08:27:34 <Taneb> And a shower
08:27:39 <Taneb> brb
08:27:46 <elliott> That's Numberwang!
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 <CakeProphet> @hoogle (Read a) => String -> Maybe a
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 <CakeProphet> @hoogle String -> Bool
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:37:52 <CakeProphet> !numberwang 22 34 83
08:38:21 <CakeProphet> hmmm, parse error.
08:39:53 <CakeProphet> !delinterp numberwang
08:39:54 <EgoBot> ​Interpreter numberwang deleted.
08:46:57 <TanebIsNotHere> Hello
08:47:01 -!- TanebIsNotHere has changed nick to Taneb.
08:48:15 <elliott> he;lo
08:51:04 <CakeProphet> @hoogle f (a -> f b) -> f a -> f b
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:51:20 <CakeProphet> o rly?
08:52:47 <coppro> none of those appear to match
08:53:00 <CakeProphet> indeed not
08:54:17 <elliott> um, yes they do
08:54:23 <elliott> well, close enough :)
08:54:32 <elliott> :t (join .) . (=<<)
08:54:33 <lambdabot> forall (m :: * -> *) a a1. (Monad m) => (a1 -> m (m a)) -> m a1 -> m a
08:54:40 <elliott> :t join . (=<<)
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:43 <elliott> hmm wait
08:54:56 <elliott> ?pl \f x -> f >>= \f' >>=x >>= \x' -> f' x'
08:54:56 <lambdabot> (line 1, column 19):
08:54:56 <lambdabot> unexpected ">"
08:54:56 <lambdabot> expecting operator, pattern or "->"
08:55:06 <elliott> ?pl \f x -> f >>= \f' -> x >>= \x' -> f' x'
08:55:07 <lambdabot> (. (>>=)) . (>>=)
08:55:10 <elliott> heh
08:55:16 <elliott> wait hmm
08:55:19 <elliott> ?hoogle (<asterisk>)
08:55:19 <lambdabot> Parse error:
08:55:19 <lambdabot> --count=20 (<asterisk>)
08:55:19 <lambdabot> ^
08:55:20 <elliott> someone do that plz
08:56:47 <CakeProphet> @hoogle (<*>)
08:56:47 <lambdabot> Control.Applicative (<*>) :: Applicative f => f (a -> b) -> f a -> f b
08:57:51 <elliott> right
08:57:55 <elliott> :t (join .) . (<asterisk>)
08:57:56 <lambdabot> parse error on input `)'
08:57:57 <elliott> someone do that also.
08:58:06 <CakeProphet> :t (join .) . (<*>)
08:58:07 <lambdabot> forall (m :: * -> *) a a1. (Monad m, Applicative m) => m (a1 -> m a) -> m a1 -> m a
08:58:36 <elliott> see
08:58:38 <elliott> now u r the planet
08:59:04 <CakeProphet> @unpl (join .) . (<*>)
08:59:04 <lambdabot> (\ d i -> (d <*> i) >>= \ e -> e)
08:59:31 <CakeProphet> ......?
08:59:38 <CakeProphet> >>= id?
08:59:40 <elliott> yes.
08:59:41 <elliott> that's join.
08:59:42 <elliott> :t join
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> (line 1, column 4):
09:06:56 <lambdabot> unexpected "{"
09:06:56 <lambdabot> expecting variable, "(", operator or end of input
09:07:04 <CakeProphet> aw...
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:08:52 <CakeProphet> !numberwang 22
09:09:15 <CakeProphet> I am so bad at this it's ridiculous.
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:06 <CakeProphet> !!!
09:11:10 <CakeProphet> !delinterp 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:11:20 <CakeProphet> !numberwang I hate you 23
09:11:39 <Taneb> !numberwang 12
09:11:53 <CakeProphet> it's got a parse error...
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:16 <Phantom_Hoover> !!
09:12:18 <Phantom_Hoover> !_
09:12:19 <EgoBot> I really hope this works.
09:12:21 <EgoBot> I really hope this works.
09:12:21 <Phantom_Hoover> Dammit.
09:12:25 <Phantom_Hoover> Wait, no
09:12:27 <Phantom_Hoover> !!
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 <Phantom_Hoover> !delinterp !
09:13:14 <EgoBot> ​Interpreter _ deleted.
09:13:35 <CakeProphet> !delinterp numberwang
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:15:39 <CakeProphet> !numberwang 22
09:15:40 <EgoBot> That's numberwang!
09:15:43 <CakeProphet> I succumbed...
09:16:12 <Taneb> !numberwang hello
09:16:23 <Taneb> !numberwang 12
09:16:23 <EgoBot> That's numberwang!
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:07 <CakeProphet> !delinterp numberwang
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:18 <CakeProphet> !numberwang when is that?
09:18:23 <CakeProphet> ... :o
09:18:25 <Taneb> !numberwang 2
09:18:26 <EgoBot> 2
09:18:28 <CakeProphet> lol
09:18:58 <Taneb> I believe you have made an error
09:19:03 <CakeProphet> yes I believe so as well.
09:19:13 <Phantom_Hoover> http://www.reddit.com/r/Minecraft/comments/iot8b/dear_miners_and_notch_think_bigger/c25jyoh
09:19:16 <CakeProphet> !delinterp numberwang
09:19:16 <EgoBot> ​Interpreter numberwang deleted.
09:19:23 <Phantom_Hoover> Please please please tell me this person isn't right.
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:07 <CakeProphet> !numberwang what is this?
09:20:12 <CakeProphet> :(
09:20:31 <CakeProphet> !numberwang 44
09:20:52 <CakeProphet> !delinterp numberwang
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:15 <CakeProphet> !numberwang 44
09:21:15 <EgoBot> That's numberwang!
09:21:18 <CakeProphet> !numberwang q
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:44 <Phantom_Hoover> Four, although my one doesn't count.
09:23:46 <Taneb> !numberwang 12!
09:23:46 <EgoBot> That's 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:24:15 <EgoBot> That's numberwang!
09:25:00 <Taneb> Phantom_Hoover: Make your version
09:25:18 <Phantom_Hoover> Taneb, I want to, but it's not an easy task.
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:27:43 <Taneb> Step 5: ...
09:27:43 <Taneb> Step 6: PROPHET!
09:28:03 <Taneb> Hmm...
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:21 <Taneb> Oh dear
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:18 <CakeProphet> Taneb: right.
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:43:21 <Taneb> True
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:48:57 <CakeProphet> this is what a label does essentially.
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:50:58 <CakeProphet> the input string is important.
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:55:35 <CakeProphet> ah, yes, that makes sense.
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> Bye, everyone
09:56:23 -!- Taneb has changed nick to TanebIsNotHere.
09:56:23 -!- TanebIsNotHere has changed nick to TanebIsAway.
09:56:23 <TanebIsAway> Oh, I've dissappeared
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:04:52 <CakeProphet> instead "code golf" redirects to Perl.
11:05:10 <Lymee> Not GolfScript?
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 <lambdabot> Unknown command, try @list
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:27 <lambdabot> Unknown command, try @list
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:44 <CakeProphet> ...what?
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 <Vorpal> !help
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:25:56 <Vorpal> hm it is there
11:30:32 -!- tswett has joined.
11:33:08 -!- Sgeo_ has quit (Read error: Connection reset by peer).
11:41:45 * CakeProphet drinks cow milk like a baby cow
11:44:21 <CakeProphet> Except I am a large bipedal furless ape.
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:01 <CakeProphet> they're all "moooo"
11:51:07 <fizzie> "meeeeh".
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:16 <fizzie> Diverse indeed.
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:56:52 <oerjan> Moo!
11:56:58 <fizzie> Correct!
11:57:07 <oerjan> yay
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:05:59 <oerjan> sounds dangerous.
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:45 <oerjan> in fact...
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:56 <CakeProphet> :t zipWith (zipWith f)
12:59:57 <lambdabot> forall a b c. (Show a, Show b, SimpleReflect.FromExpr c) => [[a]] -> [[b]] -> [[c]]
13:00:48 <CakeProphet> :t zipWith zip
13:00:48 <lambdabot> forall a b. [[a]] -> [[b]] -> [[(a, b)]]
13:00:52 <CakeProphet> what else would you zip with?
13:10:58 <fizzie> :t zipWith zip3
13:10:59 <lambdabot> forall a b c. [[a]] -> [[b]] -> [[c] -> [(a, b, c)]]
13:11:02 <fizzie> A reasonable type.
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:19 <lambdabot> Not in scope: `zapWith'
13:53:19 <lambdabot> Not in scope: `zapWith'
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:56:26 <Taneb> Hello!
13:57:10 <ais523> hi
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:18 <Taneb> Anarchy?
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:08:41 <oerjan> yes.
14:15:12 <ais523> oerjan: is that a mezzacotta reference (with an indirect reference behind it)?
14:15:46 <oerjan> hm not that i recall
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:41 <Taneb> That explains
14:25:44 <Taneb> it
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:46 <Taneb> Windows
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:23 <oerjan> ais523: YOU THINK?
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:31:42 <Phantom_Hoover> Taneb, depends on how you define 'data', I suppose.
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:20 <Taneb> I'm just curious
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:34:12 <Phantom_Hoover> oerjan, OK then, P(R).
14:34:36 <oerjan> fiendish.
14:34:54 <Phantom_Hoover> Just stick Ps on until it gets big enough.
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:36 <Phantom_Hoover> Um...
14:38:43 <Taneb> Or is it sociopathic?
14:38:51 <oerjan> homeopathic
14:39:05 <Phantom_Hoover> Oh, right, that actually does make sense.
14:40:54 -!- ais523_ has joined.
14:42:33 <Taneb> Phantom_Hoover: What, homeopathy?
14:42:44 <Phantom_Hoover> No, what you said.
14:42:51 <Phantom_Hoover> I thought you'd just gone slightly mad.
14:43:06 <Taneb> Nah, not gone.
14:43:11 <Taneb> And not slightly
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:45:54 <oerjan> no
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:07 <oerjan> "
14:46:11 <Phantom_Hoover> Who's stabbing who in the back?
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:46:39 <Phantom_Hoover> Oh god not Firefly.
14:47:54 <Taneb> That'll be the last Firefly I quote, I promis
14:47:57 <Taneb> e
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:07 <oerjan> ais523: wat
14:51:13 <Taneb> Maybe it's you?
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:06 <Phantom_Hoover> Taneb, the internet is collapsing around you.
14:53:11 <Phantom_Hoover> Civilisation is at its end.
14:53:24 <oerjan> loads for me
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:57:53 <Taneb> Hang on
14:57:58 <Taneb> My purpose?
14:58:13 <oerjan> Your Destiny
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:03:20 <cheater_> wtf
15:03:25 <cheater_> eiffel in gmail ads
15:03:56 <Phantom_Hoover> oerjan, on the space horse?
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:10:57 <Taneb> I suspect it is
15:11:05 <CakeProphet> That's numberwang!
15:13:11 -!- augur has quit (Remote host closed the connection).
15:14:23 <Taneb>
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:19:42 <Taneb> Yeah
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:27:27 <oerjan> argh, i mean hm?
15:28:23 <oerjan> Taneb: do step numbers and positions start at 0 or 1?
15:28:45 <Taneb> 0
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:13 <CakeProphet> however...
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:31:04 <Taneb> I think
15:31:18 <oerjan> Taneb: er *0 (mod 9)
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:32:37 <CakeProphet> so I'd have to explicitly backtrack.
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:30 <CakeProphet> oerjan: haha, okay. That's fine.
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:16 <CakeProphet> ...
15:41:20 <CakeProphet> no, this is a terrible idea.
15:41:49 <CakeProphet> Taneb: ternary isn't terribly confusing, but I don't know how numberwang works so...
15:42:20 <Taneb> It's binary
15:42:51 <oerjan> 3,6,0, oh hum
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:44:40 <CakeProphet> this is awesome, you see.
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:38 <monqy> :(
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:13 <Taneb> Okay
15:48:20 <Taneb> So, this crazy idea
15:48:32 <Taneb> ABCDEF... G
15:48:56 <monqy> G?
15:49:08 * oerjan swats Taneb for the heinous crime of abbreviating Adjudicated Blind Collaborative Design Esolang Factory
15:49:14 <oerjan> * -----###
15:49:20 <oerjan> (forgot the swatter)
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:23 <oerjan> O KAY
15:50:25 <monqy> garden is a good word
15:50:32 <Taneb> Gaiden?
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:55:39 <oerjan> 1,4,7, whoops
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:33 <oerjan> anyway, later
15:59:36 -!- oerjan has quit (Quit: leaving).
15:59:36 <Taneb> bye
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:08:34 <Vorpal> ah
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:30 <CakeProphet> :)
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:13:11 <Phantom_Hoover> Why are you discussing hyperbolic surfaces?
16:14:23 <Taneb> Making an esolang
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:15:59 <CakeProphet> yes.
16:16:57 <Phantom_Hoover> All operations are nondeterministic.
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 <CakeProphet> well, I guess that would make sense...
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:19:44 <Phantom_Hoover> Oh, wait.
16:19:45 <Phantom_Hoover> Right.
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:04 <Taneb> And flashinh
16:21:15 <Taneb> You can figure out what I mean
16:22:00 <CakeProphet> operators can only be named as numbers.
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:24:54 <Vorpal> Taneb, ah
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:19 <CakeProphet> which is probably recursive.
16:25:25 <Vorpal> ais523, or that yes
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:06 <Taneb> And befunge
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:26:54 <CakeProphet> I don't even know what that means.
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:27:43 <Taneb> Goodnight
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:29:45 <Phantom_Hoover> <CakeProphet> I don't even know what that means.
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:10 <Taneb> >v
16:30:12 <Taneb> ^<
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:32:34 <Taneb> That works
16:33:08 <Phantom_Hoover> (Is it just me or is that projection not a Poincare disc?)
16:33:17 <Phantom_Hoover> (The lines near the centre seem too straight.)
16:33:57 <Phantom_Hoover> Oh, never mind.
16:35:28 <Vorpal> bbl
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:12 <CakeProphet> yes
16:43:35 <quintopia> one can get an exponentially large number by subtracting one, nopping for a while, and then absing
16:43:40 <quintopia> sounds useful
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:17 <Phantom_Hoover> So it's impossible to use in the Islamic world?
16:44:44 <quintopia> is it possible for a program that is destitute and performing nothing but nops to collect unemployment?
16:45:46 <CakeProphet> I don't know, is it?
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:48:22 <CakeProphet> quintopia: sounds resonable.
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:55:30 <CakeProphet> *incorporating
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:22 <CakeProphet> I think fruit is a good commodity.
16:57:30 <CakeProphet> as it is delicious.
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:57:50 <CakeProphet> .....
16:58:01 <CakeProphet> I lol'd
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:06:04 <cheater_> nothing wrong with that
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:48:48 <Taneb> Hello
17:53:01 <ais523> hi
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:09:53 <oerjan> aha
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:11:36 <Taneb> Ooh, brilliant
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:15:40 <Taneb> Yeah
19:17:38 <Sgeo> How is ... the thing that ABCDEF is not an abbreviation for?
19:17:56 <Taneb> Inactive
19:18:02 <Taneb> Confusing
19:18:06 <Taneb> Self-contradicting
19:18:39 <monqy> rest in peace abcdef
19:18:49 * oerjan swats monqy -----###
19:18:51 <Taneb> oerjan?
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:41 <oerjan> *the next
19:25:54 <Taneb> This is too easy to program in
19:26:02 <oerjan> eek
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:28:30 <Taneb> Damn
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:14 <Taneb> Piet?
19:37:23 <oerjan> well no one has attempted my Malbolge Unshackled yet afaik :P
19:37:30 <oerjan> (not me, for sure)
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:41 <monqy> I mean
19:42:50 <Taneb> Oh, ok
19:42:50 <monqy> 12! 4.4! 92! 10! 49.8! 2! 2! 2!
19:42:57 <Taneb> Depends when it happend
19:43:00 <Taneb> *happens
19:43:03 <monqy> right
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:48:35 <lifthrasiir> okay
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:09 <Taneb> Yeah
19:49:34 <lifthrasiir> then what on the earth is the command at the fractional index? :p
19:49:52 <lifthrasiir> (given the current cell is marked)
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:40 <Taneb> That works, too!
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:53:48 <lifthrasiir> that is k'/10^max(j,l) for some k'. :p
19:54:07 <lifthrasiir> ugh,
19:54:18 <lifthrasiir> no don't mind.
19:54:30 <lifthrasiir> my expression parser seems to be broken
19:56:25 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
19:59:39 <Taneb> Your suggestion is now canon
20:00:01 <cheater__> hi
20:00:07 <Taneb> Hello
20:00:08 <cheater__> anyone know what encoding this page is in? http://www.john-a-harper.com/tubes201/
20:00:40 * cheater__ eyes fizzie
20:00:52 <Taneb> UTF-8?
20:01:05 <Taneb> HTML 3.2?
20:01:25 <Taneb> GIF?
20:01:26 <Sgeo> I don't think HTML 3.2 is an encoding
20:01:42 <cheater__> Sgeo, any ideas?
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:32 <cheater__> does a \mu character show up?
20:02:36 <monqy> <meta name="GENERATOR" content="Microsoft FrontPage 3.0"> nice
20:02:41 <Sgeo> No
20:02:43 <fizzie> Yeah, the "broken" characters seem to be UTF-8 "missing character" symbols.
20:03:11 <monqy> � ...encoding...:(
20:03:40 <lifthrasiir> looks like U+FFFD in UTF-8.
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:16 <cheater__> wtf is an <ins> element?
20:07:22 <cheater__> i'm looking at the source of this
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:09:31 <cheater__> oh oh
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 &mu;
20:12:51 <lifthrasiir> &moo;.
20:13:21 <cheater__> yeah i will
20:13:29 <cheater__> what's the degree one? &deg right?
20:13:54 <Taneb> &deg;, yeah
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:35 <Taneb> Why?
20:24:36 <cheater__> &mu and &micro for different contexts
20:24:41 <Taneb> Huh
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:25:34 <Taneb> Mu!
20:27:01 <quintopia> why did the kitten stay on the hot tin roof longer than the adult cat?
20:27:07 <quintopia> it had a higher mu!
20:28:17 <cheater__> that made no sense
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:37:50 <quintopia> today i had lots of beer
20:37:53 <quintopia> i am a koanhead
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:23:17 <oerjan> ah.
21:23:20 <elliott> :D
21:23:30 <oklopol> morning
21:23:34 <elliott> mroing
21:24:18 <oerjan> mwrong
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:35:44 <elliott> when i left
21:35:47 <elliott> down
21:36:37 * oerjan uses ^F for that
21:36:59 <elliott> ur an f
21:38:20 <oklopol> what's your angle?
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:38:33 <elliott> :D
21:38:35 <elliott> pet anvil
21:38:52 <oklopol> aww :D
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:14 <elliott> which south african os?
21:39:18 <oklopol> "hihihi here i come oerjie" "AAAAAAARGH!"
21:39:24 <elliott> oerjie
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:39:43 <elliott> oerjan: why
21:39:44 <elliott> don't
21:39:44 <elliott> you
21:39:46 <elliott> love
21:39:47 <elliott> ME????????????
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:40:50 <elliott> :D
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:42:46 <Phantom_Hoover> http://esolangs.org/wiki/Surface
21:42:56 <Phantom_Hoover> ITA: Madk doesn't understand fundamental polygons.
21:43:04 <oklopol> aww now i want a pet anvil :D
21:43:20 <oerjan> anvils are not pets!
21:43:23 <elliott> Phantom_Hoover: I am going to revert your [[Brainfuck implementations]] change
21:43:29 <Phantom_Hoover> Why?
21:43:34 <Phantom_Hoover> I had CONSENSUS.
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:18 <Phantom_Hoover> And it _is_ an implementation regardless.
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> 14 July 2011
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:20 <elliott> oerjan: citation?
21:46:22 <oerjan> not got very far, mind you
21:46:24 <elliott> oh, I see
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:08 <oklopol> :\
21:51:08 * oerjan smells an elf
21:51:20 -!- pikhq_ has joined.
21:51:47 <elliott> the name sidhe rings a bell
21:51:56 <sidhe> dresden files
21:52:50 <elliott> wat
21:53:00 <elliott> i mean from here.
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:12 <oklofok> one
21:54:13 <oerjan> olsner: no, i never met any other survivors
21:54:14 <oklofok> hundred
21:54:15 <oklofok> million
21:54:16 <oklofok> moneys
21:54:23 <sidhe> though i've never been here before using this nick.
21:54:38 <oerjan> also it's not my pet
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:58:52 <elliott> yes.
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:24 <Lymee> Magic is bad
21:59:30 <elliott> Lymee: do you have a better suggestion
21:59:30 <Lymee> *shrug*
21:59:33 <elliott> :-P
21:59:36 <Lymee> I let Eclipse deal with maven.
21:59:45 <Lymee> So, "loldunno
21:59:46 <elliott> Yeah, but there's two different plugins and no indication of which one to use :-(
21:59:52 <elliott> It's like fascism.
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:02:19 <Lymee> *shrug*
22:03:02 <elliott> Clearly you want me to suffer.
22:03:03 * elliott cries.
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:06:47 <elliott> Lymee: Thanks.
22:06:55 <elliott> oklofok: awwwwww
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:07:54 <elliott> photograph
22:08:35 <oklofok> yeah i photographed it using my mspaint brand camera
22:09:49 <oerjan> IT'S A TRAP
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:09 <elliott> Makes things super easy
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:16:36 <elliott> PAH
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:18:32 <oerjan> a monster raven
22:19:53 <oklofok> awww that's so cute :D
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:32:21 <elliott> that's my fursona
22:33:44 <oklofok> erm updating a bit
22:34:22 <oklofok> realized i had two ground levels
22:35:03 <elliott> no thats good
22:35:14 <oklofok> i prefer the new one
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:37:31 <quintopia> because you're no good at it?
22:38:10 <oklofok> eh, did you see the pics?
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:38:51 <Lymee> :3
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:49:33 <Phantom_Hoover> What is Maven?
22:50:03 <elliott> Lymee: It isn't.
22:50:04 <coppro> the worst build system evern
22:50:05 <elliott> Phantom_Hoover: Confusing.
22:50:14 <coppro> [sic]
22:50:21 <elliott> Mavern.
22:50:24 <elliott> monqy: Yes.
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:05 <Phantom_Hoover> oklofok, did.
22:54:08 <Phantom_Hoover> It was best.
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:55:30 <Phantom_Hoover> Sweet Maven and Hella Oklopol.
22:56:30 <elliott> X-D
22:56:40 <elliott> Maven has to download maven-clean-plugin just to clean the repository out.
22:56:42 <elliott> Beautiful.
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.
22:58:55 <elliott> BLARRRRRRRRRR
23:00:04 <monqy> :(
23:05:10 <Lymee> WHAT
23:05:19 <elliott> Lymee: wat
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:35 <Lymee> *boggles*
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:44 <elliott> It's so great.
23:05:53 <elliott> Lymee: Like I said, "mvn clean" actually downloaded maven-clean-plugin.
23:05:57 <elliott> rm -r: a plugin
23:06:19 <Lymee> Enterprisey, eh?
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:22 <Lymee> But...
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:10 <Phantom_Hoover> r/math vs. r/AskScience: place your bets!
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:15:55 <oklofok> what's a circle?
23:16:03 <oklofok> i would certainly love to know the exact rules
23:16:09 <oklofok> we talking 2d manifold?
23:16:23 <Phantom_Hoover> oklofok, that's what I had in mind.
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 <oklofok> you mean
23:17:11 <oerjan> i expect it must always be pi in the limit for a riemannian manifold
23:17:14 <oklofok> nono
23:17:21 <oklofok> don't be silly
23:17:27 <oklofok> not a product space
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:21 <oklofok> hmm
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:36 <oklofok> yeah
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:21:59 <oklofok> erm
23:22:01 <oklofok> spheres
23:22:04 <oklofok> *circles
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:16 <oklofok> we have a set
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:50 <oerjan> that may be
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:26:39 <elliott> wait no, eleven
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:22 <elliott> umm
23:29:23 <elliott> Resell
23:29:23 <elliott> yesno
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:13 <oklofok> hmm
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:31:51 <oerjan> O KAY
23:31:58 <oklofok> :D
23:32:13 <elliott> im a chain
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:34:32 <oklofok> *finding homomorphisms
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:23 <oklofok> elliott: dunno.
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)
2011-07-15
00:00:15 <hagb4rd> numbers, endlessly looping a series of digits are also called periodics, yes?
00:00:37 <hagb4rd> like, 1,2343434
00:00:55 <oklofok> they are called rationals
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:44 <oklofok> following me?
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:12:33 * oklofok wants to talk more
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:14:45 <hagb4rd> we alle wait for
00:15:56 <elliott> what
00:16:24 <hagb4rd> life, universe and all
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:44 <hagb4rd> i can't wait to have it
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:09:12 <CakeProphet>
01:10:01 <monqy> hi
01:10:24 <CakeProphet> drugs.
01:10:36 -!- azaq23 has quit (Ping timeout: 250 seconds).
01:12:53 * Phantom_Hoover → sleep
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 <CakeProphet> > :D
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:41:28 <CakeProphet> thus preventing error-based quines.
01:42:47 <oerjan> > 1:Maybe "so"
01:42:48 <lambdabot> Not in scope: data constructor `Maybe'
01:42:58 <coppro> O_o
01:43:02 <oerjan> > Not in scope: data constructor `Not'
01:43:02 <lambdabot> <no location info>: parse error on input `in'
01:43:08 <oerjan> damn
01:43:35 <oerjan> > 1:Just "so"
01:43:36 <lambdabot> Couldn't match expected type `[t]'
01:43:36 <lambdabot> against inferred type `Data.Mayb...
01:44:16 <oerjan> > 1:hm
01:44:17 <lambdabot> Not in scope: `hm'
01:45:12 <oerjan> oh well
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:00 <oklofok> binary ones that is
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:44 <CakeProphet> > fix error
02:22:45 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E...
02:24:06 <CakeProphet> not quite what I was hoping for.
02:24:09 <oerjan> :t fix (?f.)
02:24:09 <lambdabot> forall b (f :: * -> *). (?f::b -> b, Functor f) => f b
02:24:34 <coppro> what is the ?
02:24:43 <oerjan> implicit argument
02:25:04 <CakeProphet> > fix (error.)
02:25:05 <lambdabot> No instance for (GHC.Show.Show (f [GHC.Types.Char]))
02:25:05 <lambdabot> arising from a use ...
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:55 <CakeProphet> :t fix (('a':).)
02:25:56 <lambdabot> forall (f :: * -> *). (Functor f) => f [Char]
02:26:26 <oerjan> CakeProphet: it's because of lambdabot's (.) = fmap definition
02:26:30 <CakeProphet> right
02:27:46 <CakeProphet> :t fix ((.).(.).)
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:47 <lambdabot> namely `.' [infixr 9]
02:27:57 <CakeProphet> :t fix (((.).(.)).)
02:27:58 <lambdabot> Occurs check: cannot construct the infinite type: a = f (f1 a)
02:27:58 <lambdabot> Expected type: f2 (a -> b)
02:27:58 <lambdabot> Inferred type: f2 (f (f1 a) -> f (f1 b))
02:28:16 <coppro> :t ((.).(.))
02:28:17 <lambdabot> forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b)
02:28:25 <elliott> ugh this is stupid
02:28:38 <coppro> :t .
02:28:39 <lambdabot> parse error on input `.'
02:28:40 <coppro> :t (.)
02:28:41 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
02:29:11 <oerjan> :t ((.).(Prelude..))
02:29:12 <lambdabot> forall (f :: * -> *) b c a. (Functor f) => (b -> c) -> f (a -> b) -> f (a -> c)
02:29:15 <CakeProphet> > (const 4) . putStrLn "Hello!"
02:29:16 <lambdabot> <IO Integer>
02:29:28 <coppro> oerjan: ah. Which (.) are we using?
02:29:35 <oerjan> coppro: fmap
02:29:45 <elliott> coppro: caleskell
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:19 <elliott> "how"?
02:30:22 <elliott> you can shadow anything
02:30:28 <elliott> on import
02:30:36 <CakeProphet> elliott weighs in on the matter.
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:30:54 <oerjan> O_o
02:30:56 <CakeProphet> import Prelude hiding ((.))
02:30:59 <elliott> module Foo (map) where
02:31:01 <elliott> import Prelude hiding (map)
02:31:03 <elliott> map = 99
02:31:04 <elliott> and then:
02:31:07 <elliott> import Prelude hiding (map)
02:31:08 <elliott> import Foo
02:31:10 <elliott> main = print map
02:31:14 <elliott> -- program will print 99
02:31:33 <coppro> elliott: derp ok
02:31:50 <elliott> coppro: you can also e.g.
02:31:52 <elliott> > let map = 99 in map
02:31:53 <lambdabot> 99
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:18 <coppro> ah ok
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:33 <elliott> coppro: yes there 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:46 <lambdabot> 108
02:32:50 <elliott> coppro: map is shadowed in the scope of the in expressio
02:32:51 <elliott> n
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:00 <elliott> coppro: well, duh :)
02:33:16 <monqy> CakeProphet: do you feel an urge to abuse NoImplicitPrelude
02:33:25 <CakeProphet> I don't see how it could be abused.
02:33:31 <CakeProphet> unless improving the Prelude is abuse.
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:35:48 <elliott> haha monqy
02:35:48 <elliott> what if
02:35:50 <elliott> i asked stack overflow
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:41 <monqy> :t unsafeCoerce
02:36:41 <lambdabot> Not in scope: `unsafeCoerce'
02:36:43 <CakeProphet> the notion of coercing types in Haskell confuses me.
02:36:44 <monqy> oops
02:36:52 <CakeProphet> @hoogle unsafeCoerce
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 <CakeProphet> :t fromDynamic
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:22 <CakeProphet> ....
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:42 <CakeProphet> HASKELL MOTHERFUCKER, DO YOU SPEAK IT?
02:39:50 <elliott> CakeProphet: DESCRIBE WHAT HASKELL LOOKS LIKE.
02:40:00 <CakeProphet> what?
02:40:16 <CakeProphet> okay we cannot quote Pulp fiction anymore.
02:40:18 <CakeProphet> I am leaving now.
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:39 <CakeProphet> LAME
02:40:41 <CakeProphet> NO
02:40:58 <CakeProphet> also you will have to ask why I am trying to fuck it like a Perl.
02:41:04 <CakeProphet> which is pretty disturbing.
02:41:06 <monqy> CakeProphet: http://www.haskell.org/ghc/docs/7.0.2/html/users_guide/syntax-extns.html#rebindable-syntax
02:41:06 <elliott> No; code it like a Perl.
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:41:56 <monqy> :(
02:42:04 <oerjan> GRMBL
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:42:49 <oerjan> oh
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:19 <oerjan> heh
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:28 <oerjan> wtf
02:44:31 <oerjan> !haskell {-# LANGUAGE NoImplicitPrelude #-} import Prelude hiding ((>>=)); a >>= b = b a; main = print $ do x <- 3; y <- 4; x + y
02:45:12 <CakeProphet> TH + Dynamic = fun abuse of Haskell
02:45:22 <oerjan> oh whatever
03:00:38 <elliott> Java is literally intolerable.
03:01:37 <monqy> are there any jvm languages worth using
03:02:01 * Sgeo wants Seph
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:04:56 <elliott> oklofok: head
03:05:06 <oklofok> :o
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:10:28 <CakeProphet> > fix monqy
03:10:28 <lambdabot> Not in scope: `monqy'
03:11:04 <monqy> im long gone
03:13:08 <oerjan> > fix ?monqy
03:13:09 <lambdabot> mueval-core: internal error: PAP object entered!
03:13:09 <lambdabot> (GHC version 6.12.3 f...
03:13:24 <oerjan> MWAHAHAHA
03:13:45 <oerjan> :t fix ?monqy
03:13:46 <lambdabot> forall a. (?monqy::a -> a) => a
03:14:02 <elliott> IM STAB A FORK THROUGH THE CHEST OF JAVA
03:14:09 <elliott> CRYING ALWAYS
03:15:26 -!- CakeProphet has quit (Ping timeout: 252 seconds).
03:21:15 <elliott> "Develop with pleasure!" --IDEA
03:22:52 <monqy> diaf
03:23:21 <elliott> rude dude rude
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:15 <elliott> coppro: ?
03:42:19 <coppro> elliott: in ?monqy
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:29 <coppro> oh did he
03:42:31 <coppro> i fogtor
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:33 <coppro> ah i see it now
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:04 <lambdabot> 3
03:48:22 <elliott> > ?y
03:48:23 <lambdabot> mueval-core: internal error: PAP object entered!
03:48:23 <lambdabot> (GHC version 6.12.3 f...
03:50:38 <coppro> elliott: there is no way to provide a default value for an implicit parameter?
03:50:56 <elliott> eh?
03:51:03 <elliott> you can say
03:51:06 <elliott> main :: IO ()
03:51:11 <elliott> main = let ?foo = default in realMain
03:51:12 <elliott> I guess
03:51:20 <elliott> or well
03:51:22 <elliott> main :: IO ()
03:51:23 <elliott> main = do
03:51:26 <elliott> let ?foo = default
03:51:29 <elliott> ...
03:51:32 <elliott> (does that work? oerjan?)
03:51:44 <oerjan> hm it probably should
03:52:07 <elliott> so you can do ?foo <- x? :D
03:52:07 <oerjan> > do let ?foo = 3; [?foo]
03:52:08 <lambdabot> <no location info>:
03:52:08 <lambdabot> The last statement in a 'do' construct must be an ...
03:52:13 <elliott> o_O
03:52:17 <oerjan> oh
03:52:26 <oerjan> > do let {?foo = 3}; [?foo]
03:52:27 <lambdabot> [3]
03:52:33 <elliott> wat
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:54:43 <elliott> then, yes, that's true
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 <coppro> > ?cmp = cmp
03:55:16 <lambdabot> <no location info>: parse error on input `='
03:55:25 <elliott> right
03:55:32 <elliott> I'm not sure why implicit parameters exist, tbh
03:55:33 <elliott> they're kind of ugly.
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:57:37 <coppro> ah
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:01:46 <coppro> face magice
04:01:56 <elliott> coppro: wat
04:02:06 <coppro> elliott: it is magical ice of the face
04:02:09 <coppro> face magice
04:02:13 <elliott> ah.
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:00 <oerjan> @hoogle reify
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:06 <oerjan> bah
04:04:13 <elliott> http://hackage.haskell.org/packages/archive/reflection/0.4.0/doc/html/Data-Reflection.html
04:04:15 <oerjan> @hoogle Reified
04:04:15 <lambdabot> No results found
04:04:19 <elliott> yw
04:04:21 <oerjan> yes
04:04:28 <oerjan> um i know where it is
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:16 <elliott> oerjan: :D
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:51 <monqy> This
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:23 <oerjan> *to do
04:10:37 <monqy> this makes it sound so clean
04:10:40 <monqy> internally I mean
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:56 <monqy> mind boggled
04:12:57 <oerjan> then encodes the string in the type system
04:13:05 <monqy> double boggle
04:13:41 <elliott> oerjan: amazing
04:13:49 <elliott> ffi in the type systme
04:13:50 <elliott> thanks oleg
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:16:14 <elliott> yeah _right_
04:16:48 <elliott> oh wait
04:16:51 <elliott> that was a reply :)
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:33:25 <oerjan> xkcd :D
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:39:27 <oerjan> only mavericks
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:43:32 <elliott> when did he say that
04:44:41 <quintopia> this week i think
04:44:51 <quintopia> on the blog
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:22 <elliott> Mexpert.
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:19 <coppro> not that
05:35:21 <coppro> the doctor who
05:35:25 <Sgeo> Oh
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:36:52 <coppro> only a little
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:37:57 <coppro> uh... pm?
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:45:20 <Sgeo> lo
05:45:21 <Sgeo> lol
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:32 <elliott> dont abuse them
05:47:46 <fizzie> Or get a box that can take the abuse, and put them in that.
05:48:05 <monqy> put head in box
05:48:10 <monqy> quality audio
05:48:29 <fizzie> It also doubles as the canonical paper bag to hide your FACE in.
05:48:34 <fizzie> (Was that mean?)
05:48:40 <monqy> sgeo has an ugly face
05:48:45 <monqy> oh
05:48:51 <monqy> I misread
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:49:14 <monqy> :'(
05:49:31 <elliott> :D
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:47 <pikhq_> From 1962.
05:51:56 <pikhq_> Sgeo: 110 baud. Can't negotiate down to that.
05:52:33 <Sgeo> Hmm.
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:13 <fizzie> er speed."
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:43:43 <quintopia> just a little bit?
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:31 <elliott> Yes.
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:03:56 <elliott> One place to change what?
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:34:40 <elliott> no
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:21:57 <Taneb> Hello
08:22:02 <elliott> hi
08:25:40 <Taneb> What's up?
08:27:09 <fizzie>
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:04 <CakeProphet> :o
09:31:42 <CakeProphet> why on earth is TypeSynonymInstances not default for GHC...
09:32:01 <Taneb> Because life is not perfect
09:32:12 <CakeProphet> This is a good reason.
09:36:06 <CakeProphet> I wonder where my mind went.
09:40:13 <Taneb> I nicked it
09:41:16 <Taneb> That's an idea
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:20 <CakeProphet> > (`replicateM` "abc") >>= [0..]
09:46:21 <lambdabot> Couldn't match expected type `[[GHC.Types.Char]]
09:46:21 <lambdabot> ...
09:46:30 <CakeProphet> > (`replicateM` "abc") =<< [0..]
09:46:31 <lambdabot> ["","a","b","c","aa","ab","ac","ba","bb","bc","ca","cb","cc","aaa","aab","a...
09:46:38 <CakeProphet> there, I counted them.
09:46:42 <CakeProphet> :D
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:20 <Taneb> *programs
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:22 <elliott> yes, it has
09:50:22 <elliott> twice
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:01 <CakeProphet> right.
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:25 <CakeProphet> of course.
09:53:28 <elliott> Taneb: It's not quite trivial if you want a bijection
09:53:30 <elliott> (with the naturals)
09:53:38 <elliott> It's not _difficult_
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:45 <elliott> Taneb: Nope
09:55:50 <elliott> [ is not a valid brainfuck program
09:55:52 <elliott> Nor is ]
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 <CakeProphet> no, that doesn't work...
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:58:57 <CakeProphet> that's not including comments.
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:38 <CakeProphet> hmmm, well, okay yes it does.
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:03:54 <CakeProphet> while bf has only one
10:04:22 <elliott> Not necessarily
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 <CakeProphet> elliott: ha...
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:39 <elliott> "Input string"?
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:15 <elliott> Ooh, ooh, wait.
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:50 <elliott> "Separate program"
10:13:54 <elliott> A console is a "separate program" in that sense too.
10:14:12 <CakeProphet> indeed.
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:31 <CakeProphet> yes.
10:17:42 <CakeProphet> here is my question
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:02 <elliott> turing-completeness
10:18:08 <elliott> well
10:18:10 <elliott> turing-equivalence
10:18:19 <CakeProphet> which is?
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:50 <CakeProphet> *would think
10:18:51 <elliott> CakeProphet: do you know the definition of turing complete
10:19:06 <CakeProphet> Not formally, no.
10:19:08 <elliott> this article might help clear up any questions you have: http://esolangs.org/wiki/Turing-complete
10:19:14 <elliott> ugh wait
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:10 <Taneb> Elliott
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:00 <Taneb> Fair enough
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:27 <elliott> fizzie: thanks
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:12 <CakeProphet> yes, this is pretty vague..
10:25:24 <Taneb> Such as OpenGL
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:25:59 <CakeProphet> I didn't suggest that.
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:27:13 <Taneb> *tape, not type
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:30:53 <CakeProphet> the IDe.
10:31:24 <Deewiant> What's a Sge​o-meme
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:31:46 <Phantom_Hoover> Googling it only turns up Wolfram crap.
10:32:07 <CakeProphet> but I was never really talking about computational equivalence...
10:32:09 <zzo38> Deewiant: No cheating please.
10:32:10 <CakeProphet> not initially.
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:32:31 <Deewiant> zzo38: What am I cheating
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:19 <Taneb> brb
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:31 <fizzie> Deewiant: Same here.
10:34:37 <Deewiant> Yeah, I realized that
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:37:50 <elliott> CakeProphet: I give up.
10:38:03 -!- TanebAway has changed nick to Taneb.
10:38:06 <Taneb> Back
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:21 <elliott> wrong.
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:44 <elliott> i.e. a BF interpreter
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:01 <elliott> Deewiant: Right
10:40:01 <CakeProphet> by.... creating a new language.
10:40:06 <elliott> Deewiant: So that's really not what he's saying
10:40:31 <CakeProphet> Phantom_Hoover: nowhere.
10:40:45 <CakeProphet> ..that isn't what I'm talking about. I haven't even mentioned ASCII.
10:41:00 <Deewiant> Phantom_Hoover:
10:41:00 <Deewiant> . Outputs ASCII code under pointer
10:41:01 <Deewiant> , Reads char and stores ASCII under ptr
10:41:37 <Phantom_Hoover> Deewiant, dammit.
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:15 <CakeProphet> it is very possible in Java to do this.
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:39 <CakeProphet> and it is not..
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:45:53 <elliott> I am done with this.
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:46:40 <CakeProphet> there is some difference
10:46:52 <CakeProphet> in the language itself.
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:28 <CakeProphet> hmmm...
10:48:52 <Taneb> Huh
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:22 <Phantom_Hoover> elliott, wait, PSOX was vapourware?
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:11 <elliott> Yes.
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:22 <Phantom_Hoover> I thought there was a kind of implementation.
10:51:31 <CakeProphet> *source program
10:51:31 <elliott> There is, but it was late, and woefully incomplete.
10:51:33 <Phantom_Hoover> Sgeo, FFS, fix your goddamn site.
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:53:56 <elliott> Sweet
10:54:10 <Deewiant> elliott: Yep, exactly :-P
10:54:53 <CakeProphet> these differing abstractions require different computations in order to generate the write output.
10:55:04 <CakeProphet> ...heh, s/write/right/
10:55:07 <Deewiant> Quite true.
10:55:19 <Deewiant> Depending on the compiler and compiler flags used, you'll also get different computations.
10:55:22 <Deewiant> And the hardware, etc.
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:54 <Deewiant> fizzie: Right.
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:52 <CakeProphet> I am trying to fit practice with theory.
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:57:37 <elliott> Deewiant: Have fun
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:15 <Phantom_Hoover> <elliott> Deewiant: DON'T BE SO SURE
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:01:22 <CakeProphet> hmmm okay...
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:38 <CakeProphet> this makes no sense.
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:02 <Phantom_Hoover> CakeProphet, *sigh*.
11:06:04 <zzo38> Phantom_Hoover: Oops that is too bad, because now you cannot see because there is no more fire
11:06:11 <zzo38> It is too dark
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:06:38 <Phantom_Hoover> OK, you don't understand basic *programming* now.
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:20 <elliott> /claps
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:02 <Phantom_Hoover> And dawn is so early, it's actually before midnight.
11:08:07 <elliott> CakeProphet: ...
11:08:08 <Deewiant> CakeProphet: Compilers 101
11:08:17 <elliott> what Deewiant said
11:08:32 <Phantom_Hoover> CakeProphet, are you actually studying anything?
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:17 <Phantom_Hoover> Die in a fire.
11:09:34 <CakeProphet> Phantom_Hoover: I don't know. Are you actually holding a conversation with me, or just being condescending?
11:09:36 <Phantom_Hoover> fizzie, dear god, I was actually right?
11:09:39 <Deewiant> zzo38: libcpu
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:30 <CakeProphet> Nothing. I might as well be a ghost.
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:10:59 <Phantom_Hoover> CakeProphet, it's the best.
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:14 <CakeProphet> elliott: I haven't proved anything.
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:51 <Taneb> No your not!
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:12:44 <elliott> [asterisk]wrong with
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:16:26 <EgoBot> not equivalent
11:16:30 <fizzie> Ha, proved you worng!
11:17:02 <Phantom_Hoover> <CakeProphet> I am seeking to understand a discrepancy that I am seeing between theory and practice.
11:17:09 <Phantom_Hoover> *There is no discrepancy*.
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:18:05 <elliott> Taneb: Yes. :p
11:18:12 <Taneb> Oh, good
11:19:12 <Phantom_Hoover> <Taneb> Is that how quotes are done here?
11:19:14 -!- Vorpal has joined.
11:19:23 <Phantom_Hoover> They're done differently elsewhere?
11:19:33 <Taneb> I dunno
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:20:47 <Phantom_Hoover> We have to beat them!
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:36 <Taneb> Evidentally
11:21:46 <elliott> Evidentistry.
11:21:47 <Taneb> We occasionally discuss esoteric programming languages
11:22:01 <Taneb> Phantom_Hoover: Which Whig Party?
11:22:01 <Phantom_Hoover> Just like here!
11:22:07 <Phantom_Hoover> Taneb, you choose!
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:22:52 <Taneb> Yes
11:23:08 <Taneb> A small MSPAFA on the MS Paint Adventure forums, and TV Tropes
11:23:13 <Taneb> Respectively
11:23:20 <fizzie> TV Tropes does IRC?
11:23:25 <Taneb> Yeah
11:23:32 <Phantom_Hoover> Taneb, oh, you're an MSPA fan too.
11:23:38 <Taneb> Yep
11:23:43 <CakeProphet> main = readFile "a.txt"
11:23:46 <CakeProphet> translate to bf plz
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:40 <Phantom_Hoover> You're talking about IRP, aren't you?
11:24:42 <Taneb> You mean IRP, right
11:24:44 <Taneb> Ninja'd
11:24:49 <Taneb> Error 709: Ninja'd
11:24:59 <CakeProphet> er, yes, that.
11:25:30 <Taneb> CakeProphet: .[>.] where EOF=0
11:25:30 <Phantom_Hoover> #irp
11:25:46 <Phantom_Hoover> But seriously, it's just a joke.
11:26:36 <Taneb> Please write this exact line unless it has been written more than once before.
11:26:53 <CakeProphet> Done.
11:27:06 <CakeProphet> IRP is a bit nondeterministic.
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:17 <CakeProphet> okay, so what you're saying
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:29:52 <elliott> God knows.
11:30:01 <Taneb> Sidelines: Poke
11:30:03 <elliott> Deewiant: So is C stdio; you'd need read/write to be direct
11:30:05 <CakeProphet> until the sidelines
11:30:08 <elliott> (On Unix)
11:30:18 <Deewiant> elliott: Yes, it is
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:34 <Phantom_Hoover> fizzie, *them
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:34:58 <elliott> The contents of a.txt.
11:35:10 <quintopia> awesome, thanks zzo
11:35:16 <CakeProphet> no, that's what PSOX outputs.
11:35:24 <elliott> Nope.
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:36:37 <Phantom_Hoover> Best question.
11:37:21 <CakeProphet> so then . instruction BF does not actually produce any output?
11:37:24 <CakeProphet> +of
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:28 <elliott> "Debate"
11:38:44 <Deewiant> CakeProphet: fiz‍zie 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:38:56 <Taneb> g2g, bye
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:42:13 <CakeProphet> ...lol
11:42:18 <CakeProphet> Clearly!
11:42:31 <CakeProphet> (but no really, that makes sense)
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:10 <CakeProphet> then translate those to bf
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:06 <CakeProphet> even though they compute differently
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:54:16 <CakeProphet> what is computational equivalence then?
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:10 <Taneb> Hello again
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:04 <elliott> Mumble mumble "realist"
11:59:06 <CakeProphet> so for the purposes of computation, IO is effectively a no op?
11:59:14 <Taneb> Yes
12:00:05 <elliott> O is
12:00:09 <elliott> I isn't, since it's... well, input.
12:00:14 <elliott> And I can depend on O
12:00:24 <Taneb> But all input is available as a stack at the start of the program
12:00:56 <CakeProphet> isn't the order important?
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:43 <elliott> Eh?
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:06:56 <Taneb> What? No
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:15 <elliott> Right
12:09:19 <elliott> The compiler will know it's outputting for PSOX
12:09:20 <elliott> Or whatever
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:39 <CakeProphet> *have
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:11 <elliott> Define concrete layout
12:13:17 <CakeProphet> they do not correspond in any way.
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:18 <elliott> Herp derp
12:15:19 <Taneb> It outputs "0"
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:44 <CakeProphet> because this environment exists.
12:16:50 <Taneb> No it's not
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:22:47 <elliott> Taneb: um, no
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:41 <Taneb> Example?
12:24:47 <elliott> Deewiant: Buck-passin' = bassin'
12:24:48 <Taneb> brbr
12:25:03 <CakeProphet> Java program that reads a.txt and outputs it.
12:25:10 <CakeProphet> to stdout
12:25:27 <CakeProphet> ah, no, that's not a good example. :P
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:29:09 <CakeProphet> standard bf, as it is specified.
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:21 <Deewiant> fizzie: Yes, I recall that
12:31:28 <fizzie> Deewiant: O
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:33:58 <Phantom_Hoover> Oh god, you're still at this?
12:34:09 <elliott> Phantom_Hoover: CakeProphet is, yes.
12:34:32 <Taneb> Back
12:34:38 <elliott> Taneb: hi, nothing changed
12:34:44 <Taneb> Okay
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:37:47 <CakeProphet> no, not what I said.
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:54 <elliott> Why don't you love me.
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:41 <Deewiant> IntelliJ can't know that
12:44:49 <Deewiant> Or maybe it can
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:06 <elliott> Taneb: Yes.
12:45:08 <Deewiant> elliott: Sure you can
12:45:12 <elliott> Deewiant: How
12:45:14 <Deewiant> Or maybe only a definition
12:45:17 <elliott> Yeah
12:45:28 <Deewiant> But that's a nasty double-lookup anyway :-P
12:45:41 <Deewiant> Just name it
12:45:47 <elliott> Deewiant: If it was d[k] instead of d.get(k) you wouldn't bat an eye at it :)
12:45:55 <Deewiant> Yes I would
12:46:08 <elliott> Deewiant: Would you bat an eye at array[0] being used twice?
12:46:10 <Deewiant> Just as if it was *p
12:46:11 <Deewiant> Yep
12:46:14 <elliott> Seriously?
12:46:16 <Deewiant> Yep
12:46:22 <elliott> if (*p =/= badValue)
12:46:23 <elliott> f(*p);
12:46:26 <Deewiant> I wouldn't necessarily care
12:46:31 <Deewiant> But I would bat an eye at it
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:32 <elliott> Deewiant: Bat an eye plz
12:48:38 <elliott> At this GROSSE MULTI-LINE CONDITIONAL
12:48:46 <elliott> RELYING ON SHORT-CIRCUITING FOR CORRECTNESS
12:48:50 <Deewiant> Nah
12:49:18 <fizzie> elliott: Well, you can cast it (List) without warnings, just avoid the generics there.
12:49:37 <elliott> Heh.
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:02 <elliott> Quite possibly
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:52:45 <Taneb> I've had an idea
12:52:48 <Taneb> Take brainfuck
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:55 <elliott> Deewiant:
12:53:56 <elliott> } else if (aliasesObject instanceof List<String>) {
12:53:56 <elliott> aliases = (List<String>) aliasesObject;
12:53:59 <elliott> Deewiant: Still complains
12:54:05 <elliott> I wonder if there's technically a way to make that fail :-
12:54:06 <elliott> P
12:55:05 <elliott> Deewiant: fizzie: "Illegal generic type for instanceof"
12:55:06 <elliott> That's why
12:55:17 <Taneb> Different idea: functional brainfuck
12:55:18 <elliott> You can't instanceof a generics type
12:55:22 <elliott> <Deewiant> :(
12:55:24 <fizzie> Yes, I thought so.
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:35 <elliott> Right.
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:18 <elliott> aliases = tmp;
13:00:27 <elliott> Now IntelliJ complains that tmp is a redundant variable :-D
13:00:29 <elliott> I CAN'T WIN
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:05 <elliott> (This one, even)
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:04:11 <elliott> Deewiant: Hahaha
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:06:24 <elliott> fizzie: You do?
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:20 <elliott> SIGH
13:08:28 <elliott> Java: The worst?
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:30 <elliott> } else {
13:09:31 <elliott> assert(false); // meh
13:09:34 <elliott> }
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:10:58 <elliott> haha
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> } else {
13:11:34 <elliott> throw RuntimeException("fuck this");
13:11:34 <elliott> }
13:11:34 <elliott> good
13:11:44 <oklofok> elliott: yes
13:11:48 <oklofok> i did tolded us.
13:11:49 <elliott> s/new/
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:15:47 <elliott> Deewiant: Eh?
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:16:27 <Deewiant> elliott: Before the throw
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:54:57 <cheater_> zzo38, what are you doing
13:55:06 <cheater_> ...
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:20:55 <cheater_> ̩͎͇͈̹n̡̬̬ͣ̋̈̒̐͑̃͛́ͅ?̴͙͈͈ͥ̌
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:24:38 <Taneb> Hello
14:27:24 <zzo38> Hello Hello Hello Hello Hello
14:27:26 <oklofok> Taneb: 5
14:27:31 <oklofok> yw
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:01 <elliott> make it sub-tc
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:45 <monqy> I think so
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:20 <monqy> twice
16:15:22 <monqy> I'm gone now
16:15:30 -!- derrik has joined.
16:15:34 <Taneb> Bye
16:16:02 <Taneb> Man, that must seem pretty non-sequitur for you, derrik
16:16:42 <derrik> true
16:17:08 <Taneb> It almost made sense in context, though
16:17:33 <derrik> possible
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:29 <Taneb> Oerjan proved it
16:18:47 <elliott> oh hm it's close to the b-machine thing
16:18:50 <elliott> Taneb: ah, okay
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:17 <Taneb> And it's usable!
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:36 <Taneb> Good idea
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 <elliott> input is for the weak
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:22:35 <Taneb> Hmm, yeah
16:25:24 <Taneb> Changed spec
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:06 <elliott> true, but who needs that?
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:40 <Taneb> FIDE
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:55:48 <Taneb> Goodbye
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:30 <pikhq_> That's... Perverse.
18:00:39 <pikhq_> "Gtk Hello World in Qt C++".
18:00:50 <Sgeo> Hmm?
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:24:18 <Phantom_Hoover> OMG an [S].
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:39:42 <DocHerrings> I suppose I'll add that.
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:20:41 <oerjan> *implant
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:21:51 <lambdabot> Consider it noted.
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:30:53 <lambdabot> against inferred type ...
19:30:59 <oerjan> mph
19:31:05 <oerjan> :t readInt
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:31:37 <lambdabot> [(205042148,"")]
19:32:16 <oerjan> > showIntAtBase 128 chr 205042148 ""
19:32:18 <lambdabot> "abcd"
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:54 <Phantom_Hoover> v
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:33:59 <Phantom_Hoover> Keymaker's.
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:36 <oerjan> aha
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:46 <oerjan> hm clever
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:55 <Sgeo> Linky?
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:36:49 <oerjan> ah.
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:31 <ais523> in theory, yes
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:07 <oerjan> statical tape typing!
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:14 <zzo38> Yes
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:54:04 <ais523> but not very many
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:18 <Taneb> Hello
19:56:21 <oerjan> hi
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:06 <lambdabot> [(205042148,"")]
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:10:17 <oerjan> shocking!
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:13 <copumpkin> :)
20:16:15 <oerjan> no, he is quit-join spamming with a bad connection _and_ a broken cloak setup simultaneously
20:16:22 <copumpkin> sorry :P
20:16:35 <copumpkin> I've done it three times in the past 20 minutes haven't I?
20:16:37 <copumpkin> it isn't that bad
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:11 <Taneb> Connection?
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:21 <ais523> yes?
20:18:26 <ais523> then correlation /causes/ causation!
20:18:31 <oerjan> yep
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:15 <Taneb> Anarchy?
20:19:31 <Taneb> You mean, this channel?
20:19:54 <oerjan> this is channel is anarchy? shocking! someone should fire the ops
20:19:58 <oerjan> *-is
20:20:38 <ais523> Taneb: no, my language
20:20:43 <ais523> http://pastebin.com/MDEebq26
20:20:46 <ais523> well, one of mine
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:23:52 <ais523> oerjan: right
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:30:25 <ais523> anarchic? I think so
20:30:49 <oerjan> well good luck anyway
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:09 <ais523> hmm, perhaps
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:04 <Taneb> The same person.
21:02:10 <Taneb> Just doing it theoretically
21:03:01 <oerjan> *may be
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:12 <Phantom_Hoover> <oerjan> just don't mention call/cc :P
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:02 <Phantom_Hoover> Like monads, really.
21:08:17 <oerjan> like algebraic topology
21:08:54 <oerjan> and category theory
21:09:27 <oerjan> and zygohistomorphic prepromorphisms
21:10:19 <Taneb> xenolinguistic polysyllablic neomorphemes?
21:10:35 <oerjan> *polysyllabic
21:11:04 <oerjan> but of course.
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:08 <oerjan> :P
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:18:48 <oerjan> except thog
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:20:48 <Phantom_Hoover> <Taneb> Meh, I've got a GCSE in stats.
21:20:49 <Phantom_Hoover> NO
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:20 <Phantom_Hoover> STATS
21:21:23 <ais523> I have approximately 2.16 A levels in Maths
21:21:25 <Phantom_Hoover> IS AN ABOMINATION
21:21:29 <Taneb> STATS
21:21:32 <Phantom_Hoover> ais523, elaborate.
21:21:32 <Taneb> IS AN EXTRA GCSE
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:36 <oerjan> *two
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:01 <monqy> a good time
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:32 <Phantom_Hoover> oerjan, I'm not sure if I hate stats itself or not.
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:45 <Phantom_Hoover> But the way it's taught is *unquestionably* abysmal.
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:24:44 <Taneb> I'm 16
21:24:47 <Phantom_Hoover> I have... 1.07 A levels.
21:25:03 <Phantom_Hoover> According to UCAS, at least.
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:11 <Phantom_Hoover> ais523, yeah.
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:08 <Phantom_Hoover> Whatever that is.
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:29 <ais523> by averaging marks
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:26:59 <Phantom_Hoover> NI uses the same names, though.
21:27:05 <Phantom_Hoover> So it might well be the same.
21:27:08 <ais523> perhaps
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:27:53 <ais523> Taneb: yep
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:18 <Phantom_Hoover> Taneb, they conquered Ireland as well, though.
21:28:42 <ais523> which lead to a mess, as the way inheritance works, you can't diverge from thatp oint
21:28:43 <ais523> *point
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:05 <Phantom_Hoover> It's... a bit more complex than that.
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:42 <Taneb> Yeah
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:27 <Taneb> parties
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:16 <Taneb> I think
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:04 <Phantom_Hoover> pikhq, nah, we got a pretty sweet deal out of that.
21:34:08 <Phantom_Hoover> Free tuition, anyone?
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:47 <Taneb> TWENTY MILES
21:34:50 <Phantom_Hoover> Taneb, ...what?
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:17 <Phantom_Hoover> So NW.
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:39 <Phantom_Hoover> oerjan, I haven't met any.
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:05 <Taneb> Goodnight
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:15 <pikhq> ... For 40 years.
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:43:48 <oerjan> *day
21:44:01 <oerjan> also, *neighbor
21:44:06 <ais523> *neighbour
21:44:14 <ais523> we're discussing the UK here, you should use British spellings!
21:44:19 <oerjan> argh
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:13 <Phantom_Hoover> `quote Scotland
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 <Phantom_Hoover> oerjan, well, they're in power now.
21:46:16 <ais523> oerjan: they've been coming fourth or fifth or sixth in by-elections
21:46:24 <Phantom_Hoover> That too.
21:46:30 <ais523> they're still in power with the Conservatives, ubt only because there hasn't been an election since
21:46:31 <ais523> *but
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:46:53 <ais523> oerjan: yep
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:41 <Phantom_Hoover> ais523, hey, some of us go to university in England.
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:40 <ais523> I checked there too
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:29:43 <Phantom_Hoover> Sgeo, it's how mistaken he is that is amusing.
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
22:58:27 <oerjan> > 0.6*49.8 + 0.4*2
22:58:28 <lambdabot> 30.679999999999996
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:19:32 <Sgeo_> "?
23:19:34 <Sgeo_> WTF?
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.
2011-07-16
00:00:57 -!- itidus20 has joined.
00:01:08 * Phantom_Hoover → sleep
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:20 <itidus20> on youtube
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 <oerjan> ^style
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 <oerjan> ^style irc
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:07:58 <itidus20> hmm
04:08:02 <itidus20> math games..
04:08:04 <quintopia> for example?
04:08:42 <itidus20> quintopia, single or multiplayer?
04:08:47 <quintopia> multi
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:12 <itidus20> maybe things aren't so bad
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:08 <quintopia> and not even all of those
04:36:17 <itidus20> im full of shit ^_^;
04:36:42 <quintopia> here's an example: the simple three player game help-or-hinder
04:36:56 <quintopia> it's practically unanalyzable
04:37:16 <quintopia> so winning has nothing to do with perfect players...
04:37:39 <itidus20> i analyze things too much
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:38:49 <itidus20> humm
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:42:49 <zzo38> Result of what?
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:44:41 <itidus20> yeah, i am skillful googler
04:45:31 <quintopia> good find
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:01 <quintopia> anyway, it's a good example
04:49:15 <itidus20> yeah good enough for me to use as fertilizer
04:49:47 <itidus20> 3 player eh
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:53:17 <itidus20> but i am all for it
04:54:21 <itidus20> ashbash makes the point
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:54:50 <itidus20> chance is fun.
04:55:42 <itidus20> oh
04:55:50 <itidus20> an idea just came to me,
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:34 <quintopia> tell me
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:17 <itidus20> following with me so far?
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:09 <zzo38> OK
04:59:34 <itidus20> they also have a bunch of tiles... lets say 128 tiles just to be safe
04:59:45 <itidus20> 128 each
04:59:55 <zzo38> OK.
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:00:56 <itidus20> hehe
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:01:59 <itidus20> at location.. x = 4, y = 8
05:02:31 <zzo38> OK. What next?
05:02:37 <itidus20> now, on one of the boards, they place a color 2 tile somewhere
05:03:09 <itidus20> so far so good?
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:03:55 <zzo38> OK.
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:00 <itidus20> uhh sort of
05:07:04 <zzo38> OK, I think I understand what you mean.
05:07:07 <itidus20> maybe it can have gaps
05:07:14 <itidus20> but uhhh
05:07:17 <itidus20> hummm blah
05:07:21 <itidus20> yeah anyway moving along
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:34 <zzo38> OK
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:37 <quintopia> but
05:09:44 <quintopia> why does each player have two mazes
05:09:49 <quintopia> oh
05:10:01 <quintopia> so they can construct the other player's maze on their own board
05:10:04 <itidus20> yup
05:10:14 <itidus20> its not a bad idea right?
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:12:47 <quintopia> that would be super interesting
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:15:51 <itidus20> i never get them on my own
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:23:31 <quintopia> never wrote it down
05:24:34 <itidus20> damn
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:29:51 <itidus20> but the idea is fun
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:23 <itidus20> no i don't.
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:37:21 <quintopia> and only four geese/ghosts
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:02 <quintopia> oh
05:40:03 <NihilistDandy> What book?
05:40:18 <itidus20> ill check my browser history
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:42:54 <itidus20> its very special that one
05:43:01 <itidus20> will be hard to find
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:18 <NihilistDandy> zzo38: I remember that game :D
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:10 <Taneb> Hello
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:05:57 <Taneb> I would assume so
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:00 <itidus20> sort of
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:09:41 <quintopia> representation of what
06:09:46 <quintopia> chess games?
06:09:46 <NihilistDandy> Chess
06:10:03 <quintopia> it is too general
06:10:11 <quintopia> any game is represented as a tree
06:10:14 <Taneb> What if they're moving in some sort of jelly?
06:10:21 <NihilistDandy> Generality is a flaw?
06:10:28 <quintopia> yes
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:33 <Taneb> Ever?
06:11:47 <quintopia> en passant was a very late addition to the game
06:11:51 <NihilistDandy> What insight are we after? Optimal strategy?
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:14:48 <itidus20> back
06:14:57 <itidus20> dandy: variant pieces
06:15:09 <NihilistDandy> Ah, okay
06:15:12 <itidus20> well, i don't know. perhaps the conversation has multi-threaded too
06:15:22 <itidus20> which is nice
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:17:51 <NihilistDandy> hmm
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:18:52 <itidus20> both :D
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:48 <NihilistDandy> Depends what you find exciting, I guess
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:06 <itidus20> YChat works.
06:39:08 <NihilistDandy> Taneb: mIRC, Leafchat
06:39:11 <itidus20> I dunno how it compares
06:39:36 * Sgeo_ uses Silverex, which has "YChat" in the title bar
06:40:13 <itidus20> hmm.. seems they are related
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:41:21 <Taneb> But not yet
06:41:33 <itidus20> im using some version of it
06:41:40 <itidus20> i dont know
06:42:05 <itidus20> its listed as: X Chat 2 in the start menu
06:42:46 <itidus20> weird
06:45:29 <Sgeo_> Silverex is just a build of XChat
06:45:49 <NihilistDandy> Use irssi-proxy and any client you like
06:45:53 <NihilistDandy> Problem solves
06:45:57 <NihilistDandy> *solved
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:11:14 <Taneb> Hello
07:11:32 <NihilistDandy> Hiyo
07:13:25 <Taneb> This computer is quite slow
07:13:38 <Taneb> It was a normalish computer in 2006
07:13:44 <Taneb> So what did I do?
07:13:49 <Taneb> I installed Dwarf Fortress
07:14:30 <NihilistDandy> Naturally
07:20:28 -!- mtve has joined.
07:24:30 <Taneb> So, what's happening in the world of esoteric programming?
07:25:04 <NihilistDandy> You wouldn't have heard about it B-\
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:26:44 <NihilistDandy> There's no ironic hipster emoticon
07:26:50 <NihilistDandy> This is their greatest triumph
07:32:33 <Taneb> Oh, why are ink cartridges so tricky to replace?
07:32:53 <NihilistDandy> So you'll ruin them and have to buy more.
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:37:42 <pikhq_> Ah.
07:37:46 <NihilistDandy> You can afford only one or the other
07:38:00 <pikhq_> NihilistDandy: Clearly the laser printer is the superior choice.
07:38:06 <NihilistDandy> But you can't use Postscript on a grandchild
07:38:08 <NihilistDandy> pikhq_: Exactly
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:38:45 <NihilistDandy> pikhq_: Unless you're a creative adopter
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:27 <NihilistDandy> <3
07:45:40 <Taneb> GCSE Latin, hopefully coming this August
07:45:41 <pikhq_> NihilistDandy: I actually find Church Latin somewhat unnatural.
07:45:47 <NihilistDandy> pikhq_: Exactly
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:11 <NihilistDandy> pikhq_: And no one is surprised~
07:48:24 * NihilistDandy is a master of outdated topical humor
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:00 <NihilistDandy> God did it. His Laws are unchanging.
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:03 <NihilistDandy> Duh.~
07:49:09 <Taneb> ^From Wikipedia
07:49:17 <pikhq_> Taneb: D'awww.
07:49:24 <NihilistDandy> Well, that's my vacation shot
07:49:36 <NihilistDandy> D:
07:49:44 <Taneb> It's 13 in Spain
07:49:47 -!- monqy has quit (Quit: hello).
07:50:24 <Taneb> And 12 in parts of Mexico
07:50:26 <NihilistDandy> Spanish is an awful language :/
07:50:26 <pikhq_> o.O
07:50:31 <NihilistDandy> But that's just me
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:50:57 <Taneb> It's 9 in Yemen
07:51:03 <Taneb> But you have to be married
07:51:08 <NihilistDandy> Precisely
07:51:10 <pikhq_> Not because it's illegal to be gay.
07:51:13 <NihilistDandy> Esoteric, indeed
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:09 <NihilistDandy> "Note all the 'Y's" I'll say
07:52:13 <pikhq_> But not little girls.
07:52:27 <NihilistDandy> pikhq_: I'm sure complaints are minimal
07:52:35 <Taneb> My English Teacher moved to Hong Kong
07:52:53 <Taneb> And my piano teacher moved to China
07:53:06 <NihilistDandy> Pedophiles, all
07:53:12 <NihilistDandy> or *paedo, I guess
07:53:51 <pikhq_> *pædo
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:22 <NihilistDandy> Also, is it properly Mancuvian, or Mancunian?
08:03:36 <Taneb> For someone from Manchester?
08:03:46 <NihilistDandy> yeah
08:03:54 <Taneb> Mancunian
08:04:14 <NihilistDandy> Where the hell did I hear Mancuvian, then? :/ I've thought that that was the term for ages
08:04:27 <Taneb> I have no idea
08:04:33 <NihilistDandy> Bizarre
08:04:43 <Taneb> I'm a novacastrian, incidentally
08:05:00 <NihilistDandy> That's even better than liverpudlian :D
08:05:02 <Taneb> *novocastrian
08:05:33 <Taneb> Don't have a thick enough accent to be a geordie
08:06:03 <NihilistDandy> Haha
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:06:29 * NihilistDandy not amused
08:06:31 <NihilistDandy> *is
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:08:14 <Taneb> Ross Noble?
08:08:34 <NihilistDandy> That's the one
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:09:39 <NihilistDandy> Also a winner
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:22 <itidus20> whats QI?
08:12:29 <Taneb> British panel show
08:12:41 <itidus20> is it IQ backwards?
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:06 <itidus20> ah yes
08:13:17 <Taneb> "What language did the Romans speak?"
08:13:20 <NihilistDandy> News items, too
08:13:23 <Taneb> *silence*
08:13:29 <Taneb> "...Dutch?"
08:13:42 <NihilistDandy> "Name a poisonous snake."
08:13:44 <Taneb> You lose points for saying the obvious answer
08:13:47 <NihilistDandy> "Piers Morgan"
08:14:02 <Taneb> "What was the great dissapoitment"
08:14:10 <Taneb> "Have you been talking to my husband?"
08:14:14 <itidus20> "last night"
08:14:16 <itidus20> hehehehe
08:14:41 <NihilistDandy> Ross Noble had some surprisingly accurate answers about hedgehogs a few weeks ago
08:14:48 <Taneb> A few weeks ago?
08:14:58 <Taneb> Man, where was I a few weeks ago...
08:14:58 <NihilistDandy> May have been more
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:28 <NihilistDandy> *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:48 <NihilistDandy> True
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:15:54 <Taneb> And New Zealand
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:01 <NihilistDandy> Pubenda is a great word
08:17:19 <NihilistDandy> Might have to name our QI esolang that
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:18:18 <NihilistDandy> The Davies constant
08:19:38 <Taneb> http://www.youtube.com/watch?v=PA8qT5PzSS4&feature=related
08:20:40 <NihilistDandy> David Mitchell's brilliant, as well
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:41:41 <NihilistDandy> Comedic timing at its finest
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:27:55 <Taneb> Back
09:39:44 <Taneb> Hello?
09:46:50 <oklopol> morning
09:47:11 <Taneb> My town's got a music festival this afternoon
09:47:15 <oklopol> i just did a full 14'er
09:47:38 <Taneb> 14'er?
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:47:54 <Taneb> Ah
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:30 <Taneb> That's a dwarf
09:51:33 <Taneb> Or maybe a hobbit
09:51:38 <Taneb> Depends on your facial hair
09:51:39 <oklopol> santa's elves are drarves
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:45 <oklopol> *dwarves
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:54:47 <lambdabot> i = fix ((.) =<<)
09:55:00 <Lymee> ...
09:55:01 <Lymee> What?
09:55:06 <Taneb> Can you make Lambdabot call itself?
09:55:30 <oklopol> no know
09:55:36 <Lymee> @src lambdabot
09:55:36 <lambdabot> Source not found. BOB says: You seem to have forgotten your passwd, enter another!
09:55:47 <Lymee> @src LambdaBot
09:55:47 <lambdabot> Source not found. I can't hear you -- I'm using the scrambler.
09:56:04 <Lymee> @src foldl'
09:56:04 <lambdabot> foldl' f a [] = a
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:18 <Taneb> No
10:05:31 <Taneb> But one of my friends thought the capital of the US was in British Columbia
10:05:44 <oklopol> ...how?
10:05:59 <Taneb> Got mixed up with Distric of.
10:05:59 <olsner> Washington BC
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:31 <oklopol> hmm, true
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:21:42 <oklopol> hehe :P
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:25 <oklopol> erm
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:37:29 <Taneb> What, DeviantArt?
10:38:31 <Taneb> On another not, Oerjan demonstrated how easy it is to program in NUmberwang
10:38:35 <Taneb> This is a problem
10:38:42 <Taneb> It should be hard to program in
10:41:13 <oklopol> no what cheater_ linked
10:41:37 <Taneb> ^*note
10:43:41 <oklopol> i preferred on another not
10:49:09 <Taneb> Bye
10:49:19 -!- Taneb has changed nick to TanebIsGone.
10:52:11 <NihilistDandy> That's Numberwang
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:27:47 <Phantom_Hoover> Casting them for the Mac ads was genius.
11:28:02 <Phantom_Hoover> Webb plays the smug, pretentious git so well.
11:36:53 <Phantom_Hoover> ^style
11:36:54 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
11:44:13 <oklopol> shit these are good
12:07:54 <sebbu> Rsvsv
12:08:38 <NihilistDandy> Same to you
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:29 <CakeProphet> my god.
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:13 <oklopol> why so :o
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:20 <NihilistDandy> It helps
13:11:34 <NihilistDandy> Read the last 6 preprints on arXiv
13:11:38 <oklopol> oh i misread you :D
13:11:43 <NihilistDandy> I'll bet 3 of them are bullshit
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:05 <NihilistDandy> 4 if you only read the physics section
13:12:20 <oklopol> i'll gladly admit i'm full of shit but i certainly have a lot to say :D
13:12:51 <CakeProphet> oklopol: and lots of sources, no doubt.
13:13:50 <oklopol> i'm sure i do
13:19:00 -!- tswett has joined.
13:42:21 -!- TanebIsGone has quit (Ping timeout: 260 seconds).
13:43:26 <oklopol> taneb is gone is gone
13:52:59 <tswett> Floodatkaa.
13:53:12 <tswett> Flöödätkää.
13:53:42 <tswett> Turhauttavinta. Käyttämisessä. Pitää.
13:53:54 <oklopol> okokokokokokokoko
13:53:55 <oklopol> okokokokoko
13:53:57 <oklopol> okokokokokokokokokokokoko
13:53:58 <oklopol> okokokokokoko
13:53:59 <oklopol> okokokoko
13:54:01 <oklopol> okokokokokokokokokokoko
13:54:02 <oklopol> okokokokokokokoko
13:54:03 <oklopol> okokokokoko
13:54:06 <oklopol> okokokokokokokokokokokokokokokoko
13:54:07 <oklopol> okokokoko
13:54:09 <oklopol> okokoko
13:54:11 <oklopol> okokokokokokokokokoko
13:54:16 <oklopol> kaikkein turhauttavinta.
13:54:56 <tswett> Laumastastasta suomi.
13:55:10 <tswett> Okokoko turhauttavinta.
13:56:11 <oklopol> i don't think a double elative is very meaningful
13:56:27 <oklopol> "from from a herd"
13:56:37 <Phantom_Hoover> Is elative for when you're very happy.
13:56:51 <oklopol> yes, lauma = herd, laumasta = happy herd
13:56:52 <tswett> Triple, isn't it?
13:57:00 <oklopol> whoops
13:57:04 <oklopol> sorry misread
13:57:08 <oklopol> been doing that a lot today
13:57:23 <oklopol> read laumastastansa
13:57:25 <oklopol> close enough
13:57:35 <tswett> Raikuja! Raikuja koirut siviisetsa!
13:57:37 <oklopol> that is, from from his herd
13:58:45 <tswett> Sölötölövölötölöstän.
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:05 <oklopol> why?
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:19 <tswett> Math.
14:03:49 <oklopol> cool so how many years now, 1?
14:04:47 <oklopol> and what have you learned
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:40 <oklofok> er
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:22 <oklofok> i mean you have to admit
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:37 <CakeProphet> > just consider having eight sevens.
14:23:38 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
14:23:47 <CakeProphet> what does that even mean?
14:23:54 <oklofok> no idea
14:23:57 <CakeProphet> fucking miraculous.
14:24:09 <Phantom_Hoover> It means that your expression is so wrong it can't even work out where to start.
14:24:26 <oklofok> ^
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:25:49 <oklofok> 3/12 = 1/4
14:26:02 <CakeProphet> it's like having the thing that a hundred millions makes, but then reversing it.
14:26:06 <CakeProphet> what does that even mean.
14:26:22 <CakeProphet> I'm so confused. I think I'm going to go to sleep.
14:26:27 <oklofok> good night
14:26:36 * CakeProphet should have majored in the maths.
14:26:40 <Phantom_Hoover> CakeProphet, you mean 000000001?
14:26:41 <oklofok> you should have.
14:26:54 <oklofok> everyone should major in maths, because maths is better
14:27:19 <oklofok> you know, better than.
14:27:58 <CakeProphet> er wait, is 12 choose 3 == 1 choose 4
14:28:05 <CakeProphet> I am pretty sure it is not.
14:28:12 <oklofok> obviously, you choose every fourth
14:28:12 <Phantom_Hoover> It is not.
14:28:14 <CakeProphet> but do not feel like getting my computer to calculate it.
14:29:10 <CakeProphet> pascal's triangle would be so fucked..
14:29:34 <oklofok> oh whoops
14:29:42 <oklofok> yeah 12 choose 3 != 1 choose 4
14:29:46 <oklofok> it's 4 choose 1
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:30:43 <CakeProphet> anyways, good night.
14:30:50 <oklofok> what can't math do?
14:30:52 <oklofok> math can do it
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:31 <oklofok> indeed i unhave read it
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:44:49 <sebbu> Rsvsv
14:56:21 -!- Taneb has joined.
15:02:49 <tswett> 3 choose 12 is equal to 1 choose 4.
15:05:49 <Taneb> Is it?
15:05:54 <Phantom_Hoover> No.
15:05:59 <tswett> Yes, it is.
15:06:13 <Taneb> I have no idea what you are talking about
15:06:27 <tswett> They're equal.
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:06:37 <Phantom_Hoover> tswett, it... really doesn't seem like it should be.
15:06:48 <Taneb> What language?
15:07:00 <Phantom_Hoover> Taneb, maths.
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:08:51 <Phantom_Hoover> It's definitely different.
15:09:07 <tswett> Sure, but 3 choose 12 is the same as 1 choose 4.
15:09:15 <Phantom_Hoover> Oh, right.
15:09:17 <Taneb> And 7 choose 71278
15:09:25 <Phantom_Hoover> Taneb, also zero.
15:09:29 <Taneb> Whenever the second is more than the first, it's 0
15:09:32 <Taneb> Just looked it up
15:09:38 <Phantom_Hoover> But I always forget which way round it is.
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:11:55 <Taneb> Nope
15:12:00 <Phantom_Hoover> O.o
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:13 <Phantom_Hoover> Or better still, the kth term.
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:06 <Phantom_Hoover> By which you mean the lowest-level qualification.
15:36:24 <Deewiant> oklofok: Kind of like ylioppilaskirjoitukset but done after the yläaste-equivalent
15:36:30 <oklofok> oh okay
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:22 <oklofok> ppl so stuppid rite? :DD
15:39:34 <oklofok> we... we something upper than that.
15:39:48 <Phantom_Hoover> You something upper than that
15:39:51 <Phantom_Hoover> *?
15:40:03 <oklofok> upper an idiot i'm way! :\
15:40:20 <oklofok> so i tried borrowing people's cellphones
15:40:50 <Taneb> Wh... what?
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:07 <oklofok> i asked like 20 ppl
15:41:10 <oklofok> two gave me their phones
15:41:26 <oklofok> one typed the number in himself, and looked a bit scared
15:41:37 <oklofok> (i'm pretty scary)
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:46:42 <oklofok> well true
15:47:19 <Taneb> Oh dear god the weather
15:47:27 <oklofok> so umm were those real reactions?
15:47:29 <oklofok> wtf
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:05 <oklofok> i hate people
15:48:06 <Taneb> Because they are prejudiced
15:48:17 <Phantom_Hoover> Especially the Asians.
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:46 <oklofok> horrible people
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:24 <oklofok> i love the rain
15:53:27 <oklofok> <3
15:53:48 <Taneb> My front road's going to flood again
15:54:49 <oklofok> small price to pay
15:55:11 <Taneb> The majority of my towns sewage flows through a small pipe along my roud
15:56:01 <Taneb> *roud
15:56:03 <Taneb> *road
15:56:16 <oklofok> so?
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:56:37 <oklofok> oh
15:59:28 <Taneb> Well, now one side of the road is dangerous to drive through
16:00:12 <Taneb> Both paths
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:00:58 <oklofok> well don't drive
16:01:00 <Phantom_Hoover> Please don't tell me you live in Hexham.
16:01:06 <Taneb> How did you know
16:01:23 <Taneb> Seriously, you just worked out where I live
16:01:23 <Phantom_Hoover> You... you do live in Hexham, don't you.
16:01:28 <Taneb> Yes
16:01:31 <Phantom_Hoover> wat
16:01:31 <oklofok> he can't
16:01:33 <Phantom_Hoover> This
16:01:34 <Phantom_Hoover> No
16:01:35 <oklofok> that would be too cool
16:01:45 <Taneb> I do
16:01:55 <oklofok> no you don't
16:01:58 <Taneb> The rain's just stopped
16:02:01 <Taneb> I honestly do
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:33 <Taneb> msg me a name?
16:04:42 <oklofok> it's not a secret, so no
16:04:44 <Taneb> And I wasn't
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:22 <Taneb> Mann?
16:05:26 <Taneb> Elliott Mann?
16:05:27 <oklofok> mann?
16:05:30 <oklofok> no
16:05:34 <Phantom_Hoover> Taneb, Hird.
16:05:40 <oklofok> do you know him?
16:05:46 <Taneb> No, I do not
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:06:30 <Taneb> Age range?
16:06:51 <oklofok> 12 iirc
16:07:02 <oklofok> or maybe he's 18 now
16:07:14 <Phantom_Hoover> WE MAY NEVER KNOW
16:07:16 <Taneb> I know neither any 12 nor 18 year olds
16:07:27 <Phantom_Hoover> Taneb, yes, this is because he is neither of these.
16:08:26 <Taneb> I can conlude he probably doesn't have a Facebook account
16:08:53 <oklofok> someone still uses facebook?
16:08:54 <oklofok> lol
16:09:28 <Taneb> I let my Facebook get out of hand.
16:09:37 -!- monqy has joined.
16:09:37 <Taneb> 1789 friends
16:10:06 <Taneb> Man, what a crazy day
16:10:10 <oklofok> yep
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:26 <Phantom_Hoover> That's... not very good proof.
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:11:42 <oklofok> *-it
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:39 <Phantom_Hoover> XD
16:13:42 <Taneb> And that other time when there's a historical redoey thingy on about the Hexham Protests
16:13:55 <Taneb> Reenactment
16:13:57 <Taneb> Riots
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:14:52 <Phantom_Hoover> Sure, but do you live in the Borders?
16:15:02 <Taneb> True
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:05 <Taneb> No
16:16:12 <Taneb> I said I read Wikipedia often
16:16:17 <oklofok> well right
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:18:45 <cheater_> the question is..
16:18:49 <cheater_> why would you *not* do that?
16:18:52 <oklofok> yeah.
16:18:55 <oklofok> and also
16:19:03 <oklofok> you could've done that SO YOU COULD FAKE LIVING ANYWHERE YOU WANTED
16:19:14 <oklofok> what a silly question
16:19:15 <cheater_> except for finland
16:19:21 <oklofok> except for finland.
16:19:40 <oklofok> because i know all the other 4 finns
16:19:49 <cheater_> and they're all drunk
16:19:57 -!- foocraft has joined.
16:20:04 <Taneb> I have no need for alcohol
16:20:13 <cheater_> AHA!!!
16:20:19 <cheater_> THAT PROVES YOU DO NOT LIVE IN FINLAND
16:20:28 <cheater_> WE ARE HOT ON YOUR TRACK, MISTER
16:20:35 <oklofok> Taneb: ...can you fly?
16:20:42 <Taneb> Never tried
16:20:44 <cheater_> hm.
16:20:48 <oklofok> you prolly could :|
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:21:52 <Phantom_Hoover> New theory: oerjan is actually a prophet.
16:22:03 <monqy> also http://esoteric.voxelperfect.net/wiki/Category:ABCD_Programming_Language_Family
16:22:04 <Taneb> I was?
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:34 <oklofok> erh
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:26:08 <Phantom_Hoover> monqy, it's basically a matter of "idiots exist".
16:26:24 <monqy> :(
16:26:49 <Taneb> brb
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:33:26 <oklofok> err drugs?
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:34:35 <Phantom_Hoover> oklofok, rather hard to obtain on such short notice.
16:34:54 <oklofok> eh?
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:19 <Phantom_Hoover> oklofok, could take a while.
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:37:14 <Phantom_Hoover> ...you are in Europe.
16:37:33 <oklofok> but we're not 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:38:58 <Phantom_Hoover> Can't fault your logic.
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:40:35 <oklofok> and the army
16:41:49 -!- azaq23 has joined.
16:45:13 -!- cheater_ has quit (Ping timeout: 255 seconds).
16:45:46 <Phantom_Hoover> And the ducks.
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:08 <oklofok> just in case
17:02:19 <oklofok> so i was thinking maybe i'll start smoking
17:02:25 <oklofok> like, now
17:02:29 <oklofok> wonder if i have a lighter
17:02:35 <Phantom_Hoover> oklofok, have you got to their APEC stunt?
17:02:42 <oklofok> nope not yet
17:02:50 <oklofok> link surfing at random
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:24:51 <Phantom_Hoover> The one with the motorcade.
17:27:21 -!- hagb4rd has joined.
17:27:56 <oklofok> what's SFA?
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:04:22 <Taneb> Hello
18:04:39 <oklofok> hello friend
18:05:59 <Taneb> Still not believing I live in Hexham
18:06:19 <Taneb> ?
18:06:36 <oklofok> i'm currently acting on the assumption that you will consistently claim to be from hexham
18:06:41 <oklofok> if that's what you mean
18:06:46 <Taneb> Yes
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:07:39 <Taneb> Such as?
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:09:12 <Taneb> But not today
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:20 <Phantom_Hoover> Quite simply?
18:12:29 <Taneb> Probably
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:33 <oklofok> but yeah i get your point
18:13:59 <oklofok> (unlike ph, i'm going to guess)
18:14:10 <oklofok> nah he's smart
18:14:16 <oklofok> i couldn't find a lighter :(
18:14:19 <oklofok> gonna go buy one
18:14:46 <Taneb> Does anyone know an IRC client that works on a Kindle?
18:14:48 <Phantom_Hoover> Just craft one out of flint and steel.
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:09 <Phantom_Hoover> Try Freenode's webchat?
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:08 <Taneb> No.
18:17:18 <Phantom_Hoover> lifthrasiir, why would there be?
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:20:42 <Phantom_Hoover> Taneb, 4th.
18:20:46 <Taneb> Okay
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:21:46 <Phantom_Hoover> You put voc last?
18:21:50 <Phantom_Hoover> Eew.
18:21:54 <Taneb> Wiktionary does
18:22:12 <Phantom_Hoover> Wait, and it puts acc after gen and dat?
18:22:16 <Taneb> Yep
18:22:19 <Phantom_Hoover> ...
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:26:23 <Taneb> What?
18:26:51 <Phantom_Hoover> It's best to just ignore him.
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:46 <Taneb> Yeah
18:30:53 <Taneb> Except it was the last of 19:26
18:30:55 <Taneb> I misread it
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:02 <hagb4rd> sry
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:46 <oklofok> Taneb: how come?
18:38:52 <oklofok> because it's coincidence day?
18:38:57 <oklofok> i've always loved the smell
18:38:59 <Taneb> Possibly
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:18 <oklofok> i mean
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:44:27 <tswett> Lumistalka.
18:44:38 <Taneb> 2 by 4
18:45:03 -!- oerjan has joined.
18:45:10 <oklofok> hi oerjan
18:45:17 <oerjan> g'day
18:45:20 <Taneb> Hey
18:46:30 <itidus20> hagb4rd, is your point that the first 3d shooters are more awesome than the ones which followed?
18:46:38 <hagb4rd> noo! ----###
18:46:42 <hagb4rd> this is batland
18:46:50 <hagb4rd> yea
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:14 <hagb4rd> yea
18:47:21 <hagb4rd> it was moving
18:47:29 <hagb4rd> in bout 6fps
18:47:32 <hagb4rd> !!
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:00 <oklofok> on it!
18:48:40 <oklofok> so i'll just come back and report on the first 3d shooter when they make it.
18:48:42 <oklofok> OH WAIT
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:23 <hagb4rd> +put/pull
18:49:33 <hagb4rd> peek
18:49:37 <hagb4rd> &poke
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:50:56 <hagb4rd> dunno
18:51:09 <itidus20> i am amazed atari had a fps
18:51:32 <hagb4rd> a mean frames per second ;)
18:51:42 <hagb4rd> first person shoote
18:51:56 <hagb4rd> need new keyboard
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:49 <hagb4rd> so keep your eyes on it
18:53:50 <hagb4rd> ;)=
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:18 <lambdabot> 121
18:54:49 <oerjan> wait what
18:54:56 <oerjan> @@ @read @run '5' : @show 9*2
18:54:57 <lambdabot> 59*2
18:55:01 <oerjan> oh
18:55:12 <tswett> oklofok: oh, right.
18:55:13 <oerjan> @@ @run 3 + @read @run '5' : @show @run 9*2
18:55:15 <lambdabot> 8
18:55:17 <tswett> I've learned... mathematics.
18:55:23 <oerjan> wtf
18:55:28 <tswett> Specifically, things from analysis and algebra.
18:55:30 <oerjan> @@ @read @run '5' : @show @run 9*2
18:55:32 <lambdabot> 5 18
18:55:40 <oklofok> what have you learned about algebra?
18:55:44 <oklofok> what's an algebra?
18:55:49 <oerjan> hm that's not what i was going for
18:55:56 <hagb4rd> oerjan script is busy
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:21 <lambdabot> 8
18:56:27 <oerjan> wat
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:56:37 <oerjan> @@ @show @run 9*2
18:56:38 <lambdabot> " 18\n"
18:56:59 <oerjan> hm
18:57:01 <oklofok> i still don't really know what monads are in math
18:57:18 <oerjan> pesky spaces
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:50 <oklofok> oh i see
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:27 <hagb4rd> sophisticated stuff
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:08 <hagb4rd> lol
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:05:26 <tswett> It's one of those.
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:15 <oklofok> of a certain type
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:35 <coppro> that sounds cool
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:45 <oklofok> *are so
19:08:48 <oklofok> nor kripke models
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:03 <Phantom_Hoover> Oh jesus are you trying to make an 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:27 <oklofok> oh
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:27 <Phantom_Hoover> Actually, it's 11630.
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:11:53 <Phantom_Hoover> <Taneb> Why bother? Just make Oolite plugins
19:12:03 <Phantom_Hoover> You've clearly never looked into the way OXPs work.
19:12:10 <Phantom_Hoover> They're infuriatingly limited.
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:02 <oklofok> oh!
19:13:08 <oklofok> that's awesome
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:13:53 <Taneb> *weighs
19:14:04 <Taneb> Can you explain why?
19:14:08 <oerjan> yes
19:14:13 <Taneb> Good
19:14:18 <oklofok> but then what's intuitionistic logic here, (a -> b -> c) -> ((a -> b) -> (a -> c)) and (a -> (b -> a))?
19:14:44 <Phantom_Hoover> Taneb, it depends.
19:14:45 <oerjan> oklofok: well those would be theorems yes
19:14:57 <oklofok> but are those the axioms
19:15:04 <oklofok> erm
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:54 <oklofok> oh
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:16:49 <oerjan> oklofok: yeah
19:17:04 <Taneb> Assuming their in the same gravity, does that make a difference?
19:17:05 <oklofok> ah it's metamath
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:12 <oklofok> for classical
19:18:25 <hagb4rd> but this doesn't fit on gravity
19:18:56 <Phantom_Hoover> Taneb, gold is pretty common in space, you know.
19:19:05 <Taneb> But feathers aren't
19:19:19 <itidus20> hag: I had some ideas about planets in 2d.
19:19:38 <hagb4rd> yea ok..
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:54 <hagb4rd> looks nice!
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:12 <Phantom_Hoover> itidus20, ...
19:20:14 <Phantom_Hoover> Um.
19:20:14 <hagb4rd> we had 2d planets in 85
19:20:17 <Phantom_Hoover> That
19:20:25 <Phantom_Hoover> That is not even remotely a new idea.
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:00 <Phantom_Hoover> oklofok, he's a genius, I tell you!
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:11 <hagb4rd> :'(
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:46 <hagb4rd> k.. thx hoover
19:21:51 <oklofok> by "like that" i mean the torus
19:21:51 <Phantom_Hoover> hehehe, balls.
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:24:49 <oklofok> are you familiar with it
19:24:58 <itidus20> i have wiki at my side
19:25:05 <oklofok> oh don't look at it
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:10 <oklofok> can you specify?
19:26:13 <Phantom_Hoover> oklofok, 'comet busters'?
19:26:21 <Phantom_Hoover> Is that what you called Asteroids in Finland?
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:30 <oklofok> apparently it is
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:02 <hagb4rd> k will do next :
19:28:04 <hagb4rd> :D
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:24 <Phantom_Hoover> oerjan, :D
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:29:37 <Taneb> Back
19:29:43 <Phantom_Hoover> We guessed.
19:29:45 <oklofok> CP?
19:29:51 <Phantom_Hoover> oklofok, charge-parity.
19:29:57 <Taneb> Dammit
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:36 <oklofok> oh cool
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:30:52 <oerjan> *reactions
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:22 <itidus20> ok
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:38:43 <Sgeo> *deep
19:38:54 <itidus20> ya ur rite
19:39:01 <itidus20> but..
19:39:04 <oklofok> itidus20: you want a surface like that of earth's, but infinitely deep?
19:39:10 <itidus20> maybe its possible to do both
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:31 <oklofok> erm
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:40:37 <Phantom_Hoover> Toruses can be flat.
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:41:11 <oklofok> annui
19:41:15 <oklofok> ?
19:41:29 <oklofok> erm
19:41:32 <oklofok> annulus
19:41:33 <oklofok> right
19:41:34 <oklofok> :DS
19:41:54 <Phantom_Hoover> <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:42:47 <Phantom_Hoover> Taneb, it's a different kind of 'flat'.
19:42:53 <Taneb> ooooh
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:31 <oerjan> NO
19:43:33 <Taneb> I don't think I really understand this, do I?
19:43:36 <Phantom_Hoover> Taneb, well, the Asteroids screen is a good example.
19:43:42 <Phantom_Hoover> It's topologically a torus, but it's flat.
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:46 <Phantom_Hoover> oklofok, remind me what closure is set-theoretically.
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:46:17 <oerjan> that's a flat torus.
19:46:56 <Taneb> Okay
19:47:00 <Taneb> I understand that
19:47:26 <oerjan> yay
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:12 <Phantom_Hoover> oklofok, um, surely it's closed?
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:49:54 <hagb4rd> :>
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:50:31 <Phantom_Hoover> oklofok, oh, right.
19:50:51 <Phantom_Hoover> Yes, looking at WP, you're right.
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:10 <Phantom_Hoover> So wait, why did you need two annuli?
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:28 <oklofok> well
19:51:39 <oklofok> yeah you could just glue together the inner and outer circles, yeah
19:51:41 <oklofok> but
19:51:48 <Phantom_Hoover> But?
19:51:48 <Taneb> Then it's creased
19:51:49 <hagb4rd> we can let it compute pi
19:51:50 <oklofok> i was responding to
19:51:51 <hagb4rd> :P
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:19 <Phantom_Hoover> oklofok, ah.
19:52:31 <itidus20> like a map projection, when a man goes to iceland
19:52:36 <itidus20> his body probably grows larger
19:52:56 <Phantom_Hoover> itidus20, what
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:31 <Phantom_Hoover> Taneb, it... is.
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:04 <Taneb> Of course!
19:54:12 <Taneb> It all makes sense now!
19:54:17 <hagb4rd> ease up guys
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:22 <oerjan> *and inner
19:55:24 <zzo38> Why is Canada Post barcode strange?
19:55:38 <Phantom_Hoover> oerjan, huh?
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:56:23 <Phantom_Hoover> oerjan, well duh.
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:24 <itidus20> so now it comes to life
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:44 <Phantom_Hoover> Taneb, god only knows.
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:00:55 <itidus20> something would have to flip
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:10 <Phantom_Hoover> Um, no.
20:03:12 <hagb4rd> dont you remember how hard it was to brake soon eough to make a landing? autopilot noobs :p
20:03:18 <Phantom_Hoover> Learn you some shell theorem.
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:04:52 <Phantom_Hoover> itidus20, the gravity at a planet's core is 0.
20:05:06 <itidus20> ahh
20:05:18 <Taneb> It averages out to that
20:05:28 <itidus20> does it decrease as you approach the center?
20:05:32 <hagb4rd> its not 0
20:05:39 <Taneb> I think so
20:05:40 <Phantom_Hoover> Taneb, no, it's exactly 0.
20:05:45 <Phantom_Hoover> itidus20, yes.
20:05:59 <hagb4rd> your impulse is zero
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:12 <hagb4rd> not the gravity
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:28 <Phantom_Hoover> Full stop.
20:06:40 <Phantom_Hoover> Taneb, that's why, yes.
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:01 <hagb4rd> its physics
20:07:16 <oerjan> hagb4rd: we are talking total sum of forces here
20:07:17 <hagb4rd> not your proffession
20:07:19 <Taneb> Which makes it really hard to compute
20:07:21 <hagb4rd> yea
20:07:25 <hagb4rd> the sum is 0
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:27 <hagb4rd> correct!
20:07:40 <oklofok> i mean math stuff
20:07:41 <Taneb> As well as the N-body problem
20:07:50 <Phantom_Hoover> Taneb, the centre of mass always has 0 gravity.
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:14 <itidus20> lol
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:01 <Phantom_Hoover> oklofok, don't you remember when elliott tried that?
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:45 <oklofok> so that two of 1
20:09:47 <oklofok> argh
20:09:49 <Phantom_Hoover> oklofok, elliott was trying to get relativity to work.
20:09:53 <Phantom_Hoover> So no, he didn't.
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:11 <Phantom_Hoover> oklofok, you could have gravitational field cells.
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:10:59 <oklofok> *0
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:29 <Phantom_Hoover> Not sure about that...
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:17 <hagb4rd> unbelievble
20:12:21 <hagb4rd> hrhr
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:12:55 <Phantom_Hoover> oerjan, Gauss' law for gravity comes to mind.
20:13:12 <itidus20> a chess game CA where the piece type is determined by the pieces around it
20:13:32 <Taneb> Icehouse Chess?
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:03 <oklofok> itidus20: huh?
20:14:07 <oklofok> Taneb: yeah
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:14:47 <itidus20> as an example
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:24 <oklofok> how do they move?
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:12 <itidus20> and.. in between turns
20:16:16 <oklofok> turns?
20:16:25 <itidus20> generations?
20:16:28 <oklofok> oaky
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:31 <Taneb> brb
20:16:36 <hagb4rd> and what happens next!
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:01 <hagb4rd> no
20:17:08 <itidus20> because its chess
20:17:21 <itidus20> or uhh
20:17:24 <itidus20> uhhhmmm
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:41 <Phantom_Hoover> oerjan, hmm, yes.
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:18:49 <oklofok> oaky
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:11 <hagb4rd> not to
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:35 <itidus20> and move 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:49 <itidus20> i try
20:20:51 <itidus20> hehe
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:21:46 <oklofok> whatever that means ;)
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:10 <itidus20> ok finite ca
20:22:21 <oerjan> The Queen That Went Too Far
20:22:43 <hagb4rd> lol
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:25:19 <Phantom_Hoover> See: the Reduceron.
20:26:28 <itidus20> The idea could also be extended into fairy chess.
20:27:42 <hagb4rd> or even result in resignation.
20:27:44 <hagb4rd> no!
20:28:01 <Taneb> Wrong convo?
20:28:13 <itidus20> sorry taneb
20:28:19 <hagb4rd> wrong attitude
20:28:23 <itidus20> i will join your convo
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:29:51 <Taneb> Yes
20:30:03 <oerjan> ok then i think i understand
20:31:44 <Phantom_Hoover> Taneb, http://www.cs.york.ac.uk/fp/reduceron/
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:36:52 <oklofok> argh
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:37:21 <oklofok> sry
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:39:23 <hagb4rd> we're gettin wam oklofok
20:39:51 <oklofok> what's wanm
20:39:52 <oklofok> *wam
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:40:30 <Taneb> BYOB
20:40:34 <oklofok> hagb4rd: ?
20:41:03 <hagb4rd> without beeing able to implement it an alg0
20:41:10 <Taneb> http://byob.berkely.edu
20:41:30 <itidus20> thanks
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:09 <Taneb> For BYOB
20:42:12 <itidus20> ^ http://byob.berkeley.edu/
20:42:14 <Taneb> It's how I leant it
20:42:19 <Taneb> *learnt 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:02 <Phantom_Hoover> Taneb, that... doesn't look functional.
20:43:07 <itidus20> ill just quiet down
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:30 <Phantom_Hoover> Functional bits don't make it functional.
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:06 <Phantom_Hoover> Scheme or Haskell is basically the best way to go.
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:44:48 <itidus20> i'll save it for another day
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:05 <Taneb> Yay
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:49:52 <itidus20> =))
20:50:09 <oklofok> i mean the answer to my particular question of whether you can implement gravity behavior with a ca
20:50:24 <oerjan> > cycle "Haskell "
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:52 <itidus20> hmm...
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:11 <Phantom_Hoover> Taneb, nah.
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:29 <itidus20> thus effectively hiding in it
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:28 <Phantom_Hoover> Taneb, nah.
20:53:35 <oerjan> oklofok: well there is the question of complexity class
20:53:36 <Taneb> I didn't say us
20:53:39 <Phantom_Hoover> There's plenty of boring mathematics.
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:20 <Taneb> Like a mime
20:54:29 <Taneb> When you try to make one talk
20:54:30 <oerjan> mine the mimes
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:48 <Phantom_Hoover> itidus20, it's non-deterministic?
20:54:59 <oklofok> assume additional stuff for U and T if useful
20:55:00 <itidus20> hmm...
20:55:12 <itidus20> hoover, well it could be deterministic :D
20:55:14 <Taneb> It's a phase sppace
20:55:16 <itidus20> that would be a cool thing
20:55:19 <itidus20> deterministic chess
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:33 <Taneb> Or sixth
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:54 <oklofok> oerjan: sure
20:55:57 <itidus20> replace the players with a rule for evolving the chessboard closer to an end.
20:56:03 <oklofok> have you seen it done?
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:45 <oerjan> (or T1)
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:15 <Taneb> :/
20:57:19 <oklofok> oerjan: well it would be obviously
20:57:20 <Phantom_Hoover> Taneb, protip: games are universally nondeterministic.
20:57:26 <oklofok> with my topology
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:48 <Phantom_Hoover> s/abstractions/structures/
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:41 <Phantom_Hoover> It's horrible.
21:00:51 <Taneb> Don't forget unoccupied
21:00:54 <zzo38> itidus20: And empty spaces.
21:00:56 <itidus20> yes i forgot that
21:01:04 <itidus20> hmm
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:36 <Taneb> 13?
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:04 <Phantom_Hoover> oklofok, of course.
21:02:08 <oklofok> :))
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:13 <oklofok> yayyy
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:42 <itidus20> zzo, yup...
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:28 <itidus20> they are sort of hidden
21:05:32 <Phantom_Hoover> itidus20, yes, but then you're shoehorning.
21:05:34 <itidus20> they were indeed left out of my model
21:05:35 <Phantom_Hoover> And no, they're not.
21:05:40 <Phantom_Hoover> They are completely hidden.
21:05:43 <itidus20> its a bit of a kludge, i know
21:05:53 <itidus20> its messy, very messy
21:05:54 <Phantom_Hoover> Looking at the board, it's impossible to tell if the king has castled.
21:06:02 <itidus20> yes but... you see..
21:06:08 <Phantom_Hoover> Yes, and kludges are exactly what you were trying to avoid.
21:06:10 <itidus20> you could add a red king
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:13 <itidus20> hahahaha
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:39 <itidus20> thats very creative of you
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:06:56 <Phantom_Hoover> Except that's the point.
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:37 <itidus20> yeah
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:26 <itidus20> yeah thats cos my CA sucked
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:08:45 <itidus20> :((
21:08:46 <itidus20> yes
21:08:55 <itidus20> this is true. its inelegant
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:27 <Phantom_Hoover> More or less.
21:10:41 <Phantom_Hoover> That makes "no hidden state" a tautology, of course.
21:10:43 <oerjan> itidus20: yeah everyone knows Phantom_Hoover is no true scotsman
21:10:48 <itidus20> i mean me
21:10:49 <Sgeo> Make a CA whose neighborhood also extends backwards in time to the initial state
21:10:51 <Phantom_Hoover> I drink tea all the time!
21:10:52 <itidus20> oh
21:10:54 <itidus20> hmm im confused
21:11:02 <Phantom_Hoover> My accent is inexplicably English!
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:23 <Phantom_Hoover> Preeeety sure that doesn't count as a CA.
21:11:29 <Phantom_Hoover> For one thing, there's no initial state.
21:11:30 -!- zzo38 has quit (Remote host closed the connection).
21:11:36 <Phantom_Hoover> itidus20, the joke is that I am Scottish.
21:11:42 <itidus20> cool
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:24 <oklofok> oh
21:12:32 <Phantom_Hoover> oklofok, exactly.
21:12:33 <oklofok> you mean no initial configuration or what?
21:12:46 <oklofok> oh you meant
21:12:55 <oklofok> CA have no... no bleh w/e
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:13 <cheater__> what's a CA?
21:15:17 * Taneb dies of inhaling hatmaking chemicals
21:15:21 <oklofok> argh
21:15:25 <oklofok> sorry oerjan
21:15:27 <Taneb> It's a State in South west US
21:15:28 <cheater__> aitp,atpm?
21:15:31 <cheater__> automaton?
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:36 <oklofok> what god said was
21:15:46 <oklofok> let there be two such states.
21:16:06 <Phantom_Hoover> <Taneb> I can't stand tea!
21:16:09 <Taneb> A CA is a cellular Automaton, cheater_
21:16:09 <Phantom_Hoover> DIE YOU BASTARD
21:16:16 <Taneb> I like the aroma
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:40 <olsner> *the afterfnarf
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:18:49 <oklofok> itidus20: ?
21:18:55 <oklofok> is what
21:19:00 <itidus20> that the teaparty consists of a set of mad people
21:19:02 <oerjan> <oklofok> sorry oerjan <-- wat?
21:19:09 <oklofok> oerjan: my god thing
21:19:11 <oklofok> corrected
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:19:46 <Phantom_Hoover> Taneb, why are you suddenly talking about 4D vectors?
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:20:07 <Taneb> I'm sure
21:20:11 <itidus20> oerjan: not well read enough
21:20:14 <oklofok> or does it actually work
21:20:38 <itidus20> oklofok: people are complex.
21:21:10 <Phantom_Hoover> itidus20, well, except the real ones.
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:21:37 <Phantom_Hoover> Taneb, carry it?
21:21:43 <Taneb> It's pretty big
21:21:51 <Phantom_Hoover> How big?
21:21:58 <Taneb> Around A0?
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:06 <Taneb> It'll get wet
21:22:12 <itidus20> australia
21:22:27 <itidus20> what do you expect from convicts
21:22:29 <itidus20> heh
21:22:31 <oklofok> or are there others?
21:22:39 <itidus20> might be
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:33 <oklofok> i'm not following you
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:24:51 <oklofok> still not
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:51 <Taneb> You don't.
21:25:55 <itidus20> humans, also, are reasonable overall. sometimes they let things go.
21:25:56 <Taneb> You can't.
21:25:59 <oklofok> not saying he's not correct, i'm asking what the fuck he's talking about
21:26:09 <Taneb> Whores.
21:26:10 <oklofok> oh
21:26:11 <oklofok> that
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:27:56 <oklofok> :D
21:27:58 <oklofok> i love ph
21:28:34 <itidus20> and reallly noone knows what is possible
21:28:44 <oklofok> yep
21:28:45 <itidus20> overestimation of knowledgebase is a common occurance
21:28:47 <oklofok> or wait
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:30:58 <Phantom_Hoover> I do now!
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:08 <Phantom_Hoover> No.
21:31:16 <oklofok> maybe i'll prove this now
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:38:57 <Phantom_Hoover> YES
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:12 <oklofok> erm
21:41:13 <oklofok> sorry
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:43:50 <itidus20> your link was cool
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:16 <Taneb> Like "seven"
21:45:17 <itidus20> but suppose we were to assign words to numbers with more than one dimension.
21:45:25 <itidus20> taneb: yes, like seven
21:45:32 <Taneb> Like "2+6i"
21:45:34 <itidus20> seven = [7]
21:45:38 <itidus20> no.. not quite
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:35 <elliott> hi
21:46:36 <lambdabot> elliott: You have 3 new messages. '/msg lambdabot @messages' to read them.
21:46:41 <elliott> wow
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:06 <itidus20> oops
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:26 <Taneb> So, vectors?
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:40 <oklofok> anyway now
21:47:47 <itidus20> taneb, the trick is that every number is already a vector
21:47:51 <itidus20> seven = [7]
21:48:06 <oklofok> Y is path-connected if, with the subspace topology, what you said is true for it
21:48:06 <itidus20> seven = [7][0]
21:48:11 <Taneb> So, we're giving names to n-length vectors
21:48:19 <itidus20> its an idea i had. yeah
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:36 <oklofok> so
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:47 <Taneb> ...
21:49:52 <itidus20> Taneb, but it is sort of interesting eh?
21:49:57 <Taneb> Yeah
21:49:58 <elliott> who's itidus20 btw
21:50:03 <oklofok> now, is there a connection between path-connectedness and connectedness?
21:50:08 <Taneb> I have no ieda
21:50:08 <itidus20> i just stumbled in here.
21:50:16 <Taneb> I have no idea, either
21:50:39 <itidus20> im probably the dumbest in here.
21:50:49 <Taneb> I dunno, I'm here
21:51:12 <elliott> dumber than asie?
21:51:23 <itidus20> probably
21:51:31 <Phantom_Hoover> Dumber than oklofok?
21:51:38 <itidus20> certainly
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:54 <elliott> :-P
21:51:56 <oklofok> you know just now i was like, hey i have some pizza let's eat
21:51:56 <Taneb> Yes
21:51:57 -!- FireFly has joined.
21:51:59 <itidus20> I don't know algebra.
21:52:01 <elliott> Taneb: Me too.
21:52:04 <oklofok> and then i look in the fridge and it's empty
21:52:04 <Taneb> I heard
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:18 <Taneb> It happens
21:52:19 <oklofok> and i was :(
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:52:44 <oklofok> i mean
21:52:47 <oklofok> how well you know algebra
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:42 <Taneb> Yeah!
21:53:47 <Taneb> 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:55:41 <Taneb> No you don't
21:55:54 <Phantom_Hoover> Well, OK, it's only inflated by 50 or so.
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:10 <elliott> monqy: ?
21:58:24 <Taneb> Probably
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:47 <elliott> oklofok: 9
21:59:49 <Taneb> 500 million to 1.8 billion
21:59:53 <elliott> Taneb: ARE YOU HAPPY NOW
21:59:59 <Taneb> YES
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:20 <elliott> I MUST BE ALONE.
22:00:25 <Taneb> Fine.
22:00:29 <Sgeo> Who else is in Hexlam?/
22:00:29 <Taneb> Be that way
22:00:33 <elliott> Sgeo: Nobody.
22:00:35 <Taneb> See how I care
22:00:38 <elliott> Me and Taneb are the only two people in Hexham.
22:00:49 <Sgeo> Ah
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:18 <elliott> Sgeo: wat?
22:01:21 <Phantom_Hoover> Taneb, do you play Minecraft?
22:01:26 <Taneb> Yes...
22:01:29 -!- zzo38 has joined.
22:01:50 <Taneb> Does Elliott
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:09 <elliott> Yes Taneb is totally fax.
22:02:17 <elliott> Taneb: WHY ARE YOU LITERALLY ME
22:02:27 <Taneb> I'M NOT YOU
22:02:35 <Phantom_Hoover> elliott, erm, fax lived in Hexham?
22:02:37 <Taneb> I'M AN ESTIMATED 2-3 YEARS YOUNGER
22:02:40 <elliott> Phantom_Hoover: Not that I know.
22:02:45 <elliott> Taneb: How old?
22:02:47 <Phantom_Hoover> Taneb, 1½, actually.
22:02:48 <oklofok> itidus20: see, what i said earlier didn't make sense without oerjan's addition
22:02:54 <Taneb> 16
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:14 <Phantom_Hoover> Sgeo, come on, you've seen fax's socks.
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:33 <monqy> socks?
22:03:42 <Phantom_Hoover> Taneb, oh, so you didn't live n the UK for 1½ years.
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:10 <Taneb> Huh
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:05 <Phantom_Hoover> Taneb, because you have a Mac?
22:05:10 <Taneb> No
22:05:14 <Taneb> I think it's this client
22:05:24 <Phantom_Hoover> That's a pretty crappy client.
22:05:46 <elliott> Ha, you use Windows; I am justifiably superior.
22:05:53 <Taneb> I use Linux
22:05:59 <elliott> -Taneb- VERSION leafChat 2.3 Windows XP 5.1 http://www.leafdigital.com/software/leafchat/
22:06:03 <Taneb> Not at the moment
22:06:08 <elliott> Dammit.
22:06:09 <Taneb> But I do normally
22:06:11 <Phantom_Hoover> elliott, maybe he's running it in Wine.
22:06:17 <Phantom_Hoover> Because he is mad.
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 <Phantom_Hoover> elliott, Taneb probably takes real science subjects.
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:30 <elliott> Taneb: What.
22:07:51 <Taneb> I'm actually serious
22:07:59 <elliott> Taneb: EXPLAIN YOURSEF
22:08:00 <elliott> ..L
22:08:02 <monqy> what does famous mean
22:08:05 <Phantom_Hoover> Taneb, wait, I wear a dressing gown.
22:08:12 <Taneb> I've been described as a North-East legend
22:08:18 <elliott> I...
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:08:53 <Taneb> Summer '09.
22:09:04 <monqy> good explanation
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:25 <Taneb> Cut to February
22:10:32 <Taneb> War were declared
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:28 <Taneb> Signed up
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:41 <Phantom_Hoover> (It's hilarious.)
22:11:46 <Taneb> That was November '10, PH
22:11:51 <Taneb> When I did that
22:11:54 <Phantom_Hoover> Quiet, you.
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:18 <elliott> I haven't, ha ha ha.
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:29 <monqy> am i famous
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:30 <monqy> good name
22:13:37 <Phantom_Hoover> Which place is his?
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:19 <NihilistDandy> Whore
22:14:29 <Phantom_Hoover> I have 6.
22:14:31 <monqy> I don't have a real facebook
22:14:34 <monqy> jealous????
22:14:37 <Taneb> I have two
22:14:46 <elliott> i have undefined
22:14:54 <elliott> english has bad type checking :(
22:15:11 <NihilistDandy> elliott++
22:15:11 <Phantom_Hoover> I have carrots.
22:15:14 <Taneb> Zero, Elliott, when I heard you lived in Hexham I checked you out
22:15:23 <elliott> im stalked
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:17:33 <monqy> what does it mean
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:19:04 <Phantom_Hoover> Literate friends.
22:20:30 <Taneb> Indeed
22:20:51 <Phantom_Hoover> You are currently stalking elliott by asking random friends if they've heard of him y/n
22:20:58 <Taneb> n
22:21:05 <Taneb> Asking random /people/
22:21:06 <Phantom_Hoover> Wrong answer.
22:21:16 <NihilistDandy> Is this awesome [Y/n]?
22:21:20 <Taneb> n
22:21:31 <Taneb> PH: I wouldn't count them as friends
22:21:41 <Taneb> ND: It's stalking.
22:21:46 <Taneb> Stalking is bad
22:21:47 <elliott> OK stop stalking me.
22:21:51 <Taneb> OK
22:22:07 <Taneb> Goodnight
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:25 <oklofok> ah
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:48 <oklofok> topologically
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:22 <oklofok> good point
22:29:37 <Phantom_Hoover> oerjan, hmm, how vast are we talking.
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:40 <olsner> oklofok: ask them?
22:30:49 <Phantom_Hoover> oerjan, hmm, that's a lot of sheep.
22:30:55 <Phantom_Hoover> I could sell them for a fair amount.
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:33:38 <Phantom_Hoover> oklofok, consider that you may be an orphan.
22:33:45 <oklofok> ? :D
22:34:25 <oklofok> in what sense
22:34:56 <Phantom_Hoover> oklofok, well, for instance, have you ever actually seen your dad.
22:35:05 <oklofok> hmm
22:35:07 <oklofok> good question
22:35:13 <oklofok> i think i have, yes
22:35:20 <oklofok> a couple of times
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:36:39 <Phantom_Hoover> oklofok, hmm, that's harder to fit to the hypothesis.
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:16:44 <elliott> huh, that's new
23:17:03 <oerjan> yeah
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:18:53 <elliott> but it does?
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:44 <Phantom_Hoover> elliott, note last letters.
23:19:45 <elliott> expired and on a bad pastebin. hth.
23:19:49 <Phantom_Hoover> *first letters
23:19:53 <elliott> Phantom_Hoover: :D
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:29 <elliott> Yes.
23:35:31 <elliott> <Sgeo_> Also, sometimes I posted pastes in here deliberately set to expire
23:35:32 <elliott> I hate you.
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:12 <elliott> OHHHH BURN
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
2011-07-17
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:10:17 <lambdabot> Consider it noted.
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:34 <Phantom_Hoover> (UK's youngest pregnancy /o/)
00:13:34 <myndzi> |
00:13:35 <myndzi> /´\
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:28:45 <elliott> i have nothing to say
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:37:30 <oklofok> *problems
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:48:32 <oerjan> curses, foiled again
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:25 * Phantom_Hoover → sleep
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:41 <elliott> no, just a hama
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:10:56 <oklofok> why am i should this?
01:11:20 <elliott> oklofok: ok
01:16:53 <oerjan> http://en.wikipedia.org/wiki/Silo,_Oklahoma
01:17:59 <oerjan> other options include salina, slaughterville, and south coffeyville
01:18:59 <elliott> :D
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:26 <elliott> hahaha
01:21:44 <elliott> Veggieville
01:21:46 <elliott> you missed out the best part
01:22:13 <oerjan> oh right
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:28 <elliott> 20:17:01: <hagb4rd> no
01:34:31 <elliott> i wanna addquote this but it's too long
01:35:00 <oklofok> :(
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:42 <elliott> oklofok: :D
01:35:52 <elliott> itidus20: what
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:36:56 <itidus20> fascinating stuff
01:37:22 <elliott> oklofok: thx
01:37:39 <oklofok> i didn't do it yets
01:37:48 <oklofok> http://www.rnd.fi/oklopol/music/sevenfold.mid
01:37:56 <oklofok> and here's the new domain
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:29 <oerjan> almost certainly not
01:38:35 <oklofok> sevenfold is a best
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 <oklofok> would be the awesome
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:23 <oklofok> i don't wanna know
01:41:29 <elliott> i do
01:41:52 <elliott> i wonder if it's humanly possible to drum that fast
01:41:53 <elliott> (yes)
01:42:04 <oklofok> i can check if the guitars are playable, the drums are impossible tho
01:42:14 <elliott> oklofok: i doubt that
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:56 <elliott> it is uncool in school
01:45:57 <zzo38> Yes I saw that stuff about making a game with cards and selling the game earning 50% profit.
01:46:36 <itidus20> seems fascinating.
01:46:38 <oklofok> i think sevenfold is way faster than that vid at least
01:46:44 <elliott> yeah but
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:46:54 <itidus20> me too
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:47:48 <itidus20> Fanucci... well... i doubt it
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:49:27 <itidus20> haha
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:51:45 <elliott> oklofok: PSHT
01:52:04 <oklofok> elliott: okay okay
01:52:11 <oklofok> wait a mo
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:52:23 <itidus20> But just saying that I have.
01:53:06 <elliott> the occult kills children
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:29 <elliott> thats not helpful gogle
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:39 <oklofok> yeah
01:56:49 <itidus20> just use www.wolframalpha.com
01:56:59 <oklofok> 16 * 60 is a simple mental calculation
01:56:59 <elliott> itidus20: its just times ixty :-P
01:57:01 <elliott> sixty
01:57:14 <itidus20> it knows everything
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:08 <elliott> oklofok: haha
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:41 <elliott> are you twenty years old
02:00:44 <elliott> or are you actually twenty people???
02:00:52 <itidus20> i'm 29, born in 82
02:01:06 <itidus20> no 20's in my birthdate
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:14 <itidus20> humm
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:00 <elliott> itidus20: define formally
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:16 <oklofok> erm
02:02:21 <oklofok> *at 16 bps
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:05:03 <elliott> why
02:06:06 <elliott> itidus20: ?
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:27 <itidus20> against the road
02:06:34 <elliott> um
02:06:34 <elliott> ok
02:06:56 <itidus20> secondly, the unmoderated nature of chat means it is full to the brim with nasty people
02:07:04 <itidus20> ^it's chat
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:09:47 <oerjan> ESOTERIC Y U SO IQ
02:09:48 <elliott> excuse me i am still here
02:10:07 <oerjan> (then *BOOM*)
02:10:19 <oerjan> thus "most"
02:10:52 <elliott> ah.
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:37 <oerjan> I MEAN FACTS
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:16:49 <elliott> that was a joke
02:17:20 <oklofok> oh okay anyway lemme show you my pathetic attempt
02:17:30 <elliott> oh cools
02:18:23 <oklofok> no it's not :D http://www.vjn.fi/temporary%20shit/fucckkk.wma
02:18:30 <elliott> wma :D
02:18:37 <oklofok> windows recorder
02:18:44 <oklofok> the most horrible program ever
02:18:51 <oklofok> it literally just has a record button.
02:18:54 <CakeProphet> *best
02:19:03 <elliott> oklofok: haha wow was it actually this choppy irl
02:19:08 <oklofok> yes :D
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:32 * CakeProphet has mad guitar skillz
02:20:43 <CakeProphet> or, at least, I can play it..
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:22:53 <elliott> do the whole thing :-P
02:26:59 -!- NihilistDandy has quit (Ping timeout: 252 seconds).
02:35:02 -!- NihilistDandy has joined.
02:36:19 <elliott> oklofok: earth to oklopol
02:37:04 <oklofok> ?
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:44:27 <elliott> [asterisk]even
02:50:24 <oklofok> http://www.vjn.fi/temporary%20shit/spacejazz.wma
02:50:36 <oklofok> i'm too tired
02:51:31 <elliott> you tried again? :P
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:54:12 <elliott> "I, too, am a racist."
02:54:15 * elliott is still logreading :P
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:56:41 <itidus20> hmm
02:58:11 <itidus20> thinking...
02:59:10 <itidus20> still thinking..
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:04:42 <elliott> brb
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:30 <oklofok> cool
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:06 <oklofok> :D
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:40 <oklofok> what's a misconception?
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:33 <elliott> lol
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:15 <oklofok> ron fucking hubbard?!? .D
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:33 <oklofok> elliott: perhaps, yes
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:20 <itidus20> and its driving me crazy
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:18:38 <itidus20> ah.
03:19:06 <oklofok> in my case it's usually about... absolutely nothing
03:19:11 <oklofok> no reason
03:19:15 <oklofok> just can't do anything
03:19:20 <oklofok> except play space jazz
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:03 <elliott> oklofok: space jazz?
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:52 <oklofok> well
03:20:55 <elliott> oklofok: it's every genre imaginable.
03:20:57 <oklofok> at least not all of it
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:38 <elliott> (it is this 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:23:58 <Sgeo__> Hmm
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:36 <Sgeo__> Hmm.
03:24:45 <itidus20> combined with mild asthma.
03:24:51 <itidus20> its hard to tell which is which at times.
03:25:32 <elliott> Sgeo__: Hmmmmmmmm
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:51 <itidus20> or people flushing the toilet
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:26:46 <elliott> i.e. if you reply
03:26:53 <Sgeo__> Ah, ok
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:29:43 <itidus20> lol
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:30:53 <itidus20> So I value it.
03:31:27 <itidus20> ok heres some trivia about hearing
03:31:32 <oklofok> i have great eyesight
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:28 <itidus20> which distracts it
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:06 <oklofok> yes
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:14 <itidus20> phew
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:33 <itidus20> phew
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:00 <oklofok> or instead closedly
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:29 <itidus20> lol
03:36:37 <elliott> i am not joking.
03:36:40 <oerjan> fungot: what is elliott babbling about
03:36:41 <oklofok> he's not
03:36:45 <oerjan> eek
03:36:52 <oerjan> oh wait right
03:36:54 <oerjan> ^style
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:36:59 <elliott> fungot: love times
03:37:00 <fungot> elliott: ' git' wins over ' hg' because hg is too close to the cat's forehead.
03:37:04 <elliott> xD
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:23 <monqy> fungot...:(
03:39:24 <fungot> monqy: meh. now i'm thinking of a function and stop the eval loop? :)
03:39:49 <oerjan> zzo38: clever guy
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:43:54 <itidus20> lol
03:44:44 <elliott> what bad shit
03:44:45 <elliott> ?
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:44 <oklofok> who doesn't
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:00 <oerjan> i can tell
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:49:19 <itidus20> ahhahahhaa
03:49:45 <itidus20> im not a mysogynist
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:03 <oklofok> erm hrm
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:31 <itidus20> :-j
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:36 <elliott> really
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:00 <oklofok> really?
03:54:03 <elliott> oklofok: yes. yes i am
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:55:56 <oklofok> *throat
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 <oklofok> that i doubt
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:02 <elliott> it's great
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
03:59:25 <monqy> people are gross
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:01:10 <itidus20> also
04:03:21 <itidus20> im still figuring stuff out
04:03:35 <oklofok> what stuff?
04:03:58 <itidus20> well, the best way to characterize people
04:04:27 <elliott> why do it
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:07:56 <itidus20> and dog has been let outside
04:08:06 <itidus20> now to inject insulin
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:10:26 <monqy> and his tylenol
04:10:33 <monqy> someone help
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:12:53 <itidus20> lol
04:13:01 <itidus20> i see.
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:21 <monqy> space jazz?
04:13:27 <oklofok> :D
04:13:29 <oklofok> exactly!
04:13:35 <elliott> oklofok: link monqy to the space jazz he needs it
04:13:41 <monqy> i need 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:13:48 <Sgeo__> Says the hypocrite.
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:14:58 <monqy> oklofok: ty
04:15:05 <itidus20> hehe
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:16 <itidus20> life used to be so easy
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:16:56 <oklofok> i'm a fucking genius :D
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:04 <itidus20> i can't compose
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:25 <itidus20> therein lies the skill
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:22:56 <oklofok> hmm food would be cool
04:23:08 <itidus20> i see. :)
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:24:40 <itidus20> mind(this)
04:25:02 <itidus20> I.try { mind(this) }
04:25:31 <itidus20> I.try { static mind(this) }
04:25:39 <monqy> I don't get it
04:25:53 * itidus20 shrugs
04:25:58 <oklofok> Sgeo__: i was not referring to you in particular (or perhaps at all)
04:26:29 <itidus20> try as in a try {} catch {}
04:26:46 <itidus20> static as in keep it
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:02 <itidus20> what is a topology?
04:29:25 <oklofok> good question!
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:33:44 <oklofok> *just doing
04:33:54 <itidus20> simple english is awesome.
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:10 <elliott> oh dear.
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:37:03 <Sgeo__> Blargh
04:37:04 <Sgeo__> Oh?
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:16 <elliott> take that logic
04:39:37 <Sgeo__> I'm.. not sure
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:40:51 <oklofok> \ being set subtraction
04:40:58 <oklofok> *is a closed
04:41:28 <Sgeo__> Um
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:40 <itidus20> it didn't show ?'s
04:43:43 <oklofok> itidus20: it's just X - C in T
04:43:45 <itidus20> but it showed something
04:43:57 <itidus20> well notice i typed a "?"
04:44:00 <oklofok> the set "C subtracted from X" is in the set T
04:44:02 <itidus20> what was in place of the "?"
04:44:10 <monqy> backslash
04:44:11 <monqy> \
04:44:12 <Sgeo__> As long as X contains null, if C is null, X-C is ... wait what
04:44:15 <itidus20> ah ok
04:44:18 * Sgeo__ is too tired for this
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:43 <Sgeo__> The set
04:44:51 <oklofok> well what's "contain"?
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:22 <oklofok> yeah
04:45:42 <itidus20> ok using arial now.. screw it
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:22 <Sgeo__> Oh
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:44 <elliott> japanese locale
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:20 <itidus20> meet at port 19
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:12 <oklofok> i mean, as an element
04:48:19 <Sgeo__> Oh, ok
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:48:57 <Sgeo__> Null is closed.
04:49:12 <oklofok> yes!
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:37 <oklofok> let me warn you
04:49:41 <oklofok> this WILL BE DIFFICULT
04:49:44 <itidus20> is iff different than if?
04:49:48 <oklofok> itidus20: yes
04:49:50 <Sgeo__> itidus20, yes
04:49:51 <oklofok> iff means if and only if
04:49:51 <itidus20> ok
04:49:55 <Sgeo__> iff means "if an.. dangit
04:50:06 <monqy> ifd
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:12 <monqy> ii mean
04:50:15 <monqy> iad
04:50:17 <monqy> id???
04:50:20 <Sgeo__> And other way around
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:50:59 <elliott> ghost story
04:51:01 <oklofok> recall that {} is in T by definition
04:51:05 <Sgeo__> Oh
04:51:05 <itidus20> so when i say i am dumbest here... now you get the idea ^_^
04:51:08 <oklofok> can you prove {} is in T?
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:40 <oklofok> no it's not!
04:52:47 <oklofok> how else would we prove our theorem
04:52:50 <elliott> attitude to your teacher Sgeo__
04:53:02 <oklofok> so yes, the answer is yes
04:53:05 <oklofok> what does that tell us?
04:53:14 <oklofok> given what we proved earlier
04:53:29 <Sgeo__> Well, then null's trivially open
04:53:43 <oklofok> yes, so it's clopen!
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:25 <oklofok> or what are you saying
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:57:40 <Sgeo__> Ok
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:36 <Sgeo__> I mean, this material
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:02:54 <Sgeo__> IRC
05:03:24 <oklofok> :)
05:03:24 <Sgeo__> Ok, what's a metric?
05:03:33 <Sgeo__> Although I barely remember the definition of closed
05:03:56 <Sgeo__> Or of a topology
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:00 <oklofok> don't remember? repeat!
05:05:06 <oklofok> metric is:
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:40 <oklofok> argh
05:05:45 <Sgeo__> Sorry
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:23 <elliott> Sgeo__: logs exist
05:07:27 <Sgeo__> Are X any old things, or are they necessarily numbers?
05:07:35 <oklofok> Sgeo__: X can be any set
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:26 <elliott> wormholes qed
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:37 <oklofok> Sgeo__: no!
05:09:54 <oklofok> d(0, 0) = 0 but d(0, 1) + d(1, 0) = 2
05:09:54 <Sgeo__> Oh, hmm, I see
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:12:52 <oklofok> yes!
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:14 <Sgeo__> Ok.
05:13:27 <Sgeo__> Open == it's in the topology, right?
05:13:31 <oklofok> yep
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:15:39 <Sgeo__> non-0 size
05:15:52 <oklofok> yep
05:16:02 <oklofok> a ball which is still completely inside U
05:16:16 <Sgeo__> Ah, ok.
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:26 <Sgeo__> That's... hmm
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:17:54 <oklofok> do we have a topology?
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:29 <oklofok> yep!
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:25 <oklofok> go ahead
05:19:29 <oklofok> we all do
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:19:54 <oklofok> yep
05:20:03 <oklofok> {} is rather trivially open by that definition of open
05:20:05 <oklofok> what about X?
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:21:47 <oklofok> is there?
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:23:50 <Sgeo__> Wait, what?
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:27:37 <oklofok> it's a subset of X
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:28:23 <oklofok> yes
05:28:28 <oklofok> and nothing else afai
05:28:29 <oklofok> k
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:23 <oklofok> i think
05:30:23 <Sgeo__> Oh, right
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:49 <Sgeo__> Ok.
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:32:21 <Sgeo__> not let?
05:32:27 <oklofok> *now let
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:33:35 <Sgeo__> cap?
05:33:40 <oklofok> latex for intersection
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:35:58 <oklofok> np
05:36:02 <oklofok> eats to buy ->
05:36:24 <Sgeo__> huh?
05:36:44 <oklofok> food
05:37:05 <oklofok> have to go to the shoppe
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:03:37 <zzo38> More context?
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:05:45 <pikhq> Barely, but hey.
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:06:40 <zzo38> pikhq: I agree.
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:08 <pikhq> zzo38: :)
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:13:57 <zzo38> OK
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:43:00 <coppro> Wut
07:44:29 <pikhq> Admittedly, chairman of the Democratic Party in the state.
07:44:52 <coppro> still pretty aweosme
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:27 <coppro> heh, yeah
07:48:39 -!- elliott has joined.
08:29:08 -!- MigoMipo has joined.
08:35:38 -!- Taneb has joined.
08:35:43 <Taneb> Hello!
08:38:43 <Taneb> Hello?
08:38:47 <elliott> hello,
08:39:08 -!- elliott has quit (Quit: Leaving).
08:47:10 <zzo38> Hello#
08:59:51 -!- CakeProphet has joined.
08:59:51 -!- CakeProphet has quit (Changing host).
08:59:51 -!- CakeProphet has joined.
09:00:11 <CakeProphet> :o
09:00:57 <CakeProphet> you know what is more delicious than M&M's?
09:01:33 -!- CakeProp1et has joined.
09:01:38 <CakeProphet> M&M's with a ball of pretzel inside.
09:01:41 <CakeProphet> ....
09:01:51 <CakeProphet> wat.
09:02:14 -!- CakeProp1et has quit (Client Quit).
09:02:24 <CakeProphet> I have no idea how that happened.
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:16:02 <Taneb> Hello
09:29:33 <Taneb> Hello?
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:52 <CakeProphet> lolwat
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 <Phantom_Hoover> Hello everyone.
10:13:47 <lambdabot> Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them.
10:13:52 <Taneb> Hello
10:13:53 <Phantom_Hoover> Goodness.
10:29:36 -!- derrik has joined.
10:45:54 -!- azaq23 has joined.
10:46:58 <CakeProphet> Phantom_Hoover: you have so many fans.
10:59:00 -!- FireFly has joined.
10:59:22 <CakeProphet> :t fromListWith
10:59:24 <lambdabot> Not in scope: `fromListWith'
10:59:42 <CakeProphet> :t M.fromListWith
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:01:46 <lambdabot> mueval-core: Time limit exceeded
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:25 <CakeProphet> :t cmp
11:05:26 <lambdabot> Not in scope: `cmp'
11:05:34 <CakeProphet> :t compare
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:13 <lambdabot> Not in scope: `to'
11:06:15 <CakeProphet> bah
11:06:27 <CakeProphet> > sortBy (compare.snd) . toList . M.fromListWith (+) . (`zip` repeat 1) . map toLower $ "This is a typical English sentence"
11:06:28 <lambdabot> Not in scope: `toList'
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:06:50 <CakeProphet> -_-
11:11:53 <CakeProphet> :t sortBy
11:11:54 <lambdabot> forall a. (a -> a -> Ordering) -> [a] -> [a]
11:12:10 <CakeProphet> :t M.toList
11:12:11 <lambdabot> forall k a. M.Map k a -> [(k, a)]
11:12:42 <CakeProphet> :t compare.snd
11:12:43 <lambdabot> forall a a1. (Ord a) => (a1, a) -> a -> Ordering
11:13:06 <CakeProphet> ah
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:13:59 <olsner> :t sortOn
11:14:00 <lambdabot> Not in scope: `sortOn'
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:16:59 <CakeProphet> !hist Hello, World!
11:17:29 <CakeProphet> ...parse error, of course.
11:17:51 <CakeProphet> !delinterp hist
11:17:51 <EgoBot> ​Interpreter hist deleted.
11:17:56 <CakeProphet> !addinterp hist haskell "test"
11:17:56 <EgoBot> ​Interpreter hist installed.
11:17:57 <CakeProphet> !hist
11:18:00 <EgoBot> ​"test"
11:18:06 <CakeProphet> !delinterp
11:18:06 <EgoBot> ​ is not a user interpreter.
11:18:08 <CakeProphet> !delinterp hist
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:18:41 <CakeProphet> !hist test
11:19:11 <Taneb> ¬¬
11:19:15 <CakeProphet> yeah, I don't understand the parse error.
11:20:02 <CakeProphet> !delinterp hist
11:20:02 <EgoBot> ​Interpreter hist deleted.
11:20:25 <Taneb> What is Hist?
11:20:42 <CakeProphet> histogram
11:21:05 <Taneb> Okay
11:21:29 <Taneb> ...Is a histogram appropriate for letter frequency?
11:22:05 <CakeProphet> distribution of data in a sample
11:22:08 <CakeProphet> the list elements are the sample.
11:23:34 <Taneb> Okay
11:24:18 <CakeProphet> hmmm
11:24:39 <CakeProphet> > group sort "Hello, everyone"
11:24:40 <lambdabot> Couldn't match expected type `[a]'
11:24:40 <lambdabot> against inferred type `[a1] -> [...
11:24:44 <CakeProphet> > group . sort $ "Hello, everyone"
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:26:23 <CakeProphet> oh, hey, I used arrows.
11:26:31 <CakeProphet> probably a first for me.
11:27:40 <CakeProphet> This one is probably slower, but I'm not really sure.
11:28:08 <CakeProphet> because of the sort.
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:09 <elliott> hi ais523
11:30:16 <ais523> hi elliott
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:33:37 <Taneb> Operating System
11:36:42 <Phantom_Hoover> Eew, Telepathy?
11:36:55 <Taneb> Empathy IM
11:37:09 <Phantom_Hoover> Even worse...
11:37:10 <CakeProphet> > filterM (const [True, False]
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:18 <CakeProphet> :t filterM (const [True, False])
11:37:19 <lambdabot> forall a. [a] -> [[a]]
11:37:38 <Taneb> Gonna switch soon, maybe
11:37:47 <CakeProphet> > filterM (const [True, False]) "abc"
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:38:50 <lambdabot> 16
11:39:10 <CakeProphet> > let f n = length . filterM (const [True, False]) $ replicate n ' ' in f 5
11:39:12 <lambdabot> 32
11:39:14 -!- Sgeo__ has quit (Ping timeout: 255 seconds).
11:39:56 <CakeProphet> the most efficient way to write (2^) in Haskell
11:41:44 <CakeProphet> the list monad is pretty awesome.
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:50:50 <CakeProphet> Phantom_Hoover: -r?
11:51:03 <CakeProphet> er, no.
11:51:12 <ais523> wget -r -np
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:52:11 <Phantom_Hoover> Ah, thanks.
11:52:40 <Phantom_Hoover> (My wget man page is formatted weirdly because GNU.)
11:53:11 <CakeProphet> > filterM (const []) "abc"
11:53:12 <lambdabot> []
11:53:14 -!- derrik has joined.
11:53:16 <CakeProphet> > filterM (const [False]) "abc"
11:53:17 <lambdabot> [""]
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:56:48 <NihilistDandy> Why not?
11:56:48 <CakeProphet> Taneb: you should learn it right now.
11:56:53 <NihilistDandy> RIGHT NOW
11:57:01 <NihilistDandy> Left Then
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:17 <elliott> ais523: BOTH
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:25 <CakeProphet> yes.
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:57:43 <CakeProphet> if it becomes a point of contention.
11:57:50 <NihilistDandy> Taneb: What thingy?
11:57:59 <elliott> Taneb: haskell platform?
11:58:04 <Taneb> That thingy
11:58:10 <elliott> what doesn't work
11:58:14 <NihilistDandy> What system are you on?
11:58:18 <Taneb> Ubuntu
11:58:22 <elliott> which ubuntu
11:58:28 <elliott> and how are you trying to install it
11:58:40 <Taneb> Natty Narwhal, Software Centre
11:58:40 <CakeProphet> sudo apt-get install ghci
11:58:45 <CakeProphet> is probably all you need to do
11:58:45 <elliott> CakeProphet: no
11:58:48 <CakeProphet> unless you want fancy stuff.
11:58:48 <elliott> that is not the haskell platform
11:58:51 <CakeProphet> yes I know.
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:28 <elliott> oh
11:59:28 <elliott> that one
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:25 <elliott> ais523: and then
12:00:26 <elliott> ais523: and then
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:40 <ais523> ouch
12:00:45 <ais523> is that even an IDE?
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:03 <elliott> it is
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:02:52 <elliott> Taneb: huh
12:03:03 <elliott> Taneb: try sudo apt-get remove ghc6?
12:03:07 <elliott> before that
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:06 <elliott> Taneb: ugh
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:02 <elliott> well, it's
12:05:03 <elliott> apt-get -f install
12:05:04 <NihilistDandy> Taneb: Try operating_system -f update
12:05:05 <ais523> elliott: it's anything
12:05:05 <elliott> Taneb: sudo apt-get -f install
12:05:10 <elliott> ais523: fair enough
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:46 <NihilistDandy> Most IDEs are terrible, anyway
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:09 <NihilistDandy> Nice wordplay
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:43 <elliott> ais523: :D
12:06:51 <NihilistDandy> Agree
12:06:56 <ais523> such a great line is rather out of character for the game
12:06:57 <Phantom_Hoover> Reified is my favourite word.
12:07:06 <Taneb> I prefer deified
12:07:13 <Phantom_Hoover> Meh.
12:07:21 <elliott> http://en.wikipedia.org/wiki/File:Naive_realism.jpg bets image on wikipedia
12:07:24 <elliott> best
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:11 <Taneb> Apocolocyntosis
12:08:28 <Taneb> Pumpkinification
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:00 <NihilistDandy> It was blank, obviously
12:09:03 <ais523> elliott: fair enough
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:12:24 <Taneb> ghc6
12:12:38 <NihilistDandy> That thing, he says
12:13:01 <ais523> elliott: why did you userfy a spam page?
12:13:24 <elliott> ais523: upcoming esolang
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:36 <elliott> Taneb: Doubt it
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:13:54 <elliott> done
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:05 <Taneb> *coming
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:22:57 <lambdabot> against inferred type `[[a1]]'
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:33 <lambdabot> against inferred type `m1 ...
12:23:35 <CakeProphet> ...
12:23:46 <CakeProphet> > map join (++) . ((inits . repeat) >>= sequence) $ "abc"
12:23:47 <lambdabot> Couldn't match expected type `[m (m a)]'
12:23:47 <lambdabot> against inferred type `m1 ...
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:23:55 <lambdabot> Expected type: [[a]]
12:23:55 <lambdabot> Inferred type: [a -> a]
12:24:05 <CakeProphet> oh duh.
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:01 <CakeProphet> hmm...
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:08 <CakeProphet> > nub "racecar"
12:28:09 <lambdabot> "race"
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:34:29 <CakeProphet> that elliott was looking for.
12:34:35 <elliott> wat
12:34:37 <elliott> ah
12:35:04 <CakeProphet> whatever that means.
12:35:43 <CakeProphet> "pleases the way my brain interprets the code"
12:35:46 <CakeProphet> = elegant
12:36:39 <NihilistDandy> From #haskell, pure elegance
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:36:42 <lambdabot> 14
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:33 <ais523> bleh
12:38:44 -!- Taneb has joined.
12:38:56 <Taneb> Hello
12:38:59 <ais523> how is anyone meant to know what that does?
12:39:01 <ais523> hi Taneb
12:39:06 <NihilistDandy> ais523: sum . map (read . return) . show $ 635
12:39:17 <NihilistDandy> > sum . map (read . return) . show $ 635
12:39:19 <ais523> do all the fmaps cancel each other out?
12:39:19 <lambdabot> 14
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:07 <elliott> yes
12:40:21 <elliott> it's something like all the ones past three make no effect
12:40:22 <elliott> ?ty fmap
12:40:23 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
12:40:23 <CakeProphet> elliott is Neo.
12:40:24 <elliott> ?ty fmap fmap
12:40:25 <elliott> ?ty fmap fmap fmap
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
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:40:32 <elliott> oh, it cycles
12:40:41 <NihilistDandy> Yup
12:42:23 <CakeProphet> I wonder if there's a better way to generate every palindrome in an alphabet.
12:42:47 <NihilistDandy> Better than what?
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:42:58 <NihilistDandy> ah
12:43:13 <CakeProphet> it is pretty damn nice as is.
12:43:14 <NihilistDandy> Tell Don you could do it better in Java
12:43:28 <quintopia> it is wrong though
12:43:42 <CakeProphet> how so?
12:43:43 <quintopia> it missed "a","b", and "c"
12:44:06 <CakeProphet> ah.
12:44:13 <CakeProphet> hmm
12:44:22 <Taneb> It only does even lengthed ones
12:44:33 <CakeProphet> yeah
12:44:35 <quintopia> indeed
12:44:42 <NihilistDandy> aibohphobia
12:44:52 <ais523> NihilistDandy: fear of palindromes?
12:44:55 <CakeProphet> hmmm, okay, this is now a much more difficult problem. :P
12:44:57 <quintopia> fear of palindromes?
12:44:57 <NihilistDandy> Naturally
12:45:02 <quintopia> okie
12:45:09 <quintopia> the glare here is ungood
12:45:14 <quintopia> i cannot see the screen
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:42 <NihilistDandy> hmm
12:45:49 <NihilistDandy> > map ((++) `ap` reverse) $ (inits . repeat) "a" >>= sequence
12:45:51 <lambdabot> ["","aa","aaaa","aaaaaa","aaaaaaaa","aaaaaaaaaa","aaaaaaaaaaaa","aaaaaaaaaa...
12:46:02 <NihilistDandy> I'll get all the a's out of lambdabot
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:16 <CakeProphet> *number of characters in the alphabet
12:46:26 <NihilistDandy> Taneb: Too many n's
12:46:34 <Taneb> Damn
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:47:58 <quintopia> dammit
12:48:05 <quintopia> stupid glare and ninjas
12:48:10 <quintopia> i quit
12:48:10 <CakeProphet> which sounds better?
12:48:26 <quintopia> i like the first option myself
12:48:46 <CakeProphet> hmmm, okay.
12:49:30 <CakeProphet> :t curry
12:49:31 <lambdabot> forall a b c. ((a, b) -> c) -> a -> b -> c
12:49:37 <CakeProphet> :t uncurry
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:00 <NihilistDandy> Which would be neat, if it meant anything
12:51:16 <elliott> Taneb: Aye; rags gare ya.
12:51:22 <elliott> Gare isn't... strictly a word.
12:51:26 <NihilistDandy> Do geese see god?
12:51:35 <elliott> :DDDDD
12:51:39 <elliott> oh my god
12:51:39 <Taneb> Do nine men interpret? Nine men, I nod!
12:52:12 <quintopia> Mary's on a nosy ram.
12:52:45 <NihilistDandy> Lager, sir, is regal.
12:52:50 <elliott> S.L.: Like I 'e kills.
12:52:53 <Taneb> A ninja, A.J. Nina.
12:52:56 <elliott> X-D
12:53:04 <elliott> X-D D-X.
12:53:21 <NihilistDandy> Lonely Tylenol
12:53:43 <Taneb> Dave saved.
12:53:44 <elliott> Archaeology: ancient cry -- yrc tneicna ygoloeahcra.
12:53:49 <Taneb> No, that's wrong
12:53:55 <NihilistDandy> No, it is opposition.
12:55:29 <Taneb> mod $nar = "Finn" if random().
12:55:46 <elliott> NihilistDandy: wow
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:04 <NihilistDandy> lol
12:56:04 <elliott> wow
12:56:05 <elliott> NihilistDandy: where do you learn your skills...
12:56:07 <elliott> lol
12:56:08 <elliott> wow
12:56:09 <elliott> wow lol wow
12:56:12 <elliott> my best palindrome yet
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
12:58:35 <NihilistDandy> No, it is open on one position.
12:59:30 <elliott> >:Ooooooooo
13:01:29 <CakeProphet> > sequence "abc"
13:01:30 <lambdabot> Couldn't match expected type `m a'
13:01:30 <lambdabot> against inferred type `GHC.Types...
13:01:34 <CakeProphet> :t sequence
13:01:35 <lambdabot> forall (m :: * -> *) a. (Monad m) => [m a] -> m [a]
13:01:49 <CakeProphet> is there an inverse sequence?
13:01:58 <Taneb> Concat?
13:01:58 <CakeProphet> er, I mean.
13:02:11 <CakeProphet> I have "abc" I want ["a","b","c",""]
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:03:43 <NihilistDandy> :t reverse . sequence
13:03:44 <lambdabot> forall a. [[a]] -> [[a]]
13:04:12 <CakeProphet> > sequence ["abc"]
13:04:13 <lambdabot> ["a","b","c"]
13:04:14 <NihilistDandy> Wait, not what I meant
13:04:14 <elliott> CakeProphet: map pure
13:04:16 <elliott> > map pure "abc"
13:04:17 <lambdabot> No instance for (GHC.Show.Show (f GHC.Types.Char))
13:04:17 <lambdabot> arising from a use of...
13:04:22 <elliott> > map pure "abc" :: [String]
13:04:23 <lambdabot> ["a","b","c"]
13:04:26 <NihilistDandy> :t flip sequence
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:04:55 <CakeProphet> > sequence ["abc", []]
13:04:56 <lambdabot> []
13:06:49 <NihilistDandy> map (: []) looks like an angry robot
13:07:02 <NihilistDandy> *(:[])
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:26 <CakeProphet> er...
13:07:32 <CakeProphet> lol, that's messed up.
13:07:40 <NihilistDandy> lol, yeah
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:06 <CakeProphet> not as clean now though
13:08:12 <CakeProphet> lets see what pl has to say.
13:08:25 <CakeProphet> @pl (\x y -> map (\z -> x++z++y) ([]:map pure alphabet)) `ap` reverse
13:08:25 <NihilistDandy> I was just about to :D
13:08:25 <lambdabot> flip (flip . (map .) . (. flip (++)) . (.) . (++)) ([] : map pure alphabet) `ap` reverse
13:08:31 <CakeProphet> beautiful.
13:09:19 <NihilistDandy> That output makes too much sense. I need sleep.
13:09:36 <NihilistDandy> Off to watch the Puma Man and pass out before work. Adios, all
13:09:51 <NihilistDandy> Or rather
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:09:56 <NihilistDandy> So, Ida, adios.
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:11:52 <NihilistDandy> Why do you need the empty string?
13:12:02 <NihilistDandy> Nothing isn't a palindrome
13:12:08 <Taneb> Yes it is
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:23 <Taneb> "".
13:12:23 <NihilistDandy> Nothing
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:13:48 <CakeProphet> hmmm
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:14:42 <NihilistDandy> Ah
13:15:13 <CakeProphet> oh, duh...
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:15:59 <CakeProphet> okay that's a little cleaner.
13:16:33 <CakeProphet> @pl (\x y -> (x++y) : map (\z -> x++z:y) alphabet
13:16:34 <lambdabot> (line 1, column 46):
13:16:34 <lambdabot> unexpected end of input
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:16:45 <CakeProphet> @pl map (\z -> x++z:y) alphabet
13:16:45 <lambdabot> map ((x ++) . (: y)) alphabet
13:17:01 <CakeProphet> ah.
13:17:03 <NihilistDandy> Much nicer
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:18:32 <CakeProphet> at least with this approach.
13:19:18 <CakeProphet> the "delete a character from the middle" approach might be shorter with the use of functions from Data.List
13:19:19 <NihilistDandy> But, but
13:19:39 <NihilistDandy> (\x y -> (x++y)) just feels ridiculous
13:19:45 <NihilistDandy> I mean, it's (++)
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:32 <CakeProphet> @pl (x y -> (x++y) : f)
13:20:33 <lambdabot> (line 1, column 6):
13:20:33 <lambdabot> unexpected ">"
13:20:33 <lambdabot> expecting variable, "(", operator or ")"
13:20:37 <CakeProphet> @pl (\x y -> (x++y) : f)
13:20:38 <lambdabot> flip flip f . ((:) .) . (++)
13:21:03 <CakeProphet> eh, no.
13:21:18 <NihilistDandy> Seems not
13:21:20 <CakeProphet> though that is borderline okay.
13:21:29 <NihilistDandy> Too much flip
13:21:33 <CakeProphet> I guess two flips and 3 compositions is where I draw the line. :P
13:21:46 <CakeProphet> nested compositions confuse me somewhat.
13:21:56 <NihilistDandy> Really? I kinda like 'em
13:22:11 <CakeProphet> once I understand them in a way that is intuitive...
13:23:15 <NihilistDandy> :t ((.).(.))
13:23:16 <lambdabot> forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => (a -> b) -> f (f1 a) -> f (f1 b)
13:23:29 <NihilistDandy> Now, wait, that looks familiar
13:23:55 -!- FireFly has quit (Read error: Connection reset by peer).
13:24:02 <CakeProphet> :t ((.).(.)).($)
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:01 <NihilistDandy> Ah, that's why
13:25:22 <CakeProphet> in fact I like this palidrome code so much I think I will save it.
13:25:27 <NihilistDandy> :t fmap fmap fmap fmap fmap fmap fmap fmap fmap
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:25:36 <NihilistDandy> Good call
13:25:49 <NihilistDandy> stick it up on hpaste or on the cafe
13:25:59 <NihilistDandy> I'd like to be able to refer to it sometime :D
13:26:04 -!- FireFly has joined.
13:26:22 <NihilistDandy> :t ((.)$(.))
13:26:22 <lambdabot> forall (f :: * -> *) a b (f1 :: * -> *). (Functor f, Functor f1) => f (a -> b) -> f (f1 a -> f1 b)
13:29:37 <CakeProphet> [0..] >>= (`replicateM` alphabet)
13:29:55 <CakeProphet> is also equal to (inits . repeat) alphabet >>= sequence
13:30:10 <NihilistDandy> Looks nicer, too
13:30:30 <NihilistDandy> FSVO nicer
13:30:38 <CakeProphet> hmmm?
13:31:09 <NihilistDandy> blah
13:31:12 <NihilistDandy> FCVO
13:31:20 <NihilistDandy> For certain values of
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:46 <CakeProphet> ap is in Control.Monad right?
13:31:58 <NihilistDandy> @hoogle ap
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:01 <NihilistDandy> Yup
13:32:22 <CakeProphet> @hoogle reverse
13:32:23 <lambdabot> Prelude reverse :: [a] -> [a]
13:32:23 <lambdabot> Data.ByteString reverse :: ByteString -> ByteString
13:32:23 <lambdabot> Data.List reverse :: [a] -> [a]
13:32:33 <CakeProphet> using replicateM I need only Control.Monad so... I'll do that.
13:32:37 <CakeProphet> @hoogle repeat
13:32:37 <lambdabot> Prelude repeat :: a -> [a]
13:32:37 <lambdabot> Data.List repeat :: a -> [a]
13:32:37 <lambdabot> Data.ByteString.Lazy repeat :: Word8 -> ByteString
13:32:39 <CakeProphet> @hoogle inits
13:32:40 <lambdabot> Data.ByteString inits :: ByteString -> [ByteString]
13:32:40 <lambdabot> Data.List inits :: [a] -> [[a]]
13:32:40 <lambdabot> Data.ByteString.Char8 inits :: ByteString -> [ByteString]
13:32:45 <CakeProphet> yeah, inits isn't in Prelude
13:33:18 <NihilistDandy> replicateM it is, then
13:33:58 <CakeProphet> http://hpaste.org/49129
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:18 <lambdabot> Not in scope: `palidromes'
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 <elliott> Gross
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:02 <CakeProphet> I think the rest is quite fine.
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:39:26 <CakeProphet> no idea what to call it.
13:42:45 <Taneb> +++
13:43:04 <Taneb> I didn't say that why did I say that
13:43:47 <fizzie> +++ATH0
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:47:45 <CakeProphet> actually I kind of like `ap`
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:52:02 <CakeProphet> ...what? is this a joke?
13:54:55 <Taneb> Going now
13:55:18 <olsner> CakeProphet: it desugars into something that doesn't use any monad functions, so it ends up working
13:58:15 <CakeProphet> > do 2 + 2
13:58:15 <lambdabot> 4
13:58:15 <CakeProphet> why would you ever do that though.
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:40 <CakeProphet> > do 4 +4; 3
14:00:41 <lambdabot> No instances for (GHC.Num.Num (m a), GHC.Num.Num (m b))
14:00:41 <lambdabot> arising from a u...
14:00:49 <CakeProphet> ...good.
14:01:17 <Deewiant> do x = x, do x;y = x >> y
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:28 <CakeProphet> ah
14:07:34 <CakeProphet> yeah, still.
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:08:08 <CakeProphet> it would be more interesting
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:32:00 <Taneb> Hello
14:33:32 <CakeProphet> hola
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:27 <Phantom_Hoover> Elegant.
14:47:53 <CakeProphet> I am always impressed with pl's sense of taste
14:48:01 <CakeProphet> so constructive
14:48:20 <Taneb> You should see pl's living room
14:48:45 <CakeProphet> I would imagine there are no points.
14:49:22 <CakeProphet> it is all very smooth surfaces, with no polka dot colors.
14:49:31 <CakeProphet> s/colors/patterns/
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:55:54 <CakeProphet> hmmm?
14:56:01 <CakeProphet> :t join (zipWith (!!))
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:16 <CakeProphet> ah..
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:56:54 <CakeProphet> ....
14:57:07 -!- MigoMipo has joined.
14:57:12 <CakeProphet> :t zipWith
14:57:13 <lambdabot> forall a b c. (a -> b -> c) -> [a] -> [b] -> [c]
14:57:14 <CakeProphet> :t (!!)
14:57:15 <lambdabot> forall a. [a] -> Int -> a
14:57:33 <CakeProphet> :t let primes = sieve [2..]; sieve (p:x) = p : sieve (filter ((>0).(`mod` p)) x) in primes
14:57:34 <lambdabot> forall t. (Integral t) => [t]
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:02 <lambdabot> arising from a use of `e_12...
14:58:07 <CakeProphet> uh, what?
14:58:11 <CakeProphet> WHY IS THIS SO COMPLICATED.
14:58:49 <CakeProphet> :t (!!) `ap` fromIntegral
14:58:50 <lambdabot> forall b. (Integral [b]) => [b] -> b
14:59:12 <CakeProphet> oh... right. :P
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:10 <Phantom_Hoover> OK, I am now slightly scared by Headshoots.
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:03:38 <lambdabot> mueval-core: Time limit exceeded
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:17 <CakeProphet> oh dear, I'm going to run out of names.
15:05:26 <Taneb> Can they be Taneb numbers?
15:05:33 <CakeProphet> I suppose this is acceptable.
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:06:45 <Taneb> How many?
15:07:42 <CakeProphet> uh...
15:07:58 <CakeProphet> many.
15:08:08 <Taneb> Define "many"?
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:13 <CakeProphet> whut?
15:10:17 <CakeProphet> oh.
15:10:22 <Taneb> That's the CakeProphet numbers
15:10:29 <Taneb> Also http://oeis.org/A117249
15:11:37 <CakeProphet> why am I not attributed!
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:00 <Taneb> Yes
15:19:00 <Phantom_Hoover> Yes.
15:19:09 <CakeProphet> I have no idea how you could infer such a thing.
15:19:20 <Taneb> Four keystrokes
15:19:24 <CakeProphet> I believe Luc Stephens already published such a thing
15:19:31 <Taneb> Shift+y, e, and s
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:22:44 <lambdabot> against inferred type `GHC.Typ...
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:23:43 <lambdabot> against inferred type `GHC.Typ...
15:23:50 <CakeProphet> bah
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:24:45 <lambdabot> against inferred type `GHC.Typ...
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:21 <lambdabot> against inferred type `GHC.Typ...
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:26:42 <lambdabot> against inferred type `GHC.Typ...
15:28:32 <CakeProphet> maybe my input is getting cut off.
15:30:18 <CakeProphet> :t inits
15:30:19 <lambdabot> forall a. [a] -> [[a]]
15:31:48 <CakeProphet> :t filterM
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:32:17 <lambdabot> against inferred type `GHC.Typ...
15:33:36 <CakeProphet> :t elem
15:33:37 <lambdabot> forall a. (Eq a) => a -> [a] -> Bool
15:33:41 <CakeProphet> ....oh
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:33:57 <lambdabot> arising from a use of...
15:35:12 <CakeProphet> :t (/)
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:49 <Phantom_Hoover> :t logBase
15:36:50 <lambdabot> forall a. (Floating a) => a -> a -> a
15:38:29 <CakeProphet> :t toIntegral
15:38:30 <lambdabot> Not in scope: `toIntegral'
15:39:45 <CakeProphet> @hoogle (Integral a) => b -> 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:40:47 <lambdabot> mueval-core: Time limit exceeded
15:40:49 <CakeProphet> success!
15:43:55 <CakeProphet> @pl flip (>>=) f g
15:43:55 <lambdabot> f =<< g
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:13 <CakeProphet> :t sequence
15:46:14 <lambdabot> forall (m :: * -> *) a. (Monad m) => [m a] -> m [a]
15:46:39 <CakeProphet> :t sequence [abs, (+1)]
15:46:40 <lambdabot> forall a. (Num a) => a -> [a]
15:46:50 <CakeProphet> > sequence [abs, (+1)] 4
15:46:51 <lambdabot> [4,5]
15:47:29 <CakeProphet> > join ((++) `ap` reverse) "hello"
15:47:30 <lambdabot> Occurs check: cannot construct the infinite type: m = (->) (m a)
15:47:40 <CakeProphet> ah yes.
15:48:25 <CakeProphet> > join ((++) `on` reverse) "hello"
15:48:27 <lambdabot> "olleholleh"
15:49:21 <CakeProphet> :t (>=>)
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 <CakeProphet> @src (>=>)
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:55:59 <CakeProphet> so, is liftM equivalent to fmap?
15:56:04 <CakeProphet> it seems to be
15:56:12 <CakeProphet> for monads, anyway.
15:56:43 -!- monqy has joined.
15:57:44 <CakeProphet> liftM f m1 = do { x1 <- m1; return (f x1) }
15:58:51 <CakeProphet> why not m1 >>= return . (f$) ?
15:59:03 <CakeProphet> I think base is afraid of >>=..
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:32:28 <Phantom_Hoover> Hmm, glogbackup didn't kick in.
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:46:42 <Taneb> Hello
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:19 <Phantom_Hoover> oklopol, when did you ask Sgeo a question?
16:49:33 <Phantom_Hoover> Taneb, just write it on your forehead.
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:49:56 <oklopol> *x \in U
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:15 <Phantom_Hoover> Taneb, FOREHEAD
16:50:19 <oklopol> Phantom_Hoover: yesterday
16:50:26 <oklopol> like 12 hours ago
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:39 <Phantom_Hoover> cglib why are you not working WHY
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:00 <Phantom_Hoover> What does that even mean??
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:55:53 <Phantom_Hoover> No HE. Sigh.
16:56:02 <Phantom_Hoover> Oh, wait, HE is there.
16:56:05 <Phantom_Hoover> FFS.
16:56:07 <Taneb> Christopher Eccleston was the best of New Who.
16:57:03 <Taneb> brb
17:03:57 <Taneb> Back
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:08:22 <Phantom_Hoover> What's that even meant to mean?
17:08:46 <Taneb> Thunderstorm?
17:08:49 <Phantom_Hoover> Oh wait, recursive function, duh.
17:08:55 * Phantom_Hoover facepalms
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:24:44 <Phantom_Hoover> I ban it.
17:24:57 <monqy> radical, eh?
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:28:47 <Phantom_Hoover> Ha ha ha.
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:32:55 <Phantom_Hoover> No.
17:32:58 <Phantom_Hoover> They are terrible.
17:33:05 <monqy> im terible
17:33:42 <Phantom_Hoover> monqy, you should just die.
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:15 <Phantom_Hoover> Americans, of course, but whatever.
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:37:40 <oklopol> in math
17:37:46 <Phantom_Hoover> oklopol, graph theory is discrete, no?
17:37:49 <oklopol> yes, certainly
17:38:01 <oklopol> but it has strong connections with analysis
17:38:15 <Phantom_Hoover> It... does?
17:38:18 <Taneb> Ooh, dinnertime
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:21 <Taneb> Bye
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:16 <Phantom_Hoover> oklopol, oh, right.
17:39:38 <oklopol> i don't know much about it, but someone here once said graph theory is just algebraic topology
17:39:43 <oklopol> or something like that
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
17:48:14 <oklopol> *although
18:04:16 -!- Taneb has joined.
18:04:25 <Taneb> Hello
18:09:24 <oklopol> hello
18:10:59 <Taneb> Gonna switch clients
18:11:18 -!- Taneb has left.
18:11:54 -!- Taneb has joined.
18:12:01 <Taneb> Back
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:53 <Taneb> That can change
18:39:55 <monqy> depends on where it's used
18:40:08 <Taneb> When more than where
18:40:17 <monqy> sure
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:01 <Sgeo> derp
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:14 <Taneb> Refresh?
18:42:21 <monqy> also for usability unknown, I'd say it's unusable for programming
18:43:17 <Sgeo> Why?
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:44:41 <Phantom_Hoover> Sgeo, what weird exception?
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:45:33 <Sgeo> I might be
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:21 <ais523> well, yes
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:10:17 <Taneb> It starts 2! 1!
19:10:18 <oerjan> ah
19:10:24 <oerjan> yay :P
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:10 <Taneb> I'm not
19:13:31 <oerjan> because then the step number will be 1 when entering the subprogram
19:13:58 <Taneb> That's handy
19:14:07 <Taneb> Program starts with 3! now
19:14:17 <Taneb> And I've got moon chavs in my head
19:14:24 <oerjan> wat
19:15:04 <Taneb> It's a song
19:15:22 <Taneb> About a feature of the British population
19:15:27 <Taneb> The lowest of the low
19:15:32 <Taneb> "Chavs"
19:15:45 <oerjan> ah
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:37 <Taneb> Yeah
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:08 <Taneb> Possibly
19:19:13 <oklopol> :o
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:19:46 <oklopol> oh, kay
19:20:11 <Taneb> Imagine writing a quine in Numberwang
19:20:15 <Phantom_Hoover> oklopol, nononononono, it's just 'okay'.
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:21:03 <Taneb> But maddening
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:23 <Taneb> No it wouldn't
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:25:14 <oerjan> to print
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:37 <oerjan> (a 1,0,1,0 nop)
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:27:59 <Taneb> 1+8=9
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:28:29 <Taneb> Brilliant
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:30:20 <Taneb> You mean two
19:30:30 <oerjan> i mean combined
19:31:47 <Phantom_Hoover> Sgeo, HOMESTUCK UPDATE
19:31:51 <Phantom_Hoover> AND FEDORAFREAK IS IN IT
19:31:55 <Phantom_Hoover> WORDS CANNOT CONTAIN MY JOY
19:32:05 <Taneb> TELL ME AS WELL
19:32:10 <Taneb> I READ HOMESTUCK
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:32:55 <Phantom_Hoover> Taneb, YES BUT YOU DIDN'T SHARE IN THE EXPERIENCE
19:33:34 <Taneb> It would, because the two will change the step counter from 9 to 10
19:33:39 <Taneb> 10 mod 9 = 1
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:42 <oerjan> oh wait
19:34:52 <Taneb> Subprogram has its own position
19:35:09 <oerjan> oh, that works then
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:51:25 <oerjan> ;D
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:53:14 <oklopol> well
19:53:15 <oklopol> i hadn't
19:53:18 <oklopol> it was in the microwave
19:53:36 <itidus20> assumptions.
19:53:44 <itidus20> never trust em
19:54:05 <oklopol> or memory
19:54:17 <oerjan> oklopolzheimer
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:22 <oerjan> > do let {x = 1}; x+2
19:55:23 <lambdabot> 3
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:00 <itidus20> but i seem to do it
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:14 <monqy> what
19:58:21 <itidus20> i'm being literal.
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 <lambdabot> arising from...
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:58:55 <itidus20> humm
19:59:02 <monqy> how about tautologies
19:59:08 <itidus20> monqy, but what is a human ( :-s )
19:59:21 <itidus20> now i'm stretching
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
19:59:42 <itidus20> im stretching too far
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:00:47 <itidus20> ok ok.. uhh
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:28 <monqy> what
20:02:30 <itidus20> hmm
20:02:40 <pikhq_> No it doesn't.
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:05:56 <itidus20> humm
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:43 <itidus20> and might be happier in life
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:20 <Phantom_Hoover> Sgeo, it's incredibly obvious sarcasm.
20:11:30 <oklopol> i hoped it was
20:11:50 <oklopol> added the "whether life has any kind of point" just to make sure
20:12:16 <Sgeo> Sorry
20:12:28 <oklopol> i forgive you
20:12:37 <monqy> sgeo the famously bad at responding appropriately to sarcasm bisexual
20:12:44 <oklopol> yes
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:36 <oklopol> lol
20:13:44 <oklopol> '<Sgeo> I still don't get where this "Sgeo is famously bisexual" meme is coming from' <<< classic Sgeo :D
20:13:46 <itidus20> re: purpose of life
20:13:54 <Phantom_Hoover> oklopol, where did that come from.
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:14:51 <oklopol> i found that hilarious
20:14:51 <Phantom_Hoover> No there isn't.
20:14:58 <Phantom_Hoover> There's a list of lists of famous bisexuals.
20:15:09 <oklopol> yeah
20:15:14 <oklopol> but anyway even better
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:15:41 <Taneb> It wasn't me
20:15:52 <Taneb> I'm not bisexual
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:16 <Taneb> :O
20:17:19 <oklopol> i believe i have disclosed my sexuality
20:17:35 <ais523> indeed
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:19:38 <oklopol> yes
20:19:56 <oklopol> or sexmaking
20:20:11 <Taneb> Willing sexmaking, in anycase
20:20:17 <oklopol> well yes
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:12 <oklopol> not that much no
20:21:22 <Taneb> No
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:01 <Phantom_Hoover> There's already a computational system in DF.
20:25:08 <zzo38> My DVI optimizer program works! Tell me if you have other suggestions related to such program.
20:25:56 <Taneb> (DVI?)
20:26:07 <oklopol> it's like pdf
20:26:13 <Phantom_Hoover> Except older.
20:26:13 <zzo38> Device Independent format
20:26:24 <Phantom_Hoover> And used by noöne except zzo38, because he's nuts.
20:26:33 <oklopol> i use it every day
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:29:47 <oklopol> zzo38: like what?
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:27 <oklofok> * Disconnected
20:33:47 <zzo38> Disconnected?
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:34:46 <oklofok> thus i told you about it
20:34:55 <zzo38> OK
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:42:22 <oklofok> huh
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:20 <NihilistDandy> hmm
21:17:29 <NihilistDandy> Burn the witch!
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 <itidus20> http://i.imgur.com/k7Rqy.jpg
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:33 <Phantom_Hoover> I can't even describe, it's too much.
21:20:33 <monqy> #jesus?
21:20:38 <monqy> hehehehehe
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:28:55 <NihilistDandy> Ridiculous
21:29:18 <NihilistDandy> Though Matt Smith has been surprisingly good
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:29:57 <elliott> ais523: Define recent
21:29:59 <Phantom_Hoover> pikhq, yes.
21:30:08 <itidus20> theres a dr who anime thing that someone made
21:30:09 <Phantom_Hoover> Apparently they're ancient Egypt, as well.
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:19 <Phantom_Hoover> Someone gave me a link, but it was too confusing.
21:30:27 <NihilistDandy> So, Doctor Who 2005
21:30:32 <itidus20> standards are too high ;_;
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:30:54 <NihilistDandy> New World Order?
21:31:02 <pikhq> NihilistDandy: Yes.
21:31:05 <NihilistDandy> Agreed
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:41 <NihilistDandy> Blink is a great episode.
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:39 <NihilistDandy> True
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:05 <NihilistDandy> Well, in the new series
21:33:21 <Phantom_Hoover> NihilistDandy, I liked Martha, TbH.
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:53 <NihilistDandy> You mean Rose?
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:05 <Phantom_Hoover> NihilistDandy, no, I mean Martha.
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:37 <elliott> Ahahaha
21:34:44 <Phantom_Hoover> elliott, yep.
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:16 <NihilistDandy> MY CONTINUITY
21:35:27 <NihilistDandy> MY FANFICTION
21:35:29 <NihilistDandy> RUINED
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:35:46 <Phantom_Hoover> NihilistDandy, I don't care about those things!
21:35:49 <NihilistDandy> lol
21:36:10 <NihilistDandy> I need to devise a Doctor Who related palindrome
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:36:43 <Phantom_Hoover> elliott, it was a self-compiled library!
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:33 <Phantom_Hoover> elliott, remind me which one that was.
21:37:36 -!- MigoMipo has quit (Read error: Connection reset by peer).
21:37:46 <Phantom_Hoover> Yeah, that one.
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:20 <elliott> Phantom_Hoover: I did!
21:39:23 <olsner> hmm, I seem to have missed the End of Time
21:39:56 <Phantom_Hoover> SO GOOD
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:46 <elliott> not known AFAIK
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:48 <NihilistDandy> Phantom_Hoover: I liked Family of Blood
21:41:54 <Phantom_Hoover> So if you want to output x, you need to work out y such that hash(y) = x.
21:41:55 <ais523> elliott: indeed
21:45:20 <elliott> ais523: are true and false one and zero in underlambda?
21:45:30 <ais523> elliott: yes
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:38 <elliott> of the hash output length
21:46:46 <Phantom_Hoover> elliott, the zero? function is pretty basic.
21:46:52 <elliott> Phantom_Hoover: in underlambda
21:46:56 <Phantom_Hoover> Oh.
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:00 <Phantom_Hoover> @hoogle (a,b,c) -> a
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 <Phantom_Hoover> I mean come on.
21:48:07 <elliott> Phantom_Hoover: Don't use three-tuples.
21:48:09 <elliott> Just don't.
21:48:12 <elliott> And also, use pattern matching.
21:48:14 <elliott> Show your code.
21:48:20 <Phantom_Hoover> elliott, guess what, the library I'm using uses them.
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:30 <Sgeo> Hmm
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:38 <elliott> shacode
21:48:42 <Phantom_Hoover> elliott, what code?
21:48:44 -!- copumpkin has changed nick to bob_loblaw.
21:48:47 <Phantom_Hoover> The library?
21:48:48 <monqy> their code
21:48:51 <monqy> your code
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:01 <elliott> An element.
21:49:03 <elliott> From a tuple in.
21:49:09 <elliott> Because
21:49:11 <elliott> foo = x + y + z
21:49:15 <elliott> where (x,y,z) = f blah
21:49:17 <elliott> seems good enough to me.
21:49:23 <Phantom_Hoover> elliott, I... don't have any code.
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:41 <elliott> or would that be seven
21:50:42 <elliott> w/e
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:51:21 <elliott> yes
21:51:23 <monqy> it's a good bit
21:51:27 <oklofok> :D
21:51:48 <itidus20> what hath i wrought
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:36 <elliott> olsner: /msg
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:02 <elliott> Sgeo: ok
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:33 <itidus20> "The Titanic is unsinkable."
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:16: <Sgeo> Sorry
21:56:40 <elliott> 20:12:28: <oklopol> i forgive you
21:56:40 <Phantom_Hoover> Yes, itidus20.
21:56:43 <elliott> bad Sgeo
21:56:44 <elliott> bad
21:56:49 <itidus20> "The Titanic is unsinkable." "I believe you bro."
21:56:52 <Phantom_Hoover> That very clearly makes your point.
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:11 <Phantom_Hoover> <Sgeo> elliott, I like River Song
21:57:13 <Phantom_Hoover> ...
21:57:15 <Phantom_Hoover> ........................
21:57:19 <Phantom_Hoover> .......................................................................................................
21:57:22 <monqy> elliott: what's 0
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:24 <NihilistDandy> .
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:57:55 <elliott> but come on
21:58:04 <Phantom_Hoover> elliott, a block of styrofoam is unsinkable.
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:44 <elliott> NihilistDandy: right
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:14 <elliott> whatever
21:59:15 <elliott> point is
21:59:18 <elliott> the integers aren't omnipotent
21:59:26 <NihilistDandy> Right
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:01 <elliott> oklofok: it is.
22:00:04 <NihilistDandy> "Abraham and the Integers"
22:00:04 <elliott> i'm sure we can all agree on that.
22:00:08 <elliott> hmm well
22:00:13 <elliott> there's a lot of "the integers are god" type sentiment
22:00:14 <elliott> so maybe
22:00:14 <elliott> the integers
22:00:15 <elliott> ARE
22:00:17 <elliott> omnipotent????
22:00:19 <itidus20> But I don't know math. :D
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:32 <elliott> oh wow
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:17 <Phantom_Hoover> elliott, erm, yeah, that was unclear.
22:01:41 -!- pikhq has quit (Ping timeout: 240 seconds).
22:01:42 <NihilistDandy> Infinitely many gods, even
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:45 <Phantom_Hoover> It was "that time crystal-cola trolled".
22:01:48 <elliott> Ah.
22:01:55 -!- pikhq has joined.
22:01:56 <Phantom_Hoover> elliott, come on, he admitted that was trolling.
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:30 <elliott> But yes, it was trolling.
22:02:33 <elliott> It was just... really bad and obvious trolling.
22:02:35 <elliott> Does that even count.
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:13 <itidus20> ok..
22:04:21 <Phantom_Hoover> Why
22:04:22 <itidus20> does any point conform to a line?
22:04:27 <Phantom_Hoover> Why was he even saying that.
22:04:31 <Phantom_Hoover> itidus20, what does that actually mean?
22:04:37 <NihilistDandy> I'd like to write that textbook
22:04:42 <itidus20> hmm or is it..
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:47 <itidus20> humm
22:05:49 <Phantom_Hoover> Sgeo, why was that even a topic of discussion.
22:05:50 <Phantom_Hoover> Oh god.
22:05:57 <Phantom_Hoover> oklofok was writing a textbook, wasn't he.
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:27 <elliott> Pretty easy, it seems
22:06:28 <ais523> yep
22:06:32 <elliott> Fails on non-Smith numerals right?
22:06:38 <ais523> Smith numerals?
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:47 <Phantom_Hoover> elliott, dammit, you beat me to it.
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:01 <Phantom_Hoover> Sgeo, no, but you are really weird about it.
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 <ais523> heh
22:07:20 <itidus20> ais523: perhaps no object is a point
22:07:35 <Phantom_Hoover> itidus20, or perhaps... ALL the objects are points.
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:07 <elliott> ais523: every object
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:17 <elliott> ais523: of course you can
22:08:20 <NihilistDandy> Sgeo: What kind of math do you like?
22:08:23 <Phantom_Hoover> monqy, oh, of course.
22:08:30 <elliott> ais523: just wrap the quotation somehow
22:08:32 <Phantom_Hoover> <Sgeo> I consider myself to like math :(
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:52 <Phantom_Hoover> itidus20, ...impermanence rule?
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:12 <elliott> ais523: argh, shut up :D
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:22 <Phantom_Hoover> NihilistDandy, oh come on.
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:39 <oklofok> haha
22:09:40 <Phantom_Hoover> itidus20, um... I suppose that's true?
22:09:43 <NihilistDandy> Phantom_Hoover: Not rigorously
22:09:46 <elliott> NihilistDandy: Now now, Phantom_Hoover's literal hate of anyone who does a soft science is bad enough.
22:09:47 <Phantom_Hoover> NihilistDandy, yes?
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:09:54 <Phantom_Hoover> What?
22:09:58 <elliott> ais523: no, astoundingly
22:10:05 <ais523> have I, then?
22:10:10 <itidus20> I thought it was about esoteric programming languages.
22:10:10 <elliott> ais523: perhaps :-)
22:10:11 <itidus20> xD
22:10:16 <ais523> it is
22:10:17 <Phantom_Hoover> itidus20, it is, ostensibly.
22:10:19 <itidus20> woot
22:10:20 <ais523> well, supposed to be
22:10:24 <elliott> <Phantom_Hoover> What?
22:10:32 <elliott> Phantom "Kate Beaton is literally the only humanities major I respect" Hoover
22:10:35 <NihilistDandy> <elliott> <Phantom_Hoover> What?
22:10:36 <oklofok> "<Sgeo> I don't think I like my math getting mixed up with practicality." <<< seconded
22:10:44 <Phantom_Hoover> elliott, define:hyperbole
22:10:46 <NihilistDandy> oklofok: Thirded.
22:11:03 <Phantom_Hoover> Fourthed.
22:11:12 <itidus20> ok
22:11:13 <elliott> Phantom_Hoover: Define:sarcasm on my original statement
22:11:18 <itidus20> the room has spokened
22:11:18 <oerjan> <elliott> there's a lot of "the integers are god" type sentiment <-- a kroneckal mistake
22:11:18 <elliott> seventhed
22:11:31 <NihilistDandy> oerjan: *sigh*
22:11:34 <monqy> what did it said
22:11:36 <NihilistDandy> But also funny
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:14 <Phantom_Hoover> itidus20, no, we just like counting.
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 <NihilistDandy> ais523: What do Sgeo's parents think?
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:30 <oklofok> :DS
22:14:30 <elliott> oerjan: auuuuuuuuugh
22:14:31 <ais523> NihilistDandy: I don't know, my mind blotted it out to save me from the stupid
22:14:32 * NihilistDandy claps
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:27 <NihilistDandy> pikhq: Wut. God why
22:15:34 <Phantom_Hoover> Is... is ais523 insulting someone.
22:15:37 <pikhq> NihilistDandy: He's getting some sort of IT degree.
22:15:38 <Phantom_Hoover> NihilistDandy, god only knows.
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:01 * Phantom_Hoover runs
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:21 <Phantom_Hoover> NihilistDandy, what were you doing?
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:16:47 <NihilistDandy> Mostly code monkeying and networking
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:10 <NihilistDandy> It just wasn't my style
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:25 <elliott> friends of smith thing
22:18:26 <elliott> that church thing
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 <ais523> *ways
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:19:55 <NihilistDandy> *into
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:10 <elliott> It has "comput" in it
22:20:18 <NihilistDandy> Exactly
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:15 <NihilistDandy> The people in the middle are pretty safe
22:21:19 <ais523> when we told her that was probably the best option
22:21:19 <ais523> NihilistDandy: indeed
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:40 <elliott> NihilistDandy: indeed
22:21:44 <ais523> oklofok: not many
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:26 <NihilistDandy> Yup
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:48 <elliott> haha
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:10 <ais523> elliott: wow
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:24:58 <monqy> im elliott
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:15 <elliott> I could never do that
22:25:26 <Phantom_Hoover> Not on a laptop, no.
22:25:27 <NihilistDandy> Keyboard shortcuts for lyfe, yo
22:25:30 <monqy> guis make me sad
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:00 <NihilistDandy> What a time that was
22:27:36 <ais523> olsner: at least English isn't your native language
22:27:37 <NihilistDandy> No, maybe even before that
22:27:51 <oklofok> does anyone else read "with an actual physical mouse" as "an actual live mouse"
22:27:54 <NihilistDandy> It was black and white, I'll just say that
22:28:00 <NihilistDandy> oklofok: For a second, yes, I did
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:07 <NihilistDandy> I never much saw the use, unless my mouse broke
22:29:10 <NihilistDandy> :D
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:43 <ais523> heh
22:37:54 <ais523> I have been talking, but in #nethack because I'm in a nethack tournament
22:38:21 <elliott> oerjan: :D
22:38:27 <elliott> oerjan: just logread scrollback
22:38:30 <elliott> then i'll logread your logreading
22:38:32 <elliott> then we can talk forever
22:38:39 <oerjan> eek
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:40:13 <ais523> ouch
22:40:26 <monqy> nice
22:41:33 <elliott> ais523: it gets better
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:37 <elliott> [...]
22:41:37 <elliott> ConfigArray[14] = "";
22:41:39 <elliott> ConfigArray[15] = "";
22:41:41 <elliott> [...]
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:07 <elliott> and that was a joke
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:08 <NihilistDandy> Plugins for bukkit?
22:44:32 <zzo38> But what is bukkit?
22:44:50 <NihilistDandy> Minecrafty things?
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:19 <elliott> server
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:46:58 <elliott> ais523: true
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 <elliott> olsner: :-P
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:12 <NihilistDandy> CAMPING MINIGAME
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:49:37 <zzo38> OK
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:07 <elliott> A hundred?
22:51:22 <NihilistDandy> So for a reasonable hobbyist operation, probably no more than 10
22:51:41 <NihilistDandy> And probably fewer than that, anyway
22:51:43 <elliott> NihilistDandy: Eh, if you go with one of the "Minecraft server hosts", you could easily do twenty
22:51:45 <elliott> Or thirty
22:51:47 <NihilistDandy> Ah
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.
22:53:46 <NihilistDandy> Could be neat. I haven't played it online, before
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:29:35 <zzo38> I think they seem
23:56:08 -!- pingveno has quit (Quit: Changing server).
23:56:09 -!- FireFly has quit (Quit: swatted to death).
2011-07-18
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:15:49 <copumpkin> ohai
00:15:53 <elliott> stalking.jpg
00:16:14 <oerjan> well i only noticed it was by copumpkin after i'd starting reading it
00:16:19 <oerjan> *started
00:16:20 <copumpkin> :)
00:16:26 <copumpkin> fine, stalking.png
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:46 <elliott> what?
00:18:57 <Sgeo> elliott, wrt Homestuck update
00:19:18 <elliott> What about it
00:19:52 <copumpkin> oerjan: I'd still be curious to feed hex-rays a ghc-compiled binary
00:19:54 <copumpkin> pity I don't have hex-rays
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:20:56 <Phantom_Hoover> And he was reading it for the second time.
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:02 <elliott> amazing
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:36 <ais523> no, I don't
00:28:53 <oerjan> see http://www.reddit.com/r/all/top/?sort=top&t=all :)
00:29:12 <ais523> heh
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:19 <elliott> ye
00:30:20 <elliott> s
00:30:25 <elliott> surely you know qgyh2?
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:31:35 <Phantom_Hoover> elliott, was this before or after the test post?
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:28 <elliott> it seems
00:37:33 <elliott> maybe using a question mark changes it:)
00:37:35 <elliott> 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:44:44 <oerjan> *Aa+
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:02:57 <oerjan> not very deeply, no
01:03:07 * Phantom_Hoover → sleep
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:07:19 <elliott> stop disconnecting :P
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:45 <elliott> Um?
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:20 <elliott> For what
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:27:30 <elliott> Or rather, not
02:27:42 <elliott> (thought out, that is.)
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:33 <elliott> 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:22 <ais523> no
03:01:35 <oerjan> hm, awkward
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:09:16 <oerjan> oh well
03:09:31 <oerjan> @dice 1d2
03:09:32 <lambdabot> 1d2 => 1
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:23:42 <elliott_> X-D
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:57:23 <copumpkin> I've made a couple of those
04:58:14 <elliott> and you're still alive?
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:22 <copumpkin> they were delicious
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:16 <copumpkin> oh wow water is wet
05:09:33 <elliott> :)
05:09:41 <elliott> but they're, like, _really_ crappy :O
05:10:47 <copumpkin> but water is, like, _really_ wet :O
05:10:54 <copumpkin> like, completely drenching
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:35 <itidus20> it does
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:22 <copumpkin> man, that's deep
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:16:57 <itidus20> ok case closed
05:17:15 <Gregor> Not capitalizing my name or using punctuation isn't particularly impressive showing off ... :P
05:17:24 <itidus20> I didn't know which way to go
05:17:34 <pikhq> When Particle Man is in water, does he get wet, or does the water get him instead? </TMBG>
05:30:17 <elliott> ais523: are you there?
05:30:21 <zzo38> In Soviet Russia, wet gets YOU!!
05:30:32 <ais523> elliott: yes
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:53 <elliott> sorry for the nightmares.
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:53 <ais523> *ordinary
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:36 <ais523> really?
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:55 <elliott> that's unfair
05:33:56 <itidus20> and the name is also weird
05:33:57 <elliott> that's not an "expectation"
05:34:00 <elliott> that's cheating :-)
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:30 <elliott> that means nothing!
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 <elliott> Java is not orthodox IMO
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:10 <Sgeo> Erm, hmm
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:21 <Sgeo> Ah
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:18 <ais523> /now/ I'm surprised
05:44:22 <ais523> mostly at the ->
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:40 * elliott mostly at the #
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:31 <Sgeo> Ah, cool
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:15 <ais523> yep
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:25 <elliott> ais523: heh
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:30 <pikhq> *Really* naive.
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:44 <elliott> (this is not a joke)
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:06 <elliott> well,
05:53:07 <elliott> <ais523> I mean, I understand the intention and what they're meant to encourage
05:53:08 <elliott> this part
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:33 <elliott> ais523: wow
05:53:34 <elliott> ais523: linear typing
05:53:42 <elliott> ais523: but... at runtime
05:53:50 <elliott> or wait
05:53:52 <elliott> is it uniqueness typing
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:11 <elliott> mutability?
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:42 <elliott> heh
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:45 <elliott> yay, a milestone
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:57:06 <pikhq> I, uh, think?
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:38 <elliott> ais523: haha, nice
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:45 <ais523> pikhq: yes
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:43 <elliott> ais523: well, yes
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:28 <elliott> clearly
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:43 <elliott> (Haskell newtype)
06:01:53 <pikhq> Badly.
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:33 <elliott> haha
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 <elliott> (he thinks I'm joking)
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:18 <elliott> (hyperbole)
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:29 <ais523> aha
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:23 <ais523> hmm
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:04:59 <ais523> or, metastatically
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:30 <itidus20> oops i actually meant XML
06:06:40 <pikhq> Ah. Most likely.
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:33 <elliott> coppro: java
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:10:58 <elliott> itidus20: well, no
06:11:00 <elliott> GNU code in GNU C
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:07 <coppro> ais523: ah, yes
06:11:08 <itidus20> do they define their own standards?
06:11:15 <ais523> itidus20: --std=gnu99
06:11:16 <elliott> itidus20: they refer to published ones
06:11:17 <pikhq> ais523: e.g.?
06:11:17 <elliott> which can't change
06:11:23 <itidus20> hmmmm
06:11:29 <itidus20> ok its probably safe
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:34 <ais523> *Ada
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:48 <ais523> let me think
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:15:58 <ais523> Sgeo: yes
06:16:01 <ais523> I won't, but half the channel will
06:16:26 <elliott> i won't
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:19:52 <elliott> link?
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:34 <elliott> so elegant
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:24:37 <Sgeo> think
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:27:33 <elliott> sha
06:27:40 <itidus20> i had an idea about quines
06:27:44 <itidus20> a keyword quine
06:27:50 <itidus20> which produces a quine
06:28:06 <itidus20> would piss people off
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:52 <Sgeo> Oh
06:29:52 <elliott> And seems kinda grosse.
06:29:59 <elliott> I mean there's no problem with it.
06:30:02 <elliott> I just don't like it. :p
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:16 <elliott> Which I like less.
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:30:52 <elliott> sdjfdsf
06:30:54 <elliott> because
06:31:04 <elliott> fizzie: Because of lengths etc.
06:31:11 * elliott is dum
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:50 <elliott> fizzie: Erm.
06:31:52 <elliott> fizzie: That fails too
06:31:55 <elliott> fizzie: Just calculate the prefixes again
06:31:59 <elliott> for each byte you want
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:45 <elliott> Oh, that's a good idea.
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:33:48 <elliott> really 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:28 <Sgeo> Ok
06:35:49 <Sgeo> I want unknown surjectivity
06:36:24 <elliott> i wasnt suggesting it
06:36:27 <elliott> i was just calling it cool
06:36:33 <Sgeo> Ok
06:37:11 <elliott> 0k
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:39:01 <monqy> i'll miss you
06:39:08 <elliott> Sgeo: ok
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:01 <elliott> which is Chrome order?
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:51 <ais523> yep, that's IE order
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:43:19 <elliott> It works for me, anyway
06:44:48 <Sgeo> Attention Sgeo: Sleep is not optional.
06:45:03 <elliott> Yes.
06:45:04 <elliott> It is.
06:46:36 <ais523> wow, I was reading TV Tropes and came across a reference to me
06:46:37 <ais523> that was unexpected
06:46:49 <ais523> although inevitable in retrospect
06:47:17 <elliott> ais523: in the nethack article?
06:47:21 * elliott is guessing
06:47:24 <ais523> indeed
06:47:30 <ais523> you might even be able to figure out what for
06:47:36 <elliott> you and your stupid fame
06:47:37 <elliott> ais523: TAEB
06:47:40 <ais523> nope
06:47:43 <elliott> ais523: Ace
06:47:43 <ais523> if you haven't seen it, http://www.youtube.com/watch?v=D9oMSPzChgk
06:47:47 <elliott> oh
06:47:50 <elliott> the speedrun
06:47:52 <elliott> (he says without clicking)
06:47:54 <ais523> not that either
06:47:58 <ais523> speedrun isn't finished
06:48:02 <elliott> haha, fastest death
06:48:03 <ais523> it was originally an April Fool's joke
06:48:08 <elliott> FUCK
06:48:11 <elliott> that beep hurt
06:48:18 <ais523> blame the encoder, not me
06:48:19 <elliott> at the start
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:10 <elliott> starting Tourist [...])»
06:49:10 <lambdabot> Unknown command, try @list
06:49:13 <elliott> ah
06:49:16 <elliott> thanks, summariser
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:32 <elliott> ais523: wat?
06:49:38 <elliott> at
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:45 <ais523> *character
06:49:47 <ais523> it's theoretically possible
06:49:50 <elliott> oh
06:49:55 <elliott> like
06:49:55 <elliott> touching a cockatrice corpse
06:49:56 <elliott> on your spawn spot
06:49:59 <elliott> if you spawned blind
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:03 <elliott> right?
06:50:05 <ais523> you don't spawn blind, but you have the right idea
06:50:08 <elliott> right
06:50:10 <elliott> same sort of thing
06:50:13 <elliott> "Grayswandir was generated on the upstairs, he picked it up due to autopickup, and it blasted him."
06:50:18 <elliott> right
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:50:49 <elliott> ah, no
06:50:59 <elliott> heh
06:51:01 <elliott> i thoguht you wrote that
06:51:02 <elliott> but you didn't
06:51:06 <elliott> thought
06:51:07 <ais523> it's a transcript of all the text the game would output if I hadn't skipped it
06:51:18 <elliott> right
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:03 <Sgeo> Oh
06:54:14 <ais523> Sgeo: basicaly, DJGPP does __int86 by using self-modifying code to overwrite the argument of an int instruction
06:54:22 <elliott> :D
06:54:23 <ais523> and JPC-RR's pipeline was longer than NetHack expected
06:54:25 <elliott> that is beautiful
06:54:25 <ais523> *basically
06:54:33 <elliott> i kind of hate pipelining because of that
06:54:35 <elliott> and instruction caches
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:02 <elliott> which it can't interpret
06:57:09 <ais523> that makes no sense
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:41 <elliott> the only one, in fact
06:57:51 <ais523> elliott: err, that's not a reference to me
06:57:55 <elliott> ais523: SSSSHHHHH
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:58:57 <elliott> there
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:28 <elliott> oh
06:59:30 <ais523> user twice, in fact
06:59:33 <elliott> anyway
06:59:37 <elliott> I was just cheating b-
06:59:40 <elliott> [PDF] Lamborghini Miura
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, ...
06:59:53 <elliott> what is that even
07:00:14 <ais523> some spambots were using usernames taken from Wikipedia a while back to confuse spam filters
07:00:17 <ais523> perhaps that's it
07:00:31 <monqy> it's brilliant
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:39 <elliott> ais523: are you male
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> QDB: Best of the Queue
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:43 <elliott> ais is qdb famous
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:46 <elliott> Sgeo: ?
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:03 <elliott> can I call you --
07:10:04 <Sgeo> Oh
07:10:30 <olsner> -- is the new personal pronoun?
07:10:34 <elliott> yes
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:10:53 <elliott> Sgeo: "everyone"?
07:10:58 <olsner> Sgeo: --self :P
07:11:00 <elliott> only a mod will have seen it
07:11:02 <Sgeo> Note: Not literally everyone
07:11:05 <elliott> unless it got APPROVED
07:11:10 <elliott> i.e. one person
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:07 <elliott> http://qdb.us/297375
07:13:20 <elliott> http://qdb.us/search?q=%23esoteric&order=real_score&sort=desc&limit=25&approved=-1
07:13:24 <elliott> omg
07:13:24 <monqy> good quote very funny
07:13:25 <elliott> im there
07:13:26 <elliott> and its good voted
07:13:31 <elliott> I;M FANOUS
07:13:44 <elliott> in fanous monqy
07:13:53 <elliott> oh wow
07:13:56 <elliott> zzo submitted a quote
07:13:59 <monqy> youre famouse
07:14:00 <elliott> in his client's format
07:14:07 <elliott> amazing
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:14:57 <elliott> http://qdb.us/298929
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:14 <elliott> olsner i am so fanous
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:18:33 <elliott> Nope.
07:18:43 <elliott> Unless it was unlogged.
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:11 <elliott> olsner: i have a copy
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:11 <elliott> "Gregor's project"?
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:21:53 <elliott> good hostname
07:22:16 <Sgeo> Christ is clearly Gamzee
07:22:19 <Sgeo> *Chris
07:22:27 <elliott> chris, christ
07:22:28 <elliott> what's the difference
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:26 <elliott> 99 isn't it?
07:25:32 <elliott> It is an Institution(tm).
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:03 <elliott> monqy: thanks, it
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:36 <ais523> indeed
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:26:59 <elliott> "enjoy"
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:13 <Sgeo_> Scala sucks?
07:29:19 <Sgeo_> Clojure sucks?
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:16 <ais523> aha
07:30:23 <elliott> wow,
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:42 <elliott> so, too, magic quotes
07:31:43 <ais523> but the thing doesn't even support parametrized queries!
07:31:45 <elliott> god, magic quotes
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:09 <elliott> seriously
07:32:10 <ais523> elliott: err, ouch
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:27 <elliott> it's amazing
07:32:37 <monqy> im dead
07:32:39 <monqy> it kiled me
07:32:43 <Sgeo_> How does anyone not know the right way to avoid SQL injections?
07:32:48 <elliott> Sgeo_: php
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:31 <elliott> logs
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:33:46 <elliott> an hour later...
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:26 <elliott> <ais> wow
07:34:28 <elliott> <monqy> im double dead
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:23 <elliott> and is sane
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:45 <elliott> Sgeo_: X_X
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:33 <elliott> you store that zipper
07:36:34 <elliott> and that's the object
07:36:37 <fizzie> See, "it made sense back then", they say.
07:36:39 <elliott> and then a+b
07:36:45 <elliott> just replaces the hole in a
07:36:48 <elliott> with b
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:27 <elliott> ais523: indeed
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:09 <elliott> i think
07:39:10 <elliott> maybe
07:39:20 <ais523> *holey?
07:39:22 <ais523> or is the typo deliberate?
07:39:24 <elliott> :(
07:39:26 <elliott> it's a fun typo
07:39:30 <elliott> deliberypo
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:25 <Vorpal> s/normally//
07:40:27 <elliott> insert(1, sometable, (select a from) + (where b=9)) --> select a from sometable where b=9
07:40:30 <elliott> ais523: beuatiful
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:40:58 <Vorpal> iirc*
07:41:01 <elliott> ais523: wat
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:19 <Vorpal> XD
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:09 <Vorpal> ais523, NDA?
07:44:16 <ais523> no
07:44:19 <Vorpal> hm
07:44:25 <ais523> I'd be a lot more cautious if it were an NDA
07:44:26 <Vorpal> wtf
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:57 <Vorpal> hm
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:05 <Vorpal> :(
07:46:17 <elliott> ais523: lamest???? signs point to YES
07:46:30 <Vorpal> elliott, well said
07:46:40 <ais523> it isn't an OS, at least
07:46:41 <ais523> well, not exactly
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:13 <ais523> yep, I know
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:47:53 <elliott> Sgeo_: update
07:47:58 <elliott> ais523: dododododo
07:48:03 <elliott> fizzie: that's @
07:48:05 <elliott> :P
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:11 <elliott> Vorpal: that's fakeinit
07:49:12 <ais523> yes
07:49:13 <elliott> which is apparently part of it
07:49:15 <ais523> fakeinit's part of it
07:49:20 <ais523> that bit's easy
07:49:20 <elliott> ais523: oh come on, with your track record, we're interested in everything you do by definition
07:49:27 <cheater_> good morning
07:49:28 <ais523> it turns out that init doesn't actually do very much
07:49:33 <ais523> or have to, at least
07:49:53 <cheater_> hint: http://io.smashthestack.org:84/intro/
07:49:55 <elliott> Sgeo_: hs update
07:51:04 <Sgeo_> Woah
07:51:04 <elliott> nooooooooooooooooooooooooo
07:51:07 <Sgeo_> Shush
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).
07:55:16 <Sgeo_> elliott, ty
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:17 <elliott__> isn't that Liskov substitution?
08:05:21 <elliott__> principle
08:05:24 <ais523> yep, could be
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:30 <elliott__> if (sender instanceof Player) ...
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:47 <ais523> umm, of Command
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:07 <elliott__> it's an event handler
08:07:15 <elliott__> Command
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:09:34 <elliott__> actual quote
08:12:16 <elliott__> "Infer Nullity" --IntelliJ IDEA
08:12:40 <elliott__> has anyone implemented nullity for a popular programming language?
08:13:35 <Sgeo_> Does NaN count?
08:15:20 <elliott__> no
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:35 <elliott__> oh man
08:16:37 <elliott__> i forgot how amazing.
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:18:30 <Sgeo_> ?
08:19:02 -!- Taneb has joined.
08:19:06 <Taneb> Hello!
08:19:35 <elliott__> hi
08:19:37 <elliott__> Sgeo_: no
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:22 <Taneb> Installing
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:18 <Taneb> Too good
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:39 <elliott__> and permanently
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:24:35 <elliott__> go my brain
08:24:44 <ais523> heh
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:26:19 <Taneb> Haskell installed
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:22 <ais523> ah, I see
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:05 <elliott__> then you're lucky
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:33:26 <elliott__> as in sui generis
08:33:50 <ais523> latin is la:
08:33:53 <ais523> and I don't know
08:34:20 <Taneb> Hang on, I can find out
08:34:32 <Deewiant> Yes, it is
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:35:12 <elliott__> Right.
08:37:36 <Taneb> Variables in Haskell do not vary?
08:37:47 <Taneb> Then why the hell are they called variables?
08:38:05 <elliott__> Taneb: got a better name?
08:38:08 <elliott__> <Taneb> name
08:38:15 <elliott__> Taneb: But really, they vary as much as variables do in mathematics
08:38:20 <elliott__> f x = x + 9
08:38:22 <elliott__> x is a variable
08:38:34 <Taneb> That makes sense
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:38:49 <Taneb> Thanks
08:38:51 <elliott__> Taneb: Reading LYAH?
08:39:03 <Taneb> No, just Wikibooks
08:39:07 <elliott__> Oh, ew
08:39:11 <elliott__> Don't
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
08:44:24 <elliott__> better
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:01 <Taneb> [2^x|x<-[1..10]]
09:22:17 <Taneb> The elegance of that is outstanding
09:27:47 <elliott__> map (2^) [1..10]
09:27:48 <elliott__> ftfy
09:28:56 <fizzie> >> 2.^(1:10)
09:28:56 <fizzie> ans =
09:28:56 <fizzie> Columns 1 through 9
09:28:56 <fizzie> 2 4 8 16 32 64 128 256 512
09:28:59 <fizzie> For the MATLAB in us.
09:29:03 <elliott__> X-D
09:29:29 <elliott__> fizzie: How does MATLAB print arrays longer than the screen?
09:29:35 <elliott__> Oh wait, "Columns 1 through 9"
09:29:38 <elliott__> Guess it just truncates them
09:29:40 <elliott__> Gross
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:39:09 <cheater_> i find the matlab ui appaling
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:21 <elliott__> Right.
09:45:45 <elliott__> It's net.[secret].[secret].MiscellaneousCommands vs. net.[secret].[secret].commands.Miscellaneous.
09:55:57 <Taneb> Bye
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:27:48 <elliott__> oklopol: long time no nick
10:36:56 <Lymee> >> take 5 $ fix (+1) 0
10:37:02 <Lymee> > take 5 $ fix (+1) 0
10:37:03 <lambdabot> No instance for (GHC.Num.Num [a])
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:37 <Deewiant> > take 5 $ iterate (+1) 0
10:38:37 <elliott__> it provides general recursion
10:38:38 <lambdabot> [0,1,2,3,4]
10:38:45 <elliott__> that doesn't imply infinite loops by any stretch
10:38:47 <Deewiant> > take 5 $ fix (1:)
10:38:48 <lambdabot> [1,1,1,1,1]
10:39:22 <elliott__> > let fact me 0 = 1; fact me n = n * me (n-1) in fix fact 9
10:39:22 <lambdabot> 362880
10:39:25 <elliott__> Lymee: note how fact doesn't refer to itself
10:39:33 <elliott__> fix f === f (fix f)
10:40:14 <Lymee> I see.
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:08 <Lymee> > fix ($)
10:41:10 <lambdabot> Overlapping instances for GHC.Show.Show (a -> b)
10:41:10 <lambdabot> arising from a use of `...
10:41:34 <elliott__> :t fix ($)
10:41:35 <lambdabot> forall a b. a -> b
10:41:36 * Lymee is quite sure she has at least one type wrong.
10:41:38 <elliott__> useful
10:41:40 <elliott__> > fix ($) 9
10:41:48 <elliott__> Lymee: are you trying to get just _|_>
10:41:50 <elliott__> you might want fix id
10:41:52 <elliott__> id :: a -> a
10:41:54 <elliott__> fix :: (a -> a) -> a
10:41:55 <lambdabot> thread killed
10:41:56 <Deewiant> ?ty fix id
10:41:56 <Lymee> elliott__, I'm being silly.
10:41:57 <lambdabot> forall a. a
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:42:23 <Lymee> Well.
10:42:27 <Lymee> Pretty much.
10:43:09 <elliott__> you can't crash lambdabot :)
10:43:13 <elliott__> except by looking at it.
10:43:16 <Lymee> I'm aware.
10:43:16 <Lymee> =p
10:43:29 <Lymee> > error "Not even this way?"
10:43:31 <lambdabot> *Exception: Not even this way?
10:43:34 <Lymee> Nope!
10:43:35 <Lymee> :D
10:43:43 <Lymee> (heh obviously not)
10:43:46 <Lymee> (that would be horrible otherwise)
12:00:19 -!- Taneb has joined.
12:00:27 <Taneb> Hello again
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:26:15 <Taneb> Ha, nice
12:26:19 <Taneb> Well, not nice
12:26:23 <Taneb> But you know
12:27:00 <elliott__> "Also my bank account."
12:27:54 -!- asiekierka has joined.
12:27:56 <asiekierka> hey
12:28:10 <Phantom_Hoover> "Also my left kidney."
12:28:11 <lambdabot> Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them.
12:28:25 <Phantom_Hoover> elliott__, FFS, tell me when you leave messages.
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:19 <Phantom_Hoover> 8 hours ago.
12:29:28 <elliott__> Well that's basically yesterday.
12:29:51 <Taneb> Just pretend you're in California
12:29:53 <Phantom_Hoover> In the sense that it was today, then yes.
12:41:14 <Taneb> Rain looks nasty
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:09 <elliott__> NO CHANCE
12:44:25 <Taneb> Give me an East or a West
12:44:41 <elliott__> MMMM MMMM M MMMMF
12:44:56 <Taneb> Oh, fine
12:45:52 <elliott__> `quote you have become
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:56:48 <Phantom_Hoover> Someone recommend a wireless router, quick.
12:58:06 <elliott__> Phantom_Hoover: Linksys.
12:58:26 <elliott__> Phantom_Hoover: Does it have to be a modem too?
12:58:31 <Phantom_Hoover> No.
12:58:41 <elliott__> Phantom_Hoover: So you have a separate ADSL modem?
12:58:45 <elliott__> Or cable or whatever.
12:58:48 <Phantom_Hoover> Yes.
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:46 <elliott__> Phantom_Hoover: But
12:59:47 <elliott__> PC with 300MHz or Faster Processor
12:59:47 <elliott__> 128MB RAM Memory
12:59:47 <elliott__> Internet Explorer 5.0 or Netscape Navigator 6 or higher for Web-based Coniguration
12:59:47 <elliott__> CD-ROM Drive
12:59:47 <elliott__> Windows 2000 or XP (to use the Setup Wizard)
12:59:52 <elliott__> you will need IE5.
13:00:01 <Phantom_Hoover> What, really?
13:00:05 <Phantom_Hoover> Like, seriously?
13:00:16 <elliott__> Phantom_Hoover: No.
13:00:30 <fizzie> Only if you want to "conigure" it.
13:00:50 <elliott__> X-D
13:00:55 <elliott__> Pro webdesign
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:26 <elliott__> fizzie: Oh does it?
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:16 <elliott__> I missed it entirely.
13:02:28 <elliott__> Hmm, wait.
13:02:35 <elliott__> fizzie: Does the WAP even have Ethernet ports?
13:02:43 <fizzie> Well, it has one.
13:02:43 <elliott__> Oh, one.
13:02:46 <fizzie> It's an access point.
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:19 <Phantom_Hoover> elliott__, what's the signal strength like?
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:44 <elliott__> It's good?
13:03:47 <elliott__> fizzie: they're all black and shiny and round.
13:03:49 <elliott__> Can't trust 'em.
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:04 <elliott__> Like an alien.
13:04:07 <Phantom_Hoover> And moving it would be a chore.
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:11 <elliott__> WRT54GL is 2005-vintage-ish, but.
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:49 <Phantom_Hoover> elliott__, perhaps I should have said 'ostensibly'.
13:05:59 <elliott__> Phantom_Hoover: That was a sincere question.
13:06:12 <Phantom_Hoover> elliott__, I'm not actually sure.
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:44 <elliott__> fizzie: Yes but.
13:09:46 <elliott__> It's black and shiny.
13:09:49 <elliott__> You. Cannot. Trust. It.
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:11 <Phantom_Hoover> It does.
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:11:59 <Phantom_Hoover> Actually, I confused 'router' and 'computer'.
13:12:05 <Phantom_Hoover> I think it's because they rhyme.
13:12:11 <elliott__> Does your router not have ethernet ports?
13:12:29 <Phantom_Hoover> Yes, it doed.
13:12:32 <Phantom_Hoover> *does
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:30 <Gregor> I have a WRT120N
13:13:53 <fizzie> Gregor: The WRT160NL has 40 units more of... stuff. Plus an L.
13:14:09 <Phantom_Hoover> Gregor, recommend?
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:26 <elliott__> oh it is cheap.
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:14:48 <elliott__> Phantom_Hoover: Share and enjoy.
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:15:32 <elliott__> Yes but really.
13:15:43 <elliott__> It's not worth twenty pounds. :p
13:15:47 <elliott__> Phantom_Hoover: SHARE AND ENJOY
13:15:57 <Phantom_Hoover> ALL RIGHT OK
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:10 <CakeProphet> I am the Queen of France.
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:17:56 <elliott__> I AM SAVING YOU MONEY HERE
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:30 <Phantom_Hoover> elliott__, HOW DO YOU KNOW WHERE I LIVE
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:22 <lambdabot> against inf...
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:20:45 <CakeProphet> hrm
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:30 <CakeProphet> ah I see
13:21:38 <Phantom_Hoover> Taneb, that's inaccurate too.
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:39 <lambdabot> against inferred type `[b] ...
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:54 <CakeProphet> :t zip
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:23 <Phantom_Hoover> As do Welsh ones, IIRC.
13:22:43 <CakeProphet> I have a southern American accent
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:22:46 <CakeProphet> which is the best of all.
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:11 <elliott__> fizzie: Netwjork from Bjork
13:23:20 <elliott__> Makes your net just wjork
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:00 <Phantom_Hoover> Gregor, IT'S LIKE EAR SANDPAPER
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:22 <CakeProphet> Emacs has the best accent ever.
13:24:24 <Phantom_Hoover> tswett, Australian accents are pretty cool.
13:24:26 <Gregor> tswett: The Midwest accent is the prototype of the GA accent :P
13:24:27 <CakeProphet> way better than vim
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:47 <Phantom_Hoover> elliott__, YES OK
13:24:52 <Gregor> tswett: No. Neither does the vast majority of the midwest.
13:24:57 <tswett> Oh.
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:33 <lambdabot> mueval-core: Time limit exceeded
13:25:37 <CakeProphet> aww...
13:25:49 <CakeProphet> my incredibly efficient hash function does not construct very quickly or something.
13:25:59 <CakeProphet> probably due to being infinite in size.
13:26:35 <CakeProphet> I guess Map isn't lazy?
13:27:47 <elliott__> no need for Map
13:27:47 <Phantom_Hoover> elliott__, also cheapest shipping on that router is useless.
13:27:50 <elliott__> just use
13:27:53 <elliott__> :t lookup
13:27:54 <lambdabot> forall a b. (Eq a) => a -> [(a, b)] -> Maybe b
13:27:56 <elliott__> Phantom_Hoover: Why.
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:30 <elliott__> That is what will happen.
13:28:56 <elliott__> CakeProphet: would be kinda cool if it like constructed the tree on lookup, then like
13:28:57 <elliott__> cached it
13:29:02 <tswett> (Obviously, Porvoo has a teleporter that takes you back to Hancock.)
13:29:02 <elliott__> and morphed it next lookup
13:29:03 <elliott__> i dunno
13:29:08 <elliott__> tswett: Yes.
13:29:24 <CakeProphet> elliott__: is that even simple to do?
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:53:49 <CakeProphet> I think Haskell would rank pretty high.
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.
13:59:47 <CakeProphet> from the standard library.
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:12:16 <asiekierka> hello
15:20:40 <Taneb> hey
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:28:28 <Taneb> Hello!
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:24:19 <Taneb> Hello
17:24:25 <asiekierka> hey
17:24:32 <asiekierka> *deja vu face*
17:25:04 <Taneb> SD
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> $ ./esotope -v hello.sp
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:05 <lifthrasiir> Hello, World!
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:04 <Taneb> Hello
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:02 <quintopia> clauidus agricola est
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:32:28 <Taneb> Anyone?
18:37:27 <quintopia> as you like it
18:37:35 <quintopia> needs more syntactic sugar
18:37:42 <Taneb> It needs more syntax
18:38:45 <quintopia> oh okay
18:38:50 <Taneb> Making a page on the wiki for it under my username
18:38:51 <quintopia> good luck with that
18:51:18 <Phantom_Hoover> Taneb, suggest you look at Perligata.
18:51:39 <Phantom_Hoover> Also consider that esolangs built around syntax tend to suck.
18:58:28 <quintopia> pfffft, that's just your opinion
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:01:33 <monqy> brilliant
19:03:07 <Gregor> With a name like BeFuck, the only difference SHOULD be a terrible C++ API and fanatic devoted followers.
19:04:00 <quintopia> consider me a devotee
19:06:52 -!- hiato has joined.
19:06:53 -!- hiato has quit (Client Quit).
19:29:59 <Taneb> Hello
19:30:22 <quintopia> how was the university challenge
19:30:28 <Taneb> Good
19:30:33 <Taneb> Clare college Cambridge won
19:30:34 <quintopia> okay
19:30:50 <Taneb> Beat Winchester college Oxford 190-180
19:31:01 <quintopia> oh
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:06 <Taneb> WHO CAN YOU TRUST
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:22 <pikhq> olsner: Yes.
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:14 <pikhq> Yes.
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:57:59 <Taneb> COAP?
19:58:06 <Taneb> That's based on real events
19:58:07 <oerjan> but of course
19:58:18 <oerjan> wat
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.
19:59:38 <oerjan> thought so.
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:00:38 <Taneb> BUT IN LATIN
20:01:16 <Taneb> http://esoteric.voxelperfect.net/wiki/User:Taneb/lingua_abstrusa
20:01:33 <oerjan> urbs agricolae
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:04 <oerjan> nihil novi sub soli
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:01 <oerjan> *linguas
20:06:06 <oerjan> what is facentes
20:06:13 <Taneb> They who make
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:07:37 <oerjan> i'd say
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:07 <Phantom_Hoover> http://www.latin-dictionary.org/esotericus
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:26:28 <cheater_> explain yourself oerjan
20:26:39 <oerjan> cheater_: wat
20:26:49 <Taneb> HUh
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:04 <Taneb> And part Spanish
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:33:46 <oerjan> tanebarajan
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:38 <cheater_> oerjan, yep!
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:35:51 <cheater_> actually
20:36:03 <cheater_> my family is older than any country i have lived in
20:36:06 <cheater_> how cool is that
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:37:30 <Phantom_Hoover> (Note: lies.)
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:14 <Taneb> Some Dutch guy
20:38:30 <Taneb> Called Aris Jansz
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:06 <Phantom_Hoover> Unlikely, oerjan, unlikely.
20:41:24 <oerjan> BUT IT FITS SO WELL
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:11 <Phantom_Hoover> Hebrides?
20:42:18 <olsner> hebrides schmebrides
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:42:55 <Phantom_Hoover> Yes, Taneb, I know that.
20:43:08 <Phantom_Hoover> How did you conclude that my family comes from there.
20:43:17 <Taneb> I made it up for the sake of a joke
20:43:23 <Taneb> ...Do they?
20:43:28 <Phantom_Hoover> No./
20:43:42 <Phantom_Hoover> I don't see how it works as a joke, though.
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:42 * Phantom_Hoover spits out his drink after reëntering #jesus.
20:44:46 <Taneb> And then I pointed out the spelling of the island group looks like he-brides
20:44:50 <Phantom_Hoover> <Eliyahu> islam was not created by christianity
20:44:50 <Phantom_Hoover> <Eliyahu> it was created by fake christianity
20:44:50 <Phantom_Hoover> <Eliyahu> called roman catholicism
20:45:14 <Taneb> ...What?
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:47:24 <Phantom_Hoover> I'm pretty sure Mohammed wasn't.
20:47:31 <Phantom_Hoover> WP supports me.
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:02 <Taneb> Goodnight
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:36:42 <Sgeo> FUCK
22:36:44 <Sgeo> THIS
22:36:46 <Sgeo> CONNECTION
22:37:16 <pikhq> Consider it fucked.
22:37:40 -!- Sgeo_ has quit (Ping timeout: 250 seconds).
22:51:49 * copumpkin considers it fucked
22:53:32 -!- Vorpal has quit (Ping timeout: 260 seconds).
22:55:15 -!- augur has joined.
22:57:40 -!- Vorpal has joined.
23:15:11 * Phantom_Hoover → sleep
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.
2011-07-19
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:55:45 <NihilistDandy> Freakishly long eyelashes? FINALLY
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:45 <pikhq> Vorpal: Yes.
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:33 <pikhq> Present.
01:06:37 <pikhq> This weekend only.
01:06:52 <Vorpal> ah
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:19:55 <oerjan> *on our wiki
01:20:00 <oerjan> gah
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:24:27 <NihilistDandy> OR IS IT
01:26:14 <oerjan> it would appear to have at least assimilated phantom_hoover
01:26:51 <NihilistDandy> An insidious /r/, indeed
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.
04:43:22 <itidus20> lol
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:26:34 <oklopol> do you gnaw on it or what
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:49:20 <Taneb> Hello
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:06:23 <Taneb> Hello
08:06:33 <Taneb> Hello
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:21 <coppro> win 15
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:14 <Taneb> g
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:10 <augur> whoa hello
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:33:01 <Taneb> Fair enough
08:42:43 -!- elliott__ has joined.
08:44:27 <Taneb> Bye
08:44:40 -!- Taneb has changed nick to TanebGone.
09:18:04 -!- Phantom_Hoover has joined.
09:19:55 <Phantom_Hoover> What are the haps my friends.
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:22:24 <Phantom_Hoover> Ah, so elliott__ presumably knows all about them.
09:24:29 <fizzie> Also verbable.
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.
09:29:00 <Phantom_Hoover> Anagrams
09:29:00 <Phantom_Hoover> pah, PAH
10:08:21 <Taneb> Huh. JFK's brother-in-law's uncle was PM of the UK
10:09:26 <Taneb> Harold Macmillan
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:05:29 <Vorpal> fizzie, ugh
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:08:14 <Taneb> WTQ?
12:09:48 <Sgeo> Hmm?
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:35:59 <CakeProphet> > 3 `floor . (+)` 4
12:36:01 <lambdabot> <no location info>: parse error on input `.'
12:36:18 <CakeProphet> that would be a cool extension.
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:40 <CakeProphet> 3 `(+) `ap` floor` 4
12:37:57 <CakeProphet> nested `'s for... uh, great win? actually, just for demonstration.
12:38:30 <CakeProphet> > `pi`
12:38:31 <lambdabot> <no location info>: parse error on input ``'
12:38:50 <Taneb> Back
12:39:09 <CakeProphet> so GHC is aware of types to some degree before it finished the parsing stage.
12:39:53 <Vorpal> CakeProphet, how so?
12:40:14 <CakeProphet> well, it could also have a sophsticated error reporting system.
12:40:27 <CakeProphet> ah, nevermind.
12:40:32 <CakeProphet> > 3 `pi` 4
12:40:33 <lambdabot> 3.141592653589793
12:40:36 <Vorpal> CakeProphet, as far as I can tell it bailed out because there is nothing in front of the `
12:40:36 <CakeProphet> it was just a regular parse error.
12:40:53 <Vorpal> :t `pi`
12:40:54 <lambdabot> parse error on input ``'
12:40:57 <Vorpal> :t pi
12:40:59 <lambdabot> forall a. (Floating a) => a
12:41:00 <Vorpal> hm
12:41:10 <CakeProphet> Vorpal: right
12:41:25 <Vorpal> > pi 3 4
12:41:26 <lambdabot> 3.141592653589793
12:41:36 <CakeProphet> ...yeah I have no idea.
12:41:44 <Vorpal> wtf
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:42:43 <fizzie> (Or 3 `pi` 4.)
12:42:50 <Vorpal> fizzie, heh
12:43:00 <CakeProphet> > pi is stupid
12:43:02 <lambdabot> Not in scope: `is'Not in scope: `stupid'
12:43:07 <CakeProphet> > pi "werijsdiufhushdfwer
12:43:08 <lambdabot> <no location info>:
12:43:09 <lambdabot> lexical error in string/character literal at end o...
12:43:10 <CakeProphet> > pi "werijsdiufhushdfwer"
12:43:12 <lambdabot> 3.141592653589793
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:43:41 <lambdabot> "3"
12:43:44 <Vorpal> heh
12:44:07 <CakeProphet> > let x = pi 3 4 in x
12:44:09 <lambdabot> 3.141592653589793
12:44:16 <Vorpal> what
12:44:18 <CakeProphet> apparently works in nested expressions as well.
12:44:25 <CakeProphet> so it's a general bug in the interpreter.
12:44:32 <Vorpal> yeah
12:44:40 <fizzie> > pi undefined
12:44:42 <lambdabot> 3.141592653589793
12:44:52 <CakeProphet> > let x = 8 3 9 4 in x
12:44:53 <lambdabot> 8
12:45:14 <CakeProphet> > let x = 3 + 4 5 in x[C
12:45:15 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
12:45:23 <CakeProphet> but only with constants perhaps
12:45:35 <fizzie> > let x = 3 + 4 5 in x
12:45:36 <lambdabot> 7
12:45:39 <fizzie> You had a [C in there.
12:45:46 <CakeProphet> oh...
12:46:30 <CakeProphet> so it just blindly evaluates the expression as though it's correctly formed and disregards the leftover stuff?
12:46:33 <CakeProphet> I don't know.
12:46:47 <CakeProphet> seems like it would produce a type error.
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:02 <Vorpal> hm
12:47:05 <CakeProphet> expected type a -> b -> c inferred type (Floating a) => a
12:47:06 <CakeProphet> or whatever
12:47:08 <Vorpal> > let x = 3 + 4 5[C] in x
12:47:09 <lambdabot> Not in scope: data constructor `C'
12:47:14 <Vorpal> err what
12:47:18 <Vorpal> > let x = 3 + 4 5[C in x
12:47:19 <Vorpal> hm
12:47:19 <lambdabot> <no location info>: parse error on input `in'
12:47:47 <CakeProphet> :t f
12:47:48 <lambdabot> forall a. (SimpleReflect.FromExpr a) => a
12:48:00 <CakeProphet> > map pi [1..]
12:48:01 <lambdabot> [3.141592653589793,3.141592653589793,3.141592653589793,3.141592653589793,3....
12:48:12 <CakeProphet> well, it allows map f [1..] to work.
12:48:16 <CakeProphet> or fix f
12:48:23 <CakeProphet> when technically f is not a function.
12:50:36 <Vorpal> > fix f
12:50:37 <lambdabot> Ambiguous type variable `a' in the constraints:
12:50:37 <lambdabot> `GHC.Show.Show a'
12:50:37 <lambdabot> a...
12:50:43 <Vorpal> :t fi
12:50:44 <Vorpal> :t fix
12:50:45 <lambdabot> Not in scope: `fi'
12:50:45 <lambdabot> forall a. (a -> a) -> a
12:50:48 <Vorpal> ah
12:50:53 <Vorpal> > fix pi
12:50:54 <lambdabot> 3.141592653589793
12:51:01 <Vorpal> (of course)
12:51:05 <Vorpal> :t fix pi
12:51:06 <lambdabot> forall a. (Floating a) => a
12:51:10 <Taneb> > pi
12:51:11 <lambdabot> 3.141592653589793
12:51:19 <Taneb> > "> pi"
12:51:20 <lambdabot> "> pi"
12:52:26 <Vorpal> > fix fix
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:52:31 <Vorpal> aw
12:52:43 <Taneb> > putStrLin "pi"
12:52:44 <lambdabot> Not in scope: `putStrLin'
12:52:52 <Vorpal> Taneb, no IO
12:52:53 <Taneb> > putStrLn "pi"
12:52:53 <lambdabot> <IO ()>
12:52:58 <Taneb> Sorry
12:53:10 <Vorpal> I mean, you can't evaluate IO
12:53:18 <Taneb> Okay
12:53:32 <Vorpal> as you saw, you just got an IO back
12:53:35 <CakeProphet> > readFile "/etc/passwd"
12:53:37 <lambdabot> <IO [Char]>
12:54:20 <CakeProphet> :t (readFile <$>)
12:54:21 <lambdabot> forall (f :: * -> *). (Functor f) => f FilePath -> f (IO String)
12:54:28 <Taneb> > 'x'
12:54:29 <lambdabot> 'x'
12:54:32 <CakeProphet> > fix (readFile <$>)
12:54:33 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
12:54:33 <lambdabot> against inferred ty...
12:55:50 -!- cheater_ has joined.
12:55:52 <CakeProphet> :t (readFile =<<)
12:55:53 <lambdabot> IO FilePath -> IO String
12:56:05 <CakeProphet> > fix (readFile =<<)
12:56:06 <lambdabot> <IO [Char]>
12:56:34 <CakeProphet> interesting.
12:57:38 <CakeProphet> I thought IO was strict.
13:02:21 <Vorpal> CakeProphet, only when evaulated, like in a do block or such
13:02:24 <Vorpal> iirc
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:03:19 <Vorpal> XD
13:04:13 <CakeProphet> :t return
13:04:14 <lambdabot> forall a (m :: * -> *). (Monad m) => a -> m a
13:04:21 <CakeProphet> @hoogle a -> a
13:04:22 <lambdabot> Prelude id :: a -> a
13:04:22 <lambdabot> Data.Function id :: a -> a
13:04:22 <lambdabot> Control.Exception mapException :: (Exception e1, Exception e2) => (e1 -> e2) -> a -> a
13:04:32 <CakeProphet> :t mapException
13:04:33 <lambdabot> Not in scope: `mapException'
13:06:00 <CakeProphet> > breakpoint 3
13:06:01 <lambdabot> Not in scope: `breakpoint'
13:06:23 <CakeProphet> :t inline
13:06:24 <lambdabot> Not in scope: `inline'
13:06:26 <CakeProphet> bah
13:06:52 <CakeProphet> GHC.Exts have some cool functions.
13:07:08 <CakeProphet> like lazy, and inline.
13:09:07 <CakeProphet> > fix (`fromMaybe` Nothing) 3
13:09:11 <lambdabot> mueval-core: Time limit exceeded
13:09:16 <CakeProphet> > fix (`fromMaybe` Just 5) 3
13:09:18 <lambdabot> 5
13:09:52 <CakeProphet> the laziness of one argument depends on another.
13:11:04 <CakeProphet> fix (print 3 `par`) 4
13:11:12 <CakeProphet> > fix (print 3 `par`)
13:11:16 <lambdabot> mueval-core: Time limit exceeded
13:12:47 <CakeProphet> par is apparently not strict in the second argument
13:14:47 <Vorpal> :t par
13:14:49 <lambdabot> forall a b. a -> b -> b
13:14:59 <Vorpal> CakeProphet, I think types should have strictness info
13:15:01 <Vorpal> somehow
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:16:13 <CakeProphet> as does passing an undefined.
13:17:49 <Vorpal> true
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:19:13 <CakeProphet> on large computations.
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:22:14 <CakeProphet> but it apparently does not.
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:24:58 <CakeProphet> I am unaware of it.
13:25:07 <CakeProphet> doesn't error perform a side-effect?
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:01 <CakeProphet> :t (%)
13:30:02 <lambdabot> forall a. (Integral a) => a -> a -> Ratio a
13:30:13 <CakeProphet> :t (3%)
13:30:14 <lambdabot> forall t. (Integral t) => t -> Ratio t
13:34:12 <Vorpal> Taneb, heh
13:34:22 <CakeProphet> hmmm
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:46:55 <CakeProphet> ...when applied to a sinusoid, that is.
13:50:13 <CakeProphet> > let boxcar a b x = fromEnum (a < x < b) in map (boxcar 2 10) [0..]
13:50:14 <lambdabot> Precedence parsing error
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,...
13:51:47 <CakeProphet> rect = boxcar (-0.5) 0.5
13:53:26 <CakeProphet> actually rect = boxcar (-0.5) 0.5 . sin
13:53:36 <CakeProphet> if you want the period form.
14:04:35 -!- foocraft has quit (Ping timeout: 250 seconds).
14:08:18 <CakeProphet> huh, apparently C# has Perl's // operator
14:08:29 <CakeProphet> as ??
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:23:16 <lifthrasiir> default-to?
14:23:25 <CakeProphet> depends on what you mean by "obvious"
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:25:17 <CakeProphet> it's equivalent to defined(x) : x : y
14:25:19 <CakeProphet> *?
14:26:00 <CakeProphet> whereas or is: x ? x : y
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:48:40 <lifthrasiir> citation needed!
14:49:40 <CakeProphet> there is one
14:49:50 <CakeProphet> but I don't really think it's notable.
14:49:56 <CakeProphet> plus that's such a terrible acronym.
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:30 <Phantom_Hoover> That is in fact what the word 'but' is there for.
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:09:45 <Phantom_Hoover> He *is* talking about his religion.
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:13:43 <Phantom_Hoover> No.
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:14:54 <CakeProphet> This is stupid.
15:14:59 <CakeProphet> I will never read talk pages again.
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:52 <Phantom_Hoover> :t div
16:31:54 <lambdabot> forall a. (Integral a) => a -> a -> a
16:31:57 <Phantom_Hoover> Yes.
16:32:30 <Taneb> Thanks
16:42:22 <copumpkin> :t quot
16:42:25 <lambdabot> forall a. (Integral a) => a -> a -> a
16:42:28 <copumpkin> :t mod
16:42:29 <copumpkin> :t rem
16:42:29 <lambdabot> forall a. (Integral a) => a -> a -> a
16:42:30 <lambdabot> forall a. (Integral a) => a -> a -> a
16:42:34 <copumpkin> zomg
16:42:46 <copumpkin> :t [divMod, quotRem]
16:42:47 <lambdabot> forall a. (Integral a) => [a -> a -> (a, a)]
16:42:56 <copumpkin> :t [div, mod, quot, rem]
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:35 <Phantom_Hoover> > 7 `quot` 3
16:47:36 <lambdabot> 2
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:47:55 <Phantom_Hoover> ais523, expand.
16:48:00 <Phantom_Hoover> Well, that's OK.
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:15 <Phantom_Hoover> (I am the official Sanctioner of Esolangs. I say so.)
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:03 <Phantom_Hoover> That's basically Ihybrid.
16:49:10 <Phantom_Hoover> Oh, wait.
16:49:15 <Phantom_Hoover> Literally identical?
16:49:20 <Phantom_Hoover> I approve.
16:49:48 <Phantom_Hoover> Wait, Ihybrid is a crappy serious esolang.
16:49:51 <ais523> I'm thinking of calling it Brainfuck
16:49:54 <ais523> with a capital B
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:51:54 <Taneb> XD
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:47 <Phantom_Hoover> http://twitter.com/#!/JonnieMarbles
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:54:49 <Phantom_Hoover> ais523, I... copied and pasted it.
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:19 <Phantom_Hoover> ais523, good for you. Noöne cares.
16:55:31 <ais523> people without JS in their primary browser care
16:56:00 <Phantom_Hoover> A tiny minority, yes.
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:58:28 <cheater_> stop browsing midget porn
16:58:45 <Phantom_Hoover> Funnily enough, most of us get by fine without them.
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).
16:59:20 <Phantom_Hoover> Wait, s/send you/give/
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:07 <Phantom_Hoover> ais523, funnily enough, it works for most people.
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:01:42 <Phantom_Hoover> Good for you. Keep it to yourself.
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:48:04 <Taneb> I'm ill
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:25 <ais523> indeed
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:04:18 <olsner_> I can palindrome too :D
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:30:53 <Phantom_Hoover> elliott, oi.
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:46 <Taneb> A polititian?
18:39:58 <itidus20> Those multi-dimensional numbers I was talking about the other day
18:40:03 <Phantom_Hoover> I hope that was a deliberate typo.
18:40:12 <Phantom_Hoover> itidus20, define "multi-dimensional".
18:40:24 <itidus20> consisting of more than one dimension
18:40:47 <Phantom_Hoover> You mean like the complex numbers?
18:40:53 <Taneb> Or Vectors?
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:41:41 <Phantom_Hoover> You mean complexes.
18:41:43 <Phantom_Hoover> Or vectors.
18:41:53 <Taneb> Ooh, I remember!
18:41:54 <itidus20> more towards the vectors idea
18:42:02 <Taneb> Giving names to vectors!
18:42:04 <itidus20> im too stupid to do anything with complex numbers
18:42:06 <Phantom_Hoover> Complexes == vectors.
18:42:10 <Taneb> Like, lala = (7,3)
18:42:16 <Phantom_Hoover> Just with a different definition of *.
18:42:25 <Phantom_Hoover> Erm, complexes == 2-vectors.
18:42:35 <itidus20> i'm the most mathematically-challenged here
18:43:12 <itidus20> So.. 2 is enough
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:19 <Phantom_Hoover> That's all there is to complexes.
18:44:37 <Phantom_Hoover> Everything else is just a consequence.
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:52:55 <Taneb> That bit's fine
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:53:30 <Phantom_Hoover> What is it, out of curiosity?
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:54:37 <Phantom_Hoover> Ah, so you just pad.
18:54:48 <Taneb> Yeah
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:00:15 <Phantom_Hoover> Hmm, they have to be connected.
19:00:46 <itidus20> i dunno
19:01:02 <itidus20> this kind of crap doesn't have to mean much for me
19:01:15 <Phantom_Hoover> Hmm, not quite arbitrary.
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:07 <lifthrasiir> Taneb: is numberwang now stable?
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:15 <Phantom_Hoover> fizzie, yes, sure.
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:05:44 <itidus20> well maybe i don't
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:40 <Phantom_Hoover> itidus20, like display programming...
19:07:45 <itidus20> hmm
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:04 <Taneb> Yes it does...
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:09:50 <Phantom_Hoover> Hardware design? Ahahahahahahahahahaha.
19:09:52 <Phantom_Hoover> Ahahahahahahahaha.
19:09:57 <Phantom_Hoover> Ha. Ha. Ha.
19:09:58 <Phantom_Hoover> No.
19:10:17 <itidus20> he's a bit crazy though
19:10:51 <Taneb> Hang on
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:12:49 <Taneb> Dwarf Fortress?
19:13:34 <itidus20> The more discerte a game becomes it seems the more likely that a perfect play scenario exists
19:13:40 <itidus20> ^discrete
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:06 <Taneb> Yes
19:14:20 <lifthrasiir> okay, i'll try to program in it now ;)
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:30 <Phantom_Hoover> ...no?
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:39 <itidus20> not only that
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:00 <lifthrasiir> to be exact, 8 + alpha, right.
19:18:07 <Taneb> Yes
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:17 <Phantom_Hoover> ISTR that in Go computers are barely able to compete.
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:15 <Phantom_Hoover> It was done in draughts quite some time before that.
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:22:42 <Phantom_Hoover> pikhq, OK, easy.
19:22:46 <Phantom_Hoover> itidus20, neural... what?
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:34 <Phantom_Hoover> Ahahahahahaha.
19:23:36 <Phantom_Hoover> No.
19:23:38 <Phantom_Hoover> They haven't.
19:23:42 <itidus20> why not?
19:23:47 <itidus20> lol
19:23:49 <Taneb> Too expensive
19:23:53 <Taneb> And not enough point
19:23:54 <itidus20> lol
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:25 <itidus20> i've heard that
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:35 <elliott> ais523: ok
19:26:41 <itidus20> and well..
19:26:58 <ais523> elliott: are you logreading, or do you want me to repeat context?
19:27:07 <elliott> that would be nice
19:27:09 <elliott> latter that is
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:00 <ais523> elliott: nope
19:28:11 <elliott> ais523: i approve wholeheartedly
19:28:27 <ais523> heh
19:28:30 -!- oerjan has joined.
19:29:39 <itidus20> sgeo: thanks. nice link.
19:29:49 <Sgeo> yw
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:17 <Phantom_Hoover> oerjan, when'd he say that?
19:31:21 <elliott> oerjan: that was funny?
19:31:27 <Taneb> Yes, the 2 keeps it in the 3
19:31:35 <Taneb> 2s don't escape 3s
19:31:41 <oerjan> 01:16:40 tunes time
19:31:51 <lifthrasiir> huh,
19:31:55 <oerjan> (which corresponds to no timezone known to mankind)
19:32:15 <Phantom_Hoover> :D
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:32:46 <Taneb> lifthrasiir: yes
19:32:48 <oerjan> `delquote 514
19:32:49 <HackEgo> ​*poof*
19:33:01 <Phantom_Hoover> Hey, that was moderately funny on its own.
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:34:10 <oerjan> elliott: better?
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:43 <oerjan> darn
19:36:48 <itidus20> thats always good
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:20 <elliott> fair enough
19:37:25 <itidus20> no first move advantage and no draws? how can it be so. :o
19:37:41 -!- pikhq_ has joined.
19:37:47 <Phantom_Hoover> itidus20, note that it is patented.
19:37:53 <itidus20> lol
19:38:00 -!- pikhq has quit (Ping timeout: 264 seconds).
19:38:04 <itidus20> patents
19:39:03 <elliott> Phantom_Hoover: i love the software license
19:39:05 <elliott> it is so stupid
19:39:33 <Phantom_Hoover> elliott, what is it, again?
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:40:03 <Phantom_Hoover> Oh, here it is: http://arimaa.com/arimaa/license/
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:27 <itidus20> thats what intruiges me
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:42:52 <oerjan> oops
19:42:54 <oerjan> `delquote 515
19:42:56 <HackEgo> ​*poof*
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:43:30 <itidus20> hmm fascinating
19:44:05 <oerjan> itidus20: it could have a _second_ move advantage, you know :P
19:44:25 <itidus20> lol
19:44:31 <itidus20> good thinking
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:05 <Phantom_Hoover> Yeah, this licence is ridiculous.
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:18 <oerjan> elliott: THANKS
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:14 <Phantom_Hoover> itidus20, have you looked at Minecraft, actually?
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:48 <itidus20> but i might bore of it also
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:01 <Phantom_Hoover> itidus20, it is quite simple to pirate.
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:09 <elliott> ANOTHER ONE?!!!!?!
19:50:11 <oerjan> er
19:50:13 <oerjan> *wirth's
19:50:16 <oerjan> shees
19:50:17 <oerjan> h
19:50:26 <elliott> oerjan: um wirth invented literate programming?
19:50:29 <itidus20> lol
19:50:38 <elliott> no, knuth did
19:50:41 <oerjan> elliott: er wait i'm confusing myself
19:50:45 <elliott> :)
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:31 <itidus20> ambiguity of ***th
19:51:42 <itidus20> my regex skills aren't up to speed though
19:51:58 <itidus20> (a-z){3}th
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:05 <elliott> iamcal: [a-z]
19:52:08 <Taneb> ...th
19:52:18 <elliott> <Taneb> Also, is there anyplace I can see a list of all the hackego quotes
19:52:21 <elliott> `pastequotes
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:29 <itidus20> [a-z]{3}th
19:52:30 <elliott> you can also go to
19:52:31 <elliott> `url quotes
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:37 <Taneb> Handy
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:52:56 <itidus20> oh
19:53:11 <itidus20> pascal reinforced the confusion
19:53:15 <oerjan> yeah
19:53:37 <elliott> oerjan: the wire crossing problem?
19:54:50 <olsner_> the oerjan confusion problem?
19:55:06 <elliott> olsner_: whoosh
19:55:23 <itidus20> I think that there is value in languages which have hollow meaningless keywords
19:55:34 <itidus20> Like English.
19:56:55 <elliott> also all languages
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:27 <elliott> itidus20: obviously not
19:58:29 <elliott> we have only finite memory
19:58:35 <Phantom_Hoover> Taneb, allowing for imperatives, yes.
19:58:39 <itidus20> hummm
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:08 <elliott> no keywords in Scheme
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:11 <elliott> (that function being x)
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:04:06 <itidus20> whereas, uh.. humm
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:08:59 <itidus20> just words
20:09:06 <itidus20> anyway, do you want the OED?
20:09:13 <itidus20> its easily obtainable now :P
20:09:22 <Taneb> In hardback?
20:09:25 <itidus20> nope
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:11:56 <itidus20> it's all very odd
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:18:27 <oerjan> > (sin + cos) 0
20:18:28 <lambdabot> 1.0
20:18:36 <oerjan> > (sin + cos + 1) 0
20:18:37 <lambdabot> 2.0
20:19:05 <oerjan> also known in math as "pointwise" arithmetic
20:19:50 <Phantom_Hoover> <itidus20> probably not legally of course
20:19:53 <Phantom_Hoover> You don't say?
20:21:05 <Deewiant> > 1 2
20:21:06 <oerjan> > (id + 2 * id + 5) 3
20:21:06 <lambdabot> 1
20:21:07 <lambdabot> 14
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:21:39 <ais523> (stupid DMCA)
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:26:04 <itidus20> yup
20:27:35 <oerjan> <Vorpal> CakeProphet, I think types should have strictness info
20:27:59 <itidus20> time for a visit to wiki
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:00 <oklopol> i am here !
20:29:11 -!- Tritonio has joined.
20:29:20 <Vorpal> oklopol, ?
20:29:23 <Vorpal> err
20:29:24 <Vorpal> oerjan, ^
20:29:25 <oerjan> yes but you weren't involved in the conversation i am logreading
20:29:32 <oerjan> whew
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:32 <Vorpal> oerjan, ah
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:10 <ais523> indeed
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:37 <Zwaarddijk> ah
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:36 <elliott> OH NOES
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:03 <oklopol> oh you explain
20:50:10 <Taneb> Being a member of one of the two organisations allowed to debat there
20:50:27 <Taneb> *debate
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:50:54 <Taneb> The one in London
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:17 <elliott> when did he say this
20:51:20 <ais523> umm, last-but-2
20:51:30 <Taneb> Yeah, PH
20:51:32 <ais523> Taneb: did you see someone attack Rupert Murdoch?
20:51:35 <ais523> and his wife retaliate?
20:51:37 <ais523> or did you miss it?
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:01 <ais523> oklopol: indeed
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:05 <elliott> --ais
20:52:06 <ais523> Phantom_Hoover: it was in the same building
20:52:07 <oklopol> i mean
20:52:10 <elliott> oklopol: that's proven?
20:52:11 <ais523> but not the same room
20:52:11 <oklopol> winning strategy for second player
20:52:14 <oklopol> elliott: no
20:52:16 <ais523> as is normally used
20:52:20 <elliott> oklopol: lol
20:52:22 <ais523> it was one of the committee rooms
20:52:32 <Phantom_Hoover> Ah.
20:52:35 <oklopol> elliott: i'm just telling you because i like you
20:52:39 <elliott> oklopol: ok
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:51 <oklopol> elliott: of course it is
20:52:55 <oklopol> ...
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:08 <Phantom_Hoover> oklopol, is the continuum hypothesis true?
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:13 <fizzie> oklopol: And sex?
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:32 <elliott> MIT: HEIGHT OF SECURITY
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:32 <Phantom_Hoover> ais523, inexcusable != wrong.
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:02:45 <itidus20> matching pennies?
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:03:45 <itidus20> interesting
21:04:15 <itidus20> ais: i like the sound of it
21:05:09 <Taneb> Uurgh...
21:05:12 <Taneb> Ill
21:05:56 <Taneb> Goodnight
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 <itidus20> :-P
21:11:01 <ais523> matching pennies does it via imperfect information
21:11:04 <oklopol> yeah to what ais523 said
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:08 <ais523> as a lookup table
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:41 <itidus20> hehe
21:14:44 <ais523> coppro: simple ko, you can
21:14:49 <ais523> superko, the number of games is finite
21:14:50 <coppro> ais523: How?
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:19 <coppro> how?
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:35 <coppro> ais523: Hmm...
21:16:39 -!- oerjan has joined.
21:16:46 <itidus20> just that its so complex that noone knows how to grab that advantage
21:16:58 <ais523> itidus20: fair enough
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:18 <ais523> *though
21:17:27 -!- Tritonio has quit (Quit: Leaving).
21:17:27 <coppro> ais523: ok you win
21:17:36 <itidus20> it means chess is useless on a small enough scale
21:17:46 <itidus20> it can't scale down to simple
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:25 <ais523> yep
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:20 <elliott> play it
21:20:36 <itidus20> ah. that one. yeah
21:20:55 <oklopol> chess is extremely boring to play though
21:21:43 <Phantom_Hoover> oklopol, what do you not find boring to play?
21:22:19 <olsner_> space jazz?
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:22:41 <oklopol> say monopoly
21:23:34 <oklopol> but hmm
21:23:44 <Phantom_Hoover> Monopoly: the game designed to tear families apart.
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:23:59 <Phantom_Hoover> ais523, hence the families being torn apart.
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 <Phantom_Hoover> 95% of divorces are due to Monopoly, true fact.
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:24:56 <Phantom_Hoover> olsner_, you say 'oi, do that and I'll do that'.
21:24:59 <Phantom_Hoover> Sgeo, it's pretty boring.
21:25:13 <ais523> olsner_: you can trade properties
21:25:15 <Phantom_Hoover> Wait, wrong thing.
21:25:17 <ais523> also money
21:25:32 <oklopol> but yeah negotiation type of thingies are certainly more fun than search games
21:25:46 <Deewiant> @die 1d2
21:25:47 <lambdabot> 1d2 => 1
21:26:31 <itidus20> @die ld2
21:26:32 <lambdabot> unexpected "l": expecting number
21:26:38 <itidus20> oops
21:26:43 <itidus20> @die 1d2
21:26:44 <lambdabot> 1d2 => 1
21:27:56 <oerjan> @die evil scum
21:27:57 <lambdabot> unexpected "e": expecting number
21:28:15 <oklopol> BUT e IS A NUMBER!"
21:28:17 <ais523> @die 1d(1d(1d6))
21:28:17 <lambdabot> unexpected "(": expecting number
21:28:18 <oklopol> *-"
21:28:20 <ais523> bleh
21:28:30 <olsner_> @die 1d1e6
21:28:31 <lambdabot> unexpected "e": expecting digit, "+" or end
21:28:39 <ais523> @die 1d2.7
21:28:40 <lambdabot> unexpected ".": expecting digit, "+" or end
21:28:54 <ais523> lambdabot: so by "expecting number", you mean "expecting positive integer"?
21:28:57 <ais523> @die 1d0
21:28:58 <lambdabot> 1d0 => 0
21:29:00 -!- ralc has joined.
21:29:07 <ais523> @die 0d1
21:29:08 <lambdabot> 0d1 => 0
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:30:35 <oklopol>
21:30:53 * oerjan whistles innocently
21:31:21 <elliott> lol at zero-sided die
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:31:48 <olsner_> *unspecified
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:38 <Sgeo> Ethereal
21:40:42 <Sgeo> Oh, oops
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:28 <elliott> no
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 <elliott> ephemeral is fleeting
21:42:34 <Sgeo> <flyingferret> Ethereal dice always show 0.
21:42:36 <elliott> ethereal is ghostly
21:42:55 <elliott> a temporary file is ephemeral; sprites are ethereal
21:42:59 <oklopol> spoooooooooky
21:43:10 <elliott> totes
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:53:18 <oklopol> don't worry, i can
21:54:18 <oklopol> but yeah if the faces need to be plane, hmmhmm.
21:54:44 <oklopol> i think it is impossible
21:54:55 <itidus20> the problem is the idea each face needs to be a triangle
21:55:00 <itidus20> ^at least a
21:55:09 <olsner> but you should be able to make something that has exactly three stable states
21:55:19 <oklopol> oh well that's easy
21:55:34 <Sgeo> Why would it need to be regular
21:55:40 <Sgeo> Just have two points on each side
21:55:44 <Sgeo> Erm, non-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:17:52 <pikhq> Defragmentation.
23:18:25 <coppro> NOOO
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:26:51 <monqy> decosystems
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:09 <itidus20> ^straight line
23:29:37 <monqy> true? what does that mean
23:29:40 <itidus20> hehe
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:31:02 <itidus20> hummm
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:34:37 <Phantom_Hoover> Straight? One dimension?
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:15 <itidus20> and still represent 1d
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:38:37 <lambdabot> Parse error at ".." (column 17)
23:38:52 <itidus20> oops
23:39:11 * oerjan wonders what that command was
23:39:15 <oerjan> @no
23:39:15 <lambdabot> ()
23:39:20 <oerjan> @nod
23:39:20 <lambdabot> Maybe you meant: bid do id todo yow
23:39:30 <oerjan> hm
23:39:30 <itidus20> yes he did lambda
23:39:32 <oerjan> @list do
23:39:33 <lambdabot> undo provides: undo do
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:17 <oerjan> SO CLOSE
23:40:35 <elliott> oerjan: wat
23:40:43 <oerjan> i mean
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:44:58 <itidus20> i'm romero to carmack
23:45:10 <itidus20> maybe that is saying a bit much
23:46:06 <Lymee> > maximum []
23:46:07 <lambdabot> *Exception: Prelude.maximum: empty list
23:46:30 <itidus20> http://oi56.tinypic.com/2d14acn.jpg
23:52:52 <Lymee> @t (1,)
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:57 <Lymee> :t (1,)
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:31 <monqy> ahaha what
23:57:48 <monqy> bash web platform sounds like a horrible idea
23:58:27 <Lymee> Must be a joke.
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."
2011-07-20
00:02:10 <pikhq> Methinks that doing that on zsh would be slightly saner. If still completely nuts.
00:02:39 <Lymee> @src head
00:02:40 <lambdabot> head (x:_) = x
00:02:40 <lambdabot> head [] = undefined
00:02:53 <Lymee> @src undefined
00:02:54 <lambdabot> undefined = error "Prelude.undefined"
00:03:07 <oerjan> > undefined
00:03:09 <lambdabot> *Exception: Prelude.undefined
00:03:18 <oerjan> > head []
00:03:19 <lambdabot> *Exception: Prelude.head: empty list
00:03:28 <Lymee> wat
00:03:47 <oerjan> Lymee: that head source is not canonical, implementations are allowed to use more specific error messages
00:04:35 <Lymee> I know.
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:02 <oerjan> > fix error
00:07:03 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E...
00:11:34 <Lymee> @src ==
00:11:34 <lambdabot> x == y = not (x /= y)
00:11:40 <Lymee> @src /=
00:11:41 <lambdabot> x /= y = not (x == y)
00:11:54 <Lymee> Must be messy when neither is implemented..
00:12:09 <Lymee> :t error
00:12:10 <lambdabot> forall a. [Char] -> a
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:44 <pikhq> Simple. :)
00:13:55 <Lymee> > fix error
00:13:57 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E...
00:14:07 <Lymee> It's clearly returning a [Char]
00:14:14 <monqy> no
00:14:15 <Lymee> One that makes /sense/ at that.
00:14:17 <pikhq> :t fix error
00:14:18 <lambdabot> [Char]
00:14:21 <monqy> oh
00:14:29 <monqy> oh right yeah
00:14:30 <monqy> :t fix
00:14:32 <lambdabot> forall a. (a -> a) -> a
00:14:33 <Lymee> > error error "wat"
00:14:34 <lambdabot> Couldn't match expected type `[GHC.Types.Char]'
00:14:35 <lambdabot> against inferred ty...
00:14:35 <monqy> im dumb
00:14:37 <pikhq> Lymee: It's not actually making sense.
00:14:46 <Lymee> > error $ error "wat"
00:14:47 <lambdabot> *Exception: *Exception: wat
00:14:57 <Lymee> @src error
00:14:57 <pikhq> Lymee: The show routine is printing out the initial " for the string.
00:14:57 <lambdabot> error s = throw (ErrorCall s)
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:15:42 <pikhq> Lymee: And so on.
00:15:58 <Lymee> Makes sense.
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:24 <lambdabot> [1,2,3,4,*Exception: 5
00:17:30 <Lymee> > take 4 $ [1,2,3,4,(error "5")]
00:17:31 <lambdabot> [1,2,3,4]
00:17:33 <Lymee> > take 5 $ [1,2,3,4,(error "5")]
00:17:34 <lambdabot> [1,2,3,4,*Exception: 5
00:17:34 <monqy> > error undefined
00:17:35 <lambdabot> *Exception: *Exception: Prelude.undefined
00:17:46 <Lymee> > take 0 $ reverse $ [1,2,3,4,(error "5")]
00:17:47 <lambdabot> []
00:19:37 <Lymee> @src throw
00:19:38 <lambdabot> throw exception = raise# exception
00:19:42 <Lymee> @src raise#
00:19:43 <lambdabot> Source not found. Are you on drugs?
00:19:47 <Lymee> ;-;
00:19:56 <Lymee> :t raise#
00:19:58 <lambdabot> Not in scope: `raise#'
00:20:01 <Lymee> :t \x -> raise# x
00:20:02 <lambdabot> Not in scope: `raise#'
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:29:10 <lambdabot> 2
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:05 <Lymee> Aww.
00:41:17 <pikhq> > let # = 1 in (#) + (#)
00:41:19 <lambdabot> <no location info>: parse error on input `#'
00:41:22 <pikhq> Balls.
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:47:15 <oerjan> *MagicHash
00:50:00 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:51:55 <Lymee> > let _# = 1 in _# + _#
00:51:56 <lambdabot> 2
00:52:03 <Lymee> > let #_ = 1 in #_ + #_
00:52:04 <lambdabot> <no location info>: parse error on input `#'
00:52:06 <Lymee> wah
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:17 <oerjan> hm...
00:55:34 <oerjan> > let _# = 1 in _#
00:55:36 <lambdabot> 1
00:55:41 <oerjan> > let _ # = 1 in _ #
00:55:42 <lambdabot> <no location info>: parse error on input `='
00:55:48 <oerjan> > let _# = 1 in _ #
00:55:50 <lambdabot> <no location info>: parse error (possibly incorrect indentation)
00:55:56 <oerjan> hm weird
00:56:05 <oerjan> > let _#_ = 1 in _#_
00:56:06 <lambdabot> Pattern syntax in expression context: _
00:56:15 <oerjan> > let _#a = 1 in _#a
00:56:16 <lambdabot> 1
00:56:54 <oerjan> > let _* = 1 in _*
00:56:55 <lambdabot> <no location info>: parse error on input `='
00:57:32 <oerjan> > let _#a = a+b in _#a
00:57:33 <lambdabot> a + b
00:57:41 <oerjan> um
00:58:04 <oerjan> > let _#a = a+b in _#b
00:58:06 <lambdabot> b + b
00:58:13 <oerjan> aaaaaaah
00:58:38 <oerjan> > let _# a = a+b in _#b
00:58:40 <lambdabot> b + 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
00:59:32 <lambdabot> Not in scope: `c#'
01:00:03 <Lymee> > let **/** = blah in **/**
01:00:04 <lambdabot> <no location info>: parse error on input `**/**'
01:00:07 <Lymee> What
01:00:14 <Lymee> > let * = 1 in *
01:00:15 <lambdabot> <no location info>: parse error on input `*'
01:00:17 * Lymee boggles
01:00:27 <Lymee> > *
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:53 <lambdabot> 4
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:00 <lambdabot> 2
01:01:01 <oerjan> although it seems to be there
01:01:53 <monqy> > let x **/** y = x * y in 1 **/** 2
01:01:55 <lambdabot> 2
01:02:09 <pikhq> (for non-Americans; those are °F; 30°C = 86°F)
01:02:46 <Lymee> 86 F is not bad.
01:02:51 <Lymee> 100+ is.
01:02:57 <Lymee> such is texas
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:08 <Lymee> # is weird.
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:04:34 <pikhq> :D, though.
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:34 <Lymee> What does it do?
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:18 * Phantom_Hoover → sleep
01:09:26 <Lymee> > let throw# = \x -> x in error 'this wont work i dont think"
01:09:27 <lambdabot> <no location info>:
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:09:36 <Phantom_Hoover> <Lymee> 86 F is not bad.
01:09:41 <Phantom_Hoover> !sanetemp 86
01:09:44 <EgoBot> 30.0
01:09:48 <Phantom_Hoover> O.o
01:09:52 <Lymee> sanetemp?
01:09:53 <Lymee> =p
01:09:55 <Lymee> Nice function.
01:10:02 <Lymee> !insanetemp 30
01:10:05 <Lymee> you fail.
01:10:10 <Phantom_Hoover> !show sanetemp
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:30 <Lymee> =p
01:10:56 <Lymee> !sanetemp 105
01:10:56 <EgoBot> 40.5
01:10:59 <Lymee> That was a few days ago.
01:11:00 <Lymee> Yeah.
01:11:07 <oerjan> aaaaaaaaa
01:11:58 <Phantom_Hoover> !addinterp insanetemp sh dc -e "1k?9*5/32+p"
01:11:58 <EgoBot> ​Interpreter insanetemp installed.
01:12:08 <Phantom_Hoover> !insanetemp 30
01:12:09 <EgoBot> 86.0
01:12:12 <oerjan> !userinterps
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:30 <Phantom_Hoover> !pikhq hello, world
01:12:31 <EgoBot> hello, world
01:12:37 <Phantom_Hoover> !show pikhq
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:12:41 <Phantom_Hoover> Ah.
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:13:55 <Phantom_Hoover> !pi
01:13:56 <EgoBot> 3.14156
01:14:16 <Phantom_Hoover> I should probably do something about that last digit.
01:14:19 <Lymee> !show show
01:14:19 <EgoBot> That is not a user interpreter!
01:14:23 * Lymee runs
01:14:26 <Lymee> !show warez
01:14:27 <EgoBot> sh warez
01:14:32 <Phantom_Hoover> !warez
01:14:39 <Phantom_Hoover> !warez hello world
01:14:39 <EgoBot> h3lLo worl|)
01:14:41 <Lymee> !sh cat warez
01:14:42 <EgoBot> ​/bin/cat: warez: No such file or directory
01:14:47 <Lymee> !sh where warez
01:14:47 <EgoBot> ​/tmp/input.16017: line 1: where: command not found
01:14:51 <pikhq> !sh cat `which warez`
01:14:51 <EgoBot> ​ELF...
01:14:53 <Phantom_Hoover> *clap clap clap*
01:14:57 <Lymee> !sh which warez
01:14:58 <EgoBot> ​/usr/bin/warez
01:15:10 <Lymee> !sh cat /usr/bin/warez | paste
01:15:10 <EgoBot> ​ELF...
01:15:15 <Phantom_Hoover> ...
01:15:21 <Phantom_Hoover> !sh which paste
01:15:21 <EgoBot> ​/usr/bin/paste
01:15:40 <Lymee> !sh cat /usr/bin/warez 2>&1 | paste
01:15:41 <EgoBot> ​ELF...
01:15:41 <oerjan> it's HackEgo which does that pasting stuff
01:15:44 <pikhq> Lymee: man paste por favor.
01:15:51 <Lymee> !sh man paste
01:15:52 <EgoBot> ​/usr/bin/man: can't open the manpath configuration file /etc/manpath.config
01:15:54 <Lymee> NOPE
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:29 <Lymee> opps
01:16:40 <Lymee> um.
01:16:40 <Phantom_Hoover> !sh sprunge
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:51 <Phantom_Hoover> !ls
01:16:59 <Lymee> !paste cat /usr/bin/warez
01:17:11 <Phantom_Hoover> curl -F 'sprunge=<-' http://sprunge.us
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:30 <Lymee> You lie.
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:48 <Lymee> ;,
01:17:49 <Lymee> ;,
01:17:51 <Lymee> :<
01:17:54 <Phantom_Hoover> !sh pwd
01:17:54 <EgoBot> ​/home/egobot/egobot.hg/multibot_cmds
01:18:01 <Phantom_Hoover> !sh ls -l
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:15 <Lymee> What.
01:18:24 <Lymee> `run cat /usr/bin/warez > warez
01:18:26 <HackEgo> No output.
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:48 <Lymee> `paste warez
01:18:50 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.6501
01:19:02 <Phantom_Hoover> `run which paste
01:19:03 <HackEgo> ​/tmp/hackenv.17049/bin/paste
01:19:24 <Phantom_Hoover> !sh ls /tmp
01:19:25 <EgoBot> input.17146
01:19:55 <Phantom_Hoover> Dammit, I kind of hoped they both ran in the same environment.
01:20:12 <Phantom_Hoover> Anyway.
01:20:16 * Phantom_Hoover → sleep
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:04:58 <elliott> Gregor: ?
02:12:17 <oerjan> elliott: EgoBot's !userinterps list keeps overflowing
02:13:31 <monqy> !userinterps
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:13:34 <monqy> :(
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:32 <EgoBot> de best utiwity
02:15:50 <monqy> !ehird what does this one do
02:15:51 <EgoBot> wut does this one do
02:15:56 <monqy> clever
02:16:02 <oerjan> !show ehird
02:16:02 <EgoBot> sh funetak
02:16:10 <oerjan> !show fudd
02:16:10 <EgoBot> sh fudd
02:16:13 <oerjan> !show elmer
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 <monqy> !show eehird
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:17:36 <monqy> hm
02:17:40 <monqy> mh too
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 <oerjan> !delinterp eehird
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 <oerjan> !eehird let's see now
02:19:43 <monqy> !eehird Does it work now?
02:20:02 <oerjan> type errors galore
02:20:25 <oerjan> that thing probably never worked in the first place
02:21:14 <oerjan> !delinterp eehird
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:21:34 <oerjan> !eehird now then?
02:21:39 <EgoBot> ​<ehird> now then
02:22:02 <oerjan> hm ugly second line
02:23:50 <elliott> wat
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:24:53 <EgoBot> ​<ehird> like
02:24:59 <oerjan> indeed
02:25:05 <oerjan> !delinterp eehird
02:25:05 <EgoBot> ​Interpreter eehird deleted.
02:25:05 * elliott gets his gun.
02:25:26 <oerjan> you cannot do that with EgoBot anyhow
02:25:48 <oerjan> !userinterps
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:29:43 <oerjan> you don't say
02:30:08 <monqy> http://esolangs.org/wiki/Special:Contributions/46.21.144.51 a good person
02:31:48 <oerjan> oh hm
02:31:53 <oerjan> !show ustemp
02:31:53 <EgoBot> haskell (print . (+32) . ((9/5)*) . read) =<< getLine
02:32:03 <oerjan> !show sanetemp
02:32:04 <EgoBot> sh dc -e "1k?32-5*9/p"
02:32:09 <oerjan> !show insanetempt
02:32:09 <EgoBot> That is not a user interpreter!
02:32:10 <oerjan> !show insanetemp
02:32:11 <EgoBot> sh dc -e "1k?9*5/32+p"
02:32:20 <oerjan> !ustemp 13
02:32:23 <EgoBot> 55.400000000000006
02:32:31 <oerjan> !insanetemp 13
02:32:31 <EgoBot> 55.4
02:32:36 <oerjan> !delinterp ustemp
02:32:36 <EgoBot> ​Interpreter ustemp deleted.
02:32:46 <oerjan> !userinterps
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 <monqy> !show yodawg
02:32:59 <EgoBot> unlambda (sending via DCC)
02:33:35 <monqy> nice
02:34:13 -!- azaq23 has joined.
02:36:46 <Gregor> Elizacat: *eh*, it's a User: page
02:37:40 <Elizacat> WHO DARETH PING ME
02:37:49 <Gregor> Errrgh
02:37:53 <Elizacat> Gregor, I will eat your soul
02:37:55 <Gregor> Elizacat: You 'el' people
02:37:58 <Gregor> All the same.
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:07 <Elizacat> I am not a troll :)
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:01 <oerjan> wtf :P
02:39:14 <elliott> oerjan: hi
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:41:54 <elliott> oerjan: ElizaTheGreat?
02:42:00 <oerjan> elliott: whoosh
02:42:46 <Elizacat> <elliott> Elizacat: can't you just be cateliza or something
02:42:48 <Elizacat> no
02:42:49 <Elizacat> I can't
02:43:01 <Elizacat> I'm capitalised. I'm more important.
02:43:12 <elliott> catEliza
02:43:19 <monqy> i was just about to say
02:43:22 <Elizacat> cat_eliza
02:43:27 <Elizacat> :(
02:43:29 <Elizacat> if I were to do that
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:50 <Elizacat> does it matter why I'm here
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:19 <Elizacat> I'm standing up
02:44:20 <Elizacat> not squatting
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:45:20 <Elizacat> :p
02:46:16 <Elizacat> monqy, confused? good, good...
02:46:17 <Elizacat> :p
02:46:28 <elliott> Elizacat: wrong channel, and I'm also an mcmap developer, so just tell me.
02:46:29 <monqy> confused?
02:46:37 <Elizacat> :p
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:05 <Elizacat> no shit
02:47:05 <Elizacat> I mean
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:47:26 <monqy> ok
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:20 <pikhq> Erm, fairly.
02:48:21 <monqy> im children
02:48:25 -!- augur has quit (Remote host closed the connection).
02:48:38 <elliott> pikhq: It is?
02:48:40 <elliott> Maybe from you
02:48:44 <Elizacat> monqy, watch out for elliott he seems to linger 501 feet outside a playground a lot...
02:48:44 <Elizacat> :p
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:03 <elliott> i'm an orphan now
02:49:04 <Elizacat> they had it coming
02:49:08 <elliott> that's why i linger outside the playground
02:49:09 <elliott> because
02:49:10 <pikhq> Existent, even.
02:49:11 <elliott> nobody will accept me
02:49:12 <elliott> :'(
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:00 <Elizacat> anyways
02:50:03 <Elizacat> sorry for not talking enough
02:50:08 <Elizacat> I don't believe in talking unless I really have something to say
02:50:09 <Elizacat> haha
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:52 <Elizacat> but I'm not sure
02:50:56 <Elizacat> it segfaults in different places each time
02:50:57 <Elizacat> *segfaults
02:51:17 <elliott> Using latest git commit? (Vorpal's update patch is OK; it touches none of that stuff.)
02:51:24 <Elizacat> yes
02:51:30 <Elizacat> same version Vorpal does.
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:41 <Elizacat> I don't know why
02:51:44 <Elizacat> it's 100% reproduceable
02:51:50 <Elizacat> I just can't pinpoint why
02:51:56 <elliott> What the heck does //regen do? That's not an mcmap command
02:51:59 <elliott> Or wait, WorldEdit
02:52:08 <Elizacat> worldedit yes
02:52:08 <elliott> Someone needs to tell WorldEdit to stop stealing our command prefix back in time
02:52:22 <Elizacat> I'll go tell sk89q
02:52:27 <elliott> THX
02:52:32 <elliott> I'll get Lymee to as well
02:52:35 <elliott> Can't fail
02:52:52 <Lymee> Use ///
02:52:56 <Lymee> Or >///<
02:53:08 <elliott> /////////////////////
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:00 <oerjan> oh hm
02:55:09 <elliott> Elizacat: Well that's not helpful :P
02:55:12 <Elizacat> yeah
02:55:13 <Elizacat> :p
02:55:17 <Elizacat> this bt is not helpful at all
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:55:50 <elliott> Elizacat: make debug=1
02:55:54 <elliott> Then build-debug/mcmap
02:57:11 <Elizacat> http://pastebin.com/M12qLcrr
02:57:55 <elliott> That's more helpful
02:57:57 <Elizacat> hmm
02:57:59 <Elizacat> memcpy
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);
02:58:13 <elliott> Line in question
02:58:14 <Elizacat> that looks suspect
02:58:15 <elliott> Snap
02:58:34 <elliott> Hmm
03:00:54 <elliott> c = 0x73a730
03:00:57 <elliott> Helpful, gdb, helpful
03:02:00 <elliott> z = 10016
03:02:01 <elliott> x = 10000
03:02:06 <elliott> Those look kind of suspect, unless you actually are that far out
03:03:01 <Elizacat> I am
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:30 <Elizacat> >
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:40 <elliott> Hmmmmmm
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:11:50 <Elizacat> those are fine
03:11:58 <elliott> Yeah
03:11:58 <elliott> Hmm
03:12:02 <Elizacat> elliott, it's the chunk beneath me
03:12:04 <Elizacat> the offset is correct
03:12:07 <elliott> Right
03:12:07 <Elizacat> elliott, yupds is not correct
03:12:12 <elliott> Indeed :)
03:12:29 <Elizacat> I don't know what the fuck jint is though
03:12:33 <elliott> Elizacat: java int
03:12:35 <elliott> it's just thirty-two bit int
03:12:36 <Elizacat> ah.
03:12:37 <Elizacat> :p
03:12:38 <elliott> jint yupds = ys;
03:12:39 <elliott> if (y0 > CHUNK_YSIZE)
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:39 <elliott> yupds = CHUNK_YSIZE - y0;
03:12:41 <elliott> hmm
03:12:46 <elliott> well CHUNK_YSIZE obviously isn't wrong
03:12:55 <elliott> so... y0 must be 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:22 <Elizacat> here are some samples :)
03:13:30 <elliott> Right
03:13:34 <elliott> So y0 is zero every time
03:13:41 <elliott> Elizacat: Can you print ys too?
03:13:54 <elliott> I have a suspicion that
03:13:55 <elliott> else if (y0 + ys > CHUNK_YSIZE)
03:13:55 <elliott> is false
03:13:59 <elliott> so yupds is just getting set to ys
03:14:00 <elliott> which is negative
03:14:20 <Elizacat> what's ys though
03:14:28 <elliott> God knows
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:23 <Elizacat> hmmmmmm.
03:16:31 -!- augur has joined.
03:16:32 <Elizacat> something looks suspect here
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:18:54 <Elizacat> AHA
03:18:55 <Elizacat> it's size
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:11 <elliott> Lymee: I blame you
03:19:14 <Elizacat> http://mc.kev009.com/Protocol#Map_Chunk_.280x33.29
03:19:30 <elliott> Hmm
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:19:57 <elliott> chunk
03:20:04 <elliott> In which case we can detect WorldEdit's invalid value and set it to the entire chunk size
03:21:31 <Elizacat> hmm
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:03 <elliott> :P
03:22:38 -!- azaq231 has joined.
03:22:52 <Elizacat> 23:22:41 [DEBUG] sx sy sz 16 -126 16
03:23:09 <Elizacat> then crash
03:23:10 <Elizacat> so
03:23:11 <Elizacat> hm
03:23:11 <Elizacat> yeah
03:23:14 -!- azaq23 has quit (Ping timeout: 240 seconds).
03:23:16 <Elizacat> it's sending invalid sizes.
03:23:33 <elliott> if (sy < 0) { log_print("sk89q sucks"); sy = 127; }
03:23:39 <elliott> Official patch :-P
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:11 <Elizacat> it just clobbers it
03:27:15 <Elizacat> I don't know what the official notch client does
03:27:26 <elliott> Clobbers it how?
03:27:30 <Elizacat> like
03:27:33 <Elizacat> the chunk looks all fucked up
03:27:36 <Elizacat> on the map
03:27:39 <Elizacat> after regen
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:29:08 <Elizacat> hmm still trashed
03:29:10 <Elizacat> yeah it doesn't help
03:29:16 <elliott> Yeah, just drop it
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:04 <Elizacat> s/server/client/
03:35:08 <Elizacat> I mean
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:38:50 <Elizacat> hmm
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:40 <Elizacat> :p
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:17 <elliott> I never addressed you :)
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:41:47 <Elizacat> even if yes, it blows
03:41:50 <Elizacat> :(
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:27 <Elizacat> ZOMG
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:12 <Elizacat> :p
03:45:20 <Elizacat> I'm neither of those, though you wouldn't know by how well I'm kept
03:45:20 <Elizacat> lol
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:05 <Elizacat> :p
03:46:32 <Elizacat> elliott, I'm no functional language monkey
03:46:37 <elliott> I am :D
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:08 * Elizacat mumbles
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:47:35 <ais523> elliott: I don't know
03:47:36 <Elizacat> physicists :p
03:48:07 <Elizacat> I thought about doing CS
03:48:09 <Sgeo> elliott, *cough*
03:48:10 <Elizacat> but honestly
03:48:11 <elliott> You can't to be in #esoteric without your taste in languages mercilessly deconstructed >:)
03:48:12 <Elizacat> modern CS is crap
03:48:17 <elliott> Sgeo: Whu
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:32 <Elizacat> I would just shoot myself
03:48:33 <Elizacat> so I went to bio
03:48:34 <elliott> Vinyl all the way, baby
03:48:37 <Elizacat> and I have never regretted it :)
03:48:39 <Sgeo> I'm a bit of a Python fan >.>
03:48:45 * elliott one true CS gangsta
03:48:46 <Elizacat> Sgeo, o/\o
03:48:58 <elliott> Sgeo: Quiet the adults are talking.
03:49:00 * Elizacat hifive, bro/sisfist etc.
03:49:49 <monqy> hey is this a lajgauage war
03:50:09 <elliott> yes its 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:32 <Elizacat> I misread "lajgauge"
03:50:33 <Elizacat> :p
03:50:52 <Elizacat> (seriously don't ask >.<)
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:08 <Elizacat> haha
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:35 <Elizacat> :p
03:51:38 <monqy> im a functional lajgauge monkey too. a functional lajgauge monqy.
03:51:50 * Elizacat gives monqy banans
03:51:53 <elliott> fucantoinsal
03:51:58 <elliott> fuacnoiewatsdjkslfghv
03:52:02 <Elizacat> I'm just gonna leave that accidental typo :p
03:52:04 <elliott> fuck no IE wat sdjkslfghv
03:52:10 <elliott> a biography
03:52:26 <Elizacat> <elliott> fucantoinsal
03:52:29 <Elizacat> run for US president
03:52:30 <Elizacat> you'll win
03:52:35 <Elizacat> they elected bush 1 1/2 times
03:52:53 <Elizacat> I mean with words like that
03:53:03 <pikhq> He's not a native citizen.
03:53:09 <Elizacat> we can fix that
03:53:11 * Elizacat gets a pen
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:34 * Elizacat has friend write
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:48 <elliott> i cant be president :(
03:53:53 <elliott> obambmb must be rely old
03:53:54 <pikhq> He'll have to follow Schwarzenneger.
03:54:25 <Elizacat> the governator?
03:54:35 <pikhq> Yeah.
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:54:42 <Elizacat> I mean hi
03:54:43 <Elizacat> :p
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:22 <Elizacat> pikhq, :D
03:55:26 <Elizacat> pikhq, yeah :p
03:55:27 <elliott> NOOOoooooOOOOOoooOOOOoooOOOooOOOOOOooooooo its on hold
03:55:31 * Elizacat is US expat
03:55:34 <elliott> im going to cry myself to death and punch everyone in here to death
03:55:39 <elliott> you all ruined the world
03:55:40 <Elizacat> that's hot
03:55:43 * pikhq is US citizen & resident
03:55:44 <Elizacat> me first
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:55:57 <elliott> literally suicide forever
03:55:59 <elliott> ->
03:56:02 <Elizacat> pikhq, I left the US for political reasons :p
03:56:11 <Elizacat> see also: left
03:56:11 <Elizacat> :p
03:56:16 <Elizacat> first two words sum it up :D
03:56:17 <elliott> i left the us because i had teleported there by way of pure impossible quantum
03:56:36 <elliott> pureimpossiblequnatbm.com
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:56:54 <Elizacat> well they have the LHC
03:56:54 <monqy> :'(
03:56:56 <pikhq> Good guess, BTW.
03:57:00 <elliott> elliott isn't a very scandinavian name is it
03:57:03 <Elizacat> pikhq, yeah
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:13 <Elizacat> she is like
03:57:19 <Elizacat> "it's a girl's name I'm telling you"
03:57:21 <Elizacat> I am like
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:06 <oerjan> vorpal olson
03:58:08 <elliott> your friend edits wikipedia
03:58:23 <Elizacat> elliott, Vorpal's real name is not Vorpal obv :p
03:58:28 <elliott> yes it is
03:58:31 <oerjan> *GASP*
03:58:31 <Elizacat> elliott, I'm not telling his real name! I know it though.
03:58:32 <Elizacat> :)
03:58:37 <elliott> so does everyone else
03:58:40 <Elizacat> elliott, let's just say his name is very swedish
03:58:43 <elliott> An "Arvid" Master "Norlander"
03:58:46 <elliott> "Vorpal"
03:58:48 <Elizacat> ahh :P
03:58:49 <Elizacat> AnMaster
03:58:51 <Elizacat> you knew him
03:58:51 <elliott> that's his full name
03:58:52 <Elizacat> haha
03:58:56 <elliott> An "Arvid" Master "Norlander" "Vorpal"
03:58:56 <Elizacat> AnMaster always bugged me
03:58:58 <Elizacat> I always wanted to say
03:58:59 <Elizacat> AMaster
03:59:00 <elliott> Elizacat: i brought him here >_>
03:59:00 <Elizacat> :p
03:59:02 <elliott> (INADVERTENTLY)
03:59:08 <Elizacat> elliott, I'll bring YOU here if you get my drift
03:59:11 <Elizacat> (except not really)
03:59:20 <elliott> i dont want a drift its nice and warm in here..........
03:59:26 <Elizacat> that's a draft
03:59:28 <Elizacat> not a drift
03:59:31 <elliott> oh..............
03:59:35 <elliott> :(
03:59:48 <monqy> its too warm in here
03:59:50 <monqy> drift please
03:59:59 * Elizacat turns down the thermostat
04:00:04 <elliott> Elizacat: give monqy some drift so he can catch it
04:00:07 <Elizacat> "0K"
04:00:09 <Elizacat> seems cold enough to me
04:00:29 <elliott> im all the kelvins
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:42 <oerjan> the coolvins
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:11 <Elizacat> yes
04:01:12 <elliott> cease and desist cease and desist
04:01:13 <Elizacat> exactly
04:01:14 <pikhq> "And the 'left-wing' isn't."
04:01:17 <Elizacat> pikhq, also the country is going to shit.
04:01:21 <elliott> also cease and desist
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:17 <elliott> oerjan: ok
04:02:23 <Elizacat> pikhq, everyone blames the black dude for it
04:02:26 <Elizacat> pikhq, stupid morons
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:44 <Elizacat> well, yes.
04:02:46 <Elizacat> reagan started it
04:02:46 <elliott> I'm remarkably coherent today!
04:02:49 <Elizacat> bush really put the nail in the coffin
04:02:51 <Elizacat> obama isn't helping
04:02:59 <Elizacat> so yeah :D
04:03:02 <Elizacat> makes me glad I'm not there
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:33 <Elizacat> I almost typed pubicly speak
04:03:35 <Elizacat> and then I realised
04:03:38 <monqy> I'll have to stay in usa for a few more years at least. this upsets me.
04:03:40 <Elizacat> that would be accurate too
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:29 <elliott> it is.... mystery of ages
04:04:31 <Elizacat> and it's better that they did
04:04:35 <elliott> let us pray now to zepto /pray
04:04:36 <Elizacat> but the cold war bullshit
04:04:38 <Elizacat> yeah
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:35 <elliott> oerjan: oh
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:44 <elliott> oerjan: makes sense
04:05:47 <Elizacat> pikhq, yeah
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:14 <elliott> clangton
04:06:16 <elliott> he was a clanger
04:06:17 <elliott> (secretly)
04:06:21 <Elizacat> although
04:06:27 <quintopia> oh god dmca :(
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:31 <Elizacat> I mean
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:35 <Elizacat> how is it anyone's business
04:06:38 <Elizacat> I go out and give a blowjob
04:06:40 <Elizacat> I don't fucking make the news
04:06:45 <Elizacat> when the president gets one, the one who did it does!
04:06:46 <quintopia> Elizacat: slow news month
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:12 <Elizacat> quintopia, haha
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:36 <monqy> sexism
04:07:37 <monqy> sexism
04:07:37 <monqy> sexism
04:07:42 <Elizacat> "boyfriend: I did not have sexual relations with that woman"
04:07:43 <Elizacat> :P
04:07:44 <elliott> zepting
04:08:01 <Elizacat> pikhq, they are
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:41 <Elizacat> do they expect change?
04:08:43 <Elizacat> quintopia, haha
04:08:44 <Elizacat> quintopia, awesome
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:32 <Elizacat> pikhq, essentially yes
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:09:56 <Elizacat> although
04:09:58 <Elizacat> I kinda fear
04:10:01 <Elizacat> what they would actually vote for...
04:10:04 <Elizacat> probably libertarian
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:03 <elliott> who is Arkanhell27
04:11:05 <elliott> are they a ghost
04:11:09 <monqy> hi Arkanhell27
04:11:26 <quintopia> welfare abuse doesnt happen *much* here. it's very low level compared to where it once was
04:11:34 <Elizacat> yaeh
04:11:35 <Elizacat> *yeah
04:11:37 <Elizacat> audits fix that
04:11:39 <Elizacat> :)
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:47 <Elizacat> pikhq, yeah
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:16 <Arkanhell27> hi
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:35 <Elizacat> *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:25 <elliott> that's my contribution
04:13:26 <elliott> also monqy's
04:13:30 <monqy> mine too
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:48 <oerjan> ^ul ((zepto )S:^):^
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:14:53 * Elizacat gives monqy a scone
04:14:53 <monqy> a good guy, sorry
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:40 <Elizacat> quintopia, haha
04:15:41 <Elizacat> :P
04:15:45 <pikhq> *Hahahahah*.
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:52 <Elizacat> in front of us
04:15:54 <Elizacat> I mean
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:05 <elliott> pagans are hilarious
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:15 <Elizacat> elliott, I said ex pagan
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:27 <quintopia> Elizacat: half? hahahahahahaha
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:41 <Elizacat> :P
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:15 <Elizacat> yeah
04:18:17 <elliott> monqy: so ante-zepto...
04:18:26 <Elizacat> <elliott> does any pagan not grow out of the whole pagan phase when they're fifteen
04:18:33 <pikhq> We are *screwed*.
04:18:43 <Elizacat> elliott, my boyfriend is wiccan for certain values of wiccan so...
04:18:44 <Elizacat> :p
04:18:52 <Elizacat> elliott, not that it matters to me as I'm not a bigot
04:18:59 <elliott> so he's fourteen? ;D
04:19:03 <Elizacat> elliott, he's 24
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:18 <elliott> s
04:19:34 <Elizacat> it's more the philosophy he's into than the actual pagan nature itself
04:19:35 <Elizacat> but I mean
04:19:39 <Elizacat> who cares what someone else's religion is :D
04:19:40 <Elizacat> I mean
04:19:43 <Elizacat> that's why I left the US
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:51 <Elizacat> and politically ok right now
04:20:57 <Elizacat> it's not great or shitting unicorns, but it's ok
04:20:57 <elliott> monqy: literally nothing
04:21:01 <Elizacat> relative to the rest of the UK at least
04:21:04 <Elizacat> pikhq, yeah
04:21:16 <Elizacat> pikhq, and nordic union :D
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:34 <Elizacat> but
04:21:35 <Elizacat> I mean
04:21:42 <monqy> whats politics
04:21:44 <Elizacat> what do you expect with a country with less than 400k people...
04:21:45 <Elizacat> :p
04:21:49 <monqy> : my opinion
04:21:55 <elliott> Elizacat: monaco's economy isn't too bad i gather
04:21:55 * Elizacat gives monqy another scone
04:22:10 <Elizacat> elliott, if you're a rich hipster it's a great plcae to live
04:22:11 <Elizacat> *place
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:32 <Elizacat> :p
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:22:56 <elliott> bah :P
04:23:23 <Elizacat> oh
04:23:24 <Elizacat> 35k
04:23:25 <Elizacat> but
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:28 <elliott> ha
04:23:29 <Elizacat> so this means
04:23:34 <Elizacat> you will be living with a bunch of rich assholes
04:23:35 <Elizacat> sounds nice.
04:23:38 <Elizacat> except not really
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:24:32 <pikhq> elliott: You lie.
04:24:35 <elliott> :(
04:25:04 <monqy> is RWS any good
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:29:57 <Elizacat> :p
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:31:56 <Elizacat> ais523, won't that cost money
04:32:02 <oerjan> yes.
04:32:10 <Elizacat> see
04:32:14 <Elizacat> :(
04:32:19 <ais523> indeed, :(
04:32:25 <Elizacat> I could steal them
04:32:29 -!- ralc has quit (Read error: Connection reset by peer).
04:32:29 <Elizacat> er
04:32:31 <Elizacat> s/them/some of it/
04:32:47 <elliott> oerjan: how to avoid ST's additional type argument, a short guide:
04:32:49 <elliott> - use IO instead
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:33:39 <ais523> elliott: no
04:33:57 <elliott> Agda is very slow :)
04:34:16 <elliott> runGen :: Gen a -> IO a
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:38 * Elizacat ducks
04:34:50 <elliott> it's #everyoneinhere
04:34:53 <ais523> Elizacat: well, we look at existing languages to inspire our own
04:35:00 <Elizacat> noddle :p
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:21 <elliott> move
04:36:21 <elliott> :: (R inp1 a1,
04:36:21 <elliott> R inp2 a2,
04:36:21 <elliott> R inp a,
04:36:21 <elliott> RW out2 a2,
04:36:22 <elliott> RW out a,
04:36:23 <Elizacat> monqy, you said you look at gay sex I was asking for what kind
04:36:24 <elliott> RW out1 a1) =>
04:36:26 <elliott> (out, out1, out2) -> (inp, inp1, inp2) -> Gen ()
04:36:28 <elliott> good types
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:01 <Elizacat> ah
04:37:03 <Elizacat> that's hot
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:22 <elliott> []
04:38:25 <Elizacat> that neatly describes it
04:38:25 <elliott> yay, i broke the type system
04:38:27 <Elizacat> elliott, we're ot vim
04:38:28 <Elizacat> *we're not
04:38:29 <Elizacat> :p
04:38:36 <elliott> Elizacat: emacs
04:38:36 <Elizacat> elliott, or $EDITOR
04:38:37 <Elizacat> :p
04:38:42 <Elizacat> elliott, we're not $EDITOR
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:39:51 <Elizacat> I will end you
04:39:56 <Elizacat> exit(0);
04:39:57 <Elizacat> like so
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:09 <Elizacat> god's sake
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:41:53 <Elizacat> just a hollow victory
04:41:59 <ais523> heh
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:24 <Elizacat> I do like esolangs tho :p
04:43:29 <monqy> do you like
04:43:31 <monqy> functional
04:43:32 <monqy> esolangs
04:43:39 <Elizacat> no :p
04:43:47 <Elizacat> I counter with "I am not a maths major"
04:43:49 <Elizacat> :P
04:43:49 <elliott> funny, python feels more like bondage and discipline
04:43:51 <elliott> to me
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:06 <Elizacat> that's kind of funny :p
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:19 <Elizacat> just noting
04:44:24 <elliott> ah. folds? yes. Guido doesn't want you to use that.
04:44:25 <Elizacat> er
04:44:28 <Elizacat> s/esolang/functional langs/
04:44:30 -!- skewness has quit (Ping timeout: 240 seconds).
04:44:34 <elliott> :t forM
04:44:35 <lambdabot> forall a (m :: * -> *) b. (Monad m) => [a] -> (a -> m b) -> m [b]
04:44:44 <elliott> scheme has for-each too
04:44:44 <Elizacat> I said a lot, not all :P
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:07 <Elizacat> as I said
04:45:08 <elliott> underload has no for
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:15 <Elizacat> :)
04:45:20 <monqy> p.s. for sucks
04:45:24 <Elizacat> see
04:45:25 <Elizacat> :p
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 <monqy> oh newlisp
04:46:47 <Elizacat> outside of CS academia I'm afraid!
04:46:50 <Elizacat> although I like lisp :x
04:46:52 <Elizacat> I'm weird
04:46:58 <monqy> what lisp
04:46:59 <Elizacat> well, somewhat like lisp
04:47:02 <Elizacat> well
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:25 <monqy> everything wrong
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:02 <Elizacat> well
04:50:03 <monqy> maybe I should have been a mathematics major
04:50:09 <Elizacat> I remember what I heard once
04:50:16 <Elizacat> CS is just the post-Turing decline in formal systems theory
04:50:17 <Elizacat> :)
04:50:24 <monqy> :'(
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:50:42 <Elizacat> haha
04:51:14 <Elizacat> anyways
04:51:19 <Elizacat> my boyfriend is calling
04:51:21 <Elizacat> ta ta :)
04:51:43 <pikhq> Later.
04:51:49 <Elizacat> just be thankful I'm not like my bf
04:51:52 <Elizacat> he likes logo
04:51:52 <Elizacat> :(
04:51:57 <Elizacat> he likes turtle graphics :/
04:52:01 <elliott> logo is cool
04:52:02 <elliott> it's like scheme
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:09 <pikhq> :)
04:52:18 <elliott> pikhq: logo is fixed-arity but close enough
04:52:19 <Elizacat> :P
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:45 <Elizacat> monqy, look at goatse
04:53:50 <Elizacat> monqy, you'll be even more so
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:53:57 <monqy> look
04:53:57 <monqy> at
04:53:58 <monqy> goatse
04:54:05 <Elizacat> you're not hip
04:54:24 <Elizacat> elliott, sorry it's both an art and science, it transcends both
04:54:32 <elliott> lol
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:54:48 <monqy> im shcoekd
04:54:50 <monqy> ofyneded
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:09 <Elizacat> :p
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:55:41 <monqy> hi
04:55:51 <derrik> amazing
04:56:03 <itidus20> it's a fine line
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:00 <itidus20> "what is" vs "what if"
04:57:04 -!- skewness has changed nick to variants.
04:57:25 <monqy> hi again
04:57:44 <elliott> oh, hey, I need Data.Generics
04:57:46 <elliott> ummm, I think
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:51 <Elizacat> gah
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:14 <Elizacat> <3
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:30 <Elizacat> just noting
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:58:55 <Elizacat> iff eh?
04:58:58 <Elizacat> if and only if?
04:59:01 <elliott> yes.
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:18 <Elizacat> :)
04:59:24 <monqy> do forgs feal pain.......
04:59:28 <Elizacat> they do, alas.
04:59:30 <pikhq> Unlike physics, where you pretty much *need* to spend your career on it to get a notable result.
04:59:33 <Elizacat> well
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
04:59:47 <monqy> an open question
04:59:50 <Elizacat> *stimulus
04:59:55 <elliott> monqy: no, frogs are cats
05:00:02 <Elizacat> but nobody really knows if it is "suffering" in the sense humans or mammals have it
05:00:04 <elliott> TRUE FACTS
05:00:08 <Elizacat> their brains are quite small
05:00:15 <Elizacat> so who knows
05:00:27 <elliott> class Struct a where
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:28 <elliott> I think this is it??????
05:00:30 <elliott> monqy help
05:00:33 <monqy> uhhhhhhhhhh
05:00:34 <elliott> my project is exploding under its own complexity
05:00:43 <Elizacat> hey it's called a pastebin
05:00:44 <Elizacat> :P
05:00:47 <monqy> nope
05:00:51 <elliott> Elizacat: it was three lines
05:00:57 <monqy> elliott: what does this mean????
05:01:02 <elliott> monqy: I DONT KNOW;W
05:01:06 <monqy> ;_;
05:01:09 <Elizacat> give monqy another scone
05:01:10 <Elizacat> :p
05:01:14 <monqy> im stufed
05:01:20 <elliott> stp;dufed
05:02:03 <Elizacat> ah bloody hell, AIM imploded
05:02:04 <Elizacat> again
05:02:14 <monqy> rest in peace
05:02:21 <elliott> rip aim
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:26 <elliott> dead on arival
05:02:30 <oklopol> i did it for sucks
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 <ais523> plus GNU
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:07 <elliott> ais523: yep
05:03:39 <pikhq> ais523: Yes.
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:50 <elliott> ais523: haha
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:27 <elliott> oh, it's echo
05:05:29 <elliott> ais523: not sure
05:05:33 <elliott> printf is probably the thing to use
05:05:52 <oerjan> ^echo here
05:05:52 <fungot> here here
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:35 <pikhq> Uh, uuencode.
05:06:55 <pikhq> ... No, not commonly in Busybox. :/
05:07:02 <pikhq> No, wait, yes it is. Right there.
05:07:03 <pikhq> :)
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:07:59 <ais523> elliott: heh
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:30 <ais523> pikhq: I'm not sure
05:08:31 <elliott> oklopol: broken?
05:08:41 <ais523> in the end I wrote a script that translated things to a series of printfs
05:08:46 <Sgeo> Hmm
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:20 <elliott> oerjan: :D
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:10:58 <oklopol> (*notable)
05:11:16 <elliott> oerjan: doesn't sequence (repeat newIORef) work
05:11:18 <elliott> oh, strict
05:11:20 <oerjan> or wait actually you don't even need recursive do for that
05:11:31 <elliott> ?ty replicateM_
05:11:32 <lambdabot> forall (m :: * -> *) a. (Monad m) => Int -> m a -> m ()
05:11:36 <elliott> ?ty replicateM
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:48 <elliott> ?hoogle replicateM
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:12:56 <oklopol> elliott: broken?
05:12:57 <elliott> (maybe)
05:13:01 <elliott> oklopol: soul
05:13:10 <oklopol> ah
05:13:13 <elliott> Redsynth/Test.hs:54:10:
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:16 <elliott> :(
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:24 <elliott> oh
05:13:53 <oklopol> INSTEAD I SHALL JUST FAIL IN A SIMPLER FIELD
05:14:23 <elliott> oerjan: i know
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:01 <elliott> readVar is Var a -> Gen a
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:17 <elliott> oh hmm...
05:16:24 <elliott> ais523: i share your maybe-not-pain
05:16:36 <elliott> oh duh
05:16:48 <oerjan> elliott: i don't see anything wrong...
05:16:56 <elliott> oerjan: wrong type :)
05:17:00 <elliott> in my typeclass, i mean
05:17:05 <oerjan> ah
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:44 <lambdabot> liftM2 (>>) f readMut =<< newMut
05:18:47 <elliott> gross
05:18:53 <ais523> oklopol: don't you have a girlfriend?
05:18:58 <oklopol> oh wow
05:19:01 <oklopol> no i don't
05:19:21 <ais523> hmm, I must be confused
05:19:28 <elliott> he used to, but then he un-got a girlfriend
05:19:35 <elliott> explanations w/ elliott
05:22:29 <oklopol> maybe i could ask the biology chick out for casual sex tho
05:24:55 <oklopol> hahaha time vultures
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:25:30 <elliott> not good
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:04 <elliott> indeed
05:28:09 <elliott> well
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:17 <ais523> Sgeo: I'm not sure
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:22 <Elizacat> oklopol, I'm not hot myself
05:28:23 <ais523> it's intended to be usable
05:28:23 <elliott> just like in coq
05:28:24 <Elizacat> oklopol, I'm just ordinary
05:28:27 <elliott> Axiom yay : forall a, a.
05:28:28 <Lymee> @pl-resume
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:08 <Elizacat> :(
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:31 <Elizacat> :(
05:29:38 <Elizacat> it is like
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:06 <elliott> ais523: but
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:19 * Lymee runs
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:21 <Lymee> :<
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:49 <ais523> then use it
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:40 <pikhq> The V5 one.
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:35:57 <elliott> early morning kills 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:21 <elliott> he's a code farmer!
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:19 <elliott> my body sucks :(
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:37:50 <elliott> the life o/ elliott
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:39:58 <elliott> Well, sacred
05:40:01 <elliott> "scared"
05:40:02 <elliott> I dunno what term to use
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:01 <elliott> itidus20: citation needed
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:26 <elliott> :D
05:44:30 <elliott> best game
05:44:32 <ais523> *Missingno.
05:44:34 <elliott> /thing/whatever
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:23 <itidus20> its kind of ironic
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:51:55 <itidus20> lol but ok lol
05:52:03 <itidus20> hahahaha
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:49 <itidus20> i'll click it soon..
05:52:56 -!- paskill has joined.
05:52:58 <itidus20> but yeha.. this has been on my mind for a while.
05:53:09 <pikhq> I love the patch.
05:53:12 <elliott> paskill: hello
05:53:13 <ais523> so do I
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:53:44 <paskill> good morning
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:33 <elliott> it
05:55:38 <ais523> and the problem happens when they get out of sync
05:55:46 <itidus20> well its not "entirely" a bug
05:56:24 <itidus20> but most modern games i think will just say "somethings wrong lets abort"
05:56:32 <itidus20> maybe im wrong here
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:07 <ais523> umm, inconsistency
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:42 <pikhq> Aaaah.
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:41 <itidus20> i mean japanese
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:01:47 <itidus20> sorry.... not concentrating
06:02:01 <pikhq> itidus20: Could you write that in kanji?
06:02:07 <itidus20> no
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:26 <itidus20> yeah.. ura waza
06:02:35 <pikhq> Ah, looked it up.
06:02:42 <pikhq> 裏技
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:23 <coppro> ais523: Pokemon games
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:17 <itidus20> ok
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:49 <pikhq> *Aaah*.
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:40 <ais523> )
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:05:57 <itidus20> especially re: nintendo
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:27 <pikhq> Yeah.
06:06:43 <itidus20> but back in japan means different things than back in english
06:06:48 <coppro> oh man golden sun
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:23 <itidus20> i wouldn't go that far
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:16:02 <itidus20> no
06:16:23 <itidus20> :-s
06:16:42 <Sgeo> Hmm?
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:33 <itidus20> of "ura waza"
06:20:58 <elliott> atehwa: heh; any relation to fizzie, Deewiant?
06:21:01 <elliott> oh wait
06:21:09 <atehwa> can check
06:21:10 <elliott> aalto is a different thing isn't it...
06:21:25 <elliott> you wacky finns. and your universities
06:21:34 <atehwa> :P
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:19 <elliott> (ais523)
06:22:40 <atehwa> ok
06:22:56 <elliott> atehwa: I will say that Underload is one of the most interesting esolangs since
06:23:01 <elliott> also BCT
06:23:11 <elliott> see esolangs.org/wiki
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:16 <cheater_> ...
06:33:17 <Deewiant> The Befunges are probably worth mentioning due to seeing most "real-world" use
06:33:20 <Deewiant> ^source
06:33:20 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
06:33:22 <Deewiant> Etc.
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:00 <cheater_> abiword?
06:36:05 <cheater_> are we still in the 90s?
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:51:33 <coppro> divorce case?
06:52:28 <Sgeo> No
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:19 <atehwa> yes, I did. :)
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:04:55 <atehwa> in 2002, I think
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:05 <atehwa> (e(nd?)?)*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:40 <atehwa> *reinventing
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:15 <itidus20> i reckon it would be popular
07:40:33 <itidus20> ^interesting
07:40:37 <atehwa> I hope it will :)
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:42:36 <Deewiant> Oh, okay
07:43:01 <Deewiant> (yes I'm lagged)
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.
07:48:05 <Taneb> Hello!
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:02 <lifthrasiir> hi Taneb
08:02:14 -!- copumpkin has joined.
08:02:19 <lifthrasiir> i'm now working on something like this: http://codepad.org/DI3V1Tcb
08:02:47 <Taneb> Nice
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:49:53 <fizzie> Yes.
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:21 <Deewiant> I... don't hear that.
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:23 <atehwa> :D
08:55:29 <atehwa> lol @ you guys
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:05 <lifthrasiir> yes that is.
10:40:31 <lifthrasiir> that is a behavior of the instruction 3 in Numberwang, plotted for one subcase out of nine.
10:40:52 <atehwa> \o/
10:40:52 <myndzi> |
10:40:52 <myndzi> |\
10:40:59 <lifthrasiir> |/
10:41:00 <lifthrasiir> |
10:41:04 <lifthrasiir> /o\
10:41:05 <myndzi> |
10:41:05 <myndzi> /'\
10:44:42 -!- pingveno has joined.
10:48:03 -!- FireFly has joined.
11:35:21 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
11:35:26 <cheater_> HELP!! THAT MAN HAS NO HEAD!!
11:48:34 -!- Phantom_Hoover has joined.
11:58:42 -!- boily has joined.
12:06:47 <Phantom_Hoover> > 1563 / 251
12:06:48 <lambdabot> 6.227091633466135
12:06:48 <lambdabot> Phantom_Hoover: You have 15 new messages. '/msg lambdabot @messages' to read them.
12:07:37 <Phantom_Hoover> Dammit elliott.
12:10:19 <atehwa> !bfjoust test_ish >>>>>>>++[>>[-]<-]
12:10:27 <EgoBot> ​Score for atehwa_test_ish: 10.0
12:10:59 <atehwa> tadaaa
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:20:54 <Slereah> heheh
12:20:55 <Slereah> 69
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:23:37 <Deewiant> (Or read)
12:24:10 <Deewiant> Oh, but you only move 7 at the start, fair enough
12:24:13 <Deewiant> My bad
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:25 <Deewiant> Yeah, I was confusing myself
12:24:28 <atehwa> ok
12:24:50 <atehwa> !bfjoust test_ish (>)*7(>>[-.]<-)*22>[[-]<+++]
12:24:52 <EgoBot> ​Score for atehwa_test_ish: 10.5
12:24:58 <CakeProphet> Did I miss anything good?
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:08 <Phantom_Hoover> <lambdabot> Plugin `tell' failed with: thread killed
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:27:04 <Phantom_Hoover> They're like the exact opposite things.
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:28:41 <Phantom_Hoover> Clearly this means we should all jump ship.
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:34:52 <atehwa> true.
12:35:15 <atehwa> another take...
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:21 <Deewiant> 115 is still a lot
12:36:27 <CakeProphet> still wayy too much time spent making decoys.
12:36:29 <Deewiant> Make it less than 20
12:37:24 <atehwa> Deewiant: but if the flag reaches zero during (-)*x, it won't even stay down for two cycles?
12:37:33 <Deewiant> True
12:37:57 <Deewiant> What you should really do is have that be (+)*x where x is smalish
12:37:59 <Deewiant> smallsih*
12:38:01 <Deewiant> smallish*
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:38 <atehwa> that I can believe.
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 <Deewiant> Using different signs helps
12:40:09 <CakeProphet> since the polarities flip on half of the matchups.
12:40:16 <CakeProphet> oh, yes, ina single program
12:40:19 <atehwa> of course, I can see if this decoy-thinking helps
12:40:20 <CakeProphet> switching the sign is good.
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:40:48 <Deewiant> CakeProphet: That
12:40:52 <CakeProphet> yes, that. quite helpful.
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:43:23 <atehwa> :)
12:43:23 <CakeProphet> *declarative
12:43:25 <CakeProphet> that would be interesting.
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:54 <Deewiant> atehwa: That's a syntax error
12:44:57 <atehwa> but really, (+)*10[-] is a different idea than (-)*110[-]
12:44:59 <Deewiant> Which is why it lost so much
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:46:16 <Deewiant> Yep
12:47:13 <atehwa> !bfjoust test_blah (>)*9([++++([-{[(-)*110[-]]}])%8>)*20[-]
12:47:15 <EgoBot> ​Score for atehwa_test_blah: 0.0
12:48:02 <Deewiant> ([+++ the [ isn't closed
12:48:11 <atehwa> !bfjoust test_blah (>)*9([++++([-{[(-)*110[-]}])%8]>)*20[-]
12:48:14 <EgoBot> ​Score for atehwa_test_blah: 0.0
12:48:21 <atehwa> jeez
12:48:23 <Vorpal> Deewiant, doesn't )*20 close it?
12:48:43 <Deewiant> No
12:48:50 <Vorpal> what does that close then
12:49:02 <Vorpal> oh wait the ] isn't matched
12:49:03 <Vorpal> right
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:40 <atehwa> yes.
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:51:33 <atehwa> it all goes in cycles
12:51:36 <Deewiant> Yep
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:54 <CakeProphet> !bfjoust shudder (++-)*100000
12:55:59 <EgoBot> ​Score for CakeProphet_shudder: 15.3
12:56:02 <CakeProphet> heh.
12:56:05 <atehwa> :D
12:56:12 <Deewiant> That's an old classic
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:08:30 <atehwa> I'm not surprised. :/
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:56 <CakeProphet> !bfjoust suicide <
13:18:59 <EgoBot> ​Score for CakeProphet_suicide: 0.0
13:19:12 <CakeProphet> fasted losing program.
13:19:12 <atehwa> It could, if it's for statistically few enough cases.
13:19:14 <CakeProphet> *fastest
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:21 <Deewiant> A bit better.
13:20:24 <Deewiant> !bfjoust foo <
13:20:27 <EgoBot> ​Score for Deewiant_foo: 0.0
13:20:45 <Deewiant> CakeProphet: Yeah, see waterfall3
13:21:11 <Taneb> bfjoust?
13:21:22 <Deewiant> http://www.esolangs.org/wiki/BF_Joust
13:22:41 <Taneb> Interesting
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:31 <Deewiant> Why babble
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:34 <tswett> Of course it does.
13:47:38 <tswett> Pitää.
13:47:53 <tswett> See, that was a real word.
13:47:56 <tswett> I'm improving.
13:48:11 <tswett> Maa. Kotimaa.
13:48:22 <CakeProphet> mmm palindromes.
13:48:39 <tswett> Äatipitää.
13:48:39 <CakeProphet> I am quite satisfied with this palindrome generator thing I wrote a few days ago.
13:49:13 <Deewiant> "Äati" is a no-go
13:49:37 <oklopol> i'm sure it was a typo
13:54:48 -!- quintopia has quit (Remote host closed the connection).
13:58:09 <CakeProphet> @src scanl
13:58:10 <lambdabot> scanl f q ls = q : case ls of
13:58:10 <lambdabot> [] -> []
13:58:10 <lambdabot> x:xs -> scanl f (f q x) xs
13:58:54 <CakeProphet> isn't it also map (foldl f q) (inits ls)
14:01:00 <Deewiant> @check \q xs -> scanl subtract q xs == map (foldl subtract q) (inits xs)
14:01:00 <lambdabot> "OK, passed 500 tests."
14:01:21 -!- copumpkin has quit (Ping timeout: 246 seconds).
14:01:45 -!- copumpkin has joined.
14:08:07 <CakeProphet> > concat . inits $ [0..]
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:08:39 <CakeProphet> > sum . concat . inits $ [0..10]
14:08:42 <lambdabot> 220
14:09:08 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:09:27 <CakeProphet> > zipWith (*) [0..10] (reverse [10..0])
14:09:28 <lambdabot> []
14:09:54 <CakeProphet> > sum $ zipWith (*) [0..10] (reverse [0..10])
14:09:55 <lambdabot> 165
14:10:11 <CakeProphet> > sum $ zipWith (*) [1..10] (reverse [1..10])
14:10:12 <lambdabot> 220
14:11:17 <CakeProphet> > map length $ inits [0..10]
14:11:18 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11]
14:12:24 <CakeProphet> > iterate (map length . inits) [0..1]
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:19 <CakeProphet> > iterate (map length . inits) [0..]
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:41:19 <CakeProphet> it was apparently second at one point.
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:03:22 <Deewiant> That much is true
15:04:20 -!- cheater_ has joined.
15:05:00 <tswett> What does . do in bfjoust?
15:05:36 <Taneb> noop
15:05:36 <Deewiant> nop
15:05:44 <Deewiant> noöp
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:33 <Taneb> e
15:11:56 <Taneb> I may have been higher on the highscore list
15:14:15 <CakeProphet> > [0..] >>= (`replicateM` "<>[]+-.")
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:25 <CakeProphet> > sum . map (7^) $ [0..1000]
15:16:27 <lambdabot> 146213274662667137112548063777985657385914925426115053337407750877446569570...
15:16:35 <CakeProphet> yeah that shouldn't take very long.
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:10 <CakeProphet> > sum . map (6^) $ [0..1000]
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:20:49 <CakeProphet> *interesting
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:22:20 <CakeProphet> )
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:53:50 <tswett> Serafina Pekkala.
17:58:46 <augur> halp
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:04:32 <augur> oic
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:28 <fizzie> Not me, tswett.
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:16:12 <Taneb> brb
18:22:57 -!- elliott has joined.
18:23:11 <Taneb> Hello
18:23:13 <elliott> hi
18:23:13 <lambdabot> elliott: You have 6 new messages. '/msg lambdabot @messages' to read them.
18:23:17 <elliott> wow
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:24:18 <Taneb> Fair enough
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:14: <monqy> no
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:36 <elliott> yeah
19:24:40 <elliott> note how there's no closing quote in error (error "wat")
19:25:14 <Lymee> So...
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:25:48 <lambdabot> against inferred type ...
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:29 <elliott> because
19:26:33 <elliott> fix :: (a -> a) -> a
19:26:37 <elliott> error :: String -> a
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:03 <Lymee> I see.
19:27:04 <Lymee> Makes sense
19:27:20 <elliott> > let evilValue = fix error `seq` False in True || evilValue
19:27:22 <lambdabot> True
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:27 <elliott> :)
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:31:14 <Lymee> I'm aware.
19:33:45 <Lymee> :t fix
19:33:46 <lambdabot> forall a. (a -> a) -> a
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:41:53 <Elizacat> hey now
19:41:58 <Elizacat> I'm a polymath
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:10 <Elizacat> it's just not my life
19:42:21 <Elizacat> besides I find most hard CS people are really just closet lambda calculus nerds
19:42:23 <Elizacat> no offense :P
19:43:16 <elliott> yep, you don't understand functional programming so all CS is just \calculus nerding, reasonable conclusion to make
19:45:43 <monqy> this again?
19:45:58 <elliott> apparently
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:47:58 <elliott> no that's goto and print
19:48:18 <oerjan> goto isn't high-level
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:07 <Elizacat> I'm only half serious
19:52:12 <oerjan> that code has no line breaks in my browser :(
19:52:15 <Elizacat> trust nobody but me
19:52:20 <Elizacat> taking me seriously may be hazardous to your health
19:52:26 <Elizacat> harmful or fatal of swallowed
19:52:35 <Elizacat> if you have an erection lasting more than four hours seek immediate medical help
19:52:43 <Elizacat> all very sound advice.
19:52:46 <oerjan> elliott: that already is a bit of syntactic sugar, you have equations and multiletter identifiers :P
19:53:16 <elliott> oerjan: well ok :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:54:45 <oerjan> ok
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:55:44 <elliott> de-sugaring is trivial
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:57:55 <monqy> now im cyring
19:58:10 <elliott> do you ever not cry
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:13 <elliott> well, actually
20:05:15 <elliott> that's just fix
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:09:28 <oerjan> or does it
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:16:34 <elliott> pretty
20:20:27 <oerjan> > fix (\t f -> t (\a b -> f (1:b) (1:zipWith (+) a b))) (\a b -> a)
20:20:43 <lambdabot> thread killed
20:20:52 <oerjan> that did not seem to work very well :P
20:21:06 <oerjan> but it did type
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:30 <oerjan> hmph
20:21:32 <oerjan> lessee
20:21:35 <Elizacat> http://i.imgur.com/GXlwe.jpg
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:13 <lambdabot> thread killed
20:22:32 <Elizacat> they're researchers :P
20:22:33 <oerjan> elliott: i guess that becomes an infinite loop instead :(
20:22:35 <Elizacat> (I think)
20:22:38 <elliott> oerjan: rip :(
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:53 <Elizacat> :p
20:22:59 <elliott> oerjan: isn't that necessarily an infinite loop
20:23:12 <oerjan> oh hm right
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:25:16 <oerjan> hm...
20:35:56 <oerjan> elliott: i think the problem is that the obvious church representation of tuples isn't actually lazy...
20:36:20 <elliott> um isn't it?
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:34 <oerjan> *evaluating
20:37:38 <elliott> hm right
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:38:47 <oerjan> lessee
20:39:30 <oerjan> oh hm
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:33 <lambdabot> mueval-core: Time limit exceeded
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:43 <lambdabot> [1,1,2,3]
20:42:45 <oerjan> yay
20:42:58 <oerjan> still slow as molasses :P
20:43:42 <oerjan> and not as pretty any longer
20:45:39 <oerjan> well...
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:46:53 <lambdabot> [1,1,2,3]
20:51:38 <oerjan> <fizzie> atehwa: Didn't you run the mailing list?
20:51:40 <oerjan> ooh right
20:51:44 * oerjan waves
20:52:06 <elliott> :O
20:52:11 <elliott> sup atehwa
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:52:48 <elliott> yeah, this is very true
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:11 <itidus20> they can jump straight to phd
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:09 <itidus20> lol
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:33 <elliott> Thue suxxxe
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:56:00 <oerjan> ah
20:56:24 <itidus20> im very serious
20:56:44 <itidus20> hehehehe
20:56:45 <monqy> :)
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:08 <itidus20> hmm
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:08 <itidus20> bit of both
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:37 <elliott> sup ais523
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:50 <itidus20> the rest of it is a joke
20:59:51 <elliott> it's that it's like comparing php to scheme
20:59:52 <elliott> ais523: wut
20:59:56 <ais523> which I've been working on for 5 days noe
20:59:58 <ais523> *now
21:00:02 <elliott> what is that?
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 <monqy> pvp pvp
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:30 <elliott> ais523: haha
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:53 <monqy> rewrite nethack
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:02:52 <itidus20> it's a fallacy
21:03:03 <elliott> Multiplayer Doesn't Work in roguelikes in any naive way
21:03:04 <elliott> Oh wait
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:09 <elliott> Unless you just mean like
21:03:12 <elliott> Hmm
21:03:13 <elliott> No
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:04:58 <ais523> and cooperative only
21:05:07 <elliott> So lame :P
21:06:00 <elliott> 13:04:32: <cheater_> in advance to all apple fanboys: stfu
21:06:01 <elliott> /ahem
21:06:08 <elliott> HEY GUYS DID YOU HEAR ABOUT THE NEW APPLE PRODUCTS
21:06:08 <elliott> GUYS
21:06:09 <elliott> GUYS
21:06:10 <elliott> NEW APPLE PRODUCTS
21:06:10 <elliott> GUYS
21:06:11 <elliott> GUYS
21:06:12 <elliott> cheater_
21:06:16 <elliott> THEY CAME OUT WITH NEW APPLE PRODUCTS
21:06:17 <elliott> hi guys
21:06:32 <monqy> hi elliott
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:06:54 <itidus20> genetic engineered apples?
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:12 <elliott> I demand a free upgrade
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:09:54 <monqy> how many kidney
21:10:30 -!- copumpkin has quit (Ping timeout: 258 seconds).
21:10:39 <elliott> 9 kidney
21:10:41 <monqy> also I don't understand tablets what's so good about them
21:10:43 <monqy> am i unhip
21:10:57 <elliott> yes ur hip bone
21:10:57 <itidus20> it's marketing
21:11:05 <monqy> by tablets I mean the gimmicky touchscreen computers
21:11:17 -!- Taneb has joined.
21:11:23 <oerjan> thanks. also, whoosh.
21:11:25 <elliott> well, mice kind of suck. direct touch is one answer to that.
21:11:30 <Taneb> Hello again
21:11:34 <elliott> and at least the ipad doesn't have a (visible) filesytem.
21:11:34 <oerjan> wrong window
21:11:36 <elliott> filesystem
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:44 <ais523> *keyboards
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:20:42 <monqy> bad trend
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 <monqy> no
21:21:30 <elliott> It would be nice if GUI buttons gave actual feedback, for intsance
21:21:31 <elliott> instance
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:53 <elliott> haha
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:18 <ais523> fizzie: indeed
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:27:56 <elliott> fizzie:
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:30 <elliott> ah
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:42:52 <elliott> its all a conspiracy man
21:43:30 <itidus20> and keyboards are cheap
21:43:42 <itidus20> and as far as computers go they're a commodity
21:43:54 <itidus20> they're fairly perfect
21:44:12 <itidus20> except for being out and about
21:45:53 <itidus20> depends what the kb is for
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:08 <elliott> the ONLY THING
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:50:53 <ais523> *typing
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:42 <itidus20> hm
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:52:37 <oerjan> ah
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:32 <ais523> pikhq: indeed
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:49 <pikhq> elliott: Quite.
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:15 <pikhq> itidus20: No.
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:28 <itidus20> pikhq: i lost myself there
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:48 <elliott> surely wii, not gamecube
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:05 <elliott> right
21:59:06 <elliott> :P
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:27 <coppro> No, it's true
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:00 <atehwa> oerjan: ok
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:19 <coppro> Sgeo_: ... leave
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:31 <ais523> fair enough
22:05:40 <itidus20> my pc is sub-commodity
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:43 <ais523> hmm
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:34 <elliott> or complete nonsense
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:24 <atehwa> well, sounds familiar
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:29 <elliott> Feather is mythology :-P
22:21:34 <ais523> heh
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:14 <tswett> ais523: a bit, yes.
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 <ais523> IIRC it does
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:51 <tswett> ais523: ah.
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:41:47 * tswett nods.
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:37 <oklopol> also it always gives a 1
22:44:50 <Lymee> unsafePerformIO :: IO a -> a < um
22:44:52 <elliott> oerjan: oh right [] is while not if :D
22:44:59 <elliott> Lymee: keyword "unsafe"
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:19 <oerjan> *their
22:46:31 <oerjan> but it has been used for many more evil things
22:46:42 <Lymee> Obfuscation?
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:49:51 <tswett> Oh, and that, too.
22:49:51 <Lymee> Aww.
22:49:56 <ais523> *Z 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:50:32 <oerjan> also it's putStrLn
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:41 <EgoBot> 1
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:53:37 <tswett> Or is it...
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:54:51 <EgoBot> teehee
22:55:03 <oerjan> oh hm
22:55:08 <oerjan> !haskell import System.IO.Unsafe; main = print $ snd (1,unsafePerformIO $ putStr "teehee")
22:55:12 <EgoBot> 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:39 <EgoBot> ​""
22:59:42 <elliott> heh
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:04:02 <ais523> oh, I see
23:07:22 <oerjan> elliott: that was weird hm
23:07:30 <elliott> ?
23:07:33 <elliott> oh
23:07:42 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: String)
23:07:47 <EgoBot> ​""
23:07:54 <oerjan> and repeatable too...
23:08:21 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: [Maybe Bool])
23:08:25 <EgoBot> ​[]
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:09:57 <EgoBot> Nothing
23:10:17 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (Nothing :: Maybe Bool) :: String)
23:10:22 <EgoBot> ​""
23:10:43 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (Nothing :: Maybe Bool) :: Int) -- >:)
23:10:48 <EgoBot> 1113251472
23:10:58 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (Nothing :: Maybe Bool) :: Int) -- >:)
23:11:03 <EgoBot> 1107496592
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:20 <elliott> oh right
23:11:23 <elliott> it probably means "first constructor"
23:11:24 <elliott> i.e. []
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:34 <oerjan> yeah
23:11:59 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either () Bool)
23:12:03 <EgoBot> Left ()
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:16 <EgoBot> Left ()
23:12:29 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either Bool Ordering)
23:12:34 <EgoBot> Left True
23:12:40 <oerjan> !haskell import Unsafe.Coerce; main = print (unsafeCoerce (99::Int) :: Either Bool Ordering)
23:12:45 <EgoBot> Left True
23:15:15 <elliott> oerjan: Ordering? :D
23:15:45 <oerjan> > [minBound..maxBound :: Ordering]
23:15:47 <lambdabot> [LT,EQ,GT]
23:17:25 <oerjan> > zipWith compare [2, 4..20] [10..20]
23:17:26 <lambdabot> [LT,LT,LT,LT,LT,LT,LT,LT,EQ,GT]
23:17:42 <oerjan> um
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:19:32 <lambdabot> "edagirb nikpmup"
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:03 <lambdabot> "pmprin buikdage"
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:22:48 <lambdabot> "epmpgaduirikn b"
23:24:20 <oerjan> your case can be replaced with toEnum btw
23:25:09 <tswett> Oh, true.
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:25:44 <lambdabot> "adkn beuiripmpg"
23:49:32 <tswett> !haskell import System.IO.Unsafe; main = print $ snd (1,unsafePerformIO . sequence . replicate 3 $ putStrLn "teehee")
23:49:36 <EgoBot> teehee
23:51:38 <oerjan> there's a reason i changed it to putStr :)
23:51:52 <oerjan> also
23:51:59 <oerjan> @src replicateM
23:52:00 <lambdabot> replicateM n x = sequence (replicate n x)
2011-07-21
00:00:02 <tswett> Ooh.
00:00:09 <tswett> @src replicateM_
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:08 <lambdabot> mueval-core: Time limit exceeded
00:01:15 <oerjan> wtf
00:01:42 <oerjan> > let f m n = error $ show m ++ ' ' : show n in sortBy f [1..10]
00:01:45 <lambdabot> *Exception: 1 2
00:02:02 <oerjan> > let f 1 2 = LT; f m n = error $ show m ++ ' ' : show n in sortBy f [1..10]
00:02:05 <lambdabot> *Exception: 3 4
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:01 <lambdabot> *Exception: 1 3
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:16 <lambdabot> *Exception: 5 6
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:00 <lambdabot> *Exception: 7 8
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:04:30 <lambdabot> *Exception: 1 5
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:11:16 <lambdabot> "adn becoucoripmpgki"
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 <copumpkin> oerjan: I see
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:38:34 <tswett> > error (error "yo")
00:38:36 <lambdabot> *Exception: yo
00:41:14 <tswett> Today, Anki expects me to recall 51 Finnish words and learn an additional 20.
00:41:17 <tswett> I am screwed. :P
00:41:31 <monqy> > error $! error "yo"
00:41:32 <lambdabot> *Exception: yo
00:41:58 <monqy> oops
00:42:14 <oerjan> > error undefined
00:42:16 <lambdabot> *Exception: *Exception: Prelude.undefined
00:42:21 <monqy> that's a good one
00:42:33 <itidus20> tama mika on? se on bussi
00:42:43 <oerjan> i wonder why error (error "yo") doesn't give two...
00:43:02 <oerjan> > error $ ' ':error "yo"
00:43:03 <lambdabot> *Exception: *Exception: yo
00:43:11 <itidus20> thats my finnish vocab. i believe it means "what is that? that is bus"
00:43:22 <oerjan> > error $ error "yo"
00:43:23 <lambdabot> *Exception: *Exception: yo
00:43:24 <monqy> > fix (error .) "yo"
00:43:25 <itidus20> or something similar
00:43:26 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E...
00:43:27 <oerjan> wat
00:43:46 <monqy> > error (error "yo")
00:43:47 <lambdabot> *Exception: yo
00:43:56 <oerjan> clearly this is something subtle...
00:44:08 <monqy> @src ($)
00:44:08 <lambdabot> f $ x = f x
00:44:17 <oerjan> > error (error (error "yo"))
00:44:19 <lambdabot> *Exception: 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:20 <copumpkin> ?
00:46:23 <copumpkin> I just got disconnected
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:48 <lambdabot> *Exception: yo
00:46:53 <monqy> > error $ error "yo"
00:46:54 <lambdabot> *Exception: *Exception: 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:10 <elliott> Isn't ($) lazy?
00:47:16 <shachaf> > error `id` error "foo"
00:47:16 <copumpkin> I can't remember why it is, but I think there was discussion about it on haskell-cafe
00:47:17 <lambdabot> *Exception: *Exception: foo
00:47:21 <copumpkin> it's some sort of bug somewhere
00:47:38 <shachaf> > id error (error "foo")
00:47:39 <lambdabot> *Exception: *Exception: foo
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:47:46 <shachaf> > error (error "foo")
00:47:47 <lambdabot> *Exception: foo
00:48:02 <shachaf> > (let x = error in x) (error "foo")
00:48:03 <lambdabot> *Exception: foo
00:48:13 <shachaf> > (let x = error in x `seq` x) (error "foo")
00:48:14 <lambdabot> *Exception: foo
00:48:19 <shachaf> > (let x = error in id x) (error "foo")
00:48:20 <lambdabot> *Exception: *Exception: foo
00:48:26 <shachaf> Exciting.
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:00 <shachaf> Makes sense, I guess.
00:55:22 <oerjan> "But in version (B),
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:55:30 <shachaf> > id error (error "foo")
00:55:31 <lambdabot> *Exception: *Exception: foo
00:55:33 <shachaf> > error (error "foo")
00:55:34 <lambdabot> *Exception: foo
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:56:14 <oerjan> "
00:58:01 <coppro> -funroll-loops
00:59:17 <pikhq> -funroll-all-loops
00:59:33 <oerjan> -funroll-in-the-hay
01:10:57 <tswett> soittaa
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:48:52 <monqy> is there context
01:59:27 -!- cheater__ has joined.
02:02:52 -!- cheater_ has quit (Ping timeout: 240 seconds).
02:04:52 <elliott> monqy: minecraft
02:04:56 <elliott> also technically a jok
02:04:57 <elliott> e
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:41:10 <itidus20> close enough :>
02:41:32 <oklopol> certainly
02:41:43 <itidus20> wahahaha
02:42:26 <oklopol> certainly understandable
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:45:39 <oklopol> erm
02:45:54 <oklopol> oh haskell
02:46:04 <oklopol> not finnish
02:46:05 <oklopol> ...
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:20 <oklopol> but okay haskell
02:46:22 <oklopol> then i'll just ask
02:46:27 <oklopol> why the fuck is everyone learning it?
02:46:45 <itidus20> the reasons should be obvious
02:46:53 <oerjan> oklopol: on beesti languagi
02:47:10 <oklopol> xD
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:48:42 <lambdabot> "fst!"
02:48:53 <itidus20> whoa.. slow down
02:48:56 <itidus20> >.<
02:49:01 * oerjan cackles evilly
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:49:59 <itidus20> ((1,a),"foo"). -- which i did
02:50:17 <itidus20> lol.. rocket science
02:50:19 <oklopol> snd . fst
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:51:30 <itidus20> so that is a deep concern
02:51:43 <itidus20> ^s/referencing/showing
02:51:47 <oerjan> ah.
02:51:59 <itidus20> gulp
02:52:21 <itidus20> but is probably safe
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:53:33 <lambdabot> "fst!"
02:53:41 <oerjan> better? :)
02:55:35 <oklopol> wurk ->
02:55:36 <itidus20> i see
02:56:55 <itidus20> > snd(snd (1,(2,3)))
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:56:56 <lambdabot> 3
02:57:14 * oerjan swats oklopol -----###
02:57:20 <itidus20> oklo: im not listening.. :P im not taking the combinatrics approach
02:57:36 <oklopol> i
02:57:36 <oklopol> err
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:31 <oklopol> wait
02:58:33 <oklopol> you totally got that.
02:58:37 <oerjan> yes i do.
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
02:59:46 <oerjan> ah.
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:00:48 <oklopol> :D
03:00:53 <oklopol> okay i really have to
03:01:32 <itidus20> > prtStrLn "bye"
03:01:33 <lambdabot> Not in scope: `prtStrLn'
03:01:39 <itidus20> ok sweet
03:01:58 <itidus20> :-s
03:02:00 <oerjan> itidus20: lambdabot only does expression printing, not output functions
03:02:06 <itidus20> cool
03:02:10 <oerjan> you might try EgoBot instead
03:02:17 <oerjan> !haskell putStrLn "bye"
03:02:19 <EgoBot> bye
03:02:38 <oerjan> on the other hand, lambdabot has many more functions imported by default
03:02:40 <itidus20> so i got hugs
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:16 <itidus20> (im weird)
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:43 <oerjan> er what
03:11:56 <oerjan> i though you said player to wins on 01 and 10
03:11:59 <oerjan> *two
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:21 <itidus20> none
03:13:24 <itidus20> as far as i know
03:13:27 <elliott> i was asking oerjan :P
03:13:33 <itidus20> oh haha ok
03:13:44 <oerjan> elliott: well he was pointing out he couldn't make finnish ä, i think
03:13:56 <itidus20> cut and pastes:
03:14:00 <itidus20> hehe
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:23:34 <oerjan> hm wait
03:23:52 <itidus20> hehe
03:24:10 <oerjan> there may not be any way in this game of making it > 50% for any option
03:24:18 <itidus20> its simple enough
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:43 <oerjan> i think
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:27:24 <itidus20> its surely something trivial
03:29:44 <itidus20> blah.
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:30:54 <itidus20> thanks
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:07:56 <canaima17242> holaa
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:00 <quintopia> ah yeah
05:43:06 <quintopia> thats not that difficult
05:43:35 <pikhq> Still. Fuck.
05:43:43 <quintopia> happens around volcanos especially
05:43:53 <quintopia> ever watched dantes peak?
05:44:17 <pikhq> No.
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:45:41 <pikhq> Ijen.
05:45:45 <pikhq> pH of 0.5.
05:48:13 <quintopia> ew mining sulfur by hand
05:48:27 <quintopia> nobody needs that job
05:48:51 <pikhq> And even less so sans gas mask.
05:50:13 <quintopia> under no conditions
05:52:56 <pikhq> There's different levels of "fuck no", though.
05:53:32 <quintopia> sure
05:53:35 <quintopia> fine
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:08 <quintopia> what are we waiting for?
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:46 <quintopia> pretty sure i'm not a dick :)
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:07:23 <quintopia> haha
06:07:41 <pikhq> (fuck you, Bush.)
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:01 <pikhq> Also fuck Reagan.
06:09:03 <pikhq> He started it.
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:11:08 <quintopia> who are you talking to zzo38?
06:12:07 <zzo38> You, in case you are on this channel.
06:13:06 -!- oerjan has quit (Quit: Good night).
06:13:07 <quintopia> oh
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:48:56 <Taneb> Morning!
06:49:26 <zzo38> The other way is to convert the images used in MSE directly to GF format for the specified resolutions.
06:49:39 <itidus20> > sqrt 3.14159
06:49:41 <lambdabot> 1.7724531023414978
06:50:59 <itidus20> > sqrt -3.14159
06:51:01 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
06:51:01 <lambdabot> arising from a use of `...
06:52:01 <itidus20> orosu
06:52:14 <fizzie> > sqrt (-pi)
06:52:15 <lambdabot> NaN
06:52:19 <itidus20> woot
06:52:23 <fizzie> There you have the floating-point version.
06:52:28 <itidus20> thanks
06:52:49 <elliott> <itidus20> > sqrt -3.14159
06:52:50 <elliott> need parens
06:52:53 <elliott> around the negative number
06:52:59 <itidus20> nods
06:53:20 <pikhq> Otherwise it's (-) sqrt 3.14159, which is of course a type error.
06:53:37 <itidus20> ahh
06:53:45 <itidus20> hmm
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:18 <pikhq> :)
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:56:32 <itidus20> hummm
06:56:37 <itidus20> don't mind me
06:57:56 <fizzie> > sqrt $ (-pi) :+ 0
06:57:57 <lambdabot> 0.0 :+ 1.7724538509055159
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
06:59:46 <itidus20> you mean sqrt (-pi) ?
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:24 <itidus20> and all such nonsense
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:44 <lambdabot> False
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:48 <lambdabot> Ambiguous occurrence `magnitude'
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:03:26 <lambdabot> 3.8473413874435795e-16
07:04:32 <fizzie> (Wonder what the other sort of magnitude is.)
07:04:59 <pikhq> > mkPolar pi pi
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:12 <pikhq> Seems so obvious.
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:56 <fizzie> > pi * (cis pi)
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:03 <pikhq> Your point?
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:38 <Scientits> what are immediate expressions?
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:03 <itidus20> heheh
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:48 <Scientits> I am from the internets
07:23:53 <itidus20> sory
07:23:58 <elliott> Scientits: btw this channel is about programming
07:24:15 <itidus20> i dun really wanan know
07:25:25 <itidus20> where i live its also called maths though
07:29:14 -!- Scientits has left ("Leaving").
07:30:04 <itidus20> eek what did i do
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:34:07 <itidus20> it's bizzare
07:35:38 <elliott> itidus20: it was me
07:35:46 <elliott> everyone thinks this is an esoterica channel.
07:36:40 <itidus20> is it?
07:43:44 <elliott> no
07:45:21 <itidus20> @die 1d6
07:45:22 <lambdabot> 1d6 => 3
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:05 <elliott> nahhhh
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:03 <itidus20> humm
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:55:51 <elliott> pikhq: [asterisk]like
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
07:58:48 <itidus20> and.. just wrong
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:49:04 <elliott> sounds waveformy
08:49:30 <augur> it does
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:50:59 <elliott> what is it meant to be
08:51:01 <elliott> a e i o u?
08:51:22 <augur> "a i o"
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:26:39 <itidus20> i was going somewhere with it
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:32:40 <itidus20> ]]]]]]]]]]]]]]]]]]]]]
11:32:45 <itidus20> oops
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:36:40 <NihilistDandy> YES
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:19:19 <CakeProphet> they disagreed.
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:25:50 <CakeProphet> as in, not an exception? it segfaulted?
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:26:44 <CakeProphet> no I think you give them too much credit.
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:28:50 <CakeProphet> being that dumb, that is.
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:18 <oklopol> and it's perfectly normal
12:31:29 <CakeProphet> fizzie: I kid you not.
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:39 <quintopia> it definitely has nerves
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:24 <CakeProphet> my heart feels meaty.
12:34:29 <oklopol> well why would it
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:27 <elliott> err..............
12:35:36 <elliott> NihilistDandy: My, aren't I quotable today.
12:35:46 <NihilistDandy> Indeed
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:38:19 <CakeProphet> unintelligent design.
12:39:01 <quintopia> i think with my liver
12:42:02 <itidus20> i more or less accept that we exist as a kind of mysterious tradeoff
12:42:20 <oklopol> me too
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:01 <itidus20> well.. self and other
12:43:08 <itidus20> theres no real divide between self and other
12:43:13 <itidus20> the mind just approximates it
12:43:38 <itidus20> just guessing
12:44:25 <oklopol> yep black and white, real and unreal, yin and yang, lemme get my crystal ball
12:44:43 <oklopol> i should sleap
12:44:49 <Taneb> Like, is my left hand part of me?
12:44:52 <Taneb> Is my sock?
12:45:00 <Taneb> Is this sofa I'm sitting on?
12:45:04 <Taneb> Is my brain?
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:40 <oklopol> *in
12:45:49 <itidus20> but it helps to remember that not knowing is not knowing
12:45:50 <oklopol> brain yes
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:47:58 <CakeProphet> I suppose you have to jizz on your jizz
12:48:59 <Taneb> So... God has jizzed on everything?
12:49:12 <oklopol> have you even READ the bible?
12:49:37 <Taneb> Tried to once.
12:49:42 <Taneb> Couldn't get into it.
12:49:43 <oklopol> me too
12:49:48 <oklopol> me neither
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:52:21 <elliott> oklopol: so rude to sun
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:29 <oklopol> got a problem with that?
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:57:50 <oklopol> well how would i know
12:57:55 <oklopol> i can't actually see 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:08:40 <Taneb> Fixed it
13:09:08 <tswett> Nälkä, eikä oo ruokaa.
13:12:24 <tswett> ...Myös.
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:18:53 <Taneb> It's inefficient
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:13 <tswett> ¡Soy guante!
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:22:41 <tswett> ¡No, soy dos guantes!
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:25:54 <CakeProphet> Taneb: yes, sum
13:26:02 <Taneb> Ooh, that's handy
13:26:04 <CakeProphet> builtin function I believe.
13:26:09 <Taneb> Even handier
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:54 <CakeProphet> haven't used it in quite a while.
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:23 <CakeProphet> not that it's... difficult to master.
13:27:53 <CakeProphet> are you familiar with generator comprehensions?
13:27:59 <CakeProphet> or, whatever they're called...
13:28:15 <Taneb> Not especially
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:41 <elliott> Well that sucks
13:31:46 <elliott> It'll be in itertools somewhere
13:31:51 <CakeProphet> it wouldn't be very efficient anyways.
13:32:01 <CakeProphet> compared to reversed(list)
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:13 <CakeProphet> well, yeah.
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:35 <CakeProphet> ...yes, what you said.
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:40:47 <CakeProphet> ... C-to-Python ratio, actually.
13:40:58 <CakeProphet> er, not, since it's runtime.
13:42:13 <CakeProphet> my main complaint with Python is that it has poor functional programming support in libraries and syntax.
13:42:48 <tswett> Bäck.
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:45:43 <CakeProphet> *f(a,b,c)
13:46:50 <CakeProphet> @curriable \n def func(a,b,c): ...
13:46:50 <lambdabot> Unknown command, try @list
13:47:40 <CakeProphet> ophet(+i)] [4:Freenode/#esoteric(+cn)] [Act: 3,5,6]
13:47:45 <CakeProphet> ...?
13:47:56 <CakeProphet> hand must have slipped and did something weird.
13:48:24 <CakeProphet> Taneb: ^^^ do this stuff
13:48:36 <CakeProphet> it would be a func and pretty easy little module
13:48:42 <CakeProphet> lol *fun
13:49:13 <Taneb> What am I tryinh?
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:51:39 <CakeProphet> *borrow
13:51:52 <CakeProphet> ..have I lost you?
13:51:59 <Taneb> Slightly
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:53:47 <Taneb> Okay
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:15 <CakeProphet> HOWEVER
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:46 <CakeProphet> yep.
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:56:08 <CakeProphet> @curriable
13:56:08 <lambdabot> Unknown command, try @list
13:56:11 <CakeProphet> def func(a,b,c): ...
13:56:13 <CakeProphet> like that.
13:56:15 <CakeProphet> ignore lambdabot
13:57:16 <CakeProphet> @d; def func(): ... === def temp(): ...; func = d(temp)
13:57:16 <lambdabot> Parse error at "..." (column 13)
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:09:01 <CakeProphet> I hope I am making sense right now...
14:09:12 <CakeProphet> I enjoy teaching people things.
14:09:16 <Taneb> Sort of...
14:10:11 <CakeProphet> anything you're confused about?
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:11:45 <cheater_> currying
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:15 <CakeProphet> yep
14:14:21 <CakeProphet> > map (+3) [1..]
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:30 <CakeProphet> ...no it's more like
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:14:51 <CakeProphet> and whatever(total)(3,7) would return 10
14:15:13 <CakeProphet> and then you just use @whatever above the def for total
14:15:21 <CakeProphet> to make it a curriable function.
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:24:57 <CakeProphet> how so?
14:25:08 <Taneb> TypeError: <built-in function len> is not a Python function
14:25:16 <CakeProphet> what is the offending code.
14:25:27 <Taneb> inspect.getfullargspec(len)
14:25:32 <CakeProphet> ah, yes.
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:29:28 <CakeProphet> or something equally hackish
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:12 <CakeProphet> thus whatever(total)(2)(4)
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:07 <CakeProphet> no, not recursive at all.
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:13 <CakeProphet> @hoogle a -> b -> c
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 <CakeProphet> @hoogle a -> b -> c -> d
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:48:56 <lambdabot> 2
14:49:05 -!- oklopol has joined.
14:49:34 <CakeProphet> @let if' a b c = if a then b else c
14:49:36 <lambdabot> Defined.
14:49:56 <CakeProphet> > (((if' False) 3) 4)
14:49:58 <lambdabot> 4
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:55:53 <CakeProphet> map (const 3) [1,2,3,4]
14:55:55 <CakeProphet> > map (const 3) [1,2,3,4]
14:55:56 <lambdabot> [3,3,3,3]
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
14:59:32 <CakeProphet> yes
14:59:50 <CakeProphet> but thats lame.
15:00:14 <CakeProphet> because it actually needs to be
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:03:01 <CakeProphet> and NotImplemented is pretty unused.
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:04:42 <CakeProphet> NotImplemented exists to be shown.
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:17:38 <CakeProphet> import teleporter
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:06:26 <Taneb> Hello people!
17:07:04 <elliott_> hi
17:07:21 <Taneb> Oh, you don't count, I was just talking to you
17:17:21 <Taneb> Oh God I am crazy
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:27:26 <elliott_> Good work ethic
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:28:43 <Taneb> I know JavaScript
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:27:06 <elliott> parseInt(n,10)
18:28:32 <Taneb> That loses the .4
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:24 <fizzie> isNan(x)?
18:35:31 <fizzie> Yes, it's isNaN.
18:35:36 <fizzie> (The lowercase 'n' was a typo.)
18:35:44 <Taneb> Thanks
18:37:33 <elliott> <Taneb> parseFloat works, though!
18:37:34 <elliott> Oh, right.
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:04 <elliott> 0x makes it hex, etc.
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:03 <Taneb> *19
18:39:06 <elliott> Hmm, fair enough
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:48:40 <Taneb> With vigour
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:24:54 <cheater_> hi
19:25:22 <Cheery> hi
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:23 <oerjan> also
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:41:41 <oerjan> > (sqrt-3.14159) 2
19:41:43 <lambdabot> -1.7273764376269047
19:41:47 * oerjan whistles innocently
19:42:15 <pikhq_> Smartass. :P
19:42:38 <pikhq_> :t (sqrt-3.14159)
19:42:39 <lambdabot> forall a. (Floating a) => a -> a
19:43:13 <pikhq_> That... Is the thing I least expected.
19:43:22 * oerjan cackles evilly
19:43:30 <oerjan> it is simple really
19:43:37 <pikhq_> Do tell.
19:43:51 <Sgeo> > (sqrt-3.14159) 3.14159
19:43:52 <lambdabot> -1.369136897658502
19:44:06 <Sgeo> > (sqrt-3.14159) 4
19:44:07 <lambdabot> -1.1415899999999999
19:44:09 <olsner> > (sqrt-3.14159) x
19:44:10 <lambdabot> sqrt x + negate 3.14159
19:44:26 <Sgeo> ...
19:44:29 <Sgeo> derp
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:44:57 <oerjan> *apply
19:45:05 <oerjan> e.g.
19:45:10 <oerjan> > (2*id) 3
19:45:11 <lambdabot> 6
19:45:42 <oerjan> this is fairly common mathematical usage e.g. when considering vector spaces of functions
19:46:22 <oerjan> > sqrt 2
19:46:24 <lambdabot> 1.4142135623730951
19:46:27 <olsner> > (add 1 * add 2) 1
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:46:46 <lambdabot> 6
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:14 <oerjan> yeah
19:47:44 <oerjan> or rather, an overlapping instance - there are two conflicting modules defining Show for functions
19:47:53 <oerjan> > putStr 1
19:47:55 <lambdabot> No instance for (GHC.Num.Num GHC.Base.String)
19:47:55 <lambdabot> arising from the literal `...
19:47:58 <oerjan> argh
19:48:01 <oerjan> > putStr "1"
19:48:02 <lambdabot> <IO ()>
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:21 <elliott_> pikhq_: Cool.
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:49:55 <pikhq_> oerjan: Ah.
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:03 <oerjan> :t pure
19:54:05 <lambdabot> forall a (f :: * -> *). (Applicative f) => a -> f a
19:54:19 <oerjan> :t Control.Arrow.pure
19:54:20 <lambdabot> Not in scope: `Control.Arrow.pure'
19:54:23 <oerjan> grmbl
19:54:26 <oerjan> @hoogle 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:55:27 <oklopol> removed pure?!?
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:57:34 <oklopol> what does pure do
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:03:16 <oerjan> Category has no pure
20:03:58 <olsner> hmm, indeed not
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:18 <oerjan> oops
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:35 <oerjan> wait what
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:08:34 <olsner> re-exporting modules?
20:08:43 <oerjan> yes
20:09:50 <olsner> module Foo (baz,module Bar) I think
20:09:55 <oerjan> yeah found it
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:10:10 <EgoBot> 3.14
20:10:13 <oerjan> wtf
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:04 <oerjan> could be
20:12:58 <oerjan> the report is pretty clear that this kind of thing should be a clash
20:13:08 <oerjan> oh well
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:05 <elliott_> :p
20:23:29 <oerjan> :t re
20:23:30 <lambdabot> Not in scope: `re'
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:07 <lambdabot> *Exception: Prelude.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:22 <pikhq_> oerjan: Ah.
20:27:29 <pikhq_> So, mkPolar is defined the way it is for no good reason.
20:27:38 <oerjan> perhaps.
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:29:57 <oerjan> yes it is.
20:30:01 <pikhq_> Oh, sorry.
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:31:36 <oerjan> 11.
20:31:45 * oerjan runs away
20:32:07 <elliott_> pikhq_: 99
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:27 <elliott_> oerjan: yudkowsk_y_
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:03 <oerjan> ok ok
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:14 <Taneb> Okay
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:24 <oerjan> (Al Fatah)
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:51:47 <oerjan> you don't say.
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:15 <olsner> > e
20:59:16 <lambdabot> e
20:59:23 <olsner> lambdabot could
20:59:31 <Taneb> My word
20:59:43 <oerjan> sadly it's not _the_ e
21:00:00 <Taneb> E, nevah
21:00:14 <olsner> > exp 1 -- is this the e?
21:00:15 <lambdabot> 2.718281828459045
21:00:26 <Taneb> That be the e
21:00:40 <Taneb> To an appropriate number of decimal places
21:00:56 <oerjan> > exp 1 :: CReal
21:00:57 <lambdabot> 2.7182818284590452353602874713526624977572
21:01:05 <olsner> yes, I think it was a bit few to be truly appropriate
21:01:17 <elliott_> ping
21:01:27 <oerjan> 6uod
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:30 <oerjan> yes, tu and voi
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 <Taneb> Pretty sure.
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:04:14 <oerjan> ah.
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:06:57 <elliott_> Taneb: IT'S AN OLD SITCOM
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:18 <elliott_> Taneb: IT'S LIKE THE JETSONS
21:07:26 <Taneb> Mein. Gott.
21:07:43 <Taneb> Mon. Dieu.
21:07:53 -!- copumpkin has quit (Ping timeout: 252 seconds).
21:07:56 <Taneb> Deus. Meus.
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:10 <Taneb> Goodnight
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:19 <oerjan> oklopol: to what?
21:13:22 <oklopol> pondering
21:13:36 <oerjan> oh. i think i just pondered pondering.
21:13:45 <oklopol> cool
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:08 <elliott_> see also ph
21:14:38 <oklopol> i have a pretty nice sleepy time distribution
21:14:50 <oklopol> 16-22
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:36:03 <oerjan> like everyone else
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:51:44 <oerjan> ic
23:52:56 <oerjan> well _now_ it works
23:53:21 <oerjan> Gregor: there are some doubts about Ork's TC-ness, see Talk: page
23:54:03 <Gregor> oerjan: Oh nooooose
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
2011-07-22
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:03:56 <oerjan> hm
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:00 <Sgeo> Oh, oops
00:48:03 <Sgeo> /** 'Force' users to use the subreddit style **/
01:07:32 <Lymee> @src reverse
01:07:33 <lambdabot> reverse = foldl (flip (:)) []
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:22:53 <oerjan> with real explosions
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:08:47 <pikhq_> Linux 3.0 is out.
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:21:09 <quintopia> 69?
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:24:56 <pikhq_> Yes.
05:25:01 <pikhq_> That's the joke.
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:25:26 <pikhq_> Yes.
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:27:52 <pikhq_> zzo38: Lame.
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:08 <quintopia> that is indeed lame
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:28:48 <quintopia> lame
05:28:52 <pikhq_> coppro: Lame.
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:29:58 <pikhq_> But that's just me.
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:11 <pikhq_> Sgeo: Yes.
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:32:34 <pikhq_> coppro: The DM?
05:32:55 <coppro> pikhq_: yeah
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:36:49 <pikhq_> Ao?
05:37:47 <zzo38> Yes, I mean Ao
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:39:53 <pikhq_> Or a metadeity.
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:28:09 <NihilistDandy> ping
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:29:40 <NihilistDandy> Undoubtedly
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:44 <CakeProphet> > map (\x -> join((+) `ap` (+x)) x) [1..]
10:59:45 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
11:00:03 <CakeProphet> > map (\x -> (+) `ap` (+x) x) [1..]
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:22 <CakeProphet> :t (+) `ap` (+3)
11:00:23 <lambdabot> forall a. (Num a) => a -> a
11:00:43 <CakeProphet> > map (\x -> (+) `ap` (+x) x x) [1..]
11:00:44 <lambdabot> Occurs check: cannot construct the infinite type: t = t -> a -> a
11:01:41 <CakeProphet> @pl (\x -> (+) `ap` (+x) x x)
11:01:42 <lambdabot> ((+) `ap`) . join (join (+))
11:01:54 <CakeProphet> :t (
11:01:55 <lambdabot> parse error (possibly incorrect indentation)
11:02:05 <CakeProphet> :t (\x -> (+) `ap` (+x) x x)
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:26 <CakeProphet> uh...
11:02:31 <CakeProphet> :t (\x -> (+) `ap` (+3) x 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:04 <Deewiant> ?ty ap (+) (+3)
11:03:05 <lambdabot> forall a. (Num a) => a -> a
11:03:16 <CakeProphet> :t (\x -> (+) `ap` (+3) x)
11:03:17 <lambdabot> forall a. (Num a) => (a -> a) -> a -> a
11:03:30 <CakeProphet> > map (\x -> (+) `ap` (+3) x) [0..]
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:03:36 <CakeProphet> and now that.
11:03:47 <Deewiant> ?ty ap (+) ((+3) 0)
11:03:48 <lambdabot> forall a. (Num a) => a -> a
11:04:43 <CakeProphet> :t (\x -> (+) `ap` (+x) x)
11:04:45 <lambdabot> forall a. (Num a) => (a -> a) -> a -> a
11:04:50 <CakeProphet> @pl (\x -> (+) `ap` (+x) x)
11:04:50 <lambdabot> ((+) `ap`) . join (+)
11:06:43 <Deewiant> @pl (\x -> (+) `ap` (x+x))
11:06:44 <lambdabot> ((+) `ap`) . join (+)
11:08:24 <CakeProphet> huh?
11:08:45 <CakeProphet> > (+) `ap` 3
11:08:46 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
11:08:46 <lambdabot> arising from a use of `...
11:09:03 <CakeProphet> :t (+) `ap` 3
11:09:05 <lambdabot> forall a. (Num a) => a -> a
11:09:08 <CakeProphet> :t (+) `ap` 3 4
11:09:10 <lambdabot> forall a. (Num a) => a -> a
11:09:34 <CakeProphet> um okay.
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:13:29 <atehwa> hmmm
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:54 <atehwa> hmmm
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:39 <atehwa> I'm all ears.
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:01 <Taneb> Not mad
11:32:12 <Taneb> Quite bad, though
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:34:50 <Taneb> So it's faster
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:20 <atehwa> yes, seems so.
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:22 <atehwa> yep
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:08:47 <cheater_> this is super-perplexing
12:08:52 <atehwa> ?
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:20:32 <cheater_> i've fixed it tho
12:29:32 <atehwa> :/
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:25 <CakeProphet> @pl scanl f a = map (foldl f a) . inits
12:37:26 <lambdabot> scanl = flip flip inits . (((.) . map) .) . foldl
12:45:35 <Taneb> I've translated my BFJoust interpreter to JavaScript
12:47:04 <CakeProphet> why would you do such a th--oh, cool.
12:49:55 <CakeProphet> I think Perl was the earliest language in the C family to have map and filter operators.
12:50:09 <CakeProphet> depending on when they were added.
13:09:07 <CakeProphet> @pl map f (x:xs) = f x : map f xs
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> (line 1, column 26):
13:09:56 <lambdabot> unexpected ">" or "-"
13:09:56 <lambdabot> expecting variable, "(", operator or end of input
13:20:51 <CakeProphet> does anyone out there actually use F#?
13:20:58 <CakeProphet> have you guys ever used F#?
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:45:49 <CakeProphet> I was like... are you serious?
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:04 <CakeProphet> infuriating, but oh well.
13:47:13 <fizzie> Well, I guess that's his prerogative?
13:47:17 <CakeProphet> indeed.
13:47:26 <CakeProphet> even if it is based on stupidity...
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:01 <CakeProphet> he was ambivalent.
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:48:58 <CakeProphet> it is a silly one.
13:49:10 <fizzie> Oh, I thought it was about the performance issue.
13:49:18 <CakeProphet> nope. hidden code.
13:49:27 <CakeProphet> causes bugs.
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:49:57 <fizzie> Well, that is silly.
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:27 <CakeProphet> or something.
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:53:25 <CakeProphet> JUST WAIT.
13:53:33 <CakeProphet> a few years from now.
13:53:37 <CakeProphet> when I have graduated.
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:32 <CakeProphet> yes.
13:55:47 <CakeProphet> Ruby or even Perl is a possibility for web programming.
13:56:09 <CakeProphet> ActionScript for sure
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.
13:58:55 <CakeProphet> in the form of dialects, granted.
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:05 <CakeProphet> lol, nice.
14:02:15 <CakeProphet> I should list my esolangs then. :)
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:31 <CakeProphet> ah, cool.
14:07:40 <CakeProphet> this is promising.
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:30 <CakeProphet> Elizacat: what's wrong with that?
14:09:36 <CakeProphet> that looks perfectly reasonable to me.
14:09:42 <Taneb> There's been an explostion in Oslo.
14:09:58 <Elizacat> a class with lambdas
14:10:02 <Elizacat> that one really just made me puke
14:10:05 <Elizacat> whoever does that needs to be killed
14:10:14 <CakeProphet> it's not that lambdas are bad
14:10:20 <Elizacat> don't use them like THAT
14:10:21 <CakeProphet> it's just that Python's lambdas are bad.
14:10:36 <Elizacat> I don't find lambdas very useful outside of functional programming languages
14:10:36 <Elizacat> :P
14:10:54 <CakeProphet> well, when you can add multiple statements to it
14:10:55 <CakeProphet> it is.
14:10:59 <cheater_> python's lambdas aren't bad, they're just useless
14:11:09 <CakeProphet> I think this is a subset of "bad"
14:11:19 <CakeProphet> useless is bad.
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:11:40 <cheater_> nobody uses lambdas
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:12 <CakeProphet> lame
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:12 <CakeProphet> turns out I apparently don't know Perl
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:01 <cheater_> CakeProphet, not in python
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:34 <CakeProphet> ...yes, I know how it works in Python.
14:22:39 <cheater_> it's because python is descriptive rather than declarative
14:22:51 <cheater_> or rather prescriptive
14:22:58 <CakeProphet> ...imperitive?
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:01 <cheater_> that's the problem
14:25:07 <cheater_> that's why i say "declarative" instead
14:25:08 <CakeProphet> I suppose.
14:25:15 <CakeProphet> that makes sense.
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:13 <cheater_> yes
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:51 <cheater_> i don't know
14:30:55 <cheater_> but i wouldn't be surprised?
14:30:58 <CakeProphet> if not declarative (aka what I consider functional to mean)
14:31:03 <cheater_> i mean in C you can have SMC
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:03 <cheater_> that is iteration
14:34:05 <CakeProphet> not really.
14:34:14 <CakeProphet> I can't go back to the 0th element from a recursive call.
14:34:26 <cheater_> with head/tail you can't
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:34:56 <CakeProphet> excuse me, array.
14:34:59 <cheater_> why can't you?
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:40 <CakeProphet> the length parameter won't help you.
14:35:56 <cheater_> but that's what i was talking about
14:35:57 <cheater_> an index
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:03 <cheater_> ok, i know what you mean
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:35 <CakeProphet> I use verbs all the time in Haskell.
14:40:38 <cheater_> instead you say "<item> is an <adjective> <item2>"
14:40:46 <cheater_> can you give me an example?
14:40:49 <CakeProphet> map...
14:40:56 <CakeProphet> map f over list
14:41:00 <CakeProphet> it's a command.
14:41:04 <CakeProphet> fold as well
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:46 <cheater_> well, i wouldn't say so
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:43:40 <cheater_> y = f x
14:43:58 <cheater_> i declare y to be an x-ish f
14:44:12 <cheater_> "y is an f of subtype x"
14:44:18 <CakeProphet> this is just completely arbitrary.
14:44:26 <CakeProphet> to perspective.
14:44:32 <CakeProphet> > map (+1) [1..]
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:22 <CakeProphet> lol
14:45:38 <CakeProphet> so map isn't a verb, it's "a list of" :P
14:45:40 <CakeProphet> which is a nount
14:45:41 <CakeProphet> got it.
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:46:36 <CakeProphet> nouns are more like the constants.
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:46 <CakeProphet> right, but functions /do/ things.
14:47:49 <CakeProphet> they compute
14:47:56 <cheater_> i differ
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:49:55 <cheater_> it just is there
14:49:58 <CakeProphet> ...sure.
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:43 <cheater_> er
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:13 <CakeProphet> no, you don't create concepts.
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:58:49 <cheater_> it's completely disconnected
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:11 <cheater_> er, no
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:42 <CakeProphet> right.
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:01:50 <CakeProphet> *intelligent
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:03:45 <CakeProphet> s/thing/think
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:22 <cheater_> it's in your hand
15:04:45 <cheater_> before, it was not available
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:23 <cheater_> well there is
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:04 <cheater_> ah, but look at it this way
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:07:57 <cheater_> well, anyways
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:45 <CakeProphet> I... guess?
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:38 <cheater_> that would be neat
15:09:41 <cheater_> i wonder what that would be
15:09:42 <CakeProphet> where the ideas just exist without definition or something.
15:09:52 <CakeProphet> magic.
15:10:04 <CakeProphet> or impossible probably.
15:10:25 <Taneb> Impossible magic
15:10:26 <CakeProphet> hmmm, can I be an agnostic on the matter?
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:41 <CakeProphet> I mean, they're comparable.
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:26 <CakeProphet> descriptive, imperitive, or interrogative
15:13:48 <cheater_> no i mean this "adjectives only" language
15:13:52 <CakeProphet> oh.
15:13:53 <cheater_> can it be called "descriptive"?
15:14:01 <CakeProphet> uh, well, I would call any language descriptive.
15:14:08 <CakeProphet> because that is what language is for.
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:37 <cheater_> well you construct things
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:15:57 <CakeProphet> yes, but I describe those constructions.
15:16:07 <CakeProphet> with elements of a language.
15:16:12 <cheater_> yeah but that's on meta-level to the language
15:16:16 <cheater_> don't mix those up
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:17:27 <CakeProphet> indeed, you describe what it is.
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:10 <cheater_> Taneb, heh
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:24 <cheater_> sure, C describes actions..
15:19:33 <cheater_> but the language itself is actions.
15:19:47 <cheater_> or rather
15:19:53 <cheater_> a PROGRAM in C 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:02 <cheater_> yeah ok
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:31 <cheater_> or items
15:20:38 <Taneb> The declarations are describtions
15:20:55 <cheater_> well, i wouldn't say so.
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:15 <cheater_> not so much
15:21:17 <cheater_> is it?
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:30 <cheater_> yeah
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:08 <CakeProphet> er *tail
15:23:33 <cheater_> CakeProphet, i'm not even debating the practicality of those families of languages
15:23:36 <cheater_> anyways, think about this
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:26 <cheater_> well you sure can
15:24:57 <cheater_> it's sort of similar to a definition of a geometric complex
15:25:02 <cheater_> is that the right word?
15:25:11 <cheater_> let me quickly google
15:25:13 <CakeProphet> like a... building?
15:25:17 <CakeProphet> or do you mean like geometric series?
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:04 <CakeProphet> those are all pretty synonymy
15:26:10 <CakeProphet> with complex. except object.
15:26:16 <cheater_> or better yet
15:26:20 <cheater_> let's talk about just sets
15:26:27 <CakeProphet> mathematics loves sets.
15:26:30 <cheater_> a convex set is simple to describe
15:26:30 <CakeProphet> sounds fun.
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:09 <cheater_> nope, you don't need to
15:28:13 <cheater_> it was just an example
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:28:58 <cheater_> exactly
15:29:01 <oklopol> "<cheater_> a convex set is the intersection of convex sets" <<< what :D
15:29:02 <cheater_> but it's declarative
15:29:22 <CakeProphet> right, but... it declares nothing.
15:29:39 <oklopol> that is true for any family of sets
15:30:02 <cheater_> NOT FOR CONCAVE SETS, SUCKER
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:36 <cheater_> a visualization
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:31:36 <CakeProphet> what was the point again? :P
15:31:40 <cheater_> well here's the thing
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:27 <cheater_> BUT
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:02 <CakeProphet> lol
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:34:50 <CakeProphet> (not really)
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:31 <CakeProphet> ice cream is delicious
15:36:39 <cheater_> however i am still starting with the definition of "set"
15:36:41 <cheater_> BUT!
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:33 <cheater_> the "set" is the Ur-Element
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:16 <CakeProphet> typeglobs, don't forget those.
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:39:55 <CakeProphet> the fiboncci sequence is......
15:40:04 <CakeProphet> uh, what do I say now?
15:40:09 <cheater_> yeah, good question
15:40:33 <cheater_> let's look at it differently
15:40:48 <cheater_> let's talk about.. cars
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:43:38 <CakeProphet> and bytes.
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:44:59 <cheater_> well not really
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:47:56 <cheater_> a different example
15:48:06 <cheater_> persons
15:48:13 <cheater_> people :)
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:51:49 <CakeProphet> > (`replicateM` "+-[]<>.,") >>= [0..]
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:52:41 <CakeProphet> +is Joe
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:39 <oklopol> no it would be cool
16:02:49 -!- FireyFly has changed nick to FireFly.
16:03:02 <Taneb> Even if it was only an extremely minor improvement?
16:03:13 <cheater_> EVEN MORE SO.
16:03:14 <cheater_> lol
16:03:20 <Taneb> Oh, I'm feeling to guilty.
16:03:37 <Taneb> FireFly? I improved your BF Joust program "meh"
16:03:53 <FireFly> Heh
16:04:03 <Taneb> Do you want it?
16:04:13 <FireFly> Sure, why not
16:04:26 <Taneb> "->(+>->)*4([-]>)*21"
16:04:41 <Taneb> Your original stopped just short of the finish on the longest tape length
16:04:48 <FireFly> ah
16:11:11 <Taneb> You going to submit that, or can I?
16:12:09 <oklopol> well SOMEONE submit it already :\
16:12:19 <oklopol> think about the children
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:27:29 <FireFly> I don't mind
16:27:50 <FireFly> and also rename it :P
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:09:30 <Taneb> Damn
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:36 <zzo38> Which one?
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:45 <Vorpal> wtf
18:09:53 <ais523> zzo38: the Debian/Ubuntu package
18:09:54 <Vorpal> ais523, what...?
18:09:57 <Vorpal> ais523, how?
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:40 <ais523> so it's probably OK
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:15:14 <fizzie> So the latter.
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:18:09 <Vorpal> err
18:18:11 <Vorpal> echo -e
18:18:13 <Vorpal> not -n
18:18:15 <Vorpal> duh
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:17 <Vorpal> ais523, heh
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:41 <Vorpal> heh
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:07 <pikhq_> Vorpal: No.
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:38 <Vorpal> right
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:38:57 <Vorpal> hehe
18:39:01 <pikhq_> ais523: Precisely.
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:44 <pikhq_> Loosely defined.
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:08 <ais523> and straced it
18:41:11 <Vorpal> 2004 edition or something
18:41:14 <pikhq_> The SUS is a strict superset of POSIX.
18:41:17 <Vorpal> ais523, and?
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:44 <pikhq_> Vorpal: It exists.
18:41:46 <ais523> yep, that's the obvious one
18:41:51 <pikhq_> SUSv4.
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:08 <Vorpal> ais523, hm.
18:42:15 <Vorpal> yeah wtf
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> $ type true
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:55 <Vorpal> same for false
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:11 <Vorpal> I know
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> $ type `which true`
18:43:23 <Vorpal> /bin/true is /bin/true
18:43:24 <Taneb> Hello
18:43:27 <ais523> happily, ls isn't segfaulting any more
18:43:27 <Vorpal> (silly output)
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:03 <Vorpal> ais523, how?
18:44:04 <pikhq_> Vorpal: /dev/null.
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:07 <Vorpal> hm
18:44:13 <Vorpal> pikhq_, :D
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 <Taneb> Damn
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:33 <ais523> Vorpal: no
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:48 <ais523> and yes, I did
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:10 <Vorpal> ais523, then what
18:46:18 <Vorpal> pikhq_, ouch
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:42 <pikhq_> It's also LSB.
18:46:51 <ais523> s/\)//
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:27 <ais523> Vorpal: I know
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:01 <ais523> hmm, that makes sense
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:14 <ais523> Vorpal: let me check
18:51:29 <pikhq_> ais523: Um, good luck in the general case.
18:51:37 <ais523> Vorpal: _newselect
18:51:40 <ais523> pikhq_: indeed
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:56 <Vorpal> I seen some of those
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:23 <Vorpal> that exists
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:53:28 <ais523> hmm, good to know
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:47 <ais523> to implement
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:22 <ais523> just wrt programs
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:39 <pikhq_> Vorpal: Nasal demons.
18:57:41 <ais523> I don't think I'd expect that to work
18:57:43 <pikhq_> Vorpal: :)
18:57:47 <ais523> even ping(1) I'm putting off for later
18:57:57 <Vorpal> pikhq_, right
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:09 <Vorpal> ais523, what the...
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:45 <Vorpal> linux instances*
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:19 <ais523> as you've noted
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:08 <ais523> zzo38: I doubt it
19:03:13 <Vorpal> .... what
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:19 <Vorpal> no idea
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:20 <pikhq_> Sure it is!
19:09:25 <Vorpal> pikhq_, what about interrupts?
19:09:29 <pikhq_> Remember, everything is a file.
19:09:40 <pikhq_> For reals.
19:10:00 <Vorpal> pikhq_, yes I know. But what about interrupts, suspending the usb bus, and so on
19:10:29 <pikhq_> Dunno.
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:30 <Sgeo> Hmm.
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:16:52 <Phantom_Hoover> pikhq_, ah, I see your mistake.
19:17:01 <Phantom_Hoover> You are assuming that there *is* an 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:17:52 <Phantom_Hoover> Perry Bible?
19:17:57 <Vorpal> s/?//
19:18:02 <Vorpal> Phantom_Hoover, I think it had Torvalds in it
19:18:19 <Vorpal> and RMS and so on
19:18:22 <Phantom_Hoover> Oh, Everybody Loves Eric Raymond.
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:18:49 <Vorpal> right
19:19:11 <Vorpal> my point was, that must be a worse update schedule
19:20:39 <Phantom_Hoover> You are making the same mistake.
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:35 <Vorpal> hm
19:21:42 <Vorpal> ais523, rand() != random() though
19:21:47 <ais523> oh, right
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:33 <Vorpal> hm
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:24:25 <Vorpal> ais523, lol
19:25:00 <Vorpal> ais523, I presume you are using ptrace for this? To be able to catch system calls happening
19:25:07 <ais523> indeed
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:10 <pikhq_> :)
19:26:15 <ais523> pikhq_: LSB?
19:26:20 <Vorpal> pikhq_, what, really!?
19:26:21 <pikhq_> Linux Standard Base.
19:26:24 -!- oerjan has joined.
19:26:29 <Vorpal> oerjan, hi
19:26:36 <pikhq_> Vorpal: Yes, really.
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:26:55 <oerjan> hi Vorpal
19:26:58 <pikhq_> Vorpal: EOF
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:26 <Vorpal> aha
19:27:32 <oerjan> /dev/bull
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:28:55 <ais523> oh no they won't :)
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:12 <pikhq_> Vorpal: Nope.
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:28 <Lymee> lambdabottttt
19:30:31 <Lymee> ;a;
19:30:31 <oerjan> lambdabot is missing? :(
19:30:34 <ais523> I think that mechanism of escaping chroots is in there deliberate
19:30:38 <ais523> *deliberately
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:49 <ais523> and return values
19:30:58 <pikhq_> ais523: Stallman didn't design the chroot syscall.
19:31:00 <Vorpal> ais523, I see...
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:00 <Vorpal> work*
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:32 <Lymee> um
19:32:33 <ais523> that's what I'm doing
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 <tswett> Boom, transistors.
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:05 <ais523> heh
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:36 <ais523> no
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:15 <elliott_> that's the obvious part
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:07 <ais523> no, I don't
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:16 <Vorpal> ais523, right
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:01 <Vorpal> oerjan, indeed
19:39:09 <Lymee> That could be an extension, right?
19:39:13 <oerjan> yeah
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:44 <oerjan> yeah
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:05 <ais523> oerjan: neither do I
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:43:59 <oerjan> (of function type)
19:44:07 <ais523> oerjan: actually, in Agda there's no + operator by default, you have to implement it by hand
19:44:13 <oerjan> ah
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:10 <Sgeo> oops
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:31 <Vorpal> heh
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:51:49 <Sgeo> Agda?
19:52:00 <Sgeo> That's Ur that I pasted
19:52:03 <oerjan> oh.
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:54:58 <oerjan> *hiring
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:30 <monqy> is C-- dead?
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:45 <elliott_> oh dear
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:18 <elliott_> monqy: what he's reading
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:23 <elliott_> well
19:57:25 <elliott_> ancient =a day
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:18 <oerjan> O KAY
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:17 <Sgeo> Hmm
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:57 <oerjan> (in haskell)
19:59:58 <Vorpal> <ais523> Oracle have bought ksplice?
19:59:59 <Vorpal> ouch
20:00:01 <Vorpal> just ouch
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:03 <ais523> > (++) "a""b"
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:15 <ais523> @eval (++) "a""b"
20:02:19 <oerjan> *character literals
20:02:48 <oerjan> inside strings, you can get errors due to nonexisting escapes
20:02:56 <oerjan> !haskell "\fnord"
20:02:58 <EgoBot> ​"\fnord"
20:03:01 <oerjan> oops
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:34 <oerjan> that gave an error
20:03:39 <Vorpal> it does for me anyway
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:05:27 <oerjan> Sgeo: i don't know.
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:20 <elliott_> FSVO C family
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:33 <ais523> Perl is C family?
20:11:35 <zzo38> That is, have a metadata to tell it what thing not to assume, maybe
20:11:37 <elliott_> according to CakeProphet
20:11:39 <pikhq_> Perl's Awk family.
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:14 <elliott_> pikhq_: Well, er, no.
20:13:17 <pikhq_> Well.
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 <monqy> bye
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:26 <pikhq_> It has everything.
20:14:28 <ais523> Vorpal: gcc-bf reserves a temporary for that
20:14:48 <elliott_> oh no
20:14:48 <Vorpal> ais523, right
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:26 <elliott_> > "a""b"
20:15:28 <ais523> too much effort
20:15:30 <Vorpal> ais523, ah
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:51 <Vorpal> :D
20:15:53 <ais523> rather than because it barfs on it, though
20:16:06 <elliott_> heh
20:16:07 <Vorpal> !haskell "a""b"
20:16:07 <ais523> not on Freenode, in fact
20:16:12 <elliott_> Vorpal: won't work
20:16:19 <elliott_> !haskell print "oh""no"
20:16:22 <Vorpal> hm
20:16:23 <ais523> !haskell putStr ((++) "a""b")
20:16:25 <EgoBot> ab
20:16:31 <ais523> I win, I think
20:16:34 <Vorpal> yes
20:16:34 <monqy> rest in peace lambdabot????
20:16:41 <ais523> monqy: it'll probably be back later
20:16:48 <monqy> nap in peace
20:16:50 <elliott_> rest in pace;sdgfh
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:24 <ais523> *working
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:32 <elliott_> this log is unbearably bad
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:50 <pikhq_> elliott_: *wince*
20:17:52 <Vorpal> ais523, maybe some other libgcc function depends on pthread calls iff pthread is loaded?
20:17:55 <ais523> elliott_: wait what?
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:13 <ais523> Vorpal: perhaps
20:18:15 <ais523> maybe errno
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:36 <elliott_> cool story, tell me more
20:18:44 <elliott_> 14:24:25: <cheater_> functional means a function is a first class object
20:18:44 <elliott_> i see
20:19:02 <monqy> dying
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:33 <Vorpal> s/it\?/it/
20:20:37 <Vorpal> heh
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:20:54 <ais523> mediumish
20:20:56 <Vorpal> hm
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:33 <Vorpal> hm
20:22:37 <Vorpal> well
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:22:59 <Vorpal> __NR_Linux?
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:50 <Vorpal> heh
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> */
20:24:00 <Vorpal> #define __NR_Linux 5000
20:24:02 <Vorpal> further down
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:33 <Vorpal> oh god
20:24:37 <Vorpal> it is different for different modes
20:24:39 <Vorpal> #define __NR_syscall (__NR_Linux + 0)
20:24:41 <Vorpal> for another one
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:07 <Vorpal> ais523, why on earth?
20:25:13 <Vorpal> * Linux N32 syscalls are in the range from 6000 to 6999.
20:25:13 <Vorpal> */
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:26 <Vorpal> heh
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:39 <Vorpal> ais523, err what
20:25:49 <ais523> mmap2 is like mmap but you specify the offset in units of 4K
20:25:54 <ais523> (4KiB, that is)
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:10 <ais523> Vorpal: I think so
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:26:59 <Vorpal> norm*
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:25 <elliott_> Ask any Lisper
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:17 <Vorpal> $ getconf PAGESIZE
20:29:21 <Vorpal> 4096
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:38 <elliott_> setq
20:29:41 <Vorpal> ais523, any x86 system will give that. Same for x86-64
20:29:46 <ais523> what does setf do?
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:19 <monqy> wow what
20:30:21 <monqy> i
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:52 <elliott_> the f is for Form
20:30:54 <elliott_> setq is set quote
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:32:30 <Vorpal> PAGESIZE 4096
20:32:30 <Vorpal> PAGE_SIZE 4096
20:32:31 <Vorpal> what?
20:33:11 <oerjan> PAGES_I_ZE
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:25 <oklopol> oesrijgreoijg
20:34:43 <pikhq_> elliott_: memcpy(&a + offsetof(foo, b), &b + offsetof(foo, b), sizeof(b.foo)); ?
20:34:46 <pikhq_> ais523: Yes.
20:34:49 <pikhq_> ais523: Also *.
20:34:54 <ais523> what about sizeof?
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:06 <Vorpal> or maybe
20:35:07 <Vorpal> hm
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 <Sgeo> That one"
20:35:33 <fizzie> But the "." is not, and neither is the ternary operator.
20:35:35 <fizzie> Or sizeof.
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:04 <pikhq_> Also ->*
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:37:58 <elliott_> Sgeo: a random person
20:38:03 <elliott_> monqy: ur is good
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:14 <Vorpal> not even with friend
20:38:18 <monqy> i'll learn ur
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:04 <ais523> ah, I see
20:39:16 <elliott_> nooga: Shhh, C++ is good because of C++ sudoku
20:39:22 <nooga> what
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:42:09 <nooga> ingenious
20:44:33 <elliott_> 14:59:05: <cheater_> trying to assign cosmical properties to mathematical objects is called physics
20:44:38 <elliott_> stop
20:44:39 <elliott_> talking
20:44:39 <elliott_> in the past
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:05 <cheater_> monqy, totally srs
20:46:12 <monqy> :o
20:46:16 <elliott_> cheater_: fuck off
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:06 <elliott_> ais523: real
20:47:19 <elliott_> "shitheadeaded" im good with words
20:47:34 <cheater_> elliott_, it comes naturally
20:47:35 <ais523> you're missing a d at the end
20:47:48 <elliott_> shitheadeadedison
20:48:06 <elliott_> jesus christ how long does this log go on for
20:48:20 <cheater_> YOUR
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:21 <cheater_> WHOLE
20:48:22 <cheater_> LIFE.
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:46 <ais523> *others
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:39 <cheater_> ais523, monads are like cars
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:00 <ais523> *of su(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:42 <ais523> elliott_: ah, I see
20:54:57 <ais523> wait, why do sg and newgrp both exist?
20:55:07 <Sgeo> Huh.
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:44 <elliott_> Sgeo: sigh what is it
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:22 <elliott_> ais523: I wish I knew
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:36 <elliott_> And talk for about three days
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:13 <elliott_> X_X
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:34 <ais523> *powerset
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:17 <elliott_> you can do
21:04:18 <ais523> or equal
21:04:22 <elliott_> struct foo = {a,b,{c,d}}
21:04:24 <elliott_> but you can't do
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:32 <elliott_> for whatever reason
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:20 <elliott_> err, howso?
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:07:54 <elliott_> SuS requires XSI
21:07:56 <elliott_> POSIX doesn't
21:08:00 <Sgeo> I think
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:18 <ais523> what's XSI?
21:08:20 <Vorpal> elliott_, XSI isn't really that big
21:08:22 <ais523> a binary standard?
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:43 <Vorpal> for example
21:08:44 <ais523> ah, aha
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:57 <elliott_> Vorpal: follow the standard
21:09:59 <pikhq_> Oh, in recent POSIX it's actually base, not XSI.
21:10:04 <elliott_> also, how was that funny
21:10:06 <zzo38> strdup is still useful function, but they don't have memdup.
21:10:08 <Vorpal> ah
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:07 <ais523> pikhq_: what for?
21:11:10 <ais523> ah, I see
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:02: <Taneb> Damn
21:12:02 <elliott_> 18:45:10: <Taneb> Just wrote =+ 1 instead of += 1
21:12:04 <elliott_> Ritchie? Is that you?
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:37 <elliott_> /dev/null isn't LSB?
21:12:38 <ais523> *were
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:02 <elliott_> pikhq_: OK :P
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:19 <quintopia> always
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:14:49 <ais523> elliott_: thanks
21:14:56 <elliott_> variable arrays?
21:15:01 <Vorpal> ah
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:55 <Vorpal> or such
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:05 <zzo38> in C pointers?
21:16:06 <ais523> elliott_: that would give too much away
21:16:10 <ais523> let's just say I tried
21:16:24 <elliott_> ais523: I hate you so much
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:48 <ais523> Vorpal: you aren't
21:16:49 <elliott_> `delquote 529
21:16:50 <HackEgo> ​*poof*
21:16:53 <Vorpal> ais523, damn
21:16:55 <elliott_> swap an unfunny quote for a funny one
21:16:57 <ais523> which one was 529?
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:05 <ais523> ah
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:04 <elliott_> zzo38: presumably quite a lot
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:13 <elliott_> zzo38: functions, perhaps?
21:18:27 <ais523> Vorpal: what, using strdup?
21:18:31 <Vorpal> ais523, heh
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:43 <elliott_> 9P
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 <Vorpal> elliott_, *aha*
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:07 <Vorpal> ais523, oh.... right
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:32 <Vorpal> ais523, the quote
21:19:42 <elliott_> Vorpal: it was ais acting very out of character, when taken out of context
21:19:44 <elliott_> and it's also absurd
21:19:48 <Vorpal> elliott_, yes
21:19:51 <Phantom_Hoover> Hmm, the flag of Hawaii still has a Union Jack on it for some reason.
21:19:53 <elliott_> it is, therefore, quotable
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:02 <ais523> but agreed
21:20:07 <Vorpal> elliott_, yeah mine was quotable too
21:20:07 <pikhq_> And gone is gets.
21:20:12 <elliott_> Vorpal: oh, shut up
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:32 <nooga> cto
21:20:33 <Vorpal> elliott_, no I don't do that
21:20:33 <Phantom_Hoover> Vorpal, would you just shut up OK.
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:05 <elliott_> ais523: {asiekierka,Vorpal}
21:21:10 <ais523> thanks
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:22 <zzo38> OK
21:22:43 -!- confab has joined.
21:22:52 <elliott_> confabulations
21:22:57 <elliott_> wow that's a word???
21:23:09 <nooga> http://pastebin.com/MthxxLrd http://pastebin.com/MthxxLrd http://pastebin.com/MthxxLrd
21:23:10 <elliott_> omg it is.
21:23:11 <quintopia> it successfully confabulated you
21:23:24 <quintopia> with zzo
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:27 <pikhq_> Not GNU cp, at least.
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:49 <elliott_> everyone
21:25:54 <elliott_> it's used in every web server ever
21:26:11 <ais523> that makes sense
21:26:37 <elliott_> ais523: and
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:38 <elliott_> to a socket.
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:26:48 <ais523> oh, that's ridiculous
21:27:14 <ais523> I missed that bit
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:49 <elliott_> ais523: woo rave rave rave
21:29:53 <ais523> what's the benefit of using CALL over using INT?
21:30:00 <elliott_> ais523: much faster
21:30:04 <elliott_> syscalls are really expensive
21:30:06 <elliott_> function calls arent
21:30:07 <elliott_> 't
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:39 <elliott_> and what pikhq_ said
21:30:43 <ais523> what you probably mean is, "system calls don't need context switches"
21:30:49 <elliott_> right
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:19 <elliott_> BUT NOT AS MUCH AS @ DOES
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:47 <pikhq_> No.
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:34:50 <elliott_> ais523: well, indeed
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:06 <elliott_> ais523: ouch
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:35:57 <elliott_> pikhq_: well, no
21:36:01 <ais523> elliott_: for what?
21:36:07 <ais523> I'm trying to get at the args to a syscall in a different process
21:36:09 <elliott_> ais523: to get at registers
21:36:12 <elliott_> a
21:36:13 <elliott_> h
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:33 <elliott_> "x64"
21:37:34 <elliott_> please don't
21:37:40 <ais523> elliott_: sorry
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:09 <ais523> {
21:38:10 <ais523> long int ebx;
21:38:12 <ais523> long int ecx;
21:38:13 <ais523> long int edx;
21:38:14 <elliott_> ais523: I usually say x86-64, because it's official enough, generic, and underscores are ugly
21:38:15 <ais523> long int esi;
21:38:16 <ais523> long int edi;
21:38:18 <ais523> long int ebp;
21:38:19 <ais523> long int eax;
21:38:21 <ais523> long int xds;
21:38:22 <ais523> long int xes;
21:38:24 <ais523> long int xfs;
21:38:25 <ais523> long int xgs;
21:38:27 <ais523> long int orig_eax;
21:38:28 <ais523> long int eip;
21:38:30 <ais523> long int xcs;
21:38:31 <ais523> long int eflags;
21:38:33 <ais523> long int esp;
21:38:34 <ais523> long int xss;
21:38:36 <ais523> };
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:40 <ais523> if so, sorry
21:38:43 <elliott_> yes, but I don't mind
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:49 <oerjan> oops
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:03 <oerjan> LAMBDABOOOOOT
21:46:10 <ais523> you could search the manual for ))), it would probably find the relevant section quite quickly
21:46:34 <oerjan> who gave you the boot
21:48:40 <elliott> <oerjan> > let x = "Maybe. " ++ show [var x] in x
21:48:42 <elliott> what is this meant to be?
21:48:45 <elliott> Maybe. [Maybe. [...?
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:08 <oerjan> elliott: yes.
21:54:37 <oerjan> hm probably the var should be at the outside.
21:54:56 <elliott> > var (show "x")
21:55:05 <oerjan> ho hum
21:55:28 <elliott> oh right
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:03:17 <elliott> opa sucks
22:04:00 <Vorpal> wtf is opa? yet another active worlds?
22:04:26 <elliott> lol
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:33 <elliott> `delquote 531
22:58:34 <HackEgo> ​*poof*
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:58:52 <NihilistDandy> lol
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
22:59:56 <monqy> im hurt
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:27 <monqy> joy
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:01:37 <NihilistDandy> Topical humoUr
23:02:06 <NihilistDandy> elliott: It's 100˚F here
23:02:19 <NihilistDandy> Heat wave _-_
23:02:29 <elliott> lol texans
23:02:47 <NihilistDandy> New Hampshire, actually
23:02:58 <elliott> oh wait
23:03:01 <Taneb> New Hampshire?
23:03:03 <elliott> that was your freenode sevrer location
23:03:08 <Taneb> That's in New Hampshire!
23:03:14 <NihilistDandy> I know, right?
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:26 <NihilistDandy> No, there are like 5 of those
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:52 <NihilistDandy> LIVE FREE OR DIE
23:03:53 <elliott> http://freestateproject.org/
23:03:54 <elliott> yep
23:03:55 <elliott> new hampshire
23:04:02 <monqy> elliott: its suny here
23:04:11 <Taneb> It's night-y here
23:04:12 <NihilistDandy> Oh, those people
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:15 <elliott> monqy: tr;y using google
23:05:22 <elliott> ; is the best key to typo with imo
23:05:31 <monqy> its good
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:34 <oerjan> permature theremin
23:05:39 <NihilistDandy> I have completed my thereminometer, which measures the number of theremins in a 50 foot radius. Current reading: 1
23:05:41 <Taneb> theremometre?
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:23 <NihilistDandy> elliott: I actually do, sometimes
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:07:41 <NihilistDandy> *alot
23:07:45 <elliott> NihilistDandy: thanks you
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:08:47 <elliott> Taneb: birmingham
23:08:49 <elliott> aisland
23:08:49 <NihilistDandy> Taneb: It's in the middle
23:08:55 <Taneb> Okay
23:08:59 <elliott> west midlands
23:09:04 <NihilistDandy> http://en.wikipedia.org/wiki/Staffordshire
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:09:58 <elliott> rip alots
23:10:22 <oerjan> rip alots? that's just horribly cruel
23:10:35 <NihilistDandy> Sir Rip-Alot
23:10:53 <pikhq_> How could you be so mean to alots?
23:11:10 <Taneb> Damn blood pressure...
23:11:13 <Taneb> It's too low
23:11:27 <Taneb> I react badly to changes in altitude
23:11:39 <Taneb> As in, headaches
23:11:40 <elliott> Taneb is irc from everest
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:11:58 <oerjan> 01:11 Tanewat
23:12:01 <monqy> smokeing is bad for you...
23:12:09 <NihilistDandy> monqy: Apparently not *that* bad
23:12:11 <oerjan> that was not a good cut and paste
23:12:12 <monqy> long cancer
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:10 <NihilistDandy> elliott: Because it's cool, of course
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:18 <NihilistDandy> And I'm not an addict
23:13:21 <NihilistDandy> It's a luxury item
23:13:22 <elliott> they should put different warnings on the packets
23:13:23 <elliott> WARNING: LAMEST DRUG
23:13:27 <elliott> noboyd would buy it
23:13:27 <NihilistDandy> ^^
23:13:33 <elliott> DOESN'T EVEN DO THAT MUCH
23:13:43 <elliott> KNOWN BY THE STATE OF WHEREVER TO BE A WASTE OF MONEY PRETTY MUCH
23:13:57 <Taneb> GET WEED INSTEAD?
23:13:59 <elliott> precisely
23:14:02 <elliott> IT'S NOT TAXED
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:16 <elliott> ghoulmaster: hello
23:15:23 <ghoulmaster> hey elliott
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:50 <elliott> Taos has been here before
23:15:54 <oerjan> oh
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:07 <elliott> monqy: get it, sultanas
23:16:16 <ghoulmaster> elliott: i know
23:16:16 <monqy> sultans
23:16:25 <Sgeo> of swing?
23:16:34 <elliott> ghoulmaster: ok, lots of people don't :P
23:16:47 <NihilistDandy> Wait, this is about programming?~
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:04 <elliott> ghoulmaster: precisely
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:33 <pikhq_> Neat, isn't it?
23:17:36 <NihilistDandy> pikhq_: Ah, of course. The veil lifts
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:13 <elliott> #haskell again?
23:18:21 <oerjan> the conraisins are about raisin money
23:18:22 <elliott> nope
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:51 <NihilistDandy> Taneb: Barely any == 0?
23:18:58 <elliott> Taneb: s/disappointing/disappointingly/
23:19:01 <elliott> so i can addquote it without lying
23:19:03 <elliott> plz
23:19:03 <elliott> thx
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:27 <monqy> 8))))
23:19:31 <NihilistDandy> MY MIND
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:37 <Taos> now shag me?
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:19:56 <elliott> by Books LLC?
23:19:58 <elliott> i am suspicious of this
23:20:03 <elliott> but i'm going to buy it anyway
23:20:14 <monqy> nice overview too
23:20:15 <elliott> i bet it's wikipedia
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:20:45 <elliott> also esolangs... wtf
23:20:48 <elliott> who copied who
23:20:58 <NihilistDandy> Take a wild guess
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:27 <NihilistDandy> Oh, I meant the book
23:21:29 <ais523> if the contents are an exact match with the Wikipedia category, I think that's it
23:21:44 <elliott> I mean the articles
23:22:06 <ais523> the excerpt is an exact match with Wikipedia
23:22:09 <elliott> oh
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:14 <elliott> lol
23:22:16 <elliott> its just in the google summary
23:22:17 <elliott> ais523: right
23:22:25 <elliott> ais523: I kind of still want to own it :)
23:22:29 <elliott> just for that cover
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:51 <elliott> ais523: precisely
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:04 <elliott> rip :(
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:35 <elliott> WHO IS RIGHT????
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:42 <elliott> Sgeo: ?
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:05 <elliott> Sgeo: heh, lol
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:25 <elliott> Sgeo: no, "esoterics"
23:25:30 <NihilistDandy> How very esoteric
23:25:32 <elliott> oh, esoteric too
23:25:34 * Phantom_Hoover → sleep
23:25:37 <elliott> um
23:25:40 <elliott> I want to buy this too....
23:25:41 <elliott> it's forty pages
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:25:55 <elliott> o;h
23:26:03 <elliott> ais523: god dammit why are there so many books i want???????
23:26:08 <elliott> wait omg Plankalkül??
23:26:13 <elliott> awesome
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:25 <itidus20> is that a wiki book?
23:26:29 <elliott> fjolnir
23:26:32 -!- Taneb has quit (Quit: Page closed).
23:26:39 <elliott> sorry Fjölnir
23:26:42 <elliott> omg it's in the category
23:26:43 <elliott> i bet it does
23:26:45 <elliott> omg omg omg i want it
23:26:50 <elliott> I WANT ALL THE SHITTY BOOKS
23:26:59 <ais523> elliott: calm down
23:27:10 <elliott> ais523: i can;t im onverhwlemed
23:27:15 * elliott cries
23:27:19 -!- Taos has joined.
23:27:26 <Taos> ____ _ _
23:27:27 <Taos> / ___| ___ ___ __| | |__ _ _ ___
23:27:27 <Taos> | | _ / _ \ / _ \ / _` | '_ \| | | |/ _ \
23:27:27 <Taos> | |_| | (_) | (_) | (_| | |_) | |_| | __/
23:27:27 <Taos> \____|\___/ \___/ \__,_|_.__/ \__, |\___|
23:27:29 <Taos> |___/
23:27:36 <elliott> wat
23:27:45 <monqy> hi
23:27:56 <Taos> I suppose your not in a terminal
23:27:56 <coppro> Taos: you too
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:29 <elliott> it pumps into yours
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 <monqy> oh
23:28:46 <Sgeo> monqy, he's surrounded #esoteric with TNT
23:28:47 <monqy> ok
23:28:53 <monqy> double ok
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:23 <elliott> o_O
23:29:27 <elliott> there are people who don't know what figlet is?
23:29:31 <Taos> ha
23:29:34 <elliott> figlet is basically super-general banner
23:29:37 <elliott> it has font files, etc.
23:30:00 <elliott> http://www.figlet.org/
23:30:09 <Taos> its the first thing I install
23:30:15 <elliott> Taos: not cowsay? :(
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:50 <elliott> \ \_/\_/ /
23:30:52 <elliott> -----------------------------------------
23:30:53 <NihilistDandy> _ _
23:30:53 <NihilistDandy> __| | ___ __ _ ___ ___ ___ ___ ___ ___ ___ __ _ ___ __| |
23:30:53 <NihilistDandy> / _` |/ _ \ / _` |/ _ \/ _ \/ __|/ _ \ / __|/ _ \/ _ \ / _` |/ _ \ / _` |
23:30:53 <NihilistDandy> | (_| | (_) | | (_| | __/ __/\__ \ __/ \__ \ __/ __/ | (_| | (_) | (_| |
23:30:53 <NihilistDandy> \__,_|\___/ \__, |\___|\___||___/\___| |___/\___|\___| \__, |\___/ \__,_|
23:30:54 <elliott> \ ^__^
23:30:56 <NihilistDandy> |___/ |___/
23:30:56 <elliott> \ (oo)\_______
23:30:58 <elliott> (__)\ )\/\
23:31:00 <elliott> ||----w |
23:31:01 <monqy> im literally dead
23:31:02 <elliott> || ||
23:31:02 <monqy> irl
23:31:04 <elliott> good
23:31:08 <Taos> yay now everyone is piping into irc
23:31:10 <NihilistDandy> Only works if your window is wide enough
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:34 <Taos> 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:31:47 * elliott tries sdate ddate
23:31:54 <elliott> doesn't work :(
23:31:57 <itidus20> ok i can see it now
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:32:55 <elliott> Prelude> Leaving GHCi.
23:32:58 <elliott> ais523: heh
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 <NihilistDandy> Different time zone
23:33:11 <elliott> which aren't, technically, valid
23:33:16 <Taos> Right?
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:27 <Taos> thats odd
23:33:30 <Taos> im tired
23:33:38 <elliott> hmm, only about two years until the thousandth of september
23:33:40 <elliott> erm
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:06 <Taos> _
23:34:07 <Taos> | |__ _ _ ___
23:34:07 <Taos> | '_ \| | | |/ _ \
23:34:07 <Taos> | |_) | |_| | __/
23:34:07 <Taos> |_.__/ \__, |\___|
23:34:08 -!- Taos has quit (Quit: leaving).
23:34:13 <elliott> lmao
23:34:14 <monqy> bue
23:34:20 <ais523> elliott: ?
23:34:25 <elliott> ais523: at his /bin/sh failure
23:34:29 <ais523> ah, OK
23:34:29 <elliott> with his /exec line
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:34:42 <NihilistDandy> | |_) | |_| | __/ | |_) | |_| | __/ | |_) | |_| | __/
23:34:42 <NihilistDandy> |_.__/ \__,_|\___| |_.__/ \__,_|\___| |_.__/ \__,_|\___|
23:34:42 <monqy> --
23:34:44 <NihilistDandy>
23:34:59 <NihilistDandy> `addquote <Taos> bue
23:35:01 <HackEgo> 533) <Taos> bue
23:35:07 <elliott> hey ais523, how much would you hate me if I violated XDG standards
23:35:09 <monqy> immprtalized
23:35:11 <elliott> NihilistDandy: he didnt say bue >:|
23:35:14 <Sgeo> WHat's YOLD?
23:35:16 <elliott> `delquote 533
23:35:17 <HackEgo> ​*poof*
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:37 <NihilistDandy> FINE~
23:35:42 <ais523> elliott: I'm not sure what XDG standards are
23:35:44 <ais523> so I'm not sure yet
23:35:59 <elliott> ais523: well the one in particular is why you have a ~/.config/ directory
23:36:06 <ais523> ah, aha
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:37 <itidus20> other than auto-generated
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:36:53 <NihilistDandy> itidus20: Why would someone publish such a book?
23:36:59 <elliott> <Sgeo> Oh, ddate, derp
23:37:00 <ais523> although, programs I've worked on have used ~/.acehackrc and ~/.taeb
23:37:01 <elliott> cant hide from esoteric
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:13 <elliott> dude
23:37:16 <Sgeo> Oh
23:37:17 <elliott> we just linked to one
23:37:19 <elliott> and talked about it
23:37:28 <ais523> it isn't really a book about esolangs
23:37:29 <elliott> zzo38: which book
23:37:35 <elliott> ais523: sure it is >:|
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:42 <itidus20> xD
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:34 <elliott> ais523: pseudonym
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:31 <elliott> its you
23:40:37 <zzo38> Is it? I don't think so.
23:40:44 <zzo38> I have never published a book (yet).
23:40:57 <zzo38> Are you sure?
23:41:52 <itidus20> looking on the wikipedia wiki, there were printed INTERCAL manuals
23:42:08 <NihilistDandy> Like I said :D
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:42:57 <itidus20> yeah you're not sure..
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:43:43 <elliott> :P
23:43:46 <NihilistDandy> I liked it
23:43:46 <NihilistDandy> :D
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:18 <itidus20> ais: ok i see now... hahahha
23:44:23 <itidus20> so it's the nethack wiki wiki
23:44:45 <monqy> im dead
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:44:58 <NihilistDandy> :D
23:45:09 <NihilistDandy> zzo is a warrior-poet
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:45:51 <NihilistDandy> wiki wiki wiki wack
23:45:59 <itidus20> west jim west
23:46:07 <NihilistDandy> wiki wild wild west
23:46:08 <NihilistDandy> :D
23:46:16 <NihilistDandy> <3 itidus20
23:46:35 <itidus20> ok i suppose i have created a tautology
23:46:37 <elliott> ais523: so scapegoat.................................
23:46:40 <elliott> needs to exist.......
23:46:48 <Sgeo> elliott, as does Feather
23:46:52 * Sgeo runs
23:47:01 <monqy> as does zepto
23:47:02 <ais523> elliott: agreed
23:47:12 <itidus20> you win
23:47:17 <itidus20> wikipedia it is
23:47:19 <elliott> scapegoat needs to be written in zepto-feather
23:47:25 <NihilistDandy> un-zepto
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:35 <NihilistDandy> haha
23:48:44 <elliott> can wikis be prolific
23:48:50 <ais523> elliott: only with a nonstandard (but correct) definition of "or"
23:48:52 <itidus20> i guess not..
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:13 <Sgeo> bubble
23:49:15 <elliott> ais523: Why?
23:49:17 <monqy> ancient chinese manuscript wiki wiki
23:49:29 <elliott> ais523: I suppose you jumped to "virus"
23:49:30 <elliott> From infection
23:49:38 <elliott> There's certainly infection protection and infection scanners in the real world
23:49:44 <NihilistDandy> ITT statements end in wiki wiki
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:11 <monqy> iykwim wiki wiki
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:35 <NihilistDandy> Empty wiki
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:24 <itidus20> i was wrong about wiki wiki
23:51:26 <Sgeo> Just realized that one wiki can be both
23:51:27 <itidus20> it is a tautology
23:51:43 <elliott> im fish
23:51:49 <monqy> swim
23:51:52 <elliott> hi
23:51:52 <elliott> ok
23:52:01 <Sgeo> I'm a leaf on the wind
23:52:05 <monqy> im monqy
23:52:06 <monqy> hi
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:39 <NihilistDandy> elliott: Probably have a life
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:11 <elliott> ais523: two lines
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:29 <elliott> in a bad usability way
23:53:32 <ais523> yes
23:53:35 <ais523> agreed
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:51 <ais523> elliott: I know
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:35 <NihilistDandy> elliott: My lenses are made of bananas
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:54:54 <NihilistDandy> I wasn't looking for a quote :P
23:55:01 <Sgeo> NihilistDandy, I'm a banana. Your lenses are made out of me.
23:55:06 <NihilistDandy> AGH
23:55:12 <elliott> wow, how long has that slashdot article been without comments, ais523?
23:55:14 <elliott> I mean, with only two
23:55:21 <ais523> elliott: probably about five minutes
23:55:24 <ais523> it only just went up
23:55:25 <elliott> oh
23:55:25 <NihilistDandy> Sgeouiggol
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:49 <NihilistDandy> What /. article?
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:14 <ais523> *esotericed
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:47 <Sgeo> It didn't.
23:56:50 <elliott> itidus20: god bless you
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:09 <ais523> they ignored you
23:57:14 <elliott> oh
23:57:16 <elliott> :(
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:34 <elliott> i accepted it
23:57:35 <Sgeo> I think he just did to me what #junethack did to elliott
23:57:37 <elliott> but then, time passed
23:57:47 <monqy> why would anyone ignore elliott
23:57:55 <elliott> monqy: self-loathing?
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:26 <NihilistDandy> PROFUNDITY RISING
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
2011-07-23
00:00:17 <NihilistDandy> Capitalism is a cancer. But I'm a smoker, anyway, so...
00:00:33 <monqy> double cancer
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:01:52 <NihilistDandy> It's not lupus
00:02:02 <oerjan> oh. ok then.
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:04:52 <NihilistDandy> oerjan: Beat me to it
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:30 <NihilistDandy> #junethack is a boring channel
00:06:35 <NihilistDandy> Hardly any puns at all
00:06:49 <oerjan> thack _is_ boring. also it's july already.
00:06:58 <monqy> julythack
00:06:59 <oerjan> you should rename.
00:07:30 <NihilistDandy> I got all my thacking done in May
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:08:48 <NihilistDandy> itidus20: Those are what we call "voters"
00:11:08 <itidus20> there is an xkcd comic which reminds me of what im describing
00:11:40 <itidus20> http://xkcd.com/842/
00:12:16 <NihilistDandy> lol
00:14:59 <Sgeo> Ju is not a month
00:15:33 <oerjan> >_>
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:16:49 <NihilistDandy> Is my response
00:16:59 <monqy> not a whale
00:17:06 <zzo38> Is that picture of something? Of what?
00:17:06 <monqy> uhhh
00:17:06 <oerjan> very like a whale
00:17:07 <ais523> NihilistDandy: that's not quite the same thing as accidentally pasting a 20-line struct into the channel
00:17:31 <NihilistDandy> zzo38: /facepalm
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:17:54 <zzo38> Is it facepalm?
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:07 <monqy> its not a whale
00:18:08 <NihilistDandy> Yes
00:18:10 <monqy> thats all i know
00:18:14 <ais523> (not that I can grant them to you, I'm just curious as to the answer)
00:18:15 <zzo38> OK.
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:46 <NihilistDandy> Are there even any ops in #esoteric?
00:18:47 <elliott> ais523: No.
00:18:49 <elliott> NihilistDandy: Yes.
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:08 <ais523> but not always
00:19:31 <NihilistDandy> Op powers are only for trolling, as far as I can tell
00:19:39 <NihilistDandy> As they should be
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:53 <NihilistDandy> T_T
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 <elliott> god that was a good one
00:21:26 <Sgeo> elliott, since when are wikis virtual worlds?
00:21:30 <elliott> stfu
00:21:40 <elliott> hey oerjan gimme ops i need to find out for sure whether i'd abuse them or not
00:21:51 <ais523> Sgeo: NetHackWiki?
00:21:57 <oerjan> funny guy
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:25:28 <ais523> heh
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:28:20 <NihilistDandy> oerjan: I was wondering
00:29:02 <elliott> oerjan: who's test
00:29:09 <elliott> oh
00:29:10 <elliott> an person
00:29:16 * elliott says hi to them
00:29:19 <oerjan> elliott: the poor innocent victim of my chanserv testing
00:29:31 <elliott> not victim, now friend!!!
00:30:05 <NihilistDandy> Victim != friend?
00:30:09 <NihilistDandy> I have been misinformed
00:30:12 <elliott> now wtf would it segfault /there/
00:30:12 <oerjan> you /msg'ed em?
00:30:13 <NihilistDandy> I have some calls to make
00:30:27 <elliott> oerjan: yes :D
00:30:32 <elliott> how do you ascend a scope in gdb? ais523?
00:30:40 <ais523> frame number
00:30:42 <ais523> as in, frame 4
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:22 <elliott> ais523: thanks
00:31:26 <elliott> ais523: isn't there "frame up" or something?
00:31:35 <elliott> sigh, nope
00:31:37 <NihilistDandy> Oh, well. The sentiment is on point, at least
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:32:21 <elliott> wat
00:32:21 <elliott> oh
00:32:28 <olsner> elliott: wat
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:17 <olsner> elliott: Right.
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> G_FILE_ERROR_EXIST
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> G_FILE_ERROR_NOENT
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:35:47 <elliott> (it's EEXIST, right?)
00:36:05 <elliott> olsner: then the second part is DS9 and it's even more boring :DDDDDDDdddddd oh snap
00:36:10 <elliott> [asterisk]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:33 <elliott> Sgeo: thus my lol
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:36:52 <elliott> what did i do
00:36:57 <elliott> am i asian
00:37:02 <elliott> i broke mcmap help
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:43 <olsner> season 1 ish
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:50 <elliott> NihilistDandy: ...wow
00:37:54 <elliott> NihilistDandy: You're the worst person
00:37:57 <NihilistDandy> lol
00:37:57 <elliott> I'm removing you from the whitelist now
00:38:01 <NihilistDandy> NUUU
00:38:02 <elliott> You think I'm joking
00:38:11 <olsner> TNG really had no plot at all, and for the most part that was a good thing
00:38:13 * NihilistDandy cries and drinks
00:38:19 <NihilistDandy> olsner: Exactly
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:52 <NihilistDandy> elliott: I only watched six episodes of Voyager
00:38:54 <olsner> enterprise is currently my reference to startrek-with-plot
00:38:59 <NihilistDandy> Maybe they were just six decent ones
00:39:02 <elliott> NihilistDandy: OK yeah, stop saying that Voyager is an acceptable thing.
00:39:03 <elliott> You have no idea.
00:39:16 <NihilistDandy> Oh, all right, then
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:31 <olsner> Sgeo: lol
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:49 <elliott> Apart from Sgeo.
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:08 <NihilistDandy> I'll have to look it up
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:41:04 <NihilistDandy> Neat
00:42:32 <NihilistDandy> That was pretty cool. The music's kinda bland, though
00:42:35 <NihilistDandy> Blandly epic
00:42:38 <olsner> NEAT
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:24 <elliott> Literally anything.
00:43:30 <NihilistDandy> Jesus.
00:43:34 <NihilistDandy> I'll take your word for it
00:43:47 <elliott> NihilistDandy: http://www.youtube.com/watch?v=ZPn-lTytfGo Enjoy terrible pop song
00:43:59 <NihilistDandy> AHHHHHHHHHHHHH
00:44:05 <NihilistDandy> Is this the actual intro?
00:44:07 <ais523> elliott: have you tried encoding the garbage string as UTF-16, then decoding it as UTF-8?
00:44:18 <NihilistDandy> WHAT THE FUCK
00:44:21 <elliott> NihilistDandy: Yep.
00:44:25 <NihilistDandy> I DON'T EVEN
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:34 <elliott> touch
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:44:54 <NihilistDandy> Rolfchoppa007 1 day ago
00:45:00 <NihilistDandy> Trolololol
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:46:45 <NihilistDandy> Yup
00:47:29 <itidus20> I support the Wesley Crushers.
00:47:43 <NihilistDandy> I'm watching Troll 2
00:47:54 <NihilistDandy> (USER WAS BANNED FOR THIS MESSAGE)
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:33 <ais523> elliott: for what?
00:48:35 <NihilistDandy> olsner: Shh, you'll get us all killed
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:13 <elliott> okays
00:49:16 <ais523> yep, valgrind command
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:28 <pikhq_> elliott: Yes.
00:50:37 <NihilistDandy> YOU MEAN I'M DRUNK?
00:50:39 <pikhq_> elliott: He's autistic taken up to 11.
00:50:47 <elliott> wow what, bad packet id
00:50:49 <NihilistDandy> I FEEL STRANGE, BUT ALSO GOOD!
00:50:51 <elliott> minecraft why do you hate me
00:51:06 <elliott> i wonder what i broke
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:51 <elliott> >
00:51:54 <elliott> ais523: help what do i tell valgrind
00:51:58 <elliott> it wants to know something
00:52:01 <elliott> it is > prompt...
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:19 <ais523> *input
00:52:29 <elliott> ais523: oh, should i say hello to hello???
00:52:37 <ais523> oh, it's the shell
00:52:40 <ais523> you have an unmatched '
00:52:41 <elliott> > ==3150== Thread 3:
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:52:48 <elliott> ais523: I know :P
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:58:45 <NihilistDandy> Remember when the Motorola Razr was a nice phone?
00:59:07 <elliott> no
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:30 <elliott> olsner: :(
00:59:31 <monqy> is this for real
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:37 <NihilistDandy> elliott: Link?
00:59:39 <NihilistDandy> Oh
00:59:51 <NihilistDandy> Madness
00:59:56 <elliott> did i die and end up in heaven
01:00:05 <olsner> elliott: surely not
01:00:21 <elliott> true, you're still here
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:00:57 <elliott> :D
01:01:01 <NihilistDandy> :D
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:01:24 <olsner> IF ONLY
01:01:55 <Lymee> ...
01:02:01 <Lymee> Where do.... Dwarf eat--
01:02:02 <Lymee> In NyTimes!?
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:01 <elliott> good reporting
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:15 <Lymee> elliott, NO!
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:31 <elliott> omg i am the tarn, its me
01:03:43 <olsner> Tarn Hird
01:03:57 <elliott> i think tarn's a republican though so :(
01:04:04 <olsner> Hird Derp
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:06:42 <itidus20> i know its ironic
01:06:43 <elliott> Gregor: hifive
01:06:48 <Gregor> elliott: wooo
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:29 <olsner> elliott: exactly
01:07:34 <itidus20> could be the salt
01:07:36 <itidus20> hahah
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:07 <NihilistDandy> elliott: Agreed
01:08:18 <NihilistDandy> Meth is so passé
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:11 <NihilistDandy> I think I'm too tall for it
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:10:55 <itidus20> is super mario bros a game?
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:11:49 <monqy> elliottcraft????
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:06 <itidus20> like.. uhh
01:12:07 <NihilistDandy> It's minecraft, except that you're elliott
01:12:09 <itidus20> hahaha hahaha hahaa
01:12:13 <NihilistDandy> It's a niche community
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:27 <monqy> sounds neato
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:50 <NihilistDandy> itidus20: And running to the right
01:12:55 <itidus20> well yeah
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:04 <itidus20> i study these things.
01:13:09 <NihilistDandy> elliott: Lazily generated, one hopes
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:25 <elliott> NihilistDandy: yes :P
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:03 <elliott> :P
01:14:13 <monqy> one time i played minecraft
01:14:15 <monqy> i uh
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:34 <monqy> yeah
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:05 <monqy> money :(
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:12 <NihilistDandy> Even *I* bought it, and I steal everything
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:50 <elliott> (not true)
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:05 <monqy> ouche
01:16:11 <elliott> monqy: well, it's a lot bigger game now :P
01:16:15 <itidus20> humm
01:16:23 <elliott> monqy: aren't new games like sixty dollars anyway
01:16:26 <NihilistDandy> I better not have to buy it again
01:16:29 <elliott> NihilistDandy: no
01:16:35 <NihilistDandy> Good
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:16 <NihilistDandy> olsner: We are all insignificant
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:42 <NihilistDandy> Ouch
01:17:45 <elliott> monqy: also you get to play with us :{
01:17:48 <monqy> :(
01:17:51 <itidus20> Nash failed to create a "video game theory"
01:17:54 <elliott> that was a happy :{
01:17:58 <monqy> oh
01:18:01 <elliott> `addquote <itidus20> Nash failed to create a "video game theory"
01:18:01 <monqy> whats a sad :{
01:18:02 <HackEgo> 539) <itidus20> Nash failed to create a "video game theory"
01:18:02 <itidus20> or he didn't try :P
01:18:04 <elliott> monqy: :{
01:18:13 <elliott> `delquote 539
01:18:14 <HackEgo> ​*poof*
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:19:10 <itidus20> How does M. Bison roll?
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:20:38 <NihilistDandy> itidus20: I don't think Bison has a roll attack
01:20:53 <NihilistDandy> elliott: This article has to be a troll
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:21:32 <NihilistDandy> Vega and Blanka, OTOH...
01:21:49 <itidus20> LIKE A BAWWWSS!
01:21:53 <monqy> what i
01:22:05 <monqy> whats a bawwwss
01:22:07 <itidus20> i cut and pasted someone elses spelling
01:22:22 <monqy> was it mine
01:22:47 <monqy> because i uh
01:22:49 <monqy> bawwss
01:22:51 <monqy> i
01:22:53 <monqy> what is it
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:23:29 <elliott> well not that much
01:23:31 <elliott> but for donations...
01:23:32 <elliott> a lot
01:24:07 <NihilistDandy> "Tarn, 33, lives"
01:24:08 <monqy> like a bowser from mario
01:24:11 <NihilistDandy> In bold, for no reason
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:24:46 <NihilistDandy> elliott: It's not a very convincing one
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:12 <NihilistDandy> As if that's some absurd nerdspeak
01:26:15 <itidus20> Terraria is Lemmings with NPCs.
01:26:25 <elliott> you dont control a character in Terraria
01:26:35 <itidus20> Oh.. I haven't played it.
01:26:49 <ais523> you don't really control a character in Lemmings either
01:26:53 <elliott> erm
01:26:56 <elliott> you control a character in Terraria
01:26:58 <elliott> sorry
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:17 <itidus20> NPCs in lemmings
01:27:27 <elliott> terraria is basically minecraft + rpg
01:27:28 <itidus20> lemmings vs zombies
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:44 <itidus20> i wonder if it has been done
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 <monqy> dying
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:05 <elliott> although very hard
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:30 <elliott> "obamaconspiracy.org"
01:29:37 <itidus20> i know.. im serious though
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:30:43 <elliott> hmm...
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:30 <elliott> source
01:32:31 <elliott> ?
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:34:59 <elliott> ur joking right
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:19 <Sgeo> Oh.
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> Abstract
01:37:17 <elliott> [...]
01:37:18 <elliott> My Source
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:24 <elliott> good
01:37:27 <elliott> good thinker
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:04 <elliott> yes me
01:38:08 <elliott> i have very big soups
01:38:13 <pikhq_> monqy: Well, the XML crowd seems to think that.
01:38:20 <monqy> mmh
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:38:53 <elliott> oh this guy
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:30 <elliott> i wanna hug this guy
01:39:43 <elliott> Artificial Intelligence From the Bible!
01:39:44 <elliott> June 21, 2011
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:01 <monqy> rotting
01:40:01 <Sgeo> Oh, so we can
01:40:07 <Sgeo> can't see when he makes mistakes
01:40:14 <Sgeo> (Erm, as in, in his predictons)
01:40:17 <Sgeo> predictions
01:40:35 <Sgeo> Although I'm sure he'll call any falsifications "voodoo science"
01:40:52 <NihilistDandy> Partially in error
01:40:55 <elliott> im torn between wanting to read the cosa paper and not wanting to because this guy man
01:41:58 <monqy> cosa?
01:42:21 <elliott> monqy: this guy's dataflow software/os/language proposal which seems to be much saner than his other stuff
01:42:25 <elliott> that stanislav linked to
01:42:55 <elliott> OHHH i know whats wrong
01:46:00 <oerjan> indeed, you should never use ketchup with filet mignon
01:47:06 <monqy> what do you advise
01:47:08 <monqy> for use with
01:47:11 <monqy> filet mignon
01:48:09 <oerjan> i like béarnaise sauce
01:48:35 <NihilistDandy> Leave it alone
01:48:50 <oerjan> oh or pepper sauce
01:48:50 <NihilistDandy> Just eat it, and enjoy
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:16 <elliott> it's a stupid point
01:51:24 <elliott> with the context of http://www.loper-os.org/?p=288
01:51:33 <NihilistDandy> Ah
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:52:54 <NihilistDandy> lol, crazy people
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:53:39 <elliott> BUT @ IS BETTER
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:39 * Sgeo ducks
01:54:42 <oerjan> ah.
01:54:46 <elliott> oh --
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:01 <elliott> as of April, it seems
01:55:03 <ais523> so why is clog still here?
01:55:06 <elliott> RIP TUNES
01:55:08 <elliott> monqy: say it
01:55:12 <monqy> i uh
01:55:20 <monqy> reading now
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:26 <ais523> ah, fair enough
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:36 <elliott> or even an acceptable 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:27 <monqy> whats windows
01:57:33 <monqy> whats @
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:55 <ais523> interesting
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 <monqy> elliott: zepto
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:34 <Sgeo> "
01:58:38 <pikhq_> ais523: No argument.
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:33 <ais523> not DOS 1
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:25 <elliott> this was last year
02:00:31 <elliott> well, fifteen months ago
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:11 <elliott> exactly, in fact
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:09 <ais523> there we go
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:13 <elliott> You know, like @.
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:06 <elliott> ais523: yes there is
02:04:10 <ais523> what is it/
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:08 <elliott> ge.
02:05:08 <elliott> "
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:47 <elliott> pikhq: hey
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:22 <ais523> yep
02:07:24 <elliott> ok, C was a bad choice
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:13 <ais523> heh
02:08:19 <ais523> a hipster UI?
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:31 <elliott> (it's just a long hash)
02:09:34 <ais523> or deletion or changes of any objects other than the one I want
02:09:37 <elliott> ais523: Then see above
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:09:48 <elliott> ais523: zooko's triangle
02:09:54 <ais523> oh, right#
02:10:02 <elliott> heh
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:16 <elliott> and which side is that?
02:10:22 <elliott> Human-meaningful?
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:10 <elliott> ais523: It isn't
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:44 <ais523> well, fair enough
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 <elliott> ais523: OK, fair enough
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:14:49 <elliott> ais523: But
02:15:19 <elliott> ais523: Things like functions will have a way to get at their underlying AST
02:15:29 <elliott> Presumably
02:15:33 <elliott> Maybe only in some context like a package
02:15:33 <ais523> oh no
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:44 <elliott> ais523: haha, it isn't
02:15:47 <elliott> ais523: But seriously --
02:15:53 <ais523> you just said "Things like functions will have a way to get at their underlying AST"
02:15:57 <elliott> Then contradicted it
02:16:04 <ais523> ah, OK
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:18 <elliott> I'm not sure
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:46 <elliott_> Missed everything after this
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:25 <ais523> indeed
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:47 <elliott_> ais523: well, yes, definitely
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:24 <Sgeo> Ok
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:38 <Sgeo> again
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:03 <ais523> elliott_: heh
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:31 <elliott_> Every object is a capability!
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:07 <elliott_> Try and name X for me.
02:26:09 <elliott_> ais523: No, it doesn't
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:03 <elliott_> ais523: How?
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:27:57 <elliott_> @ can't stop you.
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 <elliott_> ais523: Well, so what?
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:35 <elliott_> I want to empower the user.
02:28:37 <Sgeo> elliott_, there's a distinction between user and code?
02:28:38 <elliott_> I wish to imprison _code_.
02:28:43 <elliott_> Sgeo: Har har.
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:32 <elliott_> The pointer is the big hash
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:15 <ais523> or not?
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:30:50 <Sgeo> Ah, ok
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:25 <ais523> very slowly, though
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:31:53 <elliott_> ais523: Very funny
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:50 <elliott_> Right.
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:07 <elliott_> [asterisk].
02:33:09 <elliott_> That's literally it.
02:33:15 <elliott_> That's the entire idea.
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:15 <elliott_> Yep
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:44 <elliott_> Dunno why you would, though.
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:09 <Sgeo> does
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:41 <elliott_> Ah
02:35:45 <ais523> like -9 except that the programs get a chance to do cleanup
02:35:50 <elliott_> I know TERM :P
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:26 <elliott_> Think thunks
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:29 <elliott_> Well, yes.
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:06 <elliott_> (See a pattern yet?)
02:40:12 <ais523> indeed
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:31 <elliott_> ais523: interdependency
02:40:33 <elliott_> Just like the UI
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:12 <ais523> elliott_: aha
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:51 <ais523> yep
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:25 <elliott_> Without eval, or whatever.
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:39 <elliott_> Language?
02:43:41 <ais523> Perl
02:43:45 <elliott_> Any eval calls?
02:43:47 <ais523> but it was using eval, without taint checks
02:43:50 <elliott_> See. :)
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:09 <elliott_> but it's still insane
02:44:14 <elliott_> ais523: ouch
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:34 <ais523> indeed
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:44:59 <elliott_> data OK
02:45:00 <elliott_> data NotOK
02:45:04 <elliott_> data Data okornot = ...
02:45:09 <elliott_> unsafe :: Data OK -> ...
02:45:16 <elliott_> thisiscool :: Data NotOK -> Data OK
02:45:17 <elliott_> etc.
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:24 <elliott_> ais523: haha
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:39 <ais523> no, I'm not
02:45:40 <elliott_> heh
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:03 <elliott_> ais523: haha
02:47:12 <elliott_> ais523: you could set up a signal handler before you get put in the box
02:47:15 <elliott_> and catch your crash
02:47:16 <elliott_> oh
02:47:19 <elliott_> you can't catch kill -9
02:47:21 <pikhq> It's read, write, _exit, and sigreturn.
02:47:25 <ais523> pikhq: aha
02:47:36 <ais523> also, sigreturn's allowed? that means that signal handlers are
02:47:40 <elliott_> haha
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:47:56 <elliott_> ais523: yep
02:48:00 <elliott_> ais523: or is that OOM kill?
02:48:02 <elliott_> I forget, but anyway
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:48:51 <elliott_> The suicide code, I mean
02:48:51 <ais523> well, I was wrong
02:48:54 <pikhq> prctl.
02:49:06 <ais523> ah yes, found it
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:20 <ais523> elliott_: yes
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:00 <elliott_> Well, criticism or questions
02:50:05 <ais523> elliott_: no, Feather changes whenever I try to implement it
02:50:09 <elliott_> haha
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:51:35 <elliott_> (note: I won't)
02:52:02 <elliott_> ais523: oh, wait, you didn't know that gnome's file opener let you type in a location?
02:52:23 <ais523> elliott_: no
02:52:25 <elliott_> ais523: that's the top-left icon in the dialogue; click it and it'll focus by default
02:52:26 <elliott_> you're welcome
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:34 <ais523> *too
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:53:53 <elliott_> yeah, that sucks
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:22 <elliott_> directly
02:56:23 <elliott_> inspection-style
02:56:30 <elliott_> @'s interface also doubles as the best programming interface ever
02:56:35 <elliott_> and inspector/debugger, too
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:14 <elliott_> now I have no idea
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:27 <elliott_> but it's too text-oriented
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:15 <elliott_> xbm, I think
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:35 <ais523> elliott_: fair enough
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:05 <elliott_> Why those, and not bolding?
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:13 <elliott_> ais523: right
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:32 <elliott_> ais523: Very funny
02:59:35 <elliott_> That's hardly semantic :)
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:11 <elliott_> word
03:00:13 <elliott_> With a link?
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:45 <elliott_> :D
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:27 <elliott_> And it searches those tags
03:01:29 <ais523> (originally filmed with camcorder pointed at screen)
03:01:33 <elliott_> in a text file
03:01:37 <ais523> elliott_: that seems altogether too sane
03:01:52 <elliott_> ais523: SSDS = grep with automatic video playing, I think
03:01:57 <ais523> ah, right
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:14 <elliott_> long paste, but oh well
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:28 <elliott_> it's {grep, random mplayer}
03:02:34 <ais523> ah
03:02:39 <ais523> also, /me /clears
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:11 <elliott_> pipes are a good idea
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:11 <elliott_> | is (>>=)
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:16 <elliott_> heh
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:34 <ais523> yep
03:06:39 <elliott_> zzo38: s/ls/echo/
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 <elliott_> (Maybe.)
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:06 <elliott_> Small integers, that is.
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:00 <elliott_> yep
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:50 <elliott_> pikhq: Well, Genera exists.
03:09:53 <elliott_> So does Smalltalk.
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:17 <elliott_> <elliott_> So does 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:02 <elliott_> ais523: Also, OK, but why?
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:21 <elliott_> (usually text documents)
03:11:24 <elliott_> ais523: heh
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:37 <monqy> or am i loon
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:07 <ais523> pikhq: yes
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:39 <elliott_> monqy: me too
03:13:41 <ais523> elliott_: yes, I think so
03:13:49 <elliott_> ais523: Right
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:21 <elliott_> Oh, well right
03:14:27 <elliott_> But it'd depend on /interfaces/
03:14:29 <elliott_> You can't avoid that
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:13 <Lymee>
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:48 <elliott_> and it has a bunch of links
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:12 <elliott_> also, grep -r Feather .
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:21:55 <monqy> oh
03:21:56 <elliott_> as in visually
03:22:34 <monqy> oh
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:27:40 <elliott_> like
03:27:44 <monqy>
03:27:44 <elliott_> caret
03:27:46 <elliott_> -
03:27:46 <elliott_> ---
03:27:47 <elliott_> monqy: ah thanks
03:30:13 <monqy> and on greping for feather in logs, is this with the expectation that i have every log file :(
03:31:49 <elliott_> yes
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:33:08 <monqy> !logs
03:33:13 <monqy> like that
03:33:34 <elliott_> yes
03:33:37 <elliott_> see your notice
03:33:38 <elliott_> use rsync
03:33:40 <monqy> yep
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 <Sgeo> !logs
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:32 <elliott_> or hmm
03:39:40 <elliott_> monqy: oh, texlive-fonts-recommended should get you it
03:39:51 <elliott_> that give syou postscript fonts
03:39:53 <elliott_> which is better
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:23 <elliott_> monqy: what os do you use
03:41:29 <elliott_> is it a, bad os
03:41:31 <monqy> arhclinux is that bad
03:41:36 <monqy> am i ab ad person
03:41:40 <monqy> :'(
03:41:43 <elliott_> yes :)
03:41:45 <monqy> :'(
03:42:07 <elliott_> lemme find charter for arch
03:42:15 <elliott_> monqy: pacman -S xorg-fonts-type1
03:42:19 <elliott_> pacman -S arch-sucks
03:42:43 <monqy> :'(
03:43:14 <monqy> at least i dont use (worse distributuieon here)
03:43:44 <elliott_> does dcc work for you
03:43:50 <monqy> i think so maybe
03:43:58 <elliott_> do you see that
03:44:18 <elliott_> that's literally just my forum post reformatted and with one bit crossed out
03:44:19 <elliott_> woo it failed
03:45:01 <elliott_> monqy: meh, do you have a gpg key
03:45:10 <monqy> i forget if i ever bothered
03:45:15 <monqy> probably not
03:45:15 <elliott_> psht
03:45:19 <elliott_> I'll just sprunge it
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:42 <elliott_> only @
03:45:48 <elliott_> I use Debian because it works unlike Arch
03:45:53 -!- lambdabot has joined.
03:45:59 <elliott_> yaaaaaaaaaaaay
03:46:02 <elliott_> me hug lambdabot
03:46:09 * Lymee hugs elliott_ <3
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:41 <elliott_> oh shit wait monqy
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:48 <elliott_> :(999
03:46:54 <elliott_> its UNEBARBEL
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:03 <monqy> i will remove it
03:47:08 <monqy> rmeoved
03:47:10 <Lymee> > "\^AACTION hugs elliott_\^A"
03:47:10 <lambdabot> "\SOHACTION hugs elliott_\SOH"
03:47:13 <Lymee> :(
03:47:57 <elliott_> monqy: ok see /msg
03:48:03 <elliott_> my mistake will, never be known,
03:48:13 <monqy> downeloded
03:48:54 <elliott_> > text "\^AACTION hugs elliott_\^A"
03:48:54 <lambdabot> ACTION hugs elliott_
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:50:51 <elliott_> heh
03:50:53 <Lymee> !hug
03:50:56 <zzo38> This one works.
03:51:12 <Lymee> !python print "test"
03:51:14 <EgoBot> test
03:51:30 <Lymee> !show python
03:51:30 <EgoBot> sh python
03:51:37 <elliott_> monqy: btw this is from March, so of course @ has changed almost entirely since then :)
03:51:41 <elliott_> (not really)
03:51:42 <oerjan> EgoBot definitely doesn't work with ACTION any more.
03:51:44 <monqy> :( :)
03:51:49 <Lymee> :(
03:51:51 <elliott_> monqy: also that <del> is from my editing of it right now
03:51:52 <elliott_> the strikeout
03:51:57 <Lymee> !python print "<CTCP>ACTION test<CTCP>"
03:51:57 <EgoBot> ​.ACTION test.
03:52:01 <monqy> oop
03:52:09 <monqy> rip
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:07 <elliott_> OH GOD HE;S JDGING ME
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:06 <elliott_> is nonplusedness a word
03:54:19 <monqy> elliott_: when i tried reading it after expressing nonplusedness
03:54:30 <elliott_> how far did you get
03:54:34 <oerjan> `addquot <elliott_> its UNEBARBEL
03:54:36 <HackEgo> No output.
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:01 <elliott_> monqy: lol which act
03:55:05 <monqy> i cant recall
03:55:12 <elliott_> monqy: which page number
03:55:14 <elliott_> which anything
03:55:17 <monqy> no recolaection
03:55:25 <elliott_> what was happening
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:55:41 <monqy> it wasn'ta ct 1
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:58:13 <elliott_> Lymee: thx for the CTCP ""
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:00:52 <monqy> totaly
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:12 <Sgeo> n/m
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:02:55 <elliott_> that just makes you subhuman
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:05:09 <elliott> Sgeo: yes
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:26 <elliott> re-start, i mean
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:19 <elliott> maybe more
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:09:37 <elliott> days
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:11:37 <elliott> ha, looks like a fake
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:13:08 <elliott> Sgeo: top of main page
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:19:18 <Sgeo> at.html?
04:19:47 <elliott> Sgeo: yes
04:20:00 <fizzie> "old.r * (1-alpha) + new.r * alpha" (plus same for g/b) is very traditional.
04:20:09 <elliott> fizzie: thx
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:22 <elliott> Sgeo: no 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:20:38 <elliott> But it's a start.
04:20:49 <fizzie> It's a fart.
04:21:10 <elliott> fizzie: Also: new is the one with the alpha, right?
04:21:13 <elliott> i.e. the RGBA.
04:21:25 <fizzie> Well, it's the one "on top".
04:21:33 <elliott> Right.
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:22:51 <elliott> Right.
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:16 <elliott> Hope that's okay.
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> tell("MODE: %s%s%s%s%s",
04:25:42 <elliott> modenames[map_mode],
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:26:53 <fizzie> That is a bit weird.
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:18 <elliott> 05:29:05 §bMODE: surface
04:29:19 <elliott> 05:29:05 MODE: surface끾
04:29:20 <elliott> OK, that's insane.
04:29:30 <elliott> The string is correct, but inject_to_client is fucking it up.
04:29:33 <elliott> Somehow.
04:30:02 <elliott> fizzie: Ah.
04:30:05 <elliott> fizzie: I think you broke it, man.
04:30:09 <elliott> jshort_write(lenb, conv_len);
04:30:10 <elliott> With this, somehow.
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:02 <elliott> Sgeo: Ignore them.
04:31:07 <elliott> Sgeo: Or answer it.
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:33:50 <elliott> fizzie: Meh, good enough.
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:27 <elliott> hmm
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:07 <elliott> hmm
04:45:13 <elliott> ah wait hmm
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:46:23 <oerjan> ah.
04:46:30 <zzo38> But I can try.
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:47:45 <elliott> monqy: possibly!!!
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:23 <elliott> monqy: no :P
04:49:30 <monqy> yocto
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:51:00 <elliott> Sgeo: no
04:52:00 <Sgeo> Sgeo, Y U NO PUT NO IN Y U?
04:52:41 <oerjan> PORQUE NO TE CALLAS?
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:42 <monqy> assembly?
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:04 <monqy> which flavour
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:35 <elliott> Sgeo: Me too.
04:56:48 <elliott> Sgeo: If you find out, let me know.
04:56:48 <Sgeo> Hmm
04:57:02 <monqy> making a compiler for a high-level language in assembly sounds like a pain
04:57:07 <elliott> monqy: Interpreter
04:57:13 -!- pikhq_ has joined.
04:57:13 <monqy> even so
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:17 <elliott> monqy: Well, yeah.
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:00:40 <elliott> monqy: just use @
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:05:23 <oerjan> *tree
05:06:20 <zzo38> OK.
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:09:07 <zzo38> Yes.
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:25 <elliott> everything is NP-complete
05:16:29 <elliott> everything interesting, at least
05:16:45 <oerjan> perhaps
05:17:17 <elliott> monqy: btw will you use @ i need committed users for funding
05:18:55 <monqy> i will use @
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:20:23 <monqy> same with @lang
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:26:29 <elliott> <monqy> :(
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:22 <elliott> monqy: it's beautiful
05:29:26 <zzo38> That is why I would want to figure out if there is better things
05:29:27 <elliott> and amazing and perfect
05:29:28 <monqy> that too
05:29:35 <elliott> monqy: keep reading btw, you'll see ais gradually go completely insane
05:29:40 <elliott> in the everyday sense
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:27 <monqy> the best
05:31:32 <monqy> elliott: btw whats the everyday sense of insane
05:31:49 <oerjan> (</mel brooks>)
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:33:23 <elliott> oh god which day
05:33:29 <monqy> uhh
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:12 <elliott> true facts :{
05:37:27 <elliott> ./combined:20:49:49: * tusho watches RodgerTheGreat come and say "THAT'S IMPOSSIBLE! JUST LIKE FEATHER!"
05:37:32 <elliott> not helpful grep...
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:46 <monqy> grep for that
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:07 <elliott> monqy: im ehird btw
05:38:10 <monqy> i know
05:38:11 <elliott> i guess you knew that
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:20 <monqy> sort of
05:40:22 <elliott> or was that cpressey
05:40:23 <elliott> dunno
05:40:24 <monqy> i did?
05:40:32 <monqy> anyway i don't know of any roguelikes i like
05:40:50 <elliott> which did you plau
05:40:51 <elliott> y
05:41:05 <monqy> its complicated
05:41:12 <elliott> youre avoiding answering because you have bad taste
05:41:16 <monqy> yes
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:41 <elliott> FROM THIS YEAR
05:41:42 <elliott> NOOOOOOOOOOOOOOOOOOOOOOOO
05:41:47 <elliott> i cant talk to you any mor
05:41:47 <elliott> e
05:41:49 <monqy> and ##crawl-dev
05:41:52 <elliott> die forever :{
05:41:55 <monqy> 8)
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> bhaak
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:19 <elliott> Likes ke$ha
05:42:21 <elliott> good isnults A+
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:19 <elliott> erm, after
05:43:30 <elliott> oh wait no
05:43:31 <elliott> i just grepped wrong
05:43:46 <elliott> monqy: yes ok.
05:43:46 <monqy> are there any good roguleikkes
05:43:49 <elliott> monqy: how anal are those guys even
05:43:54 <elliott> monqy: yes. vagrant
05:44:05 <elliott> it's so beautiful you have no idea.
05:44:08 <monqy> will check it out
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:29 <elliott> it's like
05:44:31 <elliott> a kilobyte big
05:44:34 <elliott> and so amazing
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:44:59 <elliott> whoever ops crawl-dev
05:45:03 <monqy> oh
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:23 <monqy> oh :(
05:47:28 <elliott> well it is
05:47:30 <elliott> but mostly not.
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:47:41 <elliott> felt dirty.
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:13 <monqy> im hapy
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:52 <elliott> usually :D
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:54:57 <pikhq_> But not much.
05:55:08 <pikhq_> Wanna say, uh, 22?
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:32 <monqy> hi
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:02:43 <pikhq_> Clearly.
06:03:04 <itidus20> isn't it a physical impossibility to bootstrap something?
06:03:15 <itidus20> rather a systemic impossibility
06:03:17 <pikhq_> Not really.
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:42 <itidus20> about how
06:03:45 <pikhq_> There is no requirement that your initial build was bootstrapped.
06:04:06 <itidus20> nevermind ^^;
06:04:14 <itidus20> hmm
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:07 <pikhq_> itidus20: Yes.
06:05:19 <zzo38> Are there C compilers written in assembly languages?
06:05:26 <elliott> zzo38: probably
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:18 <elliott> hi Taneb
06:08:21 <Taneb> Hello
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:34 <elliott> pikhq_: but but @
06:08:45 <elliott> anyway it's not circular if it's portable
06:08:47 <itidus20> oro.
06:08:51 <itidus20> i am very much confused
06:08:53 <pikhq_> elliott: For Linux package management.
06:09:04 <itidus20> hahahahhaha
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:11 <pikhq_> Taneb: Yes.
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:34 <elliott> pikhq_: yep
06:09:48 <itidus20> is the bootstrapped section just the minimum necessary to build the rest?
06:10:27 <itidus20> oh i see now..
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:10:56 <elliott> obviously
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:11:47 <itidus20> same shit really
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:06 <oerjan> yeah
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:05 <itidus20> uhh... or something
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:36 <itidus20> sometimes you might
06:18:38 <oerjan> pikhq_: well it _might_ but it could also compile on the fly immediately, like ghc does
06:18:51 <pikhq_> oerjan: Yeah, true...
06:18:51 <oerjan> *ghci
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:30 <oerjan> ah
06:21:43 <elliott> including in the repl
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:22:50 <itidus20> or maybe you would
06:22:51 <itidus20> :)
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 <itidus20> yeah, its not such a bad idea
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
06:28:15 <itidus20> heavy..
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:52 <itidus20> a personality type i think
07:12:59 <oerjan> a clumsy tortoise
07:12:59 <itidus20> a turtle goes into their shell
07:13:01 <Taneb> A hand signal made during awkward silences
07:13:06 <itidus20> oh. lol
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:14:14 <monqy> classic itidus20
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:15:22 <itidus20> Everything seems to go wrong
07:16:23 <itidus20> does he ever come here?
07:16:51 <oerjan> not to my knowledge
07:16:56 <Taneb> No, I don't think he does
07:17:01 <itidus20> has he ever? :P
07:17:17 <itidus20> same answers?
07:17:20 <Taneb> I'm not even sure he's seen the wiki
07:17:22 <itidus20> thats fascinating
07:17:24 <itidus20> hahahahahahaha
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:21 <itidus20> ah ok
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:17 <itidus20> its funny how that works out
07:20:18 <ais523> it is
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:20:35 <ais523> *submissions
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:03 <oerjan> hm...
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:29:33 <itidus20> He has the mindset
07:29:41 <itidus20> He just doesn't know it yet.
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:31:51 <oerjan> *i can
07:32:03 <elliott> oerjan: im sobbing loudly
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:33 <itidus20> ahhh
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:29 <elliott> itidus20: im lol
07:33:32 <elliott> ais523: who said it was java???
07:33:37 <ais523> oh, good point
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:04 <elliott> it's adorable
07:34:05 <ais523> oh, right
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:34:39 <ais523> or worse, x / 1048576
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:05 <itidus20> i found him by that means
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:46 <pikhq_> elliott: *wince*
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:35 <itidus20> australia kicks ass
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:02 <elliott> but I know it anyway
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:26 <ais523> but am not certain
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:32 <elliott> And I meant most famous
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:17 <coppro> hrm
07:41:22 <itidus20> they're everywhere
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:31 <coppro> *6
07:41:59 <itidus20> i don't get out much.. but i have seen them in the wild several times
07:42:16 <pikhq_> coppro: Do tell.
07:42:29 <pikhq_> Also, s/Erdos/Erdős/
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:32 <coppro> as he was an extra
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:07 <pikhq_> Erdős + Bacon
07:46:12 <ais523> aha
07:46:17 <ais523> so 65 is really quite difficult?
07:46:28 <pikhq_> Unless you have a time machine.
07:46:41 <Taneb> Bye, everyone
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:41 <pikhq_> Yes.
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:05 <pikhq_> oerjan: Or time.
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:48:47 <elliott> hmm, or not
07:48:52 <elliott> Vorpal: see -minecraft
07:49:01 <elliott> just after you joined
07:49:02 <pikhq_> Yup.
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:11 <elliott> it's not broken
07:49:40 <coppro> ais523: oh wait you filter URLs
07:49:51 <elliott> no he doesn't
07:49:55 <elliott> not any more
07:50:01 <ais523> I delink them
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:23 <elliott> an academic paper
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:50:55 <elliott> Sgeo: no.
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:11 <Sgeo> </silly>
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:26 <elliott> ais523: :D
07:52:28 <ais523> and he replied?
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:00 <Sgeo> Oh, darn
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:12 <elliott> really?
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:08 <ais523> *OTB style
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:47 <Sgeo> iirc
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:01 <coppro> ais523: I do
07:56:06 <coppro> (not)
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:10 <coppro> ais523: ewwww
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:04 <coppro> ah ok
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:18 <ais523> but I can't
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 <elliott> (see ultrafinitists :P)
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:27 <coppro> and vim
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:02 <ais523> *outputting to
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:21 <coppro> Sgeo: right
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:30 <coppro> ais523: ah
08:04:40 <ais523> planning to play in junethack, btw?
08:04:49 <elliott> what are muted goals?
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:38 <elliott> well insulting-ish :P
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:18 <Sgeo> coppro, ping
08:06:20 <elliott> "bhaak
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:21 <elliott> Likes ke$ha"
08:06:30 <ais523> and possibly the person with the most (although not the largest volume) of AceHack patches but me
08:06:39 <coppro> Sgeo: makes sense
08:06:47 <elliott> goodplayers
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:07:32 <ais523> a picture of a twit?
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:53 <elliott> ais523: bad logic
08:08:58 <coppro> Sgeo: To all finite patterns
08:08:58 <ais523> elliott: indeed
08:08:59 <elliott> X=>Y =/= Y=>X
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:33 <elliott> "monqy
08:09:34 <elliott> killed good players, is a horrible person"
08:09:34 <pikhq_> ais523: Not everyone would know.
08:09:36 <elliott> yep
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:17:36 <elliott> Now back to mcmap
08:18:05 <ais523> another completely unscientific comparison: NetHack's been slashdotted more often than Crawl
08:19:04 <elliott> ais523: oh, /come on/
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:04 <coppro> a?
08:20:07 <coppro> *sa?
08:20:12 <elliott> coppro: something awful
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:32 <ais523> aha
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:48 <ais523> oh, that makes sense
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:02 <elliott> maybe they do :-P
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:01 <itidus20> its a weird idea
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:32 <elliott> 5,187 Users Logged In
08:24:33 <elliott> 3,550 registered users logged in.
08:24:33 <elliott> 155,024 users total.
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:24:54 <elliott> Obvious statements woo :P
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:15 <elliott> t
08:25:20 <ais523> pikhq_: haha, that must have been specialcased
08:25:21 <pikhq_> coppro: Day after the Mayan calendar ends.
08:25:26 <pikhq_> ais523: Undoubtedly.
08:25:27 <elliott> it's not
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:47 <elliott> oh wait, duh
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:08 <coppro> yeah, I know the date
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:20 <coppro> I do not
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:51 <elliott> plasma
08:28:55 <pikhq_> Specifically, every day on the proleptic Gregorian calendar.
08:29:34 <pikhq_> And then some.
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:06 <elliott> hahaha
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:23 <pikhq_> Yes.
08:32:27 <elliott> itidus20: no, it is hand-written by the comic irregulars
08:32:28 <elliott> pikhq_: fuck you
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:21 <elliott> ?
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:44 <myndzi> goes by holdnext
08:38:47 <itidus20> ohhhh
08:38:55 <myndzi> i swear to god every post he makes sounds like a markov chain text generator
08:38:58 <itidus20> so theres actually characters
08:38:58 <myndzi> but apparently he's a real person
08:39:22 <elliott> um fizzie
08:39:27 <elliott> Uint32 v = *b;
08:39:27 <elliott> if (v < 64)
08:39:27 <elliott> rgba = RGBA_OPAQUE(4*v, 4*v, 0);
08:39:27 <elliott> else
08:39:27 <elliott> rgba = RGBA_OPAQUE(255, 255-4*(v-64), 0);
08:39:29 <elliott> b is the array of blocks
08:39:34 <elliott> don't you want to use y, not v?...
08:39:57 <elliott> oh wiat no
08:40:00 <elliott> b is different for that
08:40:01 <elliott> argh
08:43:41 <elliott> ais523:
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> if (ly & 1)
08:43:42 <elliott> lv_block >>= 4, lv_day >>= 4;
08:43:42 <elliott> else
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:43:44 <Sgeo_> Huh?
08:43:46 <elliott> typical mcmap code
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:22 <oerjan> (requires P != NP)
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:08 <Sgeo_> </lame-joke>
08:48:15 <ais523> it's been made before
08:48:41 <ais523> also, what if P = +Inf, N = 2?
08:48:44 <coppro> +Inf is not a number
08:48:56 <elliott> no, that's NaN
08:49:03 <oerjan> > (1/0) == (0/0)
08:49:04 <lambdabot> False
08:49:07 <ais523> elliott: +Inf * 2 = +Inf
08:49:14 <ais523> > (1/0) * 2
08:49:15 <lambdabot> Infinity
08:49:28 <elliott> it was a joke
08:49:37 <elliott> ais523: I would just like you to know that I edit mcmap with four-wide tabs
08:49:37 <ais523> oh, I see
08:49:40 <ais523> in response to coppro
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:26 <oerjan> Sgeo_: FREAKS
08:50:28 <elliott> ais523: SOOO ANGRYYYYYYYYY
08:50:33 <elliott> Sgeo_: oh god don't
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:48 <ais523> *it
08:51:49 <elliott> uh oh ais523
08:51:58 <elliott> you implicitly acknowledged that there MAY exist tabs that are not equal to eight psaces there
08:52:05 <elliott> better be careful!!!!
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:31 * Sgeo_ hides
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:41 <ais523> that's cheating!
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:58:49 <elliott> since I know the context
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:23 <elliott> haha
08:59:25 <elliott> OH THE MEANING-CHANGE
08:59:33 <ais523> I said "slightly different"
09:00:15 <oerjan> slightldyifferent
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:24 <ais523> but it was paywalled
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:05 <elliott> but fair enough
09:03:16 <elliott> but you could see the article greyed-out with the one I'm talking about
09:03:20 <ais523> I couldn't
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:08 <elliott> it is :P
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:02 <itidus20> Ok so an idea came to me.
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:36 <elliott> even cooperatively
09:20:52 <itidus20> but minecraft at least has NPCs I guess thats the diffeernce
09:21:05 <itidus20> maybe you don't need humans
09:21:10 <itidus20> maybe NPCs are enough
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:21:58 <elliott> cows too
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:19 <itidus20> oh.. i mean..
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:30:44 <itidus20> lol
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:27 <elliott> i referred to solo builds
09:33:40 <oklopol> oh sorry
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:42 <oklopol> well read a fucking book
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:14 <oklopol> no it doesn't
09:37:16 <oklopol> it never does
09:37:18 <coppro> yes it does
09:37:21 <oklopol> no it doesn't
09:37:22 <oklopol> it never does
09:37:27 <coppro> I have to disagree
09:37:31 <oklopol> well i have to agre
09:37:32 <oklopol> e
09:37:35 <oklopol> ...with myself
09:37:36 <coppro> k then
09:37:43 <itidus20> lol
09:37:45 <oklopol> k indeed
09:37:49 <coppro> obviously this disagremeent can be settled in only one fashion
09:37:54 <oklopol> obviously
09:37:55 <oklopol> what is that
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:32 <elliott> issue resolved
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:40:52 <oklopol> are you mocking me?
09:41:08 <elliott> no
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:15 <oklopol> are you sure
09:41:18 <elliott> the annotations of this were ten times better than the comics itself
09:41:19 <elliott> oklopol: yes
09:41:31 <oklopol> because that would've been a rather subtle form of mocking
09:41:45 <elliott> ...:| synchronicity
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:22 <Sgeo_> Damn shift key
09:42:36 <oklopol> *pixelcomic updAtEd
09:42:38 <elliott> Sgeo_: nope
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:43:54 <Sgeo_> :(
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:45:14 <oklopol> these are awesome
09:46:11 <elliott> oklopol: i love how it'd be a really shitty comic without the annotations making fun of it
09:47:45 <oklopol> i would love it anyway
09:47:49 <Sgeo_> elliott, btw, MSPA is more stable now
09:47:55 <elliott> Sgeo_: i read it ages ago
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:52:54 <elliott> which comic
09:53:01 <oklopol> quimbox
09:53:03 <oklopol> you must have
09:53:10 <oklopol> because you said it was the worst comic in the world
09:53:20 <elliott> is that the vjn thing
09:53:35 <oklopol> yes
09:53:43 <elliott> istr it being amazing
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:56:56 <elliott> oklopol: it's great :D
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:00:50 <elliott> for algorgorgotihms
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:03:28 <itidus20> are you sure?
10:03:40 <itidus20> :D
10:04:12 * Sgeo_ is referring to two-state CA with an I-forget-the-name neighborhood
10:04:17 <oklopol> if state is binary
10:05:00 <itidus20> conway's game of life neighborhood?
10:05:04 <Sgeo_> Yes
10:05:22 -!- Taneb has joined.
10:05:33 <Taneb> Hello
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:05:45 <elliott> it links to both :D
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:42 <oklopol> Taneb: cellular automata
10:07:47 <elliott> isn't that just "finite state machines cycle"
10:07:50 <Taneb> Okay
10:07:53 <elliott> ZOMG WOWZ
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:47 <Sgeo_> Same thing though
10:08:59 <Sgeo_> Um, did I state "doesn't grow past m*n"?
10:09:02 <Sgeo_> I might not have
10:09:07 <oklopol> Sgeo_: but wrapping the rule around?
10:09:13 <oklopol> err
10:09:17 <oklopol> wait what
10:09:29 <oklopol> oh oscillator
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> 110 - AN END - 030124
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:11:39 <elliott> oklopol: it's study
10:11:43 <oklopol> yeah
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:12 <elliott> rip oerjan++
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:03 <elliott> ONLY $19.95
10:17:03 <elliott> BUT WAIT
10:17:04 <elliott> CALL NOW AND GET AN ADDITIONAL
10:17:04 <elliott> MINUTE OF YOUR LIFE STOLEN
10:17:24 <elliott> THE QUESTION IS
10:17:25 <elliott> SUPERFLUOUS WEALTH SOMEHOW GIVES ONE
10:17:25 <elliott> THE ABILITY TO GROW AN ERRATIC MOUSTACHE
10:17:25 <elliott> a question apparently
10:17:35 -!- FireFly has joined.
10:18:38 <Taneb> Get out of here as soon as you can
10:19:32 <elliott> wat
10:19:40 <elliott> FireFly is an idler
10:19:51 <FireFly> Yeah
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:19 <oklopol> itidus20: yeah i got that
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:36:21 <elliott> ofc i don't
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:39:00 <oklopol> pizza
10:39:04 <oklopol> ->
10:45:00 <itidus20> or is that just what they want you to thin
10:45:05 <itidus20> ^think
10:52:33 <Sgeo_> Derp.
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:07 <coppro> nah
10:56:09 <coppro> those aren't 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:00:52 * Sgeo_ slaps self
11:01:11 <Sgeo_> (And yes, that's what I was looking for for quite a long period of time here)
11:06:28 <itidus20> all of math is unremarkable
11:06:42 <coppro> most of math is unremarkable
11:06:44 <coppro> not all
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:11:55 <coppro> Sgeo_: No, I don't
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:23 <coppro> haha
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:18 <Taneb> We've got a sword
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:17:50 <oklopol> what's an entry point?
11:18:19 <Sgeo_> Say that | | are symbols for repeat
11:18:22 <Sgeo_> A |B C|
11:18:26 <Taneb> I've been holding a sword
11:18:27 <Sgeo_> A would be an entry point
11:18:33 <Sgeo_> I think
11:18:34 <oklopol> "<coppro> the basic foundations of abstract algebra are utterly boring" <<< no they are not!
11:18:40 <oklopol> they are utterly awesome
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:19:52 <itidus20> hehehe
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 <coppro> Sgeo_: yeah
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:07 <coppro> oklopol: uh what
11:22:13 <oklopol> they are big.
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:12 <oklopol> by doing nothing
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:23:48 <coppro> so whee
11:24:22 <oklopol> results in it? you mean evolves into it? no that's obviously false
11:24:44 <coppro> s/finite/toroidal/
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:42 <oklopol> no
11:25:46 <oklopol> oh for gol again
11:25:51 <coppro> but the one about oscillators might be different between finite limited space, and finite toroidal space
11:25:55 <coppro> yes this is all gol
11:26:01 <coppro> CAs exist without edens
11:26:07 <oklopol> obviously
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:26 <Sgeo_> Oh?
11:27:39 <oklopol> no wait, maybe not, hmmhmm
11:27:42 <oklopol> where in the logs, today?
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:07 <coppro> *forward
11:28:15 <coppro> oklopol: Just add a dot in the 5x5 hole
11:28:46 <oklopol> and what then
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:29:56 <oklopol> so it was for periodic ok
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:30 <oklopol> oh
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:36:23 <oklopol> ah that's a good point
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:22 <coppro> yeah
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:39:14 <oklopol> oh indeed it is
11:39:27 <oklopol> forgot what the rule was
11:39:35 <coppro> so did I at first :)
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:35 <coppro> torus
11:43:50 <oklopol> wrapping around?
11:43:52 <coppro> If not, which sizes of torii admit states with no goe preimage
11:43:57 <coppro> that's what torii do
11:44:09 <oklopol> usually yeah
11:44:26 <coppro> *tori
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:52 <oklopol> hmm
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:48:25 <oklopol> *not
11:49:16 <coppro> yeah :D
11:49:47 <oklopol> how far have you checked?
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:24 <oklopol> for small patterns
11:51:52 <coppro> yeah
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:01 <coppro> *cases
11:52:03 <Sgeo_> If we can prove that the lower bound on GoEs = the number of patterns without 5x5 holes
11:52:11 <oklopol> pedia
11:52:14 <coppro> oklopol: That's hardly sufficient
11:52:29 <Sgeo_> How many patterns are there without 5x5 holes?
11:52:35 <elliott> coppro: whoosh
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:32 <oklopol> to what?
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:47 <coppro> :P
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:48 <coppro> interesting
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:02 <coppro> oklopol: prove it :P
11:55:09 <coppro> Sgeo_: Dude
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:55:54 <Sgeo_> Sorry
11:56:00 <coppro> ah ok
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
11:59:41 <coppro> except on small tori
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:19 <itidus20> ooh 3x3 torus. nifty
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:01:45 <oklopol> as i said
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:28 <oklopol> homework: why?
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:47 <oklopol> oh hmm
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:40 <oklopol> because that can happent
12:04:42 <oklopol> *happen
12:04:44 <coppro> oklopol: sure
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:08 <coppro> *in an
12:05:09 <Sgeo_> Pattern in phase 1 + dot has goe primage.
12:05:11 <Sgeo_> preimage.
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:34 <oklopol> oh hmm
12:07:37 <coppro> oklopol: No
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_> preimage.
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:10:24 <oklopol> oh lol
12:10:28 <oklopol> yeah okay igi :D
12:10:38 <oklopol> hey that's a neat trick
12:11:38 <elliott> this code is a shit :(
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:12:35 <elliott> Sgeo_: no
12:13:26 <oklopol> so to generalize
12:13:34 <oklopol> if you have two preimages, then you have a goe nth preimage
12:13:38 <coppro> yeah
12:13:53 <coppro> in finite state space, anyway
12:13:56 <oklopol> yes
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:16:49 <oklopol> in finite space
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:07 <coppro> oklopol: right
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:50 <itidus20> it's all a function of IRC
12:18:52 <coppro> 3x3 admits oscillators with no goe nth preimage, as does 1xn with n>=3
12:19:35 <coppro> actually wait
12:19:39 <Sgeo_> With no goe nth preimage, or no goe nth preimage provable with a 5x5 hole?
12:19:39 <oklopol> cool
12:19:43 <coppro> has to be even n
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:21:55 <coppro> neat ones too
12:22:12 <coppro> would be good for the patterns of random lights that repeat in weird cycles in scifi schows
12:22:33 <coppro> oh there we go
12:22:42 <coppro> they each represent a symmetric 2-morphism
12:22:45 <coppro> NO WONDER
12:22:58 <oklopol> well the only way not to admit an oscillator is to have everything go to zero
12:23:09 <coppro> err sorry
12:23:23 <coppro> non-goe predecessor oscillator
12:23:45 <coppro> need a good adjective
12:23:47 <coppro> stranded?
12:23:52 <oklopol> i don't think we have a name for this concept in math
12:23:58 <oklopol> so come up with your own
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:51 <coppro> 1x5 is nilpotent
12:26:55 <coppro> Sgeo_: talking about the video
12:27:39 <coppro> 1x7 has a weird spaceship oscillator
12:27:44 <oklopol> :o
12:28:30 <coppro> actually, how about a xenophobic oscillator
12:28:38 <Sgeo_> ...wha
12:28:39 <Sgeo_> ?
12:28:42 <coppro> I like that name
12:28:51 <oklopol> does it not like other kinds of oscillators
12:28:56 <coppro> nope
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:23 <Sgeo_> Ah
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:23 <oklopol> (clopen in fact)
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:37 <coppro> yeah
12:33:48 <coppro> not sure if I prefer stranded or closed
12:33:50 <elliott> rendaer a q
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:34 <Sgeo_> Hmm, ok.
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:49 <coppro> I suppose
12:37:52 <Sgeo_> If you have multiple preimages for a state, then it's not a closed/stranded oscillator
12:37:54 <Sgeo_> iiuc
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:38:56 <coppro> (for even n, anyway)
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:40:43 <coppro> *in it
12:41:22 <coppro> (another problem: Is there a general solution to the number of distinct oscillators on an mxn torus?
12:41:57 <coppro> anyway, bed
12:42:00 <oklopol> nope
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:50 <coppro> ah
12:42:55 -!- cheater_ has quit (Ping timeout: 255 seconds).
12:42:59 <oklopol> night
12:43:10 <Sgeo_> Huh?
12:43:21 <Sgeo_> First: You can't impement a TM on a torus
12:43:22 -!- cheater_ has joined.
12:43:28 <oklopol> you can't?
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:04 <Sgeo_> oklopol, what?
12:45:21 <oklopol> what?
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:14 <oklopol> ...
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:45 <oklopol> *surely
12:46:49 <oklopol> what i meant originally
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:23 <Sgeo_> Oh, wait
12:56:32 <elliott> p-hard
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:56:55 <oklopol> elliott: (sic)
12:58:06 <oklopol> basically just means you can draw a finite part of a turing machine config in the state
12:58:12 <oklopol> or a circuit
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:58:39 <Sgeo_> Ok
12:59:21 <elliott> oklopol: is the algo "for i in ... setp gol"
12:59:26 <elliott> step
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:23 <Sgeo_> Hmm.
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:43 <itidus20> and it was fun to see
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:51 <oklopol> my thumb still applies
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:10:39 * oklopol prepares more insults
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:02 <oklopol> hasn't been done yet
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:03 <elliott> tm =/= jutm
13:13:06 <elliott> utm
13:13:16 <Sgeo_> Oh
13:13:21 <Sgeo_> hmm
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:15:54 <oklopol> well work time
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:25:31 <itidus20> they make it all possible etc
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:30:49 <Sgeo_> My scheme, I mean
13:31:13 <Sgeo_> 8 possible states, so you need 3 bits
13:31:28 <itidus20> 00 + 01 = 01 .. that creates a problem
13:31:38 <elliott> just do a bitmask duh
13:31:39 <elliott> powers of two
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:35:47 <itidus20> addition is kind of a luxury
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:37:45 <elliott> <elliott> powers of two
13:37:57 <elliott> oh wait, three bits
13:38:03 <elliott> meh
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:26 <Sgeo_> itidus20, look
13:38:35 <Sgeo_> 0+ is North, 0- is South
13:38:41 <Sgeo_> 00 is Neutral
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:19 <itidus20> ah ok this is the trits
13:39:41 <Sgeo_> So, +0 + 0+ is North + West = NorthWest
13:39:45 <Sgeo_> = ++
13:39:53 <itidus20> probably the netral is a necessary placeholder for the addition
13:39:58 <itidus20> ^neutral
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:35 <itidus20> hmm ok
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:41:42 <itidus20> ohhh
13:41:45 <itidus20> right ok i see now
13:41:54 <itidus20> thats deep
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:33 <oklopollen> quickly, make a guess!
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:12 <oklopollen> no never ever.
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:41:12 <Taneb> Hello
14:48:22 <Sgeo_> Believe it or not, etc. etc. etc.
14:48:25 <Sgeo_> Bye
15:01:44 <CakeProphet> Wow, that's pretty etc, etc, etc.
15:02:28 <CakeProphet> I'd rather not think about the details so, etc, etc.
15:05:05 <cheater_> sup CakeProphet
15:07:20 <CakeProphet> nothing much...
15:07:28 <CakeProphet> chilling after work. tired as shit.
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:50 <Elizacat> hai fizzie
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:09 <Elizacat> hahahahaha
16:11:10 <Elizacat> it's ok :P
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:31 <Elizacat> so :p
16:11:44 <Elizacat> the onus would be on me for that wouldn't it
16:12:02 <CakeProphet> I am extrovert online
16:12:06 <CakeProphet> because I don't give a shit.
16:12:18 <Elizacat> fizzie, I'm normally pretty nice if not rather unserious :p
16:12:26 <Elizacat> fizzie, just be aware :P
16:12:35 <CakeProphet> it's always serious business around here.
16:12:39 * Elizacat is a good friend of Vorpal's
16:12:44 <Elizacat> internet is serious business CakeProphet
16:12:46 <Elizacat> you wanna go
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:10 <CakeProphet> fuck punctuation.
16:13:11 <Elizacat> CakeProphet, come at me bro
16:13:11 <Elizacat> :p
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:20 <Elizacat> I did that
16:14:21 <Elizacat> :p
16:14:30 <Elizacat> Vorpal and I built a self-regenerating house <3
16:14:33 <Elizacat> well
16:14:36 <Elizacat> he did the logic
16:14:38 <Elizacat> I just had the idea
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:10 <CakeProphet> I tried to teach my ex Python.
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:06 <CakeProphet> not quite.
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:23 <CakeProphet> right.
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:19 <oklopol> thank god
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).
16:56:06 <Elizacat> haha
16:56:11 <Elizacat> oh god
16:56:13 <Elizacat> me dating Vorpal
16:56:17 <Elizacat> I'm sorry
16:56:18 <Elizacat> that is just
16:56:19 <Elizacat> no :P
16:56:24 <Elizacat> no offense Vorpal
16:56:26 <Elizacat> but I wouldn't date you :P
16:56:28 <Elizacat> and you wouldn't date me
16:56:30 <Elizacat> I'm too crazy
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:24 <elliott_> uh oh sgeo
17:33:45 <Gregor> Uh ohhhhhhhhh, sgettio
17:34:07 <Gregor> Y'know where I'm off to? Lancaster!
17:34:19 <Taneb> Lancaster?
17:34:25 <Taneb> But that's in Lancashire!
17:34:32 <Gregor> Dun dun DUNNN
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:40:30 <Vorpal> but click didn't work
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:31 <pikhq> If it won'
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:51:10 <Lymee> *giggles*
18:53:59 <elliott_> everyone likes haskell on this site
18:55:03 <coppro> /win 1
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:34:25 <coppro> ais523: whoa
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:55:38 <oerjan> wat
19:58:02 <oerjan> is this still referring to that pixelcomic
20:00:56 <elliott_> yes
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:12:46 <quintopia> zzo38: what was it again?
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:19:58 <quintopia> okay
21:20:05 <quintopia> doesnt quite make sense
21:20:10 <quintopia> i'll read it better soon
21:20:22 <oerjan> tunes' time zone is so broken you cannot even search on the minutes.
21:22:56 <elliott_> quintopia: use codu
21:23:04 <elliott_> advicewithoutcontext.com
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:14:17 <elliott_> heh
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:05:05 <oerjan> or do i...
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:10:32 <itidus20> follow the white rabbit
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:14 <oerjan> wat
23:11:47 <itidus20> we planted the chopsticks for you to eat
23:12:04 <oerjan> ...i don't believe you.
23:12:21 <elliott_> oerjan: we are HERE
23:12:24 <itidus20> good. i apologize
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:11 <elliott_> haha, great timing itidus20.
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:14:08 <oerjan> QANTUM BEER NEEDSITY?
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:34 <elliott_> and you cannot trust them all
23:15:44 <oerjan> yes. i doubt they would let him chat from prison.
23:16:16 <elliott_> are you saying you escaped :|
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:29 <elliott_> oh
23:17:34 <elliott_> are you trying to escape
23:17:35 <oerjan> of course there are similarities. i am blond, somewhat tall, and not a muslim.
23:17:35 <elliott_> THIS
23:17:36 <elliott_> MORTAL
23:17:37 <elliott_> COIL
23:18:21 <elliott_> hi oerjan
23:18:36 <oerjan> i'll ignore that question.
23:18:42 -!- Sgeo has joined.
23:19:11 <elliott_> oh. sory. lo oerjan.
23:19:34 <elliott_> oh riead as suggestion
23:19:39 <elliott_> oerjan: hows a ijf
23:19:49 <oerjan> very rieadbale
23:20:09 <elliott_> and thatw as when oerjan turned into a cat
23:20:12 <elliott_> ~Thend/
23:20:29 <oerjan> miawat
23:21:05 <monqy> i mcofnused
23:21:20 <oerjan> monqy: itns eryvoene
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:45 <elliott_> reading
23:23:51 <Sgeo> elliott_, /me wants to read it
23:23:55 <elliott_> what ae re verbs actulay
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:26 <elliott_> but no
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:48 <elliott_> monqy: did you follow it
23:28:58 <monqy> im not of legal drinking age.........
23:29:07 <elliott_> monqy: so yes then
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:35 <monqy> :(
23:31:36 <elliott_> is squarelos,,cool
23:31:41 <elliott_> i do not play, crawl, at all, ever, so,
23:31:44 <monqy> oh
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:23 <monqy> and
23:32:25 <elliott_> i would like to have eyes that have circular line of sight
23:32:28 <elliott_> that would be great
23:32:30 <elliott_> well spherical
23:32:37 <elliott_> well um do i
23:32:40 <elliott_> i dont know much about eyes
23:32:44 <monqy> :(
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:29 <elliott_> rip
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:34:52 <oerjan> was ist los
23:35:34 <Sgeo> line of sight
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:11 <elliott_> this is beautiful
23:36:15 <elliott_> i want to see crawl space
23:36:27 <elliott_> wait
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:33 <elliott_> help;p
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:33 <elliott_> Sgeo: no shit
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:04 <elliott_> that's
23:39:06 <elliott_> probably a bad sign
23:39:26 <Lymee> @pl \x = (magnitude x)<iterations
23:39:26 <lambdabot> (line 1, column 4):
23:39:26 <lambdabot> unexpected "="
23:39:26 <lambdabot> expecting operator, pattern or "->"
23:39:31 <Lymee> @pl \x -> (magnitude x)<iterations
23:39:32 <lambdabot> (< iterations) . magnitude
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:40:50 <elliott_> hmmmmmmmmmmmmmmmmmm
23:40:51 <elliott_> this is hard
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:44:46 <elliott_> a sprunge or?
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:05 <elliott_> ok but
23:46:06 <elliott_> ok
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:09 <elliott_> okay, thank you
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:50:52 <elliott_> ah
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.
2011-07-24
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:21 <bsmntbombdood> why is lambdabot in #esoteric?
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:14:23 <bsmntbombdood> @pl \x -> (x,x)
00:14:23 <lambdabot> join (,)
00:15:20 <bsmntbombdood> @t join
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:27 <bsmntbombdood> @type join
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:20:35 <bsmntbombdood> i forgot how the function monad instance works
00:30:51 <Lymee> @pl (\x -> map (\y -> (tick*x, tick*y)) [-half..half])
00:30:52 <lambdabot> (line 1, column 37):
00:30:52 <lambdabot> unexpected "["
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> (line 1, column 36):
00:31:14 <lambdabot> unexpected "["
00:31:14 <lambdabot> expecting variable, "(", operator or end of input
00:31:16 <Lymee> :(
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:35:33 <Lymee> barf barf barf
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:06 <oerjan> :t (*) `on` recip
01:00:07 <lambdabot> forall a. (Fractional a) => a -> a -> a
01:00:31 <Lymee> @hoogle Fractional -> Integral
01:00:31 <lambdabot> Warning: Unknown type Fractional
01:00:31 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
01:00:31 <lambdabot> Prelude ($) :: (a -> b) -> a -> b
01:00:46 <Lymee> @src Double
01:00:46 <lambdabot> data Double = D# Double#
01:00:49 <oerjan> Lymee: floor, ceiling, round
01:00:54 <Lymee> I see.
01:01:07 <oerjan> :t floor
01:01:07 <lambdabot> forall a b. (RealFrac a, Integral b) => a -> b
01:01:15 <Sgeo> Hmm
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> (line 1, column 36):
01:02:23 <lambdabot> unexpected "["
01:02:23 <lambdabot> expecting variable, "(", operator or end of input
01:02:28 <oerjan> huh
01:03:06 <oerjan> weird broken parser
01:03:15 <oerjan> (given that it accepts it without -
01:03:17 <oerjan> )
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:33 <Lymee> Bleh.
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:41:58 <Lymee> Oh!
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:44:56 <lambdabot> parse error on input `)'
01:44:57 <oerjan> er
01:45:00 <oerjan> :t \(a :+ b) -> a*a + b*b < 4
01:45:01 <lambdabot> forall t. (RealFloat t) => Complex t -> Bool
01:45:08 <oerjan> that might be better
01:46:12 <oerjan> also perhaps findIndex is more efficient than length $ takeWhile ...
01:46:22 <oerjan> :t findIndex
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:50 <Lymee> :t ap
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> Parse error:
01:52:56 <lambdabot> --count=20 "forall (m :: * -> *) a b. (Monad m) => m (a -> b) -> m a -> m b"
01:52:56 <lambdabot> ^
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:09:20 <lambdabot> (xCenter +) . (tick *)
02:13:25 -!- cheater_ has joined.
02:16:18 <Lymee> :t findIndex
02:16:18 <lambdabot> forall a. (a -> Bool) -> [a] -> Maybe Int
02:16:26 <Lymee> :t (a->a)->a->Int
02:16:27 <lambdabot> parse error on input `->'
02:16:33 <Lymee> :t (a -> a) -> a -> Int
02:16:33 <lambdabot> parse error on input `->'
02:16:58 <Lymee> ??
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:28:59 <Lymee> A, doh.
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:30:49 <oerjan> > x^2
02:30:50 <lambdabot> x * x
02:31:21 <CakeProphet> ha.
02:31:21 <oerjan> they are absolutely identical
02:31:32 <monqy> > x * 3
02:31:33 <lambdabot> x * 3
02:31:44 <Sgeo> :t x
02:31:45 <lambdabot> Expr
02:31:49 <Sgeo> Ooh
02:31:56 <Sgeo> > x :: Num
02:31:57 <lambdabot> Class `GHC.Num.Num' used as a type
02:31:59 <oerjan> (in final result)
02:32:03 <Sgeo> > show x
02:32:04 <lambdabot> "x"
02:32:10 <Sgeo> Ooh
02:32:14 <Sgeo> This is a good idea
02:32:20 <CakeProphet> ...I thought everyone already knew about Expr.
02:32:21 <Sgeo> > y
02:32:22 <lambdabot> y
02:32:25 <CakeProphet> > fix f
02:32:25 <lambdabot> Ambiguous type variable `a' in the constraints:
02:32:25 <lambdabot> `GHC.Show.Show a'
02:32:25 <lambdabot> a...
02:32:29 <Sgeo> > a
02:32:30 <lambdabot> a
02:32:31 <CakeProphet> > fix f :: Expr
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:36 <CakeProphet> > scanl1 (*) [a,b,c,d,e]
02:33:37 <lambdabot> [a,a * b,a * b * c,a * b * c * d,a * b * c * d * e]
02:35:28 <Lymee> > a+b
02:35:29 <lambdabot> a + b
02:35:32 <Lymee> Heh.
02:35:34 <Lymee> Didn't know that existed.
02:35:41 <Lymee> Any way to evaluate that?
02:35:47 <Lymee> > a+g
02:35:48 <lambdabot> a + g
02:35:51 <Lymee> > (a+g) 1 1
02:35:52 <lambdabot> Couldn't match expected type `t1 -> t2 -> t'
02:35:52 <lambdabot> against inferred type ...
02:35:55 <oerjan> not to my knowledge
02:36:07 <Lymee> :t a
02:36:07 <lambdabot> Expr
02:36:12 <Lymee> @src Expr
02:36:12 <lambdabot> Source not found.
02:36:27 <oerjan> Lymee: it's in a package named simplereflect
02:36:31 <oerjan> iirc
02:37:14 <oerjan> http://hackage.haskell.org/package/simple-reflect
02:38:17 <oerjan> oh there's a reduction function
02:38:34 <oerjan> reduction (a+b+c+d)
02:38:37 <oerjan> er
02:38:39 <oerjan> > reduction (a+b+c+d)
02:38:40 <lambdabot> Not in scope: `reduction'
02:38:42 <oerjan> oops
02:39:15 <oerjan> maybe lambdabot doesn't have the latest version
02:39:28 <oerjan> > reduce (1+2+3+4)
02:39:29 <lambdabot> 3 + 3 + 4
02:39:34 <oerjan> > reduction (1+2+3+4)
02:39:34 <lambdabot> Not in scope: `reduction'
02:39:42 <Lymee> >reduce (a+b+c+d)
02:39:46 <Lymee> > reduce (a+b+c+d)
02:39:46 <lambdabot> a + b + c + d
02:39:52 <Lymee> > reduce (a*b+a*c)
02:39:53 <lambdabot> 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:03 <lambdabot> a * (b + c)
02:40:08 <Lymee> Bleh.
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:41:58 <lambdabot> Not in scope: `dropUntil'
02:42:10 * Lymee runs
02:42:18 <oerjan> :t var
02:42:19 <lambdabot> forall a. String -> Sym a
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:28 <lambdabot> Not in scope: `!='
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:42:43 <lambdabot> 1 * 2 + 3 * 4
02:42:47 <Lymee> Aww.
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:12 <oerjan> hm...
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:12 <oerjan> > 14 == (14 :: Expr)
02:47:13 <lambdabot> True
02:47:25 <oerjan> > reduce (2+12) == (14 :: Expr)
02:47:26 <lambdabot> True
02:47:54 <oerjan> > reduce (2+12) /= (14 :: Expr)
02:47:55 <lambdabot> False
02:48:10 <oerjan> > 2+12 /= (14 :: Expr)
02:48:10 <lambdabot> False
02:48:16 <oerjan> ooh
02:48:19 <oerjan> darn
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:07 <lambdabot> True
02:51:16 <Lymee> > reduce (2+12+4+5) /= (25 :: Expr)
02:51:17 <lambdabot> True
02:51:23 <Lymee> > (2+12+4+5) /= (25 :: Expr)
02:51:24 <lambdabot> True
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:35 <Lymee> opps
02:51:36 <Lymee> my math fail
02:51:39 <oerjan> :P
02:51:40 <Lymee> > (2+12+4+5) /= (23 :: Expr)
02:51:41 <lambdabot> False
02:53:48 <Lymee> > reduce (i*i)
02:53:48 <lambdabot> i * i
02:53:54 <Lymee> > reduce (i+i)
02:53:54 <lambdabot> i + i
02:54:03 <Lymee> > reduce (i^3)
02:54:04 <lambdabot> i * i * i
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:13 * Lymee runs
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:52 <Lymee> Aww.
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:03 <oerjan> argh
02:55:09 <oerjan> @list undo
02:55:09 <lambdabot> undo provides: undo do
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:21 <oerjan> darn
02:55:28 <Lymee> What did you want to do?
02:55:31 <oerjan> @do x >>= f
02:55:31 <lambdabot> do { a <- x; f a}
02:55:40 <oerjan> turn it into a list comprehension
02:55:48 <Lymee> Ah.
02:57:19 <oerjan> [ [ fracf $ (xCenter+x) :+ (yCenter+y)) | x <- range ] | y <- range ]
02:58:04 <Lymee> Already did it.
02:58:06 <Lymee> :)
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:00 <Lymee> uh
03:02:01 <Lymee> wait why did i do that
03:02:15 <Lymee> ><
03:02:18 <oerjan> beats me :P
03:03:42 <Lymee> -cpp Run the C pre-processor on Haskell source files
03:03:42 <Lymee> [dynamic]
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:20 <Lymee> real0m24.731s
03:08:21 <Lymee> user0m24.650s
03:08:21 <Lymee> sys0m0.036s
03:08:21 <Lymee> [snip]:~/hs$ time ./mandelbrot 1000 0 0 1 300 output.png
03:08:21 <Lymee> real0m7.606s
03:08:23 <Lymee> ......
03:08:25 <Lymee> o.o
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:54 * Lymee boggles
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:12:23 <oerjan> "
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:25:52 <Lymee> Not funny.
03:25:52 <Lymee> =p
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:41:48 <NihilistDandy> Ohai
03:47:25 <coppro> hrm... crap
03:47:36 <NihilistDandy> Wut
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
03:49:18 * NihilistDandy nods
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:25 * NihilistDandy trumpets
04:34:56 <CakeProphet> honestly are there programmers out there who think abstraction is in general bad?
04:35:56 <coppro> better not be
04:36:05 <NihilistDandy> College C programmers
04:36:37 <NihilistDandy> Oracle admins
04:46:46 <Sgeo> What about COBOL programmers?
04:47:30 <NihilistDandy> I AM FORTRAN AND I DISLIKE CHANGE
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:05:37 <quintopi1> or...the price of oil in canada
05:06:02 <quintopi1> and the age of the current pope of course
05:07:12 <NihilistDandy> Also your favorite ice cream
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:44:31 <pikhq_> s/magic/Magic/
05:45:07 <pikhq_> Meh, whatever, I regret it not.
05:45:12 <zzo38> Do you have more information?
05:45:18 <NihilistDandy> pikhq_: magic, of course
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:48:28 <coppro> haha
05:48:35 <coppro> link?
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:53:24 <coppro> *solitaire
05:54:02 <pikhq_> (FWIW, FreeBSD typically has a CVS checkout of the source used to build the system in /usr/src)
05:54:15 <NihilistDandy> Ah
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:15 <pikhq_> Yes.
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?
05:58:25 <pikhq_> I dunno, I'll look.
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:04:44 <NihilistDandy> Link?
06:06:48 <Sgeo> NihilistDandy, have you read all of Homestuck?
06:06:58 <NihilistDandy> No.
06:19:52 <CakeProphet> technically no one has.
06:21:33 <monqy> andrew husey in the future
06:22:05 <monqy> adnrew, sorry
06:24:02 <NihilistDandy> I didn't find the character Evinrude's (in The Rescuers) name meaningful until I got older
06:24:07 <NihilistDandy> Then it was funny for a second
06:24:22 <coppro> I should finish PS
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:29:58 <quintopi1> when i was like 7
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:30:26 <NihilistDandy> quintopi1: I lived in a landlocked state
06:30:34 <NihilistDandy> With no boating friends
06:30:39 <quintopi1> aha
06:30:41 <NihilistDandy> I'm sorry I didn't have a yacht like some people
06:30:44 <NihilistDandy> :P
06:31:15 <quintopi1> i'm sorry i was taken fishing from very young in tiny johnboats
06:31:39 <NihilistDandy> I did all my fishing from land :D
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:20 <NihilistDandy> :D
06:47:57 <itidus20> so now what we need is a torus shaped monitor
06:48:58 <itidus20> with uh.. touchscreen
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:14 <NihilistDandy> Being stupid?
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:54:50 <NihilistDandy> Mostly a joke
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....
06:59:46 <CakeProphet> +been
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:05 <CakeProphet> :t Expr
08:19:06 <lambdabot> Not in scope: data constructor `Expr'
08:19:21 <CakeProphet> @hoogle a -> Expr
08:19:21 <lambdabot> Warning: Unknown type Expr
08:19:21 <lambdabot> Prelude id :: a -> a
08:19:21 <lambdabot> Data.Function id :: a -> a
08:19:26 <CakeProphet> :t x
08:19:27 <lambdabot> Expr
08:20:13 <CakeProphet> > a > b
08:20:13 <lambdabot> False
08:20:36 <CakeProphet> > a < b
08:20:37 <lambdabot> True
08:20:42 <CakeProphet> > a + 1 < b
08:20:43 <lambdabot> True
08:21:24 <CakeProphet> > succ a
08:21:25 <lambdabot> succ a
08:22:05 <CakeProphet> > EnumFromTo a z
08:22:05 <lambdabot> Not in scope: data constructor `EnumFromTo'
08:22:09 <CakeProphet> > enumFromTo a z
08:22:09 <lambdabot> *Exception: not a number
08:22:53 <CakeProphet> > pred . succ $ a
08:22:54 <lambdabot> pred (succ a)
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:24:26 <CakeProphet> that pretty much is Java.
08:24:55 <CakeProphet> at least in program structure.
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:41:53 <CakeProphet> What's wrong with the type system?
08:41:59 <CakeProphet> aside from requiring verbose syntax.
08:42:34 <Taneb> I've had an idea for an esolang!
08:42:40 <Taneb> All about ducks!
08:43:22 <pikhq_> CakeProphet: It's static and not good enough to handle type inference.
08:43:32 <pikhq_> i.e. it sucks.
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:58:40 <Taneb> Far to the South
08:58:59 <Taneb> Durham
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:02:30 <Taneb> Hahaha
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:20 <coppro> @pl
11:00:21 <lambdabot> (line 1, column 1):
11:00:21 <lambdabot> unexpected end of input
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:32 <lambdabot> (line 1, column 6):
11:00:32 <lambdabot> unexpected "="
11:00:32 <lambdabot> expecting pattern or "->"
11:00:36 <coppro> @pl \x y -> (len x) == (len y)
11:00:36 <lambdabot> (. len) . (==) . len
11:00:42 <coppro> quiet you
11:02:33 <coppro> ahah
11:07:04 <azaq23> :t (==) `on` length
11:07:05 <lambdabot> forall a. [a] -> [a] -> Bool
11:07:17 <coppro> yeah I know
11:07:20 <coppro> I just caught myself
11:17:40 -!- Phantom_Hoover has joined.
11:21:50 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
11:36:51 <twice11> :t (. len) . (==) . len
11:36:52 <lambdabot> Not in scope: `len'
11:36:52 <lambdabot> Not in scope: `len'
11:37:01 <twice11> :t (. length) . (==) . length
11:37:02 <lambdabot> forall a a1. [a1] -> [a] -> Bool
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:08 <lambdabot> flip . (((.) . (==)) .)
11:46:33 <twice11> @pl \l1 l2 a b -> (l2 a) == (l1 b)
11:46:33 <lambdabot> flip (flip . (((.) . (==)) .))
11:46:45 <twice11> @pl \l1 l2 a b -> (l1 b) == (l2 a)
11:46:45 <lambdabot> (.) . flip . ((==) .)
11:46:54 <twice11> @pl \l1 l2 a b -> (l2 b) == (l1 a)
11:46:54 <lambdabot> flip ((.) . flip . ((==) .))
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:33 <ais523> as a noun, yes
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:09 <Sgeo> Seriously?
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:06:29 <Sgeo> hmm, n/m
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:03 <CakeProphet> itidus20: it happens.
13:52:45 <itidus20> cake: i have so much dissatisfaction with so many things that a rant can erupt at any time.
13:53:15 <CakeProphet> > foldl1 (flip par) $ scanl1 (*) [1..]
13:53:23 <lambdabot> mueval-core: Time limit exceeded
13:53:23 <lambdabot> mueval: ExitFailure 1
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:08 <lambdabot> mueval-core: Time limit exceeded
13:54:13 <CakeProphet> > foldl1 (flip par) . take 50 . scanl1 (*) $ [1..]
13:54:16 <lambdabot> 1
13:54:22 <CakeProphet> lol
13:54:58 <CakeProphet> Yeah, sometimes I feel like executing the first 50 factorials in parallel for absolutely no gain.
13:56:27 <CakeProphet> except that's not really what happened.
13:56:46 <CakeProphet> > foldl1 par . take 50 . scanl1 (*) $ [1..]
13:56:47 <lambdabot> 30414093201713378043612608166064768844377641568960512000000000000
13:57:21 <CakeProphet> I think even then it's still sequential.
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:01:18 <tswett> Aye?
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:06:01 <CakeProphet> and his name changed every post.
14:06:16 <CakeProphet> and was also full of latex crap.
14:06:43 <Lymee> tswett, wat.
14:07:06 <CakeProphet> > deleteAllFiles `par` 'wat'
14:07:07 <lambdabot> <no location info>:
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:54 <Lymee> @src seq
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:44 <Lymee> ....
14:18:45 <Lymee> wat
14:18:56 <Deewiant> @pl doesn't understand list comprehensions
14:19:04 <Lymee> I see...
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:19 <tswett> Aww, how cute.
14:33:37 <tswett> $pl \x -> [y + 1 | y <- x]
14:33:40 <tswett> @pl \x -> [y + 1 | y <- x]
14:33:40 <lambdabot> return . (y +) . ((1 | y) <-)
14:33:56 <tswett> Hee hee.
14:35:33 <CakeProphet> heh.
14:36:46 <olsner> nice
14:45:27 <Vorpal> what the?
14:45:30 <Vorpal> <tswett> @pl \x -> [y + 1 | y <- x]
14:45:31 <Vorpal> <lambdabot> return . (y +) . ((1 | y) <-)
14:45:34 <Vorpal> I don't get it
14:45:43 <Vorpal> :t (<-)
14:45:45 <lambdabot> parse error on input `<-'
14:45:49 <Vorpal> so...
14:45:53 <Vorpal> what the hell
14:45:55 <Deewiant> Vorpal: 2011-07-24 17:18:47 ( Deewiant) @pl doesn't understand list comprehensions
14:46:02 <Vorpal> Deewiant, *oh* hah
14:46:14 <Deewiant> @. pl undo \x -> [y + 1 | y <- x]
14:46:14 <lambdabot> ((1 +) `fmap`)
14:46:24 <Vorpal> :t undo
14:46:24 <lambdabot> Not in scope: `undo'
14:46:30 <Vorpal> Deewiant, where is undo from?
14:46:35 <Deewiant> @help undo
14:46:35 <lambdabot> undo <expr>
14:46:35 <lambdabot> Translate do notation to Monad operators.
14:46:41 <Vorpal> ah
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 <CakeProphet> > foldll1 (`f`) [a,b,c]
15:32:15 <lambdabot> <no location info>: parse error on input `)'
15:32:30 <CakeProphet> blasphemy!
15:32:57 <Deewiant> (`f`) would be equivalent to (f)
15:34:08 <CakeProphet> yes I was seeing if it worked.
15:41:23 <tswett> Android headset:nä
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:54:58 <fizzie> Oh, good.
15:55:24 <Deewiant> (\x y -> (x`f`y) would work for any arity >= 2)
15:55:34 <fizzie> Roight.
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:00:57 <CakeProphet> yep, I love needless complication. :)
16:01:20 <fizzie> Right. And "f" is not a proper workaround for complicating "f". (Unless you're being very gracious.)
16:01:52 <CakeProphet> > fix id
16:01:55 <lambdabot> mueval-core: Time limit exceeded
16:01:57 <CakeProphet> :t fix id
16:01:58 <lambdabot> forall a. a
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:19 <CakeProphet> techsters?
16:53:30 <ais523> perhaps
16:53:35 <CakeProphet> can you put -ster on the end of anything to make it sound condescending?
16:54:18 <ais523> I don't know
16:55:44 <atehwa> numberster
16:55:55 <atehwa> graph rewritester
16:56:29 <atehwa> fixed pointster
16:56:55 <CakeProphet> > map (++ "ster") $ (`replicateM` ['a'..'z']) >>= [1..]
16:56:56 <lambdabot> The section ``Control.Monad.replicateM`
16:56:56 <lambdabot> ['a' .. 'z']' takes o...
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:57:23 <CakeProphet> ...okay so maybe not everything...
16:57:23 <atehwa> tadaa
16:57:47 <atehwa> ester = "lousy e"
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:47:30 <NihilistDandy> [asterisk]that sentence was horribly structured
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:48:46 <NihilistDandy> Better
19:51:34 <NihilistDandy> Any thoughts on the matter?
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:57:54 <NihilistDandy> [asterisk]numbers
19:57:58 <oerjan> ok
19:57:59 <NihilistDandy> My bad
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:02:44 <NihilistDandy> Which still boils down to shift/add
20:03:15 <oerjan> no... it is much faster
20:03:27 <oerjan> because it's parallelized, not a loop
20:04:05 <NihilistDandy> Right, faster in terms of actually getting done
20:04:09 <oerjan> but i think ais523 is the right person to ask about this
20:04:12 <NihilistDandy> I mean in the sense of number of instructions
20:04:17 <ais523> about what?
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:05:51 <oerjan> heh
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:32 <NihilistDandy> It's not about speed
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:00 <NihilistDandy> It's not about length
20:09:05 <ais523> what is it about, then?
20:09:06 <NihilistDandy> It's about what the computer's doing
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:09:57 <NihilistDandy> So I've read
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:10:05 <ais523> *fine
20:10:06 <oerjan> (i mean hi)
20:10:51 <oerjan> seems not.
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:11:49 <NihilistDandy> Right
20:11:59 <NihilistDandy> Totally irrelevant to anything meaningful
20:12:03 <NihilistDandy> Just a curiosity
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:49 <ais523> yep
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:55 <NihilistDandy> lol
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:09 <NihilistDandy> I'm too #esoteric for #esoteric :D
20:15:10 <oerjan> whence bathyspheres?
20:15:19 <ais523> whereas in most channels, you get told off for asking questions like that
20:15:43 <monqy> oerjan: that way
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:15:58 <oerjan> ok, thanks
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:10 <ais523> bleh
20:16:16 <ais523> what about md5/sha1 hashes?
20:16:30 <pikhq> I dunno.
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:18:03 <NihilistDandy> (╯°□°)╯︵ ┻━┻
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:08 <NihilistDandy> So, quite
20:24:16 <oerjan> i was going to say 9 as a wild guess. although presumably that mostly applies to government buildings...
20:24:20 <NihilistDandy> But only halfway there
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:11 <pikhq> s/the/a/
20:28:16 <NihilistDandy> FROM BEYOND THE GRAVE
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:33:16 <oerjan> hm...
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:34:58 <oerjan> god have mercy
20:35:17 <NihilistDandy> God is dead
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:36:21 <oerjan> bah
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:26 <oerjan> hm right
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:38:18 <oerjan> oh hm
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:19 <oerjan> yay
20:39:25 <oerjan> twice11: ^
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:45:24 <NihilistDandy> http://wondermark.com/740/
20:46:41 <ais523> @pl liftM
20:46:41 <lambdabot> fmap
20:46:46 <ais523> bleh
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:06 <ais523> umm, that's backwards
20:47:08 <bsmntbombdood> @t liftM
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:11 <bsmntbombdood> @type liftM
20:47:12 <lambdabot> forall a1 r (m :: * -> *). (Monad m) => (a1 -> r) -> m a1 -> m r
20:47:16 <bsmntbombdood> @type fmap
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:23 <ais523> there we go
20:47:33 <oerjan> <Lymee> @src seq
20:47:37 <ais523> I worked that out last night, and it increased my understanding of monads somewhat
20:47:43 <ais523> @src fmap
20:47:43 <lambdabot> Source not found. Your mind just hasn't been the same since the electro-shock, has it?
20:47:54 <ais523> @src liftM
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:48:57 <lambdabot> m1 >>= \ x1 -> return (f x1)
20:49:06 <oerjan> @pl m1 >>= \ x1 -> return (f x1)
20:49:06 <lambdabot> f `fmap` m1
20:49:12 <oerjan> heh
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:50:55 <oerjan> *le
20:51:01 <bsmntbombdood> @pl (\a b c -> a c (b c))
20:51:01 <lambdabot> ap
20:51:28 <bsmntbombdood> @src ap
20:51:29 <lambdabot> ap = liftM2 id
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:57:47 <oerjan> O KAY
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:28 <oerjan> *ion
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:03:25 <oerjan> sadly so
21:04:08 <oerjan> :t uncurry(***)
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:17:06 <Sgeo> "
22:20:12 <Sgeo> http://tvtropes.org/pmwiki/pmwiki.php/WMG/DoctorWho I'm loving this
22:20:25 <olsner> what is WMG?
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:07 <NihilistDandy> SGEO IS A TIME LORD
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
22:56:39 <elliott_> hth
22:56:46 <elliott_> hi oerjan :P
22:56:50 <quintopia> i ate some mandelbrot today
22:57:04 <oerjan> g'day
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:19:44 <elliott_> that's super gross
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:21:17 <elliott_> (nowadays)
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_> 03:25:52: <Lymee> Not funny.
23:22:50 <elliott_> 03:25:52: <Lymee> =p
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:25:14 <elliott_> i mean, essentially
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:20 <elliott_> oerjan: so define a helper
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:32 <elliott_> oh come on
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:27:55 <elliott_> see response
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:10 <elliott_> no
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:00 <elliott_> Sgeo: it wasn't earlier.
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:14 <oerjan> er wait
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 <elliott_> ?hoogle IO a -> IO (Maybe a)
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:26 <lambdabot> Prelude Just :: a -> Maybe a
23:35:32 <itidus20> i guess i'm not actually helping anyone with my comments
23:35:44 <itidus20> more like a heckler
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:39 <elliott_> itidus20: "we"
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:27 <itidus20> i'm still defensive.
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:06 <Sgeo> Hmm, ok
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:40 <elliott_> > optional (read ")" :: Int)
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:41:49 <lambdabot> against i...
23:41:51 * elliott_ grumble
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:13 <itidus20> hehe
23:42:23 <elliott_> ?hoogle optional
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:42:55 <elliott_> oh wait
23:42:57 <elliott_> I need a return
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_> <interactive>:1:1:
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:09 <elliott_> grmbl
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:46:34 <itidus20> Clearly they work.
23:47:04 <itidus20> The numbers 0,1,2,3,4,5 can be expected to hold firm for millions of years
23:47:12 <elliott_> > mzero :: IO ()
23:47:13 <lambdabot> Overlapping instances for Control.Monad.MonadPlus GHC.Types.IO
23:47:13 <lambdabot> arising f...
23:47:14 <itidus20> billions etc
23:47:17 <elliott_> oerjan: argh
23:47:23 <elliott_> oerjan: (there is:
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:49:36 <itidus20> nope
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> Parse error:
23:53:23 <lambdabot> --count=20 "\a b -> catch a (const b)"
23:53:23 <lambdabot> ^
23:53:27 <elliott_> ?pl \a b -> catch a (const b)
23:53:27 <lambdabot> (. const) . catch
23:53:29 <elliott_> oh duh
23:53:32 <elliott_> ?pl \b -> catch a (const b)
23:53:32 <lambdabot> catch a . const
23:53:42 <elliott_> instance Alternative IO where
23:53:42 <elliott_> empty = ioError (userError "empty")
23:53:42 <elliott_> (a <|> b = try a (const b)
23:53:43 <elliott_> anyway
23:53:46 <elliott_> erm without paren
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:56:26 <itidus20> means peace? maybe :P
23:56:47 <itidus20> Richard Dawkins perhaps.
23:56:55 <elliott_> richard dawkins is an asshole
23:57:10 <itidus20> Someone noticed he looks like Emma Watson
23:57:14 <elliott_> does christianity have a leader? buddhism?
23:57:15 <elliott_> what
23:57:39 <itidus20> http://images.icanhascheezburger.com/completestore/2008/10/6/128677918460759115.jpg
23:57:49 <itidus20> a percieved god is a leader
23:57:50 <elliott_> oh right that
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:00 <elliott_> oerjan: o irte
23:59:13 <itidus20> ok not most of them
23:59:22 <itidus20> but teres a few ya see who are just completely nuts
2011-07-25
00:01:00 <itidus20> someone points out that emma watson pic probably photoshopped
00:01:09 <monqy> isn't it obvious
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:07:45 <monqy> itidus20: parents
00:08:11 <itidus20> hehe
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:14:52 <oerjan> traveling salesman
00:15:01 <itidus20> oerjan: i hanged out with them.. i never admitted to being one though
00:15:01 <itidus20> :D
00:15:08 <itidus20> (online)
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:35 <itidus20> only instances called bibles
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:42 <oerjan> *to be
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:41 <oerjan> oh.
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:21:53 <itidus20> oerjan: hehe. indeed
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:04 <elliott_> that's called science
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:23:48 <itidus20> :)
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:25:38 <elliott_> doesn't allah lie as a rule
00:25:41 <elliott_> not lie i mean
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:42 <itidus20> those who say it is are naive
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:26 <elliott_> haha
00:33:30 <itidus20> but even buddhism has this dominating presence
00:33:30 <elliott_> yes nobody ever corrupts religious texts
00:33:33 <itidus20> like a monolith
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:24 <elliott_> ha ha ha
00:34:26 <elliott_> ha ha ha ha ha ha ha
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:39 <elliott_> i did
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:35:59 <elliott_> ??
00:36:00 <Vorpal> elliott_, I never heard of that religion even
00:36:04 <elliott_> heh
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:02 <itidus20> some do, some don't
00:38:20 <itidus20> the ones who do tend to be abrasive and cynical
00:38:28 <Vorpal> do what?
00:38:29 <itidus20> but good hearted
00:38:32 <Vorpal> need religion?
00:38:40 <itidus20> some do put it under scrutiny
00:38:42 <Vorpal> ah
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:39:21 <elliott_> hth.
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:18 <itidus20> hmm
00:40:44 <itidus20> vorpal: so that last point i was making... its really about learning in general..
00:40:53 <Vorpal> itidus20, very deep
00:40:53 <itidus20> theres that point where a religion can't tell you
00:40:58 <Vorpal> indeed
00:41:01 <itidus20> yup
00:41:03 <itidus20> thats the clincher
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:41:44 <itidus20> oh.. its not like that
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:42:33 <itidus20> and.. i don't know what it is
00:42:51 <Vorpal> itidus20, err what?
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:12 <itidus20> uhm.. i just lost me too
00:44:21 <oerjan> i understand completely >:D
00:44:45 <Vorpal> oerjan, really?
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:33 <itidus20> it can contain truths
00:45:48 <Vorpal> oh yes indeed.
00:45:51 <itidus20> to deny nothing in a religion is not going far enough
00:45:59 <Vorpal> agreed
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:51 <itidus20> uhh.. basically........
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:47:30 <oerjan> never say never
00:48:23 <itidus20> and religions expect you to just make all these compromises for the benefit of said religion
00:49:11 <itidus20> it is you seeking truth..
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:21 <elliott_> (Well, "of course")
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:15 <elliott_> Which is ridiculous
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:00:17 <itidus20> yup
01:01:59 <Sgeo_> elliott_, why wouldn't it?
01:02:07 <elliott_> Sgeo_: ?
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:04:41 <elliott_> oerjan: link?
01:04:43 <elliott_> to context
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:53 <elliott_> oerjan: ugh :/
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:07:31 <elliott_> itidus20: see pantheism
01:07:48 <itidus20> god as the universe, right?
01:07:55 <elliott_> oerjan: /msg
01:07:56 <elliott_> itidus20: yes
01:08:22 <itidus20> suppose i suddenly found a box .. i could spend a week imagining what is inside it
01:08:48 <monqy> good imagination
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:24 <elliott_> good supposition
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:20 <itidus20> or it might be the box
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:11 <monqy> congratulations
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 <elliott_> um, it is?
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:06 <itidus20> ok i see
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:43 <itidus20> prayer is a transitive verb
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:01 <elliott_> more just... a ritual
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:00 <elliott_> :D
01:25:06 <elliott_> i like that second one monqy
01:25:08 <elliott_> itidus20: prayer is taboo?
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:26 <itidus20> that is.. if we pray
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:25:47 <Sgeo_> meant it wasn't
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:27:25 <itidus20> :D
01:28:17 <monqy> no ;-;
01:28:31 <itidus20> oh what i mean is
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:24 <itidus20> or is the word esoteric
01:30:30 <itidus20> esoteric vs constructed
01:30:56 <zzo38> Scientology is not a proper religion, I think
01:31:04 <monqy> proper?
01:31:43 <elliott_> proper?
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:33:47 <zzo38> OK
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:40:59 <itidus20> but all these visual fields..
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:14 <elliott_> what makes you say this?
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:41:46 <elliott_> well that is not very helpful
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:26 <itidus20> have to catch myself..
01:42:47 <itidus20> given that i don't know what the truth is i can't assume everything relates to it]
01:42:52 <itidus20> yada yada
01:42:58 <zzo38> My ideas of consciousness are very different and incomplete (mostly because I don't know everything).
01:43:44 <itidus20> elliot: good points.
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:44:53 <elliott_> (so I might not reply)
01:45:54 <itidus20> i don't know if my client has name completion
01:46:16 <elliott_> it does
01:46:26 <elliott_> one, every client does; two, you're using XChat
01:47:29 <itidus20> hehe
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:49:19 <itidus20> oh i see
01:49:25 <itidus20> i have to use 3 characters
01:49:33 <itidus20> e l l tab
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:50:45 <itidus20> like "e tab"
01:50:53 <itidus20> and i read "ell" as "L"
01:50:57 <elliott_> um e<tab> works for me
01:51:08 <elliott_> completes EgoBot, though
01:51:29 * elliott_ goes to Settings → Preferences → Input box → Nick Completion and changes sorting to last spoken
01:51:36 <elliott_> (in XChat)
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:02 <itidus20> EgoBot: test
01:53:03 <itidus20> wow
01:53:09 <itidus20> gnarly
01:53:26 <itidus20> Elizacat: test2
01:53:35 <elliott_> itidus20: * elliott_ goes to Settings → Preferences → Input box → Nick Completion and changes sorting to last spoken
01:53:35 <elliott_> ;-)
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:54:12 <itidus20> Elizacat: last spoken humm
01:54:16 <itidus20> weird
01:54:35 <itidus20> go figure
01:55:04 <itidus20> EgoBot: test
01:55:09 <itidus20> elliott_: test
01:55:25 <itidus20> meh it'll do
01:55:29 <itidus20> its pretty good
01:56:02 <oerjan> maybe it doesn't actually start registering when people speak before you set the option
01:56:07 <oerjan> (wild theory)
01:56:21 <itidus20> its fine now
01:56:26 <itidus20> its good enough -- beter than be fore
01:59:01 -!- cheater_ has quit (Ping timeout: 255 seconds).
02:02:13 <elliott_> back
02:07:37 <itidus20> i think the neighbors dog is in hear
02:07:39 <itidus20> heat
02:07:47 <itidus20> my dogs freaking out again
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:01:56 <monqy> hi
04:18:51 <elliott_> hi
04:18:53 <elliott_> why hi
04:19:28 -!- BeholdMyGlory has quit (Remote host closed the connection).
04:20:25 <monqy> bye
04:37:17 -!- TeruFSX has joined.
04:44:42 <Sgeo_> Oh I'm Good
04:44:49 <elliott_> oig
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:10 <elliott_> god dammit, fungot
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:18 <pikhq> *Aaaah*.
05:19:50 <pikhq> Having meaningful, pleasant IRL social interactions is a fairly nice feeling.
05:20:30 <oerjan> ^style
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:23:37 <Sgeo_> pikhq, yay
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:12 <Sgeo_> [About Perl]
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:40 <zzo38> *Deck*
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:41:36 <zzo38> What next?
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:42:46 <zzo38> What next?
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:01 <zzo38> What next?
05:49:23 <Sgeo_> Put hand in fire
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:21 <zzo38> What next?
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:01 <Sgeo_> I jump overboard
05:51:07 <itidus20> just kidding
05:51:42 <zzo38> OK. You are now in the water. Your uniform is getting wet.
05:51:48 <zzo38> What next?
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:04 <Sgeo_> Yay!
05:53:09 <zzo38> itidus20: OK you are just kidding. Try something else. From the start.
05:53:32 <itidus20> ok sorry
05:54:10 <itidus20> I go fore.
05:54:24 <zzo38> *Center of Ship*
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:54:54 <zzo38> What next?
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:55:58 <zzo38> What next?
05:56:08 <zzo38> s/doppelgangers/sailors/
05:56:09 <itidus20> Examine captain.
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:05 <zzo38> What next?
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 <fizzie> a 1 b 2
05:58:12 <zzo38> The captain notices some pirate ships in the distance. You can see them now, too.
05:58:14 <zzo38> What next?
05:58:45 <itidus20> humm
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:28 <itidus20> Examine self.
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:01:11 <zzo38> What next?
06:02:49 <itidus20> Talk to the captain again.
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:03:36 <zzo38> What next?
06:03:50 <itidus20> Examine fire bucket.
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:04:17 <zzo38> What next?
06:05:02 <itidus20> (brb)
06:05:19 -!- pikhq has quit (Ping timeout: 258 seconds).
06:05:20 -!- pikhq_ has joined.
06:06:09 <itidus20> humm
06:06:28 <itidus20> Talk to sailors.
06:06:54 <zzo38> The sailors are nervous of your presence and do not wish to talk to you right now.
06:06:55 <zzo38> What next?
06:07:35 <zzo38> s/ are / seem to be /
06:09:45 <itidus20> (does anyone else have any ideas?)
06:10:03 <itidus20> (bah.. ill continue)
06:10:44 <zzo38> (You can always wait or check your inventory if you have nothing else to do.)
06:11:06 <itidus20> check inventory
06:11:19 <zzo38> You have a guest uniform (being worn) and a rope.
06:11:29 <zzo38> What next?
06:12:10 -!- aloril has quit (Ping timeout: 246 seconds).
06:12:24 <itidus20> Request spyglass.
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:12:56 <zzo38> What next?
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:13:55 <zzo38> What next?
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:04 <zzo38> What next?
06:17:20 <zzo38> [1] See D&D 3.5e Monster Manual for information.
06:18:25 <itidus20> Speak to kuo-toa.
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:20:05 <zzo38> What next?
06:21:27 <itidus20> Kick kuo-toa.
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:22:18 <zzo38> What next?
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:41 <zzo38> What next?
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:40 * itidus20 hide behind Also
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:26:29 <zzo38> What next?
06:27:35 <itidus20> Look around.
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:11 <zzo38> What next?
06:29:29 <itidus20> Attack the kuo-toa.
06:29:34 <itidus20> ^a
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:30:26 <zzo38> What next?
06:31:07 -!- oerjan has quit (Quit: Good night).
06:31:50 <itidus20> Attack a kuo-toa.
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:32:45 <zzo38> What next?
06:33:37 <itidus20> List my available spells.
06:33:44 <itidus20> unless theres too many
06:34:07 <zzo38> OK.
06:34:12 <itidus20> i mean..
06:34:13 <zzo38> - Frotz (makes an object emit light)
06:34:14 <itidus20> uhh
06:34:25 <zzo38> - Erase (erases writing on an object)
06:34:26 <itidus20> i can look em up with wiki
06:34:30 <itidus20> but
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:18 <zzo38> What next?
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:37:42 <zzo38> What next?
06:37:58 <itidus20> Cast True Seeing.
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:38:55 <zzo38> What next?
06:39:14 <itidus20> Stun a kuo-toa,
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:40:10 <zzo38> What next?
06:40:32 <itidus20> Attack a stunned Kuo-toa
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:41:28 <zzo38> What next?
06:42:29 <itidus20> Attack a stunned kuo-toa.
06:42:55 <zzo38> Somehow you still missed.
06:42:57 <zzo38> What next?
06:43:27 <itidus20> Stun kuo-toa.
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:44:03 <zzo38> What next?
06:45:19 <itidus20> Wait.
06:46:03 <zzo38> Time passes. The captain's brother reveals a scroll case.
06:46:06 <zzo38> What next?
06:47:01 <itidus20> Examine the 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:48:02 <zzo38> What next?
06:49:56 -!- azaq23 has changed nick to oriaw.
06:50:20 -!- oriaw has changed nick to derivector.
06:50:21 <itidus20> open the scroll case
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:51:47 <elliott_> can i play
06:52:05 <itidus20> yup
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:19 <itidus20> i mean .. in 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:54:34 <itidus20> like i mean
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:55:47 <itidus20> crazies at least
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:44 <itidus20> i mean
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:08 <itidus20> not because they like me
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:15 <itidus20> is that related to latex?
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:33 <pikhq_> Oh. Fuck.
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:05:53 <pikhq_> Noah's Ark.
07:06:21 <pikhq_> Wouldn't every animal on the ark have to carry every unique disease for that species?
07:06:32 <pikhq_> *Every*.
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:21 <Sgeo_> iirc
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:31 <itidus20> none however paid for
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:47 <itidus20> and skyscrapers..
07:28:58 <itidus20> welll population growth has a role in it too of course
07:29:05 <itidus20> termites build mounds etc
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:07 <itidus20> or washed ashore
07:31:22 <pikhq_> *Someone* doesn't know about oil rigs...
07:31:40 <itidus20> ah.. it can't beat oil, yeah
07:31:50 <itidus20> humm ok.. good point
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:19 <coppro> :t (/)
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:15 <itidus20> plants do it i suppose
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:55:43 <zzo38> s/much/not a lot/
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:14 <itidus20> Clearly thats impossible.
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:01:57 <itidus20> ahhh good old cjb
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:03:24 <itidus20> geocities, cjb, angelfire
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:24 <itidus20> ^by amateurs
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:25 <itidus20> "accounts"
08:06:41 <itidus20> i guess... i guess.. the web has become an application platform
08:06:45 <itidus20> when did this happen
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:33 <itidus20> but its getting weird
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:05 <itidus20> i dunno im just ranting..
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:10:51 <elliott> Oh, ais isn't here
08:10:54 <elliott> Darn
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:07 <zzo38> pikhq_: I agree.
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:01 <zzo38> And so on.
08:12:12 <itidus20> at least the web is free
08:12:18 <itidus20> it has that going for it.
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:08 <itidus20> GNU/www
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:19 <pikhq_> Honest.
08:15:35 <itidus20> but it works.. i must admit in contradiction to my rant
08:15:43 <itidus20> it works, and it's free
08:16:05 <elliott> burners :D
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:15 <itidus20> berners ;_;
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:25 <elliott> (he is in #swig a lot)
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:22 <itidus20> no hyperlinks involved there
08:18:26 <coppro> FTP is dumb
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:10 <fizzie> s/was/once/
08:20:11 <fizzie> (Gah.)
08:20:27 <pikhq_> coppro: Yes please.
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:49 <coppro> pikhq_: heh yes
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:12 <elliott> coppro: Oh gee, thanks
08:22:14 <coppro> elliott: it is sound
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:23:39 <elliott> coppro: Haskell's does
08:23:43 <elliott> foo :: a -> b
08:23:44 <elliott> foo = undefined
08:23:48 <elliott> data Void
08:23:50 <elliott> foo :: Void
08:23:51 <elliott> foo = undefined
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:13 <elliott> Honest question
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:25:41 <elliott> coppro: Happy?
08:25:56 <coppro> elliott: No.
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:26:51 <coppro> elliott: k fine then
08:27:07 <elliott> Well, nice way to respond to someone who points out that experts disagree with your terminology
08:27:08 <elliott> Whatever
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:41 <elliott> extended
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:29:18 <coppro> pikhq_: yeah
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:30:48 <elliott> Shrug, have it your way
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:11 <coppro> pikhq_: A lot, sadly
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:36:24 <elliott> Thanks.
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:01 <pikhq_> coppro: Not recently.
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:13 <coppro> rage
08:41:29 <pikhq_> (which is *incredibly* different from what you'd think if you just saw what compilers do to C)
08:41:57 <coppro> no kidding
08:43:12 <pikhq_> Admittedly, that's in part because there's an impedence mismatch between C and common CPUs.
08:43:18 <pikhq_> (surprising, I know.)
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:28:39 <elliott> Sgeo_: Updoot.
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:31:47 <Sgeo_> Oh
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:13:07 <fizzie> Well, "solution".
11:31:47 <quintopia> does disk-backed shm count? :P
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:40 <quintopia> it's not that fancy a name
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 <elliott> ?hoogle (==) IORef
16:16:56 <lambdabot> Did you mean: == (IORef a) /count=20
16:16:56 <lambdabot> Prelude undefined :: a
16:16:56 <lambdabot> Test.QuickCheck.Batch bottom :: a
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:23 <elliott> Well, semi-private
16:46:36 * tswett nods.
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 <tswett> ^style agora
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:11 <tswett> Excellent.
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:28:32 <derrik> press a button
17:29:00 <quintopia> i don't like mice
17:29:21 <derrik> you're out of luck then
17:29:26 <derrik> no easy way
17:29:49 <quintopia> i didn't say it had to be easy
17:29:53 <quintopia> just the easiest
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:30 <quintopia> aha
17:31:32 <quintopia> i'll try thhat
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:13 <quintopia> i'll look at prince
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:37:41 <elliott> heh, windws
17:37:42 <elliott> windows
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:35 <quintopia> :ha >filename.pdf
17:38:57 -!- derrik has joined.
17:38:58 <elliott> quintopia: gross, princexml will give nicer output :{
17:39:07 <quintopia> i will look into it later
17:39:12 <quintopia> i am on a train...
17:39:19 <quintopia> it stops in like ten minutes
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:41:41 <quintopia> i have an excellent pdf to html
17:42:03 <quintopia> i think
17:42:05 * quintopia looks
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
17:48:45 <elliott> PROLLY A BAD IDEA
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:10:07 <oerjan> *typo
19:12:38 <elliott> perhaps :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:28 <elliott> :-D
19:23:36 <elliott> I'm the only mod there :P
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:25:58 <oerjan> *gasp*
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:53:26 <oerjan> "
19:56:24 <fizzie> WordNet "hypernyms of pumpkin":
19:56:26 <fizzie> Sense 2
19:56:26 <fizzie> pumpkin
19:56:26 <fizzie> => vegetable, veggie, veg
19:56:26 <fizzie> => produce, green goods, green groceries, garden truck
19:56:26 <fizzie> => food, solid food
19:56:27 <fizzie> => solid
19:56:29 <fizzie> => matter
19:56:31 <fizzie> => physical entity
19:56:33 <fizzie> => entity
19:56:35 <fizzie> A clear vegetable.
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:57:41 <oerjan> entirely so
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> $ wn entity -treen
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:02:09 <fizzie> Yes.
20:03:00 <oerjan> enticing.
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:43 <oerjan> APL?
20:10:58 <oerjan> at this point i'm tempted to create an esolang named haskell.
20:11:06 <oerjan> or maybe C.
20:11:35 <elliott> oerjan: with haskell, the job has been done for you.
20:11:41 <oerjan> ...touche.
20:11:55 <oerjan>
20:12:07 <elliott> also C ;-)
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:21 <lambdabot> Consider it noted.
20:49:29 <elliott> ah yes
20:49:37 <elliott> paintfuck was fun
20:49:44 <elliott> i mean, uninteresting-looking language
20:49:54 <elliott> but the tiny two-dimensional data plus storage as output...
20:49:57 <elliott> very CA kind of feel
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:51:23 <elliott> i show the light
20:51:57 <elliott> god
20:52:00 <elliott> oklopol's conway is awesome
20:52:34 <oerjan> conway?
20:52:56 <elliott> life
20:52:57 <elliott> game
20:52:58 <elliott> thing
20:53:00 <elliott> in paintfuck
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:55:47 <monqy> do it do it
20:56:51 <FireFly> Nice quote
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).
20:59:22 * oerjan removes Impossible!
20:59:48 <elliott> ?
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:01:41 <oerjan> in bold.
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:07:58 <elliott> oerjan: :D
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:30 <oerjan> or did, anyhow.
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:11:24 <oerjan> eventually, anyway.
21:14:02 * oerjan finds it on web archive
21:15:29 <elliott> what's shakell again
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:17:53 <monqy> is that for real
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:19:42 <monqy> :(
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:32 <elliott> because they know
21:20:33 <elliott> the urge
21:20:35 <elliott> the urge
21:20:36 <elliott> to KILL
21:20:42 <elliott> i mean construct objects of private classes
21:20:46 <elliott> same thing
21:21:06 <monqy> java...
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:35 <elliott> fizzie: arrest them
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:27:13 <elliott> ALWAYS NEED CONVERTS
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:37 <elliott> monqy: yes
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:30:55 <elliott> GET IT
21:31:01 <elliott> oerjan: lucky.
21:31:20 <elliott> oerjan: (but I question any kind of "fantasy" that has black box encrypted algorithms running on your computer!)
21:31:23 <elliott> more like a dystopia
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:34:42 <elliott> ah
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:05 <elliott> snap
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:38:53 <oerjan> >_>
21:38:57 <elliott> :(
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:50 <oerjan> O KAY
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:22 <elliott> wat
21:41:31 <elliott> I guess Stanislav likes his sub-expressions to be executed in parallel
21:41:48 <monqy> wow i do too
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:42 <elliott> well ages ago :P
21:42:57 <oerjan> it wasn't haskell-related?
21:43:02 <elliott> it was, I think
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:39 <elliott> oh
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:32 <elliott> nah it was research stuff
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:04 <elliott> right
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:49:42 <oerjan> only by name
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:50:57 <elliott> well, certainly
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:24 <elliott> well, sure
21:51:29 <elliott> I'm not denying that
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:28 <elliott> right
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:19 <elliott> erm
21:53:23 <elliott> s/super-wacky paradigm/
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:55 <elliott> oerjan: right
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:56:48 <elliott> hug bomb
21:56:57 * oerjan ghcs elliott
21:57:06 <oerjan> *ghc
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:57:56 <elliott> OH SNAP
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:03:27 <elliott> oerjan: right
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:35:44 <cheater_> you cannot.
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:49:58 <oerjan> or close to it
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:34:58 <lambdabot> Source not found.
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 <Lymee> @src putStrLn
23:35:09 <lambdabot> putStrLn s = do putStr s; putChar '\n'
23:35:13 <Lymee> @src Data.ByteString
23:35:14 <lambdabot> Source not found. I am sorry.
23:40:37 <oerjan> @package 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:42:03 <cheater_> like a big or operator
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:43:57 <oerjan> @list hayoo
23:43:57 <lambdabot> No module "hayoo" loaded
23:44:00 <oerjan> bah
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:15 <oerjan> or module link
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:49:46 <cheater_> then i would be god
23:50:00 <oerjan> i dunno
23:50:07 <cheater_> yea me either :-\
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).
2011-07-26
00:18:11 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
00:24:37 <CakeProphet> cheater_: one | per pattern plz
00:24:40 <CakeProphet> :P
00:26:07 * oerjan detects an off-by-one error :P
00:26:47 <CakeProphet> oerjan: your mom was off-by-one.
00:27:01 <CakeProphet> can you guess which one it was?
00:27:20 <oerjan> wat
00:27:26 <CakeProphet> OH SNAP.
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:12 <monqy> ok
00:29:14 <oerjan> well my parents _were_ married just about a month before i was born. draw your own conclusions.
00:30:00 <CakeProphet> I can't draw.
00:30:08 <oerjan> figures.
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:10 <Sgeo> booo1
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:36:25 <CakeProphet> bug.
00:37:11 <CakeProphet> some kind of resource bottleneck/deadlock, I guess?
00:37:58 <oerjan> perhaps.
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:50:36 <oerjan> gah
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:12:18 <NihilistDandy> ping
01:13:20 <oerjan> 6uod
01:16:36 <NihilistDandy> classy
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:04 * draino grins
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:37 <oerjan> er wat
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:47 <oerjan> *gödel
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:06 <pikhq_> Well. Yes.
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:32:48 <oerjan> (at the end)
05:34:55 <oerjan> (although you need the rest to understand _why_ it's so cool
05:34:57 <oerjan> )
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:58:37 <Sgeo> oerjan, hm?
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:01:08 <Sgeo> Wow :/
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:32 <pikhq> Yes.
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:13 <ais523> hmm, indeed
07:51:25 <ais523> I suppose that the UK has a huge population density compared to most places in the word
07:51:27 <ais523> *world
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:53:25 <pikhq> True, it does.
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:56:03 <cheater_> supz
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:54 <ais523> hmm
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 <ais523> but don't any more
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:40 <cheater_> pikhq, that's the usual yes
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:14 <cheater_> you can't get anywhere
08:10:19 <cheater_> in munich it's much better
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:03 <ais523> "rhd roads"?
08:13:14 <pikhq> Right-hand drive?
08:13:16 <cheater_> sorry, i meant lhd roads
08:13:24 <cheater_> i.e. "normal driving 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:10 <cheater_> that makes no sense at all!
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:22:52 <cheater_> pikhq, no freaking idea
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:25:29 <cheater_> that's all very weird
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:01 <cheater_> let me measure another one
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:36:10 <ais523> deciïnch
08:36:25 <pikhq> Erm, 5.
08:36:27 <pikhq> Not 6.
08:37:01 <cheater_> well, i've measured three
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:39:24 <cheater_> ?
08:39:31 <cheater_> i think it might be so
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:52:37 <ais523> what's banner indent?
08:53:30 <pikhq> ais523: The closing bracket is at the same indent level as the previous statements.
08:53:34 <cheater_> this is (
08:53:38 <cheater_> banner,
08:53:41 <cheater_> indent,
08:53:44 <cheater_> style.
08:53:45 <cheater_> )
08:53:51 <ais523> ouch
08:53:51 <pikhq> Like that.
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:16 <cheater_> that's lisp style
08:54:19 <ais523> yep
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:54:46 <cheater_> well you concatenate
08:54:49 <cheater_> for example
08:54:52 <cheater_> this is ([
08:54:58 <cheater_> banner,
08:55:00 <cheater_> style,
08:55:01 <cheater_> too.
08:55:03 <cheater_> ])
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:05:39 <coppro> haha
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:32:36 <Sgeo> What.
10:33:01 <ais523_> hi clog
10:48:53 -!- clog has quit (Ping timeout: 240 seconds).
11:03:03 <coppro> I win
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:11:43 <cheater_> makes something positive?
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:13:01 <cheater_> what is integral promotion?
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:15:50 <coppro> haha
11:15:52 <coppro> fizzie: true
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:20 <coppro> nope
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:17:35 <coppro> ah
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:21 <coppro> ahaha
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:22 <ais523_> yep
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:52 <ais523_> coppro: aargh
11:20:55 <ais523_> does Linux actually use it?
11:20:59 <coppro> ais523_: Yesish
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:19 <coppro> ah ok
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:13 <ais523_> ooh wow, that's useful
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:24:52 <coppro> :D
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:06 <ais523_> I'd been wondering
11:26:11 <ais523_> it didn't seem to matter
11:26:16 <ais523_> but I was curious
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:36:57 <ais523_> or counting pagefaults
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:25 <Deewiant> It's not
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:42 <ais523_> yep
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:15 <ais523_> hmm, yes
11:53:19 <ais523_> they'd have to be hardware breakpoints
11:53:23 <ais523_> how many do you get?
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:45 <Taneb> Hello
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:00:34 <ais523_> fizzie: heh
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:07 <ais523_> well, /proc/*/maps
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:02 <ais523_> it's just a tempfs
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:06:48 <ais523_> yep, that seems simplest
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:31 <fizzie> Right.
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:04 <ais523_> yep
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:14:55 <ais523_> (pun unintentional)
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:51 <ais523_> neither do I
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:14 <fizzie> But it is -512-4.
12:23:22 <fizzie> The 512 sounds like a flag.
12:23:31 <ais523_> aha
12:23:41 <ais523_> that's probably it
12:23:42 <fizzie> (Pure guess.)
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:03 <ais523_> which is restart_syscall
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:25:31 <ais523_> yep
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:22 <ais523_> good catch
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:34:56 <ais523_> same file?
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:40:25 <CakeProphet> I've only used three at any given time.
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:52:56 <Sgeo> Or... huh?
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:23:09 <Taneb> Hello!
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:55:46 <Taneb> Hello!
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:56:58 <Taneb> I meant "now own"
18:57:07 <Taneb> In fact, s/know/now/
18:57:43 <Taneb> Is that how it's done?
18:57:58 * itidus20 . o O ( "now" ++ "here" )
18:59:57 <pikhq> Taneb: Yuh.
19:00:04 <Taneb> Oh good
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:29:36 <coppro> yay
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:28 <Taneb> The binary ones
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:04:54 <Slereah> And AGE OF EMPIRE
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:20:41 <Slereah> Because I WIN
22:25:14 <Zwaarddijk> i recall that game from some old popular science magazine adverts
22:25:18 <Zwaarddijk> I never saw it with my own eyes
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.
2011-07-27
00:04:14 -!- copumpkin has joined.
00:15:04 -!- olsner has quit (Ping timeout: 260 seconds).
00:18:21 <elliott> robots---->
00:18:57 <oerjan> IT HAS BEGUN?
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:32 <NihilistDandy> Until the Butlerian Jihad, that is
00:21:45 -!- elliott has joined.
00:22:33 <Zwaarddijk> dune is kinda hegelian dialectic
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:22:39 <elliott> a|b|c|d
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:41 <Zwaarddijk> MARX IN SPACE
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:21 <Zwaarddijk> yeah I know.
00:25:26 <Zwaarddijk> they do suck
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:07 <NihilistDandy> Yes. Yes I do
00:26:14 <Zwaarddijk> I am a bit disappointed at how it turns out
00:26:21 <Zwaarddijk> I liked the rabbis-in-space, though
00:26:34 <NihilistDandy> :D
00:26:49 <Zwaarddijk> those were kind of a wtf moment
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:01 <elliott> oerjan: yes IIRC
00:28:03 <elliott> oerjan: it doesn't have induction, I think
00:28:07 <NihilistDandy> Zwaarddijk: olawd
00:28:50 <NihilistDandy> elliott: Jesus, hitting your backlog hard enough?
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 <NihilistDandy> > elliott sleep
00:29:27 <lambdabot> Not in scope: `elliott'Not in scope: `sleep'
00:29:33 <NihilistDandy> Ah, that explains it
00:29:38 <oerjan> actually it's more of a complete logbrowse at best
00:29:49 <elliott> oerjan: you're dead to me
00:30:24 <NihilistDandy> Also, I missed a lot of good conversation
00:30:39 <elliott> start logreading
00:30:42 <elliott> it's fun + educational
00:30:44 <elliott> unless idiots were talking
00:31:00 <NihilistDandy> -unless
00:31:00 <elliott> speaking of which, Gregor really needs to add ignores to the codu log formatter
00:31:03 <NihilistDandy> Oh, snap
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:31:54 * elliott scrolls faster
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:44 <elliott> hahahaha
00:32:46 <elliott> yeah sure
00:32:50 <elliott> also you misspelled its name
00:32:54 <elliott> well miscapitalised.
00:33:04 <NihilistDandy> Did I? I never remember where the damn caps go
00:33:15 <NihilistDandy> Ah
00:33:18 <NihilistDandy> DejaVu
00:33:22 <NihilistDandy> There we go
00:33:35 <elliott> How many monospaced fonts have you used? :p
00:33:49 <NihilistDandy> A dozen regularly
00:33:53 <NihilistDandy> More experimentally
00:33:53 <cheater_> De Javu
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:19 <NihilistDandy> I have it
00:37:25 <NihilistDandy> Pragmata, that is
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:47 <NihilistDandy> elliott: Hell no. I know a place
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:24 <NihilistDandy> No, but it displays stuff in pretty unicode ways
00:38:27 <elliott> NihilistDandy: A place just for fonts? That must be like the driest pirate cove in the universe.
00:38:32 <elliott> No
00:38:41 <elliott> It does not
00:38:41 <elliott> That is a separate thing
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:38:55 <NihilistDandy> Hipsters like fonts, I guess
00:39:12 <elliott> NihilistDandy: Amazing. (I don't suppose it's one of the "famous" places.)
00:39:19 <NihilistDandy> Kinda famous, I guess
00:39:26 <NihilistDandy> I can dropbox you the font if you want
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:31 <NihilistDandy> *other than
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:42:06 <elliott> Hmm, it is?
00:42:10 <NihilistDandy> Yup
00:42:25 <NihilistDandy> You have to turn it on or hook it, but it's there
00:43:08 <NihilistDandy> Oh, actually I guess I just setq'd
00:43:08 <elliott> Oh, seems so.
00:43:11 <elliott> NihilistDandy: Well, it is a bad idea anyway.
00:43:16 <NihilistDandy> (setq haskell-font-lock-symbols t)
00:43:17 <elliott> NihilistDandy: It breaks indentation.
00:43:17 <NihilistDandy> Why?
00:43:22 <elliott> And alignment.
00:43:27 <NihilistDandy> Not noticeably, except in very few cases
00:43:31 <elliott> Doesn't matter
00:43:36 <elliott> It's a deal breaker
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:43:59 <NihilistDandy> :D
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:44:25 <NihilistDandy> lol
00:44:42 <NihilistDandy> I didn't say you shouldn't criticize
00:44:46 <NihilistDandy> You just seem passionate about it :D
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:41 <NihilistDandy> I've had zero indentation issues
00:45:53 <NihilistDandy> :P
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:48:12 <elliott> I feel like I'm blind
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:40 <elliott> oerjan: :D
00:52:49 <monqy> i only care in spirals
00:53:06 <NihilistDandy> The Mandelbrot Sigh
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:20 <NihilistDandy> You forgot the most important step
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"
00:59:47 <oerjan> sorry, s/then/and/
01:00:11 <oerjan> NihilistDandy: what step
01:00:27 <NihilistDandy> Care in fractals, of course
01:00:53 <NihilistDandy> let care = care in fractals
01:01:45 <Lymee> > takeWhile (>4) [1,2,3]
01:01:46 <lambdabot> []
01:01:48 <NihilistDandy> Anyway, off to work.
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:05:16 <elliott> rip bats
01:06:57 <oerjan> that's animal abuse!
01:07:03 <oerjan> also, you might catch rabies
01:12:00 <elliott> :{
01:18:40 <CakeProphet> > let x = let y = y in x in 5
01:18:40 <lambdabot> 5
01:19:14 <oerjan> fancy
01:20:04 <CakeProphet> :t let y = y in y
01:20:05 <lambdabot> forall t. t
01:22:21 <CakeProphet> imagine if Haskell had only runtime errors and lazy evaluation
01:22:39 <CakeProphet> let y = ha ha ha ha ha ha ha in 4
01:22:52 <oerjan> what no scoping?
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:08 <elliott> sure they could :D
01:25:29 <CakeProphet> this would lead to some ambiguous parsing..
01:25:37 <CakeProphet> because EVERYTHING would have to parse correctly.
01:25:41 <CakeProphet> to be run
01:25:46 <CakeProphet> and then give a syntax error.
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:26:57 <elliott> yep
01:27:00 <oerjan> of course lisp makes this easy with the parens
01:27:08 <elliott> nope
01:27:12 <oerjan> and in haskell, layout can help
01:27:13 <elliott> you can modify the readtable
01:27:17 <oerjan> oh hm
01:27:39 <elliott> in some lisps, at least.
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:31:20 <elliott> :)
01:32:38 <Sgeo> A copy of Canada's ruleset from 2008/4/28 has been recovered
01:33:02 <pikhq> Which Canada?
01:33:15 <Sgeo> The nomic
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:48 <pikhq> Which nomic. :)
01:33:49 <Sgeo> The one whose players would call it a "nomic"
01:33:51 <elliott> Sgeo: How amazing
01:33:53 <pikhq> Which nomic. :)
01:33:58 <elliott> Which nomic. :)
01:33:59 <elliott> Which nomic. :)
01:33:59 <elliott> Which 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:34:33 <Sgeo> o.O
01:35:12 <elliott> "I'm pretty sure you aren't allowed to have a T rating with that many stabbed children."
01:35:13 <elliott> Wait
01:35:15 <elliott> I already quoted that >_<
01:51:40 <zzo38> Do you ever argue about relativity when playing D&D game?
01:52:00 <oerjan> relatively rarely.
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:10:58 <elliott> woo, this is broken
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:16:30 <elliott> internet keywords
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:04 <monqy> without you
02:18:07 <elliott> isn't The Silmarillion like in encyclopedia form
02:18:10 <elliott> driest saga ever
02:18:57 <elliott> probably oerjan knows because i think he read all of the tolkein shit
02:19:02 <elliott> maybe
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:21:37 <elliott> </oklopol>
02:21:45 <oerjan> :P
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:53 <elliott> oh is that the satan guy
02:22:56 <elliott> also lol, moon's light source
02:23:00 <oerjan> more or less.
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:48 <elliott> where's he exiled to
02:23:51 <elliott> azkaban?
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:29 <elliott> and nature itself
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:07 <elliott> oerjan: right :D
02:27:12 <elliott> oerjan: but he is minor yes
02:27:22 <oerjan> yes, he only show up briefly
02:27:25 <oerjan> *shos
02:27:28 <oerjan> *shows
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:29:28 <elliott> lol
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.
02:55:39 <coppro> yeah
03:02:05 <Sgeo> elliott, did you ever finish Dot Action 2?
03:02:23 <elliott> Sgeo: I don't think so :P
03:02:28 <elliott> But I tried all the levels at least
03:02:33 <elliott> The bonus ones were impossible
03:02:38 <elliott> (As in difficult)
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:05:55 <elliott> UR SO FAMOUS
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:11:52 <monqy> wow this post
03:11:56 <monqy> is so bad
03:11:58 <elliott> it is
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:32 <elliott> IF UR DUM DONT READ
03:12:34 <elliott> READ LYAH INSTEAD
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:13:15 <elliott> NOTE: I KNOW NOTHING
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:11 <elliott> ++
03:24:27 <elliott> well, assuming it was a japanese chatroom about japanese. :p
03:25:22 <itidus20> it wasn't
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:29:06 <monqy> :(
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:18 <elliott> (and safely)
03:32:19 <zzo38> I think someone used Haskell to prove Haskell
03:32:21 <elliott> more Coq
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:32:36 <elliott> (Gödel)
03:32:38 <coppro> zzo38: Impossible
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:34:16 <itidus20> They stand together.
03:34:35 <itidus20> And yet, there is no glue.
03:34:44 <monqy> what
03:35:51 <zzo38> Gravity???
03:36:35 <elliott> wat
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:40 <monqy> mmmm 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:29 <itidus20> hmm
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:45 <itidus20> however
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:02:06 <monqy> im vapourware irl
04:03:14 <oerjan> you both seem quite implemented to me
04:06:40 <Lymee> monqy, how perverted.
04:06:40 <Lymee> <:
04:06:42 <Lymee> :<
04:07:46 <elliott> what
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:18 <elliott> i know from pokemons
04:08:53 <elliott> god this mcmap code isso raciest to me
04:09:08 <Sgeo> Fuck politics
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:17 <elliott> <Sgeo> Fuck politics
04:09:20 <elliott> then sgeo talked about politics
04:09:22 <elliott> pro
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:19 <elliott> has he finally given up
05:15:30 <coppro> It's not readable, but pretty awesome
05:15:36 <elliott> how's it awesome
05:15:41 <elliott> "i took some data BUT NOW IT IS POLAR........"
05:15:59 <Lymee> @hoogle findIndex
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:18:51 <lambdabot> (> 2) . magnitude
05:19:00 <elliott_> monqy: ok
05:19:00 <coppro> monqy: add a keyword for wikipedia
05:19:07 <elliott_> coppro: gross
05:19:13 <coppro> elliott_: no u
05:19:14 <elliott_> monqy: delete from history?
05:19:16 <monqy> how do i do that i am not good at this
05:19:23 <monqy> the keyword thing
05:19:24 <elliott_> erase,,,, the LIE
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:45 <monqy> thanks
05:19:47 <elliott_> monqy: chrome:history -> edit items
05:19:52 <monqy> yeah i hit it
05:19:59 <elliott_> then purge,,,
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:52 <elliott_> but gross
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:04 <coppro> monqy: yes
05:21:08 <coppro> monqy: obviously
05:21:09 <coppro> can't you read
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:17 <monqy> yeah I tried
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:51 <elliott_> oh well
05:22:53 -!- MDude has quit (Read error: Operation timed out).
05:22:55 <elliott_> now u have less baggage
05:22:56 <elliott_> its zen
05:23:12 <elliott_> enjoy zen,
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:18 <elliott_> Sgeo: poop u i do better
05:24:45 <oerjan> elliott_: you could hurt someone with those typos
05:24:53 <monqy> →→→
05:24:53 <elliott_> oerjan: yeah,,,like YUOU, DIE FUCKK
05:25:13 -!- derrik has joined.
05:25:13 <elliott_> <oeran> hurt inside ,_
05:25:17 <Sgeo> elliott_, did you sleep anytime within the past 14 days?
05:25:22 <elliott_> ive never a slep
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:08 <Sgeo> slep-deprived
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:26:30 <elliott_> now our hero.........
05:26:49 <oerjan> *bizarro_oerjan
05:26:57 <monqy> 👍
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:46 <CakeProphet> to... Haskell?
05:43:50 <monqy> i kind of want to just so i can say it was gentle
05:43:53 <oerjan> i cannot recall
05:44:11 <monqy> to category theory is it right
05:44:26 <oerjan> i assumed haskell...
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:44:47 <monqy> :'(
05:45:21 <monqy> so is gentle introduction supposed not to be gentle
05:45:34 -!- myndzi\ has joined.
05:45:36 <elliott_> its mlgentle
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:01 <elliott_> a+
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:24 <elliott_> no
05:48:26 <elliott_> not valid tutorial
05:48:28 <elliott_> notvalid int
05:48:30 <elliott_> needsmor,e unumbers
05:48:48 <monqy> -- This is not valid
05:48:50 <monqy> -- Haskell code!
05:48:54 <monqy> good coments⇧
05:48:59 -!- myndzi has quit (Ping timeout: 264 seconds).
05:49:08 <elliott_> sections on page three
05:49:09 <elliott_> im lol
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:12 <lambdabot> color . mandelbrot iters
05:50:18 <monqy> i like this daiagarm
05:50:25 <monqy> it makes
05:50:26 <elliott_> Lymee: you should learn to do simple pls like that in your head...
05:50:27 <monqy> snese
05:50:30 <CakeProphet> doesn't the Haskell spec mention Int being defined in that way kind of?
05:50:30 <oerjan> @src []
05:50:30 <lambdabot> data [] a = [] | a : [a]
05:50:36 <oerjan> monqy: ^ :P
05:50:47 <Lymee> Eh.
05:50:47 <oerjan> even the haskell report does it
05:50:47 <Lymee> Wait.
05:50:56 <Lymee> x.y = (x).(y), doesn't it.
05:51:01 <elliott_> um what
05:51:06 <elliott_> that's not a helpful question
05:51:08 <oerjan> Lymee: what?
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:34 <monqy> party
05:51:42 <elliott_> can i come to party
05:51:56 <monqy> do you do bad things are you a bad peeron
05:52:04 <elliott_> no
05:52:06 <monqy> ok
05:52:34 <oerjan> elliott_ almost never kills anyone
05:52:40 <elliott_> do you want to hear a joke monqy
05:52:46 <monqy> i like good jokes
05:52:51 <monqy> bad jokes too
05:52:54 <elliott_> c can't do any kind of parametric polymorphism at all
05:52:56 <elliott_> hahahaha
05:52:56 <monqy> mediocre jokes die in hell
05:52:58 <monqy> hahahahaha
05:52:59 <elliott_> (without macro abuse)
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:26 <monqy> good
05:53:26 <monqy> times
05:53:40 <elliott_> CakeProphet: so um
05:53:44 <elliott_> ListWrap t a = [t a]?
05:53:45 <zzo38> What is parametric polymorphism?
05:53:46 <elliott_> good
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 <CakeProphet> elliott_: yes.
05:53:54 <elliott_> zzo38: any sort of generic types
05:53:59 <CakeProphet> except it's more like...
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 <CakeProphet> ListWrap t a = [Wrapper t a]
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:54:58 <monqy> macro abuse
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:31 <elliott_> CakeProphet: so um
05:55:43 <elliott_> map (\(t,x) -> if t==goodT then f x else x)
05:55:47 <CakeProphet> elliott_: no
05:55:56 <elliott_> mapTag t f = map (\(g,x) -> if t == g then f x else x)
05:55:57 <elliott_> hard
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:56:39 <elliott_> why do you need another type
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:18 <monqy> also
05:58:30 <monqy> Section/EndSection
05:58:31 <monqy> is
05:58:32 <monqy> really
05:58:32 <monqy> ugly
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:29 <CakeProphet> they could nest.
05:59:48 <CakeProphet> I think I'll just stick to the tag approach, which would reduce it to a tuple ([t],a)
05:59:53 <CakeProphet> to allow for multiple tags or none.
06:00:04 <monqy> ok
06:00:15 <CakeProphet> and then a "section" is just a tag across every element in a certain point of the list.
06:00:35 <monqy> ok
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:01:39 <CakeProphet> or something of that nature.
06:01:58 <monqy> ok
06:02:09 <CakeProphet> bah, assholes. :P
06:02:32 <elliott_> sorry we'll never say anything bad about ideas again
06:02:36 <elliott_> especially not "ok"
06:03:03 <CakeProphet> it's that the criticism is vague and not helpful, in the case of ok.
06:03:18 <elliott_> ok was criticism?
06:03:20 <elliott_> fuck
06:03:47 <CakeProphet> nevermind.
06:04:21 <elliott_> ok keep reading into things
06:04:34 <CakeProphet> as a human, I will read subtexts, yes.
06:04:46 <monqy> will you hate me if i smile
06:04:46 <monqy> cuz
06:04:48 <monqy> im smilen
06:04:53 <CakeProphet> noep.
06:04:53 <elliott_> "ok": 9/eleven of words,
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:04:58 <elliott_> does anyone no,
06:05:00 <elliott_> does Vorpal no
06:05:15 <CakeProphet> elliott_: ....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:42 <CakeProphet> what do you think this is, Perl? lol
06:05:47 <monqy> lol
06:05:50 <elliott_> CakeProphet: its already weird c99 shit
06:05:52 <Vorpal> elliott_, wait is n there even legal?
06:05:56 <elliott_> Vorpal: yes. c99 shit
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:33 <elliott_> Lymee: how
06:06:39 <elliott_> i guess i could print out addrs but
06:06:40 <elliott_> fuck that shit
06:06:48 <Lymee> data[0]=1
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:18 <elliott_> you can sizeof them
06:07:24 <Lymee> COW?
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:07:57 <elliott_> Lymee: coppy on write
06:08:03 <CakeProphet> ....we are talking about C, where they are the same thing.
06:08:04 <Lymee> Ah.
06:08:05 <elliott_> Vorpal: i asked lifthrasiir
06:08:07 <elliott_> CakeProphet: hahaha nope
06:08:07 <Vorpal> elliott_, I don't think VLA extends to function prototypes
06:08:12 <Vorpal> but I could be wrong
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:08:57 <elliott_> and that's not the point.
06:08:59 <elliott_> i was takling about sizeof.
06:09:11 <Vorpal> elliott_, what, you lost me
06:09:20 <elliott_> k
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:40 <elliott_> CakeProphet: you are wrong.
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:09:55 <Vorpal> yeah
06:10:47 <monqy> c hurts
06:10:49 <monqy> my head
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:45 <elliott_> i googled it up
06:11:47 <CakeProphet> elliott_: ah okay, I see.
06:11:58 <elliott_> its even the old version of the c-faq
06:12:02 <Vorpal> hm
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:23 <CakeProphet> at least in online literature about C.
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:17 <monqy> passed by values?
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:29 <elliott_> monqy: yes
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:42 <elliott_> it is a widely used idiom
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:48 <lifthrasiir> nothing.
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:53 <Vorpal> lifthrasiir, huh
06:14:55 <lifthrasiir> that's just like data[] or *data.
06:14:56 <elliott_> and that's a small-ish codebase.
06:15:00 <lifthrasiir> (afaik)
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:22 <CakeProphet> ah.
06:15:30 <elliott_> CakeProphet: of course you can pass a structure with an array.
06:15:34 <CakeProphet> right.
06:15:34 <elliott_> that works fine and doesn't decay.
06:15:38 <elliott_> (rhymes)
06:15:39 <lifthrasiir> Vorpal, in principle, yes, but gcc seems ignoring this even in the C99 mode.
06:15:45 <monqy> c :(
06:15:48 <Vorpal> lifthrasiir, heh
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:42 <elliott_> um why
06:17:47 <elliott_> that makes no difference
06:17:52 <elliott_> and is more misleading really
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:01 <lifthrasiir> yes, that IS a problem.
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:33 <CakeProphet> <types> as in templates or...?
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:01 <CakeProphet> is there still something wrong with that?
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:40 <CakeProphet> ..yes, I would say this is preferred.
06:26:48 <zzo38> Yes using [ ] in declaration declares its space is the point.
06:26:53 <CakeProphet> zzo38: you would not like Perl. :)
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:44 <CakeProphet> ah okay, right.
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:29:06 <zzo38> Yes.
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:06 <elliott_> Yes.
06:34:21 <elliott_> There are no arrays involved here; calling it "dynamically allocated memory" might answer some questions.
06:34:32 <CakeProphet> well, right.
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:31 <elliott_> um
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:40:36 <elliott_> did you like it legitimately
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:41:23 <CakeProphet> for... several years, actually. :P
06:42:11 <Sgeo> elliott_, do you think my taste is that atrocious?
06:42:16 <elliott_> Sgeo: Yes.
06:42:25 <elliott_> list.c:45: error: incompatible types when assigning to type ‘struct <anonymous>’ from type ‘struct <anonymous>’
06:42:37 <CakeProphet> ....hahaha
06:43:15 <CakeProphet> also, C has anonymous structs?
06:44:14 <elliott_> struct { ... }
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:31 <Deewiant> struct { int x; } s;
06:45:32 <Deewiant> s.x = 0;
06:45:33 <elliott_> any questions
06:45:50 <elliott_> seems that C doesn't unify anonymous structures with identical fields
06:45:51 <elliott_> sigh
06:45:51 <CakeProphet> oh that's.... interesting.
06:45:57 <elliott_> this makes this ten times harder than i expected :D
06:46:12 <elliott_> oh wait
06:46:14 <CakeProphet> you can't just de-anonymize it?
06:46:16 <elliott_> is (typeof foo){ ... } a valid struct literal
06:46:16 <elliott_> CakeProphet: no
06:46:57 <CakeProphet> elliott_: void pointers maybe?
06:47:17 <elliott_> no
06:47:58 <CakeProphet> woah, so you write .field = ...?
06:48:04 <CakeProphet> I have never seen this before, ever.
06:48:42 <elliott_> starting to wonder how much C you've used, tbh
06:48:45 <elliott_> this is C99
06:49:34 <CakeProphet> not as much as I thought, apparently.
06:50:28 <CakeProphet> so why can't you use named structs again?
06:50:33 <elliott_> macro shit
06:50:38 <CakeProphet> ah... yes.
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 <Deewiant> Not any more it doesn't.
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:55:18 <CakeProphet> elliott_: what is wrong with you.
06:55:22 <elliott_> macro shit
06:55:54 <oerjan> he's shitting macros
06:55:54 <CakeProphet> int empty[0];????
06:56:06 <elliott_> CakeProphet: for typeof.
06:56:09 <elliott_> and sizeof.
06:56:09 <monqy> hi guys im back from being away did bad stuff happen
06:56:11 <elliott_> int is T
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:57:21 <elliott_> CakeProphet: int is T.
06:58:12 <CakeProphet> I don't really know what that means, then. You mean it's the type parameter in your macro shit?
06:58:15 <elliott_> yep
07:00:06 <CakeProphet> why not just write T then?
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:20 <elliott_> nope.
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:37 <elliott_> howso btw
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:02:58 <elliott_> ({ \
07:03:00 <elliott_> typeof((list).empty[0]) _list_cons_head_##id = (head); \
07:03:01 <monqy> l o s e r
07:03:02 <elliott_> (typeof(list)){ \
07:03:04 <elliott_> .empty = {}, \
07:03:06 <elliott_> .generic_list = generic_list_cons(sizeof(_list_cons_head_##id), (char *) &_list_cons_head_##id, (tail).generic_list) \
07:03:09 <elliott_> }; \
07:03:13 <elliott_> })
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:04:27 <elliott_> zzo38: caret to Deewiant
07:05:22 <elliott_> Deewiant: is there a discussion thread for that commit
07:05:34 <Deewiant> Maybe
07:05:34 <zzo38> Does that only apply to named types? Or to anonymous types too?
07:05:49 <elliott_> Deewiant: Thx
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:10 <CakeProphet> elliott: void pointers. everywhere.
07:07:12 <zzo38> Deewiant: That makes sense, now.
07:07:29 <CakeProphet> elliott_: terrible casts, everywhere.
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:10:12 <CakeProphet> using... magic unique naming skills?
07:10:28 <CakeProphet> #define macro(x, y, keysmash)
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:11:27 <monqy> :'(
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:14:50 <pikhq_> monqy: m4?
07:15:06 <CakeProphet> C? No. never. No one would ever write a C preprocessor.
07:15:34 <CakeProphet> template C.
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:17:45 <itidus20> #playsound
07:18:16 <itidus20> :o
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:39 <CakeProphet> this would be pretty cool.
07:20:42 <itidus20> like a music 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:22:55 <elliott_> it can work with 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:12 <CakeProphet> :)
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:41 <monqy> ooh
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:25:46 <CakeProphet> .... (blatantly not true, shhhhh)
07:25:49 <pikhq_> Or any other code.
07:26:14 <itidus20> I am interested in data re-representations.. i don't know a better words
07:26:18 <itidus20> ^word
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:01 * CakeProphet knows all of the codes.
07:27:10 <itidus20> one example being converting music into visualizations.
07:27:42 <itidus20> its a niche area
07:28:21 <CakeProphet> itidus20: try running aplay on a pdf or /dev/urandom
07:28:24 -!- oerjan has quit (Quit: leaving).
07:28:30 * itidus20 opens up my personal wiki
07:28:46 <CakeProphet> itidus20: go write about it on your blag.
07:28:52 <itidus20> i have a winxp box. i've never had any form of *nix installed :-s
07:29:09 <itidus20> im that kind of person
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:48 <pikhq_> (still in common use)
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:30:56 <CakeProphet> is there even such a way?
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:31:54 <CakeProphet> er, no I was referring to
07:31:57 <CakeProphet> Haskell actually.
07:32:02 <pikhq_> zzo38: Well, yes, it's obvious how it would do that.
07:32:05 <itidus20> ahh ok IO monad
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:32:48 <CakeProphet> ooooh, I forgot about the \n
07:32:58 <CakeProphet> I wonder if it aliases.
07:33:00 <pikhq_> Half the sample rate.
07:33:07 <CakeProphet> ...ah.
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:34:53 <zzo38> Yes.
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:42:29 <Taneb> Hello
07:42:36 <pikhq_> Erm, '\x255'
07:43:06 <CakeProphet> by default it's a triangle wave.
07:43:15 <CakeProphet> but I bet you could get a sine tone.
07:44:25 <CakeProphet> well, hmmm.. I think you might need floating point numbers for that.
07:44:55 <pikhq_> No.
07:45:39 <pikhq_> If you want a perfect sine tone, what you need is infinite-bit sampling.
07:45:53 <CakeProphet> that's obviously not what I mean though.
07:46:21 <pikhq_> And there will be no notable benefit to floating point over integer samples if both are bounded.
07:46:54 <CakeProphet> > map (toEnum.(+10).(*245).sin) [1..]
07:46:55 <lambdabot> No instance for (GHC.Float.Floating GHC.Types.Int)
07:46:55 <lambdabot> arising from a use of...
07:47:07 <CakeProphet> > map (toEnum.(+10).(*245).round.sin) [1..]
07:47:08 <lambdabot> [*Exception: Prelude.Enum.().toEnum: bad argument
07:47:29 <CakeProphet> ...lol
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:47:54 <CakeProphet> a sequence of characters, anyways.
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:48:28 <CakeProphet> ah.
07:48:32 <CakeProphet> has to be unsigned.
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:49:56 <CakeProphet> that's not going to be right though.
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:13 <CakeProphet> also abs != convert signed to unsigned.
07:54:37 -!- GuestIceKovu has joined.
07:55:20 <Taneb> Now I need a fourth paradigm to add to BVP
07:55:34 <CakeProphet> you probably want aspect-oriented.
07:56:20 -!- Slereah has quit (Ping timeout: 240 seconds).
07:56:39 <Taneb> Okay
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:07 <CakeProphet> why settle for only one?
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:01:16 <itidus20> humm cellular automatons...
08:01:21 <itidus20> do cells exist?
08:01:29 <CakeProphet> what?
08:01:50 <itidus20> does a cell exist? :P
08:01:55 <CakeProphet> what kind of cell.
08:02:02 <itidus20> a game of life cell
08:02:09 <CakeProphet> uh, sure.
08:02:18 <itidus20> well, do infinite cells exist?
08:02:28 <CakeProphet> in the game of life, yes.
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:03:36 <itidus20> ahh
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:30 <Taneb> No
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:04 <itidus20> :D
08:05:39 <CakeProphet> data GoLState = Alive | Dead
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:28 <CakeProphet> er... no.
08:06:29 <CakeProphet> what am I doing.
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:28 <Taneb> O dee mee!
08:07:32 <CakeProphet> I'm not entirely sure how to represent a zipper in 2D
08:07:41 <CakeProphet> a zipper of zippers?
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:08:50 <CakeProphet> repeat x = x : repeat x
08:09:19 <CakeProphet> or fix (x:) :P
08:11:33 <CakeProphet> okay so I'd have data Zipper t = Zipper {left :: [t], right :: [t], current :: t}
08:11:55 <CakeProphet> and then type CA t = Zipper (Zipper t)
08:12:49 <CakeProphet> then I could define shiftLeft, shiftRight, shiftUp, shiftDown.
08:15:22 <Taneb> brb
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:17:30 <CakeProphet> which is not quite what I want.
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:21:04 <CakeProphet> but that seems pretty inefficient.
08:21:19 <CakeProphet> just a little bit
08:23:53 -!- monqy has quit (Quit: hello).
08:24:00 <Taneb> Back
08:43:47 -!- Taneb has quit (Ping timeout: 252 seconds).
08:45:59 <CakeProphet> !perl print 2 >> 1
08:46:01 <EgoBot> 1
08:46:08 <CakeProphet> !perl print 3 >> 1
08:46:08 <EgoBot> 1
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:07:58 <CakeProphet> baffles me.
09:08:43 <CakeProphet> fizzie: and right, putting them together with and requires shifting the bits to the right location.
09:08:57 <CakeProphet> well... with or actually.
09:09:16 <CakeProphet> extracting with and.
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:02 <CakeProphet> ..oh, really? damnit.
09:11:18 <CakeProphet> at least C# has delegates, I mean really.
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:27 <CakeProphet> that's so stupid.
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:20 <fizzie> Runnable and such.
09:12:32 <CakeProphet> well right, but they could also just add new constructors for those methods that take lambda parameters.
09:12:37 <CakeProphet> *for those classes
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:10 <CakeProphet> so lame.
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:19:15 <CakeProphet> variables/method parameters
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:21:19 <CakeProphet> oh you do?
09:22:01 <CakeProphet> ah yes
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:26:23 <CakeProphet> it does the exact same thing.
09:27:26 <CakeProphet> erkwerjwejr
09:27:34 <CakeProphet> // is probably Perl's most important contribution to the future of OO programming. :P
09:27:54 <CakeProphet> but C# will get all of the credit. :(
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:01 <CakeProphet> that's weird.
09:30:16 <CakeProphet> Perl 6 is destroying Perl's golfability. :P
09:31:07 <CakeProphet> too many characters to do things.
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:32:43 <CakeProphet> totally.
09:33:07 <CakeProphet> however, cmp is acceptable.
09:33:09 <CakeProphet> make sense?
09:33:21 <fizzie> "Sure, whatev."
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:16 <CakeProphet> > id
09:35:17 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
09:35:17 <lambdabot> arising from a use of `...
09:35:20 <CakeProphet> > id + id
09:35:21 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
09:35:21 <lambdabot> arising from a use of `...
09:35:33 <CakeProphet> caleskell is interesting.
09:35:51 <CakeProphet> :t id - id
09:35:52 <lambdabot> forall a. (Num a) => a -> a
09:36:01 <CakeProphet> what does that even do.
09:37:10 <fizzie> > id - id $ 42
09:37:10 <lambdabot> 0
09:37:16 <fizzie> Verily.
09:37:57 <CakeProphet> > id - id $ True
09:37:57 <lambdabot> No instance for (GHC.Num.Num GHC.Bool.Bool)
09:37:57 <lambdabot> arising from a use of `GHC.N...
09:38:06 <fizzie> I suppose it does the other "intuitive" thing when summing.
09:38:10 <fizzie> > id + id $ 42
09:38:10 <CakeProphet> yes.
09:38:12 <lambdabot> 84
09:38:14 <fizzie> Right.
09:38:43 <CakeProphet> makes writing pointlessly easy.
09:38:59 <CakeProphet> > map ((*2) + (*4)) [1..]
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 <CakeProphet> > 2*sin
09:39:39 <lambdabot> Overlapping instances for GHC.Show.Show (a -> a)
09:39:39 <lambdabot> arising from a use of `...
09:39:40 <CakeProphet> lol
09:39:52 <CakeProphet> > const 2*sin 4
09:39:53 <lambdabot> Overlapping instances for GHC.Show.Show (b -> t)
09:39:53 <lambdabot> arising from a use of `...
09:40:08 <CakeProphet> > (const 2*sin) 4
09:40:09 <lambdabot> -1.5136049906158564
09:40:20 <CakeProphet> awww yeah signal processing.
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 <CakeProphet> @hoogle a -> [a]
10:01:22 <lambdabot> Prelude repeat :: a -> [a]
10:01:22 <lambdabot> Data.List repeat :: a -> [a]
10:01:22 <lambdabot> Prelude iterate :: (a -> a) -> a -> [a]
10:02:56 <CakeProphet> > iterate succ >=> iterate pred $ 1
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:15:00 <benuphoenix> comex was there
12:41:19 <itidus20> i wonder if a wireless network messaging protocol would be a slightly good thing, or a very very bad thing
12:42:59 <itidus20> nvm
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 <CakeProphet> :t shiftL
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:55:31 <itidus20> MoL yeah.. MoL yeah..
13:55:47 <CakeProphet> :t (|)
13:55:47 <lambdabot> parse error on input `|'
13:56:06 <CakeProphet> er whats bitwise or?
13:59:36 -!- benuphoenix has quit (Quit: leaving).
14:00:07 <CakeProphet> @hoogle Bits
14:00:07 <lambdabot> module Data.Bits
14:00:07 <lambdabot> Data.Bits class Num a => Bits a
14:00:07 <lambdabot> Data.Bits bitSize :: Bits a => a -> Int
14:00:11 <fizzie> .|., isn't it?
14:00:15 <CakeProphet> ah
14:00:18 <CakeProphet> :t (.|.)
14:00:19 <lambdabot> forall a. (Bits a) => a -> a -> a
14:00:24 <CakeProphet> :t (.&.)
14:00:25 <lambdabot> Ambiguous occurrence `.&.'
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:00:36 <itidus20> (o Y o)
14:00:55 <CakeProphet> :t (Data.Bits.(.&.))
14:00:55 <lambdabot> Couldn't find qualified module.
14:01:10 <CakeProphet> :t (Data.Bits..&.)
14:01:11 <lambdabot> forall a. (Bits a) => a -> a -> a
14:01:19 <CakeProphet> that syntax is weird to me.
14:01:39 <CakeProphet> > 3 Data.Bits..&. 4
14:01:39 <lambdabot> Ambiguous type variable `a' in the constraint:
14:01:39 <lambdabot> `Data.Bits.Bits a'
14:01:39 <lambdabot> a...
14:01:50 <CakeProphet> > 3 Data.Bits..&. 4 :: Int
14:01:51 <lambdabot> 0
14:03:11 <fizzie> Prettiest thing since sliced bread.
14:04:25 <CakeProphet> :t (.^.)
14:04:25 <lambdabot> Not in scope: `.^.'
14:04:29 <CakeProphet> er, what's xor?
14:04:39 <CakeProphet> @hoogle (Bits a) => a -> a -> a
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:05:52 <lambdabot> `Data.Bits.Bits a'
14:05:53 <lambdabot> a...
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:06:11 <lambdabot> 16
14:06:18 <CakeProphet> ..not quite.
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:00 <lambdabot> Not in scope: `add'
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:08:14 <lambdabot> 4
14:08:18 <CakeProphet> yep
14:09:13 <CakeProphet> now to make it look better.
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:13:36 <CakeProphet> oh right
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:14:15 <lambdabot> 5050
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:18:51 <lambdabot> 5050
14:18:55 <CakeProphet> forgot to remove the let.
14:28:03 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:34:49 <fizzie> The wurst multiplier:
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:34:52 <lambdabot> 323
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:06 <ais523> wow, that's stupid
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:25:33 <Sgeo> cpap.com
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:00 <Vorpal> uh...
15:41:01 <Vorpal> hm
15:41:07 <Vorpal> nope I don't think so
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.
16:17:05 <oklopol> well what problem?
16:19:23 <oklopol> i mean the dynamic one
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:16:35 <quintopia> yeah
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:37:30 <derrik> i hate mystery meat
18:40:18 <olsner> unsure if all of it even counts as meat, but that's part of the mystery I guess
18:41:09 <oklopol> eating causes cancer
18:41:48 <olsner> cancer causes eating
18:42:16 <derrik> work kills.. everybody who has some some work has died
18:42:25 <derrik> *done some
18:42:38 <oklopol> working causes cancer
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:44:56 <Taneb> Hello
19:46:12 <Taneb> Actually, change of plan
19:46:14 <Taneb> brb
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:02:41 <Taneb> Hello
20:03:50 <zzo38> "Hello"
20:06:13 <Taneb> Well, things are happening in the world
20:09:16 <olsner> no, nothing is happening "in the world"
20:10:35 <Taneb> Yes they are
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:45:51 <oklopol> hi oerjan
21:46:07 <oerjan> hi *hides behind rock*
21:46:17 <oklopol> you still don't remember my name?
21:46:48 <oerjan> det ville vært rart
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:32 <oklopol> lemme check my mirror
21:48:44 <oklopol> [00:48:43] <oklopol> hi
21:48:44 <oklopol> [00:48:43] <oklopol> hi
21:48:45 <oklopol> [00:48:45] <oklopol> checking
21:48:45 <oklopol> [00:48:45] <oklopol> checking
21:48:46 <oklopol> no it's there
21:49:04 <oklopol> you must be going blind in one eye
21:49:46 <oerjan> AAAAAAAAAAAAAAAAA
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 ->
21:57:18 <oerjan> O KAY
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:55:18 <elliott> suppe,
22:57:23 <oerjan> pannekaker med ertesuppe
22:57:36 <oerjan> (og bacon)
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:17 <oerjan> ok
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 <elliott> ?hoogle random
23:02:47 <lambdabot> package random
23:02:47 <lambdabot> System.Random random :: (Random a, RandomGen g) => g -> (a, g)
23:02:47 <lambdabot> module System.Random
23:02:51 <elliott> well RandomGen
23:03:04 <elliott> 12:08:58: <benuphoenix> anyone have the ruleset for the irc-based nomic called Canada?
23:03:04 <elliott> wow what
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:14 <elliott> yes; lament
23:04:17 <elliott> tswett:
23:04:55 -!- subleq has joined.
23:05:05 -!- subleq has left.
23:05:46 <elliott> hi subleq bye subleq
23:09:36 -!- subleq has joined.
23:09:41 <subleq> fine, i'll say hi
23:09:58 <elliott> hello
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> <no location info>:
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:20:18 <lambdabot> mueval-core: Time limit exceeded
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:31 <oerjan> oops
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:32:16 <elliott> spaces of paces
23:32:17 <tswett> Yep.
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:13 <lambdabot> against inferred ty...
23:33:16 <oerjan> oops
23:33:34 <oerjan> > fix (\xs -> ' ' : unwords (flip map xs (\x -> case x of ' ' -> "space"; _ -> [x])))
23:33:38 <lambdabot> mueval-core: Time limit exceeded
23:33:41 <oerjan> wat
23:34:16 <oerjan> why would that be different
23:34:50 <oerjan> > take 1 . unwords $ ('x':undefined) : undefined
23:34:51 <lambdabot> "*Exception: Prelude.undefined
23:34:54 <elliott> oerjan: you realise eval is non-deterministic?
23:34:58 <elliott> it could just be slow
23:35:02 <oerjan> > take 1 . unwords $ "x" : undefined
23:35:03 <lambdabot> "*Exception: Prelude.undefined
23:35:20 <oerjan> yes but i more suspect unwords is insufficiently lazy
23:35:25 <oerjan> @src unwords
23:35:25 <lambdabot> unwords [] = ""
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:37:52 <lambdabot> "*Exception: Prelude.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:38:37 <lambdabot> "*Exception: Prelude.undefined
23:38:45 <oerjan> oh hm
23:39:29 <oerjan> > "x" ++ undefined
23:39:30 <lambdabot> "x*Exception: Prelude.undefined
23:39:41 <oerjan> > 'x' ++ undefined
23:39:41 <lambdabot> No instance for (Data.Monoid.Monoid GHC.Types.Char)
23:39:41 <lambdabot> arising from a use o...
23:39:46 <oerjan> oops
23:40:03 <oerjan> > "x" ++ ' ':undefined
23:40:05 <lambdabot> "x *Exception: Prelude.undefined
23:40:43 <oerjan> > let unwords ws = foldr1 (\w s -> w ++ ' ':s) ws in unwords $ "x" : undefined
23:40:45 <lambdabot> "*Exception: Prelude.undefined
23:41:31 <oerjan> > foldr1 (\w s -> w ++ ' ':s) $ "x" : undefined
23:41:33 <lambdabot> "*Exception: Prelude.undefined
23:41:53 <oerjan> > foldr1 (\w s -> w ++ b:s) $ [a] : undefined
23:41:54 <lambdabot> *Exception: Prelude.undefined
23:42:02 <oerjan> @src foldr1
23:42:02 <lambdabot> foldr1 _ [x] = x
23:42:02 <lambdabot> foldr1 f (x:xs) = f x (foldr1 f xs)
23:42:02 <lambdabot> foldr1 _ [] = undefined
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:43:50 <elliott> wow what
23:44:14 -!- iamcal has joined.
23:44:49 <oerjan> your shitty macros?
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:47:34 <zzo38> It is difficult.
23:50:36 <elliott> oerjan: mcmap, yes
23:50:42 <elliott> the dollar sign stuff was what wow'd me
23:50:46 <elliott> and the T.167.
23:56:19 -!- Taneb has joined.
23:56:24 <Taneb> Hello
23:57:12 <elliott> hi
23:58:19 * oerjan cackles evilly
23:58:21 <oerjan> i mean, hi
2011-07-28
00:01:04 <elliott> oerjan: g or uppercase or C, which
00:01:08 <elliott> (notuppercase)
00:01:59 <oerjan> wat
00:02:22 -!- Sgeo_ has joined.
00:02:34 <elliott> oerjan: yes?
00:02:38 <oerjan> maybe.
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:15:43 <pikhq> 5) Oleg.
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:23 <elliott> depends what you mean
00:20:33 <elliott> typeclasses are a version of that
00:20:39 -!- iamcal has quit (Remote host closed the connection).
00:20:49 <elliott> so, yes
00:22:06 -!- itidus21 has joined.
00:22:11 <elliott> oerjan: i mean if I make it g
00:22:13 <elliott> how g do i make it
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:28:38 <oerjan> *)'
00:28:47 <elliott> ah.
00:28:51 <elliott> thx towards thou
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:38 <elliott> it just terrifies me
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:34:16 <elliott> monqy: jump
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:41 <Taneb> Eve
00:36:41 <Taneb> r
00:36:50 <monqy> "Subsequent inversions would serve as insurance against unintentional survival of passengers." good sentence
00:37:01 <oerjan> the best.
00:37:07 <Taneb> Also, it's getting early
00:37:12 <Taneb> Goodnight
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 * oerjan swats tswett -----###
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:49:31 <elliott> tswatt
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:55 <elliott> ?hoogle fromRight
01:08:55 <lambdabot> No results found
01:08:58 <elliott> ?hoogle either
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:08:58 <lambdabot> module Data.Either
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:45 <oerjan> :t maybe
01:10:46 <lambdabot> forall b a. b -> (a -> b) -> Maybe a -> b
01:10:50 <oerjan> :t fromMaybe
01:10:51 <lambdabot> forall a. a -> Maybe a -> a
01:10:55 <Sgeo_> Hmm, crud
01:11:01 <oerjan> oh right
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:14:48 <Sgeo_> Hmm
01:22:30 <elliott> "da"
01:22:38 <elliott> oerjan: qoantism,
01:22:42 <elliott> <oerjan> oh dam
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:23:40 <oerjan> iirc.
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:25:39 <oerjan> *latin
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:04 <oerjan> wat again
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:27:57 <oerjan> zzo38: good grief :P
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:17 <elliott> argh
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:33:26 <elliott> ARGH THIS SUCKS
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:34:14 <elliott> just make it text/plain
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:46:33 <elliott> im zombie
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:08 <Slereah> oerjan
01:48:17 <Slereah> France used to have the best weather guy
01:48:36 <Slereah> Also
01:48:41 <Slereah> Dude almost died on air D:
01:48:46 <Slereah> http://www.youtube.com/watch?v=GWRkWp7n_ew
01:49:26 <Slereah> It was pretty weird
01:49:39 <Slereah> Well, not dying
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:51:56 <elliott> oerjan: link? :D
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:44 <elliott> icant undertsand you
01:52:46 <Slereah> He was always making jokes and all
01:52:55 <elliott> is he dead
01:52:55 <Slereah> So many people assumed that this was a little skit
01:52:58 <Slereah> Yeah
01:53:06 * elliott cries profusely, rip french weatehrman
01:53:09 <oerjan> http://www.youtube.com/watch?v=t6kRFRXkltE
01:53:24 <elliott> oerjan: oh my god
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:43 <Slereah> Man
01:53:48 <Slereah> Napoleon Dynamite did not age well
01:53:52 <elliott> he has a fucking stick his stick is amazing
01:53:55 <elliott> Slereah: :D
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> The gdiff package
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:58:08 <elliott> oh cool
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:00:11 <elliott> will look in minute
02:02:33 <elliott> any diff library that depends on a type equality GADT is a good diff library
02:02:53 <elliott> oerjan: ok wtaching
02:03:03 <elliott> wow is that an actual board with stick on numbers oerjan
02:03:06 <elliott> on an actual cube
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:15 <oerjan> yes.
02:03:17 <elliott> oerjan: does he always stay off-screen
02:03:19 <oerjan> it's from 1981
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:34 <elliott> :(
02:03:43 <elliott> also why is this guy famous :D
02:03:59 <oerjan> his voice, and general geekiness
02:04:19 <elliott> :D
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:11 <elliott> heh
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:13 <elliott> link to thread plz
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:04 <oerjan> yes
02:17:07 <elliott> <oerjan> omg http://i.imgur.com/4qCak.jpg
02:17:08 <elliott> wow
02:17:11 <elliott> literal best
02:17:21 <elliott> just what
02:17:58 <oerjan> the comment with "ESTONIA"
02:18:22 -!- TeruFSX has quit (Ping timeout: 252 seconds).
02:18:27 <elliott> on danish guy
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:41 <elliott> wat
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:13 <elliott> oerjan: :(
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:21:39 <elliott> this is the best song
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:37 <oerjan> yeah
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:09 <oerjan> right
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:19 <oerjan> > let @ whatever =
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 <oerjan> > let # whatever =
02:42:30 <lambdabot> <no location info>: parse error on input `#'
02:42:51 <oerjan> yes
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:22 <lambdabot> 7
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:51:25 <pikhq> )
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:01:44 <oerjan> ah.
03:02:02 <oerjan> oh hm
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:49 <oerjan> "
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:19 <elliott> flowers
03:15:21 <elliott> forevers
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:43 <elliott> zzo38: template haskell
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:24 <elliott> it would be a section
03:18:26 <elliott> equivalent to
03:18:33 <elliott> flip (\) end{code=blah}
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:18:56 <elliott> indeed
03:19:00 <oerjan> elliott: \ is not a legal operator though
03:19:03 <elliott> oerjan: oh
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:22:40 <elliott> oh right
03:22:40 <elliott> hmm
03:22:46 <elliott> \end{code}->expr
03:22:51 <elliott> would be a valid line
03:22:53 <elliott> (again with TH)
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:45 <elliott> oerjan: um well hmm
03:23:46 <elliott> it might be
03:23:52 <elliott> yeah you are right
03:23:57 <elliott> the TH thing is just an expression as a valid top-level line
03:24:04 <elliott> > \end{code} -> code
03:24:04 <lambdabot> <no location info>: Parse error in pattern
03:24:10 <elliott> bah
03:24:30 <oerjan> :t \end{test=hi}->hi
03:24:31 <lambdabot> Parse error in pattern
03:24:40 <oerjan> :t \End{test=hi}->hi
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:15 <elliott> but no, it isn't
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:35 <elliott> seems so
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:55:55 <elliott> wat
03:56:07 <elliott> Anon0AnALY5e said...
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:58:35 <elliott> you've mentioned
03:58:35 <elliott> several times
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:00:39 <elliott> arr // [(9,x)]
04:00:53 <elliott> mutable arrays:
04:00:56 <elliott> writeArray arr 9 x
04:01:35 <elliott> with repa...
04:02:16 <elliott> hmm
04:02:19 <elliott> oh, it has // too
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:09:37 <elliott> i didn't try
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:19:18 <elliott> forever without a slep
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:25 <elliott> CONTRAVERSIAL
04:21:57 -!- CakeProphet has quit (Ping timeout: 252 seconds).
04:21:58 <oerjan> grammar hard, it is
04:24:00 <monqy> what hapense to caniablse then,,,,
04:24:08 <elliott> monqy: dies
04:26:01 <elliott> ow pain
04:26:04 <elliott> infinite
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:27:48 <monqy> subpeople
04:37:38 <elliott> ?hoogle bytestring empty
04:37:38 <lambdabot> No results found
04:37:39 -!- MDude has changed nick to MSleep.
04:37:39 <elliott> ?hoogle empty
04:37:39 <lambdabot> Control.Applicative empty :: Alternative f => f a
04:37:39 <lambdabot> Data.ByteString empty :: ByteString
04:37:39 <lambdabot> Data.IntMap empty :: IntMap a
04:40:00 <oerjan> does hoogle even take two parameters
04:42:25 <elliott> ?src hGetLine
04:42:25 <lambdabot> Source not found.
04:42:26 <elliott> oerjan: dunno :D
04:42:56 <oerjan> @hoogle IO String
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:10 <oerjan> @more
04:43:14 <oerjan> bah
04:43:38 <oerjan> @hoogle getLine
04:43:38 <lambdabot> Prelude getLine :: IO String
04:43:38 <lambdabot> Data.ByteString getLine :: IO ByteString
04:43:38 <lambdabot> System.IO getLine :: IO String
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 <oerjan> @hoogle :: IO String
04:46:17 <lambdabot> Prelude getContents :: IO String
04:46:17 <lambdabot> Prelude getLine :: IO String
04:46:17 <lambdabot> System.IO getContents :: IO String
04:47:12 <oerjan> aha...
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:47:46 <elliott> oerjan: number sign plz
04:47:51 <oerjan> #
04:47:54 <elliott> thx
04:48:38 -!- postmodern has joined.
04:50:35 <elliott> > mzero :: IO ()
04:50:35 <lambdabot> Overlapping instances for Control.Monad.MonadPlus GHC.Types.IO
04:50:35 <lambdabot> arising f...
04:50:36 <elliott> postmodern: hi
04:50:42 <elliott> ?pl return ()
04:50:42 <lambdabot> return ()
04:50:44 <elliott> bah
04:50:45 <elliott> ?hoogle m ()
04:50:46 <lambdabot> Network.BSD endHostEntry :: 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:00:25 <oerjan> or wait
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:26 <elliott> hmm, thanks
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:07:50 <elliott> thanks
05:09:46 <elliott> hmm...
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:03 <lambdabot> arising from ...
05:10:09 <elliott> bah
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:10:58 <elliott> oh duh
05:11:10 <elliott> ?pl \f g x -> f x <|> g x
05:11:10 <lambdabot> liftM2 (<|>)
05:11:16 <elliott> ?pl \f g -> B(\x -> f x <|> g x)
05:11:16 <lambdabot> (B .) . liftM2 (<|>)
05:11:24 <elliott> ?pl B (\x -> f x <|> g x)
05:11:24 <lambdabot> B (liftM2 (<|>) f g)
05:11:39 <elliott> :t fmap
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:11:57 <elliott> oh, that's easy
05:12:53 <elliott> :t (<*>)
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:17 <elliott> :t when
05:14:18 <lambdabot> forall (m :: * -> *). (Monad m) => Bool -> m () -> m ()
05:14:25 <elliott> bah, why monad only :(
05:14:33 <elliott> hmm wait
05:14:34 <elliott> :t guard
05:14:35 <lambdabot> forall (m :: * -> *). (MonadPlus m) => Bool -> m ()
05:14:39 <elliott> ?pl guard b >> x
05:14:39 <lambdabot> guard b >> x
05:23:21 <oerjan> <elliott> bah, why monad only :( <-- when is intrinsically monadic, not applicative.
05:23:31 <elliott> i know i know i know :P
05:30:44 <elliott> ?hoogle choice
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 <elliott> ?hoogle choose
05:30:47 <lambdabot> Test.QuickCheck choose :: Random a => (a, a) -> Gen a
05:30:49 <elliott> oh come on
05:33:23 <oerjan> :t msum
05:33:24 <lambdabot> forall (m :: * -> *) a. (MonadPlus m) => [m a] -> m a
05:33:28 <oerjan> this one?
05:33:47 <elliott> oerjan: nope, I'm using Alternative
05:33:49 <elliott> like a good person
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:08 <elliott> pffffffffffffft
05:34:13 <elliott> oh maybe sequence
05:34:14 <oerjan> :t asum
05:34:14 <lambdabot> Not in scope: `asum'
05:34:18 <oerjan> wat
05:34:21 <elliott> oh right asum
05:34:22 <elliott> ?hoogle asum
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:34 <elliott> Just ()
05:36:35 <elliott> yay
05:36:40 <elliott> test :: Handler (IO ())
05:36:40 <elliott> test =
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> infixr 0 >-
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:41:53 <pikhq_> Alo, ow.
05:41:56 <pikhq_> Also, even.
05:42:44 <oerjan> pikhq_: wat
05:44:07 * oerjan beholds, and appreciates that it associates the right way
05:44:22 <elliott> oerjan:
05:44:23 <elliott> test :: Handler (IO ())
05:44:23 <elliott> test =
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:46:13 <elliott> oerjan: psht
05:49:07 <elliott> oerjan: mostly i was thinking i could fill it with the perfect opinions on any topic
05:49:27 <elliott> for instance
05:49:37 <elliott> hey yo bot what is up withbrainfuck derivatives<<bot murders user>>
05:50:02 <oerjan> O KAY
05:50:15 <elliott> hey yo bot
05:50:16 <elliott> what is up
05:50:19 <elliott> with oerjan
05:50:24 <elliott> <BOT>HES A POOPHEAD WHOIS ANTIBOT
05:50:35 <elliott> <<BOT DESTROYS OERJANS CUP OF WHATEVER HE IS DRINKING>>
05:50:40 <elliott> REV/.GENGE
05:52:40 <oerjan> so, a short-term channel participant, got it.
05:52:55 <elliott> r u saying
05:52:58 <elliott> that bots with opinions
05:53:03 <elliott> rbannable oerjan?
05:53:15 <elliott> would u like to apologise???? for this badness
05:53:33 <oerjan> no...
05:53:43 <elliott> rugoing todie
05:54:01 <elliott> because im going to punch u with bot death
05:54:06 <elliott> <oerjan> crying :(
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:55:21 <elliott> that would be hlarious
05:56:01 -!- Slereah has quit (Ping timeout: 240 seconds).
05:56:57 <oerjan> hlearly
05:57:59 <elliott> im a robot
05:58:01 <elliott> beeeeeeeeeeeeeeep
05:58:45 <Sgeo_> elliott, in the distant future?
05:58:50 <elliott> now
05:58:59 <elliott> <oerjan> this explainseveryhething
05:59:24 <elliott> oerjan isa magician
06:01:12 <elliott> god Sgeo_ make oerjan a cooler irc
06:01:35 <Sgeo_> What?
06:01:52 <Sgeo_> All I want to know is when you hopped aboard the OO wagon
06:02:01 <elliott> what
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:33 <elliott> oerjan: wow
06:02:34 <elliott> im good
06:02:35 <elliott> as good as dmm
06:02:46 <elliott> sowhen is irregular webcomic ending again oerjan ;d :DDD
06:03:00 * oerjan sobs uncontrollably
06:03:09 <oerjan> sometime september
06:03:18 <elliott> oerjan: wait is that confirmed?
06:03:21 <oerjan> no
06:03:26 <elliott> oerjan: how likely :P
06:04:06 <oerjan> well with dmm saying absolutely _nothing_...
06:04:17 <elliott> oerjan: has anyone actually _asked_ :D
06:04:44 <oerjan> not that i know of
06:05:54 <elliott> huh the oolite maintainer ison theiwc foums
06:06:33 <elliott> asterisk is on the iwc
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:39 <elliott> oh dear
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:19:33 <monqy> :'(
06:20:14 <elliott> what book
06:20:53 <Sgeo_> The Last Hero
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:43:06 <elliott> oklopol?
06:44:09 <monqy> whos they help
06:44:37 <oklopol> i had this dream
06:44:50 <oklopol> that bsmntbombdood started a dating service
06:44:55 <oklopol> it was called vigianis
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:14 <oklopol> but i guess not then.
06:45:25 <oklopol> i also went to a cold sauna
06:45:31 <oklopol> hrrrrr
06:48:02 <elliott> vigianis isa good name
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:18 <elliott> bsmnt camein here tody
06:50:20 <elliott> or yesterday
06:50:21 <elliott> what are days
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:26 <oklopol> i get way too much slaep
06:51:28 <elliott> sry monquay
06:51:37 <oklopol> ->
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
06:54:42 <elliott> monqy: im agree
06:57:16 <elliott> monqy
06:57:17 <elliott> TONSILS
06:57:21 <monqy> tonsiles
06:57:33 <monqy> abotu them: what
06:58:56 <oerjan> intercal has them
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:17:24 <elliott> Sgeo_: no
07:17:26 <elliott> not afaik
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:25:59 <elliott> good irc bot
07:26:01 <elliott> pikhq_: because cpp ismagical
07:26:15 <pikhq_> elliott: Ah, so "no, that's completely stupid"?
07:26:17 <pikhq_> Good.
07:26:25 <elliott> pikhq_: no its not
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:00 <pikhq_> What about constants?
07:27:08 <elliott> why are you using cpp for constants
07:27:13 <pikhq_> People do it.
07:27:28 <elliott> that's their problem
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:22 <pikhq_> s/\."/?"./
07:30:52 <elliott> oerjan my codeis broken :( is it because i used unsafecoerce
07:31:48 <oerjan> PROBABLY
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:36 <elliott> aha wait hm
07:33:37 <oerjan> "Saizan: agda is webscale in the sense that you need half of The Cloud to run the typechecker
07:33:40 <oerjan> "
07:34:06 <elliott> wtf now it works
07:34:09 <elliott> oerjan: :D
07:34:27 <elliott> lookup :: (Key k ex) => k -> DepMap ex f -> Maybe (f k)
07:34:27 <elliott> lookup k (DepMap m) =
07:34:27 <elliott> case Map.lookup (box k) m of
07:34:27 <elliott> Nothing -> Nothing
07:34:27 <elliott> Just v -> unsafeCoerce v
07:34:28 <elliott> spot the bug oerjan
07:35:48 <oerjan> erm did you mayhaps want Just (unsafeCoerce v) ?
07:36:05 <elliott> oerjan: yep :D
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:21 <elliott> wat
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:07 <elliott> <oerjan> O KAY
07:38:14 <oerjan> er
07:38:18 <oerjan> um
07:38:19 <oerjan> O
07:38:22 <oerjan> K
07:38:23 <oerjan> A
07:38:24 <oerjan> Y
07:38:27 <elliott> :D
07:38:31 <elliott> you forgot the blank line
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:10 <elliott> pikhq_: :D
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:34 <elliott> it is
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> type Ex k
07:41:12 <elliott> box :: k -> Ex k
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> Data/DepMap.hs:35:1:
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:05 <elliott> oerjan
07:42:10 <elliott> ghc stopped me using type families
07:42:11 <elliott> :(
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:37 <Patashu> dare I ask
07:42:41 <elliott> oerjan: yep
07:42:49 <elliott> Patashu: how much haskell do you know :P
07:43:00 <Patashu> forget I asked
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:20 <oerjan> "
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:04 <elliott> :t extract
07:48:05 <lambdabot> forall source. (Extract source) => (Int, Int) -> source -> source
07:48:52 <oerjan> sounds useful.
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> type K a b = b
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:55:51 <elliott> god proly is a good word
07:55:53 <elliott> (pro-ly)
07:56:20 <oerjan> to proly go
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:56:49 <elliott> Sgeo_: OH NOES
07:57:03 <oerjan> Sgeo_: DOOOOOOOOOOOOOOOOOOOOOOOOOOOOOMED
07:57:10 <elliott> im so creeped out that i cant sleep
07:57:11 <elliott> creped out
07:57:19 <elliott> creped is a word?? wow spellchecker, THANK YOU I LOVE YOU
07:57:20 <oerjan> crêped out
07:58:15 <oerjan> FlexibleInstances maybe?
07:58:46 <elliott> oerjan: nope
07:58:52 <elliott> nothing to do with intsances
07:58:56 <elliott> and the K type is integral to it
07:59:06 <oerjan> oh hm
07:59:27 <oerjan> kind annotations?
07:59:32 <elliott> oerjan: kind signatures, yup
07:59:34 <elliott> :D
07:59:45 <pikhq_> elliott: Your spellchecker has insufficient ê./
07:59:54 <elliott> pikhq_: shut up crepehead
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:03:35 <oerjan> oh wait there it is
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:06:01 <elliott> meh, can't
08:09:30 <elliott> oerjan: my name is t
08:12:24 <elliott> oerjan: omg wiat i can avoid unsafecoerce
08:12:25 <elliott> oerjan: i think
08:12:32 <elliott> oerjan: well hm wait no
08:18:23 <elliott> <orjerna>iqwow
08:19:02 -!- Sgeo_ has changed nick to Sgeo.
08:19:08 <oerjan> gwiblokta
08:19:24 <Patashu> http://www.youtube.com/watch?v=C3X9W7lCI-w getting alright at this game
08:20:35 <elliott> haskel is abeter 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:25:35 <elliott> :(
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:21 <pikhq_> Also, GNU. :P
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:29 <elliott> lol
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:31:58 <elliott> Python is OK to embed.
08:32:00 <elliott> Ruby too
08:32:01 <elliott> So nah
08:32:05 <elliott> Ruby is better IIRC
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:38 <elliott> :-)
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:33:47 <elliott> This is for mcmap.
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:17:12 <Taneb> Hello
09:17:30 <elliott> hi
09:21:08 <elliott> Taneb: You didn't steal all the rail from Deewiant's line, right? :p
09:21:55 <Taneb> No
09:22:11 <coppro> elliott: what.
09:22:28 <elliott> coppro: What?
09:23:46 <elliott> coppro: ?
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:32 <elliott> It could have been.
09:33:41 <Vorpal> theoretically yes
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:17 <Vorpal> ah
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:34:58 <Vorpal> hm
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:33 <elliott> [asterisk]this in here
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:38:05 <elliott> Taneb: Naw, that's okay.
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:55:42 <Sgeo> Hmm
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"
10:58:18 <fizzie> That's a long list.
11:03:00 <elliott> "@subsubsubsection"
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:48:44 <elliott> Hoorj
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:55:42 <elliott> deep
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:26:08 <sebbu> g2
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:30 <elliott> CakeProphet: mcmap
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:26 <Taneb> After two things
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:27 <elliott_> I can laugh, if you'd like
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:44:38 <elliott_> to implement, mostly
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:48:22 <CakeProphet> the only humor I desire is bloooood.
13:48:31 <CakeProphet> bleigh!
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:18 <Patashu> tinyhaskell plz
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:35 <CakeProphet> s/other people/you/g
13:53:41 <Patashu> I'm pretty sure I've been organizing government cells to harass CakeProphet on his favourite IRC channel
13:53:42 <Patashu> Oops
13:53:46 <elliott_> CakeProphet: also monqy.
13:53:48 <Patashu> Shouldn't have let it out
13:53:57 <elliott_> I think PH too.
13:54:58 <CakeProphet> elliott_ and monqy are the most oppressive institition of all.
13:55:07 <CakeProphet> spelled correctly, of course.
13:55:09 <elliott_> bad typing bloc
13:55:35 <itidus20> I personally love the variety of "built-in" features of java api
13:55:47 <itidus20> but eh.. have i used it? no
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:56:51 <Patashu> Is that a real thing
13:58:06 <CakeProphet> What could be simpler than BufferedReader i = new BufferedReader(new FileReader(new File("inp.txt")));
13:58:47 <itidus20> readmymind("inp.txt");
13:58:59 <Deewiant> That 'new File' is unnecessary FWIW
13:59:16 <CakeProphet> yeah I just like to demonize Java.
13:59:27 <elliott_> Patashu: who knows :P
13:59:54 <Patashu> I have an idea
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:05 <Patashu> You can do that right
14:00:09 <Patashu> You could nest infinite new Strings inside of that
14:00:36 <CakeProphet> yes that's valid.
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:00:56 <Patashu> :D
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:02:59 <Patashu> or so
14:03:09 <Patashu> yeah, there probably isn't. it'd just be tokenized
14:03:11 <CakeProphet> lolmethod.
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:11 <Patashu> ...In a unicode encoding!
14:04:12 <CakeProphet> My former roommate, who basically only knows C#, calls functions methods..
14:04:14 * Patashu cackle
14:04:17 * CakeProphet had to explain the difference.
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:29 <Deewiant> Lingua latina mortua est
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:29:31 <Taneb> They all do
14:30:53 <Taneb> Silly me
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:08:57 <CakeProphet> topic: fun with expressions!
15:09:28 <Patashu> Wow
15:09:29 <Patashu> Wait
15:09:31 <Patashu> toURI?
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:10:07 <Patashu> I like this
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:24 <Patashu> and some .toString()s
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:16:23 <Patashu> So constructors instead
15:17:07 <fizzie> (new File("dummy.file")).getClass().getConstructors()[0].newInstance("real.file");
15:17:10 <fizzie> (The best idiom.)
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:17:55 <Patashu> Something like this?
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:19:59 <Patashu> Some tweaking required
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:10 <Taneb> British Topline
15:45:11 <monqy> awful in what sense
15:45:16 <Taneb> Derivative
15:45:23 <monqy> :'(
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:38 <oklopol> hmm
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:15 <oklopol> (except for names)
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:29 <oklopol> right
16:27:35 * tswett nods.
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:30:01 <oklopol> right, multiple guys
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:25 <oklopol> :o
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:19 <itidus20> an exaggeration perhaps
16:57:35 <itidus20> but the idea is cool
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:46 <itidus20> yeah
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:00 <elliott_> as in some simple circuits
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:05 <elliott_> "Bound"
17:01:09 <elliott_> "Killing"
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:03:56 <itidus20> If it creates a robot with AI
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:10:50 <itidus20> alright
17:10:54 <itidus20> i'll chill out
17:11:16 <elliott_> ??
17:11:21 <elliott_> you don't seem unchill
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:16:44 <Taneb> Hello!
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:48 <itidus20> / <img href="blah.png" />
17:20:51 -!- Taneb has quit (Client Quit).
17:20:52 <itidus20> oops
17:20:58 <itidus20> /* <img href="blah.png" /> */
17:21:13 <itidus20> something like that
17:21:59 <elliott_> That's just another instance of "comments shouldn't be restricted to plaintext", see @ ;-)
17:22:38 <itidus20> woot
17:23:04 -!- zzo38 has joined.
17:23:35 -!- copumpkin has quit (Ping timeout: 260 seconds).
17:25:18 <itidus20> humm.. src not href
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:04 <itidus20> nah
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:02 <itidus20> or something
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:28 <CakeProphet> but... I have actual vision problems.
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:38:40 <CakeProphet> lolwat...
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:42:34 <CakeProphet> but they all say zero...
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:43:37 <CakeProphet> so...
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:49:23 <CakeProphet> no I've never seen that.
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:52:04 <elliott_> link
17:52:34 <fizzie> What, to the picture?
17:53:32 <elliott_> Yes :P
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:32 <fizzie> Wrong angle. :/
17:55:45 <fizzie> I have a vague feeling the image I saw was in some google-books result about autorefractors.
17:55:46 <elliott_> Reflections.
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:34 <Taneb> Hello
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:11 <DocHerrings> Seems more like a persistent person.
18:26:53 <atehwa> @tell oerjan ok, paintfuck and twoduck, I'll check them out.
18:26:53 <lambdabot> Consider it noted.
18:28:26 <elliott_> paintfuck is possibly the only interesting brainfuck derivative in the last, like, five years
18:28:53 <atehwa> ok
18:28:53 <lambdabot> atehwa: You have 1 new message. '/msg lambdabot @messages' to read it.
18:28:58 <elliott_> haha
18:29:04 <atehwa> yay
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:20 <elliott_> yep, 2001
18:30:33 <Taneb> True
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:12 <elliott_> :-P
18:33:16 <Taneb> And Discworld.
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:24:51 <monqy> i died
21:25:23 <pikhq_> ...
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:30:44 <quintopia> preferably an ackerman function
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:36:51 <quintopia> thisll be interesting
22:36:58 <pikhq_> Yup.
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:39:43 <quintopia> then how did i fly today
22:41:38 <pikhq_> Sans most of the FAA.
22:41:52 <pikhq_> You've pretty much just got the air traffic controllers working.
22:45:38 <quintopia> wow
22:45:41 <quintopia> why
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:48:29 <quintopia> where you moving?
22:49:01 <coppro> I'm headed back to Canada because my job ends
22:49:30 <quintopia> lucky you
22:49:41 <quintopia> may i join you
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:10 <quintopia> good plan!
22:56:16 <coppro> b) gtfo
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:39 <pikhq_> Oh. Fuck.
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.
22:59:33 <monqy> :(
23:01:02 <quintopia> really? 2 trillion? thats the amount the debt ceiling has to go up?
23:02:02 <pikhq_> quintopia: Overstatement.
23:03:03 <quintopia> what is the amount then?
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:18 <quintopia> haha
23:07:28 <quintopia> and tsa
23:07:48 <pikhq_> coppro: He isn't capable of doing so.
23:07:52 <coppro> pikhq_: I know :(
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:20 <pikhq_> No he can't.
23:08:33 <pikhq_> The President has 0 firing capacity.
23:08:40 <quintopia> the dhs head isnt in his cabinet?
23:08:47 <pikhq_> He can't fire his cabinet.
23:08:54 <pikhq_> He can only appoint.
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:41 <quintopia> aha
23:09:47 <pikhq_> Meaning if he pulled that, he'd basically not have a cabinet.
23:09:52 <quintopia> right
23:18:58 <coppro> pikhq_: Who chooses which parts of the government suffer from the default first?
23:19:22 <pikhq_> coppro: Treasury.
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:22:11 <pikhq_> Yes.
23:23:03 <coppro> they should do that
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.).
2011-07-29
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:38:28 <Sgeo> coppro, sure
01:39:13 -!- itidus21 has joined.
01:42:01 -!- itidus20 has quit (Ping timeout: 258 seconds).
01:43:11 <Sgeo> coppro, ?
01:43:42 <coppro> Sgeo: someone else already did
01:43:45 <coppro> thanks though
01:43:55 <Sgeo> Ah, ok
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:46:55 <Vorpal> Swap: 4094 6 4088
01:47:02 <Vorpal> how the heck...
01:47:06 <Vorpal> how can I be using swap!?
01:47:13 <Vorpal> I mean. come ON
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:54 <Vorpal> pikhq_, indeed
01:48:59 <Vorpal> $ swapon -s
01:48:59 <Vorpal> FilenameTypeSizeUsedPriority
01:48:59 <Vorpal> /dev/sda3 partition209647630961
01:48:59 <Vorpal> /dev/sdb3 partition209647630961
01:49:00 <Vorpal> so uh
01:49:03 <Vorpal> how did that happen
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 <oerjan> boo!
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:07:15 <oerjan> No.
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:22:05 <oerjan> *+his
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:30:49 <madbr> welp
02:30:57 <oerjan> hello
02:31:03 <monqy> hi
02:31:12 <madbr> I'm writing impossible to read code into a commercial lib :o
02:31:29 <oerjan> how job securing
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:27 <Vorpal> heh
02:32:36 <Vorpal> oerjan, joins could be done with COME FROM
02:32:49 <Vorpal> SOMEHOW
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:19 <oerjan> ooh
02:34:40 <madbr> But because math operations are pipelined you have to scramble your code to make it go faster
02:37:09 <oerjan> ^scramble your code
02:37:09 <fungot> yu oedcro
02:37:25 <monqy> good job fungot
02:37:26 <fungot> monqy: whenever the quota for this referendum must list both the current players. if the
02:37:33 <monqy> if the what
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:38:57 <madbr> Dunno
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:18:30 <quintopia> makes sense
05:18:36 <quintopia> thats where ive been
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:22:21 <oerjan> i'm not an admin.
05:22:35 <quintopia> ah
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:32:52 <oerjan> *Grmble.
05:33:40 <quintopia> icwutudidthar
05:34:05 <oerjan> usure?
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:30:13 <Taneb> @Taneb test
07:30:13 <lambdabot> Unknown command, try @list
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:43:51 <lament> oh wait, nevermind.
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:00 <Taneb> Boxen?
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).
13:56:56 <Taneb> Hello
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:05:11 <Taneb> ?
14:07:04 -!- madbr has quit (Read error: Connection reset by peer).
14:09:02 <fizzie> Just do Category:Unimplemented in alphabetical order.
14:09:11 <fizzie> For the common good.
14:11:07 <Taneb> Good idea!
14:11:20 <Taneb> 0x29c!
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 <Phantom_Hoover> INTERNET
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:14:56 <oerjan> "
15:15:54 <oerjan> (on yesterday's iwc annotation)
15:16:17 <Taneb> Oh DMM
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:17:55 <oerjan> ah.
15:18:18 <oerjan> well i'm sure genghis khan got plenty of tribute
15:18:44 <Taneb> True, that
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:39 <oerjan> heh
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:27:53 <Phantom_Hoover> CoAP?
15:28:00 <oerjan> comments on a postcard
15:28:01 <Taneb> Comments on a Postcard
15:28:05 <Phantom_Hoover> Oh, that one.
15:28:14 <Phantom_Hoover> *CoaP in that case, but whatever.
15:28:37 * oerjan is busted
15:28:40 <Phantom_Hoover> <Taneb> He is a time ninja
15:28:48 <Phantom_Hoover> This is the real reason his clock is running slow.
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:30:58 <Phantom_Hoover> Given TV Tropes' recent swerves towards awfulness.
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:07 <Phantom_Hoover> You know your duty.
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:28:11 <Phantom_Hoover> I can make head nor tail of this question.
16:30:46 -!- cheater has quit (Ping timeout: 255 seconds).
16:30:46 -!- madbr has quit (Read error: Connection reset by peer).
16:32:47 <Taneb> aibohphobia
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:38 <Phantom_Hoover> Yes.
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:42:44 <Phantom_Hoover> *sense
16:43:56 -!- TeruFSX has joined.
16:45:48 <oerjan> frozenzephyr's answer looks clear enough...
16:48:26 -!- madbr has joined.
16:49:19 <Phantom_Hoover> Oh, yes.
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:12 <Phantom_Hoover> Oh my god this is amazing.
17:19:15 <Taneb> Bay 12?
17:19:22 <Phantom_Hoover> DF.
17:19:24 <Taneb> That sounds like Dwarf Fortress
17:20:50 -!- TeruFSX has quit (Ping timeout: 264 seconds).
17:20:59 <Phantom_Hoover> It is.
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:21:47 <Phantom_Hoover> If real-world science was like that I would be happy.
17:22:12 <Taneb> If real world science was like that, everyone would be a scientist
17:22:14 <Phantom_Hoover> Although it's engineering, not science.
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:02 <Phantom_Hoover> http://df.magmawiki.com/index.php/DF2010:Tower-cap
17:27:15 <Phantom_Hoover> Taneb, that 'fun' in the DF sense?
17:27:30 <Taneb> Almost.
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:52 <monqy> me too
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:10 <Taneb> Even. Better.
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:27 <Phantom_Hoover> Taneb, can it wait until next Monday?
17:30:35 <Taneb> Probably
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:30:58 <Taneb> Even better
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:51 <Phantom_Hoover> THE SPIDERS, OH GOD, THE SPIDERS
17:31:58 <Taneb> Or you can put it on a memory stick and put it in your cereal box
17:32:49 <ais523> heh
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:36:56 <ais523> instantly.
17:37:21 <Taneb> I once tried to make an indoor fishing place. It worked.
17:37:27 <Taneb> Until it didn't.
17:37:59 <Taneb> Ended having a river flooding into my fortress
17:38:51 <Taneb> brb
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:19 <Sgeo_> ais523, no.
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:53:21 <Sgeo_> s/most/all/
17:54:48 <oerjan> the screaming of the damned will be greatly reduced in the next version
17:55:04 <quintopia> also the head of hitler
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:57:54 <quintopia> aka "free"
17:58:17 -!- Taneb has quit (Ping timeout: 260 seconds).
17:58:19 <Phantom_Hoover> quintopia, is 'working' not another?
17:59:01 <quintopia> well i could hardly call them readers did they not display text in a readable form, could i?
18:00:20 <Phantom_Hoover> On some level, perhaps.
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:08:51 <oerjan> *chirp*
18:09:55 * ais523 chirps in real life
18:10:06 <monqy> charp
18:10:08 <ais523> I actually got quite good at doing chirps, and I'm not entirely sure why
18:10:11 <Phantom_Hoover> ais523, ah, you are a giant insect.
18:10:19 <monqy> cherp
18:10:24 <Phantom_Hoover> THAT EXPLAINS THE BEARD
18:10:32 <oerjan> wait i thought Gregor was the giant insect
18:10:52 <Phantom_Hoover> oerjan, antisemite.
18:11:21 <oerjan> no, dung beetle
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:15 <cheater> O HI
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:23:24 * oerjan spots someone tiny
18:23:35 <angstrom> :->
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:22 <angstrom> DF?
19:35:42 -!- Taneb has quit (Ping timeout: 260 seconds).
19:36:01 <ais523> dwarf fortres
19:36:03 <ais523> *fortress
19:36:44 -!- sebbu2 has joined.
19:36:49 <angstrom> ah. not my metier
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:05 <cheater_> why is it?
19:51:21 <ais523> because it depends on the physical dimensions of the chip
19:51:40 <cheater_> that's not wayward
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:07:56 * Adaria waves.
21:08:22 * ais523 waves back
21:08:44 <Adaria> Seems quiet in here.
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:16 <zzo38> It is
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:06 <quintopia> miranda, eh
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:12 <Taneb> Hello!
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:15 <Adaria> Exactly.
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:24 <monqy> link in the topic
21:15:36 <ais523> and you can ask the client to repeat the topic to you by writing /topic
21:15:50 <quintopia> what screen reader?
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:45 * oerjan recalls ircII did
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:10 <quintopia> what screen reader do you use
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:11 <ais523> it's a common mistake
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:06 <ais523> one way or another
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:33:50 <Taneb> I think
21:33:57 <quintopia> or girl
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:34:20 <quintopia> cool
21:34:26 <quintopia> again
21:34:28 <quintopia> let us know
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:48 <evincar> ais523: I know, right. :P
21:36:55 <Taneb> Imagine an adrogenous specific pronoun
21:37:02 <ais523> "it"?
21:37:11 <Adaria> Completely blind here.
21:37:31 <Taneb> To me, "it" is that's more of non-human
21:38:42 <Taneb> Completely blind?
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:19 <elliott_> ais523: ping
21:41:26 <ais523> elliott_: pong
21:41:29 <Taneb> Shortsightedness can vary a lot
21:41:31 <elliott_> ah good, I'm connected
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:06 <elliott_> also hi Adaria
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:48 <ais523> elliott_: they don't
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:44:44 <elliott_> but, you first
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:33 <elliott_> :(
21:45:34 <elliott_> okay then
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:44 <ais523> *world
21:45:57 <elliott_> like?
21:45:57 <Adaria> OK gonna go get food. I'll beback later on.
21:46:01 <Taneb> Bye
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:12 <oerjan> ElliottT
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:48:59 <elliott_> nah
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:53 <Taneb> What's a monad?
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:10 <elliott_> evincar:
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:25 <elliott_> pikhq: >>=
21:52:30 <elliott_> evincar: But what the monad provides is /implicit/ error propagation
21:52:31 <pikhq> elliott_: Thanks. Thinko.
21:52:33 <elliott_> Just like exceptions
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:02 <elliott_> ?
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:21 <elliott_> It is identical.
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:21 <elliott_> that's OOP
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:04 <monqy> did it 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:11:49 <evincar> elliott_: I do 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:39 <elliott_> evincar: see /msg
22:12:40 <ais523> my . key is broken
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:33 <elliott_> ais523: does NetHack?
22:15:45 <ais523> not yet
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:09 <elliott_> you tested NetHack
22:16:14 <ais523> actually, I didn't
22:16:22 <elliott_> then how do you know? :-P
22:16:26 <ais523> I answered the question based on my own knowledge of how implemented my thing is
22:16:27 <monqy> spoiler: teased
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:18 <elliott_> monqy: yesssssssss
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:05 <elliott_> Taneb: it is
22:19:12 <elliott_> AND IT ISN'T
22:19:18 <elliott_> observe above: helpfulness
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:28 <elliott_> I'm no physicist, mind you
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:23:07 <ais523> elliott_: I don't
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:49 <elliott_> evincar: PSHT
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:36 <evincar> Patashu: Naturally. ;)
22:29:50 <elliott_> Patashu: you can obviously do N^(n+1) => N^n given (N,N) => N
22:29:55 <elliott_> pretty inefficient though
22:30:00 <elliott_> as far as number size goes
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:29 <evincar> elliott_: Yes?
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:30 <evincar> Random unformed ideas.
22:34:37 <evincar> Then you make them into a thing that works.
22:34:40 <elliott_> This pain inside!
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:41 <Taneb> It's working
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:39:48 <elliott_> ais523: But --
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:40:26 <Taneb> @?
22:40:53 <elliott_> Taneb: Ugh, come ooooon
22:40:56 <elliott_> Not again :-P
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:05 <elliott_> zzo38: by using a C compiler
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:14 <elliott_> Not a VM per se
22:48:19 <ais523> or, not exactly
22:48:21 <ais523> but the same concept
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:51 <elliott_> Patashu: GPU has no OS
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:49:57 <elliott_> ais523: indeed
22:50:05 <elliott_> ais523: but, you only have to do the conversion when it's actually casted and read from
22:50:10 <ais523> yep
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:54:42 <elliott_> Hopefully.
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:57:56 <pikhq> elliott_: Paging.
22:58:00 <elliott_> Right, same thing.
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:01 <pikhq> *All* paging.
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:19 <elliott_> Well, beyond that.
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:26 <ais523> yep
23:02:28 <pikhq> It's also useful for COW.
23:02:37 <ais523> oh right, that too
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:17 <ais523> heh
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:06:52 <ais523> elliott_: yes?
23:06:54 <pikhq> (also recent x86)
23:06:56 <elliott_> one sec
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:20 <ais523> that makes more sense
23:09:29 <elliott_> that isn't the model yet
23:09:30 <ais523> you saying the original idea was wrong, that is
23:09:33 <elliott_> Right
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:08 <elliott_> ais523: More precisely:
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:29 <elliott_> Or,
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:19 <ais523> and Z is on B?
23:11:25 <ais523> yep
23:11:27 <elliott_> Objects aren't "on" anywhere.
23:11:29 <elliott_> But, yeah.
23:11:36 <elliott_> Objects just "exist". :p
23:11:40 <ais523> I mean, where the data is physically stored
23:11:43 <elliott_> Right.
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:25 <elliott_> ais523: More precisely:
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:07 <elliott_> This isn't a keypair.
23:14:09 <ais523> we need better terminology
23:14:14 <ais523> I mean, you're saying "public key"
23:14:14 <elliott_> ais523: No, it's not private.
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:46 <ais523> go on
23:14:53 <ais523> what I mean is, is B/Z's public key public knowledge?
23:15:03 -!- madbr has joined.
23:15:10 <elliott_> Yes.
23:15:17 <elliott_> It's sent over the wire in case A/Y doesn't know it.
23:15:29 <ais523> ah, OK
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:16:01 <elliott_> Give me a minute.
23:16:03 <ais523> ah, OK
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:43 <elliott_> to B/Z's key.
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:18:24 <elliott_> Yes.
23:18:38 <elliott_> oh wait, there's more
23:18:40 <elliott_> stop for a second
23:18:40 <elliott_> stop typing
23:18:45 <ais523> I wasn't typing!
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:19:56 <elliott_> (Their newly-generated 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:16 <ais523> yep
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:05 <elliott_> evincar: Quite.
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:21:47 <elliott_> ais523: Anyway,
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:10 <ais523> or Z itself
23:24:11 <ais523> either will do
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:28 <ais523> elliott_: ah, OK
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:24:57 <elliott_> yes, true
23:25:00 <elliott_> but
23:25:02 <elliott_> it has to anyway
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:11 <elliott_> and their public 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:36 <elliott_> and restaet things?
23:25:44 <elliott_> specifically
23:25:44 <elliott_> <ais523> e.g. X wants to pass a copy of Z to Y
23:25:44 <elliott_> <ais523> or Z itself
23:25:44 <elliott_> <ais523> either will do
23:25:44 <elliott_> <ais523> then it forgets about Z
23:25:55 <ais523> B/Z, B/X, A/Y
23:26:00 <elliott_> note that if I could avoid using TCP, the machine part is irrelevant
23:26:02 <elliott_> but I can't really
23:26:06 <ais523> and "it" = "then X forgets about Z"
23:26:15 <elliott_> ais523: umm, so
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:24 <elliott_> or B/Z itself
23:26:25 <elliott_> either will do
23:26:31 <ais523> yep
23:26:33 <elliott_> then B/X forgets about B/Z
23:26:36 <ais523> yep
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:26:52 <elliott_> for instance
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:28 <elliott_> Right
23:27:30 <elliott_> <ais523> also, UDP sounds like a better fit for what you're doing
23:27:32 <elliott_> Agreed, possibly
23:27:35 <elliott_> ais523: Hmm
23:27:51 <elliott_> ais523: And we assume that the only thing with a reference to B/Z locally is B/X?
23:27:54 <ais523> yes
23:27:55 <elliott_> So that when it goes out of scope, B/Z is (locally) garbage
23:27:58 <ais523> yep
23:28:18 <ais523> I think using weak pointers is the best solution here
23:28:28 <ais523> well, weak references
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:44 <elliott_> Those have to expire anyway
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:28:57 <elliott_> Yeah.
23:28:58 <ais523> fair enough, I think
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:29 <elliott_> ais523: hmm, wait
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:06 <ais523> yep, it's allowed to
23:30:09 <elliott_> right
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:25 <elliott_> but that's okay
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:35 <elliott_> indeed
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:44 <elliott_> haha
23:31:52 <elliott_> Well, I think I can avoid explicitly using GPG keys or whatever
23:31:55 <elliott_> I'm not sure how, though
23:31:57 <elliott_> [asterisk]PGP
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:02 <elliott_> ais523: right
23:33:13 <ais523> you can just ignore the source header, IIRC it can be faked anyway
23:33:21 <elliott_> it wastes four bytes :(
23:33:29 <ais523> your objects contain keys
23:33:34 <ais523> they'll be way longer than four bytes
23:33:41 <elliott_> ermm, define keys
23:33:43 <elliott_> you mean their identifier?
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:19 <Sgeo_> Good job
23:35:21 <ais523> which is a really useful optimisation
23:35:26 <elliott_> Sgeo_: which question?
23:35:30 <elliott_> ais523: indeed
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:11 <Sgeo_> Earlier today
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:02 <ais523> heh
23:38:20 <monqy> I think sony uh
23:38:21 <monqy> did some stuff
23:38:22 <monqy> yeah
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:38:45 <monqy> networking...:(
23:39:00 <elliott_> ais523: oops, yes
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:11 <ais523> and, hmm, good point
23:39:19 <ais523> can you append to a set?
23:39:25 <elliott_> no, only insert
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:39:57 <Vorpal> ais523, oh... right
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:30 <elliott_> 22:58:39: <pikhq_> Oh. Fuck.
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:28 <pikhq> ais523: No.
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:06 <elliott_> evincar: one second
23:43:09 <elliott_> I need to reply to ais523 :P
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:43:26 <pikhq> ais523: Yes.
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:02 <elliott_> mputers
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:33 <elliott_> I'm really not sure
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:41 <elliott_> I want to avoid that with @.
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:21 <evincar> You can patch that leak.
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:49:51 <Vorpal> elliott_, how so?
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:18 <Vorpal> elliott_, no
23:50:23 <elliott_> Vorpal: then "how so?"?
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:57 <elliott_> evincar: It does?
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:51:58 <Vorpal> ah
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:38 <elliott_> hmm
23:56:41 <elliott_> then grep for elliottOS\|ehirdOS\|\b@\b, I suppose
23:56:45 <elliott_> zzo38: indeed
23:57:19 <Vorpal> elliott_, what was that nick starting with t that you used?
23:57:29 <Vorpal> elliott_, I forgot
23:57:31 <elliott_> umm, I don't recall one starting with t
23:57:34 <elliott_> do you mean estoppel?
23:57:37 <Vorpal> no
23:57:38 <elliott_> oh, tusho
23:57:42 <Vorpal> yeah
23:57:48 <Vorpal> elliott_, was it ever tushoOS?
23:57:51 <Vorpal> guess not
23:57:52 <elliott_> I used that until I got tired of puns (mostly blaming augur)
23:57:56 <elliott_> Vorpal: I don't think so :P
23:58:02 <Vorpal> elliott_, what puns? I forgot
23:58:04 <augur> elliott_: hello.
23:58:09 <elliott_> 02:07:13: <oerjan> <elliott> WHAT COULD POSSIBLY. BUT _POSSIBLY_. GO WRONG???????
23:58:09 <elliott_> 02:07:15: <oerjan> No.
23:58:09 <elliott_> :D
23:58:11 <Vorpal> aieee
23:58:17 <elliott_> Vorpal: NO I HAVE WASHED MY HANDS AND ALSO AUGUR IS HERE.
23:58:23 <Vorpal> elliott_, oh right
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:58:57 <elliott_> ARE THEY THE SAME THING
23:59:22 <evincar> And this is why I come here.
2011-07-30
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_> 05:32:52: <oerjan> *Grmble.
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:38 <elliott_> STOP HARASSING MY LANGUAGE
00:01:44 <quintopia> my point exactly elliott
00:01:46 <monqy> i dont like abcd
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:02 <monqy> am i ab ad person
00:02:05 <elliott_> so bad you told him about it
00:02:06 <quintopia> as opposed to all night
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:02:39 <elliott_> umm, this is wrong, right?
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:43 <elliott_> atehwa: false
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:35 <madbr> wow
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:07:56 <elliott_> madbr: wow
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:27 <elliott_> ais523: (annotation)
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:25 <elliott_> oops
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:12 <oklopol> can you express an ion
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:16 <elliott_> Vorpal: No
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:48 <Vorpal> elliott_, heh
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:12:57 <Vorpal> elliott_, nice
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:36 <elliott_> Vorpal: Maybe :-P
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:24 <elliott_> It isn't?
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:14:59 <pikhq> elliot. Bam.
00:15:01 <ais523> that must be a first
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:15 <ais523> how did I do that/
00:15:20 <elliott_> and used / to end a question
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:16:57 <elliott_> madbr: oh wait "sound" code
00:17:05 <elliott_> madbr: say audio :P
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:23 <madbr> DSPs are silly
00:18:29 <madbr> but yeah
00:18:36 <monqy> :o
00:18:40 <elliott_> <madbr> DSPs are silly
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:47 <elliott_> best thing
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:11 <elliott_> So I'm in, naturally.
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:25 <monqy> I dunno if I'm in
00:20:38 <madbr> What sort of IRL hardware has DSPs in them
00:20:38 <elliott_> Sgeo_: wjw
00:20:42 <monqy> i guess i could learn through ruining your game
00:20:46 <Sgeo_> "wjw"?
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:02 <elliott_> how can you sqrt
00:23:04 <elliott_> what would it return
00:23:18 <ais523> madbr: I've actually written DSP code
00:23:29 <madbr> :o
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:10 <madbr> /application
00:24:11 <pikhq> Sgeo_: sqrt :: Real -> Real.
00:24:12 <elliott_> Sgeo_: wow!
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:24 <pikhq> s
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:42 <elliott_> pikhq: sqrt(-1) = ? :: Real
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:34 <madbr> hm
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:25:52 <HackEgo> No output.
00:26:10 <ais523> "addphrasequote"?
00:26:10 <monqy> `phrasequote
00:26:12 <HackEgo> No output.
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:41 <madbr> crazy
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:26:52 <elliott_> to a crisp
00:26:52 <elliott_> 17:36:56: <ais523> instantly.
00:26:52 <elliott_> :DDD
00:26:53 <elliott_> i love df
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:30 <ais523> yep
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:06: <monqy> charp
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:14 <elliott_> are you a bird irl
00:29:17 <elliott_> (no lying)
00:29:32 <elliott_> i'm now imagining a bird wondering why it got so good at chirps
00:29:39 <ais523> heh
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:29:57 <elliott_> monqy: osdjif
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:31:21 <elliott_> they already have.
00:32:55 <Vorpal> ais523, ah
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:33:15 <Vorpal> :P
00:33:29 <elliott_> Vorpal: it's very fun to read
00:33:34 <Vorpal> elliott_, hm okay
00:33:35 <Vorpal> will check
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:34:58 <elliott_> VORPAL YOU ARE FOOLING NOBOD-
00:35:01 <elliott_> 21:13:34: <ais523> it sounds like Vorpal's client
00:35:02 <elliott_> ...Y
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:35:43 <elliott_> oh
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:07 <evincar> elliott_: It was.
00:38:08 <elliott_> <elliott_> please tell me you did /list on freenode
00:38:10 <elliott_> while using a screen reader
00:38:11 <elliott_> evincar: true
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:38:49 <elliott_> but it would still be amazing
00:39:02 * elliott_ does /list for the fun of it
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:41:47 <elliott_> something
00:42:06 <elliott_> oh, I caught up already
00:42:22 <evincar> elliott_: Haha, inadvertent Pidgin. :P
00:42:30 <elliott_> evincar: wat?
00:42:44 <monqy> chirp
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:16 <ais523> all the time
00:43:17 <elliott_> ais523: I usually use /topic
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:13 <monqy> elliott_: pong
00:44:22 <elliott_> monqy: pang
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:06 <monqy> thanks server
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:36 <elliott_> monqy: wtf
00:46:40 <elliott_> monqy: but you like mornings?
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:51 <elliott_> monqy: r u srs
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:30 <ais523> and yes
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:37 <elliott_> IMO
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:12 <elliott_> ais523: well, KDE four...
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:44 <elliott_> Define 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:06 <elliott_> Celsius value =
00:49:08 <elliott_> (~=)
00:49:15 <ais523> probably about 20
00:49:20 <ais523> probably less
00:49:32 <ais523> meanwhile, I don't start feeling cold until about -6 or so
00:49:38 <elliott_> you may be a lizard
00:49:41 <elliott_> also, even outside?
00:49:45 <ais523> yes
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:08 <ais523> elliott_: yes
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:34 <elliott_> :p
00:50:35 <elliott_> Or Russia.
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:52:55 <monqy> perhaps
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:19 <ais523> elliott_: seriously?
00:54:23 <ais523> it was anti-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:27 <madbr> eliott: french
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:40 <madbr> it does
00:55:45 <madbr> but I don't use it :o
00:55:50 <evincar> ais523: ON ERROR RESUME NEXT?
00:55:52 <monqy> :o
00:55:55 <ais523> evincar: heh
00:55:55 <elliott_> ais523: well, ... TIAS?
00:56:00 <ais523> ON ERROR RETURN -516
00:56:02 <elliott_> ais523: I know you can use segfaults to allocate memory
00:56:04 <elliott_> e.g. for brainfuck
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 <elliott_> ais523: caret
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:42 <elliott_> ais523: mprotect
00:57:46 <ais523> yep
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:17 <elliott_> if you get
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:20 <elliott_> abc
00:58:21 <elliott_> def 9
00:58:26 <elliott_> then it retries the memory access
00:58:27 <elliott_> if you get
00:58:28 <elliott_> abc
00:58:31 <elliott_> def 0
00:58:35 <elliott_> then it doesn't
00:58:38 <elliott_> assuming the memory starts out zeroed
00:58:39 <elliott_> (just use mmap)
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:18 <elliott_> that's COW
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:36 <ais523> I know
00:59:46 <elliott_> pikhq: It's not UB
00:59:48 <elliott_> This isn't C
00:59:50 <ais523> pikhq: I know, I was just wondering if it actually did something useful in practice
00:59:53 <elliott_> Well
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:15 <ais523> but yes, anyway
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:41 <elliott_> One of the interpreters
01:00:42 * ais523 looks
01:00:51 <elliott_> http://cvs.savannah.gnu.org/viewvc/libbf/libbf_interpreter_dynalloc.c?revision=1.3&root=libbf&view=markup
01:00:52 <elliott_> this looks like it
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:04 <elliott_> there's a POSIX version too
01:01:05 <elliott_> in that file
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:53 <elliott_> ais523: not world-readable
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:02 <elliott_> heh, what is the other?
01:03:04 <ais523> and my home dir is world-readable
01:03:07 <ais523> the other's nhadmin
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:03:52 <elliott_> evincar: what's a machine
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:05 <elliott_> or, my contributions will do
01:05:07 <ais523> Special:Mytalk
01:05:10 <ais523> is the user talk page
01:05:15 <elliott_> thanks
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:07 <Vorpal> oh you mean spam
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:08:56 <elliott_> ais523: well
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:20 <elliott_> possibly in a chroot
01:09:25 <elliott_> ais523: I was gifted it
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:34 <Vorpal> iirc
01:09:39 <elliott_> ais523: Yes, it is, but Humble Bundle is a pretty good mark of assurance
01:09:45 <ais523> I know
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:09 <elliott_> or as a different user
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:39 <Vorpal> :P
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:48 <Vorpal> ais523, indeed
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:20 <ais523> meh, I'd prefer HTTP
01:11:22 <elliott_> Vorpal: So easy, then
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:29 <Vorpal> ais523, yes indeed
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:43 <ais523> I suspect it is
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:07 <Sgeo_> Vorpal, yes
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:30 <elliott_> Dot Action [two]
01:13:36 <elliott_> the green blocks did that
01:13:36 <ais523> elliott_: I do
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:51 <ais523> bleh
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:14 <elliott_> ten days
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:14:43 <ais523> Vorpal: legally?
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:44 <elliott_> Vorpal: Seriously?
01:15:50 <Vorpal> elliott_, is it GBP?
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:13 <Sgeo_> =P=P
01:16:13 <Vorpal> elliott_, so 13 EUR?
01:16:15 <Vorpal> hm
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:40 <Vorpal> lots of puzzles
01:16:41 <elliott_> is Bejeweled a game?
01:16:44 <elliott_> (It's a bad game, but is it a game?)
01:16:50 <ais523> elliott_: I'd say yes
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 <ais523> elliott_: indeed
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:19 <ais523> Vorpal: no
01:18:20 <ais523> I don't
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:36 <Vorpal> ais523, ah
01:18:44 <Sgeo_> I think I like reading stories about df more than I like df
01:18:45 <Vorpal> elliott_, indeed
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:27 <elliott_> Vorpal: Ten, probably. :p
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:19:54 <Vorpal> elliott_, hm true
01:20:00 <elliott_> ais523: I sure hope this tl;dr enlightened you a bit as to why people like Minecraft.
01:20:04 <elliott_> If not my fingers hate you.
01:20:07 <ais523> hmm, I suppose so
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:28 <elliott_> s/buy/download/g
01:22:28 <ais523> oh, good
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 <ais523> ah, I see
01:23:01 <elliott_> yes, this means that anyone can download Minecraft's fails
01:23:04 <elliott_> because Notch
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:22 <elliott_> Vorpal: Last I checked, yes
01:23:23 <ais523> elliott_: you consider 88K small?
01:23:28 <elliott_> ais523: you don't?
01:23:29 <Vorpal> ais523, for a .jar
01:23:31 <Vorpal> it is small
01:23:33 * Sgeo_ wonders if Boatmurdered looks acceptable on a black and white screen
01:23:34 <ais523> Vorpal: indeed
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:46 <Vorpal> 11M/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:21 <ais523> and music
01:24:29 <ais523> those are always huge
01:24:36 <elliott_> Osmos: 19.3 Mio; Revenge of the Titans: 60.6 Mio
01:24:40 <elliott_> World of Goo: 66.5
01:24:42 <elliott_> Mio
01:24:46 <elliott_> Aquaria: 209.5 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:48 <elliott_> blah blah blah
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> 104Mcogs-linux-bin
01:24:59 <Vorpal> 25Mhf-linux-07172011-bin
01:25:00 <Vorpal> 302Mtotal
01:25:00 <ais523> hmm, 582K for cat
01:25:04 <ais523> that's actually quite impressive
01:25:08 <elliott_> ais523: that's terrible
01:25:11 <elliott_> but that's glibc for you
01:25:15 <ais523> indeed
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:25:59 <elliott_> ais523: surely Linux version
01:26:04 <elliott_> glibc warns for some versions, I think
01:26:05 <elliott_> or something
01:26:10 <ais523> elliott_: ah, perhaps
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:54 <Patashu> e.g. Transformice
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:20 <Vorpal> quite useful
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:27:52 <Patashu> and html5
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:35 <elliott_> ais523: excuse me, paining
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:50 <elliott_> ais523: canvas
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:01 <elliott_> because DOM = shit
01:29:15 <ais523> it actually worked, and faster than using Excel for rendering
01:29:23 <elliott_> lol
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:28 <Vorpal> ah
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:35 <ais523> *relevance
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:06 <Vorpal> elliott_, fair enough
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:24 <elliott_> ais523: and?
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:32:58 <ais523> *right
01:33:03 <ais523> that would be like feeding children only if they played
01:33:16 <Vorpal> ais523, indeed
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:13 <elliott_> apparently
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:31 <elliott_> taxes r bad gold is good
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:46 <quintopia> oh okay
01:36:53 <quintopia> so as a business owner
01:36:57 <quintopia> you have to submit returns?
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:31 <ais523> elliott_: well, OK
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:41:31 <elliott_> and when?
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:46 <elliott_> and Finland are?
01:44:47 <elliott_> I forget
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:15 * elliott_ writes down
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:50:45 <monqy> dying's easy, eh?
01:50:57 <elliott_> Vorpal: said Vorpal
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:55:09 <monqy> poor babies
01:55:12 <monqy> poor mating
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:35 <evincar> (Thought I'd clarify.)
01:57:45 <monqy> hi evincar's parents
01:57:58 <evincar> They're currently watching a Netflix progress bar.
01:58:05 <monqy> exciting
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:01:23 <Vorpal> heh
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:30:34 <ais523> *themselves
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:30 <ais523> I know I've had to
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:52 <ais523> that's a good start
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:48 <elliott_> now there's a terrible idea
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:46 <elliott_> (right)
02:36:47 <evincar> elliott_: Yes.
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:24 <elliott_> lemme know how that goes
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:18 <elliott_> typing doesn't cost money
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:05 <ais523> haha, beautiful
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:18 <elliott_> ais523: with CSS formatting
02:39:22 <ais523> by conventional, I mean "have a meaning by convention"
02:39:23 <ais523> elliott_: haha
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:40:56 <ais523> not yet, I suppose
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:35 <elliott_> :-P
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:38 <evincar> elliott_: Only Agda.
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:49 <elliott_> evincar: ugh
02:43:54 <ais523> elliott_: you're going to shout at me now for not knowing what prog21 is
02:43:54 <evincar> Just wing it.
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:20 <elliott_> even for basic syntax
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:45:52 <elliott_> because of Coq
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:18 <elliott_> ais523: it's →
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:34 <elliott_> ais523: also forall
02:46:40 <evincar> → is on my compose key...
02:46:41 <elliott_> also lambda
02:46:51 <elliott_> it comes with an emacs mode, though, so you can say \to for →
02:46:53 <elliott_> and the like
02:46:54 <elliott_> but still
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:47:16 <elliott_> evincar: anyway
02:48:09 <elliott_> evincar: forall A (xs:List A), is_empty xs -> forall (x:A), ~(list_elem x xs)
02:48:13 <elliott_> now if we say
02:48:21 <elliott_> hmm wait
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:26 <elliott_> now if we say
02:48:29 <elliott_> xs := empty_list;
02:48:32 <madbr> Coq is french for rooster
02:48:34 <elliott_> proof := vacuous_empty_list xs;
02:48:44 <elliott_> insert 9 xs;
02:48:52 <elliott_> ermm, list here is mutable
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:21 <elliott_> evincar: no?
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:02 <elliott_> evincar: So IDGI.
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:19 <madbr> zzo: really?
02:56:25 <ais523> elliott_: fair enough
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:00:43 <elliott_> that's EXACTLY that
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:01:57 <elliott_> ais523: heh
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:17 <ais523> umm, that's wrong
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:04:52 <madbr> what is that
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:38 <madbr> mhm
03:05:57 <ais523> (which is | because C operators have too much of a hold on the world's conciousness by now)
03:06:11 <madbr> eh
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:24 <ais523> elliott_: heh
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:06:56 <elliott_> I still don't understand this
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:05 <ais523> I assume +INF
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:08:46 <elliott_> evincar: very well
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:28 <elliott_> ais523: umm, it does?
03:09:30 <elliott_> that suggests 0 to me
03:09:34 <ais523> oh, right
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:14 <elliott_> so gcd(0,0) can be anything
03:10:15 <evincar> elliott_: I'm losing track of what the current attack is.
03:10:21 <elliott_> evincar: "Attack"? Seriously?
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:20 <elliott_> is the latest context.
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:27 <elliott_> ais523: I know
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:24 <elliott_> ais523: haha
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:33 <elliott_> it _emulates_ one
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:02 <elliott_> ais523: Of course it doesn't
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:30 <ais523> and only sometimes
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:24 <ais523> mostly, at least
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:15:49 <elliott_> Patashu: see: php
03:15:52 <Patashu> LOL
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:28 <elliott_> thought you all should know
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:08 <ais523> aha
03:19:19 <ais523> s/.*\Kn't//
03:19:23 <ais523> thanks, man perlre
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:26 <elliott_> oh wait no
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:30 <elliott_> hmm wait yes
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:40 <elliott_> ais523: oh, right
03:20:42 <ais523> and still obey the type signature?
03:20:43 <elliott_> damn
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:44 <elliott_> ais523: Nope
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:12 <elliott_> ais523: not what I said
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:21 <ais523> err, s/\)/"/
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:37 <elliott_> evincar: Nope.
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:27 <elliott_> Which is true by definition.
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:16 <elliott_> ais523: yep
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:12 <elliott_> erm
03:26:14 <elliott_> evincar: ...rather than just the pure one.
03:26:29 <elliott_> Before you say you don't,
03:26:31 <elliott_> yes you do:
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:32 <elliott_> lol
03:27:46 <evincar> elliott_: There's an example of my madness working in practice, with a far poorer design.
03:27:53 <elliott_> C++ is also shit
03:27:56 <elliott_> your defence
03:27:57 <elliott_> is C++
03:28:04 <elliott_> I think that means I've won...
03:28:07 <evincar> elliott_: It is a language that exists?
03:28:13 <elliott_> That it is.
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:35 <evincar> monqy: I did not.
03:28:36 <monqy> very clever
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:32 <elliott_> atehwa: right
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:11 <ais523> but got sidetracked
03:30:13 <atehwa> yes, well, I wasn't aware of such a language.
03:30:20 <elliott_> atehwa: right
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:49 <elliott_> Well... that's what you said.
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:30:59 <elliott_> see RandomGen
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:23 <elliott_> especially dependent ones
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 <ais523> trust me on this one
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:11 <monqy> so uh
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:21 <monqy> what does it mean
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:47:59 <elliott_> wait
03:48:07 <elliott_> you're actually planning to make it automatically generate functions based on the type?
03:48:09 <elliott_> haha
03:48:19 <evincar> elliott_: No?
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:28 <monqy> so uh
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:05 <zzo38> Do you like AWK?
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:38 <elliott_> evincar: an example of
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:09 <elliott_> what?
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
03:59:44 <elliott_> I'm going to go code mcmap
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:06:29 <monqy> :(
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:08:07 <elliott_> mingleingle
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:09:56 <evincar> Duck-typing.
04:10:01 <monqy> im dead
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:44 <monqy> ????
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:28 <elliott_> this sounds like a total mess
04:15:34 <monqy> I agree with elliott_
04:15:46 <monqy> it uh
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:10 <monqy> huge mess
04:16:31 <Patashu> ?_?
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:45 <quintopia> in a laptop
04:16:52 <evincar> elliott_: By five thousand, you mean two?
04:17:02 <elliott_> evincar: nope
04:17:08 <monqy> oh no there are more than two concepts in there
04:17:13 <monqy> at least three
04:17:19 <monqy> and uh
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:34 <evincar> monqy: Instantiation.
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:49 <Patashu> hahaha a 'come from' card
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:16 <elliott_> bool variable types?
04:25:42 <Patashu> bools for performance?
04:25:49 <madbr> the "bool" type
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:02 <madbr> is it useful
04:26:13 <evincar> And given x = float, z = x() is the same as z = float().
04:26:18 <Patashu> bool is useful
04:26:19 <Patashu> ?_?
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:06 <Patashu> What's your point
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:00 <monqy> yes that
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 <monqy> make it illegal
04:32:50 <madbr> well, there's no point to char and short except for specifically saving RAM and specific arrays
04:32:55 <monqy> it's just clutter
04:33:05 <madbr> bool is sugar
04:33:15 <elliott_> madbr: what isn't sugar
04:33:25 <elliott_> sugar makes things sweeter
04:33:28 <elliott_> bool conveys your intentions
04:33:31 <monqy> madbr: are type systems sugar
04:33:32 <elliott_> "this is a boolean, false or true"
04:33:35 <elliott_> int doesn't convey this
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:35:55 <elliott_> well, mostly
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:36:55 <evincar> What elliott_ said.
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:37:59 <elliott_> madbr: seriously?
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:39 <Patashu> elliott ssh!
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:57 <elliott_> Negative.
04:38:58 <Patashu> You WILL forget things even if you think they're trivial
04:39:02 <ais523> *boilerplate
04:40:27 <madbr> eh
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:42:57 <elliott_> WE ARE STILL AT WAR.
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:23 <Patashu> FILE_NOT_FOUND?
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:41 <Patashu> so you want an enum then
04:43:43 <Patashu> evincar yes
04:43:46 <ais523> it was how they retrofitted a bugfix onto NetHack without changing the bones file layout
04:44:06 <Patashu> ais aah
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:13 <Patashu> future expansion space
04:44:30 <ais523> Patashu: it's also an awful fix to the problem in general
04:44:33 <elliott_> evincar: why doesn't it
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:10 <elliott_> not everything has a zero.
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:49 <madbr> why have ints
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:01 <madbr> ais: no
04:48:04 <lament> everything has a zero
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:50:52 <monqy> everything solved
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:54:56 <monqy> yes
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:16 <monqy> yes I know
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:14 <Patashu> wat
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:05:09 <Patashu> aah
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:20 <elliott_> ais523: Average Programmer
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:36 <elliott_> ais523: because they're bad
05:07:42 <elliott_> err, what
05:07:44 <ais523> I seem to spend half my life deleting Logger imports
05:07:51 <elliott_> bad netbeans, bad
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:28 <madbr> damn
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:12:48 <elliott_> madbr: eh?
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:13:54 <elliott_> POLS is code for "I like it"
05:14:01 <elliott_> how is it uniform?
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:20 <monqy> it hurts me
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:45 <elliott_> please, god, don't say you do
05:16:50 <monqy> and it's needless bloat
05:16:51 <madbr> elliott: I don't!
05:16:53 <Patashu> It doesn't sound like it lol
05:16:54 <monqy> and ughhhh
05:16:58 <elliott_> madbr: ok
05:16:59 <elliott_> then do whateve
05:17:00 <elliott_> r
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:27 <monqy> but
05:17:27 <elliott_> when is 0 ever a useful value
05:17:30 <elliott_> without giving it explicitly
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:23 <monqy> i am curious
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:32 <evincar> *reasonably
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:49 <itidus20> i mean sounds and games
05:19:50 <madbr> iti: I don't want to work in a fucking bank :D
05:20:16 <monqy> fucking bank eh
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:45 <Patashu> lol
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:25 <itidus20> hmm
05:24:29 <itidus20> well...
05:24:33 <elliott_> <ais523> elliott_: you mean people who make indie games, or who play them?
05:24:33 <elliott_> make
05:24:41 <itidus20> when i made that image i had actual music in mind
05:24:51 <itidus20> not sound plugins.
05:24:52 <madbr> if you code a synthesizer plugin for music making programs
05:24:54 <itidus20> so you're right
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:01 <itidus20> uhmm
05:26:04 <madbr> can it generate wrong output? sure, whatever
05:26:07 <itidus20> ok lets say a guitar
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:29 <monqy> or lots of them
05:26:35 <elliott_> monqy: http://ompldr.org/vOW9wcg me irl in my hole
05:26:37 <itidus20> then you suck..
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:26:57 <elliott_> i think not
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:35 <elliott_> monqy: took me whole minutes
05:27:46 <monqy> elliott_: nice hole
05:27:56 <elliott_> monqy: thanks
05:28:19 <itidus20> its an idea i am really curious about...
05:28:30 <monqy> what is?
05:28:44 <itidus20> in programming it is usually the case you need to get every instruction right
05:28:50 <monqy> not really
05:28:54 <itidus20> and that one mistake throws out the whole system
05:28:59 <monqy> not really
05:29:07 <monqy> ever heard of minor bugs?
05:29:12 <monqy> I have.
05:29:14 <monqy> they exist.
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:30:57 <monqy> squares
05:31:20 <monqy> it looks sadder now
05:31:21 <monqy> somehow
05:32:59 -!- madbr has quit (Read error: Connection reset by peer).
05:33:34 <elliott_> monqy: http://ompldr.org/vOW9weA
05:33:53 <monqy> ashes?
05:33:58 <elliott_> to ashes
05:33:59 <monqy> is that blood
05:34:03 -!- derrik has joined.
05:34:05 <monqy> are you dead
05:34:12 <monqy> is that a statue
05:34:14 <elliott_> http://ompldr.org/vOW9weQ
05:34:16 <monqy> so mjuch mysterys...
05:34:17 -!- madbr has joined.
05:34:24 <monqy> its staring at me
05:34:27 <monqy> and crying
05:34:30 <monqy> tears
05:35:09 <elliott_> oh jesus cufcking christ i made it disturbing
05:35:29 <elliott_> monqy:
05:35:38 <elliott_> monqy: http://ompldr.org/vOW9weg
05:35:45 <monqy> im disturbed
05:35:46 <elliott_> jesus
05:35:51 <monqy> its like chocolate
05:35:51 <elliott_> tell me this makes you scream
05:35:55 <elliott_> lmao
05:35:56 <elliott_> what
05:36:01 <monqy> the uh
05:36:02 <monqy> brown stuff
05:36:05 <monqy> reminded me of chocolate
05:36:09 <monqy> or is that black
05:36:11 <monqy> uhh
05:36:15 <monqy> dark 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:37:44 <elliott_> itidus20: i...
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:20 <elliott_> http://ompldr.org/vOW9xMQ
05:39:24 <elliott_> monqy: deepness of soul edition
05:39:27 <elliott_> w/ lens flare
05:39:34 <monqy> is that lens flare
05:39:37 <monqy> oh
05:39:39 <monqy> ok
05:39:50 <monqy> its deep
05:39:51 <monqy> and soul
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:40:37 <elliott_> its inside my heart
05:41:53 <elliott_> monqy: http://i.imgur.com/3brEm.jpg
05:42:25 <monqy> its a maze
05:42:30 <elliott_> ing
05:42:33 <monqy> a soulcrishung maze
05:42:36 <monqy> ing
05:43:47 -!- madbr has quit (Read error: Connection reset by peer).
05:44:15 <elliott_> monqy: http://i.imgur.com/P5iCf.gif
05:44:36 <monqy> whoa a ball
05:44:50 <itidus20> cool... animation
05:45:06 <elliott_> "delay inserted to prevent evil cpu-sucking animation" oh come on gif
05:45:09 <elliott_> erm
05:45:10 <elliott_> gimp
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:12 <itidus20> theres not enough i tells ya
05:47:20 <elliott_> gimp
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:33 <monqy> hi Sgeo
05:56:37 <monqy> you missed some good discussion
05:56:41 <monqy> about type systems and uh
05:56:42 <monqy> other stuff
05:57:11 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
05:57:16 <monqy> oh
05:57:24 <monqy> sgeo :(
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:00:21 <elliott_> lol
06:02:07 <Sgeo> Hi
06:03:15 <monqy> hi
06:03:23 <monqy> i missed you
06:04:45 <Sgeo> ..
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:07:43 <monqy> whatf slaming
06:07:56 <elliott_> flsaingubdgmg
06:08:07 <monqy> is not praising it.....flaming?
06:08:13 <monqy> or is that trolling
06:08:42 <elliott_> flammable
06:09:30 <elliott_> itidus20: i made you a persent http://ompldr.org/vOW9xNQ
06:10:36 <itidus20> heh
06:10:53 <elliott_> bible.gif
06:11:03 <elliott_> all this and more is possible with gimp
06:11:05 <elliott_> tm
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:25 <itidus20> ;_;
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:13:52 <elliott_> wat
06:13:54 <monqy> what
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:28 <itidus20> nice
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:24 <monqy> make gimp scripts
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:06 <elliott_> lol
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:08 <elliott_> lmao
06:17:11 <itidus20> oh i was using lotus123
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:03 <elliott_> haha
06:24:06 <elliott_> good job oracle
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 <elliott_> applications."
06:24:23 <ais523> hmm, Java puts crash > incorrect execution
06:24:23 <elliott_> wow
06:24:31 <elliott_> YOU MEAN LOOPS ARE BAD?? SORRY
06:24:33 <elliott_> ONLY FIVE DAYS
06:24:35 <elliott_> CAN'T CHANGE IT
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:13 <monqy> or what have it
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:25:59 <monqy> snazy
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:37 <elliott_> :-P
06:42:39 <ais523> O(2^n) where n is 99999
06:42:49 * elliott_ tries 999 instead :-D
06:42:55 <ais523> even that'll take far too long
06:43:10 <elliott_> bah
06:43:16 <elliott_> stupid exponentials
06:43:20 <elliott_> 99 should terminate within my lifetime, right?
06:43:58 <ais523> that's about an octillion
06:44:01 <ais523> so probably not
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:25 <elliott_> unmemoisation is so american
06:45:49 <elliott_> *Data.Memoization.StableName> fib 19
06:45:49 <elliott_> 4181
06:45:49 <elliott_> *Data.Memoization.StableName> fib' 19
06:45:49 <elliott_> 34
06:45:57 <elliott_> umm, memoisation shouldn't change behaviour, right?
06:46:02 <ais523> no
06:46:14 <ais523> and fib(19) is not 34
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:40 <elliott_> well, _something_ is wrong
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:46 <elliott_> also, sure, I guess so
06:55:48 <ais523> elliott_: no, it's obvious
06:55:53 <elliott_> ais523: what's the reason?
06:55:58 <elliott_> because it was non-obvious to me
06:55:58 <ais523> network transparency
06:56:04 <elliott_> :/
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:17 <elliott_> that's perfectly okay
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:07 <Patashu> just make it 64 bits
06:57:19 <elliott_> Patashu: gross
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:57:37 <Patashu> haha
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
06:59:57 <ais523> heh
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:01:55 <elliott_> hmm, you can't have
07:01:57 <elliott_> box :: a -> Box a
07:02:07 <elliott_> because you can break parametricity like so:
07:02:27 <elliott_> ohNo :: (a -> b) -> (a -> b) -> Bool
07:02:32 <elliott_> ohNo f g = box f == box g
07:02:41 <elliott_> (assuming the box on code compares the ast)
07:02:58 <elliott_> but like
07:03:04 <elliott_> you also can't have
07:03:09 <elliott_> lolGimmeABox :: Box a
07:03:12 <elliott_> because WHAT DOES THE BOX CONTAIN...
07:03:16 <coppro> what is this Box?
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:31 <elliott_> really hard
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:13 <ais523> also, no, I don't
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:40 <elliott_> and all that jazz
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:14 <elliott_> it's actually an Antibox
07:05:18 <elliott_> it lets you look inside a value
07:05:21 <ais523> hmm, yes
07:05:25 <elliott_> so e.g.
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:30 <elliott_> ast :: Box a -> LolAST
07:05:33 <elliott_> unbox :: Box a -> a
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:45 <elliott_> I suppose
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:09 <elliott_> oerjan: not quite
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:06:50 <elliott_> how do you knowm y s,ecret
07:06:57 <elliott_> it wasprivate,, with Gregor,,
07:06:59 <elliott_> he would create the logbot,,,
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:10 <elliott_> WHO
07:07:11 <elliott_> BETRAYED ME
07:07:20 <elliott_> RGAGAARGAUREWIGEIWRIEWRGAWGRIAEWRWIERGAW\
07:07:20 <ais523> elliott_: nobody, I just guessed
07:07:25 <ais523> oerjan: no
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:33 <elliott_> now everything dies
07:07:37 <ais523> which doesn't surprise me, or even worry me
07:07:38 <elliott_> ais523: really?
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:43 <elliott_> haha
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:50 <elliott_> oerjan: fix it :P
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:08 <ais523> indeed
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:18 <elliott_> hmm, well
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:20 <elliott_> ais523: or something.
07:11:30 <elliott_> erm
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:46 <elliott_> but it feels like if you have
07:11:49 <elliott_> let f x = ... in ...
07:11:50 <elliott_> in a bit ofcode
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 <elliott_> ais523: yes, that may be true
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:12 <elliott_> [asterisk], boxes
07:12:25 <oerjan> and comonadic
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:42 <elliott_> it's sort of like an xray
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:15:58 <elliott_> coppro: k
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:21 <elliott_> umm, I didn't
07:16:25 <ais523> bleh
07:16:26 <elliott_> I called the flattened quotations blimps
07:16:30 <elliott_> but that's a separate thing
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:16:50 <elliott_> it's more like just source
07:16:52 <elliott_> and unbox is kind of like eva
07:16:54 <elliott_> l
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:09 <ais523> elliott_: yes
07:17:11 <elliott_> name_of_@(X)
07:17:15 <elliott_> well
07:17:16 <elliott_> name_of_@(@)
07:17:38 <ais523> that's like writing name_of_X(X)
07:17:44 <elliott_> yep :D
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:20 <elliott_> ais523: haha
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:34 <elliott_> GDB a
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:56 <oerjan> yes, real sanskrit.
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:18 <elliott_> heh
07:20:19 <elliott_> umm
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:31 <Taneb> Hello!
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:20:58 <elliott_> lucky
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:22:35 <elliott_> defrost :: Heatvision a -> a
07:22:49 <Patashu> Lol
07:23:55 <elliott_> ais523: hmm, this is definitely getting moe confusing
07:24:05 <Patashu> SO MOE
07:24:17 <Taneb> But what's @!
07:24:29 <elliott_> Taneb: stop it stop it stop it
07:24:43 <Taneb> Either you tell me or I install Haiku
07:24:56 <oerjan> where's it @
07:26:05 -!- nisstyre_ has quit (Quit: Leaving).
07:26:09 <elliott_> Taneb: ok
07:26:45 <Taneb> From an SD card!
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:21 <elliott_> Syn <-> Sem
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:45 <elliott_> yep
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:06 <elliott_> hmm, ah
07:33:13 <elliott_> ais523: there actually _is_ a function (a -> Box a)
07:33:15 <elliott_> for all 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:09 <elliott_> that's problematic
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:38:35 <elliott_> ais523: what have I done :(
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:44 <ais523> I suppose so
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:43 <elliott_> I'm not sure what differs it
07:43:52 <elliott_> but... the box of, say, a key-value table, isn't an AST
07:43:58 <elliott_> or, hmm
07:43:59 <elliott_> better analogy
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:23 <elliott_> where key is a name
07:44:28 <elliott_> so actually not boxed, just the name
07:44:30 <Taneb> --
07:44:30 <Taneb> +-+-
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:46:21 <elliott_> with only a few lines
07:47:01 <elliott_> "Å ÒÝ Ö
07:47:01 <elliott_> Ö× ̧ ÓÙÖ× ÐÚ × Ò
07:47:01 <elliott_> ÐÙ ̧ Û ÐÐ Ú ÕÙ ×Ý Ð1
07:47:01 <elliott_> Ò Ý Ø × ×Ø o Ï Ø × Ð Ø Ó Ø
07:47:01 <elliott_> ÙØÝ Ó ÙÒ
07:47:02 <elliott_> 1
07:47:04 <elliott_> Ø ÓÒ Ð ÔÖÓ Ö ÑÑ Ò Ý Ø Ø Ñ ÐÐ Ø × ÔÖ Ñ Ø Ú × Ú
07:47:06 <elliott_> Ò
07:47:08 <elliott_> ÀÓÛ
07:47:10 <elliott_> Ò Ø ÙÒ×Ô
07:47:12 <elliott_> ¬
07:47:14 <elliott_> ÔÖÓÓ Ó Ð Ø ÓÒ×
07:47:16 <elliott_> Ó ÙÒ× È Ö ÓÖÑÁÇ
07:47:18 <elliott_> Ö
07:47:20 <elliott_> Ø Ö ×
07:47:22 <elliott_> Ò ÔÖÓÚ
07:47:24 <elliott_> À ×Ø
07:47:28 <elliott_> Ý
07:47:30 <elliott_> Ò Ø ÖÓÛÒ ÓÙØ Û Ø Ø
07:47:32 <elliott_> Ø Û Ø Ö Ì × Ö Ù×1
07:47:34 <elliott_> Ø ¬ Ð
07:47:36 <elliott_> Ö Ø
07:47:38 <elliott_> ×Ñ×o Ì
07:47:40 <elliott_> Ý × Ò
07:47:42 <elliott_> Ò Ò Öo
07:47:44 <elliott_> "
07:47:46 <elliott_> argh
07:47:48 <elliott_> that's not helpful, Evince
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:50:33 <Taneb> Got it
07:51:43 -!- madbr has quit (Read error: Connection reset by peer).
07:51:51 <Taneb> Thanks
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:07 <elliott_> haiku
07:55:08 <elliott_> an operating system
07:55:10 <elliott_> i can't do haikus
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:44 <monqy> 275
07:55:53 <ais523> elliott_: only 12 syllables
07:56:00 <elliott_> haiku syllable
07:56:02 <elliott_> an operating system
07:56:05 <elliott_> i can do haikus??
07:56:15 <elliott_> wow is that actually right haha wow
07:56:19 <elliott_> i didn't even try first time
07:56:21 <elliott_> or second time
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:36 <Patashu> Yeah
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:18 <elliott_> haiku syllable
07:57:20 <elliott_> an operating system
07:57:22 <elliott_> i can do haikus??
07:57:24 <elliott_> summer i think
07:57:24 <ais523> just not make whole lot of sense
07:57:28 <elliott_> ais523: yw
07:57:29 <monqy> beautiful summer / fuck fuck fuck fuck fuck fuck fuck / fuck fuck fuck fuck fuck
07:57:37 <Patashu> damnit I laughted
07:57:38 <elliott_> monqy: i laughed, but I'm not sure why
07:57:41 <Patashu> lol you too
07:57:43 <ais523> Patashu: I did too
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:02 <elliott_> you read for eighteen hours
08:00:08 <Patashu> wait, which 8?
08:00:14 <elliott_> or minus six hours
08:00:47 <Patashu> 6 works fine for me
08:00:48 -!- Nisstyre has quit (Ping timeout: 260 seconds).
08:00:51 <Patashu> what's your problem with it
08:01:05 <elliott_> Patashu: what
08:01:12 <Patashu> 8 pm, 2 am
08:01:18 <elliott_> just ruin the joke :(
08:01:20 <Patashu> ;_;
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:37 <elliott_> if a minor one
08:05:41 <ais523> elliott_: haha
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:14 <elliott_> that too
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:01 <elliott_> OS
08:07:03 <elliott_> ...in space
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:06 <elliott_> [asterisk]ago;
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:08:52 <ais523> hmm
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:32 <pikhq> elliott_: ^
08:12:33 <pikhq> Sorry.
08:12:39 <elliott_> pikhq: NO
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:16:38 <coppro> elliott_: neopets
08:17:07 <elliott_> coppro: does neopets even count as an MMO
08:17:11 <Patashu> yes
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:26 <Patashu> you'd get super bored
08:17:34 <elliott_> Patashu: that's just super ironic
08:17:38 <Patashu> oh
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:18:55 <Patashu> I have an account
08:19:23 <coppro> I had an account
08:19:24 <coppro> might still do
08:19:26 <coppro> dunno
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:29 <coppro> cba to find out
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:19:57 <coppro> google it
08:20:11 * ais523 tries Wikipedia
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:27 <elliott_> i think.
08:20:28 <elliott_> also it is old.
08:20:32 <elliott_> and i think a scientologist runs it?
08:20:38 <elliott_> Revenue$30 million USD+
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:23:50 <pikhq> Still.
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:40 <coppro> November 15, '99
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:25 <ais523> but that was rare
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:42 <elliott_> can i have an asterisk?
08:26:47 <pikhq> *****
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:26:50 <pikhq> Here, have 5.
08:27:04 <pikhq> coppro: Yes.
08:27:11 <coppro> k
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:34 <ais523> so I had to give up
08:27:47 <elliott_> oh my god what did i do
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:17 <ais523> similar to Canada?
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:28 <coppro> (landline, of course)
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:42 <coppro> :D
08:35:45 <pikhq> :D
08:35:50 <ais523> oerjan: that's Norway to... New Zealand?
08:36:00 <coppro> oh man
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:27 <coppro> ais523: so?
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:09 <pikhq> I am ignorant!
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:32 <elliott_> whatar ephones
08:39:36 <elliott_> monqy: help
08:39:50 <pikhq> ais523: The phone call *itself* is just a 56kbps stream over the Internet.
08:39:55 <monqy> whats hapeneng
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:10 <elliott_> monqy: whateis a phone
08:40:16 <monqy> i hate hpoens
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:29 <elliott_> a man after ais523
08:40:39 <elliott_> oerjan: wat
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:02 <elliott_> haha
08:44:02 <coppro> not AFAICT
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:44:58 <ais523> like, say, use Skype
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:00 <ais523> coppro: aha
08:46:03 <coppro> 5GB on a mobile connection is a lot though
08:46:04 <elliott_> oerjan: ok
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:46:40 <coppro> for simple stuff
08:47:16 <ais523> but that's just 56k
08:47:19 <ais523> with a 2 in front
08:47:24 <elliott_> X-D
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:47:59 <fizzie> Yes, but textually.
08:48:09 <fizzie> Two of fifty-six kay.
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:28 <Patashu> hahaha
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:08 <fizzie> Ah, there.
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:38 <Patashu> yeah I figured but
08:51:38 <Patashu> lmao
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:04 <ais523> 2⁢56kb/s
08:53:05 <oerjan> wasn't there an april fools joke about overloaded space
08:53:07 <ais523> there we go
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:17 <coppro> ais523: yeah
08:57:18 <coppro> I know
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:57:45 <ais523> umm, £10
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
08:59:52 <ais523> heh
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:21 <elliott> oh, I saw them on TV
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:14 <elliott> whoosh
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:07:01 <elliott> RMS PANIC
09:08:04 <monqy> oh no
09:09:47 -!- monqy has quit (Quit: hello).
09:09:50 <Patashu> what's going on
09:09:53 <Patashu> in that link
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:11:53 <Patashu> which ones?
09:12:10 <elliott> Patashu: read the thread
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> buy essays online said...
09:19:38 <elliott> real life is more interesting than virtual
09:19:38 <elliott> 10:00 AM
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:18 <Patashu> Sure
09:24:25 <Patashu> You can prime number encode an infinite number of numbers
09:24:28 <Patashu> *prime factor
09:24:32 <elliott> Taneb: see minsky machine
09:24:34 <oerjan> no, i don't think 2 is enough
09:24:37 <elliott> oh wait no
09:24:39 <elliott> bf isn't enough
09:24:40 <Patashu> And use the other cell for condutional constructs
09:24:42 <elliott> Patashu: no
09:24:45 <Patashu> no?
09:24:48 <elliott> bf's operations aren't good enough for that
09:24:51 <elliott> probably
09:24:57 <Patashu> hmm
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:21 <elliott> hmm, no
09:25:25 <oerjan> elliott: yes, but you need more than one bf cell for one minsky register
09:25:38 <elliott> right
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 <Patashu> this?
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:15 <oerjan> 3 might be too tricky
09:31:39 <itidus20> Start with "Frans". Swap n with s "Frasn". Change r to a "Faasn". Change n to e "Faase".
09:33:06 <oerjan> ^scramble frans
09:33:06 <fungot> fasnr
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:48 <itidus20> or in other words
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:02 <itidus20> another take on it is
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:10 <oerjan> Taneb: ^
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:48:58 <Taneb> Okay
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:52:12 <oerjan> unless, hm...
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:55:48 <elliott> this is like :caret() :D
09:55:59 <oerjan> MAYBE :P
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:09:14 <Taneb> *to
10:09:32 <elliott> try not using python
10:11:31 <oerjan> doing if (n % const == 0) { n /= const; ... } else { ... } with just 2 registers _does_ seem rather hard
10:11:54 <coppro> darn, asi523 is gone
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:12:55 <oerjan> *2 cells
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:48 <oerjan> or three.
10:16:59 <elliott> oerjan: UNDERLOAD MINIMALISATION WASN'T BUILT IN A DAY
10:17:04 <oerjan> indeed.
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:19:09 <elliott> why three. why four.
10:19:11 <elliott> why not two.
10:19:16 <elliott> (as the minmum)
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:20:51 <oerjan> *as i implied,
10:21:56 <elliott> WHY SO FAR NOT THOU.
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:22 <elliott> cuz like
10:24:22 <elliott> two minksy
10:24:24 <elliott> one scratch
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:45 <coppro> agree with itidus20
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:16 <itidus20> ^apparently
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:06:57 <Taneb> notice?
12:07:24 <Sgeo> You've never used IRC notice?
12:07:30 <Taneb> No
12:07:35 <Sgeo> Looks like this to the channel
12:07:48 <oklopol> elliott: yes
12:08:36 <Taneb> Hmm.
12:08:39 <Taneb> Interesting.
12:09:03 <oklopol> gayest.
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:16:56 <Taneb> The second one
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:47 <oklopol> i haven't seen kill bill
12:18:52 <Taneb> Neither have I
12:18:54 <Taneb> https://www.paypal-marketing.co.uk/sendmoney/index.htm
12:18:55 <oklopol> i know there's a girl
12:18:59 <Taneb> I think that's it
12:19:07 <oklopol> no i think there's more than a girl
12:19:08 <oklopol> hahaha
12:19:29 <oklopol> so err does anyone know latin here
12:19:35 <Taneb> I know a little
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:04 <Taneb> Hippophile
12:20:08 <Taneb> It's Greek
12:20:18 <oklopol> hippo as in... hippo?
12:20:28 <Taneb> Yes
12:20:40 <oklopol> why
12:20:48 <Taneb> Hippopotamus litteraly means horse of the river
12:20:56 <oklopol> ...
12:20:59 <oklopol> not horses
12:21:04 <oklopol> who the fuck would want to fuck a horse
12:21:11 <Taneb> Oh
12:21:15 <Taneb> Misread, sorry
12:21:17 <oklopol> pervert
12:21:17 <Taneb> Hang on
12:21:49 <oklopol> i thought you meant because hippos are really big
12:22:07 <Taneb> oikiaphile
12:25:24 <oklopol> thank you
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:29 <Taneb> I don't think so
12:26:34 <fizzie> I don't think so either.
12:26:47 <oklopol> blah
12:26:49 <oklopol> too hard
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:39:51 <oklopol> how much do houses weigh?
12:39:57 <oklopol> i have absolutely no idea
12:40:08 <Taneb> Depends on their size and material
12:40:14 <oklopol> it does?!?
12:40:38 <oklopol> i've never fucked a house
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:45:30 <oklopol> maybe like a doghouse
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:48:57 <oklopol> that thing
12:49:03 <oklopol> is possibly the best
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:50:58 <fizzie> Yes.
12:54:03 -!- derrik has joined.
13:16:44 <quintopia> finns are weird
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:25 <Taneb> brb
14:11:35 -!- Taneb has changed nick to TanebIsAWay47.
14:14:18 <quintopia> what is a cirno-chan
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:51:42 <itidus20> so I just had another idea
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:24 <Taneb> Hello
15:07:34 <itidus20> wow... .. my creative juices are really flowing now
15:08:04 <Taneb> In what way?
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:08:49 <oklopol> you can't forget an idea
15:12:42 <itidus20> wow .. oklo is right
15:12:45 <itidus20> anyway ok
15:12:50 <itidus20> back with coffee
15:13:02 <Taneb> Idea?
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:31 <Taneb> Okay
15:13:57 <itidus20> you make a form.. you throw some buttons on it, ok?
15:14:05 <Taneb> Okay
15:14:15 <itidus20> then you "run" it.. following so far?
15:14:19 <Taneb> Yeah
15:14:21 <Taneb> Hang on
15:14:30 <Taneb> Am I supposed to be doing this as you talk
15:14:35 <itidus20> hahahaha no no
15:14:38 <itidus20> only in your head
15:14:43 <Taneb> Okay
15:14:52 <itidus20> now, what happens if you click on one of these buttons?
15:15:00 <Taneb> Not much
15:15:18 <itidus20> essentially nothing, right?
15:15:23 <Taneb> Yeah
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:17:44 <itidus20> ^left 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 <Taneb> So like,
15:19:21 <itidus20> or perhaps some kind of dialog box with checkboxes
15:19:40 <Taneb> Interesting
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:21:55 <itidus20> but i've never heard of it
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:23:37 <itidus20> (i know he's gone)
15:25:23 -!- soupe has joined.
15:29:10 <oklopol> i like the idea
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:14 <itidus20> and how exactly to filter it
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:37 <itidus20> slowly working on my neuroses
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:34:47 <oklopol> plus what MDude said
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:41:41 <lament> oklopol: you suck
15:43:43 <itidus20> MDude: well good point.. it could be configured to look for "mouse over object"
15:43:49 <itidus20> rather than "mouse at x,y"
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:45:05 <Taneb> No need
15:45:07 <Taneb> I read the log
15:45:11 <itidus20> oh ahh ok
15:45:25 <itidus20> so nice little idea i had eh
15:46:14 <itidus20> one benefit is you don't have to "think" of which events will occur
15:46:19 <itidus20> only have to wait for them
15:46:28 <itidus20> that would seem to be the idea
15:46:33 <oklopol> sorry *external
15:47:09 <itidus20> MDude: hmm the details are sketchy
15:47:23 <itidus20> the seed of the idea was..
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:21 <MDude> Well not really.
15:49:24 <itidus20> but secondlife doesn't really do it in a pure way
15:49:26 <itidus20> hehehe
15:49:31 <itidus20> MDude: thanks
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:26 <Taneb> g2g
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:51:59 <itidus20> i have heard of it though
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:54:11 <itidus20> with dodgy levels of legality
15:54:42 <itidus20> oh and I downloaded BYOB
15:55:00 <MDude> Build Your Own Bear?
15:55:48 <itidus20> Build your own blocks
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 <Taneb> Back
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:23 <itidus20> Taneb: back for your g2g?
15:58:31 <Taneb> Indeed
15:58:41 <Taneb> I sorta have g2g and brb backward in my mind
15:58:51 <itidus20> oh now im confused
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:16 <itidus20> So I stole indie game maker
16:00:18 <oklopol> you just have to not be a blind retard
16:00:19 <itidus20> i admit it
16:00:33 <itidus20> but i had to work hard at it
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:22 <itidus20> i dunno what they are exactly
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:58 <oklopol> specific i mean
16:10:59 <zzo38> itidus20: I have heard that being called the "Bob Proffitt Principle"
16:11:11 <MDude> Not really chaos.
16:11:34 <MDude> Well, maybe.
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:32 <oklopol> great
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:18 <oklopol> what do you mean
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:07 <oklopol> and what are those
16:26:18 <itidus20> non-standard chess pieces
16:26:31 <oklopol> you had the idea of adding other pieces to chess?
16:26:40 <itidus20> yup
16:26:44 <oklopol> yeah i liked doing that when i was 7
16:26:56 <oklopol> fun little activity
16:27:13 <itidus20> i worked out that each piece was defined by vectors
16:27:24 <oklopol> defined by vectors?
16:27:32 <oklopol> you mean a set of allowed movements?
16:27:36 <itidus20> yup
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:03 <itidus20> based on these vectors
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:11 <itidus20> :P
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:30:45 <oklopol> *fpr
16:30:47 <oklopol> *for
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:32 <itidus20> i want to make it realtime
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:30 <oklopol> just a guess
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:36:48 <itidus20> i worded it kinda bad
16:37:02 <itidus20> suppose that you drew a vertical and horizontal line through each enemy piece
16:37:06 <itidus20> crossing the board
16:37:07 <oklopol> okay
16:37:14 <itidus20> and that.. these lines formed walls
16:37:18 <oklopol> oaky
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:37 <oklopol> not to any relevant depth
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:44:53 <Taneb> I like chess
16:45:04 <oklopol> maybe you're just really really smart
16:45:11 <lament> i hate chess and go
16:45:17 <lament> too much thinking
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:26 <lament> and too competitive
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:06 <oklopol> lament: what do you like?
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:01 <oklopol> ditto
16:57:25 <oklopol> one of my favorites
16:57:38 <Taneb> I was never much good at the endgame
16:58:57 <oklopol> hey ditto again
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:01:12 <Taneb> I know Rummy
17:02:05 * Sgeo likes Barbu
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:03:02 <Sgeo> No
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:06 <fizzie> TOO LATE
17:37:08 <oerjan> darn
17:37:21 <Taneb> So, I was rightish?
17:37:28 <oerjan> NEVAR
17:37:37 <oerjan> well, POSSIBLY
17:39:26 <pikhq> Taneb: Pretty much.
17:39:32 <oklopol> and certain numbers
17:39:38 <oklopol> erm
17:39:52 <oklopol> to what fizzie said, seems my pagedown key is wrongative atm
17:45:15 <oerjan> the wrongative case
17:46:24 <Taneb> The wrongative of servus, -i is serves
17:49:49 <oerjan> serves you wrong?
17:50:05 <Taneb> Quite.
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:29 <Taneb> >>North
17:54:35 <zzo38> Make up like a text adventure
17:55:29 <Taneb> What?
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:31 <Taneb> Possibly
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:08:46 <oklopol> ...
20:08:49 <oklopol> oooooopsie
20:09:51 <fizzie> How do you shot web, isn't that what they ask?
20:19:02 -!- Taneb has joined.
20:19:19 <Taneb> Hello
20:20:12 <Taneb> Who's talking?
20:20:28 <fizzie> You.
20:20:33 <oklopol> fizzie as well
20:20:45 <fizzie> And okokokoklopol.
20:20:56 <Taneb> Crazy
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:24 <Taneb> No
20:40:35 <Taneb> I have a vague idea how they work
20:41:45 <zzo38> How much idea do you have?
20:41:57 <Taneb> Very little
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:50:30 <Taneb> I do not know
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:04:45 <oerjan> Taneb: SQL
21:04:48 * oerjan runs away
21:05:04 <Taneb> That's an example rather than a word
21:21:13 <lament> the word is 'fragnlium'
21:21:25 <Taneb> 'Tis a good word
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:07 <Vorpal> hah
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).
2011-07-31
00:00:36 -!- BeholdMyGlory has joined.
00:02:45 -!- elliott has joined.
00:02:48 <elliott> a
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:22 <elliott> oklopol: ping
00:07:48 <oklopol> pong
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:32 <elliott> i see
00:13:57 <monqy> oh dear what happened
00:14:31 <elliott> iti dispensed some genius
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:15:06 <elliott> [edit mouse-click event]
00:15:07 <elliott> [no]
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:21:28 <elliott> buddha irl
00:23:13 <monqy> wisdom
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:49:18 <quintopia> ive never had that thought
00:50:02 <elliott> monqy
00:50:05 <elliott> ur bestmc odonalds
00:50:11 <monqy> ;_;
00:50:19 <elliott> :(
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:53:53 <Sgeo> Hmm
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:05:56 <Sgeo> pikhq, poke
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:57:23 <elliott> wat
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:14 <pikhq> s/set/format/
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:37 <elliott> gamma?
02:08:42 <elliott> oh
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:09:36 <elliott> crap name
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:07 <pikhq> Bah.
02:11:20 <elliott> pikhq: make it a @ database
02:11:27 -!- evincar has joined.
02:11:36 <pikhq> elliott: Make @
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:03 <elliott> Damn.
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:15:54 <elliott> haskell: how not to do it
02:16:15 <Sgeo> Eh?
02:16:23 <evincar> D:
02:16:28 <pikhq> ... StateReaderErrorWriterIO? *What*.
02:18:46 <elliott> i like how all those are completely redundant
02:18:56 <elliott> because
02:19:00 <elliott> IO encompasses all of them
02:19:07 <elliott> newtype MyMonad a = MyMonad (IO a)
02:19:10 <elliott> completely equivalent
02:19:23 <pikhq> eah.
02:20:44 <elliott> eah
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.
02:59:11 <Vorpal> evincar, TeX?
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:32 <Vorpal> XD
03:03:35 <Vorpal> why
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:30 <Vorpal> ah
03:04:37 <Vorpal> elliott, so nothing wrong with TeX then?
03:04:49 <elliott> .
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:08:00 <Vorpal> ah yes
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:25:46 <GreaseMonkey> isterrorist(x) :- return true
03:26:08 <GreaseMonkey> actually if you want to do it in prolog
03:26:27 <GreaseMonkey> isa(X, terrorist).
03:27:37 <evincar> GreaseMonkey: I guess it would actually assume that all things behave rather like NaN.
03:27:51 <GreaseMonkey> isa(_, _).
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:49:58 <evincar> Or something.
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:01 <elliott> haha
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:21:10 <elliott> next question.
04:21:20 <pikhq> elliott: Or I.
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:11 <evincar> Well, except for Lojban.
04:23:18 <elliott> Lojban isn't precise either.
04:23:23 <evincar> I know. :(
04:23:28 <evincar> Wishful thinking.
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:24 <elliott> (When I am rich.)
04:37:45 <monqy> rich on fame and donations
04:37:47 <monqy> from making @
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:39:50 <evincar> monqy: Blue waffle.
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:40:47 <elliott> SO SHOCKING.
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:21 <evincar> ...sure.
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:03 <monqy> cakeprophet?
04:43:18 <elliott> Sgeo: OK fine, six. Oh, wait, CakeProphet too.
04:43:21 <elliott> So either nine or six.
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:45 <evincar> *one
04:48:48 <evincar> :P
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:17 <itidus20> ^sequel
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:09 <pikhq> Sgeo: Oh?
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:52:41 <pikhq> *groan*
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:10 <itidus20> i just cut and paste
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:31 <evincar> Or actually before.
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:22 <elliott> good
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:55:47 <Sgeo> pikhq_, oh
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:16 <itidus20> :)
04:57:26 <itidus20> hehehehe
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:13 <evincar> But of course! :D
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:23 <itidus20> theres no comparison
04:59:33 <itidus20> (i won't)
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
04:59:56 <itidus20> and i'm on xp
05:00:04 <itidus20> i knew gimp had support for it
05:00:04 <evincar> I love it for batch image processing.
05:00:08 <itidus20> but yeah its really awesome
05:00:27 <evincar> Because Scheme.
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:32 <evincar> Maybe, or just adapted.
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:23 <elliott> [asterisk]whose
05:02:36 <elliott> I'm never going to be able to stop doing this [asterisk] thing
05:02:41 <elliott> Wiccan Sarah in Durban
05:02:41 <elliott> stop suffering now Sarah the witch is here to help +2773 400 6132
05:02:41 <elliott> wwwladysarah.co.za
05:02:45 <elliott> best google ad ever
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:08:50 <elliott> but never as much
05:08:50 <elliott> as
05:08:52 <elliott> PIEence
05:09:00 <elliott> pie-ence bitchez
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:14 <pikhq_> Sgeo: Oh, *surely*.
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:13:37 <elliott> I FEED ON PAIN
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:29 <elliott> WHAT NOW
05:14:39 <evincar> Example of something that offends and sickens me: abstinence from sex on religious grounds.
05:14:56 <elliott> Srsly?
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:39 <evincar> Hypocritical how?
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:03 <elliott> evincar:
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:46 <evincar> I don't oppose them.
05:17:57 <evincar> I just don't understand or endorse them.
05:18:05 <elliott> You said it offends you.
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:21 <evincar> elliott: You don't.
05:19:29 <elliott> You just tried to.
05:19:37 <evincar> Not at all.
05:19:40 <evincar> I said "probably".
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:04 <elliott> You didn't there.
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:20:34 <evincar> What he said.
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:21 <elliott> lament: Har har har
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:22:44 <pikhq_> elliott: Well, yes.
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:16 <evincar> Oh, and sex.
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:03 <Sgeo> I did
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:35:42 <elliott> not flat earth
05:35:43 <elliott> just
05:35:44 <elliott> 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:45 <evincar> He'd be ashamed.
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:07 <elliott> a the
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:21 <elliott> --wikipedia
05:40:24 <elliott> "The 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:09 <elliott> universal scope
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:43:57 <pikhq_> Sgeo++
05:44:12 <elliott> evincar: Citation :-P
05:44:17 <elliott> (Yeah yeah I rebutted pikhq_ with Wikipedia shaddup.)
05:44:49 <itidus20> Sgeo: lets consider 'self
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:20 <elliott> No.
05:47:21 <elliott> It really isn't.
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:46 <evincar> pikhq_: Naturally.
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:47:48 <itidus20> ok i have to stop--.
05:47:56 <evincar> See, here's the thing.
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:27 <elliott> don't love anybody
05:48:29 <elliott> problem solved
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 <pikhq_> :P
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:50:58 <elliott> I don't really like Lua.
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:41 <evincar> Alternatively, sleep.
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:13 <pikhq_> s/with a headache/
05:52:17 <pikhq_> *s/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:52:54 <pikhq_> elliott: *shrug*
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:07 <elliott> <lament>
05:54:16 <itidus20> and gradually we piece together the logic that all die
05:54:55 <lament> <elliott> <lament>
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:04 <elliott> <lamelliott>
05:55:06 <evincar> I dunno, I still might try to pull a Voldemort.
05:55:13 <lament> <
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:05 <lament> it doesn't?
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:56:27 <lament> we do?
05:56:33 <lament> there should?
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:22 <itidus20> I see....
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.
05:58:25 <evincar> Agreed.
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:22 <elliott> fsvo probably
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:03:22 <evincar> I mean, yes, I am.
06:03:41 <evincar> But it wasn't mentioned.
06:03:58 <lament> i guess it wasn't
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:35 <elliott> lol
06:10:45 <elliott> IM SO ATTACHED TO YOU....THAT THIS HEARTBREAK..........HASLITERALLY......BROKEN MY HEART.............
06:10:46 <elliott> [DIES]
06:10:50 <elliott> [ROLL CREDITS]
06:10:55 <evincar> It happens quite often.
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 <elliott> FATAL ATTACHMENT
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:20 <elliott> tom cruise AND nic cage
06:15:24 <elliott> instantly best film
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:31 <elliott> and
06:15:32 <elliott> it's FATAL
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:17:35 <elliott> lame
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:14 <elliott> laaaame
06:18:21 <pikhq_> That's for the sequel.
06:18:24 <pikhq_> (honest)
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:44 <evincar> elliott: In the tens.
06:19:01 <pikhq_> 20 to 300.
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:20:58 <coppro> yes
06:21:16 <elliott> evincar: in English?
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:35 <elliott> Sgeo: make what
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:23:24 <evincar> elliott: Like a quine?
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:24:55 <Sgeo> Usually
06:25:14 <Sgeo> For me
06:25:35 <itidus20> things like -2,-1,0,1,2 doesn't quite explain it
06:25:37 <elliott> Sgeo: uh, context
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:13 <elliott> no it isn't
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:28:22 <elliott> whatever floats your boat
06:28:42 <itidus20> hmm
06:29:09 <evincar> In the practical sense, say a linguistic sense, what function does a number serve?
06:29:23 <elliott> what
06:29:29 <NihilistDandy> Ohai
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:14 <NihilistDandy> evincar: How much muchness is there?
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:37 <NihilistDandy> evincar: Irrelevant
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:26 <NihilistDandy> I just can't describe that idea
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:25 <NihilistDandy> One more than one of something
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:34:57 <NihilistDandy> Depending on your set of 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:25 <evincar> itidus20: Microcode.
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:35:58 <evincar> And further still.
06:36:05 <NihilistDandy> 01100010 01101100 01100001 01101000 00100000 01100010 01101100 01100001 01101000 00100000 01100010 01101100 01100001 01101000
06:36:19 <evincar> No encoding specified.
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:30 <elliott> what
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:40:55 <NihilistDandy> Define finite
06:41:53 <itidus20> an object which can be manipulated in it's entirety by a human
06:42:06 <NihilistDandy> How do you define a set, then?
06:42:13 <NihilistDandy> And what consitutes manipulation?
06:42:15 <Sgeo> Define "object"
06:42:18 <NihilistDandy> And what's a human?
06:42:25 <NihilistDandy> And what's entirety?
06:42:28 <Sgeo> Do mathematical constructs count as objects?
06:42:31 <Patashu> this is dumb
06:42:39 <NihilistDandy> evincar started it :d
06:42:41 <itidus20> a set definition is finite... even though its meaning is infinite
06:42:46 <NihilistDandy> What's finite?
06:42:47 <Sgeo> itidus20, wrong
06:42:50 <evincar> Did not.
06:43:33 <elliott> <Patashu> this is dumb
06:43:34 <elliott> yes
06:43:36 <elliott> <NihilistDandy> evincar started it :d
06:43:38 <elliott> no, iti did
06:43:39 <elliott> :P
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:04 <elliott> Patashu: One second.
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:20 <elliott> Patashu: 45,000,000,000.
06:44:21 <NihilistDandy> Patashu: The largest number you can think of + 1
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:44:59 <itidus20> ok *wipes brow*
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:06 <NihilistDandy> It defines nothing
06:46:11 <NihilistDandy> The definition defines it
06:46:18 <NihilistDandy> The word is just a representative
06:46:19 <evincar> The symbol refers to it.
06:46:28 <itidus20> perhaps i should say, symbols are finite
06:46:39 <NihilistDandy> In what sense?
06:46:53 <itidus20> i mean..i know there can be infinite symbols.. but each specific symbol is a finite thing
06:47:00 <NihilistDandy> Is it?
06:47:11 <NihilistDandy> Is a line not a symbol?
06:47:18 <NihilistDandy> Is a point really finite?
06:47:24 <itidus20> does it have to be percieved to be a symbol?
06:47:28 <elliott> oh my god
06:47:47 <NihilistDandy> elliott created a monster
06:47:54 <evincar> This is horrifying.
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:15 <NihilistDandy> Just baby-like thinking
06:48:22 <evincar> Worse than being in the café at my college.
06:48:23 <NihilistDandy> itidus20: Justify
06:48:44 <NihilistDandy> evincar: Godwin's Corollary :D
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:27 <NihilistDandy> elliott: Okay, hpaste inbound
06:50:42 <NihilistDandy> http://hpaste.org/49703
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:51:14 <NihilistDandy> I know it's ugly and awful, by the way
06:51:21 <NihilistDandy> I'm trying to fix that
06:52:31 <Sgeo> g :: Integral a => [a] -> [a]
06:52:31 <Sgeo> g = map g'
06:52:35 <Sgeo> Why would that compile?
06:52:41 <NihilistDandy> Why wouldn't it?
06:52:43 <Sgeo> Oh, derp
06:52:45 <NihilistDandy> :P
06:52:47 <coppro> what's g' here?
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:51 <NihilistDandy> But it's disappointingly specific.
06:53:52 <elliott> it occurs to me that asking someone with this headache might not be your best hope :)
06:54:03 <NihilistDandy> elliott: No worries :D
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:55:01 <NihilistDandy> coppro: In what way, exactly, should I use it?
06:58:09 <elliott> I'M AN IDIO- wait, what...
06:58:22 <elliott> OHHH
06:58:44 <coppro> mconcat = map . (!!)
06:58:58 <elliott> um...
06:58:59 <coppro> where a permutation is a list of integers from 0 to n-1
06:59:04 <elliott> :t map . (!!)
06:59:04 <lambdabot> forall b. [b] -> [Int] -> [b]
06:59:06 <elliott> :t mconcat
06:59:07 <lambdabot> forall a. (Monoid a) => [a] -> a
06:59:10 <elliott> how about no
06:59:18 <coppro> hrm wait
06:59:26 <elliott> pro
06:59:33 <coppro> wrong function
06:59:41 <NihilistDandy> Also
06:59:42 <NihilistDandy> http://mathbin.net/64558
06:59:43 <elliott> proest
06:59:46 <elliott> prost
06:59:52 <NihilistDandy> The texified version
06:59:55 <coppro> I MEANT mappend!
07:00:08 <elliott> :t mappend
07:00:08 <coppro> APPEND AND CONCATENATE THERE IS NO DISTINCTION
07:00:08 <lambdabot> forall a. (Monoid a) => a -> a -> a
07:00:12 <elliott> :t map . (!!)
07:00:13 <lambdabot> forall b. [b] -> [Int] -> [b]
07:00:19 <elliott> well ok for b=Int.
07:00:25 <coppro> well yeah
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:11 <NihilistDandy> Sgeo: How will you LIIIIIVE?
07:02:15 <coppro> > let perm = map . (!!) in [0,3,2,1] `perm` [2,3,1,0]
07:02:16 <lambdabot> [2,1,3,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:03:47 <NihilistDandy> And there's the problem
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:16 <NihilistDandy> Sorry, meant permutations of a finite set
07:05:22 <NihilistDandy> Permutation groups come later
07:05:27 <NihilistDandy> I'm working up
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:05:59 <NihilistDandy> A cycle doesn't contain all elements
07:06:11 <NihilistDandy> And I'd like to be able to work with the permutation decomposed into its sycles
07:06:14 <NihilistDandy> *cycles
07:06:33 <elliott> this headache is unberable
07:06:36 <elliott> unberaable
07:06:36 <NihilistDandy> As illustrated in the TeX example
07:06:38 <elliott> also i can't type
07:06:44 <NihilistDandy> elliott: That looked like Dutch
07:07:15 <coppro> what TeX example?
07:07:21 <NihilistDandy> http://mathbin.net/64558
07:07:43 <NihilistDandy> That one
07:08:04 <evincar> NihilistDandy: unberaabel would look more Dutch.
07:08:11 <NihilistDandy> evincar: Truth
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:10:01 <NihilistDandy> Exactly my thoughts.
07:10:11 <NihilistDandy> I was just curious if I might just be wrong
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:20 <NihilistDandy> Rewrite C stdlib in Hungarian?
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:06 <NihilistDandy> They have type-level naturals in HEAD
07:16:50 <evincar> (Actually, programming languages seem to be all purely analytic, not just isolating.)
07:17:59 <elliott> coppro: that's trivial
07:18:06 <elliott> data Z
07:18:09 <elliott> data S n
07:18:11 <elliott> class Nat n
07:18:12 <elliott> instance Nat Z
07:18:14 <coppro> elliott: well yes
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:28 <elliott> it is a common technique.
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:20:17 <coppro> define type families
07:20:29 <elliott> lol.
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:22:49 <coppro> k
07:23:29 <coppro> I believe the answer is yes
07:23:31 <coppro> let me double-check
07:23:37 <elliott> to what
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:25:43 <Sgeo> I feel unwell
07:25:57 <elliott> i feel like a well
07:26:03 <elliott> weird feelin
07:26:42 <elliott> i wonder if this classes as a migraine
07:26:50 <elliott> probably not
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:38:29 <coppro> would be interested
07:39:19 <NihilistDandy> Please do
07:40:42 <elliott> k one second
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:44:58 <coppro> oh that explains it
07:45:05 <coppro> I was trying to avoid extensions generally
07:45:11 <elliott> that's impossible
07:45:44 <NihilistDandy> You can hardly do anything fun without extensions
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:10 <elliott> Flexible contexts too
07:49:15 <elliott> The |s are functional dependencies.
08:18:31 <elliott> ?pl \n pairs -> fromMaybe n (lookup n pairs)
08:18:31 <lambdabot> liftM2 (.) fromMaybe lookup
08:18:34 <elliott> ?pl \pairs n -> fromMaybe n (lookup n pairs)
08:18:34 <lambdabot> ap fromMaybe . flip lookup
08:18:47 <elliott> ?pl \ess@(e:es) -> zip ess (es ++ [e])
08:18:47 <lambdabot> (line 1, column 5):
08:18:47 <lambdabot> unexpected "@"
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> (line 1, column 6):
08:19:01 <lambdabot> unexpected "@"
08:19:01 <lambdabot> expecting letter or digit, operator or ")"
08:19:05 <elliott> D'awww
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:44:35 <Taneb> Hello
08:46:15 <coppro> Hi
08:47:06 <Taneb> What is happening in the WORLD OF ESOTERIC PROGRAMMING
08:47:20 <Taneb> ?
08:48:41 <elliott> EVERYTHING
08:49:16 <Taneb> Mein. Deu.
08:58:18 <coppro> why does Haskell not have a Semigroup typclass
08:58:20 <coppro> *typeclass
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:01:50 <coppro> or iden for short
09:01:51 <elliott> and your syntax is bad
09:02:01 <coppro> err =>
09:02:04 <coppro> YOU KNOW WHAT I MEANT
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:24 <elliott> technical reasons
09:03:32 <elliott> (overlapping instances)
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:50 <elliott> Option?
09:04:56 <Patashu> Is there a 'fixed' version of Hasell
09:05:03 <elliott> Patashu: define fixed
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:28 <elliott> So that helps nobody.
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:18 <coppro> explains it
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:35 <coppro> that
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:08:36 <coppro> DISAGREE
09:09:12 <coppro> Monoid is not in Prelude
09:09:21 <coppro> but yes, the issue is not with Haskell itself
09:09:27 <elliott> You know what I mean.
09:09:29 <elliott> The base package.
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:09:55 <coppro> *Semigroup
09:10:21 <coppro> oh wait, pure requires a Monoid
09:10:22 <coppro> NEVERMIND
09:10:26 <elliott> herp derp
09:10:34 <coppro> I R SMRT
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:19 <elliott> hi oerjan
09:12:24 <oerjan> hi elliott
09:12:30 <NihilistDandy> hi NihilistDandy
09:12:34 <NihilistDandy> Oh, wait
09:12:50 <oerjan> NihilistDandy: you're a nihilist, not a solipsist, duh
09:13:05 <NihilistDandy> Well, you've got me there
09:14:08 <NihilistDandy> Anyway, I have to sleep
09:14:19 <NihilistDandy> Adios
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:37 <elliott> But how's it a "nit"
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:40 <coppro> ^
09:31:50 <coppro> hell, C++ was considering axioms
09:33:06 <Patashu> how would C++ use 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:03 <Patashu> :(
09:35:04 <Patashu> I want that
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:39 <elliott> it was rejected.
09:35:43 <coppro> No
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:12 <coppro> head >>= all . (==)
09:37:45 <coppro> that function is pure epic win
09:38:31 <elliott> :t head >>= all . (==)
09:38:32 <lambdabot> forall a. (Eq a) => [a] -> Bool
09:39:08 <elliott> > (head>>=all.(==)) [0,0,0]
09:39:09 <lambdabot> True
09:39:10 <elliott> > (head>>=all.(==)) [0,0,0,9]
09:39:11 <lambdabot> False
09:39:13 <elliott> > (head>>=all.(==)) [0,9,0]
09:39:14 <lambdabot> False
09:39:19 <elliott> > (null . nub) [0,9,0]
09:39:20 <lambdabot> False
09:39:22 <elliott> coppro: shortened that for you
09:39:23 <elliott> > (null . nub) [0,0,0]
09:39:24 <lambdabot> False
09:39:28 <elliott> guh what
09:39:30 <elliott> > nub [0,0,0]
09:39:31 <lambdabot> [0]
09:39:33 <elliott> oh
09:39:35 <elliott> > nub []
09:39:35 <lambdabot> []
09:39:41 <elliott> ?hoogle safeTail
09:39:42 <lambdabot> Data.ByteString.Unsafe unsafeTail :: ByteString -> ByteString
09:39:44 <elliott> ?hoogle something
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:40:56 <coppro> elliott: drop 1
09:41:12 <coppro> elliott: but nub is inefficient
09:41:23 <elliott> Oh right, drop 1.
09:41:24 <elliott> ?src nub
09:41:24 <lambdabot> nub = nubBy (==)
09:41:27 <elliott> ?src nubBy
09:41:27 <lambdabot> nubBy eq [] = []
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:41:46 <elliott> Well, OK.
09:41:50 <elliott> But it's prettier.
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:07 <oerjan> it's all in the head
09:45:26 <coppro> ?hoogle (c -> c -> c) -> (a -> c) -> (b -> c) -> a -> b -> c
09:45:26 <lambdabot> No results found
09:46:02 <elliott> ?djinn (c -> c -> c) -> (a -> c) -> (b -> c) -> a -> b -> c
09:46:02 <lambdabot> f a b c d e = a (b d) (c e)
09:46:08 <elliott> ?pl \a b c d e -> a (b d) (c e)
09:46:08 <lambdabot> ((flip . ((.) .)) .) . (.)
09:46:09 <oerjan> didn't we discuss something like that the other day
09:46:10 <elliott> coppro: yw
09:46:19 <coppro> elliott: h8 u
09:46:27 <elliott> ?pl \b c d e -> a (b d) (c e)
09:46:27 <lambdabot> flip . (((.) . a) .)
09:46:34 <elliott> ?pl \d e -> a (b d) (c e)
09:46:34 <lambdabot> (. c) . a . b
09:46:36 <oerjan> i think i made a version with arrow style
09:47:19 <elliott> arrows :(
09:47:22 <coppro> :t on
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:42 <oerjan> oops
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:50:45 <oerjan> (argh)
09:51:12 <oerjan> oh hm
09:51:14 <elliott> btw oerjan
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:27 <elliott> i weep for humanity
09:51:39 <monqy> who would do that
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:33 <elliott> remember them??
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:52:58 <lambdabot> Not in scope: `height'
09:52:58 <lambdabot> Not in scope: `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:46 <lambdabot> Expected type: f (a -> b)
09:53:46 <lambdabot> Inferred type: f a
09:53:58 <coppro> :t (&&) <$> ((<*>) `on` ((==) .)) length head
09:53:59 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
09:53:59 <lambdabot> Expected type: f (a -> b)
09:53:59 <lambdabot> Inferred type: f a
09:54:06 <coppro> damn
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:30 <lambdabot> parse error on input ``'
09:54:44 <coppro> :t ((<*>) `on` ((==) .))
09:54:45 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
09:54:45 <lambdabot> Expected type: f (a -> b)
09:54:45 <lambdabot> Inferred type: f a
09:54:59 <coppro> there's me problem
09:55:13 <oerjan> ?pl \a -> curry (curry . (uncurry a .) . uncurry (***))
09:55:13 <lambdabot> curry . (curry .) . (. uncurry (***)) . (.) . uncurry
09:55:26 <coppro> :t ((==) .)
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:56:26 <elliott> package
09:56:44 <coppro> don
09:56:50 <elliott> don
09:56:55 <coppro> thanks
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:18 <elliott> what mess :)
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:36 <elliott> by the same guy
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> against inferred type `a -> 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:23 <elliott> ;D
09:58:36 <elliott> gotta love them instances
09:58:48 <coppro> haha
09:58:58 <oerjan> :t (&&) <$> ((==) . length) <*> ((==) . first)
09:58:58 <lambdabot> Couldn't match expected type `Bool'
09:58:58 <lambdabot> against inferred type `a -> Bool'
09:58:58 <lambdabot> In the first argument of `(.)', namely `(==)'
09:59:15 <oerjan> bah
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:00:15 <coppro> example?
10:00:23 <elliott> what do you mean?
10:00:25 <elliott> example of its use?
10:00:28 <coppro> yeah
10:00:43 <coppro> :t length
10:00:43 <lambdabot> forall a. [a] -> Int
10:00:52 <coppro> :t ((==) . length)
10:00:52 <lambdabot> forall a. [a] -> Int -> Bool
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:05 <elliott> umm, I forget precisely
10:01:09 <elliott> but I know that Epigram uses it, IIRC
10:01:10 <elliott> or was it Agda
10:01:13 <elliott> something McBride worked on, anyway ;-)
10:01:19 <coppro> ah
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> Precedence parsing error
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> Precedence parsing error
10:10:24 <lambdabot> cannot mix `on' [infixl 0] and `$' [infixr 0] in the same infix expression
10:10:24 <lambdabot> Not in scope: `#'
10:10:30 <coppro> :t (***) `on` ((==) .) $ first $ length
10:10:31 <lambdabot> Precedence parsing error
10:10:31 <lambdabot> cannot mix `on' [infixl 0] and `$' [infixr 0] in the same infix expression
10:10:34 <coppro> damn you
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:10:47 <lambdabot> Inferred type: [a1] -> Int
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 <coppro> :t first
10:11:25 <lambdabot> forall (a :: * -> * -> *) b c d. (Arrow a) => a b c -> a (b, d) (c, d)
10:11:29 <coppro> oh no wonder
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:34 <coppro> derpderpderp
10:11:51 <coppro> :t (&&) <$> ((==) . length) <$> ((==) . head)
10:11:52 <lambdabot> Couldn't match expected type `Bool'
10:11:52 <lambdabot> against inferred type `a -> 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> Expected type: (Bool, Bool)
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> against inferred type `a -> 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> Expected type: (Bool, Bool)
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> against inferred type `Bool'
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:13 <lambdabot> parse error on input ``'
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:24 <elliott> Or not.
10:15:28 <coppro> elliott: no
10:15:32 <coppro> I will not give in
10:15:43 <elliott> coppro: You're making your code less readable.
10:15:48 <coppro> elliott: I know
10:15:55 <coppro> I dun care
10:16:04 <elliott> k
10:16:11 <coppro> FREE ALL THE POINTS
10:16:23 <coppro> it's 3 am
10:16:29 <coppro> I am allowed to free every point I want
10:16:46 <coppro> :t (==) `on` head
10:16:47 <lambdabot> forall a. (Eq a) => [a] -> [a] -> Bool
10:16:50 <elliott> 3 am is nothing.
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 <lambdabot> No results found
10:17:44 <elliott> coppro: Literally everything you say will be met by scornful laughter.
10:17:49 <coppro> elliott: k
10:17:50 <elliott> I have experienced every schedule.
10:17:52 <elliott> EVERY SCHEDULE.
10:17:56 <coppro> elliott: even uberman
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:12 <coppro> on a regular basis
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 <elliott> :t foldM
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> X-D
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:25 <elliott> Pah.
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:32 <elliott> But
10:23:33 <elliott> <elliott> oerjan: Hey, you write the boilerplate to do the map as part of the fold, thx :P
10:25:32 <elliott> SHEESH
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:27:20 <elliott> >:||||||||\\\\\\\
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:36 <lambdabot> foldr ((:) . f) []
10:32:40 <oerjan> elliott: FAIL
10:32:44 <elliott> oerjan: wat
10:32:46 <itidus20> in my case it's usually intra-house noise
10:32:48 <elliott> i know i omitted the f
10:32:50 <itidus20> but same idea
10:32:51 <elliott> shaddap
10:33:13 <oerjan> yes, it's intra-house.
10:33:17 <elliott> inter-house.
10:33:20 <coppro> curry . uncurry (&&) <$> (<*> `on` uncurry (on (==))) head length
10:33:20 <elliott> presumably.
10:33:22 <coppro> :t curry . uncurry (&&) <$> (<*> `on` uncurry (on (==))) head length
10:33:23 <lambdabot> parse error on input ``'
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:27 <lambdabot> foldr (ff . mf) 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:30 <lambdabot> against inferred type `Bool'
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:31 <lambdabot> foldM (ff . mf) 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:39 <elliott> oh come on
10:33:40 <elliott> ?. type pl foldM (\x r -> ff (mf x) r) fz
10:33:41 <lambdabot> Not in scope: `ff'
10:33:41 <lambdabot> Not in scope: `mf'
10:33:41 <lambdabot> Not in scope: `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:42 <lambdabot> against inferred type `Bool'
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:33:51 <oerjan> or something
10:34:01 <coppro> :t ((<*>) `on` uncurry (on (==)))
10:34:02 <lambdabot> Occurs check: cannot construct the infinite type: a = a -> b
10:34:02 <lambdabot> Expected type: f (a -> b)
10:34:02 <lambdabot> Inferred type: f a
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 <lambdabot> Expected type: f (a -> b)
10:34:19 <lambdabot> Inferred type: f a
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:23 <coppro> dammit
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:29 <coppro> :t on (==)
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 <coppro> :t uncurry (on (==))
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:42 <lambdabot> Not in scope: `ff'
10:34:42 <lambdabot> Not in scope: `mf'
10:34:42 <lambdabot> Not in scope: `fz'
10:34:46 <itidus20> oerjan: neighbors is fine enough :). but it is commonly used in the inter-house sense
10:34:46 <coppro> oh eww
10:34:51 <coppro> :t on $ uncurry (==)
10:34:52 <elliott> coppro: FOR FUCK'S SAKE
10:34:52 <lambdabot> Couldn't match expected type `(a, a) -> c'
10:34:52 <lambdabot> against inferred type `Bool'
10:34:52 <lambdabot> In the second argument of `($)', namely `uncurry (==)'
10:34:52 <elliott> WRITE
10:34:53 <elliott> THE
10:34:53 <elliott> FUCKING
10:34:54 <elliott> FUNCTION
10:34:55 <elliott> OUT
10:34:55 <elliott> IN
10:34:56 <elliott> A
10:34:58 <elliott> WHERE
10:35:00 <elliott> CLAUSE
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:12 <lambdabot> Expected type: f (a -> b)
10:35:12 <lambdabot> Inferred type: f a
10:35:16 <elliott> hate you
10:35:22 <coppro> elliott: I know
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:35:41 <elliott> agh what
10:35:44 <elliott> oh
10:35:56 <elliott> that's annoying :/
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:49 <elliott> now Gregor can avoid work
10:42:51 <coppro> I don't like it though
10:42:52 <elliott> coppro: show
10:43:03 <elliott> plz
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:15 <coppro> *got
10:43:24 <elliott> ?pl \f a b -> f a == f b
10:43:24 <lambdabot> flip =<< (((.) . (==)) .)
10:43:35 <elliott> hmm
10:43:38 <elliott> ?pl \a b -> f a == f b
10:43:38 <lambdabot> (. f) . (==) . f
10:43:39 <coppro> lol
10:43:40 <elliott> right
10:43:42 <elliott> :t (==) `on` f
10:43:42 <coppro> learn to `on`
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:43 <lambdabot> `SimpleReflect.FromExpr b'
10:43:48 <elliott> :t (==) `on` ?f
10:43:49 <elliott> coppro: stfu
10:43:49 <lambdabot> forall b a. (Eq b, ?f::a -> b) => a -> a -> Bool
10:43:52 <elliott> or you mean pl
10:43:57 <coppro> I mean pl
10:44:19 <elliott> :t liftA2 (&&) ((==) `on` ?f) ((==) `on` ?g)
10:44:20 <lambdabot> Couldn't match expected type `Bool'
10:44:21 <lambdabot> against inferred type `a -> 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> Parse error:
10:44:49 <lambdabot> --count=20 "(b -> b -> c) (a -> a -> b) -> (a -> a -> b) -> ... this is what coppro wanted earlier"
10:44:49 <lambdabot> ^
10:45:10 <elliott> ?pl \a b -> (((==) `on` ?f) a b) && (((==) `on` ?g) a b)
10:45:11 <lambdabot> (line 1, column 21):
10:45:11 <lambdabot> unexpected "?"
10:45:11 <lambdabot> expecting space or simple term
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 <coppro> :t liftA2
10:45:18 <lambdabot> forall a b c (f :: * -> *). (Applicative f) => (a -> b -> c) -> f a -> f b -> f c
10:45:19 <elliott> oh come on
10:45:20 <elliott> :t ap
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:29 <elliott> hmm
10:45:36 <elliott> :t ap (&&)
10:45:37 <lambdabot> (Bool -> Bool) -> Bool -> Bool
10:45:43 <elliott> :t ap . (&&)
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:45:45 <coppro> ap == fmap
10:45:50 <elliott> coppro: n...no
10:46:04 <elliott> ap == (<*>)
10:46:08 <elliott> u fail u lose
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:14 <elliott> s/ [dollar sign]//
10:46:15 <coppro> you remove that and ap == ap
10:46:23 <elliott> :t ap (&&)
10:46:23 <lambdabot> (Bool -> Bool) -> Bool -> Bool
10:46:25 <elliott> > ap (&&) f
10:46:26 <lambdabot> No instance for (SimpleReflect.FromExpr GHC.Bool.Bool)
10:46:26 <lambdabot> arising from a us...
10:46:27 <elliott> > ap (&&) f True
10:46:28 <lambdabot> No instance for (SimpleReflect.FromExpr GHC.Bool.Bool)
10:46:28 <lambdabot> arising from a us...
10:46:31 <elliott> ffffff
10:46:38 <elliott> > ap g f True
10:46:39 <lambdabot> Ambiguous type variable `a' in the constraints:
10:46:39 <lambdabot> `GHC.Show.Show a'
10:46:39 <lambdabot> a...
10:46:42 <elliott> > ap g f True :: Expr
10:46:42 <lambdabot> Ambiguous type variable `a' in the constraints:
10:46:43 <lambdabot> `SimpleReflect.FromExpr ...
10:46:45 <elliott> OH CMON
10:46:55 <elliott> > ap (&&) not True
10:46:55 <elliott> oh
10:46:56 <lambdabot> False
10:46:56 <elliott> right
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:47:56 * oerjan whistles innocently
10:48:01 <elliott> (a -> b -> c) -> (d -> a) -> f b -> d -> f c
10:48:11 <elliott> is that possible?
10:48:14 <elliott> dunno
10:48:24 <elliott> wait no
10:48:25 <elliott> that makes no sense :)
10:52:31 -!- esowiki has joined.
10:52:44 -!- glogbot has joined.
10:52:45 <elliott> <-- im a bit udm
10:53:03 <FireFly> Oh, hey there oerjan
10:53:11 <oerjan> long time no swat
10:53:26 <FireFly> Indeed
10:54:19 <elliott> IOJOIJ IOJOI
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:28 <oerjan> a household type
10:55:34 <coppro> definitely
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:55:50 <lambdabot> ap (ap . (f .) . g) h
10:55:52 <elliott> coppro: grr at M
10:55:53 <elliott> make that M an A
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 <elliott> :t (.)
10:56:05 <lambdabot> forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
10:56:09 <elliott> good
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> against inferred type `Bool'
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:57:59 <elliott> :t (.)
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 <elliott> :t flip (>>>)
10:58:04 <lambdabot> Couldn't match expected type `f (Bool -> Bool) -> b'
10:58:04 <lambdabot> against inferred type `Bool'
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> against inferred type `Bool'
10:58:17 <lambdabot> In the second argument of `(.)', namely `null'
10:58:27 <Deewiant> elliott: Nope
10:58:33 <coppro> :t ap . (f .) . g
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 <coppro> :t (<*>) . (f .) . g
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 <coppro> :t (<*> (f .)) . g
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:13 <elliott> Deewiant: now you do
10:59:15 <coppro> :t (<*> (f .) . g)
10:59:15 <elliott> :t (<<<)
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
10:59:30 <coppro> wtf
10:59:46 <coppro> oh
11:00:02 <coppro> :t (<$>) . ((&&) .) . null <$> null
11:00:03 <lambdabot> Couldn't match expected type `a -> Bool'
11:00:03 <lambdabot> against inferred type `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> against inferred type `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> against inferred type `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:00:50 <lambdabot> Expected type: [a] -> f Bool
11:00:50 <lambdabot> Inferred type: [a] -> Bool
11:01:20 <coppro> k I'm too tired
11:01:29 <coppro> so I shall do the logical thing
11:01:30 <coppro> and proceed
11:01:35 <coppro> ap (ap . (f .) . g) h
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:01:51 <lambdabot> b)
11:02:01 <coppro> :t (<*>) ((<*>) . ((&&) .) . null) null
11:02:01 <lambdabot> Couldn't match expected type `f Bool' against inferred type `Bool'
11:02:01 <lambdabot> Expected type: [a] -> f Bool
11:02:01 <lambdabot> Inferred type: [a] -> 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:17 <lambdabot> Expected type: [a1] -> f a
11:02:17 <lambdabot> Inferred type: [a1] -> 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 <lambdabot> m1) => m1 (m b)
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:02:54 <coppro> well f you too
11:03:17 <coppro> elliott: on a countable set you can just define it as sequence
11:03:37 <coppro> given an ordering
11:04:00 <elliott> coppro: no shit sherlock
11:04:13 <coppro> *ordering with a least element
11:04:36 <coppro> :t (&&) .
11:04:36 <lambdabot> parse error (possibly incorrect indentation)
11:04:41 <coppro> :t ((&&) .)
11:04:41 <lambdabot> forall (f :: * -> *). (Functor f) => f Bool -> f (Bool -> Bool)
11:05:10 <coppro> :t ((&&) .) . null
11:05:10 <lambdabot> Couldn't match expected type `f Bool' against inferred type `Bool'
11:05:10 <lambdabot> Expected type: [a] -> f Bool
11:05:10 <lambdabot> Inferred type: [a] -> Bool
11:05:41 <coppro> :t ((&&) .) . g
11:05:41 <lambdabot> forall (f :: * -> *) (f1 :: * -> *). (Functor f, SimpleReflect.FromExpr (f1 (f Bool)), Functor f1) => f1 (f (Bool -> Bool))
11:05:52 <elliott> lern to ?
11:05:55 <coppro> :t ((&&) .) . ?g
11:05:55 <lambdabot> forall (f :: * -> *) (f1 :: * -> *). (Functor f, ?g::f1 (f Bool), Functor f1) => f1 (f (Bool -> Bool))
11:06:13 <coppro> herp
11:06:19 <coppro> i am le tired
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:05 <lambdabot> forall a. [a] -> [a] -> Bool
11:07:09 <coppro> I AM VICTORIUS
11:07:20 <elliott> can't spell "victorious" though
11:07:22 <oerjan> elliott: mathematically, also functor
11:07:25 <elliott> oerjan: indeed :D
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:07:49 <elliott> or maybe evenc
11:07:51 <elliott> even
11:08:05 <elliott> class Functor cat f a b where fmap :: cat a b -> f a -> f b
11:08:05 <elliott> :P
11:08:12 <elliott> (for things like Set/Map)
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:08:51 <coppro> k
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:16 <coppro> k ima bed now
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:09:43 <elliott> oerjan: oh cool
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:10:10 <elliott> oerjan: THE CLEAR CHOICE
11:12:16 <oerjan> that FD looks screwy
11:12:28 <elliott> oerjan: yeah it is >_>
11:12:35 <elliott> but when you get to that many.........
11:12:38 <elliott> params i mean
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:12:57 <oerjan> wut
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:11 <elliott> oerjan: um no
11:14:15 <coppro> no, Set is retarded
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:14:53 <elliott> so what
11:15:03 <oerjan> elliott: you cannot even get the _ordinary_ Functor as a special case of this
11:15:10 <elliott> oerjan: um why not
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:15:52 <oerjan> oh hum
11:16:01 <elliott> it's called FlexibleInstances
11:16:02 <elliott> :P
11:16:02 <oerjan> good grief
11:16:05 <elliott> what :D
11:16:12 <oerjan> ok maybe it does work
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:38 <elliott> indeed
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:58 <coppro> elliott: yes
11:16:59 <oerjan> f -> bat cat would be reasonable, at least
11:17:02 <coppro> flip Monad ftw
11:17:05 <elliott> coppro: see agda
11:17:10 <elliott> oerjan: bat cat :D
11:17:20 <coppro> elliott: no I will not settl for anythnig less than hasklle with these features
11:17:30 <coppro> laos fuck typing
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:19:51 <elliott> gender role the fuck up
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:22:07 <itidus20> ^roasted wild boar
11:23:27 <itidus20> and a pint of guinness
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:25:58 <oerjan> O_O
11:26:08 <oerjan> Sgeo: no wonder your mind is confused
11:26:22 <oklopol> praise jesus
11:26:36 <itidus20> C.S.Lewis was friends with Tolkien
11:26:39 <elliott> Sgeo: lmao
11:26:47 <elliott> im laughing irl
11:26:49 <elliott> actually
11:26:51 <elliott> i really am
11:26:59 <oerjan> Sgeo: so, which one was on that famous expedition with clark?
11:27:14 <itidus20> Jerry Lewis
11:27:23 <coppro> itidus20: I want a conch
11:27:24 <itidus20> Jerry-Lee Lewis?
11:27:55 <itidus20> ok ok i don't know
11:29:19 <oerjan> elliott: imagine if alice in wonderland was written like the narnia books
11:29:29 <elliott> oerjan: or vice versa
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:15 <itidus20> but it all comes to nothing
12:08:26 <itidus20> individual mortality supercedes all else
12:09:09 <coppro> btw
12:09:16 <coppro> listening to the entire music to lotr
12:09:18 <coppro> is awesome
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:19:27 <itidus20> sorry guys im off topic
12:31:45 <coppro> what is the topic
12:31:54 <coppro> oh wait
12:31:58 <coppro> it's apparently about turbo pascal
12:32:02 <coppro> let's change that
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:32:37 <coppro> argh
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.
12:33:47 <coppro> there we go
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:55:50 <quintopia> CLRS
13:56:02 <quintopia> i like it, you should too
13:56:41 <Sgeo> Introduction to Algorithms?
13:56:53 <quintopia> yes
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:14 * Sgeo wants ebooks
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:05 <itidus20> good point though
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:20:40 <elliott> even real cpus
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:23:53 <elliott> Sgeo: ur on mc
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:32 <elliott> oh
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:15 <quintopia> heh
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:18:02 <tswett> Mutta.
15:18:33 <Sgeo> ?
15:19:08 <fizzie> Että jotta koska kun, jos vaikka kuin.
15:19:29 <tswett> Koska, jos, vaikka.
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:20:59 <tswett> I see.
15:21:14 <tswett> Kahtoin mulla toska.
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:07 <Taneb> hello
15:57:14 <Taneb> I'm researching my family tree
15:57:48 <lament> i'm your father
15:58:54 <tswett> I'm lament's son.
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:42 <itidus20> hmm
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:25 <elliott> so fancy
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:17 <itidus20> do you recognize the games?
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:23:40 <sebbu> Rswsw
17:25:34 <elliott> jodas
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:39 <Taneb> Doing family tree
17:59:42 <Vorpal> ah
17:59:54 <Taneb> Got it back to 1690
17:59:57 <Taneb> Trying to get further
17:59:59 <Vorpal> nice
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:18 <Taneb> Hello!
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:21 <itidus20> :-s
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:28:02 <oerjan> *mayor
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:05 <itidus20> well... lets face it
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:05 <itidus20> etc
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:25 <oerjan> afk
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:43:15 <itidus20> repetition
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:46:49 <itidus20> (.. just barelu ..)
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:50:30 <itidus20> lots of bass
19:50:50 <itidus20> oh.. i know what it is
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:34 <itidus20> i once did a toy language
19:52:47 <itidus20> pretty shitty
19:52:56 <itidus20> it was an experiment in implementation skills
19:55:22 <itidus20> but it still means well
19:55:46 <elliott> * oerjan waits for elliott to snatch that name
19:55:47 <elliott> yes
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:20 <elliott> :)
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:58:45 <elliott> ?src Monoid
19:58:45 <lambdabot> class Monoid a where
19:58:45 <lambdabot> mempty :: a
19:58:45 <lambdabot> mappend :: a -> a -> a
19:58:45 <lambdabot> mconcat :: [a] -> a
19:58:48 <elliott> INCOMPREHENSIBLE
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:00:25 <lament> fax's big tits?
20:00:27 <lament> oh
20:01:14 <itidus20> my thoughts have simple goals
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:04 <oerjan> to what
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:31 <monqy> you can do it
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:02 <elliott> well ok it si but.
20:05:04 <elliott> it feels like cheating
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:17 <elliott> e
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:26 <elliott> [asterisk]possible
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:05 <elliott> oerjan: so...
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:08:39 <monqy> or
20:08:41 <monqy> fun-equivalents
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:32 <Taneb> But it's there!
20:13:37 <Taneb> In your hands!
20:13:41 <oerjan> apparently not. oh.
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:14:50 <elliott> oerjan: BUT WH;Y CANT
20:15:08 <oerjan> hey norway is supposedly all warm and fuzzy this week. also, filthy rich.
20:15:20 <Taneb> Oh, Norway
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:53 <Taneb> Stupid Italy.
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:07 <oerjan> also, afk
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:17 <itidus20> :o
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:37 <elliott> god dammit hackego
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:21 <itidus20> etc
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:19:36 <itidus20> it is a nice way to exist
20:19:57 <itidus20> it won't last forever.. etc
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:27 <lament> no
20:21:41 <lament> it's not related
20:21:44 <lament> you're just boring
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:29 <elliott> likewise
20:22:32 <lament> you're probably the main reason why i'm not in this channel often
20:22:41 <elliott> cool
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:32 <Taneb> Not too far
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 <Lymee> @hoogle IO a -> a
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:03:59 <Lymee> Yep! ^_^
21:04:47 <elliott> Lymee: STOP RIGHT THE;RE
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:18:26 <elliott> oh no, an ox
21:18:35 <monqy> oh no
21:20:31 <OxA5EA> howdy
21:21:06 <oerjan> > OxA5EA
21:21:07 <lambdabot> Not in scope: data constructor `OxA5EA'
21:21:12 <oerjan> > 0xA5EA
21:21:13 <lambdabot> 42474
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 <fizzie> @hoogle a -> b
21:23:51 <lambdabot> Unsafe.Coerce unsafeCoerce :: a -> b
21:23:51 <lambdabot> Prelude ($) :: (a -> b) -> 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:25:03 <elliott> mark your calenders
21:25:09 <elliott> [asterisk]calendars
21:30:12 <Lymee> > printStrLn $ unsafeCoerce 0
21:30:13 <lambdabot> Not in scope: `printStrLn'Not in scope: `unsafeCoerce'
21:30:20 <Lymee> So.
21:30:22 <Lymee> What would that do?
21:30:47 <elliott> Lymee: Depends what printStrLn is.
21:30:52 <Lymee> put*
21:30:57 <elliott> Depends on the GHC version.
21:31:05 <elliott> And OS, architecture, ...
21:31:12 <Lymee> Yay! ^_^
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 <oerjan> hm...
21:31:52 <Lymee> A lot more dangerous than unsafePerformIO?
21:31:55 <elliott> Nothing coerces to [] too
21:31:57 <elliott> oh wait
21:31:59 <elliott> oerjan: egobot isn't here
21:32:02 <oerjan> !haskell print $ Unsafe.Coerce.unsafeCoerce 0
21:32:05 <EgoBot> ​()
21:32:07 <oerjan> oops
21:32:47 <oerjan> !haskell print (Unsafe.Coerce.unsafeCoerce 0 :: String)
21:32:50 <EgoBot> ​""
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:32:57 <lambdabot> In the expression: y y
21:32:59 <Lymee> :(
21:33:14 <elliott> Lymee: needs more newtypes
21:33:16 <elliott> oerjan: oh wait it is here
21:33:17 <elliott> heh
21:33:19 <oerjan> Lymee: unsafeCoerce can easily segfault if you're unlucky
21:33:21 <elliott> just not hackego
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:33:50 <lambdabot> In the expression: f f
21:33:53 <Lymee> :(
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:36:06 <elliott> :t \_ -> undefined
21:36:06 <lambdabot> forall t a. t -> a
21:36:09 <elliott> yes.
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:30 <elliott> :t fix id :: a -> b
21:40:30 <lambdabot> forall a b. a -> b
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:15 <elliott> anyway
21:41:18 <elliott> the infinite type problem? not really
21:41:22 <elliott> just newtype it
21:41:28 <elliott> that doesn't involve any functions or anything
21:41:30 <elliott> or explicit recursion
21:41:40 <oerjan> elliott: that's not "just lambdas"
21:41:56 <elliott> oerjan: Lymee _never said_ just lambdas
21:42:01 <elliott> you did
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:47 <elliott> oerjan: well ok
21:42:52 <elliott> i was trying to answer Lymee
21:43:04 <oerjan> EgoBot can.
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:12 <elliott> [(),Segmentation fault
21:46:12 <elliott> also works
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:47:00 <EgoBot> 4607182418800017408
21:47:01 <fizzie> Wery Useful.
21:47:08 <elliott> fizzie: Just... just stop
21:48:37 <Lymee> !haskell print (Unsafe.Coerce.unsafeCoerce 1.0 :: Bool)
21:48:41 <EgoBot> False
21:48:44 <Lymee> :(
21:49:17 <Lymee> !haskell print (Unsafe.Coerce.unsafeCoerce 42 :: Float)
21:49:20 <EgoBot> 5.9e-44
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:21 <elliott> scared of the work ...)
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:29 <elliott> oh my god
21:49:31 <elliott> the titles are getting even better
21:49:47 <Lymee> !haskell print (Unsafe.Coerce.unsafeCoerce 0 :: Float)
21:49:50 <EgoBot> 0.0
21:49:53 <Lymee> !haskell print (Unsafe.Coerce.unsafeCoerce 1 :: Float)
21:49:57 <EgoBot> 1.0e-45
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:27 <Lymee> :<
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:05 <lambdabot> Not in scope: `unsafeCoerce'
21:52:08 <elliott> hmm...
21:52:10 <elliott> ugh
21:52:20 <Lymee> !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce ((Unsafe.Coerce.unsafeCoerce x :: Int)+1) :: Bool) [True, False]
21:52:23 <EgoBot> ​[False,False]
21:52:27 <Lymee> !haskell print $ take 20 $ map (\x -> Unsafe.Coerce.unsafeCoerce ((Unsafe.Coerce.unsafeCoerce x :: Int)) :: Bool) [True, False]
21:52:30 <EgoBot> ​[True,False]
21:52:33 <Lymee> nyan
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:08:37 <elliott> oerjan: >:D
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:12:48 <lambdabot> (.) . (.)
22:13:54 <oerjan> elliott: also, you're familiar with (iirc) conal elliott's result etc. notation?
22:14:19 <elliott> oerjan: indeed
22:14:28 -!- GreaseMonkey has quit (Quit: The Other Game).
22:14:30 <elliott> well, maybe not familiar
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:15 <elliott> it is, right?
23:08:30 <elliott> I know dbfi has seven deep loops, or something
23:08:31 <elliott> or was it five
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:17 <elliott> oerjan: orly
23:11:29 <elliott> yeah i know it's not tc without nested loops
23:11:31 <elliott> i just dunno the proof
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:10 <elliott> wow it's ALL IN UPPERCASE
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:15 <monqy> fileupyours
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:16:59 <elliott> thx
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:18:57 <Patashu> yup
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:46:17 * oerjan calls the PETA
23:59:08 -!- lament has joined.
←2011-06 2011-07 2011-08→ ↑2011 ↑all