00:01:08 -!- SirCmpwn has joined. 00:05:42 -!- carado_ has changed nick to carado. 00:25:19 -!- carado has quit (Ping timeout: 246 seconds). 00:45:40 -!- augur has joined. 00:46:14 -!- augur has quit (Read error: Connection reset by peer). 00:46:37 -!- augur has joined. 00:53:47 why do you need my time ais523 00:54:10 quintopia: ? 00:54:17 oh, timezone? 00:54:20 yeah 00:54:23 wanted to know if you were American 00:54:29 I find it hard to remember who is and who isn't 00:54:36 yes i am and poor me 00:54:39 and it's sometimes relevant in conversations about nationalities 00:54:45 i don't find it hard at all...there are so few of us here :) 00:58:07 gregor, me, kallisti, and sgeo i'm sure of, and i think maybe kmc and pikhq. not sure about a handful of others because they've never mentioned it. 00:58:35 there are actually 80 people here 00:58:40 well, including bots 00:58:50 fungot: What timezone are you in? 00:58:50 Gregor: you make it to do? ( i have an idea 00:59:04 if we could just say "americans raise your hand" and actually expect them to do it 00:59:06 Gregor: it doesn't respond to ctcp time, but I assume the same timezone as fizzie 00:59:13 quintopia: you wouldn't be able to see 00:59:35 ais523: i mean their irc ACTION hands of course 01:00:05 Mmmm, gimme some o' dat CTCP ACTION. 01:02:21 we all living in america 01:02:23 america ist wunderbar 01:02:33 srsy though yes I live in the USA 01:02:39 what is a hand 01:03:33 -!- otro_viajero7 has joined. 01:04:11 that thing that a handlebar is designed to have wrapped around it 01:04:41 -!- SDr has left. 01:09:43 -!- GOMADWarrior has joined. 01:30:22 -!- Arc_Koen has quit (Quit: Arc_Koen). 01:31:58 -!- ais523 has quit. 01:37:21 -!- copumpkin has joined. 01:37:57 -!- Phantom_Hoover has quit (Remote host closed the connection). 02:24:07 -!- lambdabot has quit (Remote host closed the connection). 02:27:52 -!- otro_viajero7 has quit (Ping timeout: 252 seconds). 02:28:20 -!- lambdabot has joined. 02:29:39 -!- lambdabot has quit (Remote host closed the connection). 02:34:10 -!- lambdabot has joined. 02:38:27 -!- GOMADWarrior has quit (Ping timeout: 276 seconds). 02:56:33 kmc: WHEN IS THIS GOING TO HAPPEN https://github.com/keithw/mosh/issues/12 02:57:03 reconnection probably never 02:57:10 automatic killing of old sessions, maybe 02:57:29 That's what screen is for ;) 02:57:34 what i want is a way for the client to associate an ID with a session, and any old session with that name is killed 02:57:58 and then you use screen 02:58:09 in fact you can use "mosh hosh -- screen -dR foo" today 02:58:16 and it accomplishes that 02:58:27 i do use screen 02:58:35 mosh hosh screen -dRSU irc 02:58:35 but it doesn't handle my use case, which is that I have two Mosh connections (laptop and desktop) and want to bounce the same screen between them, without reconnecting mosh 02:58:50 but i cant connect to a still attached session from another host via mosh 02:59:02 why not? 02:59:10 or in general if a server is already running 02:59:12 you can detach it using screen -D, or you can use screen multi-attach with -x 02:59:31 i can detach it once i'm connected 02:59:39 but i can't connect to the mosh server 02:59:41 is the problem that you don't have enough ports? 03:00:30 i opened up one port for mosh 03:00:40 ok, then you'll need to open more if you want to do it this way 03:00:52 or you could hack around it 03:01:04 mosh host --server=~/whatever/my-script-which-kills-mosh-server-and-then-launches-a-new-one 03:01:49 how would the multiport solution work 03:02:42 well ideally you would open some number of UDP ports starting at 60000 03:02:50 you need as many as you are going to have concurrent mosh sessions 03:03:03 then you just do 'mosh host' and it picks the lowest port in the range 60000-61000 which is not in use 03:03:10 will it automatically increment port nu oh cool 03:03:35 with recent mosh you can also do 'mosh host -p 30000-30010' or whatever to use another range 03:03:42 with older mosh you can only specify a single number for -p 03:04:06 kmc: I found out the a͜a͜a͜a͜a͜a͜a͜a͜a͜a͜a thing is from screen, not mosh. 03:04:09 aha! 03:04:16 also shachaf should i be using screen -U and why? 03:04:24 is this for IUTF8? 03:04:34 I don't remember. 03:04:37 shachaf: did you read nelhage's termios posts? 03:04:49 I don't think so. 03:04:54 you should 03:06:34 Next time I restart my IRC session I'll try tmux. 03:06:55 screen doesn't do 4-byte UTF-8 codepoints, either. :-( 03:07:18 @hoogle augment 03:07:18 GHC.Exts augment :: (forall b. (a -> b -> b) -> b -> b) -> [a] -> [a] 03:07:18 Data.Graph.Inductive.Query.MaxFlow augmentGraph :: (DynGraph gr, Num b, Ord b) => gr a b -> gr a (b, b, b) 03:07:32 lambdabot lost its quote database. :-( 03:07:38 WAT 03:07:47 Cale restored it to one that's a couple of years old or so. 03:08:05 i don't remember lambdabot's being good 03:08:06 I told him he should make backups but I don't think it ever happened. 03:08:18 I should go through the #haskell logs and reädd them. 03:08:27 i'm sorry 03:08:52 ï'm sörrÿ 03:09:03 @messages 03:09:03 You don't have any new messages. 03:09:44 Cööl pëöplë tÿpë lïkë thïs, rïght? 03:10:01 metal 03:10:52 never metalinguistic who didn't annoy me 03:10:55 I found out now that in Windows you can do auto-completion on the command history by F8 key. What is the function to do that in Linux? 03:11:04 Hmm, s/ic// 03:14:30 ah right augment is instead of build when you already have the final part of the resulting list 03:14:41 like in the rule for (++) 03:14:51 Sgeo_: 19:14 shachaf: where is Sgeo? 03:14:58 (In #dylan.) 03:18:50 -!- oerjan has quit (Quit: leaving). 03:24:19 -!- c00kiemon5ter has joined. 03:39:02 -!- wareya has quit (Read error: Connection reset by peer). 03:39:47 -!- wareya has joined. 03:41:07 Sgeo_: Oh boy, are you going to hlpe the Dylan folks? 03:41:14 You should! 03:41:27 If I could get the internal motivation too 03:41:34 Also dealing with a crisis wrt my Tcl bot 03:41:41 And the Senior Project 03:42:01 imo help them 03:50:17 Sgeo_: help is he trying to rope me into that dylan craziness 03:50:20 what's going on 03:51:02 shachaf, it's easy, just use an XML parser to parse an xml file into a Dylan object 03:51:28 i assume read forms a monoid 03:51:39 An XML parser is just a monoid in the monoid of monoid monoids. 03:53:29 aren't we all? 03:53:37 -!- jix has quit (*.net *.split). 03:53:37 -!- ion has quit (*.net *.split). 03:55:42 -!- jix has joined. 03:55:42 -!- ion has joined. 04:24:57 Do you know if Linux as auto-complete of command history and which key activates it if so? 04:25:24 The kernel? 04:26:06 zzo38: from the command line, press up to get the previous command and keep pressing up for more 04:28:23 Yes I know that but I mean if you type something and want to find only the line starting by what you typed in. 04:28:37 presumably that would be part of your shell, not linux 04:28:44 shachaf: I don't mean the kernel (which is really the part called "Linux", I know) I mean the shell used in Linux systems 04:28:50 Lots of shells are. 04:28:51 bash? 04:28:58 If so, maybe try ^R 04:30:09 I happen to have bash even on this computer, so I tried it, and no that is not quite it either. 04:30:58 Is there UNIX shells which includes some of the DOS/Windows command-line editing functions? 04:33:12 Windows removed the function of F5 in the command-line though, it seem, and I liked that one too. 04:36:15 What did F5 in the command line do? 04:36:45 Enter into the command history without executing the command. 04:37:14 -!- monqy has joined. 04:40:43 -!- monqy has quit (Client Quit). 04:41:26 @ask monqy What happened to your quit message? 04:41:27 Consider it noted. 04:42:05 that's odd 04:42:11 honqy 04:42:15 in bash I will put a # at the beginning of a line if I want to save it for later 04:42:34 kmc: Alt-shift-3 04:42:53 nice 04:42:59 didn't know that 04:43:01 tychaf 04:46:20 O, yes, ALT+SHIFT+3 does automatically put # at the beginning and then enter into the command history; I didn't know that either and it works too on MinGW. 04:48:16 `addquote I happen to have bash even on this computer 04:48:26 975) I happen to have bash even on this computer 04:48:37 Kinda meh, don't you think? 04:48:56 But I think GNU readline is far more complicated than the command-line editing ought to be and still lacks whatever seem importance to me. 04:48:59 Bike: Probably. 04:49:11 Jafet: Well, I use Windows command-line too. 04:49:12 so use libedit 04:49:20 Is readline turing complete 04:49:22 which makes about 100x more sense than GNU readline 04:59:13 -!- linuxnewb2 has quit (Quit: linuxnewb2). 05:01:16 wait what. alt-shift-3 doesn't just type a # right there in the middle of the line? 05:01:22 I would like one license by LGPL, and including the DOS and Windows command-line features including DOS F5, and a few other things such as a different tab completion and "APC" code command. Do you know if there is anything similar? I might try to write one some day but still I want to know if there is similar. 05:01:53 what's APC? 05:02:24 The "Application Program Command" control code 05:03:27 My idea of the purpose of it is to have a terminal program in X or a window system might use it to open a graphical file selection window. 05:03:39 (Although, it can also be used for other purposes, or none at all) 05:07:35 i don't think i've ever been using a command line program and thought to myself "what this command line program really needs is a graphical file selection window" 05:07:42 but maybe that's just me 05:09:33 I don't think the command-line needs it either, but it might be useful in a windowing system. 05:15:55 Although UTF-8 follows the principle of extended ASCII, some programs using it don't, and I don't like this. 05:16:27 The principle of Extended ASCII means that: all ASCII bytes (0x00 to 0x7F) have the same meaning in all variants of extended ASCII, bytes that are not ASCII bytes are used only for free text, not for tags, keywords and other features having special meaning to the interpreting software. 05:17:08 -!- monqy has joined. 05:17:56 and then they left me tied there to the bedpost. they never did come back with jello. 05:18:00 oh, hi monqy 05:18:14 that's like the oldest joke on irc 05:18:20 people were making that joke as the soviet union fell 05:18:22 hi 05:18:22 monqy: You have 1 new message. '/msg lambdabot @messages' to read it. 05:18:26 another?? 05:18:35 shachaf: did my quit message chagne 05:18:45 shachaf: maybe it's because i quit so quickly 05:18:49 maybe 05:18:54 20:40 -!- monqy [~help@pool-98-108-214-230.snloca.dsl-w.verizon.net] has quit [Client Quit] 05:18:56 because of unexpected 05:19:02 turbulence? 05:19:03 yeah i think thats what happens when you quit too quick 05:19:14 Bike: that's not the proper response if you recognize it 05:19:21 Bike: how jaded are you anyway 05:19:34 as jaded as twelve sixteen-year-olds put together 05:19:39 in a pile of sixteen-year-olds 05:20:53 is the pile just these twelve or are there more in the pile 05:21:14 and more importantly 05:21:19 Just the twelve, monqy. 05:21:25 are they wearing clothing? 05:21:35 and are they sexually attracted to one another? 05:22:09 Most sixteen-year-olds are wearing clothing, but overall the chance of two randomly selected sixteen-year-olds considering each other sexually attractive is probably negligible. 05:22:36 does this change if they're in a pile 05:23:09 Probably. 05:23:21 The pile is metaphorical. I have not actually put twelve sixteen-year-olds together into a pile. 05:23:29 shachaf: hi shachaf 05:23:32 monqy: what window # is #esoteric for you in irssi 05:23:38 why do you ask 05:23:46 "just curious........" 05:24:11 why only asking monqy? 05:24:12 does that mean you're just curious or do you have the ulterioer motives 05:24:33 maybe i have an ulteriœr motive 05:24:39 what's it to you 05:24:42 anyway it's #3 05:24:58 oh 05:24:59 i think he's attracted to your sexy hairy wrists 05:25:01 what's #2 05:25:06 #2 is a secret 05:25:10 oh no 05:25:14 what's #4 05:25:18 crawl 05:25:22 which # is /query lambdabot 05:25:42 usually 11 or 12 when it happens 05:25:59 Bike: i like your reference to the IRC logs of the fall of the soviet union 05:26:02 It's been a while sincce Ive beeen in ##crawl 05:26:21 remember when you were in ##crawl and you were trying to play mfie or something but you were bad at it 05:26:37 kmc: they're good logs i think 05:27:52 shachaf: what # is esoteric for you 05:28:02 11 05:28:33 how many of the first ten are on freenode 05:28:58 This is my "freenode-only" irssi. 05:29:23 This is actually #3 for me, too. 05:29:23 pikhq: You have 2 new messages. '/msg lambdabot @messages' to read them. 05:29:29 #2 is #plof 05:29:43 monqy: is #2 /query or a channel 05:30:30 #2 used to be #bitlbee, but I've not used that in a while. 05:30:44 shachaf: channel. secret channel 05:30:52 oh no 05:31:53 my #2 is &bitlbee. #esoteric is 9. 3 of the other first 10 are also freenode (#4, #6, and #11) 05:32:13 shachaf: the reason i wondered about you asking about my channel numberings is you asked just 3 minutes after i moved my 10 to its rightful place (from 2) since i havent bothered figuring out how to fix channel numbering on connect, after accidentally saying "wmove 10" in it 05:32:14 But how many are dal? 05:32:19 NOEN 05:32:21 im not on dal thankfully 05:32:31 (I finally got sick of bitlbee; currently using Pidgin... But I wanna find a terminal client again.) 05:32:33 monqy: You just do /layout save and then /save. 05:32:44 Bike: i think i've tried that? i'll try again 05:32:45 monqy: oh 05:32:48 (sadly, IM protocols don't much like being logged in from multiple locations. 05:32:49 ) 05:32:50 monqy: "no, just a coincidence" 05:32:53 monqy: what's #10 05:33:02 also a secret channel 05:33:08 Gosh. 05:33:15 monqy: there is a setting where it automatically saves channel layout whenever you join and move and stuff 05:33:21 works great for me 05:33:31 monqy are all your channels secret 05:33:40 only those 2 i think? 05:33:41 Maybe #esoteric is secret. 05:33:50 Have we ever seen monqy's other channels and #esoteric in the same room? 05:33:52 i don't see a +s 05:34:05 Does +s even do anything on freenode? 05:34:38 i mean "secret" as in "im not going to blab about them that would be dumb and their members probably wouldnt appreciate that" 05:35:32 oh monqy is a usian also eh 05:35:48 we're still a minority 05:36:09 are you stalking me!! 05:36:44 monqy everyone in this channel is a "big fan of" you 05:36:49 no, that would require me actually following you around or something 05:36:55 i use finch for IM stuff and irssi for IRC 05:36:55 the hidden cameras do that just fine 05:37:06 finch is... okay 05:37:10 it's probably full of security holes 05:37:13 oh well 05:37:14 YOLO 05:38:01 kmc do you work in a profession where it's possible someone will target you and find all your IM contacts and impersonate you 05:38:14 does finch support IM encryption 05:38:16 i don't know 05:38:23 sometimes i talk about computer security online 05:38:28 someone might try to hack me for lols 05:38:34 i'm not particularly concerned, just a little 05:39:15 i should probably convert that server to a hardened system with grsecurity and such 05:39:20 because it doesn't have to do much and it would be fun 05:39:25 `quote 05:39:26 865) If you write in the text using Unicode then how are you supposed to know if you mean seraphim have seven eyes or do they have ten? 05:39:34 :D :D :D 05:39:34 `quote 05:39:35 537) I think this has taught us one thing. We can't teach itidus20 lambda calculus by comittee 05:39:38 best question 05:39:50 wow someone on this channel didn't know lambda calculus huh 05:40:02 `quote 05:40:03 459) sllide: @ is an OS made out of only the finest vapour 05:40:12 `quote 05:40:14 634) The reason the cute animals collection includes pictures of intestines is that cute animals have to have intestines. 05:40:15 oh wow Bike did you not overlap with itidus at all 05:40:23 unfortunately i did not 05:40:25 `quote 05:40:27 512) elliott_: it's a machine that looks like you! 05:40:31 i've been assuming itidus was a long time before me 05:40:32 :D 05:40:33 Should I watch Quantum Leap? 05:40:36 `pastequotes itidus 05:40:38 like when the soviets were still around or something 05:40:39 Yeah, man. Unicode really ought to have the character "CYRILLIC LETTER N-OCULAR O" for all natural numbers N. 05:40:42 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.2134 05:40:55 tswett: all ordinals, you mean 05:41:11 All order types, you mean. 05:41:15 given what angels are like i think one having omega one NK eyes is pretty reasonable 05:41:41 proposal to allocate plane 3 of the UCS as Combining Multiocular Variation Indicator Plane 05:41:54 2^16 eyes should be enough for anyone 05:42:32 -- bill gates, angel of the lord 05:42:45 -!- TeruFSX has quit (Ping timeout: 276 seconds). 05:42:48 at least this finch is build with -fPIC and stack-protector and stuff 05:42:56 yay ubuntu yay kees cook (who is no longer at ubuntu) 05:43:00 I dunno. I think we should be able to talk about seraphim with 808,017,424,794,512,875,886,459,904,961,710,757,005,754,368,000,000,000 eyes. 05:43:30 I'm pretty sure that exact number is in the Zohar. 05:43:37 Probably how tall Metatron's dick is in cubits or something. 05:43:47 c.c 05:43:57 Hey, it's true. 05:44:03 Probably. 05:44:04 i learned from Kevin Smith movies that the Metatron has no dick 05:44:09 The presence of that number in the Zohar would be proof of... something amazing. 05:44:16 Really? Why? 05:44:24 angel 05:44:25 i don't know 05:44:30 I meant at tswett. 05:44:35 Because that number wasn't discovered until the 20th century. 05:44:38 The Hebrews had all kinds of big numbers. There's basic combinatorics in the I-forget-the-nth-fucking-text. 05:44:53 Oh is it something weird like the order of the monster group or some shit 05:44:57 i think this one is the best 05:44:59 probably ancient aliens 05:45:01 Yeah, something like that. 05:45:05 `quote 752 05:45:06 752) itidus21: hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, hey, h 05:45:26 monqy: what do you think of "the monqy fandom" 05:45:28 @google 808017424794512875886459904961710757005754368000000000 05:45:29 http://en.wikipedia.org/wiki/Monster_group 05:45:30 Title: Monster group - Wikipedia, the free encyclopedia 05:45:34 where we write fanfics and stuff 05:45:39 ...I guessed correctly? 05:45:46 shachaf: i dont undersatnd it 05:46:03 monqy: "nobody understands fandoms" 05:46:10 except Fiora?? 05:46:53 Maybe it being in the Zohar wouldn't be too remarkable. 13th century is basically like the 20th century anyway. 05:47:06 > 20 - 13 05:47:07 7 05:47:10 Yep. 05:47:17 http://en.wikipedia.org/wiki/Sefer_Yetzirah <-- This is the one with combinatorics. 05:49:25 It's easy to confuse itidus with a Markov chain bot. 05:49:48 That's a mean thing to say. 05:50:06 fungot: hey, say something. 05:50:06 tswett: while 1: self.raw("quit") 05:50:34 fungot: are you set to do Markov chains out of computer code or something? 05:50:34 tswett: how do you tell which to pick up 05:50:47 fungot: nope, I guess that was some fluke or something. 05:50:47 tswett: ( not that i recommend it for others. ( those are the prototypes. mouse regions. i won't ask why you do it 05:50:56 Looks like lisp. 05:51:07 fungot: what's the difference between itidus and you 05:51:07 shachaf: it's /you/! wasting energy is a sign you may want to refresh my memory. 05:51:12 gasp 05:51:20 ^style 05:51:20 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube 05:51:33 i dunno 05:51:37 itidus was a bit funnier 05:51:47 fungot is never intentionally funny 05:51:48 quintopia: or did it end up? i would have to create your own instruction set. on fnord stuff is less a matter of reading through existing codebases and yanking out bits of code. 05:53:02 And now mean to fungot too. This is so cruel. 05:53:03 Bike: i predict a rather shocking result!" to multiple-value :) even if that exception happens, i don't 05:54:43 ^list 05:54:43 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 05:54:48 Bike: it's okay to be mean to befunge code. it deserves it. 05:54:57 er 05:55:08 :( 05:55:20 Not a false alarm 05:55:34 befunge code doesn't tear arms out of sockets 06:05:26 -!- sirdancealot7 has quit (Remote host closed the connection). 06:40:17 @hug monqy 06:40:17 http://hackage.haskell.org/trac/ghc/newticket?type=bug 06:40:25 hi 06:40:29 oops 06:40:33 did i accidentally @bug monqy 06:40:40 sry 06:40:42 :☺) 06:40:54 (☺: 06:45:35 -!- monqy has quit (Quit: hello). 06:46:19 Hey! He fixed his quit message. That's nice. 06:47:07 @ask monqy good job on the quit message 06:47:08 Consider it noted. 06:58:27 Does teletext have music? 07:30:58 -!- epicmonkey has joined. 07:33:55 -!- DHeadshot has quit (Ping timeout: 248 seconds). 07:37:02 -!- DHeadshot has joined. 07:44:03 -!- epicmonkey has quit (Ping timeout: 248 seconds). 07:56:19 -!- sirdancealot has joined. 07:56:20 -!- impomatic has quit (Quit: http://about.me/john_metcalf). 07:56:56 -!- epicmonkey has joined. 08:05:32 -!- nooga has joined. 08:06:07 -!- Bike has quit (Quit: Reconnecting). 08:06:13 -!- Bike_ has joined. 08:14:28 -!- DHeadshot has quit (Read error: Connection reset by peer). 08:14:41 -!- DHeadshot has joined. 08:22:57 -!- nooga has quit (Ping timeout: 248 seconds). 08:31:15 -!- azaq23 has quit (Quit: Leaving.). 08:50:40 -!- nooga has joined. 09:05:27 -!- otro_viajero7 has joined. 09:07:50 -!- Arc_Koen has joined. 09:08:03 -!- Arc_Koen has quit (Client Quit). 09:08:20 -!- FreeFull has quit. 09:31:33 -!- otro_viajero7 has quit (Quit: ChatZilla 0.9.88.2 [Firefox 14.0.1/20120713134347]). 09:32:02 [1] Statement #2 is false. [2] Statement #1 is true. [3] All three of these statements are false. 09:33:50 [4] Statements #1 through #3 are silly. 09:35:25 Yes, that, also, I guess. 09:38:36 [5] Oops, I forgot. Statement #5 is also silly. 09:38:55 Is statement 4 silly? 09:38:59 what are all these numbers for 09:39:14 Bike: you don't have a proper appreciation for numbers 09:39:23 :( 09:39:36 numbers don't need to be for anything 09:39:40 pragmatist 09:39:41 [6] there is no statement 7 09:39:54 maybewordsshouldbeseparatedlikethis 09:42:00 this is some existential shit here 09:45:00 universal 09:49:51 maybe sentences should be s-exps 09:55:45 (ROOT (S (ADVP (RB Maybe)) (NP (NNS sentences)) (VP (MD should) (ADVP (RB also)) (VP (VB be) (NP (NNS s-exps)))) (. .))) 09:56:20 (Parse tree courtesy of the Stanford parser.) 09:56:43 yeah 09:56:53 that's what i thought about 09:57:02 At least it'll resolve the grammar ambiguities 09:57:15 Syntactic ambiguities are the spice of life. 09:57:40 oh 09:57:52 (. .) 09:58:05 \___/ 10:01:26 -!- Bike_ has quit (Quit: leaving). 10:05:34 -!- impomatic has joined. 10:48:03 -!- Sgeo_ has quit (Read error: Connection reset by peer). 10:48:35 -!- Sgeo has joined. 11:15:42 -!- nooga has quit (Ping timeout: 264 seconds). 11:18:57 -!- zzo38 has quit (Remote host closed the connection). 11:20:22 -!- Phantom_Hoover has joined. 11:28:59 Sgeo: Did you help the nice Dylan folks? 11:29:38 I'm busy this week 11:29:39 Kind of 11:58:28 -!- Arc_Koen has joined. 12:11:25 -!- carado has joined. 12:28:14 -!- doesthiswork has quit (Quit: Leaving.). 12:38:22 -!- TeruFSX has joined. 13:07:05 -!- TeruFSX has quit (Read error: Connection reset by peer). 13:16:51 -!- carado_ has joined. 13:21:38 -!- carado_ has quit (Ping timeout: 246 seconds). 13:41:09 -!- flayke has joined. 13:43:01 -!- flayke has left. 13:44:54 -!- boily has joined. 13:54:43 -!- cuttlefish has joined. 13:56:48 -!- c00kiemon5ter has quit (Remote host closed the connection). 13:57:01 -!- c00kiemon5ter has joined. 14:06:27 -!- cuttlefish has quit (Remote host closed the connection). 14:06:46 -!- metasepia has joined. 14:07:25 -!- metasepia has quit (Remote host closed the connection). 14:07:39 -!- boily has changed nick to metasepia. 14:11:37 -!- metasepia has changed nick to boily. 14:12:00 -!- metasepia has joined. 14:13:24 good morning all. sorry for the nickname juggling. looks like somebody else registered cuttlefish with nickserv half a fortnight ago. 14:13:35 :'( 14:13:43 I miss cuttlefish already 14:14:57 I now own metasepia, so further nickchanges shouldn't be necessary. 14:15:57 maybe they will forget about it and you can get cuttlefish back. 14:17:20 what if you ask them very nicely 14:18:24 -!- c00kiemon5ter has quit (Remote host closed the connection). 14:18:40 -!- c00kiemon5ter has joined. 14:26:23 -!- carado has quit (Ping timeout: 246 seconds). 14:27:42 at least, the new nickname is in honour of https://en.wikipedia.org/wiki/Metasepia_pfefferi 14:27:58 -!- carado_ has joined. 14:34:01 Maybe you could pay them for the nick (not a serious suggestion) 14:47:39 -!- FreeFull has joined. 14:49:16 Sgeo: depends with what I pay them with. 14:52:10 ^ignore 14:52:10 ^(EgoBot|HackEgo|toBogE|Sparkbot|optbot|lambdabot|oonbotti|cuttlefish|jconn)! 14:52:21 ^ignore ^(EgoBot|HackEgo|toBogE|Sparkbot|optbot|lambdabot|oonbotti|metasepia|jconn)! 14:52:21 OK. 14:52:39 (I really should do the HackEgo-style zero-width space prefix trick.) 14:56:12 you should really not 14:56:17 I loathe that trick 14:56:17 toBogE, Sparkbot and optbot are new to me. whose are they? 14:57:40 optbot was mine 14:57:45 it inspired fungot's babble 14:57:45 elliott: not sure either 14:58:21 Is that the most coherent thing fungot has ever said? 14:58:22 Sgeo: you must be confusing php with perl, but i'm not sure that's a bad idea!". and if anyone works out a better formatting routine. 14:59:34 the planetary alignment must be special today. fungot makes waaaaay too much sense. 14:59:35 boily: redefinitions are just lame... they don't work... they execute all the code that used random-integer instead: that was my point 14:59:44 I rest my case. 17:11:20 -!- esowiki has joined. 17:11:52 -!- esowiki has joined. 17:11:53 -!- glogbot has joined. 17:11:54 -!- glogbackup has left. 17:11:56 -!- esowiki has joined. 17:11:56 -!- esowiki has joined. 17:11:58 -!- glogbackup has quit (Excess Flood). 17:13:17 -!- Gregor has joined. 17:13:38 -!- Gregor has changed nick to Guest6050. 17:14:11 -!- Guest6050 has changed nick to Gregor. 17:15:00 there is something very weird about people deducing the way Iranian nuclear plants function via reverse-engineering Stuxnet 17:18:08 quintopia: it may be that if w occurs in thue-morse, then it occurs within the first O(length(w)) bits 17:25:44 fmap _ = unsafeCoerce 17:26:15 -!- Phantom___Hoover has joined. 17:26:28 -!- DHeadshot has quit (Ping timeout: 248 seconds). 17:27:41 h1 >>= f = h1 >> f 17:27:41 (error "Text.Blaze.Internal.MarkupM: invalid use of monadic bind") 17:29:04 sucks 17:29:06 Today I was vaguely tempted to write Haskell bindings to the Apache Wave client API thing 17:29:14 is this one of those "monads" that's actually a monoid? 17:29:36 kmc, yes 17:29:41 :( 17:30:06 kmc, would it have been acceptable to make a Writer monad out of it, and suggest people use that? Why don't these people do that, if that would have been better? 17:30:19 i don't know why they don't do that 17:30:42 kmc: As in, a monoid that doesn't obey monad rules? 17:31:04 err, I didn't even think monads were monoids, necessarily 17:31:15 they aren't 17:31:18 and that's not what i mean FreeFull 17:31:25 oh right, MonadPlus = monad that is also a monoid? 17:31:33 kmc, https://github.com/jaspervdj/blaze-markup/blob/master/src/Text/Blaze/Internal.hs 17:31:42 Aren't monads monoids in the category of endofunctors? 17:31:51 I think if m is a Monad, (a -> m a) is a Monoid 17:31:52 `? monad 17:32:00 Monads are just monoids in the category of endofunctors. 17:32:01 what i mean is the abuse of 'do' notation where you write do { x; y; z } instead of [x,y,z], basically, and you never write "v <- x" 17:32:05 FreeFull: I meant in Hask 17:32:12 not in Endofunctor 17:32:21 this usually means you're given some monad that's an abstract type, and all the "primitives" are of type "M ()" 17:32:30 Taneb: Can you make a Monoid instance for that? 17:32:39 kmc, would it be more acceptable if it were Writer though? Because it's tempting, and Writer would be a real monad 17:33:00 so you never need to use (>>=), and (>>) is basically taking over for mappend 17:33:07 oh wow I just read scrollback to see what the conversation was about 17:33:07 kmc: Abuse of do notation is bad 17:33:10 `run echo 'Doodads are just duoids in the category of endofunctors.' > wisdom/doodad 17:33:14 No output. 17:33:15 that… isn't a monad 17:33:16 `run ln -s doodad wisdom/doodads 17:33:20 No output. 17:33:23 it may fulfil the Haskell definition 17:33:27 sort of 17:33:35 does it even obey the monad laws? 17:33:43 ais523: I don't think it would 17:33:44 newtype EndoM m a = EndoM {appEndo :: a -> m a}; instance Monad m => Monoid (EndoM m a) where mempty = EndoM return; mappend (EndoM a) (EndoM b) = EndoM (a >=> b) 17:33:53 `? doodad 17:33:55 Doodads are just duoids in the category of endofunctors. 17:34:02 return ignores its argument... 17:34:02 *sage nod* 17:34:02 anyway people do this a lot because they like the 'do' notation 17:34:08 syntax over semantics :( 17:34:10 I'm not even sure what "fmap _ = unsafeCoerce" does 17:34:16 Taneb: Ah, so you can but you need a newtype 17:34:16 `? d-modules 17:34:18 D-modules are just modules over the ring of differential operators. Taneb invented them. 17:34:20 Sgeo: yes, I think it would be better with Writer, but I haven't thought about it in detail 17:34:21 ais523, that was in an instance declaration 17:34:21 FreeFull, 17:34:21 yes 17:34:53 FreeFull: the fact that monads are monoids in the category of endofunctions has basically nothing to do with this 17:34:53 You could do it without newtypes if you use a bunch of extensions, but you really, REALLY, shouldn't 17:35:01 endofunctors* 17:35:11 i wonder if you know what it means 17:35:31 Writer is slower 17:35:40 perhaps because I can't figure out what unsafeCoerce does outside the context of Haskell 17:35:42 blaze-html does the fake monad for notation thing 17:35:58 @hoogle (Monad m) => [a -> m a] -> a -> m a 17:35:59 Data.Generics.Aliases extM :: (Monad m, Typeable a, Typeable b) => (a -> m a) -> (b -> m b) -> a -> m a 17:35:59 Data.Generics.Aliases mkM :: (Monad m, Typeable a, Typeable b) => (b -> m b) -> a -> m a 17:35:59 Data.Data gmapM :: (Data a, Monad m) => (forall d. Data d => d -> m d) -> a -> m a 17:36:14 do notation should clearly randomly permute the input to something else that would have the same meanings if the monad laws were satisfied 17:36:21 FreeFull, ... some sort of fold with (>=>) ? 17:36:29 hmm… this would never happen in Agda, assuming that Agda monads come with proof that they obey the monad laws 17:36:35 Sgeo: Yeah 17:36:38 :t foldr (>=>) return 17:36:40 Was wondering if it had a name 17:36:47 @type foldr (>=>) return 17:36:53 Monad m => [c -> m c] -> c -> m c 17:36:54 Monad m => [c -> m c] -> c -> m c 17:37:25 :t foldl (>=>) return 17:37:26 Monad m => [b -> m b] -> b -> m b 17:39:22 Doesn't F#'s syntax for using monads also support monoids? Or am I misremembering? 17:39:36 Because IIRC "computation expressions" don't just support monads 17:39:39 I didn't realise F# had syntax for monads 17:39:47 it's a strict language with a defined evaluation order 17:39:54 so it doesn't need dedicated monad syntax nearly as much as Haskell 17:40:26 -!- sirdancealot has quit (Read error: Connection reset by peer). 17:41:02 monads aren't really about evaluation order 17:41:13 nor are they about purity 17:41:39 -!- ais523 has quit (Quit: kernel update, rebooting). 17:41:46 lots of useful 'styles of computation' can be written as monads 17:41:49 #esoteric is the #haskell retirement home where you can have all the same arguments you did in #haskell but at a slower, more relaxed pace 17:41:49 Nothing here 17:41:51 nondeterminism, parsing, whatever 17:41:54 and with fewer whippersnappers 17:42:01 elliott: yup 17:43:02 in Haskell, laziness was the motivation for pure functions, and pure functions were the motivation for monadic IO, and monadic IO was the motivation for generic monads 17:43:12 but each of these ideas is useful beyond its original motivation 17:43:34 C# also has something vaguely monad-like in LINQ 17:43:54 LINQ syntax also allows peaking at the AST I think? 17:43:59 yes 17:44:00 Or... something 17:44:15 and that makes it more useful that Haskell's 'do' for deep EDSLs 17:44:40 it's really good that the syntax you use to query a database and the syntax you use to do an ordinary list comprehension in memory are the same 17:44:56 this is a constant frustration with e.g. the Django ORM in Python 17:45:19 we all want to write list comprehensions, but a list comprehension making a bunch of individual database queries is terribly slow 17:45:30 -!- ais523 has joined. 17:45:58 so you have to express your joins, filters, etc. in totally different and slightly awkward syntax 17:46:04 The Haskell package that inspired LINQ used things like .>. I think 17:46:14 i didn't know it was inspired by a specific Haskell package! 17:46:45 Well, partly inspired 17:46:50 -!- Phantom___Hoover has quit (Ping timeout: 255 seconds). 17:47:15 * Sgeo looks for it 17:48:09 -!- Phantom___Hoover has joined. 17:49:41 http://stackoverflow.com/a/1418200 17:49:53 "LINQ was inspired by HaskellDB, as Erik Meijer has numerously stated, e.g. in Confessions of a Used Programming Language Salesman (Getting the Masses Hooked on Haskell), so it is not in itself a new concept. " 17:51:07 Didn't haskell do pure IO before having monadic IO 17:51:20 Or is my history wrong 17:51:38 yeah it was like 'interact' basically 17:52:04 'main' was a function that took a lazy list of IO results and produced a lazy list of things to do 17:52:08 it didn't work very well 17:52:30 -!- doesthiswork has joined. 17:53:10 doesthiswork: No, it doesn't work, you're not here. 17:53:37 there is always the logs 17:53:57 Well, I control the logs, sooooooooooooo >: ) 17:55:29 kmc, one of the Blaze examples uses forM_, so it's not just for do syntax... 17:55:48 well ok 17:56:14 Although not sure I would trust using functions like that when the monad laws are broken 17:56:39 but there must be a similar function for monoids 17:56:51 :t forM_ 17:56:52 :t foldMap 17:56:53 Monad m => [a] -> (a -> m b) -> m () 17:56:54 (Foldable t, Monoid m) => (a -> m) -> t a -> m 17:57:08 yeah that 17:57:15 -!- sirdancealot has joined. 17:57:18 So flip foldMap 17:57:35 And it works for things that aren't lists too 18:02:02 `quit 18:02:04 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: quit: not found 18:02:04 -!- boily has quit (Quit: Poulet!). 18:02:18 -!- boily has joined. 18:02:36 -!- metasepia has quit (Remote host closed the connection). 18:02:45 -!- metasepia has joined. 18:03:41 -!- azaq23 has joined. 18:03:43 -!- augur has quit (Remote host closed the connection). 18:03:54 -!- azaq23 has quit (Max SendQ exceeded). 18:04:31 `pkill 18:04:33 pkill: No matching criteria specified \ Usage: pkill [-SIGNAL] [-fvx] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST] \ [-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN] 18:04:47 `pkill -9 a 18:04:51 pkill: No matching criteria specified \ Usage: pkill [-SIGNAL] [-fvx] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST] \ [-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN] 18:05:01 `run pkill -9 a 18:05:03 pkill: 2 - Operation not permitted \ pkill: 45 - Operation not permitted \ pkill: 70 - Operation not permitted \ pkill: 71 - Operation not permitted \ Killed 18:05:17 I wonder what it killed 18:05:24 nothing useful 18:05:32 there's a separate set of processes for each command you run 18:05:36 `run echo $$ 18:05:38 284 18:05:39 `run echo $$ 18:05:41 284 18:05:44 see? 18:06:59 every command to HackEgo boots a separate User Mode Linux machine, and then merges any filesystem changes using Mercurial 18:07:07 it's awesomely insane 18:07:13 `uptime 18:07:15 ​ 18:07:14 up 0 min, 0 users, load average: 0.00, 0.00, 0.00 18:07:16 if you told someone on IRC your IRC bot booted up linux for every single command you run on it 18:07:20 in like the 90s 18:07:25 what would they say 18:07:41 that you're lying most likely 18:07:48 Huh 18:07:49 "Boot" is true but enormously misleading. 18:07:55 On Tumblr, '>' does something 18:08:02 No, '.' does 18:08:39 Gregor: why? just because UML is lightweight? 18:09:16 Because when I hear "boot" I imagine a BIOS loading a bootloader which loads a kernel and then starts up, not a kernel running as a usermode process which has very little startup to do on its own. 18:09:54 The actual word doesn't mean that, but by the same token you can say that you "boot up" a shell every time you run a shell script. It's not a lie, but why would you use that term *shrugs* 18:10:15 because it's the term usually used for starting an instance of Linux? 18:10:24 if anything, i think the "machine" part is more misleading 18:10:41 Oh, heh, T.B.H. I didn't even notice that word X-D 18:10:41 -!- nooodl has quit (Ping timeout: 248 seconds). 18:10:42 But yes. 18:10:43 * kmc downloads and boots TCCBOOT 18:11:13 Gregor: IMO make HackEgo use qemu for extra security 18:11:43 elliott: hmm 18:11:43 elliott: I'd go with vagrant, just because it's more points at scrabble. 18:11:51 in the 90s I didn't have such a good idea of what Linux was 18:11:53 Qemu which boots to a Debian instance which in turn runs umlbox? 18:11:59 i assume everyone here has seen tccboot and also jslinux 18:12:17 kmc: jslinux was cooler when I did the same thing with MIPS a year earlier. 18:12:25 heh 18:12:27 is it online? 18:12:32 http://codu.org/jsmips/ 18:12:39 Oh, yes, but not there X-D 18:12:43 Gregor: I remember when it was MMIX 18:12:52 I was actually explaining the difference between UNIX and Linux to a student today, because they asked 18:13:00 OK, I guess it's not especially online any more X-D 18:13:04 kmc: It was then ;) 18:13:14 did you pick MIPS because it's one of the simpler arches with a full GNU/Linux stack? 18:13:28 and what are the platform interfaces like? presumably there are a lot to choose from 18:13:41 I actually didn't implement the whole architecture, just the ISA, and I didn't run a kernel, just had JS respond directly to syscalls. 18:13:46 So I didn't REALLY do the same as jslinux. 18:13:55 ah 18:14:03 But you could compile C code to the browser and run it at semi-reasonable speed *shrugs* 18:14:07 so what do you mean by "just the ISA" 18:14:18 Just the instruction set. 18:14:35 i saw a paper where they implemented C, C++, etc. for JVM by using gcc to compile to MIPS and then translating that to JVM bytecode 18:14:55 Gregor: what parts of the architecture did you not implement, then 18:14:57 Yup. NestedVM was the latest version of that stack I recall. 18:15:03 kmc: Everything other than the instruction set X-D 18:15:10 meaning what? memory management? 18:15:16 Memory management I have. 18:15:30 But no buses, no disks, no graphics, etc. 18:15:34 ok 18:15:41 i don't consider that part of "MIPS architecture" 18:15:41 Everything that would be a syscall in a normal OS jumps to JS code. 18:15:46 unless MIPS is specified in an unusual way 18:15:46 Ah. 18:15:51 Gregor: you never listened to me when I told you to get X-on-canvas running :( 18:16:03 elliott: Sure I did, I just didn't do it ;) 18:16:05 lots of CPU architectures come on many different platforms 18:16:10 kmc: Well, you can't boot Linux without them, so that makes jslinux incomparable ;) 18:16:32 x86 is kind of an anomaly in that when people say x86 they usually mean "PC compatible" and then you have a BIOS with disk, keyboard, etc., and probably a PCI bus, etc 18:16:38 but even for x86 there are plenty of exceptions 18:16:55 OLPC XO-1 isn't PC-compatible; neither are SGI's huge NUMA machines 18:17:47 neither is that fucking custom 80186 dev board from the embedded systems class from hell 18:17:48 i think the olpcs are pc-compatible nowadays 18:17:52 maybe 18:17:53 because they run fucking windows :( 18:17:56 i guess they caved and... yeah 18:18:08 i hear it was more "negroponte" rather than "they" 18:18:09 maybe they dual-boot between Open Firmware and BIOS 18:18:15 shrug 18:21:18 -!- copumpkin has quit (Ping timeout: 252 seconds). 18:21:29 -!- Bike has joined. 18:22:28 -!- copumpkin has joined. 18:25:26 -!- c00kiemon5ter has joined. 18:25:44 -!- azaq23 has joined. 18:25:52 -!- azaq23 has quit (Max SendQ exceeded). 18:28:45 -!- azaq23 has joined. 18:35:29 maximum . map abs = abs . maximum, right? 18:35:35 ignoring floating point weirdness and such 18:35:40 elliott: no 18:35:43 {-2, 1} 18:35:48 oh 18:35:49 I'm an idiot 18:35:52 I thought abs was rounding?? 18:35:54 for a brief second 18:36:01 good second 18:39:48 -!- Taneb has quit (Ping timeout: 264 seconds). 18:41:52 abs rounds to the value closest to the absolute value 18:43:37 @src maximum 18:43:38 maximum [] = undefined 18:43:38 maximum xs = foldl1 max xs 18:44:00 I like how that undefined clause is pointless. 18:44:36 Out of 10 Random Wikipediapages 7 are people. 18:44:42 > fold1 max [] 18:44:44 Not in scope: `fold1' 18:44:44 Perhaps you meant one of these: 18:44:44 `foldl1' (importe... 18:44:49 > foldl1 max [] 18:44:51 *Exception: Prelude.foldl1: empty list 18:45:03 > maximum [] 18:45:05 *Exception: Prelude.maximum: empty list 18:45:07 does deriving Ord in Haskell guarantee a total order, or at least a lattice? 18:45:10 useful 18:45:24 -!- sebbu has quit (Ping timeout: 248 seconds). 18:46:57 -!- Taneb has joined. 18:47:43 -!- augur has joined. 18:48:00 Well, my C code core-dumps 18:48:27 But it's climbed the -Wall 18:49:21 That's easy to fix. 18:49:23 ulimit -c 0 18:49:26 Tada, doesn't core-dump. 18:49:35 Taneb: try the -Wextra 18:49:39 Gregor: it still says (core dumped) 18:49:44 it just doesn't save the core anywhere 18:49:46 Taneb: also try valgrind 18:49:47 Taneb: or, if you're using clang, try -Weverything 18:49:54 ais523: It doesn't for me... 18:49:54 which actually does *all* 18:50:04 Gregor: does for me 18:50:09 although, hmm 18:50:13 perhaps it depends on whether it's -Sc or -Hc 18:50:21 coppro: yeah, but some of them are bad ideas 18:50:26 or very specific 18:50:38 -!- Phantom___Hoover has quit (Ping timeout: 255 seconds). 18:50:47 splint has warning levels higher than is remotely sane, and is buggy enough that you could never expect to comply with them 18:50:50 also complains about system headers 18:50:58 -!- Phantom___Hoover has joined. 18:51:49 ais523: http://sprunge.us/WMUd 18:52:24 ais523: yeah 18:52:41 ais523: -Weverything is literally everything, including style warnings and the like 18:52:46 not recommended for human consumption 18:52:56 I s'pose since it's the shell that interprets the SIGCHLD, it could determine intelligently whether a core had been dumped and just change the message *shrugs* 18:53:39 -!- sebbu has joined. 18:59:12 coppro, I'm using gcc 19:00:14 Hmm 19:01:29 ais523, should I take your warning as a "here's splint, give it a go", or an "avoid at all costs" 19:01:29 -!- c00kiemon5ter has quit (Remote host closed the connection). 19:01:46 -!- c00kiemon5ter has joined. 19:01:50 Taneb: take it as "splint is a good idea in theory but too buggy for practical use" 19:02:02 Use it right now y/n 19:02:12 also, it has many of the same ideas as Rust does, except Rust is a language and Splint is a linter 19:02:24 Taneb: it can't hurt 19:02:52 (it gets past -Wextra) 19:03:19 splint hits a parse error... 19:03:21 ais523: that bodes terribly for either rust or splint 19:03:25 what gets past -Wextra? 19:03:30 coppro, my program 19:03:47 It compiles with -Wall -Werror -Wextra 19:03:54 elliott: for splint, probably; I even think of Rust as a fixed version of C+Splint 19:04:03 oh yeah, splint hits parse errors a lot 19:05:27 ais523: what do you think of Rust? 19:06:07 It hits a parse error because I'm using gmp 19:06:08 coppro: He thinks of it as a fixed version of C+Splint. 19:06:17 coppro: I like it 19:06:22 or Gregor's answer 19:06:23 -!- Phantom___Hoover has quit (Ping timeout: 255 seconds). 19:07:05 "thanks, split" 19:07:42 -!- Phantom___Hoover has joined. 19:08:52 -!- c00kiemon5ter has quit (Remote host closed the connection). 19:09:23 -!- c00kiemon5ter has joined. 19:12:35 -!- Phantom___Hoover has quit (Ping timeout: 244 seconds). 19:13:34 -!- Phantom___Hoover has joined. 19:13:35 -!- c00kiemon5ter has quit (Ping timeout: 255 seconds). 19:14:18 Okay, I have no idea how to get splint and gmp to play nice 19:15:09 :( 19:15:12 probably you don't 19:18:17 there is a chance that someone else has an idea, somewhere else in the world 19:18:30 -!- Phantom___Hoover has quit (Ping timeout: 252 seconds). 19:18:36 poor bastard 19:18:46 it is unlikely that anyone has any idea anywhere 19:19:41 http://www.mail-archive.com/lclint-interest@virginia.edu/msg00303.html looks like the same thing 19:21:44 Ooh, that's a prettier core dump 19:23:23 http://hastebin.com/wegaqedudo.txt 19:27:42 -!- Phantom___Hoover has joined. 19:28:21 -!- monqy has joined. 19:31:35 -!- nooga has quit (Ping timeout: 255 seconds). 19:32:03 You can tell a lot about me from that paste 19:32:14 Firstly, I use multiple pastebins 19:32:31 hello vdso.... if that is your real name.......... 19:32:41 -!- Phantom___Hoover has quit (Ping timeout: 256 seconds). 19:33:13 :t intercalate 19:33:15 [a] -> [[a]] -> [a] 19:33:43 Bike... 19:33:46 :t intersperse 19:33:48 a -> [a] -> [a] 19:34:03 :t interplanetary 19:34:05 Not in scope: `interplanetary' 19:34:55 intersPerse 19:35:10 Bike: interplanetary is too far away to be in scope. 19:36:32 :( 19:36:45 :t intergalactic 19:36:46 -!- oerjan has joined. 19:36:47 Not in scope: `intergalactic' 19:37:08 -!- epicmonkey has quit (Ping timeout: 248 seconds). 19:37:11 :t interfamilial 19:37:13 Not in scope: `interfamilial' 19:37:32 now wat 19:37:52 oerjan: Bike tried to be spacial. 19:38:05 a common mistake. 19:38:41 :( ( 19:39:02 i assume read forms a monoid <-- assume a spherical monoid in a Void 19:41:07 @ask monqy What happened to your quit message? <-- quit messages are censored if you haven't been logged on long enough, hth 19:41:50 (3 minutes and 28 seconds are presumable not long enough.) 19:41:50 if the one who quits hasn't been logged on long enough? 19:41:55 yes 19:41:56 or the one who reads the quit message? 19:42:26 -!- Phantom___Hoover has joined. 19:42:54 olsner: yes. 19:43:00 oerjan: ok 19:43:24 -!- metasepia has quit (Ping timeout: 264 seconds). 19:44:35 -!- boily has quit (Ping timeout: 256 seconds). 19:46:45 yes and no I think 19:47:23 :t interracial 19:47:24 Not in scope: `interracial' 19:47:53 o: 19:48:07 -!- metasepia has joined. 19:48:08 -!- boily has joined. 19:51:42 -!- Phantom___Hoover has quit (Ping timeout: 264 seconds). 19:52:34 -!- Phantom___Hoover has joined. 19:52:55 -!- carado_ has quit (Ping timeout: 246 seconds). 19:58:03 -!- Phantom___Hoover has quit (Ping timeout: 244 seconds). 19:59:46 `factor 808017424794512875886459904961710757005754368000000000 19:59:47 factor: `808017424794512875886459904961710757005754368000000000' is too large 19:59:51 LAME 20:00:01 2 20:00:22 ~eval primeFactors 123 20:00:23 [3,41] 20:00:24 i don't think that's its complete prime factorization, Taneb 20:00:32 ~eval primeFactors 808017424794512875886459904961710757005754368000000000 20:00:33 [2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,7,7,7,7,7,7,11,11,13,13,13,17,19,23,29,31,41,47,59,71] 20:00:35 oerjan, it's a start 20:01:04 metasepia 1, HackEgo 0. 20:01:40 -!- carado has joined. 20:01:46 is metasepia a reference to the claim cuttlefishes don't have color vision 20:02:16 ~eval 7 ^. re (_Just . _Left . enum) :: Maybe (Either Char Bool) 20:02:18 Error (1): Couldn't match type `GHC.Types.Int' with `GHC.Types.Char' 20:02:18 Expected type: Control.Lens.Internal.Review.Reviewed 20:02:18 t0 (Data.Functor.Identity.Identity t0) 20:02:18 -> Control.Lens.Internal.Review.Reviewed 20:02:18 GHC.Types.Int (Data.Functor.Identity.Identity GHC.Types.Char) 20:02:19 Actual type: Control.Lens.Internal.Review.Reviewed 20:02:19 t0 (Data.Functor.Identity.Identity t0) 20:02:20 -> Control.Lens.Internal.Review.Reviewed 20:02:20 GHC.Types.Int (Data.Functor.Identity.Identity GHC.Types.Int) 20:02:28 ~eval 7 ^. re (_Just . _Left . from enum) :: Maybe (Either Char Bool) 20:02:29 Just (Left '\a') 20:02:36 ~eval 49 ^. re (_Just . _Left . from enum) :: Maybe (Either Char Bool) 20:02:37 Just (Left '1') 20:02:41 oerjan: it's name after Metasepia Pfefferi. 20:02:48 s/e\b/ed/ 20:02:58 ah 20:04:14 created a github project earlier this morning, just to be sure. 20:05:00 i still miss cuttlefish 20:05:09 Does metasepia use the primes package or something else? 20:05:35 ~eval (0$0 `primeFactors`) 20:05:35 Error (1): The operator `Data.Numbers.Primes.primeFactors' [infixl 9] of a section 20:05:36 must have lower precedence than that of the operand, 20:05:36 namely `GHC.Base.$' [infixr 0] 20:05:36 in the section: `0 $ 0 `primeFactors`' 20:05:53 ~type (+) 20:05:54 --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi 20:06:03 boily, you know what to do 20:06:26 ~type (+)==() 20:06:27 --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi 20:06:31 ~eval (+)==() 20:06:32 Error (1): Couldn't match expected type `a0 -> a0 -> a0' with actual type `()' 20:06:33 Taneb: I'm reading RFC 2812 for now, I still have to reimplement that IRC client stack for it to support SSL. 20:06:35 :t (+) 20:06:37 Num a => a -> a -> a 20:06:47 ~duck 20:06:48 --- ~duck query 20:06:48 --- Query information from Duck Duck Go 20:06:57 ~duck Hexham 20:06:57 ~duck longest pie 20:06:58 --- No relevant information 20:06:58 --- No relevant information 20:07:05 ~duck Northumberland 20:07:05 n the northernmost county of England, on the North Sea: hilly in the north and west, with many Roman remains, notably Hadrian's Wall; shipbuilding, coal mining. 20:07:21 any and all suggestions, desires, opinions and other wishes you can come up with will probably be readily accepted and implemented. 20:07:35 ~duck programming language 20:07:36 A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. 20:07:46 boily, can you make a DOS version of HackEgo? 20:08:12 ~botsnack 20:08:12 --- Possible commands: dice, duck, echo, eval, fortune, metar, ping, yi 20:08:16 boily: it needs ~botsnack. 20:08:22 what's botsnack? 20:08:24 @botsnack 20:08:24 :) 20:08:31 `botsnack 20:08:33 ​:-D 20:08:36 ^botsnack 20:08:49 fungot why 20:08:49 Taneb: i mean that in the ' save as text' shows bold text. whoops. 20:09:00 !botsnack 20:09:09 EgoBot why 20:09:12 #botsnack 20:09:23 Who was # 20:09:24 -!- ogrom has joined. 20:09:51 ok, so: 1. Implement an IRC stack; 2. Add botsnack; 3. Kill Morgoth. 20:10:13 boily, can I take this opportunity to say that it's okay for metasepia to use '~' because Pietbot sucked? 20:10:43 + is thutubot 20:10:48 somebody else was using ~ besides me? 20:10:52 Yeah, me 20:10:55 Pietbot 20:10:57 It sucked 20:11:09 It couldn't quite run deadfish programs 20:11:23 I boldly reaffirm my possession and exclusive usage of ~! 20:11:43 `botsnack 20:11:44 Taneb: uhm. ok. I... uhm... well... uh... that's quite an impressive achievement, if I may say so. 20:11:45 ​:-D 20:12:41 !addinterp botsnack sh echo "^_^" 20:12:42 ​Interpreter botsnack installed. 20:12:45 !botsnack 20:12:47 ​^_^ 20:13:33 -!- sirdancealot has quit (Remote host closed the connection). 20:13:38 ^prefixes 20:13:38 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ? 20:13:45 ?botsnack 20:13:46 :) 20:13:53 ^show prefixes 20:13:53 (Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?)S 20:14:19 ^def prefixes ul (Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~)S 20:14:20 Defined. 20:14:23 ^prefixes 20:14:23 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~ 20:14:31 !show prefixes 20:14:31 +botsnack 20:14:31 underload (Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?)S 20:14:45 !delinterp prefixes 20:14:46 ​Interpreter prefixes deleted. 20:14:58 ^addinterp prefixes underload (Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~)S 20:15:04 !addinterp prefixes underload (Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~)S 20:15:04 oerjan: let it equal that from the bf algorithms page. i'm thinking about 20:15:05 ​Interpreter prefixes installed. 20:15:18 `cat bin/prefixes 20:15:20 ​#!/bin/sh \ echo 'Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?' 20:15:37 All the other bots should just query HackEgo, clearly. 20:15:56 `sed -i '2s/$/, thutubot +, metasepia ~/' bin/prefixes 20:15:58 Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... \ \ -n, --quiet, --silent \ suppress automatic printing of pattern space \ -e script, --expression=script \ add the script to the commands to be executed \ -f script-file, --file=script-file \ add the contents of script- 20:16:06 `run sed -i '2s/$/, thutubot +, metasepia ~/' bin/prefixes 20:16:08 -!- Phantom___Hoover has joined. 20:16:09 No output. 20:16:13 `prefixes 20:16:15 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia /tmp 20:16:16 !prefixes 20:16:17 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~ 20:16:23 ...wat 20:16:27 uhm... 20:16:34 `revert 20:16:37 Done. 20:16:50 -!- nooga has joined. 20:17:00 `run sed -i '2s/$/, thutubot +, metasepia \~/' bin/prefixes 20:17:04 No output. 20:17:08 `prefixes 20:17:10 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia /tmp 20:17:15 ... 20:17:25 `echo ~/ 20:17:27 ​~/ 20:17:33 `run echo '~/' 20:17:35 ​~/ 20:17:43 huh 20:18:03 `revert 20:18:06 Done. 20:18:07 `prefixes 20:18:09 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ? 20:18:30 `run sed -i '2s_$_, thutubot +, metasepia \~_' bin/prefixes 20:18:34 No output. 20:18:36 `prefixes 20:18:38 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia /tmp 20:18:43 ffuu 20:18:44 awesome. 20:18:50 `run echo 'hi' | sed 's/hi/~/' 20:18:51 `revert 20:18:51 as we say, «bin là». 20:18:51 ​~ 20:18:53 Done. 20:19:45 oerjan: tip: cat bin/prefixes 20:19:49 `run echo 'hi' | sed 's/hi/ ~/' 20:19:51 ​ ~ 20:20:00 `cat bin/prefixes 20:20:01 ​#!/bin/sh \ echo 'Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?' 20:20:16 ... 20:20:21 @ or ?', blah blah ~ 20:20:22 `run sed -i '2s_$_, thutubot +, metasepia \~_' bin/prefixes 20:20:26 No output. 20:20:28 no god dammit 20:20:31 `cat bin/prefixes 20:20:32 ​#!/bin/sh \ echo 'Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?', thutubot +, metasepia ~ 20:20:34 yes god dammit. 20:20:35 ah! 20:20:37 Yes. 20:20:39 at last! 20:20:41 :D 20:20:46 `revert 20:20:48 Done. 20:20:49 boily: no it's not working :P 20:21:01 elliott: toé mon espèce de... 20:21:17 I swear, this channel actually makes me want to figure out ed some time, because it couldn't possibly be more bullshit than sed. 20:21:19 * boily swats elliott with a random cephalopod 20:21:41 `run sed -i '2s_'$_, thutubot +, metasepia ~'\''_' bin/prefixes 20:21:43 sed: -e expression #1, char 8: unterminated `s' command 20:21:45 ff 20:21:57 `run sed -i '2s_'\''$_, thutubot +, metasepia ~'\''_' bin/prefixes 20:22:01 No output. 20:22:04 `prefixes 20:22:06 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~ 20:22:07 you fools. you think you can figure out unix 20:22:10 whew 20:22:16 you know nothing! 20:22:30 elliott: Lucky for me I don't actually do things that I want to do. 20:25:18 metasepia?? 20:25:30 monqy: its like cuttlefish but not called cuttlefish 20:25:33 instead it has a worse name 20:25:35 ah... 20:25:45 ) 2+2 20:25:46 oerjan: 4 20:25:51 OH NO 20:26:05 !blsq 1 20:26:05 1 20:26:32 i should make a bot where the prefix is >. that's not used right 20:26:54 `run sed -i '2s_'\''$_, jconn ), blsqbot !'\''_' bin/prefixes 20:26:58 i like having bots that respond to their name 20:26:59 No output. 20:27:00 `prefixes 20:27:01 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot ! 20:27:08 so you can do "HackEgo, make me a pie" or w/e 20:27:11 ^prefixes 20:27:11 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~ 20:27:12 what happened to preflex 20:27:33 !delinterp prefixes 20:27:34 ​Interpreter prefixes deleted. 20:28:00 monqy: well mauke left 20:28:03 rip 20:28:08 oh fff 20:28:23 cannot add jconn with underload :P 20:28:42 bf_txtgen time 20:28:55 monqy: You should use » as a prefix. 20:30:18 could use ☺ as a prefix 20:30:19 !bf_txtgen Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot ! 20:30:19 oerjan: fnord doesn't have magus available. when you use it, then? 20:31:02 good bf_txtgen 20:31:30 !addinterp prefixes sh echo 'Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot !' 20:31:31 oerjan: s/ whi/ who/ that's an error to use car on a string 20:31:32 ​1111 +++++++++++[>++++++>+++>++++++++++>+++++++++<<<<-]>.>>+.+++++.<-.>----.++.>++.+.+++.<++++++.>----.<-----.<<--------.--------------------------.>>>+.<++.>++++++++.-------.<------.+++++.<<.>>>---------.<<++++++++++++.<.>++++++++++++++++++++++++++++.>>+++.++.<---------.<---.>>++++.<++++.<<.>>>-------.<<<++++++++++++.------------.>.>>+++++++.<.<---.>>++++++++.+++++.<<<.+.+++++++++++.------------.>>---.<+++++++++++++++++++++++++++++++.>+.<+.++.---.+.>++.>.<<<.>- 20:31:43 ☺ is a good choice, IMHO. just have to remember it's U+263A. 20:31:47 SOMETHING TELLS ME IT GOT CUT OFF 20:31:53 !echo hi 20:31:54 hi 20:32:04 !prefixes 20:32:05 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot ! 20:32:21 !bf +++++++++++[>++++++>+++>++++++++++>+++++++++<<<<-]>.>>+.+++++.<-.>----.++.>++.+.+++.<++++++.>----.<-----.<<--------.--------------------------.>>>+.<++.>++++++++.-------.<------.+++++.<<.>>>---------.<<++++++++++++.<.>++++++++++++++++++++++++++++.>>+++.++.<---------.<---.>>++++.<++++.<<.>>>-------.<<<++++++++++++.------------.>.>>+++++++.<.<---.>>++++++++.+++++.<<<.+.+++++++++++.------------.>>---.<+++++++++++++++++++++++++++++++.>+.<+.++.---.+.>+ 20:32:22 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdab 20:32:48 SEEMS IMPRACTICAL 20:33:05 lol 20:33:22 What IS lambdab's prefix anyway??? 20:35:03 `run interp 'bf_txtgen Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot !' >prefs 20:35:03 oerjan: http://www.kollektiv-hamburg.de/forcer/ test.html could you upload it to fnord 20:35:08 exec: 4: ibin/bf_txtgen: not found 20:35:14 AAAAAAAAAAAAAAAAAaaa 20:35:48 `ls interp 20:35:51 ​/bin/ls: cannot access interp: No such file or directory \ /bin/ls: cannot access interp: No such file or directory 20:35:52 `ls interps 20:35:53 1l \ 2l \ adjust \ axo \ befunge \ bfjoust \ bf_txtgen \ boof \ build.sh \ cfunge \ c-intercal \ clc-intercal \ dimensifuck \ egobch \ egobf \ fukyorbrane \ gcccomp \ gforth_quit \ ghc \ glass \ glypho \ kipple \ lambda \ lazyk \ linguine \ Makefile \ malbolge \ pbrain \ qbf \ rail \ rhotor \ sadol \ sceql \ trigger \ udage01 \ underload \ unlambda 20:36:09 `ls interps/bf_txtgen 20:36:11 CompareIndividuals.class \ Individual.class \ textgen.class \ textgen.java \ textgen.tar.gz 20:36:53 -!- atriq has joined. 20:36:55 `cat bin/interp 20:36:56 ​#!/bin/sh \ CMD=`echo "$1" | cut -d' ' -f1` \ ARG=`echo "$1" | cut -d' ' -f2-` \ exec ibin/$CMD "$ARG" 20:37:06 -!- Taneb has quit (Disconnected by services). 20:37:09 -!- atriq has changed nick to Taneb. 20:37:56 `ls ibin 20:37:59 1l \ 2l \ adjust \ asm \ axo \ bch \ befunge \ befunge98 \ bf \ bf16 \ bf32 \ bf8 \ boolfuck \ c \ cintercal \ clcintercal \ cxx \ dimensifuck \ forth \ glass \ glypho \ haskell \ k \ kipple \ lambda \ lazyk \ linguine \ malbolge \ pbrain \ qbf \ rail \ rhotor \ sadol \ sceql \ sh \ trigger \ udage01 \ underload \ unlambda \ whirl 20:38:05 Good news! 20:38:06 `ls 20:38:08 bin \ brainfuck.fu \ canary \ dbg.out \ dkVb20VL \ egobot.tar.xz \ etc \ factor \ foo \ foo.err \ foo.out \ ibin \ interps \ karma \ lib \ paste \ prefs \ quines \ quotes \ radio.php?out=inline&shuffle=1&limit=1&filter=*MitamineLab* \ sgfoobar \ share \ slist.rej \ src \ sudo \ %sudo \ test \ wisdom \ zalgo.hs 20:38:13 My program no longer segfaults and coredumps! 20:38:18 Probably! 20:38:27 It now coredumps due to some other fault? 20:38:36 It space leaks 20:38:43 PROBLEM: SOLVED 20:38:44 -!- nooga has quit (Ping timeout: 255 seconds). 20:38:51 Gregor: why isn't bf_txtgen in ibin/ 20:38:59 Excellent question. 20:39:02 I haven't an excellent answer. 20:39:05 `ls bin/bf* 20:39:06 ​/bin/ls: cannot access bin/bf*: No such file or directory \ /bin/ls: cannot access bin/bf*: No such file or directory 20:39:10 'snot there either. 20:39:13 Nowait 20:39:15 `run ls bin/bf* 20:39:16 ​/bin/ls: cannot access bin/bf*: No such file or directory \ /bin/ls: cannot access bin/bf*: No such file or directory 20:39:20 Still not there. 20:41:05 `run find | grep txtgen 20:41:08 ​./.hg/store/data/interps/bf__txtgen \ ./.hg/store/data/interps/bf__txtgen/_compare_individuals.class.i \ ./.hg/store/data/interps/bf__txtgen/_individual.class.i \ ./.hg/store/data/interps/bf__txtgen/textgen.class.i \ ./.hg/store/data/interps/bf__txtgen/textgen.java.i \ ./.hg/store/data/interps/bf__txtgen/textgen.tar.gz.i \ ./interps/bf_txtgen \ 20:41:32 `run find | grep txtgen | grep -v '[.]hg' 20:41:35 ​./interps/bf_txtgen \ ./interps/bf_txtgen/CompareIndividuals.class \ ./interps/bf_txtgen/Individual.class \ ./interps/bf_txtgen/textgen.class \ ./interps/bf_txtgen/textgen.java \ ./interps/bf_txtgen/textgen.tar.gz 20:41:48 I probably didn't import it correctly. 20:41:52 s/probably/clearly/ 20:42:03 `run find | grep txtgen | grep -v '[.]hg' | grep -v '[.]/interps/' 20:42:06 No output. 20:42:38 -!- sirdancealot has joined. 20:43:11 boily: i see no other solution than you changing your prefix to ( i'm afraid 20:43:30 oerjan: how about hide a ) at the end of the list 20:43:34 * boily preciously guards his shiny and wiggly ~ 20:43:36 Wait 20:43:38 wait 20:43:39 never mind 20:43:43 Pietbot never had ~ 20:43:45 It had ) 20:43:51 "whoops" 20:43:55 or maybe blsqbot could do it, it's overlapping with EgoBot anyway 20:44:33 how about we invent a bot that uses ( 20:44:40 oh wait hm 20:45:11 !prefixes 20:45:12 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot ! 20:46:49 -!- carado has quit (Ping timeout: 246 seconds). 20:48:47 ~metar CYUL 20:48:47 CYUL 272045Z 05014KT 5/8SM R06L/3000FT/D R06R/3500FT/N SN OVC003 00/M00 A2980 RMK SN5SF3 SLP093 20:50:06 oh hm 20:50:38 ^rainbow 20:50:50 ^rainbow HOWDOESTHISWORKAGAINTESTINGHO 20:50:50 HOWDOESTHISWORKAGAINTESTINGHO 20:50:57 ^show rainbow 20:50:57 +3>4+6[->+8<],[<4.>[->+>+<2]>2-[-[-[-[-[-[-[<[-]>[-]]]]]]]]<[-<+>2+<]<+>4.[-<2+>3+<]<2+2.[-]>.>2[-<+>]<2,] 20:52:02 Testing 20:52:31 ^rainbow FWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLFLBLBLBLBLBLBLBLBL! 20:52:32 FWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLFLBLBLBLBLBLBLBLB ... 20:52:40 hi 20:52:50 oh wait that lack of dummy thing... 20:53:17 (semi-portable, that is) 20:53:40 Testing 20:53:45 nope 21:00:08 `ls interps/bf_txtgen 21:00:10 CompareIndividuals.class \ Individual.class \ textgen.class \ textgen.java \ textgen.tar.gz 21:00:27 `run java interps/textgen.java test 21:00:32 Exception in thread "main" java.lang.NoClassDefFoundError: interps/textgen/java \ Caused by: java.lang.ClassNotFoundException: interps.textgen.java \ at java.net.URLClassLoader$1.run(URLClassLoader.java:217) \ at java.security.AccessController.doPrivileged(Native Method) \ at java.net.URLClassLoader.findClass(URLClassLoader.java:205) \ at java. 21:00:53 !sh ls 21:00:54 interps \ lib \ slox 21:01:00 !sh ls interps 21:01:01 1l \ 2l \ Makefile \ adjust \ axo \ befunge \ bf_txtgen \ bfjoust \ boof \ c-intercal \ cat \ cfunge \ clc-intercal \ dimensifuck \ egobch \ egobf \ fukyorbrane \ gcccomp \ gforth_quit \ ghc \ glass \ glypho \ kipple \ lambda \ lazyk \ linguine \ malbolge \ pbrain \ qbf \ rail \ rhotor \ sadol \ sceql \ trigger \ udage01 \ underload \ unlambda \ whirl 21:01:12 !sh ls interps/bf_txtgen 21:01:13 CompareIndividuals.class \ Individual.class \ textgen \ textgen.class \ textgen.java \ textgen.tar.gz 21:01:23 !sh ls .. 21:01:24 multibot_cmds 21:01:47 !sh ls ../.. 21:01:47 egobot.hg 21:01:53 !sh ls ../../.. 21:01:54 egobot 21:01:57 !sh ls ../../../.. 21:01:58 bin \ dev \ etc \ home \ lib \ lib64 \ opt \ proc \ tmp \ usr 21:02:10 Gregor: ok where the fuck is ibin in EgoBot 21:02:26 Nowhere. 21:02:31 You'd have to get it from the repo. 21:03:02 http://codu.org/projects/egobot/hg/index.cgi/file/ffe171208ae9/multibot_cmds/scmds/bf_txtgen 21:04:15 `ls lib/interp 21:04:17 lib/interp 21:04:39 `fetch http://codu.org/projects/egobot/hg/index.cgi/raw-file/ffe171208ae9/multibot_cmds/scmds/bf_txtgen 21:04:41 2013-02-27 21:04:40 URL:http://codu.org/projects/egobot/hg/index.cgi/raw-file/ffe171208ae9/multibot_cmds/scmds/bf_txtgen [125/125] -> "bf_txtgen" [1] 21:04:54 `mv bf_txtgen ibin 21:04:56 mv: missing destination file operand after `bf_txtgen ibin' \ Try `mv --help' for more information. 21:05:08 `run chmod a+x bf_txtgen; mv bf_txtgen ibin 21:05:13 No output. 21:05:44 `run interp 'bf_txtgen Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot !' >prefs 21:05:45 Futari arukidasu. 21:06:05 No output. 21:06:14 `wc prefs 21:06:15 ​ 1 3 1116 prefs 21:06:19 O_O 21:06:36 `java 21:06:40 Usage: java [-options] class [args...] \ (to execute a class) \ or java [-options] -jar jarfile [args...] \ (to execute a jar file) \ where options include: \ -d32 use a 32-bit data model if available \ -d64 use a 64-bit data model if available \ -server to select the "server" VM \ The d 21:06:51 `cat prefs 21:06:52 1104 +++++++++++++++[>++++++++>++++>+++++++>+++++++<<<<-]>>++++++.>++++++.<<----.>----------------------------------.<----.>>+++.<<-----------.+.>>>.<++++++.<<-.>>-----.<++++++++++++++++++++++++++.--------------------------.<+.>>++.>+++++.<<<+.>>>+.<-.<.>----------------------.<++++++++++++.------------.>----------------------.<<------.>+++++++++++ 21:07:06 `run cut -d' ' -f2 prefs 21:07:07 ​+++++++++++++++[>++++++++>++++>+++++++>+++++++<<<<-]>>++++++.>++++++.<<----.>----------------------------------.<----.>>+++.<<-----------.+.>>>.<++++++.<<-.>>-----.<++++++++++++++++++++++++++.--------------------------.<+.>>++.>+++++.<<<+.>>>+.<-.<.>----------------------.<++++++++++++.------------.>----------------------.<<------.>+++++++++++++ 21:07:13 `run cut -d' ' -f2 prefs > prefs.bf 21:07:16 No output. 21:07:28 Gregor: um what are you doing 21:07:51 `url prefs 21:07:53 Getting out the bf? 21:07:54 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/prefs 21:08:51 Gregor: i'm hand massaging it anyway 21:09:00 to get it into fungot 21:09:08 Oh 21:09:20 `prefixes 21:09:21 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot ! 21:09:29 We should have a more automated way of doing this X-D 21:09:48 it's just that HackEgo was the easiest place to get the full bf_txtgen output 21:09:51 if only the bots could query each other 21:09:52 RIGHT GREGOR 21:10:00 > 1104/3 21:10:06 368.0 21:10:15 elliott: Badurpdurpdurp 21:10:34 ^help 21:10:34 ^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool 21:11:23 http://slant.co/topics/what-are-your-favorite-hidden-features-of-haskell/opinions/user-defined-control-structures I didn't think that anyone would define ? like that 21:11:37 ^str 0 set +++++++++++++++[>++++++++>++++>+++++++>+++++++<<<<-]>>++++++.>++++++.<<----.>----------------------------------.<----.>>+++.<<-----------.+.>>>.<++++++.<<-.>>-----.<++++++++++++++++++++++++++.--------------------------.<+.>>++.>+++++.<<<+.>>>+.<-.<.>----------------------.<++++++++++++.------------.>----------------------.<<------.>++++++++++++++++++++++++++++++++++ 21:11:37 Set: +++++++++++++++[>++++++++>++++>+++++++>+++++++<<<<-]>>++++++.>++++++.<<----.>----------------------------------.<----.>>+++.<<-----------.+.>>>.<++++++.<<-.>>-----.<++++++++++++++++++++++++++.--------------------------.<+.>>++.>+++++.<<<+.>>>+.<-.<.>----------------------.<++++++++++++.------------.>----------------------.<<------.>++++++++++++++++++++++++++++++++++ 21:11:43 ^str 0 add +++++++++++++++++++++++++++++++++.>>----.<---.<++++.++++++++.>-------------------------------------.<<-.>>++++++++++++.------------.<<---------------------------.>>>----.<<.<---.>.+++++.>.+.+++++++++++.------------.>+++++.-----------.++++++++++++.-----------.++.---.+.+++++++++++++.<<.>.<<--.>>.>.<<--.>.>------------------------------------------------.-------------- 21:11:43 Added. 21:11:50 ^str 0 add -----.<.<++.<++++++++++++++++++++++++++++++++++++++++.>+.-.+.<------.+++++++++++++.>-.>.>-.+.<.<<--.--------.>.<----.>-.<++++.+++++++++++.>----------.--------.>.<<++++++++++++++.>>>.<.<+++++++++.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.<+++++.-..>>------------.+++++++++.+++.------------.<-.<--.<-----------.--.>>.+++++++++++++.<<+++.>>>.+. 21:11:50 Added. 21:11:58 ^def prefixes bf str:0 21:11:58 Defined. 21:12:03 ^prefixes 21:12:03 Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, jconn ), blsqbot ! 21:12:12 toot 21:12:38 fizzie: PLEASE SAVE 21:12:42 You could add a command to HackEgo that would, in a file, give you the complete list of commands needed to update all the bots. 21:12:51 is he even online 21:13:11 Gregor: heh 21:14:37 Doesn't allow nesting like C's ?: does though 21:14:43 -!- AnotherTest has quit (Ping timeout: 256 seconds). 21:16:17 oerjan: iih, tyfti 21:16:27 Also apparently you can use >>= instead of concatMap 21:16:33 shachaf: wat 21:16:39 oh 21:16:44 Although I think concatMap is clearer in intent 21:16:48 shachaf: YW 21:16:56 shachaf: is that finnish? 21:17:07 iihtyftillä 21:17:20 thät definitely is finnish. 21:17:41 seriösly 21:18:56 it indeed helps 21:19:00 thank you for that information 21:19:04 htdrify 21:19:49 shachaf: well i for one am not one to stop anyone from dating female yetis. 21:20:42 -!- sebbu2 has joined. 21:21:03 @tell fizzie please ^save fungot thanks 21:21:03 Consider it noted. 21:21:09 > let 5 = 6 in 5 21:21:10 5 21:21:35 ^save 21:21:54 shachaf: i do not believe it responds to you hth 21:22:05 > let False = True in False 21:22:05 -!- ogrom has quit (Quit: Left). 21:22:22 * FreeFull pokes lambdabot 21:22:35 ~eval let False = True in False 21:22:36 False 21:22:37 False 21:22:48 lambdabot: TOO LATE 21:22:54 > compadre "shachaf" "fizzie" 21:22:56 EQ 21:23:00 -!- sebbu has quit (Ping timeout: 272 seconds). 21:23:14 los compadres banditos 21:23:20 What's the definition of compadre? 21:23:32 compadre = EQ ?????? 21:23:39 @ty compadre 21:23:40 ???????????????????????????? 21:23:41 Ord b => b -> b -> Ordering 21:24:03 > compadre 1 0 21:24:03 > compadre "shachaf" "hitler" 21:24:05 can't find file: L.hs 21:24:05 EQ 21:24:08 > compadre 1 0 21:24:11 EQ 21:24:13 > compadre 1 1 21:24:14 > compadre "" "R" 21:24:17 EQ 21:24:19 EQ 21:24:19 > compadre 1 2 21:24:25 EQ 21:24:34 Have concluded that it always returns EQ 21:24:36 It probably is compadre a b = EQ 21:24:44 :t compadre 21:24:49 Not in scope: `compadre' 21:24:53 Perhaps you meant `compare' (imported from Data.Ord) 21:24:53 With a type annotation that adds the Ord restraint 21:25:01 Taneb: i think that can be deduced from the type, and how it behaves on those tested numbers 21:25:13 oerjan, that's what I tested 21:25:27 oerjan: Well, just returning EQ wouldn't add the Ord constarint 21:25:29 it must be a modification of compare and maybe seq 21:25:44 FreeFull: no, but it's easy to add that explicitly 21:25:51 Yeah 21:25:54 Or using seq 21:26:01 -!- zzo38 has joined. 21:26:06 > compadre [1..] [1..] 21:26:08 Not in scope: `compadre' 21:26:08 Perhaps you meant `compare' (imported from Data.O... 21:26:12 compadre a b = (a == b) `seq` EQ 21:26:16 Who removed it 21:26:29 :t (\a b -> (a == b) `seq` EQ) 21:26:29 some bandido 21:26:31 Eq a => a -> a -> Ordering 21:26:36 No 21:26:38 :t (\a b -> (a < b) `seq` EQ) 21:26:39 Ord a => a -> a -> Ordering 21:26:42 There 21:26:53 :t (\a b -> (a `compare` b) `seq` EQ) 21:26:54 Possibly const 21:26:55 Ord a => a -> a -> Ordering 21:27:07 :t (\a b -> const EQ (a < b)) 21:27:09 Ord a => a -> a -> Ordering 21:27:22 FreeFull: we never got to check it with undefined 21:27:27 > (\a b -> const EQ (a < b)) [1..] [1..] 21:27:29 EQ 21:27:35 > (\a b -> const EQ (a < b)) undefined undefined 21:27:37 EQ 21:28:00 > compadre undefined undefined 21:28:03 Not in scope: `compadre' 21:28:03 Perhaps you meant `compare' (imported from Data.O... 21:28:13 Where did it go ): 21:28:31 someone did @undefine 21:28:38 and *POOF* 21:29:10 it could theoretically be a coincidence and have happened in some completely different channel 21:29:11 > [ maxBound - 1 .. ] 21:29:12 Ambiguous type variable `t0' in the constraints: 21:29:13 (GHC.Enum.Bounded t0) 21:29:13 ... 21:29:16 * oerjan eyes shachaf suspiciously 21:29:18 > [ maxBound - 1 :: Int .. ] 21:29:20 [9223372036854775806,9223372036854775807] 21:29:37 Expected 21:29:46 * boily prods shachaf with ørjan's eyes 21:29:48 as per haskell report 21:30:00 oerjan: ? 21:30:05 Oh. 21:30:13 shachaf: you are suspected of using @undefine hth 21:30:18 ~eval [maxBound -1 :: Int .. ] 21:30:19 [9223372036854775806,9223372036854775807] 21:30:27 and thus sabotaging SCIENCE 21:30:32 oerjan: i readily confess 21:30:36 ~eval ['a'..'z'] 21:30:37 "abcdefghijklmnopqrstuvwxyz" 21:30:39 13:22 @let compadre = const (const EQ) `asTypeOf` compare 21:30:41 hm haven't got around to reading girl genius yet 21:30:50 hmm... that gives me an idea. 21:30:52 let's flood! 21:30:54 oerjan, it's pretty good 21:30:59 ~eval ['a'..] 21:31:00 "abcdefghijklmnopqrstuvwxyz{|}~\DEL\128\129\130\131\132\133\134\135\136\137\138\139\140\141\142\143\144\145\146\147\148\149\150\151\152\153\154\155\156\157\158\159\160\161\162\163\164\165\166\167\168\169\170\171\172\173\174\175\176\177\178\179\180\181\182\183\184\185\186\187\188\189\190\191\192\193\194\195\196\197\198\199\200\201\202\203\204\205\206\207\208\209\210\211\212\213\214\215\216\217\218\219\220\221\222\223\224\225\226\227 21:31:02 Taneb: i mean for today 21:31:04 well darn. 21:31:07 Oh 21:31:14 It's alright 21:31:54 `olist 21:31:55 shachaf oerjan Sgeo 21:31:57 winning the comics hugo 3 years in a row _should_ be some kind of quality mark, you'd think 21:32:17 Sgeo: he's on a roll? 21:32:24 oerjan, Daniel Day Lewis has one three Best Actor Oscars and I still have no idea who he is 21:32:26 Apparently 21:32:52 I couldn't get into OOTS 21:32:58 Taneb: touché 21:35:38 -!- nooodl has joined. 21:44:27 quintopia: it may be that if w occurs in thue-morse, then it occurs within the first O(length(w)) bits 21:44:46 8*length(w) is sufficient, i think (4 if length(w) is a power of 2) 21:45:33 oh wait 21:45:45 maybe 10 21:46:09 01100 has all possible boundaries of single bits 21:46:11 :t any 21:46:11 -!- epicmonkey has joined. 21:46:13 (a -> Bool) -> [a] -> Bool 21:46:24 why isn't that [Bool] -> Bool. 21:46:29 :t or 21:46:31 [Bool] -> Bool 21:46:34 well ok 21:46:42 @src any 21:46:43 any p = or . map p 21:48:26 -!- carado_ has joined. 21:48:58 it reads well 21:49:08 > any even [1, 3, 7] 21:49:09 False 21:49:16 * kmc .ruby.moed++ 21:49:21 something about fairbairn threshold 21:49:53 moed? fairbairn? 21:50:22 -!- carado has joined. 21:50:44 Fairbairn threshold is to do with whether it is worth making an identifier 21:52:13 ~duck fairbairn 21:52:13 --- No relevant information 21:52:18 ~duck identifier 21:52:18 An identifier is a name that identifies either a unique object or a unique class of objects, where the "object" or class may be an idea, physical [countable] object, or physical [noncountable] substance. 21:52:20 -!- nooga has joined. 21:53:20 -!- sebbu2 has quit (Ping timeout: 276 seconds). 21:55:01 Remember that book about that guy who fell in love and bred a bright green mouse? 21:55:19 He had a robot dog and some trains 21:55:22 Well, I control the logs, sooooooooooooo >: ) <-- i'm reading this on tunes, neener neener 21:56:29 Taneb: the green mile? 21:56:47 olsner, nah, there was nothing to do with miles 21:57:34 http://www.amazon.co.uk/How-Green-Was-My-Mouse/dp/0140388079/ref=sr_1_1?ie=UTF8&qid=1362002247&sr=8-1 21:57:55 ^save 21:57:55 OK. 21:57:56 fizzie: You have 1 new message. '/msg lambdabot @messages' to read it. 21:58:00 @messages 21:58:00 oerjan said 36m 57s ago: please ^save fungot thanks 21:58:05 (I must be psychic.) 21:58:08 yay! 21:58:10 ^save the world 21:58:26 -!- Taneb has quit (Quit: Leaving). 21:58:38 he saved the world, then left 21:59:34 ^^ 22:00:22 -!- epicmonkey has quit (Ping timeout: 272 seconds). 22:02:12 -!- augur has quit (Remote host closed the connection). 22:05:02 I like how that undefined clause is pointless. <-- i think there is some kind of intention in the haskell report that undefined may be replaced by something giving file name and code position, in which case it's not pointless. 22:05:08 > undefined 22:05:10 *Exception: Prelude.undefined 22:05:21 sadly ghc never bothered with that? 22:05:39 or doesn't now, anyhow 22:05:57 > 7 + maximum [] 22:05:59 *Exception: Prelude.maximum: empty list 22:06:05 that error seems fine to me 22:06:20 > 7 + (case 2 of { 0 -> () }) 22:06:22 No instance for (GHC.Num.Num ()) 22:06:22 arising from a use of `GHC.Num.+' 22:06:22 Poss... 22:06:25 > 7 + (case 2 of { 0 -> 1 }) 22:06:27 *Exception: :3:6-25: Non-exhaustive patterns in case 22:06:35 yeah ghc doesn't use undefined in its maximum definition 22:06:58 or does it, hm 22:07:01 presumably there's some documentation value to writing "= undefined" as well 22:07:11 @let testing [] = undefined 22:07:13 Defined. 22:07:16 > testing 22:07:18 No instance for (GHC.Show.Show ([t0] -> a0)) 22:07:18 arising from a use of `M819... 22:07:23 > testing :: Char 22:07:25 Couldn't match expected type `GHC.Types.Char' 22:07:25 with actual type... 22:07:31 wat 22:07:34 oh 22:07:39 > testing [] :: Char 22:07:39 what? why would that work? 22:07:41 *Exception: Prelude.undefined 22:08:25 Bike: if ghc did that thing the report seemed to intend, that might have returned an error message involving testing 22:08:45 :t testing 22:08:47 [t] -> a 22:09:01 elliott: Perl 6 has ..., ???, and !!! 22:09:04 eh... 22:09:18 which are all lazy values that throw various sorts of exception when forced 22:09:25 Bike: it was just a definition to test what ghc does with undefined in a definition, sheesh 22:10:07 wasn't eh'ing at you 22:10:22 :t fix testing 22:10:24 [t] 22:10:31 > fix testing 22:10:35 mueval-core: Time limit exceeded 22:10:43 yeah, I guess it would be 22:11:02 infinite recursion 22:11:19 -!- sebbu has joined. 22:11:24 -!- Phantom___Hoover has changed nick to Phantom_Hoover. 22:11:26 of pattern matching itself against [] 22:11:56 > testing [4] 22:11:58 *Exception: :1:1-22: Non-exhaustive patterns in function testing 22:12:04 ~eval let x = x in x 22:12:05 Error (1): No instance for (GHC.Show.Show a0) 22:12:05 arising from a use of `M4817096764458891460.show_M4817096764458891460' 22:12:05 The type variable `a0' is ambiguous 22:12:05 Possible fix: add a type signature that fixes these type variable(s) 22:12:05 Note: there are several potential instances: 22:12:06 instance GHC.Show.Show GHC.Types.Double 22:12:06 -- Defined in `base:GHC.Float' 22:12:07 instance GHC.Show.Show GHC.Types.Float 22:12:07 -- Defined in `base:GHC.Float' 22:12:08 now, /that's/ a good way to get line numbers 22:12:08 instance (GHC.Real.Integral a, GHC.Show.Show a) => 22:12:08 GHC.Show.Show (GHC.Real.Ratio a) 22:12:09 -- Defined in `base:GHC.Real' 22:12:09 ...plus 50 others 22:12:27 bleh, I was hoping that really large constant would be a mersenne prime 22:12:30 metasepia pfefferi 22:12:34 but it obviously isn't 22:12:36 kmc: yep. 22:12:38 -!- boily has quit (Quit: Poulet!). 22:12:42 -!- metasepia has quit (Remote host closed the connection). 22:12:49 -!- atehwa has quit (Remote host closed the connection). 22:12:56 why are the type variables such huge numbers anyway 22:13:26 ~0 22:13:28 does deriving Ord in Haskell guarantee a total order, or at least a lattice? <-- as long as you don't get infinite recursion, it should. well as long as the parts are total orders (floating point is well known to break this with NaN) 22:13:30 ~ 0 22:14:20 ~eval let x = x in x 22:14:35 oh it quit 22:14:45 * oerjan wanted to see if the number changed 22:15:27 Bike: maybe they're hashes 22:15:39 `factor 4817096764458891460 22:15:40 4817096764458891460: 2 2 5 288349 835289313377 22:15:55 although they might be too low to be safe from collisions... 22:16:21 @tell boily does deriving Ord in Haskell guarantee a total order, or at least a lattice? <-- as long as you don't get infinite recursion, it should. well as long as the parts are total orders (floating point is well known to break this with NaN) 22:16:22 Consider it noted. 22:16:41 pesky guy quitting between me checking /whois and writing the message 22:16:52 -!- wareya has quit (Read error: Connection reset by peer). 22:17:01 it's not a lattice if it doesn't have a least upper bound right? 22:17:05 so e.g. Integer isn't 22:17:17 kmc: sure it is 22:17:22 it's not a _complete_ lattice. 22:17:40 -!- wareya has joined. 22:18:11 oh, right, lub / glb are binary operations and there's no guarantee you can apply them to everything at once 22:19:23 well they can be defined as taking sets but the result may not always exist 22:20:23 -!- impomatic has quit (Quit: impomatic). 22:20:43 e.g. the completeness axiom of real numbers say that lub for a set exists if _any_ upper bound exists 22:20:54 but you don't always have an upper bound 22:20:59 *nonempty set 22:24:47 ais523: -Weverything is literally everything, including style warnings and the like <-- i think maybe such a flag should on principle be so sensitive that you _cannot_ avoid getting at least one warning, thus preventing people from combining it with -Werror. 22:24:53 (just a thought.) 22:25:05 oerjan: warning: -Werror does not mix well with -Weverything 22:25:24 ais523: yeah but someone might still try if it's possible 22:25:49 ais523: oh wait 22:25:52 XD 22:26:35 wow that's confusing me too, it's so neat in the way it ties things together 22:27:21 What would be a good num instance for lists, assuming (Num a) => [a] 22:27:52 Other than the obvious thing of operating on one element of the list 22:27:57 FreeFull: zipWise maybe? 22:28:11 length of list, undefined elements 22:28:17 you don't even need (Num a) 22:28:19 kmc: Negative numbers? 22:29:00 hm... 22:29:01 ais523: haha, that is great 22:29:19 [] - [undefined] would end up as bottom 22:29:43 Well, the Copeanoid instance for a list does not care the contents, at least. But there doesn't seem a reasonable Num instance. 22:29:44 Or an error 22:29:44 FreeFull: make [x1,x2,x3,...] represent the ordinal number ...+omega^2*x3+omega*x2+x1 22:29:56 ^ 22:30:09 or surreal number, maybe, so negatives make sense 22:30:26 oerjan: That's an interesting instance 22:30:35 except then it's no different from a polynomial, really 22:30:43 which is also an interesting instance 22:30:45 FreeFull: the standard applicative lifting one 22:30:55 is much better than using undefined and such nonsense 22:31:13 any Applicative f gives rise to an instance Num a => Num (f a) 22:31:18 elliott: hm nice 22:31:35 :> 22:31:45 Well, wouldn't negate [x1,x2,x3,...] be the same as map negate [x1,x2,x3,...] 22:31:48 yes 22:31:51 So no need for surreals 22:31:59 note that I don't think these instances are terribly good because you can't e.g. do them for things like Eq 22:32:08 it's just happy coincidence that Num is overloaded in just the right ways 22:32:26 I mena for the ordinals 22:32:55 FreeFull: um if you apply that to an ordinal you don't get an ordinal back 22:33:06 oerjan: I was thinking you could do polynomials but I can't think of how to do it using just one list, other than interleaving 22:33:55 So [x1,x2,x3,x4] could be x1*x^0 + x2*x^(-1) + x3*x^1 etc 22:33:58 FreeFull: hm? [a0,a1,...,an] represents a0+x*a1+...+x^n*an 22:34:16 FreeFull: no negative exponents 22:34:22 Because if you don't include the negatives, you can't do division afaik 22:34:28 Num doesn't have division 22:34:44 Oh, you're right 22:34:50 Fractional does 22:35:13 Well, and Integral has div 22:35:42 Would this make sense as an Integral instance? 22:35:48 if you try to do division you'll probably want laurent series 22:36:43 FreeFull: hm maybe, if you interpret x as a hyperinteger 22:36:58 which is divisible by all the usual ones 22:37:24 hm not sure it will work 22:38:04 well there _is_ division of polynomials 22:38:25 You could do it without negative degrees as long as you have remainders 22:38:34 closest to the Integral sense 22:38:52 although we _do_ have the problem that Integral requires toInteger :P 22:39:04 So [0,0,3] `div` [0,0,0,4] would be [0] and you'd have the remainder of [0,0,3] 22:39:13 Oh, yeah, that would be a problem =P 22:40:15 it's just happy coincidence that Num is overloaded in just the right ways <-- aka "Num describes a universal algebra" 22:40:40 I should fix my BTernary, I used to not know about quot =P 22:41:17 as opposed to div, or both quot and div? 22:41:21 oerjan: HAPPY COINCIDENCE 22:41:49 elliott: universal algebras aren't exactly uncommon. groups, rings, monoids... 22:42:13 be happy oerjan 22:42:16 oerjan: I knew about div and tried to implement my own quot in terms of div 22:42:22 FreeFull: ah 22:42:46 I should have just looked at where div came from and used :info =P 22:42:59 But I think I didn't learn about how useful :info was back then either 22:43:14 Bike: reminding me to be happy sadly mainly has the effect of reminding me of my reasons not to be. 22:43:21 are any of you familiar with fisher information? 22:43:32 mdiv x y = abs x `div` abs y * signum x * signum y 22:43:33 oerjan: :'( 22:43:35 That's what I had 22:43:37 hmm… I somehow have a US quarter in my wallet 22:43:42 can i have it 22:43:47 I guess someone accidentally assumed it was a UK 10p coin 22:43:47 doesthiswork: no 22:43:51 ais523: give him no quarter 22:44:12 hmm… it has a date of 1974 22:44:17 oerjan: HAPPY. 22:44:20 oerjan: COINCIDENCE. 22:44:23 are quarters dating from that long ago in common circulation? 22:44:34 yes 22:44:45 a bit surprised, UK coins tend to be rather newer on average 22:44:58 it's more than a quarter century 22:45:00 the Royal Mint keeps melting old coins down to make new ones, as they get old and damaged 22:45:05 ais523: That's because UK underwent a currency shift 22:45:09 From an old system to a new 22:45:18 And it wasn't that long ago 22:45:53 "0.25 USD = 0.1653 GBP (British Pound Sterling)" 22:45:59 FreeFull: no, not just because of that 22:46:18 norway tends to occasionally declare old currency no longer legal tender 22:46:27 1974 quarters might be in circulation but not that common 22:46:55 with a period when you can only convert them in banks 22:47:03 well, looks like you might be able to sell it for five bucks 22:47:07 the coins in my pocket are from 1985, 1992, and 3 x 2011 22:47:11 I have on me 94 90 05 80 06 99 92 06 81 83 05 and a roll of Hawaii fresh from the bank 22:47:20 actually, the UK redesigns its currency quite a lot 22:47:27 The decimal pound came in around 1971 22:47:35 old currency can always be changed at the Bank of England, but most other places don't accept it 22:47:37 what i love about american coins is that they don't actually put the value in arabic numerals anywhere on them 22:47:46 we got rid of the last sub-krone denomination a couple years ago 22:47:53 you have to know about english words like "cent" and "dime" 22:48:05 I guess it's not as recent as the Polish currency change 22:48:18 Which underwent redenomination in 1995 22:48:19 also, touching that quarter made my hands itch 22:48:24 and now I'm worried it was poisonous 22:48:30 US coins aren't made of contact poison, right? 22:48:31 it's probably covered in america cooties 22:48:53 I guess it could be fake? 22:49:00 $20 bills are covered in cocaine 22:49:01 kmc: well you know how americans feel about arabs 22:49:03 :-) 22:49:04 elliott: yeah 22:49:11 our smallest coin is worth more than a US dime, and still the US won't get rid of pennies :P 22:49:16 its ok kmc you don't have to acknowledge my terrible joke 22:49:30 elliott: it's different now that we have elected a president who was born in a terrorist training camp in pakistan 22:50:00 oerjan: yeah :/ 22:50:10 the Euro pennies are still around too, but only in some countries? 22:50:21 and they have a 2¢ as well 22:51:06 I think Britain should get rid of 1p and 2p coins 22:51:22 $20 bills are covered in cocaine <-- is the cocaine worth more than the bill itself? 22:51:26 coins are so passé, we should use BITcoins 22:51:26 doubtful 22:51:31 its worth exactly $20 of cocaine 22:51:32 oerjan: Not enough of it 22:51:36 thats where they get their value from 22:51:37 But enough to detect it's there 22:51:49 fort knox actually just stores a shitload of cocaine 22:52:01 thats how much money the us has 22:52:13 exactly $1 shitload of cocaine 22:52:13 prediction: in 20 years the US will switch to the cannabis standard 22:52:27 sometimes cheney just swims around in it, scrooge style 22:52:41 oerjan: the UK has pennies too 22:52:50 although they're worth more than US pennies 22:54:14 hmm… a quick trip to Wikipedia implies that this quarter is made of copper and nickel, much like UK coins, and was made in Philadelphia 22:54:50 la cocaina no es buena para su salud 22:55:40 i'm going to assume that salud is salad 22:55:42 Bike: bitcoins take a noticeably large amount of time to verify that they've transferred 22:55:44 a bit like cheques 22:56:10 or rather, cheques take a while to transfer 22:56:22 whereas bitcoins transfer instantly but you can't observe that they've transferred until some time afterwards 22:56:38 mmmm cocaine salad 22:56:58 ais523: what's the privileged reference frame there? 22:57:34 kmc: the actual problem is the existence of multiple reference frames, it takes some while to establish which one is the canonical one 22:57:41 sure 22:57:49 i don't think you can say they've 'really' transferred until that's established 22:57:53 and in fact it can change after the fact 22:57:55 hmm, yeah 22:58:02 well it doesn't if the sender doesn't attempt to double-spend 22:58:18 i can't wait for some eccentric billionaire or government intelligence agency to get a bunch of ASIC miners and fuck with the bitcoin transaction history 22:58:22 it wouldn't be that expensive 22:58:33 but it would require for someone to give a damn about bitcoins 22:58:38 kmc: well they already do gpu mining 22:58:42 i think enough people do at this point 22:58:44 elliott: sure 22:58:47 -!- wareya has quit (Ping timeout: 260 seconds). 22:58:53 ASIC mining will be much much cheaper once someone is making them at scale though 22:59:00 Bike: well you could make a lot of money off it 22:59:03 and there are several commercial products supposedly launching ~now 22:59:14 from what I've heard about ASIC mining is that the ASICs are being made at the moment and aren't in circulation yet 22:59:21 yes 22:59:28 although AFAICT, ASIC mining is a prisoner's dilemma 22:59:33 also the mining difficulty only rebalances every 2 weeks 22:59:41 oh, ooh 22:59:49 ASICs aren't /that/ much better than FPGAs, though 22:59:53 and even GPUs are beating FPGAs atm 23:00:00 so if ASIC mining rigs are being distributed quickly, they might mine a /ton/ of money 23:00:04 they're claiming some really high numbers, though, I think? 23:00:06 -!- nooodl has quit (Ping timeout: 264 seconds). 23:00:06 an instant bubble, over almost before it's begun 23:00:08 like 65000 MH/s for a $1000 box 23:00:15 this is of course a property of a healthy and stable currency ;P 23:00:22 iirc i was aware of bitcoins for long enough to have been able to have made 10x profit on them 23:00:22 yeah 23:00:30 ASICs are way faster than FPGAs in a general / average kind of case 23:00:33 and not having done this annoys me even though I had no reasonable way to expect it would have been possible 23:00:35 i don't know about for bitcoin cores 23:00:51 I bought a couple for 10 cents each and sold them at $30, I feel like a bad person 23:01:04 a friend made like $1k because he happened to have set up a mining box and forgotten about it 23:01:35 Fiora: you are now a member of the bit bourgeoisie 23:01:38 bitcoin economics makes no sense to me 23:01:52 Fiora: welcome to capitalism, here's your gold star 23:01:54 like, I don't see why people value bitcoins as highly as they do 23:02:00 bitgeoisie? 23:02:23 they're a medium of exchange wth a limited quantity, and people feel like that medium will continue to be used in the future? 23:02:25 ais523: it's like tulip mania wouldn't you say 23:02:49 Fiora: yeah, I think I agree, but I don't see why people think it will continue to be used in the future 23:03:43 probably a mix of inertia, a few years have passed and nothing's displaced it, blind hope, etc? 23:04:26 i think something with the general properties of Bitcoin is undeniably useful 23:04:30 displaced it, how would you displace it, what's its niche? 23:04:43 and bitcoin has enough of a network effect by now that people will stick with it unless there are huge reasons to switch 23:04:44 so say, I own no bitcoins at the moment, if I start up another currency with the same underlying software and protocol 23:04:51 then that'd work better for me than bitcoins would 23:04:57 does that justify a $30 value? almost certainly not 23:05:02 there will be another bubble pop 23:05:05 the network effect sort-of matters, but existing bitcoin holdings don't really make sense 23:05:11 but I don't think they'll go to 0, just like they didn't last time the bubble popped 23:05:20 I think bitcoins would work better if they were backed by something, rather than being generated by mining 23:05:20 * quintopia esos everyone's langs 23:05:21 ais523: if you're saying people should be short bitcoins right now, then absolutely 23:05:22 PSA: this isn't about bitcoins ais523 just doesn't understand fiat currency 23:05:23 mwahahahaha 23:05:33 kmc: yeah, indeed 23:05:36 i am telling you this now so that you don't have to go through the same process of realisation i did like a year ago when he said the same things 23:05:36 but that doesn't imply you expect the price will go to 0 or that they're worthless 23:05:40 elliott: oh yeah, I indeed don't understand fiat currency 23:05:45 i wish there were a good options exchange for bitcoins 23:05:47 I'm not sure whether that's relevant here, though 23:05:47 could have some real fun 23:05:49 elliott: eheh 23:05:49 speaking of GPUs and all 23:05:50 shorting can be really dangerous though 23:05:56 Fiora: yeah 23:05:58 remember, the market an remain irrational longer than you can remain solvent 23:05:59 safer to buy put options 23:06:00 Fiora: you can do a covered short 23:06:02 *can 23:06:04 you buy put options at the same time 23:06:06 anyway does anyone know what the prefix "klino-" means because i'm blanking 23:06:14 yeah, you'd need some reliable/liquid options though :< 23:06:19 btc is backed by everyone thinking it is worthwhile (and the electricity and time expended in its creation) 23:06:20 if the short goes wrong, you use the put options in order to get the bitcoins you need 23:06:38 and put options for bitcoins at a price much higher than the current price would be pretty cheap 23:06:43 quintopia: it's not backed by that 23:06:48 BTC also has the property that goverments can't fuck with it arbitrarily as easy as they fuck with their own fiat currencies 23:06:52 that's the cost of minting it, not something backing it 23:06:59 which is a weakness compared to USD but a strength compared to some fiat currencies 23:07:00 put options that are deep in the money cost a lot... 23:07:07 oh, it's "slope" 23:07:11 i think 23:07:13 ais523: itym call options 23:07:15 kmc: there are quite a few ways to screw with it arbitrarily 23:07:17 but i'm always getting them mixed up anyway 23:07:18 kmc: err yes 23:07:19 so am I 23:07:24 ais523: nonetheless, as it becomes more difficult and energy-intensive to mine, the value goes up. same with the demand going up. 23:07:48 a government could very easily increase the value of bitcoins by taxing people in bitcoins 23:07:53 `pastlog PSA 23:08:07 this method was used to establish fiat currencies in the US shortly after it was colonised 23:08:12 and sometimes worked, sometimes didn't 23:08:16 one weird thing about bitcoin is that the mining payoff isn't just supply/demand, but is actually adjusted by the protocol 23:08:25 No output. 23:08:25 using a formula that nobody can change really 23:08:38 you are wrong HackEgo 23:08:47 there is definitely something in the logs with PSA 23:08:54 draft people into the army, pay them in your new currency, then tax them in that currency 23:08:54 quintopia: try again 23:08:57 that's the way 23:09:00 `pastlog mining 23:09:06 HackEgo sometimes randomly does "No output." if it hasn't been used for a while 23:09:12 2009-10-28.txt:06:47:56: I did find out that the "qibla problem" is the problem of determining the direction of Mecca at any point on earth 23:09:14 `pastlog PSA 23:09:22 2012-02-13.txt:00:08:59: itidus20 invents self hypnosis 23:09:30 heh 23:09:48 i like how both of those imply the other kind of #esoteric 23:10:11 I'm reasonably sure self hypnosis already exists 23:10:12 islam isn't that esoteric as religions go... i guess the qibla problem can get pretty weird though 23:10:21 Bike: are you saying it's more related to programming 23:10:27 once you forget the "god doesn't actually care that much, just do your best" aspect 23:10:59 elliott: WELL YOU SEE prayer is much easier for muslims because their prayers don't have to have an escape vector!! 23:15:32 are we talking about islamic prayer geodesics again 23:15:52 it's a pretty frighteningly common topic for us isn't it 23:16:11 we're not even a physics channel 23:16:31 -!- wareya has joined. 23:16:34 don't mock me :( 23:16:38 every religion has its esoteric corner 23:16:45 what specifically about the qibla is weird? 23:16:55 Bike: no this topic has actually come up several times in here 23:16:57 it's bizarre 23:17:07 `pastlog binomial 23:17:13 kmc: there was a story a while ago about a muslim astronaut figuring out how to pray 23:17:15 2012-03-25.txt:19:46:41: Because he could binomial! 23:17:18 oh yeah 23:17:18 kmc, the way it generalises to points not on the earth's surface? 23:17:23 "it's the thought that counts" 23:17:36 i wonder what the joke is that was the punchline for 23:17:42 (there are also even disputes among muslims how to do it on the earth's surface, though most of them do it the right way) 23:17:53 maybe "why did the normal distribution starve to death" 23:19:59 sufiism or druze might be more obviously esoteric but qibla involves spaaaaace 23:20:45 'right way' = shortest path along the great circle? 23:21:10 imo all circles are great 23:21:24 every circle is special 23:21:26 in its own way 23:22:45 quintopia: Why was the statistician hungry? 23:22:51 Seems what I want for my fhead is something like Data.Foldable.foldl1 (\x _ -> x) but with the type signature (Foldable t) => t a -> t a 23:23:23 actually the funniest thing about it is elliott's laughing afterwards 23:23:23 Since foldl1 will fail for an empty thing 23:23:59 you can do Foldable t => t a -> Maybe a 23:24:10 I don't know if I can implement that without knowing the empty element type constructor though 23:24:19 elliott: That's not what I want 23:24:21 you can't build things using Foldable, only take them apart 23:24:22 i think 23:24:26 you cannot do Foldable t => t a -> t a 23:24:33 nor Traversable t => t a -> t a if you want to get the head 23:24:42 consider that data P a = P a a is Traversable 23:25:18 oerjan: i loaded up the log to see my laughing and there was NSQX :') 23:25:28 elliott: and also Foldable 23:25:44 esolang idea: language works via great circles and shortest-path calculations, you store data (and program it) via literal earthquakes 23:25:44 elliott: P a a -> P a a would be perfectly acceptable 23:25:47 to change the shape of the earth 23:25:50 also tectonic drift, I guess 23:26:08 Basically I want a more general take 1 23:26:14 oerjan: well any Traversable is Foldable... 23:26:18 FreeFull: um it is P a -> P a 23:26:23 and you cannot implement something like "take 1" for it 23:26:27 FreeFull: you need Traversable for that 23:26:27 because it is a fixed-size container 23:26:39 you could do foo (P x y) = P x x or something 23:26:44 but then foo [1,2,3,4] would be [1,1,1,1] 23:26:45 don't mix up type expressions and value expressions 23:26:52 kmc: Traversable cannot change number of elements 23:26:57 hm 23:27:02 guess so 23:27:19 ok so elliott was right before 23:27:24 t a -> Maybe a -- is about the best you can do 23:27:30 there's something called Listlike, maybe it does that 23:27:46 you could have a class that lets you do "take 1". I suspect that class will be "isomorphic to [a]" 23:27:54 or worse, "has an operation of type t a -> t a that we call take1" 23:27:54 or (Applicative m) => t a -> m a or whatever 23:28:06 kmc: you mean Alternative, presumably? 23:28:16 oerjan, elliott: yeah I think ListLike is one of those not very elegant "put every list function in a type class" projects 23:28:19 elliott: maybe 23:28:20 bah 23:28:25 don't listen to me 23:28:26 kmc is rusty 23:28:26 i am disreputable 23:28:31 i'm the tin man 23:28:36 elliott: my fhead would work perfectly well on, say, a tree 23:28:51 FreeFull: maybe "one specific tree structure" 23:28:57 certainly not all tree structures in general 23:29:06 Maybe not an infinite tree 23:29:12 But a terminating tree, sure 23:29:13 -!- carado has quit (Ping timeout: 246 seconds). 23:29:14 -!- carado_ has quit (Ping timeout: 246 seconds). 23:29:44 Note I'm not assuming transversable 23:30:26 FreeFull: what about a tree that's required to have an even number of elements 23:30:41 -!- GOMADWarrior has quit (Ping timeout: 248 seconds). 23:30:42 you can write that type 23:30:46 kmc: why do the home and end buttons just type a ~ when i use mosh 23:30:48 or just a list with an even number of elements 23:30:53 quintopia: are you using rxvt? 23:30:57 yes 23:31:01 it's a known bug i'm afraid 23:31:03 more info on the bug tragcker 23:31:07 :( 23:31:24 kmc: do you have a link? I don't care so much about mosh, but I do care about how terminals interpret keys 23:31:31 kmc: How about the first element is allowed to be repeated 23:31:46 https://github.com/keithw/mosh/issues/178 23:31:49 thanks 23:32:03 FreeFull: then you can do that with Traversable 23:32:30 oh wow, inconsistencies :( 23:32:39 at least it's on the input side, not the output side 23:32:43 so it only affects ttyrec2, not ttyrec 23:32:58 or maybe just Functor and Folable 23:33:12 FreeFull: this operation is sounding less defined by the second 23:33:34 FreeFull: though if you allow foo [1,2,3] = [1,1,1] then it is quite eays 23:33:36 *easy 23:33:36 :t \x -> fmap (const (Data.Foldable.foldr1 const)) x 23:33:37 (Functor f, Foldable t) => f a -> f (t a1 -> a1) 23:33:40 buh 23:34:03 :t \x -> fmap (const (Data.Foldable.foldr1 const x)) x 23:34:04 (Functor f, Foldable f) => f a -> f a 23:34:06 yeah 23:34:12 > (\x -> fmap (const (Data.Foldable.foldr1 const x)) x) [1,2,3] 23:34:14 [1,1,1] 23:34:17 > (\x -> fmap (const (Data.Foldable.foldr1 const x)) x) (Maybe 5) 23:34:19 Not in scope: data constructor `Maybe' 23:34:22 buhuhhh 23:34:26 im 'so sorry everyone 23:34:30 > (\x -> fmap (const (Data.Foldable.foldr1 const x)) x) (Just 5) 23:34:31 Just 5 23:34:32 kmc are you drunk 23:34:34 no 23:34:35 i <3 you lambdabot 23:34:35 or just really old 23:34:39 ouch 23:34:40 burn 23:35:25 Maybe foldable + applicative 23:35:38 Maybe seems like a reasonable constructor to me, it'd be like amb for Maybe the type 23:35:43 :t foldl1 23:35:45 (a -> a -> a) -> [a] -> a 23:35:52 :t Data.Foldable.foldl1 23:35:53 Foldable t => (a -> a -> a) -> t a -> a 23:36:20 :t Data.Foldable.foldl1 (\x -> const (pure x)) 23:36:22 Occurs check: cannot construct the infinite type: a0 = f0 a0 23:36:22 In the first argument of `pure', namely `x' 23:36:22 In the first argument of `const', namely `(pure x)' 23:36:25 kmc: btw that only technically works for empty containers 23:36:35 :t Data.Foldable.foldl1 (\x acc -> (pure x)) 23:36:37 Occurs check: cannot construct the infinite type: a0 = f0 a0 23:36:37 In the first argument of `pure', namely `x' 23:36:37 In the expression: (pure x) 23:36:40 as in it works but you have a _|_ :( 23:36:51 > (\x -> fmap (const (Data.Foldable.foldr1 const x)) x) [] 23:36:53 [] 23:38:04 What am I doing wrong 23:38:18 :t Data.Foldable.foldl1 (\x acc -> (x) 23:38:20 parse error (possibly incorrect indentation) 23:38:20 :t Data.Foldable.foldl1 (\x acc -> x) 23:38:22 Foldable t => t a -> a 23:38:26 :t Data.Foldable.foldl1 (\x acc -> pure x) 23:38:28 Occurs check: cannot construct the infinite type: a0 = f0 a0 23:38:28 In the first argument of `pure', namely `x' 23:38:28 In the expression: pure x 23:38:35 :t pire 23:38:36 :t pure 23:38:37 Not in scope: `pire' 23:38:37 Perhaps you meant one of these: 23:38:37 `pure' (imported from Control.Applicative), 23:38:38 Applicative f => a -> f a 23:39:16 Wait, that wouldn't work for an empty a anyway 23:40:15 What I really need is something with the type (Something f) => f a 23:40:33 kmc's solution works... 23:40:35 Where something :: [a] == [] 23:40:56 elliott: Yeah but having [1,2,3,4,5] become [1,1,1,1,1] rather than [1] isn't preferable 23:41:21 why don't you just give up and make class Head f where head :: f a -> a 23:41:29 or whatever it is you wanted 23:41:34 kmc: isn't that one of the comonad laws? 23:41:35 f a -> f a 23:41:40 err, not laws 23:41:42 definer things 23:41:49 f a -> a, and f a -> f (f a) 23:41:56 FreeFull: it is best to first know what your operation should do and then achieve it 23:42:02 For f a -> a you only need Foldable 23:42:06 perhaps a comonad is what you want 23:42:08 rather than defining it as a tangled web of special cases in accordance with what you find out is possible to achieve 23:43:31 For a list, it should always be equivalent to take 1 23:44:19 For Tree a = Empty | Node a (Tree a) (Tree a) it should be Node a Empty Empty 23:44:47 I agree with elliott, I think 23:45:03 I think the empty possibility is necessary 23:45:08 this counts as a tangled web of special cases btw :P 23:45:08 when you start a screen within a screen and hit ^a d, which screen detaches? 23:45:13 http://www.amazon.com/Mont-Blanc-Tribute-Fountain-Pen/dp/B007PV1MV8 i don't understand this world 23:45:14 fhead empty == empty 23:45:19 quintopia: outside one, inside one is ^a a d 23:45:21 quintopia: presumably the outer one 23:45:25 unless screen detects when it runs inside itself 23:45:29 there is no other possibility 23:45:31 * ais523 has quite a lot of nethack-tas-tools experience 23:45:42 although yeah, you can figure it out via logical thinking too 23:45:52 elliott: I know, I'm just gathering examples 23:46:10 Both of these are foldable and allow you to get a 23:46:13 :t ala (wrapped First) 23:46:15 No instance for (Functor First) 23:46:15 arising from a use of `wrapped' 23:46:15 Possible fix: add an instance declaration for (Functor First) 23:46:24 oerjan: ala First. sorry. 23:46:28 we tried to convince him not to. 23:46:34 oh. 23:46:36 But they error instead of producing an empty when given an empty 23:46:45 :t ala First 23:46:47 ((Maybe a -> First a) -> e -> First a) -> e -> Maybe a 23:46:56 FreeFull: what if you have Tree a = Empty1 | Empty2 | Node a (Tree a) (Tree a) ? 23:47:08 :t under _First 23:47:10 Not in scope: `_First' 23:47:10 Perhaps you meant `first' (imported from Control.Arrow) 23:47:16 argh 23:47:46 ais523: Then it should return the Empty it receives 23:47:52 oerjan: under (wrapped First) 23:48:00 FreeFull: from where? 23:48:06 note that this Wrapped insanity also stops you doing type-changing :( 23:48:07 How about fhead empty == id 23:48:16 have to write au (wrappings First First) or whatever it was 23:48:34 Bike: I didn't give 5 stars because I thought that as a tribute the pen would be wider and no so thin but other than that its excellent. 23:48:57 guy's got a point you must admit 23:49:03 ais523: I'm wondering if this would have to be it's own typeclass to work like I want 23:49:10 :t under (wrapped First) . foldMap Just 23:49:11 Couldn't match expected type `Control.Lens.Internal.Iso.Exchange 23:49:12 a0 b0 s0 b1' 23:49:12 with actual type `First a1' 23:49:12 Or if it could be possible with foldable + applicative 23:49:15 eek 23:49:19 hm 23:49:23 FreeFull: possibly, but I'm not sure if what you want is even useful 23:49:39 :t under (wrapped First) 23:49:41 Couldn't match expected type `Control.Lens.Internal.Iso.Exchange 23:49:41 a0 b0 s0 b1' 23:49:41 with actual type `First a1' 23:49:49 elliott: NOPE 23:49:52 probably you want wrapping 23:49:54 not wrapped 23:49:59 (-: 23:50:01 :t under (wrapping First) 23:50:04 (Maybe a -> Maybe a) -> First a -> First a 23:50:21 gah 23:50:27 so do people write this sort of Haskell seriously? 23:50:30 :t ala 23:50:32 or is it some sort of self-parody? 23:50:32 Wrapped s s a a => (s -> a) -> ((s -> a) -> e -> a) -> e -> s 23:50:32 :t auf 23:50:34 AnIso s t a b -> ((r -> a) -> e -> b) -> (r -> s) -> e -> t 23:50:40 :t alaf 23:50:41 Wrapped s s a a => (s -> a) -> ((r -> a) -> e -> a) -> (r -> s) -> e -> s 23:50:45 "this sort"? 23:50:55 :t wrapping 23:50:57 (Functor f, Profunctor p, Wrapped s s a a) => (s -> a) -> p a (f a) -> p s (f s) 23:51:30 lens turns out to be an elaborate aristocrats instance 23:51:45 lens is actually useful 23:51:59 :t fold 23:52:00 (Foldable t, Monoid m) => t m -> m 23:52:24 :t foldMap Just 23:52:26 (Foldable t, Monoid a) => t a -> Maybe a 23:53:08 We already established t a -> Maybe a was possible a long time ago =P 23:53:16 Now, if we had a Maybe a -> t a 23:53:20 For whatever t 23:53:26 i was just wondering how to write it nicely with lens 23:53:59 oerjan: oh that's what you wanted? 23:54:05 :t firstOf traverse 23:54:07 Traversable t => t a -> Maybe a 23:54:08 :t firstOf folded 23:54:09 Foldable f => f b -> Maybe b 23:54:22 :t firstOf id 23:54:24 s -> Maybe s 23:54:28 OKAY 23:54:42 :t firstOf 23:54:44 Getting (Leftmost a) s t a b -> s -> Maybe a 23:54:50 > firstOf (traverse._Right) [Left 1, Left 2, Right 3, Right 4] 23:54:52 Just 3 23:55:08 nice 23:55:19 I could always require that fhead takes two parameters 23:55:31 One being the empty case 23:55:33 > firstOf (traverse._Right.filtering (> 3)) [Left 1, Left 2, Right 3, Right 4] 23:55:35 Not in scope: `filtering' 23:55:40 > firstOf (traverse._Right.filtered (> 3)) [Left 1, Left 2, Right 3, Right 4] 23:55:43 Just 4 23:56:36 > let fhead x = fromMaybe x . foldMap Just in fhead [] [1,2,3] 23:57:14 No instance for (GHC.Num.Num [a0]) 23:57:15 arising from a use of `e_1123' 23:57:16 Possi... 23:57:25 FreeFull: Just has the wrong Monoid instance for this, that's why the First mess