←2012-12-11 2012-12-12 2012-12-13→ ↑2012 ↑all
00:04:27 <zzo38> Somewhere I read about the algorithm used by PHP natsort, but it isn't actually very good, so I have made a new one which is based on that but with many improvements, and now it need a table to keep track of what character means: spaces, punctuation, ignored, uppercase, lowercase, digits, roman numerals, radix point, and a few other things. This table is set up by the user.
00:05:10 <GreyKnight> @u@
00:05:52 <zzo38> For example, "Chapter VIII" will be sorted before "Chapter IX"
00:07:10 <zzo38> And with the ordinary sorting it will do it wrong.
00:08:19 -!- fungot has quit (Ping timeout: 246 seconds).
00:10:25 -!- FireFly has quit (Ping timeout: 246 seconds).
00:12:02 <zzo38> Each entry in the table also keep track of the position in the alphabet or value of digits (it doesn't care about the base they are in; any base is acceptable with no change to the algorithm); for example, if you want to use some character set with accented letters, even though their number differs but they want to be sort otherwise, it can be done.
00:12:23 <zzo38> But, whatever you want it to do you have to fill in the table with what you are using; it won't automatically know about accented letters and so on.
00:13:21 <zzo38> Since such things also depend on the character set (such as CP437, Latin-1, Unicode, etc) and even on the language; in some cases the letter with dot over is considered a different letter in the alphabet.
00:14:15 -!- GreyKnight has quit (Quit: ('')).
00:15:31 <kmc> USA has formally recognized the Syrian National Coalition
00:16:20 <zzo38> What is that?
00:17:17 <Bike> hoo boy
00:18:09 <Bike> i haven't been keeping up with syria in a while, have the rebels held aleppo or w/e
00:18:50 <zzo38> I think byte 254 and 255 should be assigned in UTF-8 (Wikipedia doesn't mention what they are), even if not usable with Unicode. Since, it is possible even though is invalid Unicode they are still meaningful numbers.
00:19:49 -!- monqy has joined.
00:21:32 <kmc> basically no
00:21:32 <kmc> http://en.wikipedia.org/wiki/File:Syrian_Civil_War.svg
00:21:37 -!- copumpkin has quit (Ping timeout: 252 seconds).
00:21:50 <kmc> here green = al-Assad government, brown = opposition or Kurdish forces
00:21:55 <kmc> blue = "Ongoing conflict/unclear situation"
00:22:08 -!- copumpkin has joined.
00:22:10 -!- FireFly has joined.
00:22:43 <Bike> is it really a good idea to lump the kurds and fsa together
00:22:52 <kmc> probably not
00:23:08 <zzo38> So how does USA fit into this somehow?
00:23:08 <kmc> but it might be hard for observers to distinguish them
00:23:18 <kmc> beyond just "the people that the al-Assad forces are shooting at"
00:23:28 <zzo38> If you don't want to lump together, if you know the proper data is it possible for you to correct the map with the correct colors?
00:23:32 <Bike> zzo38: the US is subtly definitely not funneling in weapons through turkey, etc
00:24:01 <Bike> oh, and during the election romney wanted to nuke aleppo or whatever.
00:24:06 <kmc> did he really
00:24:13 <kmc> i don't remember t hat
00:24:13 <Bike> nah but you know
00:24:33 <Bike> america world police etc, there was lots of stuff about obama not being mean enough to assad or whatever
00:25:07 <zzo38> USA should stop damaging things that doesn't belong to them.
00:25:43 <Bike> i should really get to paying attention again, it was so surreal to watch a guy with a cheap rocket launcher blow up a tank in practically real time
00:25:49 <elliott> a statement we can all agree on
00:26:13 <Gregor> <kmc> blue = "Ongoing conflict/unclear situation" // I read this as "Ongoing conflict/nuclear situation"
00:26:18 <Gregor> I was like FFFFFUUUUUUUUUUUUUU
00:26:23 <Bike> nah, the thing there is gas
00:32:13 -!- sebbu has quit (Ping timeout: 245 seconds).
00:33:29 <kmc> yeah :(
00:33:42 <kmc> haven't come into play yet, thankfully
00:35:03 * kmc contemplates whether he wants to debate the tricky line between neo-colonialism and humanitarian intervention with zzo38
00:35:24 <Bike> i wouldn't want to debate that with anybody, man
00:35:54 <elliott> kmc: can you think of someone better to debate it with than zzo
00:35:58 <kmc> yes
00:36:00 <kmc> itidus
00:36:06 <elliott> ok agreed but
00:36:07 <elliott> someone who actually exists
00:36:21 <elliott> apparently itidus21 is on freenode right now
00:36:27 <elliott> maybe you should /msg him about it
00:36:30 <kmc> heh
00:36:38 <Bike> I thought that square thing said that there were only eight people on #esoteric.
00:37:15 <elliott> do you see itidus21 in the channel
00:37:42 <kmc> is there a sign on my house that says DEAD ITIDUS21 STORAGE?
00:38:04 <Bike> No, but if I don't exist, maybe people who do exist are invisible to me.
00:38:48 <shachaf> kmc: Did you know Jane St. apparently uses floating points for prices?
00:38:56 <kmc> that is common in finance :(
00:39:22 <shachaf> Apparently they've thought about it carefully and can defend it, or something.
00:39:24 <shachaf> It is?
00:39:26 <kmc> yes
00:39:35 <shachaf> I would've thought finance would be the place where it'd be uncommon.
00:39:43 <elliott> should just make currency actually be floating point
00:40:01 <shachaf> Good idea.
00:40:08 <kmc> the banks that are actually moving your money around use exact arithmetic or should anyway
00:40:12 <Bike> maybe when you deal with millions of dollars relative error is more the thing
00:40:22 <kmc> but the hedge funds that are just deciding what to trade can afford to be a bit sloppy
00:40:30 <kmc> of course they get sloppy in many other ways...
00:40:48 <elliott> finance scares me
00:41:02 <kmc> anyway I think the unit price of basically every traded instrument will fit exactly within single precision floating point
00:41:05 <kmc> certainly double precision
00:41:05 <shachaf> Fine, ants. Finance.
00:41:11 <kmc> where you get into trouble would be calculations on that
00:41:22 <kmc> but if you are just trying to quickly get a signal on whether to trade or not
00:41:33 <kmc> the actual price at which you trade will probably be different anyway
00:41:34 <kmc> so it seems ok
00:42:47 <coppro> hmm
00:42:57 <coppro> it occurs to me that the 'e' in 'bourgeois' is rather bourgeois
00:42:59 <shachaf> I suppose that's true.
00:43:36 <kmc> shachaf: nelhage pointed out that *most* credit card numbers will fit in a JavaScript number
00:43:40 <kmc> but a few do not
00:44:13 <shachaf> > 10^16
00:44:15 <lambdabot> 10000000000000000
00:44:50 <shachaf> > 10^16 - 2^52
00:44:51 <lambdabot> 5496400372629504
00:45:05 <shachaf> Hmm, these numbers are meaningless and I probably got it off by an order of magnitude anyway.
00:46:26 <Fiora> I remember hearing about bugs involving, like, phone numbers stored as numbers
00:46:29 <Fiora> with area codes that start with 0
00:46:50 <Gregor> loooool *sobs quietly to self*
00:47:13 <Gregor> And of course, due to people serializing august as 08, we can do this:
00:47:14 <Gregor> >> 08
00:47:23 <Gregor> Err, there's no JS bot here!
00:47:25 <shachaf> > 08
00:47:27 <lambdabot> 8
00:47:40 <Gregor> Yeah, that. But JS.
00:47:44 <shachaf> > 0o08
00:47:46 <lambdabot> Could not deduce (GHC.Num.Num (a0 -> t))
00:47:47 <lambdabot> arising from the ambiguity chec...
00:48:12 <shachaf> oerjan: zomg the 0o08 trick is broken!
00:48:16 <shachaf> Let's see if he logreads that.
00:49:26 <Bike> what's the o supposed to denote there
00:49:55 <zzo38> Perhaps telephone numbers could be stored using BCD it doesn't make sense to store them as binary numbers.
00:51:06 <Fiora> the problem is the leading zeroes, I think
00:51:17 <FreeFull> > 2^100000000
00:51:22 <lambdabot> mueval: ExitFailure 1
00:51:23 <lambdabot> mueval: Prelude.undefined
00:51:26 <zzo38> Therefore the extra six values can be used for terminator and extension and * and #
00:51:55 <FreeFull> Phone numbers should be stored as strings
00:52:01 <FreeFull> Especially since you can have stuff like + in them
00:52:08 <zzo38> So that if your telephone number is 0123450 then you might have 0123450FFFFFFF
00:52:50 <zzo38> It is not only for telephone numbers, of course.
00:52:52 <shachaf> what if my phone number is 0123450FFFFFFF
00:53:54 <zzo38> If you are using the numbers on most telephones with "DEF" on the number 3 then you will push number 3, for example.
00:54:32 <shachaf> http://ocharles.org.uk/blog/posts/2012-12-11-24-day-of-hackage-ekg.html
00:54:38 <shachaf> Pretty nifty.
00:54:38 <elliott> kmc: you should upgrade the esolang wiki for me, thanks
00:54:43 <kmc> phone numbers should be stored as XML documents along with a schema certifying that they conform to the relevant national dialing specification
00:54:57 <shachaf> elliott: I'll "upgrade" it for you, if you know what I mean.
00:55:06 <kmc> shachaf: cool!
00:55:13 <zzo38> Telephones already have a country code though.
00:56:17 <shachaf> The only country code that matters is +1, zzo38.
00:56:55 <coppro> ^
00:57:49 <zzo38> It depends whether, in your database, you need to have telephones of other countries, or not. Since depending what you are doing, it might or might not be necessary.
00:58:35 <elliott> Mosh: You have 2 detached Mosh sessions on this server, with PIDs:
00:58:42 <elliott> kmc: Am I meant to kill these manually or something?
00:58:45 <kmc> yes
00:58:49 <kmc> if they are truly orphaned
00:59:11 <kmc> they might just correspond to clients that have gone out to lunch but will return
00:59:26 <shachaf> Mmm, lunch.
00:59:43 <elliott> kmc: this UX upsets me and I blame you personally :(
01:00:20 <shachaf> Uxer experience
01:01:03 <kmc> elliott: what would you rather it do?
01:01:22 <elliott> I have no idea.
01:01:32 <elliott> Something that doesn't involve me typing "kill <middle click> <middle click>".
01:01:32 <shachaf> kmc: What is elliott paying you for?
01:02:15 <ion> Middle clicking isn’t typing.
01:02:32 <kmc> elliott: maybe "mosh -wipe"
01:02:51 <kmc> you could join #mosh and ask keithw
01:03:09 <shachaf> ion: No, elliott really types "kill <middle click> <middle click>". It's a zsh feature; you wouldn't've heard about it.
01:03:35 <elliott> kmc: That's a lot of keystrokes when I could just bother you
01:03:50 -!- ais523 has quit.
01:04:08 <shachaf> monqy: Please tell elliott about etiquit.
01:05:08 <monqy> ???
01:11:30 <shachaf> NTFS has transactions?
01:17:55 <ion> shachaf: Ah
01:18:15 <ion> butt -wipe
01:23:03 <shachaf> kmc: zomg
01:23:14 <shachaf> You know how dpkg gets really slow at "Reading database..." after a while?
01:24:36 <shachaf> Apparently you can dpkg --clear-avail (and then sync-available to rebuild the avail file thing.
01:24:39 <shachaf> And then it's fast.
01:34:41 -!- Gregor has quit (Ping timeout: 244 seconds).
01:34:48 -!- Gregor has joined.
01:35:12 -!- FireFly has quit (Ping timeout: 244 seconds).
01:36:59 -!- FireFly has joined.
01:41:23 <kmc> woah whaaaaaat
01:41:32 <kmc> good to know
01:44:26 <zzo38> Is something like (*++x++) supposed to be OK in C? Probably not.
01:45:52 <shachaf> What would it mean, even if it was?
01:45:57 <shachaf> Oh, I see.
01:45:59 <fizzie> ++x++ is certainly not.
01:46:16 <shachaf> fizzie: I think that means (*++x)++
01:46:25 <shachaf> Maybe it is.
01:46:46 <fizzie> Oh, I guess it indeed does parse that way around.
01:46:58 <fizzie> No, it can't.
01:47:12 <fizzie> Because *x++ is clearly *(x++); cf. the usual *dst++ = *src++ loop.
01:47:25 <fizzie> So *++x++ can't bind (*++x)++.
01:47:47 <shachaf> ++*++x
01:47:57 <fizzie> That should be, yes.
01:49:13 <fizzie> But the order of postfix-expression and unary-expression in the grammar means ++x++ parses as ++(x++) and that's just not right.
01:50:03 <fizzie> Incidentally, some have proposed * should've been a postfix operator too; and also a postfix notation in the declarator syntax.
01:50:46 <fizzie> Because while it's not obvious that int *x[10] is an array of ten pointers (instead of a pointer to an array of ten), it would've been had that been written int x[10]*.
01:51:12 <fizzie> Also you wouldn't need a->b for (*a).b because that would be written just a*.b and that's it.
01:51:31 <shachaf> a* means zero-or-more as, though.
01:52:04 <Arc_Koen> fizzie: "int *x[10]" can also be written "int* x[10]"
01:52:13 <fizzie> Arc_Koen: That's just confusing.
01:52:18 <zzo38> Or you can write "int*x[10]"
01:52:19 <Arc_Koen> in which case it's pretty clear it's an array of pointers to int
01:52:19 <Lumpio-> I *should* be like that but it's not
01:52:41 <zzo38> Or some people will put both spaces.
01:52:43 <fizzie> Arc_Koen: Then someone goes makes it int* x[10], y[10] and then nobody's happy.
01:52:53 <fizzie> "Sethi [Sethi 81] observed that many of the nested declarations and expressions would become simpler if the indirection operator had been taken as a postfix operator instead of prefix, but by then it was too late to change." (Dennis M. Ritchie, The Development of the C Language.)
01:52:55 <Arc_Koen> hmm
01:53:10 <fizzie> If it was "too late" in 1981, though, it's far too late *now*.
01:53:11 <Lumpio-> The whole "you can mix pointers and non-pointers in the same declaration" thing is just weird
01:53:15 <Arc_Koen> would that mean x[10] is an array of pointers but y[10] isn't?
01:53:18 <zzo38> For making it less confused I will omit both spaces to make it clearly what I meant.
01:53:20 <fizzie> Arc_Koen: Yes.
01:53:24 <Arc_Koen> ok that's weird
01:53:26 <Lumpio-> Although if it wasn't like that array notation wouldn't make sense
01:53:36 <Lumpio-> Or you'd have to do like "int[10] x"
01:53:39 <Arc_Koen> the way I looked at it I thought "int" was a type and "int*" was another type
01:53:46 <Lumpio-> They are
01:53:50 <elliott> fizzie: clearly make - dereference
01:53:52 <elliott> and > struct ref
01:53:52 <Lumpio-> But you can mix types in a declaration
01:53:55 <Bike> c syntax is just confusing.
01:53:55 <elliott> so a->b is a->b
01:54:04 <Lumpio-> Bike: Most of it is pretty straightforward
01:54:10 <fizzie> "Declaration reflects use" and all that.
01:54:20 <fizzie> "int *x" means *x gives you an int. And all that fluff.
01:54:29 <elliott> doesn't int x[10] violate declaration mirrors use
01:54:31 <elliott> since x[10] is not a thing
01:54:36 <Lumpio-> yes it is ¬u¬
01:54:43 <fizzie> The type of it is int.
01:54:51 <elliott> Lumpio-: well it's UB to actually evalutae it
01:54:54 <Bike> yes "straightforward" is how i'd characterize this conversation
01:54:54 <elliott> tho (x+10) is ok
01:54:55 <elliott> *evaluate
01:54:59 <Lumpio-> Still a thing!
01:55:13 <elliott> well it's not use if you can't actually use it
01:55:17 <fizzie> You can use it.
01:55:18 <Lumpio-> And it's as close as you can get to looking like the use and still having the length in it
01:55:18 <elliott> it should clearly be int array[last_valid_index];
01:55:19 <fizzie> In a sizeof.
01:55:30 <elliott> zero-length arrays happily cannot be used, so you don't need to declare them
01:55:43 <Lumpio-> Is a zero-length array even valid
01:55:52 <Lumpio-> As it is
01:55:53 <fizzie> Not in standard C.
01:55:56 <Arc_Koen> only one way to know that
01:56:03 <Lumpio-> Arc_Koen: Read the standard?
01:56:10 <Fiora> it's not standard C but it's a gcc extension I think
01:56:11 <Arc_Koen> ok that makes two ways
01:56:15 <fizzie> GCC has it as an extension, yes.
01:56:16 <Lumpio-> There's another way?
01:56:16 <zzo38> The reason I won't write "int *x" is because if you write something like "int *x=y" that means you are initializing the value of x not *x so if you write "int*x=y" then it is more clearly.
01:56:19 <Fiora> http://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
01:56:19 <Gregor> Most implementations allow zero-length arrays at least at the end of structures.
01:56:35 <fizzie> It's just the poor man's flexible array member.
01:56:41 <fizzie> (At least at the end of a structure.)
01:56:42 <shachaf> zzo38: What if you write int (*x)(int) = y; ?
01:56:48 <zzo38> Zero-length arrays should be allowed anywhere in a structure or union.
01:57:02 <pikhq> zzo38: How would that make sense?
01:57:06 <Lumpio-> I always thought the whole array type thing was a bit... redundant
01:57:15 <pikhq> Unless you can't place anything in those arrays.
01:57:18 <zzo38> pikhq: How does what make sense?
01:57:26 <pikhq> Mid-struct zero length array.
01:57:43 <shachaf> pikhq: It would just stay zero-length.
01:57:45 <Lumpio-> I mean, it's just a pointer. The only point I can see in using arrays is 1) stack allocation (this could just use a "stack allocate this pointer" syntax) and 2) sizeof() for static data
01:57:50 <zzo38> Well, it should be treated like any other array.
01:57:55 <pikhq> shachaf: That's all I can see making sense.
01:58:13 <zzo38> Of course you would usually only put at the end, but to be consistent would make sense to allow anywhere meaning the same things.
01:58:25 <fizzie> Lumpio-: Then you should be writing in B, perhaps, because in B "int x[10]" in fact does allocate ten ints and make x a pointer to the first.
01:58:32 <zzo38> I think C99 flexible arrays are not sensible.
01:58:36 <Lumpio-> neat
01:58:38 <fizzie> Lumpio-: You can even x = y to reassign the pointer.
01:58:47 <shachaf> zzo38: struct { int x; int y[0]; int z; } would mean that y and z have the same address.
02:01:26 <zzo38> shachaf: Yes it would. Like I said usually is not useful. However it can still be used in case you want it to have the same address, perhaps when being used with macros.
02:01:56 <zzo38> And in any case you can still read the size of the element of the array, even if there isn't any; this might also be used in a macro to identify types at compile-time.
02:02:36 <fizzie> shachaf: I do have a hard time to justify the syntax for a function that returns a pointer to a function, because the return type's argument list ends up so far. (I mean, int (*f(void))(float); declares f as a no-argument function that returns a pointer to a function returning int, taking float.)
02:03:45 <Arc_Koen> that would be so easy in ocaml
02:03:54 <Arc_Koen> well except you don't really have pointer
02:04:34 <Bike> that would be so easy in ocaml except it's impossible :P
02:04:53 <pikhq> shachaf: I'm assuming that int y[0] would still take space, actually. :P
02:04:53 <elliott> haskell has pointers : )
02:04:59 <pikhq> shachaf: A char's worth of course.
02:05:18 <fizzie> And if you make f return a pointer to a function that takes a float, then returns a pointer to a function that takes a double and returns an int, it's int (*(f(void))(float))(double) and if you add a few more steps it's no longer just doable without some function pointer typedefs.
02:05:37 <fizzie> Uh, that's missing a * in front of f.
02:05:43 <fizzie> (It was already too much.)
02:06:23 <fizzie> cdecl> explain int (*(*f(void))(float))(double);
02:06:23 <fizzie> declare f as function (void) returning pointer to function (float) returning pointer to function (double) returning int
02:06:34 <fizzie> Fortunately there are tools. (Too bad so many cdecl's suck.)
02:07:25 <shachaf> fizzie: That type is hard to read but so is cdecl's output.
02:07:32 <shachaf> I'm not sure cdecl's output is easier.
02:08:21 <shachaf> f :: () -> Ptr ((Float) -> Ptr ((Double) -> Int))
02:08:27 <shachaf> That's not ideal either.
02:11:15 <elliott> "(Float)"
02:11:16 <zzo38> If I want a function or something else which has such a type of a function I will just use typedef
02:11:29 <zzo38> Since it makes the syntax less confusing for me.
02:11:30 <shachaf> elliott: ?
02:12:13 <pikhq> zzo38: You and everyone else.
02:12:47 <monqy> shachaf: your parenthesization
02:13:04 <monqy> (also (Double))
02:13:07 <shachaf> monqy: what about my parenthesisation
02:13:12 <shachaf> Those are one-tuples!
02:13:15 <monqy> :0
02:13:17 <shachaf> What's the problem with one-tuples?
02:13:29 <shachaf> You think my syntax will curry C functions for no reason?!
02:13:39 <shachaf> Is that what you expect, monqy?
02:13:50 <monqy> one-tuples..........................
02:14:04 <zzo38> pikhq: Yes, other people, too.
02:15:05 <pikhq> shachaf: Why shouldn't we curry C functions? :P
02:15:16 <shachaf> @quote curry
02:15:16 <lambdabot> integerToBreakfast says: = (["Cornflakes", "Strawberry jam toast", "Grapefruit", "Cup of tea and a biscuit, gotta dash", "Bacon, eggs, toast, tomato and mushroom. You deserve it", "Waffles", "
02:15:17 <lambdabot> Porridge of some description", "Orange juice and muffins", "Apples, pears, mango and kiwi", "A selection of cold meats with crisp bread", "Headache pills and water", "Leftover pizza", "Leftover
02:15:17 <lambdabot> vindaloo curry"] !!)
02:15:32 <shachaf> what!!!!!
02:15:45 <shachaf> I bet everyone wants to @forget that but no one wants to bother to get it into their IRC line.
02:15:48 <Fiora> vindaloooooo
02:17:39 <Fiora> "haskell curry" sounds like a spicy functional programming dish
02:17:59 <Phantom___Hoover> vindaloo is such bullshit
02:18:06 <Phantom___Hoover> i mean seriously, curry with potatoes
02:18:10 <shachaf> @quote Phantom___Hoover
02:18:11 <lambdabot> No quotes match.
02:18:12 <shachaf> @quote Phantom__Hoover
02:18:13 <lambdabot> No quotes match. It can only be attributed to human error.
02:18:13 <shachaf> @quote Phantom_Hoover
02:18:14 <Fiora> potatoes?
02:18:14 <lambdabot> No quotes match. I've seen penguins that can type better than that.
02:18:19 <Fiora> a vindaloo is like a type of spicy curry
02:18:23 <Fiora> you can have it with lots of things
02:18:28 <Gregor> It is delicious.
02:18:32 <Phantom___Hoover> i heard it needs to include potatoes
02:18:37 <Phantom___Hoover> otherwise it's not real vindaloo
02:18:37 <Fiora> http://en.wikipedia.org/wiki/Vindaloo
02:18:42 <Gregor> But, like all Indian curries, it is inferior to the Thai alternatives.
02:18:46 <Fiora> " Traditional vindaloos do not include potatoes"
02:18:54 <Phantom___Hoover> look i was told this by a guy in the curry society
02:18:59 <Phantom___Hoover> who do you think you are
02:19:07 <Fiora> um, just reading wikipedia? XD
02:19:27 <Phantom___Hoover> exactly
02:19:34 <Phantom___Hoover> who wrote that article
02:19:40 <pikhq> Hmm, I'm going to need to find a good Thai place around here and soon.
02:19:41 <Phantom___Hoover> probably weren't in the curry society
02:20:19 <shachaf> The curry society is a scam, Phantom___Hoover.
02:20:23 <Gregor> Mmmmmmm, Thai food. It is the best food.
02:20:34 * Fiora likes indian curries :< and japanese
02:20:38 <Phantom___Hoover> shachaf is just jealous
02:20:38 <shachaf> Hmm, "vindaloo" looks like the devil.
02:20:42 <pikhq> It both tastes well and fnarfs well.
02:20:55 * shachaf has most likely never eaten vinadloo.
02:24:45 <Gregor> Fiora: Indian curries are alright. I've never had a Japanese curry I found to be at all good. But Thai curry... Thai curry is best curry.
02:25:01 <Phantom___Hoover> Fiora, note that Gregor has no sense of smell
02:25:19 <pikhq> Gregor: I suspect anosmia restricts the flavor experience of Indian and Japanese curries.
02:25:46 <Gregor> >_>
02:25:47 <Gregor> <_<
02:25:49 <Fiora> Phantom___Hoover: wait, really? XD
02:25:50 <pikhq> IIRC they're a bit bigger on aromatic stuff.
02:25:56 <pikhq> Fiora: Yes.
02:25:57 <Gregor> But it would for Thai curry too, wouldn't it?
02:26:10 <pikhq> Gregor: Thai also uses capsaicin to great effect.
02:26:20 <pikhq> (IIRC)
02:26:28 <shachaf> Gregor is anosmic?
02:26:30 <Phantom___Hoover> Fiora, at some point it was suggested that he say 'fnarf' instead of taste but he continues to confuse us all out of sheer malice.
02:26:33 <pikhq> shachaf: Yes.
02:26:51 <shachaf> According to two people in #esoteric!
02:26:57 <Fiora> huh, interesting
02:27:11 <Gregor> Phantom___Hoover: I never used the word "taste" in this conversation.
02:27:14 <Gregor> I just said "is"
02:27:23 <Gregor> As in, Thai curry IS better than Indian curry.
02:27:29 <Phantom___Hoover> I never said you use the word taste.
02:27:31 <Phantom___Hoover> *used
02:27:35 <Bike> isn't anosmia pretty rare?
02:27:39 <shachaf> Gregor: lern2eprime
02:27:50 <Phantom___Hoover> Just that you confused us all out of sheer malice.
02:28:01 <Gregor> Bike: Total anosmia is, partial anosmia isn't, and it's not total.
02:28:04 <Bike> "I've heard that people don't usually get anosmia"
02:28:06 <Bike> Oh.
02:28:24 <Phantom___Hoover> anosmium
02:28:53 <Gregor> Modus ponies
02:29:09 <Fiora> anosmium: your sense of smell is very dense
02:29:40 <shachaf> Total ordering is rare, partial ordering isn't.
02:30:07 <Bike> mathematics in e' sounds difficult
02:32:40 -!- Phantom___Hoover has quit (Read error: Connection reset by peer).
02:33:00 <kmc> thai food does kick ass
02:33:24 <pikhq> It does.
02:33:50 <pikhq> And I need to find a good Thai place around here whilst I have reasons to go out to dinner.
02:36:36 <Fiora> thai food is evil though because I'm allergic to peanuts
02:37:51 <fizzie> It's good enough to die for, though, right?
02:38:03 <kmc> the best thai restaurant near me is ostensibly a japanese / sushi restaurant
02:38:11 <kmc> and the best szechuan restaurant near me is ostensibly a thai restaurant
02:39:07 <Fiora> I kind of, like, half-live on curry and sushi
02:39:52 <shachaf> Fiora: You only half-live?!
02:40:16 <Fiora> I am totally radioactive
02:40:38 <Fiora> I decay into Bike
02:40:48 <shachaf> Fiora = Bike?
02:41:23 <Fiora> there's a long-running gag elsewhere that I'm his genderswap
02:41:36 <Bike> Mine is a tortured existence. Stable, but missing much of my personal identity, and will to live.
02:41:39 <Bike> A corpse walking.
02:41:47 * Fiora patpatpat
02:45:04 <Fiora> (this is partially because we have like, 2 hour long conversations about jargony things like astrophysics and microchips and assembly and complexity theory that like literally nobody else there understands)
02:45:13 <pikhq> Fiora: Are you female, or is the genderswap of Bike also male? :P
02:45:32 <Fiora> yes I am female? :p
02:45:55 <pikhq> <-- ignorant
02:46:04 <Fiora> it's okay ^^
02:46:16 <shachaf> I'm female, and so's my wife!
02:47:19 <Bike> If I was better at understanding Fiora I would have made a joke about being whatever uranium decays to instead.
02:48:38 <shachaf> Bike: Sometimes uranium decays into uranium.
02:48:50 * Fiora looks up decay chains
02:49:03 <Fiora> Thorium-234 (for U-238)
02:49:10 <Fiora> not counting spontaneous fission or double beta decay
02:49:18 <Bike> Damn, I don't think I know any thorium-related jokes.
02:49:52 <Fiora> and U-235 goes to... thorium 231. so similar I guess
02:50:27 <kmc> thorizzle for rizzle
02:50:55 <Fiora> bike wields a giant hammer
02:50:56 <Fiora> thorium
02:51:23 <shachaf> Th-234 decays into Pa-234 which decays into U-234
02:51:33 <shachaf> COÏNCIDENCE?
02:51:45 <kmc> PHYSICS?
02:51:46 <Fiora> Nitya decays back into Fiora!
02:51:53 <Fiora> Or something
02:52:16 <Bike> I'm up for being in a BZ reaction with you.
02:53:28 <Fiora> is that a pickup line?
02:54:39 <Bike> Yes. We will spin around romantically making pretty colors for a while, maybe get hacked by Adamatzky, and eventually end up a boring brown-colored bromine goop.
02:57:39 <Fiora> I thought the end of the decay chain was like lead or something
02:58:35 <Bike> In addition to not being a nuclear physicist, I am also not a chemist. I'm multi-talented.
02:59:03 <shachaf> "end"
02:59:12 <shachaf> Fiora doesn't think of the future.
03:00:21 <shachaf> kmc: Are you going to run NixOS on your nonfree laptop?
03:00:23 <Bike> She only has a half-life, she's going to live fast and die... well just live slower, actually.
03:01:11 <shachaf> Do physicists have half-life crises?
03:01:52 <Fiora> shachaf: well okay there's the theoretically-possible decays that haven't been observed :<
03:01:58 <Fiora> but might happen over really long times
03:03:17 <Fiora> "observationally stable"~
03:03:41 <Bike> i'm imagining grad students staring at a block of lead to see if it decays
03:03:42 <shachaf> What does ~ mean?
03:03:51 <Bike> sing-songy tone
03:04:02 <Fiora> it's a tilde, it means, like, tilde-ness
03:04:02 <shachaf> :-(
03:04:06 <pikhq> So, Japanesey
03:04:12 <shachaf> what's tilde-ness
03:04:16 <kmc> shachaf: i might try
03:04:21 <Fiora> http://www.urbandictionary.com/define.php?term=~
03:04:37 <Bike> Are you a prep?
03:04:42 <shachaf> kmc: You should try and tell me how it goes!
03:04:50 <shachaf> What's a prep?
03:04:56 <Fiora> I don't think so...
03:05:13 <Bike> I don't know, but Fiora apparently is one.
03:05:15 <Bike> Or a literate.
03:08:05 * Fiora is reading about nuclei and isotopes again, damn you
03:08:31 <Bike> Can you make a nuclear clock reaction?
03:08:40 <Fiora> um, what's that
03:08:52 <Bike> http://en.wikipedia.org/wiki/Chemical_clock
03:08:59 <Bike> Except with something radioactive.
03:09:32 <Fiora> I think that's with nuclear resonances not decay?
03:09:50 <Bike> Whatever!
03:10:04 <Fiora> http://en.wikipedia.org/wiki/Atomic_clock
03:15:29 <kmc> shachaf: okay!
03:15:32 <kmc> also today I got a UPS
03:15:43 <kmc> and even managed to make it talk to Linux
03:15:56 <kmc> so now I can check whether the power supply at my house is 117 V or 118 V from ANYWHERE IN THE WORLD
03:18:25 <pikhq> How about the frequency?
03:18:52 <pikhq> Be nice to know if you suddenly get transported to eastern Japan.
03:19:00 <kmc> yeah
03:19:29 <kmc> it doesn't have that :/
03:19:40 <kmc> the kill-a-watt does, but does not talk to the internet without extra hardware
03:19:49 <shachaf> kmc: By the way, Cmm is a good compromise between Core and assembly, if you ever have to read GHC-generated code.
03:19:58 <kmc> okay
03:19:59 <shachaf> The assembly is usually too awkward. :-(
03:20:01 <kmc> i've read a little of it
03:20:09 <kmc> also some unregisterized fvia-C code
03:20:11 <shachaf> I didn't think of it until luite mentioned it.
03:20:33 <shachaf> Maybe LLVM would be good too. I don't know.
03:25:58 <kmc> dubious
03:26:04 <kmc> it's like assembly but there is more stuff to read
03:26:24 <kmc> you should write a GHC Haskell decompiler
03:33:28 * shachaf wonders whether there's much actual use of that.
03:36:36 <shachaf> Hmm, http://hackage.haskell.org/packages/archive/HoleyMonoid/latest/doc/html/Data-HoleyMonoid.html
03:36:45 <Sgeo|web_> elliott: monqy Fiora
03:36:58 <Sgeo|web_> Why am I looking at Factor again?
03:37:08 <shachaf> Oh, it makes you use (Category..). :-(
03:38:01 <Bike> Sgeo|web_: dinosaurs are cool.
03:38:05 <shachaf> That's not actually necessary, is it?
03:39:07 <zzo38> "It is the test of a good religion whether you can joke about it." - GK Chesterton
03:39:47 <Sgeo|web_> Factor does the whole mutable thing though :(
03:40:30 <Bike> "the whole mutable thing"
03:40:43 <monqy> the whole mutable thing
03:42:42 <Arc_Koen> zzo38: well, I have friends with whom I can joke about all religions
03:42:55 <Arc_Koen> (except maybe those religions we haven't heard of yet)
03:43:14 <Arc_Koen> well those friends happen to be atheist though
03:44:13 -!- Sgeo|web_ has quit (Ping timeout: 245 seconds).
03:45:53 <elliott> Bike: you've started putting things sgeo says in quotes and then sending them back to the channel there is no escape now
03:46:25 <Bike> D:
03:46:27 <Bike> D:
03:46:31 <elliott> D:
03:46:41 <Bike> oh god how did you know that was your color in my client
03:46:44 <Bike> what... what are you
03:47:09 <elliott> im a magician
03:50:08 <kmc> do you turn illusions for money
03:51:00 -!- Sgeo|web has joined.
03:55:40 <shachaf> Bike: Your client colours people?
03:55:50 <shachaf> Next you'll say it doesn't support Unicode.
03:56:11 <Bike> it would be pretty boring to see everyone as white, i get that enough in real life
03:56:34 <elliott> `addquote <shachaf> Bike: Your client colours people? <Bike> it would be pretty boring to see everyone as white, i get that enough in real life
03:56:37 <HackEgo> 865) <shachaf> Bike: Your client colours people? <Bike> it would be pretty boring to see everyone as white, i get that enough in real life
03:56:50 <monqy> so do you live in vampire land or sick people land
03:57:00 <Bike> wannabe confederate land
03:57:19 <shachaf> elliott: Now your `addquoted me using British spelling!
03:57:25 <shachaf> Take it back.
03:57:26 <Bike> even though it wasn't actually part of the union at the time... it's a weird place
03:57:26 <Fiora> what color am I
03:57:30 <Bike> Lavender.
03:57:35 <Fiora> aw, pretty
03:58:09 <monqy> you don't also do background colouring? that stuff's hideous
03:58:12 <monqy> er
03:58:15 <monqy> a "do you?" in there
03:58:17 <Fiora> it's nice your client knows my favorite colors
03:58:56 <Bike> it only does background colors when somebody vomits up a ^C4,7 or what have you.
03:59:09 <monqy> what about this stuff
03:59:24 <Bike> yes, it does reverse video too. up to the latest 1988 graphics standards.
03:59:26 <Fiora> random colors
04:00:25 <shachaf> everse video.
04:00:33 <Bike> https://dl.dropbox.com/u/12780151/temp-behold.png take a trip, if you will, through another's eyes
04:00:50 <elliott> is that ratpoison
04:01:00 <Bike> Ratpoison's sequel, yeah.
04:01:02 <elliott> oh maybe it is stumpwm
04:01:19 <elliott> you are using the wrong obscure language for your window manager
04:01:24 <Bike> yes yes xmonad
04:01:39 <monqy> oh no im shachaf
04:01:46 <Bike> i used to use the much less obscure lua one i forget the name of, but it's kind of nice being able to fuck up my config in a language I know instead
04:01:48 <shachaf> oh yes im monqy
04:01:51 <shachaf> finally
04:04:05 <zzo38> This computer will show the reverse-video, bold, but not the CTRL+C colors
04:04:54 <shachaf> zzo38: You'll have to acquire a better computer, then.
04:05:22 <zzo38> No, it is because I programmed it to show the reverse-video and the bold but not the CTRL+C colors on the IRC.
04:05:33 <zzo38> It isn't because I purchased it like this.
04:05:38 <kmc> more like, sex gonad
04:06:39 <Bike> I forget if you can compose them asdfghjhjkzxcv
04:06:45 <Bike> well.
04:06:59 <kmc> shachaf: i'm getting my laptop next tuesday, apparently
04:07:19 -!- Arc_Koen has quit (Quit: The struct held his beloved integer in his strong, protecting arms, his eyes like sapphire orbs staring into her own. "W-will you... Will you union me?").
04:11:32 <zzo38> My computer using CTRL+V for reverse in IRC, and CTRL+R and CTRL+C are not recognized
04:13:14 <Bike> look at that, fiora, you're internet famous
04:13:30 <Fiora> ??
04:13:42 <Fiora> ... oh, arc's quit message
04:13:45 <Fiora> pffffff
04:13:59 <Fiora> I'm sorry, that joke was really really awful
04:15:06 -!- segorev has quit (Quit: This computer has gone to sleep).
04:16:11 <zzo38> http://www.chessvariants.org/index/msdisplay.php?itemid=MSsymmetricunire
05:08:07 <kmc> robots dot tee ex tee
05:13:42 <shachaf> http://www.reddit.com/r/haskell/comments/14met7/oleg_typesafe_formatted_io/c7f8un6
05:13:46 <shachaf> Are tricks like that worth it?
05:33:24 <asiekierka> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=743aa456c1834f76982af44e8b71d1a0b2a82e21
05:33:29 <asiekierka> rest in peace, 386 support.
05:33:44 <shachaf> Uh oh.
05:33:48 <shachaf> Linux is back to 286-only?
05:33:52 <coppro> haha, Linus
05:33:56 <coppro> love the ending
05:33:57 <asiekierka> haha, shachaf
05:34:12 <Bike> cold, linus. cold
05:34:34 <coppro> zzo38: you should indicate that a half-piece and a full-piece cannot be contained in the same square
05:34:52 <zzo38> coppro: OK.
05:34:54 <asiekierka> linus, why
05:34:58 <asiekierka> now i have to run minix on my 386
05:35:03 <asiekierka> did you really want me to run minix on my 386
05:35:21 <asiekierka> 2007-11-15: 80386 support removed
05:35:23 <asiekierka> dammit netbsd
05:36:02 <asiekierka> >FreeBSD 6.0 and newer no longer supports the original Intel 80386 CPU
05:36:18 <asiekierka> OpenBSD: >All CPU chips compatible with the Intel 80386 (i386) architecture, except for the 80386 itself, are supported:
05:36:36 <Bike> niiiiice
05:36:36 -!- Sgeo|web has changed nick to Sgeo.
05:36:41 <asiekierka> this is a joke
05:36:50 <asiekierka> Linus, wake up! No! This is the wrong way to go!
05:37:05 <shachaf> monqy: wake linus up
05:38:29 <zzo38> coppro: I fixed it now.
05:39:22 <zzo38> s/linus/the lions/
05:50:06 <Yonkie> by the way, was there any *NIX supporting 80286 CPU excluding Minix?
05:53:25 <pikhq> Xenix
05:54:41 <Yonkie> oh yes, forgotten Microsoft UNIX :)
05:55:53 <pikhq> Also ELKS.
05:56:36 -!- TeruFSX has quit (Ping timeout: 250 seconds).
05:57:48 <zzo38> Is Tuesday longer than a piece of string? (I answered with another question)
05:58:41 <nortti> Yonkie: coherent used to support
05:59:09 <nortti> Yonkie: the latest version requires 386 but you should probably be able to find old versions
06:00:06 <pikhq> Well, Tyr's Day refers to the god of law. The law is known to have a long arm.
06:00:19 <pikhq> Strings are not generally very long.
06:00:29 <pikhq> So, Tuesday is longer than a piece of string.
06:05:23 <kmc> removing 425 lines from the entire kernel doesn't seem like that much of a gain
06:05:26 <zzo38> Well, I was comparing it to the speed of light.
06:05:28 <kmc> but maybe it is horrid code
06:06:19 <elliott> Merge branch 'x86-nuke386-for-linus' of git://git./linux/kernel/git/tip/tip
06:06:20 <elliott> what a good uri
06:07:18 <kmc> "Most 386 processors have a bug where a POPAD can lock the machine even from user space."
06:07:21 <kmc> good times
06:07:48 <nortti> are there any *nixes other than minix that run in 32 bit protected mode and work in 386?
06:08:21 <kmc> yes, linux until very recently
06:08:39 <nortti> but they then decided to remove it :/
06:09:04 <kmc> yeah i ran minix on a 286
06:09:07 <kmc> 16 bit protected mode aww yeah
06:09:17 <nortti> and even netbsd "of course it runs netbsd" has dropped support
06:09:21 <nortti> kmc: only minix 2
06:09:36 <nortti> and 1.x maybe
06:12:53 <zzo38> Science is not perfect. Religion is not perfect. Mathematics is perfect. Nevertheless, science is best we have. Do you agree?
06:13:20 <Bike> is there going to be a quiz :<
06:13:50 <zzo38> I don't know.
06:13:59 <Bike> That doesn't seem very mathematical.
06:14:14 <zzo38> I didn't say it was.
06:15:03 * elliott wonders how science is meant to be more "bester" than mathematics, though has no idea what you mean by "perfect" or "best"
06:15:13 <Bike> Ah, but I didn't say you said it was!
06:15:27 <zzo38> OK, I was just making sure.
06:15:37 <oklopol> the chess variants thing is written by zzo right?
06:15:49 <zzo38> oklopol: Some chess variants are.
06:17:01 <Yonkie> BTW, is there any esolangs mailing lists? all are seems to be dead
06:18:28 <zzo38> Yonkie: Now we have IRC and wiki, instead.
06:18:36 <oklopol> mathematics is perfect, so in particular better than anything not perfect, including science. science is best we have, thus we do not have mathematics.
06:18:51 <oklopol> do you agree?
06:19:49 <zzo38> No, that isn't quite what I meant.
06:21:40 <Sgeo> Huh. I think I actually understand Factor resumable exceptions better than CL resumable exceptions
06:21:41 <lambdabot> Sgeo: You have 3 new messages. '/msg lambdabot @messages' to read them.
06:23:24 <oklopol> zzo38: oh :(
06:24:06 <elliott> guys can you help me upgrade the fucking wiki
06:27:09 <shachaf> Sure!
06:27:19 <shachaf> What do you need?
06:27:48 <elliott> mediawiki knowledge
06:27:55 <elliott> that surpasses my own
06:28:53 <Gracenotes> I used to write a lot of templates on wikipedia
06:29:22 <shachaf> I know someone who works at the Wikimedia foundation.
06:29:24 <Gracenotes> everything is a string. it's a bit scary.
06:29:37 <elliott> Gracenotes: i hear they are going to use lua instead
06:29:59 <oklopol> everything is a hashtable. it's a bit scary.
06:30:22 <elliott> i agree w/ oklopol
06:30:25 <elliott> strings > hashtables imo
06:30:29 <shachaf> Use it in lua a real language?
06:30:30 <oklopol> yes
06:30:52 <Gracenotes> heh. the hashtable part isn't the strangest bit of lua, it's how exposed the stack-based-ness is
06:30:56 <Gracenotes> imho
06:31:04 <oklopol> how is it exposed?
06:31:14 <Gracenotes> well. when using the C API.
06:31:47 <oklopol> i used it for some time but then i got so fucking annoyed with it asdfasdf
06:31:53 <oklopol> oh
06:31:56 <oklopol> yeah
06:32:06 <elliott> oklopol: do you still actually like code
06:32:08 <oklopol> that stuff's horrible to read
06:32:08 <Gracenotes> I did last use it a few years ago. it's documented okayish
06:32:17 <oklopol> elliott: like code on which sense?
06:32:23 <shachaf> hi Gracenotes
06:32:27 <elliott> oklopol: a good question
06:32:30 <oklopol> yes
06:32:41 <oklopol> i program things with a friend at least once a week.
06:32:58 <elliott> that's fucking weird
06:33:00 <elliott> did you ever finish that game
06:33:01 <oklopol> yes.
06:33:03 <oklopol> which one
06:33:08 <elliott> idk
06:33:08 <elliott> that one
06:33:12 <oklopol> we finished a game, sort of
06:33:13 <elliott> you were going to code it in C# or something
06:33:17 <oklopol> and now we're working on another
06:33:23 <oklopol> we finished a game in c#
06:33:25 <elliott> okay
06:33:26 <elliott> what was it
06:33:29 <oklopol> called blockfest
06:33:51 <elliott> is it good; can i play it
06:33:55 <oklopol> well kinda finished, the graphics is horrible and for instance we had ai but were too lazy to put it in.
06:34:22 <oklopol> oh err we'll put it somewhere for grabs at some point.
06:34:39 <oklopol> it's a silly 3d multiplayer game where you jump around with your ball and shoot other balls
06:35:13 <oklopol> and you have a kind of ninja rope and a burst thingie which are so strong that you're basically just flying around all the time
06:35:48 <elliott> sounds pretty good
06:35:51 <shachaf> `welcome Gracenotes
06:35:53 <oklopol> and a couple of different guns.
06:35:53 <HackEgo> Gracenotes: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
06:36:14 <oklopol> and a level editor which is just lol and a single player game which is just silly
06:36:22 <Gracenotes> I've seen that like 3 times :o
06:36:39 <Bike> do you feel welcomed?
06:36:46 <shachaf> elliott: What's the " and deployment" for?
06:37:05 <oklopol> still on the todo list
06:37:21 <elliott> oklopol: is the multiplayer networked
06:37:29 <oklopol> yes
06:37:35 <shachaf> `welcome Bike
06:37:36 <HackEgo> Bike: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
06:37:49 <Gracenotes> Bike: Yes, I feel the metaphorical tentacles of this channel snugly wrapped around me.
06:38:10 <oklopol> it's not implemented very well.
06:38:17 <Bike> :3
06:38:41 <oklopol> we implemented single player stuff and then realized we want multiplayer and just kind of haxored it up.
06:39:10 <oklopol> but something like 5 players work okay at least :P
06:39:15 -!- oerjan has joined.
06:39:22 <elliott> oerjan: YO HELP ME UPGRADE THE WIKI THANKS
06:39:36 <oklopol> also there's a global repository for servers, and anyone can join any game.
06:39:43 <oerjan> wat
06:39:55 <oklopol> it wasn't really meant for distribution.
06:41:12 <elliott> oerjan: theres problems
06:41:14 <elliott> and it makes me sad
06:41:37 <oerjan> let me guess, it'll break /// again
06:42:16 <elliott> no
06:42:18 <elliott> its more
06:42:22 <elliott> i literally cant do it
06:42:32 <oerjan> ah
06:42:38 <oerjan> i have that problem a lot to
06:42:50 <elliott> to what
06:42:54 <elliott> :D :D: D: :D :D:
06:42:58 <elliott> it's funny because i misinterpreted what you said
06:43:03 <elliott> but it was on purpose
06:43:03 <oerjan> oops
06:43:05 <oerjan> *+o
06:43:37 <monqy> ooops
06:44:35 <oerjan> O KAY
06:44:36 <elliott> no monqy........
06:44:38 <elliott> it's oopso
06:44:48 <oerjan> my magnum oopos
06:44:59 <oklopol> xD
06:45:55 <oklopol> elliott: the ais were pretty awesome when you had like 2 of them, usually they wouldn't care about you but just fight each other
06:46:09 <oklopol> and they would shoot the ninja rope into the other guy and burst in random directions
06:46:20 <elliott> good
06:46:21 <oklopol> and they would just spiral into the air shooting with machine guns or something
06:46:37 <oerjan> and now there's just no. 523 left
06:46:59 <elliott> i thought ais too
06:47:02 <oklopol> if you had more then 4 ais they would usually just kind of become a singularity of explosions in one of the spawns.
06:48:03 <oklopol> i don't even want to know what 523 ais would do
06:48:34 <elliott> oklopol: some call it "Feather"
06:49:12 <oklopol> for the new game, we currently have a something like 100 randomly generated houses with 100 randomly placed monsters and you shoot them with your guns.
06:49:18 <oklopol> *-a
06:51:21 <zzo38> I have now recorded the session 27 of Dungeons&Dragons game.
06:51:36 <oklopol> what channel will it be on
06:51:42 <oklopol> i just bought my first tv
06:51:44 <oerjan> elliott: ooh, they invented feather but the resulting chaos retroactively destroyed it again, as well as all except one of them
06:51:50 <zzo38> It won't be on TV
06:51:54 <zzo38> It is text only.
06:52:06 <oklopol> why won't it be on tv?
06:52:17 <oklopol> i would prefer to watch it on my tv.
06:52:32 <oerjan> elliott: next question, what happened to the other 37 zzo's.
06:52:44 <oklopol> i tried to record, in text, a d&d game once. it was impossible.
06:52:52 <zzo38> oklopol: Then, connect your computer to your TV screen.
06:53:00 <oklopol> ooh i like that
06:53:05 <zzo38> And then you can watch it on TV.
06:53:08 <oklopol> yes
06:53:17 <oklopol> ok see ya buy buy
06:54:42 <elliott> oerjan: if i cry if you don't help me upgrade mw would that help
06:56:01 <oerjan> elliott: Not really, no.
06:56:42 <elliott> oerjan: it got you to use uppercase though!!!! it is working already
06:56:59 <oerjan> there's a specific reason for that.
06:57:16 <elliott> :{
06:57:25 <elliott> every time I see "specific" i think "south pacific" and i don't know why
06:57:45 <oerjan> it's because "south pacific" is where we all secretly want to be
06:58:07 <oerjan> sadly, there isn't enough land mass there to fit us all in
06:58:38 <oerjan> maybe a gigantic fleet...
06:59:09 <oerjan> maybe they had one and it sank and thus the BLOOP
06:59:20 <elliott> bloop freaks me out
07:00:21 <oerjan> i saw something about someone claiming it could be from breaking ice shelves
07:00:52 <oerjan> oh they added it to the wikipedia artible
07:01:10 <elliott> artible
07:01:19 <oerjan> oobs
07:02:53 <oerjan> "cryogenic signals"
07:03:33 <oerjan> sounds alien
07:04:06 <oerjan> maybe they're really from an alien spaceship from titan
07:04:17 <oerjan> (titan is pretty cold you know)
07:04:30 <oerjan> and it has sirens, i think
07:04:35 <coppro> http://en.wikipedia.org/wiki/Titan_AE
07:07:21 <oerjan> 21:17:20: <elliott> what if someone exploits the security bugs in the current version
07:07:24 <oerjan> 21:17:25: <elliott> and deletes all the brainfuck derivatives
07:07:31 <oerjan> at least we would have a main suspect handy.
07:28:57 <oerjan> oh, today is 12/12/12
07:31:36 <elliott> happy
07:31:42 <elliott> oh this is like the last one ever
07:32:07 <oerjan> <shachaf> Let's see if he logreads that. <-- NOT A CHANCE
07:32:36 <shachaf> oerjan: What did you logread?
07:32:46 -!- oklofok has joined.
07:32:48 <oerjan> YOU MAY NEVER KNOW
07:33:01 <Deewiant> Re. 12/12/12 https://twitter.com/GSElevator/status/278683602848448513
07:33:03 <shachaf> Wasn't it a question?
07:33:39 <oerjan> more like shouting
07:34:12 <shachaf> I don't even remember.
07:34:35 <oerjan> > 0o08 -- REMEMBER ON THIS
07:34:37 <lambdabot> Could not deduce (GHC.Num.Num (a0 -> t))
07:34:37 <lambdabot> arising from the ambiguity chec...
07:35:02 <zzo38> If you need to declare a special pointer in a C program, what would be the way? One idea would be volatile char x[1]; as a global variable. Maybe "volatile" is not needed but if you are using it only as the pointer and not the value I don't know what optimization it would do. I don't know if there is better way, though.
07:35:38 <zzo38> oklopol: Why is it difficult to record a D&D game once with text?
07:36:04 <shachaf> oerjan: Oh, right.
07:36:09 <shachaf> oerjan: Do you hate me now?
07:38:22 -!- evitable has joined.
07:39:30 <oerjan> MY HATE FOR YOU HAS NOT BEEN SIGNIFICANTLY CHANGED BY THIS
07:40:12 <oerjan> wasn't there something you could do with that even in vanilla ghci
07:40:22 <oerjan> :t 0o08
07:40:23 <lambdabot> (Num a, Num (a -> t)) => t
07:55:32 <olsner> looks a bit like that lexer bug in PHP
07:55:56 <Deewiant> :t 0 8
07:55:57 <lambdabot> (Num a, Num (a -> t)) => t
07:56:16 <kmc> i enjoyed Titan A.E. as a kid but I have been informed that it is actually mega shitty
07:57:31 <oerjan> olsner: it's completely according to the haskell standard
07:57:55 <zzo38> It looks fine to me, even though strange.
07:58:06 <kmc> > "foo\ \bar" -- did you know this is in the haskell standard?
07:58:08 <lambdabot> "foobar"
07:58:15 <oerjan> now whether it makes _sense_ to have the greedy lexing rule be more important than not cutting off in the middle of alphanumerics is a different matter.
07:58:35 <Bike> kmc: what the hell?
07:58:54 <oerjan> kmc: yes. i've used it for multiline strings.
07:58:54 <Deewiant> Bike: For multi-line strings
07:58:56 <olsner> > 0o0 8
07:58:58 <lambdabot> Could not deduce (GHC.Num.Num (a0 -> t))
07:58:58 <lambdabot> arising from the ambiguity chec...
07:59:09 <Bike> that's... egh.
07:59:31 <oerjan> Bike: the worst part is you _still_ have to write explicit \n's
08:00:00 <kmc> it's useful for a multi-line string that's indented within the source
08:00:13 <zzo38> At least I think it makes sense for 0o08 to mean 0o0 8 even though it doesn't mean you should write a program like that! (Unless you are doing something strange like polyglots or whatever)
08:00:26 <olsner> alright, so the octal constant just ends before the 8 ... I thought there had to be something lexed twice there
08:00:28 <Deewiant> oerjan: I think it's good that that is available, but having something with implicit \n's would of course be useful
08:00:58 <Deewiant> As in I'd rather have only that than only the alternative
08:01:07 <zzo38> Can you use TH quasiquotes?
08:01:15 <olsner> it would probably be helpful to make this an error (invalid octal literal?) instead of treating it as 0 8
08:01:30 <oerjan> zzo38: yes, there's a library that makes [s|...|] work for that
08:01:41 <shachaf> nolnsnerse
08:02:28 <oerjan> olsner: i think a rule that haskell lexing cannot stop between adjacent alphanumerics would have been an improvement
08:02:30 <zzo38> olsner: Maybe to you it is. To me, either way should be OK.
08:02:34 <elliott> kmc: that's less surprising than \&
08:03:26 <olsner> or... haskell could just use radixals instead
08:03:33 <oerjan> RIGHT
08:05:57 <elliott> hey oerjan. should i sleep.
08:06:19 <shachaf> oerjan: why do you hate golf
08:06:40 <oerjan> shachaf: TOO MANY HOLES
08:06:58 <oerjan> elliott: of course not, it's daytime!
08:07:15 * oerjan all sensible normal opinion today
08:07:23 <kmc> shachaf: the issue with HTTP POST to a SMTP server is even more subtle than the IRC spambot thing
08:07:44 -!- Bike has quit (Ping timeout: 255 seconds).
08:07:44 <shachaf> kmc: ?
08:07:51 <elliott> oerjan: you mean it's very very late night
08:08:30 <oerjan> `addquote <shachaf> Do physicists have half-life crises?
08:08:33 <elliott> *Main> (not |- (length :: [()] -> Int) |- (subtract 1 :: Int -> Int) |- id) [(),()]
08:08:35 <HackEgo> 866) <shachaf> Do physicists have half-life crises?
08:08:36 <elliott> <interactive>:50:33: Couldn't match type 'True with 'False
08:08:36 <elliott> sigh
08:08:37 <elliott> I want a refund
08:08:40 <kmc> well, let's say GET instead
08:08:41 <olsner> elliott: eat breakfast and it will be morning
08:09:08 <elliott> olsner: but i'll still be tired
08:09:12 <kmc> if i make you visit http://mail.example.com:25/<script>alert('hi');</script>
08:09:14 <zzo38> SMTP should require HELO at first though
08:09:23 <kmc> the server's error message will echo that HTML
08:09:32 <kmc> and your browser will interpret it as a HTTP/0.9 headerless response
08:09:38 <kmc> and assume a content type of text/html
08:09:51 <kmc> and it has access to *.example.com cookies and whatever
08:09:52 <zzo38> It shouldn't treat it as a headerless response unless the request is headerless.
08:10:02 <kmc> zzo38: apparently it does, though
08:10:08 <kmc> i just read about this in _The Tangled Web_
08:10:18 <shachaf> Oh, should I read that book?
08:10:20 <zzo38> Perhaps it does, but, it shouldn't.
08:10:23 <kmc> yes
08:10:28 <kmc> the part i have read so far is very good
08:10:29 <shachaf> I'm not sure which IRC spambot thing you mean.
08:10:45 <kmc> i learned a lot and I really enjoy the author's tone of "wheeee the web is crazy and we are all screwed"
08:10:54 <kmc> oh, maybe you were not here when I was discussing it earlier
08:11:01 <kmc> Somebody set up a web page with a form that would POST-on-load to http://irc.freenode.org:6667 . The form data contained IRC commands to log in, join a bunch of channels, and spam them with links to said page.
08:11:11 <zzo38> However there is also the opposite problem, which the Google server returns headers even though the request is headerless.
08:11:12 <shachaf> http://lcamtuf.coredump.cx/postxss/ was good.
08:11:23 <kmc> as a result Freenode's IRCd now interprets "POST" as an alias for QUIT
08:11:46 <kmc> also TIL that chrome has a port number blacklist and simply won't let you do HTTP to port 6667 anymore
08:11:49 <shachaf> kmc: Oh, I see.
08:11:55 <zzo38> Yes it is the problem with HTTP and HTML and all that stuff causes a lot of problem like that.
08:12:10 <kmc> i also learned about another hilarious attack, which is:
08:12:12 <zzo38> Therefore, avoid it if you have the alternatives.
08:12:48 <kmc> you know that thing where sites can tell what other sites you have visited, by making links and inspecting the color of those links?
08:12:54 <shachaf> Yes.
08:13:01 <shachaf> (There are lots of other ways too.)
08:13:02 <kmc> various browsers disabled that inspection capability as a result
08:13:04 <kmc> BUT
08:13:05 <oerjan> after the internet apocalypse, only zzo38's gopher server will be up
08:13:14 <kmc> you can still trick the user into revealing the information
08:13:31 <shachaf> You can look at cache timing, you can open iframes and see if they load successfully or not.
08:13:39 <kmc> by building a fake CAPTCHA that will look different depending on the link colors
08:13:45 <shachaf> Into revealing link color information?
08:13:47 <shachaf> Oh, hah.
08:13:48 <zzo38> kmc: When looking at about:config in Firefox at FreeGeek I did see those things and realize that must be why.
08:13:59 <kmc> i like this exploit because it involves covertly exfiltrating data through the USER'S OWN BRAIN!!
08:14:19 <shachaf> Seems like that particular information is very difficult to keep hidden.
08:14:23 <zzo38> oerjan: I am not the only one who has a gopher server.
08:14:34 <zzo38> There are some others, too.
08:14:35 <shachaf> But that's a funny attack.
08:14:43 <oerjan> zzo38: good, good
08:15:29 <shachaf> I should read that book. Most things I've read from him have been good.
08:15:29 <elliott> insame2 :: (TypeEq x x' b, TypeEq y y' b', b `Implies` b') => (x -> y) -> Maybe (x' -> y')
08:15:33 <kmc> i think security is an inherently funny field, because exploits and jokes have a lot of structural similarities
08:15:37 <elliott> tempted to tweak one of the letters of this function's name
08:16:53 <kmc> a good exploit does something clever and unexpected, in a way that mixes levels or combines things that weren't meant to be used together, and is transgressive and mischeivous
08:17:03 <kmc> these are all building blocks of humor as well :)
08:17:15 <zzo38> I have said before! HTTPS is not really so secure! SSH is secure and should be used to send money by internet, and it should be done by connecting to your bank account to split your account; this way is more secure nobody can steal your credit card numbers or whatever.
08:18:01 <kmc> anyway i will sleep now
08:18:02 <kmc> good night all
08:18:06 <zzo38> kmc: Well, it is also a way of hacking, whether or not you are trying to exploit any security.
08:18:26 <zzo38> But hackers say funny thing too. I consider Feynman was hacker, too.
08:18:48 <oerjan> humor is hacking of the human mind
08:19:05 <elliott> ((length :: [()] -> Int) |- id) :: (TypeEq [()] y' b, TypeEq Int y' b') => y' -> y'
08:19:05 <zzo38> oerjan: O, OK, then. Now it is understandable.
08:19:08 <elliott> that's not what I wanted :(
08:19:14 <zzo38> Do you consider Feynman was hacker?
08:19:22 <elliott> oh hm.
08:19:26 <elliott> I need to make it even more general.
08:19:49 <elliott> oh, I guess that makes sense
08:21:53 <oerjan> i haven't paid much attention to feynman, a couple of anecdotes maybe.
08:22:22 <oerjan> he seemed to hack brazil's education system all right
08:23:17 <elliott> *Main> test ["a","b","c"]
08:23:17 <elliott> "abc"
08:23:17 <elliott> *Main> test [(),()]
08:23:17 <elliott> "[(),()]"
08:23:17 <elliott> *Main> test (123::Integer)
08:23:20 <elliott> "123"
08:23:22 <elliott> *Main> test False
08:23:25 <elliott> "sorry"
08:23:27 <elliott> *Main> test ((),())
08:23:30 <elliott> "sorry"
08:23:32 <elliott> monqy: am I terrible?
08:23:38 <monqy> huh what
08:23:45 <elliott> ps test :: (TypeEq [String] x' b, TypeEq [()] x' b1, TypeEq Integer x' b2) => x' -> String
08:23:58 <zzo38> Sorry for what?
08:24:07 <elliott> it's sorry it doesn't know what type you are
08:24:08 <Deewiant> For not accepting that type.
08:24:41 <elliott> monqy: the definition: http://sprunge.us/hMbb
08:24:57 <monqy> whats all this stuff
08:25:15 <monqy> is it typeclass hacks............
08:25:20 <monqy> elliott.........................
08:25:20 <elliott> (|-) :: (TypeEq x x' b, TypeEq y y' b') => (x -> y) -> (x' -> y') -> x' -> y'
08:25:20 <elliott> f |- g = fromMaybe g (insame f)
08:25:39 <Deewiant> I think you typoed "insane"
08:25:44 <monqy> what's TypeEq
08:26:04 <elliott> Deewiant: 08:15:36 <elliott> tempted to tweak one of the letters of this function's name
08:26:19 <elliott> monqy: an updated version of oleg's TypeEq hack
08:26:28 <elliott> are you sure you want to see it
08:26:31 <monqy> yeah
08:26:32 <elliott> class TypeEq x y (b :: Bool) | x y -> b where same :: p x -> Maybe (p y)
08:26:32 <elliott> instance (b ~ True) => TypeEq x x b where same = Just
08:26:32 <elliott> instance (b ~ False) => TypeEq x y b where same = const Nothing
08:26:44 <monqy> ah
08:26:48 <elliott> (same is just witness to (possible) Leibniz equality)
08:26:50 <oerjan> elliott now updates oleg, be very afraid
08:27:20 <elliott> monqy: the cool thing is this (|-) works both for mapping any type to a result of a certain type and for mapping any type to itself
08:27:30 <elliott> depending on whether you use (const x) or id as the last one
08:29:50 <elliott> oh cooool
08:29:54 <elliott> oerjan: I get to use constraint kinds!!!
08:30:03 <elliott> um, maybe?
08:30:04 <elliott> not sure
08:31:25 <monqy> man this sure is a hack
08:31:34 <elliott> don't you mean
08:31:36 <elliott> beautiful
08:31:44 <monqy> yeah it's def. on the beautiful side
08:31:51 <monqy> you know what isn't
08:31:55 <monqy> (it's printf)
08:32:06 <elliott> are you using printf or something
08:32:09 <monqy> no
08:32:15 <monqy> but i know it
08:32:25 <elliott> mmm
08:32:37 <elliott> btw insame is
08:32:40 <elliott> insame :: (TypeEq x x' b, TypeEq y y' b') => (x -> y) -> Maybe (x' -> y')
08:32:40 <elliott> insame f = contrasame f >>= same
08:32:40 <oerjan> elliott: i am just waiting for someone to discover that ghc now accidentally can support full dependent typing, as long as you do it in the type system.
08:32:42 <elliott> in case you didn't guess
08:32:47 <elliott> i'm sure you can figure out what contrasame is
08:32:53 <monqy> have you used printf
08:33:01 <elliott> the Text.Printf one?
08:33:02 <elliott> yeah.
08:33:03 <monqy> yeah
08:33:05 <elliott> i wrote my own type-safe printf
08:33:08 <elliott> bit awkward to use tho
08:33:13 <elliott> turns out oleg has done it better
08:34:20 <elliott> okay now i've gotten to the bit i wanted to and have utterly confused myself
08:34:53 <elliott> oh hm
08:35:04 <elliott> maybe this actually means you don't need Data at all? and can just use Foldable/Traversable
08:35:07 <elliott> oh wait no you need a
08:35:08 <elliott> type-generic version of those
08:35:11 <elliott> mmmmmmmm
08:35:45 <FreeFull> self-confusion is the most confusing confusion
08:36:04 <elliott> monqy: i have no idea what i'm doing. does that mean i should sleep
08:37:12 <FreeFull> elliott: I'm not monqy, but maybe
08:37:25 <FreeFull> If it's still just as confusing in the morning, you're out of luck
08:37:28 <monqy> elliott: what are you doing
08:40:39 <elliott> Overlapping instances for TypeEq y x b'0 arising from a use of `f'
08:40:43 <elliott> monqy: overlapping instances
08:41:01 <monqy> are x and y both equal and nonequal
08:41:05 <elliott> they're
08:41:09 <elliott> in a superposition
08:41:22 <monqy> what did you do
08:41:26 <elliott> :(
08:41:45 <elliott> ok i got
08:41:46 <elliott> gmap :: (forall z b. (TypeEq x z b) => z -> z) -> (x,y) -> (x,y)
08:41:46 <elliott> gmap f (a, b) = (f a, b)
08:41:47 <elliott> that working
08:41:50 <elliott> that's a start
08:42:01 <elliott> oh noooo
08:42:04 <elliott> it doesn't work when you use it
08:42:20 <elliott> im going to cry
08:42:55 -!- epicmonkey has quit (Ping timeout: 240 seconds).
08:45:48 <zzo38> I tried something with making a Fourier transform on two signals, and then using the real part of the result of one and the imaginary part of the result of the other, and then make the inverse Fourier transform from that.
08:46:05 <monqy> did it work
08:46:11 -!- sivoais has quit (Remote host closed the connection).
08:46:46 <zzo38> Yes, it did work.
08:47:10 <FreeFull> zzo38: What did it sound like
08:47:20 <elliott> *Main> gmap blah (1::Int, ())
08:47:20 <elliott> (0,())
08:47:20 <elliott> *Main> gmap blah ((), ())
08:47:20 <elliott> <interactive>:154:6: Overlapping instances for TypeEq Int z b0
08:47:23 <elliott> monqy: im so close
08:47:26 <FreeFull> Imaginary part is the phase, right?
08:47:37 <shachaf> elliott is channeling the spam
08:47:41 <shachaf> or spamming the channel?
08:47:47 <shachaf> `quote
08:47:47 <shachaf> `quote
08:47:48 <shachaf> `quote
08:47:48 <shachaf> `quote
08:47:48 <shachaf> `quote
08:47:49 <HackEgo> 520) <elliott_> now that we've cleared that up let us hug fungot = <fungot> elliott_: let's not start that again."
08:47:50 <HackEgo> 514) <Phantom_Hoover> I'm sacrificing the animals, then I'm going to bed.
08:47:50 <HackEgo> 652) <itidus22> if the halting problem was solved, as a placebo.. would it benefit people?
08:47:50 <HackEgo> 28) <zzo38> I am not on the moon.
08:47:50 <HackEgo> 411) <NihilistDandy> MY CONTINUITY <NihilistDandy> MY FANFICTION <NihilistDandy> RUINED
08:47:57 <elliott> shachaf: shut the fuck up
08:48:18 <shachaf> Hmm, all of those are too good to delete.
08:48:18 <zzo38> FreeFull: No, I don't think so. Amplitude/phase are the other way to specify the numbers than real/imaginary, I think
08:48:21 <monqy> shachaf. etqet.
08:48:28 <shachaf> monqy: no u
08:48:30 <zzo38> shachaf: Then don't delete those ones.
08:48:41 <Snowyowl> Some of those make a degree of sense when read consecutively like that.
08:48:50 <FreeFull> zzo38: Oh, I think I know now what it's like
08:48:57 <FreeFull> So, what did it sound like
08:48:58 <monqy> elliott: whats blah
08:48:59 <Snowyowl> apparently NihilistDandy was writing fanfic of zzo38
08:49:08 <Snowyowl> on the moon
08:49:26 <zzo38> I don't know how to describe it but if you have Csound you will be able to use this Csound plugin so you can know by yourself what it is sounding like.
08:49:43 <FreeFull> Gotta go
08:49:46 -!- FreeFull has quit (Quit: Cya).
08:49:47 <shachaf> zzo38: Why would anyone think you're on the moon?
08:50:17 <zzo38> shachaf: The quotation is out of context. I do not remember.
09:04:36 -!- nooga has joined.
09:40:08 <shachaf> `quote
09:40:08 <shachaf> `quote
09:40:08 <shachaf> `quote
09:40:08 <shachaf> `quote
09:40:09 <shachaf> `quote
09:40:10 <HackEgo> 144) <alise> Why do you use random acronyms you know we don't know the expansions of? <pikhq> alise: TLAAW
09:40:10 <HackEgo> 427) <monqy> rest in peace lambdabot???? <ais523> monqy: it'll probably be back later <monqy> nap in peace
09:40:11 <HackEgo> 862) [after discussing lens] <hagb4rd> they seem to be the fashion of this winter <GreyKnight> hagb4rd is wearing this season's Lens, a stunning little ensemble with functor trim
09:40:11 <HackEgo> 148) <benuphoenix> the pregnant ones are usually taken already.
09:40:11 <HackEgo> 139) <fungot> alise: so parrot was based around gcc?
09:40:55 <oerjan> 148
09:41:14 <oerjan> what does that even mean
09:41:57 <oerjan> `delquote 148
09:42:01 <HackEgo> ​*poof* <benuphoenix> the pregnant ones are usually taken already.
09:42:29 <shachaf> `quote
09:42:29 <shachaf> `quote
09:42:29 <shachaf> `quote
09:42:29 <shachaf> `quote
09:42:30 <shachaf> `quote
09:42:31 <HackEgo> 135) <alise> I love logic, especially the part where it makes no sense.
09:42:31 <HackEgo> 251) <zzo38> Why do you want to have sex in everything? I don't want.
09:42:31 <HackEgo> 692) <monqy> kallisti: by ordered multiset did you mean: list??????
09:42:32 <HackEgo> 847) <olsner> fungot: what's your view on angels and other otherworldly beings? <fungot> olsner: well i'm mentioning theoretical image to be dumped in rain forests of laukaa.
09:42:32 <HackEgo> 375) <elliott> oerjan: can you delete that and the meta turing completeness page <elliott> thanks <oerjan> elliott: IN UNIVERSO ALTERNATIVO, OERJAN PAGINAS DELET
09:43:08 <shachaf> 375?
09:43:46 <oerjan> SORRY CONFLICT OF INTEREST
09:43:48 <zzo38> You should not necessarily think you have to delete any of one, I guess.
09:44:24 <shachaf> zzo38: Good point.
09:44:26 <shachaf> `quote
09:44:26 <shachaf> `quote
09:44:26 <shachaf> `quote
09:44:27 <shachaf> `quote
09:44:28 <HackEgo> 41) <Aftran> It looks like my hairs are too fat. Can you help me split them?
09:44:28 <HackEgo> 3) <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop
09:44:28 <HackEgo> 797) <zzo38> Sleep on the ceiling next Sunday.
09:44:29 <HackEgo> 682) <oklopol> i think i'll just take the usual route and go do post doc research somewhere far away and never come back and become a drug lord and kill myself
09:44:29 <shachaf> `quote
09:44:31 <HackEgo> 262) <cpressey> addquoting yourself? isn't that like commenting on your own facebook status? <Gregor> Yup, but I'm JUST THAT AWESOME.
09:44:58 <shachaf> 41 or 3
09:45:33 <oerjan> i think those count as vintage
09:45:50 <monqy> how about 262 then
09:45:52 <shachaf> They're still bad.
09:45:59 <shachaf> This is why we need to eliminate quote ordering.
09:46:00 <oerjan> perhaps 3
09:46:09 <fizzie> 3 has broken spacing, too.
09:46:18 <monqy> 3 is definitely bad though yes
09:46:27 <shachaf> fizzie makes a good point.
09:46:30 <shachaf> 3 needs to go.
09:46:31 <shachaf> `delquote 3
09:46:35 <HackEgo> ​*poof* <AnMaster> that's where I got it <AnMaster> rocket launch facility gift shop
09:50:57 -!- epicmonkey has joined.
09:55:26 -!- sivoais has joined.
10:08:30 -!- sivoais has quit (Ping timeout: 264 seconds).
10:09:30 -!- fungot has joined.
10:09:41 <fizzie> I keep not noticing the disapparation of fungot.
10:09:41 <fungot> fizzie: others don't care, i'm not really sure i like
10:11:15 <shachaf> fungot: don't go!!!!!!!!!!!!!!!
10:11:16 <fungot> shachaf: and use lower case pic. fnord/ img/ tmp/ skreen.jpg really has readable text? did you reload packages.scm?
10:11:29 <shachaf> `quote
10:11:29 <shachaf> `quote
10:11:30 <shachaf> `quote
10:11:30 <shachaf> `quote
10:11:30 <shachaf> `quote
10:11:30 <HackEgo> 548) <elliott> Second Life is like... real life, modelled by people who've READ about real life, you know, in books.
10:11:31 <HackEgo> 272) <ZOMGMODULES> elliott: parents who put just "Chris" on a birth certificate are... like parents who put just "Bob" on a birth certificate.
10:11:32 <HackEgo> 210) [on Walter Bright] <nddrylliog> I went to chat with him after his talk at the ELC and he was like "hum, right - humans. How do they work again... oh, hi!"
10:11:32 <HackEgo> 751) <olsner> is tswett Warrigal?
10:11:32 <HackEgo> 43) <GregorR-L> If I ever made a game where you jabbed bears ... <GregorR-L> I'd call it jabbear.
10:11:52 <shachaf> 272 or 751
10:15:16 -!- sebbu has joined.
10:15:16 -!- sebbu has quit (Changing host).
10:15:16 -!- sebbu has joined.
10:21:07 <FireFly> fungot: enlighten me
10:21:07 <fungot> FireFly: i suppose that gives it a nice fnord.
10:21:21 <oerjan> and FireFly was enlightened
10:21:47 <shachaf> The toenails, on the other hand, never grow at all.
10:24:17 <oerjan> indeed, the feet just shrink
10:25:08 <shachaf> So GHC stores the stack pointer in %rbp.
10:36:57 -!- sebbu2 has joined.
10:37:14 -!- sebbu2 has quit (Changing host).
10:37:14 -!- sebbu2 has joined.
10:39:48 -!- sebbu has quit (Ping timeout: 245 seconds).
10:46:23 -!- oerjan has quit (Quit: leaving).
10:50:58 -!- hogeyui has quit (Ping timeout: 245 seconds).
10:56:02 -!- hogeyui has joined.
11:18:31 -!- zzo38 has quit (Remote host closed the connection).
11:19:48 -!- sivoais has joined.
11:24:22 -!- ais523 has joined.
11:30:45 -!- SingingBoyo has quit (Ping timeout: 255 seconds).
11:43:50 <Sgeo> elliott, 5 years ago: "You've convinced me. I'm going to learn Factor."
11:45:58 <shachaf> I heard Factor was dead.
11:47:38 <Sgeo> [04:40] <HackEgo> 148) <benuphoenix> the pregnant ones are usually taken already.
11:47:54 <Sgeo> benuphoenix was responding to something I said, if that little bit of extra context helps
11:48:38 <shachaf> `quote
11:48:38 <shachaf> `quote
11:48:38 <shachaf> `quote
11:48:39 <shachaf> `quote
11:48:39 <shachaf> `quote
11:48:40 <HackEgo> 143) <alise> Why do you use random acronyms you know we don't know the expansions of? <pikhq> alise: TLAAW
11:48:40 <HackEgo> 517) <fungot> elliott_: it's a machine that looks like you!
11:48:40 <HackEgo> 52) <Madelon> both of you, quit it with the f-bombs. <Madelon> kaelis: what's the matter? something censoring stuff you're interested in?
11:48:41 <HackEgo> 101) <Bubo> ooh a test to see your procrastination hotspots <Bubo> ill do it later
11:48:41 <HackEgo> 247) <oklopol> zzo38: you missed the point. the point was way stupider than that.
11:49:06 <shachaf> `delquote 101
11:49:10 <HackEgo> ​*poof* <Bubo> ooh a test to see your procrastination hotspots <Bubo> ill do it later
12:09:40 <fizzie> `run wc -l quotes
12:09:42 <HackEgo> 863 quotes
12:09:50 <fizzie> You don't want to run out of them, after all.
12:10:30 <shachaf> `quote
12:10:30 <shachaf> `quote
12:10:31 <shachaf> `quote
12:10:31 <shachaf> `quote
12:10:31 <shachaf> `quote
12:10:32 <HackEgo> 62) <oklopol> Warrigal: what do you mean by 21?
12:10:33 <HackEgo> 774) <pikhq> The world would be a much classier place if the world was full of Gregors. <Phantom_Hoover> True, but how many of them are on fire?
12:10:33 <HackEgo> 177) <Vorpal> (had real world issues) <Vorpal> (to deal with) <ehird> Vorpal's pregnant. <Vorpal> yes
12:10:34 <HackEgo> 365) <coppro> elliott: actually, it's worse right now, I'm in the USA <coppro> where the solution to counterfeiting problems is "add more ink" <coppro> eventually all US bills will just be solid green
12:10:34 <HackEgo> 200) <asiekierka> GCC: -Os -O2 -O3 gives a 4x improvment
12:11:19 <Deewiant> 774,365,200
12:11:33 <fizzie> fungot: If your "fnord" URI up there was talking about http://zem.fi/~fis/skreen.jpg I don't think it's all that readable.
12:11:33 <fungot> fizzie: i think it can be defined as a foreign fnord fnord? :d did i leave any channel but esoteric?
12:11:52 <fizzie> (Then again, I did use to read it, so...)
12:11:58 <Deewiant> I think it's quite readable
12:12:04 <Deewiant> Modulo the line noise
12:12:34 <fizzie> I suppose if you go by the literal definition of "able to be read".
12:12:50 <fizzie> There's quite a lot of color misalignment there.
12:14:53 <Deewiant> Just zoom out until it doesn't matter.
12:15:48 <fizzie> I think I ran the CRT at 1600x1200 and that was perhaps slightly too high for the physical limits.
12:16:12 <fizzie> It's also from the corner of the screen, the middle part was perhaps a bit more RGB-aligned.
12:26:56 -!- evitable has quit (Ping timeout: 276 seconds).
12:37:09 <FireFly> fungot: what is a foreign fnord fnord?
12:37:10 <fungot> FireFly: i dont think i make up the syntax to do anything; markup commands are written out; for instance, i don't follow
12:37:37 <FireFly> fungot: neither do I
12:37:38 <fungot> FireFly: he even left here with the 0830 bus to go there implied changing step 1 to ' go.') the interesting question is how much work is already there for the different phases so i know what you mean
12:39:50 <fizzie> fungot: It's good someone does.
12:39:54 <fungot> fizzie: what's the inverse of a function, then evaluate ' toosmall and return the one that is used
13:08:49 -!- carado has joined.
13:20:07 -!- boily has joined.
13:20:31 <ais523> ^style
13:20:31 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube
13:20:34 <ais523> thought so
13:20:38 <ais523> but wanted to make sure
13:23:43 -!- TeruFSX has joined.
13:24:27 <fizzie> I just restamarted it, it gets reset to IRC then since styles aren't persistent.
13:24:47 -!- carado has quit (Ping timeout: 246 seconds).
13:24:54 <fizzie> fungot: You really should save at least that ^ignore list.
13:24:54 <fungot> fizzie: there is no binding named push! or pop! specified in any of the pins and it was a particular type really is of that opinion.
13:25:37 -!- carado has joined.
13:25:48 <nortti> fungot: I can't understan your sentence
13:25:49 <fungot> nortti: unfortunately that also depends on the axiom of choice can't be computed) save work for them parttime stuff
13:27:11 <fizzie> Deep.
13:28:06 <FireFly> fungot: how are you this fine day?
13:28:07 <fungot> FireFly: could you give a url for the odbc data manager? i can't seem to
13:28:20 <FireFly> fungot: 'fraid not
13:28:21 <fungot> FireFly: ( cons http://paste.lisp.org/ display/ 2081
13:28:56 <FireFly> (cdr fungot=
13:28:57 <fungot> FireFly: its been said that magic is at http://magic.xmog.com/ darcs/ s48-grovel/. :)
13:29:02 <FireFly> argh. (cdr fungot)*
13:29:03 <fungot> FireFly: yow! perhaps it's that big lisp conference in amsterdam!
13:29:21 <FireFly> Perhaps so
13:30:57 -!- TeruFSX has quit (Ping timeout: 255 seconds).
13:31:04 <nortti> (car fungot)
13:31:05 <fungot> nortti: it just stopped raining here. tweak it later. i did it with hannah arendt?"
13:43:47 <fizzie> fungot: Raining? If anything, it'd be snowing.
13:43:48 <fungot> fizzie: maybe just ' cpx' mayo!! i want a divorce!!... you're not clint eastwood!!
13:47:28 <nortti> :D
13:48:00 <fizzie> I don't think I've ever claimed to be, either. :/
13:48:45 -!- Snowyowl has quit (Quit: Page closed).
13:49:07 <FireFly> Just give fungot some 'cpx' mayo and hopefully they'll be fine
13:49:07 <fungot> FireFly: i should have it repeat at the end to enqueue, and remove duplicates in the list. directly assigning the last cdr is an a-list.
13:49:35 <FireFly> fungot: you really like lisp, don't you?
13:49:35 <fungot> FireFly: indeed it does
13:49:54 <FireFly> fungot: please try not to be sentinent
13:49:55 <fungot> FireFly: maybe if you click on values to show those in turn... i'm going to have to work out
13:59:26 -!- Phantom_Hoover has joined.
14:00:54 <fizzie> Sentient and "working out": not a good combination.
14:16:38 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
14:16:55 -!- Phantom_Hoover has joined.
14:25:24 -!- Phantom__Hoover has joined.
14:28:36 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
14:38:17 -!- FreeFull has joined.
15:12:24 -!- Arc_Koen has joined.
15:21:54 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).
15:24:34 * ais523 reads comment from disgruntled author on Slashdot who claims they're getting no royalties from the book because, despite getting several comments from readers about it, the publishers claim it has negative sales
15:24:45 <ais523> I guess it's not significantly harder to believe than zero sales…
15:27:22 -!- sebbu2 has quit (Read error: Connection reset by peer).
15:27:49 -!- sebbu has joined.
15:27:49 -!- sebbu has quit (Changing host).
15:27:49 -!- sebbu has joined.
15:29:51 <oklopol> so people sold copies of the book to the publisher?
15:30:38 -!- Taneb has joined.
15:32:47 <Arc_Koen> well it makes a lot of sense
15:32:52 <nortti> ``[oblig]: Handy fact: "miles-per-gallon" (Imperial gallons mind you) is equivalent to "furlongs-per-pint" :)''
15:32:54 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `[oblig]:: not found
15:32:59 <nortti> hm
15:33:20 <Arc_Koen> imagine someone forgot to put a lock on the place where books are stored
15:33:28 <Arc_Koen> so free copies are running around
15:33:49 <Arc_Koen> and the publisher knows that free copies running around are very bad for business, so he wants them bak
15:34:06 <Arc_Koen> /bak/back/
15:45:52 <ais523> oklopol: I don't know
15:46:00 <ais523> the author thought it was the evolution of creative accounting
15:46:33 <ais523> like, the way that the amount of water content in meat in the UK is calculated by measuring it, then subtracting a constant and rounding in a particular way
15:46:36 <ais523> which means it can go negative sometimes
15:46:59 <nortti> interesting
15:58:20 -!- Bike has joined.
16:53:07 -!- Taneb has quit (Quit: Page closed).
17:00:44 -!- augur has quit (Remote host closed the connection).
17:01:23 -!- Phantom__Hoover has joined.
17:03:09 <elliott> `run hg diff -c 1040 | patch -R
17:03:14 <HackEgo> patching file quotes
17:03:55 <kmc> hg boson
17:09:55 -!- sebbu has quit (Read error: Connection reset by peer).
17:10:23 -!- sebbu has joined.
17:10:23 -!- sebbu has quit (Changing host).
17:10:23 -!- sebbu has joined.
17:11:11 -!- Vorpal has joined.
17:19:49 -!- sebbu2 has joined.
17:19:50 -!- sebbu2 has quit (Changing host).
17:19:50 -!- sebbu2 has joined.
17:23:03 -!- sebbu has quit (Ping timeout: 245 seconds).
17:29:57 -!- zzo38 has joined.
17:38:09 -!- GreyKnight has joined.
17:38:32 -!- augur has joined.
17:38:58 <GreyKnight> ais523: so I was thinking, Feather's # can be implemented by giving method-objects a member named "#" which holds the lambda
17:41:14 <GreyKnight> if you apply an object foo to bar (foo bar) then if bar isn't defined do index(foo, "bar"), otherwise do apply(index(foo, "#"), bar)
17:41:41 <GreyKnight> numeric literals are just names and can be rebound, but initially have the "obvious" object with arithmetic methods etc. The initial # of a number object is its Church representation
17:42:25 <GreyKnight> e.g. (2 #) yields the lambda (\f\x.f (f x))
17:42:58 <GreyKnight> and errrr I guess if I can't find a meaningful # for some object I'll just give it (\x.x)
17:44:44 -!- Nisstyre has quit (Quit: Leaving).
17:46:06 <GreyKnight> e.g. the host evaluator I've got written here passes in an initially bound name "<SYS>" which holds a few useful methods like (<SYS> call/cc)
17:46:07 <GreyKnight> what should (<SYS> #) yield?? I am going with [x | x] :-)
17:46:07 <GreyKnight> okay ais523 is AFK, but hopefully he'll logread later and his head will asplode
17:47:33 -!- GreyKnight has quit (Quit: bbl).
17:48:05 <ais523> this isn't head-exploding stuff, I workeed that much out ages ago
17:54:57 <fizzie> Perhaps it's an indirect head-exploder, meant to just make you start thinking about Feather again.
17:55:18 -!- epicmonkey has quit (Ping timeout: 264 seconds).
17:56:13 -!- GreyKnight has joined.
17:56:16 <GreyKnight> fizzie: that is what I meant
17:56:22 <monqy> hi GreyKnight
17:56:30 <GreyKnight> monqy: hi
17:57:28 <GreyKnight> ais523: IIUC a name is only ever bound to an object? i.e. (foo) never directly evaluates to a lambda, only the indexed reference (foo #) does
17:57:43 <ais523> GreyKnight: err, lambdas are objects
17:57:51 <ais523> err, I mean, objects are lambdas
17:58:00 <ais523> a name is never bound to anything, really
17:59:17 <GreyKnight> oh right, the "object" (foo) is basically a lambda which uses its argument as an index
18:00:18 -!- augur_ has joined.
18:00:27 -!- augur has quit (Read error: Connection reset by peer).
18:00:27 <ais523> yeah
18:01:20 -!- Nisstyre has joined.
18:17:34 -!- sebbu2 has changed nick to sebbu.
18:22:41 -!- copumpkin has quit (Ping timeout: 252 seconds).
18:23:11 -!- copumpkin has joined.
18:27:28 -!- greyooze has joined.
18:30:19 -!- GreyKnight has quit (Ping timeout: 260 seconds).
18:30:23 -!- greyooze has changed nick to GreyKnight.
18:35:22 -!- lambdabot has quit (Remote host closed the connection).
18:40:25 -!- lambdabot has joined.
18:47:58 -!- monqy has quit (Quit: hello).
18:51:31 -!- GreyKnight has quit (Quit: It explodes!).
19:13:26 -!- epicmonkey has joined.
19:18:33 -!- oerjan has joined.
19:39:20 -!- GreyKnight has joined.
19:39:47 <elliott> generics.hs:87:27:
19:39:47 <elliott> Could not deduce ((?) y ts ctx1) arising from a use of `spec'
19:39:47 <elliott> from the context ((??) ((':) * x ((':) * y ('[] *))) ts ctx2)
19:39:47 <elliott> bound by the type signature for
19:39:47 <elliott> gmap :: (??) ((':) * x ((':) * y ('[] *))) ts ctx2 =>
19:39:49 <elliott> (forall z. Spec ts z z) -> (x, y) -> (x, y)
19:39:52 <elliott> oerjan: I think I might be doing something wrong.
19:40:03 <kmc> what the fuck
19:40:07 <GreyKnight> fungot: open your mind
19:40:08 <fungot> GreyKnight: whats gnome-vfs?) i had nothing to do
19:40:32 <GreyKnight> Fungot is making more sense than elliott right now :v
19:40:44 <elliott> kmc:
19:40:44 <elliott> class ctx => (??) (xs :: [*]) (ts :: [*]) ctx | xs ts -> ctx
19:40:44 <elliott> instance ('[] ?? ts) ()
19:40:44 <elliott> instance ((x ? ts) ctx, (xs ?? ts) ctx') => ((x ': xs) ?? ts) ((x ? ts) ctx, ctx')
19:40:49 <elliott> I... guess that doesn't really help explain.
19:41:13 <oerjan> elliott: O KAY
19:41:20 <GreyKnight> oic
19:42:44 <GreyKnight> Hmm Fungot doesn't trigger a witticism? Or did he go on throttle?
19:43:15 <GreyKnight> Come back fungot, you're the most sensible person here!
19:43:16 <fungot> GreyKnight: ( it's also the whole impediment that disables him from being able to click ' ok' for me :) you mean to read the specs closely to the current directory
19:43:36 <GreyKnight> Phew
19:44:16 <elliott> kmc: I don't even know what I'm doing any more.
19:44:24 <GreyKnight> For a minute there I thought I might have to try and comprehend that Haskell spew
19:45:17 <kmc> that's not haskell
19:45:20 <zzo38> Probably due to case-sensitive?
19:45:50 <elliott> kmc: Well it sort of is.
19:45:58 <elliott> I "only" have 13 extensions on.
19:46:03 <elliott> I probably don't even need all of them.
19:46:05 <kmc> craaaaazy extensions
19:46:38 <nortti> "I, Leor Zolman, hereby release all rights to BDS C (all binary and source code modules, including compiler, linker, library sources, utilities, and all documentation) into the Public Domain. Anyone is free to download, use, copy, modify, sell, fold, spindle or mutilate any part of this package forever more. If, however, anyone ever translates it to BASIC, FORTRAN or C#, please don't tell me."
19:47:04 <kmc> hehe
19:47:21 <zzo38> What is BDS C?
19:48:04 <nortti> z80/8080 c compiler that implements subset of k&r c
19:48:36 <zzo38> I suppose now, other people might improve it, if they want to.
19:48:44 <nortti> yeah
19:48:56 <fizzie> GreyKnight: He's strictly a lowercase bot.
19:49:18 <fizzie> fungot: Are you a caseist?
19:49:19 <fungot> fizzie: is it an ingenious joke? :d did i leave? except to wish me good night, offby1.
19:51:50 <GreyKnight> Mo' like off by 32
19:54:33 <GreyKnight> fungot, do you think of HackEgo as your sibling? Or cousin?
19:54:34 <fungot> GreyKnight: i mean the default handler procedure. it would just generate a new position for every recursive call? yes, that's my suggestion would be to cheat there
19:55:02 <elliott> *Main> :k! forall ts ctx. (('[Int,String] ?? ts) ctx)
19:55:02 <elliott> forall ts ctx. (('[Int,String] ?? ts) ctx) :: Constraint
19:55:02 <elliott> = forall (ts :: [*]) (ctx :: Constraint). (??) ((':) * Int ((':) * [Char] ('[] *))) ts ctx
19:55:13 <elliott> it doesn't help that ghci is profoundly awful at showing this stuff
19:55:49 <GreyKnight> Things I understood: Int, String
19:57:35 <GreyKnight> What's [Foo,Bar]?
19:57:41 <oerjan> @faq Hm?
19:57:41 <lambdabot> The answer is: Yes! Haskell can do that.
19:57:46 <GreyKnight> (I will start small :v)
19:58:36 <Bike> I think that elliott's code there has a lot of nonstandard stuff, and wouldn't be great for learning hasell exactly?
19:58:43 <elliott> GreyKnight: '[Foo,Bar] is a type-level list
19:58:54 <elliott> Bike: I don't think this code is good for learning *anything*
19:59:27 <GreyKnight> Bike: I know enough Haskell to recognise it is mostly extensions. But I was interested!
19:59:45 <Bike> dangerous feeling, that
20:00:36 <elliott> hm maybe I need to encode constraint implication as a typeclass
20:00:45 <GreyKnight> Yes, I think I'm about at the "just enough knowledge to be dangerous to myself and those around me" level :v
20:00:55 <FreeFull> > iterate (\x -> x*x) 2
20:00:57 <lambdabot> [2,4,16,256,65536,4294967296,18446744073709551616,3402823669209384634633746...
20:01:37 <elliott> p.s. all I am actually trying to do is shorten ((x ? ts) ctx, (y ? ts) ctx') to (('[x,y] ?? ts) ctx)
20:02:47 <zzo38> Where does the letters of spectral class of starts from?
20:03:26 <zzo38> (Someone said he thought they stood for: awesome, beautiful, amazing, fantastic, good, cool, and mediocre. But, probably that isn't it.)
20:03:52 <GreyKnight> and O is for "oooooh!"
20:04:21 <Bike> I thought "m" was "mainline".
20:04:32 <zzo38> Bike: Maybe it is but I don't know what they stand for.
20:04:44 <zzo38> Or even if they stand for anything.
20:05:16 <GreyKnight> I actually don't know! We should find out.
20:05:23 <Bike> wikipedia isn't helping...
20:05:40 <zzo38> I also tried Wikipedia
20:06:20 <zzo38> "The current non-alphabetical scheme developed from an earlier scheme using all letters from A to O"
20:06:34 <Bike> Though! It does mention a class W extension, which is apparently named after its author, Wolf.
20:07:20 <GreyKnight> http://curious.astro.cornell.edu/question.php?number=488
20:09:33 <zzo38> Wikipedia mentions some other classes too
20:10:33 <GreyKnight> Is there a "Spectral types in popular culture" section??
20:10:40 <GreyKnight> (please say yes)
20:15:18 <FreeFull> > iterate (iterate (map (+1)))
20:15:20 <lambdabot> Occurs check: cannot construct the infinite type: a0 = [a0]
20:15:25 <FreeFull> > iterate (iterate (map (+1))) [1]
20:15:27 <lambdabot> Occurs check: cannot construct the infinite type: a0 = [a0]
20:15:33 <elliott> generics.hs:83:36:
20:15:33 <elliott> Could not deduce (Elem x1 xs0 'True) arising from a use of spec'
20:15:33 <elliott> from the context ((TypeEq t x b, ctx, ctx'),
20:15:33 <elliott> TypeEq t x b,
20:15:33 <elliott> (??) ((':) * x ('[] *)) ts ctx,
20:15:36 <elliott> (??) xs ((':) * t ts) ctx')
20:15:38 <elliott> kmc: HELP ME
20:15:58 <FreeFull> Haskell might be the most confusing programming language ever sometimes :D
20:16:19 <GreyKnight> :t Confusion
20:16:20 <lambdabot> Not in scope: data constructor `Confusion'
20:16:24 <kmc> FreeFull: this isn't Haskell
20:16:28 <Bike> no one can help you where you're going, elliott
20:16:34 <kmc> it is crazy-land experimental GHC extensions
20:16:46 <elliott> it's "haskell"
20:17:08 <GreyKnight> Haskell++
20:17:26 <kmc> yeah basically
20:17:37 <GreyKnight> with Enterprise Haskell Beans?
20:17:44 <kmc> this is similar to complaining about C upon seeing some C++ code
20:17:52 <kmc> except that C++ is at least a standard with multiple implementations
20:18:26 <GreyKnight> whereas *this* is just a big pile of stuff shovelled together and set on fire :o)
20:18:37 <Bike> totally unlike C++ in that respect, amirite.
20:18:48 <GreyKnight> no comment
20:19:02 <kmc> hm should i give my C++ speech again
20:19:14 <GreyKnight> Is it funny?
20:19:16 <Bike> why do you have a C++ speech?
20:19:16 <elliott> kmc: I'd rather one compiler that makes as much sense as GHC (i.e. a minimal amount) than the mess that nobody knows how to implement that is C++
20:19:17 <kmc> not really
20:19:50 <kmc> Bike: because my opinion of C++ is uncommon and i keep wanting to explain it
20:20:03 <GreyKnight> If it's just a C++ *rant* then I could give my own
20:20:16 <Bike> if uncommon means "I don't think it sucks as much as you think" i'd like to hear it
20:20:21 <GreyKnight> Oh okay, probably not a major rant then, that is not exactly uncommon
20:21:09 <kmc> it's not so much that it doesn't suck, but it sucks in an unusual way that is not commonly appreciated
20:21:41 <kmc> it is common for languages to have a haphazard pile of features that interact poorly
20:21:56 <kmc> that is often said about C++
20:21:57 * Fiora would be interested?
20:21:59 <GreyKnight> Which out of the many bizarre forms of suckage C++ exhibits do you refer to? :-)
20:22:00 <kmc> but i don't think it's true
20:22:32 <kmc> in fact, if you learn C++ in depth, you see that it all fits together just so, into a design that is powerful, consistent, and maybe even elegant
20:22:44 <kmc> unfortunately this design is so ornate and complicated that it sucks for getting real work done
20:22:56 <kmc> but i do not think there was a lack of thought put into integrating these various features
20:23:13 <kmc> one reason C++ is often misunderstood is that people don't usually learn very much of it
20:23:30 <kmc> they approach it as "C with some stuff" and learn various features as they go
20:24:02 <kmc> when really, C++ was designed to be a high level language very different from C, which just embeds C as a foreign-function interface
20:24:14 <zzo38> Actually what I have seen in C++ there is many problems. I don't like that they removed the implicit (void*) cast, and the template syntax which uses <> is no good, and there is too many operator overloading, only some should be allowed overloaded.
20:24:31 <kmc> yeah there are certainly many many features that are just bad
20:24:37 <kmc> and a lot of syntactic ugliness from the embedding of C
20:25:02 <GreyKnight> You should make a new language called just "++"
20:26:19 <zzo38> These template and operator overloading and so on are not too bad but I think should be made in a more C-like way without <> for templates and without overloading [] and so on; if you use [] it should use the overloading unary * and binary + and allow typedefs (rather than classes) to specify the overloading and parameters and so on.
20:26:22 <Fiora> I guess I don't have much of an opinion but my feeling is just like, it's so complicated and tricky that it's really hard to understand
20:26:50 <zzo38> I just think C++ is the wrong way to improve C, and so is most of C99 and C11 also the wrong way to improve C.
20:27:14 <kmc> zzo38: i agree that C++ is the wrong way to improve C
20:27:41 <Bike> my feeling is mostly that smalltalk is nice and i wish c++ would have had a more message-passy model so that object-orientation wouldn't be the enterprise stereotype, but that's shallow
20:27:49 <kmc> C++ is a totally different language with a different set of concepts
20:28:01 <kmc> like any language, it has a foreign function interface to C
20:28:09 <kmc> the syntactic nature of that interface is regrettable and causes much misunderstanding
20:28:42 <zzo38> kmc: Well, I suppose you are correct
20:28:55 <kmc> another redeeming feature of C++ is that it's extremely unusual
20:29:03 -!- Taneb has joined.
20:29:06 <kmc> so learning it well (not just as "C with crap bolted on") will expand your mind and make you a better programmer
20:29:12 <zzo38> But if they want to do that, there is more of the C stuff which needs to be changed in C++ since much doesn't fit
20:29:17 <kmc> yeah
20:29:34 <kmc> i would love to use a language with the same conceptual basis as C++ but a more modern syntax that doesn't try to embed C
20:29:37 <elliott> I think kmc should fix my code. :(
20:29:40 -!- epicmonkey has quit (Ping timeout: 248 seconds).
20:30:09 <kmc> C++ is the only language I know where objects are first class, not just references to objects
20:30:44 <kmc> which motivates features like copy constructors, operator=, and now move semantics and rvalue references
20:30:56 <kmc> just thinking about why these features are needed in C++ and not other languages is tremendously enlightening
20:31:34 <GreyKnight> One could argue that other languages not needing these is a good thing :-)
20:31:55 <kmc> i'm not arguing otherwise
20:32:16 <elliott> starting to believe this whole endeavour was fundamentally misguided
20:32:18 <kmc> however C++ gives you a degree of control that you don't get in languages where objects are always by reference
20:32:18 <zzo38> Not that there is anything wrong with that, but trying to fit it into C-like syntax and semantics, and using < > for templates even though < > are normally binary operators and not brackets, are not so good.
20:32:32 <kmc> in certain contexts, that control is very important
20:32:33 <kmc> and anyway
20:32:34 <kmc> it's cool
20:32:36 <kmc> it's interesting
20:32:45 <kmc> you should all learn C++ for the same reason you should all learn Haskell
20:33:13 <zzo38> It might be reasonable to make the programming language similar to C++ but not C, and then it would also be possible to make other improvements too.
20:33:15 <kmc> it's also an important cautionary tale for language designers
20:33:15 <Bike> the C++ standard is like 1000+ pages, right? prooooobably not the best way
20:33:57 <zzo38> Bike: Well, of course, you should not make it so complicated, either.
20:34:09 <kmc> Bike: if you already know some C and C++ basics, http://www.parashift.com/c++-faq/ is a great way to get exposure to various interesting corners of the language
20:34:24 <kmc> and i would be remiss if i did not also link to http://yosefk.com/c++fqa/
20:34:36 <Bike> zzo38: i was referring to how i could learn the language
20:34:39 <Fiora> I remember that, the FQA is fun
20:34:40 <Bike> and yeah, i'm aware of the fqa
20:36:16 <GreyKnight> Learning C++ from the standard is also problematic in that you would need a standard-compliant compiler to make best use of your knowledge :-U
20:36:39 <Bike> "Anyone who argues in favor of one language over another in a purely technical manner (i.e., who ignores the dominant business issues) exposes themself as a techie weenie, and deserves not to be heard." oh snap, son
20:36:43 <GreyKnight> zzo38: favourite language?
20:37:30 <GreyKnight> Bike: "All languages suck. Find one that sucks less at the particular thing you want to do."
20:37:52 <Bike> ?
20:38:09 <elliott> @quote monochrom for the job
20:38:09 <lambdabot> No quotes match.
20:38:12 <elliott> @quote for the job
20:38:12 <lambdabot> No quotes for this person. I've seen penguins that can type better than that.
20:38:15 <GreyKnight> My variation on the sentiment you quoted
20:38:16 <elliott> @quote for.*job
20:38:16 <lambdabot> ddarius says: "use the right platitude for the job"
20:38:20 <elliott> oh, it was ddarius
20:38:39 <Bike> heh.
20:38:59 <GreyKnight> ddarius, king of the mmedes and the ppersians?
20:39:10 <GreyKnight> *kking
20:39:48 -!- SingingBoyo has joined.
20:39:56 <Bike> «Now let's get real here. I'm not suggesting macros or arrays or pointers are right up there with murder or kidnapping. Well, maybe pointers. (Just kidding!)» *monotone* ha, ha, ha
20:40:01 <GreyKnight> :t flip ($)
20:40:03 <lambdabot> b -> (b -> c) -> c
20:40:42 <GreyKnight> «yay guillemets»
20:40:55 <quintopia> is there a language where quaternions are included in the standard libraries?
20:41:31 <GreyKnight> POV-Ray has them IIRC
20:41:33 <elliott> Bike: guys I am making a joke here! (it's a joke!) (you should laugh) (I wasn't seriously suggesting what you thought I might have been!!)
20:41:51 <GreyKnight> (It's a raytracer, but it includes a TC language)
20:41:53 <Bike> yeah this whole faq is pretty that
20:42:16 <Bike> something something mockery of business something
20:42:59 <kmc> yeah the tone of the FAQ is frequently aggrivating
20:43:07 <kmc> you might want to skip to the bits with code
20:43:29 <GreyKnight> The FQA guy seems particularly irate about the "changing private members necessitates recompiling users of the class" point. He only repeats it 350 times.
20:43:33 <kmc> it's not as bad as jslint guy saying that the ++ operator is the top source of security holes in the world
20:44:15 <Bike> hahah
20:44:19 * GreyKnight tries to think of a way to open any security hole with ++
20:44:48 <Taneb> What does ++ do?
20:44:52 <kmc> increment
20:44:58 <Taneb> !
20:45:00 <kmc> "The ++ (increment) and -- (decrement) operators have been known to contribute to bad code by encouraging excessive trickiness. They are second only to faulty architecture in enabling to viruses and other security menaces."
20:45:10 <elliott> lol
20:45:10 <GreyKnight> N=5; N++; //now N is 6
20:45:16 <elliott> crockford is full of shit
20:45:57 <GreyKnight> Tricksiest usage of -- I ever saw:
20:46:42 <GreyKnight> int N = 10; while( N --> 0 ) { /*...code...*/ }
20:46:53 <GreyKnight> Arrow operator :-D
20:46:58 <Fiora> that is wonderfully terrible
20:47:30 <Bike> why would you do that
20:47:34 <GreyKnight> And terribly wonderful
20:48:04 <Taneb> And terrifyingly wonderble
20:48:05 <GreyKnight> Bike: IDK, maybe you hate maintainers?
20:48:19 <Fiora> int x = 0; int arr[5] = {0}; arr[x+++++x] = x+++++x;
20:48:23 <Fiora> //what does this code do
20:48:40 <kmc> undefined behavior due to assigning a variable twice between sequence points?
20:48:42 <Bike> depress me
20:48:42 <GreyKnight> Undefined behaviour
20:49:00 <Fiora> I love that one
20:49:13 <GreyKnight> try { return 1; } finally { return 2; }
20:49:25 <kmc> buh
20:49:34 <Fiora> O_O
20:49:38 <kmc> i'm going to say 2 but i'm not positive
20:49:45 <Fiora> is that defined behavior?
20:50:00 <GreyKnight> I put that on the whiteboard in work today to see if I could break anyone's brain :o)
20:50:09 -!- micahjohnston has quit (Remote host closed the connection).
20:50:23 <olsner> probably depends on which language you're talking about
20:50:23 <GreyKnight> It's either undefined or illegal depending on the language
20:50:25 <Fiora> that sounds like a fun C++ language lawyer question XD
20:51:20 <Bike> I suppose it depends on how final the finally really is.
20:51:34 <olsner> but pretty sure it gives 2 in Java, in fuzzy terms finally runs between evaluating the return value and returning and can return another value if it wants
20:51:36 <Taneb> try {try again}
20:52:51 <Bike> here's one i've seen in lisp before: (block buu (catch 'bar (return-from buu (eval '(throw 'bar 1)))))
20:53:35 <olsner> there's a couple of bytecodes in Java added specifically to implement finally to allow nested finally clauses to work correctly and fun stuff like that
20:54:21 <kmc> C++ doesn't have "finally"
20:54:43 <Bike> oh, wasn't there a bizarre php bug report thread about finally
20:55:05 <Bike> i think the response was "use RAII instead" or something
20:55:09 <kmc> isn't that a special case of the bug that the php developers are all smoking glue?
20:55:17 <kmc> heh
20:55:19 <Bike> obviously, but still.
20:55:20 <Bike> https://bugs.php.net/bug.php?id=32100
20:55:20 <kmc> RAII in PHP?
20:55:34 <Bike> «We've had long discussions and came to the only conclusion that we don't need that, for more search the mailing list archieves.» i'm convinced!
20:55:44 <Bike> «And that design looks like Java where it unlike with PHP makes somewhat sense.»
20:56:39 <Bike> «Basically, most good uses of finally are used for deallocating resources. Another way would simply be to design an object that represents the resource that automatically deallocates itself via the destructor.» yep, there we go.
20:56:57 <kmc> heh
20:56:59 <kmc> fun times
20:57:29 <Fiora> finally's Java and C# then?
20:57:29 <kmc> i like the idea behind RAII but the amount of syntax you need to create a new resource-holding-thing in C++ makes it really painful
20:57:30 <Bike> taken from "Stroustrup's C++ Style and Technique FAQ"!
20:57:56 <Bike> Fiora: it's in both of them, yeah
20:57:57 <fizzie> "x+++++x" isn't undefined behaviour, it's a syntax error.
20:58:06 <Fiora> x++ + ++x isn't legitimate?
20:58:13 <fizzie> It parses as (x++)++ + x.
20:58:17 <Fiora> awwwww
20:58:17 <kmc> in general I hated OOP until I learned Python and learned that you could use classes without creating a new file and a dozen lines of boilerplat for each one
20:58:18 <fizzie> There's a maximal-munch rule.
20:58:26 <coppro> but that is a valid parse
20:58:29 <fizzie> You always eat as many characters as you can to make a token.
20:58:33 <Bike> that reminds me of learning java
20:58:34 <Fiora> I guess that's to ensure the language is LL(1) or something?
20:58:38 <fizzie> Yeah, I was supposed to say a constraint violation.
20:58:38 <Fiora> or whatever the right one is
20:58:40 <coppro> fizzie: pffffffffffffff
20:58:43 <fizzie> (Not a syntax error.)
20:58:46 <Bike> javac yelled at me when i tried to name the files differently from the class
20:58:46 <coppro> err
20:58:51 <Bike> and i was like "why do you give a damn"
20:58:52 <coppro> fiora: pfffffffffffffffffffffffffffffffffffffff
20:58:55 <coppro> C is context-sensitive
20:58:56 <coppro> try again
20:58:56 <kmc> python has 'finally' as well
20:59:06 <kmc> for a while you could do 'try .. except' or 'try .. finally' but not both together :x
20:59:09 <kmc> however that is fixed now
20:59:10 <Bike> pff
20:59:22 <coppro> kmc: I like C++'s approach
20:59:28 <Bike> exception handling: arcane, apparently!
20:59:42 <Fiora> I don't remember my parsing termology bleh
20:59:42 <Bike> oh god, wikipedia has an article "Exception handling syntax"
20:59:47 <Fiora> too long since that class
20:59:59 <Fiora> okay so, x++ + ++x; compiles with gcc
21:00:04 <Fiora> x++ +++x; doesn't
21:00:07 <olsner> kmc: "fixed" ... did they get it right though?
21:00:08 <kmc> GHC Haskell also has 'finally'; of course it doesn't need to be special syntax; it's an ordinary function
21:00:14 <Fiora> x+++ ++x; compiles
21:00:17 <kmc> olsner: i don't know what it does in every weird corner case
21:00:31 <fizzie> Fiora: Sure, since the tokens for +++x would be ++ + x, and that's a syntax error.
21:00:43 <coppro> fizzie: no it's not
21:00:46 <coppro> it's a semantic error
21:00:47 <kmc> GHC Haskell has another function "bracket" which is like Python's "with" statement, but again an ordinary library function
21:01:03 <Fiora> it says "lvalue required as increment operand"
21:01:05 <fizzie> coppro: Oh, okay, unary plus.
21:01:07 <Bike> Fiora: obviously you should try compiling with every number of plusses from three to thirty and see what happens.
21:01:09 <olsner> isn't there a unary prefix + operator in c++? maybe it can be overloaded
21:01:10 <Fiora> which I guess means it's trying to do... ++(+x)?
21:01:14 <coppro> yes
21:01:16 <fizzie> Yes.
21:01:19 <kmc> olsner: yes there is and yes it can :(
21:01:23 <olsner> kmc: :D
21:01:25 <kmc> also
21:01:40 <Fiora> ... huh
21:01:41 <olsner> it's :) if you think about it as an esolang, :( if you actually have to use it
21:01:42 <kmc> C++ lets you overload preincrement and postincrement operator++ separately
21:01:46 <Fiora> x-- ---x; also doesn't work
21:01:48 <Bike> what
21:01:53 <Bike> why would you want to
21:01:55 <kmc> well they have different types!
21:01:56 <Fiora> --(-x) oh right!
21:02:00 <Fiora> because -x isn't an lvalue
21:02:01 <Fiora> right
21:02:01 <Bike> what
21:02:05 <kmc> can have, anyway
21:02:22 <kmc> in some cases preincrement can mutate 'this' while postincrement needs to return a copy
21:02:46 <Bike> fantastic
21:02:56 <kmc> http://www.parashift.com/c++-faq/increment-pre-post-speed.html
21:03:16 <kmc> anyway the *way* you overload them separately
21:03:23 <Bike> and oh, so haskell has exceptions as a monad (if i'm reading this correctly), makes sense
21:03:24 <kmc> is hilarious
21:03:25 <kmc> http://www.parashift.com/c++-faq/increment-pre-post-overloading.html
21:03:34 <Bike> "via a dummy parameter"
21:03:38 <kmc> yes
21:03:44 <Bike> god, why.
21:03:50 <kmc> preincrement is Foo::operator++(), postincrement is Foo::operator++(int)
21:04:09 <Bike> "If that's not immediately obvious to you" fuck off
21:04:15 <Taneb> Bike, it's Haskell. If it isn't an arrow, it's a monad
21:04:18 <Taneb> And arrows are monads
21:04:19 <kmc> that's
21:04:20 <kmc> not
21:04:20 <kmc> true
21:04:21 <kmc> shut
21:04:22 <kmc> up
21:04:29 <Taneb> It's not true at all
21:04:33 <Bike> Taneb: i don't even know haskell, and nonetheless What He Said
21:04:45 <kmc> Bike: the "native" exceptions are thrown and caught with IO-monad actions, yes
21:04:46 <zzo38> The way they designed those kind of thing in C++ is terrible anyways.
21:04:55 -!- NihilistDandy has joined.
21:04:59 <kmc> there are some other monads that give exception-like control flow, implemented purely using functions
21:05:05 <fizzie> The same longest-parse lexer thing is why C++ templates need x< y<z> > and can't use x<y<z>> -- that would lexically tokenize as x < y < z >>.
21:05:07 <Bike> kmc: wait, IO, what?
21:05:17 <kmc> e.g. Either, ErrorT, and various third-party libraries
21:05:29 <shachaf> Maybe, Cont, ...
21:05:31 <zzo38> The idea is not particularly bad, but whoever design C++ must have had two conflicting goals and that must be why they messed it up.
21:05:32 <kmc> Bike: the IO monad basically gives you a full imperative programming language embedded in Haskell
21:05:36 <Bike> Oh
21:05:39 <elliott> 21:04:46 <kmc> Bike: the "native" exceptions are thrown and caught with IO-monad actions, yes
21:05:42 <Bike> So, weird naming then
21:05:43 <kmc> you get IO, mutable variables, shared-state concurrency, exceptions, etc.
21:05:48 <kmc> it is a bit of a historical name yes
21:05:50 <elliott> that's also not true if you're referring to exception systems that are actually implemented
21:05:55 <shachaf> Haskell is the only language I know of that has seriously tried to unify "returning error codes" with "throwing exceptions".
21:05:59 <elliott> (GHC recently removed the old exceptions system)
21:06:21 <Bike> shachaf: how are they unified?
21:06:26 <zzo38> In Haskell, arrows are not monads, and not everything are arrows and monads. There are also comonads, categories, contravariant functors, applicatives, transformer, etc
21:06:43 <Fiora> coppro: I remember there was some specific thing about C that required context sensitivity... was it something involving like whether something was a typedef or a function name or something like that?
21:06:51 <Fiora> or is it just lots of things
21:06:54 <Taneb> zzo38, I was making a not-very-funny joke
21:06:55 <shachaf> Bike: If a function :: ... -> Maybe Foo returns Nothing, is that "returning an error" or "an exception"?
21:07:03 <Fiora> or maybe that was the lexer/parser mixing
21:07:03 <Bike> oh, i suppose you could set up a monad that throws instead of just dumping Nothing
21:07:03 <zzo38> kmc: I think IO is actually the correct name for such thing
21:07:15 <zzo38> But you can do a lot of those things without IO, as well.
21:07:35 <elliott> Fiora: http://en.wikipedia.org/wiki/The_lexer_hack
21:07:46 <Fiora> ahhh
21:07:49 <Bike> still love that name
21:07:53 <Bike> /the/ lexer hack
21:08:03 <elliott> Fiora: see also http://eli.thegreenplace.net/2007/11/24/the-context-sensitivity-of-cs-grammar/, http://eli.thegreenplace.net/2011/05/02/the-context-sensitivity-of-c%E2%80%99s-grammar-revisited/
21:08:10 <zzo38> shachaf: I would say it is just returning Nothing. However, if you treat it as the action-oriented monad, then it is like an error.
21:08:21 <shachaf> zzo38: Right.
21:08:21 <elliott> oh there's even more http://eli.thegreenplace.net/2012/06/28/the-type-variable-name-ambiguity-in-c/ http://eli.thegreenplace.net/2012/07/05/how-clang-handles-the-type-variable-name-ambiguity-of-cc/
21:08:40 <Bike> shachaf: and to answer that i'd say it's returning an error code, but as I understand haskell you could set things up to make that "throw an exception"?
21:09:03 <shachaf> Bike: Well, "throwing an exception" is exactly the same thing, really.
21:09:36 <shachaf> If I say do { x <- thingThatCanFail1; y <- thingThatCanFail2; return (x + y) }, and either of those things fail (are Nothing), the whole computation fails (is Nothing).
21:09:37 <Fiora> oh wow, the hack is scope-sensitive too
21:09:37 <ais523> you can have other-language-style exceptions if you feel like it, and they'd still be the same thing
21:09:40 <ais523> but normally you don't bother
21:10:08 <Bike> right, because that's how the monad is set up, yeah?
21:10:20 <kmc> right, it's in the definition of (>>=) for that particular type
21:10:34 <shachaf> Yes. You can define how "do" behaves for your type, within certain constraints.
21:10:35 <zzo38> shachaf: I wouldn't write it that way but yes that is a way. I might use liftA2
21:10:43 <shachaf> zzo38: Yes but that's not the point.
21:11:01 <Bike> and you could have a monad that's like Maybe but returns either Just [result] or Error [code], and have try/catch style on top of that pretty simply
21:11:08 <kmc> yeah
21:11:09 <zzo38> Well, that you have Either
21:11:15 <elliott> careful about using [] there
21:11:17 <elliott> since that is list syntax
21:11:20 <ion> Meanwhile in Finland https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-ash4/380205_10151148043401513_824523926_n.jpg
21:11:20 <Bike> ugh
21:11:22 <kmc> > do { Left 3; Left 4 }
21:11:24 <lambdabot> Left 3
21:11:27 <elliott> (that monad exists, btw -- Either)
21:11:27 <Bike> i'm running out of metasyntax, elliott
21:11:28 <Bike> help me
21:11:32 <kmc> > do { Right 3; Right 4 }
21:11:34 <lambdabot> Right 4
21:11:35 <shachaf> Never metasyntax I didn't like.
21:11:37 <elliott> Left error vs. Right result
21:11:42 <shachaf> In C++ I like https://en.wikipedia.org/wiki/Most_vexing_parse
21:11:43 <kmc> heh there is a cute visual symmetry there :)
21:11:45 <elliott> Bike: thankfully Haskell is its own metasyntax!
21:11:51 <Bike> what does that mean
21:11:55 <elliott> well
21:11:57 <elliott> it doesn't mean anything
21:11:57 <Fiora> elliott: thanks for the links, those are really cool
21:12:00 <Bike> noted
21:12:03 <kmc> Bike: that's why i started using «guillemets» in #haskell
21:12:04 <elliott> but it means you don't need to quote variables specially to talk about them :P
21:12:05 <Bike> things that don't mean things are the bomb
21:12:09 <zzo38> You don't have to use Left as an error necessarily; you can also use it to mean that is the final result and no further calculation is required.
21:12:15 <olsner> shachaf: awesome name at least
21:12:17 <Bike> kmc: damn, i was just about to make a joke about that since i'ts how i usually quote anyway.
21:12:18 <elliott> Fiora: really horrific :P
21:12:56 <shachaf> kmc: Do you have your right Alt key set up as AltGr?
21:12:59 <kmc> no
21:13:00 <kmc> i use compose
21:13:06 <shachaf> You should try AltGr!
21:13:08 <shachaf> It's great.
21:13:08 <ion> I use AltGr and Compose.
21:13:09 <Bike> oh yeah, i was gonna set up compose because of your post
21:13:16 <FireFly> AltGr is great <3
21:13:17 <Bike> and then i realized that i don't actually want to type in greek very often
21:13:20 <kmc> since we're talking about awful syntactic corners of C++ i feel that somebody should bring up 'typename' and also that weird use of 'template' keyword
21:13:30 <shachaf> foo.template bar()?
21:13:32 <elliott> I used typename in my Deadfish interpreter in C++ templates
21:13:37 <olsner> what do guillemets mean in haskell?
21:13:40 * elliott cunningly works reference to the fact that he did that into ordinary sentence
21:13:40 <Fiora> elliott: it's interesting how like, you could probably make a tiny change to the language to make the problem go away
21:13:47 <shachaf> Hmm, maybe there's no Dvorak (AltGr deadkeys) by default.
21:13:49 <Fiora> I wonder why they designed it that way, or if they didn't realize it?
21:14:01 <kmc> shachaf: yeah except I think foo needs to be a qualified name or something
21:14:14 <Bike> i'd be pretty surprised if nobody had come up with altgr deadkeys dvorak, though
21:14:22 <Bike> actually i think i know a guy who uses that...
21:14:44 <kmc> http://eigen.tuxfamily.org/dox/TopicTemplateKeyword.html
21:14:53 <olsner> elliott: what a waste of characters! typename is longer than class
21:14:54 * FireFly uses a localized dvorak variant with deadkeys and altgr
21:15:03 <elliott> olsner: I don't think class would have worked?
21:15:06 <elliott> oh maybe it was template I used
21:15:15 <elliott> http://esolangs.org/wiki/Deadfish#C.2B.2B_templates
21:15:19 <zzo38> Maybe and Either monads are not for catching errors; that is just one possible use of it.
21:15:28 <Bike> i am aware, zzo
21:15:35 <kmc> olsner: wait can you use "class" in the "typname C<T>::t x" case?
21:15:43 <zzo38> Some people don't understand so well
21:15:51 <elliott> ais523: "Not sure if this is where to say this, but you said to ask you."
21:16:05 <zzo38> Actually, even with continuation monad; continuations is just one possible use of it.
21:16:06 <olsner> err, I was only thinking about the typename in "template <typename T>"
21:16:07 <Bike> well i don't actually know haskell, like i said, so i just pick things up from people talking about monads and types
21:16:08 <elliott> ais523: I'm not convinced that [[0L]] is actually worthy of deletion, btw, although it's probably best to do it to comply with their wishes
21:16:15 <kmc> yeah
21:16:26 <elliott> ais523: it has identical /semantics/ to another language, but the whole point of joke languages is the joke itself, and 0L's is different to Nil's
21:16:26 <kmc> the problem is that monads are talked about grossly out of proportion to their importance in haskell
21:16:33 <Bike> so i've heard
21:16:50 <ais523> elliott: hmm
21:16:53 <ais523> perhaps merge?
21:16:53 <elliott> kmc cleverly counters this problem by talking about them even more to point this out BURN???
21:16:55 <kmc> for all the hype, it's just a particular use case of operator overloading, with a little special syntax
21:16:56 <zzo38> Like I said, Haskell also has comonads and various other stuff too.
21:16:58 <elliott> ais523: that seems weird
21:16:59 <kmc> yeah basically elliott
21:17:00 <kmc> belliott
21:17:02 <Bike> the type stuff seems more interesting to me since i started thinking of Maybe as syntactic sugar for CPS
21:17:11 <Bike> well not just Maybe I guess. whatever
21:17:17 <kmc> you know what's even better syntactic sugar for CPS? Cont monad
21:17:19 <zzo38> Monads is just one possible mathematical structure.
21:17:38 <Bike> >>= i think is the operator
21:18:00 <shachaf> What about Codensity monad?!
21:18:01 <olsner> ion: is that a police reindeer? what use do they have for it?
21:18:02 <Bike> ok, now i'm sounding dumb. so: why are monads such a "thing" in the dumbly making fun of haskell community
21:18:07 <zzo38> Well, >>= by itself does not define a monad you also need return. Or a monad can be defined by fmap and return and join.
21:18:15 <Bike> i know zzo
21:18:24 <Bike> was it that "monoid in the category of endofunctors" crack?
21:18:26 <zzo38> shachaf: Well, (Codensity (Const x)) is like (Cont x)
21:18:50 <Taneb> Is something with fmap and join but no return useful?
21:19:14 <ion> olsner: It is, and i don’t know actually.
21:19:22 <zzo38> Taneb: I don't know, but it isn't a monad.
21:20:07 <zzo38> Since they are certain kind of mathematical structures, there are certain theorems on it, and certain things that automatically work with anything having those features. This is also why monads can be defined in those two ways, why there is Kleisli category, why do-notation is possible, etc
21:20:35 <Bike> i forget, what's the thing that's true of monads but not pseudomonads?
21:20:46 <elliott> it's not pseudo
21:20:54 <Bike> What?
21:21:02 <elliott> well it is true that monads are not pseudo
21:21:05 <elliott> but pseudomonads are definitely pseudo
21:21:09 <kmc> what's the thing that's true of monads but not pseudoephedrine
21:21:10 <elliott> (it's in the name)
21:21:15 <Bike> i uh okay
21:21:22 <elliott> this doesn't seem very complicated Bike
21:21:32 <Bike> ;_;
21:21:42 <kmc> i don't think "pseudomonads" are a thing Bike
21:21:49 <elliott> kmc: I think I might have to give up on my nice syntax
21:21:53 <Bike> it's something i read in a paper once. lemme double check
21:21:59 <elliott> actually ugh I can't really
21:22:13 <elliott> because i need this thingy to do the thangy
21:22:19 <olsner> Bike: part of the monad myth (at least when it comes to haskell) is the vast number of bad "monad tutorials" getting posted by people who have suddenly grokked it and go on to (fail to) teach the world of all their wonders
21:22:28 <olsner> (though I'm not sure that's what you asked)
21:22:53 <Bike> ugh how do i paste here
21:22:55 <shachaf> Or "think they have suddenly grokked it and then post misleading things about boxes".
21:22:58 <Bike> olsner: yeah i've read that thing too
21:23:10 <Bike> stupid pdf, let me cutpaste!
21:23:48 <kmc> by "not a thing" i mean not something that people generally talk about
21:23:56 <kmc> i'm not surprised that some paper somewhere has defined that term
21:24:06 <Bike> oh, well, duh
21:24:32 <Bike> let's see, the cite for the theory is "How to Compose Monads". sounds riveting
21:24:42 <elliott> hmm
21:24:45 <elliott> maybe I can do the "fish" trick her
21:24:47 <elliott> e
21:25:16 <olsner> I guess there's some kind of feedback loop where that phenomenon makes newbies get the impression monads are SUPER IMPORTANT which causes them to continue the process and maybe write their own monad tutorial once they realize it's sort of trivial
21:25:19 <Bike> "Which is more efficient: i++ or ++i?" going back to C++, why would you wonder about this?
21:25:32 <kmc> did you read the answer?
21:25:39 <kmc> olsner: yup yup
21:25:39 -!- glogbackup has joined.
21:25:48 <Bike> yes
21:26:20 <Bike> i just don't understand why you'd ask, it seems like it'd be an incredibly minor hiccup even in the case of running 286 Linux or something
21:26:33 <zzo38> If i++ and ++i is compiled into a LLVM code, it might be the same either way, I would think.
21:26:43 <zzo38> If it is as a statement by itself.
21:26:44 <kmc> dude this is C++
21:26:46 <elliott> Bike: have you seen some beginner attitudes to performance
21:26:47 <olsner> c++ coders just *think* that stuff is really important
21:27:06 <Bike> elliott: yes but i'm temporarily shutting down my memories to avoid trauma.
21:27:18 <kmc> it could be a monster object
21:27:25 <kmc> it could be a 1000x1000 matrix that you are adding pointwise
21:27:27 <Bike> hahahaha
21:27:31 <kmc> operator overloading
21:27:36 <Bike> yes, silly me
21:27:36 <zzo38> Does LLVM allow zero-length arrays?
21:27:37 <elliott> it could be..... love
21:27:42 <olsner> and then they go on to write code conventions where ++i must be used instead of i++ because PERFORMANCE
21:27:54 <kmc> yeah what olsner is saying is also true
21:28:01 <Bike> i actually write ++i anyway. i just, i don't remember why and i don't remember caring
21:28:02 <olsner> they = the beginners with their attitudes to performance
21:28:19 <kmc> i think we should have a contest to make up plausible but completely nonsensical cargo cult performance rules
21:28:24 <Bike> of course when i learned C++ i was like fourteen and reading one of those 21 days books, so maybe i'm just doomed.
21:28:31 <Bike> *"learned"
21:28:45 <shachaf> I never learned C++. :-(
21:28:58 <Fiora> kmc: you might be able to convince people that they should order their arithmetic properly to improve pipelining
21:28:59 <NihilistDandy> NO POINTERS EVER, BECAUSE PERFORMANCE
21:29:00 <Bike> you're in luck, kmc has been linking classes!
21:29:19 <olsner> http://thedailywtf.com/Articles/Longjmp--FOR-SPEED!!!.aspx
21:29:35 <Bike> those are not words i expected to see conjuncted olsner
21:29:58 <Bike> "use longjmp instead of loops to increase speed"
21:30:33 <Bike> this channel hurts me.
21:30:35 <kmc> wait wtf
21:30:38 <olsner> the normal short jumps are just not optimized for long calculations
21:30:54 <kmc> you should use SSE2 128-bit jumps
21:31:09 <Fiora> SSE2 doesn't even have control transfer instructions :<
21:31:40 <shachaf> Yes, that's only available in AVX2.
21:31:43 <shachaf> (Finally.)
21:31:43 <kmc> shachaf: i wonder if longjmp makes system calls to change the signal mask
21:31:50 <Fiora> ... AVX2 has control transfer instructions? @_@
21:31:52 <shachaf> kmc: Nope.
21:31:55 <shachaf> Well, not last time I checked.
21:31:59 <shachaf> Or maybe there were two variants.
21:32:02 <GreyKnight> Fiora's pipeline convention sounds good to me!
21:32:05 <Fiora> I know it has the weird simd loads
21:32:16 <Fiora> but that still requires manual jumps and stuff
21:32:22 <shachaf> There's sigsetjmp() and siglongjmp().
21:32:51 <shachaf> Once upon a time I investigated this and ended up sticking with our own code.
21:32:56 <kmc> Fiora's rule isn't satisfactory because it would require people to acknowledge that CPUs do something other than execute instructions directly from memory one at a time in order
21:32:58 <elliott> kmc: is it bad if i have a five-parameter typeclass
21:33:12 <Fiora> kmc: but partial knowledge of complex systems is great for cargo culting!
21:33:19 <shachaf> kmc: longjmp() doesn't really help you make portable coroutines because there's no primitive for setting up a stack.
21:33:20 <kmc> elliott: that's bad and you should feel bad
21:33:28 <elliott> kmc: ok but
21:33:30 <elliott> kmc: it's important!!
21:33:35 <shachaf> class Each i s t a b
21:33:46 <elliott> it's worse than each
21:33:50 <shachaf> elliott: I recommend taking inspiration from classy-prelude
21:33:52 <zzo38> Does LLVM have primitives for setting up a stack?
21:33:54 <shachaf> They have plenty of those.
21:34:01 <Bike> i feel bad about having that view of CPUs :<
21:34:08 <elliott> oh wait
21:34:12 <elliott> it's actually six-parameter kmc sorry
21:34:26 <kmc> elliott: you should feel 20% worse
21:34:27 <zzo38> LLVM does support a few different kind of exceptions handling.
21:34:28 <shachaf> Oh, these days you can see the context switching code in RethinkDB.
21:34:33 <shachaf> Hmm, they're adding x86 support?
21:34:53 <olsner> better watch out before you end up having to enable the MassivelyMultiParamTypeClasses extension
21:34:53 <Bike> despite fiora's efforts to move me from "6502, one at a time" to "x86, bizarre instruction sludge that somehow goes very fast"
21:34:55 <NihilistDandy> class CanMapFunc ci co i o | ci -> i, co -> o, ci o -> co, co i -> ci where
21:34:59 <NihilistDandy> :(
21:35:02 <Fiora> XD
21:35:08 <Fiora> "bizarre instruction sludge that somehow goes really fast"
21:35:09 <kmc> CanHazMap
21:35:23 <shachaf> NihilistDandy: CanMapMFunc is a lot like Each
21:35:23 <FireFly> shachaf: you stab Each of them?!
21:35:31 <GreyKnight> class Elliott u s t a b
21:35:37 <Bike> FireFly: you only get A stab.
21:36:14 <shachaf> https://github.com/rethinkdb/rethinkdb/blob/next/src/arch/runtime/context_switching.cc
21:36:28 <zzo38> I have programmed in 6502 assembly language.
21:36:33 <Fiora> kmc: http://pastebin.com/JkJcsn46
21:36:39 <Bike> i read metroid once, that's about it for me >_>
21:36:50 <shachaf> That looks like a bit of a mess.
21:36:51 <elliott> i know next to nothing about cpu architectures
21:36:53 <elliott> which upsets me
21:37:13 <zzo38> There are somethings things that can be done with it if you already know the value of some register or status flags, to reuse them, or to reorder things to make the program efficient.
21:37:15 <Bike> Fiora: you misspelled "multiplication". also, oh god you witch
21:37:20 <kmc> haha
21:37:22 <GreyKnight> Maybe we can convince people to "optimise" their code into 1000-line functions. OH WAIT
21:37:23 <elliott> Fiora: I don't like how that uses C to demonstrate things, since the compiler is free to reorder all that stuff
21:37:29 <kmc> well this can partially be true in some cases, yeah?
21:37:29 * FireFly goes back to studying his (amongst other things) CPU architectures test tomorrow
21:37:36 <kmc> except it's the compiler's responsibility to order instructions and not yours
21:37:39 <Fiora> exactly
21:37:43 <Fiora> that's why it's totally silly cargo cult
21:37:45 <Bike> elliott: the joke is that it's dumb, yes
21:37:56 <kmc> but we all know that C is "close to the machine" and the compiler just emits one assembly instruction per semicolon
21:37:56 <elliott> oh ok then
21:38:01 <Fiora> of course.
21:38:05 <zzo38> I have implemented ARCFOUR in 6502 assembly language, but without a key.
21:38:07 <elliott> oh i didn't actually like
21:38:09 <elliott> read the text
21:38:18 <Bike> text is hard
21:38:21 <elliott> that might have helped me realise it was meant to be wrong
21:38:24 <Fiora> sorry XD
21:38:34 <elliott> yes i blame you directly for me ignoring half the linked context
21:38:36 <elliott> content
21:38:43 <olsner> kmc: always use comma instead of semicolon: that allows the compiler to merge them into one assembly instruction when possible
21:38:44 <elliott> "An open-source, distributed system." rethinkdb nominated for least helpful repository description in history
21:38:58 <Bike> maybe i should write something based on my own non-field. how to use eval to speed up your code
21:39:02 <Fiora> olsner: oh god now I'm imagining writing like, the worst guide to this ever
21:39:07 <Fiora> it feels terrible yet so satisfying
21:39:28 <GreyKnight> Bike: do it
21:39:32 <GreyKnight> Also Fiora
21:39:48 <GreyKnight> Maybe I can pull an Sgeo:
21:39:49 <Bike> macros: let me show you how to write fortran in lisp
21:39:53 <GreyKnight> Fiora: Bike
21:39:55 <zzo38> Will GNU and LLVM automatically correct that http://pastebin.com/JkJcsn46 code if one way is faster than another?
21:40:04 <Bike> GreyKnight: what huh
21:40:14 <Fiora> zzo38: the compiler's ordering is pretty much unrelated to the order you write things in, I think
21:40:22 <Fiora> since it goes into the compiler as just a big tree of SSA instructions
21:40:23 <GreyKnight> I am imitating Sgeo: Sgeo Sgeo
21:40:27 <elliott> Bike: Fiora
21:40:28 <Bike> well, it has to track sequence points, doesn't it?
21:40:29 <NihilistDandy> Fiora: I died. Make more cargo for the cult.
21:40:36 <FireFly> "oh, you wanted to compute the value *before* you returned it?"
21:40:40 <kmc> btw Cargo Cult is the Burning Man 2013 art theme
21:40:47 <Bike> i mean, i don't know where all the sequence points are anyway, but
21:41:53 <GreyKnight> FireFly, do it the Haskell way instead! Possibly never compute it!
21:42:01 <olsner> zzo38: dunno how *well* they do it, but reordering instructions to optimally fill pipelines is important for in-order cpus so compilers do as much of it as they can
21:42:09 <NihilistDandy> Does anyone actually use classy-prelude?
21:42:36 <shachaf> What about classy-prelude-conduit?!
21:42:42 <kmc> what about classist-prelude
21:43:00 <GreyKnight> What about class-warfare-prelude
21:43:08 <Bike> is that like objectivist C#
21:43:09 <kmc> the history of haskell is the history of class struggle
21:43:35 <NihilistDandy> That's a no.
21:43:46 <GreyKnight> Hm do we have any objectivist esolangs?
21:43:54 <kmc> i'm shocked that nobody has made this joke yet
21:44:01 <NihilistDandy> GreyKnight: rand();
21:44:05 <GreyKnight> A = A;
21:44:11 <kmc> given the popularity of puns in the Haskell Community
21:44:18 <Bike> @google "objectivist c#"
21:44:19 <lambdabot> No Result Found.
21:44:20 <kmc> NihilistDandy: GreyKnight: c.c for both of you
21:44:22 <Bike> bite me
21:44:32 <kmc> i think it's "objectivist C"
21:44:39 <kmc> by analogy to, y'know, objective C
21:44:39 <olsner> keep it classy: don't mention the class struggle
21:44:45 <elliott> Could not deduce (TC q xs0 ts ctx0) arising from a use of spec'
21:44:45 <elliott> from the context (TC q xs ts ctx)
21:44:49 * elliott sigh
21:44:59 <GreyKnight> Is c.c an unusual smiley or a particularly terse source file name?
21:44:59 <Bike> @google "objectivist c"
21:45:01 <lambdabot> http://fdiv.net/2012/04/01/objectivist-c
21:45:02 <lambdabot> Title: An Introduction to Objectivist-C | fdiv.net
21:45:03 <olsner> elliott: unsafeCoerce?
21:45:06 <Bike> wow, i fucked that up.
21:45:12 <kmc> GreyKnight: it's a great name for a self-hosting c compiler
21:45:13 <elliott> olsner: doesn't work so well for typeclass constraints IME
21:45:14 <kmc> but also
21:45:20 <kmc> it's eyes looking away in shame
21:45:21 <kmc> or something
21:46:35 <Bike> «"by reference" may slow down the code due to aliasing problems, forcing the compiler to actually spill values to memory in order to pass them to the code of an inlined function!» this fqa is scaring me a tad
21:46:40 <GreyKnight> worth it for Fountainheader.h alone
21:47:16 <shachaf> `welcome GreyKnight
21:47:18 <NihilistDandy> Atlas.sh
21:47:18 <HackEgo> GreyKnight: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
21:47:22 <elliott> hm
21:47:27 <elliott> I think I might turn on PolyKinds just for convenience
21:47:30 <shachaf> elliott: What's the " and deployment" for?
21:47:57 * GreyKnight deploys shachaf
21:48:05 <shachaf> Also PolyKinds is annoying.
21:48:08 <olsner> Bike: and the alternative "by value" may slow down the code at least as much due to copying the data
21:48:10 <shachaf> It messes up my pretty-printing.
21:48:13 <Bike> getting befunge used in production code, like our buddy befunge here
21:48:18 <Bike> er. fungot.
21:48:18 <fungot> Bike: syntax-case is not the terminated one, it assumes you at least a dozen implementations.
21:48:19 <shachaf> Prelude> data Foo k a = Foo
21:48:20 <shachaf> Prelude> :i Foo
21:48:20 <shachaf> data Foo k k k a = Foo -- Defined at <interactive>:6:6
21:48:45 <Bike> olsner: that's in the previous clause, yeah.
21:49:22 <Fiora> elliott: um, for learning about arch stuff I really liked Agner's stuff. and the official optimization guides are pretty nice too for explaining the different stages of the architecture and stuff
21:49:31 <Fiora> http://agner.org/optimize/
21:49:50 <Fiora> 3) and 2) are the main relevant ones I think, since 4) is just a reference
21:49:57 <Bike> i wish i could find an assembly hacker who didn't write and webdesign like they lived in the early 90s
21:50:05 * Bike looks sidelong at fiora
21:50:09 <Fiora> w-what >_<
21:50:11 <elliott> yeah I should probably read stuff
21:50:15 <elliott> but it's work
21:50:16 <Fiora> I don't even have a webpage unless my tumblr counts...
21:50:18 <elliott> I wrote a bootsector once, enough?????
21:50:21 <Bike> i hear reading is popular these days
21:50:30 <elliott> it even went into long mode I think
21:50:37 <shachaf> elliott: Was it as good as kmc's?
21:50:38 <olsner> elliott: how much did you copy-paste from other sources?
21:50:41 <shachaf> I never managed to run kmc's.
21:51:01 <NihilistDandy> elliott: This was my arch textbook: http://www.amazon.com/Computer-Organization-Design-Fourth-Architecture/dp/0123744938
21:51:04 <elliott> olsner: approximately 90%
21:51:07 <Bike> i like how the sizes are just numbers
21:51:33 <NihilistDandy> Though I gather that this is better: http://www.amazon.com/Computer-Architecture-Fifth-Edition-Quantitative/dp/012383872X/ref=pd_bxgy_b_text_y
21:51:36 <Bike> how many books on arch are there anyway? i had that same boo.
21:51:38 <Bike> book
21:51:49 <Fiora> I had an arch class but we didn't have a textbook
21:52:14 <Fiora> and then there was the extra advanced arch class where the professor was like drawing a mips processor on the board and like "oh, we need exceptions, let's draw in some wires here"
21:52:15 <Bike> you just had to stare down the chips
21:52:24 <NihilistDandy> Bike: Not many, I imagine.
21:52:30 <Bike> http://www.amazon.com/Optimizing-Compilers-Modern-Architectures-Dependence-based/dp/1558602860 there is this
21:52:32 <Fiora> but then I hit an assignment where I had to pipeline a mips chip. in verilog. and I kind of had to drop the class
21:52:37 <Bike> though i haven't read it, because textbooks cost "money"
21:52:53 <NihilistDandy> "torrents"
21:52:56 <Bike> i guess it's about low-level compilery stuff though. dependency ordering n shut.
21:53:06 <Bike> finding textbooks on torrents is hard.
21:53:28 <olsner> speaking of rabbits, they apparently tried to intentionally introduce a usually-fatal virus into australia's rabbit population to kill them off
21:53:40 <NihilistDandy> Depends what books. I tend to get updated versions of books that I've already bought.
21:53:43 <Bike> "Download this book from Usenet" or
21:53:59 <Bike> well, this is a book on compiler design targeting microarchitecture, not Thomas's Calculus, you know?
21:54:08 <olsner> the long-term effect seems to have been that australian rabbits are now mostly immune to that virus
21:54:10 <NihilistDandy> Hahaha
21:54:34 -!- impomatic has joined.
21:54:49 <Bike> is it "thomas'" or "thomas's", hm
21:54:57 <NihilistDandy> Who cares. I hate that book.
21:55:02 <olsner> thomases's
21:55:04 <NihilistDandy> I've been using Spivak on my own
21:55:11 <kmc> thoma's
21:55:21 <NihilistDandy> I'm a math major, not a damned engineer
21:55:28 <NihilistDandy> *Who cares?
21:55:29 <kmc> srsly though it's thomas's
21:55:31 <Bike> thomas is engineer oriented?
21:55:36 <Bike> *thomas's's's
21:55:50 <NihilistDandy> Not enough proofs, too much "think about it like a balloon"
21:55:55 <Bike> i had an engineer-bent book for diffeq, it was depressing
21:56:06 <kmc> haha
21:56:34 <Bike> (later i found out that diffeq is An Engineering Thing regardless and math people just lump it in with calculus?)
21:57:00 <NihilistDandy> Yeah. I have to pretend to know diff eq for my chaos class next semester
21:57:15 <kmc> Fiora: oof
21:57:17 <NihilistDandy> But I'm just gonna do weird math and then make Mathematica do it.
21:57:19 <kmc> how many pipeline stages?
21:57:34 <Bike> nihilistdandy: it's basically a bunch of memorized (or in ew tables) rules for solving equations that don't actually come up in practice, apparently
21:57:55 <NihilistDandy> That's what my engineer roommate says, too :D
21:57:57 <GreyKnight> There are a few randies in the comments of the objectivist C article, no hilarious meltdowns though
21:58:16 <Bike> mostly in the class i was busy wishing i knew how to make a CAS do the work for me
21:58:54 <GreyKnight> NihilistDandy: hm you *may* need to actually know differential equations for chaos theory stuff
21:59:17 <Bike> well they'll need to know what they are
21:59:17 <GreyKnight> It will be fun
21:59:21 <NihilistDandy> GreyKnight: All homework and take-home tests. I will learn it as I go, if I must. :D
21:59:27 <Bike> not so much the... wow, i don't even remember any of the method names
21:59:32 <Fiora> kmc: it was the standard risc pipeline I think
21:59:41 <Fiora> fetch, decode, ALU, memory, retire
22:00:13 <GreyKnight> I want to make a fully-specified objectivist language, but I have a problem
22:00:21 <Fiora> it was terrifying though. like we had an entire verilog mips chip thrown at us and I had almost never used verilog before
22:00:39 <Fiora> I realized at that point that the class, though advertised as a CS elective, was actually an engineering class and they really didn't tell the CS people what they were getting into <_>
22:00:43 <NihilistDandy> GreyKnight: Then you don't want it hard enough.
22:00:56 <Fiora> but the class was still so much fun, I loved learning about things on like a wire by wire level
22:01:28 <GreyKnight> I would probably need to read up in order to find the right bits to make fun of, and my stomach isn't strong enough to survive one of Rand's books
22:01:35 <Bike> the main memory i have of arch class was the professor bringing in a vax internals "manual" he xeroxed illegally and bound with pieces of his girlfriend's jeans
22:01:50 <Bike> nice guy
22:02:01 <GreyKnight> bound with... wait, what?
22:02:03 <Fiora> .... what
22:02:19 <NihilistDandy> I third that what
22:02:29 <Bike> well, he got it from an official technician, and copied it himself so he could use it obviously
22:02:34 <GreyKnight> 'splain
22:02:44 <NihilistDandy> Not the what part, obviously
22:02:46 <Bike> but it was big enough to be a boo, so he grabbed some of his girlfriend-at-the-time's old jeans and made a makeshift book out of it
22:02:51 <Bike> a book. stupid keyboard
22:03:20 <GreyKnight> jeans + paper = book
22:03:25 <Bike> it was full of circuit diagrams and stuff. he used it to write binary search in microcode.
22:03:51 <Fiora> wooow
22:04:06 <NihilistDandy> This sounds like the plot of a Sierra game
22:04:15 <Bike> how?
22:04:32 <NihilistDandy> Jeans + paper = book
22:04:36 <Bike> oh right
22:04:38 <GreyKnight> Did he have a cat hair moustache too?
22:04:45 <Bike> i'm not a bookmaker person, ok
22:05:37 -!- ogrom has joined.
22:05:52 <Fiora> GreyKnight: depends whether or not he was a motorcyclist I suppose
22:06:23 <Bike> i paid more attention to the machine stuff than to the jeans stuff, geez
22:06:30 <GreyKnight> Don't go bringing gambling into this
22:07:23 <Bike> i got your first old man whathisname reference, not so much this one.
22:07:28 <GreyKnight> We didn't exactly mistake this place for #bookbinding either yanno :-P
22:07:42 <elliott> omg it almost works
22:07:49 <FireFly> #esoteric, home of everything but esolang discussion
22:08:31 <kmc> Fiora: that's terrifying
22:08:53 <kmc> the MIT intro processor architecture class (taken by most CS people) is pretty neat
22:09:04 <kmc> i did the labs for that
22:09:12 <kmc> did a 2-stage pipeline but anything more makes my head hurt
22:09:28 <elliott> quickly learning this approach was a mistake
22:09:34 <Fiora> that's really cool that they have most people take it
22:09:39 <Fiora> since this was just a side elective thing
22:09:59 <kmc> shachaf: I was wondering if you could replicate that IRC spambot thing using custom HTTP methods from XMLHttpRequest
22:10:00 <Fiora> our only required arch class was basically just memory, basic asm, debugging, stack smashing, how floats work, optimization...
22:10:01 <GreyKnight> elliott is on an emotional rollercoaster
22:10:01 <Bike> mit's always had EE and CS pretty integrated, hasn't it?
22:10:03 <Fiora> nothing, like, /wires/
22:10:19 <Bike> Fiora: maaaaan my class didn't even cover floats, i even asked ;_;
22:10:30 <ais523> Bike: that's because floats are insane
22:10:30 <kmc> but chrome forbids the port and firefox tries to do some cross origin request verification thing, which fails
22:10:42 <kmc> Bike: yeah, it is the same major
22:10:49 <Bike> ais523: yes, he basically said "we won't have time to cover everything but as a general rule don't jesus christ"
22:10:54 <elliott> why would you want to know more about floats
22:10:55 <GreyKnight> Real Programmers implement floats in the type system anyway
22:10:55 <kmc> this class (6.004) uses a simple gate-level digital logic simulation
22:10:56 <ais523> that's close to what I say too
22:10:59 <kmc> nowhere near as hairy as verilog
22:10:59 <ais523> but I go into detail if anyone asks
22:11:04 <kmc> but you do wire up individual gates
22:11:11 <kmc> it's a bit lower level than verilog really
22:11:19 <elliott> maybe float programming should be a separate degree
22:11:20 <Fiora> Bike: ouuch though what level was yours? ours was like a junior-level class ish
22:11:26 <Bike> i think sophomore
22:11:27 <elliott> and compilers require proof before letting you use floats
22:11:30 <Bike> elliott: "numerical analysis"
22:11:41 <GreyKnight> ais523, do you tell stories about floats around the campfire on Hallowe'en?
22:11:51 <ais523> no, I don't use campfires
22:11:55 <Bike> Fiora: also i was at a shitty side campus and the prof was fairly recently out of school.
22:11:59 <Fiora> ah :<
22:11:59 <ais523> *I don't own a campfire
22:12:01 <olsner> FireFly: there was a brief discussion about compiling some bad optimization tips ... still not an esolang but at least some kind of "unuseful programming"
22:12:05 * ais523 almost broke a meme
22:12:08 <Bike> I mean, I liked him
22:12:12 <Fiora> there was this little elective thing I did where we worked on like, laying out actual transistors and wires by hand
22:12:15 <Fiora> instead of like, verilog
22:12:25 <FireFly> olsner: fair enough
22:12:30 <Fiora> we were apparently tasked with the smaller parts of a larger (senior) project to make an RSA chp of some sort
22:12:35 * GreyKnight looks confusedly at ais523 '~'
22:12:35 <Bike> Fiora: hand you some silicon and some acid and tell you to go nuts
22:12:41 <Fiora> but we learned how to lay out wires and transistors in... um...
22:12:46 <Fiora> I think it was called Electric
22:12:50 <Fiora> and dealing with all the design rules and stuff
22:12:53 <Fiora> it was actually really fun
22:13:06 <elliott> hmmm
22:13:13 <elliott> these overlapping instances are not good
22:13:17 <olsner> FireFly: oh, did you see ion's police reindeer? that was ... at least as on-topic as this discussion
22:13:30 <GreyKnight> elliott, I think it needs more unsafeCoerce
22:13:34 <Fiora> http://www.staticfreesoft.com/ScreenShotBusy.png
22:13:42 <Fiora> it was kinda crazy
22:13:47 <ais523> `addquote <olsner> FireFly: oh, did you see ion's police reindeer? that was ... at least as on-topic as this discussion
22:13:50 <HackEgo> 865) <olsner> FireFly: oh, did you see ion's police reindeer? that was ... at least as on-topic as this discussion
22:14:00 <Bike> Fiora: wow, it looks like an architecture class. like the kind with buildins.
22:14:04 <Bike> buildings
22:14:15 * FireFly didn't see any police reindeer
22:14:21 <Fiora> Bike: it is a building!
22:14:24 <Fiora> a very very very very small building
22:14:26 <Fiora> :P
22:14:39 <Bike> hm. considering how big computers were back in the day, i'll betcha there were buildings and microarchitectures designed at the same time at some point
22:14:57 <elliott> i don't get it. buildings are still designed??
22:15:05 <elliott> are we in cyberspace now
22:15:19 <Bike> i remember hearing the first soviet mainframe was in some dilapidated cathedral in ukraine
22:15:27 <Bike> and when they turned it on it made half the building a sauna
22:15:46 <kmc> we had a freshman lab where you fabricate LEDs and transistors and shit
22:15:48 <kmc> mostly shit
22:16:05 <ais523> transistor fabrication? seriously?
22:16:05 <kmc> using the equipment that the labs had thrown out 15 years ago
22:16:29 <ais523> I was going to say; it's not that freshmen can't understand that, it's that the equipment needed for it is too expensive and specialised
22:16:30 <kmc> yeah, by the end of this 10 week freshman lab course, you nominally have fabricated a transistor
22:16:34 <GreyKnight> *jellus*
22:16:37 <kmc> they mostly did not work though
22:16:37 <ais523> do they actually /work/?
22:16:40 <kmc> and the class was pass-fail
22:16:43 * ais523 knows how to make a transistor in theory
22:16:47 <kmc> i think probably 5% - 10% of them worked
22:17:09 <kmc> we had a very crude photolithography setup
22:17:12 <ion> http://youtu.be/w_znRopGtbE
22:17:12 <ais523> random fun fact: in theory, transistors are symmetrical, you can swap the emitter and collector and they still work
22:17:16 <Fiora> kmc: wow O_O
22:17:20 <Fiora> doing photolithography in class
22:17:21 <Fiora> omg
22:17:27 <ais523> in practice, they normally work better in one direction because there's no real market for invertible transistors
22:17:29 <GreyKnight> It's just like making a very tiny sandwich, except out of silicon :-U
22:17:37 <ais523> Fiora: I've done photo-etching of PCBs
22:17:38 <kmc> and some deposition furnaces
22:17:50 <ais523> but that's way less expensive, you can get the required material for a couple of hundred pounds
22:17:52 <Bike> all i can think of is the video i saw of a guy smelting tin with a campfire.
22:17:55 <Fiora> the only remotely coolish thing I ever got to do was making holograms
22:17:56 <kmc> some contraption that pulls a vacuum and then uses mucho current to vaporize some gold next to your wafer
22:18:02 <elliott> guys stop making me feel like i am missing out
22:18:11 <kmc> a lot of the class consisted of trying not to pour hydroflouric acid on your hands
22:18:15 <ais523> elliott: it's OK, you're younger than we were when we did these things
22:18:19 <elliott> (i need some kind of credible threat. deleting a brainfuck derivative??)
22:18:30 <ais523> so you can still make choices that allow you to do these things in the future
22:18:32 <elliott> ais523: hey, you don't know how old kmc is
22:18:35 <elliott> I don't know how old kmc is, in fact
22:18:43 <Bike> a brainfuck derivative based on photolithography, let's do it
22:18:44 <ais523> elliott: he said "freshman", which implies at least 18
22:18:46 <kmc> for the LED the masking was wax applied with a toothpick
22:18:48 <Fiora> and now I am reminded of destroying one of my shirts in chemistry lab with nitric acid <_<;;
22:18:49 <ais523> in pretty much any university
22:18:50 <kmc> i was 16 as a freshman actually
22:18:55 <GreyKnight> Oh no. Please, not the BF derivatives. Please, leave them alone.
22:18:55 <kmc> but yes most people were 18
22:19:01 <ais523> Fiora: that must have ben kind-of embarrassing
22:19:01 <Fiora> oh god kmc is like cosman
22:19:04 <GreyKnight> '_'
22:19:11 <Fiora> super genius
22:19:18 <kmc> shrug
22:19:24 <kmc> american public school middle school is super useless
22:19:26 <ais523> I have a disability where I occasionally have nasty attention lapses
22:19:31 <Fiora> ais523: it was only enough to make like a small hole
22:19:32 <ais523> they had to have someone watching me in chemistry lab
22:19:34 <kmc> being able to skip two years of that is not a great sign of intelligence
22:19:34 <Bike> american public school is super useless?
22:19:36 <ais523> to make sure I didn't do anything stupid
22:19:37 <Fiora> but I mean, enough to consider it destroyed
22:19:53 <kmc> it's mostly a sign that your parents gave a shit and were willing to push for it
22:20:02 <ais523> kmc: my solution was to go a year ahead in several subjects, then do a year of more subjects in what should have been my final year
22:20:06 <kmc> also i took some high school science classes when i was 12 or so
22:20:09 <kmc> which was... interesting
22:20:20 <ais523> it gave me an extra year in school, more AS-levels than usual, and a reasonably empty timetable
22:20:21 <Bike> my parents didn't want me to skip too far ahead because they figured i'd be undersocialized. that sure worked out
22:20:26 <kmc> haha
22:20:33 * Fiora patpats Bike
22:20:36 <ais523> was the best time of my life so far, and probably always will be (and I realised at the time it was the best time of my life)
22:20:42 <kmc> that's cool ais523
22:20:47 <ais523> then I got into esolang development a year later
22:20:51 <ais523> that was fun too
22:21:00 <ais523> I don't have nearly as much free time now as I did then, though
22:21:14 <ais523> actually, I think I discovered esolangs that year
22:21:21 <ais523> someone sent me a link to the 99 bottles of beer website
22:21:47 <GreyKnight> Don't worry Bike, you get to hang out with us? >_>
22:22:12 <Bike> irc, noted haven of within-sigma, well-adjusted human beings
22:22:13 <GreyKnight> We're *like* cool people. In a way.
22:22:24 <NihilistDandy> Had I known any better, I'd have dropped out of high school at 16 and gotten my GED
22:22:48 <ais523> Bike: we're better-adjusted here than most of IRC? I hope, at least
22:23:15 <ais523> NihilistDandy: American?
22:23:20 <Bike> my experience with "most of IRC" is people yelling about anime, and that happened here yesterday. check and mate
22:23:21 <NihilistDandy> yup
22:23:24 <GreyKnight> This is probably the sanest channel I've seen
22:23:36 <ais523> GreyKnight: depressing, isn't it?
22:24:28 -!- carado has quit (Ping timeout: 246 seconds).
22:24:54 <GreyKnight> '_'
22:25:09 <Bike> Is that supposed to indicate that your face has been mutilated or what?
22:25:28 -!- impomatic has quit (Quit: var kings=new Array(3); for (x in kings) { kings[x].origin='orient'; kings[x].bearingGift=true; kings[x].travelled='afar'; }).
22:25:30 <elliott> i think the 's are eye sockets
22:25:49 <kmc> yeah i agree that being "socialized" involves having the right kind of people around
22:25:53 <GreyKnight> "impassive face"
22:25:53 <ais523> what language is impompatic's quit message? JavaScript?
22:26:03 <kmc> like a lot of antisocial loner nerds become gregarious when they go to a place like tech school
22:26:05 <GreyKnight> Looks like JS
22:26:07 <zzo38> ais523: I guess so?
22:26:08 <kmc> i think so yes
22:26:17 <GreyKnight> new Array(3)
22:26:28 <kmc> but you shouldn't use "for (x in y)" without a hasOwnProperty check!
22:26:36 <GreyKnight> Also var and for(x in kings)
22:26:54 <kmc> otherwise you end up iterating through all the methods of Array too and up its prototype chain
22:27:08 <elliott> sigh
22:27:12 <elliott> i am just going to cps it
22:28:08 -!- oerjan has quit (Quit: zzznxxxrkc?).
22:28:23 <kmc> javascript is a toy language that escaped the lab, like most popular languages
22:28:34 <kmc> but it's closer to the kind of toy language i would have designed as a student, so i have a certain affection
22:28:37 <kmc> even though it's pretty gross
22:28:42 <GreyKnight> JS has a lot of nice features
22:28:50 <elliott> Illegal polymorphic or qualified type:
22:28:54 <elliott> fklghjgkjh
22:28:57 <Bike> i like that thing where typeOf null is 'Object' or whatever
22:28:59 <elliott> this works with type synonyms why not with type families
22:29:03 <Bike> also where types are indicated with strings i guess
22:29:05 <GreyKnight> Shall I quote your C++ speech back with names changed? :o)
22:29:09 <kmc> the thing where foo[3] is foo['3'] and foo['x'] is foo.x... this makes me think like "cute feature for a toy language, but you shouldn't do it for real"
22:29:27 <Bike> ugh, it coerces numbers to strings?
22:29:42 <ais523> GreyKnight: I need to go home, can you mention Feather so I can make it look like a ragequit?
22:29:44 <kmc> well maybe not with that Array type
22:29:47 <Bike> oh and javascript numbers are all floats anyway, aren't they
22:29:50 <kmc> but in general, objects are key-value mappings
22:29:54 <kmc> Bike: yeah
22:29:58 <kmc> and the keys are all strings
22:30:04 <Bike> barf
22:30:15 <kmc> a lot of websites will break if you register a user named hasOwnProperty
22:30:38 <elliott> ooooh
22:30:38 <Bike> hahaha
22:30:39 <elliott> I bet I can cheat
22:30:43 <kmc> or __proto__
22:30:46 <elliott> hm
22:30:47 <elliott> or can i
22:30:50 <Fiora> that is brilliant
22:30:53 -!- kmc has changed nick to __proto__.
22:30:56 <Bike> oh,that's the prototype of an object?
22:30:57 -!- __proto__ has changed nick to kmc.
22:30:59 <kmc> bah registered
22:31:00 <kmc> yes
22:31:03 <Bike> since it has some weird Self thing going on
22:31:11 <ais523> kmc: also Freenode's ircd probably isn't written in JS
22:31:14 <GreyKnight> I did it on #acehack, it's funnier there IMO
22:31:14 -!- Phantom__Hoover has quit (Ping timeout: 260 seconds).
22:31:16 <kmc> ais523: you think?
22:31:17 <ais523> OK
22:31:19 <ais523> bye everyone
22:31:21 -!- ais523 has quit.
22:31:38 <elliott> kmc: i think you broke ais523
22:31:42 <Bike> if i mention feather now, do the properties of feather mean that, retroactively speaking, it did make him ragequit?
22:31:51 <zzo38> Some codes I have seen will put a space at front so that it doesn't cause those problems
22:31:53 <Sgeo> kmc... crud, I should try to figure out how not to break. Not sure if my code breaks, but ... that seems like a PITA
22:32:13 <Sgeo> I guess you're saying if I store users as keys on some object, the object might behave weirdly?
22:32:17 <zzo38> Do you like this music? http://zynaddsubfx.sourceforge.net/doc/PADsynth/demos/noefx_organ_choir.ogg
22:33:25 <zzo38> That code I have seen which did that, was a not a webpage, but it doesn't matter either way that is how you can do, put a space at front of the keys.
22:33:38 <Bike> Sgeo: and then you have a user whose name is a key the object already has
22:33:50 <Sgeo> :( my code is vulnerable
22:34:10 <Bike> isn't your code something that uses php for local communication or something
22:34:15 <Bike> i think maybe it was already vulnerable
22:34:31 -!- Phantom__Hoover has joined.
22:35:02 <GreyKnight> Sgeo: we can rebuild it. We have the technology.
22:35:23 <kmc> in the latest whiz bang version of ECMAScript there are associative data structures you can use
22:35:51 <Bike> «Ben Nadel demonstrates that the hasOwnProperty() method is more consistent than Javascript's IN operator; the major difference being that...» see "consistency" seems like a weird-ass standard
22:35:53 <kmc> http://www.devthought.com/2012/01/18/an-object-is-not-a-hash/
22:36:12 <Bike> it's not a fucking chaotic system, it's javascript!
22:36:37 <GreyKnight> . o O ( JS isn't a chaotic system? )
22:37:04 <Bike> well it ought not to be, in happy pony danceland.
22:37:57 -!- Sgeo has quit (Ping timeout: 245 seconds).
22:38:19 <Bike> http://www.bennadel.com/blog/1919-Javascript-s-hasOwnProperty-Method-Is-More-Consistent-Than-The-IN-Operator.htm blaghaghagh
22:38:44 <elliott> wow that photo
22:38:46 -!- Sgeo|web has joined.
22:39:06 <elliott> "And, of course, as Ben Alman pointed out, you can always use the typeof() function to check the type of objects you are dealing with before making use of the IN operator."
22:39:09 <elliott> oh joy
22:39:11 <GreyKnight> Object.create(null) looks good
22:39:19 <kmc> mwahaha so many good exploits in this book
22:39:20 -!- ogrom has quit (Ping timeout: 250 seconds).
22:39:57 <Bike> kmc: the ecmascript standard?
22:39:58 <kmc> embed an image in a web forum which is served from your server, which responds with 401 Unauthorized
22:40:01 <kmc> no
22:40:02 <kmc> this websec book i am reading
22:40:21 <kmc> the user will see a password dialog and enter their forum password
22:40:27 <Bike> drat, i'll have to rework that joke
22:41:05 <Bike> "Great article, however this danger only applies if you use obj.hasOwnProperty(prop) instead of a simple obj[prop] check, e.g. if you need to work with nulls" welp.
22:41:06 <Sgeo|web> Is prepending "user_" in front of user names internally a good way to deal with the issue?
22:41:10 -!- Taneb has quit (Ping timeout: 252 seconds).
22:41:42 <Sgeo|web> That post seems to think so, at least
22:41:44 <Bike> "dude, I didn’t even read the article lol… but this site design is great! i especially like the good use of circles."
22:42:08 <GreyKnight> It would stop them conflicting with standardly-inherited properties, seems like it should solve it
22:42:39 <GreyKnight> "I especially like the good use of circles" is going to be a phrase now
22:42:47 <Bike> Sgeo|web: as i understand, you're good until a new builtin property user_hasOwnProperty shows up
22:43:09 -!- sebbu2 has joined.
22:43:09 -!- sebbu2 has quit (Changing host).
22:43:09 -!- sebbu2 has joined.
22:43:12 <kmc> Bike: lol web community
22:43:34 <Sgeo|web> I wonder if Clojure maps are safe from this or not
22:43:49 <Sgeo|web> Where those store data, exactly
22:44:06 <elliott> pretty sure no language but like js and lua suffer from this dumbness
22:44:09 <Bike> is clojure OO prototype-based? (i doubt it, i don't think that would work great with the jvm)
22:44:14 <GreyKnight> I thought Clojure was on top of the JVM?
22:44:18 -!- sebbu has quit (Ping timeout: 245 seconds).
22:44:56 <Sgeo|web> Erm
22:45:04 <Sgeo|web> By Clojure I meant ClojureScript
22:45:06 <Sgeo|web> I am a derp
22:45:11 <elliott>
22:45:13 <Bike> wtf is that
22:45:23 * kmc takes a shot
22:45:44 <Sgeo|web> A Clojure-like language that compiles to Javascript
22:46:12 <GreyKnight> elliott: lua's tables are actually empty by default, so you'd have to go out of your way to fall down this sort of hole
22:46:40 <elliott> isn't there that metatable stuff
22:46:51 <Bike> 'patatable
22:47:19 <olsner> mutatable
22:47:25 <GreyKnight> Metatable fields are separate from the actual fields (partly to avoid exactly this problem)
22:47:40 <GreyKnight> 'pataprogramming sounds like fun
22:48:04 <Bike> i suppose that would be like if javascript object prototype fields were separate from the actual fields.
22:48:11 <Bike> in which case, we return to my earlier "welp"
22:48:58 <Bike> kmc: oh, javascript doesn't even wrap thrown strings in some SimpleError class or w/e, huh
22:49:13 <GreyKnight> I didn't understand the earlier "welp"
22:49:19 <Bike> now you do!
22:49:21 -!- ogrom has joined.
22:49:41 <Bike> alternately, i was just thinking about the earlier bike-pretends-to-understand-monads halfconversation
22:50:02 -!- Sgeo|web has quit (Ping timeout: 245 seconds).
22:50:22 <GreyKnight> I don't :<
22:50:36 -!- tswett has left.
22:52:14 <Bike> then i'm afraid you are unworthy.
22:52:34 <GreyKnight> ;_;~~~~~~~~~~~
22:56:13 <GreyKnight> @quote
22:56:13 <lambdabot> dxq says: i am not a very quotable person
22:56:23 <GreyKnight> lies
22:56:39 -!- carado has joined.
22:57:51 <elliott> !
22:57:52 <elliott> it works!
22:58:01 <GreyKnight> :-o
22:58:12 <elliott> oh
22:58:13 <elliott> no it doesn't
22:58:21 <GreyKnight> :-S
22:58:25 <elliott> Couldn't match type `Head [Bool] bss0'
22:58:25 <elliott> with `(':) Bool 'False ('[] Bool)'
22:58:38 <GreyKnight> The rollercoaster continues
22:58:47 <Bike> i'm just going to guess that this is actually your attempt to upgrade the wiki, and it's just gone terribly terribly wrong.
22:58:53 <elliott> hahahahahaha
22:59:36 <Bike> "damn, my port of ghc to php isn't properly taking javascript booleans into account"
22:59:48 <GreyKnight> If upgrading the wiki has led to wacky adventures in Haskell typespace then we've gone straight through "terribly wrong" and out the other side
23:00:41 <elliott> Bike: well I have at times considered just reimplementing mediawiki in haskell because of how awful it is to maintain
23:00:52 <GreyKnight> Do it
23:00:59 <Bike> has nobody done that yet?
23:01:03 <elliott> well it would be awful
23:01:04 <elliott> so no
23:01:09 <Bike> well, written a wiki, anyway, mediawiki proper would be terrible to port
23:01:12 <Bike> why would it be awful
23:01:29 <GreyKnight> I'll help with my sub-mediocre Haskell skills
23:01:39 <elliott> ooh
23:01:40 <elliott> did I fix it
23:01:55 <GreyKnight> Bike: do you know how to shot Haskell?
23:02:09 <elliott> !! i did
23:02:28 <Bike> i've never shot haskell in my life
23:02:31 <Bike> isn't he dead...,
23:02:52 <elliott> gmap :: (('[x,y] ?? ts) bss) => (forall z. Spec ts z z) -> (x,y) -> (x,y)
23:02:52 <elliott> gmap f (a,b) = (spec f a, spec f b)
23:02:54 <elliott> : D
23:03:12 <GreyKnight> Haskell motherlover, do you speak it?!
23:03:42 <Bike> "motherlover"? ewgh
23:05:00 <elliott> bowdlerisation gone wrong
23:05:02 <ion> father mocker
23:05:05 <kmc> this is what happens when you find a stranger in the alps
23:05:19 <GreyKnight> `addquote <Bike> "damn, my port of ghc to php isn't properly taking javascript booleans into account"
23:05:22 <HackEgo> 866) <Bike> "damn, my port of ghc to php isn't properly taking javascript booleans into account"
23:06:00 <elliott> oh shit I need some way to change types I think
23:06:06 <elliott> ...ok let's not go down that route
23:06:21 <GreyKnight> elliott: commit current code first!
23:06:28 <elliott> oh hm... this needs some way of representing order too
23:06:30 <elliott> GreyKnight: commit?? hahahaha
23:06:39 <elliott> i don't even have a directory
23:06:41 <elliott> this is all going into ~/tmp
23:06:52 <GreyKnight> Either it needs committed or else you do :-P
23:07:25 <elliott> been there done that
23:07:33 <elliott> hmm this might break when i add the type family :(
23:09:05 <GreyKnight> Bike: let's make a wiki in Haskell
23:09:34 <GreyKnight> Or, in befunge
23:09:36 -!- Sgeo has joined.
23:09:39 <elliott> there's already haskell wiki software
23:09:56 <Bike> "Yesod (web framework)" what is even going on with haskell naming
23:10:16 <Bike> "House is an acronym for the Haskell User's Operating System and Environment" okay nevermind, it's the same as usual.
23:10:26 <GreyKnight> elliott: If we can make a befunge wiki can we replace the mediawiki installation with it?!?
23:10:39 <elliott> oh shit it doesn't even recursively drill down yet
23:10:48 <Bike> if we can make a befunge wiki i'm pretty sure we'll be able to take the world hostage
23:10:56 <GreyKnight> Bike: an anagracronym
23:11:10 <elliott> yesod is a hebrew word
23:11:13 <elliott> hth
23:11:23 <Bike> oh, i should find that wiki i found written in shell again, primarily because what
23:11:32 <GreyKnight> I just tried to pronounce anagracronym and nearly bit my tongue
23:11:54 -!- boily has quit (Quit: Poulet!).
23:12:45 <NihilistDandy> Bike: Yesod means foundation, but it cannot also be translated as "I am Snoyman, *smash*"
23:12:50 <NihilistDandy> *can
23:12:52 <elliott> hahaha
23:13:31 <GreyKnight> House is a Haskell OS?!?
23:13:40 <NihilistDandy> GreyKnight: "OS"
23:14:00 <NihilistDandy> In that it is a system that operates. But it's not what you'd call an operating system.
23:14:04 <GreyKnight> Or "glorified shell"?
23:14:14 <Bike> it says it's experimental, which in operating system terms means it doesn't work
23:14:38 <Bike> there's always that haskell-verified (TM) L6 kernel instead, anyway
23:14:55 <Bike> make that L4.
23:15:24 <elliott> that didn't actually use haskell did it
23:15:28 <GreyKnight> L5 and I'll throw in this pen
23:15:29 <elliott> oh they prototyped it in haskell
23:15:54 <Bike> haskell was involved, and that's what's important for the marketing copyo!
23:15:55 <Bike> copy
23:16:19 <NihilistDandy> COPYO
23:16:33 <NihilistDandy> MOST EXCEPTIONAL XEROX ANDROID
23:16:35 <Bike> don't mock me :(
23:17:09 <NihilistDandy> YOU MOCK COPYO?! COPYO WILL SHOW YOUR BUTT TO YOUR BOSS!
23:17:17 <GreyKnight> copyo, n. When you accidentally highlight something and copy it into your clipboard, overwriting something you already had stored there.
23:17:45 <NihilistDandy> I do that 50 times a day
23:18:13 <GreyKnight> You should be more careful
23:18:29 <NihilistDandy> Started using clipboard history, and now I still do it but it takes longer to use the history than to just go an recopy the other thing.
23:18:36 <NihilistDandy> *and
23:18:50 * GreyKnight shakes head sadly
23:19:14 <elliott> hmmmm
23:19:18 <elliott> looks like i have to redesign this stuff
23:19:29 <GreyKnight> yaaaay
23:19:37 <elliott> oh hm maybe i can cheat!!
23:20:14 -!- Sgeo has quit (Ping timeout: 260 seconds).
23:20:19 <Bike> it's like you're already a webdev
23:20:52 -!- Sgeo has joined.
23:21:05 <GreyKnight> <?haskell
23:21:29 <GreyKnight> fac :: Int -> Int
23:21:38 -!- Sgeo has quit (Client Quit).
23:21:54 <elliott> Cycle in class declaration (via superclasses): Gen -> Gen
23:21:56 <Bike> you know, greyknight, i think the first rule of modern language design is actually "fuck php"
23:22:04 <elliott> never before have i felt such despair
23:22:06 <GreyKnight> Bah I can't be bothered finishing this joke
23:22:09 <Bike> just throwing that out there
23:22:39 <elliott> ?>
23:22:39 <lambdabot> Maybe you meant: . ? @ v
23:22:40 -!- Vorpal has quit (Ping timeout: 250 seconds).
23:22:50 <GreyKnight> The first rule of modern language design is "You don't talk about modern language design"
23:27:48 <GreyKnight> `quote
23:27:49 <HackEgo> 331) <zzo38> Finally I found the wand of electric lightning now we can destroy any large object if it needs to be destroyed and is required to use a such a wand for that purpose.
23:28:51 <GreyKnight> It's sentences like that which make me think zzo38 might be a machine
23:29:21 <kmc> that is a brilliant sentence
23:30:53 <GreyKnight> `quote
23:30:54 <HackEgo> 369) <Sgeo_> "system is fairly sane <Sgeo_> <elliott> imagine if the roomba was called the Robotic Magic Vacuum <Sgeo_> <elliott> would you object to that being trademarked <Sgeo_> <monqy> I mean <Sgeo_> <monqy> phrase trade" <Sgeo_> oops
23:31:17 <kmc> you know, i think the first rule of modern language design is actually "fuck up"
23:31:20 <GreyKnight> wat
23:32:23 <GreyKnight> kmc: have you ever used the IceChat client?
23:33:50 -!- Nisstyre has quit (Ping timeout: 244 seconds).
23:35:54 -!- NihilistDandy has quit (Quit: Textual IRC Client: www.textualapp.com).
23:36:15 -!- Sgeo has joined.
23:39:10 <Sgeo> At this poijnt I'm kind of tempted to wipe Windows
23:43:10 -!- Frooxius has quit (Ping timeout: 255 seconds).
23:45:19 <kmc> no
23:45:19 <kmc> why
23:47:04 -!- Sgeo has quit (Ping timeout: 260 seconds).
23:47:07 <elliott> kmc: hi
23:48:03 <kmc> helliott
23:53:16 -!- sgeo has joined.
23:54:13 <shachaf> kmc: Doesn't XMLHttpRequest never let you make a cross-domain request?
23:54:41 <shachaf> Oh, you said more than the one line /last showed.
23:56:10 <sgeo> At least I now have a real IRC client
23:58:32 -!- pikhq has quit (Ping timeout: 255 seconds).
23:59:19 <elliott> :t gmap
23:59:21 <lambdabot> Not in scope: `gmap'
23:59:21 <lambdabot> Perhaps you meant one of these:
23:59:21 <lambdabot> `map' (imported from Prelude),
23:59:24 <elliott> :t Data.data.gmap
23:59:25 <lambdabot> Couldn't find qualified module.
23:59:25 <elliott> :t Data.Data.gmap
23:59:27 <lambdabot> Not in scope: `Data.Data.gmap'
23:59:33 <shachaf> @ty gmapT
23:59:35 <lambdabot> Not in scope: `gmapT'
23:59:38 <shachaf> @ty Data.Data.gmapT
23:59:40 <lambdabot> Data.Data.Data a => (forall b. Data.Data.Data b => b -> b) -> a -> a
←2012-12-11 2012-12-12 2012-12-13→ ↑2012 ↑all