00:01:10 !bfjoust hudhewui [-][+][-+>[<+>]<] 00:01:13 ​Score for itidus21_hudhewui: 17.8 00:01:35 !bfjoust hudhewui [[-][+][-+>[<+>]<]] 00:01:39 ​Score for itidus21_hudhewui: 17.1 00:02:41 !bfjoust perkele (>++++++++<[+++])*32[+++++>+++++<] 00:02:43 ​Score for nortti_perkele: 11.1 00:03:09 !bfjoust hudhewui [-][+][-+>[<+>]<][+] 00:03:13 ​Score for itidus21_hudhewui: 17.8 00:03:37 sorry 00:03:48 i rushed that one if you wanted to see breakdown 00:04:37 what happens when itidus21 devises his very own theory of bfjoust and overtakes slowpoke 00:04:40 (nortti) !bfjoust perkele (>++++++++<[+++])*16[+++++>+++++<] 00:04:40 what then 00:04:55 (nortti) !bfjoust perkele (>++++++++<[+++])*16[+++++>+++++<] 00:04:59 i stumbled on this at random really 00:05:16 !bfjoust perkele (>++++++++<[+++])*16[+++++>+++++<] 00:05:19 ​Score for nortti_perkele: 11.1 00:07:09 !bfjoust (>)*9+[-[-.]>+]- 00:07:09 ​Use: !bfjoust . Scoreboard, programs, and a description of score calculation are at http://codu.org/eso/bfjoust/ 00:07:22 !bfjoust perkele (>)*9+[-[-.]>+]- 00:07:25 ​Score for nortti_perkele: 14.2 00:08:28 !bfjoust suicide [-] 00:08:31 ​Score for nortti_suicide: 16.9 00:08:54 for the love of the fucking $DEITY 00:09:11 !bfjoust hudhewui [-][+][-+>[<+>]<][-] 00:09:15 ​Score for itidus21_hudhewui: 17.8 00:10:09 !bfjoust suicide [->+<] 00:10:11 ​Score for nortti_suicide: 13.9 00:10:17 oh 00:10:28 !bfjoust suicide [->++<+] 00:10:33 ​Score for nortti_suicide: 7.2 00:10:39 !bfjoust suicide [->++<+-] 00:10:42 ​Score for nortti_suicide: 13.4 00:10:58 !bfjoust suicide [-.] 00:11:02 ​Score for nortti_suicide: 17.4 00:11:19 what the fuck!? 00:11:25 lol 00:12:03 my best result is from program actively trying to destroy itself 00:12:17 !bfjoust hudhewui [-][+][-+>[<+>]<][.] 00:12:20 ​Score for itidus21_hudhewui: 17.8 00:12:26 snap 00:12:41 !bfjoust hudhewui [-][+][-][-+>[<+>]<] 00:12:45 ​Score for itidus21_hudhewui: 17.8 00:12:52 !bfjoust suicide [-.] 00:12:56 ​Score for nortti_suicide: 17.4 00:13:18 !bfjoust suicide [-.>+<] 00:13:21 ​Score for nortti_suicide: 13.5 00:13:52 !bfjoust suicide [-.>>>++<<<]] 00:13:55 ​Score for nortti_suicide: 0.0 00:14:21 !bfjoust suicide [-.>>>++<<<] 00:14:24 ​Score for nortti_suicide: 10.5 00:15:20 !bfjoust hudhewui [-][+][-+>[<-->]<] 00:15:24 ​Score for itidus21_hudhewui: 17.8 00:15:41 !bfjoust hudhewui [-][+] 00:15:45 ​Score for itidus21_hudhewui: 17.8 00:15:49 ya.. 00:16:08 !bfjoust hudhewui [-][-] 00:16:11 ​Score for itidus21_hudhewui: 17.8 00:16:22 !bfjoust hudhewui [[-]] 00:16:26 ​Score for itidus21_hudhewui: 17.1 00:16:58 !bfjoust hudhewui [-]>++++++++++<[-] 00:17:01 ​Score for itidus21_hudhewui: 17.8 00:17:53 !bfjoust hudhewui [+][+] 00:17:57 ​Score for itidus21_hudhewui: 17.8 00:18:57 !bfjoust hudhewui [+][+.] 00:19:00 ​Score for itidus21_hudhewui: 16.9 00:20:38 !bfjoust hudhewui . 00:20:41 ​Score for itidus21_hudhewui: 8.3 00:24:04 !bfjoust hudhewui (+)*130[.][+] 00:24:07 ​Score for itidus21_hudhewui: 15.0 00:24:36 !bfjoust hudhewui (+)*1000 00:24:39 ​Score for itidus21_hudhewui: 14.2 00:25:10 [-] 00:25:40 !bfjoust perkele [-] 00:25:43 ​Score for nortti_perkele: 16.9 00:25:55 !bfjoust perkele [+] 00:25:59 ​Score for nortti_perkele: 16.9 00:30:25 !bfjoust hudhewui +[-+>[<>>]<] 00:30:28 ​Score for itidus21_hudhewui: 8.5 00:31:30 !bfjoust hudhewui +[+[>+]] 00:31:33 ​Score for itidus21_hudhewui: 0.8 00:32:20 -!- ais523 has quit (Read error: Connection reset by peer). 00:33:40 !bfjoust hudhewui +[+[>+]<] 00:33:43 ​Score for itidus21_hudhewui: 0.0 00:37:14 !bfjoust hudhewui >>>+++>>>>+++<<<<<<<[+][+] 00:37:18 ​Score for itidus21_hudhewui: 2.7 00:38:14 !bfjoust hudhewui +>>>+++>>>>+++<<<<<<<[+][+] 00:38:17 ​Score for itidus21_hudhewui: 2.7 00:39:24 !bfjoust hudhewui >>>+++<<<[+][+] 00:39:28 ​Score for itidus21_hudhewui: 8.5 00:40:51 !bfjoust hudhewui >+>++>+++<<<[+][+] 00:40:55 ​Score for itidus21_hudhewui: 3.9 00:42:46 !bfjoust hudhewui ++++[>-][<----][+][+] 00:42:49 ​Score for itidus21_hudhewui: 1.0 00:44:21 sorry++[>-][<----][+][+] 00:44:25 ^sorry 00:48:57 !bfjoust hm < 00:48:59 ​Score for oerjan_hm: 0.0 00:49:44 !bfjoust hudhewui (+)*10>[.]<[+][+] 00:49:48 ​Score for itidus21_hudhewui: 17.2 00:50:33 !bfjoust hudhewui (+)*30>[.]<[+][+] 00:50:37 ​Score for itidus21_hudhewui: 17.1 00:50:46 so addictive even though im clueless 00:52:36 hmm.. maybe i have been making many false assumptions 00:52:58 can you do it in PMs? 00:53:00 if you're going to send a -lot- 00:53:09 and maybe repost the ones that do particularly well in here 00:53:25 thats why i said sorry.. i didnt really plan this.. 00:53:41 i'll let it be 00:53:43 np 00:57:40 kmc: You know how you always say that e.g. instead of "data S = forall a. Show a => S a" and then [S], it's more sensible to just use [String]? 00:57:59 -!- azaq23 has quit (Quit: Leaving.). 01:00:52 shachaf: I suppose in case you want to use showsPrec 01:02:57 zzo38: Treating Show for the moment as just a type class that contains show :: a -> String 01:03:25 shachaf: yeah? 01:03:27 shachaf: Also, I have used something like that in my dvi-processing program, where data Node where { Node :: forall x. NodeClass x => x -> Node; } deriving Typeable; where NodeClass has Typeable as a superclass. 01:03:57 kmc: The question was what the equivalent would be for Read. 01:05:03 shachaf: If you replace Show in there with Read, I doubt it would do much 01:05:20 shachaf: maybe there isn't one 01:07:22 Hmm, the case I'm thinking of is actually a bit different. 01:07:51 You can do something like data V where V :: (forall a. Read a => a) -> V 01:08:00 -!- oerjan has quit (Quit: Lost terminal). 01:08:26 And then you have a value which you can "examine" in the context of any type which is in Read. 01:08:33 I guess that's the opposite of an existential type, though. 01:09:21 This V would be sort of satisfactory for the use case that someone mentioned to me, except they don't want the Read computation to be done more than once. 01:09:51 Clearly you could do something like data V = V { asInt :: Int, asChar :: Char, ... }, which would work for a closed set of types, and only do the actual "reading" computation once. 01:10:20 But that doesn't work in the type class case, I think. 01:10:45 -!- augur has joined. 01:11:49 -!- nortti has quit (Quit: nortti). 01:19:06 Yes, so I guess this is universal rather than existential, so you don't need V at all, for one. 01:23:26 So I guess the short answer would also be "instead of a value :: forall a. Read a => a, you can just have a String", because when the user of the value wants to use it, they already have their specific Read dictionary, because it's universal rather than existential. 01:24:08 But then you don't get the "memoization" for different specific read calls. 01:24:31 Maybe it's possible to do something along the lines of kmc's "generating random functions" thing? 01:24:40 Except not really. 01:36:46 -!- oerjan has joined. 01:38:54 -!- augur has quit (Remote host closed the connection). 01:55:32 -!- Tiktalik|Food has changed nick to Tiktalik. 02:06:37 listen to apparat! http://homepage.alice.de/hagbard/arcadia.php 02:16:19 -!- cheater has quit (Ping timeout: 276 seconds). 02:29:33 -!- calamari has joined. 02:35:03 For mathematical typesetting in dvi-processing, I am having the math lists consisting of "noads" which are similar but different than the "nodes" in non-math lists. It has a class, like this: class Typeable x => NoadClass x where { showNoad :: x -> String; translateNoad :: x -> MathParameters -> ([Node], MathParameters); ... }; I just want to know if you know what methods should be added on 02:38:02 are they like burritos 02:38:45 kmc: I don't think so. But if you think it is, tell me how you think so or if you think it isn't, how it isn't so. 02:38:57 a new taquería opened 4 blocks from my house 02:39:20 Also, do you mean, it is like burritos in what way? 02:44:08 monad transformers are like taquerias 02:44:28 kmc: Is it the same one? 02:45:05 Hmm, maybe the other one was 11 block. 02:45:07 s/1// 02:45:29 * shachaf , kmchousetaqueríologist 02:46:57 I like how [ShowVal] ~= [String] and [ReadVal] *also* ~= [String]. 02:48:21 which one shachaf? 02:48:24 oerjan: In what ways? 02:48:46 kmc: Which taquería? 02:49:01 Whichever one you were talking about last time you mentioned that one was opening near your house. 02:49:18 if it was in the past 3 days then it's the same one 02:49:33 I don't remember when it was. 02:49:43 * shachaf is really bad at remembering "when" something happened. 02:50:38 zzo38: that's a pun on "monads are like burritos" 02:51:22 or is pun the word there 02:51:36 oerjan: I've never seen a taquería where you give them one burrito and they give you a transformed version of it. 02:52:23 -!- MSleep has joined. 02:53:13 byob 02:56:37 -!- MDude has quit (Ping timeout: 276 seconds). 03:50:37 -!- augur has joined. 03:51:27 -!- oerjan has quit (Quit: Good night). 03:52:28 -!- pikhq_ has joined. 03:53:08 -!- pikhq has quit (Ping timeout: 272 seconds). 04:00:22 -!- augur has quit (Remote host closed the connection). 04:25:35 I found an error in section 697 of TeX: The Program. There appears to be not enough space before the logical or sign on the line starting with "if (small_fam(left_delimiter(p)) <> 0)" 04:26:36 revolutionary 04:27:22 is this one of knuth's errorless books where you get thousands of millions for finding a typo 04:36:28 -!- Tiktalik has changed nick to shooksoda. 04:36:34 -!- shooksoda has changed nick to Tiktalk. 04:36:39 -!- Tiktalk has changed nick to Tiktalik. 04:49:26 oklopol: No, only $327.67. And this is for bugs in the program, not for typos. Although it is possible this is due to a bug in the program, but there can also be many other possibilities. 04:49:53 ok 04:50:03 oklopol: do you use the long scale? 04:50:05 why 327.67? 04:50:16 what's the long scale? 04:50:46 well i have a good guess 04:50:51 Sorry I am wrong; it is $327.68 04:51:25 oklopol: in the long scale, "billion" = million million 04:51:29 old british style 04:51:36 right 04:51:40 milliard++ 04:51:43 yeah i use the long scale 04:52:09 obviously n-illion should mean 1000000^n and not 1000*1000^n 04:52:16 * shachaf is about to post a needlessly long-winded question to StackOverflow! 04:52:20 If only elliott was here. 04:52:32 oklopol: Yes that is more logical. But it is not common. 04:53:45 well there was a time when the metric system was not common. and if someone had used it back then, people would have been like dude that's stupid. and really, it would have been stupid. wait, what's my point. 04:54:20 shachaf: so you could just get the answer from him? 04:54:27 because he knows everything 04:54:37 Myriad style (used in Japanese and Chinese) is the one I like best, though. 04:54:53 what's that? 04:54:56 But it is not common in English. 04:55:01 Wait, elliott knows everything? 04:55:07 shachaf: yes. 04:55:11 THEN HOW COME HE DIDN"T KNWO WHAT THE TYPE OF A CLOSURE IS???? 04:55:31 he didn't? 04:55:36 Checkmate, omniscientists. 04:55:42 oklopol: Do you mean me? Myriad style is counting by ten thousands 04:55:48 oh 04:56:00 that sounds pretty irrelevant to me 04:56:23 zzo38: Where in Canadia are you? 04:56:34 shachaf: British Columbia 04:56:40 I've been there! 04:56:44 Where in British Columbia? 04:57:03 i've been to british britain 04:57:13 If you want to know more precisely, you can try to see which areas the internet service provider that I use is serving in 04:57:23 I'm just wondering vaguely. 04:57:39 Is it Delta, BC? 04:58:38 Yes 04:58:57 I've been to Vancouver, BC! 04:59:02 And surrounding areas. 04:59:07 Maybe I = zzo38. 04:59:22 I have also been to Vancouver, BC 04:59:33 And to Victoria, and a few other places in BC as well 04:59:50 -!- augur has joined. 05:00:06 -!- Patashu has quit (Remote host closed the connection). 05:00:16 The Japanese restaurant I have been to in Victoria is better than the ones around where I live at. 05:00:23 -!- Patashu has joined. 05:00:36 I've been to Victoria! 05:00:50 zzo38: Have you been to AMERICA?! 05:01:06 -!- cheater has joined. 05:01:10 I usually go to Victoria at around Victoria Day; so you might see us in the Japanese restaurant there 05:01:22 shachaf: Canada is part of North America. 05:01:54 zzo38: I'm talking about AMERICA, the country. 05:02:04 Just ask elliott. 05:02:20 There is no country AMERICA 05:02:41 @google america the country 05:02:43 http://en.wikipedia.org/wiki/United_States 05:02:49 Checkmate, Canadians. 05:03:25 america the book 05:03:37 "United States of America" is often abbreviated as "America" but in Canada we usually abbreviate it as "the States" instead. 05:03:53 But neither of them is a proper name of a country. 05:04:00 Oh. 05:04:05 Well, have you ever been there? 05:04:10 Say, to Bellingham or Seattle or something? 05:04:16 I have been there, but not much, and I don't remember much 05:04:50 What language do they speak in Canada? Canadian? 05:05:27 shachaf: Yes, Canadian English and Canadian French. Outside of Quebec is English mostly, inside Quebec is mostly French (by law). 05:05:44 But the government has to speak and write both English and French. 05:08:14 that's racist 05:08:32 They used to have the anime convention "Anime Evolution" in Vancouver, BC, but it has now been cancelled; have you seen it? 05:08:38 why should you have to learn french 05:08:44 just to run the country 05:09:02 Is Anime written in English or in French? 05:09:38 dbelange: Do you expect someone who does not speak English to run England? 05:10:11 no but then I don't expect someone who doesn't speak welsh to run wales 05:10:19 or scots gaelic to run scotland 05:10:43 shachaf: I do not understand your question. This is in British Columbia and is speaking mostly English (some people understand Japanese a bit too; I was once wearing a sign with some Japanese writing, a few people recognized it) 05:10:46 since it's pretty clear that english canada conquered the other canada 05:11:01 they should just all be english now 05:11:03 zzo38: Do you know Japanese? 05:11:20 shachaf: A bit. 05:11:29 Can you read it? 05:11:44 I know the kana, and some kanji, and a few other words too, so I can sometimes read it a bit. 05:12:27 can you read this http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%BF%E3%83%BC%E3%83%B3%E6%AD%BB%E3%81%AE%E8%A1%8C%E9%80%B2 05:12:57 I can sort of read hiragana but not katakana. 05:13:47 dbelange: A little bit but not much. 05:14:11 shachaf: I can read both hiragana and katakana fully; but I don't know all the words 05:14:32 But I do sometimes look up words that I don't know in WWWJDIC 05:14:32 zzo38: Should I learn katakana? 05:15:04 shachaf: If you want to read Japanese, then yes, you should learn hiragana, katakana, and kanji. 05:16:16 -!- asiekierka has joined. 05:16:46 the title says "go-who of button death". 05:17:32 zzo38: My sister kept trying to get me to read some manga, so I ordered it, but in Japanese instead of in English. 05:17:38 I guess I'll have to learn Japanese now. :-( 05:17:43 on purpose? 05:17:47 Yes. 05:17:55 Fortunately it has furigana. 05:18:03 Which is at least something... 05:18:23 Furigana is good for pronounce something in Japanese which you do not know the speech 05:18:33 Trust me when I say furigana is not as big of an aid as you would think. 05:18:39 pikhq_: Oh. :-( 05:18:51 Hence I recently started memorizing the kana, because I guess you gotta start somewhere, right? 05:19:07 pikhq_: I agree it is not so good try to understand the text; but for pronounce it help 05:19:17 It makes it a bit easier to look things up, and helps if the reading is potentially ambiguous. 05:19:38 Someone upvoted my question on StackOverflow! 05:19:43 I'm rich! I'm rich! HA HA HA HA HA! 05:19:44 But you have to already know the word for furigana to help you with understanding written text. 05:19:47 pikhq_: Yes, it does also make it easier to look things up in WWWJDIC or whatever, and for sorting 05:20:12 well i know about 5 times more words in furigana than in kanji. 05:20:15 Of course, furigana is meant for native speakers who are learning writing, so it helps there immensely. 05:20:26 To understand written text in Japanese, using the mixed kana and kanji which is common, is more efficient if you can read it, than only one or the other. 05:20:27 oklopol: That's because you're lame. 05:20:30 :P 05:20:33 :( 05:20:38 The other thing that furigana will help me with is typing kanji into my computer to get a translation. 05:20:49 well it's because i had this dictionary where the kanji were so small i didn't really pay attention. 05:21:00 I can type Japanese phonetically easily enough, but I would have no idea how to type unknown kanji. 05:21:06 so i would just read the romaji. 05:21:14 which is equal to furigana. 05:21:33 shachaf: Yes; it does help with that, I can enter the word in WWWJDIC or something like that, and find the kanji in the list that it results. If there is no furigana, you can use stroke counts and SKIP codes and so on for searching. 05:21:43 shachaf: That's what I mean by "bit easier to look things up". You can type it in instead of having to plug in the structure, if you don't happen to know other words with those kanji. 05:21:56 pikhq_: Right. 05:22:03 How long will it take me to be able to read the book? 05:22:38 shachaf: Anywhere from a couple weeks to several months. It's *really* hard to say without knowing what book it is. 05:22:49 And it also depends on the amount of effort you put into it, of course. 05:22:49 (WWWJDIC supports romaji for input only; it cannot output romaji. But I do not think there is any use for it to output romaji; romaji input is useful, though, in case you don't have IME, or don't want to use IME for this purpose) 05:22:54 pikhq_: _DEATH NOTE_ volume 1. 05:23:09 I vaguely put furigana in the same mental category as nikud. But maybe it's not a good comparison at all. 05:23:53 Hmm. I don't recall that being very hard. Maybe a couple months until you can work your way through if you're devoted? 05:24:05 OK. 05:24:18 I guess memorizing the katakana will be a good step? 05:24:20 Until it arrives? 05:24:29 probably you'll just shachaf out after a week or so. 05:24:39 oklopol: :-( 05:24:42 Yeah. Katakana and then kanji. 05:25:03 I have many Japanese mangas too; they are Akagi. I even have the special edition and the guidebook for the Akagi TV show. 05:25:04 shachaf: nah just kidding, i'm sure you'll shachaf the whole thing. 05:25:04 pikhq_: The katakana I assume I can just go over one by one until I know them. 05:25:14 pikhq_: What's a good approach to learning some kanji? 05:25:23 shachaf: Basically. It's no worse than hiragana, just different glyphs. 05:25:25 The latest one I have is volume 24; apparently no more have been released yet. 05:25:37 pikhq_: Right. It's crazy, but not really crazier than, say, uppercase letter. 05:25:53 shachaf: Yes, like that. 05:25:58 zzo38: What's a good way to acquire Japanese manga/other Japanese texts to read? 05:26:36 shachaf: I ordered them from a Japanese store in Vancouver called Half Moon Books; but I don't know what is best in your area, or other ways 05:26:45 is there a standard 1:1 mapping between the two kinds of kana? 05:26:52 also is there a good reason for there to be two kinds? 05:26:57 The two schemes for kanji learning that I'm aware of that aren't ludicrously, retardedly *bad* are "Kanji Damage" http://kanjidamage.com and "Remembering the Kanji" http://www.amazon.com/Remembering-Kanji-Volume-Complete-Characters/dp/0824835921/ref=sr_1_1?s=books&ie=UTF8&qid=1334554005&sr=1-1 05:27:02 kmc: Yes, there's a direct mapping. 05:27:07 kmc: Yes, it is like uppercase and lowercase in English, but they are not used in the same way as uppercase and lowercase in English 05:27:12 kmc: Katakana are usually used for loanwords. 05:27:13 In either case, use an SRS. 05:27:20 Also for names of plants and animals, apparently. 05:27:29 And a few other things, like transcribing sounds. 05:27:46 And emphasis, and sounding vaguely robotic, etc. 05:27:53 Yes. 05:27:54 in finland, we have nokikana 05:28:04 Alternately, for sounding really insanely old. 05:28:07 but i never learned it 05:28:26 (before ~1940, katakana was used for normal Japanese writing more than hiragana) 05:28:40 kmc: Someone learning English could ask a similar thing about uppercase letters. 05:28:47 Which are, if you consider it, pretty insane. 05:28:57 dunno 05:29:03 marking the beginning of a sentence is useful 05:29:08 For the first letter of a sentence -- and for a few other things, like names -- you take a letter from a completely different alphabet with a 1:1 mapping to the regular one? 05:29:12 disambiging proper nouns too 05:29:15 And also for emphasizing a word? 05:29:20 and capitals are a good way to indicate that someone is insanely old. 05:29:24 it's a bit crazy yes, but it's also useful 05:29:36 TYPING IN ALL CAPS IS MORE OF A 14 YO ON YOUTUBE THINK I THINK 05:29:41 Well, I speak a language that doesn't have capital letters and it seems to work fine. 05:29:49 sure 05:29:50 kmc: Write, but emphasizing just ONE word is pretty common. 05:29:52 all languages "work fine" 05:30:05 shachaf: i was responding to oklopol 05:30:14 kmc: LINGVA LATINA says "what?" 05:30:15 ;) 05:30:16 Ugh. 05:30:22 Did I just type "write"? :-( 05:30:26 yes 05:30:30 I think I must've started to type a sentence about writing. 05:30:35 you did 05:30:37 And then I saw kmc's comment and changed my mind at the last moment. 05:30:38 been trying to find a homonym for wrong 05:30:41 but didn't. 05:30:43 then you finished that sentence about writing 05:30:57 * shachaf :-( 05:31:15 It's times like this I wish the channel wasn't logged. 05:31:22 ookay gotta go 05:35:09 I like the channel logged all the time 05:44:53 -!- MoALTz has quit (Ping timeout: 248 seconds). 05:48:24 http://sprunge.us/AAdi Threaded assembly is silly-looking. 05:49:27 -!- MoALTz has joined. 06:28:14 I am having USEFUL DISCOURSE on my StackOverflow question! 06:28:17 This is so much fun! 06:29:22 just how useful is this discourse 06:29:32 useful, you say, but is it useful enough? 06:29:36 Well, someone told me I was wrong. 06:29:50 So I said WELL, OK, I WAS WRONG, BUT YOU WERE WRONG TOO SO HA. 06:30:00 That's what you're supposed to do, right? 06:30:00 that;s pretty darn useful 06:30:20 I felt like elliott. 06:30:40 elliott wouldn't have been wrong though, because elliott is always right 06:30:42 It gets stranger still if you decide to stick your words elsewhere: http://sprunge.us/IGGC 06:30:45 monqy: Oh, true. 06:31:52 Why am I awake 06:31:59 hi 06:32:04 !!! 06:32:05 HOORAY 06:32:16 hi monqy hi monqy hi monqy 06:32:18 hi 06:32:25 hi shachaf hi monqy 06:32:27 shachaf: join the party 06:32:30 shachaf: hi shachaf 06:32:35 monqy: :-( 06:32:38 -!- calamari has left ("Leaving"). 06:32:40 HLEP< 06:32:47 oh no did shachaf and monqy switch places? 06:32:56 Sgeo: I'm quitting hi. :-( 06:33:03 Sgeo: I quit quitting hi 06:36:57 (Density Endo) is different from (Codensity Endo); (Codensity Endo) is a list monad (you even get concatenation for free, although Edward Kmett doesn't accept that because he insists Plus to have Functor as a superclass), but (Density Endo) is something like a number that can only be multiplied by a natural number and nothing else. 06:41:54 (Yoneda Endo) is like Maybe but as far as I know you cannot get the monad for free from that 06:58:48 -!- Phantom_Hoover has joined. 07:27:02 -!- itidus20 has joined. 07:29:25 -!- Tiktalik has quit (Ping timeout: 252 seconds). 07:29:55 -!- itidus21 has quit (Ping timeout: 260 seconds). 07:42:40 -!- tikfreenode has joined. 08:15:14 -!- coppro has quit (Remote host closed the connection). 08:20:48 -!- tikfreenode has quit (Changing host). 08:20:48 -!- tikfreenode has joined. 08:20:50 -!- tikfreenode has changed nick to Tiktalik. 08:36:51 kmc: https://github.com/madrobby/semicolon.js/pull/6 reminded me of you. 08:37:48 haha 08:48:14 -!- zzo38 has quit (Quit: Due to). 09:46:09 -!- Tiktalik has changed nick to SleepingTik. 10:05:07 -!- cheater_ has joined. 10:08:11 -!- cheater has quit (Ping timeout: 252 seconds). 10:28:18 -!- KingOfKarlsruhe has joined. 10:51:38 -!- Frooxius has quit (Ping timeout: 260 seconds). 10:51:45 -!- Frooxius has joined. 11:34:52 Wait, neds are a Scottish thing? 11:35:02 I thought they were complementary to chavs. 11:36:39 lol 11:36:48 Chavs, neds, spides 11:36:58 Dpides??? 11:37:01 *spides 11:37:08 Irish thing 11:37:10 Oh, a Belfast chav. 11:37:55 None of my Belfastese relatives have ever said that word. 11:39:51 -!- nortti has joined. 11:52:47 -!- hagb4rd has quit (Quit: hagb4rd). 11:54:59 -!- hagb4rd has joined. 13:21:17 -!- MSleep has changed nick to MDude. 13:24:31 we 13:24:40 wrong channel 13:32:40 you 13:42:57 -!- augur has quit (Remote host closed the connection). 13:51:13 -!- ais523 has joined. 14:01:35 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .). 14:05:05 -!- derdon has joined. 14:10:51 > [x*y | x <- [1..10], y <- [1..10]] 14:10:51 [1,2,3,4,5,6,7,8,9,10,2,4,6,8,10,12,14,16,18,20,3,6,9,12,15,18,21,24,27,30,... 14:11:58 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.88.2 [Firefox 11.0/20120312181643]). 14:16:40 -!- augur has joined. 14:22:48 -!- sebbu2 has joined. 14:23:05 -!- sebbu2 has quit (Changing host). 14:23:05 -!- sebbu2 has joined. 14:24:19 -!- sebbu has quit (Ping timeout: 276 seconds). 14:24:41 -!- asiekierka has quit (Remote host closed the connection). 14:32:04 -!- augur has quit (Remote host closed the connection). 14:51:37 -!- cheater_ has quit (Ping timeout: 276 seconds). 14:56:06 -!- cheater_ has joined. 15:01:44 -!- KingOfKarlsruhe has joined. 15:06:34 -!- cheater_ has quit (Ping timeout: 276 seconds). 15:07:54 Hey, what happened with the whole IPv4 depletion thing? 15:08:05 It happened like last February, no? 15:08:19 it's still depleting, just there are smaller and smaller supplies left 15:08:29 the supplies now mostly belong to individual ISPs, rather than the RIRs 15:08:52 you could ask Ilari for info when he turns up, he knows a lot about that subject 15:17:52 " Organizations that obtained IP addresses in the 1980s were often allocated far more addresses than they actually required, because the initial classful network allocation method was inadequate to reflect reasonable usage. For example, large companies or universities were assigned class A address blocks with over 16 million IPv4 addresses each, because the next smaller allocation unit, a class B block with 65536 addresses, was too small fo 15:17:52 intended deployments." 15:18:22 Wait, you /couldn't/ allocate a submask like 255.240.0.0? 15:19:33 you can nowadys 15:19:35 *nowadays 15:19:41 but you couldn't back then, CIDR hadn't been invented yet 15:20:23 and so the backbone routers wouldn't have been able to handle it 15:22:29 APNIC is still the only RIR that has ran out; the rest (RIPE, ARIN, AFRINIC, LACNIC) still have addresses. 15:22:42 Not terribly many, though. 15:22:59 oh, I thought ARIN and RIPE would have run out by now 15:23:52 RIPE might go this year, or possibly not, depending on whose estimate you look. ARIN is likely to be the next after that. 15:24:13 There's a summary graph at http://www.potaroo.net/tools/ipv4/plotend.png 15:25:34 ISTR that they tweaked the policies at the others after the APNIC depletion, so the burn rate is somewhat lower. 15:27:09 -!- ais523 has quit (Remote host closed the connection). 15:27:22 That was AISNIC, depleting. 15:27:30 (Okay, not really.) 15:30:19 -!- asiekierka has joined. 15:36:20 Holy shit New England isn't a state???? 15:38:58 -!- boily has joined. 15:40:22 Phantom_Hoover: ... 15:40:46 IT SOUNDS LIKE IT SHOULD BE 15:40:50 Phantom_Hoover: Holy shit Scotland isn't an island? 15:41:23 Hey come on now, there are 50 states. 15:41:44 It's much easier to lose track of one or two than the 4 constituent countries of the UK. 15:42:07 There's one Finland in Finland. 15:42:45 Phantom_Hoover, did you see the update? 15:42:46 Phantom_Hoover: Holy shit the Balkans isn't a country? 15:42:48 I'm chatting from IPv6 right now 15:43:02 qfr: WELCOME TO THE WORLD OF TOMORROW 15:43:07 RocketJSquirrel well, a few years back it was, somewhat 15:43:46 RocketJSquirrel: What? I have seen only one guy on IRC so far who has IPv6 from his ISP 15:43:52 I don't have IPv6 from my ISP either 15:43:57 I'm tempted to go all "I was chatting from IPv6 back in the 6bone days". 15:43:59 It's just my proxy 15:44:01 RocketJSquirrel, that wouldn't be unreasonable if you didn't pay too much attention? Although that would be hard, given that the subdivisions are really obvious in the Balkans what with all the wars. 15:44:17 That was something like 2002, I suppose. 15:44:29 I didn't even get internet access until 2001 15:44:33 And I'm 25 15:44:36 Phantom_Hoover: btw, the "Scotland is an island" thing was a ref to ... Sgeo? I forget who. 15:45:11 * Sgeo thinks it's likely to refer to me 15:45:17 RocketJSquirrel, dude he said it was 'near' the UK. 15:45:25 I never said New England was near the US. 15:46:12 lol, did he really say that? 15:46:17 I guess I reduced the lunacy in my mind. 15:46:28 Anyway, here's my New England story: 15:47:13 Coming back to the US from the Czech Republic, they pulled me aside for "additional questioning." After poking at the computer for ten or fifteen minutes, the guy asked me exactly one additional question: "Have you ever lived in New England?" Confused, I answered "no," and was allowed on my way. 15:47:35 Well you know how New England is. 15:47:40 RocketJSquirrel, thanks for the ... insultingness 15:47:40 That's Lovecraft country, man. 15:47:45 Sgeo: It's what I do 8-D 15:48:13 Sgeo: Seriously though ... the UK. Yeah. 15:48:40 I should /nick back to Friendship so I'm not such a jerk. 15:48:50 (Although Rockie the flying squirrel certainly wasn't a jerk) 15:49:15 * Sgeo non-conspicuously checks Wikipedia for something 15:49:32 "Wales is in the UK too?????" 15:50:03 >.> 15:50:29 "So's part of Ireland?" 15:50:53 "Next you're going to be telling me the Isle of Man's in it as well"-- oh wait 15:51:38 I actually knew.... something about Ireland 15:52:10 "I always knew the Irish came from there!" 15:52:19 Phantom_Hoover: To be fair, all I expect of average American X is to know where England, Scotland and Ireland are, and the political division of Ireland. Even knowing where Wales is is a bonus. 15:52:58 I think, I'll stay away from geography 15:52:59 You can't forget Wales, Wales is import-- I can't, I just can't. 15:53:02 Geometry's fine though 15:54:15 Not once you've read the Penguin Dictionary of Cruel and Unusual Geometry. 15:54:23 Phantom_Hoover: Given that my expected knowledge of Americans for Asia is "China and Japan are not the same country", I'd take what I can get. 15:54:44 -!- pikhq_ has quit (Ping timeout: 245 seconds). 15:54:46 -!- pikhq has joined. 15:55:08 RocketJSquirrel, please tell me they'd know that Mexico is in North America. 15:55:12 RocketJSquirrel, hey, I knew that! (And vaguely what they look like) 15:55:37 Phantom_Hoover: Those who know that Canada is not our largest state usually know that Mexico is in North America. 15:56:13 I'm going to assume the Canada thing is a joke because come on. 15:56:24 Canada's not a US state? 15:56:32 Honest question, do you have to do geography much in American schools? 15:57:05 Phantom_Hoover: Not much, no, it's conflated with history and history means WWII because we apparently don't care about any other event since the inception of man. 15:57:14 RocketJSquirrel, um dude. 15:57:17 (At least, that's how my school was) 15:57:45 You're completely leaving out the mythical status accorded to the founding of the nation. 15:58:32 HITLER 15:59:03 God bless George Washington for shooting him while he watched a play :') 15:59:14 That's the spirit! 16:00:00 And then holding his wife's hand in a jar of acid. 16:07:09 -!- hagb4rd has quit (Quit: hagb4rd). 16:07:28 -!- hagb4rd has joined. 16:09:06 Huh, the Chinese for 'card game' is uncountable. 16:09:10 Let's play some card game. 16:18:25 -!- elliott has joined. 16:18:33 elliott, did you do the update? 16:19:02 AFK 16:19:56 -!- augur has joined. 16:21:18 -!- Slereah_ has quit (Ping timeout: 244 seconds). 16:21:37 -!- Slereah has joined. 16:23:21 Sgeo: No. 16:23:43 * elliott almost starts writing an answer about partial evaluation and specialisation to http://stackoverflow.com/questions/10170406/seq-on-partially-applied-functions, but then realises it's that STM guy. 16:26:18 Is "that STM guy" good or bad? 16:26:44 Bad. 16:27:46 How bad? 16:32:14 -!- ais523 has joined. 16:32:35 hi ais523 16:32:44 hi elliott 16:34:51 hi ais523 16:35:21 bleh, why are existing programming languages bad at representing 3D cellular automata with loads of space in a reasonably efficient manner 16:35:22 Hey wait where Ilari? 16:35:46 Did he just cease to exist after IPv4 address depletion, his reason for being satisfied? 16:35:51 Phantom_Hoover: He's been gone for years. 16:36:08 He's still on freenode, though. 16:36:57 I was talking to him recently, in another channel 16:37:01 looks like he just got bored of this one 16:38:15 Years?? 16:38:35 Phantom_Hoover: He was last seen in 2010 or maybe 2011. 16:38:43 shachaf: I like how dons gave an incorrect answer to your question. 16:39:06 shachaf: I also like how you didn't phrase your question title as a question. :( 16:39:18 elliott, of course he was here in 2011, he was giving us a live IPv4 feed. 16:40:31 Phantom_Hoover: Was that in 2011? 16:40:55 shachaf: I also like how Haskell *doesn't* have the first-class universals you mentioned; you can't have [forall a. (Read a) => a]. 16:40:58 Last /8s were allocated on the 31st of January. 16:43:10 OK, last seen 16:43:11 2011-04-30.txt:05:24:44: -!- Ilari has parted #esoteric. 16:43:15 and it might be oerjan's fault. 16:43:28 (Specifically 16:43:30 2011-04-30.txt:05:22:00: Ilari: i am _so_ tempted to ban you for ignoring my comments... 16:43:30 2011-04-30.txt:05:24:41: -!- Ilari_antrcomp has parted #esoteric. 16:43:30 2011-04-30.txt:05:24:44: -!- Ilari has parted #esoteric. 16:43:30 ) 16:44:23 Actually, those lines are directly adjacent in the logs, so it almost certainly was, esp. since it was a /part, not a /quit. 16:45:04 DUN-DUN-dun! 16:45:06 @tell oerjan Thanks! 16:45:06 Consider it noted. 16:48:57 -!- cheater_ has joined. 16:49:24 Tsk tsk. 16:50:31 Bonus follow-up: 05:25:24: ...either that, or for lacking a sense of humor. 16:53:43 -!- SleepingTik has changed nick to Tiktalik. 17:03:29 @time 17:03:29 Local time for elliott is Mon Apr 16 18:04:00 17:12:39 someone explain to me like I'm six what's the difference between sufficiently compositional actors and FRP. 17:12:47 Does anyone know a word for "everything" that six year olds would understand? 17:16:16 Idonno. 17:16:22 There's some overlap from the 30,000 foot view. 17:16:33 I'd reduce that to "nearly everything" 17:17:12 http://meta.stackoverflow.com/questions/129452/using-triggers-to-orderid-associated-with-orderline-when-i-add-new-product 17:17:37 RocketJSquirrel: Weeeell, it would have to be a 100 mile view if you ask me. 17:18:02 The actor model has no notion of behaviours, and is fundamentally based around discrete message-passing loops. 17:18:18 FRP is based on continuous time, has behaviours, and does not do message-passing. 17:18:32 I mean... they're both about concurrency. 17:19:24 -!- coppro has joined. 17:24:01 RocketJSquirrel: In fact, I'm having trouble thinking of ANY overlap between the two... 17:25:41 -!- pikhq_ has joined. 17:25:41 -!- pikhq has quit (Ping timeout: 248 seconds). 17:42:10 elliott: hey, do you know of any web servers that don't suck? 17:43:20 NCSA HTTPd 17:45:26 -!- pikhq_ has quit (Ping timeout: 250 seconds). 17:45:29 -!- pikhq has joined. 17:58:33 -!- nortti has quit (Quit: lolololo). 18:01:11 hi 18:05:09 -!- oerjan has joined. 18:06:37 -!- augur has quit (Remote host closed the connection). 18:15:58 -!- azaq23 has joined. 18:16:17 -!- azaq23 has quit (Max SendQ exceeded). 18:16:44 -!- azaq23 has joined. 18:21:42 ok 18:21:48 i just realised 18:21:49 life 18:21:57 is isomorphic to the knapsack problem 18:22:33 explains why i cannot fit it together 18:22:33 oerjan: You have 1 new message. '/msg lambdabot @messages' to read it. 18:22:37 @messages 18:22:37 elliott said 1h 37m 30s ago: Thanks! 18:22:45 elliott: you're welcome! 18:23:19 oerjan, context: 18:23:28 OK, last seen 18:23:28 2011-04-30.txt:05:24:44: -!- Ilari has parted #esoteric. 18:23:29 and it might be oerjan's fault. 18:23:29 (Specifically 18:23:29 2011-04-30.txt:05:22:00: Ilari: i am _so_ tempted to ban you for ignoring my comments... 18:23:30 2011-04-30.txt:05:24:41: -!- Ilari_antrcomp has parted #esoteric. 18:23:32 2011-04-30.txt:05:24:44: -!- Ilari has parted #esoteric. 18:23:34 ) 18:23:36 Actually, those lines are directly adjacent in the logs, so it almost certainly was, esp. since it was a /part, not a /quit. 18:23:54 Phantom_Hoover: hey i was going to pretend i didn't see that! 18:24:26 I enjoy trying to watch the world burn. 18:24:27 * oerjan sweeps Phantom_Hoover under the rug 18:24:43 * Phantom_Hoover sets fire to the rug, watches it. 18:25:00 * oerjan helpfully aims a firehose at Phantom_Hoover 18:25:10 * Phantom_Hoover sets fire to the water. 18:25:15 Don't worry, I would have been surprised if you did not ignore it. 18:25:16 fancy 18:25:38 For we are actually on the planet Spozz, where the atmosphere is fluorine! 18:25:38 -!- oerjan has quit (Quit: Lost terminal). 18:25:40 FIN 18:25:53 Did he... 18:27:01 Lost terminal is when his internet blows up. 18:27:25 Be careful with that paranoia, or you'll start accusing people of sockpuppetry. 18:33:22 -!- augur has joined. 18:36:17 -!- augur has quit (Remote host closed the connection). 18:37:14 "I can't wait 'till I get to write my own monad tutorial! I wonder what I can spice mine up with..." 18:37:16 no stop,,,, 18:38:21 -!- sebbu2 has changed nick to sebbu. 18:39:01 monads are like monad tutorials 18:39:27 -!- nortti has joined. 18:39:29 elliott: i will rough them up so they never write a monad tutorial. 18:39:53 return maps a monad to a crappy analogy for that monad 18:40:18 join maps a crappy analogy of a crappy analogy for a monad to a crappy analogy for that monad. 18:40:53 my roughing up of course is pretending someone wants to hear all i have to say 18:44:01 `quote 18:44:09 605) [from 2009] That's confusing. I have been indoctrinated to believe W|A, but on the other hand it's hard to unbelieve a book with such a ridiculously impressive name as "Handbook of physical testing of paper, Volume 2". 18:44:21 ais523: should P'' be in [[Category:Brainfuck derivatives]]? 18:44:43 elliott: no, it isn't a derivative of BF 18:44:45 it's independent 18:44:45 (also, does it count as implemented?) 18:44:55 elliott, I will rip your fucking soul out. 18:44:56 ais523: yeah, I was kidding; I'll put it in [[Category:Brainfuck]] though 18:46:26 ais523: hmm, implement P'' so I can mark it as implemented, please ;) 18:46:46 Wow, indoctrinated to believe W|A in less than 8 months. 18:47:06 http://www.pcworld.com/businesscenter/article/253667/oraclegoogle_trial_starts_monday_outcome_could_affect_all_developers.html ah yes, the Oracle vs. Google lawsuit started 18:47:46 Deewiant: It exploded pretty quickly. 18:47:52 i am beginning to get that mental callous against patent lawsuit news finally 18:48:41 urgh.... hurts. a bit 18:49:10 "Of the seven patents it originally asserted, five have been invalidated by the U.S. Patent and Trademark Office, and a sixth expires at the end of the year." 18:49:11 lol 18:49:16 noooooo 18:50:46 Haha 18:50:57 But there is more than just the patents 18:51:07 Other intellectual property, too 18:51:12 qfr: also some very dubious copyright claims 18:51:15 I guess it's going to take 1-2 years anyways 18:51:28 in particular, Oracle are trying to argue that implementing the Java API is a copyright infringement 18:51:38 "Reeen. There was another patent lawsuit. Good night Ren." "Go to sleep Stimpy" .... [Bloodshot eyes looking around in the dark].. optic nerves pulsing 18:52:19 ais523 that one sounds alarming 18:52:32 chattering teeth 18:52:42 I don't know the state of the Java language standard 18:52:54 qfr: people have been pointing out how Oracle would be sued to oblivion if they actually won it, by the inventors of SQL :) 18:53:06 zipping sound, huddled up under blanket 18:54:37 -!- coppro has quit (Quit: Lost terminal). 18:55:13 ais523 is not in the sudoers file. This incident will be reported. 18:55:19 hmm, seems it was set up to use su instead… 18:55:37 I must admit I never use su 18:55:40 Nor sudo 18:55:49 I tend to have a separate root shell 18:55:55 And when I no longer need it I just exit 18:55:59 well I only just hired this server 18:56:02 Wait, in X I need a su for that, though 18:56:15 and I'm trying to figure out how I get a root shell on it 18:56:17 i heard that Maybe from Haskell is a copyright infringement 18:56:27 itidus20 lol 18:56:39 How so? 18:56:40 feels /really weird/ working at a root shell, but I need to to set up sudo 18:56:52 What's wrong with a root shell? 18:56:52 i wouldn't know what it is though.. just a word i keep hearing here 18:57:06 just I'm not used to them, and don't like doing stuff that doesn't need root at them 18:57:20 basically since microsoft isn't selling any haskell interpreters they decided to destroy haskell 19:00:03 -!- pikhq has quit (Ping timeout: 245 seconds). 19:00:03 im just in a mood 19:00:06 -!- pikhq_ has joined. 19:00:16 oh, that's interesting 19:00:21 I need to "sg admin" before I can use sudo 19:00:21 i'll try to cool off 19:00:26 -!- itidus20 has left ("Leaving"). 19:00:27 I like that, in a way, it's a nice security feature 19:00:56 ais523: stop using sg(1) 19:01:05 haha :) 19:01:09 anyway, that's just a bug in the default installation; admin accounts should be in the admin group 19:01:26 (not that i would expect anything different from a VPS provider messed up enough to meet your requirements...) 19:01:26 I agree it is 19:01:42 -!- augur has joined. 19:02:08 oh, /now/ they tell me 19:02:10 "once you have connected to your server, you must use the 'su -' command to switch to root on your server." 19:02:34 now I need to work out what locales are installed, if any 19:02:37 I'll just use C, I guess 19:03:47 next thing is to remove root's password 19:03:54 sudo passwd -d root 19:03:55 sudo passwd -l root 19:04:09 (I have forgotten the -l before...) 19:05:11 I just used the -l 19:05:20 ais523: that doesn't remove root's password! 19:05:26 well, OK 19:05:33 but it does make it unusable, which is what I wanted 19:06:09 huh, this thing didn't have any sort of firewall 19:06:16 or at least, iptables wasn't installed 19:06:33 presumably there's a hardware firewall, but they'd have no idea how I'd want it configured, so it's probably quite permissive 19:07:59 or it blocks tons of things because they don't want to deal with irc dcc bots and the like 19:09:23 it it specified where the head has to be on the tape at the start of execution of P'' program? 19:10:41 oh come on, the kernel modules they provide are for a different kernel than the kernel they provide 19:10:56 -!- oerjan has joined. 19:11:49 and the advice for updating them involves wgetting stuff to the root dir 19:22:57 elliott: what file contains the list of modules you want the server to load during startup? 19:23:29 ais523: /etc/something 19:23:37 ais523: there are command-line tools to manipulate it, I think 19:24:00 aha, /etc/modules 19:25:38 "The entire park is within the jurisdiction of the United States District Court for the District of Wyoming, causing it to be the only federal court district that includes portions of more than one state (Idaho, Montana and Wyoming). Law professor Brian C. Kalt has argued that it may be impossible to impanel a jury in compliance with the Vicinage Clause of the Sixth Amendment for a crime committed solely in the unpopulated Idaho portion of the pa 19:25:38 rk (and that it would be difficult to do so for a crime committed solely in the lightly-populated Montana portion).[121] One defendant accused of a wildlife-related crime in the Montana portion of the park attempted to raise this argument.[122] He eventually pleaded guilty.[123]" 19:26:09 THANKS FOR NOTHING, BRIAN C. KALT! 19:26:45 that's obvious, you have to plead guilty because pleading not guilty would lead to a paradox 19:31:26 elliott: quick and dirty P'' implementation in python with head starting at the rightmost cell: http://db.tt/dCaSNFT8 19:31:50 written on a cellphone 19:32:09 print str(mem[:memp])+str(mem[memp:]) 19:32:12 err, isn't that just print str(mem)? 19:33:22 no. it shows sonething like [0][1,0], so you cam see where head was at the end 19:33:33 *can 19:34:00 -!- oerjan has quit (Quit: Lost terminal). 19:34:28 *sonething 19:35:47 elliott: Does the lambda seem ok or did iit result on mojibake along the way 19:36:15 s/seem ok/look normal/ 19:36:16 They don't render properly here, alas. 19:36:32 anyway, this server also does ipv6, which is nice 19:39:32 linode does v6 too 19:41:09 more than half of hosting companies do nowadays, I think 19:41:13 -!- augur has quit (Read error: Connection reset by peer). 19:41:17 -!- augur has joined. 19:41:24 which is good, because hopefully eventually the world will be v6-capable without ridiculous hoops to jump through 19:43:16 "When you log into a unix machine you can finger your friends. You can also get head, and get tail (of a file), take a dump, or mount something (a drive). You may also fsck your drive" 19:44:34 -!- zzo38 has joined. 19:45:24 `quote 19:45:26 323) I use LiGNUXFCE+apps That's pronounced by saying "Linux" and then vomiting, btw. 19:45:36 `quote 19:45:39 674) Magnetic butterfly is slower than cat and restarting if you make a mistake is slower than vi is slower than mind-reading. 19:45:57 `quote 19:46:00 424) Sanity is insufficient by itself. Many other things are also important. 19:46:06 `quote 19:46:09 199) it seems that CUIL is dead 19:46:13 `quote 19:46:16 45) Reality isn't a part of physics 19:46:21 elliott: bleh, I misread 674 as being from zzo38, that would have made it so much better 19:46:39 199 is the worst one there, easily 19:46:44 the others are all pretty good 19:47:03 is 674 reference to that xkcd comic 19:47:58 nortti: yes, or probably said in response to a mention of the comic 19:49:17 back 19:49:33 nah, I wasn't referencing xkcd 19:49:40 I was replying to other people who were 19:49:42 (in part) 19:49:52 `delquote 199 19:49:56 ​*poof* it seems that CUIL is dead 19:51:09 ais523: did you see a few days ago? Zuu made the most ineffectual ragequit ever 19:51:09 elliott: it does indeed look more like a reference to an xkcd reference, rather than the reference itself 19:51:16 no, I didn't see it 19:52:04 he spent about ten minutes asking if we ever talked about anything other than haskell here, and got the reply "yes", and I gave him specific log links showing so; then he said he just wanted confirmation that we didn't so he could leave without tarnishing his reputation as someone who likes programming languages 19:52:08 then... left anyway 19:54:41 Hahaha I deleted 3GB of PHP session files X_X 19:54:48 RocketJSquirrel: hater 19:54:52 * elliott hecks RocketJSquirrel's aim 19:54:53 -!- derdon has quit (Remote host closed the connection). 19:55:07 -!- elliott has quit (Quit: aim hecking backfired). 19:55:35 -rwxr-xr-x 1 root 24 Oct 29 1929 /bin/ed 19:56:11 -!- coppro has joined. 19:56:12 1929? 19:56:14 wow 19:56:45 for both creation yeat /and/ filesize 19:57:04 I just love making my filesystem look screwy 19:57:56 -!- elliott has joined. 19:58:03 -!- elliott has quit (Changing host). 19:58:03 -!- elliott has joined. 19:58:58 (that is not the real ed. it is just shell script running /usr/bin/busybox ed) 19:59:27 *that runs 19:59:35 nortti: why shellscript? you can just symlink it to busybox, can't you? 19:59:50 busybox looks at the name it was run under to figure out what to do 20:00:20 oh, but then you wouldn't be able to get the screwy date, unless you screwed up busybox's date 20:00:40 but then I woildn't get that filesize. I wanted it to match gnu's ed joke 20:00:55 *wouldn't 20:01:01 oh, I don't know the specific joke 20:01:22 it's not "gnu's" joke 20:02:36 I found it on gnu.org/fun site 20:02:53 -site 20:03:09 http://www.gnu.org/fun/jokes/ed.msg 20:04:19 elliott: how predictable ! 20:04:49 nortti: by that metric, most sites I visit belong to google 20:05:59 does google host those sites under it's own domain? 20:06:20 elliott: Did you know dons gave an incorrect answer to my question?! 20:06:27 elliott: And that I didn't phrase my question title as a question? 20:06:32 elliott: Also, the question body. 20:08:00 shachaf: Anyway, with the Typeable constraint it's pretty trivial to do. 20:08:07 Will you give me "the reps" if I give the obvious answer for that? 20:08:15 elliott: Trivial as in MemoCombinators style? 20:08:28 !bfjoust perkele [+.] 20:08:34 shachaf: Yes. Or uglymemo style. 20:08:37 ​Score for nortti_perkele: 18.9 20:08:43 * elliott starts writing. 20:08:44 uglymemo = unsafePerformIO? 20:08:57 elliott: Did you see augustss's answer? 20:08:58 !bfjoust perkele [+] 20:09:01 ​Score for nortti_perkele: 18.4 20:09:02 augustss = the best 20:09:05 !bfjoust perkele [+.] 20:09:08 http://hackage.haskell.org/package/uglymemo 20:09:09 ​Score for nortti_perkele: 18.9 20:09:13 shachaf: augustss did not leave an answer. 20:09:20 !bfjoust perkele [.+] 20:09:24 ​Score for nortti_perkele: 18.9 20:09:30 !bfjoust perkele [.+.] 20:09:34 ​Score for nortti_perkele: 17.6 20:09:40 !bfjoust perkele [.+.+] 20:09:44 ​Score for nortti_perkele: 20.3 20:09:45 elliott: The answer is "no". – augustss 12 hours ago 20:09:52 !bfjoust perkele [.+.+.+] 20:09:55 THAT LOOKS LIEK AN ANSWER TO ME 20:09:56 ​Score for nortti_perkele: 18.5 20:10:05 THE WORD ANSWER IS IN IT 20:10:05 QED 20:10:21 !bfjoust perkele [.+.+][.+.+] 20:10:25 ​Score for nortti_perkele: 20.8 20:10:38 * elliott decides answering shachaf's question will be more pain than it's worth. 20:10:53 OK! 20:10:59 I'm glad I won't have to give you all that karma. 20:11:03 Do you left-align the convenience amount on your cheques for security purposes? 20:11:08 !bfjoust perkele [.+.+][.+.+][.+.+] 20:11:12 ​Score for nortti_perkele: 20.8 20:11:47 zzo38: Which part is the convenience amount? 20:13:33 > typeOf (undefined :: TypeRep) 20:13:34 TypeRep 20:14:03 elliott: I like how 5 people upvoted dons's answer. 20:14:12 shachaf: The part in digits near the date. 20:14:27 Probably because he's dons. :-( 20:14:31 -!- augur_ has joined. 20:14:38 -!- augur has quit (Read error: Connection reset by peer). 20:15:15 zzo38: I usually left-align it out of habit. 20:15:21 wow, I requested 16GB of storage, they gave me 16GiB 20:15:21 The bank has told me that cheques are valid for six months from the date written on there, so sometimes I enter dates five months in the past to give the recipient only one month to deposit it. 20:15:27 that's… uncharacteristically nice of someone to do that 20:15:30 I don't expect much security on my cheques. 20:15:45 ais523: Was it RAM? 20:15:51 shachaf: no, disk space 20:16:03 16GB of RAM would be rather expensive to hire 20:16:19 $639.95/mo from Linode. 20:16:33 indeed, that seems about right 20:16:41 That soudns rather expensive. 20:16:53 I'm not surprised that there are people prepared to offer that much, but it is a bit large 20:16:56 You can buy 16GB of RAM for your computer for much less than that. 20:16:57 shachaf: Actually, this is a pain. 20:17:07 elliott: What's a pain? 20:17:10 No, wait, got it. 20:18:10 No, wait, haven't. 20:18:18 Got what? 20:18:26 shachaf: There's no function ((Typeable a) => a -> TypeRep -> Dynamic) that casts the argument to that TypeRep. 20:18:53 So you can't write read' :: String -> TypeRep -> Dynamic. 20:18:55 shachaf: Cheques do not really have a lot of security, but I make it secure with what I have, by left-aligning the convenience amount, putting bars on both sides of the legal amount, etc. I do have the idea better system for cheques security, which involves a digital signature, which can optionally be encrypted with the public key of the recipient too. 20:18:59 Actually, wait, that wouldn't even work. 20:19:08 Oh, I know what would. 20:19:13 Wait, no, even that wouldn't work. 20:19:16 zzo38: You should make your cheques secure Knuth-style. 20:19:22 shachaf: It's impossible without writing a new typeclass. 20:19:25 OK, seems that iptables doesn't block connections from localhost 20:19:36 elliott: It is? 20:19:36 either that, or ufw's setup for it specifically allows those 20:19:39 that makes sense, really 20:20:01 shachaf: I get the feeling you already know the answer to the question. 20:20:15 elliott: It doesn't *sound* like it should require a new type class. 20:20:29 Can't you just use Read? 20:20:40 No. 20:21:00 Why not? 20:21:00 Will something like the way NodeClass in dvi-processing is implemented, work for what you are trying to make? 20:22:18 elliott: I TOTALLY JUST SHOWED DONS, MAN 20:24:38 -!- nortti has quit (Quit: nortti). 20:29:30 shachaf: You can't do it because you can't write: 20:29:35 foo :: (forall a. (Read a, Typeable a) => TypeRep -> a) -> (forall a. (Read a, Typeable a) => a) 20:29:39 because the forall and constraints float up. 20:30:18 Or, hmm. 20:30:45 Yes, you can. 20:31:48 shachaf: http://sprunge.us/CHSj 20:32:00 shachaf: This works, but I bet it doesn't actually memoise. 20:32:16 Because (memo (...)) is under an invisible lambad. 20:32:18 *lambda. 20:33:46 shachaf: Yes, it's impossible because you want a quantifier-less version to memoise, but since read's return type has to be known at use (unless it's in a type-lambda), you can't make such a version. 20:36:31 I found the least-helpful kind tutorial ever: http://www.reddit.com/r/haskell/comments/scagx/understanding_haskell_kinds/c4czblv?context=1 20:38:45 elliott: Right, yours doesn't memoize. 20:39:17 shachaf: shachaf: Yes, it's impossible because you want a quantifier-less version to memoise, but since read's return type has to be known at use (unless it's in a type-lambda), you can't make such a version. 20:39:37 (And you want a quantifier-less version to memoise because any quantifier will mean you'll end up stuck under a type-lambda, defeating the memoisation.) 20:40:19 You *might* be able to create the mutable memo-table outside of the type lambda... but it'll be very ugly and unsafePerformIOy. 20:40:45 Right, that's the sort of think I was thinking about doing now... 20:41:39 shachaf: Actually, I can imagine a pure memoisation solution working... but it would be a pain to set up, because TypeRep is abstract. 20:42:06 elliott: You mean an infinite-trie style thing? 20:42:07 Actually, that wouldn't work. 20:42:17 I was thinking: Construct the infinite trie from the TypeReps, guarding each element behind a ReadVal. 20:42:21 But then each individual element won't be shared. 20:42:28 "guarding"? 20:42:51 Well, you can't have InfiniteTree (forall a. (Show a, Typeable a) => a). 20:42:58 So you need to stuff it into something monomorphic. 20:43:45 shachaf: Anyway, let me try something. 20:44:37 -!- augur_ has quit (Remote host closed the connection). 20:45:57 shachaf: No dice. 20:46:01 Actually... 20:46:28 Yeah, nope. 20:46:38 shachaf: The memotable still has to contain the polymorphic thing at the leaves. 20:46:50 elliott: Right, but it'll only be used monomorphically. 20:46:55 shachaf: It doesn't matter. 20:47:00 If I understand what you mean. 20:47:06 Which part doesn't matter? 20:47:10 It doesn't matter how you'll use it. 20:47:18 You stuff it in ReadVal and the sharing is instantly gone because it's a lambda. 20:47:27 So putting it in a memotable does absolutely nothing. 20:47:33 What should I Android on my Android ... 20:47:34 You're just storing lambdas in a tree. 20:47:37 You still pay the cost every time. 20:47:49 elliott: It's in a lambda, but that doesn't mean it has to be doing the Read. 20:47:55 If you could store it in an existential, it'd work; but you can't, because you don't know what type you're using read's result as. 20:47:59 Because TypeRep is runtime information. 20:48:01 It's in a (TypeRep,String -> a) lambda. 20:48:12 No, that's a different lambda. 20:48:17 I'm talking about the result you get back from read. 20:48:23 That's in a type lambda. 20:48:27 Ah. 20:48:39 And you can't apply it, because all you have is a TypeRep, which is not actually a type. 20:48:39 Well, yes, but when you actually look at this result... Hmm. 20:48:42 What you'd need is: 20:48:56 mkDynamicWithThisType :: (forall a. (Typeable a) => a) -> TypeRep -> Dynamic 20:49:04 which would apply the type the TypeRep represents to the type-lambda and stuff it in a Dynamic. 20:49:09 But that's not possible to write. 20:49:23 There's no fundamental reason you *couldn't* do this; it's just that you can't with GHC. 20:49:58 shachaf: Have I convinced you yet? 20:50:02 No. 20:50:06 *sigh* 20:50:10 You're like that STM guy. 20:50:15 elliott: Given how many times you've gone back and forth yourself on it... 20:50:32 shachaf: Yes, but now I know why none of the solutions can possibly work. 20:51:11 OK, wait. 20:51:15 (Argh, I just went back again.) 20:51:20 elliott: What about something like your/edwardk's reflection-hack? 20:51:29 But I got An Idea. 20:51:37 shachaf: Doubt it. 20:51:37 I knew it would happen. 20:51:50 elliott: Doesn't that let you provide a new Read dictionary that can cheat? 20:51:59 I didn't actually look at that very closely. 20:52:08 Oh, no, it doesn't really. 20:52:41 These are a few of things stupid with Haskell, so we should make Ibtlfmm it does better. If you want to control such optimization things as memoization more precisely, you could use inline LLVM codes, and attribute pragmas attached to function to control many things if needed 20:53:20 -!- zzo38 has quit (Remote host closed the connection). 20:53:44 @hoogle fromDyn 20:53:44 Data.Dynamic fromDyn :: Typeable a => Dynamic -> a -> a 20:53:44 Data.Dynamic fromDynamic :: Typeable a => Dynamic -> Maybe a 20:55:39 shachaf: http://sprunge.us/BIXA 20:55:54 That works. 20:56:17 The trick was to skip the TypeRep -> part (that's still impossible for the reasons I said). 20:56:27 Construct the TypeRep from *inside* the type-lambda, but with a reference to a memotable from *outside* it. 20:57:28 -!- MDude has quit (Read error: Connection reset by peer). 20:57:43 -!- MDude has joined. 20:57:45 Could not deduce (Data.Hashable.Hashable TypeRep) 20:58:16 -!- Patashu has joined. 20:59:07 shachaf: Upgrade GHC. 20:59:10 Or use a Map instead. 20:59:13 Erm. 20:59:15 Upgrade hashable, rather. 20:59:32 -!- kmc_ has joined. 20:59:46 You need GHC 7.0.2 or above for it, thogh. 20:59:47 *though 20:59:53 -!- asiekierka has quit (Remote host closed the connection). 21:01:06 I upgraded Hashable and it's not using the new one. 21:01:08 hlep,a 21:02:03 Upgrade unordered-containers. 21:02:17 (Don't you wish GHC had runtime linking?) 21:02:32 Ooh, fun: 21:02:38 hi monqy 21:02:38 Hi 21:02:38 Q: impossible 21:02:48 Oh, wait. 21:02:48 Have I mentioned that 21:02:50 -- The general contract of 'hash' is: 21:02:50 -- 21:02:50 -- * This integer need not remain consistent from one execution 21:02:50 -- of an application to another execution of the same 21:02:50 -- application. 21:02:51 is evil? 21:02:57 The "impossible" was yours. 21:03:04 I thought it came from GHC. :-( 21:03:05 -!- kmc has quit (Ping timeout: 260 seconds). 21:03:28 I'm using it as the same type. 21:03:34 What? 21:03:43 I'm using it as the same type. 21:03:47 Are you just babbling? 21:03:55 Your last 9 messages have made no sense. 21:03:59 I'm trying your code and it's broken. 21:04:01 -!- kmc_ has changed nick to kmc. 21:04:21 fromDyn is failing. 21:04:29 Hmm. 21:04:31 Let me take a look. 21:05:02 data Hi = Hi deriving (Show,Typeable) 21:05:02 instance Read Hi where readsPrec _ _ = trace "hi monqy" [(Hi,"")] 21:05:13 let i = mkReadVal "hi" 21:05:13 let (ReadVal x) = i 21:05:13 print (x :: Hi) 21:05:13 print (x :: Hi) 21:05:13 print (x :: Hi) 21:05:22 @hoogle fromDyn 21:05:23 Data.Dynamic fromDyn :: Typeable a => Dynamic -> a -> a 21:05:23 Data.Dynamic fromDynamic :: Typeable a => Dynamic -> Maybe a 21:05:46 -!- nortti has joined. 21:05:53 I don't see why it's saying "impossible". 21:06:16 *Main> applyMkReadVal foo :: Int 21:06:16 42 21:06:16 *Main> applyMkReadVal foo :: Int 21:06:16 *** Exception: impossible 21:06:20 There's only one possible TypeRep key in the map. 21:06:23 So how can they fail to match? 21:06:39 02:34:54 I would be interested in jour opinions on Frege, is it an enrichment, or do you consider it as not so important? 21:06:40 02:37:14 ursthegiz: I've never heard his name before (well, that's not true, I heard it once before), so while he may have had an important influence it was apparently not big enough to feel that I should be reading his work rather than later work based on it 21:06:42 -- #haskell 21:07:33 `which quote 21:07:36 ​/hackenv/bin/quote 21:08:07 elliott: They're the same type. 21:08:11 Why isn't it working. :-( 21:08:14 shachaf: Let me test something. 21:08:16 `ls /hackenv 21:08:19 UNDELETE.EXE \ bin \ canary \ karma \ lib \ monqy \ paste \ quotes \ share \ wisdom 21:08:25 elliott: Wait, did you just forget to do the memoization bit? 21:08:30 `ls /hackenv/bin 21:08:33 ​? \ @ \ No \ WELCOME \ addquote \ allquotes \ calc \ define \ delquote \ etymology \ forget \ fortune \ frink \ google \ hatesgeo \ json \ k \ karma \ karma+ \ karma- \ learn \ log \ logurl \ macro \ marco \ ok \ paste \ pastekarma \ pastelog \ pastelogs \ pastenquotes \ pastequotes \ pastewisdom \ pastlog \ ping \ prefixes \ qc \ quote \ quotes \ roll \ searchlog \ toutf8 \ translate \ translatefromto \ translateto 21:08:35 Oh, never mind. 21:08:52 `rm UNDELETE.EXE 21:08:53 `? No 21:08:54 No output. 21:08:56 No? ¯\(°_o)/¯ 21:09:03 shachaf: Oh, hmm. 21:09:08 `ok 21:09:11 ​^ul (?so `ok fdhsfdsgdsg: 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)S 21:09:12 `ls /hackenv/bin | tr a-zA-Z n-za-mN-ZA-M 21:09:15 ls: cannot access /hackenv/bin | tr a-zA-Z n-za-mN-ZA-M: No such file or directory 21:09:43 `rm bin/ok 21:09:45 elliott: Oh... 21:09:45 No output. 21:09:49 shachaf: What? 21:09:52 My "oh" was wrong. 21:09:53 ion: try `run 21:09:59 elliott: You forgot a "return" 21:10:05 It works now. 21:10:07 `run ls /hackenv/bin | tr a-zA-Z n-za-mN-ZA-M 21:10:10 ​? \ @ \ Ab \ JRYPBZR \ nqqdhbgr \ nyydhbgrf \ pnyp \ qrsvar \ qrydhbgr \ rglzbybtl \ sbetrg \ sbeghar \ sevax \ tbbtyr \ ungrftrb \ wfba \ x \ xnezn \ xnezn+ \ xnezn- \ yrnea \ ybt \ ybthey \ znpeb \ znepb \ cnfgr \ cnfgrxnezn \ cnfgrybt \ cnfgrybtf \ cnfgradhbgrf \ cnfgrdhbgrf \ cnfgrjvfqbz \ cnfgybt \ cvat \ cersvkrf \ dp \ dhbgr \ dhbgrf \ ebyy \ frnepuybt \ gbhgs8 \ genafyngr \ genafyngrsebzgb \ genafyngrgb 21:10:12 return (fromDyn ...) 21:10:17 shachaf: Oh. 21:10:19 Its type was being inferred as IO a 21:10:28 `which cc 21:10:30 ​/usr/bin/cc 21:10:34 shachaf: If I post this to SO, will you accept it? 21:10:46 `run ls /hackenv/bin | perl -CS -Mutf8 -pwe 'y/!-~/!-~/; y/ / /' 21:10:50 ​? \ @ \ No \ WELCOME \ addquote \ allquotes \ calc \ define \ delquote \ etymology \ forget \ fortune \ frink \ google \ hatesgeo \ json \ k \ karma \ karma+ \ karma- \ learn \ log 21:10:52 `file /usr/bin/cc 21:10:55 ​/usr/bin/cc: symbolic link to `/etc/alternatives/cc' 21:11:03 elliott: If nothing better comes along... :-( 21:11:17 elliott: I mean, it does what I wanted. 21:11:19 `file /etc/alternatives/cc 21:11:22 ​/etc/alternatives/cc: symbolic link to `/usr/bin/gcc' 21:11:33 shachaf: Why do you want this, anyway? 21:11:46 elliott: I don't. I think it's a bad idea. 21:12:00 Rephrase: Why did you ask the question, anyway? 21:12:12 elliott: By the way, any reason you're not using UglyMemo instead of doing it yourself? 21:13:03 shachaf: Because you can't use UglyMemo for the exact reason I told you earlier. 21:13:15 It would make the memo table _inside_ the ReadVal. 21:13:43 Ah, yes. 21:13:52 Which is why you need the ReadVal type in the first place. 21:14:07 Rather than just :: -> Read a => Typeable a => a 21:15:06 elliott: *Could* you do it and return a value :: (Read a, Typeable a) => a? 21:17:11 elliott: (I don't think anything better is likely to come along, by the way.) 21:17:17 shachaf: Posted. 21:17:20 Also, could you do what? 21:18:09 Instead of returning a ReadVal, return a straight polymorphic value. 21:18:21 Yes, that would work. 21:18:22 Do you want me to? 21:18:41 Well, it seems nicer not to have a ReadVal if you don't need one. 21:19:01 How would you do it? 21:19:33 Oh wait, I just did that and it broke it. 21:19:57 (Obviously, in retrospect.) 21:19:59 shachaf: No, you can't do it. 21:20:02 GHC always floats everything left. 21:20:07 shachaf: However, 21:20:13 let foo = mkReadVal "blah" 21:20:18 in foo `seq` useReadVal foo 21:20:21 should be OK to use polymorphically. 21:22:20 Do you even need the foo `seq`? 21:23:09 shachaf: I'm not sure. 21:23:12 But it's harmless at worst. 21:23:48 I don't like dons's answer. :-( 21:23:50 shachaf: By the way, I don't like how augustss posts answers as comments. :( 21:23:52 Ooh! 21:23:54 Simultani-complaint! 21:23:59 He's in pattern-matching mode. 21:24:02 *SLIGHTLY ABOVE-AVERAGE FIVE* 21:24:15 I hope your answer gets upvoted above his. 21:24:15 *BEGINNING-TO-HALLUCINATE FIVE* 21:24:22 shachaf: I almost downvoted his. 21:24:30 But then I was all "that will cost me *one* *rep* *point*". 21:24:38 -!- augur has joined. 21:24:55 Would it cost *me* that? 21:25:00 I have ~0 rep points. 21:25:03 Yes. 21:25:08 But don't do that. 21:25:09 It'd be Rude. 21:25:16 http://stackoverflow.com/tags/haskell/topusers ;; I hate dons too. 21:25:54 dons hasnt been on irc in like 90 days :( 21:26:22 elliott: If augustss posted answer as answers, he'd get infini-karma. 21:26:27 So he's doing it for your sake. 21:26:53 hmm, any idea why rsyslogd is running at nearly 100% CPU? 21:27:39 elliott: You may not like dons, but surely you like cmccann, right? 21:28:18 and if I kill it, another rsyslogd spawns that runs at nearly 100% CPU 21:29:22 14:28 < aiju> legal language is so fucked up, it's like C++++ 21:29:58 :3 21:30:29 Do you have a hilight on C++? 21:33:14 no 21:34:15 elliott: Er, I think your code is broken. 21:34:16 `pastefortunes 21:34:20 mkReadVal :: (Read a, Typeable a) => String -> ReadVal 21:34:22 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.7097 21:37:01 my own hackego command that is a hackish oneliner 21:37:06 `pastefortunes 21:37:12 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.16622 21:37:20 oh, haha, perhaps the amount of CPU time that /exists on the system/ is only the amount being used? 21:38:38 `fortune 21:38:41 A man may be so much of everything that he is nothing of anything. \..-- Samuel Johnson 21:39:10 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.88.2 [Firefox 11.0/20120312181643]). 21:40:13 " sadist is a masochist who follows the Golden Rule." 21:45:55 -!- nortti has quit (Quit: qq). 21:46:50 shachaf: Oops. 21:47:23 shachaf: Fixed. 21:47:37 shachaf: I had an idea for getting rid of the Typeable constraint, but it didn't work. :( 21:48:11 what port is secure smtp? 21:48:24 @google secure smtp port 21:48:25 http://www.emailaddressmanager.com/tips/mail-servers.html 21:48:26 Title: Email Ports and Mail Servers 21:48:38 It's on that page. 21:48:39 ah, found it on Wikipedia 21:48:57 587 21:49:50 elliott: You may not like dons, but surely you like cmccann, right? 21:49:59 shachaf: No, he has more rep than me. 21:50:03 Once I fix that, I'll like him. 21:53:05 -!- joo has joined. 21:55:11 `welcome joo 21:55:14 joo: 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 21:56:00 ah, found it, it's failing to read some procfile it expects 21:56:05 (found it by searching) 21:56:09 elliott: What was your idea? 21:56:17 Thank you. 21:57:13 I guess maybe you could do unsafe pointer comparison for the Read dictionaries, since they're going to be static anyway? 21:57:17 Or something along those lines? 21:59:04 shachaf: Oh, that was my idea! Except I forgot it on the way to realising it didn't work, but it does. 21:59:07 Not unsafe -- just StableName. 21:59:13 Except you can just use read itself. 21:59:14 @src Read 21:59:14 class Read a where 21:59:15 readsPrec :: Int -> ReadS a 21:59:15 readList :: ReadS [a] 21:59:15 readPrec :: ReadPrec a 21:59:15 readListPrec :: ReadPrec [a] 21:59:20 Uh, readsPrec. Whatever. 22:00:06 StableName? 22:00:48 shachaf: http://hackage.haskell.org/packages/archive/base/4.5.0.0/doc/html/System-Mem-StableName.html 22:00:55 I'll update my answer for that later. 22:01:23 Oh, nifty. 22:01:33 elliott: Why aren't more people upvoting your answer. :-( 22:01:50 Instead of dons. Maybe you should change your name to Eliot Bruce Stewart. 22:03:01 elliott: How can you get a StableName for read itself? 22:03:26 Oh, by specializing it to :: String -> a? 22:04:29 shachaf: Yes. 22:04:33 shachaf: Execpt not read. 22:04:36 It would have to be readsPrec. 22:04:40 read isn't part of the dictionary. 22:04:55 Right. 22:06:12 Are you sure that would work? 22:06:42 shachaf: Why wouldn't it? 22:07:27 Does specializing readsPrec actually give you a pointer to a static thing? 22:08:14 shachaf: Why not? 22:08:17 -!- A5b47a346 has joined. 22:08:17 -!- A5b47a346 has quit (Excess Flood). 22:08:26 -!- Nisstyre has quit (Read error: Operation timed out). 22:09:40 -!- A4e4d63e8 has joined. 22:09:40 -!- A4e4d63e8 has quit (Excess Flood). 22:09:51 fizzie: ^ 22:09:52 ais523: ^ 22:09:57 Well, because _readsPrec :: _Read a -> Int -> ReadS a 22:10:03 Specializing it might just make a thunk. 22:10:23 -!- A4bbd0eae has joined. 22:10:23 -!- A4bbd0eae has quit (Excess Flood). 22:10:31 shachaf: fine, read "" then 22:10:35 and use the thunk you get 22:10:39 hmm that won't work 22:10:42 elliott: what's the ^ at? 22:10:47 that person repeatedly joinparting? 22:10:55 -!- ChanServ has set channel mode: +o ais523. 22:10:55 elliott: Getting a guaranteed pointer to a static dictionary seems a bit tricky. 22:11:02 joinpartying! 22:11:02 ais523: that *bot 22:11:05 different nicks each time 22:11:08 -!- ais523 has set channel mode: +b *!*@cho94-8-88-178-12-119.fbx.proxad.net. 22:11:13 -!- ais523 has set channel mode: -o ais523. 22:11:20 Join Party! 22:11:37 -!- himonqy has joined. 22:12:00 -!- hielliott has joined. 22:12:10 -!- himonqy has quit (Client Quit). 22:12:10 -!- hielliott has quit (Client Quit). 22:13:54 apparently that's happening in many channels 22:13:56 with different IPs 22:14:38 -!- fizzie has quit (Ping timeout: 245 seconds). 22:17:20 shachaf: Do you remember that time edwardk accidentally made his library give you unsafeCoerce? 22:17:54 No. 22:18:12 Which one? 22:18:17 -!- fizzie has joined. 22:18:45 reflection 22:18:57 "Removed the dependency on multiparameter type classes, functional dependencies, and flexible instances, by making Reifies a single parameter type class in the same fashion as ReifiesStorable." -- which meant you could reify anything as anything. 22:21:37 elliott: I don't see how you could do it with StableName... 22:22:17 Oh, I just made it work. 22:22:28 shachaf: It's easy, no? 22:22:35 shachaf: Hey, I was going to do it. :''( 22:22:51 elliott: Don't worry, you can do it with fewer unsafeCoerces than I used! 22:22:55 I used 4. 22:23:03 shachaf: What? 22:23:05 You don't need any. 22:23:07 Right. 22:23:16 Hmm, how do you do it without any? 22:23:20 You can't toDyn without Typeable. 22:23:35 Can you keep it polymorphic somehow? 22:23:55 shachaf: Oh, hmm, good point. 22:24:03 Well, you need at most two unsafeCoerces. 22:25:08 elliott: I used more unsafeCoerces for the StableName. 22:25:13 Because what would the StableName's type be? 22:26:03 shachaf: hashStableName :: StableName a -> Int 22:26:09 You key the table on the hash. 22:26:25 (Okay, this isn't safe. :( ) 22:26:36 Oh. 22:26:41 I just used it directly. 22:27:18 Yeah, it's a bad idea, because that's not safe. 22:27:41 hi monqy 22:27:42 Hi 22:27:42 Hi 22:27:42 Hi 22:27:42 ho monqy 22:27:44 Ho 22:27:46 Ho 22:27:49 Ho 22:27:52 monqy = Santa Claus 22:28:18 shachaf: Anyway, mine is arguably better, in that it doesn't need unsafeCoerce :p 22:28:24 shachaf: Actually... 22:28:34 I bet I could get it down to, like, one unsafeCoerce using vault. 22:29:01 I forgot what Vault is. 22:29:13 It was like an exciting underground adventure, though. 22:29:17 With keys and everything. 22:29:18 http://hackage.haskell.org/packages/archive/vault/0.1.0.0/doc/html/Data-Vault.html 22:29:38 It's a heterogeneous Map with the type encoded in the keys. 22:29:54 Hm. 22:32:13 elliott: I like how fragile this is. 22:32:24 shachaf: Eh? 22:32:38 I mean, maybe. Maybe not. Who knows? 22:33:02 shachaf: How fragile what is? 22:33:05 vault isn't fragile. 22:33:10 It even has a pure implementation. 22:33:22 (Okay, the pure implementation requires one unsafePerformIO, but it's really benign; not the kind you can use to unsafeCoerce.) 22:33:33 (And you can omit the unsafePerformIO if you're OK with lookup returning in IO.) 22:33:40 Not vault. 22:33:45 The other thing. 22:33:54 The memo thing? 22:33:57 How's it fragile? 22:34:18 I don't know! 22:34:28 But it has three unsafeCoerces in it. 22:34:36 Oh, *your* thing. 22:34:38 My thing isn't fragile. 22:34:42 The Dynamic thing? 22:34:45 Yes. 22:34:47 -!- Nisstyre has joined. 22:34:47 No, that one's probably OK. 22:34:47 shachaf: Do you make sure to seq readsPrec first? 22:34:51 Consider 22:35:02 readsPrec = let mumble mumble = ... in blah `seq` \x -> ... 22:35:42 > let mumble mumble = 5 in mumble mumble 22:35:43 5 22:35:53 whoa, dude 22:37:08 > let mumble :: (forall a. a -> b) -> b; mumble mumble = mumble mumble in mumble (const 42) 22:37:09 42 22:37:12 -!- augur has quit (Remote host closed the connection). 22:37:29 ``Like, whoa, man.'' -- Sha Chaf 22:37:32 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: `Like,: not found 22:37:34 elliott: Wait, why isn't that working? 22:37:39 data Ho = Ho deriving (Show,Typeable) 22:37:39 instance Read Ho where readsPrec = let x = trace "ho elliott" in x `seq` \_ _ -> trace "ho monqy" [(Ho,"")] 22:37:49 How is it not working? 22:37:56 That prints "ho monqy" without printing "ho elliott" even once. 22:38:05 Odd. 22:38:11 Anyway, you need to evaluate readsPrec. 22:38:15 StableNames aren't preserved over forcing. 22:38:41 (I like the part where Haskell desperately needs an operational semantics because of IO.) 22:38:43 elliott: You should figure it out and add it to your SO answer! 22:39:18 (I like the part where OPERATIONAL SEMANTICS ARE THE DEVIL NO ONE NEEDS YOU OPERATIONAL SEMANTICS IO IS A LIE FOUR SIMULTANEOUS THREAD TICKS WITHIN A SINGLE CLOCK CYCLE.) 22:39:35 s/ARE/IS/ 22:39:45 I may never get the hang of that word. 22:40:25 shachaf: Eh? ARE was correct. 22:40:39 Hmm, or maybe not. 22:40:52 I like how "a " is the only way to say "an operational semantics". :( 22:41:12 An operational semantick. 22:41:24 ski, maybe is a functor, too. yes ? that is, mapM is overkill, use fmap 22:42:07 elliott: I like the part where you're making fun of a person for not knowing the Haskell standard library as well as you. 22:42:35 (Actually you're making fun of them for being both an annoying pedant and wrong at the same time, I guess.) 22:43:04 shachaf: I don't make fun of people for being ignorant. 22:43:16 I make fun of people who are ignorant and act like they're not. 22:43:47 e.g.: but you could use the prelude sequence and fmap and not depend on Foldable. 22:44:02 :-( 22:44:15 15:43 < ksf> yes. that's what maybetolist is for :) 22:44:41 elliott: Do you like the thing where someone says something and turns out to be wrong and then pretends they were saying something else all along? 22:45:12 I like that thing. 22:45:26 shachaf: I think they might have been sincere about that. 22:45:31 But it's idiotic, because maybeToList isn't in Prelude. 22:45:33 @hoogle maybeToList 22:45:33 Data.Maybe maybeToList :: Maybe a -> [a] 22:45:42 elliott: OK, you should get the non-Typeable version working. 22:45:49 shachaf: Okay. 22:46:09 The fewer unsafeCoerces, thes more points you get. 22:47:18 elliott: I like how my unsafeCoerce version works even with "read" instead of "readsprec". 22:47:43 shachaf: What? How. :( 22:47:46 @src read 22:47:46 read s = either error id (readEither s) 22:47:49 :( 22:48:17 I think as far as GHC is concerned one is just as likely to work as the other. 22:48:25 I mean, they're both functions :: ReadDict a -> ... 22:48:43 There's no difference in how you use them except that one is in the dictionary. But it's still just an accessor function. 22:49:00 shachaf: Yes, but the readsPrec in the dictionary is always at the same place. 22:49:08 read, applied to a dictionary, is a new function each time. 22:49:29 readsPrec is also a new function each time? 22:49:33 No. 22:49:35 Unless GHC does some clever optimization. 22:49:36 Why would it be? 22:49:38 The dictionary is a static object. 22:49:46 data Foo = Foo { bar :: Int } 22:49:46 Right, but readsPrec is just a normal function. 22:49:54 Is (bar x) a new Int every time you call it? 22:49:57 For the same x? 22:50:01 Hardly; it's the same pointer-to-Int each time. 22:50:10 Now s/Int/TypeOfReadsPrec/, s/Foo/TheDictionary/. 22:50:16 But: quux x = bar x + 42 22:50:21 (quux x) is a new Int each time. 22:50:23 Hm. 22:50:34 Well, it is a new thunk each time. 22:50:37 shachaf: Once forced. 22:50:39 It's called sharing, dude. 22:50:58 elliott: So why is read working? 22:51:01 Riddle me that, riddler. 22:51:06 I don't know; show me the Core. 22:51:11 @type readsPrec 22:51:12 forall a. (Read a) => Int -> String -> [(a, String)] 22:51:54 The Core is long. 22:52:35 The long core is long. 22:53:27 shachaf: Use ghc-core. 22:53:36 shachaf: Have I mentioned that I don't like how functions destroy sharing? 22:54:06 `quote 22:54:06 `quote 22:54:06 `quote 22:54:07 `quote 22:54:14 515) Taneb's been hit by melancholy. He didn't have any friends, fortunatel.y 22:54:26 26) SUPLENTES EN UN UNIVERSO (MUSSOLINI CUANDO CONQUISTO EL MUNDO): i tan solo puede concluir que es defectuoso, o el mundo esta absolutamente loco. Todos a la gloria Il Duce! 22:54:27 806) elliott: the new fnord elliott: what is the point? nothing changed. 22:54:29 827) elliott: Apparently Rowan Williams is Primate of All England. CHECKMATE CREATIONISTS 22:54:36 No win. 22:54:42 ion: wat 22:54:46 elliott: What about ghc-core? 22:54:56 shachaf: cabal install ghc-core 22:54:59 ghc-core myprog.hs 22:55:03 Yes, and? 22:55:10 The quote game: get two out of two quotes from the same person in a row. 22:55:20 I was rather thinking of haskell plus type-family ducktypes minus monomorphism restriction plus ghci defaulting. 22:55:20 ksf: "type-family ducktypes"? 22:55:23 class Num a b where; type NumCo a b :: *; (+) :: a -> b -> NumCo a b 22:55:34 shachaf: Then give me the Core. 22:55:38 It elides some crap from GHC's output. 22:55:46 `quote 22:55:48 (Missed one.) 22:55:49 328) Not all Christians are, but there are a lot of Christians that are such annoying retards. 22:56:01 elliott: HELP I JUST BROKE IT 22:56:01 ais523: which one should I delete? 22:56:03 I think 515 or 328 22:56:15 elliott: Wow. 22:56:21 shachaf: What. 22:56:23 * ais523 looks 22:56:23 elliott: Adding some *definitions* to the file breaks it. 22:56:27 @quote 22:56:27 identity says: "To " ++ (show $ log (2^1024)) ++ " and beyond!" 22:56:29 @quote 22:56:30 bringert says: psicho: so you are saying that your teacher gave you two days to do an assignment in a language you didn't know? 22:56:37 elliott: neither 515 nor 328 is funny 22:56:40 Wait, no it doesn't. 22:56:52 elliott: OK, I think this is nondeterministic. 22:56:57 ais523: 328 was funnier when it happened because it was in response to oklopol claiming the end of it 22:57:05 But, uh, even so it's kind of weird. 22:57:07 `delquote 328 22:57:11 ​*poof* Not all Christians are, but there are a lot of Christians that are such annoying retards. 22:57:26 `quote 22:57:29 52) Maternal instincts? Don't you just leave the thing in a box until it starts crying, and then shake it until it stops? 22:57:32 `quote 22:57:33 `quote 22:57:33 `quote 22:57:33 `quote 22:57:44 527) Pythagoras was running away and he reached a field of beans, but he didn't want to step on them so he let those guys chasing him to kill him instead. 22:57:52 489) It's ok guys. I am doing what I can to keep my psyche and ego surviving. All the while the threat of ww3 looms, the mortality of family and friends(loved ones?) and sooner or llater my own mortality. 22:57:53 elliott: Remember your Foo example? 22:57:56 168) Vorpal: YOU ARE AMERICAN 22:57:58 768) kallisti: by ordered multiset did you mean: list?????? 22:58:01 shachaf: Which Foo example? 22:58:06 Foo { bar :: Int } 22:58:07 + 42 22:58:13 Right./ 22:58:17 elliott: For that + 42 function, sometimes I'm getting equal pointers and sometimes I'm not. 22:58:24 `delquote 168 22:58:26 Without changing the code. 22:58:28 ​*poof* Vorpal: YOU ARE AMERICAN 22:58:33 shachaf: -fno-cse 22:58:53 elliott: Oh, wait, I may just have been wrong. 22:59:07 * ion chuckles at ordered multiset 22:59:07 That doesn't change the fact that "read" is behaving the same way. 22:59:23 elliott: I just got it again! 22:59:46 :( 22:59:52 This is really weird. 23:00:24 I mean, sometimes I consistently get "hi monqy\nhi\nhi\nhi\nho monqy\nho\nho\nho\n". 23:00:32 And sometimes I consistently get "hi monqy" printing three times. 23:00:35 But I'm not changing the code! 23:00:46 Are you recompiling? 23:00:48 ("ho monqy" also prints three times.) 23:00:49 Yes. 23:01:31 It's also happening with readsPrec now. 23:01:37 :( 23:01:57 I just did "undo" in my editor repeatedly to get back to a state I *know* worked. 23:02:00 Still happening. 23:02:04 HLE elliott: Oh, wai.t 23:02:26 It's just -O3 23:02:38 I forgot to fforce-recomp when testing that hypothesis earlier. 23:02:42 *-O 23:02:43 *-O2 23:03:01 It With -O it shares, without -O it doesn't. 23:03:08 Why are you using -O3? 23:03:10 -O3 is -O2. 23:03:17 elliott: Because I was testing it, OK?! 23:03:20 Anyway O3 > O2 23:03:21 3 > 2 23:03:32 ∎ 23:04:10 elliott: But this is true with both read and readsPrec. 23:04:30 shachaf: But O*x = O. 23:04:34 Don't you know basic arithmetic? 23:04:37 Just like O(n) = O. 23:04:41 = O(O). 23:05:42 > let o = fun "O" in fix o 23:05:43 Ambiguous type variable `a' in the constraints: 23:05:43 `GHC.Show.Show a' 23:05:44 a... 23:05:47 > let o = fun "O" in fix o :: Expr 23:05:48 O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (O (... 23:05:54 O, now I understand. 23:06:02 -!- Phantom_Hoover has quit (Quit: Leaving). 23:06:51 > fun "O" (fun "I" (var "C")) 23:06:52 Ambiguous type variable `t' in the constraints: 23:06:52 `SimpleReflect.FromExpr ... 23:06:55 > fun "O" (fun "I" (var "C")) :: Expr 23:06:55 Ambiguous type variable `t' in the constraints: 23:06:56 `SimpleReflect.FromExpr ... 23:06:59 meh 23:10:58 > fun "O" (fun "I" (var "C") :: Expr) :: Expr 23:10:59 O (I C) 23:12:21 shachaf: By the way, I'm still writing my own version. 23:12:21 4 u 23:12:24 elliott: It doesn't actually matter that it behaves differently with -O! 23:12:31 -!- augur has joined. 23:12:39 elliott: thnx 2 u 4 thanks, hat 23:12:39 shachaf: Wait. 23:12:42 It can't possibly work. 23:12:51 Wait. 23:12:57 Yes, it can. 23:12:59 Ignore me. 23:13:06 elliott: I've been ignoring you all day. 23:13:19 elliott: Remember how you proved to me that it's impossible and I didn't believe you? 23:14:37 shachaf: http://sprunge.us/BWDQ 23:14:38 Try this. 23:14:48 Also, what I proved was impossible *was* impossible. 23:14:52 It just wasn't quite your original question. 23:16:00 ? 23:16:17 You mean the question that wanted it done automatically through sharing? 23:16:25 That was just one part of the original question. 23:17:58 No. 23:18:10 I proved that the obvious way to construct it using memoisation on TypeRep wouldn't work. 23:19:28 elliott: It's because I was being silly and misusing trace. 23:20:04 Oh, duh. 23:20:06 I was wondering. 23:20:30 * elliott thinks it should be trace :: String -> Bool 23:20:39 trace s = unsafePerformIO (hPutStrLn stderr s >> return False) 23:20:44 foo _ | trace "hello!" = undefined 23:23:24 that would be useful 23:23:52 You can still say trace "hello!" False 23:24:00 @src trace 23:24:00 trace string expr = unsafePerformIO $ do 23:24:00 hPutStrLn stderr string 23:24:00 return expr 23:24:01 -!- elliott has changed nick to delliott. 23:24:06 -!- delliott has changed nick to elliott. 23:24:30 Maybe trace should be trace string = unsafePerformIO (hPutStrLn stderr string) `seq` id 23:24:38 That way you could use it both my wrong way and the normal way. 23:24:55 All in one function! 23:25:31 elliott: I don't like your readsPrecOf. 23:25:40 Maybe it's OK, though. 23:25:55 shachaf: I wanted to avoid Data.Typeable. 23:25:58 shachaf: Anyway, does it work? 23:26:06 Erm. 23:26:12 By Data.Typeable, I mean ScopedTypeVariables. 23:26:13 Hmm, that would be different from trace string x = unsafePerformIO (hPutStrLn stderr string) `seq` x. 23:26:20 shachaf: did you give up giving up hi? 23:26:24 elliott: Yes, it works. 23:26:26 I think I might give up giving up giving up hi 23:26:35 elliott: But it also works with readOf 23:26:42 monqy: No, just in code. 23:26:49 shachaf: It shouldn't. :( 23:27:06 ion: That's the point. 23:27:10 "i h8 u read stop workinn :'(" - eliot 23:27:12 By the way, have I mentioned that seq is fucking evil? 23:27:32 elliott: Did you know: seq is not strict in its first argument? 23:27:42 shachaf: Eh? 23:27:49 seq is a non-strict function. 23:28:04 That's the best thing about seq. 23:28:15 Oh, seq _|_ = const _|_, not _|_. 23:28:20 Right. 23:28:27 That's... I don't think I count that as non-strict. 23:28:33 What? 23:28:44 Strict function, n.: A function f such taht f _|_ = _|_ 23:28:45 Well, "in its first argument", so if we're talking about a two-argument seq, 23:28:48 seq _|_ x = _|_ 23:28:50 shachaf: *that 23:28:56 shachaf: And yes, but I think const _|_ = _|_. 23:29:03 After all, seq is the only way you can distinguish those... 23:29:06 elliott: I'd agree with you, except in the presence of seq! 23:29:10 So ha. 23:29:19 shachaf: seq should distinguish const _|_ and _|_. :( 23:29:27 By applying its argument to undefined, if it's a function. 23:29:43 That's disgusting. 23:31:28 elliott: Are you going to post it? 23:32:40 elliott: Your solution has three unsafeCoerces. :-( 23:32:59 Only three? :-( 23:37:03 -!- azaq23 has quit (Quit: Leaving.). 23:40:46 -!- augur has quit (Remote host closed the connection). 23:48:23 -!- augur has joined. 23:48:39 elliott: Why does it work with read. :-( 23:48:54 elliott: And are you going to post it. :-( 23:49:37 shachaf: Not until I figure out why it works with read. 23:58:24 -!- augur has quit (Remote host closed the connection).