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